
- •Video cd
- •2 Методы сжатия
- •2.1 Технологии сжатия цифрового видео
- •3 Технологии и алгоритмы сжатия видео
- •3.1 Run Length Encoding
- •3.2 Векторная квантизация (Vector Quantization,vq)
- •3.3 Дискретное Косинусное Преобразование (дкп)
- •3.4 Дискретное Wavelet-преобразование (dwt)
- •3.5 Разница кадров
- •3.6 Mpeg (mpeg-1, mpeg-2, mpeg-3, mpeg-4)
- •3.7 Mjpeg
- •3.8 Wavelet
- •3.9 Jpeg
- •3.10 Apple QuickTime
- •3.11 Intel Indeo
- •3.12 Ccir 601
- •3.13 H.261
- •3.14 H.263
- •3.15 Ogg-Theora
- •3.16 Avi
- •3.17 Editable mpeg
- •3.18 VdoWave
- •3.19 Cinepak
- •3.20 Microsoft Video (msvc)
3.7 Mjpeg
MPEG-компрессия использует следующие основные идеи:
Устранение временной избыточности видео, учитывающее тот факт, что в пределах коротких интервалов времени большинство фрагментов сцены оказываются неподвижными или незначительно смещаются по полю.
Устранение пространственной избыточности изображений подавлением мелких деталей сцены, несущественных для визуального восприятия человеком;
Использование более низкого цветового разрешения при yuv-представлении изображений (y - яркость, u и v - цветоразностные сигналы) - установлено, что глаз менее чувствителен к пространственным изменениям оттенков цвета по сравнению с изменениями яркости.
Повышение информационной плотности результирующего цифрового потока путем выбора оптимального математического кода для его описания (например, использование более коротких кодовых слов для наиболее часто повторяемых значений).
Изображения в Mpeg-последовательности подразделяются на следующие типы:
I (intra), играющие роль опорных при восстановлении остальных изображений по их разностям;
P (predicted), содержащие разность текущего изображения с предыдущим I или P с учетом смещений отдельных фрагментов;
B (bidirectionally predicted), содержащие разность текущего изображения с предыдущим и последующим изображениями типов I или P с учетом смещений отдельных фрагментов.
Изображения объединяются в группы (GOP - Group Of Pictures), представляющие собой минимальный повторяемый набор последовательных изображений, которые могут быть декодированы независимо от других изображений в последовательности. Типичной является группа вида (I0 B1 B2 P3 B4 B5 P6 B7 B8 P9 B10 B11) (I12 B13 B14 P15 B16 B17 P18…), в которой I тип повторяется каждые полсекунды. Обратим внимание, что в изображении P3 основная часть фрагментов сцены предсказывается на основании соответствующих смещенных фрагментов изображения I0. Собственно кодированию подвергаются только разности этих пар фрагментов. Аналогично P6 «строится» на базе P3, P9 - на базе P6 и т.д. В то же время большинство фрагментов B1 и B2 предсказываются как полусумма смещенных фрагментов из I0 и P3, B4 и B5 - из P3 и P6, B7 и B8 - из P6 и P9 и т.д. Наряду с этим B-изображения не используются для предсказания никаких других изображений. В силу зависимости изображений в процессе их кодирования меняется порядок следования. Для вышеприведенной последовательности он будет следующим: I0 P3 B1 B2 P6 B4 B5 P9 B7 B8 I12 B10 B11 P15 B13 B14 P18 B16 B17…
Ясно, что точность кодирования должна быть максимальной для I, ниже - для P, минимальной - для B. Установлено, что для типичных сцен хорошие результаты достигаются при отведении числа бит для I в 3 раза больше, чем для P , и для P в 2-5 раз больше, чем для B. Эти отношения уменьшаются для динамичных сцен и увеличиваются для статичных.
Отдельные изображения состоят из макроблоков. Макроблок - это основная структурная единица фрагментации изображения. Он соответствует участку изображения размером 16*16 пикселов. Именно для них определяются вектора смещения относительно I- или P-изображений. Общее число макроблоков в изображении - 396. Для повышения устойчивости процесса восстановления изображений к возможным ошибкам передачи данных последовательные макроблоки объединяют в независимые друг от друга разделы (slices), максимальным числом 396. В предельном случае «чистой» передачи на изображение приходится всего один раздел из 396 макроблоков. В свою очередь каждый макроблок состоит из шести блоков, четыре из которых несут информацию о яркости Y, а по одному определяют цветовые U- и V-компоненты. Каждый блок представляет собой матрицу 8*8 элементов. Блоки являются базовыми структурными единицами, над которыми осуществляются основные операции кодирования, в том числе выполняется дискретное косинусное преобразование (DCT - Discrete Cosine Transform) и квантование полученных коэффициентов.
Таким образом, компрессия MJPEG [Motion JPEG] основывается на независимом кодировании каждого кадра и объединении полученной последовательности в файл. Сжатие видео осуществляется по JPEG-алгоритму: каждое изображение разбивается на квадраты 8x8 точек и представляется в векторной форме путем дискретного преобразования и высокочастотной фильтрации полученного спектра. По сути, сжатое видео представляет собой последовательность независимых JPEG-изображений.
Поскольку каждый кадр кодируется отдельно от других, возможно последующее покадровое редактирование изображения. Существенным преимуществом этого алгоритма сжатия видео является его симметричность, то есть для кодирования и декодирования необходимы одни и те же вычислительные затраты.
Применительно к MJPEG степень сжатия видео до 1:15 позволяет сохранять видеоинформацию практически без потери качества, от 1:15 до 1:25 приводит к небольшой потере разрешения. При большом коэффициенте компрессии [1:30 и выше] сжатие видео по алгоритму MJPEG сопровождается характерными для формата JPEG искажениями: на границах сетки разбиения [квадраты 8x8 точек] нарушается гладкость изображения, что приводит к уже известному "мозаичному" эффекту. Из других недостатков формата сжатия MJPEG можно отметить не очень большую эффективность сжатия, а также невозможность создания видеофрагментов размером более 2 Гб, - структура файла не позволяет увеличить его размер. В настоящее время применяются программные методы "склейки" MJPEG-файлов, позволяющие переключаться между ними практически незаметно.
Несколько лет назад компрессия MJPEG стала стандартом в области мультимедиа, что побудило разработчиков аппаратного и программного обеспечения к созданию собственных MJPEG-кодеков.
Формат использует простую обработку кодированного аналогового видеосигнала по стандарту JPG (с разрешением 768х576 точек). Расшифровывается как Motion-JPEG (движущийся JPEG). На сегодняшний день этот формат практически не используется, т.к. качественно сжатые ролики занимают достаточно много места. В некоторых моделях устройств (например, фотокамерах с функцией видео) встречается упрощенный вариант M-JPEG с разрешением 320х240 точек.