Добро пожаловать, Гость!
Вход  Регистрация

Как работают видео-кодеки в современных фотоаппаратах

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

Без разницы, хотите вы крутую зеркалку, или просто решили заменить свою старую мыльницу на хоть и простой, но проверенный аппарат уровня Canon PowerShot.

А здесь начинается самое интересное. Уже несколько лет как производители, оснастив фотоаппараты возможностью записывать видео, заложили в них два различных подхода к видению мира - два формата.

А именно:

1. Кодек MPEG-4 H.264/AVC

Об этой технологии говорить можно долго. В рамках MPEG-4, рекомендация ITU-T (Сектор стандартизации электросвязи Международного союза электросвязи) H.264/AVC позволяет создавать видеоролики форматов HD-ready (1080 x 720) и Full-HD (1920 x 1280) с очень высоким визуальным качеством.

При этом файлы довольно компактны и получасовой ролик занимает порядка 300 Мб на диске. Алгоритм сжатия предполагает использование одного опорного кадра и до 32-х связанных кадров, основанных на опорном (так называемые B и P кадры).

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

Таким образом, устраняется избыточность и данные без видимых потерь в качестве представляются довольно компактно. Так, к примеру, ролик типа "говорящая голова" часовой длительности будет весить совсем не много.




Стоп-кадр видеоролика, сжатого кодеком MPEG-4 H.264/AVC.
Это очень привлекательно, так как благодаря такой оптимизации можно сэкономить дисковое пространство для других видео и фото.

2. Кодек M-JPEG

Как и его собрат, рекомендация использует алгоритм JPEG для сжатия кадров, но зависимость между кадрами не используется.

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

"Зачем же мне тогда такой кодек?" - спросит читатель. А дело вот в чём. Каждый кадр, сжатый по стандарту M-JPEG, будет гораздо качественнее, нежели в предыдущем случае. Это оказывается полезным, если нужно сделать очень чёткий - до мелочей, стоп-кадр, к примеру, для распечатки фото.

Да и ролик, снятый в этом формате, нередко по качеству превосходит своего конкурента. Но - в ущерб объёму, так как файлы, сжатые кодеком M-JPEG, могут занимать в разы больше места на диске.

Неспроста на данный момент профессиональные камеры наружного наблюдения работают именно с этим кодеком, поскольку на стоп-кадре их видеороликов можно разглядеть мельчайшие детали – номер авто, физиономию злоумышленника и т.д.




Стоп-кадр видеоролика, сжатого кодеком M-JPEG.
Какой кодек для вас предпочтительнее – решение индивидуальное. Для фотокамер – формула такая:

MPEG-4 H.264 = M-JPEG + флешка на 8-16 Гб.

Сейчас же лучше всего – смотреть самому в паспорт конкретной модели уже при покупке, ведь оба кодека равномерно распределены среди Самсунгов, Канонов, Никонов и прочих моделей фотоаппаратов.

Ходят слухи, что скоро кодек M-JPEG уйдёт на полку истории, замещённый семейством MPEG. Однако, в лагере M-JPEG тоже не сидят сложа руки. Уже есть новые, воплощённые в жизнь разработки.

Так, при использовании в качестве базы для покадровой компрессии технологии Jpeg2000, вместо JPEG, при том же уровне качества возможно получить выигрыш по коэффициенту сжатия до нескольких раз.

Технология М-Jpeg2000 принята как стандарт, но на данный момент процент фотокамер, использующих данную систему сжатия пока невелик.

Из личного опыта автора

Яркие представители устройств, с которыми пришлось работать – Canon PowerShot A2500, использующий MPEG-4/H.264 а также – Nikon CoolPix L27 c кодеком M-JPEG.

Оба создавали ролики достаточно высокого качества. На низком и среднем разрешении (640 x 480 для Canon PowerShot A2500, а также 640 x 480 и 800 x 600 для Nikon CoolPix L27) ролики продолжительностью в несколько минут достигали максимум десятков Мб.

При этом дисковое пространство флеш-накопителей обоих фотоаппаратов использовалось рационально.

В режиме HD-ready картина изменилась. В течение 10-15 минут двухгигабайтная флешка на Никоне оказывалась заполненной наполовину.

По мнению автора, для рядового пользователя нет особой разницы между первым и вторым семействами кодеков. Современная фотокамера – без сомнения, весьма полезное и универсальное устройство.

Однако, всё-таки, она по сути своей не предназначена для съёмки длительных роликов. Это относится и к эргономике (через несколько минут съёмки руки устают и кадры начинают "плясать") и к энергопотреблению.

Есть возможность напрямую проследить различия кодеков, когда вы вдруг решите перекодировать видео, имея под рукой, например, программу Seven Converter, либо Total Video Converter.

С их помощью можно отслеживать изменение размера выходного видеофайла при одном и том же заданном качестве, используя различные кодеки.

Однако, "заданное качество" в большинстве конвертеров – понятие, скорее, гипотетическое и разделяется на уровни Low, Normal и High, без строгого указания конкретных цифровых параметров.




Интерфейс выбора применяемого кодека и формата выходного файла программы Total Video Converter.
Помимо этого, Total Video Converter позволяет преобразовать видеоролик в массив кадров, представленных последовательностью файлов формата JPEG.

Очевидно, что количество созданных файлов при этом равно произведению длительности ролика в секундах на количество кадров в секунду, а это 25 либо 30.

Раскладывая таким образом видеоролик, изначально сжатый по принципу M-JPEG, можно получить довольно неплохие образцы для последующей печати фото.

А вот проследить взаимосвязь опорных и связанных кадров, а тем более – отделить кадры, кодируемые независимо и кадры, в которых присутствуют лишь изменения текущей сцены относительно опорного, не выйдет.

Это по причине того, что при конвертации ролика в последовательность JPEG-изображений, опорный кадр автоматически включается в каждый из связанных файлов в роли подложки.