УМЕНЬШЕННОЕ РАССОГЛАСОВАНИЕ КОЭФФИЦИЕНТОВ УСИЛЕНИЯ ПОСТОЯННОЙ СОСТОВЛЯЮЩЕЙ (DC) И DC-УТЕЧКИ ПРИ ОБРАБОТКЕ ПРЕОБРАЗОВАНИЯ С ПЕРЕКРЫТИЕМ
REDUCED DC GAIN MISMATCH AND DC LEAKAGE IN OVERLAP TRANSFORM PROCESSING

УРОВЕНЬ ТЕХНИКИ
Кодирование с преобразованием является методом сжатия, используемым во многих системах сжатия аудио, изображений и видео. Несжатые цифровые изображения и видео обычно представлены в виде или захвачены как выборки элементов или цветов изображения в местоположениях кадра изображения или видео, скомпонованных в двумерную (2D) решетку. Это стандартно относится к представлению в пространственной области изображения или видео. Например, типичный формат изображения прямоугольной формы состоит из трех двумерных массивов 8-битных цветовых выборок. Каждая выборка является числом, представляющим значение компонента цвета в пространственном местоположении в сетке, где каждый компонент цвета представляет собой амплитуду вдоль оси координат в пределах цветового пространства, такого как RGB или YUV и других. Индивидуальная выборка в одном из этих массивов может называться пикселем. (В другом известном варианте использования термин пиксель является названием n-кратных выборок n компонентов цвета, которые совмещены в пространстве  например, для указания на 3-кратную группу R, G и B значений компонентов цвета для данного пространственного местоположения,  однако альтернативно в настоящем документе этот термин используют для ссылки на выборку скалярных значений). Различные системы изображения и видео могут использовать разные цветовое, пространственное и временное разрешения при взятии выборок. Аналогично, цифровое аудио обычно представлено как дискретизированный по времени поток аудио сигнала. Например, типичный аудиоформат состоит из потока выборок аудиосигнала с 16-битной амплитудой, представляющих собой амплитуды аудиосигнала в равноудаленные моменты времени.
Несжатое цифровое аудио, изображения или видеосигналы могут потреблять значительную емкость при хранении и передаче. Кодирование с преобразованием может использоваться вместе с другими методами кодирования для уменьшения количества данных для представления такого цифрового аудио, изображений и видео, например, посредством преобразования представления в пространственной области (или во временной области) сигнала в представление в частотной области (или в другую похожую область преобразования), чтобы сделать возможным последующее уменьшение количества данных, необходимых для представления сигнала. Уменьшение количества данных обычно выполняется посредством применения процесса, известного как квантование, или посредством выборочного отбрасывания определенных частотных составляющих представления в области преобразования (или с помощью их комбинации), за которым следует применение методов энтропийного кодирования, таких как адаптивное кодирование Хаффмана или адаптивное арифметическое кодирование. Процесс квантования может применяться выборочно, на основе оцененной степени чувствительности восприятия индивидуальных частотных составляющих или на основе других критериев. Для данной скорости передачи выходных данных соответствующее применение кодирования с преобразованием обычно дает гораздо менее ощутимую деградацию цифрового сигнала, в сравнении с уменьшением качества цветовой выборки или пространственного разрешения изображений или видео непосредственно в пространственной области или аудио во временной области.
1
n
Более конкретно, типичная технология кодирования, основанная на блочном преобразовании, делит несжатые пиксели цифрового изображения на двумерные блоки фиксированного размера (X, ... X). Линейное преобразование, которое выполняет пространственно-частотный анализ, применяется к данному блоку, которое конвертирует выборки в пространственной области внутри блока в набор частотных коэффициентов (или коэффициентов преобразования), обычно представляющих собой интенсивность цифрового сигнала в соответствующих частотных полосах на протяжении блочного интервала. Для сжатия коэффициенты преобразования могут квантоваться (то есть может быть уменьшена точность, например, посредством отбрасывания наименьших значащих битов значений коэффициента или, иначе, отображения значений в наборе чисел с более высокой точностью в значения более низкой точности), а также кодироваться энтропийно или с переменной длиной кода в поток сжатых данных. При декодировании, коэффициенты преобразования будут обратно квантоваться и обратно преобразовываться назад в пространственную область, чтобы приближенно восстанавливать исходный сигнал изображения/видео, подвергнутый цветовой и пространственной дискретизации (восстановленные блоки ).
Способность использовать корреляцию выборок в блоке и таким образом максимизировать возможность сжатия является главным требованием при проектировании преобразования. Во многих приложениях кодирования, основанного на блочном преобразовании, преобразование должно быть обратимым, чтобы поддерживать сжатие с потерями и сжатие без потерь, в зависимости от операции квантования, примененной в области преобразований. Без применения квантования, например, кодирование, которое использует обратимое преобразование, может осуществить точное восстановление входных данных после применения соответствующего декодирования. Однако требование обратимости в этих приложениях ограничивает выбор преобразований, на которых может быть разработана технология кодирования. Сложность реализации преобразования является другим важным ограничением проектирования. Таким образом, варианты преобразований часто выбираются так, что применение прямых и обратных преобразований включает в себя только умножения на целые числа и другие простые математические операции, такие как сложение, вычитание и операции сдвига (для реализации умножения или деления на степень числа 2, например 4, 8, 16, 32 и т.д.), таким образом, что могут быть получены быстрые целочисленные реализации с минимальным расширением динамического диапазона.
Многие стандарты сжатия изображений и видео, такие как JPEG (ITU-T T.81|ISO/IEC 10918-1) и MPEG-2 (ITU-T H.262|ISO/IEC 13818-2), среди прочих, используют преобразование на основе дискретного косинусного преобразования (DCT). Известно, что DCT имеет подходящие свойства для мощного сжатия, но также имеет недостатки во многих реализациях. DCT описано авторами N. Ahmed, T. Natarajan, and K.R. Rao, "Discrete Cosine Transform", IEEE Transactions on Computers, C-23 (Январь 1974 года), стр. 90-93.
Когда сжимается статическое изображение (или кодированный кадр внутри видеоряда), многие общие стандарты, такие как JPEG и MPEG-2, разделяют массивы, представляющие изображение, на блоки выборок 8×8 и применяют преобразование блока для каждого такого блока изображения. На коэффициенты преобразования в данном блоке в этих форматах оказывают влияние только значения выборок в пределах области блока. При кодировании изображений и видео, квантование выборок в этих независимо сконструированных блоках может привести к неравномерностям на границах блока и таким образом сформировать визуально раздражающие артефакты, известные как блочные артефакты или блочный эффект. Аналогично, для аудиоданных, когда не перекрывающиеся блоки независимо кодированы с преобразованием, ошибки квантования дадут неравномерности в сигнале на границах блока в результате восстановления аудиосигнала в декодере. В случае аудио-сигнала может быть слышен периодически щелкающий эффект.
Методы, которые используются для подавления блочных артефактов, включают в себя использование фильтров для удаления блочности, чтобы сгладить значения сигнала на границах между блоков. Эти методы не лишены своих недостатков. Например, методы удаления блочности могут требовать наличия существенных вычислительных ресурсов.
Другим подходом является уменьшение блочных эффектов посредством использования преобразования с перекрытием, как описано в H. Malvar, "Signal Processing with Lapped Transforms," Artech House, Norwood MA, 1992. В общем, преобразование с перекрытием является преобразованием, имеющим область ввода, которая охватывает несколько прилегающих выборок в соседних блоках, кроме выборок в текущем блоке. Аналогично, на стороне восстановления, обратное преобразование с перекрытием оказывает влияние на декодированные выборки в соседних блоках, равно как и выборки текущего блока. Таким образом, обратное преобразование может сохранить непрерывность на границах блока даже в присутствии квантования, последовательно приводя к уменьшению эффекта блочности. Другим преимуществом преобразования с перекрытием является то, что оно может использовать кросс-блочную корреляцию, которая дает лучшую способность сжатия. Согласно некоторым реализациям преобразования с перекрытием, перекрывающиеся блоки выборок обрабатываются в прямом и обратном преобразованиях. Согласно другим реализациям, обработка перекрытия отделена от обработки преобразования; для кодирования обработка перекрытия выполняется на границах блока перед прямым преобразованием, которое выполняется для не перекрывающихся блоков, и для декодирования для не перекрывающихся блоков выполняются обратные преобразования, а затем обработка перекрытия выполняется на границах блока.
В случае двумерных данных, обычно, двумерное преобразование с перекрытием является функцией текущего блока, совместно с выбранными элементами блоков слева, сверху, справа и снизу от текущего блока, и возможно, блоков сверху-слева, сверху-справа, снизу-слева и снизу-справа от текущего блока. Число выборок в соседних блоках, которые используются для вычисления преобразования с перекрытием для текущего блока, называется величиной перекрытия или поддержки.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Подробное описание направлено на различные технологии для сжатия и распаковки цифровых медиаданных. Например, применяются различные методы, которые направлены на преодоление эффекта рассогласования коэффициента усиления постоянной составляющей и утечки постоянной составляющей при операциях обработки преобразования с перекрытием во время кодирования и/или декодирования.
Согласно одному аспекту описанной технологии, устройство декодирования цифровых медиаданных выполняет обратное преобразование с перекрытием, во время декодирования цифровых медиаданных. Устройство декодирования цифровых медиаданных выполняет обратное частотное преобразование цифровых медиаданных. Затем устройство применяет множество операторов перекрытия к результатам обратного частотного преобразования. Первым из множества операторов перекрытия является оператор внутреннего перекрытия, а вторым из множества операторов перекрытия является граничный или угловой оператор перекрытия. Каждый из множества операторов перекрытия характеризуется, по существу, эквивалентным коэффициентом усиления постоянной составляющей. Это уменьшает рассогласование коэффициента усиления постоянной составляющей между операторами.
При соответствующем кодировании, устройство кодирования цифровых медиаданных выполняет преобразование с перекрытием во время кодирования цифровых медиаданных. При предварительной обработке, устройство применяет множество операторов перекрытия к выборкам цифровых медиаданных или результатам ранних стадий кодирования таких выборок цифровых медиаданных. Первым из множества операторов перекрытия является оператор внутреннего перекрытия, а вторым из множества операторов перекрытия является граничный или угловой оператор перекрытия. Вновь, каждый из множества операторов перекрытия характеризуется, по существу, эквивалентным коэффициентом усиления постоянной составляющей, что уменьшает рассогласование коэффициента усиления постоянной составляющей между операторами и, тем самым, улучшает производительность сжатия. Устройство кодирования цифровых медиаданных выполняет частотное преобразование результатов предварительной обработки перекрытия. Помимо уменьшенного рассогласования коэффициента усиления постоянной составляющей, такое множество операторов перекрытия демонстрирует уменьшение утечки постоянной составляющей во многих примерах.
Согласно другому аспекту описанных технологий, устройство декодирования цифровых медиаданных принимает, в кодированном потоке бит, информацию, указывающую выбранный вариант границы мозаичного элемента, где выбранный вариант границы мозаичного элемента указывает обработку жесткой границы мозаичного элемента для операторов перекрытия или обработку гибкой границы мозаичного элемента для операторов перекрытия. Основываясь, по меньшей мере частично, на выбранном варианте границы мозаичного элемента, устройство декодирования цифровых медиаданных выполняет обработку обратного перекрытия. Например, обработка гибкой границы мозаичного элемента характеризуется обработкой перекрытия на границах мозаичного элемента, а обработка жесткой границы мозаичного элемента характеризуется отсутствием такой обработки перекрытия на границах мозаичного элемента. Согласно некоторым реализациям, обработка обратного перекрытия может включать в себя применение операторов перекрытия, которые разработаны, чтобы иметь уменьшенное рассогласование коэффициента усиления постоянной составляющей и/или утечку постоянной составляющей. При соответствующем кодировании, устройство кодирования цифровых медиаданных выбирает между использованием обработки жесткой границы мозаичного элемента для операторов перекрытия и обработки гибкой границы мозаичного элемента для операторов перекрытия. Устройство кодирования цифровых медиаданных выполняет обработку перекрытия согласно выбранному варианту границы мозаичного элемента. Устройство также сообщает информацию, в кодированном потоке битов, указывающую выбранный вариант границы мозаичного элемента. Согласно некоторым реализациям, это позволяет переключение между первым режимом (жесткие границы мозаичного элемента), который обычно имеет меньшую эффективность сжатия, но не имеет зависимостей между мозаичными элементами, и вторым режимом (гибкие границы мозаичного элемента), который обычно имеет большую эффективность сжатия, но и зависимости между мозаичными элементами.
Вышеописанное раскрытие изобретения является всего лишь кратким описанием и не предназначено для описания всех признаков представленных в настоящем документе инноваций. Вышеуказанные и другие объекты, признаки и преимущества изобретения станут более очевидны из следующего подробного описания осуществления изобретения со ссылками на чертежи.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
На фиг.1 показана блок-схема кодера, который включает в себя преобразование с перекрытием, использующее оператор обратимого перекрытия.
На фиг.2 показана блок-схема декодера, который включает в себя соответствующее преобразование с обратным перекрытием.
На фиг.3 показана схема компоновки блоков в примерных реализациях, изображающая расположение внутреннего 4×4, краевого 4×1 и углового 2×2 операторов перекрытия для использования на первом этапе преобразования с перекрытием и, для каналов максимального разрешения, на втором этапе преобразования с перекрытием в примерных реализациях. Изображенные операторы перекрытия также используются на соответствующих этапах обратного преобразования с перекрытием в примерных реализациях.
На фиг.4 показана схема компоновки блоков в примерных реализациях, изображающая расположение внутреннего 2×2, краевого 2×1 и углового 1×1 операторов перекрытия для использования на втором этапе преобразования с перекрытием для канала сигнала цветности 4:2:2, подвергнутого понижающей дискретизации в примерных реализациях. Изображенные операторы перекрытия также используются на соответствующих этапах обратного преобразования с перекрытием в примерных реализациях.
На фиг.5 показана схема компоновки блоков в примерных реализациях, изображающая расположение внутреннего 2×2, краевого 2×1 и углового 1×1 операторов перекрытия для использования на втором этапе преобразования с перекрытием для канала сигнала цветности 4:2:0, подвергнутого понижающей дискретизации в примерных реализациях. Изображенные операторы перекрытия также используются на соответствующих этапах обратного преобразования с перекрытием в примерных реализациях.
На фиг.6A показана блок-схема последовательности операций, изображающая примерный способ выбора и сигнализации о жесткой или гибкой границе мозаичного элемента для обработки перекрытия.
На фиг.6B показана блок-схема последовательности операций, изображающая примерный способ приема индикатора выбранной жесткой или гибкой границы мозаичного элемента для обработки обратного перекрытия.
На фиг.7A показана блок-схема последовательности операций, изображающая примерный способ для выполнения преобразования с перекрытием с использованием операторов перекрытия с уменьшенным рассогласованием коэффициента усиления постоянной составляющей и уменьшенной утечкой постоянной составляющей.
На фиг.7B показана блок-схема последовательности операций, изображающая примерный способ для выполнения обратного преобразования с перекрытием с использованием операторов перекрытия с уменьшенным рассогласованием коэффициента усиления постоянной составляющей и уменьшенной утечкой постоянной составляющей.
На фиг.8 показана структурная схема подходящей вычислительной среды для реализации описанных в настоящем документе технологий.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
Следующее описание относится к сжатию цифровых медиаданных, или системе распаковки, или кодеру, или декодеру, которые используют решение прямого/обратного преобразования с перекрытием, направленное на преодоление эффекта рассогласования коэффициента усиления постоянной составляющей и утечки постоянной составляющей. Для целей иллюстрации, вариант осуществления изобретения системы сжатия/распаковки, объединяющей эти технологии, может быть системой сжатия/распаковки изображений или видео. Иначе, технологии, описанные в настоящем документе, могут быть соединены в системы сжатия или распаковки, кодеры или декодеры для других двумерных данных или других медиаданных. Технологии, описанные в настоящем документе, не требуют того, чтобы система сжатия цифровых медиаданных кодировала сжатые медиаданные в конкретный формат кодирования.
Примерные реализации, представленные ниже, показывают решения, которые направлены на преодоление проблемы рассогласования коэффициента усиления постоянной составляющей и утечки постоянной составляющей, при кодировании и декодировании изображений. Например, эти решения могут быть включены в стандарт кодирования изображений JPEG XR (ITU-T T.832 I ISO/IEC 29199-2). В дополнение, различные секции первой и второй примерных реализаций используют операторы, на которые ссылаются или которые определяются в стандарте JPEG XR.
Реализации также относятся к путям решения проблем утечки постоянной составляющей в операторе 4×4 для обработки перекрытия при кодировании и декодировании изображений, как описано в предварительной заявке № 12/165,474, поданной 30 июня, 2008 года.
1. Кодер/Декодер
Ниже описаны репрезентативные, но обобщенные и упрощенные, кодер и декодер данных.
На фиг.1 и 2 показаны обобщенные схемы процессов, используемых в репрезентативном кодере 100 двумерных данных и соответствующем декодере 200. Кодер 100 и декодер 200 включают в себя обработку преобразований с перекрытием, используя методы, которые направлены на преодоление рассогласования коэффициента усиления постоянной составляющей и/или утечку постоянной составляющей. Схемы представляют обобщенную или упрощенную иллюстрацию использования и применения описанных в настоящем документе технологий в системе сжатия и системе распаковки, соединенных в кодере и декодере двумерных данных. В альтернативных кодерах и декодерах на основе этих методов уменьшения рассогласования коэффициента усиления постоянной составляющей и утечки постоянной составляющей, для сжатия двумерных данных может использоваться дополнительное или меньшее число процессов, из тех, что указаны в этом репрезентативном кодере и декодере. Например, некоторые кодеры/декодеры могут также включать в себя преобразование цветов, любое разнообразие обработки цветовых форматов, масштабируемое кодирование и т.д. Описанная система сжатия и распаковки (кодер и декодер) может обеспечить сжатие двумерных данных без потерь и/или с потерями, в зависимости от применения квантования, которое может быть основано на одном и более параметрах управления квантованием, управляющими потерями качества в кодированном представлении, в широком диапазоне выбираемых точностей, ранжируемых от «абсолютно без потерь на всем протяжении» до «очень грубое представление» (с высокой степенью сжатия).
Кодер 100 двумерных данных выдает сжатый поток битов 120, то есть более компактное представление (для типичного входа) двумерных данных 110, представляющих собой входные данные кодера 100. Например, входные двумерные данные могут являться изображением, кадрами из видеоряда или другими данными, имеющими два измерения, относящимися обычно к изображению. На этапе 130 компоновки области, кодер 100 организует входные данные в блоки для дальнейшей обработки. Например, блоки могут являться блоками выборок 4×4, блоками выборок 2×4 или блоками выборок 2×2. Иначе, блоки могут иметь другие размеры. На первом этапе 140 обработки прямого перекрытия, кодер применяет оператор перекрытия к блокам входных данных. Оператор прямого перекрытия (указан как затененный блок 142) является, в примерном варианте осуществления изобретения, четырьмя операторами преобразования с перекрытием. Затем кодер 100 выполняет блочное преобразование 150 над соответствующими блоками.
Кодер 100 отделяет коэффициенты постоянной составляющей от коэффициентов переменной составляющей соответствующих блоков для последовательного кодирования. Кодер 100 выполняет дополнительный этап обработки перекрытия и прямых частотных преобразований коэффициентов постоянной составляющей. Дополнительный этап обработки перекрытия может быть пропущен и может использовать такие же операторы перекрытия, как первый этап, или другие операторы перекрытия. Например, согласно некоторым реализациям, кодер 100 может выбрать выполнять или нет дополнительный этап обработки перекрытия и сообщить решение декодеру в виде кодированных данных для использования в принятии решения относительно того, какую обработку обратного перекрытия выполнять. Кодер 170 квантует результаты дополнительного преобразования с перекрытием коэффициентов постоянной составляющей, и кодер квантует коэффициенты переменной составляющей. Затем, кодер энтропийно кодирует 180 коэффициенты и пакетирует энтропийно кодированную информацию для сигнализации в потоке битов 120 наряду со вспомогательной информацией, указывающей на решения кодирования, которую декодер 200 будет использовать при декодировании.
Согласно фиг.2, если кратко, декодер 200 выполняет обратный процесс. На стороне декодера биты коэффициентов преобразования извлекаются 210 из их соответствующих пакетов сжатого потока битов 205, из которого коэффициенты постоянной и переменной составляющей самостоятельно декодируются 220 и деквантуются 230. Коэффициенты постоянной составляющей 240 восстанавливаются посредством применения обратного преобразования, и плоскость коэффициентов постоянной составляющей является "обратно перекрытой" в постпреобразовательной фильтрации, которая использует подходящий оператор, примененный на границах блока постоянной составляющей. Далее, блоки выборок восстанавливаются посредством применения обратного преобразования 250 к коэффициентам постоянной составляющей и коэффициентам переменной составляющей 242, декодированных из потока битов. Наконец, края блоков в плоскостях результирующих изображений фильтруются 260 на основе обратного перекрытия. Второй этап обработки обратного перекрытия может использовать те же операторы перекрытия, что и на первом этапе обработки перекрытия, или другие операторы. Это обеспечивает восстановленный вывод двумерных данных 290.
2. Общие примеры описанных технологий
Эта секция содержит общие примеры методов, которые улучшают производительность кодирования преобразования с перекрытием и соответствующее декодирование.
На фиг.6A изображен примерный способ 600 для выбора и подачи сигнала о жесткой или гибкой границе мозаичного элемента для обработки перекрытия. Кодер, такой как было разъяснено согласно фиг.1, может выполнять такой метод. Или другой кодер может выполнять такой метод.
На этапе 610 кодер выбирает жесткую границу мозаичного элемента или гибкую границу мозаичного элемента для использования, когда выполняется обработка перекрытия во время кодирования преобразования с перекрытием. Например, выбор может быть основан на числе мозаичных элементов, представленных в подлежащем кодированию изображении, желаемой вычислительной сложности декодирования, желаемом качестве вывода, настройках пользователя либо отдельном декодировании индивидуальных мозаичных элементов (без зависимости между мозаичными элементами), являющихся желаемой особенностью данного приложения, либо другим фактором. В общем, использование жестких границ мозаичного элемента внутри изображения приводит к меньшим зависимостям между мозаичными элементами, так как при обработке перекрытия края мозаичных элементов рассматриваются как границы изображения. Это облегчает декодирование отдельных мозаичных элементов (в противоположность целым изображениям) при потенциальной цене эффективности сжатия (так как может понадобиться больше бит для подавления блочных артефактов, чего можно было бы избежать с помощью обработки перекрытия, и так как операция перекрытия обычно также улучшает свойство сжатия преобразования, известное как эффективность кодирования). С другой стороны, использование гибких границ мозаичного элемента разрешает обработку перекрытия на границах мозаичных элементов, но создает зависимости между мозаичными элементами для декодирования. После принятия решения о границах мозаичного элемента кодер соответственно выполняет обработку преобразования с перекрытием.
На этапе 620 кодер сообщает решение о выбранной границе мозаичного элемента в виде потока битов. Например, решение о выбранной границе мозаичного элемента может быть сообщено как отдельный элемент синтаксиса (например, как одиночный бит в заголовке изображения, указывающий на то, выбрана ли жесткая или гибкая граница мозаичного элемента для обработки перекрытия для данного изображения). Выбранную границу мозаичного элемента можно сообщить в комбинации, или совместно, с другими элементами синтаксиса, и она может сигнализироваться на основе, отличной от способа отсылки изображения за изображением.
На фиг.6B изображен примерный способ 630 для приема индикатора жесткой или гибкой границы мозаичного элемента. Декодер, такой как было разъяснено со ссылкой на фиг.2, может выполнять этот метод. Альтернативно, другой декодер выполняет такой метод.
На этапе 640 декодер принимает информацию в кодированном потоке битов, указывающую выбранный вариант границы мозаичного элемента для обработки обратного перекрытия. Выбранный вариант границы мозаичного элемента указывает жесткую границу мозаичного элемента или гибкую границу мозаичного элемента для обработки обратного перекрытия. Например, выбранный вариант границы мозаичного элемента может быть принят как отдельный элемент синтаксиса или совместно кодированный элемент синтаксиса, также он может быть принят в заголовке изображения для изображения или принят на каком-либо другом синтаксическом уровне. На этапе 650 декодер выполняет декодирование с обратным преобразованием на основе, по меньшей мере, частично, выбранного варианта границы мозаичного элемента. Например, декодер осуществляет выборочное выполнение или не выполняет обработку обратного перекрытия на границах мозаичного элемента, в зависимости от использования гибких границ мозаичных элементов или жестких границ мозаичных элементов.
Индикатор решения о границе мозаичного элемента может быть также совмещен с выбранным режимом перекрытия, так что вариант режима перекрытия указывает комбинацию этапа перекрытия и решений о жестких/гибких границах мозаичного элемента. Например, одно значение варианта режима перекрытия может указывать, что перекрытие не применяется (например, первый и второй этапы перекрытия не применяются в иерархической схеме преобразования с перекрытием из двух этапов), другое значение варианта режима перекрытия может указывать, что только первый из двух этапов применяется с гибкими границами мозаичного элемента, еще одно значение варианта режима перекрытия может указывать два режима перекрытия, применяемых с гибкими границами мозаичного элемента, еще одно значение варианта режима перекрытия может указывать, что только первый из двух этапов применяется с жесткими границами мозаичного элемента, и еще одно значение варианта режима перекрытия может указывать на два режима перекрытия, применяемых с жесткими границами мозаичного элемента. Такой вариант режима перекрытия может выбраться, использоваться во время выполнения кодирования преобразования с перекрытием и сигнализироваться в кодированном потоке битов. Кодированный поток битов принимается соответствующим декодером, и выбранный вариант режима перекрытия декодируется и используется во время выполнения декодирования обратного преобразования с перекрытием.
На фиг.7A изображен примерный способ 700 для использования операторов перекрытия с уменьшенным рассогласованием коэффициента усиления постоянной составляющей и уменьшенной утечкой постоянной составляющей при преобразовании с перекрытием во время кодирования. Кодер, такой как было разъяснено со ссылкой на фиг.1, может выполнять такой метод. Альтернативно, другой кодер может выполнять такой метод.
На этапе 710 кодер кодирует цифровые медиаданные, где кодирование включает в себя обработку преобразования с перекрытием, которая использует множество операторов перекрытия с уменьшенным рассогласованием коэффициента усиления постоянной составляющей и уменьшенной утечкой постоянной составляющей. В частности, первый оператор перекрытия (для внутренних областей) имеет первый коэффициент усиления постоянной составляющей, а второй оператор перекрытия (для краевых и угловых областей) имеет второй коэффициент усиления постоянной составляющей, который является по существу эквивалентом первого коэффициента усиления постоянной составляющей. Ниже приведены примеры внутренних операторов перекрытия, краевых операторов перекрытия и угловых операторов перекрытия, имеющих по существу эквивалентные коэффициенты усиления постоянной составляющей, для блоков выборок яркости и выборок цветности при различных разрешениях.
На этапе 720 кодер выдает кодированный поток битов, например поток битов, соответствующий JPEG XR формату или другому формату.
На фиг.7B изображен примерный способ 730 для использования операторов перекрытия с уменьшенным рассогласованием коэффициента усиления постоянной составляющей и уменьшенной утечкой постоянной составляющей при обратном преобразовании с перекрытием во время декодирования. Декодер, такой как было разъяснено со ссылкой на фиг.2, может выполнять такой метод. Альтернативно, другой декодер может выполнять такой метод.
На этапе 740 декодер принимает кодированный поток битов, например поток битов, соответствующий JPEG XR формату, или другому формату. На этапе 750 декодер выполняет обработку обратного преобразования с перекрытием, которая использует множество операторов перекрытия с уменьшенным рассогласованием коэффициента усиления постоянной составляющей и уменьшенной утечкой постоянной составляющей. В частности, первый оператор перекрытия (для внутренних областей) имеет первый коэффициент усиления постоянной составляющей, а второй оператор перекрытия (для краевых и угловых областей) имеет второй коэффициент усиления постоянной составляющей, который является по существу эквивалентом первого коэффициента усиления постоянной составляющей. Ниже приведены примеры внутренних операторов перекрытия, краевых операторов перекрытия и угловых операторов перекрытия, имеющих по существу эквивалентные коэффициенты усиления постоянной составляющей, для блоков выборок яркости и выборок цветности при различных разрешениях.
Термин "по существу эквивалентный коэффициент усиления постоянной составляющей" не значит, что операторы перекрытия должны иметь точно такой же коэффициент усиления постоянной составляющей. Вместо этого, разница коэффициента усиления постоянной составляющей должна быть достаточно мала для уменьшения (или даже устранения) нежелательных артефактов, возникающих из-за разницы коэффициента усиления постоянной составляющей между операторами перекрытия, учитываемыми эксплуатационными ограничениями и планируемыми применениями. Целевая степень схожести коэффициентов усиления постоянной составляющей может варьироваться в зависимости от сложности целевой реализации в отношении желаемого качества, в дополнение к другим факторам. В качестве примера ниже представлены наборы операторов перекрытия, которые имеют по существу эквивалентный коэффициент усиления постоянной составляющей внутри соответствующих наборов.
3. Примерные реализации
Примерные реализации включают в себя технологию преобразования с перекрытием.
3.1 Теоретические основы
Как отмечено выше, преобразование с перекрытием (также называемое перекрываемым преобразованием) является концептуально подобным блочному преобразованию. Стандартное блочное преобразование содержит два этапа:
1) разделение входных данных на блочные области (области, которые состоят из строки выборок в одномерных рядах или из массива выборок прямоугольной формы в наборе двумерных данных, таких как изображение), и
2) применение процесса преобразования к каждому блоку для анализа/разложения их частотного содержания.
Для применений сжатия, выходные данные блочного преобразования квантуются, и к результату применяется энтропийное кодирование. Эти этапы иногда комбинируются с другими операциями, такими как процессы прогнозирования и процессы оценки вероятности. Во время декодирования декодер применяет обратные или приближенные обратные операции для каждого их этих этапов обработки.
Хорошо известным эффектом, связанным с блочными преобразованиями, является образование блочных артефактов, которые представляют собой ощутимые неравномерности, которые могут наблюдаться в восстановленном приближении, что происходит в результате процесса декодирования. Хорошо известным методом подавления блочных артефактов является использование преобразования с перекрытием, как разъяснено выше, при преобразовании с перекрытием, где блоки данных, которые формируют входные данные для процесса преобразования, перекрываются с другими блоками. При использовании преобразования с перекрытием возникает проблема обработки краев сигнала. На краю набора выборок входных данных (например, на краю изображения) некоторые данные, которые обычно были бы частью входных данных преобразования с перекрытием для кодера, не представлены. И проектировщик системы должен определить, как в таких случаях обрабатывать края.
В технологии кодирования изображения ключевым понятием является разложение большого изображения на множество мозаичных элементов. Мозаичным элементом является набор данных, который точно или приблизительно соответствует конкретной пространственной области изображения на картинке. Посредством сегментирования изображения на мозаичные элементы и кодирования каждого мозаичного элемента в отдельности становится возможным обращаться к части изображения и декодировать ее без того, чтобы декодировать целое изображение. Возможность обращаться к конкретным областям изображения может быть особенно полезной, когда изображения большие. Однако сегментирование большого изображения на меньшие области мозаичных элементов может создать больше краев в рисунке, а именно краев, которые отделяют мозаичные элементы от других мозаичных элементов в пределах изображения. На каждом из этих краев может возникнуть граничный эффект мозаичного элемента, что является прямым аналогом блочных артефактов.
В предыдущих версиях стандарта JPEG XR операции перекрытия, когда задействованы, применяются на границах мозаичных элементов, равно как и на границах индивидуальных блоков блочного преобразования. В то время как этот подход имеет преимущества в некоторых обстоятельствах, следствием выбора этой схемы является то, что кодирование изображения на основе мозаичных элементов и извлечение данных имеют большую вычислительную сложность при обращении к расположенным в виде мозаики областям изображения, чем, если бы операции перекрытия не применялись на границах мозаичных элементов. Эта добавочная вычислительная стоимость является результатом зависимостей данных на стыке от соседних мозаичных элементов, которые обусловлены обработкой перекрытия областей преобразования, что приводит к тому, что для декодирования конкретной области мозаичного элемента необходимо также обратиться и, по меньшей мере частично, декодировать сохраненные данные пространственно соседних мозаичных элементов.
В отличие от этого, в представленных в настоящем документе примерных реализациях границы мозаичных элементов классифицируются как один из двух типов, описанных ниже:
"Жесткие" границы мозаичного элемента, такие как края мозаичного элемента, рассматриваются аналогично краям изображения, поэтому здесь отсутствует перекрытия преобразованных блоков, которые применяются на границах мозаичных элементов, или "гибкие" границы мозаичного элемента, при которых перекрытие преобразованных блоков применяется на границах мозаичного элемента.
В некоторых предыдущих форматах, таких как JPEG 1 и JPEG 2000, все границы мозаичных элементов обрабатываются как жесткие границы мозаичных элементов. В отличие от этого, в некоторых предыдущих версиях стандарта JPEG XR, границы мозаичных элементов обрабатываются как гибкие границы мозаичных элементов. Каждый тип обработки границ является полезным в некоторых обстоятельствах. Согласно примерным реализациям, представленным в настоящем документе, кодер может выбирать использовать ли жесткие или гибкие границы мозаичных элементов на свое усмотрение и сообщать о своем выборе вместе со сжатыми данными представления изображения. При всем этом, согласно примерным реализациям, представленным в настоящем документе, даже когда используются жесткие границы мозаичных элементов, по меньшей мере некоторые выборки краев в пределах данного мозаичного элемента, находящегося рядом с границей мозаичного элемента, тем не менее подвергаются обработке перекрытия с помощью краевых операторов, чтобы уменьшить рассогласование коэффициента усиления постоянной составляющей, что может вызвать проблемы из-за применения внутренних операторов перекрытия в пределах мозаичного элемента.
Примерные реализации также используют основанные на «подъеме» операции преобразования. Эффект, известный как "утечка постоянной составляющей", может иногда быть проблемой при таких преобразованиях. Если преобразование показывает утечку постоянной составляющей, то в состав выходных данных прямого преобразования можно включать коэффициенты преобразования переменной составляющей, важные для некоторых входных сигналов с постоянными значениями (для которых коэффициенты постоянной составляющей, в теории, должны быть не нулевыми частотными коэффициентами). Утечка постоянной составляющей может иногда вызывать потерю эффективности сжатия и заметные артефакты (такие как волны или искажения в сглаженных зонах) в декодированных выходных данных.
В большом изображении наличие некоторых потерь эффективности сжатия и заметных артефактов, которые возникают только вблизи внешних границ изображения, может быть допустимо при проектировании кодирования сжатия. Однако, так как сегментация мозаичных элементов с использованием жестких границ мозаичных элементов создает больше зон, которые увеличивают этот эффект, становится более важным тщательно проектировать обработку краевых областей, когда проектирование может включать в себя поддержку границ мозаичных элементов.
Проблемы, которые возникают с поддержкой мозаичных элементов в кодере изображения, могут также возникать при высокоуровневой поддержке больших "метаизображений" на уровне систем, где метаизображение конструируется как большой набор метаданных из множества малых изображений, которые кодируются по отдельности. Снова, при таком сценарии использования, становится более важным тщательно обрабатывать края изображения.
Таким образом, желательно иметь варианты кодирования с жесткими границами мозаичных элементов, чтобы каждый мозаичный элемент изображения мог обрабатываться независимо. Одним из таких решений является рассмотрение границ мозаичных элементов так же, как границ целого изображения. Однако, в некоторых случаях, проектирование преобразования имеет нежелательный эффект утечки постоянной составляющей при операциях, используемых близко к краям изображения. Дополнительно, и даже более существенно, существует разница коэффициентов усиления постоянной составляющей между выходом операций обработки краев и обработкой, выполняемой для внутренних областей изображения.
Распознавание небольшого числа точек помогает решить проблему рассогласования коэффициента усиления постоянной составляющей и утечки постоянной составляющей при преобразовании с перекрытием вблизи границ изображения. Во-первых, в известных реализациях, операторы перекрытия испытывают рассогласование коэффициентов усиления постоянной составляющей между внутренними операторами и угловыми и краевыми операторами, тем самым вызывая уменьшенную эффективность сжатия и существенные визуальные артефакты. Во-вторых, краевые, угловые и цветовые внутренние операторы согласно предыдущим реализациям также страдают от утечки постоянной составляющей, что также вызывает снижение эффективности сжатия и существенные визуальные артефакты. Дополнительно, характеристики утечки постоянной составляющей для обработки внутренних зон изображения в случаях цветности 4:2:0 и 4:2:2 являются также проблематичными согласно предыдущим реализациям.
3.2 Обзор примерных реализаций
Примерные реализации используют иерархическое преобразование с перекрытием.
Преобразование имеет четыре этапа:
1. Первый этап обработки перекрытия;
2. Первый этап базового преобразования;
3. Второй этап обработки перекрытия;
4. Второй этап базового преобразования.
Этапы перекрытия оперируют с ассиметричной сеткой по отношению к операторам базового преобразования. То есть базовые преобразования оперируют с блоками 4×4, скомпонованными в сетку, выровненную по верхнему левому пикселю изображения. Этапы перекрытия оперируют с сеткой аналогичного размера со сдвигом в 2 пикселя по горизонтали и 2 пикселя по вертикали от пикселя в верхнем левом углу. Соответствующее обратное преобразование с перекрытием также имеет четыре этапа: первый этап обратного базового преобразования, первый этап обработки обратного перекрытия; второй этап обратного базового преобразования и второй этап обработки обратного перекрытия.
К сожалению, как это реализовано ранее, операторы перекрытия обладают недостатками в контексте рассогласования коэффициентов усиления постоянной составляющей и утечки постоянной составляющей. В частности, краевые операторы перекрытия (те, что оперируют на краях шириной в 2 пикселя, вызванных сдвигом сетки этапов перекрытия) являются проблематичными. Из-за того что использование жестких границ мозаичных элементов включает в себя существенное использование этих краевых операторов в центральных областях изображения (как наиболее естественное решение для разрешения использования жестких границ мозаичных элементов), артефакты, вызванные проблемами с этими операторами, становятся гораздо более заметными. Даже без использования жестких границ мозаичных элементов предыдущие операторы перекрытия дают недопустимое количество видимых артефактов на изображении.
Согласно примерным реализациям, представленным в настоящем документе, преобразования с перекрытием реализуются шестью различными операторами. Они подразделяются на две группы из трех операторов: группу максимального разрешения и группу цветности. Тремя операторами перекрытия максимального разрешения являются:
1. Оператор перекрытия 4×4 - операция обработки внутреннего перекрытия;
2. Оператор перекрытия 4×1 - операция обработки краевого перекрытия;
3. Оператор углового перекрытия 2×2 - операция обработки углового перекрытия.
На фиг.3 изображена схема 300 расположения этих операторов. На фиг.3 изображена область выборок 2 блока на 2 блока. Точки представляют собой выборки, а центральные горизонтальная и вертикальная пунктирные линии указывают границы блоков для декодирования и кодирования с преобразованием. Квадраты с округленными углами представляют собой область поддержки для каждого из операторов перекрытия. Округленный квадрат 310 вокруг центральной области выборок 4×4 представляет собой внутренний оператор перекрытия 4×4, округленные квадраты (например, 320) вокруг 4-х угловых областей выборок 2×2 представляют собой оператор углового перекрытия 2×2, и округленные квадраты (например, 330) вокруг других 8-ми областей выборок 4×1 (или 1×4) представляют собой оператор перекрытия 4×1.
Эти три оператора максимального разрешения используются для всех каналов на первом этапе преобразования с перекрытием, и для каналов максимального разрешения (то есть яркости и цветности в режиме выборки 4:4:4) на втором этапе преобразования с перекрытием.
Тремя операторами цветности являются:
1. Оператор перекрытия 2×2 - операция обработки внутреннего перекрытия;
2. Оператор перекрытия 2×1 - операция обработки краевого перекрытия;
3. Оператор углового перекрытия 1×1 - операция обработки углового перекрытия.
Эти операторы цветности используются для второго этапа преобразования с перекрытием для каналов цветности подвергнутого понижающей дискретизации (повторная дискретизация 4:2:2 или 4:2:0). На фиг.4 изображена схема 400 расположения этих операторов цветности применительно к цветовым каналам с повторной дискретизацией 4:2:2. На фиг.4 изображены оператор перекрытия для использования на втором этапе преобразования с перекрытием для каналов цветности, подвергнутых понижающей дискретизации 4:2:2. Для 2×2 компоновки блоков, раскладка цветовых операторов перекрытия применяется к 4:2:2 выборкам. Точки представляют собой выборки, а центральная и горизонтальная пунктирные линии указывают границы блоков для декодирования и кодирования с преобразованием. Квадраты с округленными углами (и окружности) таким образом, представляют собой область/поддержку различных операторов перекрытия. Округленный квадрат 410 вокруг центральной области выборок 2×2 представляет собой внутренний оператор перекрытия 2×2, округленные квадраты (например, 420) вокруг 4-х угловых областей выборок 1×1 представляют собой оператор углового перекрытия 1×1, и округленные квадраты (например, 430) вокруг других 8-ми областей выборок 2×1 (или 1×2) представляют собой оператор перекрытия 2×1.
На фиг.5 изображена схема 500 расположения этих операторов цветности применительно к цветовым каналам с повторной дискретизацией 4:2:0. На фиг.5 изображены оператор перекрытия для использования на втором этапе преобразования с перекрытием для каналов цветности, подвергнутых понижающей дискретизации 4:2:0. Для 2×2 компоновки блоков, раскладка цветовых операторов перекрытия применяется к 4:2:0 выборкам. Точки представляют собой выборки, а пунктирные линии указывают границы блоков для декодирования и кодирования с преобразованием. Квадраты с округленными углами (и окружности) таким образом, представляют собой область/поддержку различных операторов перекрытия. Округленный квадрат 510 вокруг центральной области выборок 2×2 представляет собой внутренний оператор перекрытия 2×2, округленные квадраты (например, 520) вокруг 4-х угловых областей выборок 1×1 представляют собой оператор углового перекрытия 1×1, и округленные квадраты (например, 530) вокруг других 4-х областей выборок 2×1 (или 1×2) представляют собой оператор перекрытия 2×1.
Две проблемы возникают при разработке этих операторов: рассогласование коэффициентов усиления постоянной составляющей и утечка постоянной составляющей. Идеально, чтобы внутри каждого из двух наборов операторов (максимального разрешения и цветности) множитель коэффициентов усиления постоянной составляющей для всех трех операторов был эквивалентным. Задача рассогласования коэффициентов усиления постоянной составляющей возникает, когда три коэффициента усиления постоянной составляющей не совпадают.
Утечка постоянной составляющей представляет собой эффект, при котором абсолютно плоские входные данные для преобразования приводят как к коэффициентам постоянной составляющей, так и к коэффициентам переменной составляющей. Утечка постоянной составляющей измеряется величиной результирующих коэффициентов переменной составляющей.
Как результат этих двух проблем, абсолютно плоское изображение, кодированное с использованием только его коэффициентов постоянной составляющей (игнорируя все высокочастотные коэффициенты), не будет иметь абсолютно плоского восстановления. Разница в значениях восстановленных пикселей может рассматриваться как сумма двух слагаемых: a) масштабирования рассогласования коэффициентов усиления постоянной составляющей, и b) утечки постоянной составляющей. Разница ~ (примерно равна) масштабированию рассогласования коэффициентов усиления + утечка постоянной составляющей.
Одно из решений проблемы утечки постоянной составляющей в операторе перекрытия 4×4 представлено в предварительной заявке США № 12/165,474.
Согласно примерным реализациям, представленным в настоящем документе, несколько решений, которые уменьшают или даже устраняют рассогласование коэффициентов усиления постоянной составляющей и утечку постоянной составляющей, представлены для оставшихся пяти операторов (пять операторов, отличных от оператора перекрытия 4×4 максимального разрешения). С оставшимися пятью операторами, величина рассогласования коэффициентов усиления постоянной составляющей является, обычно, много большей, чем величина утечки постоянной составляющей, даже если заметные артефакты, вызванные утечкой постоянной составляющей, могут быть более нежелательны в целом. Таким образом, главной проблемой, которая требует решения, является рассогласование коэффициентов усиления постоянной составляющей между операторами перекрытия. Второй проблемой является утечка постоянной составляющей в операторах перекрытия.
Следующий раздел описывает синтаксис и семантику для нескольких решений, которые задействуют решения о гибкой/жесткой границах мозаичных элементов. В последних разделах описываются новые операторы перекрытия, разработанные для устранения артефактов, вызванных предыдущими операторами перекрытия. В дополнение к сценариям использования жестких границ мозаичных элементов, эти новые операторы перекрытия являются также полезными в сценариях "сшивания", в которых одиночное большое изображение разбивается на малые куски, которые сжимаются независимо. Позже, изображения "сшиваются" вместе посредством их отображения рядом, согласно их первоначальному взаимоположению.
3.3 Описание синтаксиса для решений об использовании жестких/гибких границ мозаичных элементов
Примерные реализации поддерживают жесткие и гибкие границы мозаичных элементов. Гибкие границы мозаичных элементов более эффективны для обработки большого числа мозаичных элементов мозаичного изображения и устранения блочных артефактов. Жесткие границы мозаичных элементов позволяют более эффективно обрабатывать ограниченное число мозаичных элементов в изображении. Две категории вариантов описаны с учетом синтаксиса и семантики для решений об использовании жестких/гибких границ мозаичных элементов.
Синтаксис изменений
. Первая категория вариантов изменяет синтаксис предыдущих реализаций. Первый вариант является дополнением нового элемента синтаксиса, сигнализирующего, используются ли жесткие или гибкие границы мозаичных элементов. Например, новый элемент синтаксиса может быть флагом в заголовке изображения.
Второй вариант представляет собой добавление значений для синтаксического флага степени перекрытия (режима перекрытия), который также указывает информацию о режиме перекрытия. Согласно предыдущим реализациям, «режим перекрытия» является 2-битным элементом синтаксиса, имеющим три возможных нижеследующих значения и соответствующие интерпретации.
1. «Режим перекрытия» = 0 значит, что не применяется ни один из этапов обработки перекрытия.
2. «Режим перекрытия» = 1 значит, что применяется только первый из двух этапов обработки перекрытия.
3. «Режим перекрытия» = 2 значит, что применены оба этапа обработки перекрытия.
Второй вариант изменяет элемент синтаксиса режима перекрытия так, чтобы он стал 3-битным элементом синтаксиса. Вышеописанные режимы перекрытия изменяются для соответствия режиму использования гибких границ мозаичных элементов (по меньшей мере для «режима перекрытия» = 1 или «режима перекрытия» = 2, так как «режим перекрытия» = 0 по умолчанию используется для жестких границ мозаичных элементов, без обработки перекрытия), и добавляются нижеследующие значения и интерпретации.
4. «Режим перекрытия» = 3 значит, что применяется только первый из этапов обработки перекрытия, и обработка перекрытия выполняется в формате жестких границ мозаичных элементов.
5. «Режим перекрытия» = 4 значит, что применены оба из этапов обработки перекрытия, и обработка перекрытия выполняется в формате жестких границ мозаичных элементов.
Декодеры, которые не поддерживают 3-битный элемент синтаксиса режима перекрытия, не могут успешно декодировать изображения с использованием этого элемента синтаксиса. Таким образом, добавление новых битов приведет к невозможности декодирования изображений в существующих декодерах.
Обратно совместимый синтаксис
. Для того чтобы позволить существующим декодерам обрабатывать новые потоки битов (даже если декодирование приводит к существенным артефактам), может использоваться элемент синтаксиса номера промежуточной версии (обозначенный как RESERVED_C в спецификации JPEG XR). Например, потоки битов, содержащие изменения, представленные в предварительной заявке США № 12/165,474, имеют значение промежуточной версии 1 или значение промежуточной версии 0. Второй наименьший значащий бит номера промежуточной версии может быть использован для сигнализации об использовании жестких или гибких границ мозаичных элементов. По этой схеме, об использовании гибких границ мозаичных элементов сигнализируется посредством установки второго наименьшего значащего бита в значение ноль, а об использовании жестких границ мозаичных элементов сигнализируется посредством установки второго наименьшего значащего бита в значение единица. Существующие декодеры, которые игнорируют значение промежуточной версии, будут успешно декодировать мозаичные изображения с жесткими и гибкими границами, однако в мозаичных изображениях с жесткими границами могут возникать существенные артефакты, в связи с чем по умолчанию используется обработка перекрытия гибких границ мозаичных элементов. Более развитые декодеры будут способны реагировать на значение номера промежуточной версии и правильно декодировать изображение без артефактов при использовании жестких границ мозаичных элементов. Настройки использования жестких границ мозаичных элементов будут кодироваться, как описано ниже:
HardTilingTrueFlag =(RESERVED_C>>1) & 1.
3.4 Описание предыдущих операторов перекрытия
В декодере, предыдущий оператор перекрытия 4×4 разработан для того, чтобы иметь коэффициент масштабирования, равный 1/(s^2), где s=0,8272. Другими словами, оператор перекрытия 4×4 увеличивает значение постоянной составляющей приблизительно на 1,4614. (Это соответствует оператору перекрытия 4×4, описанному в предварительной заявке США № 12/165,474). Предыдущий оператор перекрытия 4×1 разработан для того, чтобы иметь коэффициент масштабирования, равный 1/s значения постоянной составляющей. Другими словами, оператор перекрытия 4×1 увеличивает значение постоянной составляющей приблизительно на 1,2089. Предыдущий оператор углового перекрытия 2×2 является нулевым (операции не выполняются), так что соответствующее значение постоянной составляющей и вероятный коэффициент масштабирования равны 1,0. Принимая во внимание эти предыдущие операторы, следует сделать несколько наблюдений. Во-первых, масштабирование предыдущих операторов обычно гарантирует, что основа обратного перекрытия является сглаженной, и обеспечивает огромный прирост кодирования, в дополнение к менее существенным артефактам. Во-вторых, фактическое масштабирование, выполняемое оператором, является слегка другим из-за целочисленности реализации. В-третьих, соответствующие операторы перекрытия кодера выполняют масштабирование, обратное таковому в декодере. В-четвертых, такое уменьшение в кодере имеет некоторые последствия для кодирования без потерь. Для кодирования без потерь даже абсолютно плоское изображение нуждается в выработке коэффициентов переменной составляющей (и, таким образом, обязательно теряется некоторая эффективность сжатия). В-пятых, округление, используемое в целочисленной реализации, оказывает незначительное влияние на некоторые результаты анализа и экспериментов. В частности, многие величины, такие как ScalingGainMismatch и DCLeakageRatio, только приблизительно являются линейными.
В следующем описании операторы перекрытия, утечка постоянной составляющей и рассогласование коэффициентов усиления постоянной составляющей вычисляются для операторов. Способ для вычисления утечки постоянной составляющей, используемый ниже, дает приблизительно те же результаты, что и теоретический анализ на основе коэффициентов матрицы, причем этот способ является более простым и быстрым. Наконец, для того чтобы показать величину утечки постоянной составляющей и рассогласования коэффициентов усиления постоянной составляющей, получены степень масштабирования коэффициента усиления постоянной составляющей и утечка постоянной составляющей, для каждого оператора перекрытия, посредством учета входного блока, где все значения пикселей эквивалентны 1000000 (10^6). Это входное значение называется значением X1.
Предыдущий оператор перекрытия 4×4 для полного разрешения.
Для примерного предыдущего оператора перекрытия 4×4, при данном входном значении X1, выходные пиксели имеют значение 1461540 или 1461547. Таким образом, ScalingGainRatio для оператора перекрытия 4×4 составляет 1,461543. Разница в выходных значениях (то есть |1461540-1461547|=7) возникает в результате утечки постоянной составляющей. DCLeakageRatio предыдущего оператора перекрытия 4×4 составляет 7/10^6.
Для 8-битных выборок изображения, наибольший диапазон составляет +/-128/(ScalingGainRatio). Таким образом, максимальная утечка постоянной составляющей оператора 4х4 при 8-битных изображениях составляет (7/10^6)*128/6)* 128/ScalingGainRatio = 0,000896/ScalingGainRatio = 0,000614. Максимальная утечка постоянной составляющей при 16-битных изображениях составляет 256 * 0,000614 ~ 0,157.
Предыдущий оператор перекрытия 4×1 для полного разрешения.
Для примерного предыдущего оператора перекрытия 4×1, при данном входном значении X1, выходные пиксели имеют значение 1206726 или 1205078. ScalingGainRatio оператора перекрытия 4×1 составляет около 1,2058. Если входные значения обратного оператора перекрытия 4×1 имеют те же самые значения, то матричное представление этапа масштабирования этого оператора на паре входных значений может быть представлено как:
^
где x=3/32 и y=3/16. Масштабирование одного из выходных значений составляет 1+xy+x(2+xy)=19771/16384~1,206726, и масштабирование другого входного значения составляет y+1+xy=617/512~1,205078. DCLeakageRatio составляет 9771/16384-617/512=27/16384=0,001648. Разница в выходных значениях (то есть 1206726-1205078=1648) возникает в результате утечки постоянной составляющей. DCLeakageRatio составляет 1648/10^6. Утечка постоянной составляющей мала, но все еще существенна. Для изображений с 8-битными выборками, максимальная утечка постоянной составляющей составляет 127/ScalingGainRatio * (1648/106)~0,1788/ScalingGainRatio~0,12247. Для 16-битных выборок изображения, максимальная утечка постоянной составляющей может быть +/- 46/ScalingGainRatio~31,35.
Предыдущий оператор углового перекрытия 2×2 для полного разрешения
. Согласно предыдущим реализациям, для углов не существует операторов перекрытия. ScalingGainRatio составляет 1,0, и DCLeakageRatio составляет 0,0.
Эффект рассогласования коэффициентов усиления постоянной составляющей для предыдущих операторов полного разрешения.
Согласно предыдущим реализациям, в контексте величины (амплитуды) (т.е. не в значении восприятия) главной проблемой является рассогласование коэффициентов усиления постоянной составляющей, и в случае наихудшего эффекта, оно теоретически может быть квантовано, как описано ниже.
Для 8-битных выборок изображения, в худшем случае ScalingGainMismatch будет составлять (1,4615-1,205) * 128/ScalingGainRatio ~ 22,48. Для 8-битных выборок изображения, в углах, в худшем случае ScalingGainMismatch будет составлять около (1,4615-1,0) * 128/ScalingGainRatio ~ 59/ScalingGainRatio~40,46. Для 16-битных выборок изображения, в худшем случае ScalingGainMismatch по краям и в углах будет составлять 22,4*256 и 40,46*256 = 10393,6, соответственно. Общая разница, в худшем случае, может быть приближенно выражена как сумма ScalingGainMismatch и DCLeakage.
Предыдущий цветовой оператор перекрытия 2×2
. Для примерного предыдущего оператора перекрытия 2×2, если входное значение обратного оператора перекрытия 4×1 имеет то же самое значение, то матричное представление этапа масштабирования этого оператора на паре входных значений может быть представлено как:
где x=1/4 и y=1/2. Масштабирование одного из выходных значений составляет 1+xy+x(2+xy)=53/32=1,656235, и масштабирование другого входного значения составляет y+1+xy=13/8=1,625. DCleakageRatio составляет 53/32-13/8=1/32=0,03125.
Предыдущий цветовой оператор перекрытия 2×1
. Для примерного предыдущего оператора перекрытия 2×1, если входное значение обратного оператора перекрытия 2×1 имеет то же самое значение, то матричное представление этапа масштабирования этого оператора на паре входных значений может быть представлено как:
где x=1/8 и y=1/4. Масштабирование одного из выходных значений составляет 1+xy+x(2+xy)=329/256=1,28515625, и масштабирование другого входного значения составляет y+1+xy=41/32. DCLeakageRatio составляет 329/256-41/32=1/256=0,003906.
Предыдущий оператор углового перекрытия 1×1
. Согласно предыдущим реализациям, для углов не существует операторов перекрытия 1×1. ScalingGainRatio составляет 1,0; и DCLeakageRatio составляет 0,0.
3.5 Решения для оператора перекрытия 4×1
Представлены три решения для оператора перекрытия 4×1, причем одно из трех решений имеет множество вариантов. Применение предыдущего оператора перекрытия 4×1 к его пикселям отмечено как перекрытие 4×1(a,b,c,d).
Решение 1 для оператора перекрытия 4×1
. Так как коэффициент усиления постоянной составляющей предыдущего оператора перекрытия 4×1 составляет ориентировочно квадратный корень из коэффициента усиления постоянной составляющей перекрытия 4×4, первое решение состоит в применении предыдущего оператора перекрытия 4×1 дважды. Решение 1 перекрытия 4×1(a,b,c,d) описывается как:
1. Перекрытие 4×1(a,b,c,d);
2. Перекрытие 4×1(d,c,b,a).
Путем изменения порядка между двумя применениями оператора на противоположный, утечка постоянной составляющей, представленная на первом этапе, компенсируется на втором этапе. Повторение порядка заставит утечку накапливаться. К сожалению, это решение все еще страдает от существенного рассогласования коэффициентов усиления постоянной составляющей.
Если оператор перекрытия 4×1 решения 1 будет иметь входное значение X1, то выходные выборки будут иметь значения 1454061, или 1453548, или 1454852, или 1454340. ScalingGainRatio составляет приблизительно 1,4542. DCLeakageRatio составляет (1454852-1453548)/10^6=1304/10^6. Для 8-битных выборок изображения, в худшем случае, ScalingGainMismatch для 8-битных изображений составляет (1,4615 - 1,4542) * 128/ScalingGainRatio = 0,9344/ScalingGainRatio~0,64. В худшем случае DCLeakage может составить 127/ScalingGainRatio * 1304/10^6 ~ 0,16561/ScalingGainRatio. Для 16-битных выборок изображения, в худшем случае, утечка 0,9344*256/ScalingGainRatio ~ 239,2064/ScalingGainRatio~163. В худшем случае DCLeakage может составить 256*0,16561/ScalingGainRatio ~ 42,39/ScalingGainRatio~28,76. В контексте сложности, это решение имеет ориентировочно двойную сложность по отношению к предыдущему оператору перекрытия 4×1.
Решение 2 для оператора перекрытия 4×1
. Решение 2 является схожим по смыслу с решением 1 - оно использует применение одного оператора к одним и тем же выборкам дважды. Тем не менее, для этого решения, масштабирование предыдущего оператора перекрытия 4×1 изменено посредством добавления дополнительных этапов «подъема». Как и раньше, Решение 2 перекрытия 4×1(a,b,c,d) описано как:
1. Перекрытие 4×1 измененное(a,b,c,d);
2. Перекрытие 4×1 измененное(d,c,b,a).
Эти модификации используют 6 дополнительных этапов подъема на этапе масштабирования, причем каждый этап подъема имеет одно суммирование и один сдвиг.
Идея, стоящая за решением 2, состоит в изменении x и y так, чтобы утечка постоянной составляющей и рассогласования масштабированных коэффициентов усиления постоянной составляющей были минимальны (как это используется в настоящем документе, термин "минимальный" означает «уменьшенный до допустимого уровня эксплуатации»). Как описано ниже, условие минимизирования утечки постоянной составляющей составляет 1+xy+x(2+xy)=y+1+xy.
Решение для y дает . В этом случае, ScalingGainRatio одного этапа измененного оператора перекрытия 4×1 может быть вычислено:
Обозначим квадратный корень из коэффициента усиления постоянной составляющей оператора перекрытия 4×4 как k. Следовательно, значение x, которое минимизирует ScalingGainMismatch , вычисляется как:
или:
Как только значение x, которое минимизирует ScalingGainMismatch, определено с использованием этого уравнения, значение y (которое минимизирует утечку постоянной составляющей) может быть определено используя ранее указанное уравнение . В этом случае, ScalingGainRatio оператора перекрытия 4×4 ≅ 1,461543. Следовательно, значение k ≅ sqrt(1,461543) ≅ 1,208943, и масштабированный коэффициент усиления постоянной составляющей должен быть приблизительно равным этому значению, чтобы минимизировать рассогласование масштабированных коэффициентов усиления постоянной составляющей. Следовательно, значение x должно быть приблизительно равным 0,094589554, а значение y должно быть выбрано согласно ранее указанному уравнению.
На практике, x может аппроксимироваться с помощью значения, которое может быть получено используя этапы двухэлементного подъема; и может быть выбрано значение y, и затем y может аппроксимироваться с помощью значения, которое может быть получено используя этапы двухэлементного подъема. Эмпирические результаты показывают, что задача минимизации утечки постоянной составляющей является более важной, чем задача минимизации рассогласования масштабированных коэффициентов усиления постоянной составляющей. Следовательно, аппроксимация y для данного значения x должна быть более точной, чем начальная аппроксимация x.
Решение 2a для оператора перекрытия 4×1
. Выберем x=3/32 и y=775/4096=3/16+1/512-1/4096. Это решение имеет минимальную утечку постоянной составляющей. Коэффициент усиления постоянной составляющей в этом решении составляет:
Следовательно, это решение все еще имеет небольшую величину ScalingGainMismatch. Здесь нет дополнительных этапов подъема для реализации x, по сравнению с предыдущим оператором перекрытия 4×1. Реализация y использует два дополнительных этапа подъема по сравнению с предыдущим оператором перекрытия 4×1.
Решение 2b для оператора перекрытия 4×1
. Выберем x=97/1024=3/32+1/1024 и y=49/256=3/16+1/256. Это решение имеет минимальную утечку постоянной составляющей. Коэффициент усиления постоянной составляющей в этом решении составляет:
Следовательно, это решение все еще имеет небольшую величину ScalingGainMismatch, но меньшую, чем в решении 2a для оператора перекрытия 4×1. Учтем, что здесь существует один дополнительный этап подъема для реализации x, по сравнению с предыдущим оператором перекрытия 4×1. Реализация y использует один дополнительный этап подъема по сравнению с предыдущим оператором перекрытия 4×1. Так как этап масштабирования требует применения x дважды и применения y один раз, в новом решении 2b для оператора перекрытия 4×1 существуют 3 дополнительных этапа подъема.
Решение 2c для оператора перекрытия 4×1
. Выберем x=775/8192, 3/32+1/1024-1/8192 и y=391/2048=3/32+1/512-1/2048. Коэффициент усиления постоянной составляющей в этом решении составляет:
Следовательно, это решение имеет минимальную величину ScalingGainMismatch. В реализации x существуют 2 дополнительных этапа подъема. В реализации y существуют 2 дополнительных этапа подъема. Так как этап масштабирования требует применения x дважды и применения y один раз, в новом решении существуют 6 дополнительных этапов подъема.
1
-16
Модификации перекрытия 4×1 имеют преимущества, дополнительно уменьшая рассогласование коэффициентов усиления постоянной составляющей и утечку постоянной составляющей. Посредством сохранения смысла решения 1 все его преимущества здесь также сохранены. Если этот оператор будет иметь входное значение X, выходные пиксели будут иметь значение 1461631. ScalingGainRatio составляет приблизительно 1,4616. DCLeakageRatio составляет примерно 0 (много меньше 2).
Для 8-битных выборок изображения, в худшем случае, ScalingGainMismatch составляет (1,461543-1,46163l) * 128/ScalingGainRatio = 0,000088/ScalingGainRatio. В худшем случае, DCLeakage составляет 0. Для 16-битных выборок изображения, в худшем случае, ScalingGainMismatch составляет 0,000088 * 256/ScalingGainRatio=0,022528/ScalingGainRatio. В худшем случае, DCLeakage составляет 0. В контексте сложности решения 2c для оператора перекрытия 4×1, шесть дополнительных этапов подъема в измененном перекрытии 4×1 делают его сложность в 1,5 раза больше, чем у перекрытия 4×1. Таким образом, в целом, решение 2 перекрытия 4×1 имеет ориентировочно в 3 раза большую сложность, чем у предыдущего оператора перекрытия 4×1.
Решение 3 для оператора перекрытия 4×1
. Для этого решения, этап масштабирования предыдущего оператора перекрытия 4×1 заменяется этапом масштабирования предыдущего оператора перекрытия 4×4 для того, чтобы сформировать новый оператор перекрытия 4×1 решения 3. В результате, решение является одноэтапным, и таким образом, здесь не должны повторяться никакие операторы. Эти модификации гарантируют, что коэффициент усиления постоянной составляющей и утечка постоянной составляющей перекрытия 4×1 решения 3 являются приблизительно теми же, что в операторе перекрытия 4×4. Однако здесь все еще существуют некоторые небольшие различия из-за эффекта округления операций за пределами этапа масштабирования.
Если этот оператор перекрытия 4×1 решения 3 будет иметь входное значение X1, то выходные пиксели будут иметь значения 1461552, 1461547, 1461540 и 1461535. ScalingGainRatio составляет приблизительно 1,45615435. DCLeakageRatio составляет (1461552-1461535)/10^6.
Для 8-битных выборок изображения, в худшем случае, ScalingGainMismatch составляет (1,461543-1,45615435)* 128/ScalingGainRatio ~ 0,000064/ScalingGainRatio. В худшем случае, DCLeakage составляет (1461552-1461535)/10^6 * 128 = 0,002176/ScalingGainRatio.
Для 16-битных выборок изображения, в худшем случае, ScalingGainMismatch составляет 0,000064*256=0,016384/ ScalingGainRatio. В худшем случае, DCLeakage составляет 0,002176*256=0,557056/ScalingGainRatio<1/2.
Для примера, согласно одной из предыдущих реализаций, при перекрытии постфильтра для краевых блоков 4×1 выборок используются операции, указанные в следующей таблице.
Следующее решение 3 для краевого оператора перекрытия 4×1 осуществляет изменения в масштабировании, как указано в нижеследующей таблице.
Где InvScale() and InvRotate() описаны ниже.
Замена старого этапа масштабирования оператора перекрытия 4×1 на новый этап масштабирования повышает сложность на два дополнительных этапа масштабирования. Это ориентировочно повышает сложность в 1,2 раза относительно сложности предыдущего оператора перекрытия 4×1 для краев.
3.6 Решения для оператора углового перекрытия 2×2.
Два возможных решения представлены для оператора углового перекрытия 2×2.
Решение 1 для оператора углового перекрытия 2×2
. Решение 1 служит для разработки новых операторов перекрытия 6×1 для углов, объединяющих угловые пиксели с пикселями, прилегающими к краям. Одной из причин, по которой это решение не является желательным, является то, что оно использует сложную схему для устранения рассогласования коэффициентов усиления постоянной составляющей и утечки постоянной составляющей. Дополнительно, если ориентация этих операторов является горизонтальной, тогда ширина изображений составляет менее чем 3 макроблока, и тогда это решение не работает. Аналогично, если ориентация этих операторов является вертикальной, то изображения 4:2:0 с высотой менее 3 макроблоков и изображения 4:2:2 с высотой менее 2 макроблоков не будут работать с этим решением.
Решение 2 для оператора углового перекрытия 2×2
. Решение 2 служит для применения того же оператора перекрытия 4×1, что и примененного в краях угловых пикселей для растровой развертки. Так как оба оператора действуют на 4 пикселя, это решение имеет преимущество того, что угловой оператор будет иметь точно такие же характеристики рассогласования коэффициентов усиления постоянной составляющей и утечки постоянной составляющей, что и угловой оператор.
Это решение показывается, как: Угловое перекрытие 2×2(a,b,c,d) = перекрытие 4×1 примененного решения (верхний левый, верхний правый, нижний левый, нижний правый).
Согласно характерной реализации, оператор углового перекрытия 2×2 применяется с тем же пиксельным порядком для каждого угла. Это имеет преимущество, которое предоставляет собой возможность равномерной реализации по всем углам. Недостатком этой реализации является то, что вращения могут привносить некоторые небольшие ошибки. В перекрытии 4×1 решения 3, ошибка может быть только при округлении. Иначе, повернутое распределение может использоваться в каждом углу.
3.7 Решения для оператора перекрытия 2×2 для цветности
Главной проблемой с оператором перекрытия 2×2 согласно предыдущим реализациям является утечка постоянной составляющей. В этом разделе представлено восстановление этапа масштабирования этого оператора, такое, что утечка постоянной составляющей является уменьшенной. В нижеследующем разделе операторы перекрытия 2×1 и углового перекрытия 2×2 восстанавливаются для совпадения коэффициентов усиления этого нового оператора перекрытия 2×2. Утечка постоянной составляющей этого нового оператора перекрытия 2×2 в декодере может быть оценена посредством установки всех входных значений этого оператора в те же (упомянутые выше) значения. Если входные значения обратного оператора перекрытия 2×2 имеют те же самые значения, эффект этого оператора на паре входных значений может быть представлен как:
При отсутствии утечки постоянной составляющей условие имеет вид:
1+xy+y=x(2+xy)+1+xy, где решение для y дает:
2
y=x(2+xy), тогда y=2*x/(1-x).
Величина утечки постоянной составляющей может быть определена как:
y-x(2+xy).
Предыдущий оператор перекрытия 2×2 устанавливает значение x=1/4 и y=1/2, следовательно, выходные значения равны (1+xy+y) =13/8 и (x(2+xy)+1+xy)=53/32, и эта разница является причиной утечки постоянной составляющей, которая составляет 1/32. Сложность предыдущего оператора перекрытия 2×2 для цветности является небольшой, так как значения x и y являются пригодными для реализации, используя очень простые этапы двухэлементного подъема.
Поскольку основное решение может изменять x и y, то есть подавлять утечку постоянной составляющей, эти решения обычно имеют большую сложность, чем предыдущий оператор перекрытия 2×2 для цветности. Следовательно, разработано решение, которое уменьшает утечку постоянной составляющей, в то же время ограничивая повышение сложности.
Согласно одному возможному решению, значение x=1/4 является фиксированным, а значение y является корректируемым, так чтобы утечка постоянной составляющей была уменьшена. Учтем, что может произойти подъем, использующий y, и, следовательно, это решение будет иметь меньшую сложность по сравнению с решениями, которые изменяют x, в то время как существующее значение y остается неизменным.
Решение 1 оператора перекрытия 2×2 для цветности
. Значение y, которое устраняет утечку постоянной составляющей, составляет y=2*(1/4)/(1-1/16)=8/15. Утечка постоянной составляющей при этом решении равна нулю. Однако y=8/15 не может быть реализовано используя этапы двухэлементного подъема. Следовательно, это решение имеет более высокую сложность, так как оно нуждается в операции деления.
Решение 2a оператора перекрытия 2×2 для цветности
. Установим значение y=17/32, причем это решение может быть реализовано (без множителей) с использованием этапов двухэлементного подъема, как 1/2+1/32. Это значение имеет утечку постоянной составляющей, равную 1/512.
Решение 2b оператора перекрытия 2×2 для цветности
. Установим значение y в 273/512. Это решение может быть реализовано (без множителей) с использованием этапов двухэлементного подъема, как 1/2+1/32+1/512. Это значение утечки постоянной составляющей составляет 1/8192.
Решение 2c оператора перекрытия 2×2 для цветности
. Установим значение y в 4369/8192. Это решение может быть реализовано (без множителей) с использованием этапов двухэлементного подъема, как 1/2+1/32+1/512+1/8192. Значение утечки постоянной составляющей составляет 1/131072, то есть 1/(2^17).
Таким образом, утечка постоянной составляющей уменьшена с 1/32(0,03125) до 1/(2^17). Таким образом, утечка постоянной составляющей уменьшена ниже 16-битной точности. Степень масштабирования коэффициентов усиления постоянной составляющей в этом случае составляет 1+xy+y=54613/32768 ~ 1,666656494.
Например, согласно одной из предыдущих реализаций, при перекрытии постфильтра для внутренних блоков 4×1 выборок цветности, использовались операции, указанные в следующей таблице.
В следующем решении 2c для оператора перекрытия 2×2 для цветности, добавлены операции этапов двухэлементного подъема с множителями 1/32, 1/512 и 1/8192, как указано в нижеследующей таблице. Левые сдвиги (>>) на 5, 9 и 13 бит соответствуют делению на 32, 512 и 8192 соответственно.
3.8 Решения для оператора перекрытия 2×1
Аналогично решениям для оператора перекрытия 4×1, здесь представлены 3 решения для оператора перекрытия 2×1, причем одно из решений имеет несколько вариантов.
Решение 1 для оператора перекрытия 2×1
. Так как коэффициент усиления постоянной составляющей предыдущего оператора перекрытия 2×1 составляет, ориентировочно, квадратный корень из коэффициента усиления постоянной составляющей предыдущего оператора перекрытия 2×2, первое решение состоит в применении предыдущего оператора перекрытия 2×1 дважды. Решение 1 перекрытия 2×1(a,b) описывается как:
3. Перекрытие 2×1(a,b);
4. Перекрытие 2×1(b,a).
Путем изменения порядка между двумя применениями оператора на противоположный, утечка постоянной составляющей, представленная на первом этапе, компенсируется на втором этапе. Повторение порядка заставит утечку накапливаться. К сожалению, это решение все еще страдает от существенного рассогласования коэффициентов усиления постоянной составляющей. В контексте сложности, это решение имеет ориентировочно двойную сложность от предыдущего оператора перекрытия 2×1.
Решение 2 для оператора перекрытия 2×1
. Решение 2 является схожим по смыслу с решением 1 - оно использует применение одного оператора к одним и тем же выборкам дважды. Тем не менее, для этого решения, масштабирование предыдущего оператора перекрытия 2×1 изменяется посредством добавления дополнительных этапов подъема. Как и раньше, Решение 2 перекрытия 2×1(a,b) описано как:
3. Измененное перекрытие 2×1(a,b);
4. Измененное перекрытие 2×1(b,a).
Идея, лежащая в основе этого решения 2 для оператора перекрытия 2×1, состоит в изменении x и y так, чтобы утечка постоянной составляющей и рассогласования масштабированных коэффициентов усиления постоянной составляющей были минимальны. Как описано ниже, условие минимизирования утечки постоянной составляющей составляет
1+xy+x(2+xy)=y+1+xy.
Решение для y дает . В этом случае, ScalingGainRatio одного этапа измененного оператора перекрытия 2×1 может быть вычислено, как:
Обозначим квадратный корень из коэффициента усиления оператора перекрытия 2×2 как k. Следовательно, значение x, которое минимизирует рассогласование масштабированных коэффициентов усиления постоянной составляющей, задается как:
или:
Как только значение x, которое минимизирует ScalingGainMismatch, определено с использованием этого уравнения, значение y (которое минимизирует утечку постоянной составляющей) может быть определено с использованием ранее указанного уравнения . В этом случае, ScalingGainRatio оператора перекрытия 4×4 ≅ 1,666656494. Следовательно, значение k ≅ sqrt(l,666656494) ≅ 1,290990509, и масштабированный коэффициент усиления постоянной составляющей должен быть приблизительно равным этому значению, чтобы минимизировать рассогласование масштабированных коэффициентов усиления постоянной составляющей. Следовательно, значение x должно быть приблизительно равным 0,127015153, и значение y должно выбираться согласно ранее указанному уравнению.
На практике x может аппроксимироваться с помощью значения, которое может быть получено используя этапы двухэлементного подъема; значение y может выбираться, и затем y может аппроксимироваться с помощью значения, которое может быть получено с использованием этапов двухэлементного подъема. Для этого оператора эмпирические (полученные на практике) результаты показывают, что задача минимизации утечки постоянной составляющей является более важной, чем задача минимизации рассогласования масштабированных коэффициентов усиления постоянной составляющей. Следовательно, аппроксимация y для данного значения x должна быть более точной, чем начальная аппроксимация x.
Решение 2a для оператора перекрытия 2×1
. Выберем x=1/8 и y=65/256=1/4+1/256. Это решение имеет минимальную утечку постоянной составляющей. Коэффициент усиления постоянной составляющей в этом решении составляет:
Следовательно, это решение все еще имеет небольшую величину рассогласования масштабированных коэффициентов усиления постоянной составляющей. Здесь нет дополнительных этапов подъема для реализации x, по сравнению с предыдущим оператором перекрытия 2×1. Реализация y использует один дополнительный этап подъема по сравнению с предыдущим оператором перекрытия 2×1.
Решение 2b для оператора перекрытия 2×1
. Выберем x=65/512=1/8+1/512 и y=33/128=1/4+1/128. Это решение имеет минимальную утечку постоянной составляющей. Коэффициент усиления постоянной составляющей в этом решении составляет:
Следовательно, это решение все еще имеет небольшую величину ScalingGainMismatch, но меньшую, чем в решении 2a для оператора перекрытия 2×1. Здесь существует один дополнительный этап подъема для реализации x по сравнению с предыдущим оператором перекрытия 2×1. Реализация y требует один дополнительный этап подъема по сравнению с предыдущим оператором перекрытия 2×1. Так как этап масштабирования требует применения x дважды и применения y один раз, в новом решении 2b для оператора перекрытия 2×1 существуют 3 дополнительных этапов подъема.
Решение 2c для оператора перекрытия 2×1
. Выберем x=2081/16384 и y=33/128. Коэффициент усиления постоянной составляющей в этом решении составляет . Следовательно, это решение имеет минимальную величину рассогласования масштабированных коэффициентов усиления постоянной составляющей. В реализации x существуют 2 дополнительных этапа подъема. В реализации y существует один дополнительный этап подъема. Так как этап масштабирования требует применения x дважды и применения y один раз, в новом решении 2b для оператора перекрытия 2×1 существуют 5 дополнительных этапов подъема. В контексте сложности, пять дополнительных этапов подъема в измененном перекрытии 2×1 делают его сложность в 1,5 раза больше, чем у предыдущего оператора перекрытия 2×1. Таким образом, в целом, решение 2 перекрытия 2×1 имеет ориентировочно в 3 раза большую сложность, чем для предыдущего оператора перекрытия 2×1.
Решение 3 для оператора перекрытия 2×1
. В этом решении этап масштабирования предыдущего оператора перекрытия 2×1 заменяется этапом масштабирования предыдущего оператора перекрытия 2×2 для того, чтобы сформировать новый оператор перекрытия 2×1 решения 3. В результате получается одноэтапное решение, и, таким образом, оно не должно повторять никаких операторов. Эти модификации гарантируют, что коэффициент усиления постоянной составляющей и утечка постоянной составляющей перекрытия 2×1 решения 3 являются приблизительно теми же, как в операторе перекрытия 2×2. Однако здесь все еще существуют некоторые небольшие различия из-за эффекта округления операций за пределами этапа масштабирования.
Например, согласно одной из предыдущих реализаций, при перекрытии постфильтра для краевых блоков 2×1 выборок цветности используются операции, указанные в следующей таблице.
В следующем решении 3 для оператора перекрытия 2×1 для цветности, добавлены операции этапов двухэлементного подъема с множителями 1/32, 1/512 и 1/8192, как указано в нижеследующей таблице. Левые сдвиги (>>) на 5, 9 и 13 бит соответствуют делению на 32, 512 и 8192, соответственно.
Замена старого этапа масштабирования оператора перекрытия 2×1 на новый этап масштабирования повышает сложность на три дополнительных этапа масштабирования. Это ориентировочно повышает сложность в 1,2 раза относительно сложности предыдущего оператора перекрытия 2×1 для краев.
3.9 Решения для оператора углового перекрытия 1×1.
Оператор углового перекрытия 1×1 представляет значительную проблему в проектировании, так как он оперирует только с одной выборкой. Таким образом, утечка постоянной составляющей не является здесь проблемой, в то время как рассогласование коэффициентов усиления постоянной составляющей является существенной проблемой. Ниже описаны несколько возможных решений.
Строго говоря, оператор углового перекрытия 1×1 не является оператором в том же смысле, что другие операторы перекрытия. Оператор "1×1" не имеет области поддержки за пределами одной выборки. С другой стороны, множество примерных решений оператора 1×1, описанных ниже, включают в себя прогнозирование между одной выборкой и предиктором, который определен в области 1×1 за пределами, по меньшей мере, одной выборки. Для простоты, эти угловые операторы называются операторами углового перекрытия 1×1. Масштабирование постоянной составляющей является другим аспектом, который отличает множество примерных решений оператора 1×1, описанных ниже, от других операторов перекрытия. Для предшествующих операторов 4×4, 4×1, 2×2 и 2×1, масштабирование напрямую проистекает из операций перекрытия. Описанные ниже операции прогнозирования выборок для некоторых примерных операторов углового перекрытия 1×1 не используют масштабирование таким же образом. Даже если это может потенциально увести от цели наличия одного и того же коэффициента усиления постоянной составляющей для всех операторов в наборе, на практике подобное масштабирование приводит, в большинстве случаев, к таким угловым операторам 1×1, как разъяснено ниже.
Решение 1 для оператора углового перекрытия 1×1
. Аналогично решению 1 для оператора углового перекрытия 2×2, одно решение служит для создания нового оператора перекрытия 3×1. Это решение имеет аналогичные недостатки. Это решение страдает от требований к минимальному размеру изображения (3 макроблока вдоль направления оператора) в дополнении к вероятности дополнительных проблем относительно рассогласования коэффициентов усиления постоянной составляющей и утечки постоянной составляющей.
Решение 2 для оператора углового перекрытия 1×1
. Для этого решения максимально используется тот факт, что угловая выборка способна быть сильно связанной с прилегающими (соседними) к ней выборками. Важно, учитывая его использование при обработке перекрытия коэффициентов постоянной составляющей, чтобы этот оператор тщательно обрабатывал значение каждого первоначального блока изображения. Таким образом, возвращаясь к оператору углового перекрытия 1×1, имеется высокая вероятность того, что значения угловых выборок и значения из прилегающих выборок подобны. Если рассогласование коэффициентов усиления постоянной составляющей устранено, тогда значение угловой выборки будет очень схожим с прилегающими к ней выборками, как и после преобразования с перекрытием.
Следовательно, это решение использует схему, основанную на прогнозировании угловых выборок. Обозначим верхний левый угол, в качестве примера, и отметим выборки, как указано ниже:
A B ....
C D ....
.....
Верхняя левая выборка обозначена как A, выборка справа от A обозначена как B, а выборка под A обозначена как C. Схема прогнозирования реализуется, как указано далее, с допущением использования вычислений «на месте».
1. До того как были применены операторы перекрытия второго этапа:
a. value(A)=value(A)-(value(B)+value(C)+1)>>1.
2. После того как были применены операторы перекрытия второго этапа:
a. value(A)=value(A)+(value(B)+value(C)+1)>>1.
Так как остаточное значение A после этапа 1, вероятно, является небольшим, эта операция приблизительно эквивалентна применению того же коэффициента усиления к угловой выборке. (Принимая во внимание, что B и C могут иметь существенные значения, разностное значение A обычно является нулевым или близким к нулю. После этапа 1, масштабирование применяется к прилегающим выборкам B и C (например, посредством применения операторов углового перекрытия). Когда масштабированные значения B и C добавляются обратно к разностному значению A на этапе 2, результирующее значение A будет масштабировано к тем же размерам, что и значения B и C.) Применение этого решения к другим трем углам не вызывает затруднений.
Решение 2 для оператора углового перекрытия 1×1 имеет преимущество в симметрии с учетом поворотов. Одним недостатком является то, что это решение требует, чтобы изображение имело, по меньшей мере, 2 макроблока в ширину и 2 макроблока в высоту (только для 4:2:0, не для 4:2:2) иначе схема прогнозирования станет непригодной.
Решение 3 для оператора углового перекрытия 1×1
. Вторая схема подобна той, что представлена в решении 2 для оператора углового перекрытия 1х1. Некоторые реализации могут не выполнять каждый этап преобразования с перекрытием за одно время и вместо этого проводить разнесение этапов. Может быть сложным обратиться к B и C одновременно, до и перед преобразованием с перекрытием. Нижеследующая схема представлена для этого решения:
1. До того как к B были применены операторы перекрытия второго этапа:
a. value(A)=value(A)-value(B)>>1.
2. До того как к C были применены операторы перекрытия второго этапа:
a. value(A)=value(A)-value(C)>>1.
3. После того как к B были применены операторы перекрытия второго этапа:
a. value(A)=value(A)+value(B)>>1.
4. После того как к C были применены операторы перекрытия второго этапа:
a. value(A)=value(A)+value(C)>>1.
Порядок этапов требует только, чтобы этап 1 происходил до 3, и 2 происходил до 4. Пока эти два условия удовлетворяются, допускается любая перемена порядка. Решение 3 для оператора углового перекрытия 1×1 позволяет устранить проблему времени в различных реализациях. К сожалению, это решение может иметь несколько проблем с округлением, отсутствующих в решении 2. Иначе, это решение разделяет те же характеристики, что и решение 2 для оператора углового перекрытия 1×1.
Решение 4 для оператора углового перекрытия 1×1
. В этом решении, как описано ниже, решение 3 модифицируется для того, чтобы оперировать только в горизонтальном направлении:
1. До того как к B были применены операторы перекрытия второго этапа:
a. value(A)=value(A)-value(B).
2. После того как к B были применены операторы перекрытия второго этапа:
a. value(A)=value(A)+value(B).
Преимуществом этого решения является то, что оно использует меньшее число обращений к памяти. Так как оно взаимодействует с половиной от количества выборок в решении 2 и 3 для оператора углового перекрытия 1×1, сложность его ниже. Недостатком этого решения является то, что оно не содержит симметрии и, таким образом, имеет проблемы при поворотах. Эта проблема уменьшается, когда учитывается, что выполнение понижающей дискретизации привносит большие потери, чем это делает асимметрия. Как и в случае других решений для операторов углового перекрытия 1×1, в решении 4 изображение (или мозаичный элемент с жесткими границами) имеет ширину, по меньшей мере, двух макроблоков. Тем не менее, преимуществом здесь является то, что все операции понижающей дискретизации цветности подобны. Аналогично решению 2 (и решениям 3, 5, 6, и 7), здесь ожидается, что прилегающие выборки, используемые для вычисления разницы A, имеют значение, очень схожее с A. После этапа 1 прилегающая выборка масштабируется, как часть обработки краевого перекрытия, и затем добавляется обратно к разнице A для угла на этапе 2. Так как ожидается, что разница A будет равняться нулю или будет близка к нулю, угловое значение масштабируется приблизительно к тем же размерам, что и прилегающая выборка.
Решение 5 для оператора углового перекрытия 1×1
. В этом решении, как описано ниже, решение 3 модифицируется, чтобы оперировать только в вертикальном направлении:
1. До того как к C были применены операторы перекрытия второго этапа:
a. value(A)=value(A)-value(C).
2. После того как к C были применены операторы перекрытия второго этапа:
a. value(A)=value(A)+value(C).
Преимуществом этого решения является то, что оно использует меньшее число обращений к памяти. Так как оно взаимодействует с половиной от количества выборок для решения 2 и 3 для оператора углового перекрытия 1×1, сложность здесь ниже. Подобно решению 4, недостатком этого решения является то, что оно не содержит симметрии и, таким образом, имеет проблемы при поворотах. Эта проблема уменьшается, когда учитывается, что выполнение понижающей дискретизации привносит большие потери, чем это делает асимметрия. Как и в случае других решений для операторов углового перекрытия 1×1, в решении 5 изображения 4:2:0 имеют высоту, по меньшей мере, двух макроблоков. Больше никаких ограничений из этих решений по размерам здесь не возникает. Таким образом, операции 4:2:0 и 4:2:2 не параллельны, и это - другой недостаток данного решения.
Решение 6 для оператора углового перекрытия 1×1
. Это решение для оператора углового перекрытия 1×1 является комбинацией решений 4 и 5. Характерно, что здесь к потоку битов добавляется элемент синтаксиса для установления, является ли прогнозирование для оператора углового перекрытия 1×1 горизонтальным или вертикальным. Преимуществом этого решения является то, что повороты здесь легко поддерживаются. Недостатком этого решения является суммирование элемента синтаксиса.
Решение 7 для оператора углового перекрытия 1×1
. Это заключительное решение является подобным решению 4, за исключением того, что вместо значения B, которое используется как предиктор для A, в качестве предиктора используется значение D. Преимуществом использования D в качестве предиктора является симметрия при поворотах. Однако недостатком использования D является то, что оно может подходить хуже, чем B или C.
4. Вычислительная среда
Описанные выше инновации в обработке перекрытия могут быть реализованы в любом разнообразии устройств (например, устройствах кодирования и/или декодирования цифровых медиаданных), в которых выполняется обработка сигнала цифровых медиаданных, включающих в себя, среди других примеров, компьютеры, устройства записи изображений и видео, передающее и принимающее оборудование, портативные видео проигрыватели, проигрыватели цифровых медиаданных, устройства видеоконференции и так далее. Инновации обработки перекрытия могут быть реализованы в схемах аппаратных средств, равно как и в программном обеспечении, обрабатывающем цифровые медиаданные, исполняемом внутри компьютера или в другой вычислительной среде, как указано на фиг.8.
На фиг.8 указан обобщенный пример подходящей вычислительной среды (800), в которой могут быть реализованы описанные варианты осуществления изобретения. Вычислительная среда (800) не предусматривает каких-либо ограничений границ использования или функциональности изобретения, так как настоящее изобретение может быть реализовано в другой вычислительной среде общего применения или специального применения.
Согласно фиг.8, вычислительная среда (800) включает в себя, по меньшей мере, один блок обработки данных (810) и блок памяти (820). На фиг.8 эта наиболее базовая конфигурация (830) заключена в пунктирную линию. Блок обработки данных (810) исполняет выполняемые компьютером инструкции и может быть реальным или виртуальным процессором. В мультипроцессорных системах множественные блоки обработки данных исполняют выполняемые компьютером инструкции для повышения вычислительной мощности. Память (820) может быть энергозависимой памятью (например, регистры, кэш, RAM), энергонезависимой памятью (например, ROM, EEPROM, флэш-память и т.д.) или некоторой комбинацией этого. Память (820) хранит программное обеспечение (800), реализующее описанные кодер/декодер с множеством вариантов границ мозаичных элементов для обработки перекрытия, и/или операторы перекрытия с уменьшенным рассогласованием коэффициентов усиления постоянной составляющей.
Вычислительная среда может иметь дополнительные свойства. Например, вычислительная среда (800) может включать в себя хранилище (840), одно или более устройств ввода (850), одно или более устройств вывода (860) и одно или более соединений (870) для связи. Механизм взаимодействия (не показан), такой как шина, контроллер или сеть, может соединять компоненты вычислительной среды (800). Обычно, программное обеспечение операционной системы (не показано) может предоставлять операционное окружение для другого программного обеспечения, выполняемого в вычислительной среде (800), и координировать активность компонентов вычислительной среды (800).
Хранилище (840) может быть съемным или стационарным и может включать в себя магнитные диски, магнитные пленки или кассеты, CD-ROM, CD-RW, DVD или любые другие носители, которые могут использоваться для хранения информации и к которым можно получить доступ внутри вычислительной среды (800). Хранилище (840) хранит инструкции для программного обеспечения (800), реализуя описанное кодирование/декодирование с множественными вариантами границ мозаичных элементов для обработки перекрытия и/или операторы перекрытия с уменьшенным рассогласованием коэффициентов усиления постоянной составляющей.
Устройство(а) ввода (850) может быть устройством тактильного ввода, таким как клавиатура, мышь, перо или трекболл, устройством голосового ввода, сканирующим устройством или другим устройством, которое обеспечивает ввод данных в вычислительную среду (800). Для аудиоданных, устройством(ами) ввода может быть звуковая карта или подобное устройство, которое принимает входные аудиоданные в аналоговой или цифровой форме, или устройство чтения CD-ROM, которое предоставляет аудио-выборки в вычислительную среду. Для изображений и видео, устройством(ами) ввода могут быть камера, ТВ тюнер или другие устройства, которые обеспечивают ввод видеоданных в аналоговой или цифровой форме. Устройством(ами) вывода (860) могут быть дисплей, принтер, колонки, пишущее CD устройство или другое устройство, которое обеспечивает вывод данных из вычислительной среды (800).
Соединение(я) (870) для связи обеспечивает(ют) связь через носитель связи с вычислительными объектами. Носитель связи передает информацию, такую как сжатые аудиоданные или видеоинформацию, или другие данные в виде модулируемого сигнала данных. Модулируемый сигнал данных является сигналом, у которого один или более параметров заданы или изменяются таким образом, чтобы кодировать информацию в сигнале. В качестве примера, и не ограничиваясь этим, носитель связи включает в себя проводные или беспроводные методы связи, реализованные с помощью электрической, оптической, RF, инфракрасной, акустической или другой несущей.
Методики обработки цифровых медиаданных в настоящем документе могут быть описаны в общем контексте машиночитаемого носителя информации. Машиночитаемыми носителями информации являются любые материальные носители данных, доступ к которым можно получить внутри вычислительной среды. В качестве примера, и не ограничиваясь этим, в вычислительной среде (800), машиночитаемый носитель информации включает в себя память (820) и хранилище (840) и их комбинации. Машиночитаемый носитель информации является материальным носителем данных. Машиночитаемый носитель информации не включает в себя модулируемый сигнал данных.
Методики обработки цифровых медиаданных в настоящем документе могут быть описаны в общем контексте выполняемых компьютером инструкций, например, включенных в программные модули, выполняемые в вычислительной среде с помощью целевого реального или виртуального процессора. В общем, программные модули включают в себя стандартные программы, программы, библиотеки, объекты, классы, компоненты, структуры данных и так далее, которые выполняют конкретные задания или реализуют конкретные абстрактные типы данных. Функциональность программных модулей может быть скомбинирована или поделена между программными модулями, как будет предпочтительным в различных вариантах осуществления изобретения. Выполняемые компьютером инструкции для программных модулей могут быть выполнены внутри локальной или распределенной вычислительной среды.
Для описания, настоящий документ использует такие термины, как "определять", "генерировать", "корректировать" и "применять" для описания вычислительных операций в вычислительной среде. Эти термины являются в высшей степени абстрактными для операций, выполняемых компьютером, и не должны вводить в замешательство действиями, выполняемыми людьми. Фактические вычислительные операции, соответствующие этим терминам, варьируются в зависимости от конкретной реализации.
На основе описания и иллюстрации принципов настоящих инноваций в подробном описании и прилагаемых чертежах должно быть понятно, что различные варианты осуществления изобретения могут быть модифицированы в компоновке и деталях без отклонения от данных принципов. Должно быть понятно, что программы, процессы или способы, описанные в настоящем документе, не связаны или ограничены каким-либо конкретным типом вычислительной среды, до тех пор, пока не будет конкретно указано иначе. Могут быть совместно использованы различные типы вычислительной среды общего или специального назначения, для выполнения операций в соответствии с идеями, описанными в настоящем документе. Элементы вариантов осуществления изобретения, показанные в контексте программного обеспечения, могут быть реализованы в виде аппаратного обеспечения, и наоборот.
Принимая во внимание множество возможных вариантов осуществления изобретения, к которым могут быть применены принципы настоящего изобретения, все подобные варианты осуществления изобретения, которые могут быть выполнены в пределах объема и сущности нижеследующей формулы изобретения, и их эквиваленты включены в состав изобретения.