Какова причина/использование / причина блоков, которые появляются в видео с высоким сжатием?


Будьте терпеливы, так как я не очень много работал с алгоритмами сжатия, поэтому это может быть очевидно для некоторых из вас. Что-то я всегда замечал, когда какое-то потоковое видео начинает отставать. Я понял, что мне было любопытно, только когда посмотрел на этот вопрос:

Twitter image encoding challenge

Я говорю не о самих пикселях, а скорее о сетке, которая является результатом сжатия. О каком алгоритме или технике идет речь? Что ты можешь расскажи мне об этом?

3 2

3 ответа:

Взгляните на эту статью Википедии ОMPEG-2 . Процитируем его часть:

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

Другими словами, сетчатая структура, которую вы видите, является прямым следствием применения этого DCT к блокам пикселей 8x8.

Обоснование блоков связано с компромиссом между местоположением и частотой. Изображение разбивается на блоки перед сжатием в спектральной области (DCT ) так, чтобы артефакты, вызванные сжатием, были более локализованы. В стандартном JPEG блоки имеют постоянный размер на всей картинке. Для более поздних форматов, таких как JPEG2000, блоки адаптируются к изображению, используя вейвлеты. Я не знаком с подробностями видеоформатов, но обоснование то же самое.

Это это то же самое явление для кодирования Аудио (mp3): вместо вычисления спектра на весь аудиофайл, вы разделяете файл на несколько секций нескольких сэмплов (несколько сотен, как правило, для сигналов 44,1 кГц). И точно так же, если есть повреждение сжатых данных (сеть, поврежденный файл), вы услышите шумы, которые связаны с отсутствующими окнами.

Это называется Макроблокирование.