1. 程式人生 > >x264 vs nvidia nvenc硬編 對比

x264 vs nvidia nvenc硬編 對比

最近這段工作頻繁的接觸編碼器技術,產品的編碼質量、位元速率和速度是最為關心指標。x264是非常優秀的軟體編碼器,但是其編碼速度適應不了產品對實時編碼的要求,nvenc是英偉達在其GPU中內嵌的視訊編碼器,編碼的速度在GTX1070ti上實際測試可以達到[email protected]的要求。但是在實驗過程和網上找資料過程都反應nvenc編碼出來的質量較差,但是市面上都沒有找到明顯的衡量差距的具體資料,因此在工作過程中做了如下的研究:

1. 準備

目標:採用psnr、ssim、vmaf三個指標衡量壓制出來的視訊質量,繪製位元速率bitrate-質量曲線

視訊測試序列:挑選靜態、人物、混合、動態4個場景進行測試

                         具體序列為 HoneyBee_1920x1080_120fps_420_8bit_YUV

                                            Beauty_1920x1080_120fps_420_8bit_YUV.yuv

                                            ReadySteadyGo_1920x1080_120fps_420_8bit_YUV.yuv

                                            Jockey_1920x1080_120fps_420_8bit_YUV.yuv

實驗方法:設定x264引數為-preset veryslow -x264-params crf=23:ref=4 通過改變crf值,來調整質量和位元速率

                  設定nvenc引數為-preset slow -cq 27 -refs 4 -profile:v high -level:v 4.1 -bf 4 -b_ref_mode middle -b:v 0 通過改變cq值,來調整質量和位元速率

2. 資料結果

3. 結論分析

從實驗結果來看nvenc沒有網友反映的那麼不堪使用,從psnr、ssim傳統的對比指標來看互有優劣,但是在壓制位元速率較低時(小於8M)從主觀和vmaf指標來看在靜態場景和人臉場景中,相同位元速率的質量和x264肉眼可以看出一定區別,要做到相同的質量,nvenc在實驗資料中要多耗費20-30%左右的位元速率,在超過10M時差距明顯縮小。

實驗來看nvenc的固定質量編碼方式,與x264 crf相同質量下cq值可以取crf值加4或加5。

總之採用nvenc做好位元速率多壓20%的準備,但是速度在1080p下可以達到300fps以上,x264在i7上也只有可憐的10fps。