Kỹ thuật

So sánh encoder video phần cứng: NVENC vs AMF vs QuickSync vs Apple VideoToolbox.

Bốn nhà sản xuất. Bốn khối silicon chuyên dụng cố định. Một nhiệm vụ — biến một khung hình pixel thành vài kilobyte H.265 hoặc AV1 trong chưa tới năm mili-giây, sáu mươi lần mỗi giây, không rớt khung nào. Đây là cách NVIDIA, AMD, Intel và Apple thực sự so kè cho stream độ trễ thấp, và cách Remio chọn đúng encoder ngay lúc chạy.

Vì sao encoder phần cứng quan trọng với remote desktop

Thử encode một khung hình 1080p bằng libx264 trên một nhân CPU nhanh. Trên Apple M-series đời mới hay Ryzen 7000, bạn có thể đạt khoảng 8 đến 12 mili-giây với preset ultrafast, và lâu hơn với bất cứ thứ gì cố giữ chất lượng. Nghe có vẻ chấp nhận được cho tới khi bạn nhớ ra ngân sách: 16.6 mili-giây mỗi khung hình ở 60 FPS. Giờ cộng thêm capture, đóng gói packet, xếp hàng ở pacer, đẩy ra mạng, decode và render. Encode bằng CPU không chỉ làm bạn chậm đi — nó ngốn sạch ngân sách độ trễ, và ở bất cứ mức nào cao hơn 1080p60 nó sẽ rớt khung.

Encoder phần cứng giải quyết chuyện này bằng cách dành riêng phần silicon chuyên dụng cho đúng công việc đó. NVIDIA gọi khối của họ là NVENC. AMD gọi khối của họ là AMF (chính xác hơn là engine VCN mà AMF điều khiển). Intel gọi khối của họ là QuickSync (Media Engine bên trong iGPU của họ). Apple gọi khối của họ là VideoToolbox (đây là API; phần silicon là Media Engine trên chip M-series và A-series). Cả bốn tồn tại vì cùng một lý do: encode bằng phần mềm không thể đạt được mục tiêu độ trễ và tốc độ khung hình mà màn hình hiện đại, GPU hiện đại và người dùng hiện đại giờ đây kỳ vọng.

Riêng với Remio, mỗi mili-giây tiết kiệm được ở encoder là một mili-giây người dùng lấy lại được ở pacer, ở mạng và ở bộ render. Ngân sách độ trễ được công bố của chúng tôi nhắm mục tiêu 8 đến 20 ms glass-to-glass trên LAN; thời gian encode là biến số lớn nhất. Việc chọn encoder, và cấu hình của encoder đó, quyết định mọi thứ ở phía sau.

Bốn nhà sản xuất, nhìn thoáng qua

Trước khi đi sâu vào từng cái, cần hiểu chúng ta thực sự đang so sánh cái gì. Đây không phải những thư viện có thể thay thế cho nhau — chúng là những khối vật lý trên một con die, mỗi khối có ISA riêng, ngăn xếp driver riêng, những đặc tính riêng và lộ trình phát triển nhiều năm riêng. Chúng khác nhau ở chỗ hỗ trợ những codec nào, cho ra chất lượng ra sao, đạt độ trễ bao nhiêu, ngốn bao nhiêu điện, và tồn tại trên những nền tảng nào.

NVENC — tám thế hệ tinh chỉnh của NVIDIA

NVENC là encoder mà hầu hết phần mềm streaming lấy làm mốc benchmark, một phần vì NVIDIA có ngân sách marketing và một phần vì phần silicon thực sự đã xuất sắc suốt một thập kỷ. Khối này đã trải qua tám thế hệ:

Cho tình huống độ trễ thấp, NVENC phơi bày ba chế độ kiểm soát bitrate liên quan. CBR với tuning low-latency và preset p1 (nhanh nhất) là cấu hình chuẩn: tốc độ đầu ra xác định, lookahead một khung, không B-frame. Remio dùng đúng cấu hình này khi chạy qua hevc_nvenc trên Windows. Thời gian encode trên Ada Lovelace ở 1080p60 H.265 ổn định ở mức 1 đến 3 ms.

