СПОСОБ ОБНОВЛЕНИЯ ПАРАМЕТРОВ ДЛЯ ЭНТРОПИЙНОГО КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ УРОВНЯ КОЭФФИЦИЕНТОВ ПРЕОБРАЗОВАНИЯ, А ТАКЖЕ УСТРОЙСТВО ЭНТРОПИЙНОГО КОДИРОВАНИЯ И УСТРОЙСТВО ЭНТРОПИЙНОГО ДЕКОДИРОВАНИЯ УРОВНЯ КОЭФФИЦИЕНТОВ ПРЕОБРАЗОВАНИЯ С ЕГО ИСПОЛЬЗОВАНИЕМ
METHOD OF UPDATING PARAMETERS FOR ENTROPY ENCODING AND DECODING OF TRANSFORMATION COEFFICIENT LEVEL, AS WELL AS DEVICE FOR ENTROPY ENCODING AND DEVICE FOR ENTROPY DECODING OF TRANSFORMATION COEFFICIENT LEVEL USING SAME

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится к кодированию и декодированию видео, а более конкретно, к способам и устройствам для обновления параметра, используемого при энтропийном кодировании и декодировании информации размера коэффициента преобразования.
УРОВЕНЬ ТЕХНИКИ
Согласно способам сжатия изображений, таким как MPEG-1, MPEG-2 или MPEG-4 H.264/MPEG-4 усовершенствованное кодирование видео (AVC), изображение разбивается на блоки, имеющие предварительно определенный размер, а затем остаточные данные блоков получаются посредством внешнего прогнозирования или внутреннего прогнозирования. Остаточные данные сжимаются посредством преобразования, квантования, сканирования, кодирования по длинам серий и энтропийного кодирования. При энтропийном кодировании, элемент синтаксиса, такой как коэффициент преобразования или вектор движения, энтропийно кодируется для того, чтобы выводить поток битов. На стороне декодера элемент синтаксиса извлекается из потока битов, и декодирование выполняется на основе извлеченного элемента синтаксиса.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
ТЕХНИЧЕСКАЯ ЗАДАЧА
Настоящее изобретение предоставляет способ обновления параметра, посредством которого резкое изменение параметра, используемого при энтропийном кодировании и декодировании уровня коэффициентов преобразования, является постепенно варьируемым при предотвращении резкого изменения упомянутого параметра.
Настоящее изобретение также предоставляет способ обновления параметра, используемого при преобразовании в двоичную форму элемента синтаксиса, такого как уровень коэффициентов преобразования, посредством использования способа преобразования в двоичную форму, к примеру, способа на основе кода Голомба-Райса или способа на основе конкатенированного кода.
ТЕХНИЧЕСКОЕ РЕШЕНИЕ
Согласно вариантам осуществления настоящего изобретения, предоставляется способ обновления параметров, в котором постепенно обновляется параметр, используемый при преобразовании в двоичную форму уровня коэффициентов преобразования.
ПРЕИМУЩЕСТВА ИЗОБРЕТЕНИЯ
Согласно вариантам осуществления настоящего изобретения, посредством постепенного варьирования параметра, используемого при энтропийном кодировании информации уровня коэффициента преобразования, может быть уменьшено число битов, сформированных в ходе кодирования, и может повышаться усиление изображения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1 является блок-схемой устройства для кодирования видео согласно варианту осуществления настоящего изобретения;
Фиг. 2 является блок-схемой устройства для декодирования видео согласно варианту осуществления настоящего изобретения;
Фиг. 3 является схемой для описания принципа единиц кодирования согласно варианту осуществления настоящего изобретения;
Фиг. 4 является блок-схемой видеокодера на основе единиц кодирования, имеющих иерархическую структуру, согласно варианту осуществления настоящего изобретения;
Фиг. 5 является блок-схемой видеодекодера на основе единиц кодирования, имеющих иерархическую структуру, согласно варианту осуществления настоящего изобретения;
Фиг. 6 является схемой, иллюстрирующей более глубокие единицы кодирования согласно глубинам и сегменты согласно варианту осуществления настоящего изобретения;
Фиг. 7 является схемой для описания взаимосвязи между единицей кодирования и единицами преобразования, согласно варианту осуществления настоящего изобретения;
Фиг. 8 является схемой для описания информации кодирования единиц кодирования, соответствующих кодированной глубине, согласно варианту осуществления настоящего изобретения;
Фиг. 9 является схемой более глубоких единиц кодирования согласно глубинам, согласно варианту осуществления настоящего изобретения;
Фиг. 10-12 являются схемами для описания взаимосвязи между единицами кодирования, единицами прогнозирования и единицами преобразования частоты, согласно варианту осуществления настоящего изобретения;
Фиг. 13 является схемой для описания взаимосвязи между единицей кодирования, единицей прогнозирования и единицей преобразования, согласно информации режима кодирования по таблице 1;
Фиг. 14 является блок-схемой последовательности операций способа, иллюстрирующей операцию энтропийного кодирования и декодирования информации коэффициентов преобразования, включенной в единицу преобразования, согласно варианту осуществления настоящего изобретения;
Фиг. 15 иллюстрирует единицу преобразования, которая энтропийно кодируется согласно варианту осуществления настоящего изобретения;
Фиг. 16 иллюстрирует карту значимости, соответствующую единице преобразования по фиг. 15 согласно варианту осуществления настоящего изобретения;
Фиг. 17 иллюстрирует coeff_abs_level_greater1_flag, соответствующий единице преобразования 4×4 по фиг. 15;
Фиг. 18 иллюстрирует coeff_abs_level_greater2_flag, соответствующий единице преобразования 4×4 по фиг. 15;
Фиг. 19 иллюстрирует coeff_abs_level_remaining, соответствующий единице преобразования 4×4 по фиг. 15;
Фиг. 20 иллюстрирует таблицу, показывающую элементы синтаксиса, связанные с единицами преобразования, проиллюстрированными на фиг. 15-19;
Фиг. 21 иллюстрирует другой пример coeff_abs_level_remaining, который преобразуется в двоичную форму согласно варианту осуществления настоящего изобретения;
Фиг. 22 является блок-схемой, иллюстрирующей структуру устройства энтропийного кодирования согласно варианту осуществления настоящего изобретения;
Фиг. 23 является блок-схемой, иллюстрирующей структуру устройства преобразования в двоичную форму согласно варианту осуществления настоящего изобретения;
Фиг. 24 является блок-схемой последовательности операций, иллюстрирующей способ энтропийного кодирования элементов синтаксиса, указывающих уровень коэффициентов преобразования, согласно варианту осуществления настоящего изобретения;
Фиг. 25 является блок-схемой, иллюстрирующей устройство энтропийного декодирования согласно варианту осуществления настоящего изобретения;
Фиг. 26 является блок-схемой, иллюстрирующей структуру устройства отмены преобразования в двоичную форму согласно варианту осуществления настоящего изобретения; и
Фиг. 27 является блок-схемой последовательности операций, иллюстрирующей способ энтропийного декодирования уровня коэффициентов преобразования согласно варианту осуществления настоящего изобретения.
ОПТИМАЛЬНЫЙ РЕЖИМ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
Согласно аспекту настоящего изобретения, предусмотрен способ обновления параметра для энтропийного декодирования уровня коэффициентов преобразования, при этом способ содержит: синтаксический анализ элементов синтаксиса уровня коэффициентов преобразования, указывающих размеры коэффициентов преобразования, включенных в единицу преобразования, из потока битов; определение того, следует или нет заменять на новый предыдущий параметр, посредством сравнения размера предыдущего коэффициента преобразования, который восстанавливается перед текущим коэффициентом преобразования, с предварительно определенным критическим значением, полученным на основе предыдущего параметра, который используется при отмене преобразования в двоичную форму элемента синтаксиса уровня предыдущих коэффициентов преобразования, указывающего размер предыдущего коэффициента преобразования; получение параметра, используемого при отмене преобразования в двоичную форму элемента синтаксиса уровня текущих коэффициентов преобразования, указывающего размер текущего коэффициента преобразования, посредством замены на новый или поддержания предыдущего параметра на основе результата определения; и получение размера текущего коэффициента преобразования посредством отмены преобразования в двоичную форму элемента синтаксиса уровня текущих коэффициентов преобразования посредством использования полученного параметра, при этом предварительно определенное критическое значение устанавливается с возможностью иметь значение, пропорциональное предыдущему параметру, и когда предыдущий параметр заменяется на новый, замененный на новый параметр имеет значение, которое постепенно увеличивается по сравнению с предыдущим параметром.
Согласно другому аспекту настоящего изобретения, предусмотрено устройство для энтропийного декодирования уровня коэффициентов преобразования, причем устройство содержит: модуль синтаксического анализа, который синтаксически анализирует элементы синтаксиса уровня коэффициентов преобразования, указывающие размеры коэффициентов преобразования, включенных в единицу преобразования, из потока битов; модуль определения параметров, который определяет то, следует или нет заменять на новый предыдущий параметр, посредством сравнения размера предыдущего коэффициента преобразования, который восстанавливается перед текущим коэффициентом преобразования, с предварительно определенным критическим значением, полученным на основе предыдущего параметра, который используется при отмене преобразования в двоичную форму элемента синтаксиса уровня предыдущих коэффициентов преобразования, указывающего размер предыдущего коэффициента преобразования, и который получает параметр, используемый при отмене преобразования в двоичную форму элемента синтаксиса уровня текущих коэффициентов преобразования, указывающего размер текущего коэффициента преобразования, посредством замены на новый или поддержания предыдущего параметра на основе результата определения; модуль восстановления элементов синтаксиса, который получает размер текущего коэффициента преобразования посредством отмены преобразования в двоичную форму элемента синтаксиса уровня текущих коэффициентов преобразования посредством использования полученного параметра, при этом предварительно определенное критическое значение устанавливается с возможностью иметь значение, пропорциональное предыдущему параметру, и когда предыдущий параметр заменяется на новый, замененный на новый параметр имеет значение, которое постепенно увеличивается по сравнению с предыдущим параметром.
Согласно другому аспекту настоящего изобретения, предусмотрен способ обновления параметра для энтропийного кодирования уровня коэффициентов преобразования, при этом способ содержит: получение, в предварительно определенном порядке сканирования, элементов синтаксиса уровня коэффициентов преобразования, указывающих размеры коэффициентов преобразования, включенных в единицу преобразования; определение того, следует или нет заменять на новый предыдущий параметр, посредством сравнения размера предыдущего коэффициента преобразования, который кодируется перед текущим коэффициентом преобразования, с предварительно определенным критическим значением, полученным на основе предыдущего параметра, который используется при преобразовании в двоичную форму элемента синтаксиса уровня предыдущих коэффициентов преобразования, указывающего размер предыдущего коэффициента преобразования; получение параметра, используемого при преобразовании в двоичную форму элемента синтаксиса уровня текущих коэффициентов преобразования, указывающего размер текущего коэффициента преобразования, посредством замены на новый или поддержания предыдущего параметра на основе результата определения; и вывод битовой строки, соответствующей элементу синтаксиса уровня коэффициентов преобразования текущего коэффициента преобразования, посредством преобразования в двоичную форму элемента синтаксиса уровня коэффициентов преобразования текущего коэффициента преобразования посредством использования полученного параметра, при этом предварительно определенное критическое значение устанавливается с возможностью иметь значение, пропорциональное предыдущему параметру, и когда предыдущий параметр заменяется на новый, замененный на новый параметр имеет значение, которое постепенно увеличивается по сравнению с предыдущим параметром.
Согласно другому аспекту настоящего изобретения, предусмотрено устройство для энтропийного кодирования уровня коэффициентов преобразования, причем устройство содержит: модуль определения параметров, который получает, в предварительно определенном порядке сканирования, элементы синтаксиса уровня коэффициентов преобразования, указывающие размеры коэффициентов преобразования, включенных в единицу преобразования, определяет то, следует или нет заменять на новый предыдущий параметр, посредством сравнения размера предыдущего коэффициента преобразования, который кодируется перед текущим коэффициентом преобразования, с предварительно определенным критическим значением, полученным на основе предыдущего параметра, который используется при преобразовании в двоичную форму элемента синтаксиса уровня предыдущих коэффициентов преобразования, указывающего размер предыдущего коэффициента преобразования, и получает параметр, используемый при преобразовании в двоичную форму элемента синтаксиса уровня текущих коэффициентов преобразования, указывающего размер текущего коэффициента преобразования, посредством замены на новый или поддержания предыдущего параметра на основе результата определения; модуль формирования битовых строк, который выводит битовые строки, соответствующие элементу синтаксиса уровня коэффициентов преобразования текущего коэффициента преобразования, посредством преобразования в двоичную форму элементов синтаксиса уровня коэффициентов преобразования текущего коэффициента преобразования посредством использования полученного параметра, при этом предварительно определенное критическое значение устанавливается с возможностью иметь значение, пропорциональное предыдущему параметру, и когда предыдущий параметр заменяется на новый, замененный на новый параметр имеет значение, которое постепенно увеличивается по сравнению с предыдущим параметром.
ОПТИМАЛЬНЫЙ РЕЖИМ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
В дальнейшем в этом документе описываются способ и устройство для обновления параметра, используемого при энтропийном кодировании и декодировании информации размера единицы преобразования согласно варианту осуществления настоящего изобретения, со ссылкой на фиг. 1-13. Помимо этого, подробно описывается способ энтропийного кодирования и декодирования элемента синтаксиса, полученного посредством использования способа энтропийного кодирования и декодирования видео, описанного со ссылкой на фиг. 1-13, со ссылкой на фиг. 14-29. Такие выражения, как "по меньшей мере, один из", когда предваряют список элементов, модифицируют весь список элементов и не модифицируют отдельные элементы списка.
Фиг. 1 является блок-схемой устройства 100 кодирования видео согласно варианту осуществления настоящего изобретения.
Устройство 100 кодирования видео включает в себя иерархический кодер 110 и энтропийный кодер 120.
Иерархический кодер 110 может разбивать текущую картинку, которая должна быть кодирована, в единицах предварительно определенных единиц данных, чтобы выполнять кодирование над каждой из единиц данных. Подробно, иерархический кодер 110 может разбивать текущую картинку на основе максимальной единицы кодирования, которая представляет собой единицу кодирования максимального размера. Максимальная единица кодирования согласно варианту осуществления настоящего изобретения может представлять собой единицу данных, имеющую размер 32×32, 64×64, 128×128, 256×256 и т.д., при этом форма единицы данных представляет собой квадрат, который имеет ширину и длину в квадратах 2 и превышает 8.
Единица кодирования согласно варианту осуществления настоящего изобретения может отличаться посредством максимального размера и глубины. Глубина обозначает число раз, которое единица кодирования пространственно разбивается от максимальной единицы кодирования, и по мере того, как увеличивается глубина, более глубокие единицы кодирования согласно глубинам могут разбиваться от максимальной единицы кодирования до минимальной единицы кодирования. Глубина максимальной единицы кодирования является самой верхней глубиной, а глубина минимальной единицы кодирования является самой нижней глубиной. Поскольку размер единицы кодирования, соответствующей каждой глубине, снижается по мере того, как увеличивается глубина максимальной единицы кодирования, единица кодирования, соответствующая верхней глубине, может включать в себя множество единиц кодирования, соответствующих нижним глубинам.
Как описано выше, данные изображений для текущей картинки разбиваются на максимальные единицы кодирования согласно максимальному размеру единицы кодирования, и каждая из максимальных единиц кодирования может включать в себя более глубокие единицы кодирования, которые разбиваются согласно глубинам. Поскольку максимальная единица кодирования согласно варианту осуществления настоящего изобретения разбивается согласно глубинам, данные изображений пространственной области, включенные в максимальную единицу кодирования, могут быть иерархически классифицированы согласно глубинам.
Максимальная глубина и максимальный размер единицы кодирования, которые ограничивают общее число раз, которое иерархически разбиваются высота и ширина максимальной единицы кодирования, может быть предварительно определена.
Иерархический кодер 110 кодирует по меньшей мере одну область разбиения, полученную посредством разбиения области максимальной единицы кодирования согласно глубинам, и определяет глубину, чтобы выводить конечные кодированные данные изображений согласно по меньшей мере одной области разбиения. Другими словами, иерархический кодер 110 определяет кодированную глубину посредством кодирования данных изображений в более глубоких единицах кодирования согласно глубинам, согласно максимальной единице кодирования текущей картинки и выбора глубины, имеющей наименьшую ошибку кодирования. Определенная кодированная глубина и кодированные данные изображений согласно максимальным единицам кодирования выводятся в энтропийный кодер 120.
Данные изображений в максимальной единице кодирования кодируются на основе более глубоких единиц кодирования, соответствующих по меньшей мере одной глубине, равной или меньшей максимальной глубины, и результаты кодирования данных изображений сравниваются на основе каждой из более глубоких единиц кодирования. Глубина, имеющая наименьшую ошибку кодирования, может быть выбрана после сравнения ошибок кодирования более глубоких единиц кодирования. По меньшей мере, одна кодированная глубина может быть выбрана для каждой максимальной единицы кодирования.
Размер максимальной единицы кодирования разбивается по мере того, как единица кодирования иерархически разбивается согласно глубинам, и по мере того, как увеличивается число единиц кодирования. Кроме того, даже если единицы кодирования соответствуют идентичной глубине в одной максимальной единице кодирования, определяется то, разбивать или нет каждую из единиц кодирования, соответствующих идентичной глубине, до нижней глубины посредством измерения ошибки кодирования данных изображений каждой единицы кодирования, отдельно. Соответственно, даже когда данные изображений включаются в одну максимальную единицу кодирования, данные изображений разбиваются на области согласно глубинам, ошибки кодирования могут отличаться согласно областям в одной максимальной единице кодирования, и в силу этого кодированные глубины могут отличаться согласно областям в данных изображений. Таким образом, одна или более кодированных глубин могут быть определены в одной максимальной единице кодирования, и данные изображений максимальной единицы кодирования могут быть разделены согласно единицам кодирования по меньшей мере одной кодированной глубины.
Соответственно, иерархический кодер 110 может определять единицы кодирования, имеющие древовидную структуру, включенные в максимальную единицу кодирования. "Единицы кодирования, имеющие древовидную структуру" согласно варианту осуществления настоящего изобретения включают в себя единицы кодирования, соответствующие глубине, определенной как кодированная глубина, из всех более глубоких единиц кодирования, включенных в максимальную единицу кодирования. Единица кодирования, имеющая кодированную глубину, может быть иерархически определена согласно глубинам в идентичной области максимальной единицы кодирования и может быть независимо определена в различных областях. Аналогично, кодированная глубина в текущей области может быть независимо определена из кодированной глубины в другой области.
Максимальная глубина согласно варианту осуществления настоящего изобретения представляет собой индекс, связанный с числом раз, когда выполняется разбиение от максимальной единицы кодирования до минимальной единицы кодирования. Первая максимальная глубина согласно варианту осуществления настоящего изобретения может обозначать общее число раз, когда выполняется разбиение от максимальной единицы кодирования до минимальной единицы кодирования. Вторая максимальная глубина согласно варианту осуществления настоящего изобретения может обозначать общее число уровней глубины от максимальной единицы кодирования до минимальной единицы кодирования. Например, когда глубина максимальной единицы кодирования равна 0, глубина единицы кодирования, на которую максимальная единица кодирования разбивается один раз, может устанавливаться равной 1, а глубина единицы кодирования, на которую максимальная единица кодирования разбивается два раза, может устанавливаться равной 2. Здесь, если минимальная единица кодирования представляет собой единицу кодирования, на которую максимальная единица кодирования разбивается четыре раза, имеется пять уровней глубины с глубинами 0, 1, 2, 3 и 4, и за счет этого первая максимальная глубина может устанавливаться равной 4, а вторая максимальная глубина может устанавливаться равной 5.
Прогнозирующее кодирование и преобразование могут выполняться согласно максимальной единице кодирования. Прогнозирующее кодирование и преобразование также выполняются на основе более глубоких единиц кодирования согласно глубине, равной, или глубинам, меньшим максимальной глубины, согласно максимальной единице кодирования.
Поскольку число более глубоких единиц кодирования увеличивается каждый раз, когда максимальная единица кодирования разбивается согласно глубинам, кодирование, включающее в себя прогнозирующее кодирование и преобразование, выполняется над всеми более глубокими единицами кодирования, сформированными по мере того, как увеличивается глубина. Для удобства описания, прогнозирующее кодирование и преобразование далее описываются на основе единицы кодирования текущей глубины в максимальной единице кодирования.
Устройство 100 кодирования видео может по-разному выбирать размер или форму единицы данных для кодирования данных изображений. Чтобы кодировать данные изображений, выполняются такие операции, как прогнозирующее кодирование, преобразование и энтропийное кодирование, и в это время, идентичная единица данных может использоваться для всех операций, или различные единицы данных могут использоваться для каждой операции.
Например, устройство 100 кодирования видео может выбирать не только единицу кодирования для кодирования данных изображений, но также и единицу данных, отличающуюся от единицы кодирования, с тем чтобы выполнять прогнозирующее кодирование над данными изображений в единице кодирования.
Чтобы выполнять прогнозирующее кодирование в максимальной единице кодирования, прогнозирующее кодирование может выполняться на основе единицы кодирования, соответствующей кодированной глубине, т.е. на основе единицы кодирования, которая более не разбивается на единицы кодирования, соответствующие нижней глубине. В дальнейшем в этом документе, единица кодирования, которая более не разбивается и становится базисной единицей для прогнозирующего кодирования, далее упоминается как "единица прогнозирования". Сегмент, полученный посредством разбиения единицы прогнозирования, может включать в себя единицу данных, полученную посредством разбиения по меньшей мере одной из высоты и ширины единицы прогнозирования.
Например, когда единица кодирования в 2N×2N (где N является положительным целым числом) более не разбивается и становится единицей прогнозирования в 2N×2N, размер сегмента может составлять 2N×2N, 2N×N, N×2N или N×N. Примеры типа сегмента включают в себя симметричные сегменты, которые получаются посредством симметричного разбиения высоты или ширины единицы прогнозирования, сегменты, полученные посредством асимметричного разбиения высоты или ширины единицы прогнозирования, к примеру, 1:n или n:1, сегменты, которые получаются посредством геометрического разбиения единицы прогнозирования, и сегменты, имеющие произвольные формы.
Режим прогнозирования единицы прогнозирования может представлять собой по меньшей мере одно из внутреннего режима, внешнего режима и режима пропуска. Например, внутренний режим или внешний режим может выполняться над сегментом в 2N×2N, 2N×N, N×2N или N×N. Кроме того, режим пропуска может выполняться только над сегментом в 2N×2N. Кодирование независимо выполняется над одной единицей прогнозирования в единице кодирования, в силу этого выбирая режим прогнозирования, имеющий наименьшую ошибку кодирования.
Устройство 100 кодирования видео также может выполнять преобразование над данными изображений в единице кодирования на основе не только единицы кодирования для кодирования данных изображений, но также и на основе единицы данных, которая отличается от единицы кодирования.
Чтобы выполнять преобразование в единице кодирования, преобразование может выполняться на основе единицы данных, имеющей размер, меньший или равный единице кодирования. Например, единица данных для преобразования может включать в себя единицу данных для внутреннего режима и единицу данных для внешнего режима.
Единица данных, используемая в качестве базиса преобразования, далее упоминается как "единица преобразования". Аналогично единице кодирования, единица преобразования в единице кодирования может рекурсивно разбиваться на области меньших размеров, так что единица преобразования может быть определена независимо в единицах областей. Таким образом, остаточные данные в единице кодирования могут быть разделены согласно единице преобразования, имеющей древовидную структуру согласно глубинам преобразования.
Глубина преобразования, указывающая число раз, когда выполняется разбиение, чтобы достигать единицы преобразования посредством разбиения высоты и ширины единицы кодирования, также может устанавливаться в единице преобразования. Например, в текущей единице кодирования 2N×2N, глубина преобразования может быть равна 0, когда размер единицы преобразования составляет 2N×2N, может быть равна 1, когда размер единицы преобразования составляет N×N, и может быть равна 2, когда размер единицы преобразования составляет N/2×N/2. Иными словами, единица преобразования, имеющая древовидную структуру, также может устанавливаться согласно глубинам преобразования.
Информация кодирования согласно единицам кодирования, соответствующим кодированной глубине, требует не только информацию относительно кодированной глубины, но также и информацию, связанную с прогнозирующим кодированием и преобразованием. Соответственно, иерархический кодер 110 не только определяет кодированную глубину, имеющую наименьшую ошибку кодирования, но также и определяет тип сегмента в единице прогнозирования, режим прогнозирования согласно единицам прогнозирования и размер единицы преобразования для преобразования.
Ниже подробно описываются единицы кодирования согласно древовидной структуре в максимальной единице кодирования и способ определения сегмента согласно вариантам осуществления настоящего изобретения со ссылкой на фиг. 3-12.
Иерархический кодер 110 может измерять ошибку кодирования более глубоких единиц кодирования согласно глубинам посредством использования оптимизации искажения в зависимости от скорости передачи на основе множителей Лагранжа.
Энтропийный кодер 120 выводит данные изображений максимальной единицы кодирования, которая кодируется на основе по меньшей мере одной кодированной глубины, определенной посредством иерархического кодера 110, и информации относительно режима кодирования согласно кодированной глубине в потоках битов. Кодированные данные изображений могут представлять собой результат кодирования остаточных данных изображения. Информация относительно режима кодирования согласно кодированной глубине может включать в себя информацию относительно кодированной глубины, информацию относительно типа сегмента в единице прогнозирования, информацию режима прогнозирования и информацию размера единицы преобразования. В частности, как описано ниже, при энтропийном кодировании элемента синтаксиса, указывающего размер единицы преобразования, энтропийный кодер 120 преобразует в двоичную форму элемент синтаксиса, указывающий размер преобразования, но согласно битовым строкам посредством использования параметра, который постепенно обновляется. Ниже описывается операция энтропийного кодирования единицы преобразования посредством использования модуля 120 энтропийного кодирования.
Информация относительно кодированной глубины может быть задана посредством использования информации разбиения согласно глубинам, которая указывает то, выполняется или нет кодирование над единицами кодирования нижней глубины вместо текущей глубины. Если текущая глубина текущей единицы кодирования является кодированной глубиной, данные изображений в текущей единице кодирования кодируются и выводятся, и в силу этого информация разбиения может быть задана таким образом, чтобы не разбивать текущую единицу кодирования до нижней глубины. Альтернативно, если текущая глубина текущей единицы кодирования не является кодированной глубиной, кодирование выполняется над единицей кодирования нижней глубины, и в силу этого информация разбиения может быть задана таким образом, чтобы разбивать текущую единицу кодирования, чтобы получать единицы кодирования нижней глубины.
Если текущая глубина не является кодированной глубиной, кодирование выполняется над единицей кодирования, которая разбивается на единицу кодирования нижней глубины. Поскольку по меньшей мере одна единица кодирования нижней глубины существует в одной единице кодирования текущей глубины, кодирование многократно выполняется над каждой единицей кодирования нижней глубины, и за счет этого кодирование может быть рекурсивно выполнено для единиц кодирования, имеющих идентичную глубину.
Поскольку единицы кодирования, имеющие древовидную структуру, определяются для одной максимальной единицы кодирования, и информация, по меньшей мере, относительно одного режима кодирования определяется для единицы кодирования кодированной глубины, информация, по меньшей мере, относительно одного режима кодирования может быть определена для одной максимальной единицы кодирования. Кроме того, кодированная глубина данных изображений максимальной единицы кодирования может отличаться согласно местоположениям, поскольку данные изображений иерархически разбиваются согласно глубинам, и в силу этого информация относительно кодированной глубины и режима кодирования может устанавливаться для данных изображений.
Соответственно, энтропийный кодер 120 может назначать информацию кодирования относительно соответствующей кодированной глубины и режима кодирования по меньшей мере одной из единицы кодирования, единицы прогнозирования и минимальной единицы, включенной в максимальную единицу кодирования.
Минимальная единица согласно варианту осуществления настоящего изобретения представляет собой единицу данных квадратной формы, полученной посредством разбиения минимальной единицы кодирования, составляющей самую нижнюю кодированную глубину, на 4. Альтернативно, минимальная единица может представлять собой максимальную единицу данных квадратной формы, которая может быть включена во все из единиц кодирования, единиц прогнозирования, единиц сегментирования и единиц преобразования, включенных в максимальную единицу кодирования.
Например, информация кодирования, выводимая через энтропийный кодер 120, может классифицироваться на информацию кодирования согласно единицам кодирования и информацию кодирования согласно единицам прогнозирования. Информация кодирования согласно единицам кодирования может включать в себя информацию относительно режима прогнозирования и относительно размера сегментов. Информация кодирования согласно единицам прогнозирования может включать в себя информацию относительно оцененного направления внешнего режима, относительно индекса опорного изображения внешнего режима, относительно вектора движения, относительно компонента сигнала цветности внутреннего режима и относительно способа интерполяции внутреннего режима. Кроме того, информация относительно максимального размера единицы кодирования, заданного согласно картинкам, слайсам или GOP, и информация относительно максимальной глубины могут вставляться в заголовок потока битов.
В устройстве 100 кодирования видео, более глубокая единица кодирования может представлять собой единицу кодирования, полученную посредством деления высоты или ширины единицы кодирования верхней глубины, которая на один слой выше, на два. Другими словами, когда размер единицы кодирования текущей глубины равен 2N×2N, размер единицы кодирования нижней глубины равен N×N. Кроме того, единица кодирования текущей глубины, имеющей размер 2N×2N, может включать в себя максимальное число в четыре единицы кодирования нижней глубины.
Соответственно, устройство 100 кодирования видео может формировать единицы кодирования, имеющие древовидную структуру, посредством определения единиц кодирования, имеющих оптимальную форму и оптимальный размер для каждой максимальной единицы кодирования, на основе размера максимальной единицы кодирования и максимальной глубины, определенных с учетом характеристик текущей картинки. Кроме того, поскольку кодирование может выполняться над каждой максимальной единицей кодирования посредством использования любого из различных режимов прогнозирования и преобразований, оптимальный режим кодирования может быть определен с учетом характеристик единицы кодирования различных размеров изображений.
Таким образом, если изображение, имеющее высокое разрешение или большой объем данных, кодируется в традиционном макроблоке, число макроблоков в расчете на картинку чрезмерно увеличивается. Соответственно, увеличивается число фрагментов сжатой информации, сформированной для каждого макроблока, и в силу этого трудно передавать сжатую информацию, и снижается эффективность сжатия данных. Тем не менее, посредством использования устройства 100 кодирования видео, эффективность сжатия изображений может повышаться, поскольку единица кодирования регулируется с учетом характеристик изображения при увеличении максимального размера единицы кодирования с учетом размера изображения.
Фиг. 2 является блок-схемой устройства 200 декодирования видео, согласно варианту осуществления настоящего изобретения.
Устройство 200 декодирования видео включает в себя синтаксический анализатор 210, энтропийный декодер 220 и иерархический декодер 230. Определения различных терминов, таких как единица кодирования, глубина, единица прогнозирования, единица преобразования и информация относительно различных режимов кодирования, для различных операций устройства 200 декодирования видео являются идентичными определениям, описанным со ссылкой на фиг. 1 и устройство 100 кодирования видео.
Синтаксический анализатор 210 принимает поток битов кодированного видео, чтобы синтаксически анализировать элемент синтаксиса. Энтропийный декодер 220 извлекает элементы синтаксиса, указывающие кодированные данные изображений, на основе единиц кодирования, имеющих структуру посредством выполнения энтропийного декодирования синтаксически проанализированных элементов синтаксиса, и выводит извлеченные элементы синтаксиса в иерархический декодер 230. Иными словами, энтропийный декодер 220 выполняет энтропийное декодирование элементов синтаксиса, которые принимаются в форме битовых строк из 0 и 1, за счет этого восстанавливая элементы синтаксиса.
Кроме того, энтропийный декодер 220 извлекает информацию относительно кодированной глубины, режима кодирования, информацию цветовых компонентов, информацию режима прогнозирования и т.д. для единиц кодирования, имеющих древовидную структуру согласно каждой максимальной единице кодирования, из синтаксически проанализированного потока битов. Извлеченная информация относительно кодированной глубины и режима кодирования выводится в иерархический декодер 230. Данные изображений в потоке битов разбиваются на максимальную единицу кодирования, так что иерархический декодер 230 может декодировать данные изображений для каждой максимальной единицы кодирования.
Информация относительно кодированной глубины и режима кодирования согласно максимальной единице кодирования может устанавливаться для информации относительно по меньшей мере одной единицы кодирования, соответствующей кодированной глубине, и информация относительно режима кодирования может включать в себя информацию относительно типа сегмента соответствующей единицы кодирования, соответствующей кодированной глубине, относительно режима прогнозирования и размера единицы преобразования. Кроме того, информация разбиения согласно глубинам может быть извлечена в качестве информации относительно кодированной глубины.
Информация относительно кодированной глубины и режима кодирования согласно каждой максимальной единице кодирования, извлеченной посредством энтропийного декодера 220, представляет собой информацию относительно кодированной глубины и режима кодирования, определенную с возможностью формировать минимальную ошибку кодирования, когда кодер, такой как устройство 100 кодирования видео, многократно выполняет кодирование для каждой более глубокой единицы кодирования согласно глубинам согласно каждой максимальной единице кодирования. Соответственно, устройство 200 декодирования видео может восстанавливать изображение посредством декодирования данных изображений согласно кодированной глубине и режиму кодирования, который формирует минимальную ошибку кодирования.
Поскольку информация кодирования относительно кодированной глубины и режима кодирования может назначаться предварительно определенной единице данных из соответствующей единицы кодирования, единицы прогнозирования и минимальной единицы, энтропийный декодер 220 может извлекать информацию относительно кодированной глубины и режима кодирования согласно предварительно определенным единицам данных. Когда информация относительно кодированной глубины и режима кодирования соответствующей максимальной единицы кодирования назначается каждой из предварительно определенных единиц данных, предварительно определенные единицы данных, которым назначается идентичная информация относительно кодированной глубины и режима кодирования, могут логически выводиться в качестве единиц данных, включенных в идентичную максимальную единицу кодирования.
Кроме того, как описано ниже, энтропийный декодер 220 отменяет преобразование в двоичную форму элемента синтаксиса, указывающего размер коэффициента преобразования, посредством использования параметра, который постепенно обновляется. Ниже подробно описывается операция получения информации размера коэффициента преобразования посредством использования энтропийного декодера 220 посредством отмены преобразования в двоичную форму битовой строки, соответствующей элементу синтаксиса, указывающему размер единицы преобразования.
Иерархический декодер 230 восстанавливает текущую картинку посредством декодирования данных изображений в каждой максимальной единице кодирования на основе информации относительно кодированной глубины и режима кодирования согласно максимальным единицам кодирования. Другими словами, иерархический декодер 230 может декодировать кодированные данные изображений на основе извлеченной информации относительно типа сегмента, режима прогнозирования и единицы преобразования для каждой единицы кодирования из единиц кодирования, имеющих в себя древовидную структуру, включенных в каждую максимальную единицу кодирования. Процесс декодирования может включать в себя прогнозирование, включающее в себя внутреннее прогнозирование и компенсацию движения, а также обратное преобразование.
Иерархический декодер 230 может выполнять внутреннее прогнозирование или компенсацию движения согласно сегменту и режиму прогнозирования каждой единицы кодирования на основе информации относительно типа сегмента и режима прогнозирования единицы прогнозирования единицы кодирования согласно кодированным глубинам.
Кроме того, иерархический декодер 230 может выполнять обратное преобразование согласно каждой единице преобразования в единице кодирования на основе информации относительно размера единицы преобразования единицы кодирования согласно кодированным глубинам, с тем чтобы выполнять обратное преобразование согласно максимальным единицам кодирования.
Иерархический декодер 230 может определять по меньшей мере одну кодированную глубину текущей максимальной единицы кодирования посредством использования информации разбиения согласно глубинам. Если информация разбиения указывает то, что данные изображений более не разбиваются при текущей глубине, текущая глубина является кодированной глубиной. Соответственно, иерархический декодер 230 может декодировать единицу кодирования текущей глубины относительно данных изображений текущей максимальной единицы кодирования посредством использования информации относительно типа сегмента единицы прогнозирования, режима прогнозирования и размера единицы преобразования.
Другими словами, единицы данных, содержащие информацию кодирования, включающую в себя идентичную информацию разбиения, могут собираться посредством наблюдения набора информации кодирования, назначаемого для предварительно определенной единицы данных из единицы кодирования, единицы прогнозирования и минимальной единицы, и собранные единицы данных могут рассматриваться как одна единица данных, которая должна быть декодирована посредством иерархического декодера 230 в одном режиме кодирования.
Устройство 200 декодирования видео может получать информацию относительно по меньшей мере одной единицы кодирования, которая формирует минимальную ошибку кодирования, когда кодирование рекурсивно выполняется для каждой максимальной единицы кодирования, и может использовать эту информацию для того, чтобы декодировать текущую картинку. Другими словами, могут быть декодированы кодированные данные изображений единиц кодирования, имеющих древовидную структуру, определенных как оптимальные единицы кодирования в каждой максимальной единице кодирования.
Соответственно, даже если данные изображений имеют высокое разрешение и большой объем данных, данные изображений могут быть эффективно декодированы и восстановлены посредством использования размера единицы кодирования и режима кодирования, которые адаптивно определяются согласно характеристикам данных изображений, посредством использования информации относительно оптимального режима кодирования, принимаемой из кодера.
Далее описывается способ определения единиц кодирования, имеющих древовидную структуру, единицы прогнозирования и единицы преобразования, согласно варианту осуществления настоящего изобретения со ссылкой на фиг. 3-13.
Фиг. 3 является схемой для описания принципа единиц кодирования согласно варианту осуществления настоящего изобретения.
Размер единицы кодирования может выражаться как "ширина × высота" и может составлять 64×64, 32×32, 16×16 и 8×8. Единица кодирования в 64×64 может разбиваться на сегменты в 64×64, 64×32, 32×64 или 32×32, и единица кодирования в 32×32 может разбиваться на сегменты в 32×32, 32×16, 16×32 или 16×16; единица кодирования в 16×16 может разбиваться на сегменты в 16×16, 16×8, 8×16 или 8×8, и единица кодирования в 8×8 может разбиваться на сегменты в 8×8, 8×4, 4×8 или 4×4.
Касательно видеоданных 310, устанавливаются разрешение в 1920×1080, максимальный размер единицы кодирования в 64 и максимальная глубина в 2. Касательно видеоданных 320, устанавливаются разрешение в 1920×1080, максимальный размер единицы кодирования в 64 и максимальная глубина в 3. Касательно видеоданных 330, устанавливаются разрешение в 352×288, максимальный размер единицы кодирования в 16 и максимальная глубина в 1. Максимальная глубина, показанная на фиг. 3, обозначает общее число разбиений от максимальной единицы кодирования до минимальной единицы кодирования.
Если разрешение является высоким, или объем данных является большим, максимальный размер единицы кодирования может быть большим, с тем чтобы не только повышать эффективность кодирования, но также и точно отражать характеристики изображения. Соответственно, максимальный размер единицы кодирования видеоданных 310 и 320, имеющих более высокое разрешение, чем видеоданные 330, может составлять 64.
Поскольку максимальная глубина видеоданных 310 равна 2, единицы 315 кодирования видеоданных 310 могут включать в себя максимальную единицу кодирования, имеющую размер продольной оси в 64, и единицы кодирования, имеющие размеры продольной оси в 32 и 16, поскольку глубины увеличиваются на два уровня посредством разбиения максимальной единицы кодирования два раза. Между тем, поскольку максимальная глубина видеоданных 330 равна 1, единицы кодирования 335 видеоданных 330 могут включать в себя максимальную единицу кодирования, имеющую размер по продольной оси в 16, и единицы кодирования, имеющие размер по продольной оси в 8, поскольку глубины увеличиваются на один уровень посредством разбиения максимальной единицы кодирования один раз.
Поскольку максимальная глубина видеоданных 320 равна 3, единицы 325 кодирования видеоданных 320 могут включать в себя максимальную единицу кодирования, имеющую размер по продольной оси в 64, и единицы кодирования, имеющие размеры по продольной оси в 32, 16 и 8, поскольку глубины увеличиваются на 3 уровня посредством разбиения максимальной единицы кодирования три раза. По мере того, как увеличивается глубина, может точно выражаться подробная информация.
Фиг. 4 является блок-схемой видеокодера 400 на основе единиц кодирования, имеющих иерархическую структуру, согласно варианту осуществления настоящего изобретения.
Модуль 410 внутреннего прогнозирования выполняет внутреннее прогнозирование над единицами кодирования во внутреннем режиме относительно текущего кадра 405, и модуль 420 оценки движения и модуль 425 компенсации движения, соответственно, выполняют внешнюю оценку и компенсацию движения над единицами кодирования во внешнем режиме посредством использования текущего кадра 405 и опорного кадра 495.
Данные, выводимые из модуля 410 внутреннего прогнозирования, модуля 420 оценки движения и модуля 425 компенсации движения, выводятся в качестве квантованного коэффициента преобразования через преобразователь 430 и квантователь 440. Квантованный коэффициент преобразования восстанавливается в качестве данных в пространственной области через обратный квантователь 460 и обратный преобразователь 470, и восстановленные данные в пространственной области выводятся в качестве опорного кадра 495 после постобработки через модуль 480 удаления блочности и модуль 490 контурной фильтрации. Квантованный коэффициент преобразования может выводиться в качестве потока 455 битов через энтропийный кодер 450.
Модуль 450 энтропийного кодирования арифметически кодирует элементы синтаксиса, связанные с единицей преобразования, такие как карта значимости, указывающая позицию единицы преобразования, которая не равна 0, флаг первого критического значения (coeff_abs_level_greater1_flag), указывающий то, имеет или нет единица преобразования значение, превышающее 1, флаг второго критического значения (coeff_abs_level_greater2_flag), указывающий то, имеет или нет единица преобразования значение, превышающее 2, и информация размера коэффициента преобразования (coeff_abs_level_remaining), соответствующая разности между базовым уровнем (baseLevel), который определяется на основе флага первого критического значения и флага второго критического значения, и реальным коэффициентом преобразования (abscoeff).
Для применения видеокодера 400 в устройстве 100 кодирования видео, все элементы видеокодера 400, т.е. модуль 410 внутреннего прогнозирования, модуль 420 оценки движения, модуль 425 компенсации движения, преобразователь 430, квантователь 440, энтропийный кодер 450, обратный квантователь 460, обратный преобразователь 470, модуль 480 удаления блочности и модуль 490 контурной фильтрации, должны выполнять операции на основе каждой единицы кодирования из единиц кодирования, имеющих древовидную структуру, с учетом максимальной глубины каждой максимальной единицы кодирования.
В частности, модуль 410 внутреннего прогнозирования, модуль 420 оценки движения и модуль 425 компенсации движения определяют сегменты и режим прогнозирования каждой единицы кодирования из единиц кодирования, имеющих древовидную структуру, с учетом максимального размера и максимальной глубины текущей максимальной единицы кодирования, и преобразователь 430 определяет размер единицы преобразования в каждой единице кодирования из единиц кодирования, имеющих древовидную структуру.
Фиг. 5 является блок-схемой видеодекодера 500 на основе единиц кодирования согласно варианту осуществления настоящего изобретения.
Синтаксический анализатор 510 синтаксически анализирует кодированные данные изображений, которые должны декодироваться, и информацию относительно кодирования, требуемую для декодирования, из потока 505 битов. Кодированные данные изображений пропускаются через декодер 520 и обратный квантователь 530 так, что они выводятся в качестве обратно квантованных данных. Энтропийный декодер 520 получает элементы, связанные с единицей преобразования, из потока битов, т.е. карту значимости, указывающую позицию единицы преобразования, которая не равна 0, флаг первого критического значения (coeff_abs_level_greater1_flag), указывающий то, имеет или нет единица преобразования значение, превышающее 1, флаг второго критического значения (coeff_abs_level_greater2_flag), указывающий то, имеет или нет единица преобразования значение, превышающее 2, и информацию размера коэффициента преобразования (coeff_abs_level_remaining), соответствующую разности между базовым уровнем (baseLevel), который определяется на основе флага первого критического значения и флага второго критического значения, и реальным коэффициентом преобразования (abscoeff), и арифметически декодирует полученные элементы синтаксиса, с тем чтобы восстанавливать элементы синтаксиса.
Обратный преобразователь 540 восстанавливает обратно квантованные данные в данные изображений в пространственной области. Модуль 550 внутреннего прогнозирования выполняет внутреннее прогнозирование над единицами кодирования во внутреннем режиме относительно данных изображений в пространственной области, и модуль 560 компенсации движения выполняет компенсацию движения над единицами кодирования во внешнем режиме посредством использования опорного кадра 585.
Данные изображений в пространственной области, которые пропущены через модуль 550 внутреннего прогнозирования и модуль 560 компенсации движения, могут выводиться в качестве восстановленного кадра 595 после постобработки через модуль 570 удаления блочности и модуль 580 контурной фильтрации. Кроме того, данные изображений, которые постобрабатываются через модуль 570 удаления блочности и модуль 580 контурной фильтрации, могут выводиться в качестве опорного кадра 585.
Для применения видеодекодера 500 в устройстве 200 декодирования видео, все элементы видеодекодера 500, т.е. синтаксический анализатор 510, энтропийный декодер 520, обратный квантователь 530, обратный преобразователь 540, модуль 550 внутреннего прогнозирования, модуль 560 компенсации движения, модуль 570 удаления блочности и модуль 580 контурной фильтрации выполняют операции на основе единиц кодирования, имеющих древовидную структуру, для каждой максимальной единицы кодирования.
Модуль 550 внутреннего прогнозирования и модуль 560 компенсации движения определяют сегмент и режим прогнозирования для каждой единицы кодирования, имеющей древовидную структуру, и обратный преобразователь 540 должен определять размер единицы преобразования для каждой единицы кодирования.
Фиг. 6 является схемой, иллюстрирующей более глубокие единицы кодирования согласно глубинам и сегменты согласно варианту осуществления настоящего изобретения.
Устройство 100 кодирования видео и устройство 200 декодирования видео используют иерархические единицы кодирования с тем, чтобы учитывать характеристики изображения. Максимальная высота, максимальная ширина и максимальная глубина единиц кодирования могут быть адаптивно определены согласно характеристикам изображения или могут быть по-другому установлены пользователем. Размеры более глубоких единиц кодирования согласно глубинам могут быть определены согласно предварительно определенному максимальному размеру единицы кодирования.
В иерархической структуре 600 единиц кодирования, согласно варианту осуществления настоящего изобретения, максимальная высота и максимальная ширина единиц кодирования равны 64, а максимальная глубина равна 4. Поскольку глубина увеличивается вдоль вертикальной оси иерархической структуры 600, разбиваются высота и ширина более глубокой единицы кодирования. Кроме того, единица прогнозирования и сегменты, которые являются базисами для прогнозирующего кодирования каждой более глубокой единицы кодирования, показаны вдоль горизонтальной оси иерархической структуры 600.
Другими словами, единица 610 кодирования представляет собой максимальную единицу кодирования в иерархической структуре 600, в которой глубина равна 0, а размер, т.е. высота на ширину, равен 64×64. Глубина увеличивается вдоль вертикальной оси, и существуют единица 620 кодирования, имеющая размер 32×32 и глубину в 1, единица 630 кодирования, имеющая размер 16×16 и глубину в 2, единица 640 кодирования, имеющая размер 8×8 и глубину 3, и единица 650 кодирования, имеющая размер 4×4 и глубину 4. Единица 650 кодирования, имеющая размер 4×4 и глубину 4, представляет собой минимальную единицу кодирования.
Единица прогнозирования и сегменты единицы кодирования размещаются вдоль горизонтальной оси согласно каждой глубине. Другими словами, если единица 610 кодирования, имеющая размер 64×64 и глубину 0, представляет собой единицу прогнозирования, единица прогнозирования может разбиваться на сегменты, включенные в единицу 610 кодирования, т.е. на сегмент 610, имеющий размер 64×64, сегменты 612, имеющие размер 64×32, сегменты 614, имеющие размер 32×64, или сегменты 616, имеющие размер 32×32.
Аналогично, единица прогнозирования единицы 620 кодирования, имеющей размер 32×32 и глубину в 1, может разбиваться на сегменты, включенные в единицу 620 кодирования, т.е. на сегмент 620, имеющий размер 32×32, сегменты 622, имеющие размер 32×16, сегменты 624, имеющие размер 16×32, и сегменты 626, имеющие размер 16×16.
Аналогично, единица прогнозирования единицы 630 кодирования, имеющей размер 16×16 и глубину в 2, может разбиваться на сегменты, включенные в единицу 630 кодирования, т.е. на сегмент, имеющий размер 16×16, включенный в единицу 630 кодирования, сегменты 632, имеющие размер 16×8, сегменты 634, имеющие размер 8×16, и сегменты 636, имеющие размер 8×8.
Аналогично, единица прогнозирования единицы 640 кодирования, имеющей размер 8×8 и глубину 3, может разбиваться на сегменты, включенные в единицу 640 кодирования, т.е. на сегмент, имеющий размер 8×8, включенный в единицу 640 кодирования, сегменты 642, имеющие размер 8×4, сегменты 644, имеющие размер 4×8, и сегменты 646, имеющие размер 4×4.
Единица 650 кодирования, имеющая размер 4×4 и глубину 4, представляет собой минимальную единицу кодирования и единицу кодирования самой нижней глубины. Единица прогнозирования единицы 650 кодирования назначается только сегменту, имеющему размер 4×4.
Чтобы определять по меньшей мере одну кодированную глубину единиц кодирования, составляющих максимальную единицу 610 кодирования, иерархический кодер 110 устройства 100 кодирования видео выполняет кодирование для единиц кодирования, соответствующих каждой глубине, включенной в максимальную единицу 610 кодирования.
Число более глубоких единиц кодирования согласно глубинам, включающим в себя данные в идентичном диапазоне и идентичного размера, увеличивается по мере того, как увеличивается глубина. Например, четыре единицы кодирования, соответствующие глубине 2, требуются для того, чтобы охватывать данные, которые включаются в одну единицу кодирования, соответствующую глубине 1. Соответственно, чтобы сравнивать результаты кодирования идентичных данных согласно глубинам, кодируются единица кодирования, соответствующая глубине 1, и четыре единицы кодирования, соответствующие глубине 2.
Чтобы выполнять кодирование для текущей глубины из глубин, наименьшая ошибка кодирования может быть выбрана для текущей глубины посредством выполнения кодирования для каждой единицы прогнозирования в единицах кодирования, соответствующих текущей глубине, вдоль горизонтальной оси иерархической структуры 600. Альтернативно, поиск минимальной ошибки кодирования может выполняться посредством сравнения наименьших ошибок кодирования согласно глубинам и выполнения кодирования для каждой глубины по мере того, как глубина увеличивается вдоль вертикальной оси иерархической структуры 600. Глубина и сегмент, имеющие минимальную ошибку кодирования в максимальной единице 610 кодирования, могут быть выбраны в качестве кодированной глубины и типа сегмента максимальной единицы 610 кодирования.
Фиг. 7 является схемой для описания взаимосвязи между единицей 710 кодирования и единицами 720 преобразования, согласно варианту осуществления настоящего изобретения.
Устройство 100 кодирования видео или устройство 200 декодирования видео кодирует или декодирует изображение согласно единицам кодирования, имеющим размеры, меньшие или равные максимальной единице кодирования для каждой максимальной единицы кодирования. Размеры единиц преобразования для преобразования в ходе кодирования могут быть выбраны на основе единиц данных, которые не больше соответствующей единицы кодирования.
Например, в устройстве 100 кодирования видео или устройстве 200 декодирования видео, если размер единицы 710 кодирования составляет 64×64, преобразование может выполняться посредством использования единиц 720 преобразования, имеющих размер 32×32.
Кроме того, данные единицы 710 кодирования, имеющей размер 64×64, могут быть кодированы посредством выполнения преобразования над каждой из единиц преобразования, имеющих размер 32×32, 16×16, 8×8 и 4×4, которые меньше 64×64, а затем может быть выбрана единица преобразования, имеющая наименьшую ошибку кодирования.
Фиг. 8 является схемой для описания информации кодирования единиц кодирования, соответствующих кодированной глубине, согласно варианту осуществления настоящего изобретения.
Модуль 130 вывода устройства 100 кодирования видео может кодировать и передавать информацию 800 относительно типа сегмента, информацию 810 относительно режима прогнозирования и информацию 820 относительно размера единицы преобразования для каждой единицы кодирования, соответствующей кодированной глубине, в качестве информации относительно режима кодирования.
Информация 800 указывает информацию относительно формы сегмента, полученного посредством разбиения единицы прогнозирования текущей единицы кодирования, при этом сегмент представляет собой единицу данных для прогнозирующего кодирования текущей единицы кодирования. Например, текущая единица кодирования CU_0, имеющая размер 2N×2N, может разбиваться на любой из сегмента 802, имеющего размер 2Nx2N, сегмента 804, имеющего размер 2N×N, сегмента 806, имеющего размер N×2N, и сегмента 808, имеющего размер N×N. Здесь, информация 800 относительно типа сегмента устанавливается так, что она указывает один из сегмента 802, имеющего размер 2N×2N, сегмента 804, имеющего размер 2N×N, сегмента 806, имеющего размер N×2N, и сегмента 808, имеющего размер N×N.
Информация 810 указывает режим прогнозирования каждого сегмента. Например, информация 810 может указывать режим прогнозирующего кодирования, выполняемого над сегментом, указываемым посредством информации 800, т.е. внутренний режим 812, внешний режим 814 или режим 816 пропуска.
Информация 820 указывает единицу преобразования, на которой следует базироваться, когда преобразование выполняется над текущей единицей кодирования. Например, единица преобразования может быть первой единицей 822 внутреннего преобразования, второй единицей 824 внутреннего преобразования, первой единицей 826 внешнего преобразования или второй единицей 828 внешнего преобразования.
Модуль 210 извлечения данных изображений и данных кодирования устройства 200 декодирования видео может извлекать и использовать информацию 800 относительно единиц кодирования, информацию 810 относительно режима прогнозирования и информацию 820 относительно размера единицы преобразования, для декодирования, согласно каждой более глубокой единице кодирования.
Фиг. 9 является схемой более глубоких единиц кодирования согласно глубинам, согласно варианту осуществления настоящего изобретения.
Информация разбиения может быть использована для того, чтобы указывать изменение глубины. Информация разбиения указывает то, разбивается или нет единица кодирования текущей глубины на единицы кодирования нижней глубины.
Единица 910 прогнозирования для прогнозирующего кодирования единицы 900 кодирования, имеющей глубину 0 и размер 2N_0×2N_0, может включать в себя сегменты с типом 912 сегмента, имеющего размер 2N_0×2N_0, с типом 914 сегмента, имеющего размер 2N_0×N_0, с типом 916 сегмента, имеющего размер N_0×2N_0, и с типом 918 сегмента, имеющего размер N_0×N_0. Фиг. 9 иллюстрирует только типы 912-918 сегментов, которые получаются посредством симметричного разбиения единицы 910 прогнозирования, но тип сегмента не ограничен этим, и сегменты единицы 910 прогнозирования могут включать в себя асимметричные сегменты, сегменты, имеющие предварительно определенную форму, и сегменты, имеющие геометрическую форму.
Прогнозирующее кодирование многократно выполняется над одним сегментом, имеющим размер 2N_0×2N_0, двумя сегментами, имеющими размер 2N_0×N_0, двумя сегментами, имеющими размер N_0×2N_0, и четырьмя сегментами, имеющими размер N_0×N_0, согласно каждому типу сегмента. Прогнозирующее кодирование во внутреннем режиме и внешнем режиме может выполняться над сегментами, имеющими размеры 2N_0×2N_0, N_0×2N_0, 2N_0×N_0 и N_0×N_0. Прогнозирующее кодирование в режиме пропуска выполняется только над сегментом, имеющим размер 2N_0×2N_0.
Если ошибка кодирования является наименьшей в одном из типов 912-916 сегментов, имеющих размеры 2N_0×2N_0, 2N_0×N_0 и N_0×2N_0, единица 910 прогнозирования может не разбиваться на нижнюю глубину.
Если ошибка кодирования является наименьшей в типе 918 сегмента, имеющего размер N_0×N_0, глубина изменяется с 0 на 1, чтобы разбивать тип 918 сегмента, на этапе 920, и кодирование многократно выполняется над единицами кодирования типа сегмента, имеющими глубину в 2 и размер N_0×N_0, чтобы выполнять поиск минимальной ошибки кодирования.
Единица 940 прогнозирования для прогнозирующего кодирования единицы 930 кодирования (типа сегмента), имеющей глубину 1 и размер 2N_1×2N_1 (=N_0×N_0), может включать в себя сегменты с типом 942 сегмента, имеющего размер 2N_1×2N_1, с типом 944 сегмента, имеющего размер 2N_1×N_1, с типом 946 сегмента, имеющего размер N_1×2N_1, и с типом 948 сегмента, имеющего размер N_1×N_1.
Если ошибка кодирования является наименьшей в типе 948 сегмента, имеющем размер N_1×N_1, глубина изменяется с 1 на 2, чтобы разбивать тип 948 сегмента на этапе 950, и кодирование многократно выполняется над единицами 960 кодирования, которые имеют глубину в 2 и размер N_2×N_2, чтобы выполнять поиск минимальной ошибки кодирования.
Когда максимальная глубина составляет d, операция разбиения согласно каждой глубине может выполняться до того, когда глубина становится d-1, и информация разбиения может быть кодирована до того, когда глубина составляет одно из 0-d-2. Другими словами, когда кодирование выполняется до того, когда глубина составляет d-1, после того как единица кодирования, соответствующая глубине d-2, разбивается на этапе 970, единица 990 прогнозирования для прогнозирующего кодирования единицы 980 кодирования, имеющей глубину d-1 и размер 2N_(d-1)×2N_(d-1), может включать в себя сегменты с типом 992 сегмента, имеющего размер 2N_(d-1)×2N_(d-1), с типом 994 сегмента, имеющего размер 2N_(d-1)×N_(d-1), с типом 996 сегмента, имеющего размер N_(d-1)×2N_(d-1), и с типом 998 сегмента, имеющего размер N_(d-1)×N_(d-1).
Прогнозирующее кодирование может многократно выполняться над одним сегментом, имеющим размер 2N_(d-1)×2N_(d-1), двумя сегментами, имеющими размер 2N_(d-1)×N_(d-1), двумя сегментами, имеющими размер N_(d-1)×2N_(d-1), четырьмя сегментами, имеющими размер N_(d-1)×N_(d-1), из типов 992-998 сегментов, чтобы выполнять поиск типа сегмента, имеющего минимальную ошибку кодирования.
Даже когда тип 998 сегмента, имеющего размер N_(d-1)×N_(d-1), имеет минимальную ошибку кодирования, поскольку максимальная глубина составляет d, единица кодирования CU_(d-1), имеющая глубину d-1, более не разбивается до нижней глубины, и кодированная глубина для единиц кодирования, составляющих текущую максимальную единицу 900 кодирования, определяется как d-1, и тип сегмента текущей максимальной единицы 900 кодирования может быть определен как N_(d-1)×N_(d-1). Кроме того, поскольку максимальная глубина составляет d, информация разбиения для минимальной единицы кодирования 952 не устанавливается.
Единица 999 данных может представлять собой "минимальную единицу" для текущей максимальной единицы кодирования. Минимальная единица согласно варианту осуществления настоящего изобретения может представлять собой прямоугольную единицу данных, полученную посредством разбиения минимальной единицы 980 кодирования на 4. Посредством многократного выполнения кодирования, устройство 100 кодирования видео может выбирать глубину, имеющую наименьшую ошибку кодирования, посредством сравнения ошибок кодирования согласно глубинам единицы 900 кодирования, чтобы определять кодированную глубину и устанавливать соответствующий тип сегмента и режим прогнозирования в качестве режима кодирования кодированной глубины.
Также, минимальные ошибки кодирования согласно глубинам сравниваются во всех глубинах 1-d, и глубина, имеющая наименьшую ошибку кодирования, может быть определена в качестве кодированной глубины. Кодированная глубина, тип сегмента единицы прогнозирования и режим прогнозирования могут быть кодированы и переданы в качестве информации относительно режима кодирования. Кроме того, поскольку единица кодирования разбивается от глубины в 0 до кодированной глубины, только информация разбиения кодированной глубины устанавливается равной 0, а информация разбиения глубин за исключением кодированной глубины устанавливается равной 1.
Энтропийный декодер 220 устройства 200 декодирования видео может извлекать и использовать информацию относительно кодированной глубины и единицы прогнозирования единицы 900 кодирования, чтобы декодировать единицу 912 кодирования. Устройство 200 декодирования видео может определять глубину, при которой информация разбиения равна 0, в качестве кодированной глубины посредством использования информации разбиения согласно глубинам и использовать информацию относительно режима кодирования соответствующей глубины для декодирования.
Фиг. 10-12 являются схемами для описания взаимосвязи между единицами 1010 кодирования, единицами 1060 прогнозирования и единицами 1070 преобразования, согласно варианту осуществления настоящего изобретения.
Единицы 1010 кодирования представляют собой единицы кодирования, имеющие древовидную структуру, согласно кодированным глубинам, определенным посредством устройства 100 кодирования видео, в максимальной единице кодирования. Единицы 1060 прогнозирования представляют собой сегменты единиц прогнозирования каждой из единиц 1010 кодирования, и единицы 1070 преобразования представляют собой единицы преобразования каждой из единиц 1010 кодирования.
Когда глубина максимальной единицы кодирования равна 0 в единицах 1010 кодирования, глубины единиц 1012 и 1054 кодирования равны 1, глубины единиц 1014, 1016, 1018, 1028, 1050 и 1052 кодирования равны 2, глубины единиц 1020, 1022, 1024, 1026, 1030, 1032 и 1048 кодирования равны 3, а глубины единиц 1040, 1042, 1044 и 1046 кодирования равны 4.
В единицах 1060 прогнозирования некоторые единицы 1014, 1016, 1022, 1032, 1048, 1050, 1052 и 1054 кодирования получаются посредством разбиения единиц кодирования. Другими словами, типы сегментов в единицах 1014, 1022, 1050 и 1054 кодирования имеют размер 2N×N, типы сегментов в единицах 1016, 1048 и 1052 кодирования имеют размер N×2N, и тип сегмента единицы 1032 кодирования имеет размер N×N. Единицы прогнозирования и сегменты единиц 1010 кодирования меньше или равны каждой единице кодирования.
Преобразование или обратное преобразование выполняется над данными изображений единицы 1052 кодирования в единицах 1070 преобразования в единице данных, которая меньше единицы 1052 кодирования. Кроме того, единицы 1014, 1016, 1022, 1032, 1048, 1050, 1052 и 1054 кодирования в единицах 1070 преобразования отличаются от единиц кодирования в единицах 1060 прогнозирования с точки зрения размеров и форм. Другими словами, устройство 100 кодирования видео и устройство 200 декодирования видео могут выполнять внутреннее прогнозирование, оценку движения, компенсацию движения, преобразование и обратное преобразование по отдельности над единицей данных в идентичной единице кодирования.
Соответственно, кодирование рекурсивно выполняется над каждой из единиц кодирования, имеющих иерархическую структуру в каждой области максимальной единицы кодирования, чтобы определять оптимальную единицу кодирования, и за счет этого могут быть получены единицы кодирования, имеющие рекурсивную древовидную структуру. Информация кодирования может включать в себя информацию разбиения относительно единицы кодирования, информацию относительно типа сегмента, информацию относительно режима прогнозирования и информацию относительно размера единицы преобразования.
Таблица 1 показывает информацию кодирования, которая может устанавливаться посредством устройства 100 кодирования видео и устройства 200 декодирования видео.
Таблица 1
Информация 0 разбиения(кодирование над единицей кодирования, имеющей размер 2N×2N и текущую глубину d)
Информация 1 разбиения
Режим прогнозирования
Тип сегмента
Размер единицы преобразования
Многократное кодирование единиц кодирования, имеющих нижнюю глубину d+1
ВнутреннийВнешнийПропуск (только 2Nx2N)
Тип симметричного сегмента
Тип асимметричного сегмента
Информация 0 разбиения единицы преобразования
Информация 1 разбиения единицы преобразования
2N×nU2N×nDnL×2NnR×2N
2N×nU2N×nDnL×2NnR×2N
2N×2N
N×N (тип симметричного сегмента) N/2×N/2 (тип асимметричного сегмента)
Энтропийный кодер 120 устройства 100 кодирования видео может выводить информацию кодирования относительно единиц кодирования, имеющих древовидную структуру, и энтропийный декодер 220 устройства 200 декодирования видео может извлекать информацию кодирования относительно единиц кодирования, имеющих древовидную структуру, из принимаемого потока битов.
Информация разбиения указывает то, разбивается или нет текущая единица кодирования на единицы кодирования нижней глубины. Если информация разбиения текущей глубины d равна 0, глубина, при которой текущая единица кодирования более не разбивается на нижнюю глубину, является кодированной глубиной, и в силу этого информация относительно типа сегмента, режима прогнозирования и размера единицы преобразования может быть задана для кодированной глубины. Если текущая единица кодирования дополнительно разбивается согласно информации разбиения, кодирование независимо выполняется над четырьмя разбитыми единицами кодирования нижней глубины.
Режим прогнозирования может представлять собой одно из внутреннего режима, внешнего режима и режима пропуска. Внутренний режим и внешний режим могут быть заданы во всех типах сегментов, а режим пропуска задается только в типе сегмента, имеющем размер 2N×2N.
Информация относительно типа сегмента может указывать типы симметричных сегментов, имеющих размеры 2N×2N, 2N×N, N×2N и N×N, которые получаются посредством симметричного разбиения высоты или ширины единицы прогнозирования, и типы асимметричных сегментов, имеющих размеры 2N×nU, 2N×nD, nL×2N и nR×2N, которые получаются посредством асимметричного разбиения высоты или ширины единицы прогнозирования. Типы асимметричных сегментов, имеющих размеры 2N×nU и 2N×nD, могут быть, соответственно, получены посредством разбиения высоты единицы прогнозирования на 1:n и n:1 (где n является целым числом, превышающим 1), и типы асимметричных сегментов, имеющих размеры nL×2N и nR×2N, могут быть, соответственно, получены посредством разбиения ширины единицы прогнозирования на 1:n и n:1.
Размер единицы преобразования может устанавливаться как два типа во внутреннем режиме и два типа во внешнем режиме. Другими словами, если информация разбиения единицы преобразования равна 0, размер единицы преобразования может составлять 2N×2N, что представляет собой размер текущей единицы кодирования. Если информация разбиения единицы преобразования равна 1, единицы преобразования могут быть получены посредством разбиения текущей единицы кодирования. Кроме того, если тип сегмента текущей единицы кодирования, имеющей размер 2N×2N, представляет собой тип симметричного сегмента, размер единицы преобразования может составлять N×N, а если тип сегмента текущей единицы кодирования представляет собой тип асимметричного сегмента, размер единицы преобразования может составлять N/2×N/2.
Информация кодирования относительно единиц кодирования, имеющих древовидную структуру, может включать в себя по меньшей мере одну из единицы кодирования, соответствующей кодированной глубине, единицы прогнозирования и минимальной единицы. Единица кодирования, соответствующая кодированной глубине, может включать в себя по меньшей мере одну из единицы прогнозирования и минимальной единицы, содержащей идентичную информацию кодирования.
Соответственно, определяется то, включаются или нет смежные единицы данных в идентичную единицу кодирования, соответствующую кодированной глубине, посредством сравнения информации кодирования смежных единиц данных. Кроме того, соответствующая единица кодирования, соответствующая кодированной глубине, определяется посредством использования информации кодирования единицы данных, и за счет этого может быть определено распределение кодированных глубин в максимальной единице кодирования.
Соответственно, если текущая единица кодирования прогнозируется на основе информации кодирования смежных единиц данных, можно обращаться непосредственно к информации кодирования единиц данных в более глубоких единицах кодирования, смежных с текущей единицей кодирования, и она может использоваться.
Альтернативно, если текущая единица кодирования прогнозируется на основе информации кодирования смежных единиц данных, поиск единиц данных, смежных с текущей единицей кодирования, с использованием кодированной информации единиц данных, и к искомым смежным единицам кодирования можно обращаться для прогнозирования текущей единицы кодирования.
Фиг. 13 является схемой для описания взаимосвязи между единицей кодирования, единицей прогнозирования и единицей преобразования, согласно информации режима кодирования по таблице 1.
Максимальная единица 1300 кодирования включает в себя единицы 1302, 1304, 1306, 1312, 1314, 1316 и 1318 кодирования кодированных глубин. Здесь, поскольку единица 1318 кодирования представляет собой единицу кодирования кодированной глубины, информация разбиения может устанавливаться равной 0. Информация относительно типа сегмента единицы 1318 кодирования, имеющей размер 2N×2N, может устанавливаться как одно из типа 1322 сегмента, имеющего размер 2N×2N, типа 1324 сегмента, имеющего размер 2N×N, типа 1326 сегмента, имеющего размер N×2N, типа 1328 сегмента, имеющего размер N×N, типа 1332 сегмента, имеющего размер 2N×nU, типа 1334 сегмента, имеющего размер 2N×nD, типа 1336 сегмента, имеющего размер nL×2N, и типа 1338 сегмента, имеющего размер nR×2N.
Когда тип сегмента устанавливается как симметричный, т.е. тип 1322, 1324, 1326 или 1328 сегмента, единица 1342 преобразования, имеющая размер 2N×2N, устанавливается, если информация разбиения (флаг TU-размера) единицы преобразования равен 0, и единица 1344 преобразования, имеющая размер N×N, устанавливается, если флаг TU-размера равен 1.
Когда тип сегмента устанавливается как асимметричный, т.е. тип 1332, 1334, 1336 или 1338 сегмента, единица 1352 преобразования, имеющая размер 2N×2N, устанавливается, если флаг TU-размера равен 0, и единица 1354 преобразования, имеющая размер N/2×N/2 устанавливается, если флаг TU-размера равен 1.
Флаг TU-размера представляет собой тип индекса преобразования; размер единицы преобразования, соответствующей индексу преобразования, может быть модифицирован согласно типу единицы прогнозирования или типу сегмента единицы кодирования.
Когда тип сегмента устанавливается как симметричный, т.е. тип 1322, 1324, 1326 или 1328 сегмента, единица 1342 преобразования, имеющая размер 2N×2N, устанавливается, если флаг TU-размера единицы преобразования равен 0, и единица 1344 преобразования, имеющая размер N×N, устанавливается, если флаг TU-размера равен 1.
Когда тип сегмента устанавливается как асимметричный, т.е. тип 1332 (2N×nU), 1334 (2N×nD), 1336 (nL×2N) или 1338 (nR×2N) сегмента, единица 1352 преобразования, имеющая размер 2N×2N, устанавливается, если флаг TU-размера равен 0, и единица 1354 преобразования, имеющая размер N/2×N/2 устанавливается, если флаг TU-размера равен 1.
Ссылаясь на фиг. 9, флаг TU-размера, описанный выше, представляет собой флаг, имеющий значение в 0 или 1, но флаг TU-размера не ограничивается 1 битом, и единица преобразования может иерархически разбиваться в то время, когда флаг TU-размера увеличивается от 0. Информация разбиения единицы преобразования (TU-размера) может быть использована в качестве примера индекса преобразования.
В этом случае, когда флаг TU-размера согласно варианту осуществления используется с максимальным размером и минимальным размером единицы преобразования, может выражаться размер фактически используемой единицы преобразования. Устройство 100 кодирования видео может кодировать информацию размера максимальных единиц преобразования, информацию размера минимальных единиц преобразования и информацию разбиения максимальных единиц преобразования. Кодированная информация размера максимальных единиц преобразования, информация размера минимальных единиц преобразования и информация разбиения максимальных единиц преобразования может вставляться в набор параметров последовательности (SPS). Устройство 200 декодирования видео может использовать информацию размера максимальных единиц преобразования, информацию размера минимальных единиц преобразования и информацию разбиения максимальных единиц преобразования для декодирования видео.
Например, (a) если размер текущей единицы кодирования составляет 64×64, и максимальная единица преобразования составляет 32×32, (a-1) размер единицы преобразования составляет 32×32, если флаг TU-размера равен 0; (a-2) размер единицы преобразования составляет 16×16, если флаг TU-размера равен 1; и (a-3) размер единицы преобразования составляет 8×8, если флаг TU-размера равен 2.
Альтернативно, (b) если размер текущей единицы кодирования составляет 32×32, и минимальная единица преобразования составляет 32×32, (b-1) размер единицы преобразования составляет 32×32, если флаг TU-размера равен 0, и поскольку размер единицы преобразования не может быть меньше 32×32, флаги TU-размера более не могут установлены.
Альтернативно, (c) если размер текущей единицы кодирования составляет 64×64, и флаг максимального TU-размера равен 1, флаг TU-размера может быть равен 0 или 1, и другие флаги TU-размера не могут устанавливаться.
Соответственно, при задании флага максимального TU-размера в качестве MaxTransformSizeIndex, флага минимального TU-размера в качестве MinTransformSize и единицы преобразования в случае, когда флаг TU-размера равен 0, т.е. базовой единицы RootTu преобразования в качестве RootTuSize, размер CurrMinTuSize минимальной единицы преобразования, который доступен в текущей единице кодирования, может быть задан посредством нижеприведенного уравнения (1).
CurrMinTuSize=max(MinTransformSize, RootTuSize/(2^MaxTransformSizeIndex)) (1)
По сравнению с размером CurrMinTuSize минимальной единицы преобразования, который доступен в текущей единице кодирования, размер базовой единицы преобразования составляет RootTuSize, что представляет собой размер единицы преобразования, когда флаг TU-размера равен 0, может указывать максимальную единицу преобразования, которая может быть выбрана в отношении системы. Иными словами, согласно уравнению (1), RootTuSize/(2^MaxTransformSizeIndex) представляет собой размер единицы преобразования, которая получается посредством разбиения RootTuSize, что представляет собой размер единицы преобразования, когда информация разбиения единиц преобразования равна 0, на число разбиений, соответствующее информации разбиения максимальных единиц преобразования, и MinTransformSize представляет собой размер минимальной единицы преобразования, и в силу этого меньшее их значение может составлять CurrMinTuSize, что представляет собой размер минимальной единицы преобразования, которая доступна в текущей единице кодирования.
Размер RootTuSize базовой единицы преобразования согласно варианту осуществления настоящего изобретения может варьироваться согласно режиму прогнозирования.
Например, если текущий режим прогнозирования представляет собой внешний режим, то RootTuSize может быть определен согласно нижеприведенному уравнению (2). В уравнении (2) MaxTransformSize означает размер максимальной единицы преобразования, и PUSize означает размер текущей единицы прогнозирования.
RootTuSize=min(MaxTransformSize, PUSize) (2)
Другими словами, если текущий режим прогнозирования представляет собой внешний режим, размер размера RootTuSize базовой единицы преобразования, который представляет собой единицу преобразования, если флаг TU-размера равен 0, может устанавливаться равным меньшему значению из размера максимальной единицы преобразования и размера текущей единицы прогнозирования.
Если режим прогнозирования текущей единицы сегментирования представляет собой внутренний режим, RootTuSize может быть определен согласно нижеприведенному уравнению (3). PartitionSize означает размер текущей единицы сегментирования.
RootTuSize=min(MaxTransformSize, PartitionSize) (3)
Другими словами, если текущий режим прогнозирования представляет собой внутренний режим, размер RootTuSize базовой единицы преобразования может устанавливаться равным меньшему значению из размера максимальной единицы преобразования и размера текущей единицы сегментирования.
Тем не менее, следует отметить, что размер размера RootTuSize базовой единицы преобразования, что представляет собой размер текущей максимальной единицы преобразования согласно варианту осуществления настоящего изобретения и варьируется согласно режиму прогнозирования единицы сегментирования, является примером, и факторы для определения размера текущей максимальной единицы преобразования не ограничены этим.
В дальнейшем в этом документе подробно описывается операция энтропийного кодирования элемента синтаксиса, которая выполняется в энтропийном кодере 120 устройства 100 кодирования видео по фиг. 1, и операция энтропийного декодирования элемента синтаксиса, которая выполняется в энтропийном декодере 220 устройства 200 декодирования видео по фиг. 2.
Как описано выше, устройство 100 кодирования видео и устройство 200 декодирования видео выполняют кодирование и декодирование посредством разбиения максимальной единицы кодирования на единицы кодирования, которые меньше или равны максимальной единице кодирования. Единица прогнозирования и единица преобразования, используемые при прогнозировании и преобразовании, могут быть определены на основе затрат независимо от других единиц данных. Поскольку оптимальная единица кодирования может быть определена посредством рекурсивного кодирования каждой единицы кодирования, имеющей иерархическую структуру, включенной в максимальную единицу кодирования, могут конфигурироваться единицы данных, имеющие древовидную структуру. Другими словами, для каждой максимальной единицы кодирования, могут конфигурироваться единица кодирования, имеющая древовидную структуру, и единица прогнозирования и единица преобразования, имеющие древовидную структуру. Для декодирования, должна передаваться иерархическая информация, которая представляет собой информацию, указывающую информацию структуры единиц данных, имеющих иерархическую структуру, и неиерархическая информация для декодирования, помимо иерархической информации.
Информация, связанная с иерархической структурой, представляет собой информацию, необходимую для определения единицы кодирования, имеющей древовидную структуру, единицы прогнозирования, имеющей древовидную структуру, и единицы преобразования, имеющей древовидную структуру, как описано выше со ссылкой на фиг. 10-12, и включает в себя флаг разбиения единиц преобразования (флаг TU-размера), указывающий размер максимальной единицы кодирования, кодированную глубину, информацию сегментов единицы прогнозирования, флаг разбиения, указывающий то, разбивается единица кодирования или нет, информацию размера единицы преобразования, и флаг разбиения единиц преобразования (флага TU-размера), указывающий то, разбивается единица преобразования или нет. Примеры информации кодирования, помимо информации иерархической структуры, включают в себя информацию режима прогнозирования для внутреннего/внешнего прогнозирования, применяемого к каждой единице прогнозирования, информацию вектора движения, информацию направления прогнозирования, информацию цветовых компонентов, применяемую к каждой единице данных в случае, когда используется множество цветовых компонентов, и информацию коэффициентов преобразования. В дальнейшем в этом документе, иерархическая информация и дополнительная иерархическая информация могут упоминаться в качестве элемента синтаксиса, который должен энтропийно кодироваться или энтропийно декодироваться.
В частности, согласно вариантам осуществления настоящего изобретения, предоставляется способ определения контекстной модели для эффективного энтропийного кодирования и декодирования уровня коэффициента преобразования, т.е. информации размера элементов синтаксиса. В дальнейшем в этом документе подробно описывается способ определения контекстной модели для энтропийного кодирования и декодирования уровня коэффициента преобразования.
Фиг. 14 является блок-схемой последовательности операций способа, иллюстрирующей операцию энтропийного кодирования и декодирования информации коэффициентов преобразования, включенной в единицу преобразования, согласно варианту осуществления настоящего изобретения.
Ссылаясь на фиг. 14, coded_block_flag, указывающий то, существует или нет коэффициент преобразования, который не равен 0 (в дальнейшем в этом документе, называемый "значимым коэффициентом"), из числа коэффициентов преобразования, включенных в текущую единицу преобразования, сначала энтропийно кодируется или декодируется на этапе 1410.
Если coded_block_flag равен 0, существуют только коэффициенты преобразования 0 в текущей единице преобразования, и в силу этого только значение 0 энтропийно кодируется или декодируется в качестве coded_block_flag, и информация уровня коэффициентов преобразования не подвергается энтропийному кодированию или декодированию.
На этапе 1420, если существует значимый коэффициент в текущей единице преобразования, карта SigMap значимости, указывающая местоположение значимого коэффициента, энтропийно кодируется или декодируется.
Карта SigMap значимости может формироваться из значимого бита и предварительно определенной информации, указывающей местоположение последнего коэффициента значимости. Значимый бит указывает то, представляет собой коэффициент преобразования согласно каждому индексу сканирования значимый коэффициент или равен 0, и может выражаться посредством significant_coeff_flag[i]. Как описано ниже, карта значимости устанавливается в единицах поднаборов, имеющих предварительно определенный размер, который получается посредством разбиения единицы преобразования. Соответственно, significant_coeff_flag[i] указывает то, равен 0 или нет коэффициент преобразования i-того индекса сканирования из числа коэффициентов преобразования, включенных в поднабор, включенный в единицу преобразования.
Согласно традиционному H.264, флаг (End-Of-Block), указывающий то, представляет собой или нет каждый значимый коэффициент последний значимый коэффициент, дополнительно энтропийно кодируется или декодируется. Тем не менее, согласно варианту осуществления настоящего изобретения, информация местоположения самого последнего значимого коэффициента энтропийно кодируется или декодируется. Как описано выше со ссылкой на фиг. 1-13, размер единицы преобразования согласно варианту осуществления настоящего изобретения не ограничивается 4×4, и также может представлять собой больший размер, к примеру, 8×8, 16×16 или 32×32. Неэффективно дополнительно энтропийно кодировать или декодировать флаг (End-Of-Block), указывающий то, представляет собой или нет каждый значимый коэффициент последний значимый коэффициент, поскольку размер флага (End-Of-Block) увеличивается. Соответственно, согласно варианту осуществления настоящего изобретения, информация местоположения последнего значимого коэффициента может энтропийно кодироваться или декодироваться. Например, если местоположение последнего значимого коэффициента представляет собой (x, y), где x и y являются целыми числами, last_significant_coeff_x и last_significant_coeff_y, которые представляют собой элементы синтаксиса, указывающие значения координат (x, y), могут энтропийно кодироваться или декодироваться.
На этапе 1430, информация уровня коэффициентов преобразования, указывающая размер коэффициента преобразования, энтропийно кодируется или декодируется. Согласно традиционному H.264/AVC, информация уровня коэффициента преобразования выражается посредством coeff_abs_level_minus1, который представляет собой элемент синтаксиса. Согласно вариантам осуществления настоящего изобретения, информация уровня коэффициента преобразования может выражаться посредством coeff_abs_level_greater1_flag, который представляет собой элемент синтаксиса касательно того превышает или нет абсолютное значение коэффициента преобразования 1, coeff_abs_level_greater2_flag, который представляет собой элемент синтаксиса касательно того превышает или нет абсолютное значение коэффициента преобразования 2, и coeff_abs_level_remaining, который указывает информацию размера оставшегося коэффициента преобразования.
Элемент coeff_abs_level_remaining синтаксиса, указывающий информацию размера оставшегося коэффициента преобразования, имеет разность в диапазоне между размером коэффициента преобразования (absCoeff) и значением baseLevel базового уровня, которое определяется посредством использования coeff_abs_level_greater1_flag и coeff_abs_level_greater2_flag. Значение baseLevel базового уровня определяется согласно уравнению: baseLevel=1+coeff_abs_level_greater1_flag+coeff_abs_level_greater2_flag, и coeff_abs_level_remaining определяется согласно уравнению: coeff_abs_level_remaining=absCoeff-baseLevel. Хотя coeff_abs_level_greater1_flag и coeff_abs_level_greater2_flag имеют значение 0 или 1, значение baseLevel базового уровня может иметь значение от 1 до 3. Соответственно, coeff_abs_level_remaining может варьироваться от (absCoeff-1) до (absCoeff-3). Как описано выше, (absCoeff-baseLevel), который представляет собой разность между размером исходного коэффициента absCoeff преобразования и значением baseLevel базового уровня, передается в качестве информации размера коэффициента преобразования, чтобы уменьшать размер передаваемых данных.
Фиг. 22 является блок-схемой, иллюстрирующей структуру устройства 2200 энтропийного кодирования согласно варианту осуществления настоящего изобретения. Устройство 2200 энтропийного кодирования по фиг. 22 соответствует энтропийному кодеру 120 устройства 100 кодирования видео по фиг. 1.
Ссылаясь на фиг. 22, устройство 2200 энтропийного кодирования включает в себя преобразователь 2210 в двоичную форму, модуль 2220 моделирования контекста и двоичный арифметический кодер 2230. Кроме того, двоичный арифметический кодер 2230 включает в себя механизм 2232 регулярного кодирования и механизм 2234 обходного кодирования.
Когда элементы синтаксиса, вводимые в устройство 2100 энтропийного кодирования, не являются двоичными значениями, модуль 2210 преобразования в двоичную форму преобразует в двоичную форму элементы синтаксиса, с тем чтобы выводить строку бинов, состоящую из двоичных значений 0 или 1. Бин обозначает каждый бит потока, состоящего из 0 или 1, и кодируется посредством контекстно-адаптивного двоичного арифметического кодирования (CABAC). Если элемент синтаксиса представляет собой данные, включающие в себя 0 и 1 с идентичными частотами, элемент синтаксиса выводится в механизм 2234 обходного кодирования, который не использует вероятность, для кодирования.
В частности, модуль 2210 преобразования в двоичную форму преобразует в двоичную форму coeff_abs_level_remaining, который представляет собой элемент синтаксиса, указывающий информацию размера коэффициента преобразования, в битовую строку префикса и битовую строку суффикса посредством использования параметра (cRiceParam). Ниже описывается операция преобразования в двоичную форму coeff_abs_level_remaining, который представляет собой элемент синтаксиса, указывающий информацию размера коэффициента преобразования, посредством использования модуля 2210 преобразования в двоичную форму.
Модуль 2220 моделирования контекста предоставляет вероятностную модель для кодирования битовой строки, соответствующей элементу синтаксиса, в механизм 2232 регулярного кодирования. Подробно, модуль 2220 моделирования контекста выводит вероятность двоичного значения для кодирования каждого двоичного значения битовой строки текущего элемента синтаксиса в двоичный арифметический кодер 2230.
Контекстная модель представляет собой вероятностную модель элемента выборки и включает в себя информацию относительно того, что из 0 и 1 соответствует наиболее вероятному символу (MPS) и наименее вероятному символу (LPS), и вероятность MPS или LPS.
Механизм 2232 регулярного кодирования выполняет двоичное арифметическое кодирование касательно битовой строки, соответствующей элементу синтаксиса, на основе информации относительно MPS и LPS, предоставленной посредством модуля 2220 моделирования контекста, и информации вероятности MPS или LPS.
Контекстная модель, используемая при кодировании coeff_abs_level_remaining, который представляет собой элемент синтаксиса, указывающий информацию размера коэффициента преобразования, может устанавливаться заранее согласно индексу бина коэффициента преобразования.
Фиг. 23 является блок-схемой, иллюстрирующей структуру устройства 2300 преобразования в двоичную форму согласно варианту осуществления настоящего изобретения. Устройство 2300 преобразования в двоичную форму по фиг. 23 соответствует модулю 2210 преобразования в двоичную форму по фиг. 22.
Ссылаясь на фиг. 23, устройство 2300 преобразования в двоичную форму включает в себя модуль 2310 определения параметров и модуль 2320 формирования битовых строк.
Модуль 2310 определения параметров сравнивает размер предыдущего коэффициента преобразования, который кодируется перед текущим коэффициентом преобразования, с предварительно определенным критическим значением, полученным на основе предыдущего параметра, используемого при преобразовании в двоичную форму элемента синтаксиса уровня предыдущих коэффициентов преобразования, указывающего размер предыдущего коэффициента преобразования, чтобы за счет этого определять то, следует или нет заменять на новый предыдущий параметр. Кроме того, модуль 2310 определения параметров получает параметр, который должен быть использован при преобразовании в двоичную форму элемента синтаксиса уровня коэффициентов преобразования, указывающего размер текущего коэффициента преобразования, посредством замены на новый или поддержания предыдущего параметра согласно результату определения.
Подробно, когда размер предыдущего коэффициента преобразования представляет собой cLastAbsCoeff, и предыдущий параметр представляет собой cLastRiceParam, модуль 2310 определения параметров определяет параметр cRiceParam, который должен быть использован при преобразовании в двоичную форму элемента синтаксиса уровня коэффициентов преобразования, coeff_abs_level_remaining, который указывает размер текущего коэффициента преобразования, на основе следующего алгоритма.
cRiceParam=Min(cLastRiceParam+(cLastAbsLevel>(3*(1<<cLastRiceParam))?1:0), 4)
Этот алгоритм может быть реализован посредством следующего псевдокода.
{
If cLastAbsCoeff>3*(1<<cLastRiceParam)
cRiceParam=Min(cLastRiceParam+1, 4)
}
Как описано выше алгоритм, модуль 2310 определения параметров сравнивает критическое значение th, которое получается на основе следующего уравнения: th=3*(1<<cLastRiceParam), и cLastRiceParam. Модуль 2310 определения параметров заменяет на новый предыдущий параметр (cLastRiceParam) посредством увеличения его на 1, когда cLastAbsCoeff превышает критическое значение th, и поддерживает предыдущий параметр без замены на новый, когда cLastAbsCoeff не превышает критическое значение th.
Начальный параметр устанавливается равным 0. Когда параметр (cRiceParam) заменяется на новый, он постепенно увеличивается на +1 по сравнению с предыдущим параметром (cLastRiceParam). Кроме того, критическое значение th, используемое при определении условий для возобновления параметра, определяется согласно параметру (cRiceParam), и в силу этого по мере того, как параметр (cRiceParam) заменяется на новый, критическое значение th также постепенно увеличивается. Иными словами, критическое значение th устанавливается с возможностью иметь значение, которое является пропорциональным предыдущему параметру (cLastRiceParam), а когда предыдущий параметр (cLastRiceParam) заменяется на новый, параметр (cRiceParam) имеет значение, которое постепенно увеличивается на +1 по сравнению с предыдущим параметром (cLastRiceParam). По мере того, как параметр (cRiceParam) заменяется на новый в диапазоне от 0 до 4, критическое значение th постепенно увеличивается до 3, 6, 12 и 24.
Модуль 2320 формирования битовых строк преобразует в двоичную форму элемент синтаксиса уровня коэффициентов преобразования (coeff_abs_level_remaining) коэффициента преобразования посредством использования параметра и выводит битовую строку, соответствующую элементу синтаксиса уровня коэффициентов преобразования (coeff_abs_level_remaining) коэффициента преобразования.
Подробно, модуль 2320 формирования битовых строк получает параметр cTrMax согласно следующему уравнению: cTrMax=4<<cRiceParam, посредством использования полученного параметра (cRiceParam). Параметр CtrMax используется в качестве стандарта для разделения элемента синтаксиса уровня коэффициентов преобразования (coeff_abs_level_remaining) на префикс и суффикс.
Модуль 2320 формирования битовых строк разделяет значение элемента синтаксиса уровня коэффициентов преобразования (coeff_abs_level_remaining) на основе параметра cTrMax, с тем чтобы получать префикс, имеющий значение, не превышающее параметр cTrMax, и суффикс, указывающий часть, которая превышает параметр cTrMax. Модуль 2320 формирования битовых строк определяет префикс в диапазоне, не превышающем cTrMax, согласно следующему уравнению: Prefix=Min(cTrMax, coeff_abs_level_remaining). Суффикс существует только тогда, когда элемент синтаксиса уровня коэффициентов преобразования (coeff_abs_level_remaining) имеет большее значение, чем cTrMax. Суффикс является значением, соответствующим (coeff_abs_level_remaining-cTrMax). Когда элемент синтаксиса уровня коэффициентов преобразования (coeff_abs_level_remaining) не превышает cTrMax, существует только префикс. Например, когда элемент синтаксиса уровня коэффициентов преобразования (coeff_abs_level_remaining) равен 10, и параметр cTrMax равен 7, элемент синтаксиса уровня коэффициентов преобразования (coeff_abs_level_remaining) сортируется на префикс, имеющий значение 7, и суффикс, имеющий значение 3. Альтернативно, когда элемент синтаксиса уровня коэффициентов преобразования (coeff_abs_level_remaining) равен 6, и параметр cTrMax равен 7, элемент синтаксиса уровня коэффициентов преобразования (coeff_abs_level_remaining) сортируется на префикс, имеющий значение 6, и не имеет суффикса.
Когда префикс и суффикс определяются посредством разделения значения элемента синтаксиса уровня коэффициентов преобразования (coeff_abs_level_remaining) на основе параметра cTrMax, модуль 2320 формирования битовых строк преобразует в двоичную форму префикс и суффикс посредством использования предварительно определенного способа преобразования в двоичную форму, который устанавливается заранее, чтобы выводить битовые строки, соответствующие префиксу и суффиксу. Например, модуль 2320 формирования битовых строк может выводить битовую строку посредством преобразования в двоичную форму префикса, имеющего значение, соответствующее Min(cTrMax, coeff_abs_level_remaining), посредством использования способа усеченного унарного преобразования в двоичную форму, и может выводить битовую строку посредством преобразования в двоичную форму суффикса, имеющего значение, соответствующее (coeff_abs_level_remaining-cTrMax), посредством использования способа на основе экспоненциального кода Голомба k-того порядка. Значение k может быть определено посредством использования параметра (cRiceParam), определенного посредством использования модуля 2310 определения параметров. Например, значение k может иметь значение cRiceParam+1.
Согласно способу усеченного унарного преобразования в двоичную форму, префикс, имеющий значение Min(cTrMax, coeff_abs_level_remaining), может преобразовываться в двоичную форму, как показано в нижеприведенной таблице 2.
Таблица 2
Min(cTrMax, coeff_abs_level_remaining)
Выходная битовая строка
0
0
1
10
2
110
3
1110
…
…
Модуль 2320 формирования битовых строк может формировать битовую строку, соответствующую префиксу и суффиксу, согласно параметру (cRiceParam) и посредством обращения к таблице, установленной заранее. Согласно способу таблицы поиска, таблица, установленная заранее, может устанавливаться таким образом, что длина битовой строки, соответствующей относительно большому значению, уменьшается по мере того, как увеличивается значение параметра (cRiceParam).
Далее подробно описывается операция энтропийного кодирования элемента синтаксиса, связанного с единицей преобразования согласно варианту осуществления настоящего изобретения, со ссылкой на фиг. 15-21.
Фиг. 15 иллюстрирует единицу 1500 преобразования, которая энтропийно кодируется согласно варианту осуществления настоящего изобретения. Хотя единица 1500 преобразования, имеющая размер 16×16, проиллюстрирована на фиг. 15, размер единицы 1500 преобразования не ограничивается проиллюстрированным размером 16×16, и также может представлять собой различные размеры в пределах от 4×4 до 2×32.
Ссылаясь на фиг. 15, для энтропийного кодирования и декодирования коэффициента преобразования, включенного в единицу 1500 преобразования, единица 1500 преобразования может быть разделена на меньшие единицы преобразования. В дальнейшем в этом документе описывается операция энтропийного кодирования элемента синтаксиса, связанного с единицей 1510 преобразования 4×4, включенной в единицу 1500 преобразования. Эта операция энтропийного кодирования элемента синтаксиса, связанного с единицей 1510 преобразования 4×4, также может применяться к единице преобразования других размеров.
Коэффициенты преобразования, включенные в единицу 1510 преобразования 4×4, имеют коэффициент преобразования (absCoeff), как проиллюстрировано на фиг. 15. Коэффициенты преобразования, включенные в единицу 1510 преобразования 4×4, могут преобразовываться в последовательную форму согласно предварительно определенному порядку сканирования, как проиллюстрировано на фиг. 15, и последовательно обрабатываться. Тем не менее, порядок сканирования не ограничивается тем, что проиллюстрировано, и также может модифицироваться.
Как описано выше, примеры элементов синтаксиса, связанных с единицей 1510 преобразования 4×4, представляют собой significant_coeff_flag, который представляет собой синтаксис, указывающий то, представляет собой или нет каждый коэффициент преобразования, включенный в единицу преобразования, значимый коэффициент преобразования, имеющий значение, которое не равно 0, coeff_abs_level_greater1_flag, который представляет собой элемент синтаксиса, указывающий то, превышает или нет абсолютное значение коэффициента преобразования 1, coeff_abs_level_greater2_flag, который представляет собой элемент синтаксиса, указывающий то, превышает или нет абсолютное значение 2, и coeff_abs_level_remaining, который представляет собой элемент синтаксиса, указывающий информацию размера оставшихся коэффициентов преобразования.
Фиг. 16 иллюстрирует карту 1600 SigMap значимости, соответствующую единице 1510 преобразования по фиг. 15 согласно варианту осуществления настоящего изобретения.
Ссылаясь на фиг. 15 и 16, устанавливается карта 1600 SigMap значимости, имеющая значение 1 для каждого из значимых коэффициентов преобразования, которые имеют значение, которое не равно 0, из числа коэффициентов преобразования, включенных в единицу 1510 преобразования 4×4 по фиг. 15. Карта 1600 SigMap значимости энтропийно кодируется или декодируется посредством использования предварительно установленной контекстной модели.
Фиг. 17 иллюстрирует coeff_abs_level_greater1_flag 1700, соответствующий единице 1510 преобразования 4×4 по фиг. 15.
Ссылаясь на фиг. 15-17, устанавливается coeff_abs_level_greater1_flag 1700, который представляет собой флаг, указывающий то, имеет или нет соответствующий коэффициент преобразования значимости значение, превышающее 1, касательно значимых коэффициентов преобразования, для которых карта 1600 SigMap значимости имеет значение 1. Когда coeff_abs_level_greater1_flag 1700 равен 1, он указывает то, что соответствующий коэффициент преобразования представляет собой коэффициент преобразования, имеющий значение, превышающее 1, а когда coeff_abs_level_greater1_flag 1700 равен 0, он указывает то, что соответствующий коэффициент преобразования представляет собой коэффициент преобразования, имеющий значение 1. На фиг. 17, когда coeff_abs_level_greater1_flag 1710 находится в позиции коэффициента преобразования, имеющего значение 1, coeff_abs_level_greater1_flag 1710 имеет значение 0.
Фиг. 18 иллюстрирует coeff_abs_level_greater2_flag 1800, соответствующий единице 1510 преобразования 4×4 по фиг. 15.
Ссылаясь на фиг. 15-18, устанавливается coeff_abs_level_greater2_flag 1800, указывающий то, имеет или нет соответствующий коэффициент преобразования значение, превышающее 2, касательно коэффициентов преобразования, для которых coeff_abs_level_greater1_flag 1700 устанавливается равным 1. Когда coeff_abs_level_greater2_flag 1800 равен 1, он указывает то, что соответствующий коэффициент преобразования представляет собой коэффициент преобразования, имеющий значение, превышающее 2, а когда coeff_abs_level_greater2_flag 1800 равен 0, он указывает то, что соответствующий коэффициент преобразования представляет собой коэффициент преобразования, имеющий значение 2. На фиг. 18, когда coeff_abs_level_greater2_flag 1810 находится в позиции коэффициента преобразования, имеющего значение 2, coeff_abs_level_greater2_flag 1810 имеет значение 0.
Фиг. 19 иллюстрирует coeff_abs_level_remaining 1910, соответствующий единице 1510 преобразования 4×4 по фиг. 15.
Ссылаясь на фиг. 15-19, coeff_abs_level_remaining 1900, который представляет собой элемент синтаксиса, указывающий информацию размера оставшихся коэффициентов преобразования, может быть получен посредством вычисления (absCoeff-baseLevel) каждого коэффициента преобразования.
Как описано выше, coeff_abs_level_remaining 1900, который представляет собой элемент синтаксиса, указывающий информацию размера оставшихся коэффициентов преобразования, имеет разность в диапазоне между размером коэффициента преобразования (absCoeff) и значением baseLevel базового уровня, определенным посредством использования coeff_abs_level_greater1_flag и coeff_abs_level_greater2_flag. Значение baseLevel базового уровня определяется согласно уравнению: baseLevel=1+coeff_abs_level_greater1_flag+coeff_abs_level_greater2_flag, и coeff_abs_level_remaining определяется согласно уравнению: coeff_abs_level_remaining=absCoeff-baseLevel.
Модуль 2310 определения параметров считывает coeff_abs_level_remaining 1900 согласно проиллюстрированному порядку сканирования, чтобы получать размеры коэффициентов преобразования, к примеру, "0 3 12 3 3 3 4 4 5 5 8 8".
Модуль 2310 определения параметров последовательно определяет параметр (cRiceParam), используемый при преобразовании в двоичную форму информации размера каждого коэффициента преобразования согласно порядку сканирования. Во-первых, начальный параметр (cRiceParam) устанавливается равным 0. Согласно вышеописанному алгоритму, параметр увеличивается только тогда, когда удовлетворяется условие cLastAbsCoeff>3*(1<<cLastRiceParam). Первоначально установленный параметр (cRiceParam) равен 0, и он поддерживает это значение до тех пор, пока размер предыдущего коэффициента преобразования (cLastAbsCoeff) не будет иметь значение 3*(1<<0), т.е. значение, превышающее 3. Ссылаясь на фиг. 19, размер третьего коэффициента преобразования, "12" (1920), превышает 3, и в силу этого, когда размер коэффициента преобразования, который идет после коэффициента преобразования "12" (1920), преобразуется в двоичную форму, используется параметр (cRiceParam), имеющий значение, замененное с 0 на 1. Когда параметр (cRiceParam) заменяется на 1, параметр (cRiceParam) заменяется на новый снова только тогда, когда удовлетворяется условие cLastAbsCoeff>3*(1<<1), т.е. cLastAbsCoeff>6. Ссылаясь на фиг. 19, "8" (1930), которое представляет собой размер второго коэффициента преобразования от последнего, превышает 6, и в силу этого, параметр (cRiceParam) заменяется с 1 на 2.
Фиг. 20 иллюстрирует таблицу, показывающую элементы синтаксиса, связанные с единицами 1510, 1600, 1700, 1800 и 1900 преобразования, проиллюстрированными на фиг. 15-19. На фиг. 20, GTR1 обозначает coeff_abs_level_greater1_flag; GTR2 обозначает coeff_abs_level_greater2_flag, и Remaining обозначает coeff_abs_level_remaining. Ссылаясь на фиг. 20, элемент синтаксиса, указывающий уровень коэффициентов преобразования, coeff_abs_level_remaining, не является двоичным значением и в силу этого преобразуется в двоичную форму посредством использования параметра.
Фиг. 21 иллюстрирует другой пример coeff_abs_level_remaining, который преобразуется в двоичную форму согласно варианту осуществления настоящего изобретения.
Как описано выше, начальный параметр (cRiceParam) устанавливается равным 0 и увеличивается на +1 только тогда, когда удовлетворяется условие cLastAbsCoeff>3*(1<<cLastRiceParam). Начальный параметр (cRiceParam) имеет значение Min(cLastRiceParam+1, 4), и в силу этого, замененный на новый параметр может не иметь значения, превышающего 4. Критическое значение, 3*(1<<cLastRiceParam), которое используется при определении того, следует или нет заменять на новый параметр, имеет значение 3*(1<<0), 3*(1<<1), 3*(1<<2) или 3*(1<<3), согласно предыдущему параметру (cRiceParam), используемому при преобразовании в двоичную форму размера предыдущего коэффициента преобразования. Соответственно, параметр (cRiceParam) увеличивается на +1 после обработки коэффициента преобразования, имеющего значение, превышающее 3, а затем увеличивается на +1 после обработки коэффициента преобразования, который превышает 6, а затем увеличивается на +1 после обработки коэффициента преобразования, который превышает 12, и увеличивается на +1 в последний раз после того, как обрабатывается коэффициент преобразования, превышающий 24. Иными словами, параметр (cRiceParam) постепенно увеличивается на +1 также тогда, когда существует резкое изменение значений из числа коэффициентов преобразования.
Ссылаясь на фиг. 21, параметр (cRiceParam), имеющий первоначально установленное значение 0, увеличивается на +1 после обработки коэффициента 2110 преобразования, который имеет значение 12, и превышает 3 в первый раз. После единицы 2110 преобразования, имеющей значение 12, замененный на новый параметр (cRiceParam) поддерживается до тех пор, пока не будет обработана единица преобразования, превышающая 6, которое является следующим критическим значением. После того, как обрабатывается коэффициент 2120 преобразования, имеющий значение 8, которое превышает 6, которое является следующим критическим значением, параметр (cRiceParam) увеличивается на +1, так что он имеет значение 2. После единицы 2120 преобразования, имеющей значение 8, замененный на новый параметр (cRiceParam) поддерживается до тех пор, пока не будет обработана единица преобразования, превышающая 12, которое является следующим критическим значением. После единицы 2120 преобразования, имеющей значение 8, после того, как обрабатывается коэффициент 2130 преобразования, имеющий значение 13, которое превышает 12, которое является следующим критическим значением, параметр (cRiceParam) увеличивается на +1, так что он имеет значение 3. После единицы 2130 преобразования, имеющей значение 13, замененный на новый параметр (cRiceParam) поддерживается до тех пор, пока не будет обработана единица преобразования, превышающая 24, которое является следующим критическим значением. После единицы 2130 преобразования, имеющей значение 13, после того, как обрабатывается коэффициент 2140 преобразования, имеющий значение 25, которое превышает 24, которое является следующим критическим значением, параметр (cRiceParam) увеличивается на +1, так что он имеет значение 4. В операциях преобразования в двоичную форму коэффициентов преобразования после коэффициента 2140 преобразования, имеющего значение 25, поскольку параметр (cRiceParam) достигает максимума в 4, используется параметр (cRiceParam) 4, и более не выполняется операция замены на новый.
Как описано выше, когда параметр (cRiceParam), используемый при преобразовании в двоичную форму элемента coeff_abs_level_remaining синтаксиса уровня коэффициентов преобразования, указывающего размер текущего коэффициента преобразования, определяется посредством использования модуля 2310 определения параметров, модуль 2320 формирования битовых строк сортирует элемент coeff_abs_level_remaining синтаксиса уровня коэффициентов преобразования на префикс и суффикс на основе параметра (cTrMax), который определяется посредством использования параметра (cRiceParam), и преобразует в двоичную форму префикс и суффикс посредством применения способов преобразования в двоичную форму, установленных заранее, относительно префикса и суффикса, чтобы за счет этого выводить битовые строки, соответствующие coeff_abs_level_remaining.
Фиг. 24 является блок-схемой последовательности операций, иллюстрирующей способ энтропийного кодирования для элементов синтаксиса, указывающих уровень коэффициентов преобразования, согласно варианту осуществления настоящего изобретения.
Ссылаясь на фиг. 24, на этапе 2410, модуль 2310 определения параметров получает элементы синтаксиса уровня коэффициентов преобразования (coeff_abs_level_remaining), указывающие размеры коэффициентов преобразования, включенных в единицу преобразования, согласно предварительно определенному порядку сканирования.
На этапе 2420, модуль 2310 определения параметров сравнивает размер предыдущего коэффициента преобразования (cLastAbsCoeff), который кодируется перед текущим коэффициентом преобразования, с предварительно определенным критическим значением, которое получается на основе предыдущего параметра (cLastRiceParam), используемого при преобразовании в двоичную форму элементов синтаксиса уровня предыдущих коэффициентов преобразования, указывающих размер предыдущего коэффициента преобразования (cLastAbsCoeff), чтобы за счет этого определять то, следует или нет заменять на новый предыдущий параметр (cLastRiceParam).
На этапе 2430, модуль 2310 определения параметров заменяет на новый или поддерживает предыдущий параметр на основе результата определения этапа 2420, чтобы за счет этого получать параметр, используемый при преобразовании в двоичную форму элемента синтаксиса уровня коэффициентов преобразования, указывающего размер текущего коэффициента преобразования. Как описано выше, модуль 2310 определения параметров сравнивает критическое значение th, полученное на основе th=3*(1<<cLastRiceParam), с предыдущим параметром cLastRiceParam; и когда cLastAbsCoeff превышает th, модуль 2310 определения параметров заменяет на новый предыдущий параметр посредством увеличения его на 1; и когда cLastAbsCoeff не превышает th, модуль 2310 определения параметров не заменяет на новый, а поддерживает предыдущий параметр. Когда предыдущий параметр заменяется на новый, замененный на новый параметр постепенно увеличивается на +1.
На этапе 2440, модуль 2320 формирования битовых строк преобразует в двоичную форму элемент синтаксиса уровня коэффициентов преобразования (coeff_abs_level_remaining) посредством использования полученного параметра (cRiceParam), за счет этого выводя битовую строку, соответствующую элементу синтаксиса уровня коэффициентов преобразования (coeff_abs_level_remaining) текущего коэффициента преобразования.
Согласно операции энтропийного кодирования элемента синтаксиса уровня коэффициентов преобразования согласно вариантам осуществления настоящего изобретения, описанным выше, даже когда существует коэффициент преобразования, имеющий резко большое значение, из числа коэффициентов преобразования, которые обрабатываются согласно предварительно определенному порядку сканирования, параметр возможно, не должен резко модифицироваться, а может постепенно увеличиваться на +1.
Между тем, операция обновления параметра для того, чтобы энтропийно кодировать элемент синтаксиса уровня коэффициентов преобразования согласно вариантам осуществления настоящего изобретения, описанным выше, также может применяться при преобразовании в двоичную форму элементов синтаксиса, отличных от элемента синтаксиса уровня коэффициентов преобразования.
Операция обновления параметра согласно варианту осуществления настоящего изобретения может применяться при обновлении параметра, используемого при преобразовании в двоичную форму других элементов синтаксиса посредством использования кода Голомба-Райса. Помимо этого, способ обновления параметра согласно варианту осуществления настоящего изобретения может применяться при обновлении параметра, используемого при преобразовании в двоичную форму элемента синтаксиса посредством применения способа преобразования в двоичную форму, к примеру, способа преобразования в двоичную форму на основе конкатенированного кода. Когда используется конкатенированный код, элементы синтаксиса сортируются на префикс и суффикс, и способ обновления параметра согласно варианту осуществления настоящего изобретения может применяться при обновлении предварительно определенного параметра в целях определения префикса и суффикса. Аналогично, способ обновления параметра согласно варианту осуществления настоящего изобретения может применяться при обновлении параметра, используемого при кодировании элемента синтаксиса посредством использования таблицы кодов фиксированной длины и кодов переменной длины (VLC), аналогично способу энтропийного кодирования с низкой сложностью (LCEC).
Фиг. 25 является блок-схемой, иллюстрирующей устройство 2500 энтропийного декодирования согласно варианту осуществления настоящего изобретения. Устройство 2500 энтропийного декодирования соответствует энтропийному декодеру 220 устройства 200 декодирования видео по фиг. 2. Устройство 2500 энтропийного декодирования выполняет обратную операцию операции энтропийного кодирования, выполняемой посредством устройства 2200 энтропийного кодирования, описанного выше.
Ссылаясь на фиг. 25, устройство 2500 энтропийного декодирования включает в себя модуль 2510 моделирования контекста, механизм 2520 регулярного декодирования, механизм 2530 обходного декодирования и модуль 2540 отмены преобразования в двоичную форму.
Элемент синтаксиса, кодированный посредством использования обходного кодирования, выводится в обходной декодер 2530 для декодирования, и элемент синтаксиса, кодированный посредством регулярного кодирования, декодируется посредством использования регулярного декодера 2520. Регулярный декодер 2520 арифметически декодирует двоичное значение текущего элемента синтаксиса на основе контекстной модели, предоставленной посредством использования модуля 2510 моделирования контекста, чтобы за счет этого выводить битовую строку. Контекстная модель, используемая при арифметическом декодировании элемента синтаксиса, указывающего информацию размера коэффициента преобразования, coeff_abs_level_remaining, может устанавливаться заранее согласно индексу бина коэффициента преобразования.
Модуль 2540 отмены преобразования в двоичную форму снова восстанавливает битовые строки, которые арифметически декодируются посредством использования механизма 2520 регулярного декодирования или механизма 2530 обходного декодирования, в элементы синтаксиса.
Устройство 2500 энтропийного декодирования арифметически декодирует элементы синтаксиса, связанные с единицами преобразования, к примеру, SigMap, coeff_abs_level_greater1_flag или coeff_abs_level_greater2_flag, в дополнение к coeff_abs_level_remaining, и выводит их. Когда элементы синтаксиса, связанные с единицей преобразования, восстанавливаются, данные, включенные в единицы преобразования, могут декодироваться посредством использования обратного квантования, обратного преобразования и прогнозирующего декодирования, на основе восстановленных элементов синтаксиса.
Фиг. 26 является блок-схемой, иллюстрирующей структуру устройства 2600 отмены преобразования в двоичную форму согласно варианту осуществления настоящего изобретения. Устройство 2600 отмены преобразования в двоичную форму по фиг. 26 соответствует модулю 2540 отмены преобразования в двоичную форму по фиг. 25.
Ссылаясь на фиг. 26, устройство 2600 отмены преобразования в двоичную форму включает в себя модуль 2610 определения параметров и модуль 2620 восстановления элементов синтаксиса.
Модуль 2610 определения параметров сравнивает размер предыдущего коэффициента преобразования, который декодируется перед текущим коэффициентом преобразования, с предварительно определенным критическим значением, которое получается на основе предыдущего параметра, используемого при отмене преобразования в двоичную форму элемента синтаксиса уровня предыдущих коэффициентов преобразования, указывающего размер предыдущего коэффициента преобразования, чтобы за счет этого определять то, следует или нет заменять на новый предыдущий параметр. Модуль 2610 определения параметров заменяет на новый или поддерживает предыдущий параметр на основе результата определения, чтобы за счет этого получать параметр, используемый при отмене преобразования в двоичную форму элемента синтаксиса уровня коэффициентов преобразования, указывающего размер текущего коэффициента преобразования. Идентично модулю 2310 определения параметров по фиг. 23, описанному выше, модуль 2610 определения параметров сравнивает критическое значение th, полученное на основе уравнения: th=3*(1<<cLastRiceParam), с предыдущим параметром cLastRiceParam. Когда cLastAbsCoeff превышает th, модуль 2610 определения параметров заменяет на новый предыдущий параметр (cLastRiceParam) посредством увеличения его на 1; и когда cLastAbsCoeff не превышает th, модуль 2610 определения параметров не заменяет на новый, а поддерживает предыдущий параметр (cLastRiceParam).
Модуль 2620 восстановления элементов синтаксиса отменяет преобразование в двоичную форму битовой строки, соответствующей элементу синтаксиса уровня текущих коэффициентов преобразования, посредством использования полученного параметра, чтобы за счет этого восстанавливать элемент синтаксиса (coeff_abs_level_remaining), указывающий размер текущего коэффициента преобразования. Подробно, модуль 2620 восстановления элементов синтаксиса сортирует битовые строки на битовую строку префикса, соответствующую битовой строке, которая получается посредством преобразования в двоичную форму значения, соответствующего Min(cTrMax, coeff_abs_level_remaining), посредством использования способа усеченного унарного преобразования в двоичную форму, и на битовую строку суффикса, соответствующую битовой строке, которая получается посредством преобразования в двоичную форму значения, соответствующего (coeff_abs_level_remaining-cTrMax), посредством использования способа на основе экспоненциального кода Голомба k-того порядка (k составляет cRiceParam+1), и восстанавливает элемент синтаксиса (coeff_abs_level_remaining) посредством отмены преобразования в двоичную форму битовой строки префикса посредством использования способа усеченного унарного преобразования в двоичную форму и битовой строки суффикса посредством использования способа на основе экспоненциального кода Голомба k-того порядка.
Фиг. 27 является блок-схемой последовательности операций, иллюстрирующей способ энтропийного декодирования уровня коэффициентов преобразования согласно варианту осуществления настоящего изобретения.
Ссылаясь на фиг. 27, на этапе 2710, элементы синтаксиса уровня коэффициентов преобразования, указывающие размеры коэффициентов преобразования, включенных в единицу преобразования, синтаксически анализируются из потока битов. Синтаксически проанализированные элементы синтаксиса уровня коэффициентов преобразования представляют собой битовые строки, состоящие из нулей и единиц.
На этапе 2720, модуль 2610 определения параметров сравнивает размер предыдущего коэффициента преобразования (cLastAbsCoeff), который восстанавливается перед текущим коэффициентом преобразования, с предварительно определенным критическим значением, полученным на основе предыдущего параметра (cLastRiceParam), используемого при отмене преобразования в двоичную форму элемента синтаксиса уровня предыдущих коэффициентов преобразования, указывающего размер предыдущего коэффициента преобразования (cLastAbsCoeff), чтобы за счет этого определять то, следует или нет заменять на новый предыдущий параметр (cLastRiceParam).
На этапе 2730, модуль 2610 определения параметров заменяет на новый или поддерживает предыдущий параметр (cLastRiceParam) на основе результата определения, чтобы за счет этого получать параметр (cRiceParam), используемый при отмене преобразования в двоичную форму элемента синтаксиса уровня коэффициентов преобразования (coeff_abs_level_remaining), указывающего размер текущего коэффициента преобразования. Как описано выше, модуль 2610 определения параметров сравнивает критическое значение th, полученное на основе уравнения: th=3*(1<<cLastRiceParam), с предыдущим параметром cLastRiceParam. Когда cLastAbsCoeff превышает th, модуль 2610 определения параметров заменяет на новый предыдущий параметр (cLastRiceParam) посредством увеличения его на 1; и когда cLastAbsCoeff не превышает th, модуль 2610 определения параметров не заменяет на новый, а поддерживает предыдущий параметр. Когда параметр заменяется на новый, замененный на новый параметр постепенно увеличивается на +1.
На этапе 2740, модуль 2620 восстановления элементов синтаксиса отменяет преобразование в двоичную форму элемента синтаксиса уровня текущих коэффициентов преобразования посредством использования полученного параметра, чтобы получать информацию размера текущего коэффициента преобразования. Как описано выше, поскольку coeff_abs_level_remaining=absCoeff-baseLevel, coeff_abs_level_greater1_flag и coeff_abs_level_greater2_flag восстанавливаются в дополнение к coeff_abs_level_remaining, и когда значение baseLevel базового уровня определяется согласно уравнению: baseLevel=1+coeff_abs_level_greater1_flag+coeff_abs_level_greater2_flag, размер текущего коэффициента преобразования может быть определен согласно уравнению: absCoeff=coeff_abs_level_remaining+baseLevel.
Изобретение также может быть осуществлено как считываемые компьютером коды на считываемом компьютером носителе записи. Считываемым компьютером носителем записи является любой компонент (устройство) хранения данных, который может сохранять данные, которые впоследствии могут считываться посредством компьютерной системы. Примеры считываемого компьютером носителя записи включают в себя постоянное запоминающее устройство (ROM), оперативное запоминающее устройство (RAM), CD-ROM, магнитные ленты, гибкие диски, оптические компоненты хранения данных и т.д. Считываемый компьютером носитель записи также может быть распределен по сетевым компьютерным системам, так что считываемый компьютером код сохраняется и выполняется распределенным способом.
Хотя это изобретение конкретно показано и описано со ссылкой на его примерные варианты осуществления, специалисты в данной области техники должны понимать, что различные изменения по форме и содержанию могут быть сделаны без отступления от сущности и объема изобретения, заданных посредством прилагаемой формулы изобретения. Следовательно, объем изобретения задается не посредством подробного описания изобретения, а посредством прилагаемой формулы изобретения, и любые отличия в пределах объема должны истолковываться как включенные в настоящее изобретение.