thiết lập chặt chẽvnc cho pixel 8 bit


1

Tôi đang chạy chặt chẽvnc. Trên cả máy chủ và máy khách tôi đã sử dụng -depth 8.

Mặc dù vậy, khi tôi bắt đầu phiên, chương trình xem tại máy khách sẽ in thông tin này dường như cho biết 32 bit sẽ được sử dụng. Có một lời giải thích cho điều này, xin vui lòng?

VNC server default format:
  8 bits per pixel.
  True colour: max red 7 green 7 blue 3, shift red 0 green 3 blue 6
Using default colormap with is TrueColor.  Pixel format:
  32 bits per pixel.
  Least significant byte first in each pixel.
  True colour: max red 255 green 255 blue 255, shift red 16 green 8 blue 0

Tôi đang sử dụng phiên bản máy tính để bàn của Ubuntu 10.10 (Maverick) trên cả máy chủ và máy khách. TightVNC là phiên bản 1.3.9 ở cả hai đầu. Tôi tin rằng phiên bản mới hơn, 2.x, chỉ là Windows cho đến ngày hôm nay ngoại trừ phiên bản JVM của máy khách. Tôi không sử dụng phiên bản JVM của máy khách, cũng là 2.x, vì tôi không biết liệu nó có tương thích với 1.3.9 trên máy chủ không.

Các yêu cầu là:

vncserver -depth 8 -geometry 800x600 :1
vncviewer -depth 8 -noshared -nocursorshape 255.255.255.255:1

Tôi chưa quan sát dữ liệu bạn hiển thị trước đó, nhưng mục đích của việc truyền dữ liệu là 8 bit, là để giảm số lượng dữ liệu (như bạn biết) cần truyền đến đầu máy khách, dữ liệu nhận được sẽ là 8 bit, nhưng nó có thể vẫn bật (và / hoặc từ) màn hình hiển thị 8 bit 16 bit 24 bit hoặc 32 bit. Miễn là tốc độ gửi ít dữ liệu đều ổn, nhờ chỉ gửi một phác thảo về dữ liệu :-) Tôi không bao giờ bận tâm để nhìn xa hơn.
Psycogeek

Tốc độ không ổn và đó là lý do tại sao tôi hỏi. Sơn lại chậm. Tất nhiên có những điểm nghẽn khác tại thời điểm này bởi vì tôi buộc phải sử dụng WiFi thông qua một bức tường gạch nhưng tôi sẽ tìm cách sửa chữa ethernet của mình. Nếu tôi có thể giảm từ 32 bit xuống 8 thì sẽ tốt.
H2ONaCl

Tôi đang thêm thông tin vào bài viết.
H2ONaCl

Nó sẽ hữu ích để biết nó là hệ điều hành gì? Phiên bản nào hoặc thực hiện đúng? có lẽ các thông số không chính xác? -encoding hextile -compresslevel 1 -quality 5 / 8bit * & lt; --- mabey thử dấu gạch chéo đó thay vì dấu trừ? Trong Ubuntu, họ sử dụng * -depth 8 -pixelformat BGR233 -cc4 trong cửa sổ nó có thể -compresslevel 9 -nojpeg -8bit
Psycogeek

@Psycogeek, Điều này -pixelformat bgr233 trên máy chủ và -bgr233 trên trình xem "giải quyết" bí ẩn. Bây giờ nó tuyên bố sẽ sử dụng 8 bit. Cảm ơn. Bạn nên viết điều này như là câu trả lời.
H2ONaCl

Câu trả lời:


2

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) 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


1

Câu trả lời nhờ Psycogeek là:

on vncserver use -pixelformat bgr233
on vncviewer use -bgr233

Khi các tùy chọn này được thêm vào, người xem tuyên bố sẽ sử dụng pixel 8 bit. Tôi sẽ không bận tâm để hỏi tại sao ngày 8 không đủ vì nó là phần mềm miễn phí.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.