Chapter 9: Frame Header / 9章 フレームヘッダ
The uncompressed data chunk at the start of each frame and the first part of the first data partition contains information pertaining to the frame as a whole. We list the fields in the order of occurrence, giving details for some of the fields. Other details are postponed until a more logical point in our overall description. Most of the header decoding occurs in the reference decoder file decodeframe.c .
それぞれのフレームの先頭と,第1データ部分の先頭部分における非圧縮のデータチャンクはフレーム全体としての付属情報を含んでいる.登場する順番にフィールドを列挙し,いくつかのフィールドについての詳細を与える.その他の詳細は全ての記述においてより論理的な点まで先送りされる.大部分のヘッダー復号処理は参照復号器ファイル
9.1 Uncompressed Data Chunk
9.1 非圧縮データチャンク
The uncompressed data chunk comprises a common (for key frames and interframes) 3-byte frame tag that contains four fields, as follows:
1. A 1-bit frame type ( 0 for key frames, 1 for interframes).
2. A 3-bit version number ( 0 - 3 are defined as four different profiles with different decoding complexity; other values may be defined for future variants of the VP8 data format).
3. A 1-bit show_frame flag ( 0 when current frame is not for display, 1 when current frame is for display).
4. A 19-bit field containing the size of the first data partition in bytes.
非圧縮データチャンクは(キーフレームとインターフレームに)共通な以下の4フィールドを含む3バイトフレームタグから成る.
1. 1ビットフレーム種別(0がキーフレーム,1がインターフレーム)
2. 3ビットのバージョン数(0 - 3は異なる復号処理複雑度による4つのプロファイルとして定義されている.他の値はVP8データフォーマットの将来版のために定義されるだろう.)
3. 1ビット表示フラグ(0のとき,現在フレームは表示用ではなく,1のとき,現在フレームは表示用である.)
4. 19ビットフィールドは第一データ部分のバイト単位の大きさを含んでいる.
For key frames this is followed by a further 7 bytes of uncompressed data as follows:
キーフレームのために、さらに以下の7バイトの非圧縮データが続く。
Start code byte 0 0x9d Start code byte 1 0x01 Start code byte 2 0x2a 16 bits : (2 bits Horizontal Scale << 14) | Width (14 bits) 16 bits : (2 bits Vertical Scale << 14) | Height (14 bits)
The following source code segment illustrates validation of the start code and reading the width, height and
scale factors for a key frame.
以下のソースコード片はキーフレーム向けのスタートコードの検証と幅、高さ、スケール係数の読み込みを図示している。
unsigned char *c = pbi->Source+3; // vet via sync code if(c[0]!=0x9d||c[1]!=0x01||c[2]!=0x2a) return -1;
where swap2 macro takes care of the endian on different platform:
ここで、swap2マクロは異なるプラットフォームにおいてエンディアンに注意を払う。
#if defined(__ppc__) || defined(__ppc64__) # define swap2(d) \ ((d&0x000000ff)<<8) | \ ((d&0x0000ff00)>>8) #else # define swap2(d) d #endif
While each frame is encoded as a raster scan of 16x16 macroblocks, the frame dimensions are not necessarily evenly divisible by 16. In this case, write ew = 16 - (width & 15) and eh = 16 - (height & 15) for the excess width and height, respectively. Although they are encoded, the last ew columns and eh rows are not actually part of the image and should be discarded before final output. However, these “excess pixels” should be maintained in the internal reconstruction buffer used to predict ensuing frames.
それぞれのフレームは16x16マクロブロックのラスタスキャンとして符号化されるが、フレーム次元数は16で割り切れる必要はない。この場合、変数ew=16-(width&15)と変数eh=16-(height&15)を余分な幅と高さとしてそれぞれ書き出しておく。符号化されるにもかかわらず、最後のew列とeh行は実画像の一部ではないし、最終出力の前に破棄されるべきである。しかしながら、「余分な画素」は後続のフレームを予測するために利用する内部再構成バッファの中で確保されるべきである。
The scaling specifications for each dimension are encoded as follows.
それぞれの次元に対するスケール変換は以下のように符号化されている。
Value | Scaling | スケール処理 |
---|---|---|
0 | No upscaling (the most common case). | 拡大なし(大部分の場合) |
1 | Upscale by 5/4. | 5/4倍に拡大 |
2 | Upscale by 5/3. | 5/3倍に拡大 |
3 | Upscale by 2. | 2倍に拡大 |
Upscaling does not affect the reconstruction buffer, which should be maintained at the encoded resolution. Any reasonable method of upsampling (including any that may be supported by video hardware in the playback environment) may be used. Since scaling has no effect on decoding, we do not discuss it any further.
拡大処理は再構成バッファに影響を与えず、符号化された解像度において管理されるべきである。任意の現実的な拡大方法が利用されるだろう(再生環境においてビデオカードによってサポートされているかもしれない任意のものを含む)。拡大処理は復号処理に影響を与えないので、これ以上言及しない。
As discussed in Chapter 5, allocation (or re-allocation) of data structures (such as the reconstruction buffer) whose size depends on dimension will be triggered here.
5章で述べたように、次元数に依存したサイズを有するデータ構造の確保(または再確保)はここがきっかけとなるだろう。
9.2 Color Space and Pixel Type (Key Frames-only)
9.2 色空間と画素種別(キーフレームのみ)
Field | Value | 値 |
---|---|---|
L(1) | 1-bit color space type specification | 1ビットの色空間種別の特定 |
L(1) | 1-bit pixel value clamping specification | 1ビットの画素値飽和処理の特定 |
The color space type bit is encoded as the following:
色空間種別ビットは以下のように符号化されている。
0 - YUV color space similar to the YCrCb color space defined in ITU-R BT.601
1 - YUV color space whose digital conversion to RGB does not involve multiplication and division
0 - YUV色空間でITU-R BT.601で定義されるYCbCr色空間に近い
1 - YUV色空間でRGBへディジタル変換時に乗算と乗算を発生させない
It should be noted that in either case, the actual conversion between YUV and RGB is not part of this specification.
いずれの場合にも、YUVとRGVの間の実際の変換方法はこの仕様書の範囲外である。
Note: In the initial release of VP8 only color space type 0 is supported.
注意:VP8の初期リリースでは、色空間種別0のみがサポートされる。
The pixel value clamping type bit is encoded as the following:
画素値飽和種別ビットは以下のように符号化されている。
0 - Decoders are required to clamp the reconstructed pixel values to between 0 and 255
(inclusive).
1 - Reconstructed pixel values are guaranteed to be between 0 and 255 , no clamping is
necessary.
0 - 復号器は再構成画素値を0と255の間に飽和処理する必要がある。
1 - 再構成画素値は0と255の間になることが保証されており、飽和処理は必要ない。
Information in this subsection does not appear in interframes.
本小節における情報はインターフレームには登場しない。
9.3 Segment-based Adjustments
9.3 分割に基づく調節
This subsection contains probability and value information for implementing segment adaptive adjustments to default decoder behaviors. The data in this section is used in the decoding of the ensuing per-segment information and applies to the entire frame. When segment adaptive adjustments are enabled, each macroblock will be assigned a segment ID. Macroblocks with the same segment ID belong to same segment, and have the same adaptive adjustments over default baseline values for the frame. The adjustments can be quantization level or loop filter strength.
本節は領域適応調節における既定の復号器動作を実装するために確率値と値情報を含む。本節中のデータは一連の領域ごと情報の復号で利用され、フレーム全体に適用される。領域適応調節が有効な場合、それぞれのマクロブロックは領域IDを付与されるだろう。同一の領域IDを有するマクロブロック群は同一領域に所属し、フレームの既定ベースライン値に上書きして同一の適応調節を有する。量子化レベル、またはループフィルタの強さを調整できる。
The context for decoding this feature is provided by section B of the frame header. It contains:
1. A segmentation_enabled Flag which if 1 ( 0 ), enables (disables) the feature for this frame. The remaining fields occur if the feature is enabled.
2. L(1) indicates if the segment map is updated for the current frame ( update_mb_segmentaton_map )
3. L(1) indicates if the segment feature data items are updated for the current frame
4. If flag in 3 is 1 , the following fields occur:
1. L(1) the mode of segment feature data, can be absolute value mode or delta value mode, later mode, feature data is the difference against current frame defaults.
2. Segment feature data items are decoded segment by each segment for each segment feature. For every data item, a one bit flag indicating if the item is 0 or a non-zero value to be decoded. If there is non-zero value, the value is decoded as a magnitude L(n) followed by a one bit sign ( L(1) , 0 for positive and 1 for negative). The length n can be looked up from a predefined length table for all feature data.
5. If flag in 2 is 1 , the probabilities of the decoding tree for segment map are decoded from the bitstream. Each probability is decoded with one bit flag indicating if the probability is the default value of 255 (flag is 0 ), or the probability is an 8-bit value, L(8) , from the bitstream.
この機能のためのコンテキストはフレームヘッダのB章で提供される。以下を含んでいる。
1. segmention_enabledフラグで、もし1(0)のときはこのフレームにたいする機能が有効(無効)になる。残りのフィールドは機能が有効な場合に生じる。
2. L(1)で、分割地図が現在フレームで更新されるかどうかを示す(update_mb_segmentation_map)。
3. L(1)で、領域機能データ項目が現在フレームで更新されるかどうかを示す。
4. もし3のフラグが1ならば、以下の項目が生じる。
4.1. L(1)の領域機能データのモードは、絶対値モードか差分値モードになり、後者のモードでは、機能データは現在フレームの規定値と異なる。
4.2. 分割機能データ項目は、それぞれの領域でそれぞれの領域のために復号された領域である。すべてのデータ項目について、1ビットは復号される項目がゼロか非ゼロかを示すフラグである。もし非ゼロが存在すれば、値は大きさL(n)として復号され、さらに1ビットの符号(L(1)で、0は正、1は負)が続く。長さnはすべての機能データ用にあらかじめ定義された長さ表から見つけ出せるだろう。
5. もし2のフラグが1ならば、領域地図のための符号処理木の確率群がビットストリームから復号される。それぞれの確率は1ビットのフラグとともに復号され、確率値が255という既定値(フラグは0)であるか、確率が8ビット値L(8)であるかを示している。
The layout and semantics supporting this feature at the macroblock level will be described in Chapter 10.
マクロブロックレベルにおけるこの機能をサポートするレイアウトと意味は10章で言及されるだろう。
9.4 Loop Filter Type and Levels
9.4 ループフィルタ種類とレベル
VP8 supports two types of loop filter, having different computational complexity. The following bits occur in the header to support the selection of the baseline type, strength and sharpness behavior of the loop filter used for the current frame.
VP8は2種類のループフィルタをサポートしており、異なる計算複雑度を有している。ヘッダーの以下のビット群はベースライン種類の選択の支持が存在し、現在フレームに利用されるループフィルタの強度と先鋭さの振る舞いという種別がある。
Index | Description | 詳細 |
---|---|---|
L(1) | filter_type | フィルタ種別 |
L(6) | loop_filter_level | ループフィルタレベル |
L(3) | sharpness_level | 先鋭度レベル |
The meaning of these numbers will be further explained in Chapter 15.
これらの数値の意味は15章でより説明されるだろう。
VP8 has a feature in the bitstream that enables adjustment of the loop filter level based on a macroblock’s prediction mode and reference frame. The per-macroblock adjustment is done through delta values against default loop filter level for the current frame. This subsection contains flag and value information for implementing per-macroblock loop filter level adjustment to default decoder behaviors. The data in this section is used in the decoding of the ensuing per-macroblock information and applies to the entire frame.
VP8はビットストリーム中に、マクロブロックの予測モードと参照フレームに基づいたループフィルタレベルの調整を可能にする機能がある。現在フレームにおけるループフィルタレベルの既定値に対する差分値として、マクロブロックごとの調整がなされる。本小節は既定の復号器の振る舞いに対するマクロブロックごとのループフィルタレベル調整を実装するためのフラグと値情報を含んでいる。本節のデータは後続のマクロブロックごとの情報の復号処理で利用され、フレーム全体に適用される。
L(1) is a one-bit flag indicating if macroblock loop filter adjustment is on for the current frame. 0 means such feature is not supported in the current frame and 1 means this feature is enabled for the current frame.
L(1)は1ビットフラグで、現在フレームのためのマクロブロックループフィルタ調整がオンであるかを示している。0はこの機能が現在フレームでサポートされていないことを意味し、1はこの機能が現在フレームで有効であること意味する。
Whether the adjustment is based on reference frame or encoding mode, the adjustment of loop filter level is done via a delta value against a baseline loop filter value. The delta values are updated for the current frame if an L(1) bit, mode_ref_lf_delta_update , takes the value 1 . There are two groups of delta values, one group of delta values are for reference frame-based adjustments, the other group is for mode-based adjustments. The number of delta values in the two groups is MAX_REF_LF_DELTAS and MAX_MODE_LF_DELTAS , respectively. For every value within the two groups, there is one bit L(1) to indicate if the particular value is updated. When one is updated (1), it is transmitted as a six-bit magnitude L(6) followed by a one-bit sign flag (L(1) , 0 for positive and 1 for negative).
調整が参照フレーム、または符号化モードのどちらを基本にしようとも、ループフィルタレベルの調整はベースラインループフィルタ値に対する差分値によりなされる。もしL(1)ビット(mode_ref_If_delta_update)が1であれば、差分値は現在フレームに対して更新される。二群の差分値が存在し、一方の差分値群は参照フレームに基づく調整であり、他方の差分値群はモードに基づく調整である。二群中の差分値個数はMAX_REF_LF_DELTASとMAX_MODE_LF_DELTASである。二郡に含まれるすべての値について、1ビットL(1)が存在し、特定の値が更新されるかどうかを示す。ある値が更新されるならば(1ならば)、6ビットの大きさL(6)とそれにつづく1ビットの符号フラグL(1)(0なら正で1なら負)が伝送される。
9.5 Token Partition and Partition Data Offsets
9.5 トークン区分と区分データオフセット
VP8 allows DCT coefficients to be packed into multiple partitions besides the first partition with header and per-macroblock prediction information, so the decoder can perform parallel decoding in an efficient manner. There are two bits L(2) used to indicate the number of coefficient data partitions within a compressed frame. The two bits are defined in the following table:
VP8はDCT係数を、ヘッダーとマクロブロック単位の予測情報と一緒の第一区分に加えて、複数の区分群へまとめることが許されており、復号器は効果的な方法で並列復号処理が可能である。2ビットL(2)が存在し、これが圧縮フレームに含まれる係数データ区分の個数を示している。2ビットは以下の表で定義されている。
Bit 1 | Bit 0 | Number of Partitions 区分の個数 |
---|---|---|
0 | 0 | 1 |
0 | 1 | 2 |
1 | 0 | 4 |
1 | 1 | 8 |
When the number of partitions is greater than one, offsets are embedded in the bitstream to provide the decoder direct access to token partitions. Each offset is written in 3 bytes (24 bits). Since the offset to the first partition is always 0, only the offsets for partitions other than the first partition are encoded in the bitstream. The partitioned data are consecutive in the bitstream, so offsets can also be used to calculate the data size of each partition. The following pseudo code illustrates how the size/offset is defined by the three bytes in the bitstream.
区分の個数が1より大きい時、ビットストリームにオフセットが埋め込まれており、復号器にトークン区分へのダイレクトアクセスを用意している。それぞれのオフセットは3バイト(24ビット)で書き込まれている。第一区分は常に0であるため、第一区分以外の区分にのみオフセットがビットストリームに符号化されている。区分データはビットストリームに連続して存在し、したがってオフセットはそれぞれの区分のデータサイズを計算するためにも利用できる。以下の擬似コードはサイズとオフセットがビットストリーム中の3バイトで定義される方法を示している。
Offset/size = (uint32)(byte0) + ((uint32)(byte1)<<8) + ((uint32)(byte2)<<16);
9.6 Dequantization Indices
9.6 逆量子化指標群
All residue signals are specified via a quantized 4x4 DCT applied to the Y, U, V, or Y2 subblocks of a macroblock. As detailed in Chapter 14, before inverting the transform, each decoded coefficient is multiplied by one of six dequantization factors, the choice of which depends on the plane (Y, chroma = U or V, Y2) and coefficient position (DC = coefficient 0, AC = coefficients 1-15). The six values are specified using 7-bit indices into six corresponding fixed tables (the tables are given in Chapter 14).
すべての残差信号は量子化4x4DCTをマクロブロックのY, U, VまたはY2サブブロックへの適用してから規程される。14章で詳述するように、逆変換の前に、復号されたそれぞれの係数は6種類の逆量子化係数のうちひとつが乗算され、その選択はプレーン(Y、色差がU、V、またはY2)と係数位置(DCは係数位置0で、ACは係数位置1〜15)に依存する。六つの値は7ビット指標を用いて六つの対応する固定表によって規定される(その表は14章で与えられる)。
The first 7-bit index gives the dequantization table index for Y plane AC coefficients, called yac_qi. It is always coded and acts as a baseline for the other 5 quantization indices, each of which is represented by a delta from this baseline index. Following is pseudo code for reading the indices:
最初の7ビット指標はYプレーンのAC係数のための逆量子化表指標を与え、yac_giと呼ばれる。常に符号化され、他五つの量子化指標のベースラインとしての役割があり、それぞれはベースライン指標からの差分として表現される。以下は指標を読み込むための擬似コードである。
yac_qi = L(7); /* Y ac index always specified */ ydc_delta = F? delta(): 0; /* Y dc delta specified if flag is true */ y2dc_delta = F? delta(): 0; /* Y2 dc delta specified if flag is true */ y2ac_delta = F? delta(): 0; /* Y2 ac delta specified if flag is true */ uvdc_delta = F? delta(): 0; /* chroma dc delta specified if flag is true */ uvac_delta = F? delta(): 0; /* chroma ac delta specified if flag is true */
Where delta() is the process to read 5 bits from the bitstream to determine a signed delta value:
delta()はビットストリームから符号付き差分値を決定するために5ビットを読み込む処理である。
Index | Description | 詳細 |
---|---|---|
L(4) | Magnitude of delta | 差分の大きさ |
L(1) | Sign of delta, 0 for positive and 1 for negative | 差分の符号、0は正で1は負 |
9.7 Refresh Golden Frame and AltRef Frame
9.7 ゴールデンフレームと代替参照フレームの回復
For key frames, both golden frame and altref frame are refreshed/replaced by the current reconstructed frame, by default. For non-key frames, VP8 uses two bits to indicate whether the two frame buffers are refreshed, using the reconstructed current frame:
キーフレームのために、ゴールデンフレームと代替参照フレームの両方が、既定では、現在再構成フレームで回復/置換される。非キーフレームのために、VP8は2ビットを、二つのフレームバッファが再構成された現在フレームによって回復されるかどうかを示すために利用する。
Index | Description | 詳細 |
---|---|---|
L(1) | Whether golden frame is refreshed ( 0 complete. This flag does not occur for no, 1 for yes). | ゴールデンフレームが回復する(0は完全にする。このフラグはnoのために発生せず、1はyesのためである)。 |
L(1) | Whether altref frame is refreshed ( 0 for no, 1 for yes). | 代替参照フレームが回復する(0はnoのため、1はyesのため)。 |
When the flag for golden frame is 0 , VP8 uses 2 more bits in the bitstream to indicate whether the buffer
(and which buffer) is copied to the golden frame, or if no buffer is copied:
ゴールデンフレームのフラグが0の時、バッファーが(さらにどのバッファーか)ゴールデンフレームにコピーされるかコピーされないかを示すためにVP8はビットストリーム中のさらに2ビットを利用する。
Index | Description | 詳細 |
---|---|---|
L(2) | Buffer copy flag for golden frame buffer | ゴールデンフレームバッファのためのバッファーコピーフラグ |
Where:
0 means no buffer is copied to golden frame
1 means last_frame is copied to golden frame
2 means alt_ref_frame is copied to golden frame
ここで、
0はバッファはゴールデンフレームにコピーされないことを意味する。
1はlast_frameがゴールデンフレームにコピーされることを意味する。
2はalt_ref_frameがゴールデンフレームにコピーされることを意味する。
Similarly, when the flag for altref is 0 , VP8 uses 2 bits in the bitstream to indicate which buffer is copied to alt_ref_frame .
同様に、代替参照のフラグが0の時、どのバッファが代替参照フレームへコピーされるかを示すためにVP8はビットストリーム中のさらに2ビットを利用する。
Index | Description | 詳細 |
---|---|---|
L(2) | Buffer copy flag for altref frame buffer | 代替参照フレームのためのバッファーコピーフラグ |
Where:
0 means no buffer is copied to altref frame
1 means last_frame is copied to altref frame
2 means golden_frame is copied to altref frame
ここで、
0はバッファは代替参照フレームにコピーされないことを意味する。
1はlast_frameが代替参照フレームにコピーされることを意味する。
2はgolden_frameが代替参照フレームにコピーされることを意味する。
Two bits are transmitted for ref_frame_sign_bias for golden_frame and alt_ref_frame respectively.
ゴールデンフレームと代替参照フレームのそれぞれのためにref_fram_sign_biasに向けて2ビットが伝送される。
Index | Description | 詳細 |
---|---|---|
L(1) | Sign bias flag for golden frame | ゴールデンフレームのための符号傾向フラグ |
L(1) | Sign bias flag for altref frame | 代替参照フレームのための符号傾向フラグ |
These values are used to control the sign of the motion vectors when a golden frame or an altref frame is
used as the reference frame for a macroblock.
ゴールデンフレーム、または代替参照フレームがマクロブロックのための参照フレームとして利用される時に、これらの値は動きベクトルの符号を制御するために利用される
9.8 Refresh Last Frame Buffer
9.8 最終フレームバッファの回復
VP8 uses one bit, L(1) , to indicate if the last frame reference buffer is refreshed using the constructed current frame. On key frame this bit is overridden, and the last frame buffer is always refreshed.
VP8は1ビットL(1)を、最終フレーム参照バッファを再構成した現在フレームによって回復するかどうかを示すために利用する。キーフレームにおいてこのビットは破棄され、最終フレームバッファは常に回復される。
9.9 DCT Coefficient Probability Update
9.9 DCT係数確率の更新
Contains a partial update of the probability tables used to decode DCT coefficients. These tables are maintained across interframes but are of course replaced with their defaults at the beginning of every key frame.
復号されたDCT係数を用いて確率表の部分的な更新を含めなさい。これらの表はインターフレームを横断して管理されるが、もちろんすべてのキーフレームの冒頭において既定値によって置換される。
The layout and semantics of this field will be taken up in Chapter 13.
このフィールドのレイアウトと意味は13章で取り上げられるだろう。
9.10 Remaining Frame Header Data (non-Key Frame)
9.10 残りのフレームヘッダデータ(非キーフレーム)
Index | Description | 詳細 |
---|---|---|
L(1) | mb_no_coeff_skip . This flag indicates at the frame level if skipping of macroblocks with no non-zero coefficients is enabled. If it is set to 0 then prob_skip_false is not read and mb_skip_coeff is forced to 0 for all macroblocks (see Sections 11.1 and 12.1). | mb_no_coeff_skip このフラグはフレームレベルで非ゼロ係数のないマクロブロックのスキップが有効かどうかを示す。もしフラグが0であれば、prob_skip_falseは読み込まれず、すべてのマクロブロックのmb_skip_coeffは強制的に0になる(11.1章と12.1章を見よ)。 |
L(8) | prob_skip_false = probability used for decoding a macroblock level flag, which indicates if a macroblock has any non-zero coefficients. Only read if mb_no_coeff_skip is 1 . | prob_skip_falseはマクロブロックレベルのフラグを復号するため確率値で、これはマクロブロックが任意の非ゼロ計数を持っているかどうかを示す。mb_no_coeff_skipが1のときのみ読み込まれる。 |
L(8) | prob_intra = probability that a macroblock is “intra” predicted, that is, predicted from the already-encoded portions of the current frame as opposed to “inter” predicted, that is, predicted from the contents of a prior frame. | prob_intraはマクロブロックがイントラ予測されている確率で、言い換えると、インター予測の対比として現在フレームのすでに復号された部分から予測されるということで、さらに言い換えると、事前フレームの内容から予測されるということである。 |
L(8) | prob_last = probability that an inter-predicted macroblock is predicted from the immediately previous frame, as opposed to the most recent golden frame or altref frame. | prob_lastはインター予測マクロブロックが直前フレームから予測される確率で、いちばん最近のゴールデンフレームか代替参照フレームとは反対になる。 |
L(8) | prob_gf = probability that an inter-predicted macroblock is predicted from the most recent golden frame, as opposed to the altref frame. | prob_gfはインター予測マクロブロックが一番最近のゴールデンフレームから予測される確率で、代替参照フレームからとは反対になる。 |
F | If true, followed by four L(8) s updating the probabilities for the different types of intraprediction for the Y plane. These probabilities correspond to the four interior nodes of the decoding tree for intra Y modes in an interframe, that is, the even positions in the ymode_tree array given above. | 真であれば、4つのL(8)が続いて、Yプレーンのための異なる種類のインター予測のための確率が更新される。インターフレーム内のイントラYモードのための復号された木の4つの内部ノードにこれらの確率が対応する。すなわち、上記で与えられるymode_treeの配列中の偶数位置である。 |
F | If true, followed by three L(8) s updating the probabilities for the different types of intraprediction for the chroma planes. These probabilities correspond to the even positions in the uv_mode_tree array given above. | 真ならば、三つのL(8)が続いて、色差プレーンのための異なる種類のイントラ予測のための確率が更新される。上記で与えられるuv_mode_tree配列中の偶数位置にこれらの確率が対応する。 |
X | Motion vector probability update. The details will be given after the discussion of motion vector decoding. | 動きベクトル確率の更新。詳細は動きベクトル復号処理のあとで議論されるだろう。 |
Decoding of this portion (only) of the frame header is handled in the reference decoder file decodemv.c .
フレームヘッダのこの部分のみの復号処理は参照復号器ファイルdecodemv.cで取り扱われている。
9.11 Remaining Frame Header Data (Key Frame)
9.11 残りのフレームヘッダデータ(キーフレーム)
Index | Description | 詳細 |
---|---|---|
L(1) | mb_no_coeff_skip . This flag indicates at the frame level if skipping of macroblocks with no non-zero coefficients is enabled. If it is set to 0 then prob_skip_false is not read and mb_skip_coeff is forced to 0 for all macroblocks (see Sections 11.1 and 12.1). | mb_no_coeff_skip このフラグはフレームレベルにおいて非ゼロ係数を持たないマクロブロックを飛ばすかどうかを示す。もし0であれば、prob_skip_falseは読み込まれず、mb_skip_coeffはすべてのマクロブロックについて強制的に0になる(11.1章と12.1章を見よ)。 |
L(8) | prob_skip_false = Probability used for decoding a macroblock level flag, which indicates if a macroblock has any non-zero coefficients. Only read if mb_no_coeff_skip is 1. | prob_skip_falseはマクロブロックレベルフラグの復号のために利用される確率で、マクロブロックが任意の非ゼロ係数をもっているかどうかを示す。mb_no_coeff_skipが1のときにのみ読み込まれる。 |
Decoding of this portion of the frame header is handled in the reference decoder file demode.c .
フレームヘッダのこの部分の復号処理は参照復号器ファイルdemode.cで取り扱われている。
This completes the layout of the frame header. The remainder of the first data partition consists of macroblock-level prediction data.
これがフレームヘッダのレイアウトを完璧にする。第一データ区分の残りはマクロブロックレベルの予測データから成り立っている。
After the frame header is processed, all probabilities needed to decode the prediction and residue data are known and will not change until the next frame.
フレームヘッダが処理されると、予測と残差データの復号に必要なすべての確率値は既知であり、次のフレームが来るまで変更されることはないだろう。