X264設定

--aq-mode <integer> AQ method [1]
- 0: Disabled
- 1: Variance AQ (complexity mask)
說明:自適應量化方法,可以改善某些場景過于模糊等問題,默認開啟

- 0: 關閉
- 1: 可變AQ
推薦值:默認
范例:--aq-mode 1

--aq-strength <float> Reduces blocking and blurring in flat and
textured areas. [1.0]
- 0.5: weak AQ
- 1.5: strong AQ
說明:指定AQ的強度,減小低細節宏塊的量化值,默認1.0
- 0.5: 較弱的AQ
- 1.5: 較強的AQ
推薦值:默認

范例:--aq-strength 1.0


aq-mode

默認值:1

彈性量化模式。沒有AQ時,x264很容易分配不足的位元數到細節較少的部分。AQ是用來更好地分配視訊里所有宏區塊之間的可用位元數。此設定變更AQ會重新分配位元數到什么范圍里:

0:完全不使用AQ。
1:允許AQ重新分配位元數到整個視訊和幀內。
2:自動變化(Auto-variance)AQ,會嘗試對每幀調整強度。(實驗性的)

參閱:--aq-strength

aq-strength

默認值:1.0

彈性量化強度。設定AQ偏向低細節(平面)的宏區塊之強度。不允許為負數。0.0~2.0以外的值不建議。

參閱:--aq-mode


X264設定

目錄

[隱藏]
  • 1 x264設定
    • 1.1 說明
    • 1.2 輸入
    • 1.3 默認
      • 1.3.1 profile
      • 1.3.2 preset
      • 1.3.3 tune
      • 1.3.4 slow-firstpass
    • 1.4 幀類型選項
      • 1.4.1 keyint
      • 1.4.2 min-keyint
      • 1.4.3 no-scenecut
      • 1.4.4 scenecut
      • 1.4.5 intra-refresh
      • 1.4.6 bframes
      • 1.4.7 b-adapt
      • 1.4.8 b-bias
      • 1.4.9 b-pyramid
      • 1.4.10 open-gop
      • 1.4.11 no-cabac
      • 1.4.12 ref
      • 1.4.13 no-deblock
      • 1.4.14 deblock
      • 1.4.15 slices
      • 1.4.16 slice-max-size
      • 1.4.17 slice-max-mbs
      • 1.4.18 tff
      • 1.4.19 bff
      • 1.4.20 constrained-intra
      • 1.4.21 pulldown
      • 1.4.22 fake-interlaced
      • 1.4.23 frame-packing
    • 1.5 位元率控制
      • 1.5.1 qp
      • 1.5.2 bitrate
      • 1.5.3 crf
      • 1.5.4 rc-lookahead
      • 1.5.5 vbv-maxrate
      • 1.5.6 vbv-bufsize
      • 1.5.7 vbv-init
      • 1.5.8 crf-max
      • 1.5.9 qpmin
      • 1.5.10 qpmax
      • 1.5.11 qpstep
      • 1.5.12 ratetol
      • 1.5.13 ipratio
      • 1.5.14 pbratio
      • 1.5.15 chroma-qp-offset
      • 1.5.16 aq-mode
      • 1.5.17 aq-strength
      • 1.5.18 pass
      • 1.5.19 stats
      • 1.5.20 no-mbtree
      • 1.5.21 qcomp
      • 1.5.22 cplxblur
      • 1.5.23 qblur
      • 1.5.24 zones
      • 1.5.25 qpfile
    • 1.6 分析
      • 1.6.1 partitions
      • 1.6.2 direct
      • 1.6.3 no-weightb
      • 1.6.4 weightp
      • 1.6.5 me
      • 1.6.6 merange
      • 1.6.7 mvrange
      • 1.6.8 mvrange-thread
      • 1.6.9 subme
      • 1.6.10 psy-rd
      • 1.6.11 no-psy
      • 1.6.12 no-mixed-refs
      • 1.6.13 no-chroma-me
      • 1.6.14 no-8x8dct
      • 1.6.15 trellis
      • 1.6.16 no-fast-pskip
      • 1.6.17 no-dct-decimate
      • 1.6.18 nr
      • 1.6.19 deadzone-inter/intra
      • 1.6.20 cqm
      • 1.6.21 cqmfile
      • 1.6.22 cqm4* / cqm8*
    • 1.7 視訊可用性資訊
      • 1.7.1 overscan
      • 1.7.2 videoformat
      • 1.7.3 fullrange
      • 1.7.4 colorprim
      • 1.7.5 transfer
      • 1.7.6 colormatrix
      • 1.7.7 chromaloc
      • 1.7.8 nal-hrd
      • 1.7.9 pic-struct
      • 1.7.10 crop-rect
    • 1.8 輸入/輸出
      • 1.8.1 output
      • 1.8.2 muxer
      • 1.8.3 demuxer
      • 1.8.4 input-csp
      • 1.8.5 input-res

本頁說明所有x264參數之目的和用法。參數的排列相同于在x264 --fullhelp出現的順序。

參閱:X264統計資料輸出、X264統計資料檔案和X264編碼建議。

x264設定

說明

x264帶有一些內置的文件。要閱讀此說明,執行x264 --helpx264 --longhelpx264 --fullhelp。越后面的選項會提供越詳細的資訊。每條選項的具體命令行幫助界面正在開發中。

輸入

以一個位置引數指定輸入的視訊。例如:

x264.exe --output NUL C:\input.avs
x264 --output /dev/null ~/input.y4m

當輸入是原始YUV格式時,還必須告訴x264視訊的分辨率。你可能也要使用--fps來指定幀率:

x264.exe --output NUL --fps 25 --input-res 1280x720 D:\input.yuv 
x264 --output /dev/null --fps 30000/1001 --input-res 640x480 ~/input.yuv

詳細的命令行使用方法參見X264使用介紹

默認

為了減少使用者花費時間和精力在命令列上而設計的一套系統。這些設定切換了什么選項可以從x264 --fullhelp的說明里得知。

profile

默認值:無

限制輸出資料流的profile。如果指定了profile,它會覆寫所有其他的設定。所以如果指定了profile,將會保證得到一個相容的資料流。如果設了此選項,將會無法使用無失真(lossless)編碼(--qp 0--crf 0)。

如果播放裝置僅支援某個profile,則應該設此選項。大多數解碼器都支援High profile,所以沒有設定的必要。

可用的值:baseline, main, high

preset

默認值:medium

