Cũng thử điều này:
on vncserver use -depth 32
on vncviewer use -bgr233
Nếu sử dụng bgr233 trên máy chủ theo đề xuất của Psycogeek, các ứng dụng chạy trên máy chủ có thể sử dụng phối màu để cải thiện sự xuất hiện của chúng. KDE, ví dụ, làm điều này. Các mẫu phối màu, đặc biệt là các mẫu không đều được tạo ra bằng phương pháp "khuếch tán lỗi", không nén tốt và làm chậm quá trình truyền.
Thử nghiệm dưới đây với máy tính để bàn KDE cho thấy lượng dữ liệu được truyền qua mạng là nhỏ nhất nếu máy chủ chạy ở chế độ truecolor (độ sâu 32; độ sâu 24 cũng có thể hoạt động tốt nhưng tôi đã không kiểm tra điều này) và khách hàng yêu cầu màu bgr233. Sau đó, máy chủ sẽ "làm tròn" các màu có sẵn trong bảng bgr233, dẫn đến các vùng đồng nhất nén tốt.
Tùy thuộc vào phiên bản vnc, cài đặt và loại kết nối, cũng có thể thuận lợi khi chạy kết nối vnc qua kết nối ssh nén:
ssh -C -L 5901:127.0.0.1:5901 user@remote
(kết nối với localhost: 1 thay vì từ xa: 1 với vncviewer) và / hoặc để điều chỉnh danh sách các phương thức nén vnc với "vncviewer -encodings".
Kiểm tra
Để có được số liệu thống kê về lượng dữ liệu được truyền, tôi chạy ssh -C với -v. Bản in này
số liệu thống kê ở cuối kết nối ssh (ctrl + d) hiển thị lượng dữ liệu được gửi bởi vnc và số lượng ssh có thể nén nó.
Trên máy chủ vnc, tôi chạy KDE ở 1440x800 với máy tính để bàn tiêu chuẩn OpenSUSE 12.2. Máy tính để bàn OpenSUSE bao gồm một thư mục máy tính để bàn ở một góc với nền bán trong suốt và hiệu ứng ánh sáng gradient. Thư mục chứa một vài biểu tượng. Hơn nữa, có một bảng điều khiển khởi động. Đối với mỗi thử nghiệm, tôi bắt đầu kết nối ssh với -C -v, kết nối với vncviewer, đóng kết nối sau khi máy tính để bàn được truyền hoàn toàn và ctrl + d kết nối ssh để đọc số liệu thống kê. Để sử dụng cài đặt vnc tiêu chuẩn mặc dù kết nối với localhost, tôi sử dụng vncviewer với -encodings "copyrect chặt chẽ hextile zlib corre rre raw". Trong thử nghiệm thứ 2, tôi bỏ qua "chặt chẽ". Cuối cùng, tôi cũng kiểm tra với các cài đặt localhost mặc định. Tôi lặp lại tất cả các thử nghiệm với màu nền của máy tính để bàn, nhưng không phải là màu trắng tinh khiết hoặc màu khác có sẵn trong bảng bgr233.
Các kết quả
(1) Ảnh nền "Buổi tối" của Christoph Kummer (được gửi cùng với OpenSuSE 12.2):
với mã hóa "chặt chẽ":
32 bit server + bgr233 client: raw data 231,129, compressed 231,195
16 bit server + bgr233 client: raw data 235,528, compressed 235,548
bgr233 server + bgr233 client: raw data 379,472, compressed 379,524
16 bit server + 16 bit client: crashes xvnc server
32 bit server + 32 bit client: crashes xvnc server
không mã hóa "chặt chẽ":
32 bit server + bgr233 client: raw data 514,614, compressed 336,993
16 bit server + bgr233 client: raw data 526,267, compressed 343,430
bgr233 server + bgr233 client: raw data 1,122,449, compressed 440,477
16 bit server + 16 bit client: raw data 3,422,711, compressed 1,486,065
32 bit server + 32 bit client: raw data 4,620,578, compressed 2,806,274
với cài đặt "localhost":
32 bit server + bgr233 client: raw data 1,153,388, compressed 231,740
16 bit server + bgr233 client: raw data 1,153,397, compressed 236,428
bgr233 server + bgr233 client: raw data 1,153,695, compressed 380,015
16 bit server + 16 bit client: raw data 4,612,015, compressed 1,166,199
32 bit server + 32 bit client: raw data 4,611,296, compressed 2,805,144
(2) Nền màu rắn:
với mã hóa "chặt chẽ":
32 bit server + bgr233 client: raw data 10,151, compressed 9,862
16 bit server + bgr233 client: raw data 14,994, compressed 14,817
bgr233 server + bgr233 client: raw data 76,335, compressed 76,268
16 bit server + 16 bit client: crashes xvnc server
32 bit server + 32 bit client: crashes xvnc server
không mã hóa "chặt chẽ":
32 bit server + bgr233 client: raw data 28,285, compressed 15,885
16 bit server + bgr233 client: raw data 40,597, compressed 25,410
bgr233 server + bgr233 client: raw data 460,902, compressed 93,067
16 bit server + 16 bit client: raw data 161,323, compressed 73,196
32 bit server + 32 bit client: raw data 152,342, compressed 78,657
với cài đặt "localhost":
32 bit server + bgr233 client: raw data 1,155,743, compressed 14,926
16 bit server + bgr233 client: raw data 1,153,388, compressed 19,015
bgr233 server + bgr233 client: raw data 1,153,379, compressed 77,238
16 bit server + 16 bit client: raw data 4,611,296, compressed 62,929
32 bit server + 32 bit client: raw data 4,611,296, compressed 74,081
Thảo luận
Lưu ý rằng 1440 x 800 = 1.152.000 và lần 4 là 4.608.000. Trong chế độ "localhost", vnc dường như gửi dữ liệu không nén. Sự lựa chọn của nền màn hình và độ sâu màu của máy chủ không tạo ra sự khác biệt. Ngoài ra, vnc dường như sử dụng 32 bit cho mỗi pixel để truyền ngay cả ở chế độ 16 bit. Tuy nhiên, có sự khác biệt như thế nào ssh có thể nén luồng dữ liệu.
Trong tất cả các trường hợp được kiểm tra, bgr233 trên máy khách nhận được lượng dữ liệu nhỏ nhất nếu máy chủ chạy với màu 32 bit, theo sau là màu 16 bit và lượng dữ liệu cao hơn nhiều nếu sử dụng bgr233 trên máy chủ. Hiệu quả rõ rệt nhất với nền tảng vững chắc.
Với nền hình ảnh, mã hóa "chặt chẽ" và nén localhost + ssh tạo ra kết quả tương tự cho máy khách bgr233. Điều này cho thấy rằng "chặt chẽ" sử dụng nén zlib (tương tự như sử dụng ssh nén) trong các cài đặt này.
Trong cài đặt máy khách 16 và 32 bit, máy chủ không may gặp sự cố khi sử dụng "chặt chẽ". Đây sẽ là các cài đặt trong đó nén jpeg được hỗ trợ bởi "chặt chẽ" sẽ hữu ích, đặc biệt là với ảnh nền.
Hãy cẩn thận: Các kết quả cho thấy nén ssh với cài đặt mặc định localhost hoạt động tốt. Tuy nhiên, thử nghiệm không bao gồm việc sử dụng máy tính để bàn thông thường như cuộn một trang dài trong trình duyệt web mà mã hóa "copyrect" có thể quan trọng.
Ngoài ra, nén ssh có thể thêm độ trễ đáng chú ý trong kết nối nhanh, dẫn đến kết nối cảm thấy chậm mặc dù nén tuyệt vời.
-JJ