Введение

Формат сжатия видео, пришедший на смену MPEG 1.

H.262 или MPEG 2 Part 2 (официально известный как ITU-T Recommendation H.262 и ISO/IEC 13818-2, также известный как MPEG 2 Video) — это формат кодирования видео, стандартизированный и совместно поддерживаемый ITU-T Study Group 16 Video Coding Experts Group (VCEG) и ISO/IEC Moving Picture Experts Group (MPEG), разработанный при участии многих компаний. Является второй частью стандарта ISO/IEC MPEG 2. Документы ITU-T Recommendation H.262 и ISO/IEC 13818-2 идентичны. Стандарт доступен за плату в ITU-T.

Обработка изображений

Камера HDTV с 8-битной квантованием генерирует необработанный видеопоток размером 25 × 1920 × 1080 × 3 = 155 520 000 байт в секунду для видео с частотой 25 кадров в секунду (при использовании формата квантования 4:4:4). Этот поток данных необходимо сжать, чтобы цифровое телевидение помещалось в полосу пропускания доступных телевизионных каналов, а фильмы – на DVD-диски. Сжатие видео целесообразно, поскольку данные в изображениях часто избыточны как в пространстве, так и во времени. Например, небо может быть голубым в верхней части изображения, и это голубое небо может сохраняться кадр за кадром. Кроме того, благодаря особенностям работы глаза, можно удалить или аппроксимировать некоторые данные из видеоизображений без заметной потери качества изображения. Распространенный (и старый) прием для уменьшения объема данных – разделение каждого полного "кадра" видео на два "поля" при вещании/кодировании: "верхнее поле", состоящее из нечетных горизонтальных линий, и "нижнее поле", состоящее из четных горизонтальных линий. При приеме/декодировании два поля отображаются поочередно, при этом строки одного поля чередуются со строками предыдущего поля; этот формат называется разностной разверткой. Типичная частота полей составляет 50 (Европа/PAL) или 59,94 (США/NTSC) полей в секунду, что соответствует 25 (Европа/PAL) или 29,97 (Северная Америка/NTSC) полным кадрам в секунду. Если видео не использует разностную развертку, оно называется видео с прогрессивной разверткой, и каждое изображение представляет собой полный кадр. MPEG 2 поддерживает оба варианта. Цифровое телевидение требует, чтобы эти изображения были оцифрованы для обработки компьютерным оборудованием. Каждый элемент изображения (пиксель) затем представляется одним значением яркости (luma) и двумя значениями цветности (chroma). Они описывают яркость и цвет пикселя (см. YCbCr). Таким образом, каждое оцифрованное изображение изначально представляется тремя прямоугольными массивами чисел. Другая распространенная практика для уменьшения объема обрабатываемых данных – понижение дискретизации двух цветовых плоскостей (после фильтрации нижних частот для предотвращения алиасинга). Это работает, потому что человеческая зрительная система лучше различает детали яркости, чем детали оттенка и насыщенности цветов. Термин 4:2:2 используется для видео, в котором цветовая субдискретизация составляет 2:1 по горизонтали, а 4:2:0 – для видео, в котором цветовая субдискретизация составляет 2:1 как по вертикали, так и по горизонтали. Видео, в котором яркость и цветность имеют одинаковое разрешение, называется 4:4:4. В документе MPEG 2 Video рассматриваются все три типа субдискретизации, хотя 4:2:0 наиболее распространен для потребительского видео, и для видео 4:4:4 не определены отдельные "профили" MPEG 2 (см. ниже для дальнейшего обсуждения профилей). Хотя обсуждение ниже в этом разделе обычно описывает сжатие видео MPEG 2, многие детали не рассматриваются, включая детали, связанные с полями, цветовыми форматами, реакцией на изменения сцены, специальные коды, которые маркируют части битового потока, и другую информацию. Помимо возможностей обработки полей для кодирования с разностной разверткой, MPEG 2 Video очень похож на MPEG 1 Video (и даже довольно похож на более ранний стандарт H.261), поэтому все описание ниже в равной степени применимо к MPEG 1.

I-кадр, P-кадр и B-кадр