Một điểm gây vướng trong quá khứ: NVENC bản tiêu dùng trong nhiều năm bị giới hạn ba phiên encode đồng thời qua driver của NVIDIA. Giới hạn đó được nâng lên tám vào năm 2023, rồi gần như được gỡ bỏ. Nếu bạn đang đọc một topic diễn đàn cũ cảnh báo về chuyện này, lời cảnh báo đó không còn đúng nữa.

AMF — kẻ chiếu dưới của AMD cuối cùng đã đuổi kịp

AMF (Advanced Media Framework) của AMD là API; engine bên dưới đã trải qua hai kiến trúc khác biệt. VCE (Video Coding Engine) cũ hơn có mặt trên các card thời GCN từ 2012 và là điểm yếu kinh niên trong các cuộc so kè encoder trực tiếp — chất lượng kém NVENC thấy rõ ở cùng bitrate, đặc biệt với nội dung nhiều chuyển động. AMD biết điều đó, cộng đồng streaming biết điều đó, và benchmark đã xác nhận điều đó.

Câu chuyện đó thay đổi với VCN (Video Core Next), ra mắt trên Vega và được tinh chỉnh qua mọi thế hệ tiếp theo:

Cho streaming độ trễ thấp, AMF phơi bày preset usage ultralowlatency, preset chất lượng speed và chế độ kiểm soát bitrate cbr. Remio dùng hevc_amf với cả ba — đúng bộ ba preset được ghi lại trong ghi chú kiến trúc streaming của chúng tôi. Thời gian encode trên RDNA3 ở 1080p60 H.265 thường nằm ở mức 2 đến 4 ms. RDNA2 khoảng 3 đến 5 ms. Các card thời VCN 1.x cũ hơn chạy gần mức 5 đến 7 ms — vẫn trong ngân sách, nhưng ít dư địa hơn cho các đỉnh keyframe.

Suốt năm năm, encoder của AMD là một trò cười. RDNA2 đã sửa được nó. RDNA3 khiến nó cạnh tranh về AV1. Thế lưỡng cực của encoder streaming giờ đã thành thế tam cực, và điều đó tốt cho tất cả mọi người.

QuickSync — nhà vô địch phổ biến thầm lặng

QuickSync là encoder mà gần như chắc chắn bạn đã sở hữu. Nó có trong mọi CPU Intel có đồ hoạ tích hợp kể từ Sandy Bridge năm 2011 — tức là hơn một thập kỷ laptop, NUC và máy bàn văn phòng có sẵn encode video phần cứng nằm không dùng đến vì người dùng tưởng rằng họ cần một GPU rời. Họ không cần.

Kiến trúc này đã tiến triển song song với dòng iGPU của Intel:

Hồ sơ nhiệt là siêu năng lực thầm lặng của QuickSync. Vì nó nằm bên trong một iGPU vốn đã có sẵn trên SoC, chi phí biên khi dùng nó chỉ là bản thân khối encode — không phải đánh thức một GPU rời, không phải khởi động các bộ điều khiển bộ nhớ GDDR6. Trên một chiếc ThinkPad hay NUC, QuickSync cho chất lượng ngang NVENC ở mức khoảng một phần tư điện năng toàn hệ thống. Với host Windows của Remio, QuickSync là lựa chọn dự phòng thứ ba sau NVENC và AMF — không phải vì nó tệ hơn, mà vì người dùng có GPU rời thường muốn để iGPU rảnh cho các tác vụ khác.

VideoToolbox — Media Engine hợp nhất của Apple Silicon

Apple không tiếp thị một tên thương hiệu cho encoder phần cứng của họ theo cách NVIDIA làm. API là VideoToolbox; phần silicon là Media Engine, một khối do Apple thiết kế nằm bên trong mọi máy Mac M-series và mọi SoC iPhone/iPad kể từ A6.

Media Engine đi kèm với số lượng khác nhau tuỳ theo SKU:

Mỗi Media Engine xử lý encode/decode H.264, H.265 và ProRes bằng phần cứng. Encode ProRes là tính năng nổi bật cho người dựng video — không con chip tiêu dùng nào khác có — nhưng với streaming thì các khả năng liên quan là hỗ trợ H.265 main10 4:4:4 (chế độ ưa thích của Remio cho công việc đòi hỏi màu chính xác) và độ trễ encode thấp đến kinh ngạc.