變更選項,以權衡壓縮效率和編碼速度。如果指定了默認,變更的選項將會在套用所有其他的參數之前套用。

通常應該將此設為所能忍受的最慢一個選項。

可用的值:ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow, placebo

tune

默認值:無

調整選項,以進一步最佳化為視訊的內容。如果指定了tune,變更的選項將會在--preset之后,但所有其他的參數之前套用。

如果視訊的內容符合其中一個可用的調整值,則可以使用此選項,否則不要使用。

可用的值:film, animation, grain, stillimage, psnr, ssim, fastdecode, zerolatency

slow-firstpass

默認值:無

使用--pass 1會在解析命令列的最后套用以下設定:

  • --ref 1
  • --no-8x8dct
  • --partitions i4x4 (如果最初有啟用,否則為無)
  • --me dia
  • --subme MIN(2, subme)
  • --trellis 0

可以使用--slow-firstpass來停用此功能。注意,使用--preset placebo也會啟用slow-firstpass。

參閱:--pass

幀類型選項

keyint

默認值:250

設定x264輸出的資料流之最大IDR幀(亦稱為關鍵幀)間隔。可以指定infinite讓x264永遠不要插入非場景變更的IDR幀。

IDR幀是資料流的“分隔符號”,所有幀都無法從IDR幀的另一邊參照資料。因此,IDR幀也是I幀,所以它們不從任何其他幀參照資料。這意味著它們可以用作視訊的搜尋點(seek points)。

注意,I幀通常明顯大于P/B幀(在低動態場景通常為10倍大或更多),所以當它們與極低的VBV設定合并使用時會打亂位元率控制。在這些情況下,研究--intra-refresh

默認值對于大多數視訊沒啥問題。在為藍光、廣播、即時資料流或某些其他特殊情況編碼時,可能需要更小的GOP長度(通常等于幀率)。

參閱:--min-keyint, --scenecut, --intra-refresh

min-keyint

默認值:自動 (MIN(--keyint / 10, --fps))

設定IDR幀之間的最小長度。

IDR幀的說明可以參閱--keyint。過小的keyint范圍會導致“不正確的”IDR幀位置(例如閃屏場景)。此選項限制在每個IDR幀之后,要有多少幀才可以再有另一個IDR幀的最小長度。

min-keyint的最大允許值是--keyint/2+1。

建議:默認值,或者等于幀率

參閱:--keyint, --scenecut

no-scenecut

默認值:無

完全停用彈性I幀決策(adaptive I-frame decision)。

參閱:--scenecut

scenecut

默認值:40

設定I/IDR幀位置的閾值(場景變更偵測)。

x264為每一幀計算一個度量值,來估計與前一幀的不同程度。如果該值低于scenecut,則算偵測到一個“場景變更”。如果此時與最近一個IDR幀的距離低于--min-keyint,則放置一個I幀,否則放置一個IDR幀。越大的scenecut值會增加偵測到場景變更的數目。場景變更是如何比較的詳細資訊可以參閱http://forum.doom9.org/showthread.php?t=121116。

將scenecut設為0相當于設定--no-scenecut

建議:默認值

參閱:--keyint, --min-keyint, --no-scenecut

intra-refresh

默認值:無

停用IDR幀,作為替代x264會為每隔--keyint的幀的每個宏區塊(macroblock)使用內部編碼(intra coding)。區塊是以一個水平卷動的行刷新,稱為刷新波(refresh wave)。這有利于低延遲的資料流,使它有可能比標準的IDR幀達到更加固定的幀大小。它也增強了視訊資料流對封包遺失的恢復能力。此選項會降低壓縮效率,因此必要時才使用。

有趣的事:

  • 第一幀仍然是IDR幀。
  • 內部區塊(Intra-blocks)僅處于P幀里,刷新波在一或多個B幀后的第一個P幀更廣泛。
  • 壓縮效率的損失主要來自于在刷新波上左側(新)的宏區塊無法參照右側(舊)的資料。

bframes

默認值:3

設定x264可以使用的最大并行B幀數。

沒有B幀時,一個典型的x264資料流有著像這樣的幀類型:IPPPPP...PI。當設了--bframes 2時,最多兩個連續的P幀可以被B幀取代,就像:IBPBBPBPPPB...PI。

B幀類似于P幀,除了B幀還能從它之后的幀做動態預測(motion prediction)。就壓縮比來說效率會大幅提高。它們的平均品質是由--pbratio所控制。

有趣的事:

  • x264還區分兩種不同種類的B幀。"B"是代表一個被其他幀作為參照幀的B幀(參閱--b-pyramid),而"b"則代表一個不被其他幀作為參照幀的B幀。如果看到一段混合的"B"和"b",原因通常與上述有關。當差別并不重要時,通常就以"B"代表所有B幀。
  • x264是如何為每個候選幀選定為P幀或B幀的詳細資訊可以參閱http://article.gmane.org/gmane.comp.video.ffmpeg.devel/29064。在此情況下,幀類型看起來會像這樣(假設--bframes 3):IBBBPBBBPBPI。

參閱:--b-bias, --b-pyramid, --ref, --pbratio, --partitions, --weightb

b-adapt

默認值:1

設定彈性B幀位置決策算法。此設定控制x264如何決定要放置P幀或B幀。

0:停用,總是挑選B幀。這與舊的no-b-adapt設定相同作用。
1:“快速”算法,較快,越大的--bframes值會稍微提高速度。當使用此模式時,基本上建議搭配--bframes 16使用。
2:“最佳”算法,較慢,越大的--bframes值會大幅降低速度。

注意:對于多重階段(multi-pass)編碼,僅在第一階段(first pass)才需要此選項,因為幀類型在此時已經決定完了。

b-bias

默認值:0

控制使用B幀而不使用P幀的可能性。大于0的值增加偏向B幀的加權,而小于0的值則相反。范圍是從-100到100。100并不保證全是B幀(要全是B幀該使用--b-adapt 0),而-100也不保證全是P幀。

僅在你認為能比x264做出更好的位元率控制決策時才使用此選項。

參閱:--bframes, --ipratio

b-pyramid

默認值:normal

允許B幀作為其他幀的參照幀。沒有此設定時,幀只能參照I/P幀。雖然I/P幀因其較高的品質作為參照幀更有價值,但B幀也是很有用的。作為參照幀的B幀會得到一個介于P幀和普通B幀之間的量化值。b-pyramid需要至少兩個以上的--bframes才會運作。

如果是在為藍光編碼,須使用nonestrict

