Как работает сжатие MPEG4? - PullRequest
       8

Как работает сжатие MPEG4?

18 голосов
/ 27 февраля 2009

Может ли кто-нибудь объяснить простым и понятным образом, как MPEG4 работает для сжатия данных. Я в основном заинтересован в видео. Я знаю, что есть разные стандарты или части к нему. Я просто ищу преобладающий метод сжатия, если он есть с MPEG4.

Ответы [ 4 ]

36 голосов
/ 23 марта 2009

MPEG-4 является огромным стандартом и использует много методов для достижения высоких степеней сжатия, на которые он способен.

Как правило, сжатие видео связано с тем, чтобы выбрасывать как можно больше информации при минимальном влиянии на качество просмотра для конечного пользователя. Например, при использовании субдискретизации YUV вместо RGB размер видео сразу уменьшается вдвое. Это возможно, поскольку человеческий глаз менее чувствителен к цвету, чем к яркости. В YUV значение Y является яркостью, а значения U и V представляют цвет. Поэтому вы можете выбросить некоторую информацию о цвете, которая уменьшает размер файла, и зритель не заметит никакой разницы.

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

Временная избыточность отмечает, что последовательные кадры в видеопоследовательности очень похожи. Обычно видео будет порядка 20-30 кадров в секунду, и ничего не изменится за 1/30 секунды. Возьмите любой DVD и сделайте паузу, затем переместите его на один кадр и обратите внимание, насколько похожи эти 2 изображения. Таким образом, вместо того чтобы кодировать каждый кадр независимо, MPEG-4 (и другие стандарты сжатия) кодируют только разницу между последовательными кадрами (используя оценка движения , чтобы найти разницу между кадрами)

Пространственная избыточность использует преимущество того факта, что в общем случае распространение цвета по изображениям имеет тенденцию быть довольно низкой частотой. Под этим я подразумеваю, что соседние пиксели, как правило, имеют похожие цвета. Например, на изображении вас, одетого в красную перемычку, все пиксели, представляющие вашу перемычку, будут иметь очень похожий цвет. Можно использовать DCT для преобразования значений пикселей в частотное пространство, где может быть выброшена некоторая высокочастотная информация. Затем, когда выполняется обратное DCT (во время декодирования), изображение теперь без выброшенной высокочастотной информации.

Чтобы просмотреть эффекты отбрасывания высокочастотной информации, откройте MS paint и нарисуйте серию чередующихся горизонтальных и вертикальных черных линий. Сохраните изображение в формате JPEG (который также использует DCT для сжатия). Теперь увеличьте изображение, обратите внимание, что края линий уже не такие острые и выглядят немного размытыми. Это связано с тем, что некоторая высокочастотная информация (переход от черного к белому) была выброшена во время сжатия. Прочитайте это для объяснения с красивыми картинками

Для дальнейшего чтения, эта книга довольно хорошая, хотя и немного тяжелая по математике.

4 голосов
/ 27 февраля 2009

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

Это не полностью отличается от методов, используемых JPEG.

1 голос
/ 22 января 2012

Острые края, безусловно, содержат высокие частоты. Уменьшение или устранение высоких частот снижает резкость краев. Мелкие детали, включая острые края, удаляются с помощью высокочастотного удаления - возможность разрешения 2 небольших объектов удаляется с высокими частотами - тогда вы видите только один.

1 голос
/ 27 февраля 2009

MPEG4 использует различные методы сжатия видео.

Если вы еще не смотрели википедию, это будет хорошая отправная точка .

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

...