Một khoảng trống đáng chú ý: không có encode AV1 trên bất kỳ Apple Silicon nào đang bán. Chip M-series giải mã AV1 kể từ M3, nhưng không thể encode. Khi stream từ một máy Mac, H.265 là mặc định thực tế trong tương lai gần.

Chỗ Apple thực sự thắng là hiệu quả năng lượng. Trên một chiếc M2 Pro encode 4K60 H.265 ở 30 Mbps, toàn bộ Media Engine ngốn khoảng 3 đến 5 watt. Tác vụ NVENC tương đương trên một chiếc RTX 4070 ngốn gần 35 watt điện năng toàn hệ thống — phần lớn trong đó là sàn tiêu thụ khi rảnh của GPU rời, chứ không phải khối encoder. Với một host Mac mini bật 24/7 chờ client, đây là khác biệt giữa "gần như không nhận ra trên hoá đơn điện" và "nhận ra rõ ràng".

So sánh song song

Đây là bốn engine trên cùng các trục. Con số độ trễ là preset ultra-low-latency 1080p60 H.265, tắt B-frame, VBV một khung — cấu hình của Remio. Chất lượng là xếp hạng cảm nhận sơ bộ ở 8 Mbps CBR; khác biệt tuyệt đối là nhỏ.

Trục NVENC (Ada) AMF (RDNA3) QuickSync (Arc / Gen12+) VideoToolbox (M3+)
H.264
H.265 (HEVC)Có (main10 4:4:4)
Encode AV1Không
Encode ProResKhôngKhôngKhông
Độ phân giải tối đa8K H.2658K H.2658K (Arc), 4K (iGPU)8K H.265
FPS tối đa ở 1080p H.265~480~360~360~600 (M3 Max)
Thời gian encode, 1080p60 H.2651-3 ms2-4 ms2-4 ms2-3 ms
Điện năng tiêu thụ, 4K60 H.265~35 W toàn hệ thống~30 W toàn hệ thống~8 W toàn hệ thống (iGPU)~5 W
Xếp hạng chất lượng @ 8 Mbps CBRĐồng hạng 1Đồng hạng 2Đồng hạng 2Đồng hạng 1
Nền tảngWindows, LinuxWindows, LinuxWindows, Linux, macOS (máy Mac Intel)macOS, iOS, iPadOS, tvOS
Phiên đồng thờiKhông giới hạnKhông giới hạnKhông giới hạnKhông giới hạn

Tóm tắt thật lòng: ở các thiết lập mà streaming remote desktop thực sự dùng (CBR, low-latency, không B-frame), cả bốn đều đủ tốt với một khoảng dư thoải mái. Điểm khác biệt là hỗ trợ AV1 (NVIDIA / AMD / Intel — không phải Apple), hiệu quả năng lượng (Apple, rồi iGPU Intel, rồi phần còn lại), và tính sẵn có theo nền tảng (bạn không thể chọn VideoToolbox trên host Windows hay NVENC trên máy Mac).

Remio chọn gì lúc chạy

Remio dò khả năng của host lúc khởi động và chọn encoder theo thứ tự ưu tiên xác định. Việc chọn thực tế nằm trong GpuCapabilities trên host C++/WinRT, được phản chiếu bằng Swift trên host Mac. Cả hai theo cùng một logic.

Trên host Windows:

  1. NVENC (hevc_nvenc / h264_nvenc) — được chọn đầu tiên khi có GPU NVIDIA và driver phản hồi. Được ưu tiên vì đây là encoder có độ trễ thấp ổn định nhất trên dải thế hệ phần cứng rộng nhất.
  2. AMF (hevc_amf / h264_amf) — được chọn thứ hai khi có GPU rời AMD hoặc APU có VCN. Cấu hình với usage=ultralowlatency, quality=speed, rc=cbr.
  3. QuickSync (hevc_qsv / h264_qsv) — được chọn thứ ba khi có iGPU Intel. Tương đương về chức năng trong pipeline của chúng tôi; chúng tôi ưu tiên để iGPU rảnh nếu đã có GPU rời.
  4. libx264 dự phòng bằng CPU — chỉ được chọn khi không encoder phần cứng nào phản hồi. Giới hạn ở 720p60 hoặc 1080p30 để nằm trong ngân sách độ trễ.

