没有合适的资源?快使用搜索试试~ 我知道了~
首页HM(16.9)的reference software manual(参考软件手册)
资源详情
资源评论
资源推荐

Joint Collaborative Team on Video Coding (JCT-VC)
of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 Document: JCTVC-Software Manual
Title: HM Software Manual
Status: Software AHG working document
Purpose: Information
Author(s): Frank Bossen frank@bossentech.com
David Flynn dflynn@blackberry.com
Karl Sharman karl.sharman@eu.sony.com
Karsten Sühring karsten.suehring@hhi.fraunhofer.de
Source: AHG chairs
Abstract
This document is a user manual describing usage of reference software for the HEVC project. It applies
to version 16.9 of the software.
Contents
1 General Information 2
2 Installation and compilation 2
3 Using the encoder 2
3.1 GOP structure table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.2 Encoder parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.3 Encoder SEI parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.4 Hardcoded encoder parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4 Using the decoder 29
4.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.2 Using the decoder analyser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
List of Tables
1 Available project files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 GOP structure example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3 File, I/O and source parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4 Profile and level parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5 Unit definition parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
6 Coding structure parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
7 Motion estimation parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
8 Mode decision parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
9 Quantization parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
10 Slice coding parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
11 Deblocking filter parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
12 Coding tools parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
13 Rate control parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
14 VUI parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
15 Range Extensions (Version 2) tool parameters . . . . . . . . . . . . . . . . . . . . . . . 18
16 List of Version 1 and RExt SEI messages . . . . . . . . . . . . . . . . . . . . . . . . . 20
17 Buffering period SEI message encoder parameters . . . . . . . . . . . . . . . . . . . . . 21
18 Picture timing SEI message encoder parameters . . . . . . . . . . . . . . . . . . . . . . 21
19 Recovery point SEI message encoder parameters . . . . . . . . . . . . . . . . . . . . . 21
1 Date saved: 2016-03-21

20 Tone mapping information SEI message encoder parameters . . . . . . . . . . . . . . . 21
21 Frame packing arrangement SEI message encoder parameters . . . . . . . . . . . . . . . 23
22 Display orientation SEI message encoder parameters . . . . . . . . . . . . . . . . . . . 23
23 Structure of pictures information SEI message encoder parameters . . . . . . . . . . . . 23
24 Active parameter sets SEI message encoder parameters . . . . . . . . . . . . . . . . . . 24
25 Decoding unit information SEI message encoder parameters . . . . . . . . . . . . . . . 24
26 Temporal sub-layer zero index SEI message encoder parameters . . . . . . . . . . . . . 24
27 Decoded picture hash SEI message encoder parameters . . . . . . . . . . . . . . . . . . 24
28 Scalable nesting SEI message encoder parameters . . . . . . . . . . . . . . . . . . . . . 24
29 Region refresh information SEI message encoder parameters . . . . . . . . . . . . . . . 24
30 No display SEI message encoder parameters . . . . . . . . . . . . . . . . . . . . . . . . 25
31 Time code SEI message encoder parameters . . . . . . . . . . . . . . . . . . . . . . . . 25
32 Mastering display colour volume SEI message encoder parameters . . . . . . . . . . . . 26
33 Segmented rectangular frame packing arrangement SEI message encoder parameters . . 26
34 Temporal motion-constrained tile sets SEI message encoder parameters . . . . . . . . . 26
35 Chroma resampling filter hint SEI message encoder parameters . . . . . . . . . . . . . . 26
36 Knee function SEI message encoder parameters . . . . . . . . . . . . . . . . . . . . . . 27
37 Colour remapping SEI message encoder parameters . . . . . . . . . . . . . . . . . . . . 27
38 CommonDef.h constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
39 Decoder options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1 General Information
Reference software is being made available to provide a reference implementation of the HEVC standard
being developed by the Joint Collaborative Team on Video Coding (JCT-VC) regrouping experts from
ITU-T SG 16 and ISO/IEC SC29 WG11. One of the main goals of the reference software is to provide
a basis upon which to conduct experiments in order to determine which coding tools provide desired
coding performance. It is not meant to be a particularly efficient implementation of anything, and one
may notice its apparent unsuitability for a particular use. It should not be construed to be a reflection of
how complex a production-quality implementation of a future HEVC standard would be.
This document aims to provide guidance on the usage of the reference software. It is widely suspected to
be incomplete and suggestions for improvements are welcome. Such suggestions and general inquiries
may be sent to the general JCT-VC email reflector on jct-vc@lists.rwth-aachen.de (registration
required).
Bug reporting
Bugs should be reported on the issue tracker set up at http://hevc.kw.bbc.co.uk/trac/
2 Installation and compilation
The software may be retrieved from one of the following SVN servers (mirrored):
• https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware/
• svn://hevc.kw.bbc.co.uk/svn/jctvc-hm/
Table 1 enumerates various project files that are provided for development environments.
For encoding large picture sizes (like UHDTV) it is strongly advised to build 64-bit binaries and to use
a 64-bit OS. This will allow the software to use more than 2GB of RAM.
3 Using the encoder
TAppEncoder [--help] [-c config.cfg] [--parameter=value]
Sample configuration files are provided in the cfg/ folder. Parameters are defined by the last value en-
countered on the command line. Therefore if a setting is set via a configuration file, and then a subsequent
2 Date saved: 2016-03-21

