跳轉到內容

MeGUI/x264 設定

來自華夏公益教科書

x264 設定

[編輯 | 編輯原始碼]

幀型別選項

[編輯 | 編輯原始碼]

整數: 250

設定 x264 輸出中 IDR 幀(又名關鍵幀)之間的最大間隔。通常,x264 只有在透過 scenecut 設定的閾值時才會使幀成為 IDR 幀。此設定允許您在 IDR 幀出現之前放置一個上限。IDR 幀是流中的“分隔符” - 任何幀都不能引用 IDR 兩側的資料。這意味著它們可以被用作在電影中隨機查詢的點(您不能僅僅從任何地方開始播放,因為幀會引用前面的幀,而前面的幀會引用前面的幀,等等)。請注意,雖然 IDR 幀一定是 I 幀,但並非所有 I 幀都是 IDR 幀。大多數情況下,x264 會將新攝像機場景的第一幀設為 IDR 幀,因此此設定在大多數情況下都不會發揮作用。更高的設定理論上可以提高壓縮率(減少強制 IDR 幀的數量,否則這些幀會是更小的 P 或 B 幀),以及在平均量化器較高時減少質量波動現象的出現(因為 I 幀與它們的鄰居在偽影方面沒有任何相似性,所以偽影更顯眼)。較低的設定可以減少查詢特定幀所需的時間。

推薦:預設值,或您幀速率的 10 倍。在 CPU 要求很高的高畫質編碼中,您可能需要使用更小的值(例如幀速率的 2 倍到 5 倍)。

另請參見:min-keyintscenecut

min-keyint

[編輯 | 編輯原始碼]

整數: 25

設定 IDR 幀之間的最小長度。請參閱 keyint 以瞭解 IDR 幀的解釋。非常小的 IDR 範圍可以減少“不正確”幀的放置(例如,閃爍的場景)。此選項限制了每個 IDR 幀之後放置另一個 IDR 幀之前的最小長度。

推薦:預設值,或您的幀速率。

另請參見:keyintscenecut

整數: 40

設定 IDR 幀放置的閾值(即:場景變化檢測)。x264 計算每個幀的度量來估計它與前一幀的差異。如果值低於 scenecut,則使用 IDR 幀。度量稍微複雜一些,但這是一個合理的近似值。scenecut 的較高值會增加檢測到的場景分割的數量。有關場景分割比較工作原理的更多資訊,請參閱 此 doom9 執行緒

另請參見:keyintmin-keyintpre-scenecut

pre-scenecut

[編輯 | 編輯原始碼]

預設:在 --threads 1 時停用,否則啟用

啟用更快的場景分割機制。當您使用多於一個執行緒時,它預設情況下是啟用的,因為常規(非預先)場景分割不適用於執行緒。常規 IDR 幀編碼透過正常編碼幀來工作,然後如果幀透過場景分割測試,則將其重新編碼為 IDR 幀。預先場景分割在編碼之前檢測幀是否應該為 IDR 幀,並相應地進行操作。理論上,預先場景分割不如常規場景分割好,但通常成本很低。有關由於錯誤的 IDR 幀放置導致的質量損失的更多資訊,請參閱 此 doom9 執行緒

建議:預設

另請參閱:keyintmin-keyintscenecutthreads

整數:0

設定 x264 可以使用的最大併發 B 幀數量。B 幀類似於 P 幀,不同之處在於它們還可以使用來自未來幀的運動預測。這可以顯著提高壓縮比方面的效率。它們的平均質量由 pbratio 控制。有關 x264 在每個候選幀之間選擇 P 幀或 B 幀的詳細資訊,請參閱 此 ffmpeg-devel 郵件。在這種情況下,幀型別將如下所示(按顯示順序)(假設 --bframes 3):IBBBPBBBPBPI。

附加資訊:x264 偶爾也會區分兩種不同的 B 幀。'B' 可以指用作其他幀的參考的 B 幀,而 'b' 可以指不是參考的 B 幀。如果您看到 'B' 和 'b' 的混合,這通常與上述情況有關。當差異不重要時,通常使用 'B' 來指代所有 B 幀。

建議:除非您使用 --b-adapt 2,否則選擇 --bframes 16,即最大值。這是編碼器最快也是最靈活的選擇。如果您使用 --b-adapt 2,則更低的 --bframes 是合理的,例如 2-5。更高的值會顯著減慢編碼速度,而不會帶來明顯的好處。要了解編碼中使用了多少 B 幀,請在編碼完成後閱讀 x264 統計輸出中的“連續 B 幀”行。