Trên host Apple: VideoToolbox là lựa chọn duy nhất, và cũng là lựa chọn duy nhất chúng tôi muốn. Media Engine bên trong mọi máy Mac được hỗ trợ (macOS 15+) xử lý H.265 main10 4:4:4 ngay từ đầu. Không cần đường dự phòng nào.

Thứ tự ưu tiên codec là H.265 trước, H.264 dự phòng, và AV1 chỉ khi cả hai đầu kết nối đều có AV1 phần cứng (encoder Ada / RDNA3 / Arc ở host; bộ giải mã Apple Silicon M3+ / Snapdragon 8 Gen 2+ / dòng RTX 40 ở client). Với các phiên LAN, chúng tôi giữ H.265 ngay cả trên các cặp thiết bị hỗ trợ AV1 — độ trễ encode mới là nút thắt cổ chai, không phải bitrate. AV1 chỉ đáng dùng trên các phiên qua TURN relay hoặc WAN bị giới hạn, nơi băng thông thực sự là giới hạn.

Đánh đổi giữa chất lượng và độ trễ

Mọi encoder phần cứng đều phơi bày cùng vài núm điều chỉnh, và mỗi núm đều đánh đổi chất lượng lấy độ trễ theo cùng một hướng. Cấu hình của Remio nằm ở đầu mút quyết liệt nhất của thang độ trễ, vì remote desktop, theo định nghĩa, là một ứng dụng thời gian thực nơi một khung hình cũ hơn 20 ms còn tệ hơn một khung hình hơi mờ hơn mức lý tưởng.

Khuôn mẫu này nhất quán trên cả bốn nhà sản xuất. Độ trễ thấp thời gian thực là một bài toán tối ưu có ràng buộc: bạn từ bỏ vài phần trăm chất lượng mà lookahead và B-frame mang lại trong encode offline, để đổi lấy độ trễ một khung có thể dự đoán mà tương tác thời gian thực đòi hỏi. Mọi sản phẩm streaming đang bán — Remio, Parsec, NVIDIA GeForce NOW, Xbox Cloud Gaming — đều thực hiện cùng một đánh đổi theo cùng một hướng.

Điều bạn (người dùng) thực sự cần quan tâm

Nếu bạn nhảy thẳng xuống cuối: encoder phần cứng của bất kỳ GPU đời mới nào cũng ổn cho remote desktop.

Khác biệt ở các cấu hình thời gian thực còn nhỏ hơn sàn nhiễu của bất kỳ benchmark hợp lý nào. Một người dùng Pascal GTX 1060 có trải nghiệm Remio y hệt người dùng RTX 4090 — cả hai đều lấp đầy pipeline 60 FPS ở độ trễ dưới một khung, cả hai đều cho ra kết quả không thể phân biệt ở mức 8 Mbps mà LAN dùng.

Các ngoại lệ, xếp theo mức độ thường xuyên quan trọng:

Ngoài những trường hợp hiếm đó, câu trả lời đúng là câu đơn giản nhất: hãy dùng chiếc GPU mà đằng nào bạn cũng sẽ mua. Mọi nhà sản xuất đời mới đều đã hội tụ về cùng khả năng, cùng preset độ trễ thấp, cùng vùng chất lượng. Remio chọn đúng cái lúc chạy để bạn khỏi phải bận tâm. Cứ tiếp tục làm bất cứ điều gì bạn đã mở một phiên remote desktop để làm — code, dựng video, sửa server, đẩy một bản vá từ quán cà phê.

Đó chính là toàn bộ ý nghĩa của silicon chuyên dụng cố định. Nó cứ thế hoạt động, và bạn thôi để ý đến nó.

Biểu tượng ứng dụng Remio

Để silicon làm việc.

Remio tự động nhận diện NVENC, AMF, QuickSync hay VideoToolbox và chọn đường nhanh nhất cho phần cứng của bạn. Miễn phí, không cần tài khoản, độ trễ dưới một khung trên LAN.

Miễn phí trọn đờiKhông tài khoảnGhép cặp trong 30 giây