このページの全ては誤っているかもしれません。x264関連の記事に関してを読んでください。
x264-changelog-jp r1600-r1699
r1600-r1699のchangelogの日本語訳。その他のリビジョンと注意事項についてはx264-changelog-jpへどうぞ。
前:x264-changelog-jp r1500-r1599 - 次:x264-changelog-jp r1700-r1799
速報とか暫定訳とか仮訳とか書いてある場合はdiffを見ていないことが多く、訳自体も簡易版の可能性がある。
x264r1699
git-id : 31e458faf03c8c673c1d7e8c9f6dd40c193d211f
Author : Jason Garrett-Glaser
Date: Tue Aug 17 14:38:41 2010 -0700
Fix 2 bugs with slice-max-size
Macroblock re-encoding didn't restore mv/tex bit counters (slightly inaccurate 2-pass).
Bitstream buffer check didn't work correctly (insanely large frames could break encoding).
slice-max-sizeでのバグを2つ修正。
マクロブロックの再エンコードはmv/texビットカウンタを再格納しない(僅かに精密ではない2-pass)。
ビットストリームバッファのチェックが正しく動作していなかった(非常識に大きなフレームがエンコードを破壊しえた)。
x264r1698
git-id : c41b8f0e890a05257406c8081ea429308d4e315c
Author : Manuel Rommel
Date: Thu Aug 12 12:54:00 2010 -0700
NV12 version of Altivec chroma MC
NV12バージョンのAltivec chroma MC。
x264r1697
git-id : 26c17a1b633107b12493ccecaa77392a5324c52b
Author : Jason Garrett-Glaser
Date: Tue Aug 10 16:55:05 2010 -0700
Deblock-aware RD
Small quality gain (~0.5%) at lower bitrates, potentially larger with QPRD.
May help more with psy, maybe not.
Enabled at subme >= 9. Small speed cost (a few %).
Deblock-aware RD(訳注:デブロックを意識したRD)。
低ビットレートで少しの質の利得(〜0.5%)、潜在的にはQPRDでより大きい。
psyでより役立つかも知れないし、そうではないかもしれない。
subme >=9 で有効。小さなスピードのコスト(数%)。
x264r1696
git-id : d0c41733a5b9f221011866c2a9ca46a6112241bf
Author : Brad Smith
Date: Sun Aug 8 18:13:32 2010 -0400
Correct X header path usage in configure
Don't unconditionally set the header path for OpenBSD but do so if the
--enable-visualize flag is specified.
configure内でのXのヘッダパスの使用法を修正。
OpenBSDに対して無条件にヘッダパスを設定せず、--enable-visualizeフラグが指定された場合のみそうするように。
x264r1695
git-id : 003a7f2864190774f9ccf78168ff58a442fae627
Author : golgol7777
Date: Sat Aug 7 23:01:46 2010 -0700
Fix lavf input with delayed frames
ディレイフレームのある場合のlavf入力を修正。
数フレーム欠けることがあるというバグの修正。
x264r1694
git-id : dd363d774d4aef19dc1cd9247b17d2454f913ea1
Author : Alexander Strange
Date: Sat Aug 7 22:29:12 2010 -0700
Slightly improve the filtering section of x264 --help
x264 --helpのフィルタリングの部を僅かに改善。
x264r1693
git-id : 12002b946831a5b4c542b5699eb9b0d15a51784b
Author : Jason Garrett-Glaser
Date: Sat Aug 7 22:32:06 2010 -0700
Fix debug message typo with DTS compression
DTS compressionでのデバッグメッセージのタイポ(誤植)を修正。
x264r1692
git-id : a414ccb295c5a05f11d700513f0326dbb823d5e6
Author : Yasuhiro Ikeda
Date: Tue Aug 3 22:10:15 2010 +0900
Try to guess input length for lavf input
Allows printing of progress indicator when using lavf input.
lavf入力で入力の長さを推測するよう試みる。
lavf入力を使用時に進捗状況表示を可能にする。
x264r1691
git-id : 13230db01dc3f8554c3aa2dd3b82faa703a0f37b
Author : Yasuhiro Ikeda
Date: Tue Aug 3 22:07:36 2010 +0900
Workaround bug in fps/timestamp handling with lavf input
reordered_opaque in lavf doesn't work correctly in the identity case (no reordering).
Fixes incorrect output for some file types (e.g. raw in mov).
lavf入力でfps/timestamp処理におけるバグへのワークアラウンド(次善策)。
lavf内のreordered_opaqueはidentityなケース(再配置なし)の場合に正しく動作しない。
いくつかのファイルタイプ(例えばraw in mov)に対しての不正な出力を修正。
identityが何を指しているかよくわからなかったのでそのままにした。要はBフレームなしのケースを指している。
またもや新たな日本人が登場したわけだが、これはL-SMASHのサポートもして戴いている方。
x264r1690
git-id : 7e1e9bc2acca2194bd71ddd02edd884821d19b15
Author : Mike Matsnev
Date: Sun Aug 1 12:08:20 2010 -0700
Fix aspect ratio writing in the MKV muxer
The braindead Matroska spec dictates aspect ratio to be measured in pixels instead of, well, an actual aspect ratio.
MKV muxerでのアスペクト比の書き込みを修正。
イカれたMatroskaの仕様はアスペクト比が実際のアスペクト比ではなくピクセルで測られるべきと決定した。
x264r1689*
git-id : 7fc564fd23cde539c37d13c8fede91c7cd2b32f0
Author : Anton Mitrofanov
Date: Thu Jul 29 20:23:55 2010 +0400
Add libavcore check in configure
libavcoreのチェックをconfigureに追加。
x264r1688
git-id : 0b36c6d54bc371c043c2fd861b6178ef416cd2fb
Author : Jason Garrett-Glaser
Date: Mon Jul 26 15:38:13 2010 -0700
Improve quantizer distribution with sliced-threads+VBV
Should help avoid cases of very uneven quantizer choice between slices.
sliced-threads+VBVでのquantizerの配分を改善。
スライス間で非常に不公平なquantizerの選定が行われるケースを回避するのに役立つはず。
x264r1687
git-id : a4cd3171e70f814f27ac53933a2897d34aaa8011
Author : Jason Garrett-Glaser
Date: Wed Jul 28 11:42:06 2010 -0700
Remove dead code in slicetype.c
slicetype.c内の使用していないコードを削除。
x264r1686
git-id : 3e153343197ce41f116be600f6d7dd389c05f124
Author : golgol7777
Date: Wed Jul 28 00:54:38 2010 +0900
Fix incorrect duration/framerate/bitrate in flv header
flv header内の不正なduration/framerate/bitrateを修正。
dts-compression関連の修正。golgol氏は以前にはHandBrakeの個人ビルダとして有名で、現在ではgpacの修正版で有名な方。VFR_maniac氏や訳者とも交流がある。
x264r1685
git-id : d939ccf006b9b74078303f73e6c7fb83158d46fb
Author : Jason Garrett-Glaser
Date: Wed Jul 28 14:23:53 2010 -0700
invalidate_reference fixes
invalidate_reference didn't actually invalidate the immediate previous frame, only frames that came before that.
Make sure that reordering is forced when invalidate_reference is used, so that the reference list is correct decoder-side.
invalidate_referenceの修正。
invalidate_referenceは実際には直前のフレームを無効化しておらず、それ以前のフレームのみ無効化していた。
invalidate_referenceが使用された場合に、リオーダー(再配置)が強制され、参照リストがデコーダ側で正しいくなることを確実にした。
x264r1684
git-id : d2cfa9681c293066e96a3f1c5fd83f023839677b
Author : Steven Walters
Date: Sun Jul 25 19:45:27 2010 -0400
Filtering system-related fixes
Fix configure to check for outdated libavutil in resize filter support.
Do not print an explicit error message in ffms when requesting a frame beyond the number of frames in the source.
Mention in --*help that filtering options can be specified as name=value.
Fix the shadowing warning in the resize filter on posix systems.
フィルタリングシステム関連の修正。
リサイズフィルタのサポートにおいて、古いlibavutilに対してのconfigureのチェックを修正。
ffmsでソースのフレーム数を超えたフレームを要求した場合に、明示的なエラーメッセージを表示しない。
--*help内でフィルタリングオプションがname=valueという形式で指定できることに言及。
posixシステム上での、リサイズフィルタ内の(訳注:コンパイル時における変数の)シャドウ警告を修正。
x264r1683
git-id : 62997d61611309c9e5ffe124a0b49ca55263fbaf
Author : Jason Garrett-Glaser
Date: Wed Jul 21 17:40:14 2010 -0700
Improve reference_invalid support
Reference invalidation can now be used to invalidate multiple frames at a time, rather than being limited to one per encoder_encode call.
reference_invalidのサポートを改善。
参照の無効化は、encoder_encodeの呼び出し毎に1つではなく、複数のフレームを一度に無効化するために使用することが可能になった。
x264r1682
git-id : 757f5c15b9c742e3076b44b073fae222522c7a5e
Author : Loren Merritt
Date: Thu Jul 22 06:40:12 2010 +0000
Eradicate all mention of SI/SP-frames
SI/SPフレームに触れている部分を全て撲滅。
x264r1681
git-id : 84a051f3f1598c4c48de4c84f8750a73d32edeeb
Author : Jason Garrett-Glaser
Date: Wed Jul 21 11:25:11 2010 -0700
Fix stack alignment with MB-tree
Broke 2-pass with MB-tree when calling from compilers with broken stack alignment (e.g. MSVC).
MB-treeでのスタックアラインメントを修正。
壊れたスタックアラインのコンパイラ(例えばMSVC)から呼び出した場合にMB-treeでの2-passを壊していた。
x264r1680
git-id : 1a6fd476c477a7870d15d0c7f005ae34813d2f9d
Author : Steven Walters
Date: Sat Jul 17 17:43:37 2010 -0400
Avisynth 2.6 colorspace support
Use a customized avisynth_c.h to detect the new planar colorspaces.
Avisynth 2.6の色空間のサポート。
カスタマイズされたavisynth_c.hを使用し新しいplanar色空間を検出する。
x264r1679
git-id : 87c0f8fa66c1d7fb7f25e1991341fd7fe78b1bcd
Author : Loren Merritt
Date: Thu Jul 15 23:49:03 2010 -0700
Prevent some cases of cache aliasing.
Avoid cases where image strides were a large power of 2.
Core 2: +3% speed at widths 898..960, +6% at widths 1922..1984, most other resolutions unaffected.
Nehalem and AMD: similar amount of speedup, but fewer resolutions affected.
いくつかのキャッシュエイリアシングの事例を防止。
画像のストライドが大きな2の累乗である場合であるケースを回避。
Core 2: 898〜960の幅で+3%、1922〜1984の幅で+6%のスピード、その他の殆どの解像度は影響されない。
NehalemとAMD: 同様の量のスピードアップ、しかしより少ない解像度が影響される。
x264r1678
git-id : cd8929fb3365b6b5e5d6168d97a52c751feda266
Author : Jason Garrett-Glaser
Date: Thu Jul 15 19:35:52 2010 -0700
Fix stack alignment for adaptive quant
Broke calls from compilers with broken stack alignment (e.g. MSVC).
adaptive quant(訳注:AQ)のスタックアラインを修正。
壊れたスタックアラインのコンパイラ(例えばMSVC)からの呼出しを壊していた。
x264r1677
git-id : 19df41a9476ddd3f8ef633df1116e13021078ec7
Author: David Conrad
Date: Thu Jul 15 18:58:28 2010 -0400
Fix compilation with shared ffmpeg libs
lavf input uses libavutil functions, so it must request flags for libavutil from pkg-config.
ffmpegのshared(共有)ライブラリとのコンパイルを修正。
lavf入力はlibavutilの関数を使用するため、libavutilに対してpkg-configからのフラグを必要とする。
ビルドにのみ影響。
x264r1676
git-id : 6c486d23da46722377ec150ead899dd481551b28
Author: Jason Garrett-Glaser
Date: Thu Jul 15 13:20:50 2010 -0700
Fix another PCM bug
CABAC assumes that NNZ is 0 or 1, not the number of actual nonzero coefficients.
Didn't actually break the output; only had a tiny effect on RD.
また別のPCMのバグを修正。
CABACはNNZが、実際の非ゼロ係数の数ではなく0か1であると仮定している。
実際には出力を壊してはいなかった;RDで微量の影響があったのみ。
x264r1675
git-id : 2484aa0b360647dbe0b63f9876566f670d7dcc49
Author : Oskar Arvidsson
Date: Thu Jul 15 14:01:36 2010 +0200
Fix regression in r1666
Broke encoding of PCM macroblocks.
r1666でのレグレッションを修正。
PCMマクロブロックのエンコードを壊していた。
ロスレス等で時折発生するPCMエンコードが壊れていた。
x264r1674
git-id : d846e88db1c5d663e6936a4599d0a0562e2fd7c6
Author : Oskar Arvidsson
Date: Thu Jul 15 08:04:47 2010 +0200
Fix build with bit_depth > 8
Definition of x264_cli_plane_copy was inconsistent with declaration.
bit_depth > 8でのビルドを修正。
x264_cli_plane_copyは宣言と定義が一貫していなかった。
x264r1673
git-id : c9b2fcb4f4c1767fa9d0ea6b0a2e5709e61f3f7b
Author : Loren Merritt
Date: Thu Jul 8 12:24:16 2010 -0700
Convert x264 to use NV12 pixel format internally
~1% faster overall on Conroe, mostly due to improved cache locality.
Also allows improved SIMD on some chroma functions (e.g. deblock).
This change also extends the API to allow direct NV12 input, which should be a bit faster than YV12.
This isn't currently used in the x264cli, as swscale does not have fast NV12 conversion routines, but it might be useful for other applications.
Note this patch disables the chroma SIMD code for PPC and ARM until new versions are written.
x264が内部的にNV12ピクセルフォーマットを使用するよう変換。
Conroe上で全体で〜1%高速、主にキャッシュの局在性向上による。
また、いくつかのchroma関数(例えばデブロック)に改良されたSIMDを与えた。
この変更はまた、APIを拡張し、YV12よりも若干高速であるはずの、NV12の直接入力を可能にした。
swscaleが高速なNV12変換ルーチンを持たないため、これは現在のところx264cliでは使用されないが、その他のアプリケーションでは有用かもしれない。
このパッチはPPCやARMに対して、新しいバージョンが書かれるまで、chromaのSIMDコードを無効化することに注意。
X264_BUILD 104。
akupenguin(pengvado)氏がここ数カ月ずっと温めていたメガパッチ。訳者のレベルでは殆ど何も言及できない。
--input-cspにnv12が追加。
x264r1672
git-id : d797a1bc3f4410e45670b79381bfdce677646d48
Author : Steven Walters
Date: Mon Jul 5 17:37:47 2010 -0400
Add video filtering system to x264cli
Similar to mplayer's -vf system.
Supports some basic operations like resizing and cropping. Will support more in the future.
See the help for more details.
映像のフィルタリングシステムをx264cliに追加。
mplayerの-vfシステムと類似。
リサイズやクロップ等のいくつかの基本的な処理をサポート。将来的にはより多くをサポート予定。
より詳細についてはヘルプを参照。
X264_BUILD 103。
kemuri-9氏によるffmpegのswscaleを取り込むパッチ。当然のようにメガパッチ。
オプションに--input-csp, --input-res, --vf(別名--video-filter)が追加。--input-cspにはi420, i422, i444, yv12, bgr, bgraが指定可能。色空間の変換もできるようになったので、YUV422やYUV444なども入力に使えるようになった。--input-resには--input-res 720x480という形式で解像度を指定する。
--vfには(cache,) crop, (fix_vfr_pts,) resize, select_everyが使用できるっぽい。複数適用も可能だが、基本的にswscaleはインターレースを考慮してないはずなのでその点には注意のこと。詳細は恐らくVFR_maniac氏が書いてくれそうな気がするのでやらせようお願いしようかな…。
ソース上はinput/input.cとfiltersディレクトリ以下が追加された。また、configureのオプションに--disable-swscaleが追加。
x264r1671
git-id : 04e40ff9f61672bec01230ce6d70bc487f12bc2c
Author : Jason Garrett-Glaser
Date: Tue Jul 6 13:39:44 2010 -0700
Eliminate edge cases for MV predictors
Saves a few clocks in mv pred.
MV予測器に対して端のケースを除去。
mv予測内で数クロックを節約。
MV予測に限らず、画像処理では縁の部分の処理が特別になるケースが多い。つまり、その部分を処理するために分岐が必要になるのだが、これは速度低下の原因になる。処理方法を工夫してこの分岐を無くしたようだ。
ちなみにこういった分岐は、コードの書き方によっては縁の部分以外の処理でも足を引っ張ることになる。処理の実体を一箇所に書きたいがために、ループの中に縁のための分岐を書いた場合が多く該当する。まず、分岐コードが有ること自体、スーパスカラに搭載される複数の実行ユニットの同時稼働率を下げる可能性がある。そしてCPUに分岐予測が搭載されている場合には、これの精度を下げることにもなるからだ。
もう少し具体的に言えば、以下の擬似コードのようなケースが問題だ。
for( i = 0 ; i <= LAST_IDX ; i++ ){ if( i == 0 ) 処理A; else if( i == LAST_IDX ) 処理B; 処理C; }
これは以下のように書いたほうが高速なケースが多々存在する。
処理a; for( i = 1 ; i < LAST_IDX ; i++ ){ 処理C; } 処理b;
処理aや処理bには処理Cと同じ内容が含まれてしまうであろうし、コードサイズは若干肥大するかもしれない。それでもループの中から分岐を排除する事による速度的利得は、それらのデメリットを凌駕することがある。少なくともinlineが使える環境なら、処理Cをinline関数にすれば、保守性が下がるデメリットは問題にならない。
更に進めて、処理対象のメモリ領域を上手く整形したり、前処理・後処理を上手く行い、処理Cがそのまま端のケースを処理できるようにするのも効果的だ。もちろん、ループの形が常にこのようにあるべきというわけではない(SIMD命令が絡むとさらに複雑)が、可読性や速度の重要性、保守性などを考慮しつつも、分岐をループの外に出せるケースは多くあるだろう。
x264r1670
git-id : 27e4a3a732c8284225dd55a2c2c43bb08368f3fa
Author : Jason Garrett-Glaser
Date: Thu Jul 8 12:45:25 2010 -0700
Improve scenecut detection a bit
Put a minimum value on the scenecut threshold; makes x264 more likely to catch successive scenecuts (but might increase the odds of false detection).
This also fixes scenecut detection with keyint=infinite.
Also print keyint=infinite in the x264 SEI and statsfile correctly.
scenecutの検出を少し改善。
scenecutの閾値に最小値を置く;x264がscenecutを成功裏に捕捉するようにした(が、誤検出の可能性を増すかもしれない)。
これはkeyint=infiniteでのscenecut検出も修正する。
また、x264のSEIとstatsファイルでkeyint=infiniteを正しく表示するように。
x264r1669
git-id : c953140b3b622b33e892c1a3d327d35b74762293
Author : Jason Garrett-Glaser
Date: Wed Jul 14 18:47:14 2010 -0700
Fix 8x8dct+slices+no sliced threads+cavlc+deblock
Deblocking was done slightly incorrectly.
Regression in r1612.
8x8dct + slices + sliced-threads無し + cavlc + deblockを修正。
デブロックが僅かに不正に行われていた。
r1612でのレグレッション。
x264r1668
git-id : d6228aea4f0adf29be8526b8ce1d9d1237d23975
Author : Jason Garrett-Glaser
Date: Thu Jul 8 16:20:48 2010 -0700
Fix off-by-one error in slice VBV predictor updates
スライスVBV予測器の更新が1つずれていた誤りを修正。
x264r1667
git-id : ce136d6721d38fbdf57683304dabbb1ba973effe
Author : Anton Mitrofanov
Date: Mon Jul 5 17:44:15 2010 +0400
Fix disabling of progress with --log-level
--log-levelで進捗状況が無効化されるのを修正。
switch文中でbreakが抜けていたために其の次のエントリであるOPT_NOPROGRESSが処理されてしまっていた。よくあるバグ。
x264r1666
git-id : d058f37d9af8fc425fa0626695a190eb3aa032af
Author: Oskar Arvidsson
Date: Fri Jul 2 04:06:08 2010 +0200
Support for 9 and 10-bit encoding
Output bit depth is specified on compilation time via --bit-depth.
There is currently almost no assembly code available for high-bit-depth modes, so encoding will be very slow.
Input is still 8-bit only; this will change in the future.
Note that very few H.264 decoders support >8 bit depth currently.
Also note that the quantizer scale differs for higher bit depth. For example, for 10-bit, the quantizer (and crf) ranges from 0 to 63 instead of 0 to 51.
9または10ビットエンコードのサポート。
出力bit depth(ビット深度)はコンパイル時に--bit-depthで指定する。
現在のところ、高ビット深度モードに対して使用可能なアセンブリコードが殆どないため、エンコードは非常に遅い。
まだ入力は8bitのみである;これは将来的に変わる。
現状、非常に少数のH.264デコーダしか>8bit深度をサポートしていない事に注意。
また、高ビット深度では量子化器のスケールが異なることに注意。例えば10-bitでは、量子化器(とcrf)は0から51ではなく、0から63の範囲になる。
かなりの規模のメガパッチ。--profile high10が追加。
ここでquantizer(量子化器)と言っているのはCQPやCRFのオプション指定のレベルでの話で、内部の話ではないようだ。
x264r1665
git-id : 293b47bc2c52abe5143913ef3d126e6170edaf5c
Author: Jason Garrett-Glaser
Date: Wed Jun 30 13:55:46 2010 -0700
Support infinite keyint (--keyint infinite).
This just means x264 won't insert non-scenecut keyframes.
Useful for streaming when using interactive error recovery or some other mechanism that makes keyframes unnecessary.
Also change POC logic to limit POC/framenum LSB size (to save bits per slice).
Also fix a bug in the CPB underflow detection code (didn't affect the bitstream, just resulted in the failure to print certain warning messages).
無限のkeyint(--keyint infinite)のサポート。
これはつまり、x264が非シーンカットであるキーフレームを挿入しない事を意味する。
インタラクティブ(双方向性)エラー回復や、その他のキーフレームを不要にする仕組みを使用する場合のストリーミングで有用。
また、POC/フレーム数のLSBのサイズを制限するよう(スライスごとのビットを節約するため)にPOCのロジックを変更。
また、CPBアンダーフロー検出のコード内のバグを修正(ビットストリームには影響せず、特定の警告メッセージを表示する不具合に帰着していた)。
X264_BUILD 102。
x264r1664
git-id : f378994ab3c816aaab2b795143e31919fdee1f2d
Author: Jason Garrett-Glaser
Date: Wed Jun 30 13:06:22 2010 -0700
Don't check i16x16 planar mode unless previous modes were useful
Saves ~160 clocks per MB at subme=1, ~270 per MB at subme>1 (measured on Core i7).
Negligle effect on compression.
Also make a few more arrays static.
以前のモードが有益でない限り、i16x16 planarモードをチェックしない。
subme=1でMB毎に〜160クロック、subme>1でMB毎に〜270クロックを節約(Core i7で計測)。
圧縮率には無視できるほどの影響。
また、いくつかの配列をstaticにした。
NegligleはNegligibleのことだと思われる。
x264r1663
git-id : ce052b8bae0bed131716d3ed655b974a1a2ebcb5
Author: Steven Walters
Date: Sat Jun 26 16:28:49 2010 -0400
Centralize logging within x264cli
x264cli messages will now respect the log level they pertain to.
Slightly reduces binary size.
ログをx264cliに集中させた。
x264cliのメッセージはそれに付帯するログレベルを順守するようになった。
バイナリサイズを僅かに削減。
--log-level (none|error|warning|info|debug)が追加。
x264r1662
git-id : 22bf1672adafa4e938a13952b8f71cd7548d31f1
Author: Lamont Alston
Date: Tue Jun 29 10:11:42 2010 -0700
Make open-GOP Blu-ray compatible
Blu-ray is even more braindamaged than we thought.
Accordingly, open-gop options are now "normal" and "bluray", as opposed to display and coded.
Normal should be used in all cases besides Blu-ray authoring.
open-GOPをBlu-ray互換にした。
Blu-rayは我々が考えていたよりも更にイカレていた。
これに応じて、open-gopオプションはdisplayとcodedではなく"normal"と"bluray"になった。
(訳注:OpenGOPを使うのであれば)Blu-rayオーサリング以外の全てのケースではNormalが使用されるべきである。
今回は"braindamaged"を「イカレてる」と訳してみた。
x264r1661
git-id : 4f74306c2f266bfc671ad99e9027b816dd423ece
Author: Jason Garrett-Glaser
Date: Mon Jun 28 15:02:33 2010 -0700
Callback feature for low-latency per-slice output
Add a callback to allow the calling application to send slices immediately after being encoded.
Also add some extra information to the x264_nal_t structure to help inform such a calling application how the NAL units should be ordered.
Full documentation is in x264.h.
低レイテンシ(低遅延)・スライス毎出力のためのコールバック機能。
呼び出し側アプリケーションが、スライスがエンコードされた直後に送信することを、可能にするコールバックを追加。
NALユニットがどのように配置されるべきかを、そのような呼び出し側アプリケーションに知らせるのに役立つ、いくつかの特別な情報をx264_nal_t構造体に追加。
完全なドキュメントはx264.hにある。
X264_BUILD 101。
libx264を使うアプリケーションがフレーム単位ではなくスライス単位で処理を行えるようにするための仕組み。当然x264cliでは使用できないし、一般ユーザのリアルタイム性がないエンコードにおいては特にメリットがない。フレームのエンコード完了までbuffering period SEI情報が得られないため、HRDとの併用は不可。
x264r1660
git-id : aa1a8435000228c4d9e74da0f9fd3d16e85a3e80
Author: Loren Merritt
Date: Sat Jun 26 20:55:59 2010 -0700
Simplify pixel_ads
pixel_adsをシンプル化。
x264r1659
git-id : 57b2e56d247c009b390592c2cdea7fc7a4100124
Author: Jason Garrett-Glaser
Date: Wed Jun 23 17:29:34 2010 -0700
Interactive encoder control: error resilience
In low-latency streaming with few clients, it is often feasible to modify encoder behavior in some fashion based on feedback from clients.
One possible application of this is error resilience: if a packet is lost, mark the associated frame (and any referenced from it) as lost.
This allows quick recovery from errors with minimal expense bit-wise.
The new i_dpb_size parameter allows a calling application to tell x264 to use a larger DPB size than required by the number of reference frames.
This lets x264 and the client keep a large buffer of old references to fall back to in case of lost frames.
If no recovery is possible even with the available buffer, x264 will force a keyframe.
This initial version does not support B-frames or intra refresh.
Recommended usage is to set keyint to a very large value, so that keyframes do not occur except as necessary for extreme error recovery.
Full documentation is in x264.h.
Move DTS/PTS calculation to before encoding each frame instead of after.
Improve documentation of x264_encoder_intra_refresh.
インタラクティブ(双方向性)エンコーダコントロール:エラー弾力性。
数少ないクライアントでの低レイテンシ(低遅延)ストリーミングでは、しばしばクライアントからのフィードバックに基づいてエンコーダの動作を修正することが可能である。
見込まれる用途の一つはエラー弾力性である:パケットが喪失した場合に、係るフレーム(とそれから参照されるもの)が喪失したと印をつける。
これは最小限のビット的対価でエラーからの早急な回復を可能にする。
新しいi_dpb_sizeパラメータは、呼び出し側アプリケーションが、参照フレームの数によって要求されるよりも大きなDPBサイズを使用するよう、x264に指示することを可能にする。
利用可能なバッファでも回復が不能である場合、x264はキーフレームを強制する。
この初期バージョンではBフレームまたはintra refreshをサポートしない。
推奨される使用法はkeyintをとても大きな値とし、極端なエラー回復に必要とされるものを除きキーフレームが発生しないようにすることである。
完全なドキュメントはx264.hにある。
DTS/PTSの計算を各フレームをエンコード後ではなく、前に移動。
x264_encoder_intra_refreshのドキュメントを改善。
X264_BUILD 100。
ついにx264のAPIバージョンも100に到達。非常に面白い機能ではあるが、当然、libx264からしか使用できない。r1658と同じく、遅延が発生してほしくない分野が主な用途になるだろう。
x264r1658
git-id : 7865fcb4093c39ec13def8a1cd14a7e67ddd8066
Author: Jason Garrett-Glaser
Date: Thu Jun 17 14:50:07 2010 -0700
Lookaheadless MB-tree support
Uses past motion information instead of future data from the lookahead.
Not as accurate, but better than nothing in zero-latency compression when a lookahead isn't available.
Currently resets on keyframes, so only available if intra-refresh is set, to avoid pops on non-scenecut keyframes.
Not on by default with any preset/tune combination; must be enabled explicitly if --tune zerolatency is used.
Also slightly modify encoding presets: disable rc-lookahead in the fastest presets.
Enable MB-tree in "veryfast", albeit with a very short lookahead.
Lookaheadless MB-treeのサポート。
lookaheadからの未来のデータの代わりに過去の動き情報を使用する。
精密ではないが、lookaheadを利用できないzero-latency(ゼロ遅延)圧縮では、何も無いよりは良い。
現状、キーフレームでリセットするので、非シーンカットのキーフレームでのpopを避けるため、intra-refreshが設定されている場合のみ利用可能。
いかなるpreset/tuneの組み合わせでも、デフォルトではonではない;--tune zerolatencyが使用される場合、明示的に有効にされねばならない。
また、僅かにエンコードのpresetを変更:fastestのpresetでrc-lookaheadを無効化。
非常に短いlookaheadではあるが、"veryfast"でMB-treeを有効化。
将来のフレームの情報ではなく過去のフレームの情報を使ったmbtree。効率はそれほど良くないのでzero-latencyでなければ使用するメリットがない。つまり、用途はリアルタイムストリーミングやビデオチャット・会議などの「遅延が発生してほしくない」分野になるだろう。
x264r1657
git-id : 40c8c4926a78a705c263e042a780d63ca24687f4
Author: Lamont Alston
Date: Wed Jun 16 10:05:17 2010 -0700
Open-GOP support
Allows B-frames immediately prior to keyframes (in display order).
This helps reduce keyframe popping and improve compression with short keyframe intervals.
Due to a staggering display of braindamage in the Blu-ray spec, two open-GOP modes are available.
The two modes calculate keyframe interval differently: one based on coded distance and one based on display distance.
The latter is superior compression-wise, but for no comprehensible reason, Blu-ray requires the former if open-GOP is used.
Open-GOPのサポート。
キーフレームの直前のBフレーム(表示順で)を許容する。
これはキーフレームがpopすることを軽減するのに役立ち、短いキーフレーム間隔での圧縮率を向上する。
Blu-ray仕様の驚くべきアホの露呈に拠れば、2つのopen-GOPのモードが利用可能である。
2つのモードはキーフレームの間隔の計算を異にする:一つは符号化順の距離で、もう一つは表示順の距離である。
後者は圧縮率の観点で優れているが、理解不能な理由により、open-GOPが使用される際には、Blu-rayは前者を要求する。
X264_BUILD 99。
--open-gopが追加。指定値はnone, display, codedのいずれか。displayとcodedでOpenGOPが有効になるわけだが、これらはGOPの捉え方が異なる。Blu-rayはkeyintの制限が強いためにOpenGOPが有用と考えられるが、displayはBlu-ray互換ではないとのこと。
OpenGOPの理念自体、Bフレームによる順序の入れ替えと、前方参照によって生じるものであるため、Bフレームなしの設定では意味が無い。
"pop"は所謂TMPGEncで言う「脈動」に当たるような現象を指すようで、あるフレームで突然画質が悪くなる現象を言うようだ。
x264r1656
git-id : ccb8391f68b1657d9d4155ad4f12e2b98660b0c0
Author: Steven Walters
Date: Wed Jun 9 18:14:52 2010 -0400
Use threadpools to avoid unnecessary thread creation
Tiny performance improvement with fast settings and lots of threads.
May help more on some OSs with slow thread creation, like OS X.
Unify inconsistent synchronized abbreviations to sync.
不要なスレッドの生成を避けるためにスレッドプールを使用。
高速な設定と多くのスレッドで、とても小さな性能の向上。
OS Xのようにスレッドの生成が遅いいくつかのOSではより役立つかも。
一貫していないsyncronizedの略称をsyncに統一。
有名だがずっと採用されていなかったスレッドプールのパッチがマージされた。有用でないことはないが、効果は僅か。
x264r1655
git-id : f7ca49910a4663fd743734f288ea88079e09deeb
Author: Jason Garrett-Glaser
Date: Sat Jun 19 01:41:07 2010 -0700
Improve 2-pass bitrate prediction
Adapt based on distance to the end in bits, not in frames.
Helps in videos with absurdly simple end sections, e.g. black frames.
2-passのビットレート予測を向上。
フレームではなくビットの終端への距離に基づき適応する。
バカバカしいほど単純な終端部分(例えば真っ黒なフレーム)の映像で役立つ。
x264r1654
git-id : ef0c268a2b1a42ff234ef27a535c16b825452ae0
Author: Jason Garrett-Glaser
Date: Fri Jun 18 13:58:11 2010 -0700
SSE4 and SSSE3 versions of some intra_sad functions
Primarily Nehalem-optimized.
いくつかのintra_sad関数のSSE4とSSSE3バージョン。
主にNehalemへの最適化。
x264r1653
git-id : 88b90d9ca0582ff340a6d821d104f25917baa693
Author: Jason Garrett-Glaser
Date: Sat Jun 19 03:27:33 2010 -0700
Improve HRD accuracy
In a staggering display of brain damage, the spec requires all HRD math to be done in infinite precision despite the output being of quite limited precision.
Accordingly, convert buffer management to work in units of timescale.
These accumulating rounding errors probably didn't cause any real problems, but might in theory cause issues in very picky muxers on extremely long-running streams.
HRDの精度を向上。
驚くべきアホの露呈であるが、仕様は、HRDの出力が真に限られた精度であるにも関わらず、その全ての計算が無限の精度で行われることを要求する。
これに応じて、バッファ管理がtimescaleの単位で動作するように変換。
これらの丸め誤差の累積は、恐らく実際上の問題は引き起こしていなかっただろうが、理論的には、極端に長いストリームと非常に神経質なmuxerでは、問題であったかもしれない。
「驚くべきアホの露呈」というあまり上手くない訳に関しては…まぁ、察してください。
バカバカしくとも仕様が要求する以上、実装しない訳にもいかない。規格があるものの実装ではよくあることだが、何度経験しても嫌になる。
x264r1652
git-id : 4c27afb595ac8e8a621ffc2bf8120f0d43c80384
Author: Jason Garrett-Glaser
Date: Tue Jun 22 14:20:46 2010 -0700
Use -fno-tree-vectorize to avoid miscompilation
Some versions of gcc have been reported to attempt (and fail) to vectorize a loop in plane_expand_border.
This results in a segfault, so to limit the possible effects of gcc's utter incompetence, we're turning off vectorization entirely.
It's not like it ever did anything useful to begin with.
コンパイルミスを避けるために-fno-tree-vectorizeを使用。
いくつかのgccのバージョンがplane_expand_border内のループをベクター化しようとし(て失敗し)たと報告していた。
これは結果としてsegfaultになるので、gccのこの酷い不能が影響する可能性を限定するため、ベクター化を完全にoffにすることにした。
そもそもこれは何の役にも立ってはいなかったようだ。
x264r1651
git-id : 69e9d85c292cb9daa96664657352bf6c65af5825
Author: Anton Mitrofanov
Date: Sat Jun 19 01:44:56 2010 +0400
Fix SIGPIPEs caused by is_regular_file checks
Check to see if input file is a pipe without opening it.
is_regular_fileのチェックにより引き起こされるSIGPIPEを修正。
ファイルを開くこと無く、それがパイプであるかを検査する。
x264r1650
git-id : 4fa7d539c1a09a0779194c7971495e966ff7de1e
Author: Jason Garrett-Glaser
Date: Tue Jun 15 05:15:42 2010 -0700
Fix compilation on ARM w/ Apple ABI
Apple ABIでのARMのコンパイルを修正。
x264r1649
git-id : c54c47d902f4b2492d8cf5b3b463b8c0cfe8c2c8
Author : Holger Lubitz
Date: Wed Jun 9 13:59:06 2010 +0200
Faster mbtree_propagate asm
Replace fp division by multiply with the reciprocal.
Only ~12% faster on penryn, but over 80% faster on amd k8.
Also make checkasm slightly more tolerant to rounding error.
mbtree_propagateのasmを高速化。
浮動小数点の除算を、逆数の乗算で置き換え。
penrynでは〜12%しか速くないが、amd k8では80%超も速い。
checkasmがもう少しだけ丸め誤差を許容するようにした。
x264r1648
git-id : 4d8d93019558999a95c515b6726bba02faf74d3a
Author : Diogo Franco
Date: Sun Jun 13 21:57:32 2010 -0300
Convert the OPT_ defines in x264.c to an enum
OPT_のdefineをenumに変換。
x264r1647
git-id : be94782b89292c6a5a274a9e874723e10497ba1c
Author : Anton Mitrofanov
Date: Sun Jun 13 23:14:15 2010 +0400
Don't allow baseline profile streams with fake-interlaced
Indicate use of --fake-interlaced in encoding options SEI.
fake-interlacedでbaseline profileのストリームを許可しない。
SEIのエンコードオプション中で--fake-interlacedの使用を示すように。
x264r1646
git-id : 71502eaf1ac591074da1f16135cc4af4087a9f3f
Author : Havoc Pennington
Date: Thu Jun 10 16:28:52 2010 -0400
Allocate space for null terminator in param_apply_tune
param_apply_tuneで、null終端(訳注:C言語の文字列の終端マークである'\0'のこと)のスペースを確保。
結構基本的なバグがここまで修正されていなかったとは少々驚きだ。
x264r1645
git-id : 0c7bcebdfb8baca78e4fd9dc76f5f43e096c6030
Author : Anton Mitrofanov
Date: Thu Jun 10 21:33:46 2010 +0400
Fix regression in r1501.
Could cause slightly incorrect analysis in rare cases, but no serious encoding issues.
Also shut up gcc warning about pels_v.
r1501でのレグレッションを修正。
稀なケースで、僅かに不正な解析を引き起こしていたかもしれないが、深刻なエンコードの問題ではない。
pels_vに関するgccの警告を黙らせた。
x264r1644
git-id : 8c69931e5045b4d019ce24bbcba4f05715aa2d0e
Author : Anton Mitrofanov
Date: Wed Jun 9 22:53:08 2010 +0400
Fix crash with --subme 0 + --weightp > 0. Regression in r1535
--subme 0 + --weightp > 0でのクラッシュを修正。r1535でのレグレッション。
x264r1643
git-id : 0cd5d69beac1ed95a077e75c7a4cb3f837e74855
Author : Henrik Gramner
Date: Tue Jun 8 16:29:16 2010 +0200
Replace some divisions with shifts
いくつかの除算をシフトに置き換え。
2の累乗での整数除算をシフトに置き換えるのは高速化の基本だ。ただし、コンパイラの最適化も進んでいるので自動的に行われる場合もあるし、符号ありの変数の場合は符号拡張に注意しなければならない。また、若干コードの可読性を損なうという意見もある。つまり、コード上でシフトに置き換えてしまうのは、善し悪しだ。
x264r1642
git-id : 02f1bba36db707e342218efcc0585d4a6b37c60e
Author : Anton Mitrofanov
Date: Tue Jun 8 02:43:37 2010 +0400
Warn about shadowed variable declarations
Also get rid of a few instances of variable shadowing.
shadowな変数宣言を警告。
また、いくつかの変数のshadowingな実体を除去。
変数のshadowingに関してはr1517を参照。
x264r1641
git-id : 3df2c903ecc2fa9a121afea620cebd967a4c29b8
Author : Jason Garrett-Glaser
Date: Mon Jun 7 14:26:05 2010 -0700
Template load_pic_pointers based on interlaced
Significantly speeds up cache_load in the non-interlaced case.
Also various other minor optimizations in cache_load and cache_save.
interlacedに基づきload_pic_pointersを定形化。
非インターレースの場合においてcache_loadを有意にスピードアップ。
また、cache_loadとcache_save内でその他様々な小さい最適化。
ううむ、と唸らされるコード。
if( (0x3FF30 >> i_mb_type) & 1 ) /* !INTRA && !SKIP && !DIRECT */
演算方法の工夫により条件分岐を減らしている。
条件分岐を減らすことは、パイプライン構造を持つ現代のCPUを想定する場合、高速化の基本だ。しかし、高級言語しか知らない人間の場合、この「分岐」の意味を取り違えている場合がある。C言語のif文の条件式に複数の条件を並べた場合、アセンブラ・機械語レベルではそれらは複数の分岐命令に展開されるケースが殆どだ。つまり「if文を減らすこと」にも意味はあるが、本質的に減らさなければならないのは「条件文」の方だ。
x264r1640
git-id : 0c947690373f6347f6f9df2e712b01ba756622ec
Author : Jason Garrett-Glaser
Date: Mon Jun 7 14:15:33 2010 -0700
Remove double-dereferences for MB width/height data
Store it in x264_t instead of going through the SPS.
MBの幅・高さのデータに対する二重参照外しを除去。
SPSを通す代わりにx264_tに格納。
「二重参照外し」の参照外しとは、ポインタから実体を得ることを指している。つまり"h->sps->i_mb_width"という表現は、"->"演算子を二度使うことで二重参照外しなのだが、これを"h->mb.i_mb_width"とすることで一重参照外し+オフセット計算になっている。
これによってアセンブラレベルでは、一般的に命令数が減少すると共に、動作が高速になる。
x264r1639
git-id : 609f7ab0af169d2515ad66a1c77cb558eb5f1b49
Author : Steven Walters
Date: Sat May 22 20:54:35 2010 -0400
Exempt Win x86_64 from memalign hack
The API mandates all mallocs are 16 byte aligned.
Remove unused int that stores sizeof malloc in memalign hack.
Win x86_64をmemalign hackから免除。
APIは全てのmallocが16 byteアラインであることを要求する。
memalign hackでmallocのsizeofを格納する不使用のintを削除。
memalign hackはffmpegの--enable-memalign-hackのオプションで有名だ。Cランタイムライブラリのmallocが必要なアラインでメモリブロックを返さない場合に、mallocで取得するサイズを少し大きくしておき、そのブロック中でアラインに適合する部分から先を使用するhackだ。
基本的にSIMD命令で使用するバッファを得るために使用されるhackだが、x86_64では不要と見なされたのだろう。
x264r1638
git-id : 2e541dd2abc24bbae7c73cf35954ce11f89ea03d
Author : Steven Walters
Date: Fri Jun 4 13:44:55 2010 -0700
Preprocessing cosmetics
Unify input/output defines to HAVE_* format.
Define values as 1 to simplify conditionals.
プリプロセスのコスメティックス。
input/outputのdefineをHAVE_*の形式に統合。
条件をシンプル化するため値を1として定義。
x264r1637
git-id : 50015055b0857b2c2404b5299b0bc031b39e2724
Author : Jason Garrett-Glaser
Date: Thu Jun 3 21:31:10 2010 -0700
Take more shortcuts in i4x4/i8x8 analysis
Based on the scores of the H and V modes, rule out modes which are unlikely.
Small compression loss (0.1-0.5%) and large speed gain (10-30% faster intra analysis).
Not enabled in slower encoding modes.
Also make C versions of the merged SATD functions in order to eliminate branches based on their availability.
i4x4/i8x8解析で更なるショートカットを採用。
HとVのモードのスコアに基づき、見込みのないモードを除外。
少しの圧縮率のロス(0.1-0.5%)と大きな速度利得(10-30%高速なintra解析)。
より遅いエンコードモードでは有効にされない。
また、利用可能性に基づき分岐を排除するため、統合されたSATD関数のCバージョンを作成。
関数名のプレフィックスに"x264"が付いていなかったものに、それを足すコスメティックスを含むため、diffが大きく見えるが、中身はそこまで大きくはない。
x264r1636
git-id : 2d2abd8286f3744d79349a162e506f6502c52c56
Author : Jason Garrett-Glaser
Date: Wed Jun 2 15:47:26 2010 -0700
Display SSIM measurement in db as well
SSIM測定をdbでも表示するように。
エンコードに影響なし。
x264r1635
git-id : c41f0c09eae14014f00a38d5b2f859b99fdd77a4
Author : Anton Mitrofanov
Date: Tue Jun 8 01:03:03 2010 +0400
Make version.sh indicate "M" for local commits too
version.shがローカルコミットに対しても"M"を示すようにした。
x264r1634
git-id : 3c92ef90e145d627b4048b5c6ea92995b2eafbf3
Author : Alex Jurkiewicz
Date: Sun Jun 6 15:21:12 2010 +0800
Add error message for invalid [de]muxer selection
無効な(de)muxer選択に対するエラーメッセージを追加。
エンコードに影響なし。
x264r1633
git-id : 0d0dc6a720f5a41add8989cfa29090cf48d6028f
Author : Nathan Caldwell
Date: Sun Jun 6 14:19:41 2010 -0600
Deduplicate the ALIGN macro, move it to common.h
ALIGNマクロの重複を排除、common.hに移動。
エンコードに影響なし。
x264r1632
git-id : 2fafcb50c2266a58fe25030c10c5840cab8fbc8f
Author : David Conrad
Date: Thu Jun 3 19:02:24 2010 -0400
Fix a use of ALIGNED_ARRAY_16 on ARM
ARM上でのALIGNED_ARRAY_16の使用を修正。
checkasmの修正。
x264r1631
git-id : 5079abd2ffdbd69d8bc4f474ce50f14fd83a340c
Author : Jason Garrett-Glaser
Date: Tue Jun 8 15:41:17 2010 -0700
Add missing emms after nal_encode
Caused random, bizarre failures with some calling applications.
nal_encode後に欠けていたemmsを追加。
いくつかの呼び出し側アプリケーションで、ランダムで奇妙な失敗を引き起こしていた。
x264r1630
git-id : b474d0e5790da0c1aa6107ef571d7572f2e94221
Author : Jason Garrett-Glaser
Date: Tue Jun 8 15:38:32 2010 -0700
Fix crash in fake-interlaced at some resolutions
fake-interlacedにおけるいくつかの解像度でのクラッシュを修正。
x264r1629
commit 2e81ce15c161f94053707852c027c123c6812cdf
Author: Yusuke Nakamura
Date: Wed Jun 2 22:27:57 2010 +0900
Fix no-mbtree + aq-mode=0
Regression in r1618.
no-mbree + aq-mode=0を修正。
r1618のレグレッション。
x264r1628
commit b794258670e914c34c8b644d3fdd7d5250029817
Author: Jason Garrett-Glaser
Date: Wed Jun 2 01:07:44 2010 -0700
Add API function to fix x264_picture_t initialization
Calling applications that do not use x264_picture_alloc need to use x264_picture_init to initialize x264_picture_t structures.
Previously, if the calling application didn't zero x264_picture_t, Bad Things could happen.
x264_picture_tの初期化を修正するAPI関数を追加。
x264_picture_allocを使用しない呼び出し側アプリケーションは、x264_picture_t構造体を初期化するために、x264_picture_initを呼び出す必要がある。
以前は、呼び出し側アプリケーションがx264_picture_tをゼロ化しなければ、よろしく無いことが発生しえた。
X264_BUILD 98。
r1627の言う恒久的対策。
x264r1627
commit d0d8751af40485b0ec08a579672e804a33d76714
Author: Yusuke Nakamura
Date: Wed Jun 2 17:02:31 2010 +0900
Fix Avisynth input
Regression in r1624. A more permanent solution to the problem will be committed later.
Avisynth入力を修正。
r1624でのレグレッション。この問題のより恒久的な解決策は後ほどcommitの予定。
avs入力でクラッシュするバグの修正。
x264r1626
commit fbe0255810b2293091032fe9d30e40594bc08643
Author: Oskar Arvidsson
Date: Wed Jun 2 02:08:45 2010 +0200
Convert to a unified "dctcoeff" type for DCT data
Necessary for future high bit-depth support.
DCTデータに対し統一的な"dctcoeff"型への変換。
将来の高いビット深度(訳注:ビット幅拡張)のサポートに必要。
r1625と同様のDCT係数側の変更。
x264r1625
commit d3ff95cc2ade25935fbc346177c0bee2b8f61514
Author: Oskar Arvidsson
Date: Wed Jun 2 01:35:38 2010 +0200
Convert to a unified "pixel" type for pixel data
Necessary for future high bit-depth support.
Various macros and extra types have been introduced to make operations on variable-size pixels more convenient.
ピクセルデータに対し統一的な"pixel"型への変換。
将来の高いビット深度(訳注:ビット幅拡張)のサポートに必要。
可変サイズのピクセルでより使い勝手の良い処理にするため、様々なマクロと追加の型が導入された。
現在のx264はピクセルのビット深度が8bit固定であるが、これを10bitに拡張できるようにするための下地。ピクセルデータをuint8_tにしていたところを、pixel型をtypedefして変更できるようにした。
こう書くと大した変更でないようだが、実際には精度やオーバーフローに注意しながら置き換えるので、大変注意を要する変更だ。アセンブラも片っぱしから書き直す必要があり、容易なことではない。
Oskar Arvidsson氏はGoogle SoC x264 2010のstudentで、SoC 2010/High Bit Depth Encoding(10-bit encoding support)を担当しているので、その下地と言うこと。
x264r1624
commit a6c6afa85053443dc459e096e8e681dc21d43ade
Author: Jason Garrett-Glaser
Date: Fri May 28 14:27:22 2010 -0700
Add API tool to apply arbitrary quantizer offsets
The calling application can now pass a "map" of quantizer offsets to apply to each frame.
An optional callback to free the map can also be included.
This allows all kinds of flexible region-of-interest coding and similar.
任意のquantizerオフセットを適用するAPIツールを追加。
呼び出し側アプリケーションは各フレームに適用するためのquantizerオフセットの"map"を渡すことができるように。
mapを解放するための、オプションのコールバックも含めることができる。
これはすべての種類の柔軟なregion-of-interest符号化と同様のことを可能にする。
X264_BUILD 97。
zonesをMBレベルにまで拡張するような機能(このためAQがONである必要がある)だが、指定するのは絶対値ではなく、エンコーダが決めた値に対するオフセット。これはlibx264に対する機能追加で、現状、x264cliでこの機能を使用する方法はまだない。
x264r1623
commit 6dc1217f510ece46166376dcca1d6b19d088a3b5
Author: Jason Garrett-Glaser
Date: Thu May 27 14:27:32 2010 -0700
x86 assembly code for NAL escaping
Up to ~10x faster than C depending on CPU.
Helps the most at very high bitrates (e.g. lossless).
Also make the C code faster and simpler.
NALエスケープのx86アセンブリコード。
CPUに依ってCよりも最大〜10倍速い。
かなりの高ビットレート(例えばロスレス)で最も補助になる。
また、Cのコードを高速化&シンプル化。
Cのコードの高速化は、元々Dark_Shikari氏が遠い過去に書いたパッチだった。バグが発見されたためにお蔵入りになっていたものを、VFR_maniac氏が修正して使っていたが、それを更に訳者(私)が改良し、今回commitされた。
それでもアセンブラの方が数倍は速い。
common/bitstream.cとcommon/x86/bitstream-a.asmが追加。common/bs.hがcommon/bitstream.hにリネームされた。
x264r1622
commit bdc68d651db64045aecb28f27e0e05e027ab48eb
Author: Jason Garrett-Glaser
Date: Fri May 28 14:30:07 2010 -0700
Re-enable i8x8 merged SATD
Accidentally got disabled when intra_sad_x3 was added.
i8x8統合SATDを再度有効化。
intra_sad_x3が追加された際に誤って無効化されていた。
x264r1621
commit 0c7cf0bfb1d30ee8e7f1b355fef5aa9e2db929d2
Author: Henrik Gramner
Date: Sun May 30 22:45:14 2010 +0200
Some deblocking-related optimizations
いくつかのdeblock関係の最適化。
x264r1620
commit 77b568b22d42baa344dad050aef420de3b22e126
Author: Henrik Gramner
Date: Thu May 27 22:18:38 2010 +0200
Optimize out some x264_scan8 reads
いくつかのx264_scan8読込を最適化。
x264r1619
commit 794713a35eadcd999d5aab4a50274ca43f29be93
Author: Jason Garrett-Glaser
Date: Thu May 27 10:42:15 2010 -0700
Add fast skip in lookahead motion search
Helps speed very significantly on motionless blocks.
高速なスキップをlookahedの動き検索に追加。
動きの無いブロックで大変著しくスピードを補助する。
x264r1618
commit 5832bdfaed3bcce1b2823b6594386e0357d8ff31
Author: Jason Garrett-Glaser
Date: Wed May 26 12:55:35 2010 -0700
Merge some of adaptive quant and weightp
Eliminate redundant work; both of them were calculating variance of the frame.
adaptive quant(訳注:AQ)とweightpの一部をマージ。
冗長な動作を除去;両方共がフレームのvariance(分散)を計算していた。
x264r1617
commit a7f870990af39a11f3bb883b9335baad91909ccb
Author: Jason Garrett-Glaser
Date: Thu May 27 12:31:41 2010 -0700
Fix omission in libx264 tuning documentation
libx264のtuneのドキュメントにおける不足を修正。
コメントのみの修正なのでバイナリに影響なし。stillimageが抜けていた。
x264r1616
commit 8098997dcba2602b22b43fdf26621d08d3f81333
Author: Jason Garrett-Glaser
Date: Sun May 30 09:42:53 2010 -0700
Fix ultrafast to actually turn off weightb
ultrafastが実際にweightbをoffにするよう修正。
x264r1615
commit d51fde592507649e22757a23f0ea0252ec35b5b6
Author: Anton Mitrofanov
Date: Mon May 31 22:36:50 2010 +0400
Fix crash with MP4-muxing if zero frames were encoded
0フレームエンコードされた場合のMP4-muxingのクラッシュを修正。
非常に特殊な状況ではあるけれども。
x264r1614
commit 2bcbac357b714f468e0138f022e584ffdb42f6d2
Author: Jason Garrett-Glaser
Date: Mon May 31 11:14:22 2010 -0700
Fix cavlc+deblock+8x8dct (regression in r1612)
Add cavlc+8x8dct munging to new deblock system.
May have caused minor visual artifacts.
cavlc+deblock+8x8dctを修正(r1612でのレグレッション)。
新しいdeblockシステムに対してcavlc+8x8ctのmungingを追加。
小さな視覚的アーティファクトを引き起こし得た。
x264r1613
git-id : 81e75e91cad61079ce9579d133316b1faf78f357
Author : Jason Garrett-Glaser
Date: Wed May 26 12:40:31 2010 -0700
Fix 10L in r1612
Stats need to be calculated before deblock strength, not after.
Broke ref stats in x264cli (no affect on actual output).
1612の10Lを修正。
統計はdeblock強度の後ではなく、前に計算される必要がある。
x264cliでrefの統計を壊していた(実際の出力には影響しない)。
このコミットコメントは若干嘘らしく、2nd-passのrefの最適な再配置に影響するらしい。
x264r1612
git-id : 97c7ecc5aae7739ad91e1d6d3cdd3d26aafefb06
Author : Jason Garrett-Glaser
Date: Tue May 25 12:42:44 2010 -0700
Overhaul deblocking again
Move deblock strength calculation to immediately after encoding to take advantage of the data that's already in cache.
Keep the deblocking itself as per-row.
再びdeblockingのオーバーホール。
既にキャッシュにあるデータを利用するため、deblock強度計算をエンコードの直後に移動。
deblockingそのものはrow毎(行毎)に保つ。
x264r1611
git-id : 036db859ac0d44c4c491ef86d890745a62d1b1e0
Author : Jason Garrett-Glaser
Date: Tue May 25 16:13:59 2010 -0700
Detect Atom CPU, enable appropriate asm functions
I'm not going to actually optimize for this pile of garbage unless someone pays me.
But it can't hurt to at least enable the correct functions based on benchmarks.
Also save some cache on Intel CPUs that don't need the decimate LUT due to having fast bsr/bsf.
Atom CPUを検出、適切なasm関数を有効化。
誰かが報酬をくれないかぎり、この碌で無しに対する実際の最適化は行わないつもり。
しかし、ベンチマークに基づき正しい関数を有効化することは、少なくとも害にはならない。
また、高速なbsr/bsfを持つためにLUTのdecimate(間引き)を必要としないIntel CPUにおいて、いくらかキャッシュを節約。
Atomは総合的に言って、あまり整合性のあるアーキテクチャではない。消費電力第一であると同時に、価格も重要な指標であるため、若干やっつけな設計なのだろう。色々と不可解な動作(命令間の性能の逆転等)があるため、ベンチマークによって、既存の関数単位で無難なものを選択するようにしたようだ。
bsr/bsf命令は、MSB/LSBから見て最初に1であるビットの位置を得るx86命令だ。SIMDでも何でも無く、訳者の記憶が確かなら386あたりから使用できる普通のx86命令だ。こういう地味なスカラ命令の地味な高速化が、何時の間にか、地味にx86の性能を上げている。地味に便利でCISCの恩恵を感じさせてくれる。
x264r1610
git-id : 7c2fd41075685b6f67471c71b323b08fc3c13764
Author : Jason Garrett-Glaser
Date: Mon May 24 11:13:22 2010 -0700
Slightly faster mbtree asm
mbtreeのasmを僅かに高速化。
x264r1609
git-id : cca28cdeb64df106d9aa49eb75ae1c7b933d6c49
Author : Jason Garrett-Glaser
Date: Fri May 21 15:39:38 2010 -0700
Faster deblock strength asm on conroe/penryn
conroe/penrynでのdeblock強度のasmを高速化。
x264r1608
git-id : 2dd5ce29d1e5304310d8577543613b230878cdc5
Author : Jason Garrett-Glaser
Date: Fri May 21 14:32:13 2010 -0700
Avoid an extra var2 in chroma encoding if possible
Also remove a redundant if.
可能であればchromaのエンコードにおける余分なvar2を回避。
また、冗長なifを削除。
x264r1607
git-id : 23e92b58c0e4d15123fcb17929b531f1cf6f8dd6
Author : Jason Garrett-Glaser
Date: Fri May 21 13:07:12 2010 -0700
Avoid a redundant qpel check in lookahead with subme <= 1.
sume <= 1でのlookaheadで冗長なqpelのチェックを回避。
x264r1606
git-id : d202981d5c884d7b177320bd74fec3af1d68e5a8
Author : Anton Mitrofanov
Date: Tue May 25 19:11:42 2010 +0400
Fix ABR rate control calculations
Incorrect frame numbers were used, resulting in slightly inaccurate ratecontrol.
ABRレートコントロールの計算を修正。
不正なフレーム番号が使用されており、僅かに精密ではないレートコントロールを生じていた。
x264r1605
git-id : e627569c623d2cd0423c94e9499dec4844039139
Author : Anton Mitrofanov
Date: Tue May 25 18:45:16 2010 +0400
Fix calculation of total bitrate printed after stop by CTRL+C
CTRL+Cによって停止した後に表示される全体ビットレートの計算を修正。
x264r1604
git-id : bed132348f4044c3b8291e8addeedc223ff1483e
Author : Kieran Kunhya
Date: Sat May 22 14:32:53 2010 +0100
Fix typo in fake-interlaced documentation
fake-interlacedのドキュメント内のタイポ(誤植)を修正。
ソースコード上のコメントの修正なので一般のエンドユーザには全く影響しない。
x264r1603
git-id : cf5769dc3f2dcf699fc8bf850d375508495297ef
Author : Jason Garrett-Glaser
Date: Tue May 25 17:49:07 2010 -0700
Fix CABAC+PCM, regression in r1592
Changes to queue in CABAC didn't get propagated to PCM code.
CABAC+PCMを修正、r1592でのレグレッション。
CABACのキューへの変更がPCMコードに伝播していなかった。
ここでいうPCMは純粋なPCMであり、つまり予測も変換も一切しない生のピクセルデータである。Losslessモードなどで様々な方策によっても、生PCMの方がビットコストが低いと判断された場合に発生するものだ。
x264r1602
git-id : 69588a7dda1dbd89b955fa6a2d8f4b3a8af73628
Author : Henrik Gramner
Date: Fri May 21 15:30:26 2010 +0200
Fix performance regression in r1582
Set the correct compiler flags.
r1582での性能のレグレッションを修正。
正しいコンパイラフラグを設定。
x264r1601
git-id : b9ec3ea27812288485329ac7771143021cd4917b
Author : Jason Garrett-Glaser
Date: Tue May 18 16:48:00 2010 -0700
Rewrite deblock strength calculation, add asm
Rewrite is significantly slower, but is necessary to make asm possible.
Similar concept to ffmpeg's deblock strength asm.
Roughly one order of magnitude faster than C.
Overall, with the asm, saves ~100-300 clocks in deblocking per MB.
deblock強度の計算を書き直し、asm追加。
書き直したコードは極めて遅いが、asmを可能にするために必要。
ffmpegのdeblock強度asmと同様のコンセプト。
大まかに、Cよりも1マグニチュード速い。
全体で、asmを使用する場合、1MBのdeblockにつき〜100-300クロックを節約。
1マグニチュード=約31.62倍らしい。
x264r1600
git-id : 9b47cb08b5ecf9a38ba82f299304c95c178f4690
Author : Anton Mitrofanov
Date: Fri May 21 10:33:45 2010 +0400
Fix different output with differing sync-lookahead
Also reduce memory consumption.
sync-lookaheadの相違での出力の違いを修正。
また、メモリ消費を削減。
前:x264-changelog-jp r1500-r1599 - 次:x264-changelog-jp r1700-r1799
最終更新時間:2010年08月25日 06時42分16秒