Алгоритм сжатия MJPEG E-mail
Компрессия MJPEG [Motion JPEG] основывается на независимом кодировании каждого кадра и объединении полученной последовательности в файл. Сжатие видео осуществляется по JPEG-алгоритму: каждое изображение разбивается на квадраты 8x8 точек и представляется в векторной форме путем дискретного преобразования и высокочастотной фильтрации полученного спектра. По сути, сжатое видео представляет собой последовательность независимых JPEG-изображений.

Motion-JPEG (или M-JPEG) является наиболее простым алгоритмом сжатия видео. В нем каждый кадр сжимается независимо алгоритмом JPEG. Каждый кадр разбивается на блоки 8 х 8 пикселей, к видеосигналу применяется дискретное косинусное преобразование.
Даже не взирая на то, что Motion-JPEG позволяет получить только 5 – 10 кратную компрессию, что в 1,5 – 2 раза хуже, чем у Wavelet его целесообразно использовать в тех случаях, когда предполагается последующий монтаж и редактирование без потерь качества.
Этот алгоритм сжатия дает высокую скорость доступа к произвольным кадрам, как в прямом, так и в обратном порядке следования. Соответственно легко реализуются плавные "перемотки" в обоих направлениях, аудио-визуальная синхронизация.
Типичные операции JPEG сейчас поддерживаются на аппаратном уровне большинством видеокарт и данный формат позволяет легко оперировать большими объемами данных при монтаже фильмов. Независимое сжатие отдельных кадров позволяет накладывать различные эффекты, не опасаясь, что взаимное влияние соседних кадров внесет дополнительные искажения в фильм, что возможно при использовании потоковых методов сжатия.

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

Применительно к MJPEG степень сжатия видео до 1:15 позволяет сохранять видеоинформацию практически без потери качества, от 1:15 до 1:25 приводит к небольшой потере разрешения. При большом коэффициенте компрессии [1:30 и выше] сжатие видео по алгоритму MJPEG сопровождается характерными для формата JPEG искажениями: на границах сетки разбиения [квадраты 8x8 точек] нарушается гладкость изображения, что приводит к уже известному "мозаичному" эффекту.
Из других недостатков формата сжатия MJPEG можно отметить не очень большую эффективность сжатия, а также невозможность создания видеофрагментов размером более 2 Гб, - структура файла не позволяет увеличить его размер. В настоящее время применяются программные методы "склейки" MJPEG-файлов, позволяющие переключаться между ними практически незаметно.

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

Описание формата MJPEG


Компрессия видео по технологии MJPEG состоит в использовании так называемого адаптивного сжатия, когда записываются только изменения, произошедшие в видеосигнале. Это позволяет осуществить сжатие видео сигнала с коэффициентом 1:15 и выше - в зависимости от требуемого разрешения изображения.
Степень сжатия видео до 1:15 позволяет сохранять видеоинформацию практически без потери качества, от 1:15 до 1:25 приводит к небольшой потери разрешения, а 1:30 и выше - к существенному его снижению.

Физику сжатия видео проще всего объяснить на примере человеческого зрения. Принято считать, что глаз человека может воспринять 700 Мб видеоинформации в секунду. Однако наш мозг использует лишь 1/1 000 долю этой информации, выбирая ту ее часть, в которой происходят резкие изменения. Порог быстроты изменений, начиная с которого информация воспринимается наиболее полно, зависит от важности происходящего события. Точно также и при MJPEG сжатии видео в зависимости от выставленного в программе "уровня внимания" записываются все более или менее крупные изменения изображения. Чем выше "уровень внимания", тем больше объем записываемой информации и, соответственно, меньше степень сжатия видео.

Разберемся теперь с арифметикой сжатия видео. Объем информации одного кадра видеосигнала стандартного разрешения составляет 650 Кб для цветного PAL-сигнала и 450 Кб для черно-белого сигнала формата CCIR. Для приблизительной оценки объема одного кадра в килобайтах "на глаз" можно взять разрешение камеры наблюдения в телевизионных линиях и умножить на 2 для цветного и на 1,2 для черно-белого видеосигнала. Следовательно, зная объем жесткого диска V и коэффициент сжатия видеоQ, можно определить максимальное число кадров M, умещающихся на диске:

M = V / [Q x 650 000] - для цветного сигнала и
M = V / [Q x 450 000] - для черно-белого сигнала

После сжатия видео по алгоритму MJPEG с коэффициентом Q = 1:25 получаем объем файла одного кадра 26 Кб и 18 Кб соответственно:

M = V / 26 000 - для цветного сигнала и
M = V / 18 000 - для черно-белого сигнала

При объеме жесткого диска 2 Гб для цветного PAL-видеосигнала M = 76923 кадров, что при непрерывной записи без покадровой выборки [25 кадров в секунду] обеспечивает продолжительность записи порядка 50 минут. При применении покадровой выборки и использовании жестких дисков большей емкости максимальное время записи увеличивается линейно.
 
« Пред.   След. »