none:不允許B幀作為參照幀。
strict:每minigop允許一個B幀作為參照幀,這是藍光標準強制執行的限制。
normal:每minigop允許多個B幀作為參照幀。

參閱:--bframes, --refs, --no-mixed-refs

open-gop

默認值:none

open-gop是一個提高效率的編碼技術。有三種模式:

none:停用open-gop。
normal:啟用open-gop。
bluray:啟用open-gop。一個效率較低的open-gop版本,因為normal模式無法用于藍光編碼。

某些解碼器不完全支援open-gop資料流,這就是為什么此選項并未默認為啟用。如果想啟用open-gop,應該先測試所有可能用來撥放的解碼器。

open-gop的說明可以參閱http://forum.doom9.org/showthread.php?p=1300124#post1300124。

no-cabac

默認值:無

停用彈性內容的二進制算數編碼(CABAC:Context Adaptive Binary Arithmetic Coder)資料流壓縮,切換回效率較低的彈性內容的可變長度編碼(CAVLC:Context Adaptive Variable Length Coder)系統。大幅降低壓縮效率(通常10~20%)和解碼的硬件需求。

ref

默認值:3

控制解碼圖片緩沖(DPB:Decoded Picture Buffer)的大小。范圍是從0到16。總之,此值是每個P幀可以使用先前多少幀作為參照幀的數目(B幀可以使用的數目要少一或兩個,取決于它們是否作為參照幀)。可以被參照的最小ref數是1。

還要注意的是,H.264規格限制了每個level的DPB大小。如果遵守Level 4.1規格,720p和1080p視訊的最大ref數分別是9和4。

參閱:--b-pyramid, --no-mixed-refs, --level

no-deblock

默認值:無

完全停用循環篩選(loop filter)。不建議。

參閱:--deblock

deblock

默認值:0:0

控制循環篩選(亦稱為持續循環去區塊(inloop deblocker)),這是H.264標準的一部分。就性價比來說非常有效率。

可以在http://forum.doom9.org/showthread.php?t=109747找到loop濾鏡的參數是如何運作的說明(參閱第一個帖子和akupenguin的回復)。

參閱:--no-deblock

slices

默認值:無

設定每幀的切片數,而且強制為矩形切片(會被--slice-max-size--slice-max-mbs覆寫)。

如果是在為藍光編碼,將值設為4。否則,不要使用此選項,除非你知道真的有必要。

參閱:--slice-max-size, --slice-max-mbs

slice-max-size

默認值:無

設定最大的切片大小(單位是字節),包括估計的NAL額外負荷(overhead)。(目前與--interlaced不相容)

參閱:--slices

slice-max-mbs

默認值:無

設定最大的切片大小(單位是宏區塊)。(目前與--interlaced不相容)

參閱:--slices

tff

默認值:無

啟用交錯式編碼并指定頂場優先(top field first)。x264的交錯式編碼使用MBAFF,本身效率比漸進式編碼差。出于此原因,僅在打算于交錯式顯示器上播放視訊時,才應該編碼為交錯式(或者視訊在送給x264之前無法進行去交錯)。此選項會自動啟用--pic-struct

bff

默認值:無

啟用交錯式編碼并指定底場優先(bottom field first)。詳細資訊可以參閱--tff

constrained-intra

默認值:無

啟用限制的內部預測(constrained intra prediction),這是SVC編碼的基礎層(base layer)所需要的。既然EveryoneTM忽略SVC,你同樣可以忽略此選項。

pulldown

默認值:none

使用其中一個默認模式將漸進式、固定幀率的輸入資料流標志上軟膠卷過帶(soft telecine)。軟膠卷過帶在http://trac.handbrake.fr/wiki/Telecine有更詳細的解釋。

可用的默認:none, 22, 32, 64, double, triple, euro

指定除了none以外的任一模式會自動啟用--pic-struct

fake-interlaced

默認值:無

將資料流標記為交錯式,即使它并未以交錯式來編碼。用于編碼25p和30p為符合藍光標準的視訊。

frame-packing

默認值:無

如果在編碼3D視訊,此參數設定一個位元資料流(bitstream)旗標,用來告訴解碼器3D視訊是如何被封裝。相關的值和它們的意義可以從x264 --fullhelp的說明里得知。

位元率控制

qp

默認值:無

三種位元率控制方法之一。設定x264以固定量化值(Constant Quantizer)模式來編碼視訊。這里給的值是指定P幀的量化值。I幀和B幀的量化值則是從--ipratio--pbratio中取得。CQ模式把某個量化值作為目標,這意味著最終檔案大小是未知的(雖然可以透過一些方法來準確地估計)。將值設為0會產生無失真輸出。對于相同視覺品質,qp會比--crf產生更大的檔案。qp模式也會停用彈性量化,因為按照定義“固定量化值”意味著沒有彈性量化。

此選項與--bitrate--crf互斥。各種位元率控制系統的詳細資訊可以參閱http://git.videolan.org/?p=x264.git;a=blob_plain;f=doc/ratecontrol.txt;hb=HEAD。

雖然qp不需要lookahead來執行因此速度較快,但通常應該改用--crf

參閱:--bitrate, --crf, --ipratio, --pbratio

bitrate

默認值:無

三種位元率控制方法之二。以目標位元率模式來編碼視訊。目標位元率模式意味著最終檔案大小是已知的,但最終品質則未知。x264會嘗試把給定的位元率作為整體平均值來編碼視訊。參數的單位是千位元/秒(8位元=1字節)。注意,1千位元(kilobit)是1000位元,而不是1024位元。

此設定通常與--pass在兩階段(two-pass)編碼一起使用。

此選項與--qp--crf互斥。各種位元率控制系統的詳細資訊可以參閱http://git.videolan.org/?p=x264.git;a=blob_plain;f=doc/ratecontrol.txt;hb=HEAD。

參閱:--qp, --crf, --ratetol, --pass, --stats

crf

默認值:23.0

最后一種位元率控制方法:固定位元率系數(Constant Ratefactor)。當qp是把某個量化值作為目標,而bitrate是把某個檔案大小作為目標時,crf則是把某個“品質”作為目標。構想是讓crf n提供的視覺品質與qp n相同,只是檔案更小一點。crf值的度量單位是“位元率系數(ratefactor)”。

CRF是借由降低“較不重要”的幀之品質來達到此目的。在此情況下,“較不重要”是指在復雜或高動態場景的幀,其品質不是很耗費位元數就是不易察覺,所以會提高它們的量化值。從這些幀里所節省下來的位元數被重新分配到可以更有效利用的幀。