有時您必須將就更少的 B 幀數量:藍光限制了最大 B 幀數量。

B 幀也可能會增加解碼器 CPU 使用率,但位元率降低(因此減少在 CABAC 上花費的時間)可能會抵消這種影響。任何影響都將很小。

另請參閱:no-b-adaptb-biasb-pyramidrefpbratiopartitionsweightbb-rdobime

no-b-adapt

[編輯 | 編輯原始碼]

注意:此選項用於向後相容,請改用 b-adapt 0。

預設:未設定

停用自適應 B 幀放置。通常,在編碼一組幀時,x264 會將一些幀編碼為 B 幀,將一些幀編碼為 P 幀,混合在一起最有效。這可能意味著在一段時間內不會使用 B 幀。設定此選項會刪除自適應決策並強制 x264 使用盡可能多的 B 幀。

示例:您執行帶有 3 個最大 B 幀的編碼,並且啟用了 b-adapt(即預設值)。您會看到這樣(按顯示順序):IBBPPBBBPBBPBPBPI。如果您再次執行它,但使用了 no-b-adapt,您將看到這樣:IBBBPBBBPBBBPBBPI。請注意,該序列只是在 GOP 的最後三個組中被中斷。此設定沒有真正的優勢,缺點是您降低了 x264 的效率。最終會做出非最佳的幀型別決策。請注意,如果您想在多執行緒模式下強制使用特定數量的 B 幀,則還需要停用 scenecut,將其設定為 -1:這是因為 pre-scenecut 不適用於 no-b-adapt。

建議:預設,請參閱上述。

另請參閱:b-frames

注意:對於多遍編碼,此選項僅在決定幀型別的第一遍需要。

0 - 停用

1 - 舊演算法,更快,隨著 b-frames 設定的提高,速度略微提高。

2 - 新演算法,更慢,隨著 b-frames 設定的提高,速度顯著降低。

整數:0

控制使用 B 幀代替 P 幀的可能性。大於 0 的值會增加對 B 幀的權重,而小於 0 的值會相反。此數字不是百分比或絕對增長,只是一個任意度量數字。範圍為 -100 到 100。請注意,值為 100 並不能保證每個 P 幀都會被轉換(使用 no-b-adapt 來實現這一點)。

只有在您認為自己比 x264 做出更好的位元速率控制決策時才使用此選項。

建議 0

另請參閱:b-frames,另請參閱:ipratio

b-pyramid

[編輯 | 編輯原始碼]

預設:未設定

允許將 B 幀用作其他幀的參考。沒有此設定,幀只能引用 I 幀或 P 幀。儘管 I/P 幀因為其質量更高而更受重視,但 B 幀也可能有用。被指定為參考的 B 幀將獲得介於 P 幀和普通 B 幀之間的量化器。

建議:啟用,如果您至少有兩個 B 幀。會略微降低編碼速度。注意:在舊版本的 x264 中,這會增加 DPB 大小,但現在根據 ref 是恆定的。

另請參閱:b-framesrefsmixed-refs

預設:未設定

停用 CABAC (Context Adaptive Binary Arithmetic Coder) 流壓縮,並回退到效率較低的 CAVLC (Context Adaptive Variable Length Coder) 系統。顯著降低了壓縮效率和解碼需求。

許多手持裝置沒有足夠的處理能力來回放 CABAC 內容,因此您需要為它們編碼 CAVLC。Apple 計算機生產的東西也往往缺乏正確解碼 CABAC 的能力。CABAC 相比 CAVLC 的優勢是壓縮率提高了 10-20%。

建議:預設,始終,除非您的播放器不支援它。

預設:1

控制 DPB (Decoded Picture Buffer) 的大小。範圍為 0..16。簡而言之,此值是每個 P 幀可以使用多少個先前幀作為參考。B 幀可以使用少一個或兩個,具體取決於它們是否用作參考。可以引用的最小參考數量為 1。

請注意,此設定過去用於控制使用的參考數量。請參閱 此 doom9 帖子,其中概述了差異。

另請注意,ITU-T 規範 限制了 DPB,因此限制了每個級別的 ref。如果遵守 級別 4.1 規範,則對於全高 720p 和 1080p 影片,最大 ref 分別為 9 和 4。但是,如果影片高度不是完整的 720 或 1080 畫素,則可以使用更高的 ref。級別 4.1 是藍光和 HD DVD 上實現的級別,也是大多數支援 H.264 播放的消費電子產品中支援的最高級別,包括 Xbox 360、Playstation 3 和 Popcorn Hour A-100 媒體擴充套件器。計算最大 ref 的公式如下,結果應向下取整

