(по цифровому вещанию) Dvorkovich_V_Cifrovye_videoinformacionnye_sistemy
.pdfГлава14. Стандарты кодирования динамических изображений
Ниже в скобках даются соответствующие английские наименования элементов видеопотока, как они приведены в исходном тексте стандарта.
В заголовок видеопоследовательности входят следующие переменные:
Код_заголовка_видеопоследовательности (sequence_header_code) —
константа длиной в 32 бита, равная 000001В3 в шестнадцатиричном формате, открывающая видеопоток.
Размер_по_горизонтали (horizontal_size_value) — 12 младших битов горизонтального размера изображения.
Размер_по_вертикали (vertical_size_value) — 12 младших битов вертикального размера изображения.
Размер по горизонтали (horizontal size) и размер по вертикали (vertical size) представляют собой 14-битовые величины, из которых 12 младших битов передаются в заголовке видеопоследовательности, а 2 старших бита — в переменных
расширение_размера_по_горизонтали (horizontal_size_extension) и расширение_размера_по_вертикали (vertical_size_extension) в расширении видеопоследовательности.
Код_отношения_размеров (aspect_ratio_information) — 4 бита, в которых содержится информация об отношении вертикального и горизонтального размера пиксела (SAR — sample aspect ratio).
Отношение может быть равно единице или же вычисляться по следующей формуле:
SAR = DAR × размер_по_горизонтали/размер_по_вертикали — если в потоке отсутствует элемент «расширение воспроизведения видеопоследовательности» (см. ниже), или:
SAR = DAR × горизонтальный_размер_воспроизведения/вертикальный_размер_воспроизведения, если в потоке присутствует «расширение воспроизведения видеопоследовательности».
Здесь DAR — отношение вертикального и горизонтального размеров дисплея (display aspect ratio), определяемое по табл. 14.3.
Код_частоты_кадров (frame_rate_code) — 4 бита, в которых содержится информация о частоте кадров, получаемая из табл. 14.4.
Если в таблице присутствует код, для которого непосредственно указано значение частоты кадров (frame_rate), то используется непосредственно это значение и переменные расширение_частоты_кадров_n (frame_rate_extension_n) и расширение_частоты_кадров_d (frame_rate_extension_d) должны быть равны 0, в противном случае частота кадров вычисляется по формуле:
частота_кадров = частота_кадров ×
× (расширение_частоты_кадров_n + 1)/
/(расширение_частоты_кадров_d + 1),
где расширение_частоты_кадров_n и расширение_частоты_кадров_n
передаются в элементе видеопотока «расширение заголовка видеопоследовательности».
Полученное таким образом значение frame_rate обозначает обратную величину времени между двумя соседними кадрами или обратную величину удвоенного времени между соседними полями.
14.4. MPEG-2. Кодирование динамических изображений
Таблица 14.3. Коды отношения размеров по вертикали и по горизонтали
Код_отношения_размеров |
SAR |
DAR |
0000 |
запрещено |
запрещено |
0001 |
1.0 |
– |
0010 |
– |
3 : 4 |
|
|
|
0011 |
– |
9 : 16 |
0100 |
– |
1 : 2.21 |
0101 |
– |
зарезервировано |
|
|
|
. . . |
- |
. . . |
1111 |
– |
зарезервировано |
|
|
|
Таблица 14.4. Коды частоты кадров
Код_частоты_кадров |
Частота кадров |
0000 |
запрещено |
|
|
0001 |
24000/1001 (23,976) |
0010 |
24 |
|
|
0011 |
25 |
|
|
0100 |
30000/1001 (29,97) |
0101 |
30 |
|
|
0110 |
50 |
|
|
0111 |
60000/1001 (59,94) |
1000 |
60 |
|
|
. . . |
зарезервировано |
|
|
1111 |
зарезервировано |
Битовый_поток (bit_rate_value) — 18 младших битов кода величины битового потока.
Код битового потока (bit_rate) представляет собой 30-битовый код, из которых 18 младших битов передаются в заголовке видеопоследовательности, а 12 старших битов — в расширении видеопоследовательности в переменной расширение_битового_потока (bit_rate_extension). Если величина из элемента «заголовок кадра» (см. ниже) задержка_буфера=FFFF в шестнадцатиричном формате, то битовый поток — переменный, а битовый_поток обозначает величину, используемую в транспортном потоке, в противном случае битовый_поток задает величину битового потока в единицах 400 битов/сек.
–Маркер (marker_bit) — константа длиной в 1 бит, равная единице и предназначенная для избежания эмуляции стартовых кодов.
–Код_видеобуфера (vbv_bu er_size_value) — 10 битов. Размер контрольного видеобуфера (vbv_bu er_size) представляет собой 18-битовую величину, из которых 10 младших битов передаются в заголовке, а 8 старших битов — в расширении видеопоследовательности в переменной расширение_видеобуфера (vbv_bu er_size_extension). Величина контрольного видеобуфера определяется по формуле:
B= 16 × 1024 × контрольный_видеобуфер [битов].
–Флаг_ограничения_параметров (constrained_parameters_flag) —
1 бит, используемый только в MPEG-1 и всегда равный нулю в MPEG-2.
Глава14. Стандарты кодирования динамических изображений
Он устанавливается равным 1 в MPEG-1, если размер по горизонтали меньше или равен 768, размер по вертикали меньше или равен 576, частота кадров меньше или равна 30 кадров/сек, размер векторов движения ограничен диапазоном (−64. . . +63,5) (при точности нахождения векторов движения до полпиксела), битовый поток не превышает 1 856 000 битов/сек, контрольный видеобуфер меньше или равен 327 680 битов.
–Загружаемая_матрица_I (load_intra_quantizer_matrix) — 1 бит, указывающий, нужно ли использовать стандартную матрицу квантования для I-кадров, приведенную ниже в разделе о расширении матриц квантования, или следует загружать другую матрицу. Если бит загружаемая_матрица_I = 1, то за ним следуют 64 байта, задающих матрицу квантования для I-кадров.
–Загружаемая_матрица_PB (load_non_intra_quantizer_matrix) —
1 бит, указывающий, нужно ли использовать стандартную матрицу квантования для P- и B-кадров, приведенную в разделе о расширении матриц квантования, или следует загружать другую матрицу. Если бит загружаемая_матрица_PB=1, то за ним следуют 64 байта, задающих матрицу квантования для P- и B-кадров.
Расширение заголовка видеопоследовательности имеет следующую структуру:
заголовок_видеопоследовательности() |
Количество битов |
{ |
|
стартовый_код_расширения |
32 |
код_идентификатора_расширения |
4 |
код_профиля_уровня |
8 |
прогрессивная_развертка |
1 |
код_формата_цветности |
2 |
расширение_размера_по_горизонтали |
2 |
расширение_размера_по_вертикали |
2 |
расширение_битового_потока |
12 |
маркер |
1 |
расширение_видеобуфера |
8 |
малая_задержка |
1 |
расширение_частоты_кадров_n |
2 |
расширение_частоты_кадров_d |
5 |
следующий_стартовый_код() |
|
} |
|
|
|
В него входят следующие переменные.
–Стартовый_код_расширения (extension_start_code) — константа длиной в 32 бита, равная 000001В5 в шестнадцатиричном формате, открывающая любое расширение видеопотока по сравнению с MPEG-1.
–Код_идентификатора_расширения (extension_start_code_identifier) —
константа длиной в 4 бита, равная 0001 в двоичном формате, обозначающая расширение заголовка видеопоследовательности.
14.4. MPEG-2. Кодирование динамических изображений
–Код_профиля_уровня (profile_and_level_indication) — 8 битов, в которых содержится информация о профиле и уровне видеопотока. Старший бит в настоящем стандарте устанавливается равным нулю (значение 1 зарезервировано для будущих расширений стандарта); следующие три бита указывают профиль и заключительные четыре — уровень потока согласно табл. 14.5 и 14.6.
–Прогрессивная_развертка (progressive_sequence) — 1 бит.
Если прогрессивная_развертка = 1, то в последовательности могут встречаться только кадры с прогрессивной разверткой; в противном случае в ней могут встречаться как кадры с прогрессивной или с чересстрочной разверткой, так и поля.
Таблица 14.5. Коды профиля
|
Код |
|
|
Профиль |
|
|
110 . . . 111 |
|
|
зарезервировано |
|
|
101 |
|
|
простой (simple) |
|
|
|
|
|
|
|
|
100 |
|
|
основной (main) |
|
|
|
|
|
|
|
|
011 |
масштабируемый по отношению сигнал/шум (SNR scalable) |
|||
|
010 |
|
пространственно масштабируемый (spatially scalable) |
||
|
|
|
|
|
|
|
001 |
|
профессиональный 422 (professional, 422P) |
||
|
|
|
|
|
|
|
000 |
|
|
зарезервировано |
|
Таблица 14.6. Коды уровня |
|
|
|||
|
|
|
|
|
|
|
|
|
Код |
Уровень |
|
|
|
|
1011 . . . 1111 |
зарезервировано |
|
|
|
|
1010 |
низкий (low) |
|
|
|
|
|
|
|
|
|
|
1001 |
зарезервировано |
|
|
|
|
|
|
|
|
|
|
1000 |
основной (main) |
|
|
|
|
0111 |
зарезервировано |
|
|
|
|
|
|
|
|
|
|
0110 |
высокий-1440 (high 1440) |
|
|
|
|
|
|
|
|
|
|
0101 |
зарезервировано |
|
|
|
|
0100 |
высокий (high) |
|
|
|
|
|
|
|
|
|
|
0000 . . . 0011 |
зарезервировано |
|
|
|
|
|
|
|
Код_формата_цветности (chroma_format) — 2 бита, определяющих значение формата цветности согласно табл. 14.7.
Таблица 14.7. Коды формата цветности
Код_формата_цветности |
Формат цветности |
00 |
зарезервировано |
|
|
01 |
4 : 2 : 0 |
|
|
10 |
4 : 2 : 2 |
11 |
4 : 4 : 4 |
|
|
–Расширение_размера_по_горизонтали (horizontal_size_extension) —
2 старших бита размера по горизонтали.
–Расширение_размера_по_вертикали (vertical_size_extension) —
2 старших бита размера по вертикали.
Глава14. Стандарты кодирования динамических изображений
–Расширение_битового_потока (bit_rate_extension) — 12 старших битов кода битового потока.
–Расширение_видеобуфера (vbv_bu er_size_extension) — 8 старших битов кода размера контрольного видеобуфера.
–Малая_задержка (low_delay) — 1 бит. Если малая_задержка = 1, то в последовательности не могут встречаться В-кадры и отпадает необходимость в переупорядочивании кадров в декодере и в описании контрольного видеобуфера, допускается опустошение видеобуфера (VBV buffer underflow).
–Расширение_частоты_кадров_ n (frame_rate_extension_n) — 2 бита.
–Расширение_частоты_кадров_d (frame_rate_extension_d) — 5 битов (см. код_частоты_кадров).
Расширение воспроизведения видеопоследовательности
Информация в данном разделе не влияет на процесс декодирования, но может использоваться устройствами воспроизведения. Расширение воспроизведения видеопоследовательности имеет следующую структуру:
заголовок_видеопоследовательности() |
Количество битов |
{ |
|
код_идентификатора_расширения |
4 |
код_формата_видео |
3 |
описание_цветности |
1 |
if (описание_цветности){ |
|
первичные_цвета |
8 |
код_характеристики_передачи |
8 |
код_матрицы_преобразования |
8 |
} |
|
горизонтальный_размер_воспроизведения |
14 |
маркер |
1 |
вертикальный_размер_воспроизведения |
14 |
следующий_стартовый_код() |
|
}
В него входят следующие переменные.
–Код_идентификатора_расширения (extension_start_code_identifier) — константа длиной в 4 бита, равная 0010 в двоичном формате, обозначающая расширение воспроизведения видеопоследовательности.
–Код_формата_видео (video_format) — 3 бита, обозначающих формат видеоданных исходной (незакодированной) видеопоследовательности согласно табл. 14.8.
–Описание_цветности (colour_description) — 1 бит. Если описание_ цветности = 1, то вслед за ним в битовом потоке указываются характеристики параметров кодирования и воспроизведения цветности.
14.4. MPEG-2. Кодирование динамических изображений
Таблица 14.8. Коды формата видео
Код_формата_видео |
Формат видео |
000 |
компоненты (независимая передача сигналов яркости и цветности) |
001 |
PAL |
|
|
010 |
NTSC |
|
|
011 |
SECAM |
100 |
MAC |
|
|
101 |
неспецифицированный |
|
|
110 |
зарезервировано |
111 |
зарезервировано |
|
|
–Первичные_цвета (colour_primaries) — 8 битов, обозначающих компоненты цветности исходного изображения согласно табл. 14.9. По умолчанию значение первичные_цвета полагается равным 1.
–Код_характеристики_передачи (transfer_characteristics) — 8 битов, обозначающих оптоэлектронные характеристики передачи исходного изображения согласно табл. 14.10. По умолчанию значение код_характеристики_передачи полагается равным 1.
Таблица 14.9. Коды компонент цветности
Первич- |
|
Компоненты цветности |
|
||
ные_цвета |
|
|
|||
|
|
|
|
|
|
0000 0000 |
|
|
запрещено |
|
|
0000 0001 |
|
Рекомендация ITU-R 709 (1990) |
|
||
Первичные |
|
x |
|
y |
|
|
|
|
|||
|
зеленый |
|
0,300 |
|
0,600 |
|
синий |
|
0,150 |
|
0,060 |
|
красный |
|
0,640 |
|
0,330 |
|
белый D65 |
|
0,3127 |
|
0,3290 |
0000 0010 |
неспецифицированный |
видеоформат, неизвестные характеристики |
|||
0000 0011 |
|
|
зарезервировано |
|
|
0000 0100 |
Рекомендация ITU-R 624-4 System M |
|
|||
Первичные |
|
x |
|
y |
|
|
|
|
|||
|
зеленый |
|
0,21 |
|
0,71 |
|
синий |
|
0,14 |
|
0,08 |
|
красный |
|
0,67 |
|
0,33 |
|
белый D65 |
|
0,310 |
|
0,316 |
0000 0110 |
Рекомендация ITU-R 624-4 System B, G |
|
|||
Первичные |
|
x |
|
y |
|
|
|
|
|||
|
зеленый |
|
0,29 |
|
0,60 |
|
синий |
|
0,15 |
|
0,06 |
|
красный |
|
0,64 |
|
0,33 |
|
белый D65 |
|
0,313 |
|
0,329 |
0000 0110 |
|
|
SMPTE 170M |
|
|
Первичные |
|
x |
|
y |
|
|
|
|
|||
|
зеленый |
|
0,310 |
|
0,595 |
|
синий |
|
0,155 |
|
0,070 |
|
красный |
|
0,630 |
|
0,340 |
|
белый D65 |
|
0,3127 |
|
0,3290 |
Глава14. Стандарты кодирования динамических изображений
Таблица 14.9 (окончание)
|
|
Первич- |
|
|
|
Компоненты цветности |
|
|
||
|
ные_цвета |
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
||
|
0000 0111 |
|
|
|
|
SMPTE 240M (1987) |
|
|
||
|
|
Первичные |
|
x |
|
y |
||||
|
|
|
|
|
|
|||||
|
|
|
|
зеленый |
|
0,310 |
|
0,595 |
|
|
|
|
|
|
синий |
|
0,155 |
|
0,070 |
|
|
|
|
|
|
красный |
|
0,630 |
|
0,340 |
|
|
|
|
|
|
белый D65 |
|
0,3127 |
|
0,3291 |
|
|
|
0000 1000. . . |
|
|
|
|
зарезервировано |
|
|
||
|
1111 1111 |
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
||
Таблица 14.10. Коды характеристики передачи |
|
|
||||||||
|
|
Код_характеристи- |
|
|
Характеристики передачи |
|
|
|||
|
|
ки_передачи |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|||
|
|
0000 0000 |
|
|
|
запрещено |
|
|
||
|
|
|
|
|
|
|
Рекомендация ITU-R 709 (1990) |
|
||
|
0000 0001 |
|
|
V = 1,099Lc0,45 — 0,099, для 1 Lc 0,018 |
|
|||||
|
|
|
|
|
|
|
V = 4,5Lc, для 0,018 > Lc 0 |
|
|
|
|
|
0000 0010 |
|
неспецифицированный видеоформат, неизвестные |
|
|||||
|
|
|
|
характеристики |
|
|
||||
|
|
|
|
|
|
|
|
|
||
|
|
0000 0011 |
|
|
|
зарезервировано |
|
|
||
|
|
0000 0100 |
|
|
Рекомендация ITU-R 624-4 System M, |
|
||||
|
|
|
гамма дисплея полагается равной 2,2 |
|
||||||
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|||
|
|
0000 0110 |
|
|
Рекомендация ITU-R 624-4 System B, G, |
|
||||
|
|
|
гамма дисплея полагается равной 2,8 |
|
||||||
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SMPTE 170M |
|
|
|
|
0000 0110 |
|
|
V = 1,099Lc0,45 — 0,099, для 1 Lc 0,018 |
|
|||||
|
|
|
|
|
|
|
V = 4,5Lc, для 0,018 > Lc 0 |
|
|
|
|
|
|
|
|
|
|
SMPTE 240M (1987) |
|
|
|
|
0000 0111 |
|
|
V = 1,1115Lc0,45 — 0,1115, для Lc 0,0228 |
|
|||||
|
|
|
|
|
|
|
V = 4,0Lc, для 0,0228 > Lc |
|
|
|
|
|
0000 1000 |
|
|
линейная характеристика, V = Lc |
|
||||
|
|
0000 1001. . . |
|
|
зарезервировано |
|
|
|||
|
|
1111 1111 |
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
–Код_матрицы_преобразования (matrix_coe cients) — 8 битов, обозначающих информацию о преобразовании сигналов цветности RGB в яр-
костную и цветоразностные компоненты. В табл. 14.11 EY обозначает аналоговый сигнал яркости в пределах от 0 до 1, EB−Y и ER−Y — аналоговые цветоразностные сигналы в пределах от −0,5 до 0,5; они преобразуются в YD , CR, CB по следующим формулам:
YD = (219EY ) + 16;
CB = (224EB−Y ) + 128;
CR = (224ER−Y ) + 128.
По умолчанию значение код_матрицы_преобразования полагается равным 1.
14.4. MPEG-2. Кодирование динамических изображений
–Горизонтальный_размер_воспроизведения (display_horizontal_size)
–Вертикальный_размер_воспроизведения (display_vertical_size) —
по 14 битов, обозначающих предполагаемые размеры по горизонтали и по вертикали дисплея, на котором будет воспроизводиться изображение. Он может быть меньше, чем размер всего изображения, и тогда будет воспроизводиться только часть изображения, но может быть и больше, и в этом случае все изображение будет воспроизводиться в окне на дисплее.
Таблица 14.11. Коды матрицы преобразования цветности
Код_матри- |
|
Формулы преобразования |
|
||||||||
цы_пре- |
|
|
|||||||||
образования |
|
|
|
|
|
|
|
|
|
|
|
0000 0000 |
|
|
|
запрещено |
|
|
|
|
|||
|
Рекомендация ITU-R 709 (1990) |
|
|||||||||
0000 0001 |
EY = 0,7154EG + 0,0721EB |
+ 0,2125ER |
|||||||||
E |
= |
− |
0,386E |
+ 0,500E |
− |
0,115E |
|
||||
|
|||||||||||
|
B−Y |
|
G |
|
|
B |
|
R |
|||
|
E |
= |
− |
0,454E |
− |
0,046E |
+ 0,500E |
|
|||
|
R−Y |
|
G |
|
B |
|
|
R |
|||
0000 0010 |
неспецифицированный видеоформат, неизвестные |
||||||||||
|
|
|
характеристики |
|
|
|
|||||
|
|
|
|
|
|
|
|||||
0000 0011 |
|
|
|
зарезервировано |
|
|
|
||||
|
|
|
|
FCC |
|
|
|
|
|||
0000 0100 |
EY = 0,59EG + 0,11EB + 0,30ER |
|
|||||||||
E |
= |
− |
0,331E |
+ 0,500E |
− |
0,169E |
|
||||
|
|||||||||||
|
B−Y |
|
G |
|
|
B |
|
R |
|||
|
E |
= |
− |
0,421E |
− |
0,079E |
+ 0,500E |
|
|||
|
R−Y |
|
G |
|
B |
|
|
R |
|||
|
Рекомендация ITU-R 624-4 System B, G |
||||||||||
0000 0110 |
EY |
= 0,587EG + 0,114EB |
+ 0,299ER |
|
|||||||
E |
= |
− |
0,331E |
+ 0,500E |
− |
0,169E |
|
||||
|
|||||||||||
|
B−Y |
|
G |
|
|
B |
|
R |
|||
|
E |
= |
− |
0,419E |
− |
0,081E |
+ 0,500E |
|
|||
|
R−Y |
|
G |
|
B |
|
|
R |
|||
|
|
|
|
SMPTE 170M |
|
|
|
|
|||
0000 0110 |
EY |
= 0,587EG + 0,114EB |
+ 0,299ER |
|
|||||||
E |
= |
− |
0,331E |
+ 0,500E |
− |
0,169E |
|
||||
|
|||||||||||
|
B−Y |
|
G |
|
|
B |
|
R |
|||
|
E |
= |
− |
0,419E |
− |
0,081E |
+ 0,500E |
|
|||
|
R−Y |
|
G |
|
B |
|
|
R |
|||
|
|
|
SMPTE 240M (1987) |
|
|
||||||
0000 0111 |
EY |
= 0,701EG + 0,087EB |
+ 0,212ER |
|
|||||||
E |
= |
− |
0,384E |
+ 0,500E |
− |
0,116E |
|
||||
|
|||||||||||
|
B−Y |
|
G |
|
|
B |
|
R |
|||
|
E |
= |
− |
0,445E |
− |
0,055E |
+ 0,500E |
|
|||
|
R−Y |
|
G |
|
B |
|
|
R |
|||
0000 1000. . . |
|
|
|
зарезервировано |
|
|
|
||||
1111 1111 |
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
Заголовок группы кадров имеет следующую структуру:
заголовок_группы_кадров() |
Количество битов |
{ |
|
стартовый_код_группы |
32 |
временной_код |
25 |
замкнутая_группа |
1 |
|
|
Глава14. Стандарты кодирования динамических изображений
нарушение_связности 1 следующий_стартовый_код()
}
В него входят следующие переменные:
–Стартовый_код_группы (group_start_code) — константа длиной 32 бита, равная 000001B8 в 16-ричном формате, обозначающая начало группы кадров.
–Временной_код (time_code) — 25 битов, включающих в себя информацию о временных характеристиках и контрольных кодах видеоданных (табл. 14.12) согласно стандарту Международной электротехнической комиссии (IEC).
Таблица 14.12. Временные коды
Временной_код |
Диапазон значений |
Количество битов |
флаг_пропущенного_кадра |
0–1 |
1 |
|
|
|
код_часа |
0–23 |
5 |
код_минут |
0–59 |
6 |
|
|
|
маркер |
1 |
1 |
|
|
|
код_секунд |
0–59 |
6 |
|
|
|
временной_код_кадра |
0–59 |
6 |
|
|
|
–Замкнутая_группа (closed_gop) — 1 бит, указывающий на возможность корректного декодирования данной группы кадров независимо от остальных. Если он равен 1, то группа начинается или с I-кадра, или с B-кадров, использующих только предсказание назад с I-кадром в качестве опорного.
–Нарушение_связности (broken_link) — 1 бит, который должен быть установлен в 0 при кодировании. Данный бит может быть установлен в 1 в процессе монтажа или редактирования кодированной последовательности, если группа начинается с B-кадров, использующих предсказание вперед с опорным кадром из предыдущей группы, который был удален из потока в процессе редактирования. Таким образом, декодер не будет воспроизводить эти B-кадры, так как они не могут быть корректно декодированы.
Заголовок кадра имеет следующую структуру:
заголовок_кадра() |
Количество битов |
{ |
|
стартовый_код_кадра |
32 |
временная_метка |
10 |
код_типа_кадра |
3 |
задержка_буфера |
16 |
if (код_типа_кадра==2 || код_типа_кадра==3) { |
|
целочисленный_вектор_движения_вперед |
1 |
код_вектора_движения_вперед |
3 |
} |
|
|
|
14.4. MPEG-2. Кодирование динамических изображений
заголовок_кадра() |
Количество битов |
if (код_типа_кадра==3) { |
|
целочисленный_вектор_движения_назад |
1 |
код_вектора_движения_назад |
3 |
} |
|
while (следующие_биты()==1) { |
|
дополнительный_бит_кадра /*со значением 1*/ |
1 |
дополнительные_данные_кадра |
3 |
} |
|
дополнительный_бит_кадра /*со значением 0*/ |
1 |
следующий_стартовый_код() |
|
} |
|
|
|
|
|
В него входят следующие переменные:
–Стартовый_код_кадра (picture_start_code) — константа длиной 32 бита, равная 00000100 в 16-ричном формате, обозначающая начало кадра.
–Временная_метка (temporal_reference) — 10 битов, номер кадра в группе кадров в порядке воспроизведения. Первому кадру в каждой группе присваивается значение 0, второму — 1 и т. д., по модулю 1024. Оба поля кадра при передаче прогрессивной развертки должны иметь одно и то же значение переменной временная_метка.
–Код_типа_кадра (picture_coding_type) — 3 бита, обозначающих тип кадра согласно табл. 14.13.
Таблица 14.13. Коды типа кадра
Код_типа_кадра |
Тип кадра |
000 |
запрещено |
|
|
001 |
I-кадр |
|
|
010 |
P-кадр |
011 |
B-кадр |
|
|
100 |
запрещено в MPEG-2 (D-кадр в MPEG-1) |
|
|
101. . . 111 |
зарезервировано |
–Задержка_буфера (vbv_delay) — 16 битов, обозначающих или переменный битовый поток (VBR — variable bitrate), тогда задержка_буфера = = FFFF в 16-ричном формате, или информацию о начальной задержке заполнения контрольного видеобуфера. Перед началом воспроизведения буфер декодера должен заполниться во избежание переполнения или опустошения. Задержка_буфера обозначает время, требуемое для заполнения контрольного видеобуфера от первоначально пустого состояния до того уровня, при котором текущий кадр будет удален из буфера.
Значение задержка_буфера измеряется в отсчетах 90-килогерцовых системных часов, в течение которых контрольный видеобуфер должен заполниться после получения последнего бита стартовый_код_кадра, и таким образом может быть вычислено по следующей формуле:
задержка_буфераn = 90000 × Bn/R,