åç»ã³ãŒããã¯/åç»ãšã³ã³ãŒãåšãã®è©±ã§ããããã¯äžäŸã§ãããå··ã«ã¯ãH.265ã¯H.264ãšåçç»è³ªã§ããŒã¿éãååã«ãªããã¿ãããªèšèª¬ãèŠãããŸãã
ãH.264/MPEG-4 AVC以äžã«å§çž®å¹çãé«ããŠåå以äžã®ãããã¬ãŒããå®çŸãããã¢ãã€ã«ããã€ã¹ãã4Kè§£å床ãªã©ã®è¶ è§£å床ãããªã«ãããå©çšãæ³å®ããŠããã
https://pc.watch.impress.co.jp/docs/news/585297.html
ãã¶ãããæ°ããæè¡ã ããããããã ãããšæãäžæ¹ã§ãç»è³ªã»ãããã¬ãŒãã«é¢ããæ ¹æ ãšãããèãæ¹ããã£ã±ãããããŸãã ![]()
- ç»è³ªãšèšãããŠãäœãã©ããã£ãŠæž¬å®ããŠããã®ã
- ã©ããªæ¡ä»¶ã§ããŽã£ããååã«ãªãã®ãïŒ ãããã«ãããªããšã¯ãªãããïŒ
ããããããªããããŠå°ã£ãã®ã§ãäŒç€Ÿã®èªåžã®è¿ãã«ããåç»ãšã³ã³ãŒãã®å°éå®¶ã«åºæ¬çãªäºé ã«ã€ããŠæãã£ãŠã¿ãã®ã§ããã®å 容ããŸãšããŸããã¡ãããšããå°éå®¶ããèŠããšæãç®æãããããç¥ããŸããã®ã§ã泚æãã ããã
TL;DR
- åç»ã³ãŒããã¯ããã®ãã©ã¡ãŒã¿ã®åªå£ã¯ãããããŒã¿ã»ããã«å¯ŸããBD-rateãèšç®ããããšã§æ±ãã
- BD-rateã¯RDæ²ç·ããèšç®ãã
- RDæ²ç·ã¯ãPSNRãªã©ã®è©äŸ¡ææšããèšç®ãã
èŠæ £ããªãåèªããããã䞊ãã§ããŸããŸãããé çªã«ãŸãšããŠãããŸãã
PSNR
ææšã®äœçœ®ã¥ã
åç»åã®ç»è³ªã«ã€ããŠè©äŸ¡ããéã«ã¯
- 人éãããèŠæ Œåãããæé ã§èгå¯ããŠãç»è³ªã®è¯ããã¹ã³ã¢ãªã³ã°ãã
- äœããã®ã¢ã«ãŽãªãºã ã§ãç»è³ªã®è¯ãã¹ã³ã¢ããç®åºãã
äž»ã«ãã®äºéãã®åãå£ã§è°è«ãããããšãå€ãã§ããåè ã䞻芳è©äŸ¡ã»åŸè ã客芳è©äŸ¡ãšåŒã³ãŸãã
PSNRãšã¯
客芳è©äŸ¡ææ³ã®ãã¡ãïŒè²ã ãšåé¡ã¯ããã®ã§ããïŒãã䜿ãããŠããå€å žçãªã¡ããªã¯ã¹ãPSNRã§ãããã®ã¡ããªã¯ã¹ã¯full-referenceåãã€ãŸããšã³ã³ãŒãã«ãã£ãŠéå¯éå§çž®ãããåãšåŸãæ¯èŒããçºçããå·®åããã¹ã³ã¢èšç®ãããã®ã§ããããã«é¢ããŠã¯ãâãªã©ã®è§£èª¬èšäºã沢山ããã®ã§è©³çްãçç¥ããŸãã
ãã®èšäºã§ã¯ã次ã®ãããªçè§£ã§ååã§ãã
- PSNRã¯ãæ¯èŒå¯Ÿè±¡ã®2ã€ã®åç»åãå ¥åãããšã¹ã³ã¢ãåŸãããäžçš®ã®é¢æ°ãšã¿ãªãã
- ã¹ã³ã¢ã¯åäœãã·ãã«(dB)ã§åŸããããå žåçã«ã¯30dBãšã40dBãšãããããããã®æ°åã«ãªã
- 倧ããã»ã©ããããã€ãŸããå å ¥åã®åçŸåºŠãé«ã
- åç»ã«å¯ŸããŠé©çšããå Žåãåç»ã®å šãã¬ãŒã ã®å·®åå¹³åããèšç®ãã1
PSNRåãæ±ãã®æ³šæç¹
PSNRã¯ãèšç®åŒèªäœã¯ãšãŠãåçŽãªã®ã§ãããå®çšããã«ã¯æ³šæç¹ãšããã埮åŠãªç¹ã倿°åºãŠããã®ã§ããã®ããããžã®é æ ®ãå¿ èŠã§ãïŒãããããã£ãäžã§äœ¿ãããšã«ãªããŸãïŒã
人éã®äž»èгãšã®çžé¢ã¯ãã»ã©ã»ã©çšåºŠïŒå¿ ãããè¯å¥œãšã¯èšããªãïŒ
Netflixã¯ãèªç€Ÿã®ããŒã¿ã»ããã«é¢ããŠäž»èгè©äŸ¡ãšå®¢èгè©äŸ¡ã¡ããªã¯ã¹ã®çžé¢ã調æ»ããçµæãå ¬è¡šããŠããŸãã
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ããŸãã
ïŒãã®ã³ã³ãã³ãã«é¢ããŠïŒã©ã®ãšã³ã³ãŒããã©ã®ãããã¬ãŒãé åã§ã©ããããåªããŠããã®ãã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ãšããŸãã

