H.265是由JVT在2010年代所制定的標準,在MPEG-H之下(MPEG-H Part 2),也稱為MPEG-H HEVC( High Efficiency Video Coding),可在相同畫質下提供比MPEG-4 AVC標準更低的位元率。代表的編碼器為x265。x265有個很方便的編碼參數─preset,它可以幫助我們快速設定x265編碼時所用的眾多參數。依照編碼速度的不同,preset由快到慢可以分為:ultrafast
、superfast
、veryfast
、faster
、fast
、medium
、slow
、slower
、veryslow
、placebo
這9個等級,原則上愈慢則會有更好的壓縮效果或是畫質。但x265的9種preset到底快是能多快,慢是能多快?快的時候壓縮效果有多差?而慢的時候壓縮效果有多好呢?
本篇文章將會使用一個解析度為1920x1080、FPS為24、像素格式為yuv420p、長度為30秒的無損壓縮的片源,來實際使用x265編碼器進行轉檔測試。
測試用的影片檔
這個測試用的影片檔案來自於這個網站提供的Big Buck Bunny未壓縮影片檔。筆者擷取了其中的4:30~5:00的片段,其平均位元率為597197Kbps。
接著使用FFmpeg,以x265將其無損壓製成MP4檔案,使用的指令如下:
可以點我下載壓製好的檔案。
編碼器
透過FFmpeg 4.2.1來操作x264編碼器,x264的版本為3.2
。
畫質差異分析工具
為了比較影片檔案之間的畫質差異,筆者使用了FFmpeg來計算SSIM,作法可參考這篇文章。
測試結果數據
測試結論
觀察結果數據,可以發現到以下幾點:
ultrafast
到fast
所需的編碼時間差異並不大。fast
到medium
的編碼時間有明顯的增加。而slow
或是比其更慢的preset,編碼時間會比預設的medium
還要大幅度地有感上升。- CRF愈高編碼時間會愈短。
ultrafast
和superfast
的位元率偏低,無法保證有CRF的正常畫質。- 愈慢的preset有愈好的畫質。
placebo
的編碼時間是veryslow
的2.4倍左右,然而placebo
的畫質和位元率並沒有明顯比veryslow
來得好,究竟該不該用placebo
就見仁見智囉!fast
和medium
兩者都是編碼速度、畫質、影片壓縮率都有良好平衡的preset。而slower
和veryslow
的畫質和位元率差不多,前者卻比後者的編碼速度還要快上不少,考量到需花費編碼時間,選擇veryslow
的效益並沒有比slower
好。
那麼10-bit影片呢?
上面是8-bit影片的轉檔測試情形,但實際上H.265更多被應用於編碼10-bit影片。根據這篇文章找出的x265 10-bit常用CRF範圍來進行10-bit影片的轉檔測試,結果數據如下。
我們可以看出10-bit影片的編碼速度要比8-bit影片要來得慢一些,且在相同畫質下,10-bit影片的位元率比8-bit影片還要來得低。另一方面,整體來看,10-bit和8-bit的數據資料分佈情形是差不多的,所以它們的測試結論都是相同的哦!