November 2019

S M T W T F S
      12
34 5 678 9
10111213141516
17181920212223
24252627282930

Style Credit

Expand Cut Tags

No cut tags
Thursday, January 17th, 2008 07:33 am
Остальные части

Когда говорят о MPEG2, в первую очередь подразумевают видео, которым мы сейчас и займёмся. В общих чертах, конечно.

На самом деле, стандарт MPEG2 включает в себя много всего другого, в частности, кодирование аудио, разбивку данных на пакеты, объединение пакетов в потоки, мультиплексирование потоков, служебную информацию, и прочая, и прочая. Всё это подробно, с картинками и формулами, описано в группе документов под общим названием ISO/IEC 13818.

Кодирование видео описано во второй части стандарта, которую любой желающий может купить себе всего за каких-то 244 швейцарских франка. Если купите, не забудьте прислать мне. Вместе с остальными девятью частями.

Изначально (или после оцифровки) цифровое видео представляет собой набор кадров, каждый из которых состоит из цветных пикселов. Ну, иногда чёрно-белых, но это частный случай цветных.
Кадры должны показываться с определённой частотой.

Количество строк в кадре происходит от систем аналогового телевидения: 576 для PAL и SECAM, 480 для NTSC, либо вдвое уменьшенное: 288 или 240, как в бытовых видеомагнитофонах соответствующих систем.

Количество точек в строке в аналоговом телевидении не имееет физического смысла, по какому принципу оно было выбрано в MPEG2, я не знаю. Их бывает 720, 704, 640, 544, 480 или 352. Все эти числа нацело делятся на 16, что связано с особенностями алгоритмов кодирования.

Замечу, что обычное соотношение сторон кадра - 4:3. Поэтому в абсолютном большинстве случаев пикселы в кадре получаются вовсе не квадратные. Единственное исключение - 640x480. Правда, при кодировании и декодировании это никакого значения не имеет, это следует учитывать только при собственно показе видео.

А ещё от аналогового телевидения по наследству передалась частота кадров - 25 для PAL/SECAM, 24/1.001, 24, 30/1.001 и 30 для NTSC.

И возможность чересстрочной развертки (interlacing), которую изобрели в древности в связи с ограниченностью технических возможностей тогдашних телевизионных приемников, тоже пришла из аналогового телевидения.

Проблема была в том, что пока луч в кинескопе доходил до нижней части экрана, в верхней люминофор уже начинал гаснуть, и картинка ощутимо мерцала. Для борьбы с этим явлением придумали поделить кадр на две половины - сначала рисовать четные строки, потом нечётные. А чтобы картинка при показе выглядела цельной, эти две половины сдвинуты по времени на полкадра (1/50 секунды для PAL/SECAM). С телевизорами-то всё нормально, а вот если оба полукадра выводить вместе и с обычной частотой - 25 кадров/с - на устройство с прогрессивной развёрткой (все строки по порядку), например, на компьютерный монитор, то из-за временнОго сдвига половины строк появляется гребёнка.

Современные телевизоры уже давно научились прогрессивной развёртке без мерцания, но чересстрочная так прочно укоренилась, что переползла и в цифровое телевидение, и доставляет много головной боли. Гребёнка, возникающая при перекодировании некоторых DVD в DivX - это она самая.

Upd: как справедливо написал в комментах [livejournal.com profile] jorje, чересстрочность позволяет при просмотре получить более плавные движения из-за фактически удвоенной частоты кадров. Видимо, поэтому она до сих пор и существует.
Вот тут можно почитать (на английском) про телевизионные стандарты и чересстрочность и посмотреть в картинках.

Прогрессивная развёртка в MPEG2 также присутствует.

Ещё раз уточняю, что говорить о PAL, SECAM или NTSC применительно к цифровому изображению - неправильно. Это аналоговые стандарты, от которых в цифре остались только некоторые очень отдельные параметры.

Кроме вышеуказанных, для телевидения высокой чёткости определены и другие варианты размеров кадра, вплоть до 1920 x 1080 пикселов.
Tags:
Thursday, January 17th, 2008 08:21 am (UTC)
Почему нельзя на компьютере чересстрочную картинку выводить на монитор в два полукадра с удвоенной частотой (50 полукадров в секунду), я не знаю.
Можно. PowerDVD так делает когда interlaced dvd проигрывает.