CRF花費的時間會比兩階段編碼少,因為兩階段編碼中的“第一階段”被略過了。另一方面,要預測CRF編碼的最終位元率是不可能的。根據情況哪種位元率控制模式更好是由你來決定。

此選項與--qp--bitrate互斥。各種位元率控制系統的詳細資訊可以參閱http://git.videolan.org/?p=x264.git;a=blob_plain;f=doc/ratecontrol.txt;hb=HEAD。

參閱:--qp, --bitrate

rc-lookahead

默認值:40

設定mb-tree位元率控制和vbv-lookahead使用的幀數。最大允許值是250。

對于mb-tree部分,增加幀數帶來更好的效果但也會更慢。mb-tree使用的最大緩沖值是MIN(rc-lookahead, --keyint)。

對于vbv-lookahead部分,當使用vbv時,增加幀數帶來更好的穩定性和準確度。vbv-lookahead使用的最大值是:

MIN(rc-lookahead, MAX(--keyint, MAX(--vbv-maxrate, --bitrate) / --vbv-bufsize * --fps))

參閱:--no-mbtree, --vbv-bufsize, --vbv-maxrate

vbv-maxrate

默認值:0

設定重新填滿VBV緩沖的最大位元率。

VBV會降低品質,所以必要時才使用。

參閱:--vbv-bufsize, --vbv-init, VBV編碼建議

vbv-bufsize

默認值:0

設定VBV緩沖的大小(單位是千位元)。

VBV會降低品質,所以必要時才使用。

參閱:--vbv-maxsize, --vbv-init, VBV編碼建議

vbv-init

默認值:0.9

設定VBV緩沖必須填滿多少才會開始播放。

如果值小于1,初始的填滿量是:vbv-init * vbv-bufsize。否則該值即是初始的填滿量(單位是千位元)。

參閱:--vbv-maxsize, --vbv-bufsize, VBV編碼建議

crf-max

默認值:無

一個類似--qpmax的設定,除了指定的是最大位元率系數而非最大量化值。當使用--crf且啟用VBV時,此選項才會運作。它阻止x264降低位元率系數(亦稱為“品質”)到低于給定的值,即使這樣做會違反VBV的條件約束。此設定主要適用于自訂資料流服務器。詳細資訊可以參閱http://git.videolan.org/gitweb.cgi/x264.git/?a=commit;h=81eee062a4ce9aae1eceb3befcae855c25e5ec52。

參閱:--crf, --vbv-maxrate, --vbv-bufsize

qpmin

默認值:0

定義x264可以使用的最小量化值。量化值越小,輸出就越接近輸入。到了一定的值,x264的輸出看起來會跟輸入一樣,即使它并不完全相同。通常沒有理由允許x264花費比這更多的位元數在任何特定的宏區塊上。

當彈性量化啟用時(默認啟用),不建議提高qpmin,因為這會降低幀里面平面背景區域的品質。

參閱:--qpmax, --ipratio

關于qpmin的預設值:在x264 r1795版本之前,該選項預設值為10。

qpmax

默認值:51

定義x264可以使用的最大量化值。默認值51是H.264規格可供使用的最大量化值,而且品質極低。此默認值有效地停用了qpmax。如果想要限制x264可以輸出的最低品質,可以將此值設小一點(通常30~40),但通常并不建議調整此值。

參閱:--qpmin, --pbratio, --crf-max

qpstep

默認值:4

設定兩幀之間量化值的最大變更幅度。

ratetol

默認值:1.0

此參數有兩個目的:

  • 在一階段位元率編碼時,此設定控制x264可以偏離目標平均位元率的百分比。可以指定inf來完全停用溢出偵測(overflow detection)。可以設定的最小值是0.01。值設得越大,x264可以對接近電影結尾的復雜場景作出越好的反應。此目的的度量單位是百分比(例如,1.0等于允許1%的位元率偏差)。
很多電影(例如動作片)在電影結尾時是最復雜的。因為一階段編碼并不知道這一點,結尾所需的位元數通常被低估。將ratetol設為inf可以減輕此情況,借由允許編碼以更像--crf的模式運行,但檔案大小會暴增。
  • 當VBV啟用時(即指定了--vbv-開頭的選項),此設定也會影響VBV的強度。值設得越大,允許VBV在冒著可能違反VBV設定的風險下有越大的波動。

ipratio

默認值:1.40

修改I幀量化值相比P幀量化值的目標平均增量。越大的值會提高I幀的品質。

參閱:--pbratio

pbratio

默認值:1.30

修改B幀量化值相比P幀量化值的目標平均減量。越大的值會降低B幀的品質。當mbtree啟用時(默認啟用),此設定無作用,mbtree會自動計算最佳值。

參閱:--ipratio

chroma-qp-offset

默認值:0

在編碼時增加色度平面量化值的偏移。偏移可以為負數。

當使用psy-rd或psy-trellis時,x264自動降低此值來提高亮度的品質,其后降低色度的品質。這些設定的默認值會使chroma-qp-offset再減去2。

注意:x264僅在同一量化值編碼亮度平面和色度平面,直到量化值29。在此之后,色度逐步以比亮度低的量被量化,直到亮度在q51和色度在q39為止。此行為是由H.264標準所要求。

aq-mode

默認值:1

彈性量化模式。沒有AQ時,x264很容易分配不足的位元數到細節較少的部分。AQ是用來更好地分配視訊里所有宏區塊之間的可用位元數。此設定變更AQ會重新分配位元數到什么范圍里:

0:完全不使用AQ。
1:允許AQ重新分配位元數到整個視訊和幀內。
2:自動變化(Auto-variance)AQ,會嘗試對每幀調整強度。(實驗性的)

參閱:--aq-strength

aq-strength

默認值:1.0

彈性量化強度。設定AQ偏向低細節(平面)的宏區塊之強度。不允許為負數。0.0~2.0以外的值不建議。

參閱:--aq-mode

pass

默認值:無

此為兩階段編碼的一個重要設定。它控制x264如何處理--stats檔案。有三種設定:

1:建立一個新的統計資料檔案。在第一階段使用此選項。
2:讀取統計資料檔案。在最終階段使用此選項。
3:讀取統計資料檔案并更新。

統計資料檔案包含每個輸入幀的資訊,可以輸入到x264以改善輸出。構想是執行第一階段來產生統計資料檔案,然后第二階段將建立一個最佳化的視訊編碼。改善的地方主要是從更好的位元率控制中獲益。

