Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

(по цифровому вещанию) Dvorkovich_V_Cifrovye_videoinformacionnye_sistemy

.pdf
Скачиваний:
258
Добавлен:
15.03.2016
Размер:
23.26 Mб
Скачать

Глава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,