位元率-失真最佳化

位元率 - 失真(英文:Rate–distortion optimization,英文簡稱RDO)是一種提升視頻壓縮性能的最最佳化方法。

基本介紹

  • 中文名:位元率-失真最佳化
  • 外文名:Rate–distortion optimization
  • 簡稱:RDO
  • 概述:提升視頻壓縮性能的最最佳化方法
  • 學科:數理科學
簡介,背景,運作原理,支持的編碼器,

簡介

位元率 - 失真(英文:Rate–distortion optimization,英文簡稱RDO)是一種提升視頻壓縮性能的最最佳化方法。
其原理是對視頻的有損(畫面品質)與比特率(編碼所需的數據量)同時進行最最佳化,以求達到一個最佳的平衡點。
雖然此算法一開始是在視頻壓縮的編碼器中被使用,但也可以用於各種多媒體編碼包含視頻、視頻、音頻等等,只要編碼時會同時考慮到品質及檔案大小皆可使用。

背景

傳統視頻編碼器在做編碼決策時,是挑選出視頻品質最好的畫面。
然而只考慮品質的缺點是,會讓決策的結果有時相較於品質稍差的選擇下,花費了更多數據量但只相對提升了一點點品質。
一個常見的例子就是動作補償,尤其是使用1/4像素精確度的時候。在動作補償過程中,為宏塊的動作向量增加額外的精確度可能可提升品質,但有些時候提升的品質,並不值得額外花費用來編碼高精確度動作向量的數據量。

運作原理

率失真最佳化藉由作為視頻品質的衡量方法,解決了上述的問題。數據量會被用比特數乘上拉格朗日乘數來取代。
拉格朗日乘數代表了在某種程度範圍的視頻品質下,比特的花費與視頻品質之間的關係。
以數學式表示:
其中
  • J:最終的衡量數據,也被稱為RD cost(rate-distortion cost)
  • D:有損的衡量數據
  • :拉格朗日乘數
  • R:數據量的衡量數據
為了最大化峰值信噪比的視頻畫值衡量,有損部分通常使用均方差做計算。
現行的視頻壓縮編解碼器中,率失真最佳化需要將每一塊視頻畫面的區塊,經由熵編碼器運算來衡量實際的比特花費,而此計算是複雜的。
例如在MPEG的許多編解碼器標準中,完整的計算流程包含了離散餘弦變換、量化以及熵編碼,需全部運算完才能得到實際的比特花費。因此率失真最佳化會較大部分其他區塊比對的衡量方法來得慢,譬如絕對值差和(SAD)和轉換後絕對值差和(SATD)。
因此率失真最佳化通常只在動作補償的最後一個步驟才會被使用,像是在H.264/AVC中最後需要對各種分區模式下決定的時候。

支持的編碼器

  • AtemeH.264編碼器
  • 草谷ViBE編碼器(SD & HD MPEG-2/MPEG-4)
  • Harmonic Electra 8000編碼器(SD & HD MPEG-2/MPEG-4)
  • libavcodec
  • MainConceptH.264編碼器
  • MicrosoftVC-1編碼器
  • TANDBERG TelevisionSD MPEG-2 EN8100
  • TANDBERG TelevisionHD MPEG-4 EN8190
  • TANDBERG TelevisionSD & HD MPEG-4 iPlex
  • Theora1.1-alpha1 and later(the "Thusnelda" branch)
  • x264H.264編碼器
  • XvidMPEG-4 ASP編碼器
  • H.264/AVC標準引用軟體JM(Joint Model)
  • H.265/HEVC標準引用軟體HM(HEVC Test Model)

相關詞條

熱門詞條

聯絡我們