最大 ref = 12288 * 1024 / (寬度 * 高度 * 1.5)

建議:大約 4-6。每次增加帶來的好處都會減少,並且速度損失始終存在。通常,過多的參考並沒有什麼用處,但即使高達 16 個參考也有助於動畫內容、影片遊戲捕捉、CGI 和其他類似內容。

另請參閱:b-pyramidmixed-refslevel

no-deblock

[編輯 | 編輯原始碼]

完全停用迴圈內去塊。

另請參閱:deblock

預設:0:0

控制迴圈濾波器(也稱為迴圈內去塊器),它是 h264 標準的一部分。迴圈濾波器在一個專案上佔用了相當一部分解碼時間,並且對總體質量輸出佔用了類似的一部分。它在編碼時間與質量增益方面非常有效。

您可以在 此 doom9 主題 中找到有關迴圈濾波器引數如何工作的詳細說明(請參閱初始帖子和 akupenguin 的回覆)。

建議:預設。如果您覺得 x264 的模糊程度過高,可以使用較低的值,儘管只有在您有足夠的剩餘位元率時才有幫助。合理的值可能在 -3 到 3 之間。請注意,在更高的位元率(因此量化器更低)下,去塊本來就比較弱,因此您無需透過降低去塊設定或反之來“補償”更高的位元率。

另請參閱:yes-deblock 1 -3 -3

interlaced

[編輯 | 編輯原始碼]

預設:未設定

啟用隔行掃描編碼。x264 的隔行掃描編碼效率本來就低於逐行掃描編碼,因此在編碼之前對隔行掃描源進行隔行掃描可能比使用隔行掃描模式更好。

位元速率控制

[編輯 | 編輯原始碼]

預設:未設定

三種可能的位元速率控制方法中的第一種。設定 x264 以 **C**onstant **Q**uantizer 模式編碼影片。您在此處給出的數字指定了 P 幀量化器。用於 I 和 B 幀的量化器是從 ipratiopbratio 派生的。CQ 模式針對特定量化器,這意味著最終檔案大小未知(儘管可以使用某些方法對其進行相當準確的估計)。設定為 0 將產生無損輸出。對於相同的視覺質量,qp 產生的檔案比 crf 大。qp 模式還停用自適應量化,因為根據定義,“恆定量化器”意味著沒有自適應量化。

此選項與 bitratecrf 互斥。有關各種位元速率控制系統的更多資訊,請參閱 此文章

**建議:** 使用 crf 代替

另請參閱:bitratecrfipratiopbratio

預設:未設定

三種位元速率控制方法中的第二種。以目標位元速率模式編碼影片。x264 將嘗試編碼影片以將給定位元速率作為最終平均值。給定的引數是以千位元/秒為單位的位元速率。 (8 位 = 1 位元組,依此類推)。此設定通常與 pass 結合使用以進行兩遍編碼。目標位元速率模式意味著最終檔案大小已知,但最終質量未知(儘管可以使用合理的精度進行估計)。通常不建議在沒有兩遍編碼的情況下使用位元速率模式。

此選項與 cq 和 crf 互斥。有關各種位元速率控制系統的更多資訊,請參閱 此文章

**建議:** 產生 P 幀量化器約為 18-26 的值。估計範圍:對於 SD 解析度:800kbits - 2100kbits。對於 720p,3-6mbit。對於 1080p,8-15mbit+

**另請參閱:** qpcrfratetolpassstats

預設:23

最終的位元速率控制方法:**C**onstant **R**atefactor。雖然 qp 針對特定量化器,而位元速率針對特定檔案大小,但 crf 針對特定“質量”。這個想法是讓 crf n 提供與 qp n 相同的感知質量,只是在更小的空間內。它不是極其準確,但相當接近(並且在大量影片上平均出來會是準確的)。

CRF 透過降低不重要幀的質量來實現這一點。在這種情況下,複雜或高運動場景中的幀(質量更昂貴(以位數計)和/或更不明顯)將增加其量化器。在這些剪輯中節省的位將重新分配到可以更有效地利用它們的幀。CRF 模式提供了與相同位元速率下的兩遍幾乎完全相同的質量;區別在於您無法選擇輸出位元速率。