參閱:--stats, --bitrate, --slow-firstpass, X264統計資料檔案

stats

默認值:"x264_2pass.log"

設定x264讀取和寫入統計資料檔案的位置。

參閱:--pass, X264統計資料檔案

no-mbtree

默認值:無

停用宏區塊樹(macroblock tree)位元率控制。使用宏區塊樹位元率控制會改善整體壓縮率,借由追蹤跨幀的時間傳播(temporal propagation)并相應地加權。除了已經存在的統計資料檔案之外,多重階段編碼還需要一個新的統計資料檔案。

建議:默認值

參閱:--rc-lookahead

qcomp

默認值:0.60

量化值曲線壓縮系數。0.0是固定位元率,1.0則是固定量化值。

當mbtree啟用時,它會影響mbtree的強度(qcomp越大,mbtree越弱)。

建議:默認值

參閱:--cplxblur, --qblur

cplxblur

默認值:20.0

以給定的半徑范圍套用高斯模糊(gaussian blur)于量化值曲線。這意味著分配給每個幀的量化值會被它的鄰近幀模糊掉,以此來限制量化值波動。

參閱:--qcomp, --qblur

qblur

默認值:0.5

在曲線壓縮之后,以給定的半徑范圍套用高斯模糊于量化值曲線。不怎么重要的設定。

參閱:--qcomp, --cplxblur

zones

默認值:無

調整視訊的特定片段之設定。可以修改每區段的大多數x264選項。

  • 一個單一區段的形式為<起始幀>,<結束幀>,<選項>。
  • 多個區段彼此以"/"分隔。

選項:

這兩個是特殊選項。每區段只能設定其中一個,而且如果有設定其中一個,它必須為該區段列出的第一個選項:

  • b=<浮點數> 套用位元率乘數在此區段。在額外調整高動態和低動態場景時很有用。
  • q=<整數> 套用固定量化值在此區段。在套用于一段范圍的幀時很有用。

其他可用的選項如下:

  • ref=<整數>
  • b-bias=<整數>
  • scenecut=<整數>
  • no-deblock
  • deblock=<整數>:<整數>
  • deadzone-intra=<整數>
  • deadzone-inter=<整數>
  • direct=<字串>
  • merange=<整數>
  • nr=<整數>
  • subme=<整數>
  • trellis=<整數>
  • (no-)chroma-me
  • (no-)dct-decimate
  • (no-)fast-pskip
  • (no-)mixed-refs
  • psy-rd=<浮點數>:<浮點數>
  • me=<字串>
  • no-8x8dct
  • b-pyramid=<字串>

限制:

  • 一個區段的參照幀數無法超過--ref所指定的大小。
  • 無法開啟或關閉scenecut;如果--scenecut最初為開啟(>0),則只能改變scenecut的大小。
  • 如果使用--me esa/tesa,merange無法超過最初所指定的大小。
  • 如果--subme最初指定為0,則無法變更subme。
  • 如果--me最初指定為dia、hex或umh,則無法將me設為esa為tesa。

范例:0,1000,b=2/1001,2000,q=20,me=3,b-bias=-1000

建議:默認值

qpfile

默認值:無

手動覆寫標準的位元率控制。指定一個檔案,為指定的幀賦予量化值和幀類型。格式為“幀號 幀類型 量化值”。例如:

0 I 18 < IDR (key) I-frame
1 P 18 < P-frame
2 B 18 < Referenced B-frame
3 i 18 < Non-IDR (non-key) I-frame
4 b 18 < Non-referenced B-frame
5 K 18 < Keyframe*
  • 不需要指定每個幀。
  • 使用-1作為所需的量化值允許x264自行選擇最佳的量化值,在只需設定幀類型時很有用。
  • 在指定了大量的幀類型和量化值時仍然讓x264間歇地自行選擇,會降低x264的效能。
  • "Keyframe"是一個泛用關鍵幀/搜尋點,如果--open-gopnone則等同于一個IDR I幀,否則等同于一個加上Recovery Point SEI旗標的Non-IDR I幀。

分析

partitions

默認值:p8x8,b8x8,i8x8,i4x4

H.264視訊在壓縮過程中劃分為16x16的宏區塊。這些區塊可以進一步劃分為更小的分割,這就是此選項要控制的部分。

此選項可以啟用個別分割。分割依不同幀類型啟用。

可用的分割:p8x8, p4x4, b8x8, i8x8, i4x4, none, all

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

p4x4通常不怎么有用,而且性價比極低。

參閱:--no-8x8dct

direct

默認值:spatial

設定"direct"動態向量(motion vectors)的預測模式。有兩種模式可用:spatialtemporal。可以指定none來停用direct動態向量,和指定auto來允許x264在兩者之間切換為適合的模式。如果設為auto,x264會在編碼結束時輸出使用情況的資訊。auto最適合用于兩階段編碼,但也可用于一階段編碼。在第一階段auto模式,x264持續記錄每個方法執行到目前為止的好壞,并從該記錄挑選下一個預測模式。注意,僅在第一階段有指定auto時,才應該在第二階段指定auto;如果第一階段不是指定auto,第二階段將會默認為temporalnone模式會浪費位元數,因此強烈不建議。

建議:auto

no-weightb

默認值:無

H.264允許“加權”B幀的參照,它允許變更每個參照影響預測圖片的程度。此選項停用該功能。

建議:默認值

weightp

默認值:2

使x264能夠使用明確加權預測(explicit weighted prediction)來改善P幀的壓縮。亦改善淡入/淡出的品質。模式越高越慢。

注意:在為Adobe Flash編碼時,將值設為1,否則它的解碼器會產生不自然痕跡(artifacts)。Flash 10.1修正了此bug。

模式:

0:停用。
1:簡易:分析淡入/淡出,但不分析重復參照幀。
2:智慧:分析淡入/淡出和重復參照幀。

me

默認值:hex

設定全像素(full-pixel)動態估算(motion estimation)的方法。有五個選項:

