このページの全ては誤っているかもしれません。[[x264関連の記事に関して]]を読んでください。 !!!x264-changelog-jp r1600-r1699 r1600-r1699のchangelogの日本語訳。その他のリビジョンと注意事項については[[x264-changelog-jp]]へどうぞ。 前:[[x264-changelog-jp r1500-r1599]] - 次:[[x264-changelog-jp r1700-r1799]] 速報とか暫定訳とか仮訳とか書いてある場合はdiffを見ていないことが多く、訳自体も簡易版の可能性がある。 !x264r1699 {{bq 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). }} {{bq slice-max-sizeでのバグを2つ修正。 マクロブロックの再エンコードはmv/texビットカウンタを再格納しない(僅かに精密ではない2-pass)。 ビットストリームバッファのチェックが正しく動作していなかった(非常識に大きなフレームがエンコードを破壊しえた)。 }} !x264r1698 {{bq git-id : c41b8f0e890a05257406c8081ea429308d4e315c Author : Manuel Rommel Date: Thu Aug 12 12:54:00 2010 -0700 NV12 version of Altivec chroma MC }} {{bq NV12バージョンのAltivec chroma MC。 }} !x264r1697 {{bq 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 %). }} {{bq Deblock-aware RD(訳注:デブロックを意識したRD)。 低ビットレートで少しの質の利得(〜0.5%)、潜在的にはQPRDでより大きい。 psyでより役立つかも知れないし、そうではないかもしれない。 subme >=9 で有効。小さなスピードのコスト(数%)。 }} !x264r1696 {{bq 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. }} {{bq configure内でのXのヘッダパスの使用法を修正。 OpenBSDに対して無条件にヘッダパスを設定せず、--enable-visualizeフラグが指定された場合のみそうするように。 }} !x264r1695 {{bq git-id : 003a7f2864190774f9ccf78168ff58a442fae627 Author : golgol7777 Date: Sat Aug 7 23:01:46 2010 -0700 Fix lavf input with delayed frames }} {{bq ディレイフレームのある場合のlavf入力を修正。 }} 数フレーム欠けることがあるというバグの修正。 !x264r1694 {{bq git-id : dd363d774d4aef19dc1cd9247b17d2454f913ea1 Author : Alexander Strange Date: Sat Aug 7 22:29:12 2010 -0700 Slightly improve the filtering section of x264 --help }} {{bq x264 --helpのフィルタリングの部を僅かに改善。 }} !x264r1693 {{bq git-id : 12002b946831a5b4c542b5699eb9b0d15a51784b Author : Jason Garrett-Glaser Date: Sat Aug 7 22:32:06 2010 -0700 Fix debug message typo with DTS compression }} {{bq DTS compressionでのデバッグメッセージのタイポ(誤植)を修正。 }} !x264r1692 {{bq 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. }} {{bq lavf入力で入力の長さを推測するよう試みる。 lavf入力を使用時に進捗状況表示を可能にする。 }} !x264r1691 {{bq 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). }} {{bq lavf入力でfps/timestamp処理におけるバグへのワークアラウンド(次善策)。 lavf内のreordered_opaqueはidentityなケース(再配置なし)の場合に正しく動作しない。 いくつかのファイルタイプ(例えばraw in mov)に対しての不正な出力を修正。 }} identityが何を指しているかよくわからなかったのでそのままにした。要はBフレームなしのケースを指している。 またもや新たな日本人が登場したわけだが、これはL-SMASHのサポートもして戴いている方。 !x264r1690 {{bq 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. }} {{bq MKV muxerでのアスペクト比の書き込みを修正。 イカれたMatroskaの仕様はアスペクト比が実際のアスペクト比ではなくピクセルで測られるべきと決定した。 }} !x264r1689* {{bq git-id : 7fc564fd23cde539c37d13c8fede91c7cd2b32f0 Author : Anton Mitrofanov Date: Thu Jul 29 20:23:55 2010 +0400 Add libavcore check in configure }} {{bq libavcoreのチェックをconfigureに追加。 }} !x264r1688 {{bq 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. }} {{bq sliced-threads+VBVでのquantizerの配分を改善。 スライス間で非常に不公平なquantizerの選定が行われるケースを回避するのに役立つはず。 }} !x264r1687 {{bq git-id : a4cd3171e70f814f27ac53933a2897d34aaa8011 Author : Jason Garrett-Glaser Date: Wed Jul 28 11:42:06 2010 -0700 Remove dead code in slicetype.c }} {{bq slicetype.c内の使用していないコードを削除。 }} !x264r1686 {{bq git-id : 3e153343197ce41f116be600f6d7dd389c05f124 Author : golgol7777 Date: Wed Jul 28 00:54:38 2010 +0900 Fix incorrect duration/framerate/bitrate in flv header }} {{bq flv header内の不正なduration/framerate/bitrateを修正。 }} dts-compression関連の修正。 golgol氏は以前にはHandBrakeの個人ビルダとして有名で、現在ではgpacの修正版で有名な方。 VFR_maniac氏や訳者とも交流がある。 !x264r1685 {{bq 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. }} {{bq invalidate_referenceの修正。 invalidate_referenceは実際には直前のフレームを無効化しておらず、それ以前のフレームのみ無効化していた。 invalidate_referenceが使用された場合に、リオーダー(再配置)が強制され、参照リストがデコーダ側で正しいくなることを確実にした。 }} !x264r1684 {{bq 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. }} {{bq フィルタリングシステム関連の修正。 リサイズフィルタのサポートにおいて、古いlibavutilに対してのconfigureのチェックを修正。 ffmsでソースのフレーム数を超えたフレームを要求した場合に、明示的なエラーメッセージを表示しない。 --*help内でフィルタリングオプションがname=valueという形式で指定できることに言及。 posixシステム上での、リサイズフィルタ内の(訳注:コンパイル時における変数の)シャドウ警告を修正。 }} !x264r1683 {{bq 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. }} {{bq reference_invalidのサポートを改善。 参照の無効化は、encoder_encodeの呼び出し毎に1つではなく、複数のフレームを一度に無効化するために使用することが可能になった。 }} !x264r1682 {{bq git-id : 757f5c15b9c742e3076b44b073fae222522c7a5e Author : Loren Merritt Date: Thu Jul 22 06:40:12 2010 +0000 Eradicate all mention of SI/SP-frames }} {{bq SI/SPフレームに触れている部分を全て撲滅。 }} !x264r1681 {{bq 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). }} {{bq MB-treeでのスタックアラインメントを修正。 壊れたスタックアラインのコンパイラ(例えばMSVC)から呼び出した場合にMB-treeでの2-passを壊していた。 }} !x264r1680 {{bq 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. }} {{bq Avisynth 2.6の色空間のサポート。 カスタマイズされたavisynth_c.hを使用し新しいplanar色空間を検出する。 }} !x264r1679 {{bq 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. }} {{bq いくつかのキャッシュエイリアシングの事例を防止。 画像のストライドが大きな2の累乗である場合であるケースを回避。 Core 2: 898〜960の幅で+3%、1922〜1984の幅で+6%のスピード、その他の殆どの解像度は影響されない。 NehalemとAMD: 同様の量のスピードアップ、しかしより少ない解像度が影響される。 }} !x264r1678 {{bq 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). }} {{bq adaptive quant(訳注:AQ)のスタックアラインを修正。 壊れたスタックアラインのコンパイラ(例えばMSVC)からの呼出しを壊していた。 }} !x264r1677 {{bq 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. }} {{bq ffmpegのshared(共有)ライブラリとのコンパイルを修正。 lavf入力はlibavutilの関数を使用するため、libavutilに対してpkg-configからのフラグを必要とする。 }} ビルドにのみ影響。 !x264r1676 {{bq 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. }} {{bq また別のPCMのバグを修正。 CABACはNNZが、実際の非ゼロ係数の数ではなく0か1であると仮定している。 実際には出力を壊してはいなかった;RDで微量の影響があったのみ。 }} !x264r1675 {{bq git-id : 2484aa0b360647dbe0b63f9876566f670d7dcc49 Author : Oskar Arvidsson Date: Thu Jul 15 14:01:36 2010 +0200 Fix regression in r1666 Broke encoding of PCM macroblocks. }} {{bq r1666でのレグレッションを修正。 PCMマクロブロックのエンコードを壊していた。 }} ロスレス等で時折発生するPCMエンコードが壊れていた。 !x264r1674 {{bq 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. }} {{bq bit_depth > 8でのビルドを修正。 x264_cli_plane_copyは宣言と定義が一貫していなかった。 }} !x264r1673 {{bq 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. }} {{bq 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 {{bq 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. }} {{bq 映像のフィルタリングシステムを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 {{bq 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. }} {{bq MV予測器に対して端のケースを除去。 mv予測内で数クロックを節約。 }} MV予測に限らず、画像処理では縁の部分の処理が特別になるケースが多い。 つまり、その部分を処理するために分岐が必要になるのだが、これは速度低下の原因になる。 処理方法を工夫してこの分岐を無くしたようだ。 ちなみにこういった分岐は、コードの書き方によっては縁の部分以外の処理でも足を引っ張ることになる。 処理の実体を一箇所に書きたいがために、ループの中に縁のための分岐を書いた場合が多く該当する。 まず、分岐コードが有ること自体、スーパスカラに搭載される複数の実行ユニットの同時稼働率を下げる可能性がある。 そしてCPUに分岐予測が搭載されている場合には、これの精度を下げることにもなるからだ。 もう少し具体的に言えば、以下の擬似コードのようなケースが問題だ。 {{pre for( i = 0 ; i <= LAST_IDX ; i++ ){ if( i == 0 ) 処理A; else if( i == LAST_IDX ) 処理B; 処理C; } }} これは以下のように書いたほうが高速なケースが多々存在する。 {{pre 処理a; for( i = 1 ; i < LAST_IDX ; i++ ){ 処理C; } 処理b; }} 処理aや処理bには処理Cと同じ内容が含まれてしまうであろうし、コードサイズは若干肥大するかもしれない。 それでもループの中から分岐を排除する事による速度的利得は、それらのデメリットを凌駕することがある。 少なくともinlineが使える環境なら、処理Cをinline関数にすれば、保守性が下がるデメリットは問題にならない。 更に進めて、処理対象のメモリ領域を上手く整形したり、前処理・後処理を上手く行い、 処理Cがそのまま端のケースを処理できるようにするのも効果的だ。 もちろん、ループの形が常にこのようにあるべきというわけではない(SIMD命令が絡むとさらに複雑)が、 可読性や速度の重要性、保守性などを考慮しつつも、分岐をループの外に出せるケースは多くあるだろう。 !x264r1670 {{bq 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. }} {{bq scenecutの検出を少し改善。 scenecutの閾値に最小値を置く;x264がscenecutを成功裏に捕捉するようにした(が、誤検出の可能性を増すかもしれない)。 これはkeyint=infiniteでのscenecut検出も修正する。 また、x264のSEIとstatsファイルでkeyint=infiniteを正しく表示するように。 }} !x264r1669 {{bq 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. }} {{bq 8x8dct + slices + sliced-threads無し + cavlc + deblockを修正。 デブロックが僅かに不正に行われていた。 r1612でのレグレッション。 }} !x264r1668 {{bq 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 }} {{bq スライスVBV予測器の更新が1つずれていた誤りを修正。 }} !x264r1667 {{bq git-id : ce136d6721d38fbdf57683304dabbb1ba973effe Author : Anton Mitrofanov Date: Mon Jul 5 17:44:15 2010 +0400 Fix disabling of progress with --log-level }} {{bq --log-levelで進捗状況が無効化されるのを修正。 }} switch文中でbreakが抜けていたために其の次のエントリであるOPT_NOPROGRESSが処理されてしまっていた。 よくあるバグ。 !x264r1666 {{bq 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. }} {{bq 9または10ビットエンコードのサポート。 出力bit depth(ビット深度)はコンパイル時に--bit-depthで指定する。 現在のところ、高ビット深度モードに対して使用可能なアセンブリコードが殆どないため、エンコードは非常に遅い。 まだ入力は8bitのみである;これは将来的に変わる。 現状、非常に少数のH.264デコーダしか>8bit深度をサポートしていない事に注意。 また、高ビット深度では量子化器のスケールが異なることに注意。例えば10-bitでは、量子化器(とcrf)は0から51ではなく、0から63の範囲になる。 }} かなりの規模のメガパッチ。--profile high10が追加。 ここでquantizer(量子化器)と言っているのはCQPやCRFのオプション指定のレベルでの話で、内部の話ではないようだ。 !x264r1665 {{bq 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). }} {{bq 無限のkeyint(--keyint infinite)のサポート。 これはつまり、x264が非シーンカットであるキーフレームを挿入しない事を意味する。 インタラクティブ(双方向性)エラー回復や、その他のキーフレームを不要にする仕組みを使用する場合のストリーミングで有用。 また、POC/フレーム数のLSBのサイズを制限するよう(スライスごとのビットを節約するため)にPOCのロジックを変更。 また、CPBアンダーフロー検出のコード内のバグを修正(ビットストリームには影響せず、特定の警告メッセージを表示する不具合に帰着していた)。 }} X264_BUILD 102。 !x264r1664 {{bq 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. }} {{bq 以前のモードが有益でない限り、i16x16 planarモードをチェックしない。 subme=1でMB毎に〜160クロック、subme>1でMB毎に〜270クロックを節約(Core i7で計測)。 圧縮率には無視できるほどの影響。 また、いくつかの配列をstaticにした。 }} NegligleはNegligibleのことだと思われる。 !x264r1663 {{bq 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. }} {{bq ログをx264cliに集中させた。 x264cliのメッセージはそれに付帯するログレベルを順守するようになった。 バイナリサイズを僅かに削減。 }} --log-level (none|error|warning|info|debug)が追加。 !x264r1662 {{bq 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. }} {{bq open-GOPをBlu-ray互換にした。 Blu-rayは我々が考えていたよりも更にイカレていた。 これに応じて、open-gopオプションはdisplayとcodedではなく"normal"と"bluray"になった。 (訳注:OpenGOPを使うのであれば)Blu-rayオーサリング以外の全てのケースではNormalが使用されるべきである。 }} 今回は"braindamaged"を「イカレてる」と訳してみた。 !x264r1661 {{bq 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. }} {{bq 低レイテンシ(低遅延)・スライス毎出力のためのコールバック機能。 呼び出し側アプリケーションが、スライスがエンコードされた直後に送信することを、可能にするコールバックを追加。 NALユニットがどのように配置されるべきかを、そのような呼び出し側アプリケーションに知らせるのに役立つ、いくつかの特別な情報をx264_nal_t構造体に追加。 完全なドキュメントはx264.hにある。 }} X264_BUILD 101。 libx264を使うアプリケーションがフレーム単位ではなくスライス単位で処理を行えるようにするための仕組み。 当然x264cliでは使用できないし、一般ユーザのリアルタイム性がないエンコードにおいては特にメリットがない。 フレームのエンコード完了までbuffering period SEI情報が得られないため、HRDとの併用は不可。 !x264r1660 {{bq git-id : aa1a8435000228c4d9e74da0f9fd3d16e85a3e80 Author: Loren Merritt Date: Sat Jun 26 20:55:59 2010 -0700 Simplify pixel_ads }} {{bq pixel_adsをシンプル化。 }} !x264r1659 {{bq 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. }} {{bq インタラクティブ(双方向性)エンコーダコントロール:エラー弾力性。 数少ないクライアントでの低レイテンシ(低遅延)ストリーミングでは、しばしばクライアントからのフィードバックに基づいてエンコーダの動作を修正することが可能である。 見込まれる用途の一つはエラー弾力性である:パケットが喪失した場合に、係るフレーム(とそれから参照されるもの)が喪失したと印をつける。 これは最小限のビット的対価でエラーからの早急な回復を可能にする。 新しい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 {{bq 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. }} {{bq 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 {{bq 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. }} {{bq 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 {{bq 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. }} {{bq 不要なスレッドの生成を避けるためにスレッドプールを使用。 高速な設定と多くのスレッドで、とても小さな性能の向上。 OS Xのようにスレッドの生成が遅いいくつかのOSではより役立つかも。 一貫していないsyncronizedの略称をsyncに統一。 }} 有名だがずっと採用されていなかったスレッドプールのパッチがマージされた。 有用でないことはないが、効果は僅か。 !x264r1655 {{bq 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. }} {{bq 2-passのビットレート予測を向上。 フレームではなくビットの終端への距離に基づき適応する。 バカバカしいほど単純な終端部分(例えば真っ黒なフレーム)の映像で役立つ。 }} !x264r1654 {{bq 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. }} {{bq いくつかのintra_sad関数のSSE4とSSSE3バージョン。 主にNehalemへの最適化。 }} !x264r1653 {{bq 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. }} {{bq HRDの精度を向上。 驚くべきアホの露呈であるが、仕様は、HRDの出力が真に限られた精度であるにも関わらず、その全ての計算が無限の精度で行われることを要求する。 これに応じて、バッファ管理がtimescaleの単位で動作するように変換。 これらの丸め誤差の累積は、恐らく実際上の問題は引き起こしていなかっただろうが、理論的には、極端に長いストリームと非常に神経質なmuxerでは、問題であったかもしれない。 }} 「驚くべきアホの露呈」というあまり上手くない訳に関しては…まぁ、察してください。 バカバカしくとも仕様が要求する以上、実装しない訳にもいかない。 規格があるものの実装ではよくあることだが、何度経験しても嫌になる。 !x264r1652 {{bq 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. }} {{bq コンパイルミスを避けるために-fno-tree-vectorizeを使用。 いくつかのgccのバージョンがplane_expand_border内のループをベクター化しようとし(て失敗し)たと報告していた。 これは結果としてsegfaultになるので、gccのこの酷い不能が影響する可能性を限定するため、ベクター化を完全にoffにすることにした。 そもそもこれは何の役にも立ってはいなかったようだ。 }} !x264r1651 {{bq 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. }} {{bq is_regular_fileのチェックにより引き起こされるSIGPIPEを修正。 ファイルを開くこと無く、それがパイプであるかを検査する。 }} !x264r1650 {{bq git-id : 4fa7d539c1a09a0779194c7971495e966ff7de1e Author: Jason Garrett-Glaser Date: Tue Jun 15 05:15:42 2010 -0700 Fix compilation on ARM w/ Apple ABI }} {{bq Apple ABIでのARMのコンパイルを修正。 }} !x264r1649 {{bq 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. }} {{bq mbtree_propagateのasmを高速化。 浮動小数点の除算を、逆数の乗算で置き換え。 penrynでは〜12%しか速くないが、amd k8では80%超も速い。 checkasmがもう少しだけ丸め誤差を許容するようにした。 }} !x264r1648 {{bq 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 }} {{bq OPT_のdefineをenumに変換。 }} !x264r1647 {{bq 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. }} {{bq fake-interlacedでbaseline profileのストリームを許可しない。 SEIのエンコードオプション中で--fake-interlacedの使用を示すように。 }} !x264r1646 {{bq git-id : 71502eaf1ac591074da1f16135cc4af4087a9f3f Author : Havoc Pennington Date: Thu Jun 10 16:28:52 2010 -0400 Allocate space for null terminator in param_apply_tune }} {{bq param_apply_tuneで、null終端(訳注:C言語の文字列の終端マークである'\0'のこと)のスペースを確保。 }} 結構基本的なバグがここまで修正されていなかったとは少々驚きだ。 !x264r1645 {{bq 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. }} {{bq r1501でのレグレッションを修正。 稀なケースで、僅かに不正な解析を引き起こしていたかもしれないが、深刻なエンコードの問題ではない。 pels_vに関するgccの警告を黙らせた。 }} !x264r1644 {{bq 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 }} {{bq --subme 0 + --weightp > 0でのクラッシュを修正。r1535でのレグレッション。 }} !x264r1643 {{bq git-id : 0cd5d69beac1ed95a077e75c7a4cb3f837e74855 Author : Henrik Gramner Date: Tue Jun 8 16:29:16 2010 +0200 Replace some divisions with shifts }} {{bq いくつかの除算をシフトに置き換え。 }} 2の累乗での整数除算をシフトに置き換えるのは高速化の基本だ。 ただし、コンパイラの最適化も進んでいるので自動的に行われる場合もあるし、符号ありの変数の場合は符号拡張に注意しなければならない。 また、若干コードの可読性を損なうという意見もある。 つまり、コード上でシフトに置き換えてしまうのは、善し悪しだ。 !x264r1642 {{bq 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. }} {{bq shadowな変数宣言を警告。 また、いくつかの変数のshadowingな実体を除去。 }} 変数のshadowingに関してはr1517を参照。 !x264r1641 {{bq 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. }} {{bq interlacedに基づきload_pic_pointersを定形化。 非インターレースの場合においてcache_loadを有意にスピードアップ。 また、cache_loadとcache_save内でその他様々な小さい最適化。 }} ううむ、と唸らされるコード。 {{bq if( (0x3FF30 >> i_mb_type) & 1 ) /* !INTRA && !SKIP && !DIRECT */ }} 演算方法の工夫により条件分岐を減らしている。 条件分岐を減らすことは、パイプライン構造を持つ現代のCPUを想定する場合、高速化の基本だ。 しかし、高級言語しか知らない人間の場合、この''「分岐」の意味を取り違えている''場合がある。 C言語のif文の条件式に複数の条件を並べた場合、アセンブラ・機械語レベルではそれらは複数の分岐命令に展開されるケースが殆どだ。 つまり「if文を減らすこと」にも意味はあるが、''本質的に減らさなければならないのは「条件文」''の方だ。 !x264r1640 {{bq 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. }} {{bq MBの幅・高さのデータに対する二重参照外しを除去。 SPSを通す代わりにx264_tに格納。 }} 「二重参照外し」の参照外しとは、ポインタから実体を得ることを指している。 つまり"h->sps->i_mb_width"という表現は、"->"演算子を二度使うことで二重参照外しなのだが、これを"h->mb.i_mb_width"とすることで一重参照外し+オフセット計算になっている。 これによってアセンブラレベルでは、一般的に命令数が減少すると共に、動作が高速になる。 !x264r1639 {{bq 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. }} {{bq 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 {{bq 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. }} {{bq プリプロセスのコスメティックス。 input/outputのdefineをHAVE_*の形式に統合。 条件をシンプル化するため値を1として定義。 }} !x264r1637 {{bq 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. }} {{bq i4x4/i8x8解析で更なるショートカットを採用。 HとVのモードのスコアに基づき、見込みのないモードを除外。 少しの圧縮率のロス(0.1-0.5%)と大きな速度利得(10-30%高速なintra解析)。 より遅いエンコードモードでは有効にされない。 また、利用可能性に基づき分岐を排除するため、統合されたSATD関数のCバージョンを作成。 }} 関数名のプレフィックスに"x264"が付いていなかったものに、それを足すコスメティックスを含むため、diffが大きく見えるが、中身はそこまで大きくはない。 !x264r1636 {{bq git-id : 2d2abd8286f3744d79349a162e506f6502c52c56 Author : Jason Garrett-Glaser Date: Wed Jun 2 15:47:26 2010 -0700 Display SSIM measurement in db as well }} {{bq SSIM測定をdbでも表示するように。 }} エンコードに影響なし。 !x264r1635 {{bq git-id : c41f0c09eae14014f00a38d5b2f859b99fdd77a4 Author : Anton Mitrofanov Date: Tue Jun 8 01:03:03 2010 +0400 Make version.sh indicate "M" for local commits too }} {{bq version.shがローカルコミットに対しても"M"を示すようにした。 }} !x264r1634 {{bq git-id : 3c92ef90e145d627b4048b5c6ea92995b2eafbf3 Author : Alex Jurkiewicz Date: Sun Jun 6 15:21:12 2010 +0800 Add error message for invalid [de]muxer selection }} {{bq 無効な(de)muxer選択に対するエラーメッセージを追加。 }} エンコードに影響なし。 !x264r1633 {{bq git-id : 0d0dc6a720f5a41add8989cfa29090cf48d6028f Author : Nathan Caldwell Date: Sun Jun 6 14:19:41 2010 -0600 Deduplicate the ALIGN macro, move it to common.h }} {{bq ALIGNマクロの重複を排除、common.hに移動。 }} エンコードに影響なし。 !x264r1632 {{bq git-id : 2fafcb50c2266a58fe25030c10c5840cab8fbc8f Author : David Conrad Date: Thu Jun 3 19:02:24 2010 -0400 Fix a use of ALIGNED_ARRAY_16 on ARM }} {{bq ARM上でのALIGNED_ARRAY_16の使用を修正。 }} checkasmの修正。 !x264r1631 {{bq 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. }} {{bq nal_encode後に欠けていたemmsを追加。 いくつかの呼び出し側アプリケーションで、ランダムで奇妙な失敗を引き起こしていた。 }} !x264r1630 {{bq git-id : b474d0e5790da0c1aa6107ef571d7572f2e94221 Author : Jason Garrett-Glaser Date: Tue Jun 8 15:38:32 2010 -0700 Fix crash in fake-interlaced at some resolutions }} {{bq fake-interlacedにおけるいくつかの解像度でのクラッシュを修正。 }} !x264r1629 {{bq commit 2e81ce15c161f94053707852c027c123c6812cdf Author: Yusuke Nakamura Date: Wed Jun 2 22:27:57 2010 +0900 Fix no-mbtree + aq-mode=0 Regression in r1618. }} {{bq no-mbree + aq-mode=0を修正。 r1618のレグレッション。 }} !x264r1628 {{bq 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. }} {{bq x264_picture_tの初期化を修正するAPI関数を追加。 x264_picture_allocを使用しない呼び出し側アプリケーションは、x264_picture_t構造体を初期化するために、x264_picture_initを呼び出す必要がある。 以前は、呼び出し側アプリケーションがx264_picture_tをゼロ化しなければ、よろしく無いことが発生しえた。 }} X264_BUILD 98。 r1627の言う恒久的対策。 !x264r1627 {{bq 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. }} {{bq Avisynth入力を修正。 r1624でのレグレッション。この問題のより恒久的な解決策は後ほどcommitの予定。 }} avs入力でクラッシュするバグの修正。 !x264r1626 {{bq 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. }} {{bq DCTデータに対し統一的な"dctcoeff"型への変換。 将来の高いビット深度(訳注:ビット幅拡張)のサポートに必要。 }} r1625と同様のDCT係数側の変更。 !x264r1625 {{bq 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. }} {{bq ピクセルデータに対し統一的な"pixel"型への変換。 将来の高いビット深度(訳注:ビット幅拡張)のサポートに必要。 可変サイズのピクセルでより使い勝手の良い処理にするため、様々なマクロと追加の型が導入された。 }} 現在のx264はピクセルのビット深度が8bit固定であるが、これを10bitに拡張できるようにするための下地。 ピクセルデータをuint8_tにしていたところを、pixel型をtypedefして変更できるようにした。 こう書くと大した変更でないようだが、実際には精度やオーバーフローに注意しながら置き換えるので、大変注意を要する変更だ。 アセンブラも片っぱしから書き直す必要があり、容易なことではない。 Oskar Arvidsson氏はGoogle [SoC x264 2010|http://wiki.videolan.org/SoC_x264_2010]のstudentで、[SoC 2010/High Bit Depth Encoding|http://wiki.videolan.org/SoC_2010/High_Bit_Depth_Encoding](10-bit encoding support)を担当しているので、その下地と言うこと。 !x264r1624 {{bq 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. }} {{bq 任意のquantizerオフセットを適用するAPIツールを追加。 呼び出し側アプリケーションは各フレームに適用するためのquantizerオフセットの"map"を渡すことができるように。 mapを解放するための、オプションのコールバックも含めることができる。 これはすべての種類の柔軟なregion-of-interest符号化と同様のことを可能にする。 }} X264_BUILD 97。 zonesをMBレベルにまで拡張するような機能(このためAQがONである必要がある)だが、 指定するのは絶対値ではなく、エンコーダが決めた値に対するオフセット。 これはlibx264に対する機能追加で、現状、x264cliでこの機能を使用する方法はまだない。 !x264r1623 {{bq 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. }} {{bq 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 {{bq 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. }} {{bq i8x8統合SATDを再度有効化。 intra_sad_x3が追加された際に誤って無効化されていた。 }} !x264r1621 {{bq commit 0c7cf0bfb1d30ee8e7f1b355fef5aa9e2db929d2 Author: Henrik Gramner Date: Sun May 30 22:45:14 2010 +0200 Some deblocking-related optimizations }} {{bq いくつかのdeblock関係の最適化。 }} !x264r1620 {{bq commit 77b568b22d42baa344dad050aef420de3b22e126 Author: Henrik Gramner Date: Thu May 27 22:18:38 2010 +0200 Optimize out some x264_scan8 reads }} {{bq いくつかのx264_scan8読込を最適化。 }} !x264r1619 {{bq 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. }} {{bq 高速なスキップをlookahedの動き検索に追加。 動きの無いブロックで大変著しくスピードを補助する。 }} !x264r1618 {{bq 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. }} {{bq adaptive quant(訳注:AQ)とweightpの一部をマージ。 冗長な動作を除去;両方共がフレームのvariance(分散)を計算していた。 }} !x264r1617 {{bq commit a7f870990af39a11f3bb883b9335baad91909ccb Author: Jason Garrett-Glaser Date: Thu May 27 12:31:41 2010 -0700 Fix omission in libx264 tuning documentation }} {{bq libx264のtuneのドキュメントにおける不足を修正。 }} コメントのみの修正なのでバイナリに影響なし。stillimageが抜けていた。 !x264r1616 {{bq commit 8098997dcba2602b22b43fdf26621d08d3f81333 Author: Jason Garrett-Glaser Date: Sun May 30 09:42:53 2010 -0700 Fix ultrafast to actually turn off weightb }} {{bq ultrafastが実際にweightbをoffにするよう修正。 }} !x264r1615 {{bq commit d51fde592507649e22757a23f0ea0252ec35b5b6 Author: Anton Mitrofanov Date: Mon May 31 22:36:50 2010 +0400 Fix crash with MP4-muxing if zero frames were encoded }} {{bq 0フレームエンコードされた場合のMP4-muxingのクラッシュを修正。 }} 非常に特殊な状況ではあるけれども。 !x264r1614 {{bq 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. }} {{bq cavlc+deblock+8x8dctを修正(r1612でのレグレッション)。 新しいdeblockシステムに対してcavlc+8x8ctのmungingを追加。 小さな視覚的アーティファクトを引き起こし得た。 }} !x264r1613 {{bq 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). }} {{bq 1612の10Lを修正。 統計はdeblock強度の後ではなく、前に計算される必要がある。 x264cliでrefの統計を壊していた(実際の出力には影響しない)。 }} このコミットコメントは若干嘘らしく、2nd-passのrefの最適な再配置に影響するらしい。 !x264r1612 {{bq 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. }} {{bq 再びdeblockingのオーバーホール。 既にキャッシュにあるデータを利用するため、deblock強度計算をエンコードの直後に移動。 deblockingそのものはrow毎(行毎)に保つ。 }} !x264r1611 {{bq 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. }} {{bq Atom CPUを検出、適切なasm関数を有効化。 誰かが報酬をくれないかぎり、この碌で無しに対する実際の最適化は行わないつもり。 しかし、ベンチマークに基づき正しい関数を有効化することは、少なくとも害にはならない。 また、高速なbsr/bsfを持つためにLUTのdecimate(間引き)を必要としないIntel CPUにおいて、いくらかキャッシュを節約。 }} Atomは総合的に言って、あまり整合性のあるアーキテクチャではない。 消費電力第一であると同時に、価格も重要な指標であるため、若干''やっつけ''な設計なのだろう。 色々と不可解な動作(命令間の性能の逆転等)があるため、ベンチマークによって、 既存の関数単位で無難なものを選択するようにしたようだ。 bsr/bsf命令は、MSB/LSBから見て最初に1であるビットの位置を得るx86命令だ。 SIMDでも何でも無く、訳者の記憶が確かなら386あたりから使用できる''普通のx86命令''だ。 こういう地味なスカラ命令の地味な高速化が、何時の間にか、地味にx86の性能を上げている。 地味に便利でCISCの恩恵を感じさせてくれる。 !x264r1610 {{bq git-id : 7c2fd41075685b6f67471c71b323b08fc3c13764 Author : Jason Garrett-Glaser Date: Mon May 24 11:13:22 2010 -0700 Slightly faster mbtree asm }} {{bq mbtreeのasmを僅かに高速化。 }} !x264r1609 {{bq git-id : cca28cdeb64df106d9aa49eb75ae1c7b933d6c49 Author : Jason Garrett-Glaser Date: Fri May 21 15:39:38 2010 -0700 Faster deblock strength asm on conroe/penryn }} {{bq conroe/penrynでのdeblock強度のasmを高速化。 }} !x264r1608 {{bq 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. }} {{bq 可能であればchromaのエンコードにおける余分なvar2を回避。 また、冗長なifを削除。 }} !x264r1607 {{bq 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. }} {{bq sume <= 1でのlookaheadで冗長なqpelのチェックを回避。 }} !x264r1606 {{bq 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. }} {{bq ABRレートコントロールの計算を修正。 不正なフレーム番号が使用されており、僅かに精密ではないレートコントロールを生じていた。 }} !x264r1605 {{bq 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 }} {{bq CTRL+Cによって停止した後に表示される全体ビットレートの計算を修正。 }} !x264r1604 {{bq git-id : bed132348f4044c3b8291e8addeedc223ff1483e Author : Kieran Kunhya Date: Sat May 22 14:32:53 2010 +0100 Fix typo in fake-interlaced documentation }} {{bq fake-interlacedのドキュメント内のタイポ(誤植)を修正。 }} ソースコード上のコメントの修正なので一般のエンドユーザには全く影響しない。 !x264r1603 {{bq 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. }} {{bq CABAC+PCMを修正、r1592でのレグレッション。 CABACのキューへの変更がPCMコードに伝播していなかった。 }} ここでいうPCMは純粋なPCMであり、つまり予測も変換も一切しない生のピクセルデータである。Losslessモードなどで様々な方策によっても、生PCMの方がビットコストが低いと判断された場合に発生するものだ。 !x264r1602 {{bq 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. }} {{bq r1582での性能のレグレッションを修正。 正しいコンパイラフラグを設定。 }} !x264r1601 {{bq 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. }} {{bq deblock強度の計算を書き直し、asm追加。 書き直したコードは極めて遅いが、asmを可能にするために必要。 ffmpegのdeblock強度asmと同様のコンセプト。 大まかに、Cよりも1マグニチュード速い。 全体で、asmを使用する場合、1MBのdeblockにつき〜100-300クロックを節約。 }} 1マグニチュード=約31.62倍らしい。 !x264r1600 {{bq 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. }} {{bq sync-lookaheadの相違での出力の違いを修正。 また、メモリ消費を削減。 }} 前:[[x264-changelog-jp r1500-r1599]] - 次:[[x264-changelog-jp r1700-r1799]]