此選項與 cq 和位元速率互斥。有關各種位元速率控制系統的更多資訊,請參閱 此文章

**建議:** 範圍 18-26 可能是您要檢視的範圍。如果您需要絕對完美的質量,您可以降至 16,但可能不值得。大約 19-21.5 是一個翻錄看起來非常好的地方。更高解析度的編碼通常可以使用更高的 crf 值。

另請參閱:qpbitrate

vbv-maxrate

[編輯 | 編輯原始碼]

預設:0

設定 VBV 模式下的最大位元速率。只有在您有需要它的硬體解碼器時才應使用 VBV。強烈建議(儘管不是必需的)將 VBV 與兩遍位元速率模式一起使用。

另請參閱:vbv-bufsizevbv-init

vbv-bufsize

[編輯 | 編輯原始碼]

預設:0

設定 VBV 緩衝區的大小。只有在您有需要它的硬體解碼器時才應使用 VBV。選擇的緩衝區通常特定於目標裝置。

另請參閱:vbv-maxsizevbv-init

預設:0

設定 VBV 填充緩衝區大小的初始大小。不應調整。

另請參閱:vbv-maxsizevbv-bufsize

預設:10

定義 x264 將使用的最小量化器。量化器越低,輸出越接近輸入。在某個時候,即使 x264 的輸出與輸入不完全相同,但看起來也會相同。通常沒有理由讓 x264 在任何特定幀/區域上花費比這更多的位。對於大多數影片來說,任何低於 q16 的東西都會以這種方式在感知上無損,而任何低於保守的預設 q10 的東西肯定都會無損。

您可以使用此設定來防止建立不必要的大檔案。請注意,如果您將其積極設定(例如設定為 16 或類似),並且您的基於位元速率的編碼沒有達到應有的大小,這可能是原因。您應該分析 x264 在編碼結束時的統計輸出,看看所有幀是否都處於最小量化器。

如果啟用了自適應量化(預設情況下啟用),強烈建議不要將 qpmin 提高到其預設值,因為這會降低幀的平坦背景區域的質量。

另請參閱:qpmaxipratio

預設:51

上面 qpmin 的反面。定義 x264 可以使用的最大量化器。預設值為 51,是 h264 規範中可用的最高量化器,質量極低。此預設值實際上停用了 qpmax。如果您想限制 x264 可以輸出的最低質量,您可以將其設定得更低(通常,30-40 範圍內的值儘可能低),但通常不建議調整它。

另請參閱:qpminpbratio

預設:4

設定兩幀之間量化器的最大變化。如果某幀以 q20 編碼,則下一幀的量化器將被限制,如果它低於 16 或高於 24。

此設定背後的目的是減少輸出影片中出現任何大幅質量跳躍的可能性。其原因是,將這種變化在幾幀內緩慢進行比一次性完成更好。請記住,大多數標準質量的影片最多會在量化器 16-30 之間變化,此設定最多隻能扭曲三幀的位元速率分配。預設值是一個很好的值。

預設:1.0

僅適用於一遍位元速率編碼。設定 x264 可以偏離目標平均位元速率的百分比。1.0 = 1%。這意味著最終平均位元速率(以及相應的檔案大小)將在大約 ±1% 的您設定的值內。

您可以將其設定為“inf”以完全停用此溢位檢測。您可以將其設定為 0 以告知 x264 必須準確達到目標位元率,但它可能並不總是可行,並且通常會降低影片最後幾個%的質量。

許多電影(例如任何動作片)在高潮結局時最複雜。由於 1pass 編碼不知道這一點,因此通常低估了結尾所需的位元數。ratetol 為 inf 可以透過允許編碼更像 crf 編碼來緩解這種情況,但檔案大小會膨脹。

ipratio

[edit | edit source]

預設值:1.40

設定與 P 幀相比,I 幀的平均目標位元率增加。在 xvid 中被視為“關鍵幀提升”。較高的值會提高 I 幀的質量。這使它們成為更好的參考,可以提高整體影像質量。問題是 I 幀佔用的額外位元是從 P 幀和 B 幀中獲取的,這使得這個變數成為一個平衡行為。

另請參閱:pbratio

pbratio

[edit | edit source]

預設值:1.30

設定與 P 幀相比,B 幀的平均目標位元率降低。此變數的工作方式與上面的 ipratio 幾乎相同。

另請參閱:ipratio

chroma-qp-offset

[edit | edit source]