dia(diamond):最簡單的搜尋方法,起始于最佳預測器(predictor),檢查上、左、下、右方一個像素的動態向量,挑選其中最好的一個,并重復此過程直到它不再找到任何更好的動態向量為止。
hex(hexagon):由類似策略組成,除了它使用周圍6點范圍為2的搜尋,因此叫做六邊形。它比dia更有效率且幾乎沒有變慢,因此作為一般用途的編碼是個不錯的選擇。
umh(uneven multi-hex):比hex更慢,但搜尋復雜的多六邊形圖樣以避免遺漏難以找到的動態向量。不像hex和dia,merange參數直接控制umh的搜尋半徑,允許增加或減少廣域搜尋的大小。
esa(exhaustive):一種在merange內整個動態搜尋空間的高度最佳化智慧搜尋。雖然速度較快,但數學上相當于搜尋該區域每個單一動態向量的暴力(bruteforce)方法。不過,它仍然比UMH還要慢,而且沒有帶來很大的好處,所以對于日常的編碼不是特別有用。
tesa(transformed exhaustive):一種嘗試接近在每個動態向量執行Hadamard轉換法比較的效果之算法,就像exhaustive,但效果好一點而速度慢一點。

參閱:--merange

merange

默認值:16

merange控制動態搜尋的最大范圍(單位是像素)。對于hex和dia,范圍限制在4~16。對于umh和esa,它可以增加到超過默認值16來允許范圍更廣的動態搜尋,對于HD視訊和高動態鏡頭很有用。注意,對于umh、esa和tesa,增加merange會大幅減慢編碼速度。

參閱:--me

mvrange

默認值:-1 (自動)

設定動態向量的最大(垂直)范圍(單位是像素)。默認值依level不同:

  • Level 1/1b:64。
  • Level 1.1~2.0:128。
  • Level 2.1~3.0:256。
  • Level 3.1+:512。

注意:如果想要手動覆寫mvrange,在設定時從上述值減去0.25(例如--mvrange 127.75)。

建議:默認值

mvrange-thread

默認值:-1 (自動)

設定執行緒之間的最小動態向量緩沖。不要碰它。

建議:默認值

subme

默認值:7

設定子像素(subpixel)估算復雜度。值越高越好。層級1~5只是控制子像素細分(refinement)強度。層級6為模式決策啟用RDO,而層級8為動態向量和內部預測模式啟用RDO。RDO層級明顯慢于先前的層級。

使用小于2的值不但會啟用較快且品質較低的lookahead模式,而且導致較差的--scenecut決策,因此不建議。

可用的值:

0:Fullpel only
1:QPel SAD 1 iteration
2:QPel SATD 2 iterations
3:HPel on MB then QPel
4:Always QPel
5:Multi QPel + bi-directional motion estimation
6:RD on I/P frames
7:RD on all frames
8:RD refinement on I/P frames
9:RD refinement on all frames
10:QP-RD (requires --trellis=2, --aq-mode>0)

建議:默認值,或者更高,除非速度非常重要

psy-rd

默認值:1.0:0.0

第一個數是Psy-RDO的強度(需要subme>=6)。第二個數是Psy-Trellis的強度(需要trellis>=1)。注意,Trellis仍然被視為“實驗性的”,而且幾乎可以肯定至少卡通不適合使用。

psy-rd的解釋可以參閱http://forum.doom9.org/showthread.php?t=138293。

no-psy

默認值:無

停用所有會降低PSNR或SSIM的視覺最佳化。這也會停用一些無法透過x264的命令列引數設定的內部psy最佳化。

建議:默認值

no-mixed-refs

默認值:無

混合參照會以每個8x8分割為基礎來選取參照,而不是以每個宏區塊為基礎。當使用多個參照幀時這會改善品質,雖然要損失一些速度。設定此選項會停用該功能。

建議:默認值

參閱:--ref

no-chroma-me

默認值:無

通常,亮度(luma)和色度(chroma)兩個平面都會做動態估算。此選項停用色度動態估算來提高些微速度。

建議:默認值

no-8x8dct

默認值:無

彈性8x8離散余弦轉換(Adaptive 8x8 DCT)使x264能夠智慧彈性地使用I幀的8x8轉換。此選項停用該功能。

建議:默認值

trellis

默認值:1

執行Trellis quantization來提高效率。

0:停用。
1:只在一個宏區塊的最終編碼上啟用。
2:在所有模式決策上啟用。

在宏區塊時提供了速度和效率之間的良好平衡。在所有決策時則更加降低速度。

建議:默認值

注意:需要--cabac

no-fast-pskip

默認值:無

停用P幀的早期略過偵測(early skip detection)。非常輕微地提高品質,但要損失很多速度。

建議:默認值

no-dct-decimate

默認值:無

DCT Decimation會舍棄它認為“不必要的”DCT區塊。這會改善編碼效率,而降低的品質通常微不足道。設定此選項會停用該功能。

建議:默認值

nr

默認值:0

執行快速的噪聲削減(noise reduction)。根據此值估算影片的噪聲,并借由在量化之前舍棄小細節來嘗試移除噪聲。這可能比不上優良的外部噪聲削減篩選的品質,但它執行得非常快。

建議:默認值,或者100~1000

deadzone-inter/intra

默認值:21/11

設定inter/intra亮度量化反應區(deadzone)的大小。反應區的范圍應該在0~32。此值設定x264會任意舍棄而不嘗試保留細微細節的層級。非常細微的細節既難以看見又耗費位元數,舍棄這些細節可以不用浪費位元數在視訊的此類低收益畫面上。反應區與--trellis不相容。

建議:默認值

cqm

默認值:flat

設定所有自訂量化矩陣(custom quantization matrices)為內建的默認之一。內建默認有flatJVT

建議:默認值

參閱:--cqmfile

cqmfile

默認值:無

從一個指定的JM相容檔案來設定自訂量化矩陣。覆寫所有其他--cqm開頭的選項。

建議:默認值

參閱:--cqm

cqm4* / cqm8*

默認值:無

--cqm4:設定所有4x4量化矩陣。需要16個以逗號分隔的整數清單。
--cqm8:設定所有8x8量化矩陣。需要64個以逗號分隔的整數清單。
--cqm4i--cqm4p--cqm8i--cqm8p:設定亮度和色度量化矩陣。
--cqm4iy--cqm4ic--cqm4py--cqm4pc:設定個別量化矩陣。

建議:默認值

視訊可用性資訊

這些選項在輸出資料流里設定一個旗標,旗標可以被解碼器讀取并采取可能的動作。值得一提的是大多數選項在大多數情況下毫無意義,而且通常被解碼器忽略。

overscan

默認值:undef

如何處理溢出掃描(overscan)。溢出掃描的意思是裝置只顯示影像的一部分。

可用的值:

undef:未定義。
show:指示要顯示整個影像。理論上如果有設定則必須被遵守。
crop:指示此影像適合在有溢出掃描功能的裝置上播放。不一定被遵守。

