トップ 検索 一覧 差分 ソース ヘルプ RSS ログイン

x264-changelog-jp r1600-r1699

このページの全ては誤っているかもしれません。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秒