Домашний компьютер 7 2006 (121)

ОглавлениеДобавить в закладки К обложке

Концерт по заявкам, или MPEG Авторы: Евгений Козловский, Сергей Блохин

© 2004, Издательский дом | http://www.computerra.ru/

Журнал «Домашний компьютер» | http://dk.compulenta.ru/

Этот материал Вы всегда сможете найти по его постоянному адресу: /2006/121/280029/

КОНЦЕРТ ПО ЗАЯВКАМ, или MPEG

Это не единственное письмо по вопросу MPEG-кодирования, но, пожалуй, самое, так сказать, исчерпывающее. И, в первую очередь, потому что «не единственное», во-вторую – потому что вопрос интересен по сути, особенно сегодня, когда домашнее видео становится все более распространенным. Поэтому мы и решили дать развернутый ответ.

Правда, в самом вопросе полно путаницы: Main Concent MPEG Encoder, Cinema Craft Encoder и Canopus Procoder – это действительно кодеры, а Pinnacle, Adobe и Ulead – это фирмы, производящие софт, который, в свою очередь, использует тот или иной кодер. Если отвечать коротко, то программные пакеты Adobe Premiere, Ulead MediaStudio Pro, Ulead DVD Movie Factory и Ulead DVD Workshop используют Main Concept MPEG Encoder, а программа Avid (бывший Pinnacle) Studio – кодировщик собственного изготовления и не особо высокого качества кодирования.

Если же подробнее, то сравнить MPEG-2-кодеры мы попросили одного из экспертов в области домашнего видео, автора ряда книг на эту тему, Сергея Блохнина, я же предваряю его статью популярным очерком о том, что из себя вообще представляет MPEG-2-кодирование. Именно популярным, потому что MPEG-2 – очень сложный алгоритм, и тем, кто всерьез этим вопросом заинтересуется, придется прочесть много специальной, переполненной формулами, литературы.

Итак, MPEG-2 придуман для уменьшения количества и потока видео, чтобы оно помещалось на доступные носители и проходило сквозь не особо толстые каналы передачи. Даже если не брать все более входящие в моду форматы High Definition Video (Видео Высокой Четкости), где несжатый видеопоток может заметно превышать 100 Мбит/с, а ограничиться более привычным STV (Стандартным Видео: PAL и NTSC), – минута несжатой движущейся картинки займет на диске (или кассете) целый гигабайт! Поток любопытствующие могут посчитать сами.

Сжимается видео двумя методами: статическими и динамическими. Статическое сжатие – это, в сущности, знакомый всем JPEG-формат. Он анализирует картинку на предмет повторяющихся фрагментов (по мелкости – вплоть до одного пикселя) и записывает их приблизительно так: «точка с параметрами RGB 212, 085, 110 повторяется подряд 24 раза, через 74 пикселя повторяется снова 45 раз…» То есть, вы вполне способны представить себе картинку с белым снежным полем или пасмурным, но без выраженных туч небом, – экономия может выйти очень и очень значительная. Такое сжатие, если оно записывается попиксельно, считается сжатием «без потерь», есть даже специальная разновидность BMP-формата, применяющая подобное сжатие, называется RLE. Однако на картинках с большим разнообразием объектов такая запись экономит уже не так много, и алгоритм (в зависимости от заданного вами конечного объема или условного «качества») выставляет некие огрубляющие условия. Например, точки с уровнем красного от 100 до 112 считать за одинаковые, с уровнем, скажем, 106. Или фрагменты, продолжающиеся не долее 6 пикселей, рассматривать как несуществующие, игнорировать, – и из картинки уходят мелочи, а цвета на ней становятся менее дифференцированными.

Это что касается собственно статического (или JPEG) сжатия, которое оперирует фактически каждым полноцветным пикселем картинки, описываемым тремя цветовыми байтами: 256 градаций красного, столько же – зеленого и столько же – синего. Но видео, для которого и был придуман MPEG, произрастает из старого аналогового телевидения, а оно, после ряда экспериментов, пришло к стандарту передачи цвета другим, цветоразностным, образом: в сигнале в первую очередь идет яркостная составляющая Y (это позволило на первых порах перехода к цветному телевидению организовать совместимость со старыми черно-белыми приемниками), потом – две цветоразностные, U и V, где желтый вычитается сначала из красного, а потом – из синего и множится на коэффициенты, полученные экспериментальным путем (подробнее этот предмет я рассмотрел в «Козлонке» «Y=0,299R+0,587G+0,114B, или Полтораста долларов коту под хвост», ДК #3_2005). Человеческий глаз по-разному воспринимает цвета, что отражают приведенные коэффициенты и что позволило авторам MPEG далеко не в каждом подформате передавать полностью и одну, и другую цветоразностную составляющую. Так, в наиболее распространенном варианте MPEG-сжатия эти данные записываются в формате 4:2:0, показывающим, что яркостная информация Y передается полным байтом, первая цветоразностная U – половинкой, а вторая, V, не передается вообще (цифры здесь довольно условны и тоже произросли из старого аналогового телевидения: 4 означает передачу 256 градаций, 2 – 128). Формат 4:2:0 отнюдь не означает, что мы не досчитаемся каких-то отдельных цветов – они на картинке останутся все, просто будут переданы с неидеальной, но для большинства глаз вполне достаточной точностью. То есть довольно условно цветоразностные составляющие сигнала U и V можно считать значениями по двум осям декартовых координат. Так вот, в MPEG с формулой 4:2:0 цвет записывается полный, но – лишь по одной координатной оси.


Логин
Пароль
Запомнить меня