建議:在編碼之前裁剪(Crop),然后如果裝置支援則使用show,否則不理會

videoformat

默認值:undef

指示此視訊在編碼/數位化(digitizing)之前是什么格式。

可用的值:component, pal, ntsc, secam, mac, undef

建議:來源視訊的格式,或者未定義

fullrange

默認值:off

指示是否使用亮度和色度層級的全范圍。如果設為off,則會使用有限范圍。

詳細資訊可以參閱http://en.wikipedia.org/wiki/YCbCr。

建議:如果來源是從類比視訊數位化,將此設為off。否則設為on

colorprim

默認值:undef

設定以什么色彩原色轉換成RGB。

可用的值:undef, bt709, bt470m, bt470bg, smpte170m, smpte240m, film

詳細資訊可以參閱http://en.wikipedia.org/wiki/RGB_color_space和http://en.wikipedia.org/wiki/YCbCr。

建議:默認值,除非你知道來源使用什么色彩原色

transfer

默認值:undef

設定要使用的光電子(opto-electronic)傳輸特性(設定用于修正的色差補正(gamma)曲線)。

可用的值:undef, bt709, bt470m, bt470bg, linear, log100, log316, smpte170m, smpte240m

詳細資訊可以參閱http://en.wikipedia.org/wiki/Gamma_correction。

建議:默認值,除非你知道來源使用什么傳輸特性

colormatrix

默認值:undef

設定用于從RGB原色中取得亮度和色度的矩陣系數。

可用的值:undef, bt709, fcc, bt470bg, smpte170m, smpte240m, GBR, YCgCo

詳細資訊可以參閱http://en.wikipedia.org/wiki/YCbCr。

建議:來源使用的矩陣,或者默認值

chromaloc

默認值:0

設定色度采樣位置(如ITU-T規格的附錄E所定義)

可用的值:0~5

參閱x264的vui.txt。

建議:

  • 如果是從正確次采樣4:2:0的MPEG1轉碼,而且沒有做任何色彩空間轉換,則應該將此選項設為1。
  • 如果是從正確次采樣4:2:0的MPEG2轉碼,而且沒有做任何色彩空間轉換,則應該將此選項設為0。
  • 如果是從正確次采樣4:2:0的MPEG4轉碼,而且沒有做任何色彩空間轉換,則應該將此選項設為0。
  • 否則,維持默認值。

nal-hrd

默認值:none

標志HRD資訊。這是藍光資料流、電視廣播和幾個其他專業范圍所需要的。

可用的值:

none:不指定HRD資訊。
vbr:指定HRD資訊。
cbr:指定HRD資訊并以--bitrate指定的位元率來封裝位元資料流。需要--bitrate模式的位元率控制。

建議:默認值,除非需要標志此資訊

參閱:--vbv-bufsize, --vbv-maxrate, --aud

pic-struct

默認值:無

強制在Picture Timing SEI里傳送pic_struct。

當使用--pulldown--tff/--bff時會自動啟用。

建議:默認值

crop-rect

默認值:無

指定一個位元資料流層級的裁剪矩形。如果想要解碼器在播放時裁剪,但因為某些原因不想要裁剪視訊再讓x264編碼,則可以使用此選項。指定的值是在播放時應該被裁剪的像素。

輸入/輸出

output

默認值:無

指定輸出檔名。指定的副檔名決定視訊的輸出格式。如果副檔名無法辨識,則默認輸出格式是原始格式(raw)視訊資料流(通常儲存為.264副檔名)。

特殊位置NUL(Windows)或/dev/null(Unix)指明輸出應該被丟棄。這在使用--pass 1時特別有用,因為唯一在乎的輸出是--stats

muxer

默認值:auto

指定要輸出什么格式。

可用的值:auto, raw, mkv, flv, mp4

auto選項會根據提供的輸出檔名挑選一個多工器(muxer)。

建議:默認值

參閱:--output

demuxer

默認值:auto

設定x264使用什么解多工器(demuxer)和解碼器來剖析輸入視訊。

可用的值:auto, raw, y4m, avs, lavf, ffms

如果輸入檔案有raw、y4m或avs的副檔名,則x264會使用相關解多工器來讀取檔案。標準輸入使用原始格式解多工器。否則,x64會嘗試以ffms來開啟檔案,然后再嘗試以lavf來開啟檔案,最后開啟失敗。

"lavf"和"ffms"選項需要x264以分別的程式庫(libraries)編譯。如果使用到兩者之一,x264會從輸入檔案帶入時間碼(timecodes),條件是不能輸出為原始格式。這有效地使x264感知VFR。其他選項可以指定--fps為固定幀率,或者指定--tcfile-in為變動幀率。

建議:默認值

參閱:--input, --muxer

input-csp

默認值:無

告訴x264原始格式視訊輸入是什么色彩空間。支援的色彩空間可以從x264 --fullhelp的說明里得知。

注意,雖然有支援RGB色彩空間,但視訊在編碼之前會使用bt601(即"SD")矩陣來轉換成YUV。

參閱:--input-res, --fps

input-res

默認值:無

指定原始格式視訊輸入的分辨率。語法是--input-res 720x576

參閱:--input-csp, --fps




本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/254724.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/254724.shtml
英文地址,請注明出處:http://en.pswp.cn/news/254724.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C#圓形卡尺測量程序基于halcon

廢話不多說上源碼 覺得帖子有用給點個贊哈 先來個效果圖 下邊的是源碼&#xff0c;自己新建一個文件粘貼進去&#xff0c;包含到您現在的項目 中。這串源碼后邊是使用方法。 using System; using System.Collections.Generic; using System.Linq; using System.Text; usin…

MySQL松散索引掃描與緊湊索引掃描

什么是松散索引&#xff1f; 答&#xff1a;實際上就是當MySQL 完全利用索引掃描來實現GROUP BY 的時候&#xff0c;并不需要掃描所有滿足條件的索引鍵即可完成操作得出結果。 要利用到松散索引掃描實現GROUP BY&#xff0c;需要至少滿足以下幾個條件&#xff1a;◆ GROUP BY 條…

算法馬拉松24

算法馬拉松24 A 小C的多邊形 題意&#xff1a;n1個點的多邊形。給外圈的邊標記上1~n&#xff0c;里圈的邊也標記上1~n&#xff0c;使得對于一個外圈相鄰點與中間點構成的三角形的邊權之和都相等。\(n \le 10^6\) 題解&#xff1a;顯然每個三角形權值和為\(\frac{3(n1)}{2}\) 一…

