ОБЛАСТЬ ТЕХНИКИ
[0001] Это изобретение относится, в целом, к кодированию изображений, а более конкретно, к декодированию изображений с помощью модифицируемых квантованных коэффициентов преобразования так, чтобы операция декодирования могла быть выведена на основе характеристик модифицированных коэффициентов.
УРОВЕНЬ ТЕХНИКИ
[0002] Когда картинки, видео, изображения или другие аналогичные данные сжимаются в битовый поток с помощью различных режимов, информация о режиме типично хранится в поле заголовка битового потока, так что декодер будет знать, какой режим использовать, прежде чем декодер применит режим во время декодирования последующих данных.
[0003] В типичной системе сжатия видео или изображения декодер принимает квантованные коэффициенты преобразования, синтаксически проанализированные посредством энтропийного декодера. Эти квантованные коэффициенты преобразования затем передаются для обратного преобразования. Данные обратного преобразования затем используются различными способами, чтобы восстанавливать исходный сигнал. Квантование, преобразование и последующие операции декодирования могут зависеть от различных указателей режима, которые были приняты в данных заголовка, также синтаксически проанализированных из энтропийного декодера, перед декодированием квантованных коэффициентов преобразования.
[0004] Когда желательны сигналы дополнительных режимов в системе кодирования, сигналы могут вызывать увеличение размера битового потока, используемого для того, чтобы представлять кодированные сигналы. Также, если система кодирования удовлетворяет ранее согласованным стандартам или спецификациям, нужно будет изменить спецификации для того, чтобы размещать дополнительные указатели.
[0005] Существует необходимость в способе неявной сигнализации информации о режиме способом, который уменьшает размер битового потока, в отличие от случая, когда режим сигнализируется явным образом.
[0006] Также существует необходимость в способе сигнализации информации о режиме так, что получающийся в результате битовый поток может быть декодирован с помощью ранее определенного синтаксиса битового потока. Для того чтобы этот способ был целесообразным, существует также необходимость в ограничении увеличения сложности, ассоциированного с использованием битового потока в кодере или декодере. В общем, в технике кодер и декодер известны как "кодек".
[0007] Кодер: блок или вектор данных вводится для преобразования. Выходом преобразования является блок или вектор коэффициентов преобразования. Эти коэффициенты преобразования затем проходят через квантователь, который квантует коэффициенты в конкретном порядке. Квантованные коэффициенты преобразования затем вводятся в энтропийный кодер, который преобразует их в двоичный битовый поток для передачи или хранения. Различные режимы могут быть использованы во время этого процесса для выбора типа преобразования, типа квантователя или других режимов.
[0008] Декодер: двоичный битовый поток декодируется, давая в результате различные данные о режиме и блок или вектор коэффициентов преобразования. Коэффициенты передаются для обратного преобразования, вывод которого используется различными способами, чтобы восстанавливать видео, изображение или другие данные. Декодированные данные о режиме используются, чтобы управлять различными аспектами процесса декодирования.
[0009] Внедрение водяных знаков и сокрытие данных
В некоторых видеоприложениях видимый или невидимый цифровой водяной знак добавляется в качестве цифровых данных к изображению или видео. Внедрение водяных знаков типично используется, чтобы аутентифицировать записанные носители. Такие водяные знаки обычно задумываются как трудные для декодирования или удаления из изображения или видео. Внедрение водяных знаков не повышает эффективность кодирования видеокодеков, как желательно для настоящего изобретения, и прямое применение технологий внедрения водяных знаков с целью повышения эффективности кодирования видео не является очевидным. В уровне техники известно решение, в котором вставляются данные о режиме кодирования. Типично, в уровне техники используется контроль четности (нечетный или четный) суммы абсолютных значений декодированных коэффициентов преобразования, чтобы принимать решение, какой из двух или более режимов использовать.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0010] Способ декодирует изображение в форме битового потока. Изображение кодируется и представляется посредством векторов коэффициентов. Каждый коэффициент находится в квантованной форме.
[0011] Конкретный коэффициент выбирается в каждом векторе на основе порядка сканирования вектора. Затем набор режимов выводится на основе характеристик конкретного коэффициента. Затем битовый поток декодируется согласно набору режимов.
[0012] В одном варианте осуществления набор режимов выводится из последнего сканированного ненулевого коэффициента.
Краткое описание чертежей
[0013] Фиг.1 - блок-схема декодера кодека, который использует варианты осуществления изобретения;
Фиг.2 - блок-схема модуля вывода режима согласно вариантам осуществления изобретения;
Фиг.3A - пример порядка сканирования.
Фиг.3B - пример порядка сканирования.
Фиг.3C - пример порядка сканирования.
Фиг.3D - пример порядка сканирования.
Подробное описание вариантов осуществления
[0014] Варианты осуществления настоящего изобретения декодируют изображение в форме битового потока 109. Изображение делится на блоки и кодируется. Каждый блок представляется посредством вектора коэффициентов. Коэффициенты в блоке находятся в квантованной форме.
[0015] В декодере 100 кодека энтропийный декодер 201 выполняет синтаксический анализ битового потока 109 и выводит вектор или блок из N (ранее квантованных) коэффициентов 101 преобразования. Битовый поток также включает в себя данные 105 взаимного/внутреннего прогнозирования. Конкретный коэффициент в каждом векторе выбирается на основе порядка сканирования вектора. Порядки сканирования описываются ниже.
[0016] Блок 210 выводит набор (из двух или более) режимов на основе конкретного коэффициента и использует выведенные режимы 102, чтобы определять скорректированные коэффициенты 214, как описывается ниже. Как правило, скорректированные коэффициенты корректируются по направлению к нулю, когда возможно. Скорректированные коэффициенты обратно квантуются 203 и затем подвергаются обратному преобразованию 204.
[0017] В зависимости от набора режимов, которые выводятся, выведенные режимы 102 могут быть использованы в различных модулях декодера 100. Например, выведенные режимы 102 могут быть использованы в обратном квантовании 203 и/или обратном преобразовании 204.
[0018] Вывод обратного преобразования складывается 205 с выводом модуля 207 взаимного/внутреннего прогнозирования и сохраняется в буфере 206, который, в конечном счете, выводит блок 208.
[0019] Вектором или блоком 101 является [x0, x1,... xN-1]. В типичной системе сжатия кодер квантует множество коэффициентов преобразования до нуля. Следовательно, фокусом изобретения является выбор конкретного коэффициента среди этих ненулевых коэффициентов и выведение режима или набора режимов в блоке 210 на основе характеристик конкретного коэффициента.
[0020] Коэффициенты просматриваются или сканируются и затем синтаксически анализируются в конкретном порядке, например, растровое сканирование, зигзагообразное, вертикальное, диагональное и т.д. Фиг.3A-3D показывают примеры различных сканирований.
[0021] Типично, порядок сканирования выбирается для осуществления доступа сначала к ненулевым коэффициентам, после которых остаток квантованных коэффициентов преобразования в векторе может быть нулевым. При синтаксическом анализе принятых коэффициентов преобразования от энтропийного декодера, например, принятый вектор может быть: [5 -3 -4 2 0 1 0 0 0 0 0 0]. В этом случае элемент x5 является последним ненулевым коэффициентом.
[0022] В дополнение к указанию местоположения последнего ненулевого коэффициента также может быть указано местоположение других ненулевых коэффициентов. Кроме того, может также быть получена карта, указывающая местоположение ненулевых коэффициентов. Для примерного вектора, данного выше, двоичной картой ненулевых коэффициентов может быть [1 1 1 1 0 1 0 0 0 0 0 0]. Также могут быть получены альтернативные карты третичного уровня, которые указывают информацию о знаке, например [1 -1 -1 1 0 1 0 0 0 0 0 0].
[0023] После того как вектор декодированных коэффициентов был синтаксически проанализирован, информация о режиме, которая была вставлена в вектор, может быть извлечена и выведена. Рассмотрим два режима "A" и "B". Например, декодер может использовать два различных вида квантователей, два различных вида преобразований или иметь некоторый другой режим, который имеет два состояния. После того как информация о режиме извлечена, декодер может затем, например, использовать обратный квантователь (203) A, если был выбран режим A, или использовать обратный квантователь B, если был выбран режим B. Теперь описываются несколько вариантов осуществления извлечения вставленной информации о режиме.
[0024] В векторе [x0, x1,... xN-1] N коэффициентов, x0 является первым коэффициентом, а xN-1 является последним коэффициентом. Желательно определять режим M, который вставлен в вектор. Двумя возможными режимами, например, являются режим A и режим B.
СРАВНЕНИЕ С ПРЕДШЕСТВУЮЩИМ УРОВНЕМ ТЕХНИКИ
[0025] В предшествующем уровне техники режим, как правило, основывается на четности суммы всех коэффициентов в каждом блоке. Это требует времени для вычисления и может быть непрактичным во многих современных прикладных задачах реального времени, таких как обмен видеоинформацией мобильного телефона.
[0026] Предпочтительный вариант осуществления заявленного декодера основывает режим на одном коэффициенте и, возможно, одном последующем. Это является явным преимуществом над предшествующим уровнем техники.
Модуль вывода
[0027] Фиг.2 показывает варианты осуществления модуля 210 вывода режима. Декодированные коэффициенты передаются модулю 211 определения местоположения ненулевого коэффициента, так что набор режимов, например A или B, может быть выведен посредством селектора 212 режима. Опционально, один из режимов в наборе затем используется модулем 213 корректировки коэффициентов, чтобы создавать скорректированные коэффициенты 214. Скорректированные коэффициенты передаются обратному квантователю 203, который может опционально зависеть от выбранного режима. Решение о режиме может также использоваться для управления другими частями декодера, такими как обратное преобразование 204 и взаимное/внутреннее прогнозирование 207.
Варианты осуществления модуля вывода
[0028] Вариант осуществления 1
В этом варианте осуществления коэффициенты сканируются до тех пор, пока не будет обнаружен последний ненулевой коэффициент 215. Если этот коэффициент нечетный, тогда выводится режим A. Если этот коэффициент четный, тогда выводится режим B. Коэффициенты просматриваются для того, чтобы определять последний ненулевой коэффициент xk, где k может быть между 0 и N-1.
Если xk является нечетным, тогда режим M←A.
Если xk является четным, тогда режим M←B.
[0029] Возможно менять местами четный и нечетный, упомянутые выше, и другие варианты осуществления.
[0030] Вариант осуществления 2
В этом варианте осуществления, если последний коэффициент является ненулевым и нечетным в выбранном порядке сканирования, то выводится режим A, а если он является четным, то выводится режим B. Если последний коэффициент равен нулю, то обнаруживается последний ненулевой коэффициент. Это значение считается флагом, который указывает тип режима. Если флаг равен 1, то режимом является A. Если флаг равен -1, то режимом является B. Флаг затем удаляется посредством установки этого коэффициента на ноль. Когда флаг используется таким образом, декодер может восстанавливать тот же набор коэффициентов, используемых кодером (т.е. обратимых), поскольку кодер вставляет флаг в это местоположение. Если флаг не используется, поскольку последний коэффициент был скорректирован в кодере, чтобы гарантировать, что было принято корректное решение о режиме, то это изменение является необратимым. Вариантом осуществления декодера является:
[0031] Если последний коэффициент xN-1 ненулевой, то:
{
Если xk является нечетным, то режим M←A
Если xk является четным, то режим M←B
}
иначе
{
Если последний коэффициент xN-1 равен нулю, то коэффициенты просматриваются для того, чтобы определять последний ненулевой коэффициент xk.
Если xk = 1, то режим M←A, и тогда xk←0
Если xk = -1, то режим M←B, и тогда xk←0
}
[0032] Вариант осуществления 3
Вариант осуществления 2 может быть модифицирован так, что последний коэффициент может также быть использован в качестве позиции для флага 1 или -1, описанного выше:
Если последний коэффициент xN-1 ненулевой и не равен 1 или - 1, то:
{
Если xk является нечетным, то режим M←A
Если xk является четным, то режим M←B
}
иначе
{
Если последний коэффициент xN-1 равен нулю или 1 или -1, то коэффициенты просматриваются для того, чтобы определять последний ненулевой коэффициент xk.
Если xk = 1, то режим M←A, и тогда xk←0
Если xk = -1, то режим M←B, и тогда xk←0
}
[0033] Вариант осуществления 4
Когда 1 или -1 появляется часто в кодере в качестве последних ненулевых коэффициентов, может быть желательным не трактовать коэффициенты в качестве флагов, как описано для других вариантов осуществления. Если режим A, однако, ожидает присутствие четного коэффициента, необходима модификация.
[0034] В этом случае коэффициенты просматриваются для того, чтобы определять последний ненулевой коэффициент xk.
Если xk равен 1, -1 или является четным, то режим M←A
Если xk является нечетным, то режим M←B
Варианты осуществления кодера
[0035] В кодере квантователь выводит блок или вектор коэффициентов. Если декодер, который использует один из вышеописанных вариантов осуществления, принимает корректное решение о режиме с помощью коэффициентов, никаких специальных действий не требуется. Если, однако, значения этих коэффициентов являются такими, что декодер принимает некорректное решение, кодер должен модифицировать коэффициенты перед передачей коэффициентов энтропийному кодеру.
[0036] Существует два способа, чтобы вставить данные о режиме: обратимый, т.е. модификация обнаруживается и устраняется в декодере, так что вектор коэффициентов в декодере совпадает с вектором кодера; и необратимый, при этом декодер не может точно восстановить точный вектор после извлечения решения о режиме. В зависимости от вариантов осуществления кодера и декодера, могут применяться один или оба способа, обратимый и необратимый. Вектором коэффициентов в кодере является [v0, v1,…, vN-1].
[0037] Вариант осуществления 1 кодера
Коэффициенты просматриваются для того, чтобы определять последний ненулевой коэффициент vk.
[0038] Если режим M=A, и vk является четным, то:
{
Если vk>0, то vk←vk-1. Это сделает vk нечетным.
Если vk<0, то vk←vk+1. Это сделает vk нечетным.
}
Если режим M=B, и vk является нечетным, то:
{
Если vk=1, то vk ← 2. Это сделает vk четным, но не нулевым.
Если vk=-1, то vk ← -2. Это сделает vk четным, но не нулевым.
Если vk не равен ни 1, ни -1, то:
{
Если vk>0, то vk←vk -1. Это сделает vk четным.
Если vk<0, то vk←vk+1. Это сделает vk четным.
}
}
[0039] Вариант осуществления 2 кодера
Если последний коэффициент vN-1 является ненулевым, то vk←vN-1, и тогда операции, описанные в варианте осуществления 1 кодера, выполняются по vk.
иначе
{
Если последний коэффициент vN-1 равен нулю, то коэффициенты просматриваются для того, чтобы определять последний ненулевой коэффициент vk, и
{
Если режим M=A, vk+1 ← 1
Если режим M=B, vk+1 ← -1
}
[0040] Вариант осуществления 3 кодера
Если последний коэффициент vN-1 является ненулевым, то vk←vN-1, и:
{
Если режим M=A, то
{
если vk=-1, то vk←1; иначе
если vk является четным, то vk делается нечетным посредством корректировки vk на единицу, по направлению к нулю, пока эта корректировка не сделает vk = -1. В этом случае vk корректируется далеко от 0, т.е. vk = 3.
}
Если режим M=B, то
{
если vk=1, то vk ← -1; иначе
если vk является нечетным, то vk делается четным посредством корректировки его на единицу, по направлению к нулю.
}
}
[0041] Вариант осуществления 4 кодера
Определяется последний ненулевой коэффициент vk.
[0042] Если режим M=B и vk является нечетным, vk корректируется на единицу, по направлению к нулю. Если эта корректировка сделает vk=0, то вместо корректировки vk на единицу, он корректируется в противоположную от нуля сторону.
[0043] Если режим M=A и vk является четным, vk корректируется на единицу, по направлению к нулю.
[0044] Дополнительные варианты осуществления
Вместо использования последнего ненулевого коэффициента используется коэффициент с наибольшей величиной (абсолютным значением). Если больше чем один коэффициент имеет эту наибольшую величину, тогда используется коэффициент с наивысшим индексом вектора (т.е. последний коэффициент с наибольшими величинами).
[0045] Вместо использования нечетности/четности для принятия решения используется разница между двумя (соседними) коэффициентами. Если разница положительная, выводится режим A. Если отрицательная, выводится режим B.
[0046] Знак (положительный или отрицательный) данного коэффициента также может быть использован, чтобы выводить режим. Кодер может изменять знак коэффициента, а декодер может использовать этот знак, чтобы определять режим. После вывода режима декодер может использовать другую информацию в коэффициентах, чтобы решать, изменять ли знак снова, так что скорректированные коэффициенты в декодере соответствуют исходным коэффициентам в кодере.
[0047] Для случаев, когда квантователь использует квантование с оптимизированной зависимостью искажений от скорости передачи (RDO-Q), вставка флага режима или информации о режиме может быть сделана частью RDO-Q-процесса. Во время принятия решения о том, какие коэффициенты устанавливать на ноль, RDO-Q-процесс может объединять стоимость флага режима в дополнение к стоимости коэффициентов.
[0048] Больше чем два режима могут сигнализироваться. Например, три режима A, B и C могут сигнализироваться. Дополнительно, множество наборов режимов может сигнализироваться. Например, набор 1 включает в себя режимы A, B и C, а набор 2 включает в себя режимы W, X, Y, Z. Один режим из набора 1 и один режим из набора 2 может сигнализироваться для каждого набора коэффициентов.
[0049] Вместо использования последнего ненулевого коэффициента, чтобы сигнализировать о режиме, может быть использовано другое свойство, такое как наибольший или наименьший коэффициент. Если более чем один коэффициент удовлетворяет конкретным критериям, то вспомогательный процесс принятия решения может выбирать, куда вставлять информацию. Например, если конкретным критерием является использование наибольшего коэффициента, и два коэффициента имеют одинаковое наибольшее значение, то может быть использован последний из этих двух коэффициентов.
[0050] Другой вариант осуществления может определять число последовательных, т.е. соседних, ненулевых группировок коэффициентов. Группа с большинством ненулевых коэффициентов может быть использована, чтобы вставлять информацию о способе с помощью любых из ранее описанных вариантов осуществления.
[0051] Также, как описано ранее, карты двоичного или третичного уровня могут быть получены из декодированных коэффициентов. Режим для блока может также быть выведен на основе функций этих карт или шаблонов в картах. Например, режим может быть выведен на основе числа ненулевых коэффициентов. Двоичные кодовые слова также могут быть вставлены в эти карты в кодере, чтобы сигнализировать различные режимы.
Изобретение относится к технологиям кодирования/декодирования изображений. Техническим результатом является обеспечение декодирования битового потока посредством ранее определенного синтаксиса битового потока. Предложен способ декодирования изображения в форме битового потока, в котором изображение кодируется и представляется посредством коэффициентов, и в котором каждый коэффициент находится в квантованной форме. Способ сдержит этап, на котором определяют число последовательных коэффициентов на основе порядка сканирования. Далее, согласно способу, определяют, используется или нет набор режимов кодирования, согласно упомянутому числу последовательных коэффициентов, определенных на основе порядка сканирования. А также выводят один режим кодирования, использованный в процессе декодирования, из набора режимов кодирования, используя последний сканированный ненулевой коэффициент в последовательных коэффициентах, когда используется набор режимов кодирования. 3 н. и 13 з.п. ф-лы, 6 ил.
1. Способ декодирования изображения в форме битового потока, в котором изображение кодируется и представляется посредством коэффициентов, и в котором каждый коэффициент находится в квантованной форме, причем способ содержит этапы, на которых:
определяют число последовательных коэффициентов на основе порядка сканирования;
определяют, используется или нет набор режимов кодирования, согласно упомянутому числу последовательных коэффициентов, определенных на основе порядка сканирования;
выводят один режим кодирования, использованный в процессе декодирования, из набора режимов кодирования, используя последний сканированный ненулевой коэффициент в последовательных коэффициентах, когда используется набор режимов кодирования; и
декодируют битовый поток согласно введенному одному режиму кодирования, при этом
набор режимов кодирования включает в себя первый режим кодирования и второй режим кодирования и
на этапе ввода вводят первый режим кодирования как один режим кодирования из набора режимов кодирования, если значением последнего сканированного ненулевого коэффициента является 1, -1 или является четным, и в противном случае вводят второй режим кодирования, при этом этапы выполняются в декодере.
2. Способ декодирования изображения в форме битового потока, в котором изображение кодируется и представляется посредством коэффициентов, и в котором каждый коэффициент находится в квантованной форме, причем способ содержит этапы, на которых:
определяют число последовательных коэффициентов на основе порядка сканирования;
определяют, используется или нет набор режимов кодирования, согласно упомянутому числу последовательных коэффициентов, определенных на основе порядка сканирования;
выводят один режим кодирования, использованный в процессе декодирования, из набора режимов кодирования, используя значение коэффициента, имеющего наибольшую величину в последовательных коэффициентах, когда используется набор режимов кодирования; и
декодируют битовый поток согласно введенному одному режиму кодирования, при этом этапы выполняются в декодере.
3. Способ декодирования изображения в форме битового потока, в котором изображение кодируется и представляется посредством коэффициентов, и в котором каждый коэффициент находится в квантованной форме, причем способ содержит этапы, на которых:
определяют число последовательных коэффициентов на основе порядка сканирования;
определяют, используется или нет набор режимов кодирования, согласно упомянутому числу последовательных коэффициентов, определенных на основе порядка сканирования;
выводят один режим кодирования, использованный в процессе декодирования, из набора режимов кодирования, используя знак разности между двумя коэффициентами в последовательных коэффициентах, когда используется набор режимов кодирования; и
декодируют битовый поток согласно введенному одному режиму кодирования, при этом этапы выполняются в декодере.
4. Способ по п. 1, дополнительно содержащий этап, на котором:
устанавливают значение последнего сканированного ненулевого коэффициента на ноль после вывода, если значение последнего сканированного ненулевого коэффициента равно 1 или -1.
5. Способ по п. 1, дополнительно содержащий этап, на котором:
корректируют значение последнего сканированного ненулевого коэффициента равно 1, -1 в направлении к нулю после вывода.
6. Способ по п. 1, дополнительно содержащий этап, на котором:
корректируют значение последнего сканированного ненулевого коэффициента равно 1, -1 в противоположную от нуля сторону, если значением последнего сканированного ненулевого коэффициента является 1 или -1 перед выводом.
7. Способ по п. 1, дополнительно содержащий этап, на котором корректируют значение последнего сканированного ненулевого коэффициента в противоположную от нуля сторону, если значение последнего сканированного коэффициента равно 2 или -2, и требуется корректировка в нечетное значение.
8. Способ по п. 2, в котором наибольшая величина возникает в более чем одном коэффициенте.
9. Способ по п. 3, в котором знак корректируется после вывода.
10. Способ по любому из пп. 1-3, в котором один режим кодирования выводится совместно с процессом квантования с оптимизированной зависимостью искажений от скорости передачи.
11. Способ по любому из пп. 1-3, в котором стоимость используется для определения вставки информации в коэффициенты.
12. Способ по любому из пп. 1-3, в котором один режим кодирования выводится с помощью функции, примененной к коэффициентам.
13. Способ по любому из пп. 1-3, в котором набор режимов кодирования определяется кодером.
14. Способ по п. 1, дополнительно содержащий этап, на котором:
указывают в карте местоположения ненулевых коэффициентов.
15. Способ по п. 1, дополнительно содержащий этап, на котором:
указывают в карте знак каждого ненулевого коэффициента в последовательных коэффициентах.
16. Способ по п. 1, дополнительно содержащий этап, на котором:
корректируют значение последнего сканированного ненулевого коэффициента в противоположную от нуля сторону после вывода.
Приспособление для суммирования отрезков прямых линий | 1923 |
|
SU2010A1 |
Пломбировальные щипцы | 1923 |
|
SU2006A1 |
Способ обработки целлюлозных материалов, с целью тонкого измельчения или переведения в коллоидальный раствор | 1923 |
|
SU2005A1 |
Пломбировальные щипцы | 1923 |
|
SU2006A1 |
Колосоуборка | 1923 |
|
SU2009A1 |
Колосоуборка | 1923 |
|
SU2009A1 |
Станок для изготовления деревянных ниточных катушек из цилиндрических, снабженных осевым отверстием, заготовок | 1923 |
|
SU2008A1 |
КОДИРОВАНИЕ КОЭФФИЦИЕНТОВ ПРЕОБРАЗОВАНИЯ В КОДЕРАХ И/ИЛИ ДЕКОДЕРАХ ИЗОБРАЖЕНИЯ И ВИДЕОДАННЫХ | 2003 |
|
RU2354073C2 |
Авторы
Даты
2016-05-20—Публикация
2012-05-30—Подача