Опрос

Какой архиватор наиболее эффективный?:

Новички

Виктор Васильев
Юрий Антонов
Сергей Андреевич
Генадий
Avanasy

Другие пути повышения степени сжатия

Описанный выше алгоритм в целом крайне близок к большинству при­меняемых сейчас на практике алгоритмам сжатия видео. Однако новые (или хорошо забытые старые) идеи появляются ежегодно. Если для алгоритмов сжатия без потерь можно говорить о росте степени сжатия на 1 % в год (от­носительно предыдущего года) для достаточно большого тестового массива данных, то для алгоритмов сжатия видео речь обычно идет о 3-5 % прибав­ки степени сжатия для достаточно большого видеофрагмента при том же визуальном качестве.

Если, с одной стороны, повышается степень сжатия, то, с другой сторо­ны, растет сложность программы и падает скорость работы как при ком­прессии так и при декомпрессии.

Перечислим основные пути повышения степени сжатия.

Изменение алгоритма сжатия I-кадров. Выше приведен алгоритм, ос­нованный на ДКП. Сегодня все чаще используются алгоритмы, основанные на вэйвлетах (см. описание JPEG 2000).

Изменение алгоритма сжатия без потерь. Выше приведен алгоритм, использующий сжатие по алгоритму Хаффмана. Однако недавно закончил­ся основной патент на арифметическое сжатие (дающее преимущество 2-15 %), и соответственно, все чаще используется именно оно.

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

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

Применение обработки получающихся кадров. Известная беда алго­ритмов сжатия изображений - неизбежная "блочность" (хорошо заметные границы макроблоков). В принципе существуют алгоритмы, работающие с кадром совсем без применения блоков (даже без векторов смещения бло­ков), но такой подход пока не оправдывает себя ни по степени сжатия, ни по скорости работы декодера. Однако можно построить достаточно быстрые алгоритмы постобработки, которые достаточно аккуратно уберут видимые границы между блоками, не внося существенных помех в само изображе­ние. Существуют также алгоритмы, устраняющие на лету эффект Гиббса (см. описание JPEG), и т. п. Таким образом, существенно улучшается визу­альное качество изображения. Это также означает, что можно повысить степень сжатия при том же визуальном качестве.

Улучшение алгоритмов масштабирования изображений. Как прави­ло, видео на компьютере просматривают во весь экран. При этом даже при­менение очень простого и быстрого кусочно-линейного масштабирования способно кардинально снизить скорость проигрывания ролика. То есть примитивная операция масштабирования изображения будет работать за­метно дольше, чем сложный алгоритм декодера. Однако скорости совре­менных компьютеров быстро растут, и те алгоритмы, что вызывали падение скорости до 7 кадров в секунду на Celerpn-300, дают живое видео - больше 30 кадров - на Р4-1200 (начинает использоваться расширенный набор ко­манд и т. п.). Появляется возможность использовать более сложные и каче­ственные алгоритмы масштабирования на весь экран, получая более высокое качество, чем для использовавшейся ранее билинейной интерполяции (в большинстве видеокарт реализованной аппаратно).

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

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

. изображения не изменяется, однако после декодера мы получаем сущест-

1 венно более качественное изображение.

Выше перечислены лишь отдельные направления работы. Фактически за г 90-е гг. изменения и улучшения коснулись всех модулей алгоритма, постро-■ енного по классической схеме. Свою лепту в этот процесс вносят также • производители микропроцессоров, и в особенности Intel. Процессоры, на-; чиная с Р4, специально предназначены для обработки потоковых данных. Особенности архитектуры процессора (в частности, небольшой по сравне­нию с процессорами AMD кеш первого уровня) дают значительное пре­имущество одним алгоритмам и делают неэффективными другие. Однако общее совершенствование алгоритмов сжатия видео идет очень быстро, и в ближайшее время можно ожидать только увеличения скорости появления новых разработок.