預設:0

通常,x264 以相同的量化器對所有三個顏色平面(亮度、U(色度)、V(色度))進行編碼。此值將新增到 U 和 V 平面的量化器。這允許您透過設定正值(色度欄位將具有更高的量化器)或有利於顏色(色度)來偏向 x264 有利於亮度(亮度)。請記住,x264 將影片編碼為 YV12,這意味著色度只佔亮度空間的一半。

注意:x264 僅在量化器 29 之前以相同的量化器對亮度和色度平面進行編碼。在此之後,色度被逐漸量化,量化程度低於亮度,直到最終亮度為 q51,色度為 q39。此行為不可調整,因為它是 H.264 標準所要求的。

aq-mode

[edit | edit source]

自適應量化模式

預設:1

沒有 AQ,x264 往往會低估分配給較低細節部分的位元。AQ 用於更好地在影片中的所有宏塊之間分配可用位元。此設定更改了 AQ 在其中重新排列位元的範圍

  • 0:根本不使用 AQ。
  • 1:允許 AQ 在每幀內重新分配位元。
  • 2:允許 AQ 在整個影片中重新分配位元。
  • 3:自動方差 AQ,偏向於暗場景。

建議:預設

另請參閱: aq-strength

aq-strength

[edit | edit source]

自適應量化強度

預設值 1.0

設定 AQ 偏向低細節(“平坦”)宏塊的強度。不允許負值。超過 1.0 幾個百分點的值可能不是一個好主意。

建議:預設

另請參閱: aq-mode

預設:未設定

這是 2pass 編碼的重要設定。它控制 x264 如何處理 stats 檔案。它有三種設定

  • 1:建立新的 statsfile。在第一次透過時使用它。
  • 2:讀取 statsfile。在最後一次透過時使用它。
  • 3:讀取 statsfile,並對其進行更新。

statsfile 包含有關每個輸入幀的資訊,可以將其輸入到 x264 中以改善輸出。這個想法是您執行第一次透過以生成 statsfile,第二次透過將建立影片的最佳化編碼。改進主要來自更好的速率控制。

另請參閱:statsbitrate

stats

[edit | edit source]

預設值:“x264_2pass.log”

設定 x264 將從中讀取/寫入 pass statsfile 的位置。

另請參閱:pass

預設值:“blurCplx^(1-qComp)”

設定 x264 將使用的速率控制方程。不要更改此項。

另請參閱:qcompcplxblurqblur

qcomp

[edit | edit source]

預設值:0.60

量化器曲線壓縮因子。0.0 => 常數位元率,1.0 => 常數量化器。請注意,自適應量化部分取代了 qcomp 的效果,x264 將在內部提高 qcomp 以根據自適應量化強度進行補償。

rceqcplxblurqblur

cplxblur

[edit | edit source]

預設值:20

對量化器曲線應用給定半徑的高斯模糊。這意味著分配給每個幀的量化器在時間上與其鄰居模糊,以限制量化器波動。

另請參閱:rceqqcompqblur

qblur

[edit | edit source]

預設值:0.5

在曲線壓縮之後,對量化器曲線應用給定半徑的高斯模糊。不是一個非常重要的設定。

另請參閱:rceqqcompcplxblur

zones

[edit | edit source]

使用此選項,您可以為影片的不同部分指定不同的 CRF 速率。例如,您為影片的整個長度指定 CRF=20,但您想從 27000 到 35000 使用 CRF=18.5,從 44000 到 49000 使用 CRF=16.5,從 75000 到 77500 使用 CRF=17.5,等等。此選項基於幀號

這是格式

zones=FromFrameA,ToFrameB,crf=18.5/FromFrameC,ToFrameD,crf=16.5/FromFrameE,ToFrameF,crf=17.5/...

zones=27000,35000,crf=18.5/44000,49000,crf=16.5/75000,77500,crf=17.5/...

qpfile

[edit | edit source]

對標準速率控制進行手動覆蓋。指定一個檔案,該檔案提供每幀的量化器和幀型別。格式為“framenum frametype quantizer”。例如

0 I 18 < IDR (key) I-frame
1 P 20 < P-frame
2 B 22 < Referenced B-frame
3 i 21 < Non-IDR (non-key) I-frame
4 b 18 < Non-referenced B-frame

分析

[edit | edit source]

partitions

[edit | edit source]

預設值:“p8x8,b8x8,i8x8,i4x4”