MPEG 2 включает три основных типа кодированных кадров: внутрикадровые кадры (I-кадры), предсказанные кадры (P-кадры) и двунаправленно предсказанные кадры (B-кадры). I-кадр представляет собой отдельно сжатую версию одного несжатого (исходного) кадра. Кодирование I-кадров использует пространственную избыточность и неспособность глаза воспринимать определенные изменения в изображении. В отличие от P-кадров и B-кадров, I-кадры не зависят от данных в предыдущих или последующих кадрах, поэтому их кодирование очень похоже на кодирование неподвижного изображения (примерно как кодирование изображений JPEG). Вкратце, исходный кадр разделяется на блоки размером 8x8 пикселей. Данные в каждом блоке преобразуются с помощью дискретного косинусного преобразования (DCT). Результатом является матрица 8x8 коэффициентов, имеющих значения действительных чисел. Преобразование преобразует пространственные изменения в частотные, но не изменяет информацию в блоке; при вычислении преобразования с идеальной точностью исходный блок может быть точно восстановлен путем применения обратного косинусного преобразования (также с идеальной точностью). Преобразование 8-битных целых чисел в коэффициенты преобразования с действительными значениями фактически увеличивает объем данных на этом этапе обработки, но преимущество преобразования заключается в том, что данные изображения затем могут быть аппроксимированы путем квантования коэффициентов. Многие коэффициенты преобразования, как правило, высокочастотные компоненты, становятся равными нулю после квантования, которое по сути является операцией округления. Недостатком этого шага является потеря некоторых тонких различий в яркости и цвете. Квантование может быть грубым или тонким, в зависимости от выбора кодировщика. Если квантование не слишком грубое и к матрице применяется обратное преобразование после квантования, получается изображение, очень похожее на исходное, но не идентичное ему. Далее, квантованная матрица коэффициентов сжимается. Обычно после квантования один из углов матрицы 8x8 коэффициентов содержит только нули. Начиная с противоположного угла матрицы, затем проходя по ней зигзагом для объединения коэффициентов в строку, заменяя коды длин серий последовательными нулями в этой строке и применяя кодирование Хаффмана к результату, матрица уменьшается до меньшего объема данных. Именно эти данные, закодированные энтропией, транслируются или записываются на DVD. В приемнике или проигрывателе весь процесс обращается, позволяя приемнику восстановить исходный кадр с высокой точностью. Обработка B-кадров аналогична обработке P-кадров, за исключением того, что B-кадры используют изображение как в последующем опорном кадре, так и в предыдущем опорном кадре. В результате B-кадры обычно обеспечивают большую степень сжатия, чем P-кадры. B-кадры никогда не являются опорными кадрами в MPEG 2 Video. Обычно каждый пятнадцатый кадр или около того преобразуется в I-кадр. P-кадры и B-кадры могут следовать за I-кадром в последовательности, например, IBBPBBPBBPBB(I), образуя группу кадров (GOP); однако стандарт допускает гибкость в этом отношении. Кодировщик определяет, какие изображения кодируются как I-, P- и B-кадры.

Макроблоки

P-кадры обеспечивают большую степень сжатия, чем I-кадры, поскольку используют данные из предыдущего I-кадра или P-кадра – опорного кадра. Для создания P-кадра предыдущий опорный кадр реконструируется, как это происходит в телевизионном приемнике или DVD-плеере. Сжимаемый кадр разделяется на макроблоки размером 16x16 пикселей. Затем для каждого из этих макроблоков в реконструированном опорном кадре выполняется поиск области 16x16, максимально близкой по содержимому к сжимаемому макроблоку. Смещение кодируется как "вектор движения". Зачастую смещение равно нулю, но если в изображении есть движение, смещение может составлять, например, 23 пикселя вправо и 4,5 пикселя вверх. В MPEG 1 и MPEG 2 значения векторов движения могут представлять собой целые или полуцелые смещения. Совпадение между двумя областями часто не является идеальным. Для компенсации этого кодировщик вычисляет разницу между соответствующими пикселями в обеих областях, а затем для этой разницы макроблока вычисляет дискретное косинусное преобразование (DCT) и последовательности значений коэффициентов для четырех областей 8x8 в макроблоке 16x16, как описано выше. Этот "остаток" добавляется к вектору движения, и результат отправляется на приемник или сохраняется на DVD для каждого сжатого макроблока. Иногда подходящее совпадение не находится. В этом случае макроблок обрабатывается как макроблок I-кадра.

Владельцы патентов

Следующие организации владели патентами на технологию видео MPEG 2, согласно списку MPEG LA. Срок действия всех этих патентов истек в США и большинстве других стран.