Table 1: Available project files
Environment Location of project file
MS Visual Studio 2008 (VC9) build/HM_vc9.sln
MS Visual Studio 2010 (VC10) build/HM_vc2010.sln
MS Visual Studio 2012 (VC11) build/HM_vc2012.sln
MS Visual Studio 2013 (VC12) build/HM_vc2013.sln
Xcode HM.xcodeproj
Eclipse .project .cproject
make/gcc (e.g. Linux) build/linux/makefile
Option Description
--help Prints parameter usage.
-c Defines configuration file to use. Multiple configuration files
may be used with repeated –c options.
--parameter=value Assigns value to a given parameter as further described below.
Some parameters are also supported by shorthand “–opt value”.
These are shown in brackets after the parameter name in the
tables of this document
command line parameter changes that same setting, the command line parameter value will be used.
3.1 GOP structure table
Defines the cyclic GOP structure that will be used repeatedly throughout the sequence. The table should
contain GOPSize lines, named Frame1, Frame2, etc. The frames are listed in decoding order, so Frame1
is the first frame in decoding order, Frame2 is the second and so on. Among other things, the table
specifies all reference pictures kept by the decoder for each frame. This includes pictures that are used
for reference for the current picture as well as pictures that will be used for reference in the future. The
encoder will not automatically calculate which pictures have to be kept for future references, they must
be specified. Note that some specified reference frames for pictures encoded in the very first GOP after
an IDR frame might not be available. This is handled automatically by the encoder, so the reference
pictures can be given in the GOP structure table as if there were infinitely many identical GOPs before
the current one. Each line in the table contains the parameters used for the corresponding frame, separated
by whitespace:
Type: Slice type, can be either I, P or B.
POC: Display order of the frame within a GOP, ranging from 1 to GOPSize.
QPOffset: QP offset is added to the QP parameter to set the final QP value to use for this frame.
SliceCbQPOffset: The slice-level Cb QP offset.
SliceCrQPOffset: The slice-level Cr QP offset.
QPFactor: Weight used during rate distortion optimization. Higher values mean lower quality
and less bits. Typical range is between 0.3 and 1.
tcOffsetDiv2: In-loop deblocking filter parameter tcOffsetDiv2 is added to the base parameter
LoopFilterTcOffset_div2 to set the final tc_offset_div2 parameter for this picture signalled in the
slice segment header. The final value of tc_offset_div2 shall be an integer number in the range
−6..6.
betaOffsetDiv2: In-loop deblocking filter parameter betaOffsetDiv2 is added to the base parame-
ter LoopFilterBetaOffset_div2 to set the final beta_offset_div2 parameter for this picture signalled
in the slice segment header. The final value of beta_offset_div2 shall be an integer number in the
range −6..6.
temporal_id: Temporal layer of the frame. A frame cannot predict from a frame with a higher
temporal id. If a frame with higher temporal IDs is listed among a frame’s reference pictures, it is
3 Date saved: 2016-03-21

