GB/T 25724-2017 PDF in English
GB/T 25724-2017 (GB/T25724-2017, GBT 25724-2017, GBT25724-2017)
Standard ID | Contents [version] | USD | STEP2 | [PDF] delivered in | Name of Chinese Standard | Status |
GB/T 25724-2017 | English | 1205 |
Add to Cart
|
0-9 seconds. Auto-delivery.
|
Technical specifications for surveillance video and audio coding
| Valid |
GB/T 25724-2010 | English | RFQ |
ASK
|
15 days
|
Technical specification of surveillance video and audio coding
| Obsolete |
Standards related to (historical): GB/T 25724-2017
PDF Preview
GB/T 25724-2017: PDF in English (GBT 25724-2017) GB/T 25724-2017
GB
NATIONAL STANDARD OF THE
PEOPLE’S REPUBLIC OF CHINA
ICS 13.310
A 91
Replacing GB/T 25724-2010
Technical specifications for
surveillance video and audio coding
ISSUED ON: MARCH 9, 2017
IMPLEMENTED ON: JUNE 1, 2017
Issued by: General Administration of Quality Supervision, Inspection and
Quarantine of the People’s Republic of China;
Standardization Administration of the People’s Republic of
China.
Table of Contents
Foreword ... 4
Introduction ... 6
1 Scope ... 10
2 Normative reference ... 10
3 Terms, definitions and abbreviations ... 10
3.1 Terms and definitions ... 10
3.2 Abbreviations ... 24
4 Agreement ... 27
4.1 Arithmetic operators ... 27
4.2 Logical operators ... 27
4.3 Relational operators ... 28
4.4 Bit operators ... 28
4.5 Assignment operators ... 29
4.6 Mathematical functions ... 29
4.7 Syntax elements, variables and tables ... 30
4.8 Text description of logical operators ... 31
4.9 Process ... 33
5 Video section ... 33
5.1 Coded bitstream and output data format ... 33
5.2 Syntaxes and semantics ... 39
5.3 Decoding process ... 94
5.4 Parsing process ... 166
6 Audio part ... 265
6.1 General description ... 265
6.2 Encoder function description ... 270
6.2.1 Pre-processing ... 270
6.3 Decoder function description ... 347
6.4 Bit allocation description ... 359
6.5 Storage, transmission interface format... 362
Appendix A (Normative) Hypothetical reference decoder (HRD) ... 370
Appendix B (Normative) Byte stream format ... 374
Appendix C (Normative) Video profile and level ... 377
Appendix D (Normative) Video usability information (VUI) ... 381
Appendix E (Normative) Supplemental enhancement information (SEI) ... 385
Appendix F (Normative) Intelligent analysis data description ... 391
Appendix G (Normative) Audio profile and level ... 412
Appendix H (Normative) Exception sound event type definition ... 414
Appendix I (Informative) VAD detection ... 415
Appendix J (Informative) Noise elimination ... 421
References ... 435
Technical specifications for
surveillance video and audio coding
1 Scope
This Standard specifies the decoding process of digital video and audio compression
coding for public security video surveillance.
This Standard applies to the audio and video real-time compression, transmission,
playback and storage services of the field of public security; other fields that need
audio and video coding may also refer to this Standard.
2 Normative reference
The following document is indispensable for the application of this document. For
dated references, the only dated edition applies to this document. For undated
references, the latest edition (including all modifications) applies to this document.
rfc 3548 The Base 16, Base 32, and Base 64 Data Encodings
3 Terms, definitions and abbreviations
3.1 Terms and definitions
For the purpose of this document, the following terms and definitions apply.
3.1.1
NAL unit
A syntax structure that contains the instruction type and the number of bytes contained
in the subsequent data. The data appears in RBSP form and, if necessary, contains
the scattered emulation prevention bytes.
3.1.2
NAL unit stream
A sequence of NAL units.
3.1.3
4.9 Process
The process is used to describe the decoding of the syntax elements. All the syntax
elements and uppercase variables that belong to the current syntax structure, as well
as the associated syntax structures, are available in both the specification and the call
of the process. The specification of the process may also contain lowercase variables
that are explicitly specified as input. Each specification explicitly specifies the output.
The output can be uppercase variables or lowercase variables.
In the specification of the process, a particular macroblock can be represented by a
variable name whose value is equal to its macroblock index.
5 Video section
5.1 Coded bitstream and output data format
5.1.1 Bitstream format
This clause specifies the relationship between the NAL unit stream and the byte stream,
both of which are referred to as bitstreams.
The NAL unit stream format consists of a series of syntax structures called NAL units,
arranged by decoding order. The decoding order and contents of the NAL units in the
NAL unit stream are constrained.
The byte stream can be constructed by the NAL unit stream, by arranging the NAL
units in the decoding order, and adding a start code prefix and a number of zero bytes
to each NAL unit to form a byte stream. The NAL unit stream format can be extracted
from the byte stream format by searching a unique start code prefix in the byte stream.
Except for the byte stream format, other methods of constructing the NAL unit are not
specified in this Standard. The byte stream format is specified in Annex B.
5.1.2 Picture format
This clause specifies the relationship between the source determined by the bitstream
and the decoded frame.
The video stream represented by the bitstream is a series of frames arranged in
decoding order.
Each source or decoded frame is composed of one or more video sample point arrays:
- array of only luma (Y) (monochrome);
- array of luma and two chroma (YCbCr);
The following functions are used for the syntax description. These functions assume
that there is a bitstream pointer in the decoder that points to the next bit position in the
bitstream where the decoding process is to be read. Specific requirements are as
follows:
Specification for byte_aligned ():
- If the current position of the bitstream is at the boundary of the byte, that is, the
next bit in the bitstream is the first bit of the byte, then the return value of
byte_aligned () is TRUE;
- otherwise, the return value of byte_aligned () is FALSE.
Specification for get_left_ae_bits ():
- The value of the counter count in the entropy decoder plus 8 and then perform the
modulo operation on 8, if it is equal to 0, continue to parse through the fixed
probability of 128;
- if it is not equal to 0, then continue to parse through the fixed probability of 128 to
obtain the value after modulo operation and plus 8 bits.
Specification for more_data_in_byte_stream (), which is used in the byte stream NAL
unit syntax specified in Annex B:
- If there is more data in the byte stream, the return value of
more_data_in_byte_stream () is TRUE;
- otherwise, the return value of more_data_in_byte_stream () is FALSE.
Specification for more_rbsp_data ():
- If there is more data in RBSP before rbsp_trailing_bits (), the return value of
more_rbsp_data () is TRUE;
- otherwise, the return value of more_rbsp_data () is FALSE.
The method of determining whether there is more data in RBSP is not specified in this
Standard.
next_bits (n) provides the next n bits in the bitstream without changing the bitstream
pointer. This function makes the next n bits in the bitstream visible. When it is used in
the byte stream specified in Annex B, the return value of next_bits (n) is 0 if the
remaining byte stream has less than n bits.
Read_bits (n) reads the following n bits from the bitstream, and moves the bitstream
pointer forward by n bits. When n is equal to 0, the return value of read_bits (n) is 0
may also contain some emulation_prevention_three_byte. NumBytesInNALunit is
required for decoding the NAL unit. In order to be able to export NumBytesInNALunit,
the boundary of the NAL unit needs to be divided. Annex B specifies a method for
dividing the byte stream type. Other partition methods may be given outside this
Standard.
forbidden_zero_bit indicates the version of the SVAC standard that the video stream
supports. forbidden_zero_bit shall be equal to 1.
forbidden_zero_bit equal to 0 indicates that the video stream supports GB/T 25724-
2010 standard.
When nal_ref_idc is not equal to 0, the contents of the NAL unit contain a sequence
parameter set, or a picture parameter set, or a security parameter set, or tiles of a
reference picture. When the nal_ref_idc of a tile NAL unit of a coded picture is equal
to 0, the nal_ref_idc of all the tile NAL units of the coded picture shall be equal to 0.
nal_unit_type indicates the type of RBSP data structure in the NAL unit, see Table 30.
The VCL NAL unit refers to those NAL units with the value of nal_unit_type equal to 1,
2, 3 or 4. All other NAL units are called non-VCL NAL units.
NOTE 1: The VCL specification is for effectively representing the contents of the video data.
The NAL specification is for formatting the data and providing header information for storage or
transmission over a variety of communication channels. Each NAL unit contains integer bytes.
The NAL unit specifies a general format that applies to both packet-oriented and bitstream
systems.
Without affecting the decoding process of NAL units with nal_unit_type not equal to 5
and without affecting the consistency of this Standard, NAL units with nal_unit_type
equal to 5 can be discarded by the decoder.
NOTE 2: This Standard does not specify the decoding process of NAL units with the value
nal_unit_type is reserved. The decoder can ignore (removed from the bitstream and discarded)
all contents of NAL unit with the value nal_unit_type is reserved.
When the value of nal_unit_type of a tile NAL unit is equal to 2, the value of
nal_unit_type of all other tile NAL units encoding the same picture shall be the same,
and the value of nal_unit_type of all the tile NAL units of the corresponding SVC
enhance layer coded picture shall be equal to 4. Such a picture is called an IDR picture.
The NAL unit type is as shown in Table 30.
Parameters included in a sequence parameter set RBSP can be used by one or more
pictures or SEI NAL units containing buffer cycle SEI messages. Each sequence
parameter set RBSP takes effect at the same time as it is received by the decoder,
and the previously valid sequence parameter set RBSP (if any) will be fail. Not more
than one sequence parameter set RBSP is valid at the specified time in the decoding
process.
When a sequence parameter set RBSP is used by the SEI NAL unit containing a buffer
cycle SEI message, the SEI NAL unit shall be located after the sequence parameter
set RBSP.
Parameters included in the picture parameter set RBSP can be used by the coding tile
NAL unit of a coded picture. Each picture parameter set RBSP takes effect at the same
time as it is received by the decoder, and the previously valid sequence parameter set
RBSP (if any) will be fail. For a layer picture of SVC, not more than one picture
parameter set RBSP is valid at the specified time in the decoding process.
The specification for the relationship between the syntax element values and the other
syntax elements in the sequence parameter sets and the picture parameter set is only
for the valid sequence parameter set and the valid picture parameter set.
During the decoding process, the parameter values of the valid picture parameter set
and the valid sequence parameter set shall remain valid.
5.2.4.3.2.2 Taking effect of security parameter set RBSP
Parameters included in the security parameter set RBSP can be used by one or more
other types of NAL units. At the beginning of the decoding process, each security
parameter set RBSP takes effect at the same time as it is received by the decoder,
and the previously valid sequence parameter set RBSP (if any) will be fail. When
ldp_mode_flag of the sequence parameter set is equal to 1, the security parameter set
shall only appear before the IDR picture. Not more than one security parameter set
RBSP is valid at the specified time in the decoding process.
NOTE: In some applications, the security parameter set can also be passed to the decoder via
other reliable mechanisms.
5.2.4.3.2.3 Order of VCL NAL unit and its relationship with encoded pictures
Each VCL NAL unit is part of a coded picture.
The order of the VCL NAL units in a coded picture is defined as follows:
- the tile order of a picture shall be in ascending order of the first CTU index of the
tile;
lf_mode_delta_enable [i] indicates that the mode related loop filter parameter
difference update is enabled, equal to 0 indicates that the mode related loop filter
parameter difference update is closed, equal to 1 indicates that the mode related loop
filter parameter difference update is opened.
lf_mode_deltas [i] indicates the mode related loop filter parameter difference.
lf_mode_deltas_sign [i] indicates the sign of the mode related loop filter parameter
difference.
mode_deltas [i] = lf_mode_deltas [i] × lf_mode_deltas_sign [i]
picture_sao_enable [i] indicates whether the sample adaptive offset of the luma and
chroma components is opened. picture_sao_enable [i] equal to 0 indicates that it does
not open, equal to 1 indicates open, where i equal to 0 indicates the luma component;
i equal to 1 or 2 indicates the chroma component.
picture_alf_enable [i] is the permission sign of picture adaptive loop filter, indicating
whether the adaptive loop filter of the luma and chroma components of the current
picture is opened. picture_alf_enable [i] equal to 0 indicates that the ith component of
the current picture shall not use adaptive loop filter; equal to 1 indicates that the ith
component of the current ipicture uses adaptive loop filter, where i equal to 0 indicates
the luma component; i equal to 1 or 2 indicates the chroma component.
The value of alf_filter_num_minus1 plus 1 indicates the number of current picture’s
luma component adaptive loop filter.
The value of alf_filter_num_minus1 shall be 0 to 15.
alf_region_distance [i] indicates the difference between the base unit start sign of
luma component’s ith adaptive loop filter region and the base unit start sign of luma
component’s i-1th adaptive loop filter region. The value of alf_region_distance [i] shall
be 1 to 15.
If alf_region_distance [i] is not exist in the bitstream, when i is equal to 0, the value of
alf_region_distance [i] is 0. when i is not equal to 0 and the value of
alf_filter_num_minus1 is 15, the value of alf_region_distance [i] is 1. The bitstream
shall satisfy that the sum of alf_region_distance [i] (i = 0 ~ alf_filter_num_minus1) is
less than or equal to 15.
alf_coeff_luma [i] [j] indicates the jth coefficient of the luma component of the ith
adaptive loop filter. The value range of alf_coeff_luma [i] [j] (j = 0 ~ 8) obtained from
decoding in the bitstream shall be -64 to 63, and the value range of alf_coeff_luma [i]
[9] shall be -1088 ~ 1071.
alf_coeff_chroma [0] [j] indicates the coefficient of the jth adaptive loop filter of the
sao_merge_flag equal to 0 indicates that the parameter is not merged; equal to 1
indicates that the parameter is merged, and the SAO parameter is the same as the
SAO parameter of the CTU adjacent to its left or adjacent to its upper.
sao_merge_type equal to 1 indicates that the SAO parameter of the current CTU uses
the SAO parameter of the adjacent CTU on the left; equal to 0 indicates that the SAO
parameter of the current CTU uses the SAO parameter of the upper adjacent CTU on
the upper side.
sao_mode [compIdx] equal to 0 indicates that the SAO mode of the compIdxth
component in the current CTU is SAO_OFF; equal to 1 indicates that the SAO mode
of the compIdxth component in the current CTU is determined by sao_type [compIdx].
sao_type [compIdx] equal to 0 indicates that the SAO mode of the compIdxth
component in the current CTU is SAO_BO; equal to 1 indicates that the SAO mode of
the compIdxth component in the current CTU is SAO_EO.
sao_start_band [compIdx] indicates the start compensation interval of the compIdxth
component in the current CTU in SAO_BO mode, and the value shall be 0 ~ 31.
sao_offset_sign [compIdx] [j] indicates the sign of sao_offset [compIdx] [j] in
SAO_BO mode. sao_offset_sign [compIdx] [j] equal to 0 indicates that the value of
corresponding sao_offset [compIdx] [j] is positive, equal to 1 indicateds that the value
of corresponding sao_offset [compIdx] [j] is negative.
sao_offset_abs [compIdx] [j] indicates the absolute value of the compensation value
sao_offset [compIdx] [j] in SAO_BO mode, the value shall be 0 ~ (1 < < (Min
(bit_depth, 10) - 5)) - 1.
sao_edge_type [compIdx] indicates the angular direction of the compIdxth
component in the current CTU in SAO_EO mode. sao_edge_type [compIdx] equal to
0 indicates EO_0°; equal to 1 indicates EO_90°; equal to 2 indicates EO_135°; equal
to 3 indicates EO_45°.
sao_edge_offset [compIdx] [j] indicates the corresponding compensation value in
SAO_EO mode.
alf_ctu_enable [compIdx] equal to 0 indicates that the compIdxth component of the
current CTU does not perform adaptive loop filter. alf_ctu_enable [compIdx] equal to 1
indicates that the compIdxth component of the current CTU performs adaptive loop filter.
5.2.4.4.6 Authentication data RBSP semantics
frame_num indicates that the picture of authentication data shall be included; the
picture is the same picture as the authentication data frame_num which is closest
before the authentication data NAL unit. When frame_num is equal to 0, frame_num
inter_block indicates whether the current block is an inter coded block.
skip_flag indicates whether the current block is skipped.
coeff_value indicates the value of the block coefficients.
coeff_sign indicates the sign of the block coefficients.
tx_size indicates the size of the transform matrix used by the current block. tx_size
equal to 0 indicates that the transform matrix is TX_4 × 4; equal to 1 indicates that the
transform matrix is TX_8 × 8; equal to 2 indicates that the transform matrix is TX_16 ×
16; equal to 3 indicates that the transform matrix is TX_32 × 32.
prev_intra_luma_pred_flag indicates whether the luma intra prediction mode is in the
intra prediction mode prediction list and the prediction list contains 5 most likely
prediction modes.
mpm_idx0 equal to 0 indicates that the current luma prediction mode is the first mode
in the prediction list; equal to 1 indicates that the current luma prediction mode is not
the first mode in the prediction list.
mpm_idx1, when mpm_idx0 is 1, mpm_idx1 + 1 indicates the position where the
current prediction mode is in the prediction list. The value of mpm_idx1 shall be 0 ~ 3.
rem_pred_intra_mode indicates the index in the remaining 32 prediction modes
except for the 5 prediction modes in the prediction list in the current luma prediction
mode. The value of rem_pred_intra_mode shall be 0 ~ 31.
uv_fllow_y_flag equal to 1 indicates that the chroma intra prediction mode is
consistent with the luma intra prediction mode of its corresponding position, and
uv_fllow_y_flag equal to 0 indicates that the chroma intra prediction mode does not
coincide with the luma intra prediction mode of its corresponding position.
chroma_intra_mode indicates the chroma intra prediction mode index.
block_reference_mode indicates the reference frame mode of the current block, the
value is SINGLE_REFERENCE or COM-POUND_REFERENCE. If
block_reference_mode does not exist in the code stream, the value of
block_reference_mode is equal to frame_reference_mode. If block_reference_mode
is equal to COMPOUND_REFERENCE, is_compound is equal to 1, otherwise
is_compound is equal to 0.
ref_frame indicates the current prediction block reference frame index. When
block_reference_mode is equal to SINGLE_REFERENCE, ref_frame has five possible
values, namely DYNAMIC_REF, STATIC_REF, OPTIONAL_REF, DY-NAMIC_REF_1
and DYNAMIC_REF_2. When block_reference_mode is equal to
OSD extension information with two or more sub_type of the same value shall not
appear in one NAL unit.
NOTE: The last extension information is valid when OSD extension information with more than
one sub_type of the same value appears in the same NAL unit.
code_type is an 8-bit unsigned integer, representing the encoding type of the OSD
character. The value of code_type equal to 0 indicates encoding with UTF-8.
align_type is an 8-bit unsigned integer, representing the alignment type of the OSD
character. The value of align_type equal to 0 indicates left alignment; equal to 1
indicates right alignment.
char_size is an 8-bit unsigned integer, representing the OSD character size,
expressed in sample units.
char_type is an 8-bit unsigned integer, representing the OSD character type.
char_type equal to 0 indicates white background with black edges; equal to 1 indicates
black background with white edges; equal to 2 indicates white; equal to 3 indicates
black; equal to 4 indicates automatic anti-color.
top_low8 and top_high8 form a 16-bit unsigned integer top, representing the position
of the upper border of the OSD character information in the picture, expressed in
sample points. The value of top is calculated as follows:
top = (top_high8 < < 8) + top_low8
left_low8 and top_high8 form a 16-bit unsigned integer left, representing the position
of the left border of the OSD character information in the picture, expressed in sample
points. The value of left is calculated as follows:
left = (left_high8 < < 8) + left_low8
len is an 8-bit unsigned integer that indicates the length of the byte occupied by
osd_data, which shall be 0 ~ 243.
res is an 8-bit unsigned integer, and the value shall be between 0 ~ 255.
osd_data is OSD character data. Where '\n' is defined as the row break and '\0' is the
end character. The length of osd_data is len bytes.
5.2.4.7.5 Geographic information extension semantics
extension_id is an 8-bit unsigned integer, and the extension_id of the geographic
information extension shall be equal to 0x10.
longitude_type equal to 0 indicates east longitude; equal to 1 indicates west longitude.
syntax structure encapsulated in the NAL unit. This process is extracting the RBSP
syntax structure from the NAL unit. If encryption_idc is equal to 1, when extracting the
RBSP syntax structure from the NAL unit, it needs to decrypt the encrypted RBSP to
obtain an unencrypted RBSP. The decryption process is not specified in this Standard.
The RBSP syntax structure in the NAL unit is decoded in the following manner:
- The decoding process of NAL units when the value of nal_unit_type is 1, 2, 3 and
4, see 5.3.3;
- The intra prediction process of NAL units when the value of nal_unit_type is 1 and
2, see 5.3.4;
- The inter prediction process of NAL units when the value of nal_unit_type is 1, see
5.3.5;
- The decoding process and the picture reconstruction process for the coding tree
unit in the NAL unit transforms the coefficient before the deblocking filter when the
value of nal_unit_type is 1 and 2, see 5.3.6;
- The deblocking filter process of the reconstructed picture of the NAL unit when the
value of nal_unit_type is 1, 2, 3 and 4, see 5.3.7;
- The offset compensation process of sample points of the reconstructed picture of
the NAL unit when the value of nal_unit_type is 1, 2, 3 and 4, see 5.3.8;
- The filter compensation process of sample points of the reconstructed picture of
the NAL unit when the value of nal_unit_type is 1, 2, 3 and 4, see 5.3.9;
- The decoding process of the coding tree unit in the NAL unit before the deblocking
filter when the value of nal_unit_type is 3 and 4, see 5.3.10;
- When the value of nal_unit_type is 7, 8 and 9, the RBSP in the NAL unit is the
sequence parameter set, the picture parameter set and the security parameter set,
respectively. Effective sequence parameter set, picture parameter set and security
parameter set are used in the decoding process of other NAL units;
- The decoding process of the NAL unit when the value of nal_unit_type is 13, see
Clause 6;
- The decoding process of the NAL unit when the value of nal_unit_type is 0, 12, 14
and 15 is not specified in this Standard.
5.3.3 Decoding process of pictures
5.3.3.1 Classification and correspondence of pictures
For intra prediction, the prediction block size is bound to the transform block size;
because there is only N × N transform, the prediction block size is also N × N. See
5.1.3.3 for adjacent block availability.
5.3.4.4 Acquisition of luma reference sample points
For N × N luma blocks, the reference sample point in the upper corner of the current
block is marked as r [i], and the reference sample point in the left corner of the current
block is marked as c [j], where r [0] = c [0].
Use I to represent the luma sample value matrix of the picture where the current block
is after compensation (that is, before filter).
Let the coordinate of the sample point in the upper left corner of the current block in
the picture be (x0, y0), and the reference sample is obtained by the following rules:
a) Initialize r [i], c [j] is 2bitdepth-1, i = 0 ~ 2N, j = 0 ~ 2N;
b) If the upper block is available, then r [i] = i [x0 + i - 1, y0 - 1], i = 1 ~ N, r [i] is
available; otherwise r [i] is not available;
c) If the upper right block is available, then r [i] = i [x0 + i - 1, y0 - 1], I = N + 1 ~ 2N,
r [i] is available; otherwise r [i] is equal to r [N], whether r [i] is available depends
on whether r [N] is available;
d) If the left block is available, then c [j] = I [x0 - 1, y0 + j - 1], j = 1 ~ N, c [j] is available;
otherwise c [j] is not available;
e) If the lower left block is available, then c [j] = I [x0 - 1, y0 + j - 1], j = N + 1 ~ 2N, c
[j] is available; otherwise c [j] is equal to c [N], whether c [j] is available depends
on whether c [N] is available;
f) If the sample point (x0 - 1, y0 - 1) is available, then r [0] = I [x0 - 1, y0 - 1], r [0] is
available, otherwise r [0] is not available.
5.3.4.5 Acquisition of chroma reference sample positions
The acquisition method of chroma reference sample points is the same with that of
luma reference sample points, except that the luma block becomes the corresponding
chroma block.
5.3.4.6 Calculation of prediction sample positions
The prediction sample point matrix predMatrix of the luma blocks and chroma blocks
in each intra prediction mode is exported as follows:
a) Horizontal_PRED
candidate motion vector set. When all the candidate positions are searched, enter the
fourth step. Wherein the candidate position is the same as the first step.
The fourth step, if in the previous block in decoding order, a reference frame used by
the block with the same position of the current block is different from the reference
frame of the current block, then the MV of the corresponding reference frame of this
block is added to the candidate motion vector set.
If this reference frame is in different direction with the reference frame of the current
block, the MV sign of this block is negated (-mvx, -mvy) and added to the candidate
motion vector set.
5.3.5.2.2 Export of luma motion vector
If the skip_flag of the current block is equal to 1, the MV of the current block is {0,0}
and the corresponding reference frame is DYNAMIC_REF. otherwise:
if the block_reference_mode of the current block is equal to SINGLE_REFERENCE,
then:
a) If the mv_mode of the current block is ZEROMV, the MV of the current block is
{0,0};
b) If the mv_mode of the current block is NEARESTMV, the MV of the current block
is PMV [0];
c) If the mv_mode of the current block is NEARMV, the MV of the current block is
PMV [1];
d) If the mv_mode of the current block is NEWMV, the MV of the current block is
MVP [0] + MVD [0].
If the block_reference_mode of the current block is equal to
COMPOUND_REFERENCE, the current block is in bidirectional prediction mode, and
there are two reference frames of inter prediction, where the first reference frame is
read from the code stream and the second reference frame is fixed to OPTIONAL_REF.
Two motion vectors are exported in two reference frames, namely MV [0] and MV [1]
respectively, and are calculated as follows:
a) If the mv_mode of the current block is ZEROMV, both MV [0] and MV [1] are {0,0};
b) If the mv_mode of the current block is NEARESTMV, both MV [0] and MV [1] are
PMV [0];
c) If the mv_mode of the current block is NEARMV, both MV [0] and MV [1] are PMV
[1];
ah0,0 = Clip1 ((ah'0,0 + 64) >> 7)
ha0,0 = Clip1 ((ha'0,0 + 64) >> 7)
The fraction sample points of other chroma components, e.g.: bb0,0, bc0,0 ... bh0,0, ...
hb0,0, hc0,0, ... hh0,0, need to be calculated using the fraction sample point value (ab'0,0,
ac'0,0, ad'0,0, ae'0,0, af'0,0, ag'0,0, ah'0,0) of the row where the integer sample points that
have been calculated in the first step locate, the calculation method is as follows:
hh'0,0 = -ah'0,-3 + 6 × ah'0,-2 - 19 × ah'0,-1 + 78 × ah'0,0 + 78 × ah'0,1 - 19 × ah'0,2 + 6 × ah'0,3
- ah'0,4
The final predictor of hh0,0 is calculated as follows:
hh0,0 = Clip1 ((hh'0,0 + 8192) >> 14)
Similarly, the prediction method of the other chroma sample positions is similar, and
are calculated using the interpolation coefficients of the corresponding positions.
5.3.6 Transform factor decoding process and picture reconstruction process
...... Source: Above contents are excerpted from the PDF -- translated/reviewed by: www.chinesestandard.net / Wayne Zheng et al.
|