h264 影片在壓縮期間被分成 16x16 的宏塊。這些塊可以進一步分成更小的分割槽,這就是此選項控制的內容。

使用此選項,您可以啟用各個分割槽。分割槽按幀型別啟用(即 I、P、B)。可用的分割槽是:p8x8、p4x4、b8x8、i8x8、i4x4

  • I:i8x8、i4x4
  • P:p8x8(也啟用 p16x8/p8x16)、p4x4(也啟用 p8x4/p4x8)
  • B:b8x8(也啟用 b16x8/b8x16)

您也可以設定“none”或“all”。

p4x4 通常沒什麼用,並且速度成本與最終質量收益的比率極高。

另請參閱:8x8dct

direct

[edit | edit source]

預設值:“spatial”

設定“直接”運動向量的預測模式。有兩種模式可用:“spatial”“temporal”。您也可以選擇“none” 以停用直接 MV,以及 “auto” 以允許 x264 根據需要在兩者之間切換。如果您設定 auto,x264 會在編碼結束時輸出有關使用情況的資訊。“auto”在 2pass 編碼中效果最好,但也能在單次透過編碼中工作。在第一次透過自動模式下,x264 會保留每個方法迄今為止執行情況的執行平均值,並從該平均值中選擇下一個預測模式。請注意,只有在第一次透過時啟用了自動功能,您才應該在第二次透過時啟用它;如果沒有,第二次透過將預設使用 temporal。Direct none 會浪費位元,強烈建議不要使用它。

建議:“auto”

direct-8x8

[編輯 | 編輯原始碼]

預設值:-1

設定直接預測模式的大小。啟用 direct-8x8 推斷(在大多數級別上預設啟用)可能會在與 8x8dct 一起使用時略微提高質量。

預設:未設定

允許 B 幀中的引用之間進行非對稱加權。h264 允許你對 B 幀中的引用進行“加權”,這使你能夠改變每個引用對預測圖片的影響程度。通常推薦用於電影素材,可能對動畫素材沒有用。

預設值:“hex”

設定全畫素運動估計方法。有四個選擇

  • dia(菱形)是最簡單的搜尋,它從最佳預測器開始,檢查向上、左、向下和向右一個畫素處的運動向量,選擇最佳的,並重復此過程,直到它不再找到任何更好的運動向量。
  • hex(六邊形)包含類似的策略,只是它使用 6 個周圍點的範圍 2 搜尋,因此得名。它比 dia 更有效,速度幾乎一樣快,因此是通用編碼的良好選擇。
  • umh(不均勻多六邊形)比 hex 慢很多,但會搜尋一個複雜的多六邊形模式,以避免錯過難以找到的運動向量。與 hex 和 dia 不同,merange 引數直接控制 umh 的搜尋半徑,允許使用者增加或減少寬搜尋的大小。
  • esa(窮舉)是在最佳預測器範圍內的整個運動搜尋空間中進行高度最佳化的智慧搜尋。在數學上等同於在該區域中搜索每個運動向量的暴力方法,但速度更快。但是,它仍然比 UMH 慢很多,收益並不太大,因此對於日常編碼來說並不特別有用。
  • tesa(變換窮舉)是一種演算法,它試圖近似執行 Hadamard 變換比較在每個運動向量的效果;類似於窮舉,但稍微好一點,稍微慢一點。

另見:merange

預設值:16

merange 控制運動搜尋的最大範圍。對於 hex 和 dia,這被限制在 4 到 16 之間,預設值為 16。對於 umh 和 esa,它可以增加到預設值 16 以上,以允許更廣泛的運動搜尋,這在 HD 素材和高速運動素材上很有用。請注意,對於 umh、esa 和 tesa,增加 merange 會顯著減慢編碼速度。

另見:me

預設值:511.75

設定任何一個運動向量的最大範圍。預設值為 h264 標準中指定的最大值。它不依賴於級別或配置檔案,因此不要修改它。

mvrange-thread

[編輯 | 編輯原始碼]

預設值:6

設定亞畫素估計複雜度。數字越大越好。級別 1-5 僅控制亞畫素細化強度。級別 6 為模式決策啟用 RDO,級別 8 為運動向量和幀內預測模式啟用 RDO。RDO 級別比之前的級別慢得多。

  1. QPel SAD 1 次迭代
  2. QPel SATD 2 次迭代
  3. MB 上的 HPel 然後 QPel
  4. 始終 QPel
  5. 多 QPel + bime
  6. I/P 幀上的 RD
  7. 所有幀上的 RD
  8. I/P 幀上的 RD 細化
  9. 所有幀上的 RD 細化
  10. QP-RD(需要 --trellis=2,--aq-mode > 0)