HUD2795 線段樹(單點更新)

題目中給出的h和w范圍均大&#xff0c;其實n的最大范圍才200000&#xff0c;所以我們建立的線段樹大小為min(h,n),線段樹的每一個節點包含一個變量c&#xff0c;記錄當前區間內還剩下的可以put on的最大長度。插入一個數時&#xff0c;如果該數大于該區間最大值&#xff0c;則返…

科維PLC運行時系統ProConOS embedded CLR 2.2 特定應用

ProConOS embedded CLR是新型的開放式標準化PLC運行時系統&#xff0c;符合IEC 61131標準&#xff0c;可執行不同的自動化任務&#xff08;PLC、PAC、運動控制、CNC、機器人和傳感器&#xff09;。   通過采用國際標準的微軟中間語言&#xff08;依據IEC/ISO 23271標準為MSIL…

linux下vi命令大全

進入vi的命令 vi filename :打開或新建文件&#xff0c;并將光標置于第一行首 vi n filename &#xff1a;打開文件&#xff0c;并將光標置于第n行首 vi filename &#xff1a;打開文件&#xff0c;并將光標置于最后一行首 vi /pattern filename&#xff1a;打開文件&…

set()與get()詳細解答(C#)

這幾天在搬磚時候用到了set()與get()&#xff0c;同事問了我一些問題&#xff0c;我打算在博客中總結一下。 覺得幫助到了您&#xff0c;幫我點個贊哦。 屬性訪問器 其實說白了就是操作一個屬性&#xff0c;更通俗一點說就是對一個變量的取值與賦值。 先來看get() get 訪問…

IM應用中如何計算富文本的高度

背景 在開發IM的項目過程中&#xff0c;經常會有出現一些需要計算DOM高度&#xff0c;然后超出若干行隱藏等需求。很多時候&#xff0c;需要計算高度的DOM元素都是動態生成的&#xff0c;我們無法在數據渲染前獲取到它的高度。 如果沒有任何交互&#xff0c;我們可以通過CSS來實…

G代碼 機器人的CNC實現

&#xfeff;  控制銑削工作臺和工件的NC程序&#xff0c;通過CAD軟件創建&#xff0c;這些NC程序與特定的機器類型相關。 NC程序在笛卡爾坐標系中動作的描述&#xff0c;對于需要確保一個明確的變換軸位置的關節型的機器人來說&#xff0c;缺少附加的狀態和旋轉信息。傳…

IScroll5中文API整理,用法與參考

IScroll是移動頁面上被使用的一款仿系統滾動插件。IScroll5相對于之前的IScroll4改進了許多&#xff0c;使得大家可以更方便的定制所需的功能了。 做項目的時候正好用到了這個插件&#xff0c;自己做了一下總結&#xff0c;發在這里方便大家學習IScroll5。 官網&#xff1a;htt…

Linux?安裝USB攝像頭

sudo apt-get updatesudo apt-get install fswebcamsudo apt-get install mplayersudo apt-get install alsamixer安裝完畢ls /dev查找設備是否有video0這個設備sudo mplayer tv:// 可以看到攝像內容轉載于:https://www.cnblogs.com/smartkeke/p/6820426.html

struct x264_t 維護著CODEC的諸多重要信息

//x264_t結構體維護著CODEC的諸多重要信息struct x264_t{/* encoder parameters ( 編碼器參數 )*/x264_param_t param;x264_t *thread[X264_SLICE_MAX];/* bitstream output ( 字節流輸出 ) */struct{int i_nal;x264_nal_t nal[X264_NAL_MAX];int i_bitstr…

如何判斷一條曲線是否自己相交?

今天看到群里有人在問這個問題&#xff0c;想了一個解決辦法。 我們首先作假設&#xff0c;如果一條曲線有交點&#xff0c;那么它就是相交的對吧。可能大家想的都是這樣&#xff0c;就開始找各種方法去識別交點。 我們換個角度想一下&#xff1a;是不是我們判斷這條曲線是否帶…

XML 與網絡的數據傳輸

&#xfeff;&#xfeff;XML 與網絡的數據傳輸

hdu 5813 Elegant Construction

水題 題意&#xff1a;有n個城市&#xff0c;給你每個城市能到達城市的數量&#xff0c;要你構圖&#xff0c;輸出有向邊&#xff0c;要求無環&#xff0c;輸出任意的解 例&#xff1a; Sample Input 332 1 021 143 1 1 0Sample OutputCase #1: Yes21 22 3Case #2: NoCase #3: …

Redis實戰筆記

Redis 數據庫 一、 概要 1. 特點 用于抽象數據類型的 DSL內存存儲基礎數據結構 API編碼風格避免代碼復雜兩層 API以優化為樂2. 數據類型 鍵值對&#xff08;字符串->字符串&#xff09;哈希列表&#xff08;鏈表&#xff09;集合&#xff1a;差并交有序集合 列表 集合位圖…

內存申請與一級二級指針

1.如果是函數內進行內存申請&#xff0c;很簡單&#xff0c;標準用法就可以了&#xff1a; test(){int *array;array(int *)malloc(sizeof(int)*10);//申請10*4 bytes&#xff0c;即10個單位的int內存單元}注意&#xff0c;malloc使用簡單&#xff0c;但是注意參數和返回值&…

halcon相機標定及圖像矯正(代碼)

侵刪 1 halcon相機標定和圖像矯正 對于相機采集的圖片&#xff0c;會由于相機本身和透鏡的影響產生形變&#xff0c;通常需要對相機進行標定&#xff0c;獲取相機的內參或內外參&#xff0c;然后矯正其畸變。相機畸變主要分為徑向畸變和切向畸變&#xff0c;其中徑向畸變是由透…

找尋一個郵箱

import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern;public class zhengze {public static void main(String[] args) { //1.創建一個正則表達式對象Pattern pPattern.compile("[0-9]{6}"); //2.獲得匹配器 String s…

先弄個XML解析器代碼抄一抄 慢慢研究 O(∩_∩)O哈哈~

&#xfeff;&#xfeff;出處&#xff1a;http://bbs.csdn.net/topics/390229172 已經自我放逐好幾年了.打算去上班得了.在最后的自由日子里,做點有意義的事吧... 先來下載地址 http://www.kuaipan.cn/file/id_12470514853353274.htm 已經在很多正式,非正式的場合…