MeGUI/x264 設定/x264 統計輸出
此頁面試圖記錄統計資料的含義,更重要的是,你可以從統計資料中瞭解到什麼。具體來說,哪些編碼設定可能有用,或者你的編碼設定做了什麼。
除了選擇預設(有時還包括一個或多個--tune 設定)之外,通常不需要調整設定。如果你想真正檢查編碼在與其他設定相同的位元率下是否看起來更好,你仍然需要檢視輸出結果。
統計輸出可以幫助你瞭解可能想要調整哪些內容,而不是衡量編碼是否成功。--tune ssim --ssim(或 psnr)可能有用,但無法幫助 psy 設定(心理視覺,即對人類來說看起來更好,但質量指標更差)。
如果你已經進行了一次編碼,並想嘗試不同的設定,最好的方法是進行 2 次編碼,目標位元率與第一次編碼相同,但設定有所修改。當然,要使用相同的原始檔。然後,你可以透過視覺或計算(SSIM & PSNR)來比較這兩個相同位元率的編碼。請記住,CRF 的行為受許多設定的影響,因此你不能說以相同 CRF 產生較小檔案大小的設定更好。你還必須比較質量。(x264 可以準確地達到位元率目標,而不是 SSIM 或 PSNR 目標,這就是推薦使用 2 次編碼來比較不同設定的速率失真效能的原因。)
典型的 x264 輸出
avis [info]: 1280x720 @ 1.77 fps (40997 frames)
使用 Avisynth 時,這行顯示有關輸入的基本資訊。
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 PHADD SSE4 Cache64
請注意,這並不一定與你的 CPU 能力相匹配。在某些晶片上,x264 不會使用某些指令集,因為它實際上更慢。
x264 [info]: profile High, level 4.0
關於流的 h264 配置檔案和級別的資訊。配置檔案是由使用的選項隱含的(例如,B 幀意味著至少為主配置檔案,8x8dct 意味著至少為高配置檔案),此處僅供參考。級別是寫入位元流中的數字。你可以使用--level顯式設定所需的級別,也可以不設定,讓 x264 猜測(相當準確)。
x264 [info]: frame I:879 Avg QP:21.39 size: 59921 x264 [info]: frame P:24856 Avg QP:25.44 size: 12473 x264 [info]: frame B:61727 Avg QP:28.98 size: 3759
對於三種幀型別中的每一種,顯示幀總數、每幀型別中每個宏塊的平均量化器以及所述幀型別的平均大小。QP 應該透過--ipratio 和 --pbratio 來關聯,但 mbtree、psy/aq 和除恆定 QP 之外的速率控制模式將
x264 [info]: consecutive B-frames: 4.8% 6.0% 12.1% 51.5% 15.9% 8.0% 1.8%
該數量的 B 幀序列中幀的百分比。P = 1、PB = 2、PBB = 3,依此類推。如果數字逐漸減小到接近零,那麼你可能不會透過提高連續 B 幀限制來獲得任何好處。(反過來並不總是成立:即使 x264 大部分時間選擇使用 3 個連續的 B 幀,--bframes > 3 也並不一定有顯著的收益。)
x264 [info]: mb I I16..4: 17.9% 68.9% 13.2% x264 [info]: mb P I16..4: 9.2% 12.1% 0.6% P16..4: 40.4% 5.6% 6.7% 0.1% 0.0% skip:25.2% x264 [info]: mb B I16..4: 0.9% 1.1% 0.1% B16..8: 36.7% 2.7% 0.5% direct: 2.1% skip:55.9% L0:44.6% L1:52.5% BI: 3.0%
每一行中的數字加起來為 100%,涵蓋每種幀型別中的所有宏塊。
對於三種幀型別(I、P、B)中的每一種,顯示使用了哪些分割槽。I 幀只能使用 I 宏塊,而 P 幀和 B 幀可以使用 I 或其本機宏塊型別。
are what percentage of partitions within are either I or the native type of partitions (which is P for P MBs and B for B MBs). The three numbers for I frames represent i16x16, i8x8 and i4x4. For P/B frames, the five numbers represent 16x16, 16x8/8x16, 8x8, 8x4/4x8 and 4x4. (B can't use 8x4/4x8 or 4x4). In this example,
跳過顯示使用跳過向量而無需殘差的分割槽的數量,而直接顯示使用跳過向量帶殘差的分割槽的數量。 跳過向量是什麼?它非常非常複雜。。(推測:你的編輯認為,這些跳過向量,如之前作者所稱,是運動搜尋找到的內容。因此,大量的“跳過”和“直接”分割槽意味著運動搜尋找到了足夠好的參考,使得向量(+ 殘差)比其他編碼塊的方式具有更好的 RD 權衡。)
對於 B 分割槽,在行末添加了另一個列表。B 分割槽可以從以前的幀(L0 參考列表)預測,也可以從將來的幀(L1 參考列表)預測,或者從過去和未來幀的混合(BI(雙向))預測。
x264 [info]: 8x8 transform intra:56.8% inter:76.6%
8x8dct 實際使用的頻率。
x264 [info]: direct mvs spatial:99.9% temporal:0.1%
使用每種直接/跳過運動向量計算方法的幀的百分比。請參閱上面關於跳過向量的說明。2pass 模式是--direct auto 在典型內容上使用少量時間 MV 所必需的,但當沒有特定的位元率目標時,crf 仍然被廣泛推薦。
x264 [info]: coded y,uvDC,uvAC intra: 32.3% 49.4% 12.6% inter: 5.9% 10.5% 0.5%
對於每種型別的塊,編碼(非零 DCT 係數)的比例是多少。
x264 [info]: i16 v,h,dc,p: 32% 19% 10% 39% x264 [info]: i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 15% 10% 14% 8% 11% 12% 11% 10% 9% x264 [info]: i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 18% 15% 7% 7% 11% 11% 11% 9% 11% x264 [info]: i8c dc,h,v,p: 39% 26% 21% 14%
每種分割槽型別使用每種預測模式的頻率。(FIXME:找到有關 h.264 預測模式的更多詳細資訊的連結,或者任何關於此資訊如何用於檢視你的設定做了什麼的建議。)
x264 [info]: Weighted P-Frames: Y:2.7% UV:2.1% x264 [info]: ref P L0: 56.2% 10.9% 15.7% 5.2% 3.9% 2.8% 2.4% 1.3% 1.3% 0.3% 0.0% x264 [info]: ref B L0: 81.1% 9.2% 4.6% 1.9% 1.3% 1.0% 0.6% 0.2% x264 [info]: ref B L1: 94.6% 5.4%
P 分割槽和 B 分割槽實際使用了哪個參考影像。L0 是過去參考影像的列表。L1 是未來。此示例輸出來自preset=veryslow 編碼,ref=9,但 P 參考列表有 11 個條目。最後兩個是 x264 實現weightp 的方式產生的虛擬重複。產生的流的解碼器將看不到它們;它們不會佔用 DPB(解碼影像緩衝區)空間。
與連續 B 幀類似,如果列表逐漸減小到接近零,則可以使用較低的refs,幾乎不會影響效果。請注意,此列表不會告訴你找到的匹配度有多好:即使列表沒有減小到零,如果來自更遠的幀的參考只是略微好一點,那麼使用更少的參考可能不會對壓縮造成很大影響。它也不會告訴你是否在更遠的幀中找到了更好的匹配。((推測) 只有具有重複模式的非常合成的輸入才有可能在例如從 8 個參考增加到 12 個參考時看到壓縮率的很大提高,並且該模式每 10 幀重複一次。)
外部連結
- Dark Shikari 和其他人回答了一些關於統計輸出的問題
- 列印統計輸出的函式是 encoder.c 中的
x264_encoder_close(截至 2015 年 2 月,從第 4003 行開始)。