預設值:1.0:0.0

第一個數字是 Psy-RDO 的強度(需要 subme>=6 才能啟用)。第二個數字是 Psy-Trellis 的強度(需要 trellis>=1 才能啟用)。請注意,Trellis 仍然被認為是“實驗性的”,並且幾乎可以肯定對至少是卡通片來說是一件壞事。

mixed-refs

[編輯 | 編輯原始碼]

預設:未設定

允許在每個 8x8 分割槽而不是每個宏塊的基礎上選擇引用。這在使用多個引用幀時會提高質量,儘管會帶來一些速度損失。

另見:ref

no-chroma-me

[編輯 | 編輯原始碼]

預設:未設定

通常,運動估計使用亮度和色度平面。這會停用色度運動估計,以提高速度。

建議:預設

預設:未設定

自適應 8x8 DCT 允許在 I 幀中智慧地自適應使用 8x8 變換。

推薦:啟用

預設:未設定

執行格狀量化以提高效率。在宏塊上提供速度和效率之間的良好折衷。在所有決策上進一步降低速度。

推薦:1(在宏塊上)

注意:需要 CABAC

no-fast-pskip

[編輯 | 編輯原始碼]

預設:未設定

停用 P 幀上的早期跳過檢測。快速跳過檢測會提高速度,但可能會在純色區域或輕微漸變區域(例如黑暗場景或天空)中造成輕微的塊狀感。

推薦:啟用

no-dct-decimate

[編輯 | 編輯原始碼]

預設:未設定

停用 P 幀上的係數閾值。

建議:預設

預設:未設定

執行快速降噪。根據此值估計膠片噪聲,並嘗試透過在量化之前刪除小細節來消除噪聲。這可能無法與良好的外部降噪濾波器相匹配,但它執行速度非常快。

推薦:預設值或(100 到 1000 用於降噪)

deadzone-inter/intra

[編輯 | 編輯原始碼]

預設:未設定

設定幀間/幀內亮度量化死區的尺寸。死區應該在 0 到 32 的範圍內。死區值設定了 x264 將任意丟棄的精細細節級別,而不會嘗試保留。非常精細的細節既難以看到又難以編碼,在不嘗試保留的情況下丟棄這些細節可以停止在如此低迴報的影片部分浪費位元。

建議:預設

預設值:Flat(未設定)

從內建的 flat 或 jvt 預設設定自定義量化矩陣。

建議:預設

另見:cqmfile

預設:未設定

從指定的相容 JM 的檔案中設定自定義量化矩陣。會覆蓋其他任何 --cqm* 選項。

建議:預設

另請參閱: cqm

cqm4* / cqm8*

[編輯 | 編輯原始碼]

預設:未設定

  • --cqm4: 設定所有 4x4 量化矩陣。需要使用以逗號分隔的 16 個整數列表。
  • --cqm8: 設定所有 8x8 量化矩陣。需要使用以逗號分隔的 64 個整數列表。
  • --cqm4i, --cqm4p, --cqm8i, --cqm8p: 設定亮度和色度量化矩陣。
  • --cqm4iy, --cqm4ic, --cqm4py, --cqm4pc: 設定單個量化矩陣。cqm8 也有相同開關。

建議:預設

輸入/輸出

[編輯 | 編輯原始碼]

預設:未設定

指定輸出檔名。

建議: 使用自定義輸出檔名,例如“壓縮影片.mp4”。

預設:未設定

以寬:高的形式指定樣本縱橫比。這對於編碼變形影片很有用。

建議:預設

預設:未設定

指定影片幀率。在大多數情況下,幀率將從輸入影片流中檢測到。

建議:預設

預設:未設定

指定要編碼的第一幀,允許編碼從源的任何點開始。

建議:預設

預設:未設定

指定要編碼的最大幀數,允許編碼在到達源結尾之前結束。

建議:預設

預設值:自動檢測

在輸出位元流中設定級別標誌(如 H.264 標準的附件 A 中所定義)。允許的級別包括 1、1b、1.1、1.2、1.3、2、2.1、2.2、3、3.1、3.2、4、4.1、4.2、5、5.1。如果您沒有在命令列中新增--level,x264 將嘗試自動檢測級別。這種檢測並不完美,如果您沒有使用 VBV 控制來限制最大位元率,則可能會低估級別。

