ffmpeg使用x264編碼的配置+ ffmpeg與 x264編碼器參數完整對照表

ffmpeg使用x264編碼的配置+ ffmpeg與 x264編碼器參數完整對照表

分類: 多媒體 1072人閱讀 評論(0) 收藏 舉報

轉載自:扶凱[http://www.php-oa.com]

本文鏈接: http://www.php-oa.com/2009/03/09/ffmpeg_x264.html

轉帖:http://rhingheart.blogspot.com/2009/03/ffmpegx264-ffmpeg-x264.html

注:講實話,有關這些使用的文章真的不錯,我們在這謝謝"SV的邊界"本來我自己還想總結一下的。看來沒有必要了,呵呵,在次多謝"SV的邊界".下面原文

使用ffmpeg進行.264編碼的相關文章比較少,google了一下,特總結如下:

  • qscale的取值可以是0.01-255但實際使用超過50就很糟糕了
  • ffmpeg的cbr模式可以把碼率控制的不錯,但是vbr無法限制最高碼率(雖然有max的設置,但是程序沒有實現)
  • x264標準的封裝是x264+aac in flv或者x264+aac in MP4

接下來說明下ffmpeg命令行的語法規則(本塊內容來自2009-03-02官方文檔):

語法規則結構:

ffmpeg [[infile options][`-i' infile]]... {[outfile options] outfile}... 

一個最簡單的命令形式:

ffmpeg -i input.avi -b 64k output.avi  

這個命令把視頻以64k的碼率重編碼。

顯然,輸入文件前面要加一個-i選項下面介紹一些有用的全局參數:

  • -formats 參數。會顯示你機器當前支持的封裝、編碼、解碼器的信息
  • -y參數,會指示ffmpeg覆蓋輸出文件
  • -t 指定視頻流持續的時常,支持以秒為單位的數字或"時:分:秒[.毫秒]"
  • -fs 指定輸出文件大小的限制
  • -ss 指定開始的時間,和-t的單位一樣
  • -target 直接設定你想要轉成的目標格式,所有的相關設置都會采用內設值,當然也你也可以加上自己要修改的參數。可用的選擇有: "vcd", "svcd", "dvd", "dv", "dv50", "pal-vcd", "ntsc-svcd", … 這個例子把視頻轉換成vcd的格式

    ?

    ffmpeg -i myfile.avi -target vcd /tmp/vcd.mpg 

接下來介紹視頻選項:

  • -b 指定碼率注意單位是bit/s,所以我們一般要加k,比如 -b 1000k 就是1000kb/s
  • -g 設置組的大小
  • -vframes 指定要編碼的幀數,比如-vframes 1 就是編碼1幀,截圖的時候就這樣寫.
  • -r 指定幀率,默認是25
  • -s 指定圖像分辨率,用wxh的格式,比如320×240
  • -aspect 指定寬高比 可以些16:9這種,也可以寫小數比如1.3333
  • -croptop 指定頂部裁減多少像素,類似的還有-cropleft -cropright -cropbuttom
  • -bt 設置比特率容許的誤差,默認4000k,在第一階段時使用這個參數會告訴碼率控制器能夠偏移平均碼率多遠,這個選項和最大最小碼率無關.設太小了不利于質量
  • -maxrate 和-minrate 指定允許的最大和最小碼率,一般如果要用cbr模式編碼的話會用這個:
    ffmpeg -i myfile.avi -b 4000k -minrate 4000k -maxrate 4000k -bufsize 1835k out.m2v
    否則用處不大
  • -vcodec 強制使用某種編碼器
  • -sameq 使用和源文件相同的質量,這個選項是動態碼率的
  • -pass 指定編碼階段,這個只有1和2,第一階段的時候應該不處理音頻,并且把輸出導向空,比如:
    ffmpeg -i foo.mov -vcodec libxvid -pass 1 -an -f rawvideo -y NULffmpeg -i foo.mov -vcodec libxvid -pass 1 -an -f rawvideo -y /dev/null 
    • -qscale 使用固定量化因子來量化視頻這個是在vbr模式的,前面有提到,越小質量越好,不要超過50,相關的參數還有-qmin –qmax用來設定最大最小可使用的量化值
    • -qdiff 指定固定量化器因子允許的最大偏差
    • -qblur 指定量化器模糊系數,可用范圍是0.0-1.0越大使得碼率在時間上分配的越平均
    • -qcomp 指定視頻量化器壓縮系數,默認0.5
    • -me_method 指定運動估計方法(motion estimation method),可用的選擇從垃圾到好排列如下: zero (0向量) phods log x1 hex umh epzs (默認) full (完全搜索,很慢又好不到哪里去)
    • -mbd 設定宏模塊決策,可用的值: 0 使用mb_cmp,不知道是什么東西,所以這些參數我參考一下mencoder里面的 1 選用需要比特最少的宏塊模式 2 選用碼率失真最優的宏塊模式
    • -4mv 使用宏塊的4個運動向量,只支持mpeg4
    • -part 使用數據劃分,只支持mpeg4
    • -ilme 強制允許交錯的編碼,只支持mpeg2和mpeg4,你可以選擇用-deinterlace來去交錯

音頻部分:

?

  • -ar 設置采樣頻率,默認44100hz
  • -ab 設置比特率,默認64k
  • -an 禁用音頻錄制
  • -acodec 指定音頻編碼器

?

下面舉幾個x264編碼的例子:

?

我使用mencoder調用x264編碼一個psp用的視頻:

x264+aac in mp4 (我修改過的,原作者的不能使用)
mencoder test_video.vob -oac lavc -lavcopts acodec=libfaac:abitrate=94 -ovc x264 -x264encopts/
cabac=1:ref=1:deblock=1,0,0:analyse=0x1,0x111:me=hex:subme=6:psy_rd=1.0,0.0:mixed_refs=0:me_range=32:chroma_me=1:trellis=1:8x/
8dct=0:no-chroma-me=0:chroma_qp_offset=-/
2:nr=0:dct_decimate=1:bframes=3:b_pyramid=0:b_adapt=1:b_bias=0:direct=3:keyint=250:keyint_min=25:scenecut=40:qp=18:bitrate=80/
0 -lavdopts er=2 -of lavf -lavfopts format=mp4 -vf scale=720:480 -o men.mp4?

對應的ffmpeg編碼參數是:

ffmpeg
ffmpeg -i inputfile.avi -f psp -acodec libfaac -ab 94k -vcodec libx264 -cqp 28 -coder 1 -refs 3 -deblockalpha 1 -deblockbeta -1 -me_method umh -subq 9 -me_range 32 -trellis 2 -chromaoffset -2 -nr 0 -bf 2 -b_strategy 1 -bframebias 0 -directpred 3 -g 250 -i_qfactor 1.3 -b_qfactor 1.4 -flags2 +bpyramid+wpred+mixed_refs+8x8dct -er 2 -s 480x320

需要注意的是,flags2里面那塊,似乎要按照一定順序才能正常工作,其他地方都差不多,詳細情況可以從下面兩篇文章得出:

第一篇是這個在網上被傳了很多,但有些問題的對照表格,我修改了有問題的部分:

FFmpeg optionx264 option
-g <frames>–keyint
-b <bits per second>–bitrate
-bufsize <bits>–vbv-bufsize
-maxrate <bits>–vbv-maxrate
-pass <1,2,3>–pass
-crf <float>–crf
-cqp <int>–qp
-bf <int>–bframes
-coder <0,1>–no-cabac
-bframebias <int>–b-bias
-keyint_min <int>–min-keyint
-sc_threshold <int>–scenecut
-deblockalpha <int>-deblockbeta <int>–deblock
-qmin <int>–qpmin
-qmax <int>–qpmax
-qdiff <int>–qpstep
-qcomp <float>–qcomp
-qblur <float>–qblur
-complexityblur <float>–cplxblur
-refs <int>–ref
-directpred <int>–direct
-me_method <epzs,hex,umh,full>–me
-me_range <int>–merange
-subq <int>–subme
-bidir_refine <0,1>–bime
-trellis <0,1,2>–trellis
-nr <int>–nr
-level <int>–level
-bt <bits>–ratetol = -bt / -b
-rc_init_occupancy <bits>–vbv-init = -rc_init_occupancy / -bufsize
-i_qfactor <float>–ipratio = 1 / -i_qfactor
-b_qfactor <float>–pbratio
-chromaoffset <int>–chroma-qp-offset
-rc_eq <string>–rc_eq
-threads <int>–threads
-cmp <-chroma/+chroma>–no-chroma-me
-partitions–partitions
+parti8×8i8×8
+parti4×4i4×4
+partp8×8p8×8
+partp4×4p4×4
+partb8×8b8×8
-flags?
-loop/+loop–no-deblock/–deblock
-psnr/+psnr–no-psnr/nothing
-flags2?
+bpyramid–b-pyramid
+wpred–weightb
+brdo–b-rdo 我這里的ffmpeg已經不能用這個了
+mixed_refs–mixed-refs
+dct8×8–8×8dct
-fastpskip/+fastpskip–no-fast-pskip
+aud–aud

?

下面是一篇關于這些參數詳細解釋的文章,轉自:http://ffmpeg.x264.googlepages.com/mapping

?

一下是這篇文章在2008年11月19日更新的版本:

?

Frame-type options:

  • –keyint <integer> (x264)
    -g <integer>
    (FFmpeg)
    Keyframe interval, also known as GOP length. This determines the maximum distance between I-frames. Very high GOP lengths will result in slightly more efficient compression, but will make seeking in the video somewhat more difficult. Recommended default: 250

?

  • –min-keyint <integer> (x264)
    -keyint_min <integer> (FFmpeg)
    Minimum GOP length, the minimum distance between I-frames. Recommended default: 25

?

  • –scenecut <integer> (x264)
    -sc_threshold <integer> (FFmpeg)
    Adjusts the sensitivity of x264′s scenecut detection. Rarely needs to be adjusted. Recommended default: 40

?

  • –pre-scenecut (x264)
    UNKNOWN (FFmpeg)
    Slightly faster (but less precise) scenecut detection. Normal scenecut detection decides whether a frame is a scenecut after the frame is encoded, and if so then re-encodes the frame as an I-frame. This is not compatible with threading, however, and so –pre-scenecut is automatically activated when multiple encoding threads are used.

?

  • –bframes <integer> (x264)
    -bf <integer> (FFmpeg)
    B-frames are a core element of H.264 and are more efficient in H.264 than any previous standard. Some specific targets, such as HD-DVD and Blu-Ray, have limitations on the number of consecutive B-frames. Most, however, do not; as a result, there is rarely any negative effect to setting this to the maximum (16) since x264 will, if B-adapt is used, automatically choose the best number of B-frames anyways. This parameter simply serves to limit the max number of B-frames. Note that Baseline Profile, such as that used by iPods, does not support B-frames. Recommended default: 16

?

  • –b-adapt <integer> (x264)
    -b_strategy <integer> (FFmpeg)
    x264, by default, adaptively decides through a low-resolution lookahead the best number of B-frames to use. It is possible to disable this adaptivity; this is not recommended. Recommended default: 1

    0: Very fast, but not recommended. Does not work with pre-scenecut (scenecut must be off to force off b-adapt).

    1: Fast, default mode in x264. A good balance between speed and quality.

    2: A much slower but more accurate B-frame decision mode that correctly detects fades and generally gives considerably better quality. Its speed gets considerably slower at high bframes values, so its recommended to keep bframes relatively low (perhaps around 3) when using this option. It also may slow down the first pass of x264 when in threaded mode.

?

  • –b-bias 0 (x264)
    -bframebias 0 (FFmpeg)
    Make x264 more likely to choose higher numbers of B-frames during the adaptive lookahead. Not generally recommended. Recommended default: 0

?

  • –b-pyramid (x264)
    -flags2 +bpyramid (FFmpeg)
    Allows B-frames to be kept as references. The name is technically misleading, as x264 does not actually use pyramid coding; it simply adds B-references to the normal reference list. B-references get a quantizer halfway between that of a B-frame and P-frame. This setting is generally beneficial, but it increases the DPB (decoding picture buffer) size required for playback, so when encoding for hardware, disabling it may help compatibility.

?

  • –no-cabac (x264)
    -coder 0,1 (FFmpeg)
    CABAC is the default entropy encoder used by x264. Though somewhat slower on both the decoding and encoding end, it offers 10-15% improved compression on live-action sources and considerably higher improvements on animated sources, especially at low bitrates. It is also required for the use of trellis quantization. Disabling CABAC may somewhat improve decoding performance, especially at high bitrates. CABAC is not allowed in Baseline Profile. Recommended default: -coder 1 (CABAC enabled)

?

  • –ref <integer> (x264)
    -refs <integer> (FFmpeg)
    One of H.264′s most useful features is the abillity to reference frames other than the one immediately prior to the current frame. This parameter lets one specify how many references can be used, through a maximum of 16. Increasing the number of refs increases the DPB (Decoded Picture Buffer) requirement, which means hardware playback devices will often have strict limits to the number of refs they can handle. In live-action sources, more reference have limited use beyond 4-8, but in cartoon sources up to the maximum value of 16 is often useful. More reference frames require more processing power because every frame is searched by the motion search (except when an early skip decision is made). The slowdown is especially apparent with slower motion estimation methods. Recommended default: -refs 6

?

  • –no-deblock (x264)
    -flags -loop (FFmpeg)
    Disable loop filter. Recommended default: -flags +loop (Enabled)

?

  • –deblock (x264)
    -deblockalpha <integer>(FFmpeg)
    -deblockbeta <integer>(FFmpeg)
    One of H.264′s main features is the in-loop deblocker, which avoids the problem of blocking artifacts disrupting motion estimation. This requires a small amount of decoding CPU, but considerably increases quality in nearly all cases. Its strength may be raised or lowered in order to avoid more artifacts or keep more detail, respectively. Deblock has two parameters: alpha (strength) and beta (threshold). Recommended defaults:-deblockalpha 0 -deblockbeta 0 (Must have ‘-flags +loop’)

?

  • –interlaced (x264)
    UNKNOWN (FFmpeg)
    Enables interlaced encoding. x264′s interlaced encoding is not as efficient as its progressive encoding; consider deinterlacing for maximum effectiveness.

Ratecontrol:

  • –qp <integer>(x264)
    -cqp <integer>(FFmpeg)
    Constant quantizer mode. Not exactly constant completely–B-frames and I-frames have different quantizers from P-frames. Generally should not be used, since CRF gives better quality at the same bitrate.

?

  • –bitrate <integer>(x264)
    -b <integer>(FFmpeg)
    Enables target bitrate mode. Attempts to reach a specific bitrate. Should be used in 2-pass mode whenever possible; 1-pass bitrate mode is generally the worst ratecontrol mode x264 has.

?

  • –crf <float>(x264)
    -crf <float>(FFmpeg)
    Constant quality mode (also known as constant ratefactor). Bitrate corresponds approximately to that of constant quantizer, but gives better quality overall at little speed cost. The best one-pass option in x264.

?

  • –vbv-maxrate <integer>(x264)
    -maxrate <integer>(FFmpeg)
    Specifies the maximum bitrate at any point in the video. Requires the VBV buffersize to be set. This option is generally used when encoding for a piece of hardware with bitrate limitations.

?

  • –vbv-bufsize <integer>(x264)
    -bufsize <integer> (FFmpeg)
    Depends on the profile level of the video being encoded. Set only if you’re encoding for a hardware device.

?

  • –vbv-init <float>(x264)
    -rc_init_occupancy <float>(FFmpeg)
    Initial VBV buffer occupancy. Note: Don’t mess with this.

?

  • –qpmin <integer> (x264)
    -qmin <integer> (FFmpeg)
    Minimum quantizer. Doesn’t need to be changed. Recommended default: -qmin 10

?

  • –qpmax <integer> (x264)
    -qmax <integer> (FFmpeg)
    Maximum quantizer. Doesn’t need to be changed. Recommended default: -qmax 51

?

  • –qpstep <integer> (x264)
    -qdiff <integer> (FFmpeg)
    Set max QP step. Recommended default: -qdiff 4

?

  • –ratetol <float>(x264)
    -bt <float>(FFmpeg)
    Allowed variance of average bitrate

?

  • –ipratio <float>(x264)
    -i_qfactor <float>(FFmpeg)
    Qscale difference between I-frames and P-frames.

?

  • –pbratio <float>(x264)
    -b_qfactor <float>(FFmpeg)
    Qscale difference between P-frames and B-frames.

?

  • –chroma-qp-offset <integer>(x264)
    -chromaoffset <integer>(FFmpeg)
    QP difference between chroma and luma.

?

  • –aq-strength <float> (x264)
    UNKNOWN (FFmpeg)
    Adjusts the strength of adaptive quantization. Higher values take more bits away from complex areas and edges and move them towards simpler, flatter areas to maintain fine detail. Default: 1.0

?

  • –pass <1,2,3> (x264)
    -pass <1,2,3>(FFmpeg)
    Used with –bitrate. Pass 1 writes the stats file, pass 2 reads it, and 3 both reads and writes it. If you want to use three pass, this means you will have to use –pass 1 for the first pass, –pass 3 for the second, and –pass 2 or 3 for the third.

?

  • –stats <string>(x264)
    UNKNOWN (FFmpeg)
    Allows setting a specific filename for the firstpass stats file.

?

  • –rceq <string>(x264)
    -rc_eq <string>(FFmpeg)
    Ratecontrol equation. Recommended default: -rc_eq ‘blurCplx^(1-qComp)’

    ?

  • –qcomp <float>(x264)
    -qcomp <float> (FFmpeg)
    QP curve compression: 0.0 => CBR, 1.0 => CQP. Recommended default: -qcomp 0.60

?

  • –cplxblur <float>(x264)
    -complexityblur <float>(FFmpeg)
    Reduce fluctuations in QP (before curve compression) [20.0]

?

  • –qblur <float>(x264)
    -qblur <float>(FFmpeg)
    Reduce fluctuations in QP (after curve compression) [0.5]

?

  • –zones /(x264)
    UNKNOWN (FFmpeg)
    Allows setting a specific quantizer for a specific region of video.

?

  • –qpfile (x264)
    UNKNOWN (FFmpeg)
    Allows one to read in a set of frametypes and quantizers from a file. Useful for testing various encoding options while ensuring the exact same quantizer distribution.

Analysis:

  • –partitions <string> (x264)
    -partitions <string> (FFmpeg)

    ?

    p8x8 (x264) /+partp8x8 (FFmpeg)

    p4x4 (x264) /+partp4x4 (FFmpeg)

    b8x8 (x264) /+partb8x8 (FFmpeg)

    i8x8 (x264) /+parti8x8 (FFmpeg)

    i4x4 (x264) /+parti4x4 (FFmpeg)

    One of H.264′s most useful features is the ability to choose among many combinations of inter and intra partitions. P-macroblocks can be subdivided into 16×8, 8×16, 8×8, 4×8, 8×4, and 4×4 partitions. B-macroblocks can be divided into 16×8, 8×16, and 8×8 partitions. I-macroblocks can be divided into 4×4 or 8×8 partitions. Analyzing more partition options improves quality at the cost of speed. The default is to analyze all partitions except p4x4 (p8x8, i8x8, i4x4, b8x8), since p4x4 is not particularly useful except at high bitrates and lower resolutions. Note that i8x8 requires 8x8dct, and is therefore a High Profile-only partition. p8x8 is the most costly, speed-wise, of the partitions, but also gives the most benefit. Generally, whenever possible, all partition types except p4x4 should be used.

?

  • –direct <integer>(x264)
    -directpred <integer>(FFmpeg)
    B-frames in H.264 can choose between spatial and temporal prediction mode. Auto allows x264 to pick the best of these; the heuristic used is whichever mode allows more skip macroblocks. Auto should generally be used.

?

  • –direct-8×8 (x264)
    UNKONWN (FFmpeg)
    This should be left at the default (-1).

?

  • –weightb (x264)
    -flags2 +wpred(FFmpeg)
    This allows B-frames to use weighted prediction options other than the default. There is no real speed cost for this, so it should always be enabled.

?

  • –me

?

  • –merange <integer>(x264)
    -me_range <integer>(FFmpeg)
    MErange controls the max range of the motion search. For HEX and DIA, this is clamped to between 4 and 16, with a default of 16. For UMH and ESA, it can be increased beyond the default 16 to allow for a wider-range motion search, which is useful on HD footage and for high-motion footage. Note that for UMH and ESA, increasing MErange will significantly slow down encoding.

?

  • –mvrange(x264)
    UNKNOWN (FFmpeg)
    Limits the maximum motion vector range. Since x264 by default limits this to 511.75 for standards compliance, this should not be changed.

?

  • –subme 6(x264)
    -subq 6(FFmpeg)

    ?

    1: Fastest, but extremely low quality. Should be avoided except on first pass encoding.

    2-5: Progressively better and slower, 5 serves as a good medium for higher speed encoding.

    6-7: 6 is the default. Activates rate-distortion optimization for partition decision. This can considerably improve efficiency, though it has a notable speed cost. 6 activates it in I/P frames, and subme7 activates it in B frames.

    8-9: Activates rate-distortion refinement, which uses RDO to refine both motion vectors and intra prediction modes. Slower than subme 6, but again, more efficient.

    An extremely important encoding parameter which determines what algorithms are used for both subpixel motion searching and partition decision.

?

  • –psy-rd <float>:<float> (x264)
    UNKNOWN (FFmpeg)
    First value represents the amount that x264 biases in favor of detail retention instead of max PSNR in mode decision. Requires subme >= 6. Second value is psy-trellis, an experimental algorithm that tries to improve sharpness and detail retention at the expense of more artifacting. Recommended starting values are 0.1-0.2. Requires trellis >= 1. Recommended default: 1.0:0.0

?

  • –mixed-refs(x264)
    -flags2 +mixed_refs(FFmpeg)
    H.264 allows p8x8 blocks to select different references for each p8x8 block. This option allows this analysis to be done, and boosts quality with little speed impact. It should generally be used, though it obviously has no effect with only one reference frame.

?

  • –no-chroma-me(x264)
    UNKNOWN (FFmpeg)
    Chroma is used in the last steps of the subpixel refinement by default. For a slight speed increase, this can be disabled (at the cost of quality).

?

  • –8x8dct (x264)
    -flags2 +dct8x8(FFmpeg)
    Gives a notable quality boost by allowing x264 to choose between 8×8 and 4×4 frequency transform size. Required for i8x8 partitions. Speed cost for this option is near-zero both for encoding and decoding; the only reason to disable it is when one needs support on a device not compatible with High Profile.

?

  • –trellis <0,1,2>(x264)
    -trellis <0,1,2>(FFmpeg)

    ?

    0: disabled

    1: enabled only on the final encode of a MB

    2: enabled on all mode decisions

    The main decision made in quantization is which coefficients to round up and which to round down. Trellis chooses the optimal rounding choices for the maximum rate-distortion score, to maximize PSNR relative to bitrate. This generally increases quality relative to bitrate by about 5% for a somewhat small speed cost. It should generally be enabled. Note that trellis requires CABAC.

?

  • –no-fast-pskip(x264)
    -flags2 -fastpskip(FFmpeg)
    By default, x264 will skip macroblocks in P-frames that don’t appear to have changed enough between two frames to justify encoding the difference. This considerably speeds up encoding. However, for a slight quality boost, P-skip can be disabled. In this case, the full analysis will be done on all P-blocks, and the only skips in the output stream will be the blocks whose motion vectors happen to match that of the skip vector and motion vectors happen to match that of the skip vector and which have no residual. The speed cost of enabling no-fast-pskip is relatively high, especially with many reference frames. There is a similar B-skip internal to x264, which is why B-frames generally encode much faster than P-frames, but it cannot be disabled on the commandline.

?

  • –no-dct-decimate(x264)
    UNKNOWN (FFmpeg)
    By default, x264 will decimate (remove all coefficients from) P-blocks that are extremely close to empty of coefficents. This can improve overall efficiency with little visual cost, but may work against an attempt to retain grain or similar. DCT decimation should be left on unless there’s a good reason to disable it.

?

  • –nr(x264)
    UNKNOWN (FFmpeg)
    a fast, built-in noise reduction routine. Not as effective as external filters such as hqdn3d, but faster. Since x264 already naturally reduces noise through its quantization process, this parameter is not usually necessary.

?

  • –deadzone-inter(264)
    –deadzone-intra (x264)
    UNKNOWN (FFmpeg)
    UNKNOWN (FFmpeg)
    When trellis isn’t activated, deadzone parameters determine how many DCT coefficients are rounded up or down. Rounding up results in higher quality and more detail retention, but costs more bits–so rounding is a balance between quality and bit cost. Lowering these settings will result in more coefficients being rounded up, and raising the settings will result in more coefficients being rounded down. Recommended: keep them at the defaults.

?

  • –cqm (264)
    –cqpfile(x264)UNKNOWN (FFmpeg)
    UNKNOWN (FFmpeg)
    Allows the use of a custom quantization matrix to weight frequencies differently in the quantization process. The presets quant matrices are "jvt" and "flat". –cqpfile reads a custom quant matrices from a JM-compatible file. Recommended only if you know what you’re doing.

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

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

相關文章

javascript之變量

定義變量方式有var&#xff0c;let&#xff0c;const&#xff0c;變量的類型是根據變量的值來確定&#xff0c;變量的名稱跟大多數語言一樣&#xff0c;包含數字字母_$,不能以數字開頭且區分大小寫。 var 最早的定義變量的方式&#xff0c;可重復定義,但請避免這樣做。 var a …

Maven理解

2019獨角獸企業重金招聘Python工程師標準>>> Maven概念 參考maven入門 冰河winner Maven作為一個構建工具&#xff0c;不僅能幫我們自動化構建&#xff0c;還能夠抽象構建過程&#xff0c;提供構建任務實現;它跨平臺&#xff0c;對外提供了一致的操作接口&#xff0…

HALCON示例程序measure_circles.hdev測量圓的半徑

HALCON示例程序measure_circles.hdev測量圓的半徑 示例程序源碼&#xff08;加注釋&#xff09; 關于顯示類函數解釋 dev_update_off () read_image (Image, ‘circle_plate’) get_image_size (Image, Width, Height) dev_close_window () dev_open_window (0, 0, Width / 2…

OpenTLD 未完成 - 虎頭

TLD是一種算法的簡稱&#xff0c;原作者把它叫做Tracking-Learning-Detection。搞視覺的人看到這個名字都會嚇一跳&#xff0c;很ambitious的計劃。是09年的工作&#xff0c;不算太久&#xff0c;不過也不太新。網上關于這個的資源其實很多&#xff0c;很大程度和作者開放源代碼…

C# FileSystemWatcher 在監控文件夾和文件時的用法

********************************************************************************** 第一個文章: ********************************************************************************** 概述 最近學習FileSystemWatcher的用法,它主要是監控一個文件夾,當文件夾內的文件要…

比微軟kinect更強的視頻跟蹤算法--TLD跟蹤算法介紹

TLD (Tracking-Learning-Detection)是英國薩里大學的一個捷克籍博士生在其攻讀博士學位期間提出的一種新的單目標長時間&#xff08; long term tracking &#xff09;跟蹤算法。該算法與傳統跟蹤算法的顯著區別在于將傳統的跟蹤算法和傳統的檢測算法相結合來解決被跟蹤目標在被…

HALCON示例程序measure_circuit_width_lines_gauss.hdev電路板線寬檢測

HALCON示例程序measure_circuit_width_lines_gauss.hdev電路板線寬檢測 示例程序源碼&#xff08;加注釋&#xff09; 關于顯示類函數解釋 dev_update_off () dev_close_window () read_image (Image, ‘pcb_color’) get_image_size (Image, Width, Height) dev_open_window…

一張圖看懂混合云數據同步一站式解決方案

摘要&#xff1a; 針對不同數據庫間數據實時同步難的問題&#xff0c;日前&#xff0c;阿里云宣布推出混合云數據同步一站式解決方案&#xff0c;便于廣大云產品用戶實現實時數據同步的混合云支持&#xff0c;更為方便的是&#xff0c;該功能讓本地Oracle也能實現與云上數據庫的…

分布式性能測試

Jmeter分布式測試 在使用Jmeter進行性能測試時&#xff0c;如果并發數比較大(比如最近項目需要支持1000并發)&#xff0c;單臺電腦的配置(CPU和內存)可能無法支持&#xff0c;這時可以使用Jmeter提供的分布式測試的功能。 一、Jmeter分布式執行原理&#xff1a; 1、Jmeter分布式…

互斥鎖pthread_mutex_t的使用

1. 互斥鎖創建 有兩種方法創建互斥鎖&#xff0c;靜態方式和動態方式。POSIX定義了一個宏PTHREAD_MUTEX_INITIALIZER來靜態初始化互斥鎖&#xff0c;方法如下&#xff1a; pthread_mutex_t mutexPTHREAD_MUTEX_INITIALIZER; 在LinuxThreads實現中&#xff0c;pthread_…

無效設備解決辦法

touch /etc/ini.d/FirstLoadkill 殺死槍彈柜程序 或重啟reboot轉載于:https://www.cnblogs.com/yygsj/p/5634384.html

HALCON示例程序measure_grid.hdev使用XLD分割鍵盤輪廓

HALCON示例程序measure_grid.hdev使用XLD分割鍵盤輪廓 示例程序源碼&#xff08;加注釋&#xff09; 關于顯示類函數解釋 dev_update_off () read_image (Image, ‘keypad’) get_image_pointer1 (Image, Pointer, Type, Width, Height) dev_close_window () dev_open_window…

[BZOJ3992]序列統計

DP一下&#xff0c;設$f_{i,j}$表示生成$i$個數且乘積$\%Mj$的方案數&#xff0c;則$f_{i1,l}\sum\limits_{jk\%Ml}[k\in S]f_{i,j}$ 我們很不希望DP式中下標的位置出現乘法&#xff0c;因為這樣不好轉移&#xff0c;考慮把乘法換成加法 因為模數$M$是質數&#xff0c;所以它有…

socket,TCP/IP的理解(轉)

TCP/IP 要想理解socket首先得熟悉一下TCP/IP協議族&#xff0c; TCP/IP&#xff08;Transmission Control Protocol/Internet Protocol&#xff09;即傳輸控制協議/網間協議&#xff0c;定義了主機如何連入因特網及數據如何再它們之間傳輸的標準&#xff0c; 從字面意思來看TCP…

最小中間和

題目描述 給定一個正整數序列a1,a2,...,an&#xff0c;不改變序列中的每個元素在序列中的位置&#xff0c;把它們相加&#xff0c;并用括號記每次加法所得的和&#xff0c;稱為中間和。編程&#xff1a;找到一種方法&#xff0c;添上n-1對括號&#xff0c;加法運算依括號順序進…

HALCON示例程序measure_metal_part_extended.hdev金屬零件尺寸測量

HALCON示例程序measure_metal_part_extended.hdev金屬零件尺寸測量 示例程序源碼&#xff08;加注釋&#xff09; 關于顯示類函數解釋 dev_update_off () read_image (Image, ‘metal-parts/metal-parts-01’) init_visualization (Image, 3, ‘white’, ‘margin’, Width, …

雙目匹配與視差計算

立體匹配主要是通過找出每對圖像間的對應關系&#xff0c;根據三角測量原理&#xff0c;得到視差圖&#xff1b;在獲得了視差信息后&#xff0c;根據投影模型很容易地可以得到原始圖像的深度信息和三維信息。立體匹配技術被普遍認為是立體視覺中最困難也是最關鍵的問題&#xf…

JavaEE 銀聯支付之網站支付-消費類交易

以銀聯網站支付 - 消費類交易 為例 0. 大致邏輯 前端request->后臺封裝參數->后臺進行簽名->生成跳轉頁面&#xff08;包含表單提交內容&#xff09;->響應前端&#xff08;將生成的html寫到瀏覽器中完成自動跳轉打開銀聯支付頁面&#xff09; 復制代碼1.acp_sdk.p…

react 開發知識準備

react react使用教程 babel babel 可用于ES6轉換為ES5&#xff0c;jsx轉換為原生js。 ES6 ES6 語法 webpack webpack打包工具&#xff0c;它把不同的、相互依賴的靜態資源都視作模塊&#xff0c;并且打包成我們想要的靜態資源。讓代碼組織更清晰&#xff0c;一個文件就是一個模…

Linux多線程編程(不限Linux)

——本文一個例子展開&#xff0c;介紹Linux下面線程的操作、多線程的同步和互斥。 前言 線程&#xff1f;為什么有了進程還需要線程呢&#xff0c;他們有什么區別&#xff1f;使用線程有什么優勢呢&#xff1f;還有多線程編程的一些細節問題&#xff0c;如線程之間怎樣同步、…