Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Формат сжатия видео, пришедший на смену MPEG 1.
Video compression format, succeeds 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.
H.262 or MPEG 2 Part 2 (formally known as ITU T Recommendation H.262 and ISO/IEC 13818 2, also known as MPEG 2 Video) is a video coding format standardised and jointly maintained by ITU T Study Group 16 Video Coding Experts Group (VCEG) and ISO/IEC Moving Picture Experts Group (MPEG), and developed with the involvement of many companies. It is the second part of the ISO/IEC MPEG 2 standard. The ITU T Recommendation H.262 and ISO/IEC 13818 2 documents are identical. The standard is available for a fee from the 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.
An HDTV camera with 8 bit sampling generates a raw video stream of 25 × 1920 × 1080 × 3 = 155,520,000 bytes per second for 25 frame per second video (using the 4:4:4 sampling format). This stream of data must be compressed if digital TV is to fit in the bandwidth of available TV channels and if movies are to fit on DVDs. Video compression is practical because the data in pictures is often redundant in space and time. For example, the sky can be blue across the top of a picture and that blue sky can persist for frame after frame. Also, because of the way the eye works, it is possible to delete or approximate some data from video pictures with little or no noticeable degradation in image quality. A common (and old) trick to reduce the amount of data is to separate each complete "frame" of video into two "fields" upon broadcast/encoding: the "top field", which is the odd numbered horizontal lines, and the "bottom field", which is the even numbered lines. Upon reception/decoding, the two fields are displayed alternately with the lines of one field interleaving between the lines of the previous field; this format is called interlaced video. The typical field rate is 50 (Europe/PAL) or 59.94 (US/NTSC) fields per second, corresponding to 25 (Europe/PAL) or 29.97 (North America/NTSC) whole frames per second. If the video is not interlaced, then it is called progressive scan video and each picture is a complete frame. MPEG 2 supports both options. Digital television requires that these pictures be digitized so that they can be processed by computer hardware. Each picture element (a pixel) is then represented by one luma number and two chroma numbers. These describe the brightness and the color of the pixel (see YCbCr). Thus, each digitized picture is initially represented by three rectangular arrays of numbers. Another common practice to reduce the amount of data to be processed is to subsample the two chroma planes (after low pass filtering to avoid aliasing). This works because the human visual system better resolves details of brightness than details in the hue and saturation of colors. The term 4:2:2 is used for video with the chroma subsampled by a ratio of 2:1 horizontally, and 4:2:0 is used for video with the chroma subsampled by 2:1 both vertically and horizontally. Video that has luma and chroma at the same resolution is called 4:4:4. The MPEG 2 Video document considers all three sampling types, although 4:2:0 is by far the most common for consumer video, and there are no defined "profiles" of MPEG 2 for 4:4:4 video (see below for further discussion of profiles). While the discussion below in this section generally describes MPEG 2 video compression, there are many details that are not discussed, including details involving fields, chrominance formats, responses to scene changes, special codes that label the parts of the bitstream, and other pieces of information. Aside from features for handling fields for interlaced coding, MPEG 2 Video is very similar to MPEG 1 Video (and even quite similar to the earlier H.261 standard), so the entire description below applies equally well to 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-кадры.
MPEG 2 includes three basic types of coded frames: intra coded frames (I frames), predictive coded frames (P frames), and bidirectionally predictive coded frames (B frames). An I frame is a separately compressed version of a single uncompressed (raw) frame. The coding of an I frame takes advantage of spatial redundancy and of the inability of the eye to detect certain changes in the image. Unlike P frames and B frames, I frames do not depend on data in the preceding or the following frames, and so their coding is very similar to how a still photograph would be coded (roughly similar to JPEG picture coding). Briefly, the raw frame is divided into 8 pixel by 8 pixel blocks. The data in each block is transformed by the discrete cosine transform (DCT). The result is an 8×8 matrix of coefficients that have real number values. The transform converts spatial variations into frequency variations, but it does not change the information in the block; if the transform is computed with perfect precision, the original block can be recreated exactly by applying the inverse cosine transform (also with perfect precision). The conversion from 8 bit integers to real valued transform coefficients actually expands the amount of data used at this stage of the processing, but the advantage of the transformation is that the image data can then be approximated by quantizing the coefficients. Many of the transform coefficients, usually the higher frequency components, will be zero after the quantization, which is basically a rounding operation. The penalty of this step is the loss of some subtle distinctions in brightness and color. The quantization may either be coarse or fine, as selected by the encoder. If the quantization is not too coarse and one applies the inverse transform to the matrix after it is quantized, one gets an image that looks very similar to the original image but is not quite the same. Next, the quantized coefficient matrix is itself compressed. Typically, one corner of the 8×8 array of coefficients contains only zeros after quantization is applied. By starting in the opposite corner of the matrix, then zigzagging through the matrix to combine the coefficients into a string, then substituting run length codes for consecutive zeros in that string, and then applying Huffman coding to that result, one reduces the matrix to a smaller quantity of data. It is this entropy coded data that is broadcast or that is put on DVDs. In the receiver or the player, the whole process is reversed, enabling the receiver to reconstruct, to a close approximation, the original frame. The processing of B frames is similar to that of P frames except that B frames use the picture in a subsequent reference frame as well as the picture in a preceding reference frame. As a result, B frames usually provide more compression than P frames. B frames are never reference frames in MPEG 2 Video. Typically, every 15th frame or so is made into an I frame. P frames and B frames might follow an I frame like this, IBBPBBPBBPBB(I), to form a Group of Pictures (GOP); however, the standard is flexible about this. The encoder selects which pictures are coded as I , P , and B frames.
Макроблоки
P-кадры обеспечивают большую степень сжатия, чем I-кадры, поскольку используют данные из предыдущего I-кадра или P-кадра – опорного кадра. Для создания P-кадра предыдущий опорный кадр реконструируется, как это происходит в телевизионном приемнике или DVD-плеере. Сжимаемый кадр разделяется на макроблоки размером 16x16 пикселей. Затем для каждого из этих макроблоков в реконструированном опорном кадре выполняется поиск области 16x16, максимально близкой по содержимому к сжимаемому макроблоку. Смещение кодируется как "вектор движения". Зачастую смещение равно нулю, но если в изображении есть движение, смещение может составлять, например, 23 пикселя вправо и 4,5 пикселя вверх. В MPEG 1 и MPEG 2 значения векторов движения могут представлять собой целые или полуцелые смещения. Совпадение между двумя областями часто не является идеальным. Для компенсации этого кодировщик вычисляет разницу между соответствующими пикселями в обеих областях, а затем для этой разницы макроблока вычисляет дискретное косинусное преобразование (DCT) и последовательности значений коэффициентов для четырех областей 8x8 в макроблоке 16x16, как описано выше. Этот "остаток" добавляется к вектору движения, и результат отправляется на приемник или сохраняется на DVD для каждого сжатого макроблока. Иногда подходящее совпадение не находится. В этом случае макроблок обрабатывается как макроблок I-кадра.
P frames provide more compression than I frames because they take advantage of the data in a previous I frame or P frame – a reference frame. To generate a P frame, the previous reference frame is reconstructed, just as it would be in a TV receiver or DVD player. The frame being compressed is divided into 16 pixel by 16 pixel macroblocks. Then, for each of those macroblocks, the reconstructed reference frame is searched to find a 16 by 16 area that closely matches the content of the macroblock being compressed. The offset is encoded as a "motion vector". Frequently, the offset is zero, but if something in the picture is moving, the offset might be something like 23 pixels to the right and 4 and a half pixels up. In MPEG 1 and MPEG 2, motion vector values can either represent integer offsets or half integer offsets. The match between the two regions will often not be perfect. To correct for this, the encoder takes the difference of all corresponding pixels of the two regions, and on that macroblock difference then computes the DCT and strings of coefficient values for the four 8×8 areas in the 16×16 macroblock as described above. This "residual" is appended to the motion vector and the result sent to the receiver or stored on the DVD for each macroblock being compressed. Sometimes no suitable match is found. Then, the macroblock is treated like an I frame macroblock.
Владельцы патентов
Следующие организации владели патентами на технологию видео MPEG 2, согласно списку MPEG LA. Срок действия всех этих патентов истек в США и большинстве других стран.
The following organizations have held patents for MPEG 2 video technology, as listed at MPEG LA. All of these patents are now expired in the US and most other territories.