如果打算在除 HTPC 之外的任何消費級產品上播放,則級別 4.1 通常是最大支援級別(例如 Xbox 360、PlayStation 3、Popcorn Hour A-100 媒體擴充套件器)。PC 上基於 GPU 的 DXVA 解碼器也具有 4.1 的最大級別。藍光和高畫質 DVD 也是級別 4.1。

請注意,x264 將此設定視為僅輸出標誌。它不會採取任何措施來確保符合您指定的級別。

建議 4.1

另請參閱: ref

預設:未設定

顯示每個編碼幀的統計資訊。

建議:預設

預設:未設定

在編碼期間顯示進度指示器。

建議:預設

預設:未設定

啟用靜音模式,使 x264 的狀態訊息靜音。

建議:預設

預設:未設定

停用 PSNR 計算。阻止在完成時報告的 PSNR 計算。會略微提高速度。

推薦:啟用

預設:未設定

停用 SSIM 計算。阻止在完成時報告的 SSIM 計算。會略微提高速度。

推薦:啟用

預設值:檢測到的邏輯 CPU 數量的 1.5 倍

透過使用多個執行緒在多核系統上提高速度來啟用並行編碼。以前,這種執行緒處理基於切片編碼模型,其中影片以n個切片進行編碼(其中 n == 執行緒)。從 r607 開始,這種模型已更改為無切片執行緒處理,其中“原子單元”現在是宏塊行。本節的其餘部分僅指後者。

除非使用非常高的執行緒數(例如,超過 16 個),否則多執行緒帶來的質量損失幾乎可以忽略不計。

預設設定提供了或多或少最佳的速度。如果您想減少質量損失,請使用一個執行緒(不推薦,除非所有其他設定都已最大化)。

建議: 自動

另請參閱: 執行緒輸入

thread-input

[編輯 | 編輯原始碼]

預設:未設定

在與編碼過程不同的執行緒中解碼輸入影片。當執行緒 > 1 時隱式啟用。

建議: 當存在多個邏輯 CPU 時啟用。

non-deterministic

[編輯 | 編輯原始碼]

預設:未設定

略微提高 SMP 的質量,但會降低可重複性。不適用於一般用途。

建議:預設

另請參閱: 執行緒

預設:未設定

停用所有 CPU 最佳化。適用於除錯或故障排除。

建議:預設

visualize

[編輯 | 編輯原始碼]

預設:未設定

在編碼影片上啟用宏塊型別視覺化。適用於逐幀除錯或分析。

建議:預設

預設:未設定

設定 SPS(序列引數集)和 PPS(影像引數集)ID 號。不適用於一般用途。

建議:預設

預設:未設定

使用訪問單元分隔符。不適用於一般用途。

建議:預設

Settings in Patches

[編輯 | 編輯原始碼]

舊設定

[編輯 | 編輯原始碼]

幀型別選項

[編輯 | 編輯原始碼]

位元速率控制

[編輯 | 編輯原始碼]

自 r996 版本起移除,現在在 subme >= 7 時自動啟用

預設:未設定

subme 等級高於 5 時,預設情況下隻影響 I 幀和 P 幀。將其設定為啟用 B 幀上的 RDO 計算。

另請參見:subme

自 r996 版本起移除,現在在 subme >= 5 時自動啟用

預設:未設定

啟用對 B 幀中兩個運動向量的聯合最佳化。雙向運動估計在對雙向 B 幀進行編碼時,會進行額外的正向和反向向量搜尋,從而提高質量。

注意:不影響以直接/跳過(無運動向量)、正向(指向過去參考的 1 個 MV)、反向(指向未來參考的 1 個 MV)編碼的 B 幀。

推薦:啟用

subme (舊)

[編輯 | 編輯原始碼]

自 r996 版本起更改

subme 1~6 保持不變

新的 subme 7 == 舊的 subme 6 + b-rdo

新的 subme 8 == 舊的 subme 7 + b-rdo

新的 subme 9 == 不存在,B 幀中的 RD 精細化是全新的。

預設:5(r970 之前),6(r970 及以後)

設定子畫素估計複雜度。數字越大越好。1-5 級只控制子畫素細化的強度。6 級啟用模式決策的 RDO,7 級啟用運動向量和幀內預測模式的 RDO。這兩個 RDO 級都比之前的級別慢得多。

另請參見

[編輯 | 編輯原始碼]
華夏公益教科書