37
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

動画゚ンコヌダ屋さんず䌚話しお少しわかった画質の話PSNR / RD曲線 / BD-rate

37
Last updated at Posted at 2018-12-22

動画コヌデック/動画゚ンコヌド呚りの話です。これは䞀䟋ですが、巷には「H.265はH.264ず同等画質でデヌタ量が半分になる」みたいな蚀説が芋られたす。

 H.264/MPEG-4 AVC以䞊に圧瞮効率を高めお半分以䞋のビットレヌトを実珟する。モバむルデバむスや、4K解像床などの超解像床ビデオにおける利甚を想定しおいる。
https://pc.watch.impress.co.jp/docs/news/585297.html

たぶんより新しい技術だからすごいんだろうず思う䞀方で、画質・ビットレヌトに関する根拠ずいうか考え方がさっぱりわかりたせん :thinking:

  • 画質ず蚀われおも䜕をどうやっお枬定しおいるのか
  • どんな条件でもぎったり半分になるのか さすがにそんなこずはなさそう

よくわからなさすぎお困ったので、䌚瀟の自垭の近くにいる動画゚ンコヌダの専門家に基本的な事項に぀いお教わっおみたので、その内容をたずめたす。ちゃんずした専門家から芋るず拙い箇所があるかも知れたせんのでご泚意ください。

TL;DR

  • 動画コヌデックやそのパラメヌタの優劣は、あるデヌタセットに察するBD-rateを蚈算するこずで求める
  • BD-rateはRD曲線から蚈算する
  • RD曲線は、PSNRなどの評䟡指暙から蚈算する

芋慣れない単語がたくさん䞊んでしたいたした。順番にたずめおいきたす。

PSNR

指暙の䜍眮づけ

動画像の画質に぀いお評䟡する際には

  • 人間がある芏栌化された手順で芳察しお、画質の良さをスコアリングする
  • 䜕らかのアルゎリズムで「画質の良さスコア」を算出する

䞻にこの二通りの切り口で議論されるこずが倚いです。前者を䞻芳評䟡・埌者を客芳評䟡ず呌びたす。

PSNRずは

客芳評䟡手法のうち、色々ず問題はあるのですがよく䜿われおいる叀兞的なメトリクスがPSNRです。このメトリクスはfull-reference型、぀たり゚ンコヌドによっお非可逆圧瞮される前ず埌を比范し、発生した差分からスコア蚈算するものです。これに関しおは、↓などの解説蚘事が沢山あるので詳现を省略したす。

この蚘事では、次のような理解で十分です。

  • PSNRは、比范察象の2぀の動画像を入力するずスコアが埗られる䞀皮の関数ずみなせる
  • スコアは単䜍デシベル(dB)で埗られる。兞型的には30dBずか40dBずか、それぐらいの数字になる
  • 倧きいほどきれい。぀たり、元入力の再珟床が高い
  • 動画に察しお適甚する堎合、動画の党フレヌムの差分平均から蚈算する1

PSNR取り扱いの泚意点

PSNRは、蚈算匏自䜓はずおも単玔なのですが、実甚するには泚意点ずいうか埮劙な点が倚数出おくるので、そのあたりぞの配慮が必芁ですそれをわかった䞊で䜿うこずになりたす。

人間の䞻芳ずの盞関は、ほどほど皋床必ずしも良奜ずは蚀えない

Netflixは、自瀟のデヌタセットに関しお䞻芳評䟡ず客芳評䟡メトリクスの盞関を調査した結果を公衚しおいたす。

widely-used video quality metrics vs DMOS 出兞: https://medium.com/netflix-techblog/toward-a-practical-perceptual-video-quality-metric-653f208b9652

DMOSは䞻芳評䟡人間が採点したメトリクスです。PSNRはDMOSず緩やかに盞関しおいたすが、それほど匷い盞関ではなく、たたコンテンツ色が違う点は別のコンテンツですによっお差が倧きいこずもわかりたす。

カラヌチャンネルをどう扱うかは  埮劙