not used, but is kept for possible use in future frames.
num_ref_pics_active: Size of reference picture lists L0 and L1, indicating how many reference
pictures in each direction that are used during coding.
num_ref_pics: The number of reference pictures kept for this frame. This includes pictures that
are used for reference for the current picture as well as pictures that will be used for reference in
the future.
reference_pictures: A space-separated list of num_ref_pics integers, specifying the POC of the
reference pictures kept, relative the POC of the current frame. The picture list shall be ordered,
first with negative numbers from largest to smallest, followed by positive numbers from smallest
to largest (e.g. -1 -3 -5 1 3). Note that any pictures not supplied in this list will be discarded
and therefore not available as reference pictures later.
predict: Defines the value of the syntax element inter_ref_pic_set_prediction_flag. A value of 0
indicates that the reference picture set is encoded without inter RPS prediction and the subsequent
parameters deltaRIdx−1, deltaRPS, num_ref_idcs and Reference_idcs are ignored and do not need
to be present. A value of 1 indicates that the reference picture set is encoded with inter prediction
RPS using the subsequent parameters deltaRIdx−1, deltaRPS, num_ref_idcs and Reference_idcs
in the line. A value of 2 indicates that the reference picture set is encoded with inter RPS but only
the deltaRIdx−1 parameters is needed. The deltaRPS, num_ref_idcs and Reference_idcs values
are automatically derived by the encoder based on the POC and refPic values of the current line
and the RPS pointed to by the deltaRIdx−1 parameters.
deltaRIdx−1: The difference between the index of the curent RPS and the predictor RPS minus
1.
deltaRPS: The difference between the POC of the predictor RPS and POC the current RPS.
num_ref_idcs: The number of ref_idcs to encode for the current RPS. The value is equal to the
value of num_ref_pics of the predictor RPS plus 1.
reference_idcs: A space-separated list of num_ref_idcs integers, specifying the ref idcs of the
inter RPS prediction. The value of ref_idcs may be 0, 1 or 2 indicating that the reference picture
is a reference picture used by the current picture, a reference picture used for future picture or not
a reference picture anymore, respectively. The first num_ref_pics of ref_idcs correspond to the
Reference pictures in the predictor RPS. The last ref_idcs corresponds to the predictor picture.
For example, consider the coding structure of Figure 1. This coding structure is of size 4. The pictures
are listed in decoding order. Frame1 shall therefore describe picture with POC = 4. It references picture
0, and therefore has −4 as a reference picture. Similarly, Frame2 has a POC of 2, and since it references
pictures 0 and 4, its reference pictures are listed as -2 2. Frame3 is a special case: even though it only
references pictures with POC 0 and 2, it also needs to include the picture with POC 4, which must be kept
in order to be used as a reference picture in the future. The reference picture list for Frame3 therefore
becomes -1 1 3. Frame4 has a POC of 3 and its list of reference pictures is -1 1.
Figure 1: A GOP structure
I
B
P P
B B B B
B
0
1 2
3
4
5 6
7
8
0 3
2 4 1
7
6 8 5
POC
Decode Order
Inter RPS prediction may be used for Frame2, Frame3 and Frame4, hence the predict parameter is set
to 1 for these frames. Frame2 uses Frame1 as the predictor hence the deltaRIdx−1 is 0. Similarly for
4 Date saved: 2016-03-21

Frame3 and Frame4 which use Frame2 and Frame3 as predictors, respectively. The deltaRPS is equal
to the POC of the predictor minus the POC of the current picture, therefore the deltaRPS for Frame2 is
4 − 2 = 2, for Frame3 is 2 − 1 = 1 and for Frame4 is 1 − 3 = −2.
In Frame2, reference pictures with POC 0 and 2 are used, so the reference idcs for Frame2 are 1 1
indicating that the reference picture, −4, in Frame1 is still a reference picture in Frame2 and Frame1
is also a reference picture in Frame2. The reference idcs for Frame3 are 1 1 1. The first and second
“1”s indicating that the reference pictures “−2 2” in Frame2 are still reference pictures in Frame3 and
the last “1” indicating that Frame2 is also a reference picture in Frame3. In Frame 4, the reference idcs
are 0 1 1 0. The first “0” indicates that the reference pictures “-1” in Frame 3 is no longer a reference
picture in Frame4. The next two “1”s indicate that the reference pictures “1 3” are now reference pictures
of Frame4. The final “0” indicates that Frame3 is not a reference picture.
In order to specify this to the encoder, the parameters in Table 2 could be used.
Table 2: GOP structure example
Frame1 Frame2 Frame3 Frame4
Type P B B B
POC 4 2 1 3
QPOffset 1 2 3 3
SliceCbQPOffset 0 0 0 0
SliceCrQPOffset 0 0 0 0
QPfactor 0.5 0.5 0.5 0.5
tcOffsetDiv2 0 1 2 2
betaOffsetDiv2 0 0 0 0
temporal_id 0 1 2 2
num_ref_pics_active 1 1 1 1
num_ref_pics 1 2 3 2
reference_pictures −4 −2 2 −1 1 3 −1 1
predict 0 1 1 1
deltaRIdx−1 0 0 0
deltaRPS 2 1 −2
num_ref_idcs 2 3 4
reference_idcs 1 1 1 1 1 0 1 1 0
Here, the frames used for prediction have been given higher quality by assigning a lower QP offset. Also,
the non-reference frames have been marked as belonging to a higher temporal layer, to make it possible
to decode only every other frame. Note: each line should contain information for one frame, so this
configuration would be specified as:
Frame1: P 4 1 0 0 0.5 0 0 0 1 1 -4 0
Frame2: B 2 2 0 0 0.5 1 0 1 1 2 -2 2 1 0 2 2 1 1
Frame3: B 1 3 0 0 0.5 2 0 2 1 3 -1 1 3 1 0 1 3 1 1 1
Frame4: B 3 3 0 0 0.5 2 0 2 1 2 -1 1 1 0 -2 4 0 1 1 0
The values of deltaRIdx−1, deltaRPS, num_ref_idcs and reference idcs of FrameK can be derived from
the POC value of Frame
K
and the POC, num_ref_pics and reference_pictures values of Frame
M
, where
K is the index of the RPS to be inter coded and the M is the index of the reference RPS, as follows.
Note: The above (automatic) generation of the inter RPS parameter values has been integrated into the
encoder, and is activated by the value of predict = 2 followed by the value of deltaRIdx−1, only, as
described above.
5 Date saved: 2016-03-21
剩余29页未读,继续阅读














安全验证
文档复制为VIP权益,开通VIP直接复制

评论1