Область техники, к которой относится изобретение
Представленное раскрытие, в основном, относится к области обработки видеоданных и к способу и устройству выбора порядка сканирования, в частности, к контентно адаптивному выбору порядка сканирования, и конкретно относится к декодеру для декодирования коэффициентов видеоблоков и к кодеру для кодирования коэффициентов блоков последовательности видеопоследовательностей.
Уровень техники
Цифровая видеосвязь и приложения для хранения данных реализуются широким диапазоном цифровых устройств, таких как цифровые камеры, сотовые радиотелефоны, ноутбуки, широковещательные системы и видеосистемы для организации телеконференций. Одной из самых важных и сложных задач этих приложений является сжатие видеоданных. Задача видеосжатия является сложной и ограничивается двумя противоречащими друг другу параметрами: эффективность сжатия и вычислительная сложность. Стандарты видеокодирования, такие как стандарт ITU-T H.264/AVC или стандарт высокоэффективного видеокодирования (High-Efficiency Video Coding, HEVC) ITU-T H.265/HEVC, обеспечивают хороший компромисс между этими параметрами. По этой причине поддержка стандартов видеокодирования является обязательным требованием едва ли не для каждого приложения видеосжатия.
Современные стандарты видеокодирования основаны на делении исходного изображения на блоки. Обработка этих блоков зависит от их размера, пространственного положения и режима кодирования, определяемого кодером. Режимы кодирования могут быть классифицированы на две группы в соответствии с типом предсказания: режим внутрикадрового предсказания и режим межкадрового предсказания. Режимы внутрикадрового предсказания используют пиксели одного и того же изображения, чтобы генерировать опорные выборки для вычисления значений предсказания для пикселей реконструируемого блока. Внутрикадровое предсказание может также упоминаться как пространственное предсказание. Режимы межкадрового предсказания разработаны для временного предсказания и используют опорные выборки предыдущих или следующих изображений для предсказания пикселей блока текущего изображения. После этапа предсказания для ошибки предсказания, которая является разностью между исходным сигналом и его предсказанием, выполняется кодирование с преобразованием. Затем, коэффициенты преобразования и дополнительная информация кодируются, используя энтропийный кодер, например, с контекстно-адаптивным двоичным арифметическим кодированием (Context-Adaptive Binary Arithmetic Coding, CABAC) для стандартов AVC/H.264 и HEVC/H.265.
Очевидно, что ошибки предсказания имеют различную статистику для различных режимов предсказания и сильно зависят от предсказываемого контента. Следовательно, с точки зрения характеристик сжатия для различных случаев предпочтительны различные преобразования. Чтобы повысить эффективность кодирования на этапе кодирования с преобразованием, могут использоваться многочисленные преобразования, обладающие различным энергетическим сжатием для различных конкретных случаев.
Стандарт ITU-T H.265/HEVC, известный, например, из документа ISO/IEC 23008-2:2013 "Information technology - High efficiency coding and media delivery in heterogeneous environments - Part 2: High efficiency video coding", ноябрь 2013 г., представляет набор современных инструментов видеокодирования, которые обеспечивают разумный компромисс между эффективностью кодирования и вычислительной сложностью. Краткий обзор по стандарту ITU-T H.265/HEVC дается в статье "Overview of the High Efficiency Video Coding (HEVC) Standard”, автор Гэри Дж. Салливан, в документе IEEE "Transactions on Circuits and Systems for Video Technology", том 22, № 12, декабрь 2012 г., все содержание которой содержится здесь посредством ссылки.
Аналогично стандарту видеокодирования ITU-T H.264/AVC, стандарт видеокодирования HEVC/H.265 обеспечивает деление исходного изображения на блоки, например, на блоки кодирования (coding unit, CU). Каждый из CU может быть далее разделен на более мелкие CU или на блоки предсказания (prediction unit, PU). PU может предсказываться внутри кадров или между кадрами в соответствии с типом обработки, применяемым к пикселям PU. В случае межкадрового предсказания PU представляет область пикселей, которая обрабатывается посредством компенсации движения, используя вектор движения, определенный для PU. Для внутрикадрового предсказания PU определяет режим предсказания для набора блоков преобразования (transform unit, TU). TU может иметь различные размеры (например, 4x4, 8x8, 16x16 и 32x32 пикселей) и может обрабатываться различными способами. Для TU выполняется кодирование с преобразованием, то есть, ошибка предсказания преобразуется с помощью дискретного косинусного преобразования или дискретного синусного преобразования согласно стандарту HEVC/H.265, который применяется к блокам с внутрикадровым кодированием, и квантование. Следовательно, реконструированные пиксели содержат шум квантования и артефакты деления на блоки, которые могут влиять на точность предсказания.
Во всех предшествующих стандартах видеокодирования, кроме HEVC/H.265, для поддержания простоты проекта используется только одно преобразование. Стандарт HEVC/H.265 определяет два преобразования для внутрикадрового кодирования: DST для блоков 4×4, поскольку это преобразование обеспечивает лучшее энергетическое сжатие для малых блоков внутрикадрового кодирования, и DCT для других блоков.
Кроме того, для стандарта HEVC/H.265 применяется технология сканирования зависящих от режима коэффициентов (mode-dependent coefficient scan, MDCS). Основная идея, стоящая за этим, заключается в том, чтобы выбрать порядок сканирования, подчиняясь выбранному режиму внутрикадрового предсказания. Для блоков с внутрикадровым кодированием порядок сканирования блока преобразования (transform block, TB) 4×4 и ТВ 8×8 luma определяется режимом внутрикадрового предсказания, смотрите работу Joel Sole, Rajan Joshi, Nguyen, Tianying Ji, Marta Karczewicz, Gordon Clare, Felix Henry и Alberto Dueňas "Transform Coefficient Coding in HEVC", IEEE Transactions on Circuits and Systems for Video Technology, том. 22, № 12, декабрь 2012 г., стр. 1765-1777. Каждый из 35 режимов внутрикадрового предсказания использует один из трех возможных порядков сканирования: диагональный, горизонтальный или вертикальный. Таблица поиска отображает режим внутрикадрового предсказания в одном из сканирований.
Этот инструмент использует горизонтальную или вертикальную корреляцию остаточного сигнала в зависимости от режима внутрикадрового предсказания. Например, для горизонтального режима предсказания, энергия коэффициента преобразования группируется в первых нескольких столбцах, тогда как вертикальное сканирование приводит в результате к меньшему количеству энтропийно кодированных накопителей. Аналогично, для вертикального предсказания, предпочтительным является горизонтальное сканирование. Эксперименты показали, что введение горизонтального и вертикального сканирований для больших TB предлагает невысокую эффективность сжатия, поэтому применение этих сканирований ограничивается двумя более мелкими TB.
Технологии, подобные MDCS, рассматриваются в документе авторов Yung-Lyul Lee, Ki-Hun Han, Dong-Gyu Sim и Jeongil Seo "Adaptive Scanning for H.264/AVC Intra Coding", ETRI Journal, том 28, № 5, октябрь 2006, стр. 668-671, в документе авторов Byeong-Doo Choi, Jin-Hyung Kim и Sung-Jea Ko. "Adaptive Coefficient Scanning Based on the Intra Prediction Mode", ETRI Journal, том 29, № 5, октябрь 2007 г., стр. 694-696, и в документе авторов Md. Salah Uddin Yusuf и Mohiuddin Ahmad "A Novel Scanning Scheme for Directional Spatial Prediction of AVS Intra Coding", International Journal of Advanced Research in Electrical, Electronics and Instrumentation Engineering, том 2, выпуск 8, август 2013, стр. 4120-4126. Порядки сканирования отличаются от тех порядков, которые используются в стандарте HEVC/H.265. Кроме того, предлагается отображать режимы внутрикадрового предсказания в порядках сканирования.
Кроме того, режим деления, известный из документа авторов Bae Keun Lee, Jae Cheol Kwon и Joo Young Kim "Method and Apparatus for Coefficient Scan Based on Partition Mode of Prediction Unit", публикация применения патента, США, US 2014/0314143 A1, PCT/KR2012/009373, 8 ноября 2012 г., и параметры квантования (quantization parameter, QP), известные из документа авторов Thai-Ha Nguyen, Yoichi Yagasaki и Ali Tabatabai "QP adaptive coefficients scanning and application", публикация применения патента, США, US 2011/0249726 A1, 1 апреля 2011 г., могут использоваться в качестве характеристик для выбора порядка сканирования не только для внутрикадрового, но также и для межкадрового кодирования.
Таким образом, существует огромное разнообразие порядков сканирования, которые могут быть эффективны для одних и тех же режимов и размеров TU. Это главная причина, почему процедура на основе RDO (Rate-Distortion Optimization, оптимизация соотношения между скоростью и искажением) или аналогичной, например, на основе анализа искажений или действий, может использоваться для принятия окончательного решения в отношении того, какие из потенциальных порядков сканирования должны быть выбраны.
Пример того, как можно выбирать порядок сканирования в процедуре, основанной на RDO, известен, например, из документа авторов Muhammed Zeyd Coban и Karczewicz "Adaptive scanning of transform coefficients for video coding", публикация применения патента, США, US 2012/0099646 A1, 17 октября 2011 г. В этом случае выбирают порядок сканирования, обеспечивающий наименьшие затраты, связанные со скоростью и искажением. Таким образом, основное преимущество этого подхода состоит в том, что выбранный порядок сканирования обеспечивает наибольший выигрыш при кодировании. Следовательно, эффективность кодирования при этом подходе выше, чем при других способах, если не учитывать издержки на сигнализацию.
Этот предшествующий уровень техники предлагает два алгоритма выбора порядка сканирования, обеспечивающих наибольший выигрыш при кодировании. Основная отличительная особенность между этими двумя алгоритмами заключается в использовании различных механизмов для обнаружения таких ТВ, для которых этот способ адаптивного выбора порядка сканирования является неприемлемым, то есть, используется порядок сканирования по умолчанию. В первом алгоритме количество значимых коэффициентов преобразования сравнивается с пороговым количеством. Во втором алгоритме позиция последних значимых коэффициентов преобразования сравнивается с пороговой позицией. В отличие от ранее описанных технологий, выбранный порядок сканирования должен сигнализироваться в обоих этих случаях, так чтобы декодер мог применять правильный порядок сканирования к принятым коэффициентам преобразования. Таким образом, основным недостатком подходов, использующих процедуру принятия решений, основанную на RDO, являются издержки на сигнализацию.
Другой способ повышения эффективности сжатия по сравнению с MDCS состоит в адаптации порядка сканирования в соответствии с собранной статистикой для блоков, имеющих схожие значения параметров, такие как режим внутрикадрового предсказания, режим деления, размер блока и т.д., вместо того, чтобы использовать априорно определенные порядки сканирования. Соответственно, начальные порядки сканирования определяются для использования в случаях, когда статистика недостаточна. Когда количество блоков, используемых для сбора статистических данных, превышает порог, порядок сканирования может быть адаптирован, основываясь на собранных статистических данных, смотрите работу авторов Yan Ye и Marta Karczewicz "Adaptive coefficient scanning for video coding", патент США US 8,488,668 B2 от 4 июня 2008 г. Подобный подход известен из работы Sridhar Srinivasan "Adaptive coefficient scan order", описание европейского патента EP 1679903 B1, 30.11.2005 г.
Однако, такой адаптивный порядок сканирования, основанный на собранной статистике ранее кодированных или декодированных блоков, не всегда обеспечивает эффективность кодирования, которая выше, чем для заданных порядков сканирования, таких как зигзагообразные, диагональные, вертикальные, горизонтальные, спиральные сканирования по часовой стрелке и против часовой стрелки и т.д.
Раскрытие сущности изобретения
При наличии вышеупомянутых недостатков и проблем, представленное раскрытие стремится улучшить уровень техники. В частности, задача представленного раскрытия состоит в обеспечении видеодекодера, способа декодирования, видеокодера и способа кодирования для повышения эффективности кодирования.
Представленное раскрытие конкретно предназначено для повышения эффективности кодирования посредством улучшенного порядка сканирования для сканирования матрицы коэффициентов в один или более векторов коэффициентов или для инверсного сканирования одного или более векторов коэффициентов в матрицу коэффициентов.
Кроме того, представленное раскрытие предназначено для повышения эффективности кодирования, при снижении издержек на сигнализацию.
Вышеупомянутая задача настоящего раскрытия достигается решением, представленным в приложенных независимых пунктах формулы изобретения. Предпочтительные реализации настоящего раскрытия дополнительно определяются в соответствующих зависимых пунктах формулы изобретения.
Первый подход представленного раскрытия обеспечивает декодер для декодирования коэффициентов блоков видеопоследовательности, полученных из битового потока. Декодер содержит модуль перечня типов сканирования, выполненный с возможностью обеспечения одного или более заданных порядков сканирования. Порядок сканирования также известен в технике как тип сканирования. Декодер содержит генератор порядка сканирования, выполненный с возможностью генерирования одного или более порядков сканирования. Декодер содержит переключатель порядка сканирования, выполненный с возможностью выбора порядка сканирования для каждого блока из числа заданных и сгенерированных порядков сканирования на основе информации о порядке сканирования, содержащейся в битовом потоке. Декодер содержит модуль декодирования, выполненный с возможностью декодирования одного или более векторов коэффициентов каждого блока из битового потока. Декодер содержит последовательно-параллельный преобразователь, выполненный с возможностью инверсного сканирования для каждого блока одного или более векторов коэффициентов этого блока в соответствии с порядком сканирования, выбранным для этого блока, чтобы получить матрицу коэффициентов. Генератор порядка сканирования выполнен с возможностью генерирования одного или более порядков сканирования в зависимости от одной или более ранее полученных матриц коэффициентов блоков видеопоследовательности.
Таким образом, представленное раскрытие предпочтительно тем, что оно обеспечивает как заданные порядки сканирования, так и контекстно-адаптивные сгенерированные порядки сканирования. Расширяя набор доступных порядков сканирования, эффективность квантования соотношения между скоростью и искажением может быть соответственно повышена.
В форме реализации декодера, соответствующей первому подходу раскрытия, модуль перечня типов сканирования выполнен с возможностью обеспечения одного или более заданных порядков сканирования для каждого из множества наборов параметров кодирования. Генератор порядка сканирования выполнен с возможностью генерирования порядка сканирования для каждого из наборов параметров кодирования в зависимости от одной или более ранее полученных матриц коэффициентов, связанных с этим набором параметров кодирования. Переключатель порядка сканирования выполнен с возможностью выбора порядка сканирования для каждого блока, определяя набор параметров кодирования этого блока и выбирая порядок сканирования для матрицы коэффициентов, полученной для этого блока из заданных и сгенерированных порядков сканирования для определенного набора параметров кодирования.
Таким образом, для каждого набора параметров кодирования могут быть обеспечены как заданные порядки сканирования, так и контентно-адаптивные сгенерированные порядки сканирования. Кроме того, различные порядки сканирования могут генерироваться для различных наборов параметров кодирования, так что набор доступных порядков сканирования может быть увеличен и адаптирован к каждому набору параметров кодирования. Поэтому выбранный порядок сканирования может дополнительно повысить эффективность соотношения скорости и искажения.
В частности, каждый набор параметров кодирования может соответствовать, например, сочетанию одного или более из числа режима предсказания, режима деления, одного или более параметров преобразования и одного или более параметров квантования.
В форме реализации декодера, соответствующей первому подходу раскрытия, декодер содержит устройство оценки распределения коэффициентов, выполненное с возможностью обеспечения для каждого из наборов параметров кодирования, статистики распределения для одной или более ранее полученных матриц коэффициентов, связанных с этим набором параметров кодирования. Генератор порядка сканирования выполнен с возможностью генерирования порядка сканирования для каждого из наборов параметров кодирования в зависимости от статистики распределения для этого набора параметров кодирования.
Таким образом, сгенерированные порядки сканирования могут отражать статистику распределения предыдущих матриц коэффициентов. Сгенерированные порядки сканирования могут, таким образом, обеспечить хорошую эффективность кодирования для последующих матриц коэффициентов, если статистика распределения последующих матриц подобна предыдущим матрицам коэффициентов.
В форме реализации декодера, соответствующей первому подходу раскрытия, если порядок сканирования, выбранный для данного блока, задан заранее, устройство оценки распределения коэффициентов выполняется так, чтобы не обновлять статистику распределения или устанавливать статистику распределения в исходное состояние для набора параметров кодирования данного блока.
Таким образом, если порядок сканирования, выбранный для данного блока, является заранее заданным порядком сканирования, это означает, что для набора параметров кодирования данного блока сгенерированный порядок сканирования может обеспечить худшую эффективность кодирования, чем для заданных порядков сканирования. Поэтому данный блок представляет статистику распределения, которая не соответствует статистике распределения предыдущих матриц коэффициентов, и поэтому статистика распределения данных блоков предпочтительно не используется для обновления статистики распределения, обеспечиваемой устройством оценки распределения коэффициентов. Альтернативно, может быть предпочтительным установить статистику распределения в исходное условие, обеспечиваемое устройством оценки распределения коэффициентов, поскольку статистика предыдущих матриц коэффициентов может в чем-либо не соответствовать статистике существующих матриц коэффициентов.
В форме реализации декодера, соответствующей первому подходу раскрытия, модуль декодирования выполнен с возможностью анализа для каждого блока полученной из битового потока информации о параметрах кодирования. Переключатель порядка сканирования выполнен с возможностью определения набора параметров кодирования данного блока в соответствии с проанализированной информацией о параметрах кодирования для этого данного блока.
Таким образом, декодер может получать информацию в отношении набора параметров кодирования и использовать заданные и сгенерированные порядки сканирования, которые соответствуют этому набору параметров кодирования, чтобы повысить эффективность кодирования.
В форме реализации декодера, соответствующей первому подходу раскрытия, модуль декодирования выполнен с возможностью анализа полученной из битового потока информации о порядке сканирования, идентифицирующей выбранный порядок сканирования.
Таким образом, декодер способен идентифицировать выбранный порядок сканирования из битового потока и, в зависимости от того, является ли этот выбранный порядок сканирования заранее заданным или сгенерированным, декодер может правильно инверсно сканировать векторы коэффициентов и может, например, правильно обновлять или не обновлять статистику распределения, обеспечиваемую устройством оценки распределения коэффициентов.
Функции декодера, соответствующие первому подходу раскрытия, и любые функции любых форм его реализации могут выполняться процессором или компьютером, и любые из их свойств могут быть реализованы как программное обеспечение и/или аппаратные средства в таком процессоре или компьютере.
Второй подход представленного раскрытия обеспечивает способ декодирования коэффициентов блоков видеопоследовательности, полученной из битового потока. Способ содержит обеспечение одного или более заданных порядков сканирования. Способ содержит генерирование одного или более порядков сканирования. Способ содержит выбор порядка сканирования для каждого блока из числа заданных и сгенерированных порядков сканирования на основе информации о порядке сканирования, содержащейся в битовом потоке. Способ содержит декодирование одного или более векторов коэффициентов каждого блока, полученного из битового потока. Способ содержит инверсное сканирование для каждого блока одного или более векторов коэффициентов этого блока в соответствии с порядком сканирования, выбранным для этого блока, чтобы получить матрицу коэффициентов. Генерирование одного или более порядков сканирования содержит генерирование одного или более порядков сканирования в зависимости от одной или более ранее полученные матриц коэффициентов блоков видеопоследовательности.
Дополнительные признаки или реализации способа в соответствии со вторым подходом раскрытия могут выполнять функциональные возможности декодера, соответствующие первому подходу раскрытия и его различным формам реализации.
Способ, соответствующий второму варианту раскрытия или любой из его форм реализации может быть выполнен процессором или компьютером.
Третий подход представленного раскрытия обеспечивает кодер для кодирования коэффициентов блоков видеопоследовательности в битовый поток, причем коэффициенты каждого блока содержатся в соответствующей матрице коэффициентов. Кодер содержит модуль перечня типов сканирования, выполненный с возможностью обеспечения одного или более заранее определенных порядков сканирования. Кодер содержит генератор порядка сканирования, выполненный с возможностью генерирования одного или более порядков сканирования. Кодер содержит переключатель порядка сканирования, выполненный с возможностью выбора порядка сканирования для каждого блока из числа заданных и сгенерированных порядков сканирования. Кодер содержит параллельно-последовательный преобразователь, выполненный с возможностью сканирования для каждого блока матрицы коэффициентов этого блока в соответствии с порядком сканирования, выбранным для этого блока, чтобы получить один или более векторов коэффициентов. Кодер содержит модуль кодирования, выполненный с возможностью кодирования векторов коэффициентов в битовый поток. Генератор порядка сканирования выполнен с возможностью генерирования одного или более порядков сканирования в зависимости от одного или более ранее сканированных матриц коэффициентов блоков видеопоследовательности.
Таким образом, представленное раскрытие предпочтительно тем, что оно обеспечивает как заданные порядки сканирования, так и контентно-адаптивные сгенерированные порядки сканирования. Расширяя набор доступных порядков сканирования, эффективность соотношения скорости и искажения при квантовании может быть соответственно повышена.
В форме реализации кодера, соответствующей третьему подходу раскрытия, модуль перечня типов сканирования выполнен с возможностью обеспечения одного или более заданных порядков сканирования для каждого из множества наборов параметров кодирования. Генератор порядка сканирования выполнен с возможностью генерирования порядка сканирования для каждого из наборов параметров кодирования, в зависимости от одной или более ранее сканированных матриц коэффициентов, связанных с этим набором параметров кодирования. Переключатель порядка сканирования выполнен с возможностью выбора порядка сканирования для каждого блока, определяя набор параметров кодирования этого блока и выбирая порядок сканирования для матрицы коэффициентов этого блока из числа заранее заданных и сгенерированных порядков сканирования для определенного набора параметров кодирования.
Таким образом, для каждого набора параметров кодирования могут быть обеспечены как заданные порядки сканирования, так и контентно-адаптивные сгенерированные порядки сканирования. Также, различные порядки сканирования могут быть сгенерированы для различных наборов параметров кодирования, с тем, чтобы набор доступных порядков сканирования мог увеличиваться и адаптироваться к каждому набору параметров кодирования. Поэтому выбранный порядок сканирования может дополнительно повышать эффективность соотношения между скоростью и искажением.
В частности, каждый набор параметров кодирования может соответствовать сочетанию одного или более режима предсказания, режима деления, одного или более параметров преобразования и одного или более параметров квантования.
В форме реализации кодера, соответствующей третьему подходу раскрытия, кодер содержит устройство оценки распределения коэффициентов, выполненное с возможностью обеспечения для каждого из наборов параметров кодирования статистики распределения одной или более ранее сканированных матриц коэффициентов, связанных с этим набором параметров кодирования. Генератор порядка сканирования выполнен с возможностью генерирования порядка сканирования для каждого из наборов параметров кодирования в зависимости от статистики распределения для этого набора параметров кодирования.
Таким образом, сгенерированные порядки сканирования могут отражать статистику распределения предшествующих матриц коэффициентов, так что в случае, когда статистика распределения последующих матриц подобна статистике распределения для предшествующих матриц коэффициентов, эти сгенерированные порядки сканирования могут обеспечить хорошую эффективность кодирования для последующих матриц коэффициентов.
В форме реализации кодера, соответствующей третьему подходу раскрытия, если порядок сканирования, выбранный для заданной матрицы коэффициентов, заранее определен, устройство оценки распределения коэффициентов содействующая оценочная функция распределения конфигурируется, но не обновляется, или конфигурируется, чтобы установить в исходное условие статистику распределения для набора параметров кодирования данного блока.
Таким образом, если порядок сканирования, выбранный для заданного блока, является заданным порядком сканирования, это означает, что для набора параметров кодирования данного блока сгенерированный порядок сканирования может обеспечивать эффективность кодирования, худшую, чем для заданных порядков сканирования. Поэтому заданный блок представляет статистику распределения, которая не соответствует статистике предшествующих матриц коэффициентов, так чтобы статистика распределения заданного блока предпочтительно не использовалась для обновления статистики распределения, предоставляемой устройством оценки распределения коэффициентов. Альтернативно, может быть предпочтительным установить в исходное условие статистику распределения, обеспечиваемую устройством оценки статистики распределения, поскольку статистика предыдущих матриц коэффициентов может в чем-либо не соответствовать статистике существующих матриц коэффициентов.
В форме реализации кодера, соответствующей третьему подходу раскрытия, кодер содержит модуль сигнализации, выполненный с возможностью добавления в битовый поток информации о порядке сканирования, идентифицирующей выбранный порядок сканирования.
Таким образом, предпочтительно, чтобы декодер был способен идентифицировать выбранный порядок сканирования из битового потока и, в зависимости от того, является ли этот выбранный порядок заранее заданным или сгенерированным порядком сканирования, декодер может правильно инверсно сканировать векторы коэффициентов и может, например, правильно обновлять или не обновлять статистику распределения, обеспечиваемую устройством оценки распределения коэффициентов.
В форме реализации кодера, соответствующей третьему подходу раскрытия, переключатель порядка сканирования выполнен с возможностью выбора порядка сканирования из числа заданных и сгенерированных порядков сканирования, основываясь на функции стоимости.
Таким образом, процедура, основанная на функции стоимости, может использоваться для точного выбора одного порядка сканирования из числа сгенерированных порядков сканирования и заданных порядков сканирования. Соответственно, даже если сгенерированные порядки сканирования, основанные на собранной статистике ранее кодированных или декодированных блоков, не обеспечивают лучшей эффективности кодирования, чем заданные порядки сканирования, выбор порядка сканирования может улучшить эффективность кодирования. В частности, функция стоимости может быть, например, функцией оптимизации соотношения скорость-искажение (RDO).
Функции кодера, соответствующие третьему подходу раскрытия, и любые функции любой из его форм реализации могут быть выполнены процессором или компьютером, и любое из их средств может быть реализовано как программное обеспечение и/или аппаратные средства в таком процессоре или компьютере.
Четвертый подход представленного раскрытия обеспечивает способ кодирования коэффициентов блоков видеопоследовательности в битовый поток, причем коэффициенты каждого блока содержатся в соответствующей матрице коэффициентов. Способ содержит обеспечение одного или более заданных порядков сканирования. Способ содержит генерирование одного или более порядков сканирования. Способ содержит выбор порядка сканирования для каждого блока из числа заданных и сгенерированных порядков сканирования. Способ содержит сканирование для каждого блока коэффициентов этого блока в соответствии с порядком сканирования, выбранным для этого блока, так чтобы получить один или более векторов коэффициентов. Способ содержит кодирование векторов коэффициентов в битовый поток. Генерирование одного или более порядков сканирования содержит генерирование одного или более порядков сканирования в зависимости от одной или более ранее сканированных матриц коэффициентов блоков видеопоследовательности.
Дополнительные признаки или реализации способа в соответствии с четвертым подходом раскрытия могут выполнять функциональные возможности кодера согласно третьему подходу раскрытия и его различным формам реализации.
Способ, соответствующий четвертому подходу раскрытия, или любой из его форм реализации, может выполняться процессором или компьютером.
Пятый подход представленного раскрытия обеспечивает декодер, предпочтительно, соответствующий первому подходу, для декодирования коэффициентов блоков видеопоследовательности, полученной из битового потока. Декодер содержит модуль декодирования, выполненный с возможностью декодирования одного или более векторов коэффициентов каждого блока из битового потока. Декодер содержит модуль проверки, выполненный с возможностью реконструкции по меньшей мере для одного блока скрытой информации, полученной из одного или более коэффициентов этого блока, причем скрытая информация составляет или формирует часть информации о порядке сканирования, связанной с этим блоком. Декодер содержит переключатель порядка сканирования, выполненный с возможностью выбора порядка сканирования для каждого блока из набора порядков сканирования, предпочтительно, из набора заданных и сгенерированных порядков сканирования, на основе информации о порядке сканирования, связанной с этим блоком. Декодер содержит устройство последовательно-параллельный преобразователь, выполненный с возможностью инверсного сканирования для каждого блока одного или более векторов коэффициентов этого блока согласно порядку сканирования, выбранному для этого блока, чтобы получить соответствующую матрицу коэффициентов.
Таким образом, эффективность кодирования предпочтительно повышается в том отношении, что расходы на сигнализацию снижаются.
В форме реализации декодера, соответствующей пятому подходу раскрытия, модуль проверки выполнен с возможностью реконструкции по меньшей мере для одного блока скрытой информации по меньшей мере из одного скрываемого вектора коэффициентов, выбранного из числа одного или более векторов коэффициентов, полученных для этого блока. В частности, один или более векторов коэффициентов могут соответствовать определенной группе коэффициентов (coefficient group, CG), причем скрываемый вектор коэффициентов соответствует группе коэффициентов, в которой выполняется сокрытие данных. Таким образом, реконструкция скрытой информации из нескольких скрываемых векторов коэффициентов, например, предпочтительно, из нескольких групп коэффициентов, предпочтительно в том, что может быть скрыто больше битов, и индекс большего размера для информации о порядке сканирования может быть реконструирован.
В форме реализации декодера, соответствующей пятому подходу раскрытия, модуль проверки выполнен с возможностью реконструкции по меньшей мере одного блока скрытой информации из скрываемого вектора коэффициентов в зависимости от условия сокрытия, причем условие сокрытия содержит сравнение параметра, зависящего от скрываемого вектора коэффициентов, с порогом. Таким образом, сокрытие облегчается.
В форме реализации декодера, соответствующей пятому подходу раскрытия, параметром является:
- множество значимых коэффициентов в пределах скрываемого вектора коэффициентов, или
- расстояние между первым и последним значимыми коэффициентами в пределах скрываемого вектора коэффициентов, или
- отношение максимального абсолютного значения к минимальному абсолютному ненулевому значению коэффициентов в пределах скрываемого вектора коэффициентов. Условие сокрытия является истинным, если параметр выше порога, и ложным, если параметр ниже порога. Таким образом, предпочтительно обеспечивается условие сокрытия.
В форме реализации декодера, соответствующей пятому подходу раскрытия, модуль проверки выполнен с возможностью проверки условия сокрытия и реконструкции скрытой информации из скрываемого вектора коэффициентов, если условие сокрытия является истинным. Таким образом, порядок сканирования может быть выбран из битового потока без дополнительной вспомогательной информации.
В форме реализации декодера, соответствующей пятому подходу раскрытия, если условие сокрытия является ложным, переключатель порядка сканирования выполняется с возможностью выбора заданного порядка сканирования по умолчанию. Таким образом, порядок сканирования может быть выбран, даже если на стороне кодера невозможно никакое сокрытие.
В форме реализации декодера, соответствующей пятому подходу раскрытия, модуль проверки выполнен с возможностью реконструкции скрытой информации, полученной из скрываемого вектора коэффициентов, применяя функцию проверки к скрываемому вектору коэффициентов, причем результатом действия функции проверки является скрытая информация. Таким образом, порядок сканирования предпочтительно может быть получен из коэффициентов.
В форме реализации декодера, соответствующей пятому подходу раскрытия, результат функции проверки зависит от координат (x, y) в пределах матрицы коэффициентов для последнего значимого коэффициента скрываемого вектора коэффициентов. Функция проверки может быть, например, следующей функцией:
mod(x + y +R,2)
где x и y - координаты и R - целочисленное значение. Таким образом, результат функции проверки может быть получен непосредственно из координат коэффициентов.
В форме реализации декодера, соответствующей пятому подходу раскрытия, модуль проверки выполнен с возможностью реконструкции для первого блока скрытой информации из одного или более коэффициентов первого блока, причем скрытая информация составляет или образует часть информации о порядке сканирования, связанной с первым блоком, и переключатель порядка сканирования выполнен с возможностью выбора для первого и по меньшей мере второго блока порядка сканирования на основе информации о порядке сканирования, связанной с первым блоком. Таким образом, эта форма реализации обеспечивает декодирование ”режима слияния”, в котором значение выбранного порядка сканирования для второго блока является реконструированным/предсказанным, используя значения коэффициентов первого блока, не скрывая ничего в пределах коэффициентов второго блока. Например, первый и второй блоки являются пространственно соседствующими.
В частности, переключатель порядка сканирования может быть выполнен с возможностью выбора для группы блоков порядка сканирования на основе информации о порядке сканирования, связанной с первым блоком, где группа блоков может содержать первый блок и множество вторых блоков. Группа блоков может содержать несколько блоков в пределах группы блоков, имеющих по меньшей мере один индекс сканирования, присвоенный не по умолчанию, скрытый в пределах их коэффициентов. Альтернативно, группа блоков может содержать несколько последовательно кодированных блоков, так чтобы упомянутые кодированные блоки имели один и тот же индекс сканирования. Альтернативно, группа блоков может содержать несколько блоков и/или несколько последовательно кодированных блоков, имеющих коэффициенты, для которых условие сокрытия является ложным.
В частности, в режиме слияния для декодера доступны несколько вариантов, чтобы знать, что никакая информация о порядке сканирования не скрывается в коэффициентах по меньшей мере одного второго блока. Во-первых, дополнительная информация может кодироваться в битовом потоке, например, как флаг для группы блоков, который разрешает или не разрешает для них использование режима слияния. Во-вторых, без дополнительной информации предлагается применять правило слияния к второму блоку в зависимости от условия сокрытия и набора параметров кодирования первого блока и/или второго блока. Другими словами, слияние применяется к второму блоку, если для второго блока не удовлетворяется условие сокрытия, то есть, порядок сканирования для второго блока выбирается на основе информации о порядке сканирования, связанной с первым блоком. В-третьих, предлагается сочетание первых двух альтернатив, причем упомянутое сочетание содержит дополнительную информацию, присутствующую в битовом потоке, и применение слияния в зависимости от условия сокрытия.
Функции декодера, соответствующего пятому подходу раскрытия, и любые функции любой из его форм реализации могут выполняться процессором или компьютером, и любое из их средств может быть реализовано как программное обеспечение и/или аппаратные средства в таком процессоре или компьютере.
Шестой подход представленного раскрытия обеспечивает способ, предпочтительно, соответствующий второму подходу, для декодирования коэффициентов блоков видеопоследовательности, полученной из битового потока. Способ содержит декодирование того или более векторов коэффициентов каждого блока из битового потока. Способ содержит реконструкцию по меньшей мере для одного блока скрытой информации, полученной из одного или более коэффициентов этого блока, причем скрытая информация составляет или формирует часть информации о порядке сканирования, связанной с этим блоком. Способ содержит выбор порядка сканирования для каждого блока из набора порядков сканирования, предпочтительно, из набора заданных и сгенерированных порядков сканирования, на основе информации о порядке сканирования, связанной с этим блоком. Способ содержит инверсное сканирование для каждого блока одного или более векторов коэффициентов этого блока в соответствии с порядком сканирования, выбранным для этого блока, получая, таким образом, матрицу коэффициентов.
Дополнительные признаки или реализации способа в соответствии с шестым подходом раскрытия могут выполнять функциональные возможности декодера согласно пятому подходу раскрытия и его различным формам реализации.
Способ, соответствующий шестому подходу раскрытия или любой из его форм реализации, может быть выполнен процессором или компьютером.
Седьмой подход представленного раскрытия обеспечивает кодер, предпочтительно, соответствующий третьему подходу, для кодирования коэффициентов кодирования блоков видеопоследовательности в битовый поток, причем коэффициенты каждого блока содержатся в соответствующей матрице коэффициентов. Кодер содержит переключатель порядка сканирования, выполненный с возможностью выбора для каждого блока порядка сканирования из набора порядков сканирования, предпочтительно, из набора заданных и сгенерированных порядков сканирования. Кодер содержит параллельно-последовательный преобразователь, выполненный с возможностью сканирования для каждого блока матрицы коэффициентов этого блока в соответствии с порядком сканирования, выбранным для этого блока, чтобы получить один или более векторов коэффициентов. Кодер содержит модуль сокрытия, выполненный с возможностью сокрытия по меньшей мере для одного блока информации о порядке сканирования, идентифицирующей порядок сканирования, выбранный для этого блока, по меньшей мере, частично, в одном или более коэффициентах этого блока (то есть, выполненный с возможностью сокрытия этой информации о порядке сканировании или ее части в этих одном или более коэффициентах). Кодер содержит модуль кодирования, выполненный с возможностью кодирования векторов коэффициентов в битовый поток. Таким образом, эффективность кодирования может быть повышена, снижая издержки на сигнализацию.
В форме реализации кодера, соответствующей седьмому подходу раскрытия, модуль сокрытия выполнен с возможностью скрывать по меньшей мере для одного блока информацию о порядке сканирования по меньшей мере в одном скрываемом векторе коэффициентов, выбранном из числа одного или более векторов коэффициентов, полученных для этого блока.
В форме реализации кодера, соответствующей седьмому подходу раскрытия, модуль сокрытия выполнен с возможностью сокрытия по меньшей мере одного блока информации о порядке сканирования в скрываемом векторе коэффициентов, зависящем от условия сокрытия, причем условие сокрытия содержит сравнение с порогом параметра, зависящего от скрываемого вектора коэффициентов.
В форме реализации кодера, соответствующего седьмому подходу раскрытия, параметром является:
- множество значимых коэффициентов в пределах скрываемого вектора коэффициентов, или
- расстояние между первым и последним значимыми коэффициентами в пределах скрываемого вектора коэффициентов, или
- отношение максимального абсолютного значения к минимальному ненулевому абсолютному значению коэффициентов в пределах скрываемого вектора коэффициентов, где условие сокрытия истинно, если параметр выше порога, и ложно, если параметр ниже порога.
В форме реализации кодера, соответствующей седьмому подходу раскрытия, модуль сокрытия выполнен с возможностью проверки условия сокрытия и скрывания информации о порядке сканирования в скрываемом векторе коэффициентов, если условие сокрытия истинно.
В форме реализации кодера, соответствующей седьмому подходу изобретения, если условие сокрытия ложно, переключатель порядка сканирования выполняется с возможностью рекурсивного выбора другого порядка сканирования из набора порядков сканирования, пока условие сокрытия не станет истинным. Таким образом, выбор других порядков сканирования предпочтителен тем, что можно выполнить сокрытие выполнения данных, даже если первый выбранный порядок сканирования может подразумевать ложное условие сокрытия.
В форме реализации кодера, соответствующей седьмому подходу раскрытия, если условие сокрытия ложно и выбранный порядок сканирования является заданным по умолчанию порядком сканирования, модуль сокрытия выполняется так, чтобы не скрывать информацию о порядке сканирования в скрываемом векторе коэффициентов.
В форме реализации кодера, соответствующей седьмому подходу раскрытия, модуль сокрытия выполнен с возможностью сокрытия, по меньшей мере для одного блока, информации о порядке сканирования в скрываемом векторе коэффициентов посредством:
- применения функции проверки к скрываемому вектору коэффициентов, чтобы получить результат функции проверки,
- определения, соответствует ли результат функции проверки информации о порядке сканирования,
- в противном случае, модификации скрываемого вектора коэффициентов, чтобы результат функции проверки соответствовал информации о порядке сканирования.
В форме реализации кодера, соответствующей седьмому подходу раскрытия, результат функции проверки зависит от координат (x, y) в пределах матрицы коэффициентов последнего значимого скрываемого вектора коэффициентов. Функция проверки может быть, например, следующей функцией:
mod(x + y + R,2)
где х и y - координаты и R - целочисленное значение.
В форме реализации кодера, соответствующей седьмому подходу раскрытия, если идентичный порядок сканирования выбирается переключателем порядка сканирования для первого и по меньшей мере второго блока, модуль сокрытия выполняется с возможностью сокрытия информации о порядке сканирования, идентифицирующей идентичный порядок сканирования в одном или более коэффициентах только первого блока. Таким образом, возможно кодирование в соответствии с ”режимом слияния”. В таком режиме, предпочтительно, информация о порядке сканирования, идентифицирующая идентичный порядок сканирования, не скрывается в коэффициентах второго блока. Другими словами, значение выбранного порядка сканирования для второго блока реконструируется/предсказывается на стороне декодера, используя информацию о порядке сканирования, скрытую в коэффициентах первого блока. Первый и второй блоки являются, например, пространственно соседствующими или, например, последовательными блоками в битовом потоке. Таким образом, информация о порядке сканирования второго блока может быть передана декодеру, не скрывая ничего в пределах коэффициентов второго блока.
В частности, группа блоков, содержащая первый блок и один или более вторых блоков, может быть группой блоков, имеющих по меньшей мере один назначенный не по умолчанию индекс сканирования, скрытый в пределах их коэффициентов. Альтернативно, группа блоков может содержать несколько последовательно кодированных блоков, так, чтобы у упомянутых кодированных блоков был один и тот же индекс сканирования. Альтернативно, группа блоков может содержать несколько блоков и/или несколько последовательно кодированных блоков, имеющих коэффициенты, для которых условие сокрытия ложно.
В частности, в режиме слияния для декодера доступны несколько вариантов, чтобы знать, что никакая информация о порядке сканирования не скрывается в коэффициентах по меньшей мере одного второго блока. Во-первых, кодер добавляет в битовый поток дополнительную боковую информацию, например, флаг, который разрешает или не разрешает использование режима слияния для одного или более блоков, например, для одного или более вторых блоков. Во-вторых, без дополнительной информации предлагается применять ко второму блоку правило слияния в зависимости от условия сокрытия и набора параметров кодирования первого блока и/или второго блока. Другими словами, слияние применяют к второму блоку, если условие сокрытия не удовлетворяется для второго блока, то есть, порядок сканирования для второго блока выбирается на основе информации о порядке сканирования, связанной с первым блоком. В-третьих, предлагается сочетание первых двух вариантов предлагается, причем упомянутое сочетание содержит дополнительную информацию в битовом потоке и слияние применяется в зависимости от условия сокрытия.
Функции кодера, соответствующего седьмому подходу раскрытия, и любые функции любой из его форм реализации могут быть выполнены процессором или компьютером и любое из их средств может быть реализовано как программное обеспечение и/или аппаратные средства в таком процессоре или компьютере.
Восьмой подход представленного раскрытия обеспечивает способ, предпочтительно, соответствующий четвертому подходу раскрытия, для кодирования коэффициентов блоков видеопоследовательности в битовый поток, причем коэффициенты каждого блока содержатся в соответствующей матрице коэффициентов. Способ содержит выбор порядка сканирования для каждого блока из набора порядков сканирования, предпочтительно, из набора заданных и сгенерированных порядков сканирования. Способ содержит сканирование для каждого блока матрицы коэффициентов этого блока в соответствии с порядком сканирования, выбранным для этого блока, чтобы получить один или более векторов коэффициентов. Способ содержит сокрытие по меньшей мере для одного блока информации о порядке сканирования, идентифицирующей порядок сканирования, выбранный для этого блока, по меньшей мере, частично, в одном или более коэффициентах этого блока. Способ содержит кодирование векторов коэффициентов в битовый поток.
Дополнительные признаки или реализации способа в соответствии с восьмым подходом раскрытия могут выполнить функциональные возможности кодера согласно седьмому подходу раскрытия и его различным формам реализации.
Способ, соответствующий восьмому подходу раскрытия или любой из его форм реализации, может выполняться процессором или компьютером.
Девятый подход представленного раскрытия обеспечивает компьютерную программу, содержащую управляющую программу для выполнения способа в соответствии с вторым, четвертым, шестым или восьмым подходом раскрытия, когда компьютерная программа работает на компьютерном устройстве.
Следует заметить, что все устройства, элементы, блоки и средства, описанные в представленной заявке, могут быть реализованы в программном обеспечении или на аппаратных элементах или в их сочетании любого вида. Все этапы, выполняемые различными объектами, описанными в представленной заявке, а также функциональные возможности, описанные как выполняемые различными объектами, предназначены, чтобы означать, что соответствующий объект адаптируется или конфигурируется так, чтобы выполнить соответствующие этапы и функциональные возможности. Даже если в последующем описании конкретных вариантов осуществления конкретная функциональная возможность или этап, которые должны полностью генерироваться постоянными объектами, не отражены в описании конкретного детализированного элемента того объекта, который выполняет этот конкретный этап или функциональную возможность, специалисту в данной области техники должно быть понятно, что эти способы и функциональные возможности могут быть реализованы в соответствующем программном обеспечении или в аппаратных элементах или в их сочетании любого вида.
Краткое описание чертежей
Описанные выше подходы и формы реализации представленного раскрытия будут объяснены в последующем описании конкретных вариантов осуществления со ссылкой на прилагаемые чертежи, на которых:
фиг. 1 - видеокодер, соответствующий варианту осуществления представленного раскрытия;
фиг. 2 - видеодекодер, соответствующий варианту осуществления представленного раскрытия;
фиг. 3 - блок-схема последовательности выполнения операций оценки распределения коэффициентов в видеодекодере, соответствующем варианту осуществления представленного раскрытия;
фиг. 4 - блок-схема последовательности выполнения операций оценки распределения коэффициентов в видеокодере, соответствующем варианту осуществления представленного раскрытия;
фиг. 5 - блок-схема последовательности выполнения операций инициализации перечня порядков сканирования в соответствии с вариантом осуществления представленного раскрытия;
фиг. 6 - блок-схема последовательности выполнения операций неявной и явной сигнализации выбранного порядка сканирования в соответствии с вариантом осуществления представленного раскрытия;
фиг. 7 и 8 - условие сокрытия в соответствии с вариантом осуществления представленного раскрытия;
фиг. 9 - энтропийное декодирование коэффициентов в соответствии с предшествующим уровнем техники;
фиг. 10 - вариант осуществления представленного раскрытия для повышения эффективности кодирования посредством снижения издержек на сигнализацию в битовом потоке;
фиг. 11 - устройство переупорядочивания коэффициентов, соответствующее представленному раскрытия;
фиг. 12 - пример условий сокрытия, определенных для порядков сканирования;
Осуществление изобретения
На фиг. 1 представлен видеокодер, соответствующий варианту осуществления представленного раскрытия, и, в частности, показан кодер 100 для кодирования коэффициентов блоков видеопоследовательности в битовый поток 107, причем коэффициенты каждого блока содержатся в соответствующей матрице коэффициентов.
Кодер содержит модуль 110 перечня типов сканирования, выполненный с возможностью обеспечения одного или более заданных порядков сканирования.
Кодер содержит генератор 111 порядка сканирования, выполненный с возможностью генерирования одного или более порядков сканирования.
Кодер содержит переключатель 109 порядка сканирования, выполненный с возможностью выбора порядка сканирования для каждого блока из числа заданных и сгенерированных порядков сканирования.
Кодер содержит параллельно-последовательный преобразователь 104, выполненный с возможностью сканирования для каждого блока матрицы коэффициентов этого блока в соответствии с порядком сканирования, выбранным для этого блока, так чтобы получить один или более векторов коэффициентов.
Кодер содержит модуль 106 кодирования, выполненный с возможностью кодирования векторов коэффициентов в битовый поток 107.
Генератор 111 порядка сканирования выполнен с возможностью генерирования одного или более порядков сканирования в зависимости от одной или более ранее сканированных матриц коэффициентов блоков видеопоследовательности.
На фиг. 2 показан видеодекодер, соответствующий варианту осуществления представленного раскрытия и, в частности, декодер 200 для декодирования коэффициентов блоков видеопоследовательности из битового потока 207.
Декодер содержит модуль 210 перечня типов сканирования, выполненный с возможностью обеспечения одного или более заданных порядков сканирования.
Декодер содержит генератор 211 порядка сканирования, выполненный с возможностью генерирования одного или более порядков сканирования.
Декодер содержит переключатель 209 порядка сканирования, выполненный с возможностью выбора порядка сканирования для каждого блока из числа заданных и сгенерированных порядков сканирования на основе информации о порядке сканирования SCAN_IDX, содержащейся в битовом потоке.
Декодер содержит модуль 206 декодирования, выполненный с возможностью декодирования одного или более векторов коэффициентов каждого блока из битового потока 207.
Декодер содержит последовательно-параллельный преобразователь 204, выполненный с возможностью инверсного сканирования для каждого блока одного или более векторов коэффициентов этого блока в соответствии с порядком сканирования, выбранным для этого блока, чтобы получить матрицу коэффициентов.
Генератор 211 порядка сканирования выполнен с возможностью генерирования одного или более порядков сканирования в зависимости от одной или более ранее полученных матриц коэффициентов блоков видеопоследовательности.
В частности, на фиг. 1 показан пример кодирования части остатка сигнала на стороне кодера с помощью контентно-адаптивного выбора порядка сканирования. В показанном примере кодер 100 выполнен с возможностью применения внутрикадрового или межкадрового предсказания для каждого блока каждого изображения видеопоследовательности. Режим внутрикадрового предсказания использует пиксели одного и того же изображения для генерирования опорных выборок для вычисления значений предсказания для пикселей блока, подлежащего реконструкции. Режим межкадрового предсказания предназначен для временного предсказания и использует опорные выборки предыдущего или последующего изображений, чтобы предсказать пиксели блока текущего изображения. Результатом этапа предсказания может быть остаточный сигнал 101, являющийся разностью между исходным сигналом блока и его сигналом предсказания, полученным через межкадровое или внутрикадровое предсказание.
Режим предсказания для получения остаточного сигнала 101 может соответственно относиться к внутрикадровому или к межкадровому режиму предсказания. Дополнительно, режим предсказания может соответствовать любому из множества доступных режимов предсказания или направлений. Например, множество доступных режимов предсказания может содержать до 35 режимов внутрикадрового предсказания, которые могут содержать 33 направленных режима и 2 ненаправленных режима, такие как прямой текущий (direct current, DC) режим предсказания и планарный режим предсказания. 33 направленных режима могут охватывать угловой диапазон π радиан или 180 градусов. Если направление вертикального режима рассматривается как нулевой градус, 33 направленных режима могут быть симметричны вокруг оси -45 градусов. Что касается режима предсказания, кодер может быть выполнен с возможностью определения для данного блока одного из множества доступных режимов предсказания, основываясь на оптимизации соотношения "скорость-искажение" (Rate-Distortion Optimization, RDO).
Блок дерева кодирования (Coding Tree Unit, CTU) является корнем кодирования структуры видеопоследовательности заданного размера, содержащей часть изображения (например, 64x64 пикселей). CTU может быть разделен в блоки кодирования (Coding Unit, CU). CU является базовой структурой кодирования видеопоследовательности заданного размера, содержащей часть изображения, принадлежащей СTU. CU может быть разделен на дальнейшие CU. Блок предсказания (Prediction Unit, PU) является структурой кодирования, являющейся результатом деления CU. PU может быть разделен на несколько блоков преобразования (Transform Unit, TU) или совпадать с одиночным TU. PU может быть внутрикадрово или межкадрово предсказанным в соответствии с типом обработки, применяемым к пикселям блока PU. В случае межкадрового предсказания PU представляет область пикселей, которая обрабатывается посредством компенсации движения, используя вектор движения, определенный для PU.
В этом отношении режим деления может зависеть от PU и, в частности, от размера и/или ориентации PU. Режим деления может соответствовать любому из множества доступных режимов деления. Кодер может быть выполнен с возможностью определения для блока или PU одного из множества доступных режимов деления, основанных на способе RDO. Например, режим деления может соответствовать горизонтально ориентированной форме, где CU может быть разделен на 2N×N PU или блоков. Кроме того, режим деления может соответствовать вертикально ориентированной форме, где CU может быть разделен на N×2N PU или блоков, или квадратной форме, где CU может быть разделен на 2N×2N PU или блоков.
Остаточный сигнал 101 может быть обеспечен для модуля 102 преобразования, чтобы кодировать преобразование остаточного сигнала 101 для получения коэффициентов преобразования. В частности, для внутрикадрового предсказания PU может определить режим предсказания для набора TU. TU может иметь различные размеры, например, 4x4, 8x8, 16x16 и 32x32 пикселей, и может обрабатываться по-разному. Примерами преобразований, которые могут применяться к остаточному сигналу, являются, например, дискретное косинусное преобразование (Discrete Cosine Transform, DCT) и дискретное синусное преобразование (Discrete Sine Transform, DST).
В этом отношении, параметр преобразования может быть размером или формой TU, или как размером, так и формой. Дополнительным параметром преобразования может быть применяемое преобразование, например, DCT или DST среди прочих.
Остаточный сигнал 101, вычисленный для блока исходного изображения, преобразуется модулем 102 преобразования и затем квантуется модулем 103 квантования. Модуль 103 квантования обрабатывает коэффициенты преобразования, с тем чтобы получить квантованные коэффициенты преобразования (quantized transform coefficient, QTC) в форме матрицы коэффициентов.
В этом отношении, параметр квантования может соответствовать количеству значимых коэффициентов матрицы коэффициентов, то есть, количеству коэффициентов матрицы коэффициентов, имеющих ненулевое значение.
Матрица коэффициентов преобразуется из параллельной формы в последовательную посредством параллельно-последовательного преобразователя 104, проводя сканирование в порядке, определенном переключателем 109 порядка сканирования. Порядок сканирования может быть выбран либо из числа заданных порядков сканирования, обеспечиваемых перечнем 110 типов сканирования, либо из числа сгенерированных порядков сканирования, обеспечиваемых генератором 111 порядков сканирования. Порядки сканирования, обеспечиваемые перечнем 110 типов сканирования, задаются как для стороны кодера 100, так и для стороны декодера 200, и, таким образом, порядок сканирования, выбранный из перечня 110 типов сканирования, является статическим, то есть, не модифицируется на протяжении всего процесса кодирования или декодирования. Порядки сканирования, обеспечиваемые генератором 111 порядков сканирования, являются динамическими, то есть, формируемыми в зависимости от одной или более ранее полученных матриц коэффициентов блоков видеопоследовательности. В частности, сгенерированные порядки сканирования могут быть сгенерированы в соответствии со статистикой распределения матриц коэффициентов во время процесса кодирования или декодирования.
Один или более векторов коэффициентов, полученных параллельно-последовательным преобразователем 104 из матрицы коэффициентов, сохраняются в буфере 105 квантованных коэффициентов. Модуль 106 кодирования может иметь форму модуля энтропийного кодирования, кодирующего векторы коэффициентов в битовый поток 107. Порядок сканирования, выбранный переключателем 109 порядка сканированием, может быть идентифицирован посредством индекса сканирования или информации о порядке сканирования SCAN_IDX.
Эта информация об индексе сканирования может явно добавляться к битовому потоку 107, то есть, значение информации о порядке сканирования SCAN_IDX может быть сохранено в битовом потоке 107 посредством выделенной переменной или параметра. Альтернативно, модуль 112 сокрытия может быть выполнен с возможностью сокрытия, по меньшей мере, частично, информации о порядке сканирования SCAN_IDX в векторах коэффициентов, то есть, в значениях матрицы коэффициентов после параллельно-последовательного преобразования. Например, модуль 112 сокрытия может соответственно выполнять регулировки коэффициентов, хранящихся в буфере 105 квантованных коэффициентов, с тем, чтобы соответствующий модуль проверки, расположенный в модуле 212 проверки декодера 200, мог извлечь информацию о порядке сканирования SCAN_IDX, применяя к ним функцию проверки. Результирующие отрегулированные коэффициенты или векторы коэффициентов, хранящиеся в буфере 105 квантованных коэффициентов, могут затем энтропийно кодироваться и передаваться декодеру 200 в битовом потоке 107.
Коэффициенты одного или более векторов коэффициентов, хранящихся в буфере 105 квантованных коэффициентов, могут регулироваться или не регулироваться в зависимости от того, передается ли информация о порядке сканирования, SCAN_IDX явно или неявно в битовом потоке 107, то есть, в зависимости от того, скрывается ли информация о порядке сканирования или нет.
В частности, модуль 110 перечня типов сканирования выполнен с возможностью обеспечения одного или более заданных порядков сканирования для каждого из множества наборов параметров кодирования. Генератор 111 порядка сканирования выполнен с возможностью генерирования порядков сканирования для каждого из наборов параметров кодирования в зависимости от одной или более ранее сканированных матриц коэффициентов, связанные с этим набором параметров кодирования. Переключатель 109 порядка сканирования выполнен с возможностью выбора порядка сканирования для каждого блока посредством:
- определения набора параметров кодирования этого блока, и
- выбора порядка сканирования для матрицы коэффициентов этого блока из числа заданных и сгенерированных порядков сканирования для определенного набора параметров кодирования.
В этом отношении набор параметров кодирования соответствует конкретному сочетанию по меньшей мере одного или более из следующего:
- режим предсказания,
- режим деления,
- один или более параметров преобразования, и
- один или более параметров квантования.
Режим предсказания, режим деления, параметры преобразования и параметры квантования обычно упоминаются посредством ссылки 108, показанной на фиг. 1. Например, набор параметров кодирования может соответствовать только режиму предсказания (например, конкретному режиму направленного внутрикадрового предсказания), только режиму деления (например, конкретной ориентации PU), только одному или более параметрам преобразования (например, определенному размеру и/или форме TU), или только одному или более параметрам квантования (например, определенному количеству значимых коэффициентов матрицы коэффициентов). Кроме того, набор параметров кодирования может соответствовать определенной комбинации режима предсказания, режима деления, параметров преобразования и/или параметров квантования.
Кодер 100 может содержать устройство 113 оценки распределения коэффициентов, выполненное с возможностью обеспечения для каждого из наборов параметров кодирования статистики распределения одной или более ранее сканированных матриц коэффициентов, связанных с этим набором параметров кодирования. Генератор 111 порядка сканирования выполнен с возможностью генерирования порядка сканирования для каждого из наборов параметров кодирования в зависимости от статистики распределения для этого набора параметров кодирования.
В частности, коэффициенты, хранящиеся в буфере 105 квантованных коэффициентов, также являются источником для оценки статистики распределения коэффициентов, которая используется генератором 111 порядка сканирования. Однако, прежде, чем оценивать распределение коэффициентов, хранящиеся коэффициенты преобразуются обратно из последовательной формы в параллельную, то есть, из вектора коэффициентов в матрицу коэффициентов посредством последовательно-параллельного преобразователя 114.
Статистика распределения матрицы коэффициентов предпочтительно содержит, как определено в документе US 2008/0310504, индикацию вероятности, что значение коэффициентов в позиции двумерной матрицы коэффициентов равно нулю или не равно нулю, и может, например, содержать подсчет вероятности или другой статистической меры, связанный с каждой из позиций коэффициентов двумерной матрицы коэффициентов. Порядок сканирования, формируемый в зависимости от такой статистики распределения, может, соответственно, быть порядком сканирования, выполненным с возможностью сканирования с более высоким приоритетом позиций коэффициентов с более высокой вероятностью наличия ненулевых коэффициентов.
В частности, если порядок сканирования, выбранный для данного блока, является сгенерированным порядком сканирования, устройство 113 оценки распределения коэффициентов может быть выполнено с возможностью обновления статистики распределения для набора параметров кодирования данного блока согласно статистике распределения матрицы коэффициентов данного блока. Статистика распределения матрицы коэффициентов данного блока может отражать, является ли коэффициент в позиции в матрице коэффициентов данного блока нулевым или ненулевым. Статистика распределения, обеспечиваемая устройством 113 оценки распределения коэффициентов, может тогда, например, обновляться в зависимости от упомянутой статистики распределения матрицы коэффициентов данного блока.
В частности, если порядок сканирования, выбранный для данной матрицы коэффициентов, задан, устройство 113 оценки распределения коэффициентов может быть выполнено с возможностью отсутствия обновления или может быть выполнено с возможностью установки статистики распределения для набора параметра кодирования данного блока в исходное состояние. Установка статистики распределения в исходное состояние может, например, заключаться в установке в исходное состояние упомянутого подсчета, вероятности или другой статистической меры.
Это обновление, отсутствие обновления или установка в исходное состояние статистики распределения, выполняемые устройством 113 оценки распределения коэффициентов в зависимости от того, выбрал ли переключатель 109 порядка сканирования сгенерированный или заданный порядок сканирования, отражается на фиг. 1 штриховой стрелкой от переключателя 109 порядка сканирования к устройству 113 оценки распределения коэффициентов.
Декодер предложенного варианта осуществления показан на фиг. 14. Этапы обработки подобны этапам обработки кодера (смотрите фиг. 13) и применяются в обратном порядке. Наиболее важным различием является то, что буфер квантованных коэффициентов хранит QTC после того, как они преобразованы из последовательной формы в параллельную, то есть, как матрицу QTC, но не как QTC в виде одного или более векторов.
В частности, на фиг. 2 показан пример декодирования остаточной части сигнала с помощью контентно-адаптивного выбора порядка сканирования. Согласно примеру, декодер 200 выполнен с возможностью получения остаточного сигнала 201 из битового потока 207. После генерирования модулем декодирования 206 (например, модулем энтропийного декодирования) и последовательно-параллельным преобразователем 204 матрицы коэффициентов, содержащей квантованные коэффициенты преобразования, буфер 205 квантованных коэффициентов сохраняет упомянутую матрицу коэффициентов. Сохраненная матрица коэффициентов затем обрабатывается модулем 203 инверсного квантования и модулем 202 инверсного преобразования, чтобы получить остаточный сигнал 201, соответствующий остаточному сигналу 101 в кодере 100. Используя остаточный сигнал 201, кодированная видеопоследовательность может быть реконструирована в соответствии с известными технологиями.
Устройство 213 оценки распределения коэффициентов декодера 200 может быть подобным или идентичным по функции устройству 113 оценки распределения коэффициентов кодера 100. В примере они отличаются тем, что устройство 213 оценки распределения коэффициентов принимает в качестве входного сигнала матрицу коэффициентов, хранящуюся в буфере 205 квантованных коэффициентов, в то время как устройство 113 оценки функции распределения коэффициентов принимает в качестве входного сигнала матрицу коэффициентов, полученную от последовательно-параллельного преобразователя 114.
Представленное раскрытие предлагает объединенное использование заданных порядков сканирования и сгенерированных порядков сканирования как на стороне кодера 100, так и на стороне декодера 200 в зависимости от ранее сканированных, соответственно полученных матриц коэффициентов блоков видеопоследовательности. В частности, сгенерированные порядки сканирования формируются путем анализа статистики распределения коэффициентов в пределах матрицы коэффициентов, то есть, анализируя распределение квантованных коэффициентов преобразования.
Конкретным признаком предложенного раскрытия является то, что статистика распределения для квантованных коэффициентов преобразования (QTC) оценивается более точно, учитывая выбранный порядок сканирования, как показано, например, на фиг. 1 и 2 стрелкой между переключателем 109, 209 порядка сканирования и устройством 113, 213 оценки распределения коэффициентов. Эта более точная оценка может состоять, например, в обновлении, отсутствии обновления или установке в исходное условие статистики распределения, как описано выше.
Распределение коэффициентов может быть оценено более точно, разделяя исходные данные на 4 стационарных периода и оценивая распределение коэффициентов только в пределах этих стационарных периодов. Стационарный период является количеством блоков, которые имеют схожее распределение QTC и пространственно близки друг к другу.
В представленном раскрытии, в частности, предлагается обнаруживать стационарный период, вводя порог по количеству обработанных блоков, которое сообщается, чтобы адаптивно сгенерировать порядок сканирования. Когда порядок сканирования выбирается из числа заданных порядков сканирования, обеспечиваемых модулем перечня типов сканирования, нет необходимости обновлять статистику распределения, потому что в этом случае тот факт, что порядок сканирования является заданным, указывает, что обработанный в настоящий момент блок принадлежит к другому стационарному периоду.
На фиг. 3 показана блок-схема оценки статистики распределения в видеодекодере, соответствующем варианту осуществления представленного раскрытия.
В видеодекодере оценка на этапе 301 статистики распределения посредством устройства 213 оценки распределения коэффициентов содержит несколько этапов.
На этапе 302 анализируют полученные из битового потока 207 режим предсказания, режим деления, параметры преобразования и/или параметры 208 квантования для блока. Предпочтительно, этот анализ выполняет модуль 206 декодирования. Согласно проанализированной информации, переключатель 209 порядка сканирования предпочтительно определяет режим кодирования этого блока.
На этапе 303 анализируют полученную из битового потока 207 информацию о порядке сканирования SCAN_IDX, идентифицирующую выбранный порядок сканирования на этот блок. Этот анализ предпочтительно проводится модулем 206 декодирования.
На этапе 304 переключатель 209 порядка сканирования выбирает порядок сканирования для этого блока из числа заданных и сгенерированных порядков сканирования на основе анализированной информации о порядке сканирования SCAN_IDX.
На этапе 305 определяют, является ли выбранный порядок сканирования заданным порядком сканирования, обеспечиваемым модулем 210 перечня типов сканирования или сгенерированным порядком сканирования, обеспечиваемым генератором 211 порядка сканирования.
Если порядок сканирования, выбранный для этого блока, является сгенерированным (например, обеспечиваемым генератором 211 порядка сканирования), устройство 213 оценки распределения коэффициентов на этапе 306 обновляет текущую статистику распределения. Эта текущая статистика распределения получается предпочтительно из предыдущих блоков. Текущая статистика распределения обновляется согласно статистике распределения матрицы коэффициентов, полученной для этого блока.
Если, однако, порядок сканирования, выбранный для этого блока, является заданным (например, обеспечиваемым модулем 210 перечня типов сканирования), устройство 213 оценки распределения коэффициентов на этапе 306 обрабатывает статистику распределения этого блока отдельно от текущей статистики распределения. Например, устройство 213 оценки распределения коэффициентов может не обновлять или может устанавливать в исходное условие текущую статистику распределения.
После этапа 306 или 307 оценка 301 статистики распределения заканчивается (на этапе 308).
На фиг. 4 представлена блок-схема последовательности выполнения операций оценки статистики распределения в видеокодере, соответствующем варианту осуществления представленного раскрытия.
В видеокодере оценка 401 статистики распределения устройством 113 оценки распределения коэффициентов содержит несколько этапов.
На этапе 402 переключателем 109 порядка сканирования выполняют процедуру RDO, чтобы выбрать из числа заданных порядков сканирования, обеспечиваемых модулем 110 перечня типов сканирования, и сгенерированных порядков сканирования, обеспечиваемых генератором 111 порядка сканирования, тот порядок сканирования, который обеспечивает минимальные затраты на обеспечение соотношения скорость-искажение (RD). На этом этапе получают информацию о порядке сканирования SCAN_IDX для выбранного порядка сканирования.
На этапе 403 получают порядок сканирования, соответствующий выбранной информации о порядке сканирования SCAN_IDX.
Дальнейшие этапы 404-407 соответствуют этапам 305-308, показанным на фиг. 3.
Как показано на фиг. 3 и 4, как на стороне кодера, так и на стороне декодера инициируется перечень порядков сканирования. Он содержит элементы модуля перечня типов сканирования и порядки сканирования, сгенерированные генератором порядка сканирования. В зависимости от того, формируется или задается порядок сканирования, выбранный переключателем порядка сканирования, принимается решение о статистике распределения. Это решение может состоять в обновлении или не обновлении текущей статистики распределения или в установки исходной текущей статистики распределения.
Один из возможных способов инициализации перечня порядков сканирования показан на фиг. 5. На фиг. 5 соответственно показана блок-схема 500 последовательности выполнения операций инициализации на этапе 501 перечня порядков сканирования, соответствующая варианту осуществления представленного раскрытия.
Его инициализация зависит от режима предсказания, режима деления, параметров преобразования и параметры квантования, определенных для обрабатываемого блока.
На этапе 502 определяют, является ли режим предсказания этого блока планарным режимом внутрикадрового предсказания. Если это истинно, то на этапе 508 определяют перечень порядков сканирования для заданных порядков сканирования, чтобы ввести в него заданный зигзагообразный порядок и диагональные порядки сканирования. Если это ложно, то выполняют этап 503.
На этапе 503 определяют, является ли режим предсказания этого блока DC режимом внутрикадрового предсказания. Если это истинно, то на этапе 508 определяют перечень типов сканирования для заданных порядков сканирования, чтобы ввести в него заданный зигзагообразный порядок и диагональные порядки сканирования. Если это ложно, то выполняется этап 504.
На этапе 504 определяют, является ли режим предсказания этого блока угловым режимом внутрикадрового предсказания, близким к горизонтальному. Если это истинно, то на этапе 509 определяют перечень типов сканирования, чтобы ввести в него вертикальный, вертикально-диагональный и спиральный порядки сканирования. Если это ложно, выполняют этап 505.
На этапе 505 определяют, является ли режим предсказания этого блока угловым режимом внутрикадрового предсказания, близким к вертикальному. Если это истинно, то на этапе 510 определяют перечень типов сканирования для заданных порядков сканирования, чтобы ввести в него горизонтальный, горизонтально-диагональный и спиральный порядки сканирования. Если это ложно, то выполняют этап 506.
На этапе 506 определяют, является ли режим предсказания этого блока угловым режимом внутрикадрового предсказания, близким к диагональному. Если это истинно, то на этапе 511 определяют перечень типов сканирования для заданных порядков сканирования, чтобы ввести в него диагональный, зигзагообразный и спиральный порядки сканирования. Если это ложно, то выполняют этап 507. На этапе 507 определяют перечень типов заданных порядков сканирования, чтобы ввести в него диагональный порядок сканирования.
После определения перечня порядков сканирования для заданных порядков сканирования для этого блока на этапе 512 регулируют перечень порядков сканирования, используя режим деления, параметры преобразования и параметры квантования этого блока.
На этапе 513 один или более сгенерированных порядков сканирования, обеспечиваемых генератором порядка сканирования, добавляются к заданным порядкам сканирования, так чтобы, например, переключатель 109 порядка сканирования кодера мог выбрать из заданных и сгенерированных порядков сканирования, тот порядок сканирования, который обеспечивает минимальные затраты на RD-соотношение.
Как показано на фиг. 5, заданные порядки сканирования могут зависеть от режима предсказания и/или режима деления и/или от параметров преобразования и/или параметров квантования. Например, наиболее вероятными порядками сканирования для случаев DC или планарных внутрикадровых режимов являются зигзагообразный порядок и диагональный порядок сканирования. Для угловых режимов может быть учтена направленность остаточного сигнала, так чтобы заданные порядки сканирования могли быть выбраны ортогональными к направленности внутрикадрового режима.
В дальнейшем, этот перечень заданных порядков сканирования может обновляться в соответствии с другими параметрами кодирования, такими как режим деления, параметры преобразования и параметры квантования. В частности, этот перечень может быть обновлен в соответствии с размерами деления и преобразования.
Например, в режиме межкадрового предсказания неквадратные режимы предсказания могут также указывать направленный характер остаточного сигнала и перечень заданных порядков сканирования может быть соответственно обновлен: если при делении прямоугольник ориентируется вертикально, то тогда горизонтальный и горизонтально-диагональный порядки сканирования добавляются к перечню сканирования. Перечень заданных порядков сканирования соответственно обновляется для горизонтально ориентированного деления: в таком случае вертикальные и вертикально-диагональные сканирования добавляются к списку заданных порядков сканирования.
Например, этот перечень заданных порядков сканирования может быть обновлен в соответствии с размерами преобразования. Меньшие размеры TU создают ограничения на некоторые типы сканирования. Затем, например, спиральные сканирования могут быть исключены из заданного списка порядков сканирования, если размер TU меньше, чем 8x8 пикселей.
Параметры квантования (QP) могут влиять как на перечень заданных порядков сканирования, так и на способ сигнализации. Для высоких значений QP количество типов сканирования может быть уменьшено. Например, спиральные сканирования можно исключить для всех размеров TU, потому что QTC становятся более выровненными с левой стороной, верхом и верхним левым углом матрицы QTC.
Пример зависимости схемы сигнализации от QP показан на фиг. 6. На фиг. 6 конкретно показана блок-схема 600 последовательности выполнения операций неявной и явной сигнализации выбранного порядка сканирования, соответствующего варианту осуществления представленного раскрытия.
На первом этапе 601 получают значение QP. Если это значение QP на этапе 602 меньше или равно значению QP для высоких битовых скоростей QPHBR, то информация о порядке сканирования SCAN_IDX на этапе 603 должна быть энтропийно кодированной в битовом потоке.
Если значение QP выше значения QPHBR и ниже последующего значения QP для низких битовых скоростей, QPLBR, то информация о порядке сканирования SCAN_IDX должен быть на этапе 606 частично энтропийно кодирована и частично скрыта модулем 112 сокрытия в пределах квантованных коэффициентов преобразования.
Если значение QP выше значения QPHBR и выше или равно дополнительному значению QP для низких битовых скоростей QPLBR, то на этапе 605 с помощью модуля 112 сокрытия информация о порядке сканирования SCAN_IDX должна быть скрыта внутри квантованных коэффициентов преобразования.
Соответственно, сокрытие становится более дорогостоящим с увеличением битовой скорости и полностью выключается для высоких битовых скоростей. Для низких битовых скоростей наоборот, сокрытие становится более предпочтительным. В противном случае, то есть, для средних битовых скоростей используют оба механизма сигнализации. Выбор механизма сигнализации выполняется для каждого блока или TU в зависимости от того, может для него быть выполнено сокрытие.
В соответствии с представленным раскрытием, предлагается декодер 200 для декодирования коэффициентов блоков видеопоследовательности, полученных из битового потока 207. Декодер содержит:
- модуль 206 декодирования, выполненный с возможностью декодирования одного или более векторов коэффициентов каждого блока, полученных из битового потока 207,
- модуль 212 проверки, выполненный с возможностью реконструкции по меньшей мере для одного блока информации сокрытия из одного или более коэффициентов этого блока, причем информация сокрытия образуется или формирует часть информации о порядке сканирования SCAN_IDX, связанной с этим блоком,
- переключатель 209 порядка сканирования, выполненный с возможностью выбора порядка сканирования для каждого блока из набора порядков сканирования, предпочтительно, из набора заданных и сгенерированных порядков сканирования, основываясь на информации о порядке сканирования SCAN_IDX, связанной с этим блоком,
- последовательно-параллельный преобразователь 204, выполненный с возможностью инверсного сканирования для каждого блока одного или более векторов коэффициентов этого блока в соответствии с порядком сканирования, выбранным для этого блока, чтобы получить матрицу коэффициентов.
В соответствии с представленным раскрытием предлагается соответствующий кодер 100 для кодирования коэффициентов блоков видеопоследовательности в битовый поток 107, коэффициенты каждого блока, содержавшего в соответствующей содействующей матрице. Кодер содержит:
- переключатель 109 порядка сканирования, выполненный с возможностью выбора порядка сканирования для каждого блока из набора порядков сканирования, предпочтительно, из набора заданных и сгенерированных порядков сканирования,
- параллельно-последовательный преобразователь 104, выполненный с возможностью сканирования для каждого блока матрицы коэффициентов этого блока в соответствии с порядком сканирования, выбранным для этого блока, чтобы получить один или более векторов коэффициентов,
- модуль 112 сокрытия, выполненный с возможностью сокрытия по меньшей мере для одного блока информации о порядке сканирования SCAN_IDX, идентифицирующей порядок сканирования, выбранный для этого блока, по меньшей мере, частично в одном или более коэффициентах этого блока,
- модуль 106 кодирования, выполненный с возможностью кодирования векторов коэффициентов в битовый поток 107.
Эффективность кодирования может при этом быть повышена, поскольку издержки на сигнализацию в битовом потоке 107, 207, сгенерированном кодером и принятом декодером, могут быть снижены.
Предпочтительно, модуль 212 проверки, выполненный с возможностью реконструкции по меньшей мере одного блока скрытой информации по меньшей мере из одного скрываемого вектора коэффициентов, выбранного из числа одного или более векторов коэффициентов, полученных для этого блока. Кроме того, модуль 112 сокрытия выполнен с возможностью сокрытия по меньшей мере для одного блока информации о порядке сканирования SCAN_IDX по меньшей мере в одном скрываемом векторе коэффициентов, выбранном из числа одного или более векторов, полученных для этого блока.
Реконструкция и сокрытие могут зависеть от условия сокрытия. Такое условие сокрытия содержит сравнение параметра, зависящего от скрываемого вектора коэффициентов, с порогом.
Параметром могут быть:
- множество значимых, то есть, ненулевых коэффициентов в пределах скрываемого вектора коэффициентов, или
- расстояние между первым и последним значащими коэффициентами в пределах скрываемого вектора коэффициентов, или
- отношение максимального абсолютного значения к минимальному ненулевому абсолютному значению коэффициентов в пределах скрываемого вектора коэффициентов,
где условие сокрытия является истинным, если параметр выше порога, и ложным, если параметр ниже порога.
На фиг. 7 и 8 показано условие сокрытия, соответствующее варианту осуществления представленного раскрытия. В частности, на фиг. 7 показан блок или TU, подразделяемый на группы коэффициентов (coefficient group, CG), причем каждый вектор коэффициентов соответствует группе коэффициентов. На фиг. 8 показан пример вектора коэффициентов, иллюстрирующий случай, в котором параметр находится на расстоянии N между первым и последним значимыми, то есть, ненулевыми, коэффициентами в пределах вектора коэффициентов. Если значение N находится выше порога TSIG, то условие сокрытия истинное и информация о порядке сканирования может быть скрыта в этом векторе коэффициентов.
В частности, модуль 212 проверки может быть выполнен с возможностью реконструкции скрытой информации, полученной из скрываемого вектора коэффициентов, применяя функцию проверки к скрываемому вектору коэффициентов, результату функции проверки, являющемуся скрытой информацией. Кроме того, модуль 112 сокрытия выполнен с возможностью сокрытия по меньшей мере для одного блока информации о порядке сканирования SCAN_IDX в векторе сокрытия коэффициентов посредством:
- применения функции проверки к скрываемому вектору коэффициентов, чтобы получить результат функции проверки,
- определения, соответствует ли результат функции проверки информации о порядке сканирования SCAN_IDX,
- если не соответствует, то модификации скрываемого вектора коэффициентов таким образом, чтобы результат функции проверки соответствовал информации о порядке сканирования SCAN_IDX.
Предлагается, чтобы результат функции проверки зависел от координат (x, y), в пределах матрицы коэффициентов для последнего значимого коэффициента вектора скрываемых векторов. Функция проверки может быть, например, следующей функцией:
mod(x + y + R,2)
где x и y - координаты и R - целочисленное значение.
Например, функция проверки может также быть одной из следующих функций или других известных функций проверки:
- функция проверки четности, применяемая к младшим значащим битам некоего коэффициента, выбранного из матрицы коэффициентов, используя двоичный шаблон, и
- функция проверки четности, применяемая к индексу позиции для последнего или первого ненулевого коэффициента или к линейной комбинации последнего и первого ненулевого индекса позиции коэффициентов.
В этом отношении, на фиг. 9 показано энтропийное декодирование коэффициентов на этапе 901 в соответствии с предшествующим уровнем техники и, в частности, в соответствии со стандартом H.265 видеокодирования. Энтропийное декодирование на этапе 901 содержит декодирование на этапе 902 координат Х и Y последнего значимого, то есть, ненулевого QTC. Затем маска значимых значений QTC (маска значимости) сообщается на этапе 903 в соответствии с порядком сканирования, начиная с последнего значимого QTC. Значения и знаки анализируются на этапах 904, 905 для битового потока только для значимых значений коэффициентов.
Следовательно, длина одномерной маски значимости может быть извлечена из порядка сканирования и координат последнего значимого QTC. Очевидно, что недостаточно применять только известные способы сокрытия данных, чтобы встроить данные индикации порядка сканирования в QTC, потому что QTC анализируются из битового потока, используя информацию о порядке сканирования.
На фиг. 10 показан вариант осуществления представленного раскрытия и, в частности, вариант осуществления для повышения эффективности кодирования, снижая издержки на сигнализацию в битовом потоке 107, 207, сгенерированном кодером и принятом декодером.
В варианте осуществления, показанном на фиг. 10, возможен порядок сканирования, скрываемый в пределах QTC. Во время процесса кодирования несколько различных порядков сканирования, индексируемых с помощью SCAN_IDX, применяются на этапах квантования 1001 и сокрытия 1002. Процедура 1001 квантования может использовать информацию о сканировании, чтобы оценить количество битов (то есть, битовую скорость) для кодирования значений QTC и выполнения оптимизации соотношения "скорость-искажение", регулируя эти значения QTC в отношении предполагаемой битовой скорости.
Если сокрытие на этапе 1003 не было успешным, то есть, например, если условие сокрытия ложно, то на этапе 1004 выбирают другой порядок сканирования SCAN_IDX. Предпочтительно, выбирают другой порядок сканирования, пока сокрытие не станет успешным. Если выбранное сканирование является порядком сканирования по умолчанию, то, например, никакое сокрытие не выполняется.
Если сокрытие прошло успешно или если выбранный порядок сканирования является порядком по умолчанию, то можно на этапе 1005 переупорядочить QTC согласно порядку сканирования по умолчанию. Последующие этапы содержат на этапе 1006 параллельно-последовательное преобразование QTC и энтропийное кодирование 1007. Упомянутые этапы 1006 и 1007 могут соответствовать блокам 104 и 106 на фиг. 1. Параллельно-последовательное преобразование на этапе 1006 может также вставляться между этапами 1001 и 1002, как это имеет место на фиг. 1.
Сокрытие на этапе 1002 содержит проверку условия сокрытия, а также модификацию QTC, так чтобы условие сокрытия соблюдалось. Эта модификация может содержать: поочередное изменение значений QTC, установку значений QTC на ноль и делание незначимых (с нулевой оценкой) QTC значимыми (ненулевыми). Очевидно, что всегда возможно отрегулировать QTC так, чтобы условие сокрытия выполнялось. Однако, регулировки QTC на стороне кодера ограничиваются искажением, вызванным такими регулировками, и применяются разумные ограничения регулирования. Например, при процедуре квантования разумная регулировка коэффициентов составляет плюс/минус единицу. Это ограничение позволяет, чтобы операция сокрытия не могла быть выполнена, то есть, чтобы не было никаких возможных регулировок QTC, чтобы удовлетворить условию сокрытия (на этапе 1003 оценивают случай "нет" для сканирований не по умолчанию).
На стороне декодера после энтропийного декодирования на этапе 1011 скрытая информация восстанавливается на этапе 1012 из данных последовательно-параллельного преобразования и поэтому этап сокрытия также требует информации о порядке сканирования, которая будет использоваться на стороне декодера, так чтобы она могла быть встроена относительно выбранного порядка сканирования. Процедура сокрытия данных может также быть выполнена совместно с квантованием, как это делается, например, для сокрытия знакового бита (Sign Bit Hiding). Однако, сокрытие может не работать для некоторых из QTC, потому что условие сокрытия не удовлетворяется. Например, TU имеет множество значимых QTC, которые ниже порога. В этом случае дальнейшая обработка зависит от того, является ли порядок сканирования порядком сканирования по умолчанию. Если использовалось сканирование по умолчанию, декодер может извлечь его на этапе 1015, применяя то же самое условие сокрытия к проанализированным QTC во время этапа энтропийного декодирования. В противном случае, порядок сканирования пропускается, и, при наличии, проверяется следующий порядок сканирования.
Если действует порядок сканирования по умолчанию, то этап изменения порядка QTC может быть пропущен, потому что источник и целевые сканирования являются одними и теми же. Для порядков сканирования не по умолчанию предлагается выполнить изменение порядка коэффициентов, так чтобы этапы энтропийного кодирования и энтропийного декодирования могли бы быть выполнены без изменений. Конкретная реализация может использовать операцию переотображения, чтобы избежать ненужной операции копирования для изменения порядка, то есть, посредством переопределения согласования между координатами двумерной матрицы QTC и одномерной позиции в пределах выбранного сканирования. На этапе параллельно-последовательного/последовательно-параллельного преобразования это переотображение может обеспечить контекстные индексы CABAC и последние координаты значимого QTC для данной одномерной позиции сканирования, как если бы порядок QTC был изменен.
На фиг. 11 показано устройство изменения порядка коэффициентов, соответствующее представленному раскрытию, и, в частности, показан пример устройства переупорядочивания QTC для блока 4x4: переупорядочивание сканирования с диагонального на горизонтальное.
В этом отношении следует обратиться к документу "Transform Coefficient Coding in HEVC" авторов Joel Sole и др., в издании IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, том 22, № 12, декабрь 2012 г., стр. 1765-1777. В разделе V.B этого документа утверждается, что флаг значимости кодируется, используя контекстную модель для каждого коэффициента между последним коэффициентом при сканировании порядка (который исключается) и коэффициентом DC. Для блока преобразования ТВ 4 × 4, то есть, для матрицы QTC, контекст зависит от позиции коэффициента внутри ТВ, как в стандарте H.264/AVC. Несмотря на то, что энтропийное кодирование выполняется для преобразованных в последовательную и двоичную форму данных, контекстная модель для кодирования бита значимости QTC выбирается в зависимости от позиции этого QTC внутри матрицы QTC и значимости пространственно соседствующих QTC (справа и ниже). Современный декодер анализирует бит значимости из битового потока, используя контекстную модель, которая выбирается в соответствии с позицией QTC, для которой этот бит анализируется, и позиций ранее декодированных значимых QTC. Если декодеру порядок сканирования недоступен, пространственная позиция QTC является неопределенной и, следовательно, контекстная модель не может быть получена.
Предложенный этап переупорядочивания, как показано, например, на фиг. 11, перед операцией, выполняемой энтропийным кодером, гарантирует, что кодер и декодер будут использовать один и тот же порядок сканирования и одни и те же контекстные модели для кодирования/декодирования QTC.
На фиг. 11 конкретно описывается случай, когда после квантования была получена матрица QTC (ее левая-нижняя часть) с последним значащим коэффициентом (для диагонального сканирования), расположенным в координатах (x=1, y=2). В случае диагонального сканирования должны кодироваться 8 значащих битов коэффициентов.
Чтобы выбрать другой порядок сканирования (например, с помощью переключателя 109), например, горизонтальное сканирование вместо диагонального, может быть предпочтительным кодировать сначала первые две строки битов QTC плюс два бита QTC третьей строки (всего 10 QTC). Однако, если эти коэффициенты переупорядочиваются из диагонального сканирования в горизонтальное (как показано в верхней части на фиг. 11), то должна кодироваться позиция последних одних и тех же 8 битов QTC.
Для модуля 106 энтропийного кодирования доступны два сканирования:
- сканирование по умолчанию, которое должно использоваться модулем 206 энтропийного декодирования для анализа битового потока;
- сканирование, выбранное переключателем 109 порядка сканирования.
Когда модуль энтропийного кодирования выбирает контекстную модель в соответствии с позицией QTC, он использует не только X, Y, определенные переключателем 109 порядка сканирования, но и повторно вычисляет X, Y для соответствующей позиции QTC после его переупорядочивания.
Например, в примере, показанном на фиг. 11, предлагается рассмотреть случай, когда переключатель 109 порядка сканирования выбрал диагональное сканирование, а сканированием по умолчанию является горизонтальное сканирование. Модуль 106 энтропийного кодирования будет кодировать коэффициент, расположенный в позиции (x=1, y=1) (обозначенной как "E" для диагонального сканирования), используя контекстный модуль переупорядоченной позиции (x=0, y=2) (также обозначенной как "E" для горизонтального сканирования), а также соседние коэффициенты будут определены не как "I" и "H", а как "F" и "I".
Эта операция переупорядочивания может быть реализована как переназначение координат X и Y из выбранного сканирования в сканирование по умолчанию, то есть, чтобы реализовывать это переупорядочивание, нет необходимости выполнять операции копирования/подкачки памяти для QTC, а достаточно только обеспечить таблицу поиска для координат x и y для каждой пары (выбранное сканирование, сканирование по умолчанию).
Сокрытие данных могут использовать известные способы, чтобы встроить порядок сканирования в QTC. Однако, в данном случае сокрытия порядка сканирования дополнительная возможность состоит в том, что порядок сканирования может быть определен условием, применяемым к координатам последнего значимого значения QTC (x, y), например:
mod(x + y,2) = scan_idx (C1)
В этом случае кодер может модифицировать позицию последнего значимого QTC, чтобы указать сканирование, которое должно использоваться декодером. Условие сокрытия для описанного способа сокрытия является набором координат, определенных для порядка сканирования. В этом отношении, на фиг. 12 показан пример условий сокрытия, определенных для порядков сканирования.
На фиг. 12 метки "X" указывают позиции, которые проверяются, используя условие (C1). Также можно объединить этот подход с сокрытием данных внутри значений QTC. Например, значение, полученное из последней значащей позиции QTC, может использоваться в качестве части условия сокрытия для сокрытия внутри значений QTC.
Известно, что скрытие более эффективно, если основной и целевой сигналы имеют универсальное распределение. Другой вариант осуществления этого раскрытия заключается в возможности сделать распределение (C1) более близким к универсальному посредством рандомизации. Конкретно, может быть добавлен дополнительный источник случайного шума R:
mod(x + y + R,2) = scan_idx
Значение R должно быть насколько возможно некоррелированым с выбранным порядком сканирования. Например, это может быть множество соседних TU, значение четности суммы опорных значений выборки или общее количество кодированных битов.
Таким образом, раскрытие предлагает, чтобы уменьшить издержки на сигнализацию, извлечь порядок сканирования перед последовательно-параллельным преобразованием QTC во время энтропийного декодирования. При сокрытии связанных с TU данных (таких как режим внутрикадрового предсказания, флаг фильтрации и т.д.) скрываемая информация используется после этапов деквантования и последовательно-параллельного преобразования. Раскрытие предлагает, таким образом, возможность использовать данные, скрытые в QTC, прежде чем эти коэффициенты пройдут последовательно-параллельное преобразование.
Представленное раскрытие описывает процедуру квантования, применимую к остаточным сигналам, полученным после процессов предсказания и преобразования, используемых, например, для кодирования движущихся изображений. Задача представленного раскрытия состоит в том, чтобы повысить эффективность соотношения "скорость-искажение" для квантования, расширяя набор доступных порядков сканирования, выбираемых, используя различные признаки кодирования (например, режим внутрикадрового предсказания, размер блока, режим деления) на уровне TU. Конкретная реализация этого изобретения представляется как технология, одновременно использующая механизмы зависимого от режима и основанного на RDO выбора сканирования.
Представленное раскрытие решает проблемы, связанные с выбором порядков сканирования, основанным на RDO. В частности, оно решает проблему, при которой адаптивные порядки сканирования, основанные на собранной статистике ранее кодированных или декодированных блоков, не всегда обеспечивают лучшую эффективность кодирования в отношении заданных типов сканирования. Так, в качестве решения предлагается процедура, основанная на RDO, для выбора только одного сканирования из числа контентно-адаптивных сгенерированных порядков сканирования и заданных типов сканирования.
Конкретно, представленное раскрытие решает вышеупомянутую проблему повышения эффективности кодирования при выборе порядка сканирования таким образом, что доступны как заданные типы сканирования, так и адаптивно сгенерированные порядки сканирования.
Представленное раскрытие в его мультимедийных вариантах осуществления кодирования дополнительно обеспечивает преимущество, состоящее в том, что оно может использоваться во многочисленных потенциальных применениях на гибридной платформе видеокодирования, совместимой с моделью Joint Exploration Model (JEM), являющейся основой стандарта видеокодирования следующего поколения. Дополнительное преимущество состоит в пониженной BD-скорости (Bjøntegaard Delta Rate) и субъективном улучшении качества по сравнению с JEM1. Дополнительное преимущество состоит в том, что вычислительно сложное адаптивное мультипреобразование (Adaptive Multiple Transform, AMT), также известное как улучшенное мультипреобразование (Enhanced Multiple Transform, EMT), может быть заменено более простой процедурой адаптивного выбора порядка сканирования.
Подход представленного раскрытия заключается в объединении заданных типов или порядков сканирования с адаптивно формируемыми порядками сканирования. Кроме того, добавление механизма сигнализации для процедуры выбора порядка сканирования позволяет значительно улучшить процесс генерирования адаптивных порядков сканирования на повышения его эффективности кодирования.
Представленное раскрытие было описано в сочетании с различными вариантами осуществления, приведенными в качестве примеров, а также реализаций. Однако, специалисты в данной области техники могут придумать и осуществить и другие варианты заявленного раскрытия, исходя из изучения чертежей, настоящего раскрытия и независимых пунктов формулы изобретения. В формуле изобретения, как и в описании, слово "содержащий" не исключает другие элементы или этапы и единственное число не исключают множественное число. Одиночный элемент или другой блок могут выполнить функции нескольких объектов или элементов, описанных в формуле изобретения. Простой факт, что некоторые критерии повторяются во взаимных различных зависимых пунктах формулы изобретения, не указывает, что объединение этих критериев не может использоваться для выгодной реализации.
название | год | авторы | номер документа |
---|---|---|---|
СПОСОБ И УСТРОЙСТВО ВЫБОРА ПОРЯДКА СКАНИРОВАНИЯ | 2016 |
|
RU2706228C1 |
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ С ПРЕОБРАЗОВАНИЕМ С ВЫБОРОМ ПРЕОБРАЗОВАНИЯ БЛОКОВОГО УРОВНЯ И НЕЯВНОЙ СИГНАЛИЗАЦИЕЙ В РАМКАХ ИЕРАРХИЧЕСКОГО РАЗБИЕНИЯ | 2015 |
|
RU2682838C1 |
ЗАВИСЯЩЕЕ ОТ РЕЖИМА СКАНИРОВАНИЕ КОЭФФИЦИЕНТОВ БЛОКА ВИДЕОДАННЫХ | 2011 |
|
RU2547239C2 |
СПОСОБ И УСТРОЙСТВО КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЙ | 2018 |
|
RU2746706C1 |
КОДИРОВАНИЕ КОЭФФИЦИЕНТОВ ПРЕОБРАЗОВАНИЯ ДЛЯ КОДИРОВАНИЯ ВИДЕО | 2012 |
|
RU2565365C2 |
КОДИРОВАНИЕ КОЭФФИЦИЕНТОВ ПРЕОБРАЗОВАНИЯ ДЛЯ КОДИРОВАНИЯ ВИДЕО | 2012 |
|
RU2571509C2 |
КОДИРОВАНИЕ КОЭФФИЦИЕНТОВ ПРЕОБРАЗОВАНИЯ ДЛЯ КОДИРОВАНИЯ ВИДЕО | 2012 |
|
RU2562764C2 |
КОДИРОВАНИЕ КОЭФФИЦИЕНТОВ ПРЕОБРАЗОВАНИЯ ДЛЯ КОДИРОВАНИЯ ВИДЕО | 2012 |
|
RU2565502C2 |
СПОСОБ И УСТРОЙСТВО КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЯ И НОСИТЕЛЬ ЗАПИСИ, НА КОТОРОМ ХРАНИТСЯ БИТОВЫЙ ПОТОК | 2019 |
|
RU2769959C1 |
СПОСОБ И УСТРОЙСТВО КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЯ И НОСИТЕЛЬ ЗАПИСИ, НА КОТОРОМ ХРАНИТСЯ БИТОВЫЙ ПОТОК | 2019 |
|
RU2795811C2 |
Изобретение относится к вычислительной технике. Технический результат заключается в повышении эффективности кодирования. Декодер для декодирования коэффициентов блоков видеопоследовательности, получаемой из битового потока, содержит модуль перечня типов сканирования для обеспечения одного или более заданных порядков сканирования, генератор порядка сканирования для генерирования одного или более порядков сканирования, переключатель порядка сканирования для выбора порядка сканирования для каждого блока из числа заданных и сгенерированных порядков сканирования на основе информации о порядке сканирования, содержащейся в битовом потоке, модуль декодирования для декодирования одного или более векторов коэффициентов каждого блока из битового потока, последовательно-параллельный преобразователь для инверсного сканирования одного или более векторов коэффициентов указанного блока в соответствии с порядком сканирования, выбранным для указанного блока, чтобы получить матрицу коэффициентов, при этом генератор порядка сканирования выполнен с возможностью генерирования одного или более порядков сканирования в зависимости от одной или более ранее полученных матриц коэффициентов блоков видеопоследовательности. 10 н. и 28 з.п. ф-лы, 12 ил.
1. Декодер для декодирования коэффициентов блоков видеопоследовательности, получаемой из битового потока, содержащий
модуль перечня типов сканирования, выполненный с возможностью обеспечения одного или более заданных порядков сканирования,
генератор порядка сканирования, выполненный с возможностью генерирования одного или более порядков сканирования,
переключатель порядка сканирования, выполненный с возможностью выбора порядка сканирования для каждого блока из числа заданных и сгенерированных порядков сканирования на основе информации о порядке сканирования, содержащейся в битовом потоке,
модуль декодирования, выполненный с возможностью декодирования одного или более векторов коэффициентов каждого блока из битового потока,
последовательно-параллельный преобразователь, выполненный с возможностью инверсного сканирования, для каждого блока, одного или более векторов коэффициентов указанного блока в соответствии с порядком сканирования, выбранным для указанного блока, чтобы получить матрицу коэффициентов, при этом
генератор порядка сканирования выполнен с возможностью генерирования одного или более порядков сканирования в зависимости от одной или более ранее полученных матриц коэффициентов блоков видеопоследовательности.
2. Декодер по п. 1, в котором
модуль перечня типов сканирования выполнен с возможностью обеспечения одного или более заданных порядков сканирования для каждого из множества наборов параметров кодирования,
генератор порядка сканирования, выполненный с возможностью генерирования порядка сканирования для каждого из наборов параметров кодирования в зависимости от одной или более ранее полученных матриц коэффициентов, связанных с указанным набором параметров кодирования, а
переключатель порядка сканирования выполнен с возможностью выбора порядка сканирования для каждого блока посредством:
определения набора параметров кодирования для указанного блока, и
выбора порядка сканирования для матрицы коэффициентов, полученной для указанного блока, из числа заданных и сгенерированных порядков сканирования для определенного набора параметров кодирования.
3. Декодер по п. 2, дополнительно содержащий:
устройство оценки распределения коэффициентов, выполненное с возможностью обеспечения для каждого из наборов параметров кодирования статистики распределения одной или более ранее полученных матриц коэффициентов, ассоциированных с указанным набором параметров кодирования, при этом
генератор порядка сканирования выполнен с возможностью генерирования порядка сканирования для каждого из наборов параметров кодирования в зависимости от статистики распределения для указанного набора параметров кодирования.
4. Декодер по п. 3, в котором
устройство оценки распределения коэффициентов выполняется с возможностью не обновлять или устанавливать в исходное состояние, когда порядок сканирования, выбранный для данного блока, является заданным, статистики распределения для набора параметров кодирования данного блока.
5. Декодер по п. 2, в котором
модуль декодирования выполнен с возможностью анализа для каждого блока информации о параметрах кодирования, полученной из битового потока, а
переключатель порядка сканирования выполнен с возможностью определения набора параметров кодирования данного блока в соответствии с проанализированной информацией о параметрах кодирования для указанного данного блока.
6. Декодер по любому из пп. 1-5, в котором
модуль декодирования выполнен с возможностью анализа полученной из битового потока, информации о порядке сканирования, идентифицирующей выбранный порядок сканирования.
7. Способ декодирования коэффициентов блоков видеопоследовательности, полученной из битового потока, содержащий этапы, на которых:
обеспечивают один или более заданных порядков сканирования,
генерируют один или более порядков сканирования,
выбирают порядок сканирования для каждого блока из заданных и сгенерированных порядков сканирования на основе информации о порядке сканирования, содержащейся в битовом потоке,
декодируют один или более векторов коэффициентов каждого блока, полученных из битового потока,
инверсно сканируют для каждого блока один или более векторов коэффициентов указанного блока в соответствии с порядком сканирования, выбранным для указанного блока, чтобы получить матрицу коэффициентов, при этом
этап генерирования одного или более порядков сканирования содержит генерирование одного или более порядков сканирования в зависимости от одной или более ранее полученных матриц коэффициентов блоков видеопоследовательности.
8. Способ по п. 7, содержащий этапы, на которых:
реконструируют, по меньшей мере для одного блока, скрытую информацию из одного или более коэффициентов указанного блока, причем скрытая информация составляет или формирует часть информации о порядке сканирования, связанной с указанным блоком.
9. Кодер для кодирования коэффициентов блоков видеопоследовательности в битовый поток, причем коэффициенты каждого блока содержатся в соответствующей матрице коэффициентов, содержащий:
модуль перечня типов сканирования, выполненный с возможностью обеспечения одного или более заданных порядков сканирования,
генератор порядка сканирования, выполненный с возможностью генерирования одного или более порядков сканирования,
переключатель порядка сканирования, выполненный с возможностью выбора порядка сканирования для каждого блока из заданных и сгенерированных порядков сканирования,
параллельно-последовательный преобразователь, выполненный с возможностью сканирования для каждого блока матрицы коэффициентов указанного блока в соответствии с порядком сканирования, выбранным для указанного блока, чтобы получить один или более векторов коэффициентов,
модуль кодирования, выполненный с возможностью кодирования векторов коэффициентов в битовый поток, при этом
генератор порядка сканирования выполнен с возможностью генерирования одного или более порядков сканирования в зависимости от одной или более ранее сканированных матриц коэффициентов блоков видеопоследовательности.
10. Кодер по п. 9, в котором
модуль перечня типов сканирования выполнен с возможностью обеспечения одного или более заданных порядков сканирования для каждого из множества наборов параметров кодирования,
генератор порядка сканирования, выполненный с возможностью генерирования порядка сканирования для каждого из наборов параметров кодирования в зависимости от одной или более ранее сканированных матриц коэффициентов, ассоциированных с указанным набором параметров кодирования,
переключатель порядка сканирования, выполненный с возможностью выбора порядка сканирования для каждого блока посредством:
определения набора параметров кодирования указанного блока, и
выбора порядка сканирования для матрицы коэффициентов указанного блока из числа определенных и сгенерированных порядков сканирования для определенного набора параметров кодирования.
11. Кодер по п. 10, дополнительно содержащий:
устройство оценки распределения коэффициентов, выполненное с возможностью обеспечения для каждого из наборов параметра кодирования статистики распределения одной или более ранее сканированных матриц коэффициентов, ассоциированных с указанным набором параметров кодирования, при этом
генератор порядка сканирования выполнен с возможностью генерирования порядка сканирования для каждого из наборов параметров кодирования в зависимости от статистики распределения для указанного набора параметров кодирования.
12. Кодер по п. 11, в котором
устройство оценки распределения коэффициентов выполнено с возможностью не обновлять или установки в исходное состояние, когда порядок сканирования, выбранный для данной матрицы коэффициентов, задан, статистики распределения для набора параметров кодирования данного блока.
13. Кодер по п. 9, дополнительно содержащий:
модуль сигнализации, выполненный с возможностью добавления в битовый поток информации о порядке сканирования, идентифицирующей выбранный порядок сканирования.
14. Кодер по любому из пп. 9-13, в котором
переключатель порядка сканирования выполнен с возможностью выбора порядка сканирования из числа заданных и сгенерированных порядков сканирования, основываясь на функции стоимости.
15. Способ кодирования коэффициентов блоков видеопоследовательности в битовый поток, причем коэффициенты каждого блока содержатся в соответствующей матрице коэффициентов, содержащий этапы, на которых:
обеспечивают один или более заданных порядков сканирования,
генерируют один или более порядков сканирования,
выбирают порядок сканирования для каждого блока из числа заданных и сгенерированных порядков сканирования,
сканируют для каждого блока коэффициенты указанного блока в соответствии с порядком сканирования, выбранным для указанного блока, для получения одного или более векторов коэффициентов,
кодируют векторы коэффициентов в битовый поток, при этом
этап генерирования одного или более порядков сканирования содержит генерирование одного или более порядков сканирования в зависимости от одной или более ранее сканированных матриц коэффициентов блоков видеопоследовательности.
16. Декодер для декодирования коэффициентов блоков видеопоследовательности, полученной из битового потока, содержащий:
модуль декодирования, выполненный с возможностью декодирования одного или более векторов коэффициентов каждого блока, полученных из битового потока,
модуль проверки, выполненный с возможностью реконструкции по меньшей мере для одного блока скрытой информации из одного или более коэффициентов указанного блока, причем скрытая информация составляет или является частью информации о порядке сканирования, ассоциированной с указанным блоком,
переключатель порядка сканирования, выполненный с возможностью выбора порядка сканирования для каждого блока из набора порядков сканирования, содержащего заданные порядки сканирования и сгенерированные порядки сканирования, основываясь на информации о порядке сканирования, ассоциированной с указанным блоком, и
последовательно-параллельный преобразователь, выполненный с возможностью инверсного сканирования для каждого блока одного или более векторов коэффициентов указанного блока в соответствии с порядком сканирования, выбранным для указанного блока, чтобы получить матрицу коэффициентов.
17. Декодер по п. 16, в котором
модуль проверки выполнен с возможностью реконструкции, по меньшей мере для одного блока, скрытой информации по меньшей мере из одного скрываемого вектора коэффициентов, выбранного из одного или более векторов коэффициентов, полученных для указанного блока.
18. Декодер по п. 17, в котором
модуль проверки выполнен с возможностью реконструкции, по меньшей мере для одного блока, скрытой информации из скрываемого вектора коэффициентов в зависимости от условия сокрытия, причем
условие сокрытия содержит сравнение параметра, зависящего от скрываемого вектора коэффициентов, с порогом.
19. Декодер по п. 18, в котором параметром является:
множество значимых коэффициентов внутри скрываемого вектора коэффициентов, или
расстояние между первыми и последними значимыми коэффициентами внутри скрываемого вектора коэффициентов, или
отношение максимального абсолютного значения к минимальному абсолютному ненулевому значению коэффициентов в пределах скрываемого вектора коэффициентов, при этом
условие сокрытия является истинным, если параметр выше порога, и ложным, если параметр ниже порога.
20. Декодер по п. 18, в котором
модуль проверки выполнен с возможностью проверки условия сокрытия и реконструкции скрытой информации их скрываемого вектора коэффициентов, если условие сокрытия является истинным.
21. Декодер по п. 18, в котором
переключатель порядка сканирования выполнен с возможностью выбора, когда условие сокрытия ложно, порядка сканирования заданного по умолчанию.
22. Декодер по п. 17, в котором
модуль проверки выполнен с возможностью реконструкции скрытой информации из скрываемого вектора коэффициентов, применяя к скрываемому вектору коэффициентов функцию проверки, причем
результатом функции проверки является скрытая информация.
23. Декодер по п. 22, в котором
результат функции проверки в пределах матрицы коэффициентов зависит от координат (x, y) последнего значимого коэффициента скрываемого вектора коэффициентов,
в частности, функцией проверки является следующая функция:
mod(x + y +R,2),
где x и y - координаты и R - целочисленное значение.
24. Декодер по п. 16, в котором
модуль проверки выполнен с возможностью реконструкции, для первого блока, скрытой информации из одного или более коэффициентов первого блока, причем скрытая информация составляет или является частью информации о порядке сканирования, ассоциированной с первым блоком, а
переключатель порядка сканирования выполнен с возможностью выбора, для первого и по меньшей мере для второго блока, порядка сканирования, на основе информации о порядке сканирования, ассоциированной с первым блоком.
25. Способ декодирования коэффициентов блоков видеопоследовательности, полученной из битового потока, содержащий этапы, на которых:
декодируют один или более векторов коэффициентов каждого блока, полученного из битового потока,
реконструируют по меньшей мере для одного блока скрытую информацию из одного или более коэффициентов указанного блока, причем скрытая информация составляет или является частью информации о порядке сканирования, ассоциированной с указанным блоком,
выбирают порядок сканирования для каждого блока из набора порядков сканирования, содержащего заданные порядки сканирования и сгенерированные порядки сканирования, основываясь на информации о порядке сканирования, ассоциированной с указанным блоком,
инверсно сканируют для каждого блока один или более векторов коэффициентов указанного блока в соответствии с порядком сканирования, выбранным для указанного блока, для получения, таким образом, матрицы коэффициентов.
26. Кодер для кодирования коэффициентов блоков видеопоследовательности в битовый поток, причем коэффициенты каждого блока содержатся в соответствующей матрице коэффициентов, содержащий
переключатель порядка сканирования, выполненный с возможностью выбора порядка сканирования для каждого блока из набора порядков сканирования, содержащего заданные порядки сканирования и сгенерированные порядки сканирования,
параллельно-последовательный преобразователь, выполненный с возможностью сканирования для каждого блока матрицы коэффициентов указанного блока в соответствии с порядком сканирования, выбранным для указанного блока, для получения одного или более векторов коэффициентов,
модуль сокрытия, выполненный с возможностью сокрытия, по меньшей мере для одного блока, информации о порядке сканирования, идентифицирующей порядок сканирования, выбранный для указанного блока, по меньшей мере частично, в одном или более коэффициентах указанного блока,
модуль кодирования, выполненный с возможностью кодирования векторов коэффициентов в битовый поток.
27. Кодер по п. 26, в котором
модуль сокрытия выполнен с возможностью сокрытия, по меньшей мере для одного блока, информации о порядке сканирования по меньшей мере в одном векторе коэффициентов сокрытия, выбранном из одного или более векторов коэффициентов, полученных для указанного блока.
28. Кодер по п. 26, в котором
модуль сокрытия выполнен с возможностью сокрытия по меньшей мере для одного блока информации о порядке сканирования в векторе коэффициентов сокрытия в зависимости от условия сокрытия, причем
условие сокрытия содержит сравнение параметра, зависимого от вектора коэффициентов сокрытия, с порогом.
29. Кодер по п. 28, в котором параметром является:
множество значимых коэффициентов в пределах вектора коэффициентов сокрытия, или
расстояние между первым и последним значимыми коэффициентами в пределах вектора коэффициентов сокрытия, или
отношение максимального абсолютного значения к минимальному абсолютному ненулевому значению коэффициентов в пределах вектора коэффициентов сокрытия, при этом
условие сокрытия является истинным, если параметр выше порога, и ложным, если параметр ниже порога.
30. Кодер по п. 28, в котором
модуль сокрытия выполнен с возможностью проверки условия сокрытия и сокрытия информации о порядке сканирования в векторе коэффициентов сокрытия, когда условие сокрытия истинно.
31. Кодер по п. 28, в котором
переключатель порядка сканирования выполнен с возможностью рекурсивного выбора, когда условие сокрытия ложно, другого порядка сканирования из набора порядков сканирования, пока для указанного другого выбранного порядка сканирования условие сокрытия не станет истинным.
32. Кодер по п. 28, в котором
модуль сокрытия выполнен с возможностью не скрывать, когда условие сокрытия ложно и выбранный порядок сканирования является заданным по умолчанию порядком сканирования, информацию о порядке сканирования в векторе коэффициентов сокрытия.
33. Кодер по п. 27, в котором
модуль сокрытия выполнен с возможностью сокрытия, по меньшей мере для одного блока, информации о порядке сканирования в векторе коэффициентов сокрытия посредством:
применения функции проверки к вектору коэффициентов сокрытия, чтобы получить результат функции проверки,
определения, соответствует ли результат функции проверки информации о порядке сканирования,
в противном случае, модификации скрываемого вектора коэффициентов так, чтобы результат функции проверки соответствовал информации о порядке сканирования.
34. Кодер по п. 33, в котором
результат функции проверки в пределах матрицы коэффициентов зависит от координат (x, y) последнего значимого коэффициента вектора коэффициентов сокрытия, и
в частности, функция проверки является следующей функцией:
mod(x + y + R,2),
где x и y - координаты и R - целочисленное значение.
35. Кодер по п. 26, в котором
модуль сокрытия выполнен с возможностью сокрытия, когда переключателем порядка сканирования выбирается идентичный порядок сканирования для первого и по меньшей мере для второго блока, информации о порядке сканирования, идентифицирующей идентичный порядок сканирования для одного или более коэффициентов только первого блока.
36. Способ кодирования коэффициентов блоков видеопоследовательности в битовый поток, причем коэффициенты каждого блока содержатся в соответствующей матрице коэффициентов, содержащий этапы, на которых:
выбирают порядок сканирования для каждого блока из набора порядков сканирования, содержащего заданные порядки сканирования и сгенерированные порядки сканирования,
сканируют для каждого блока матрицы коэффициентов указанного блока в соответствии с порядком сканирования, выбранным для указанного блока, для получения одного или более векторов коэффициентов,
скрывают, по меньшей мере для одного блока, информацию о порядке сканирования, идентифицирующую порядок сканирования, выбранный для указанного блока, по меньшей мере частично, в одном или более коэффициентах этого блока, и
кодируют векторы коэффициентов в битовый поток.
37. Энергонезависимый считываемый компьютером носитель, хранящий компьютерную программу, содержащую управляющую программу для выполнения способа по п. 7 или 25, при выполнении указанной компьютерной программы компьютерным устройством.
38. Энергонезависимый считываемый компьютером носитель, хранящий компьютерную программу, содержащую управляющую программу для выполнения способа по п. 15 или 36, при выполнении указанной компьютерной программы компьютерным устройством.
Многоступенчатая активно-реактивная турбина | 1924 |
|
SU2013A1 |
Многоступенчатая активно-реактивная турбина | 1924 |
|
SU2013A1 |
Изложница с суживающимся книзу сечением и с вертикально перемещающимся днищем | 1924 |
|
SU2012A1 |
EP 2866443 A1, 29.04.2015 | |||
КОДИРОВАНИЕ КОЭФФИЦИЕНТОВ ПРЕОБРАЗОВАНИЯ ДЛЯ ВИДЕОКОДИРОВАНИЯ | 2012 |
|
RU2562381C1 |
Авторы
Даты
2019-11-28—Публикация
2016-02-12—Подача