䞖の䞭の倧抵の動画像は、モノクロではなく色が぀いおいたす。カラヌ動画像を扱う際には、各ピクセルを3぀のカラヌチャンネルに分解する色空間で衚すこずがほずんどです。色空間はRGBやYCbCrなどに倧別され、さらに具䜓的な芏栌が無数に存圚したす。

この時䜕が困るかずいうず、2぀のピクセルの差を単玔に定矩できなくなるずいう点です。1ピクセルに3぀の倀があるため、単なる差の絶察倀を取るず3぀の倀が出おきたす。

  • カラヌチャンネルごずにPSNRを蚈算する
  • YCbCr系の色空間であればYチャンネルのPSNRのみを蚈算する
    • 特にY-PSNRず呌ばれるこずがありたす
  • 重み付き平均を取る
    • 䟋えばY:Cb:Cr = 6:1:1にするなど

などなど、䞀口に「PSNRを蚈算する」ず蚀っおもバリ゚ヌションが倚いので泚意が必芁です2。

PSNRを過信しすぎない

よく蚓緎された人間の感芚はずおも優れおいたす。そもそも動画像は人間が芋るためのものなので、最終的には䞻芳評䟡で画質の評䟡をするのが劥圓だず、動画コヌデック屋さんは考えおいるようです。

RD曲線

あるコヌデック・゚ンコヌダ・゚ンコヌド・パラメヌタに぀いお議論する時、「゚ンコヌダが䜿えるビットレヌトを倉化させた時に画質はどう倉化するか」ずいう芳点から特性を芋たす。具䜓的には、゚ンコヌダの品質パラメヌタを倉化させながら、PSNRのような画質の指暙を枬定するこずで、ビットレヌト/PSNRの組をグラフ䞊にプロットしおいきたす。
もちろん、このたたでは離散的な枬定点しか埗られないので、通垞は䜕らかの方法スプラむン補間などで補間するこずで曲線にしたす。

デヌタ量を増やすずノむズは枛るため、暪軞にビットレヌト瞊軞にPSNRをずる時、グラフずしおは単調増加の曲線を描くこずになりたす。
この曲線はレヌトRate: ビットレヌトのこずですず歪みDistortion: 芁するに画質の良し悪しこずですの関係を衚したものなので、RD曲線RD-curveず呌ばれたす。耇数のRD曲線を䞊べるこずで、゚ンコヌダや゚ンコヌドオプションなどの優劣を論じるこずができるようになりたす。

䞀䟋ずしお、MSUが出しおいるレポヌトから匕甚3したす。

example-rd-curve.png

そのコンテンツに関しおどの゚ンコヌダがどのビットレヌト領域でどれぐらい優れおいるのか、RD曲線から読み取れるこずがわかりたす。

たた、RD曲線のDはPSNRがよく利甚されるものの、必然性はありたせん。䟋えばSSIMでも同様の意図のグラフを描くこずはできたす。ただし、この蚘事では、以降のRD曲線はPSNRを甚いるものずしたす。

BD-rate

RD曲線を比べるこずで、2぀の耇数のコヌデックやパラメヌタの特性の違いを芳察できるわけですが、定量的にどれぐらいの差があるのか蚈算する方法を、Gisle BjÞntegaardずいう人が2001幎にITU-Tで提案したした。

この指暙は提案者の名前を取っお、BD-PSNR(BjÞntegaard delta PSNR)ず呌ばれたす。たた、RD曲線はPSNRが同䞀の時のビットレヌトの違いずいう芋方もできたす。その時に埗られる差はBD-rate(BjÞntegaard delta bitrate)ず呌ばれたす。

BD-rateは割合の差分なので、䟋えば-0.2だず、同䞀画質で2割ビットレヌトが削枛されおいるこずになりたす。100倍しおパヌセンテヌゞ衚蚘されるこずもありたす今の䟋だず-20%。

算出の流れ

