summaryrefslogtreecommitdiff
path: root/chapters/video/h264_parameter_sets.adoc
blob: 5011f78aa77f652a2ed7de1ebbe97584b57ce9ba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
// Copyright 2020-2024 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0
// Common H.264 Parameter Set descriptions
// "operationType" attribute specifies whether this is included in the encode or decode section

[[{operationType}-h264-sps]]

H.264 Sequence Parameter Sets (SPS)::

Represented by code:StdVideoH264SequenceParameterSet structures and
interpreted as follows:

  * code:reserved1 and code:reserved2 are used only for padding purposes and
    are otherwise ignored;
  * code:seq_parameter_set_id is used as the key of the SPS entry;
  * code:level_idc is one of the enum constants
    `STD_VIDEO_H264_LEVEL_IDC_<major>_<minor>` identifying the H.264 level
    `<major>.<minor>` as defined in section A.3 of the <<itu-t-h264,ITU-T
    H.264 Specification>>;
  * if code:flags.seq_scaling_matrix_present_flag is set, then the
    code:StdVideoH264ScalingLists structure pointed to by code:pScalingLists
    is interpreted as follows:
  ** code:scaling_list_present_mask is a bitmask where bit index [eq]#i#
     corresponds to `seq_scaling_list_present_flag[i]` as defined in section
     7.4.2.1 of the <<itu-t-h264,ITU-T H.264 Specification>>;
  ** code:use_default_scaling_matrix_mask is a bitmask where bit index
     [eq]#i# corresponds to `UseDefaultScalingMatrix4x4Flag[i]`, when [eq]#i
     < 6#, or corresponds to `UseDefaultScalingMatrix8x8Flag[i-6]`,
     otherwise, as defined in section 7.3.2.1 of the <<itu-t-h264,ITU-T
     H.264 Specification>>;
  ** code:ScalingList4x4 and code:ScalingList8x8 correspond to the
     identically named syntax elements defined in section 7.3.2.1 of the
     <<itu-t-h264,ITU-T H.264 Specification>>;
  * if code:flags.vui_parameters_present_flag is set, then
    code:pSequenceParameterSetVui is a pointer to a
    code:StdVideoH264SequenceParameterSetVui structure that is interpreted
    as follows:
  ** code:reserved1 is used only for padding purposes and is otherwise
     ignored;
  ** if code:flags.nal_hrd_parameters_present_flag or
     code:flags.vcl_hrd_parameters_present_flag is set, then the
     code:StdVideoH264HrdParameters structure pointed to by
     code:pHrdParameters is interpreted as follows:
  *** code:reserved1 is used only for padding purposes and is otherwise
      ignored;
  *** all other members of code:StdVideoH264HrdParameters are interpreted as
      defined in section E.2.2 of the <<itu-t-h264,ITU-T H.264
      Specification>>;
  ** all other members of code:StdVideoH264SequenceParameterSetVui are
     interpreted as defined in section E.2.1 of the <<itu-t-h264,ITU-T H.264
     Specification>>;
  * all other members of code:StdVideoH264SequenceParameterSet are
    interpreted as defined in section 7.4.2.1 of the <<itu-t-h264,ITU-T
    H.264 Specification>>.

[[{operationType}-h264-pps]]

H.264 Picture Parameter Sets (PPS)::

Represented by code:StdVideoH264PictureParameterSet structures and
interpreted as follows:

  * the pair constructed from code:seq_parameter_set_id and
    code:pic_parameter_set_id is used as the key of the PPS entry;
  * if code:flags.pic_scaling_matrix_present_flag is set, then the
    code:StdVideoH264ScalingLists structure pointed to by code:pScalingLists
    is interpreted as follows:
  ** code:scaling_list_present_mask is a bitmask where bit index [eq]#i#
     corresponds to `pic_scaling_list_present_flag[i]` as defined in section
     7.4.2.2 of the <<itu-t-h264,ITU-T H.264 Specification>>;
  ** code:use_default_scaling_matrix_mask is a bitmask where bit index
     [eq]#i# corresponds to `UseDefaultScalingMatrix4x4Flag[i]`, when [eq]#i
     < 6#, or corresponds to `UseDefaultScalingMatrix8x8Flag[i-6]`,
     otherwise, as defined in section 7.3.2.2 of the <<itu-t-h264,ITU-T
     H.264 Specification>>;
  ** code:ScalingList4x4 and code:ScalingList8x8 correspond to the
     identically named syntax elements defined in section 7.3.2.2 of the
     <<itu-t-h264,ITU-T H.264 Specification>>;
  * all other members of code:StdVideoH264PictureParameterSet are
    interpreted as defined in section 7.4.2.2 of the <<itu-t-h264,ITU-T
    H.264 Specification>>.