СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ С ПРЕОБРАЗОВАНИЕМ С ВЫБОРОМ ПРЕОБРАЗОВАНИЯ БЛОКОВОГО УРОВНЯ И НЕЯВНОЙ СИГНАЛИЗАЦИЕЙ В РАМКАХ ИЕРАРХИЧЕСКОГО РАЗБИЕНИЯ
METHOD AND DEVICE FOR CODING WITH TRANSFORMATION WITH CHOICE OF TRANSFORMATION OF THE BLOCK LEVEL AND IMPLICIT ALARM SYSTEM WITHIN THE FRAMEWORK OF THE HIERARCHICAL DIVISION

Область техники, к которой относится изобретение
Настоящее изобретение в целом относится к области кодирования и декодирования изображений, являющихся неподвижными изображениями или видеоизображениями, и конкретно относится к кодированию исходного изображения в выходной битовый поток с использованием квантованных коэффициентов преобразования и к декодированию входного битового потока в декодированное изображение с использованием обратно преобразованных коэффициентов преобразования. Настоящее изобретение дополнительно относится к кодеру для кодирования исходного изображения и декодеру для декодирования входного битового потока с использованием обратно преобразованных коэффициентов преобразования. Кроме того, настоящее изобретение относится к компьютерной программе, имеющей программный код для выполнения данного способа.
Уровень техники
Приложения цифровой видеосвязи и способ хранения информации реализуются широким спектром цифровых устройств, например, цифровыми камерами, сотовыми радиотелефонами, ноутбуками, системами радиовещания, системами видеоконференцсвязи и т.д. Одной из наиболее важных и сложных задач этих приложений является сжатие видео. Задача сжатия видео сложна и ограничена двумя противоречивыми параметрами: эффективностью сжатия и вычислительной сложностью. Стандарты кодирования видео, такие как ITU-T H.264/AVC или ITU-T H.265/HEVC, обеспечивают компромисс между этими параметрами. По этой причине, поддержка стандартов кодирования видео является обязательным требованием для практически любого приложения сжатия видео.
Современные стандарты кодирования видео основаны на разбиении исходного изображения на блоки. Обработка этих блоков зависит от их размера, пространственного положения и режима кодирования, заданного кодером. Режимы кодирования можно разделить на две группы в соответствии с типом предсказания: режимы внутреннего и внешнего предсказания. В режимах внутреннего предсказания используют пиксели одного и того же изображения для генерирования опорных выборок для вычисления значений предсказания для пикселей восстанавливаемого блока. Внутреннее предсказание можно также назвать пространственным предсказанием. Режимы внешнего предсказания предназначены для временного предсказания и используют опорные выборки предшествующих или следующих изображений для предсказания пикселей блока текущего изображения. После этапа предсказания выполняют кодирование преобразования для определения ошибки предсказания или остаточной ошибки, то есть, разностной величины между исходным сигналом и его предсказанием. Затем коэффициенты преобразования и вспомогательная информация кодируются с использованием энтропийного кодера, например, посредством контекстно-адаптивного двоичного арифметического кодирования, CABAC, для AVC/H.264 и HEVC/H.265.
Очевидно, что ошибки предсказания имеют разные статистические данные для разных режимов предсказания и в значительной степени зависят от предсказанного контента. Следовательно, для разных случаев выгодны различные режимы преобразования с точки зрения производительности сжатия. Чтобы повысить эффективность кодирования на этапе кодирования преобразования, можно использовать множество преобразований, которые обладают разными степенями уплотнения энергии для разных конкретных случаев.
Согласно первому примеру, известный и недавно принятый стандарт ITU-T H.265/HEVC, определенный в ISO/IEC 23008-2: 2013, «Информационные технологии. Высокоэффективное кодирование и доставка мультимедиа в гетерогенных средах. Часть 2: Высокоэффективное кодирование видео», ноябрь 2013 года, описывает набор современных инструментов кодирования видео, которые обеспечивают разумный компромисс между эффективностью кодирования и сложностью вычислений. Обзор стандарта ITU-T H.265/HEVC приведен в статье Gary J. Sullivan «Обзор стандарта высокоэффективного кодирования видео (HEVC)» в IEEE Transactions on Circuits and Systems for Video Technology, Vol , 22, № 12, декабрь 2012 г., все содержание которого включено в настоящий документ посредством ссылки.
Стандарт кодирования видео HEVC/H.265 предусматривает разбивку исходного изображения на блоки, например, блоки кодирования, CUs. Каждый из CUs может быть дополнительно разделен на меньшие CUs или блоки предсказания, PUs. PU может быть предсказан посредством, как внутреннего, так и внешнего предсказания, в соответствии с типом обработки, применяемым для пикселей PU. В случае внешнего предсказания, PU представляет собой область пикселей, которая обрабатывается в режиме обработки с компенсацией движения, используя вектор движения, указанный для PU. Для внутреннего предсказания PU определяет режим предсказания для набора блоков преобразования, TUs. TU может иметь разные размеры, например, 4x4, 8x8, 16x16 и 32x32 пикселей, и может обрабатываться по-разному. Для кодирования TU выполняют преобразование, то есть, ошибка предсказания преобразуется дискретным косинусным преобразованием, DCT, или дискретным синусным преобразованием, DST в стандарте HEVC/H.265, которое применяют к внутрикодированным блокам, и затем квантуют. Следовательно, восстановленные пиксели содержат шум квантования и артефакты блочности, которые могут влиять на точность предсказания.
По сравнению с известными стандартами кодирования видео, использующими только одно преобразование для упрощения устройства, стандарт HEVC/H.265 определяет два типа преобразования для внутреннего кодирования: DST для блоков 4x4 и DCT для других блоков. Для блоков 4x4 выбирают DST, поскольку этот тип преобразования обеспечивает лучшее уплотнение энергии для небольших внутрипредсказанных блоков.
Согласно дополнительному примеру, в JM/KTA предлагают известное направленное преобразование, зависящее от режима, MDDT, для компактных остаточных значений, полученных путем внутреннего предсказания, поскольку остаточная величина обычно имеют высокую энергию по направлению предсказания, при этом контуры более трудно предсказать, чем ровные области. Преобразование состоит из серии предопределенных отдельных преобразований; каждое преобразование эффективно при уплотнении энергии вдоль одного из направлений предсказания, что благоприятствует одному из режимов внутреннего предсказания. Тип MDDT соотносится с выбранным режимом внутреннего предсказания, поэтому явно не сигнализируется.
Для ошибок внешнего предсказания, которые также содержат информацию о направлении, MDDT не может использоваться, если только направления контуров явным образом не обнаружены и не переданы. Однако представленная таким образом дополнительная информация является значительной и ухудшает общее повышение производительности. Следовательно, MDDT предлагается только для внутрикодированных макроблоков.
Предварительно определены двадцать два различных типов преобразования для 22 режимов внутреннего предсказания; каждое из них состоит из двух матриц преобразования для горизонтального и вертикального преобразований. Память для хранения всех MDDT матриц составляет около 1.5Kb. Матрицы преобразования получают на основании большого набора видеопоследовательностей, которые все внутрикодированы. Все блоки подразделяются на 22 категории, в соответствии с их соответствующими режимами внутреннего предсказания. Для каждой категории блоков вычисляют горизонтальные и вертикальные матрицы корреляции ошибок предсказания, из которых собственные векторы использую для построения матриц горизонтального и вертикального преобразования, соответственно. Процедура получения матрицы MDDT аналогична процедуре Karhunen-Loève-преобразованию, KLT, но MDDT не является оптимальной, поскольку MDDT является разделимой и разработано на основании общих статистических данных, что может не соответствовать локальным статистическим данным определенных видеопоследовательностей. Кроме того, основные векторы MDDT, содержащие только целые числа, представляют собой масштабированные и округленные версии собственных векторов и не ортогональны друг другу.
Хорошо известно, что различные типы преобразования эффективно обрабатывают горизонтальные и вертикальные контуры, поскольку основные изображения содержат только горизонтальные и вертикальные контуры, например, шахматные доски. В MDDT тип раздельного преобразования используют для уплотнения энергии по произвольным направлениям, что кажется довольно противоречивым. Основные изображения MDDT для разных режимов внутреннего предсказания хорошо известны. Обнаружено, что, хотя основные изображения также используют шаблоны шахматной доски, положения нулевого пересечения отличаются от положений DCT или целочисленного косинусного преобразования, ICT.
В MDDT, руководствуясь статистическим наблюдением, можно утверждать, что каждый внутренний режим имеет определенную информацию о направлении, и одна матрица преобразования используется для каждого внутреннего режима. Хотя это не требует дополнительной сигнализации информации или величины искажения в каждом внутреннем режиме, одна матрица преобразования может не учитывать потенциальную изменчивость остаточных характеристик из-за разнообразия контента изображения.
В соответствии с дополнительным примером, в известном преобразовании с оптимизированной величиной искажения в зависимости от скорости передачи, RDOT, остаточное предсказание преобразуют с использованием различных базисных функций, и наилучшее значение выбирается с точки зрения величины искажения в зависимости от скорости передачи, R-D. В RDOT для каждого внутреннего направления существуют различные К-пары кандидатов вертикального и горизонтального преобразования, подготовленные в автономном режиме, которые генерируют полностью K различные пути преобразования для каждого внутреннего режима. Кодер тестирует все кандидаты и выбирает оптимальный путь с минимальным R-D значением стоимости. Индексы преобразования явно сигнализируются в битовом потоке. По сравнению с MDDT, RDOT дополнительно уточняет тип преобразования, предписывая, как режим, так и зависимость данных и, таким образом, в области преобразования может быть достигнуто лучшее уплотнение энергии. Хотя RDOT может расширять MDDT, предоставляя больше матриц преобразования для каждого пути преобразования, кодер должен выполнять преобразование, квантование, энтропийное кодирование, деквантование, обратное преобразование и восстановление, что предполагает наличие большей вычислительной нагрузки на кодер.
В свете этого ограничения могут также использоваться несколько схем быстрого RDOT для совместного ускорения процесса кодирования, см. X. Zhao, L. Zhang, S. Ma и W. Gao, «Кодирование видео посредством преобразования с оптимизированной величиной искажения в зависимости от скорости передачи», IEEE Trans. Circuits Syst. Video Technol., Vol. 22, no. 1, стр. 138-151, январь 2012 г. Один из подходов заключается в использовании результатов DCT кодирования для пропуска ненужных RDOT путей. В частности, DCT реализуется до RDOT, и если R-D стоимость с DCT ниже порогового значения, то будет выполняться RDOT. Это указывает на то, что RDOT будет выполняться только тогда, когда DCT также может обеспечить хорошую производительность кодирования, поскольку оптимальные режимы кодирования, основанные на DCT и RDOT, сильно коррелированы. Другой подход заключается в применении ускорения кодирования яркости, LCS, технологии в RDOT. В LCS результаты кодирования яркости для режима DC внутреннего предсказания для цветности восстанавливают для остальных режимов.
В отличие от подходов, основанных на подстройке, согласно раздельному 2-D кодированию двумерным преобразованием DCT при кодировании изображений, R.A. Cohen, S. Klomp, A. Vetro и H. Sun предлагают новую структуру адаптивно-направленного остаточного преобразования, DART, в своей работе «Адаптивно-направленное кодирование с преобразованием остаточного предсказания», в Proc. IEEE Int. Conf. Процесс обработки изображения. (ICIP), 2010, стр. 185-188. DART содержит первичное и вторичное преобразование. На этапе первичного преобразования DART различные 1-D преобразования используют по каждому ориентированному пути в каждом направлении. Тогда только DC коэффициенты, сгенерированные на первом этапе, обрабатываются посредством DCT на этапе вторичного преобразования. В некоторых случаях наблюдают короткие DCT пути, что может ограничить DCT спецификацию. Для решения этой технической задачи выполняют свертывание пути объединением пикселей от соседних сканирований. По сравнению с существующими зависимыми от направления преобразованиями, основанные на KLT режиме, этот способ является более гибким, поскольку не требует подстройки. DART схема была внедрена в программное обеспечение H.264/KTA, и получают лучшие характеристики кодирования по сравнению с MDDT.
Согласно дополнительному примеру, другим способом повышения эффективности кодирования с остаточным преобразованием является использование адаптивного множественного преобразования, AMT, также называемого усовершенствованным множественным преобразованием, EMT, см. Gary Sullivan, Gill Boyce, Jianle Chen и Elena Alshina, «Будущее кодирования видео: Объединенная модель исследования 1 (JEM1) для исследования будущих технологий кодирования видео», ITU-T SG16 Q6, TD 213 (WP 3/16). В дополнение к DCT-II и 4x4 DST-VII, которые использовались в высокоэффективном кодировании видео, HEVC, AMT используется для остаточного кодирования как для внешне, так и для внутрикодированных блоков. Он использует множество выбранных преобразований из семейств DCT/DST, отличных от текущих преобразований в HEVC. Недавно представленные матрицы преобразования является DST-VII, DCT-VIII, DST-I и DCT-V.
На фиг.9 показана сигнализация кодирования с преобразованием в соответствии с ATM. AMT применяется к CUs меньшим, чем 64x64, и для всех TUs в пределах CU на CU уровне определяют, применять AMT или нет. Для каждого TU с АМТ в пределах CU, используемое горизонтальное или вертикальное преобразование сигнализируют индексом в выбранный набор преобразований. Каждый набор преобразований формируют путем выбора двух преобразований из вышеупомянутых матриц преобразования.
Как показано на фиг.9, на CU уровне используют emtCuFlag флаг для выбора одного из двух вариантов. Первый вариант заключается в применении DCT-II (DCT2_EMT) к остаточному кодированию с преобразованием, которое не требует дополнительных бит. Второй вариант состоит в применении одного из преобразований, включенных в набор преобразований, обозначенных как EMT преобразования на фиг.9.
Согласно первому варианту, все TUs, содержащиеся в заданном CU, разбивают с использованием DCT-II. Согласно второму варианту, для каждого ТU необходимы два дополнительных бита сигнализации, так называемый emtTuIdx. Для внутреннего кодирования используют таблицу поиска для отображения режима внутреннего предсказания на набор преобразований, который содержит только два преобразования. Для внешнего кодирования всегда используют набор преобразований {DCT-VIII, DST-VII}. Таким образом, достаточно двух бит, чтобы кодировать с выбранными вертикальными и горизонтальными преобразованиями. Все перечисленные выше биты кодируют с использованием CABAC с контекстным моделированием.
Для остаточного внутреннего предсказания наборы преобразований предварительно определены на основе режима внутреннего предсказания, поэтому каждый режим внутреннего предсказания имеет свой собственный набор преобразований. Например, один набор преобразований может быть {DCT-VIII, DST-VII}. Обратите внимание, что набор преобразований для горизонтального преобразования может отличаться от набора преобразования для вертикального преобразования даже для одного и того же режима внутреннего предсказания. Однако общее количество различных наборов преобразований для всех режимов внутреннего предсказания, а также количество вновь введенных преобразований, ограничено. Однако для остаточного внешнего предсказания используют только один набор преобразований для всех режимов внешнего предсказания и для горизонтальных и вертикальных преобразований.
Важным аспектом любой процедуры преобразования, в которой должно быть выбрано одно из нескольких преобразований, является сигнализация, поскольку сигнализация может значительно повлиять на производительность кодирования. В HEVC/H.265 сигнализация не требуется, поскольку тип преобразования может быть определен путем анализа режима внутреннего предсказания и размера блока. Аналогично, MMDT не требует никакой сигнализации, поскольку направленные преобразования однозначно отображаются на режимы внутреннего предсказания. В случае RDOT требуется сигнализация, поскольку преобразование выбирается в процедуре оптимизации величины искажения в зависимости от скорости передачи, RDO, и не может быть определен со стороны декодера без дополнительной информации, то есть, без сигнализации. AMT также требует сигнализации.
Технология скрытия данных знака в форме способа скрытия данных знака описана в Gordon Clare, Félix Henry, Joël Jung, «Скрытие данных знака», Orange Lab доклад на JCT-VC совещании, JCTVC-G273, Женева, ноябрь 2011. С незначительными модификациями упомянутый документ был принят для HEVC/H.265 стандарта, как технология скрытия бита, SBH. В случае сжатия видео, матрица квантованных коэффициентов преобразования может быть разбита на группы коэффициентов, CGs и преобразована в одномерный массив в соответствии с порядком сканирования коэффициентов, чтобы эти коэффициенты могли быть эффективно кодированы энтропийным кодером. Например, ITU T H.265/HEVC стандарт определяет горизонтальные, вертикальные и диагональные порядки сканирования. Выбор порядка сканирования в соответствии с этим стандартом зависит от режима предсказания блока и, следовательно, от статистических свойств остаточного сигнала.
TU может быть разделен на несколько CGs, и в каждой CG указаны позиции первого и последнего ненулевых квантованных коэффициентов преобразования. Эти позиции могут быть указаны только в контексте конкретного порядка сканирования, поскольку первый и последний элементы могут быть определены только для упорядоченного набора.
Способ скрытия данных знака предполагает скрытие только одного флага знака в пределах заданного набора значений или изменяемых коэффициентов, который определяется как интервал, ограниченный последним и первым ненулевым квантованным коэффициентом преобразования. Этот способ выгоден не во всех случаях, и поэтому принято специальное решение о применении неявного или явного кодирования знака в пределах заданной CG.
Существует процедура проверки условий скрытия знака на стороне декодера. В частности, это решение основано на количестве коэффициентов преобразования или модифицируемых коэффициентов. Если это количество больше порогового значения, то первый знак первого коэффициента преобразования получают из четности суммы остатка. В противном случае, выполняется нормальное явное декодирование знаков коэффициентов, как изложено в US20130272424A1.
В EP2675159A1 раскрыт способ скрытия многобитовой информации с использованием перекрывающихся подмножеств. Исходный набор коэффициентов преобразования в CG делится на частично перекрывающиеся подмножества, так что значения скрытых знаков для обоих частично перекрывающихся подмножеств можно контролировать посредством изменения значения в области перекрытия. Первый бит знака основан на значении четности, определяемом с использованием первого подмножества, и второй знаковый бит основан на значении четности, определяемом с использованием второго подмножества. Первое подмножество и второе подмножество перекрываются в том смысле, что коэффициенты являются частью обоих подмножеств.
Раскрытие сущности изобретения
Признав наличие вышеупомянутых недостатков и необходимость решения технических задач, настоящее изобретение направлено на повышение уровня техники. В частности, задачей настоящего изобретения является обеспечение кодера, декодера, способа кодирования и способа декодирования для повышения качества кодирования и декодирования изображений.
В частности, задачей настоящего изобретения является повышения эффективности использования квантованных коэффициентов преобразования в кодировании и декодировании. Варианты осуществления изобретения также повышают эффективность кодирования и декодирования с точки зрения механизма сигнализации для поддержки низкого уровня сигнализации.
Вышеупомянутая задача настоящего изобретения достигается решением, предусмотренным в прилагаемых независимых пунктах формулы изобретения. Полезные эффекты настоящего изобретения дополнительно определены в соответствующих зависимых пунктах формулы изобретения.
Первый аспект настоящего изобретения обеспечивает кодер для кодирования исходного изображения в выходной битовый поток с использованием квантованных коэффициентов преобразования. Кодер содержит средство получения, выполненное с возможностью получения из исходного изображения входных данных, расположенных в блоке преобразования. Кодер содержит средство преобразования, выполненное с возможностью преобразования, в соответствии с типом преобразования, выбранным из набора типов преобразований, входных данных в коэффициенты преобразования. Кодер содержит средство квантования, выполненное с возможностью квантования коэффициентов преобразования для генерирования квантованных коэффициентов преобразования. Кодер содержит средство вычисления, выполненное с возможностью генерирования индексной информации для идентификации выбранного типа преобразования из набора типов преобразований, и определения информации, подлежащей сокрытию, при этом информация, которая должна быть скрыта, является, по меньшей мере, частью индексной информации. Кодер содержит средство сокрытия, выполненное с возможностью скрывать информацию, которая должна быть скрыта, в квантованных коэффициентах преобразования.
Таким образом, предлагают скрыть информацию, относящуюся к выбранному типу преобразования, то есть скрыть информацию, адаптированную, по меньшей мере, для частичной идентификации выбранного типа преобразования из набора типов преобразования. Средство вычисления выгодно тем, что нет необходимости добавлять явную сигнализацию индексной информации в выходной битовый поток. Преимущественно явная сигнализация индексной информации может быть, по меньшей мере, снижена. Следовательно, битовая скорость выходного битового потока может быть уменьшена.
В первом варианте реализации кодера, в соответствии с первым аспектом, информация, подлежащая скрытию, является индексной информацией, так что тип преобразования, выбранный из набора типов преобразования, может быть идентифицирован на основе скрытой информации.
Таким образом, скрыть всю индексную информацию, адаптированную для идентификации выбранного типа преобразования, выгодно тем, что для идентификации выбранного типа преобразования не требуется никакой другой информации. Дополнительная явная сигнализация не требуется в рамках выходного битового потока.
Во втором варианте реализации кодера, в соответствии с первым аспектом, кодер содержит средство сигнализации. Информация, которая должна быть скрыта, является частью индексной информации. Средство сигнализации выполнено с возможностью добавления в выходной битовый поток информации сигнализации, являющейся еще одной частью индексной информации, так, что тип преобразования, выбранный из набора типов преобразований, может быть идентифицирован на основании скрытой информации и информации сигнализации.
Таким образом, скрытая информация, состоящая только из части индексной информации, выгодна тем, что количество явной сигнализации, необходимой для идентификации выбранного типа преобразования, может быть уменьшено. Другими словами, скрытая информация, адаптированная для идентификации поднабора, содержащего выбранный тип преобразования, является предпочтительной. Выходной битовый поток может, например, содержать скрытую информацию в квантованных коэффициентах преобразования, а также информацию сигнализации, переданную как явную сигнализацию, причем упомянутая информация сигнализации добавляется к выходному битовому потоку в дополнение к квантованным коэффициентам преобразования. Затем скрытая информация позволяет идентифицировать поднабор, содержащий выбранный тип преобразования, и дополнительная информация сигнализации позволяет идентифицировать выбранный тип преобразования в пределах поднабора. Поскольку нет необходимости, чтобы сигнальная информация идентифицировала выбранный тип преобразования во всем наборе типов преобразования, размер или количество информации сигнализации может быть уменьшено.
В третьем варианте реализации кодера, в соответствии с первым аспектом, средство скрытия выполнено с возможностью скрытия информации, которая должна быть скрыта, в квантованных коэффициентах преобразования, в зависимости от условия сокрытия.
В четвертой варианте реализации кодера, в соответствии с первым аспектом, условие сокрытия содержит сравнение параметра, зависящего от квантованных коэффициентов преобразования, с пороговым значением. Средство скрытия выполнено с возможностью проверки условия сокрытия, и скрывать информацию, которая должна быть скрыта, в квантованных коэффициентах преобразования, только если условие сокрытия истинно.
В пятом варианте реализации кодера, в соответствии с первым аспектом, если условие сокрытия является ложным, средство сигнализации выполнено с возможностью добавления в выходной битовый поток информации сигнализации, являющейся индексной информацией.
В шестом варианте реализации кодера, в соответствии с первым аспектом, кодер содержит средство разбиения, выполненное с возможностью рекурсивного разбиения исходного изображения в соответствии с иерархически уровневой структурой данных, причем один уровень структуры данных является блоком преобразования. В соответствии с первым альтернативным вариантом, средство скрытия выполнено с возможностью скрывать первую часть информации, которая должна быть скрыта, в первом уровне структуры данных, и вторую часть информации, которая должна быть скрыта, во втором уровне структуры данных, которая отличается от первого уровня. Согласно второму альтернативному варианту, информация, которая должна быть скрыта, является частью индексной информации, и средство скрытия выполнено с возможностью скрывать информацию, которая должна быть скрыта, в первом уровне структуры данных, и средство сигнализации выполнено с возможностью добавления в выходной битовый поток информации сигнализации, которая является другой частью индексной информации во втором уровне структуры данных, которая отличается от первого уровня.
В седьмом варианте реализации кодера, в соответствии с первым аспектом, кодер содержит средство разбиения, выполненное с возможностью рекурсивного разбиения исходного изображения, в соответствии с иерархически уровневой структурой данных, причем один уровень структуры данных является блоком преобразования. Средство разбиения выполнено с возможностью разбиения блока преобразования на множество групп коэффициентов. Средство скрытия выполнено с возможностью скрывать информацию, которая должна быть скрыта, в квантованных коэффициентах преобразования, расположенных, по меньшей мере, в одной из множества групп коэффициентов.
В восьмом варианте реализации кодера, в соответствии с первым аспектом, средство вычисления выполнено с возможностью применения контрольной функции к квантованным коэффициентам преобразования для получения результата функции проверки. Средство вычисления выполнено с возможностью определения, соответствует ли результат функции проверки информации, подлежащей сокрытию. Если результат функции проверки не соответствует информации, подлежащей сокрытию, средство вычисления выполнено с возможностью модификации, по меньшей мере, одного из квантованных коэффициентов преобразования, так что результат функции проверки соответствует информации, подлежащей сокрытию.
В девятом варианте реализации кодера, в соответствии с первым аспектом, информация, подлежащая сокрытию, содержит флаг, имеющий первое и второе значение. Первое значение идентифицирует, что тип преобразования по умолчанию, набора типов преобразований, является выбранным типом преобразования. Второе значение указывает, что выбранный тип преобразования состоит из поднабора, содержащийся в наборе типов преобразования без типа преобразования по умолчанию.
Второй аспект настоящего изобретения обеспечивает декодер для декодирования входного битового потока в декодированное изображение с использованием обратно преобразованных коэффициентов преобразования. Декодер содержит средство получения, выполненное с возможностью получения из входного битового потока квантованных коэффициентов преобразования, расположенных в блоке преобразования. Декодер содержит средство деквантования, выполненное с возможностью деквантования квантованных коэффициентов преобразования для генерирования коэффициентов преобразования. Декодер содержит средство вычисления, выполненное с возможностью восстановления скрытой информации из квантованных коэффициентов преобразования, причем скрытая информация является, по меньшей мере, частью индексной информации. Декодер содержит средство обратного преобразования, выполненное с возможностью выполнения обратного преобразования, в соответствии с типом преобразования, идентифицированным из набора типов преобразований посредством индексной информации, коэффициентов преобразования в обратные преобразованные коэффициенты преобразования.
В первом варианте реализации декодера, согласно второму аспекту, скрытая информация представляет собой индексную информацию, так что тип преобразования идентифицируется из набора типов преобразования на основе скрытой информации.
Во втором варианте реализации декодера, согласно второму аспекту, декодер содержит средство извлечения. Скрытая информация является частью индексной информации. Средство извлечения выполнено с возможностью извлечения из входного битового потока информации сигнализации, являющейся еще одной частью индексной информации, так что тип преобразования идентифицируется из набора типов преобразования на основании скрытой информации и информации сигнализации.
В третьем варианте реализации декодера, согласно второму аспекту, средство вычисления выполнено с возможностью восстановления скрытой информации из квантованных коэффициентов преобразования в зависимости от условия сокрытия.
В четвертом варианте реализации декодера, согласно второму аспекту, условие сокрытия содержит сравнение параметра, зависящего от квантованных коэффициентов преобразования, с пороговым значением. Средство вычисления выполнено с возможностью проверки условия сокрытия и восстановления скрытой информации из квантованных коэффициентов преобразования только в том случае, если условие сокрытия истинно.
В пятом варианте реализации декодера, согласно второму аспекту, если условие сокрытия является ложным, средство извлечения выполнено с возможностью извлечения из входного битового потока информации сигнализации, являющейся индексной информацией.
В шестом варианте реализации декодера, согласно второму аспекту, декодер содержит средство обратного разбиения, выполненное с возможностью получения декодированного изображения путем обратного разбиения иерархически уровневой структуры данных, причем один уровень структуры данных является блоком преобразования. Согласно первому альтернативному варианту, средство вычисления выполнено с возможностью восстановления первой части скрытой информации из первого уровня структуры данных, и второй части скрытой информации из второго уровня структуры данных, которая отличается от первого уровня. Согласно второму альтернативному варианту, скрытая информация является частью индексной информации, и средство вычисления выполнено с возможностью восстановления скрытой информации из первого уровня структуры данных, и средство извлечения выполнено с возможностью извлечения из входного битового потока информации сигнализации, которая является другой частью индексной информации, во втором уровне структуры данных, которая отличается от первого уровня.
В седьмом варианте реализации декодера, согласно второму аспекту, декодер содержит средство обратного разбиения, выполненное с возможностью получения декодированного изображения путем обратного разбиения иерархически уровневой структуры данных, причем один уровень структуры данных является блоком преобразования. Средство обратного разбиения выполнено с возможностью получения блока преобразования путем обратного разбиения множества групп коэффициентов. Средство вычисления выполнено с возможностью восстановления скрытой информации из квантованных коэффициентов преобразования, расположенных, по меньшей мере, в одной из множества групп коэффициентов.
В восьмом варианте реализации декодера, согласно второму аспекту, средство вычисления выполнено с возможностью применения функции проверки к квантованным коэффициентам преобразования для получения результата функции проверки, в котором результат функции проверки соответствует скрытой информации.
В девятом варианте реализации декодера, согласно второму аспекту, скрытая информация содержит флаг, имеющий первое и второе значение, при этом первое значение идентифицирует, что тип преобразования по умолчанию набора типов преобразований является идентифицированным типом преобразования, а второе значение указывает, что идентифицированный тип преобразования содержится в поднаборе, содержащийся в наборе типов преобразований без типа преобразования по умолчанию.
Функции кодера, согласно первому аспекту, и функции декодера, согласно второму аспекту, и любые функции любого из их вариантов реализации могут выполняться процессором или компьютером, и любое их средство может быть реализовано как программное обеспечение и/или аппаратное обеспечение в таком процессоре или компьютере.
Третий аспект настоящего изобретения предусматривает способ кодирования исходного изображения в выходной битовый поток с использованием квантованных коэффициентов преобразования. Способ содержит получение из исходного изображения входных данных, расположенных в блоке преобразования. Способ содержит преобразование в соответствии с типом преобразования, выбранным из набора типов преобразований, входных данных в коэффициенты преобразования. Способ содержит квантование коэффициентов преобразования для генерирования квантованных коэффициентов преобразования. Способ содержит генерирование индексной информации, адаптированной для идентификации выбранного типа преобразования из набора типов преобразований. Способ содержит определение информации, подлежащей скрытию, в котором информация, подлежащая скрытию, является, по меньшей мере, частью индексной информации. Способ содержит скрытие информации, которая должна быть скрыта, в квантованных коэффициентах преобразования.
Дополнительные признаки или варианты реализации способа кодирования исходного изображения в выходной битовый поток с использованием квантованных коэффициентов преобразования согласно третьему аспекту изобретения могут выполнять функциональные возможности кодера в соответствии с первым аспектом изобретения и его различными вариантами реализации.
Четвертый аспект настоящего изобретения обеспечивает способ декодирования входного битового потока в декодированное изображение с использованием обратно преобразованных коэффициентов преобразования. Способ содержит получение из входного битового потока квантованных коэффициентов преобразования, расположенных в блоке преобразования. Этот способ содержит деквантование квантованных коэффициентов преобразования для генерирования коэффициентов преобразования. Способ содержит восстановление скрытой информации из квантованных коэффициентов преобразования, причем скрытая информация является, по меньшей мере, частью индексной информации. Способ содержит обратное преобразование, в соответствии с типом преобразования, идентифицированным из набора типов преобразований посредством индексной информации, коэффициентов преобразования в обратно преобразованные коэффициенты преобразования.
Способы, в соответствии с третьим или четвертым аспектами, или любые их варианты реализации могут выполняться процессором или компьютером.
Дополнительные признаки или варианты реализации способа декодирования входного битового потока в декодированное изображение с использованием обратно преобразованных коэффициентов преобразования, в соответствии с четвертым аспектом изобретения, могут выполнять функциональные возможности декодера в соответствии со вторым аспектом изобретения и его различными вариантами реализации.
Пятый аспект настоящего изобретения обеспечивает компьютерную программу, содержащую программный код для выполнения способа кодирования исходного изображения в соответствии с третьим аспектом изобретения или способ декодирования входного битового потока в соответствии с четвертым аспектом изобретения, при этом компьютерная программа работает на устройстве вычисления.
Важным аспектом изобретения является то, что на стороне декодера полная или частичная информация о том, что обратное преобразование следует выбирать, извлекается путем применения функции проверки, например, функции проверки на четность, для анализируемых квантованных коэффициентов преобразования. Изобретение относится к сигнализации выбранного типа преобразования. В частности, на стороне декодера полная или частичная информация о том, что следует выбрать обратное преобразование, извлекается путем применения функции проверки, например, функция проверки на четность, анализируемых квантованных коэффициентов преобразования, QTCs. Этот тип неявной сигнализации может упоминаться как скрытие.
Следует отметить, что все устройства, элементы, узлы и средства, описанные в настоящей заявке, могут быть реализованы в программных или аппаратных элементах или любой их комбинации. Все этапы, которые выполняются различными объектами, описанными в настоящей заявке, а также функциональные возможности, описанные для выполнения различными объектами, предназначены для обозначения того, что соответствующий объект адаптирован или выполнен с возможностью выполнять соответствующие этапы и функциональные возможности. Даже если в последующем описании конкретных вариантов осуществления конкретная функциональность или этап, которые должны быть полностью сформированы внешними объектами, не указаны в описании конкретного подробного элемента этого объекта, который выполняет этот конкретный этап или функциональность, должно быть ясно, что эти способы и функциональные возможности могут быть реализованы в соответствующих программных или аппаратных элементах или любой их комбинации.
Краткое описание чертежей
Вышеупомянутые аспекты и варианты реализации настоящего изобретения будут объяснены в нижеследующем описании конкретных вариантов осуществления со ссылкой на прилагаемые чертежи, на которых
Фиг.1 показывает кодер согласно варианту осуществления настоящего изобретения.
Фиг.2 показывает декодер согласно варианту осуществления настоящего изобретения.
Фиг.3 показывает кодер в соответствии с дополнительным вариантом осуществления настоящего изобретения.
Фиг.4 показывает блок-схему последовательности операций способа декодирования согласно варианту осуществления настоящего изобретения.
Фиг.5 показывает блок-схему последовательности операций способа декодирования согласно дополнительному варианту осуществления настоящего изобретения.
Фиг.6 показывает блок-схему последовательности операций способа декодирования согласно дополнительному варианту осуществления настоящего изобретения.
Фиг.7 показывает способ кодирования исходного изображения согласно варианту осуществления настоящего изобретения.
Фиг.8 показывает способ декодирования входного битового потока в соответствии с дополнительным вариантом осуществления настоящего изобретения.
Фиг.9 показывает сигнализацию кодирования с преобразованием согласно предшествующему уровню техники.
Осуществление изобретения
На фиг.1 показан кодер 100 согласно варианту осуществления настоящего изобретения и, в частности, кодер 100 для кодирования исходного изображения 101 в выходной битовый поток 114 с использованием квантованных коэффициентов 112 преобразования.
Кодер 100 содержит средство 102, 104, 106 получения, выполненное с возможностью получать из исходного изображения 101 входные данные, расположенные в блоке преобразования ТU.
Кодер 100 содержит средство 109 преобразования, выполненное с возможностью преобразовывать, в соответствии с типом преобразования, выбранным из набора типов преобразования, входные данные в коэффициенты 110 преобразования.
Кодер 100 содержит средство 111 квантования, выполненное с возможностью квантовать коэффициенты 110 преобразования для генерирования квантованных коэффициентов 112 преобразования.
Кодер 100 содержит средство вычисления, выполненные с возможностью генерировать индексную информацию, выполненную с возможностью идентифицировать выбранный тип преобразования среди набора типов преобразований, и определять информации, подлежащую скрытию, при этом информация, которая должна быть скрыта, является, по меньшей мере, частью индексной информации.
Кодер 100 содержит средство скрытия, выполненное с возможностью скрывать информацию, которая должна быть скрыта, в квантованных коэффициентах 112 преобразования.
На фиг.3 показан кодер в соответствии с дополнительным вариантом осуществления настоящего изобретения и, в частности, кодер 300 для кодирования исходного изображения 301 в выходной битовый поток 318 с использованием квантованных коэффициентов 308, 313 преобразования.
Кодер 300 содержит средство 302 получения, выполненное с возможностью получать из исходного изображения 301 входные данных 303, расположенные в блоке преобразования ТU.
Кодер 300 содержит средство 305, 310 преобразования, выполненное с возможностью преобразовывать, в соответствии с типом преобразования, выбранным из набора типов 305, 310 преобразования, входные данные 303 в коэффициенты 306, 311 преобразования.
Кодер 300 содержит средство 307, 312 квантования, выполненное с возможностью квантовать коэффициенты 306, 311 преобразования для генерирования квантованных коэффициентов 308, 313 преобразования.
Кодер 300 содержит средство 315 вычисления, выполненное с возможностью генерировать индексную информацию, выполненную с возможностью идентифицировать выбранный тип преобразования среди набора типов 305, 310 преобразования, и определять информацию, подлежащую скрытию, при этом информация, которая должна быть скрыта, является, по меньшей мере, частью индексной информации.
Кодер 300 содержит средство 319 скрытия, выполненное с возможностью скрывать информацию, которая должна быть скрыта, в квантованных коэффициентах 308, 313 преобразования.
В частности, исходным изображением может быть неподвижное изображение или изображение видео.
В частности, кодер может содержать средство разбиения. Средство разбиения обозначено на фиг.1 ссылочной позицией 102. Средство разбиения выполнено с возможностью рекурсивно разбивать исходное изображение 101 в соответствии с иерархически уровневой структурой данных. Одним уровнем структуры данных является блок преобразования. Средство разбиения может быть в частности выполнено с возможностью выполнять разбиение исходного изображения 101 на дерево квадратов.
Иерархически уровневая структура данных может содержать дополнительные уровни, определяющие, по меньшей мере, один из пакет кодового дерева, CTU, блок кодирования, CU, блок предсказания, PU, или блок преобразования, TU. CTU является корнем структуры кодирования видеопоследовательности предварительно определенного размера, содержащего часть изображения, например, 64x64 пикселей. CTU может быть разбит на CUs. CU представляет собой базовую структуру кодирования видеопоследовательности предварительно определенного размера, содержащую часть изображения, которая принадлежит к CTU. CU может быть разбит на дополнительные CUs. PU является структурой кодирования, которая является результатом разбиения CU. PU может быть внутри- или внешне предсказанным, в соответствии с типом обработки, применяемым для пикселей PU. PU можно разбит на несколько TUs или соответствовать одному TU. TU является примером блока преобразования.
В частности, средство 102, 104, 106, 302 получения может быть выполнено с возможностью получать входные данные 303 блока преобразования из остаточных данных блока предсказания, причем PU является примером блока предсказания. Входные данные 303 могут быть составной частью остаточных данных, то есть, блок TU преобразования может быть подблоком блока PU предсказания. Таким образом, кодер может быть выполнен с возможностью кодировать исходное изображение 101 видео.
На фиг.1 остаточные данные соответствуют ссылке 105, 107. Средство получения содержит средство 104, 106 предсказания, выполненное с возможностью формировать разностное значение между данными пикселей исходного изображения 101, то есть, данными пикселей, расположенными в блоке предсказания, и данными предсказания для упомянутых пикселей для получения остаточных данных 105, 107. Средство предсказания предпочтительно поддерживает, как режимы внутреннего, так и внешнего предсказания и, соответственно, содержит средство 104 внутреннего предсказания и средство 106 внешнего предсказания. Ссылка 103 на фиг.1 иллюстрирует тот факт, что исходное изображение 101 может обрабатываться посредством внутреннего или внешнего предсказания.
В частности, средство получения может альтернативно быть выполнено с возможностью получать входные данных 303, являющимися данными пикселей исходного изображения 101, например, в соответствии с одним уровнем иерархически уровневой структуры данных. Таким образом, кодер не содержит этап предсказания, и может быть выполнен с возможностью кодировать исходное изображение 101, которое представляет собой неподвижное изображение.
В частности, кодер может содержать переключатель 304 для отправки входных данных 303 в набор типов 305, 310 преобразования для получения нескольких кандидатов преобразования на основе входных данных. Входные данные могут обрабатываться несколькими параллельными средствами 305, 310 преобразования, причем каждое средство преобразования выполнено с возможностью преобразовывать входные данные в соответствии с одним из типов преобразования. Набор типов преобразования может содержать N различных типов, причем N типы преобразования идентифицированы на фиг.3 как «Преобразование 1» и «Преобразование N».
Каждое средство 305, 310 преобразования генерирует коэффициенты 306, 311 преобразования, а также индексную информацию 309, 314, идентифицирующую соответствующий тип преобразования, используемый для получения коэффициентов 306, 311 преобразования. Коэффициенты 306, 311 преобразования квантуют посредством средств 307, 312 квантования для получения квантованных коэффициентов преобразования.
Средство 319 скрытия выполнено с возможностью скрывать информацию, которая должна быть скрыта, в квантованных коэффициентах 308, 313 преобразования. Средство 315 вычисления выполнено с возможностью выбирать квантованные коэффициенты 308, 313 преобразования и ассоциированную с ними индексную информацию 309, 314, которые обеспечивают минимальную величину стоимости соотношения скорость-искажения, RD. Средство 315 вычисления соответственно выводит выбранные квантованные коэффициенты 316 преобразования, которые затем предпочтительно энтропийно кодируют посредством энтропийным средством 317. Энтропийное средство на фиг.1 обозначено ссылкой 113.
Различные признаки вариантов осуществления, показанных на фиг. 1 и 3 могут быть объединены вместе.
В частности, средство 319 скрытия выполнено с возможностью скрывать информацию, которая должна быть скрыта, в квантованных коэффициентах 112, 308, 313 преобразования, в соответствии со способом скрытия данных.
В частности, средство 319 скрытия выполнено с возможностью скрывать информацию, которая должна быть скрыта, в квантованных коэффициентах 112, 308, 313 преобразования в зависимости от условия скрытия. Условие скрытия может содержать сравнение параметра, в зависимости от квантованных коэффициентов 112, 308, 313 преобразования, с пороговым значением, и средство 319 скрытия может быть выполнено с возможностью проверять условие скрытия, и скрывать информацию, которая должна быть скрыта, в квантованных коэффициентах 112, 308, 313 преобразования, только если условие скрытия истинно.
Условием скрытия может быть сравнение квантованных коэффициентов 112, 308, 313 преобразования с пороговым ограничением. Например, условие скрытия может содержать следующие условия или другие известные условия скрытия:
- число ненулевых квантованных коэффициентов преобразования, QTCs, больше порогового значения. В этом случае, подсчитывается количество наличия ненулевых QTC в TU или CG. Если это число превышает пороговое значение, то условие скрытия является истинным.
- пороговое значение ниже максимальной разностной величины между позициями старших QTCs при сканировании QTCs. В этом случае, QTCs TU или CG или множества CGs сканируются в соответствии с шаблоном сканирования или порядком сканирования. Старшие QTCs выбираются из сканированных QTCs, причем старшие QTCs представляют собой, например, ненулевые коэффициенты или коэффициенты выше заданного значения. Вычисляется разносная величина между позициями старших QTCs в соответствии с шаблоном сканирования или порядком сканирования. Если разностная величина превышает пороговое значение, то условие скрытия истинно.
- размер TU больше порогового значения. В этом случае, условие скрытия истинно, если размер TU превышает пороговое значение.
В частности, средство 315 вычисления выполнено с возможностью применять функцию проверки к квантованным коэффициентам 112, 308, 313 преобразования, чтобы получить результат функции проверки, и определять, соответствует ли результат функции проверки информации, которая должна быть скрыта, и если нет, изменять, по меньшей мере, один из квантованных коэффициентов 112, 308, 313 преобразования, чтобы результат функции проверки соответствовал информации, подлежащей скрытию.
Например, функция проверки может быть одной из следующих функций или других известных функций проверки:
- функция проверки четности, применяемая к младшим битам некоторых QTCs, выбранных из TU, с использованием двоичного шаблона, и
- функция проверки четности, применяемая к индексу позиции последнего или первого ненулевого QTC или к линейной комбинации последнего и первого ненулевого QTC индекса позиции.
Такая функция проверки на четность, применяемая к заданным QTCs, состоит в проверке значения четности заданных QTCs. Поскольку информация, которая должна быть скрыта, содержит один или несколько битов, один такой бит может быть скрыт с помощью значения четности заданных QTCs. В частности, если значение четности заданных QTCs соответствует биту четности, который должен быть скрыт, в кодере не требуется выполнение дополнительной обработки. Это означает, что заданные QTCs кодируют в неизмененном виде в битовом потоке. С другой стороны, если значение четности заданных QTCs не соответствует биту четности, который должен быть скрыт, тогда кодер выполнен с возможностью изменять заданные QTCs таким образом, чтобы их четность соответствовала биту четности, подлежащему скрытию. Это может быть достигнуто, например, путем изменения значения одного из заданных QTCs для получения соответствия четности. Например, может быть изменен самый младший бит, LSB, одного из заданных QTCs.
Как правило, для скрытия информации о типах преобразования могут использоваться различные известные механизмы, такие как срытие одноуровневых данных в неперекрывающихся наборах коэффициентов преобразования, как это делается для скрытия нескольких битов знака в соответствии с US20130272424A1, или срытие одноуровневых данных в перекрывающихся наборах коэффициентов преобразования в соответствии с EP2675159A1, или скрытие многоуровневых данных в иерархически структурированных блоках кодирования в соответствии с документом, предложенным авторами Алексеем Филипповым, Василием Руфицким и Владимиром Потаповым, «Скрытие многоуровневых данных на основе скалярного квантования данных для приложений кодирования видео» Конференция IEEE по визуальной коммуникации и обработке изображений, декабрь 2014 года, Валлетта, Мальта, стр. 262-265.
На фиг.2 показан декодер 200 согласно варианту осуществления настоящего изобретения и, в частности, декодер 200 для декодирования входного битового потока 201 в декодированное изображение 212 с использованием обратно преобразованных коэффициентов преобразования.
Декодер содержит средство 202, 204, 206 получения, выполненное с возможностью получать из входного битового потока 201 квантованные коэффициенты преобразования, расположенные в блоке преобразования ТU.
Декодер содержит средство 209 деквантования, выполненное с возможностью деквантовать квантованные коэффициенты преобразования для генерирования коэффициентов 210 преобразования.
Декодер содержит средство 208 вычисления, выполненные с возможностью восстанавливать скрытую информацию из квантованных коэффициентов преобразования, причем скрытая информация является, по меньшей мере, частью индексной информации.
Декодер содержит средство 211 обратного преобразования, выполненное с возможностью выполнять обратное преобразование, в соответствии с типом преобразования, идентифицированным из набора типов преобразований посредством индексной информации, коэффициентов 210 преобразования в обратно преобразованные коэффициенты 212 преобразования.
Декодер 200 на фиг.2 является симметричным объектом кодера 100 на фиг.1, в котором средство получения содержит средство 202 энтропийного декодирования для обработки входного битового потока. Он также содержит средство 204, 206 предсказания для соответственно режимов внутреннего и внешнего предсказания, где ссылка 203 иллюстрирует выбор между внутренним и внешним предсказанием. Соответствующие выходные данные 205, 207 средств 204, 206 предсказания обрабатываются средством 209 деквантования.
На фиг.4 показана блок-схема последовательности операций способа декодирования согласно варианту осуществления настоящего изобретения.
Вариант осуществления основан на известном усовершенствованном множественном преобразовании, ЕМТ, описанном, например, в Gary Sullivan, Gill Boyce, Jianle Chen и Elena Alshina, «Будущее кодирование видео: Совместная исследовательская модель 1 (JEM1) для будущего исследования кодирования видео», ITU-T SG16 Q6, TD 213 (WP 3/16), с использованием выделенных флагов сигнализации emtCuFlag и emtTuIdx в синтаксисе битового потока, которые явно указывают выбранный тип преобразования на стороне декодера.
Теперь, в варианте осуществления, показанном на фиг.14, emtCuFlag явно кодируется на уровне CU или PU, и emtTuFlag кодируется неявно на TU уровне в QTCs согласно схеме кодирования по настоящему изобретению. Другими словами, emtTuFlag - это информация, которая скрыта в QTCs кодером, и информация, которая была восстановлена декодером из QTCs.
После начала выполнения способа на этапе 401 emtCuFlag анализируют из входного битового потока. Затем значение emtCuFlag проверяют на этапе 403. Если этот emtCuFlag является ложным, то применяют первый тип преобразования, например, DCT-II, на CU или PU уровне, то есть, средство 211 обратного преобразования применяет обратное преобразование в соответствии с этим первым типом преобразования для каждого TU CU или PU, содержащего emtCuFlag. Этот первый тип преобразования является, например, типом преобразования по умолчанию. Если этот emtCuFlag является истинным, то используют дополнительный тип преобразования средством 211 обратного преобразования. В этом случае, для всех TUs заданного CU или PU активируют разные типы преобразований. В этом и во всех дополнительных вариантах осуществления emtCuFlag не является обязательным.
Если emtCuFlag флаг установлен на истинное значение, выполняют дополнительную обработку в цикле TU. Индекс текущего TU, обрабатываемого в цикле, обозначен как «idx» и сканируют от 0 до N-1, где N обозначает количество TUs в обрабатываемом CU или PU. На этапе 405 инициализации индексы emtTuIdx (idx) преобразования для каждого индекса TU устанавливают на ноль. Цикл TU начинается с проверки 410 условия скрытия, которая указывает, присутствует ли скрытый флаг в QTCs текущего обрабатываемого TU.
Если условие 410 скрытия является ложным, то значение флага, которое позволяет выбирать преобразование для обработанного TU (emtTuFlag), анализируется 412 из битового потока. В противном случае, значение этого флага восстанавливают или извлекают 411 из QTCs, применяя функцию проверки.
Таким образом, средство 208 вычисления выполнено с возможностью применять функцию проверки к QTCs, чтобы получить результат функции проверки, при этом результат функции проверки соответствует скрытой информации. Эта скрытая информация может быть непосредственно индексом типа преобразования, который должен быть выбран или идентифицирован.
В качестве альтернативы, как показано на фиг.4, эта скрытая информация «emtTuFlag (idx) = checkFunc ()» предназначена для идентификации выбранного типа преобразования в том случае, если значение emtTuFlag истинно 420, на следующем этапе анализируют 422 индекс emtTuIdx типа преобразования из битового потока, который указывает типы горизонтального и вертикального преобразования. В противном случае, если значение emtTuFlag является ложным 420, то выбирают тип преобразования по умолчанию путем присвоения emtTuIdx нулевого значения.
Другой вариант осуществления содержит те же этапы обработки, которые описаны со ссылкой на фиг.4, но с той разницей, что в случае, если условие 410 скрытия является ложным, то значение emtTuFlag устанавливается как ложное. В частности, тогда выбирают тип преобразования по умолчанию путем присвоения emtTuIdx нулевого значения.
На фиг.5 показана блок-схема последовательности операций способа декодирования согласно дополнительному варианту осуществления настоящего изобретения.
Этот вариант осуществления имеет, если сравнивать вариант осуществления, показанный на фиг.4, различные преобразования по умолчанию, каждое из упомянутых преобразований применяют, как в вертикальном, так и в горизонтальном направлениях и соответственно выбирают в соответствии с двумя случаями:
- условие скрытия ложно;
- условие скрытия истинно, но emtTuIdx равно нулю.
Например, когда условие 510 скрытия ложно, то emtTuIdx равен -1, и DCT2 применяют 513 как к горизонтальному, так и вертикальному направлениям. В другом случае, если условие 510 скрытия истинно, но emtTuFlag равно нулю, то DST2 применяют 523 как в горизонтальном, так и в вертикальном направлениях. Остальные этапы на фиг.5 соответствуют этапам, показанным на фиг.4.
На фиг.6 показана блок-схема последовательности операций способа декодирования согласно дополнительному варианту осуществления настоящего изобретения.
ZC
В этом варианте осуществления вводится дополнительная проверка условия. Идея этого варианта осуществления основана на том факте, что TU обрабатываются во время кодирования и декодирования в том же порядке. Если указано несколько TUs, обработанных последовательно в порядке обработки, чтобы иметь тип преобразования по умолчанию, предполагается, что остальные TUs имеют одинаковый тип преобразования по умолчанию, и сигнализация для остальных TUs не выполняется, что уменьшает служебную сигнализацию. Количество этих последовательно обработанных TUs, которые могут отключать сигнализацию TU-уровня, определяется пороговым значением T.
ZC
ZC
ZC
Ниже приведено подробное описание порядка модификации варианта осуществления, показанного на фиг.6, относительно варианта осуществления, показанного на фиг.4. На этапе 605 переменная «zero_counter» счетчика, которая содержит текущее количество последовательно обработанных TUs, которое имеет значение emtTuFlag, равное нулю, инициализируется на «0». На этапе 606 значение «zero_counter» сравнивается с пороговым значением T. Если «zero_counter» выше или равен пороговому значению T, тогда предполагается, что остальные TUs имеют одинаковый тип преобразования по умолчанию, и emtTuIdx устанавливается 607 на «0». В противном случае, выполняют проверку 610 условия скрытия, соответствующую этапу 410 на фиг.1. Как видно из блок-схемы алгоритма на фиг.6, результат сравнения между «zero_counter» и T управляет обработкой остальных TUs в заданном CU или PU. Еще одно изменение относительно фиг.4, заключается в том, что если TU имеет ненулевой emtTuFlag, то «zero_counter» сбрасывается 621 на ноль. В противном случае, если TU имеет нулевой emtTuFlag, то «zero_counter» увеличивается 624.
Варианты осуществления, показанные на фиг. 5 и фиг.6, также могут быть объединены.
В альтернативных вариантах осуществления emtCUFlag может быть удален. Важнейшим преимуществом, как результат удаления такого флага CU-уровня для преобразования, является возможность уменьшить вычислительную сложность из-за исключения схемы двойного прохода при рассмотрении RD-стоимости двух разных вариантов, то есть, для значений флага 0 и 1. С другой стороны, наличие флага CU уровня может минимизировать стоимость сигнализации, если одно преобразование гораздо чаще выбирается в CU, чем другие. Таким образом, оба варианта могут использоваться с учетом соответствующей цели оптимизации, то есть, либо снижение сложности, либо увеличение эффективности кодирования.
Изобретение решает указанную техническую задачу уменьшения служебной сигнализации, когда все преобразования, включающие в себя DCT-II (DCT2_EMT), доступны на TU уровне. Это достигается с помощью скрытия данных для сигнализации, используется ли DCT-II (или другое преобразование в зависимости от режима предсказания, размера предсказанного блока и т.д.) или нет. Изобретение в вариантах осуществления кодирования мультимедийной информации обеспечивает следующие преимущества:
- могут использовать во многих потенциальных приложениях в гибридной системе кодирования видео, которые совместимы с JEM, что является основой для стандарта кодирования следующего поколения.
- обеспечивают снижение BD скорости и повышают субъективное качество по сравнению с JEM1 по сравнению с кодированием этого флага с использованием CABAC.
- каждый TU могут обрабатывать отдельно без принятия решений на CU уровне.
- снижают избыточную сигнализацию (синтаксис), например emtCuFlag.
На фиг.7 показан способ 700 для кодирования исходного изображения 101 в выходной битовый поток 114 с использованием квантованных коэффициентов 112 преобразования согласно варианту осуществления настоящего изобретения.
Способ содержит получение 701 из исходного изображения 101, 301 входных данных 303, расположенных в блоке преобразования TU.
Способ содержит преобразование 702, в соответствии с типом преобразования, выбранным из набора типов 305, 310 преобразования, входных данных 303 в коэффициенты 110, 306, 311 преобразования.
Способ содержит квантование 703 коэффициентов 110, 306, 311 преобразования для генерирования квантованных коэффициентов 112, 308, 313 преобразования.
Способ содержит генерирование 704 индексной информации, приспособленной для идентификации выбранного типа преобразования среди набора типов 305, 310 преобразования.
Способ содержит определение 705 информации, которая должна быть скрыта, причем информация, которая должна быть скрыта, является, по меньшей мере, частью индексной информации.
Способ содержит скрытие 706 информации, которая должна быть скрыта, в квантованных коэффициентах 112, 308, 313 преобразования.
На фиг.8 показан способ 800 для декодирования входного битового потока 201 в декодированное изображение 212 с использованием обратно преобразованных коэффициентов преобразования в соответствии с дополнительным вариантом осуществления настоящего изобретения.
Способ содержит получение 801 из входного битового потока 201 квантованных коэффициентов преобразования, расположенных в блоке преобразования TU.
Способ содержит деквантование 802 квантованных коэффициентов преобразования для генерирования коэффициентов 210 преобразования.
Способ содержит восстановление 803 скрытой информации из квантованных коэффициентов преобразования, причем скрытая информация является, по меньшей мере, частью индексной информации.
Способ содержит обратное преобразование 804, в соответствии с типом преобразования, идентифицированным из набора типов преобразований посредством индексной информации, коэффициентов 210 преобразования в обратно преобразованные коэффициенты 212 преобразования.
Настоящее изобретение было описано совместно с различными вариантами осуществления, как в качестве примеров, так и как варианты реализации. Однако другие варианты осуществления могут быть поняты и реализованы специалистами в данной области и применены, в соответствии с заявленным изобретением, посредством изучения чертежей, настоящего раскрытия и независимых пунктов формулы изобретения. В формуле изобретения, а также в описании слово «содержащий» не исключает других элементов или этапов, а неопределенный артикль «a» или «an» не исключает множественного числа. Один элемент или другой блок может выполнять функции нескольких объектов или элементов, указанных в формуле изобретения. Сам факт, что определенные признаки перечислены во взаимных различных зависимых пунктах формулы изобретения, не указывает на то, что комбинация этих признаков не может использоваться в преимущественном варианте реализации.