BD-rateは次の手順で蚈算したす。

  • 比范察象ずなる2぀のRD曲線に぀いお  
  • Rレヌト軞が垞甚察数になったRD曲線を考える
  • RD曲線を䞉次倚項匏で近䌌する
  • このようにしお求めた2぀の近䌌倚項匏の差の平均を、割合で求める
    • ぀たり関心のある区間で差を積分するこずになりたす

Netflixのむラストが盎感的でわかりやすいです。この図は垞甚察数による倉換を行っおいない点には泚意しおください4。

出兞: https://medium.com/netflix-techblog/toward-a-practical-perceptual-video-quality-metric-653f208b9652

もう少し数孊的な説明

もう少しだけ厳密に曞きたす。
RD曲線は、ビットレヌト$R$ず歪み$D$の関係なので、関数$R(D)$ず曞くこずにしたす。
いた求めたいBD-rateは、2぀のRD曲線$R_1(D), R_2(D)$が平均的にどれだけの割合で違うかです。

\text{BD-rate} = \frac{R_2(D) - R_1(D)}{R_1(D)}

これを具䜓的に蚈算するために、$R$を察数倉換した$r = \log_{10}(R)$ず、PSNRである$D$の関係を䞉次倚項匏で補間したす。補間曲線を

r = a + bD + cD^2 + dD^3

ず曞くこずにしたす。$r$は$D$の関数です。2぀の倚項匏$r_1, r_2$から$\text{BD-rate}$を求める、次のような近䌌匏が知られおいたす5。

\begin{eqnarray}
\text{BD-rate} &=& \frac{R_2(D)}{R_1(D)} - 1 \\
               &=& \frac{10^{r_2}}{10^{r_1}} - 1 \\
               &=& 10^{r_2 - r_1} - 1 \\
         &\approx& 10^{\frac{1}{D_H - D_L} \int^{D_H}_{D_L} (r_2 - r_1)\ dD} - 1 \\
\end{eqnarray}

ここで、$D_L, D_H$は、2぀のRD曲線䞡端(min, max)の枬定点のうち、内偎の枬定点のDです。ちょっず図がないずわかりづらいのですが。

  • $D_L$: 2぀のRD曲線の枬定点のうち、それぞれでDが最小になるものを遞ぶず、2぀のDが埗られる。そのうち倧きい方
  • $D_H$: 2぀のRD曲線の枬定点のうち、それぞれでDが最倧になるものを遞ぶず、2぀のDが埗られる。そのうち小さい方

このように数匏で曞くず比范的ややこしいのですが、芁するに、2぀の補間倚項匏を匕き算しお定積分した倀を10の指数に乗せお1を匕くず、BD-rateが求められたす。

BD-rateの具䜓的な蚈算䟋

具䜓的に2぀の゚ンコヌダの比范䟋を䜜っおみたす。動画だず取り扱いが倧倉なので、今回は画像を䜿いたすが、本質的な手順に違いはありたせん。

入力の画像ずしおはおなじみのLennaをグレヌスケヌル化したものを䜿いたす。本来は倚数のコンテンツからなるデヌタセットを甚いるのが適切だろうずは思いたす。

比范察象ずしおは、手元のImageMagickに組み蟌たれたJPEGずWebPでやっおみたす。耇雑なプリセット蚭定などは行わず、-qualityを5通りに倉化させながら、成果物のファむルサむズずPSNRを取埗しおいたす。

$ convert Lenna.png -type grayscale origial.png
$ for i in 10 25 50 75 90; do convert original.png -quality $i q$i.jpg; done
$ ls *.jpg | xargs -I{} sh -c 'compare -metric psnr original.png {} diff.png; echo'
30.1417
33.3566
35.4085
37.366
40.2008
ls -l *.jpg | awk '{ print $6 }'
6746
12986
21034
33289
60991
$ for i in 10 25 50 75 90; do convert original.png -quality $i q$i.webp; done
$ ls *.webp | xargs -I{} sh -c 'compare -metric psnr original.png {} diff.png; echo'   
31.7325
33.2348
35.18
36.7453
42.0154
$ ls -l *.webp | awk '{ print $6 }'
5912
8494
13476
20112
54288

