Область техники
[1] Настоящее раскрытие относится к способу обработки неподвижного изображения или движущегося изображения и более конкретно к способу для кодирования/декодирования преобразованного остаточного сигнала и устройству для поддержки этого.
уровень техники
[2] Кодирование со сжатием означает ряд методов обработки сигналов для передачи оцифрованной информации через линию связи или методов для сохранения информации в форме, подходящей для носителя хранения. Носитель, включающий в себя картинку (кадр), изображение, аудио и т.д., может предназначаться для кодирования со сжатием; и в частности, метод для выполнения кодирования со сжатием на картинке упоминается как сжатием видеоизображения.
[3] Предполагается, что видео контент следующего поколения будет иметь характеристики высокого пространственного разрешения, высокой частоты кадров и высокую размерность представления сцены. Чтобы обрабатывать такой контент, потребуется значительное увеличение емкости памяти, скорости доступа к памяти и мощности обработки.
[4] Соответственно, требуется спроектировать инструмент кодирования для эффективной обработки видео контента следующего поколения.
Раскрытие
Техническая проблема
[5] Задачей настоящего раскрытия является создание способа для кодирования/декодирования преобразованного остаточного сигнала.
[6] Дополнительно, задачей настоящего раскрытия является создание способа для конфигурирования порядка сканирования среди разделенных групп коэффициентов из блока преобразования, чтобы выполнить энтропийное кодирование для остаточного сигнала.
[7] Дополнительно, задачей настоящего раскрытия является создание способа для конфигурирования порядка сканирования в коэффициентах в разделенных группах коэффициентов из блока преобразования, чтобы выполнить энтропийное кодирование для остаточного сигнала.
[8] Технические задачи настоящего раскрытия не ограничены вышеупомянутыми техническими задачами, и другие технические задачи, которые не упомянуты выше, будут понятны специалисту в данной области техники из следующего описания.
Техническое решение
[9] В одном аспекте настоящего раскрытия, способ кодирования изображения может включать в себя: генерирование квантованного блока преобразования путем выполнения преобразования и квантования на остаточном сигнале текущего блока; разделение квантованного блока преобразования на множество групп коэффициентов; определение первого порядка сканирования, представляющего порядок сканирования среди коэффициентов групп коэффициентов; и энтропийное кодирование коэффициентов квантованного блока преобразования в соответствии с первым порядком сканирования и вторым порядком сканирования, представляющим порядок сканирования среди множества групп коэффициентов.
[10] Предпочтительно, определение первого порядка сканирования может включать в себя определение значения расстояния среди соответственных коэффициентов группы коэффициентов на основе левого верхнего коэффициента группы коэффициентов, и распределение индекса сканирования по коэффициентам, имеющим то же самое значение расстояния в соответствии с предопределенным порядком при последовательном увеличении значения расстояния.
[11] Предпочтительно, определение значения расстояния среди соответственных коэффициентов группы коэффициентов может включать в себя определение, когда группа коэффициентов представляет собой неквадратный блок, горизонтального приращения, представляющего величину увеличения значения координаты в горизонтальном направлении каждого коэффициента, и вертикального приращения, представляющего величину увеличения значения координаты в вертикальном направлении, на основе отношения ширины и высоты группы коэффициентов, и значение расстояния соответственных коэффициентов может определяться посредством значения, получаемого посредством суммирования горизонтального приращения и вертикального приращения.
[12] Предпочтительно, когда ширина группы коэффициентов больше, чем высота, горизонтальное приращение может определяться как 1 и вертикальное приращение может определяться как 2, и когда высота группы коэффициентов больше, чем ширина, горизонтальное приращение может определяться как 2 и вертикальное приращение может определяться как 1.
[13] Предпочтительно, разделение квантованного блока преобразования на множество групп коэффициентов может включать в себя иерархическое разделение квантованного блока преобразования и разделение разделенных квантованных блоков преобразования на группы коэффициентов, имеющие более низкую глубину, и второй порядок сканирования может включать в себя порядок сканирования среди групп коэффициентов, имеющих соответственные глубины, из квантованного блока преобразования.
[14] Предпочтительно, когда квантованный блок преобразования представляет собой неквадратный блок, квантованный блок преобразования может разделяться на группы коэффициентов, образованные конкретным числом коэффициентов, и конкретное число может определяться в соответствии с отношением ширины и высоты квантованного блока преобразования.
[15] В другом аспекте настоящего раскрытия, способ для декодирования изображения может включать в себя: разделение текущего блока обработки на множество групп коэффициентов; определение первого порядка сканирования, представляющего порядок сканирования, среди коэффициентов групп коэффициентов; энтропийное декодирование потока битов, выводимого из кодера, чтобы генерировать квантованный коэффициент преобразования; и упорядочение коэффициентов квантованного блока преобразования в соответствии с первым порядком сканирования и вторым порядком сканирования, представляющим порядок сканирования среди множества групп коэффициентов, чтобы генерировать квантованный блок преобразования текущего блока обработки.
[16] В другом аспекте настоящего раскрытия, определение первого порядка сканирования может включать в себя определение значения расстояния среди соответственных коэффициентов группы коэффициентов на основе левого верхнего коэффициента группы коэффициентов и распределение индекса сканирования по коэффициентам, имеющим то же самое значение расстояния, в соответствии с предопределенным порядком при последовательном увеличении значения расстояния.
[17] Предпочтительно, определение значения расстояния среди соответственных коэффициентов группы коэффициентов может включать в себя определение, когда группа коэффициентов представляет собой неквадратный блок, горизонтального приращения, представляющего величину увеличения значения координаты в горизонтальном направлении каждого коэффициента, и вертикального приращения, представляющего величину увеличения значения координаты в вертикальном направлении, на основе отношения ширины и высоты группы коэффициентов, и значение расстояния соответственных коэффициентов может определяться посредством значения, получаемого посредством суммирования горизонтального приращения и вертикального приращения.
[18] Предпочтительно, когда ширина группы коэффициентов больше, чем высота, горизонтальное приращение может определяться как 1 и вертикальное приращение может определяться как 2, и когда высота группы коэффициентов больше, чем ширина, горизонтальное приращение может определяться как 2 и вертикальное приращение может определяться как 1.
[19] Предпочтительно, разделение текущего блока обработки на множество групп коэффициентов может включать в себя иерархическое разделение текущего блока обработки и разделение разделенного текущего блока обработки на группы коэффициентов, имеющие более низкую глубину, и второй порядок сканирования может включать в себя порядок сканирования среди групп коэффициентов, имеющих соответственные глубины, из текущего блока обработки.
[20] Предпочтительно, когда текущий блок обработки представляет собой неквадратный блок, текущий блок обработки может разделяться на группы коэффициентов, образованные конкретным числом коэффициентов, и конкретное число может определяться в соответствии с отношением ширины и высоты текущего блока обработки.
[21] В еще одном другом аспекте настоящего раскрытия, устройство для декодирования изображения может включать в себя: модуль разделения группы коэффициентов, разделяющий текущий блок обработки на множество групп коэффициентов; модуль определения порядка сканирования, определяющий первый порядок сканирования, представляющий порядок сканирования среди коэффициентов групп коэффициентов; модуль генерирования коэффициентов преобразования, энтропийно декодирующий поток битов, выводимый из кодера, чтобы генерировать квантованный коэффициент преобразования; и модуль генерирования блока преобразования, упорядочивающий коэффициенты квантованного блока преобразования в соответствии с первым порядком сканирования и вторым порядком сканирования, представляющим порядок сканирования среди множества групп коэффициентов, чтобы генерировать квантованный блок преобразования текущего блока обработки.
ПОЛЕЗНЫЕ результаты
[22] В соответствии с вариантом осуществления настоящего раскрытия, величина остаточного сигнала может сохраняться во время кодирования неподвижного изображения или движущегося изображения.
[23] Дополнительно, в соответствии с вариантом осуществления настоящего раскрытия, величина остаточного сигнала сохраняется для повышения эффективности кодирования/ декодирования.
[24] Дополнительно, в соответствии с вариантом осуществления настоящего раскрытия, порядок сканирования коэффициентов преобразования эффективно конфигурируется, чтобы уменьшить объем данных, требуемых для кодирования коэффициента преобразования.
[25] Дополнительно, в соответствии с вариантом осуществления настоящего раскрытия, порядок сканирования коэффициентов преобразования конфигурируется с учетом формы неквадратного блока, чтобы уменьшить объем данных, требуемый для кодирования коэффициента преобразования, и повысить эффективность сжатия.
[26] Преимущества, которые могут быть получены в настоящем раскрытии, не ограничены вышеупомянутыми результатами, и другие не упомянутые выше преимущества будут ясно понятны специалистам в данной области техники из следующего описания.
Описание чертежей
[27] Прилагаемые чертежи, которые включены в настоящий документ в качестве части описания для пояснения настоящего раскрытия, обеспечивают варианты осуществления настоящего раскрытия и описывают технические признаки настоящего раскрытия при помощи описания, приведенного ниже.
[28] Фиг. 1 иллюстрирует блок-схему кодера, в котором выполняется кодирование неподвижного изображения или сигнала видео, в качестве варианта осуществления, в котором применяется настоящее раскрытие.
[29] Фиг. 2 иллюстрирует блок-схему декодера, в котором выполняется декодирование неподвижного изображения или сигнала видео, в качестве варианта осуществления, в котором применяется настоящее раскрытие.
[30] Фиг. 3 представляет собой диаграмму для описания структуры разделения единицы кодирования, которая может применяться к настоящему раскрытию.
[31] Фиг. 4 представляет собой диаграмму для описания единицы предсказания, которая может применяться к настоящему раскрытию.
[32] Фиг. 5 иллюстрирует способ для кодирования остаточного сигнала в качестве варианта осуществления, в котором применяется настоящее раскрытие.
[33] Фиг. 6 иллюстрирует способ для декодирования остаточного сигнала в качестве варианта осуществления, в котором применяется настоящее раскрытие.
[34] Фиг. 7 представляет собой диаграмму, иллюстрирующую способ для сканирования коэффициентов преобразования в единицах группы коэффициентов в качестве варианта осуществления, в котором применяется настоящее раскрытие.
[35] Фиг. 8 представляет собой диаграмму, иллюстрирующую порядок сканирования коэффициентов преобразования для каждой группы коэффициентов в качестве варианта осуществления, в котором применяется настоящее раскрытие.
[36] Фиг. 9 и 10 представляют собой диаграммы для описания способа для определения структуры разделения блока преобразования и порядка сканирования коэффициентов преобразования в качестве варианта осуществления, в котором применяется настоящее раскрытие.
[37] Фиг. 11 представляет собой диаграмму, иллюстрирующую один пример представления местоположения коэффициента в блоке, в качестве варианта осуществления, в котором применяется настоящее раскрытие.
[38] Фиг. 12 и 13 представляют собой диаграммы, иллюстрирующие порядок сканирования в зависимости от местоположения коэффициента преобразования в блоке в соответствии с вариантом осуществления настоящего раскрытия.
[39] Фиг. 14 и 15 представляют собой диаграммы для описания способа для определения порядка сканирования для коэффициентов неквадратного блока в качестве варианта осуществления, в котором применяется настоящее раскрытие.
[40] Фиг. 16 и 17 представляют собой диаграммы для описания способа для определения порядка сканирования для коэффициентов неквадратного блока в единицах супер-пиксела в качестве варианта осуществления, в котором применяется настоящее раскрытие.
[41] Фиг. 18 представляет собой диаграмму, иллюстрирующую способ для определения порядка сканирования для групп коэффициентов в качестве варианта осуществления, в котором применяется настоящее раскрытие.
[42] Фиг. 19 иллюстрирует способ для кодирования изображения в соответствии с вариантом осуществления настоящего раскрытия.
[43] Фиг. 20 иллюстрирует способ для декодирования изображения в соответствии с вариантом осуществления настоящего раскрытия.
[55] Фиг. 21 иллюстрирует устройство для декодирования изображения в соответствии с вариантом осуществления настоящего раскрытия.
Режим осуществления изобретения
[45] Далее, предпочтительный вариант осуществления настоящего раскрытия будет описан посредством ссылки на прилагаемые чертежи. Описание, которое будет описано ниже при помощи прилагаемых чертежей, имеет целью описать примерные варианты осуществления настоящего раскрытия и не предназначено для описания единственного варианта осуществления, в котором может быть реализовано настоящее раскрытие. Описание ниже включает в себя конкретные подробности, чтобы обеспечить понимание настоящего раскрытия. Однако специалистам в данной области техники должно быть понятно, что настоящее раскрытие может быть воплощено без этих конкретных подробностей.
[46] В некоторых случаях, чтобы предотвратить неясность технического принципа настоящего раскрытия, структуры или устройства, которые общеизвестны, могут опускаться или могут изображаться как блок-схема, фокусирующаяся на основных функциях структур или устройств.
[47] Дополнительно, хотя общие термины, широко используемые в настоящее время, выбраны в качестве терминов в настоящем раскрытии в той степени, насколько это возможно, в конкретном случае используется термин, который произвольно выбран заявителем. Поскольку в этом случае значение термина будет ясно описано в соответствующей части описания, должно быть понятно, что настоящее раскрытие должно интерпретироваться не просто с помощью терминов, используемых только в описании настоящего раскрытия, но и с пониманием значения терминов.
[48] Конкретная терминология, использованная в описании ниже, может обеспечиваться, чтобы способствовать пониманию настоящего раскрытия. Более того, конкретная терминология может быть модифицирована в другие формы в пределах объема технического принципа настоящего раскрытия. Например, сигнал, данные, выборка, картинка, кадр, блок и т.д. могут надлежащим образом заменяться и интерпретироваться в каждом процессе кодирования.
[49] Далее, в настоящем раскрытии ‘блок’ или ‘единица’ может означать единицу, в которой выполняется процесс кодирования/декодирования, такой как предсказание, преобразование и/или квантование, и может конфигурироваться в многомерном массиве выборки (или пиксела).
[50] ‘Блок’ или ‘единица’ могут означать многомерный массив выборки для компонента яркости и могут означать многомерный массив выборки для компонента цветности. Дополнительно, блок или единица могут совместно упоминаться как многомерный массив выборки для компонента яркости и как многомерный массив выборки для компонента цветности.
[51] Например, ‘блок’ или ‘единица’ могут интерпретироваться как означающие включение всех из блока кодирования (CB), означающего массив выборок, подлежащих кодированию/декодированию, блока дерева кодирования (CTB), образованного множеством блоков кодирования, блока предсказания (PB) (или единицы предсказания (PU)), означающего массив выборок, к которым применяется то же самое предсказание, и блока преобразования (TB) (или единицы преобразования (TU)), означающего массив выборок, к которым применяется то же самое преобразование.
[52] Дополнительно, если отдельно не упомянуто в настоящем раскрытии, ‘блок’ или ‘единица’ могут интерпретироваться как означающие включение структуры синтаксиса, используемой во время процесса кодирования/декодирования массива выборок для компонента яркости и/или компонента цветности. Здесь, структура синтаксиса означает синтаксический элемент из 0 или более синтаксических элементов, которые существуют в потоке битов в конкретном порядке, и синтаксический элемент означает элемент данных, представленный в потоке битов.
[53] Например, ‘блок’ или ‘единица’ могут интерпретироваться как означающие включение всех из единицы кодирования (CU), включающей в себя блок кодирования (CB) и структуру синтаксиса, используемую для кодирования блока кодирования (CB), единицы дерева кодирования (CU), образованной множеством единиц кодирования, единицы предсказания (PU), включающей в себя блок предсказания (PB) и структуру синтаксиса, используемую для предсказания блока предсказания (PB), и единицы преобразования (TU), включающей в себя блок преобразования (TB) и структуру синтаксиса, используемую для преобразования блока преобразования (TB).
[54] Дополнительно, в настоящем раскрытии ‘блок’ или ‘единица’ не ограничены конкретно массивом квадратных или прямоугольных выборок (пикселов) и могут означать массив полигональных выборок (или пикселов), имеющих три или более вершины. В этом случае, ‘блок’ или ‘единица’ могут называться полигональным блоком или полигональной единицей.
[55] Фиг. 1 иллюстрирует блок-схему кодера, в котором выполняется кодирование неподвижного изображения или сигнала видео, в качестве варианта осуществления, в котором применяется настоящее раскрытие.
[56] Со ссылкой на фиг. 1, устройство 100 кодирования может включать в себя модуль 110 разделения видео, вычитатель 115, модуль 120 преобразования, модуль 130 квантования, модуль 140 деквантования, модуль 150 обратного преобразования, модуль 160 фильтрации, буфер 170 декодированной картинки (DPB), модуль 180 предсказания и модуль 190 энтропийного кодирования. Более того, модуль 180 предсказания может включать в себя модуль 181 интер-предсказания и модуль 182 интра-предсказания.
[57] Модуль 110 разделения видео разделяет входной сигнал видео (картинку или кадр), введенный в кодер 100, на один или несколько блоков.
[58] Вычитатель 115 генерирует остаточный сигнал (или остаточный блок) путем вычитания предсказанного сигнала (или предсказанного блока), выводимого модулем 180 предсказания (т.е., модулем 181 интер-предсказания или модулем 182 интра-предсказания), из входного сигнала видео. Сгенерированный остаточный сигнал (или остаточный блок) передается на модуль 120 преобразования.
[59] Модуль 120 преобразования генерирует коэффициенты преобразования путем применения схемы преобразования (например, дискретного косинусного преобразования (DCT), дискретного синусного преобразования (DST), преобразования на основе графа (GBT) или преобразования Карунена-Лоэва (KLT)) к остаточному сигналу (остаточному блоку). В этом случае, модуль 120 преобразования может генерировать коэффициенты преобразования путем выполнения преобразования с использованием режима предсказания, применяемого к остаточному блоку, и схемы преобразования, определяемой на основе размера остаточного блока.
[60] Модуль 130 квантования квантует коэффициент преобразования и передает его на модуль 190 энтропийного кодирования, и модуль 190 энтропийного кодирования выполняет операцию энтропийного кодирования квантованного сигнала и выводит его как поток битов.
[61] При этом квантованный сигнал, выведенный модулем 130 квантования, может использоваться для генерации сигнала предсказания. Например, остаточный сигнал может реконструироваться применением деквантования и обратного преобразования к квантованному сигналу посредством модуля 140 деквантования и модуля 150 обратного преобразования. Реконструированный сигнал (или реконструированный блок) может генерироваться суммированием реконструированного остаточного сигнала с сигналом предсказания, выведенным модулем 181 интер-предсказания или модулем 182 интра-предсказания.
[62] Между тем, во время такого процесса сжатия, соседние блоки квантуются посредством разных параметров квантования. Соответственно, может возникать артефакт, проявляющий границу блока. Это явление упоминается как артефакт блочности, который является одним из важных факторов для оценки качества изображения. Чтобы снизить такой артефакт, может выполняться процесс фильтрации. Посредством такого процесса фильтрации, артефакт блочности устраняется, и одновременно снижается ошибка текущей картинки, тем самым улучшая качество изображения.
[63] Модуль 160 фильтрации применяет фильтрацию к реконструированному сигналу и выводит его через устройство воспроизведения или передает его на буфер 170 декодированной картинки. Отфильтрованный сигнал, передаваемый на буфер 170 декодированной картинки, может использоваться в качестве опорной картинки в модуле 181 интер-предсказания. Как описано выше, скорость кодирования и качество изображения могут быть улучшены с использованием отфильтрованной картинки в качестве опорной картинки в режиме интра-предсказания картинки.
[64] Буфер 170 декодированной картинки может сохранять отфильтрованную картинку, чтобы использовать ее в качестве опорной картинки в модуле 181 интер-предсказания.
[65] Модуль 181 интер-предсказания выполняет временное предсказание и/или пространственное предсказание в отношении реконструированной картинки, чтобы удалить временную избыточность и/или пространственную избыточность. В этом случае, может возникать артефакт блочности или артефакт реверберации, поскольку опорная картинка, используемая для выполнения предсказания, представляет собой преобразованный сигнал, который подвергался квантованию или деквантованию в единице блока, когда она кодировалась/декодировалась ранее.
[66] Здесь, поскольку опорная картинка, используемая для выполнения предсказания, представляет собой сигнал, кодированный/декодированный в единицах блока в предыдущее время, могут существовать артефакты блочности или артефакты реверберации.
[67] Соответственно, модуль 181 интер-предсказания может интерполировать сигнал между пикселами в единицах суб-пиксела путем применения фильтра нижних частот, чтобы решить проблему ухудшения характеристик из-за прерывистости или квантования такого сигнала или улучшить предсказание движения. Здесь, суб-пиксел означает виртуальный пиксел, сгенерированный с применением фильтра интерполяции, и целый пиксел означает действительный пиксел, имеющийся в реконструированной картинке. В качестве способа интерполяции, могут применяться линейная интерполяция, билинейная интерполяция, фильтр Винера и т.п.
[68] Фильтр интерполяции применяется к реконструированной картинке, чтобы повысить точность предсказания. Например, модуль 181 интер-предсказания применяет фильтр интерполяции к целому пикселу для генерации интерполированного пиксела, и предсказание может выполняться с использованием интерполированного блока, образованного интерполированными пикселами.
[69] Модуль 182 интра-предсказания предсказывает текущий блок со ссылкой на выборки вблизи блока, который подвергается текущему кодированию. Модуль 182 интра-предсказания может выполнять следующий процесс, чтобы выполнить интра-предсказание. Сначала, может подготавливаться опорная выборка, которая требуется для генерирования сигнала предсказания. Дополнительно, предсказанный сигнал (предсказанный блок) может генерироваться с использованием подготовленной опорной выборки. После этого кодируется режим предсказания. В этом случае, опорная выборка может подготавливаться посредством заполнения опорной выборки и/или фильтрации опорной выборки. Поскольку опорная выборка подвергается процессам предсказания и реконструкции, может существовать ошибка квантования. Соответственно, процесс фильтрации опорной выборки может выполняться с учетом каждого режима предсказания, используемого для интра-предсказания, чтобы уменьшить такую ошибку.
[70] Предсказанный сигнал (или предсказанный блок), сгенерированный модулем 181 интер-предсказания или модулем 182 интра-предсказания, может использоваться для генерирования реконструированного сигнала (или реконструированного блока) или использоваться для генерирования остаточного сигнала (или остаточного блока).
[71] Фиг. 2 иллюстрирует блок-схему декодера, в котором выполняется декодирование неподвижного изображения или сигнала видео, в качестве варианта осуществления, в котором применяется настоящее раскрытие.
[72] Со ссылкой на фиг. 2, декодер 200 может включать в себя модуль 210 энтропийного декодирования, модуль 220 деквантования, модуль 230 обратного преобразования, сумматор 235, модуль 240 фильтрации, буфер 250 декодированной картинки (DPB) и модуль 260 предсказания. Более того, модуль 260 предсказания может включать в себя модуль 261 интер-предсказания и модуль 262 интра-предсказания.
[73] Более того, реконструированный сигнал видео, выведенный посредством декодера 200, может воспроизводиться посредством устройства воспроизведения.
[74] Декодер 200 принимает сигнал (т.е., поток битов), выведенный кодером 100, показанным на фиг. 1. Модуль 210 энтропийного декодирования выполняет операцию энтропийного декодирования на принятом сигнале.
[75] Модуль 220 деквантования получает коэффициенты преобразования из энтропийно декодированного сигнала с использованием информации размера шага квантования.
[76] Модуль 230 обратного преобразования получает остаточный сигнал (или остаточный блок) посредством обратного преобразования коэффициентов преобразования с применением схемы обратного преобразования.
[77] Сумматор 235 суммирует полученный остаточный сигнал (или остаточный блок) с предсказанным сигналом (или предсказанным блоком), выведенным из модуля 260 предсказания (т.е., модуля 261 интер-предсказания или модуля 262 интра-предсказания), чтобы генерировать реконструированный сигнал (или реконструированный блок).
[78] Модуль 240 фильтрации применяет фильтрацию к реконструированному сигналу (или реконструированному блоку) и выводит отфильтрованный сигнал на устройство воспроизведения или передает отфильтрованный сигнал на буфер 250 декодированной картинки. Отфильтрованный сигнал, передаваемый на буфер 250 декодированной картинки, может использоваться в качестве опорной картинки в модуле 261 интер-предсказания.
[79] В настоящем раскрытии, варианты осуществления, описанные в модуле 160 фильтрации, модуле 181 интер-предсказания и модуле 182 интра-предсказания кодера 100, могут идентично применяться к модулю 240 фильтрации, модулю 261 интер-предсказания и модулю 262 интра-предсказания декодера, соответственно.
[80]
[81] Структура разделения блока
[82] В общем, способ сжатия изображения на основе блока используется в методе сжатия (например, HEVC) неподвижного изображения или видео. Способ сжатия изображения на основе блока представляет собой способ обработки изображения путем разделения его на конкретные единицы блока и может снижать использование памяти и вычислительную нагрузку.
[83] Фиг. 3 представляет собой диаграмму для описания структуры разделения единицы кодирования, которая может применяться к настоящему раскрытию.
[84] Устройство кодирования разделяет одно изображение (или картинку) на единицы дерева кодирования (CTU) четырехугольной формы и последовательно кодирует CTU друг за другом в соответствии с порядком растрового сканирования.
[85] В HEVC, размер CTU может определяться как одно из 64×64, 32×32 и 16×16. Устройство кодирования может выбирать и использовать размер CTU на основе разрешения входного сигнала видео или характеристик входного сигнала видео. CTU включает в себя блок дерева кодирования (CTB) для компонента яркости и CTB для двух компонентов цветности, которые соответствуют ему.
[86] Одна CTU может разделяться в структуре квадродерева. То есть, одна CTU может разделяться на четыре единицы, каждая имеет квадратную форму и имеет половинный горизонтальный размер и половинный вертикальный размер, тем самым обеспечивая генерирование единиц кодирования (CU). Такое разделение структуры квадродерева может выполняться рекурсивно. То есть, CU иерархически разделяются из одной CTU в структуре квадродерева.
[87] CU означает базовую единицу для процесса обработки входного сигнала видео, например, кодирования, в котором выполняется интра-/интер-предсказание. CU включает в себя блок кодирования (CB) для компонента яркости и CB для двух компонентов цветности, соответствующих компоненту яркости. В HEVC, размер CU может определяться как одно из 64×64, 32×32, 16×16 и 8×8.
[88] Со ссылкой на фиг. 3, корневой узел квадродерева связан с CTU. Квадродерево разделяется до достижения листового узла. Листовой узел соответствует CU.
[89] Это описано более подробно. CTU соответствует корневому узлу и имеет наименьшее значение глубины (т.е., глубина=0). CTU может не разделяться в зависимости от характеристик входного сигнала видео. В этом случае, CTU соответствует CU.
[90] CTU может разделяться в форме квадродерева. В результате, генерируются нижние узлы, то есть, глубина 1 (глубина=1). Более того, узел (т.е., листовой узел), который принадлежит нижним узлам, имеющим глубину 1, и который больше не разделяется, соответствует CU. Например, на фиг. 3(b), CU(a), CU(b) и CU(j), соответствующие узлам a, b и j, были один раз разделены из CTU и имеют глубину 1.
[91] По меньшей мере один из узлов, имеющих глубину 1, может разделяться в форме квадродерева. В результате, генерируются нижние узлы, имеющие глубину 2 (т.е., глубина=2). Более того, узел (т.е., листовой узел), который принадлежит нижним узлам, имеющим глубину 2, и который больше не разделяется, соответствует CU. Например, на фиг. 3(b), CU(c), CU(h) и CU(i), соответствующие узлам c, h и i, были дважды разделены из CTU и имеют глубину 2.
[92] Более того, по меньшей мере один из узлов, имеющих глубину 2, может вновь разделяться в форме квадродерева. В результате, генерируются нижние узлы, имеющие глубину 3 (т.е., глубина=3). Более того, узел (т.е., листовой узел), который принадлежит нижним узлам, имеющим глубину 3, и который больше не разделяется, соответствует CU. Например, на фиг. 3(b), CU(d), CU(e), CU(f) и CU(g), соответствующие узлам d, e, f и g, были трижды разделены из CTU и имеют глубину 3.
[93] В кодере, максимальный размер или минимальный размер CU может определяться на основе характеристик изображения видео (например, разрешения) или с учетом скорости кодирования. Более того, информация о максимальном или минимальном размере или информация, способная выводить эту информацию, может включаться в поток битов. CU, имеющая максимальный размер, называется наибольшей единицей кодирования (LCU), и CU, имеющая минимальный размер, называется наименьшей единицей кодирования (SCU).
[94] Кроме того, CU, имеющая структуру дерева, может иерархически разделяться с помощью предопределенной информации максимальной глубины (или информации максимального уровня). Кроме того, каждая разделенная CU может иметь информацию глубины. Поскольку информация глубины представляет отсчет и/или степень разделения CU, она может включать в себя информацию о размере CU.
[95] Поскольку LCU разделяется в форме квадродерева, размер SCU может быть получен с использованием размера LCU и информации максимальной глубины. Или наоборот, размер LCU может быть получен с использованием размера SCU и информации максимальной глубины дерева.
[96] Для одной CU, информация (например, флаг разделенной CU (split_cu_flag)), которая представляет, разделена ли соответствующая CU, может направляться на декодер. Эта информация разделения включена во все CU за исключением SCU. Например, когда значение флага, который представляет, следует ли разделить, представляет собой ‘1’, соответствующая CU дополнительно разделяется на четыре CU, и когда значение флага, который представляет, следует ли разделить, представляет собой ‘0’, соответствующая CU больше не разделяется, и может выполняться процесс обработки для соответствующей CU.
[97] Как описано выше, CU представляет собой базовую единицу кодирования, в которой выполняется интра-предсказание или интер-предсказание. HEVC разделяет CU на единицу предсказания (PU) для более эффективного кодирования входного сигнала видео.
[98] PU является базовой единицей для генерирования блока предсказания, и даже в одной CU блок предсказания может генерироваться по-разному посредством единицы PU. Однако, интра-предсказание и интер-предсказание не используются вместе для PU, которые принадлежат одной CU, и PU, которые принадлежат одной CU, кодируются посредством того же самого способа предсказания (т.е., интра-предсказания или интер-предсказания).
[99] PU не разделяется в структуре квадродерева, а разделяется один раз на одну CU предопределенной формы. Это будет описано ниже со ссылкой на чертежи.
[100] Фиг. 4 является диаграммой для описания единицы предсказания, которая может применяться к настоящему раскрытию.
[101] PU разделяется по-разному в зависимости от того, используется ли режим интра-предсказания или режим интер-предсказания как схема кодирования CU, которой принадлежит PU.
[102] Фиг. 4(a) иллюстрирует PU, если используется режим интра-предсказания, и фиг. 4(b) иллюстрирует PU, если используется режим интер-предсказания.
[103] Со ссылкой на фиг. 4(a), предполагая, что размер одной CU равен 2N×2N (N=4, 8, 16 и 32), одна CU может разделяться на два типа (т.е., 2N×2N или N×N).
[104] В этом случае, если одна CU разделена на PU формы 2N×2N, это означает, что только одна PU присутствует в одной CU.
[105] В то же время, если одна CU разделена на PU формы N×N, одна CU разделена на четыре PU, и разные блоки предсказания генерируются для каждой единицы PU. Однако такое разделение PU может выполняться, только если размер CB для компонента яркости CU является минимальным размером (т.е., случай, в котором CU представляет собой SCU).
[106] Со ссылкой на фиг. 4(b), предполагая, что размер одной CU равен 2N×2N (N=4, 8, 16 и 32), одна CU может разделяться на восемь типов PU (т.е., 2N×2N, N×N, 2N×N, N×2N, nL×2N, nR×2N, 2N×nU и 2N×nD).
[107] Как в интра-предсказании, разделение PU формы N×N может выполняться, только если размер CB для компонента яркости CU является минимальным размером (т.е., случай, в котором CU представляет собой SCU).
[108] Интер-предсказание поддерживает разделение PU на форму 2N×N, которая разделена в горизонтальном направлении, и на форму N×2N, которая разделена в вертикальном направлении.
[109] Дополнительно, интер-предсказание поддерживает разделение PU на форму nL×2N, nR×2N, 2N×nU и 2N×nD, что является разделением асимметричного движения (AMP). При этом ‘n’ означает 1/4 значения 2N. Но AMP не может использоваться, если CU, которой принадлежит PU, является CU минимального размера.
[110] Чтобы эффективно кодировать входной сигнал видео в одну CTU, оптимальная структура разделения единицы кодирования (CU), единицы предсказания (PU) и единицы преобразования (TU) может определяться на основе минимального значения скорости-искажения через процесс обработки, как описано далее. Например, для оптимального процесса разделения CU в CTU 64×64, стоимость скорости-искажения может быть вычислена через процесс разделения из CU размером 64×64 до CU размером 8×8. Подробный процесс является следующим.
[111] 1) Оптимальная структура разделения PU и TU, которая генерирует минимальное значение скорости-искажения, определяется выполнением интер-/интра-предсказания, преобразования/ квантования, деквантования/обратного преобразования и энтропийного кодирования на CU размером 64×64.
[112] 2) Оптимальная структура разделения PU и TU определяется, чтобы разделять CU 64×64 на четыре CU размером 32×32 и генерировать минимальное значение скорости-искажения для каждой CU 32×32.
[113] 3) Оптимальная структура разделения PU и TU определяется, чтобы далее разделять CU 32×32 на четыре CU размером 16×16 и генерировать минимальное значение скорости-искажения для каждой CU 16×16.
[114] 4) Оптимальная структура разделения PU и TU определяется, чтобы дополнительно разделять CU 16×16 на четыре CU размером 8×8 и генерировать минимальное значение скорости-искажения для каждой CU 8×8.
[115] 5) Оптимальная структура разделения CU в блоке 16×16 определяется посредством сравнения значения скорости-искажения CU 16×16, полученного в процессе 3), с добавлением значения скорости-искажения четырех CU 8×8, полученного в процессе 4). Этот процесс также выполняется для оставшихся трех CU 16×16 таким же образом.
[116] 6) Оптимальная структура разделения CU в блоке 32×32 определяется посредством сравнения значения скорости-искажения CU 32×32, полученного в процессе 2), с добавлением значения скорости-искажения четырех CU 16×16, полученного в процессе 5). Этот процесс также выполняется для оставшихся трех CU 32×32 таким же образом.
[117] 7) Наконец, оптимальная структура разделения CU в блоке 64×64 определяется посредством сравнения значения скорости-искажения CU 64×64, полученного в процессе 1), с добавлением значения скорости-искажения четырех CU 32×32, полученного в процессе 6).
[118] В режиме интра-предсказания, режим предсказания выбирается как единица PU, и предсказание и реконструкция выполняются на выбранном режиме предсказания в действительной единице TU.
[119] TU означает базовую единицу, в которой выполняются действительное предсказание и реконструкция. TU включает в себя блок преобразования (TB) для компонента яркости и TB для двух компонентов цветности, соответствующих компоненту яркости.
[120] В примере на фиг. 3, как в примере, где одна CTU разделяется в структуре квадродерева, чтобы генерировать CU, TU иерархически разделяется из одной CU, подлежащей кодированию, в структуре квадродерева.
[121] TU, разделенные из CU, могут разделяться на меньшие и более низкие TU, поскольку TU разделяется в структуре квадродерева. В HEVC, размер TU может определяться как одно из 32×32, 16×16, 8×8 и 4×4.
[122] Согласно фиг. 3, корневой узел квадродерева предполагается относящимся к CU. Квадродерево разделяется до достижения листовой узел, и листовой узел соответствует TU.
[123] Это описывается более подробно. CU соответствует корневому узлу и имеет наименьшее значение глубины (т.е., глубина=0). CU может не разделяться в зависимости от характеристик входного изображения. В этом случае, CU соответствует TU.
[124] CU может разделяться в форме квадродерева. В результате, генерируются нижние узлы, имеющие глубину 1 (глубина=1). Кроме того, узел (т.е., листовой узел), который принадлежит нижним узлам, имеющим глубину 1, и который больше не разделяется, соответствует TU. Например, на фиг. 3(b), TU(a), TU(b) и TU(j), соответствующие узлам a, b и j, разделены один раз из CU и имеют глубину 1.
[125] По меньшей мере один из узлов, имеющих глубину 1, может вновь разделяться в форме квадродерева. В результате, генерируются нижние узлы, имеющие глубину 2 (т.е., глубина=2). Более того, узел (т.е., листовой узел), который принадлежит нижним узлам, имеющим глубину 2, и который больше не разделяется, соответствует TU. Например, на фиг. 3(b), TU(c), TU(h) и TU(i), соответствующие узлу c, h и i, были разделены дважды из CU и имеют глубину 2.
[126] Более того, по меньшей мере один из узлов, имеющих глубину 2, может вновь разделяться в форме квадродерева. В результате, генерируются нижние узлы, имеющие глубину 3 (т.е., глубина=3). Более того, узел (т.е., листовой узел), который принадлежит нижним узлам, имеющим глубину 3, и который больше не разделяется, соответствует CU. Например, на фиг. 3(b), TU(d), TU(e), TU(f) и TU(g), соответствующие узлам d, e, f и g, были трижды разделены из CU и имеют глубину 3.
[127] TU, имеющая структуру дерева, может иерархически разделяться с помощью предопределенной информации максимальной глубины (или информации максимального уровня). Более того, каждая разделенная TU может иметь информацию глубины. Информация глубины может включать в себя информацию о размере TU, поскольку она указывает число и/или степень разделения TU.
[128] Информация (например, флаг разделения TU “split_transform_flag”), представляющая, была ли соответствующая TU разделена в отношении одной TU, может передаваться на декодер. Информация разделения включена во все TU, отличные от TU минимального размера. Например, если значение флага, представляющего, была ли разделена TU, равно “1”, соответствующая TU разделена на четыре TU. Если значение флага, представляющего, была ли разделена TU, равно “0”, соответствующая TU больше не разделяется.
[129]
[130] Способ кодирования/декодирования остаточного сигнала
[131] Входное изображение дифференцируется блоком, предсказанным модулем интра-предсказания или модулем интер-предсказания, и информация, относящаяся к предсказанию, и остаточный сигнал для дифференциации передаются, чтобы реконструировать изображение в декодере. Это будет описано ниже более подробно со ссылкой на чертежи.
[132] Фиг. 5 иллюстрирует способ для кодирования остаточного сигнала в качестве варианта осуществления, в котором применяется настоящее раскрытие.
[133] Со ссылкой на фиг. 5, кодер (устройство кодирования) преобразует остаточный сигнал (или остаточный блок) (S501). Остаточный сигнал означает сигнал, дифференцированный из сигнала, предсказанного модулем интра-предсказания или модулем интер-предсказания, из входного изображения. Остаточный сигнал представляет собой сигнал пространственной области и преобразуется в частотную область, чтобы устранить корреляцию между сигналами и сконцентрировать энергию в низкочастотной области. В этом случае, кодер может генерировать коэффициент преобразования путем применения метода преобразования, такого как DCT, DST, GBT, KLT и т.д.
[134] Кодер квантует коэффициент преобразования (S502). Преобразованный сигнал масштабируется и/или квантуется, чтобы уменьшить величину (амплитуду) сигнала.
[135] Кодер разделяет блок преобразования на подблоки (S503). Кодер может разделять блок преобразования на подблоки (например, подблок, имеющий размер 4×4), имеющие предопределенный постоянный размер.
[136] Кодер сканирует квантованный коэффициент преобразования и кодирует коэффициент в соответствии с порядком сканирования (S504). То есть, квантованные коэффициенты преобразования энтропийно кодируются и передаются на декодер в соответствии с предопределенным порядком.
[137] Здесь порядок сканирования может соответствовать верхнему правому диагональному порядку сканирования, горизонтальному порядку сканирования, вертикальному порядку сканирования и т.д.
[138] Кодер может сканировать коэффициенты преобразования в обратном направлении до достижения коэффициента координаты (0,0), так называемого коэффициента DC, начиная в местоположении последнего значимого коэффициента (т.е., последнего ненулевого коэффициента). В этом случае, квантованные коэффициенты преобразования в каждом подблоке могут сканироваться в соответствии с верхним правым диагональным порядком сканирования, и соответственные подблоки могут также сканироваться в соответствии с верхним правым диагональным порядком сканирования аналогично.
[139] В этом случае, может кодироваться информация для идентификации местоположения (т.е., местоположение столбца и местоположение строки) последнего значимого коэффициента в блоке преобразования.
[140] Декодер может получать реконструированное изображение посредством обратного выполнения процесса, выполненного в кодере. Это описано более подробно ниже со ссылкой на чертежи.
[141] Фиг. 6 иллюстрирует способ для декодирования остаточного сигнала в качестве варианта осуществления, в котором применяется настоящее раскрытие.
[142] Со ссылкой на фиг. 6, декодер (устройство декодирования) декодирует коэффициент (S601). То есть, декодер выполняет энтропийное декодирование для сигнала (т.е., потока битов), выведенного из кодера, чтобы получить квантованный коэффициент преобразования.
[143] Декодер локализует квантованные коэффициенты преобразования в порядке сканирования и в обратном порядке квантует коэффициенты преобразования (S602). То есть, декодер может упорядочивать соответственные квантованные коэффициенты преобразования, реконструированные посредством энтропийного декодирования, в массив остаточных сигналов в соответствии с предопределенным порядком.
[144] Как описано выше, порядок сканирования может соответствовать верхнему правому диагональному порядку сканирования, горизонтальному порядку сканирования, вертикальному порядку сканирования и т.д.
[145] Как описано выше, информация, представляющая местоположение последнего значимого коэффициента (т.е., ненулевого коэффициента) в соответствии с порядком сканирования в блоке преобразования, может сигнализироваться посредством потока битов. Декодер анализирует вышеуказанную информацию, чтобы вывести местоположение столбца и местоположение строки последнего значимого коэффициента (т.е., ненулевого коэффициента) в соответствии с порядком сканирования в блоке преобразования.
[146] Декодер может сканировать коэффициенты преобразования в обратном направлении до достижения координаты (0,0), так называемого коэффициента DC, начиная в местоположении последнего значимого коэффициента (т.е., ненулевого коэффициента). При этом квантованные коэффициенты преобразования в каждом подблоке могут сканироваться в обратном порядке по отношению к верхнему правому диагональному порядку сканирования, и соответственные подблоки могут также сканироваться в обратном порядке по отношению к верхнему правому диагональному порядку сканирования аналогичным образом.
[147] Декодер может обратно квантовать квантованные коэффициенты преобразования в соответствии с порядком сканирования, как описано выше.
[148] Декодер обратно преобразует обратно квантованные коэффициенты преобразования (S603). То есть, декодер может обратно преобразовывать коэффициент преобразования, применяя метод обратного преобразования, и получать остаточный сигнал.
[149] Например, соответственные коэффициенты, реконструированные посредством энтропийного декодирования, могут быть упорядочены в массив остаточных сигналов в соответствии с порядком сканирования и реконструированы в остаточные сигналы пространственной области посредством обратного квантования и обратного преобразования. Дополнительно, реконструированный остаточный сигнал комбинируется с сигналом предсказания и выводится как реконструированное изображение посредством процесса фильтрации.
[150]
[151] Вариант осуществления 1
[152] В варианте осуществления настоящего раскрытия, кодер/декодер может иерархически конфигурировать порядок сканирования для коэффициентов преобразования. Иными словами, кодер/декодер может разделять блок преобразования (или остаточный блок или блок обработки сканирования) на группы коэффициентов и затем выполнять сканирование в единицах групп разделенных коэффициентов. Группа коэффициентов может упоминаться как подблок, подгруппа, подгруппа коэффициентов и т.д.
[153] Кодер/декодер может сканировать коэффициент преобразования в каждой группе коэффициентов при сканировании коэффициента преобразования в единицах группы коэффициентов, разделенных из блока преобразования в соответствии с порядком сканирования. Например, группа коэффициентов может представлять собой блок, имеющий размер 4×4. Это описано ниже со ссылкой на фиг. 7.
[154] Фиг. 7 представляет собой диаграмму, иллюстрирующую способ для сканирования коэффициентов преобразования в единицах группы коэффициентов в качестве варианта осуществления, в котором применяется настоящее раскрытие.
[155] Со ссылкой на фиг. 7, предполагается, что размер текущего блока (т.е., блока преобразования) равен 8×8, и группа коэффициентов определяется как блоки 4×4. В этом случае, например, кодер/декодер может сканировать группы коэффициентов в порядке CG1 701, CG3 703, CG2 702 и CG4 704. Дополнительно, кодер/декодер может сканировать коэффициенты в каждой группе коэффициентов в соответствии с диагональным порядком сканирования аналогично порядку сканирования между группами коэффициентов.
[156] Когда текущий блок, имеющий размер 8×8, согласно фиг. 7 выражен как , и группы коэффициентов, имеющие размер 4×4, выражены как (где k представляет порядок сканирования), группы коэффициентов согласно фиг. 7 могут удовлетворять Уравнению 1 ниже.
[157] [Уравнение 1]
[158] Предполагается, что сканирование начинается с коэффициента (т.е. коэффициента DC), соответствующего нижней частоте на фиг. 7 и уравнению 1, но кодирование/декодирование может выполняться с группы коэффициентов, сканируемой последней в действительном процессе кодирования/декодирования. Дополнительно, в этом случае, коэффициенты в группе коэффициентов могут сканироваться с использованием того же порядка сканирования, и кодирование/декодирование может выполняться с коэффициента, расположенного последним в порядке сканирования.
[159] То есть, когда выполняется энтропийное кодирование для коэффициента преобразования, группы коэффициентов могут кодироваться в порядке CG4 704, CG2 702, CG3 703 и CG1 701, и в этом случае коэффициент компонента DC, расположенный в верхнем левом конце, может кодироваться последним.
[160] В настоящем раскрытии, варианты осуществления описаны на основе способа для сканирования первым компонента DC в верхнем левом конце, как в Уравнении 1, но настоящее раскрытие не ограничено этим, и может применяться порядок сканирования в обратном направлении. Даже когда обратный порядок сканирования применяется во время действительного процесса кодирования, может применяться способ, предложенный настоящим раскрытием. В этом случае, обратный порядок сканирования может выводиться с использованием Уравнения 9, описанного ниже, из прямого порядка сканирования.
[161] Фиг. 8 представляет собой диаграмму, иллюстрирующую порядок сканирования коэффициентов преобразования для каждой группы коэффициентов в качестве варианта осуществления, в котором применяется настоящее раскрытие.
[162] Со ссылкой на Фиг. 8, иерархическое соотношение текущего блока 801, групп 802, 803, 804 и 805 коэффициентов и коэффициентов в каждой группе коэффициентов может быть представлено как структура дерева. В этом случае, кодер/декодер может выполнять сканирование в порядке от левой стороны к правой стороне и выполнять сканирование в соответствии со способом поиска первой глубины.
[163] Листовые узлы, имеющие структуру дерева, представляют местоположения коэффициентов в текущем блоке 801. Местоположение каждого коэффициента может быть представлено как вектор строки 1×2, образованный индексом направления строки и индексом направления столбца.
[164] В настоящем раскрытии, группа коэффициентов может быть записана как Здесь, представляет индекс сканирования на глубине k соответствующей группы коэффициентов. Кроме того, d представляет глубину соответствующей группы коэффициентов в структуре дерева.
[165] Фиг. 9 и 10 представляют собой диаграммы для описания способа для определения структуры разделения блока преобразования и порядка сканирования коэффициента преобразования в качестве варианта осуществления, в котором применяется настоящее раскрытие.
[166] Со ссылкой на фиг. 9, предполагается, что текущий блок обработки представляет собой блок, имеющий размер 16×16. В этом случае, кодер/декодер может рекурсивно (или иерархически) разделять (т.е. разделять текущий блок обработки на глубину 2 или более) текущий блок обработки, чтобы выполнить сканирование коэффициента преобразования. Когда текущий блок обработки рекурсивно разделяется, как показано на фиг. 9(c), структура разделения текущего блока обработки может быть представлена в форме дерева, проиллюстрированного на фиг. 14.
[167] Со ссылкой на фиг. 10, листовые узлы, имеющие структуру дерева, сканируются от левой стороны к правой стороне, чтобы выполнить сканирование для всех коэффициентов преобразования. То есть, порядок сканирования может определяться от левой стороны к правой стороне листового узла, имеющего структуру дерева.
[168] В настоящем раскрытии, группа листовых коэффициентов представляет группу коэффициентов самой низкой глубины (т.е., группу коэффициентов глубиной 2 на фиг. 10), включающую листовой узел (т.е., коэффициент преобразования в группе коэффициентов), имеющий структуру дерева на фиг. 10. Группа листовых коэффициентов больше не разделяется на группы коэффициентов, имеющие более низкие глубины. Дополнительно, в структуре блока, которая разделяется на структуру дерева, с увеличением числа раз разделения, увеличивается глубина. Узел, имеющий более низкую глубину, представляет узлы, которые разделены из узла, в котором значение глубины относительно велико, т.е., узел, имеющий более высокую глубину.
[169] Порядок сканирования в может быть выражен, как показано в уравнении 2 ниже.
[170] [Уравнение 2]
где h= высота , и w= ширина
[171] Со ссылкой на фиг. 2, каждый вектор строки представляет местоположение коэффициента преобразования в блоках h×w. ri представляет индекс строки, и ci представляет индекс столбца
[172] В настоящем раскрытии, предполагается, что индексы строки и индексы столбца всех 2D блоков начинаются с 1. В Уравнении 2, представляет порядок сканирования коэффициентов в соответствующей группе коэффициентов. То есть коэффициенты в соответствующих местоположениях могут сканироваться в порядке от [r1 c1] до [rhxw chxw].
[173] Как описано выше, поскольку каждый из векторов строки, составляющих в Уравнении 2, представляет местоположение коэффициента преобразования в блоках, имеющих размер h×w, смещение индекса строки и смещение индекса столбца в блоке преобразования (т.е. ) для группы коэффициентов , имеющих глубину d, добавляются ко всем векторам столбца, составляющим , чтобы получить порядок сканирования в блоке преобразования. В этом случае, смещение индекса строки и смещение индекса столбца могут быть вычислены с использованием Уравнения 3 ниже.
[174] [Уравнение 3]
[175] Со ссылкой на Уравнение 3, является вектором столбца, представляющим относительное местоположение текущего блока преобразования. Например, на фиг. 9, может быть установлено и может быть установлено.
[176] Когда вектор 1 определен как , порядок сканирования может быть вычислен с использованием Уравнения 4 ниже.
[177] [Уравнение 4]
[178] Когда представляет собой группу листовых коэффициентов, порядок сканирования во всех блоках (т.е. блоках преобразования) может быть вычислен с использованием Уравнения 4 выше. То есть порядок сканирования во всех блоках равен сумме порядка сканирования в группе коэффициентов, вычисленной с использованием Уравнения 2, описанного выше, и смещения (т.е. ) группы коэффициентов, вычисленного с использованием Уравнения 3, описанного выше.
[179] Когда не является группой листовых коэффициентов, порядок сканирования в блоке преобразования может вычисляться с использованием Уравнения 5 ниже.
[180] [Уравнение 5]
где N= число CG в и d≥0.
[181] Порядок сканирования для всех блоков может быть выражен как . В этом случае, индекс строки может представлять индекс сканирования, и каждый вектор строки может представлять местоположение во всех блоках для соответствующего индекса сканирования.
[182] Фиг. 11 представляет собой диаграмму, иллюстрирующую пример представления местоположения коэффициента в блоке в качестве варианта осуществления, в котором применяется настоящее раскрытие.
[183] Со ссылкой на фиг. 11, местоположение коэффициента в блоке может быть представлено с использованием порядка растрового сканирования (т.е. порядка первой строки и лексикографического порядка). Значения индексов могут распределяться по местоположениям соответственных коэффициентов в соответствии с порядком сканирования, как проиллюстрировано на фиг. 11. Кроме того, значения индексов, представляющие местоположение коэффициента согласно фиг. 11, могут быть выражены, как показано в Уравнении 6 ниже.
[184] [Уравнение 6]
где w=ширина и d≥0
[185] Когда индекс, представляющий местоположение коэффициента, назначен в соответствии с произвольным порядком сканирования, включающим в себя порядок растрового сканирования, описанный выше, в местоположениях коэффициентов преобразования в блоке, порядок сканирования может быть выражено, как показано в Уравнении 7 ниже.
[186] [Уравнение 7]
где (высота )× (ширина )
[187] Когда , Уравнение 7 может быть обобщено, как показано в Уравнении 6.
[188] Порядок сканирования, предложенный в настоящем раскрытии, может быть описан посредством схем, описанных в Уравнениях 2-7 выше. Когда порядок сканирования описывается посредством схемы, описанной выше, например, порядок сканирования может определяться следующими компонентами.
[189] 1) Рекурсивное разделение группы коэффициентов на каждой глубине (т.е. глубине 0 или больше)
[190] 2) Определение порядка сканирования для групп разделенных коэффициентов
[191] 3) Определение порядка сканирования для коэффициентов преобразования группы листовых коэффициентов
[192] Когда компоненты определены, порядок сканирования может определяться с использованием Уравнений 2-7. Соответственно, настоящее раскрытие предлагает способ для конфигурирования подходящего порядка сканирования посредством определения компонентов.
[193] Набор, включающий в себя все матрицы порядка сканирования, которые являются применимыми, может быть выражен, как показано в Уравнении 8 ниже.
[194] [Уравнение 8]
[195] Здесь, представляет набор, в котором собраны все матрицы порядка сканирования, применимые к блокам. К тому же блок может иметь различные размеры или формы (например, 4×4, 4×8, 16×4, 16×16, 32×8 и т.д.). Кроме того, , выведенное Уравнением 5, описанным выше, может быть включен как элемент .
[196] В варианте осуществления, кодер/декодер может выбирать конкретный порядок сканирования в с использованием информации о соседних блоках текущего блока обработки и выполнять сканирование с использованием выбранного порядка сканирования. Информация о соседних блоках может представлять собой, например, число ненулевых коэффициентов, которые существуют в левом блоке или верхнем блоке, или местоположение последнего ненулевого коэффициента. Дополнительно, порядок сканирования текущего блока обработки может определяться с использованием информации о блоке, закодированном непосредственно перед текущим блоком обработки.
[197] В варианте осуществления, кодер/декодер может определять (или применять) порядок сканирования в соответствии с размером или формой текущего блока обработки. Например, кодер/декодер может применять к блоку, имеющему размер 4×8, и применять к блоку, имеющему размер 8×16.
[198] В варианте осуществления, кодер/декодер может выбирать и применять конкретный порядок сканирования среди наборов (т.е. поднабор из ) порядков сканирования, применимых к блоку, имеющему конкретный размер или форму. В этом случае, кодер может сигнализировать на декодер индекс для порядка сканирования, выбранного в единицах последовательности, картинки, сегмента, CTU, блока кодирования или блока преобразования (или единицы преобразования).
[199] Когда энтропийное кодирование выполняется с учетом коэффициента преобразования, обратный порядок сканирования может применяться в дополнение к прямому порядку сканирования. Обратный порядок сканирования может быть вычислен с использованием Уравнения 9 ниже.
[200] [Уравнение 9]
когда в противном случае
где N= число CG в и d≥0.
[201] Здесь, P представляет матрицу перестановки, в которой только анти-диагональный компонент имеет значение 1. Обратный порядок сканирования для прямого порядка сканирования может выводиться с использованием матрицы перестановки.
[202]
[203] Вариант осуществления 2
[204] В варианте осуществления настоящего раскрытия, кодер/декодер может определять порядок сканирования для соответственных коэффициентов в группе коэффициентов на основе размера или формы группы коэффициентов. То есть, кодер/декодер может определять порядок сканирования коэффициентов в группе коэффициентов согласно Уравнения 2, описанному выше, в соответствии с размером или формой блока.
[205] Фиг. 12 и 13 представляют собой диаграммы, иллюстрирующие порядок сканирования в зависимости от местоположения коэффициента преобразования в блоке в соответствии с вариантом осуществления настоящего раскрытия.
[206] Со ссылкой на фиг. 12, кодер/декодер может сканировать коэффициенты в порядке, в котором значение d увеличивается в соответствии с диагональным порядком сканирования. Здесь, d представляет расстояние соответствующего коэффициента на основе верхнего левого коэффициента. Кодер/декодер может сканировать коэффициенты в местоположениях, имеющих одно и то же значение d, от нижней левой стороны к верхней правой стороне.
[207] Здесь, значение d может определяться как d=dx+dy и как показано на фиг. 12(b), dx и dy представляют горизонтальное приращение (или горизонтальную координату) и вертикальное приращение (или вертикальную координату) соответственно.
[208] Как описано выше, кодер/декодер может применять обратный порядок сканирования к выполнению энтропийного кодирования для коэффициентов преобразования. В этом случае, коэффициент, в котором значение d для коэффициента, в котором значение d равно 0, может сканироваться и сканируется от верхней правой стороны к нижней левой стороне обратно направлению стрелки, показанной на фиг. 12(a). В настоящем раскрытии, главным образом описан прямой порядок сканирования, но при выполнении энтропийного кодирования, кодер/декодер может следовать обратному порядку сканирования или прямому порядку сканирования.
[209] Местоположение, имеющее то же самое значение d, может соответствовать местоположениям коэффициентов, имеющих равную фазу в терминах частоты. Соответственно, кодер/декодер может назначать произвольный порядок коэффициентам в местоположениях, имеющих одно и то же значение d. Например, кодер/декодер может сканировать местоположения линии, в которых значение d на фиг. 12(a) равно 3 в порядке [4 1], [3 2], [2 3] и [1 4] (каждое местоположение выражено вектором строки), [1 4], [2 3], [3 2] и [4 1], или [2 3], [3 2], [1 4] и [4 1].
[210] Дополнительно, кодер/декодер может быть сконфигурирован, чтобы сканировать каждую анти-диагональную линию от правой стороны к левой стороне, как показано на фиг. 13, в отличие от примера согласно фиг. 12(a).
[211] Таблица 1 ниже показывает один пример псевдокода для определения диагонального порядка сканирования.
[212] [Таблица 1]
scan_idx=1;
for d=0 : ( ( height - 1 ) + ( width - 1 ) )
sypos=d;
if (sypos ≥ height)
sypos=height - 1;
end
sxpos=d - sypos;
while ( sxpos < width and sypos ≥ 0 )
scan_order ( sypos+1, sxpos+1 ) = scan_idx;
scan_pos ( scan_idx, : ) = [ ( sypos+1 ) ( sxpos+1 ) ];
scan_idx=scan_idx+1;
sypos=sypos - 1;
sxpos=sxpos+1;
end
end
[213] Со ссылкой на Таблицу 1, кодер/декодер может определять порядок сканирования путем распределения индекса сканирования от коэффициента в нижнем самом левом местоположении до коэффициента в верхнем самом правом местоположении при увеличении значения d на 1 от 0. Здесь, sypos и sxpos представляют параметры, являющиеся значениями, получаемыми путем вычитания 1 из индекса строки и индекса столбца, соответственно. То есть, предполагается, что sypos и sxpos начинаются с 0.
[214] В Таблице 1, предполагается, что диагональная линия, заданная значением d, сканируется от нижней левой стороны, но код может быть сконфигурирован, чтобы сканировать диагональную линию от верхней правой стороны, как описано на фиг. 13.
[215] В Таблице 1 выше, ‘while loop’ должно определять параметр (или матрицу), представляющий информацию сканирования в соответствии с порядком сканирования относительно диагональной линии, заданной значением d. Параметр может быть параметром (scan_order), представляющим порядок сканирования, или параметром (scan_pos), представляющим положение сканирования. Индекс сканирования, распределенный каждому положению (т.е., компоненту матрицы scan_order) блока, сохраняется в матрице scan_order. Кроме того, в матрице scan_pos, каждый индекс строки соответствует индексу сканирования, и положение коэффициента в блоке сохраняется в каждой строке в форме вектора строки.
[216] Когда порядок сканирования распределен положению коэффициента посредством существующего способа (например, HEVC), скорость увеличения горизонтальной или вертикальной частоты не может отражаться эффективным образом, когда текущий блок обработки представляет собой неквадратный блок.
[217] Конкретно, когда отделяемое преобразование применяется к неквадратному блоку, длина вектора базы преобразования для вертикального направления и длина вектора базы преобразования для горизонтального направления могут отличаться друг от друга. Например, когда текущий блок обработки представляет собой блок, имеющий размер 2N×N, DCT, имеющее размер 2N×2N, может применяться к вертикальному направлению, и DCT, имеющее размер N×N, может применяться к горизонтальному направлению. При этом, всякий раз, когда вертикальная координата коэффициента увеличивается на 1, частота увеличивается на 1/(2N)*π в направлении высоты, и всякий раз, когда горизонтальная координата коэффициента увеличивается на 1, частота может увеличиваться в направлении ширины.
[218] При описании способа, предложенного настоящим раскрытием, в основном описывается, что блок M×N представляет собой блок, имеющий высоту M и ширину N, но настоящее раскрытие не ограничено этим, и блок M×N может представлять блок, имеющий ширину и высоту, которые равны M и N, соответственно.
[219] В случае неквадратного блока, когда порядок сканирования аналогично применяется к положению коэффициента посредством существующего способа, скорость увеличения частоты не может отражаться эффективным образом в горизонтальном направлении или вертикальном направлении. В результате, сканирование от компонента высокой частоты к компоненту низкой частоты не может выполняться нормально, и характеристика сжатия изображения может ухудшаться.
[220] Соответственно, настоящее раскрытие предлагает способ для распределения порядка сканирования по коэффициентам в соответственных положениях в неквадратном блоке, чтобы решить такую проблему и эффективно отражать скорость увеличения частоты в горизонтальном направлении или вертикальном направлении.
[221] Порядок сканирования может быть получен с использованием способов, описанных на фиг. 12 и в Таблице 1 выше, даже в отношении неквадратного блока. Например, когда текущий блок обработки является блоком, имеющим размер 4×8, высота и ширина могут быть сконфигурированы как 4 и 8, соответственно, в качестве входных параметров функции, и когда функция Таблицы 1 выполняется, может быть получен соответствующий порядок сканирования.
[222] Фиг. 14 и 15 представляют собой диаграммы для описания способа для определения порядка сканирования для коэффициентов неквадратного блока в качестве варианта осуществления, в котором применяется настоящее раскрытие.
[223] Как описано выше, когда отделяемое преобразование применяется к неквадратному блоку, длина вектора базы преобразования для вертикального направления (т.е. направления строки) и длина вектора базы преобразования для горизонтального направления (т.е. направления столбца) могут быть различными.
[224] Со ссылкой на фиг. 14, предполагается, что текущий блок обработки является блоком, имеющим размер 4×8. В этом случае, DCT, имеющее размер 4×4, может применяться к вертикальному направлению, и DCT, имеющее размер 8×8, может применяться к горизонтальному направлению. Когда предполагается, что коэффициент преобразования представляет компонент низкой частоты, так как коэффициент преобразования расположен в верхнем левом конце, и представляет компонент высокой частоты, так как коэффициент преобразования расположен в нижнем правом конце, в случае блока 4×8 согласно фиг. 14(a), приращение частоты в вертикальном направлении (или направлении высоты) может быть в два раза больше, чем приращение частоты в горизонтальном направлении (или направлении ширины).
[225] Соответственно, dx и dy в зависимости от положения коэффициента преобразования могут быть сконфигурированы, как показано на фиг. 14(b). Кроме того, кодер/декодер может конфигурировать порядок сканирования в порядке, когда значение d увеличивается в единицах коэффициентов положений, имеющих то же самое значение d (в этом случае, d=dx+dy). В случае обратного порядка сканирования, кодер/декодер может конфигурировать порядок сканирования в порядке, в котором значение d снижается.
[226] В настоящем раскрытии, линия сканирования может относиться к коэффициентам в положениях, имеющих одно и то же значение d. То есть, коэффициенты, имеющие то же самое значение d, могут быть включены в одну и ту же линию сканирования.
[227] Произвольный порядок сканирования может быть распределен среди коэффициентов, которые принадлежат той же самой линии сканирования. Когда коэффициенты сканируются от левой стороны к правой стороне, индекс сканирования может распределяться коэффициентам в соответственных положениях, как проиллюстрировано на фиг. 14(c).
[228] Со ссылкой на фиг. 15, предполагается, что текущий блок обработки представляет собой блок, имеющий размер 8×4. За исключением того, что приращение горизонтальной частоты и приращение вертикальной частоты отличаются друг от друга, кодер/декодер может определять порядок сканирования путем конфигурирования значения d способом, который является тем же самым, что и вышеупомянутый способ.
[229] Таблица 2 ниже показывает один пример псевдокода для получения порядка сканирования путем применения способов, описанных на фиг. 14 и 15.
[230] [Таблица 2]
if ( height ≥ width )
sh=1;
sw=round ( height/width );
else
sh=round ( width/height );
sw=1;
end
scan_idx=1;
for d=0 : ( (height - 1 ) ⋅ sh + ( width - 1 ) ⋅ sw )
sypos=floor ( d/sh );
if ( sypos ≥ height )
sypos=height - 1;
end
sxpos=d - ( sypos ⋅ sh );
rem=sxpos % sw;
if ( rem != 0 )
sypos=sypos - ( sw - rem );
sxpos=sxpos + ( sw - rem );
end
sxpos=floor ( sxpos/sw );
while ( sxpos < width and sypos ≥ 0 )
scan_order ( sypos+1, sxpos+1 ) = scan_idx;
scan_pos ( scan_idx, : ) = [ ( sypos+1 ) ( sxpos+1 ) ];
if ( sh ≥ sw )
sypos=sypos - 1;
sxpos=sxpos+sh;
else
sypos=sypos - sw;
sxpos=sxpos+1;
end
scan_idx=scan_idx+1;
end
end
[231]
[232] Со ссылкой на Таблицу 2, sh является параметром, представляющим вертикальное приращение (т.е., dy), и sw является параметром, представляющим горизонтальное приращение (т.е. dx). Другие параметры являются теми же самыми, что и параметры в Таблице 1 выше. Кроме того, функция округления в меньшую сторону возвращает целое значение, имеющее максимальный размер, равный или меньше, чем число, приведенное в качестве коэффициента, и функция округления возвращает целое значение, полученное округлением числа, приведенного в качестве коэффициента. Кодер/декодер конфигурирует значение sh и значение sw с использованием отношения ширины и высоты текущего блока обработки и распределяет индекс сканирования от коэффициента в нижнем самом левом положении до коэффициента в верхнем самом правом положении при увеличении значения d на 1 от 0, чтобы определить порядок сканирования.
[233]
[234] В варианте осуществления настоящего раскрытия, кодер/декодер может группировать коэффициенты в единицы конкретного числа коэффициентов и затем сканировать коэффициенты путем применения различных порядков сканирования. Это описано ниже со ссылкой на фиг. 16.
[235] Фиг. 16 и 17 являются диаграммами для описания способа для определения порядка сканирования для коэффициентов неквадратного блока в единицах супер-пиксела в качестве варианта осуществления, в котором применяется настоящее раскрытие.
[236] Со ссылкой на фиг. 16, предполагается, что текущий блок обработки является блоком, имеющим размер 4×8. Кодер/декодер может разделять текущий блок обработки на единицы супер-пиксела. Здесь, супер-пиксел может представлять набор конкретного числа коэффициентов (или пикселов), и конкретное число может определяться соответственно отношению ширины и высоты текущего блока. Супер-пиксел может называться подблоком, подгруппой, группой коэффициентов, подгруппой коэффициентов и т.д. Поскольку отношение ширины и высоты текущего блока составляет 2, супер-пиксел может быть составлен двумя пикселами.
[237] Кодер/декодер может конфигурировать квадратный блок с супер-пикселами, определять порядок сканирования в единицах супер-пиксела способом, описанным на фиг. 7-13 выше, и сканировать коэффициенты в соответствии с произвольным порядком в супер-пикселе.
[238] Кодер/декодер может применять порядок сканирования для квадратного блока, имеющего размер 4×4, в соответствии с диагональным порядком сканирования в единицах супер-пиксела, как показано на фиг. 16 и применять порядок сканирования от левой стороны к правой стороне в каждом супер-пикселе.
[239] Со ссылкой на фиг. 17, предполагается, что текущий блок обработки является блоком, имеющим размер 8×4. Аналогично, кодер/декодер может разделять текущий блок обработки на единицы супер-пиксела. Поскольку высота в два раза больше, чем ширина, кодер/декодер может конфигурировать супер-пиксел путем группирования двух коэффициентов в вертикальном направлении (или направлении высоты).
[240] Таблица 3 ниже показывает один пример псевдокода для получения порядка сканирования с применением способов, описанных на фиг. 16 и 17.
[241] [Таблица 3]
if ( height ≥ width )
splen=round ( height/width );
norm_length=width;
else
splen=round ( width/height );
norm_length=height;
end
scan_idx=1;
for d=0 : ( ( norm_length - 1 ) + ( norm_length - 1 ) )
sypos=d;
if ( sypos ≥ norm_length )
sypos=norm_length - 1;
end
sxpos=d - sypos;
while ( sxpos < norm_length and sypos ≥ 0 )
for i=0 : ( splen - 1 )
if ( height ≥ width )
sypos_ex = ( sypos ⋅ splen ) + i;
sxpos_ex=sxpos;
else
sypos_ex=sypos;
sxpos_ex = ( sxpos ⋅ splen ) + i;
end
scan_order ( sypos_ex+1, sxpos_ex+1 ) = scan_idx;
scan_pos ( scan_idx, : ) = [ ( sypos_ex+1 ) ( sxpos_ex+1 ) ];
scan_idx=scan_idx+1;
end
sypos=sypos - 1;
sxpos=sxpos+1;
end
end
[242]
[243] Со ссылкой на Таблицу 3, splen является параметром, представляющим длину супер-пиксела. splen может определяться в соответствии с шириной и высотой текущего блока обработки. Например, когда высота больше, чем ширина, супер-пиксел может определяться как супер-пиксел, который удлинен в вертикальном направлении, и когда ширина больше, чем высота, супер-пиксел может определяться как супер-пиксел, который удлинен в горизонтальном направлении. Кроме того, norm_length является параметром, представляющим длину одной стороны для блока (т.е., квадратного блока), сконфигурированного в единицах супер-пиксела. В Таблице 3 выше, ‘for-loop’ в ‘while-loop’ распределяет индекс сканирования коэффициентам в соответственных положениях в супер-пикселе.
[244] Кодер/декодер может применять различные порядки сканирования в дополнение к порядку сканирования. Например, кодер/декодер может получать информацию числа ненулевых коэффициентов с учетом коэффициентов в соответственных положениях с использованием статистики коэффициентов преобразования блока, имеющих конкретные размеры (например, 4×8, 16×8, 32×32 и т.д.). Кроме того, кодер/декодер может определять порядок сканирования коэффициентов в порядке убывания (или порядке возрастания) соответствующего числа на основе числа приобретенных ненулевых коэффициентов.
[245] Кодер/декодер может представлять набор порядков сканирования, применимых к блоку h×w как показано в Уравнении 10 ниже, когда высота и ширина представляют собой h и w соответственно, как показано в Уравнении 2, описанном выше.
[246] [Уравнение 10]
[247] Здесь, представляет набор применимых порядков сканирования. Кроме того, может представлять порядки сканирования и может соответствовать порядкам сканирования, описанным на фиг. 7-17 выше. Уравнения 2 может удовлетворять
[248]
[249] Вариант осуществления 3
[250] В варианте осуществления настоящего раскрытия, предложен способ для определения порядка сканирования группы коэффициентов. Например, кодер/декодер может определять порядок сканирования для четырех групп коэффициентов, составляющих на фиг. 9(c) выше.
[251] Кодер/декодер может сканировать группы сканирования в диагональном порядке сканирования, как проиллюстрировано на фиг. 9(c) выше. Дополнительно, кодер/декодер может применять способ сканирования, описанный в Примерах 1 и 2 выше, при определении порядка сканирования между группами коэффициентов и применять порядок сканирования, имеющий произвольный порядок.
[252] Фиг. 18 представляет собой диаграмму, иллюстрирующую способ для определения порядка сканирования для групп коэффициентов в качестве варианта осуществления, к которому применяется настоящее раскрытие.
[253] Со ссылкой на фиг. 18, кодер/декодер может быть сконфигурирован, чтобы аналогично использовать порядок сканирования для группы коэффициентов и порядок сканирования для коэффициентов в группе коэффициентов, или сконфигурирован, чтобы отдельно использовать соответственные порядки сканирования.
[254] В качестве одного примера, со ссылкой на фиг. 18(a), кодер/декодер может разделять группу коэффициентов на блоки, имеющие размер 4×2, применять порядок сканирования, сгенерированный с использованием Таблицы 2, описанной выше, между группами коэффициентов и применять порядок сканирования, сгенерированный с использованием Таблицы 1, описанной выше, в каждой группе коэффициентов.
[255] В качестве другого примера, со ссылкой на фиг. 18(b), кодер/декодер может группировать разделенные коэффициенты на блоки, имеющие размер 2×4, и применять порядок сканирования, сгенерированный с использованием Таблицы 2, описанной выше, аналогично порядку сканирования между группами коэффициентов и порядок сканирования между коэффициентами в группе коэффициентов.
[256] В качестве еще одного другого примера, со ссылкой на фиг. 18(c), кодер/декодер может группировать разделенные коэффициенты на блоки, имеющие размер 2×4, применять порядок сканирования, сгенерированный с использованием Таблицы 2, описанной выше, между группами коэффициентов и применять порядок сканирования, сгенерированный с использованием Таблицы 3, описанной выше, в каждой группе коэффициентов.
[257]
[258] Фиг. 19 иллюстрирует способ для кодирования изображения в соответствии с вариантом осуществления настоящего раскрытия.
[259] Кодер выполняет преобразование и квантование для остаточного сигнала текущего блока обработки, чтобы сгенерировать квантованный блок преобразования (S1901). Этап S1901 может выполняться аналогично этапам S501 и S502, описанным на фиг. 5 выше.
[260] Кодер разделяет квантованный блок преобразования на множество групп коэффициентов (S1902).
[261] Как описано выше на фиг. 9 и 10, кодер может рекурсивно (или иерархически) разделять текущий блок обработки, чтобы сканировать коэффициент преобразования. Например, разделение квантованного блока преобразования на множество групп коэффициентов может включать в себя иерархическое разделение квантованного блока преобразования, и разделение квантованного блока преобразования на группы коэффициентов, имеющие более низкую глубину и второй порядок сканирования, может включать в себя порядок сканирования среди групп коэффициентов, имеющих соответственные глубины, разделенные из квантованного блока преобразования.
[262] Дополнительно, как описано на фиг. 16 и 17 выше, кодер может группировать коэффициенты в единицы конкретного числа коэффициентов и затем сканировать коэффициенты путем применения различных порядков сканирования. То есть, когда квантованный блок преобразования представляет собой неквадратный блок, квантованный блок преобразования может разделяться на группы коэффициентов, образованные конкретным числом коэффициентов, и конкретное число может определяться в соответствии с соотношением ширины и высоты квантованного блока преобразования.
[263] Кодер определяет первый порядок сканирования, представляющий порядок сканирования между коэффициентами группы коэффициентов (S1903).
[264] Кодер может определять первый порядок сканирования путем применения способов, описанных на фиг. 12-18 выше. Например, этап S1903 может включать в себя определение значения расстояния соответственных коэффициентов группы коэффициентов на основе верхнего левого коэффициента группы коэффициентов и распределение индекса сканирования по коэффициентам, имеющим одно и то же значение расстояния, в соответствии с предопределенным порядком во время последовательного повышения значения расстояния.
[265] Дополнительно, как описано на фиг. 14 и 15 выше, кодер может распределять порядок сканирования по коэффициентам в соответственных положениях в неквадратном блоке, чтобы эффективно отражать скорость повышения частоты в горизонтальном направлении или вертикальном направлении. Например, определение значения расстояния соответственных коэффициентов группы коэффициентов может включать в себя определение горизонтального приращения, представляющего величину увеличения значения координаты в горизонтальном направлении каждого коэффициента, и вертикального приращения, представляющего величину увеличения значения координаты в вертикальном направлении, на основе отношения ширины и высоты группы коэффициентов, и значение расстояния соответственных коэффициентов может определяться с использованием значения, получаемого суммированием горизонтального приращения и вертикального приращения.
[266] Дополнительно, когда ширина группы коэффициентов больше, чем высота, горизонтальное приращение может определяться как 1 и вертикальное приращение может определяться как 2, и когда высота группы коэффициентов больше, чем ширина, горизонтальное приращение может определяться как 2 и вертикальное приращение может определяться как 2.
[267] Первый порядок сканирования может быть предварительно определен (или сконфигурирован) кодером, и кодер может передавать первый порядок сканирования на декодер в единицах картинки, сегмента, CTU, единицы кодирования или единицы преобразования.
[268] Дополнительно, кодер может определять второй порядок сканирования, представляющий порядок сканирования среди множества групп коэффициентов. В этом случае, этап S1903 может включать в себя определение второго порядка сканирования, и кодер может определять второй порядок сканирования путем применения способов, описанных на фиг. 12-18 выше. Второй порядок сканирования может быть предварительно определен (или сконфигурирован) кодером, и кодер может передавать второй порядок сканирования на декодер в единицах картинки, сегмента, CTU, единицы кодирования или единицы преобразования.
[269] Кодер энтропийно кодирует коэффициенты квантованного блока преобразования в соответствии с первым порядком сканирования и вторым порядком сканирования, представляющим порядок сканирования среди множества групп коэффициентов (S1904).
[270] Фиг. 20 иллюстрирует способ для декодирования изображения в соответствии с вариантом осуществления настоящего раскрытия.
[271] Декодер разделяет текущий блок обработки на множество групп коэффициентов (S2001).
[272] Как описано выше на фиг. 9 и 10, декодер может рекурсивно (или иерархически) разделять текущий блок обработки, чтобы сканировать коэффициент преобразования. Например, разделение текущего блока обработки на множество групп коэффициентов может включать в себя иерархическое разделение текущего блока обработки, и разделение текущего блока обработки на группы коэффициентов, имеющие более низкую глубину, и второй порядок сканирования может включать в себя порядок сканирования среди групп коэффициентов, имеющих соответственные глубины, разделенные из текущего блока обработки.
[273] Дополнительно, как описано на фиг. 16 и 17 выше, декодер может группировать коэффициенты в единицы конкретного числа коэффициентов и затем сканировать коэффициенты путем применения различных порядков сканирования. То есть, когда текущий блок обработки представляет собой неквадратный блок, текущий блок обработки может разделяться на группы коэффициентов, образованные конкретным числом коэффициентов, и конкретное число может определяться в соответствии с отношением ширины и высоты текущего блока обработки.
[274] Декодер определяет первый порядок сканирования, представляющий порядок сканирования между коэффициентами группы коэффициентов (S2002).
[275] Декодер может определять первый порядок сканирования путем применения способов, описанных на фиг. 12-18 выше. Например, этап S2002 может включать в себя определение значения расстояния соответственных коэффициентов группы коэффициентов на основе верхнего левого коэффициента группы коэффициентов и распределение индекса сканирования по коэффициентам, имеющим одно и то же значение расстояния, в соответствии с предопределенным порядком во время последовательного повышения значения расстояния.
[276] Дополнительно, как описано на фиг. 14 и 15 выше, декодер может распределять порядок сканирования по коэффициентам в соответственных положениях в неквадратном блоке, чтобы эффективно отражать скорость повышения частоты в горизонтальном направлении или вертикальном направлении. Например, определение значения расстояния соответственных коэффициентов группы коэффициентов может включать в себя определение горизонтального приращения, представляющего величину увеличения значения координаты в горизонтальном направлении каждого коэффициента, и вертикального приращения, представляющего величину увеличения значения координаты в вертикальном направлении, на основе отношения ширины и высоты группы коэффициентов, и значение расстояния соответственных коэффициентов может определяться с использованием значения, полученного суммированием горизонтального приращения и вертикального приращения.
[277] Дополнительно, когда ширина группы коэффициентов больше, чем высота, горизонтальное приращение может определяться как 1 и вертикальное приращение может определяться как 2, и когда высота группы коэффициентов больше, чем ширина, горизонтальное приращение может определяться как 2 и вертикальное приращение может определяться как 2.
[278] Первый порядок сканирования может быть предварительно определен (или сконфигурирован) декодером, и декодер может передавать первый порядок сканирования на декодер в единицах картинки, сегмента, CTU, единицы кодирования или единицы преобразования.
[279] Дополнительно, декодер может определять второй порядок сканирования, представляющий порядок сканирования среди множества групп коэффициентов. В этом случае, этап S2002 может включать в себя определение второго порядка сканирования, и декодер может определять второй порядок сканирования путем применения способов, описанных на фиг. 12-18 выше. Второй порядок сканирования может быть предварительно определен (или сконфигурирован) декодером и может передаваться от кодера на декодер в единицах картинки, сегмента, CTU, единицы кодирования или единицы преобразования.
[280] Декодер энтропийно декодирует поток битов, выведенный из кодера, чтобы генерировать квантованный коэффициент преобразования (S2003). Этап S2003 может выполняться аналогично этапу S601, описанному на фиг. 6 выше.
[281] Декодер упорядочивает коэффициенты квантованного блока преобразования в соответствии с первым порядком сканирования и вторым порядком сканирования, представляющим порядок сканирования среди множества групп коэффициентов, чтобы генерировать квантованный блок преобразования текущего блока обработки (S2004).
[282] Кроме того, декодер может получать блок преобразования путем деквантования квантованного блока преобразования. Способ деквантования может применять известный метод, и его подробное описание будет опущено. В способе декодирования изображения в соответствии с вариантом осуществления, описанным выше, некоторые этапы могут опускаться или добавляться, и способ декодирования изображения не ограничен даже в описанном порядке. Дополнительно, этапы S2003 и S2004 могут выполняться отдельно или выполняться одновременно.
[283] Фиг. 21 иллюстрирует устройство для декодирования изображения в соответствии с вариантом осуществления настоящего раскрытия.
[284] На фиг. 21, для удобства описания, модуль 2101 разделения группы коэффициентов, модуль 2102 определения порядка сканирования, модуль 2103 генерирования коэффициентов преобразования и модуль 2104 генерирования блока преобразования проиллюстрированы как отдельные блоки, но модуль 2101 разделения группы коэффициентов, модуль 2102 определения порядка сканирования, модуль 2103 генерирования коэффициентов преобразования и модуль 2104 генерирования блока преобразования могут быть реализованы как компоненты, включенные в кодер и/или декодер.
[285] Со ссылкой на фиг. 21, устройство для декодирования изображения в соответствии с вариантом осуществления реализует функции, процедуры и/или способы, предложенные на фиг. 5-20 выше, и дополнительно, выполняет процессы масштабирования и преобразования, которые будут описаны ниже. Конкретно, устройство декодирования может быть сконфигурировано, чтобы включать в себя модуль 2101 разделения группы коэффициентов, модуль 2102 определения порядка сканирования, модуль 2103 генерирования коэффициентов преобразования и модуль 2104 генерирования блока преобразования.
[286] Подробные компоненты устройства для декодирования изображения, которые проиллюстрированы на фиг. 21, представляют собой только один пример, и некоторые из проиллюстрированных подробных компонентов, могут быть включены в другой подробный компонент и реализованы вместе, и другой компонент, который не проиллюстрирован, может быть добавлен и реализован вместе.
[287] Модуль 2101 разделения группы коэффициентов разделяет текущий блок обработки на множество групп коэффициентов.
[288] Как описано выше на фиг. 9 и 10, модуль 2101 разделения группы коэффициентов может рекурсивно (или иерархически) разделять текущий блок обработки, чтобы сканировать коэффициент преобразования. Например, модуль 2101 разделения группы коэффициентов иерархически разделяет текущий блок обработки, чтобы разделить текущий блок обработки на группы коэффициентов, имеющие более низкую глубину, и второй порядок сканирования может включать в себя порядок сканирования среди групп коэффициентов, имеющих соответственные глубины, разделенные из текущего блока обработки.
[289] Дополнительно, как описано на фиг. 16 и 17 выше, модуль 2101 разделения группы коэффициентов может группировать коэффициенты в единицы из конкретного числа коэффициентов и затем сканировать коэффициенты путем применения различных порядков сканирования. То есть, когда текущий блок обработки представляет собой неквадратный блок, текущий блок обработки может разделяться на группы коэффициентов, образованные конкретным числом коэффициентов, и конкретное число может определяться в соответствии с отношением ширины и высоты текущего блока обработки.
[290] Модуль 2102 определения порядка сканирования определяет первый порядок сканирования, представляющий порядок сканирования между коэффициентами группы коэффициентов.
[291] Модуль 2102 определения порядка сканирования может определять первый порядок сканирования путем применения способов, описанных на фиг. 12-18 выше. Например, модуль 2102 определения порядка сканирования может определять значение расстояния соответственных коэффициентов группы коэффициентов на основе верхнего левого коэффициента группы коэффициентов и распределять индекс сканирования по коэффициентам, имеющим то же самое значение расстояния, в соответствии с предопределенным порядком при последовательном увеличении значения расстояния.
[292] Дополнительно, как описано на фиг. 14 и 15 выше, модуль 2103 определения порядка сканирования может распределять порядок сканирования по коэффициентам в соответственных положениях в неквадратном блоке, чтобы эффективно отображать скорость повышения частоты в горизонтальном направлении или вертикальном направлении. Например, модуль 2102 определения порядка сканирования может определять горизонтальное приращение, представляющее величину увеличения значения координаты в горизонтальном направлении каждого коэффициента, и вертикальное приращение, представляющее величину увеличения значения координаты в вертикальном направлении, на основе отношения ширины и высоты группы коэффициентов, и значение расстояния соответственных коэффициентов может определяться с использованием значения, полученного суммированием горизонтального приращения и вертикального приращения.
[293] Дополнительно, когда ширина группы коэффициентов больше, чем высота, горизонтальное приращение может определяться как 1 и вертикальное приращение может определяться как 2, и когда высота группы коэффициентов больше, чем ширина, горизонтальное приращение может определяться как 2 и вертикальное приращение может определяться как 2.
[294] Первый порядок сканирования может быть предварительно определен (или сконфигурирован) декодером, и кодер может передавать первый порядок сканирования на декодер в единицах картинки, сегмента, CTU, единицы кодирования или единицы преобразования.
[295] Дополнительно, модуль 2102 определения порядка сканирования может определять второй порядок сканирования, представляющий порядок сканирования среди множества групп коэффициентов. Другими словами, модуль 2102 определения порядка сканирования может включать в себя определение второго порядка сканирования, и модуль 2102 определения порядка сканирования может определять второй порядок сканирования путем применения способов, описанных на фиг. 12-18 выше. Дополнительно, второй порядок сканирования может быть предварительно определен (или сконфигурирован) декодером и может передаваться от кодера на декодер в единицах картинки, сегмента, CTU, единицы кодирования или единицы преобразования.
[296] Модуль 2103 генерирования коэффициентов преобразования энтропийно декодирует поток битов, выведенный из кодера, чтобы сгенерировать квантованный коэффициент преобразования. В этом случае, может применяться тот же самый способ, что и этап S601, описанный на фиг. 6.
[297] Модуль 2104 генерирования блока преобразования упорядочивает коэффициенты квантованного блока преобразования в соответствии с первым порядком сканирования и вторым порядком сканирования, представляющим порядок сканирования среди множества групп коэффициентов, чтобы сгенерировать квантованный блок преобразования текущего блока обработки.
[296] В вариантах осуществления, описанных выше, компоненты и признаки настоящего раскрытия комбинируются в предопределенной форме. Каждый компонент или признак должен рассматриваться в качестве опции, если явно не указано иное. Каждый компонент или признак может быть реализован как не ассоциированный с другими компонентами или признаками. Дополнительно, вариант осуществления настоящего раскрытия может быть сконфигурирован посредством ассоциации некоторых компонентов и/или признаков. Порядок операций, описанный в вариантах осуществления настоящего раскрытия, может изменяться. Некоторые компоненты или признаки любого варианта осуществления могут быть включены в другой вариант осуществления или заменены компонентом и признаком, соответствующим другому варианту осуществления. Очевидно, что пункты, которые не цитированы явным образом в формуле изобретения, могут комбинироваться, чтобы образовывать вариант осуществления, или могут быть включены в новый пункт посредством изменения после подачи заявки.
[299] Варианты осуществления настоящего раскрытия могут быть реализованы посредством аппаратных средств, прошивки, программного обеспечения или их комбинации. В случае реализации посредством аппаратных средств, в соответствии с реализацией в аппаратных средствах, примерный вариант осуществления, описанный в настоящем документе, может быть реализован с использованием одной или нескольких специализированных интегральных схем (ASIC), цифровых сигнальных процессоров (DSP), устройств обработки цифровых сигналов (DSPDs), программируемых логических устройств (PLD), программируемых вентильных матриц (FPGA), процессоров, контроллеров, микроконтроллеров, микропроцессоров и тому подобного.
[300] В случае реализации посредством прошивки или программного обеспечения, вариант осуществления настоящего раскрытия может быть реализован в форме модуля, процедуры, функции и тому подобного, чтобы выполнять функции или операции, описанные выше. Код программного обеспечения может храниться в памяти и исполняться процессором. Память может находиться внутри или вне процессора и может передавать и принимать данные на/от процессора посредством различных известных средств.
[301] Специалистам в данной области техники очевидно, что настоящее раскрытие может быть воплощено в других конкретных формах без отклонения от существенных характеристик настоящего раскрытия. Соответственно, приведенное выше подробное описание не должно пониматься как ограничительное в любом аспекте и должно рассматриваться только как иллюстративное. Объем настоящего изобретения должен определяться разумной интерпретацией прилагаемой формулы изобретения, и все изменения в пределах объема эквивалентности настоящего раскрытия должны быть включены в объем настоящего раскрытия.
Промышленная применимость
[302] Как описано выше, предпочтительные варианты осуществления настоящего раскрытия раскрыты с иллюстративной целью, и модификации, изменения, замены или дополнения различных других вариантов осуществления могут осуществляться специалистами в данной области техники в пределах технической сущности и технического объема настоящего раскрытия, раскрытого в прилагаемой формуле изобретения.
Изобретение относится к вычислительной технике. Технический результат заключается в уменьшении объема данных, требуемых для кодирования коэффициента преобразования. Способ для кодирования изображения, содержащий генерирование блока преобразования путем выполнения преобразования и квантования текущего блока обработки; разделение блока преобразования на подблоки, основываясь на том, что блок преобразования является неквадратным блоком, при этом подблок включает в себя неквадратный подблок; и энтропийное кодирование коэффициентов блока преобразования, основываясь на первом порядке сканирования и втором порядке сканирования, при этом первый порядок сканирования представляет собой порядок сканирования между коэффициентами группы коэффициентов неквадратного подблока, при этом второй порядок сканирования представляет собой порядок сканирования между подблоками, и при этом количество коэффициентов неквадратного блока определяется на основе ширины и высоты текущего блока обработки. 3 н. и 10 з.п. ф-лы, 3 табл., 21 ил.
1. Способ для кодирования изображения, причем способ содержит:
генерирование блока преобразования путем выполнения преобразования и квантования текущего блока обработки;
разделение блока преобразования на подблоки, основываясь на том, что блок преобразования является неквадратным блоком, при этом подблок включает в себя неквадратный подблок;
и
энтропийное кодирование коэффициентов блока преобразования, основываясь на первом порядке сканирования и втором порядке сканирования,
при этом первый порядок сканирования представляет собой порядок сканирования между коэффициентами группы коэффициентов неквадратного подблока,
при этом второй порядок сканирования представляет собой порядок сканирования между подблоками, и
при этом количество коэффициентов неквадратного блока определяется на основе ширины и высоты текущего блока обработки.
2. Способ для кодирования изображения по п. 1, в котором первый порядок сканирования определяется на основании этапов, содержащих:
определение значения расстояния коэффициентов в неквадратном подблоке на основе положения левого верхнего коэффициента неквадратного подблока, и
распределение индекса сканирования по коэффициентам, имеющим то же самое значение расстояния, в соответствии с предопределенным порядком при последовательном увеличении значения расстояния.
3. Способ для кодирования изображения по п. 2, в котором этап определения значения расстояния коэффициентов в неквадратном подблоке содержит:
определение горизонтального приращения, представляющего величину увеличения значения координаты в горизонтальном направлении каждого коэффициента, и вертикального приращения, представляющего величину увеличения значения координаты в вертикальном направлении, на основе отношения ширины и высоты неквадратного подблока,
причем значение расстояния коэффициентов определяется значением, получаемым суммированием горизонтального приращения и вертикального приращения.
4. Способ для кодирования изображения по п. 3, в котором, основываясь на том, что ширина неквадратного подблока больше, чем высота, горизонтальное приращение определяется как 1 и вертикальное приращение определяется как 2, и
при этом, основываясь на том, что высота неквадратного подблока больше, чем ширина, горизонтальное приращение определяется как 2 и вертикальное приращение определяется как 1.
5. Способ для кодирования изображения по п. 1, в котором этап разделения блока преобразования на подблоки включает в себя иерархическое разделение блока преобразования и разделение разделенных блоков преобразования на подблоки, имеющие более низкую глубину, и
причем второй порядок сканирования включает в себя порядок сканирования среди подблоков, имеющих соответственные глубины, из блока преобразования.
6. Способ для кодирования изображения по п. 1, в котором, основываясь на том, что блок преобразования представляет собой неквадратный блок, квантованный блок преобразования разделяется на подблоки, причем подблоки имеют конкретное число коэффициентов, и
причем конкретное число определяется на основании отношения ширины и высоты блока преобразования.
7. Способ для декодирования изображения, причем способ содержит:
разделение текущего блока обработки на подблоки, основываясь на том, что текущий блок обработки является неквадратным блоком, причем подблок включает в себя неквадратный подблок; и
получение блока преобразования для текущего блока обработки, на основании первого порядка сканирования и второго порядка сканирования,
при этом первый порядок сканирования представляет собой порядок сканирования между коэффициентами группы коэффициентов неквадратного подблока,
при этом второй порядок сканирования представляет собой порядок сканирования между подблоками, и
при этом количество коэффициентов неквадратного блока определяется на основе ширины и высоты текущего блока обработки.
8. Способ по п. 7, в котором первый порядок сканирования определяется на основании этапов, содержащих:
определение значения расстояния коэффициентов в неквадратном подблоке на основе положения левого верхнего коэффициента неквадратного подблока, и
распределение индекса сканирования по коэффициентам, имеющим то же самое значение расстояния, в соответствии с предопределенным порядком при последовательном увеличении значения расстояния.
9. Способ для декодирования изображения по п. 8, в котором этап определения значения расстояния коэффициентов в неквадратном подблоке содержит:
определение горизонтального приращения, представляющего величину увеличения значения координаты в горизонтальном направлении каждого коэффициента, и вертикального приращения, представляющего величину увеличения значения координаты в вертикальном направлении, на основе отношения ширины и высоты неквадратного подблока,
причем значение расстояния коэффициентов определяется посредством значения, получаемого посредством суммирования горизонтального приращения и вертикального приращения.
10. Способ для декодирования изображения по п. 9, в котором, основываясь на том, что ширина группы неквадратного подблока больше, чем высота, горизонтальное приращение определяется как 1 и вертикальное приращение определяется как 2, и
при этом, основываясь на том, что высота неквадратного подблока больше, чем ширина, горизонтальное приращение определяется как 2 и вертикальное приращение определяется как 1.
11. Способ для декодирования изображения по п. 7, в котором этап разделения текущего блока обработки на подблоки содержит:
иерархическое разделение текущего блока обработки и разделение разделенного текущего блока обработки на подблоки, имеющие более низкую глубину, и
причем второй порядок сканирования включает в себя порядок сканирования среди подблоков, имеющих соответственные глубины, из текущего блока обработки.
12. Способ для декодирования изображения по п. 7, в котором, основываясь на том, что текущий блок обработки представляет собой неквадратный блок, текущий блок обработки разделяется на подблоки, причем подблоки имеют конкретное число коэффициентов, и
причем конкретное число определяется на основании отношения ширины и высоты текущего блока обработки.
13. Устройство для декодирования изображения, причем устройство содержит:
процессор, сконфигурированный для
разделения текущего блока обработки на подблоки, основываясь на том, что текущий блок обработки является неквадратным блоком, причем подблок включает в себя неквадратный подблок; и
получения блока преобразования для текущего блока обработки, на основании первого порядка сканирования и второго порядка сканирования,
при этом первый порядок сканирования представляет собой порядок сканирования между коэффициентами группы коэффициентов неквадратного подблока,
при этом второй порядок сканирования представляет собой порядок сканирования между подблоками, и
при этом количество коэффициентов неквадратного блока определяется на основе ширины и высоты текущего блока обработки.
C | |||
AUYEUNG "Additional horizontal and vertical scan for transform coefficients", JCTVC-J0281 (version 1), опубл | |||
Переносная печь для варки пищи и отопления в окопах, походных помещениях и т.п. | 1921 |
|
SU3A1 |
Токарный резец | 1924 |
|
SU2016A1 |
Многоступенчатая активно-реактивная турбина | 1924 |
|
SU2013A1 |
US |
Авторы
Даты
2021-04-19—Публикация
2018-03-13—Подача