Что такое "Закон восьми"?

Изучая этот документ в Evolution of JPEG, я наткнулся на" Закон восьми в разделе 7.3 вышеуказанного документа.

Несмотря на введение других размеров блоков от 1 до 16 с расширением SmartScale, помимо фиксированного размера 8 в исходном стандарте JPEG, факт остается фактом: размер блока 8 по-прежнему будет значением по умолчанию, а все остальные -size DCT масштабируются относительно стандартного DCT 8x8.

" Закон восьмерки" объясняет, почему размер 8 является правильным значением по умолчанию и ссылочным значением для размера DCT.

Мой вопрос

Что именно этот "закон восьми"?

  • Исторически было проведено исследование, которое оценивало многочисленные изображения из выборки, чтобы прийти к выводу, что блок 8x8 содержит достаточное количество избыточных данных для поддержки методов сжатия с использованием DCT? С очень большими размерами изображений, такими как 8M (4Kx4K), быстро становящимися нормой в большинстве цифровых изображений/видео, это предположение все еще актуально?

  • Еще одна историческая причина ограничить макроблок до 8x8 была бы чрезмерно непонятным размерным размером изображения для больших макроблоков. С современными суперскалярными архитектурами (например, CUDA) это ограничение больше не применяется.

Ранее существовали аналогичные вопросы - 1, 2 и 3. Но никто из них не беспокоится о каких-либо деталях/ссылках/ссылках на этот таинственный фундаментальный "закон восьми".


<суб > 1. Ссылки/выдержки/подробности оригинального исследования будут высоко оценены, так как я хотел бы повторить его с помощью современного набора данных с изображениями большого размера, чтобы проверить правильность оптимальных макрокоманд 8x8. Суб >

<суб > 2. Если аналогичное исследование было недавно проведено, ссылки на него также приветствуются. Суб >

<суб > 3. Я делаю понимаю, что SmartScale спорный. Без каких-либо явных потенциальных преимуществ 1 в лучшем случае это сопоставимо с другими обратными совместимыми расширениями стандарта jpeg 2. Моя цель состоит в том, чтобы понять, действительно ли исходные причины выбора 8x8 в качестве размера блока DCT (в стандарте сжатия jpeg), поэтому мне нужно знать, что такое закон восьми. Суб >

Ответ 1

Я понимаю, что Закон восьми - это просто юмористическая ссылка на то, что алгоритм Baseline JPEG предписывал 8x8 как единственный размер блока.

P.S. Другими словами, "Закон восьмерки" - это способ объяснить, почему "все DCT других размеров масштабируются по отношению к 8x8 DCT", внося историческую перспективу - отсутствие поддержки любого другого размера в исходном стандарте и его реализациях defacto.

Следующий вопрос: почему Восемь? (Отметьте, что, несмотря на то, что это правильный вопрос, это не является предметом настоящего обсуждения, которое все равно будет актуальным, даже если другое значение было выбрано исторически, например "Закон десяти" или "Закон тридцати двух".) Ответ на этот вопрос таков: поскольку вычислительная сложность проблемы возрастает как O(N^2) (если не использовать алгоритмы класса FCT, которые медленнее растут как O(N log N), но сложнее реализовать на примитивном оборудовании встроенных платформ, следовательно, ограниченные возможности применения) поэтому большие размеры блоков быстро становятся непрактичными. Именно поэтому был выбран 8x8, настолько мал, чтобы быть практичным на широком спектре платформ, но достаточно большой, чтобы допускать не слишком грубый контроль уровней квантования для разных частот.

Поскольку стандарт явно поцарапал зуд, вокруг него быстро обострилась целая экосфера, , включая реализации, оптимизированные для 8x8, в качестве единственного поддерживаемого размера блока. Как только экосфера была на месте, стало невозможно изменить размер блока без нарушения существующих реализаций. Поскольку это было крайне нежелательно, любые настройки параметров DCT/квантования должны были оставаться совместимыми с 8x8-единственными декодерами. Я считаю, что это соображение должно быть тем, что называется "Законом восьми".

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