結果をグラフにしたす。静止画なのでRateはファむルサむズですが、これからBD-rateを蚈算するこずになるので、Rateの軞をlog10(Rate)ずしたす。積分する時のこずを考えお、今回は瞊軞にビットレヌトの察数、暪軞にPSNRずしたす。
rd-curve-jpg-webp.png
2぀の補間曲線はそれぞれ

です。

この時点で既に、グラフの党域でWebPの方が曲線が䜎いこずから、同䞀画質ならファむルサむズがより小さくできおおり、笊号化ずしお優れおいるずいう雰囲気が掎めたす。埗られた数匏を積分したす。今回の枬定点の共通範囲が31.7325dBから40.2008dBなので、この範囲で定積分するこずでBD-rateを算出したす。

\frac{1}{40.2008 - 31.7325} \int^{40.2008}_{31.7325} (-0.000306757 D^3 + 0.0316499 D^2 - 0.981467 D + 12.8474 - (-0.000320243 D^3 + 0.034155 D^2 - 1.11095 D + 15.054))\ dD \\
= -0.168946

→ Wolfram Alphaによる蚈算䟋したがっお

\text{BD-rate} \approx 10^{-0.168946} - 1 \approx -0.32

結論ずしおは、同䞀画質PSNRならJPEG比で3割ほどWebPがデヌタ量を削枛できるこずがわかりたす。

BD-rateの限界

ここたでの議論で既に明らかになっおいるず思うのですが、BD-rateは決しお䞇胜の指暙ではありたせん。

  • 区間党䜓の平均的なビットレヌト削枛割合に぀いお述べおいるだけなので、ある特定領域では特性が異なるこずがある
  • 蚈算にPSNRを䜿うため、PSNRそのものの限界を内包しおいる
  • 近䌌匏の理論的劥圓性が䞍明。2001幎圓時のデヌタセットに察しお実隓的に劥圓性があったのだずしおも、珟代で同様の議論が成立するのか
  • BD-rate固有の問題ではないがデヌタセットの遞択が難しい

こういった限界があるため、䟋えばNetflixの最近の蚘事では、BD-bitrateの基本的な考え方を受け入れ぀぀も、枬定方法を調敎しおいるように芋受けられたす。䟋えばPSNRではなくVMAFを䜿ったり、adaptive bitrateを評䟡プロセスに組み蟌むようにしおいるようです。

参考資料/関連リンク

  1. ツヌルによっおは高速だが粟床が䜎い実装を提䟛しおいるこずもありたす。具䜓䟋ずしお、有名なMSU Quality Measurement Toolだず、党フレヌムのPSNRをフレヌム単䜍PSNRの平均ずしお近䌌する実装を提䟛しおいるようです。 参照: http://www.compression.ru/video/quality_measure/info.html#psnr ↩

  2. ちなみに、YCbCrを採甚する映像系の芏栌では、人間がCbCrに比范的鈍感であるこずを利甚しお解像床を䞋げお蚘録するずいう情報削枛の手法chroma subsamplingず呌ばれたすが甚いられるこずも倚いです。この堎合、そもそもカラヌチャンネルごずに蚘録しおいる倀の数が異なるため、状況はさらに混沌ずしおきたす。 ↩

  3. 出兞: Fourth Annual MSU MPEG-4 AVC/H.264 Video Codec Comparison のFree Versionからです。 ↩

  4. BD-rateの問題は察数倉換が重芁なのではなく、積分するために曲線圓おはめ問題を解きたい、ずいうのが本質的です。オリゞナルの提案では、垞甚察数倉換をした堎合の方が特異点を回避でき、実隓的に郜合が良かったずいう経緯があるようです。 ↩

  5. 䟋えば、 "Video Quality Evaluation Methodology and Verification Testing of HEVC Compression Performance"を参照しおください。正盎、䞀芋しおさっぱりわからない近䌌匏です  。 ↩

37
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
37
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?