2ã€ã®è£éæ²ç·ã¯ãããã
- JPEG: $r_1 = -0.000320243 D^3 + 0.034155 D^2 - 1.11095 D + 15.054$ ïŒâWolfram Alphaã«ããèšç®äŸïŒ
- WebP: $r_2 = -0.000306757 D^3 + 0.0316499 D^2 - 0.981467 D + 12.8474$ ïŒâWolfram Alphaã«ããèšç®äŸïŒ
ã§ãã
ãã®æç¹ã§æ¢ã«ãã°ã©ãã®å šåã§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ãè©äŸ¡ããã»ã¹ã«çµã¿èŸŒãããã«ããŠããããã§ãã
åèè³æ/é¢é£ãªã³ã¯
- Digital Video Concepts, Methods, and Metrics
- https://medium.com/netflix-techblog/performance-comparison-of-video-coding-standards-an-adaptive-streaming-perspective-d45d0183ca95
- https://code.fb.com/video-engineering/av1-beats-x264-and-libvpx-vp9-in-practical-use-case/
- https://streaminglearningcenter.com/encoding/compute-bd-rate-functions.html
-
ããŒã«ã«ãã£ãŠã¯é«éã ã粟床ãäœãå®è£ ãæäŸããŠããããšããããŸããå ·äœäŸãšããŠãæåãªMSU Quality Measurement Toolã ãšãå šãã¬ãŒã ã®PSNRããã¬ãŒã åäœPSNRã®å¹³åãšããŠè¿äŒŒããå®è£ ãæäŸããŠããããã§ãã åç §: http://www.compression.ru/video/quality_measure/info.html#psnr â©
-
ã¡ãªã¿ã«ãYCbCrãæ¡çšããæ åç³»ã®èŠæ Œã§ã¯ã人éãCbCrã«æ¯èŒçéæã§ããããšãå©çšããŠè§£å床ãäžããŠèšé²ãããšããæ å ±åæžã®ææ³ïŒchroma subsamplingãšåŒã°ããŸãïŒãçšããããããšãå€ãã§ãããã®å Žåãããããã«ã©ãŒãã£ã³ãã«ããšã«èšé²ããŠããå€ã®æ°ãç°ãªããããç¶æ³ã¯ããã«æ··æ²ãšããŠããŸãã â©
-
åºå ž: Fourth Annual MSU MPEG-4 AVC/H.264 Video Codec Comparison ã®Free Versionããã§ãã â©
-
BD-rateã®åé¡ã¯å¯Ÿæ°å€æãéèŠãªã®ã§ã¯ãªããç©åããããã«æ²ç·åœãŠã¯ãåé¡ãè§£ãããããšããã®ãæ¬è³ªçã§ãããªãªãžãã«ã®ææ¡ã§ã¯ãåžžçšå¯Ÿæ°å€æãããå Žåã®æ¹ãç¹ç°ç¹ãåé¿ã§ããå®éšçã«éœåãè¯ãã£ããšããçµç·¯ãããããã§ãã â©
-
äŸãã°ã "Video Quality Evaluation Methodology and Verification Testing of HEVC Compression Performance"ãåç §ããŠãã ãããæ£çŽãäžèŠããŠãã£ã±ãããããªãè¿äŒŒåŒã§ãâŠâŠã â©