前面的錯誤太多不知道怎麼吐槽了…
簡單找一個的話
444应该比420多出1倍数据才对,即使经过预测、有损压缩也应该没有理由比420还小吧
當然我可以回『10bit应该比8bit多出25%的数据才对,即使经过预测、有损压缩也应该没有理由比8bit还小吧』之類的…
不過問題的關鍵不在這裡
8bit rgb->16bit yuv444就當作用了Dither工具
後面的round具體是怎麼做的,沒有給出腳本,畢竟8bit rgb->16bit yuv444這個過程的round應該不是用我之前給的腳本,實時上這個過程avs內目前應該都是mt_lut默認的float->int的round
出yv12時是先轉yv24再轉yv12,為什麼要二次轉換而不是一步到位,沒有給出理由
avs內rgb->yuv444和rgb->yuv444->yuv420的結果本身不相同,所以x264的輸入源不相同,對比輸入源不相同的編碼結果很奇怪
不過內容的同crf不代表質量相同,crf是constant rate factor,不是constant quality,很多人以為crf相同時出來的質量相同,但是crf下受aq、mbtree、psy的影響非常大,源不同的話沒有參考意義
yv24比yv12細節更多,這又是一個沒有什麼根據的說法。yv24和yv12全是rgb轉換後出來的,如果8bit rgb到10bit yuv420的轉換有比較大的損失,那麼8bit rgb到10bit yuv444相比之下應該可以
保留更多的細節。但是10bit的yuv420從數據量的角度上已經幾乎能保留全部的8bit rgb內容,yv24多出的數據到底是細節還是冗餘很值得懷疑。就好比輸入的是8bit的視頻,我shift到10bit數據量不會有任何變化,兩位lsb都是0,如果不壓縮的數據總量就說10bit比這個轉換前的8bit細節更多顯然是無稽之談。如果10bit yuv444多出的部分是冗餘的話,這種冗餘是order形式適合編碼(但是數據內容也許是不必要的冗餘甚至是錯誤的插補,反正不管哪一種都會影響到播放時渲染端轉換rgb的質量,因為前期的chroma upsampling目前看來似乎沒有比渲染端madVR做得更好的)還是不適合編碼的,沒有考慮進去
mawen上面提到的chroma-qp-offset確實也是測試結果的一個可能的原因。不過需要稍微更正一下,420下默認的chroma-qp-offset不是-2,444下也不是4。chroma-qp-offset的默認始終是0。但是這個offset根據psy-rd的設置會進行補償,隨著psy-rd/trellis的提高,chroma-qp-offset會逐步降低(是在設置的基礎上降低,譬如不設置時在默認的0的基礎上降低,設置時在設置值的基礎上降低),然後444下會對這個經過psy-rd補償後的chroma-qp-offset再加6,所以最終x264用的chroma-qp-offset是經過這一系列補償後的值。另外444下chroma計算ac energy的時候也有些影響,目前看來似乎444下ac energy的計算比較奇怪(也許是錯誤的),可能會導致aq與mbtree受影響。而且444出來時有不少人做過測試,有時候444比420出來的碼率更低,有時候則更高,想嚴謹地測試的話首先要考慮質量,其次還要大量的sample,光憑一個視頻的結果沒有說服力。D9上有個很微妙的測試裡umh+merange=9比除了merange=32之外的任何值的SSIM都要高,但是如果因此就說merange=9比12、16、24、48、64都好則顯然無法接受
還有一點,x264的版本也是有影響的。vanilla版的沒有加入skip depth filter的patch,10bit yuv的輸入會先upscale到16bit,再dither回10bit…
avs內Compare(a, b)可以得到PSNR,記得RGB是可用的
LZ想比較420和444的質量與編碼效率的話,x264內--tune psnr,然後取最開始的rgb與編碼完成後的yuv420/444轉換得到的rgb之間的psnr,繪出兩條psnr/bitrate曲線,看曲線就能比較了。當然這樣還是不能保證幾個過程中的chroma up/down-sampling沒問題。我個人認為這種沒有任何保障的chroma up/down-sampling能不做就盡量別做
つまんねー事聞くなよ!
I, personally, for me, believe (
obviously sometimes) that my
OS choice is right. That's me. I'm not telling you that you should believe it. Learn the facts, and the origins behind the facts, and make up your own damn mind. That's why you have one. (
source)
Follow me:
@06_taro
世界304日——
为纪念伟大的宇宙史上最强压制
304先生,联合国教科文组织决定,将每年的第304天,即平年的10月31日或者闰年的10月30日,定为世界304日。