СПОСОБ И УСТРОЙСТВО ДЛЯ ЭНТРОПИЙНОГО КОДИРОВАНИЯ С ИСПОЛЬЗОВАНИЕМ ИЕРАРХИЧЕСКОЙ ЕДИНИЦЫ ДАННЫХ И СПОСОБ И УСТРОЙСТВО ДЛЯ ДЕКОДИРОВАНИЯ
METHOD AND DEVICE FOR ENTROPY CODING USING HIERARCHICAL DATA UNIT AND METHOD AND APPARATUS FOR DECODING

ОБЛАСТЬ ТЕХНИКИ
Настоящее изобретение относится к кодированию и декодированию видео и, в частности, к энтропийному кодированию и энтропийному декодированию синтаксических элементов, формирующих видеоданные.
УРОВЕНЬ ТЕХНИКИ
В способах сжатия изображения, таких как MPEG-1, MPEG-2 и MPEG-4 H.264/MPEG-4 расширенное кодирование видео (advanced video coding (AVC)), изображение разделяется на множество блоков, имеющих заранее заданные размеры, и затем остаточные данные блоков получаются с помощью внешнего (inter) предсказания или внутреннего (intra) предсказания. Остаточные данные сжимаются с помощью преобразования, квантования, сканирования, кодирования длин серий и энтропийного кодирования. Во время энтропийного кодирования поток битов формируется в результате энтропийного кодирования синтаксических элементов, таких как коэффициенты дискретного косинусного преобразования (DCT) или вектора движения. В отношении декодера, синтаксические элементы извлекаются из потока битов и декодирование выполняется на основании извлеченных синтаксических элементов.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
ТЕХНИЧЕСКАЯ ЗАДАЧА
Настоящее изобретение предоставляет способ и устройство для объединения дополнительной информации, включающей в себя синтаксические элементы, для выбора контекстной модели, которая должна быть использована для энтропийного кодирования синтаксических элементов, и тем самым эффективного энтропийного кодирования и декодирования синтаксических элементов.
ТЕХНИЧЕСКОЕ РЕШЕНИЕ
В соответствии с одним или несколькими вариантами осуществления настоящего изобретения контекстная модель для энтропийного кодирования синтаксического элемента текущей единицы данных основывается на доступном синтаксическом элементе текущей единицы данных.
ПРЕИМУЩЕСТВЕННЫЕ ЭФФЕКТЫ
В соответствии с одним или несколькими вариантами осуществления настоящего изобретения требуемое количество памяти для хранения предварительно восстановленной информации внешнего устройства может быть уменьшено, за счет выбора контекстной модели на основании информации о единице данных, включающей в себя текущий синтаксический элемент, вместо использования предварительно восстановленной информации внешнего устройства.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
На ФИГ. 1 представлена блок-схема устройства кодирования видео, согласно варианту осуществления настоящего изобретения.
На ФИГ. 2 представлена блок-схема устройства декодирования видео, согласно варианту осуществления настоящего изобретения.
На ФИГ. 3 представлена схема для описания принципа единиц кодирования, согласно варианту осуществления настоящего изобретения.
На ФИГ. 4 представлена подробная блок-схема кодера изображения, основанного на единицах кодирования, имеющих иерархическую структуру, согласно варианту осуществления настоящего изобретения.
На ФИГ. 5 представлена подробная блок-схема декодера изображения, основанного на единицах кодирования, имеющих иерархическую структуру, согласно варианту осуществления настоящего изобретения.
На ФИГ. 6 представлена схема, подробнее описывающая единицы кодирования в соответствии с глубинами и разделами, согласно варианту осуществления настоящего изобретения.
На ФИГ. 7 представлена схема для описания отношения между единицей кодирования и единицами преобразования, согласно варианту осуществления настоящего изобретения.
На ФИГ. 8 представлена схема для описания информации кодирования единиц кодирования, соответствующих кодируемой глубине, согласно варианту осуществления настоящего изобретения.
На ФИГ. 9 представлена схема, изображающая более глубокие единицы кодировании, согласно глубинам в соответствии с вариантом осуществления настоящего изобретения.
На ФИГ. с 10 по 12 представлены схемы для описания отношения между единицами кодирования, единицами предсказания и единицами преобразования, согласно варианту осуществления настоящего изобретения.
На ФИГ. 13 представлена схема для описания отношения между единицей кодирования, единицей предсказания или разделом, и единицей преобразования, согласно информации режима кодирования, указанной в Таблице 1.
На ФИГ. 14 представлена блок-схема устройства энтропийного кодирования, согласно варианту осуществления настоящего изобретения.
На ФИГ. 15 представлена блок-схема модуля определения контекстной модели, показанного на ФИГ. 14.
На ФИГ. 16 представлена схема для описания единицы данных, имеющей иерархическую структуру, и информации разделения единицы данных, имеющей иерархическую структуру, согласно варианту осуществления настоящего изобретения.
На ФИГ. 17A и 17B представлены ссылочные схемы, описывающие символы, указывающие иерархическую структуру единиц данных, согласно вариантам осуществления настоящего изобретения.
На ФИГ. 18A и 18B представлены схемы индексов контекста для определения контекстной модели, в соответствии с комбинацией дополнительной информации, согласно вариантам осуществления настоящего изобретения.
На ФИГ. 19 представлена ссылочная схема контекстной модели, согласно варианту осуществления настоящего изобретения.
На ФИГ. 20 представлен график значения вероятности наиболее вероятного символа (MPS), согласно варианту осуществления настоящего изобретения.
На ФИГ. 21 представлена схема для описания операции двоичного арифметического кодирования, выполняемой обычным механизмом кодирования, показанным на ФИГ. 14.
На ФИГ. 22 представлена блок-схема, иллюстрирующая способ энтропийного кодирования, согласно варианту осуществления настоящего изобретения.
На ФИГ. 23 представлена блок-схема устройства энтропийного декодирования, согласно варианту осуществления настоящего изобретения.
На ФИГ. 24 представлена блок-схема, иллюстрирующая способ энтропийного декодирования, согласно варианту осуществления настоящего изобретения.
ЛУЧШИЕ ВАРИАНТЫ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
Согласно аспекту настоящего изобретения предоставляется способ кодирования видео, включающий в себя: кодирование видео на основании единиц данных, имеющих иерархическую структуру; определение контекстной модели, используемой для энтропийного кодирования первого синтаксического элемента текущей единицы данных, который должен быть энтропийно кодирован, на основании по меньшей мере одного второго синтаксического элемента текущей единицы данных, где по меньшей мере один второй синтаксический элемент является применяемым и отличным от первого синтаксического элемента текущей единицы данных; и энтропийное кодирование первого синтаксического элемента текущей единицы данных с помощью определенной контекстной модели.
В соответствии с другим аспектом настоящего изобретения предоставляется устройство кодирования видео, включающее в себя: иерархический кодер для кодирования видео на основании единиц данных, имеющих иерархическую структуру; и энтропийный кодер для определения контекстной модели, используемой для энтропийного кодирования первого синтаксического элемента текущей единицы данных, который должен быть энтропийно кодирован, на основании по меньшей мере одного второго синтаксического элемента текущей единицы данных, где по меньшей мере один второй синтаксический элемент является применяемым и отличным от первого синтаксического элемента текущей единицы данных; и энтропийное кодирование первого синтаксического элемента текущей единицы данных с помощью определенной контекстной модели.
В соответствии с другим аспектом настоящего изобретения предоставляется способ декодирования видео, включающий в себя: извлечение синтаксических элементов изображения, закодированного на основании единиц данных, имеющих иерархическую структуру, посредством синтаксического анализа потока битов; определение контекстной модели, используемой для энтропийного декодирования первого синтаксического элемента текущей единицы данных, который должен быть энтропийно декодирован, на основании по меньшей мере одного второго синтаксического элемента текущей единицы данных, где по меньшей мере один второй синтаксический элемент является применяемым и отличным от первого синтаксического элемента текущей единицы данных; и энтропийное декодирование первого синтаксического элемента с помощью определенной контекстной модели.
В соответствии с другим аспектом настоящего изобретения предоставляется устройство декодирования видео, включающее в себя: устройство для извлечения синтаксических элементов для извлечения синтаксических элементов изображения, кодированного с помощью единиц данных, имеющих иерархическую структуру, посредством синтаксического анализа кодированного потока битов; и энтропийный декодер для определения контекстной модели, используемой для энтропийного декодирования первого синтаксического элемента текущей единицы данных, который должен быть энтропийно декодирован, на основании по меньшей мере одного второго синтаксического элемента текущей единицы данных, где по меньшей мере один второй синтаксический элемент является применяемым и отличным от первого синтаксического элемента текущей единицы данных, и энтропийного декодирования первого синтаксического элемента с помощью определенной контекстной модели.
ВАРИАНТЫ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
Далее в настоящем документе термин ′изображение′, используемый в различных вариантах осуществления настоящего изобретения, может обозначать не только неподвижное изображение, но может также обозначать движущееся изображение, такое как видео.
Когда различные операции выполняются над данными, относящимися к изображению, данные, относящиеся к изображению, могут быть разделены на группы данных и одинаковые операции могут проводиться над данными, входящими в одну группу данных. Далее в настоящем документе группа данных, сформированная в соответствии с заданным стандартом, обозначается как ′единица данных′. Также, операции, выполняемые по отношению к ′единице данных′, выполняются посредством использования данных, входящих в соответствующую единицу данных.
Далее в настоящем документе способы кодирования и декодирования видео и устройства кодирования и декодирования синтаксических элементов, имеющих древовидную структуру, основанную на единицах кодирования, соответствующих иерархической древовидной структуре, согласно варианту осуществления настоящего изобретения, описываются со ссылкой на ФИГ. с 1 по 13. Кроме того, процессы энтропийного кодирования и декодирования, используемые в способах кодирования и декодирования видео, показанных на ФИГ. с 1 по 14, подробно описывается со ссылкой на ФИГ. с 14 по 24.
На ФИГ. 1 представлена блок-схема устройства 100 кодирования видео согласно варианту осуществления настоящего изобретения.
Устройство 100 кодирования видео включает иерархический кодер 110 и энтропийный кодер 120.
Иерархический кодер 110 разделяет текущее изображение, которое должно быть кодировано, на единицы данных, имеющие заданные размеры, и кодирует единицы данных. Подробнее, иерархический кодер 110 может разделять текущее изображение на основании максимальной единицы кодирования. Максимальная единица кодирования согласно варианту осуществления настоящего изобретения может представлять собой единицу данных, имеющую размер, равный 32×32, 64×64, 128×128, 256×256 и т.д., где форма единицы данных представляет собой квадрат, имеющий ширину и высоту кратные 2 и превышающие 8.
Единица кодирования согласно варианту осуществления настоящего изобретения может характеризоваться максимальным размером и глубиной. Глубина обозначает число раз пространственного разбиения единицы кодирования из максимальной единицы кодирования, и при увеличении глубины можно получить более глубокие единицы кодирования согласно глубинам от максимальной единицы кодирования к минимальной единице кодирования. Глубина максимальной единицы кодирования является минимальной глубиной и глубина минимальной единицы кодирования является максимальной глубиной. Так как размер единицы кодирования, соответствующей каждой глубине, уменьшается при увеличении глубины максимальной единицы кодирования, единица кодирования, соответствующая верхней (менее глубокой) глубине, может включать в себя множество единиц кодирования, соответствующих нижней (более глубокой) глубине.
Как описано выше, данные изображения текущего изображения разделяются на максимальные единицы кодирования в соответствии с максимальным размером единицы кодирования, и каждая из максимальных единиц кодирования может включать более глубокие единицы кодирования, разделенные в соответствии с глубиной. Так как максимальная единица кодирования согласно варианту осуществления настоящего изобретения разделяется в соответствии с глубиной, пространственные данные изображения, содержащиеся в максимальной единице кодирования, можно иерархически классифицировать в соответствии с глубиной.
Максимальная глубина и максимальный размер единицы кодирования, ограничивающие итоговое число раз, которое максимальная единица кодирования может быть иерархически разделена по высоте и ширине, могут быть заранее заданны.
Иерархический кодер 110 кодирует по меньшей мере одну область разделения, полученную посредством разделения области максимальной единицы кодирования в соответствии с глубинами, и определяет глубину для вывода итоговых кодированных данных изображения, соответствующих по меньшей мере одой области разделения. Другими словами, иерархический кодер 110 определяет кодируемую глубину, кодируя данные изображения в более глубоких единицах кодирования согласно глубинам, в соответствии с максимальной единицей кодирования текущего изображения, и выбирая глубину, дающую наименьшую ошибку кодирования. Таким образом в итоге выводятся данные кодированного изображения единицы кодировании, соответствующей определенной глубине кодирования. Кроме того, единицы кодирования, соответствующие кодируемой глубине, можно рассматривать как кодированные единицы кодирования. Определенная кодируемая глубина и кодированные данные изображения, согласно определенной кодируемой глубине, выводятся на энтропийный кодер 120.
Данные изображения в максимальной единице кодирования кодируются на основании наиболее глубоких единиц кодирования, соответствующих по меньшей мере одной глубине, равной или меньшей, чем максимальная глубина, и результаты кодирования данных изображения сравниваются на основании каждой из более глубоких единиц кодирования. Глубину, имеющую наименьшую ошибку кодирования, можно выбрать после сравнения ошибок кодирования более глубоких единиц кодирования. По меньшей мере одну глубину кодирования можно выбрать для каждой максимальной единицы кодирования.
Размер максимальной единицы кодирования разделяется по мере того как единица кодирования иерархически разделяется в соответствии с глубинами, и по мере того как увеличивается число единиц кодирования. Кроме того, даже если единицы кодирования соответствуют одной глубине в одной максимальной единице кодирования, определяется, разделить ли каждую из единиц кодирования, соответствующих одной глубине, до большей глубины, посредством измерения ошибки кодирования данных изображения каждой единицы кодирования. Таким образом, даже когда данные изображения включены в одну максимальную единицу кодирования, данные изображения разделяются на области в соответствии с глубинами и ошибки кодирования могут различаться согласно областям в одной максимальной единице кодирования, и таким образом кодируемые глубины могут различаться согласно областям в данных изображения. Таким образом, одна или несколько кодируемых глубин могут определяться в одной максимальной единице кодирования, и данные изображения максимальной единицы кодирования могут разделяться согласно единицам кодирования по меньшей мере одной кодируемой глубины.
Таким образом, иерархический кодер 110 может определять единицы кодирования, имеющие древовидную структуру, включенные в максимальную единицу кодирования. ′Единицы кодирования, имеющие древовидную структуру′ согласно варианту осуществления настоящего изобретения включают в себя единицы кодирования, соответствующие глубине, определенной как кодируемая глубина, среди всех более глубоких единиц кодирования, включенных в максимальную единицу кодирования. Единица кодирования кодируемой глубины может иерархически определяться согласно глубинам в одной той же области максимальной единицы кодирования, и может независимо определяться в различных областях. Аналогично, кодируемая глубина в текущей области может определяться независимо от кодируемой глубины в другой области.
Максимальная глубина согласно варианту осуществления настоящего изобретения представляет собой индекс, относящийся к числу раз разделения от максимальной единицы кодирования до минимальной единицы кодирования. Первая максимальная глубина согласно варианту осуществления настоящего изобретения может обозначать итоговое число раз разделения от максимальной единицы кодирования до минимальной единицы кодирования. Вторая максимальная глубина согласно варианту осуществления настоящего изобретения может обозначать общее количество уровней глубины от максимальной единицы кодирования до минимальной единицы кодирования. Например, когда глубина максимальной единицы кодирования равняется 0, глубина единицы кодирования, при которой максимальная единица кодирования разделена один раз, может устанавливаться равной 1, и глубина единицы кодирования, при которой максимальная единица кодирования разделена дважды, может устанавливаться равной 2. Здесь, если минимальная единица кодирования представляет собой единицу кодирования, при которой максимальная единица кодирования разделена четыре раза, то существует 5 уровней глубины 0, 1, 2, 3 и 4, и, таким образом, первая максимальная глубина может устанавливаться равной 4 и вторая максимальная глубина может устанавливаться равной 5.
Кодирование с предсказанием и преобразование можно осуществлять на основании максимальной единицы кодирования. Кодирование с предсказанием и преобразование также осуществляются на основании более глубоких единиц кодирования согласно глубине равной или глубинам меньшим, чем максимальная глубина, согласно максимальной единице кодирования. Преобразование может осуществляться в соответствии со способом ортогонального преобразования или целочисленного преобразования.
Так как число более глубоких единиц кодирования увеличивается каждый раз, когда максимальная единица кодирования разделяется согласно глубинам, кодирование, включающее в себя кодирование с предсказанием и преобразование, осуществляется в отношении всех более глубоких единиц кодирования, создаваемых при увеличении глубины. Для удобства описания кодирование с предсказанием и преобразование далее будут описываться на основе единицы кодирования текущей глубины в максимальной единице кодирования.
Устройство 100 кодирования видео может по-разному выбирать размер или форму единицы данных для кодирования данных изображения. Для кодирования данных изображения применяют операции, такие как кодирование с предсказанием, преобразование и энтропийное кодирование, и при этом одна и та же единица данных может быть использована для всех операций или различные единицы данных могут быть использованы для каждой операции.
Например, устройство 100 кодирования видео может выбирать не только единицу кодирования для кодирования данных изображения, но также единицу данных, отличную от единицы кодирования, для проведения кодирования с предсказанием в отношении данных изображения в единице кодирования.
Для проведения кодирования с предсказанием в максимальной единице кодирования, кодирование с предсказанием может осуществляться на основании единицы кодирования, соответствующей кодируемой глубине, т.е. на основании единицы кодирования, которая более не разделена на единицы кодирования, соответствующие большей глубине. Далее в настоящем документе единица кодирования, которая более не разделена и являющаяся основной единицей для кодирования с предсказанием будет обозначаться как ′единица предсказания′. Раздел, полученный посредством разделения единицы предсказания, может включать в себя единицу предсказания или единицу данных, полученную посредством разделения по меньшей мере одного из высоты и ширины единицы предсказания.
Например, когда единица кодирования размера 2Nx2N (где N представляет собой положительное целое число) более не разделяется и становится единицей предсказания размера 2Nx2N, то размер раздела может равняться 2Nx2N, 2NxN, Nx2N или NxN. Примеры типов раздела включают в себя симметричные разделы, получаемые посредством симметричного разделения высоты или ширины единицы предсказания, разделы, получаемые посредством асимметричного разделения высоты или ширины единицы предсказания, таком как 1:n или n:1, разделы, получаемые посредством геометрического разделения единицы предсказания, и разделы, имеющие произвольные формы.
Режим предсказания единицы предсказания может представлять собой по меньшей мере один режим из таких как внутренний режим, внешний режим и режим пропуска. Например, внутренний режим или внешний режим могут выполняться в отношении раздела 2Nx2N, 2NxN, Nx2N или NxN. При этом, режим пропуска может выполняться только в отношении раздела 2Nx2N. Кодирование независимо выполняется в отношении одной единицы предсказания в единице кодирования, тем самым выбирается режим предсказания, дающий наименьшую ошибку кодирования.
Устройство 100 кодирования видео может также выполнять преобразование в отношении данных изображения в единице кодирования, основываясь не только на единице кодирования для кодирования данных изображения, но также основываясь на единице данных, отличной от единицы кодирования.
Для выполнения преобразования в единице кодирования, преобразование можно осуществлять на основании единицы данных, имеющей размер меньший или равный единице кодирования. Например, единица данных для преобразования может включать в себя единицу данных для внутреннего режима и единицу данных для внешнего режима.
Единица данных, используемая в качестве основы преобразования, будет обозначаться как ′единица преобразования′. Глубина преобразования, указывающая число раз разделения для достижения единицы преобразования посредством разделения высоты и ширины единицы кодирования, может также задаваться в единице преобразования. Например, в текущей единице кодирования 2Nx2N, глубина преобразования может равняться 0, когда размер единицы преобразования также равняется 2Nx2N, может равняться 1, когда каждое из высоты и ширины текущей единицы кодирования разделено на две равные части с итоговым разделением на 4^1 единицы преобразования, и размер единицы преобразования таким образом равняется NxN, и может равняться 2, когда каждое из высоты и ширины текущей единицы кодирования разделено на четыре равные части, с итоговым разделением на 4^2 единицы преобразования, и размер единицы преобразования таким образом равняется N/2xN/2. Например, единица преобразования может устанавливаться в соответствии с иерархической древовидной структурой, в которой единица преобразования меньшей глубины преобразования разделяется на четыре единицы преобразования большей глубины преобразования в соответствии с иерархическими характеристиками глубины преобразования.
Аналогично единице кодирования, единица преобразования в единице кодирования может рекурсивно разделяться на области меньшего размера, так что единица преобразования может определяться независимо в единицах областей. Таким образом, остаточные данные в единице кодирования могут разделяться в соответствии с преобразованием, обладающим древовидной структурой, согласно глубинам преобразования.
Информация кодирования, согласно единицам кодирования, соответствующим кодированной глубине подразумевает не только информацию о кодируемой глубине, но также о информации, относящуюся к кодированию с предсказанием и преобразованию. Таким образом, иерархический кодер 110 не только определяет кодируемую глубину, имеющую наименьшую ошибку кодирования, но также определяет тип раздела единицы предсказания, режим предсказания, соответствующий единицам предсказания, и размер единицы преобразования для преобразования.
Единицы кодирования согласно древовидной структуре в максимальной единице кодирования, и способ определения разделения согласно вариантам осуществления настоящего изобретения подробно описываются далее со ссылками на ФИГ. с 3 по 12.
Иерархический кодер 110 может измерять ошибку кодирования более глубоких единиц кодирования согласно глубинам, используя оптимизацию искажения в зависимости от скорости передачи (Rate-Distortion Optimization), основанную на множителях Лагранжа.
Энтропийный кодер 120 выводит данные изображения максимальной единицы кодирования, которые кодируются на основании по меньшей мере одной кодируемой глубины, определенной определителем 120 единиц кодирования, и информацию о режиме кодирования, соответствующую глубине кодирования, в потоках битов. Кодированные данные изображения можно получать за счет кодирования остаточных данных изображения. Информация о режиме кодирования согласно кодируемой глубине, может включать в себя информацию о кодируемой глубине, о типе раздела в единице предсказания, а также режиме предсказания и размере единицы преобразования. Подробнее, как описано ниже, энтропийный кодер 120 выбирает контекстную модель, основываясь на дополнительной информации о текущей единице данных, такой как информация об иерархической структуре единиц данных и о цветовой компоненте, используемой в способе кодирования видео, и выполняет энтропийное кодирование, осуществляя кодирование данных изображения максимальной единицы кодирования и синтаксических элементов о режиме кодирования согласно глубинам. Здесь, энтропийный кодер 120 может определять контекстную модель для энтропийного кодирования синтаксических элементов текущей единицы кодирования, учитывая дополнительную информацию текущей единицы кодирования, а также дополнительную информацию смежной единицы кодирования. Процесс определения контекстной модели для энтропийного кодирования синтаксических элементов подробно описан далее.
Информация о кодируемой глубине может определяться с помощью информации разделения согласно глубинам, которая указывает, выполнено ли кодирование в отношении единиц кодирования большей глубины, вместо текущей глубины. Если текущая глубина текущей единицы кодирования представляет собой кодируемую глубину, данные изображения текущей единицы кодирования кодируются и выводятся, и таким образом информация разделения может быть определена для неразделения единицы кодирования до большей глубины. Альтернативно, если текущая глубина текущей единицы кодирования не является кодируемой глубиной, кодирование выполняется в отношении единицы кодирования большей глубины и таким образом информация разделения может быть определена для разделения текущей единицы кодирования для получения единиц кодирования большей глубины.
Если текущая глубина не является кодируемой глубиной, кодирование выполняется в отношении единицы кодирования, которая разделена на единицу кодирования большей глубины. Так как существует по меньшей мере одна единица кодирования большей глубины в одной единице кодирования текущей глубины, кодирование повторно выполнятся в отношении каждой единицы кодирования большей глубины, и таким образом кодирование может рекурсивно выполняться для единиц кодирования, имеющих одинаковую глубину.
Так как единицы кодирования, имеющие древовидную структуру, определены для одной максимальной единицы кодирования, и информация о по меньшей мере одном режиме кодирования определена для единицы кодирования кодируемой глубины, информация о по меньшей мере одном режиме кодирования может определяться для одной максимальной единицы кодирования. Кроме того, кодируемая глубина данных изображения максимальной единицы кодирования может отличаться согласно местоположениям, так как данные изображения иерархически разделяются согласно глубинам, и таким образом информацию о кодируемой глубине и режиме кодирования можно задавать для данных изображения.
Таким образом, энтропийный кодер 120 может назначать информацию кодирования о соответствующей кодируемой глубине и режиме кодирования по меньшей мере одной из единицы кодирования, единицы предсказания и минимальной единице, включенных в максимальную единицу кодирования.
Минимальная единица согласно варианту осуществления настоящего изобретения может представлять собой прямоугольную единицу данных, получаемую посредством разделения минимальной единицы кодирования, составляющей наибольшую глубину, на 4, и может являться максимальной прямоугольной единицей данных, которая может быть включена во все единицы кодирования, единицы предсказания, единицы разделения и единицы преобразования, включенные в максимальную единицу кодирования.
Например, информация кодирования, выводимая через энтропийный кодер 120, может классифицироваться на информацию кодирования согласно единицам кодирования, и информацию кодирования согласно единицам предсказания. Информация кодирования согласно единицам кодирования, может включать в себя информацию о режиме предсказания и о размере разделов. Информация кодирования согласно единицам предсказания, может включать в себя информацию об оцененном направлении внешнего режима, об индексе опорного изображения внешнего режима, о векторе движения, о компоненте цветности внутреннего режима, и о способе интерполяции внутреннего режима. Кроме того, информация о максимальном размере единицы кодирования, определенном согласно изображениям, слайсам, или GOP, и информация о максимальной глубине могут вставляться в заголовок потока битов.
В устройстве 100 кодирования видео более глубокая единица кодирования может представлять собой единицу кодирования, полученную посредством разделения на два высоты и ширины единицы кодирования более верхней глубины, находящейся на один уровень выше. Другими словами, когда размер единицы кодирования текущей глубины равен 2Nx2N, размер единицы кодирования меньшей глубины равен NxN. Кроме того, единица кодирования текущей глубины, имеющая размер, равный 2Nx2N, может включать в себя максимум 4 единицы кодирования меньшей глубины.
Таким образом, устройство 100 кодирования видео может формировать единицы кодирования, имеющие древовидную структуру, определяя единицы кодирования, имеющие оптимальную форму и оптимальный размер для каждой максимальной единицы кодирования на основании размера максимальной единицы кодирования и максимальной глубины, определенных с учетом характеристик текущего изображения. Кроме того, так как кодирование может выполняться в отношении каждой максимальной единицы кодирования посредством использования любого из различных режимов предсказания и преобразований, оптимальный режим кодирования может определяться с учетом характеристик единицы кодирования различных размеров изображения.
Таким образом, если изображение, имеющее высокое разрешение или большое количество данных, кодируется в традиционном макроблоке, число макроблоков на изображение становится чрезмерно высоким. Таким образом, число частей сжатой информации, создаваемой для каждого макроблока, становится высоким, и таким образом затрудняет передачу сжатой информации и эффективность сжатия данных снижается. Однако, используя устройство 100 кодирования видео, эффективность сжатия изображения можно повысить, так как единица кодирования регулируется с учетом характеристик изображения, при одновременном увеличении максимального размера единицы кодирования с учетом размера изображения.
На ФИГ. 2 представлена блок-схема устройства 200 декодирования видео, согласно варианту осуществления настоящего изобретения.
Устройство 200 декодирования видео включает в себя модуль 210 извлечения синтаксических элементов, энтропийный декодер 220 и иерархический декодер 230. Определения различных терминов, таких как единица кодирования, глубина, единица предсказания, единица преобразования и информация о различных режимах кодирования, для различных операций устройства 200 декодирования видео идентичны определениям, описанным со ссылками на ФИГ. 1 и устройство 100 кодирования видео.
Модуль 210 извлечения синтаксических элементов принимает и выполняет синтаксический анализ потока битов кодированного видео. Энтропийный декодер 220 извлекает кодированные данные изображения для каждой единицы кодирования из проанализированного потока битов, где единицы кодирования имеют древовидную структуру согласно каждой максимальной единице кодирования, и выводит извлеченные данные изображения на иерархический декодер 230.
Кроме того, энтропийный декодер 220 извлекает дополнительную информацию о кодируемой глубине, режиме кодирования, цветовой компоненте и режиме предсказания для единиц кодирования, имеющих древовидную структуру согласно каждой максимальной единице кодирования, из проанализированного потока битов. Извлеченная дополнительная информация выводится на иерархический декодер 230. Другими словами, данные изображения в потоке битов разделяются на максимальную единицу кодирования и затем кодируются так, чтобы иерархический декодер 230 декодировал данные изображения для каждой максимальной единицы кодирования.
Информация о кодируемой глубине и режиме кодирования согласно максимальной единице кодирования, может задаваться как информация о по меньшей мере одной единице кодирования, соответствующей кодируемой глубине, и информация о режиме кодирования может включать в себя информацию о типе раздела соответствующей единицы кодирования, соответствующей кодируемой глубине, о режиме предсказания и размер единицы преобразования. Кроме того, информация разделения согласно глубинам, может извлекаться в качестве информации о кодируемой глубине.
Информация о кодируемой глубине и режиме кодирования согласно каждой максимальной единице кодирования, извлекаемая энтропийным декодером 220, представляет собой информацию о кодируемой глубине и режиме кодирования, определенных для генерирования минимальной ошибки кодирования, когда кодер, такой как устройство 100 кодирования видео, повторно выполняет кодирование для каждой более глубокой единицы кодирования согласно глубинам, в соответствии с каждой максимальной единицей кодирования. Таким образом, устройство 200 декодирования видео может восстанавливать изображение, декодируя данные изображения согласно кодируемой глубине и режиму кодирования, который генерирует минимальную ошибку кодирования.
Так как информация кодирования о кодируемой глубине и режиме кодирования, может назначаться заранее заданной единице данных из соответствующей единицы кодирования, единицы предсказания и минимальной единице, энтропийный декодер 220 может извлекать информацию о кодируемой глубине и режиме кодирования согласно заранее заданным единицам данных. Заранее заданные единицы данных, которым назначена одинаковая информация о кодируемой глубине и режиме кодирования могут выводиться как единицы данных, включенные в одну максимальную единицу кодирования.
Подробнее, как описано ниже, энтропийный декодер 220 при декодировании синтаксических элементов выбирает контекстную модель и осуществляет энтропийной декодирование на основании различных типов информации, такой как информация об иерархической структуре единиц данных, описанная выше, и о цветовых компонентах.
Иерархический декодер 230 восстанавливает текущее изображение, декодируя данные изображения в каждой максимальной единице кодирования на основании информации о кодируемой глубине и режиме кодирования, согласно максимальным единицам кодирования. Другими словами, декодер 230 данных изображения может декодировать кодированные данные изображения на основании извлеченной информации о типе раздела, режиме предсказания и единице преобразования для каждой единицы кодирования из единиц кодирования, имеющих древовидную структуру, включенных в каждую максимальную единицу кодирования. Процесс декодирования может включать в себя предсказание, включающее в себя внутреннее предсказание и компенсацию движения, и обратное преобразование. Обратное преобразование может осуществляться согласно способу обратного ортогонального преобразования или обратного целочисленного преобразования.
Иерархический декодер 230 может выполнять внутреннее предсказание или компенсацию движения согласно разделу и режиму предсказания каждой единицы кодирования, на основании информации о типе раздела и режиме предсказания единицы предсказания единицы кодирования, в соответствии с кодируемыми глубинами.
Кроме того, иерархический декодер 230 может выполнять обратное преобразование согласно каждой единице преобразования в единице кодирования на основании информации о размере единицы преобразования единицы кодирования согласно кодируемым глубинам, для выполнения обратного преобразования в соответствии с максимальными единицами кодирования.
Иерархический декодер 230 может определять по меньшей мере одну кодируемую глубину текущей максимальной единицы кодирования, используя информацию разделения согласно глубинам. Если информация разделения указывает, что данные изображения более не разделяется на текущей глубине, текущая глубина представляет собой кодируемую глубину. Таким образом, иерархический декодер 230 может декодировать кодированные данные по меньшей мере одной единицы кодирования, соответствующей каждой кодируемой глубине в текущей максимальной единице кодирования, используя информацию о типе раздела единицы предсказания, режиме предсказания и размере единицы преобразования для каждой единицы кодирования, соответствующей кодируемой глубине, и выводить данные изображения текущей максимальной единицы кодирования.
То есть, единицы данных, содержащие информацию кодирования, включающую в себя одинаковую информацию разделения, могут быть собраны посредством наблюдения за информацией кодирования, назначенной для заранее заданной единицы данных среди единицы кодирования, единицы предсказания и минимальной единицы, и собранные единицы данных можно рассматривать, как одну единицу данных, которая должна быть декодирована иерархическим декодером 230 в одном режиме кодирования.
Устройство 200 декодирования видео может получать информацию о по меньшей мере одной единице кодирования, которая генерирует минимальную ошибку кодирования при выполнении рекурсивного кодирования для каждой максимальной единицы кодирования и может использовать информацию для декодирования текущего изображения. Другими словами, единицы кодирования, имеющие древовидную структуру, определенные как оптимальные единицы кодирования в каждой максимальной единице кодирования, могут быть декодированы. Кроме того, максимальный размер единицы кодирования определяется с учетом разрешения и количества данных изображения.
Таким образом, даже если данные изображения имеют высокое разрешение и большое количество данных, данные изображения можно эффективно декодировать и восстановить, используя размер единицы кодирования и режим кодирования, которые адаптивно определяются в соответствии с характеристиками данных изображения, используя информацию об оптимальном режиме кодирования, принятую от кодера.
Способ определения единиц кодирования, имеющих древовидную структуру, единицы предсказания и единицы преобразования согласно варианту осуществления настоящего изобретения будет далее подробно описан со ссылками на ФИГ. с 3 по 13.
На ФИГ. 3 представлена схема для описания идеи единиц кодирования согласно варианту осуществления настоящего изобретения.
Размер единицы кодирования может обозначаться в формате ширина x высота и может равняться 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 выбирает контекстную модель и выполняет энтропийное декодирование на основании различных типов информации, такой как информация об иерархической структуре единиц данных и о цветовых компонентах, при одновременном кодировании данных изображения максимальной единицы кодирования и синтаксических элементов о режиме кодирования согласно глубинам.
Для применения кодера 400 изображения в устройстве 100 кодирования видео, все элементы кодера 400 изображения, т.е., модуль 410 внутреннего предсказания, модуль 420 оценки движения, модуль 425 компенсации движения, преобразователь 430, квантователь 440, энтропийный кодер 450, обратный квантователь 460, обратный преобразователь 470, фильтр 480 удаления блочности и модуль 490 контурной фильтрации выполняют операции на основании каждой единицы кодирования из единиц кодирования, имеющих древовидную структуру, учитывая максимальную глубину каждой максимальной единицы кодирования.
В частности, модуль 410 внутреннего предсказания, модуль 420 оценки движения и модуль 425 компенсации движения определяют разделы и режим предсказания каждой единицы кодирования из единиц кодирования, имеющих древовидную структуру, учитывая максимальный размер и максимальную глубину текущей максимальной единицы кодирования, и преобразователь 430 определяет размер единицы преобразования в каждой единице кодирования из единиц кодирования, имеющих древовидную структуру. Кроме того, энтропийный кодер 450 выбирает контекстную модель, используемую для энтропийного кодирования синтаксических элементов, и выполняет энтропийное кодирование, основываясь на различных типах информации, такой как информация об иерархической структуре единиц данных и о цветовых компонентах, в соответствии с типами синтаксических элементов.
На ФИГ. 5 представлена подробная блок-схема декодера 500 изображения, основанного на единицах кодирования, имеющих иерархическую структуру, согласно варианту осуществления настоящего изобретения.
Синтаксический анализатор 510 осуществляет синтаксический анализ кодированных данных изображения, которые должны быть декодированы и информации о кодировании, требуемой для декодирования, из битового потока 505. Кодированные данные изображения выводятся в виде обратно квантованных данных через энтропийный декодер 520 и обратный квантователь 530, и обратно квантованные данные восстанавливаются до данных изображения в пространственной области посредством обратного преобразователя 540.
Модуль 550 внутреннего предсказания выполняет внутреннее предсказание в отношении единиц кодирования во внутреннем режиме по отношению к данным изображения в пространственной области, и модуль 560 компенсации движения выполняет компенсацию движения в отношении единиц кодирования во внешнем режиме, используя опорный кадр 585.
Данные изображения в пространственном области, восстановленные при прохождении через модуль 550 внутреннего предсказания и модуль 560 компенсации движения, могут пост-обрабатываться с помощью фильтра 570 удаления блочности и модуля 580 контурной фильтрации, и могут выводиться в виде восстановленного кадра 595. Кроме того, данные, прошедшие пост-обработку с помощью фильтра 570 удаления блочности и модуля 580 контурной фильтрации, могут выводиться в качестве опорного кадра 585.
Для применения декодера 500 изображения в устройстве 200 декодирования видео, все элементы декодера 500 изображения, т.е., синтаксический анализатор 510, энтропийный декодер 520, обратный квантователь 530, обратный преобразователь 540, модуль 550 внутреннего предсказания, модуль 560 компенсации движения, фильтр 570 удаления блочности и модуль 580 контурной фильтрации могут выполнять операции декодирования на основании единиц кодирования, имеющих древовидную структуру, для каждой максимальной единицы кодирования.
В частности, модуль 550 внутреннего предсказания и модуль 560 компенсации движения могут определять разделы и режим предсказания для каждой из единиц кодирования, имеющих древовидную структуру, и обратный преобразователь 540 может определять размер единицы преобразования для каждой единицы кодирования. Также, энтропийный декодер 520 выбирает контекстную модель, используемую для энтропийного декодирования кодированных данных изображения, которые должны быть декодированы, и синтаксических элементов, указывающих информацию кодирования, необходимую для декодирования, и выполняет энтропийное декодирование, основываясь на различных типах информации, такой как информация о иерархической структуре единиц данных и о цветовых компонентах, в соответствии с типами синтаксических элементов.
На ФИГ. 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 кодирования, определитель 120 единиц кодирования устройства 100 кодирования видео осуществляет кодирование для единиц кодирования, соответствующих каждой глубине, включенной в максимальную единицу 610 кодирования.
Число более глубоких единиц кодирования согласно глубинам, включающих в себя данные в одном и том же диапазоне и одного и того же размера, увеличивается с увеличением глубины. Например, четыре единицы кодирования, соответствующие глубине 2, необходимы для покрытия данных, которые включены в одну единицу кодирования, соответствующую глубине 1. Таким образом, для сравнения результатов кодирования одних и тех же данных согласно глубинам, единица кодирования, соответствующая глубине 1, и четыре единицы кодирования, соответствующие глубине 2, кодируются каждая.
Для осуществления кодирования для текущей глубины, из числа глубин, наименьшую ошибку кодирования можно выбрать для текущей глубины, осуществляя кодирование для каждой единицы предсказания в единицах кодирования, соответствующих текущей глубине, вдоль горизонтальной оси иерархической структуры 600. Альтернативно, минимальную ошибку кодирования можно найти, сравнивая наименьшие ошибки кодирования согласно глубинам, осуществляя кодирование для каждой глубины, по мере того, как глубина увеличивается вдоль вертикальной оси иерархической структуры 600. Глубина и раздел, имеющие минимальную ошибку кодирования в единице 610 кодирования могут быть выбраны в качестве кодируемой глубины и типа раздела единицы 610 кодирования.
На ФИГ. 7 представлена схема для описания отношения между единицей 710 кодирования и единицами 720 преобразования 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, имеющая размер 2Nx2N, может разделяться на любой из раздела 802, имеющего размер 2Nx2N, раздела 804, имеющего размер 2NxN, раздела 806, имеющего размер Nx2N, и раздела 808, имеющего размер NxN. Здесь, информация 800 о типе раздела устанавливается для указания одного из раздела 804, имеющего размер 2NxN, раздела 806, имеющего размер Nx2N, и раздела 808, имеющего размер NxN.
Информация 810 указывает режим предсказания каждого раздела. Например информация 810 может указывать режим кодирования с предсказанием, выполняемого в отношении раздела, указанного информацией 800, т.е., внутренний режим 812, внешний режим 814, или режим 816 пропуска.
Информация 820 указывает единицу преобразования на которой необходимо основываться, когда преобразование выполняется в отношении текущей единицы кодирования. Например, единица преобразования может являться первой внутренней единицей 822 преобразования, второй внутренней единицей 824 преобразования, первой внешней единицей 826 преобразования, или второй внешней единицей 828 преобразования.
Модуль 220 извлечения данных изображения и информации кодирования устройства 200 декодирования видео может выделять и использовать информацию 800, 810 и 820 для декодирования, согласно каждой более глубокой единице кодирования.
На ФИГ. 9 представлена схема более глубоких единиц кодирования согласно глубинам, согласно варианту осуществления настоящего изобретения.
Информацию разбиения можно использовать для указания изменения глубины. Информация разбиения указывает, разделена ли единица кодирования текущей глубины на единицы кодирования большей глубины.
Единица 910 предсказания для кодирования с предсказанием единицы 900 кодирования, имеющей глубину 0, и размер 2N_0 x 2N_0, может включать в себя разделы типа 912 раздела, имеющие размер 2N_0x2N_0, типа 914 раздела, имеющие размер 2N_0xN_0, типа 916 раздела, имеющие размер N_0x2N_0, и типа 918 раздела, имеющие размер N_0xN_0. ФИГ. 9 только иллюстрирует типы 912 раздела от 912 до 918, получаемые посредством симметричного разделения единицы 910 предсказания, но тип раздела не ограничивается ими, и разделы единицы 910 предсказания могут включать асимметричные разделы, разделы, имеющие заранее заданную форму, и разделы, обладающие некоторой геометрической формой.
Кодирование с предсказанием повторно выполняется в отношении одного раздела, имеющего размер 2N_0x2N_0, двух разделов, имеющих размер 2N_0xN_0, двух разделов, имеющих размер N_0x2N_0, и четырех разделов, имеющих размер N_0xN_0, согласно каждому типу раздела. Кодирование с предсказанием во внутреннем режиме и во внешнем режиме может осуществляться в отношении разделов, имеющих размеры 2N_0x2N_0, N_0x2N_0, 2N_0xN_0 и N_0xN_0. Кодирование с предсказанием в режиме пропуска осуществляется только в отношении раздела, имеющего размер 2N_0x2N_0.
Ошибки кодирования, включающего в себя кодирование с предсказанием в типах с 912 по 918 раздела, сравниваются и наименьшая ошибка кодирования определяется среди типов раздела. Если ошибка кодирования является наименьшей при одном из типов с 912 по 916 раздела, то единица 910 предсказания может не разделяться в большую глубину.
Если ошибка кодирования является наименьшей при типе 918 раздела, то глубина изменяется с 0 на 1 для разделения типа 918 раздела в операции 920, и кодирование повторно выполняется в отношении единиц 930 кодирования, имеющих глубину 2, и размер N_0xN_0, для нахождения минимальной ошибки кодирования.
Единица 940 предсказания для кодирования с предсказанием единицы 930 кодирования, имеющей глубину 1, и размер 2N_1x2N_1 (=N_0xN_0), может включать в себя разделы типа 942 раздела, имеющего размер 2N_1x2N_1, типа 944 раздела, имеющего размер 2N_1xN_1, типа 946 раздела, имеющего размер N_1x2N_1, и типа 948 раздела, имеющего размер N_1xN_1.
Если ошибка кодирования является наименьшей при типе 948 разделения, глубина изменяется от 1 до 2 для разделения типа 948 разделения в операции 950, и кодирование повторно выполняется в отношении единиц 960 кодирования, которые имеют глубину 2, и размер N_2xN_2, для поиска минимальной ошибки кодирования.
Когда максимальная глубина равняется d, операция разделения согласно каждой глубине, может выполнятся до того, пока глубина не станет равной d-1, и информация разделения может кодироваться до того, пока глубина не станет равной от 0 до d-2. Другими словами, когда кодирование выполняется до того, пока глубина не станет d-1, после разделения единицы кодирования, соответствующей глубине, равной d-2, в операции 970, единица 990 предсказания для кодирования с предсказанием единицы 980 кодирования, имеющей глубину d-1, и размер 2N_(d-1)x2N_(d-1), может включать в себя разделы типа 992 раздела, имеющего размер 2N_(d-1)x2N_(d-1), типа 994 раздела, имеющего размер 2N_(d-1)xN_(d-1), типа 996 раздела, имеющего размер N_(d-1)x2N_(d-1), и типа 998 раздела, имеющего размер N_(d-1)xN_(d-1).
Кодирование с предсказанием может повторно выполняться в отношении одного раздела, имеющего размер 2N_(d-1)x2N_(d-1), двух разделов, имеющих размер 2N_(d-1)xN_(d-1), двух разделов, имеющих размер N_(d-1)x2N_(d-1), четырех разделов, имеющих размер N_(d-1)xN_(d-1), из типов с 992 по 998 разделов для нахождения типа раздела, имеющего минимальную ошибку кодирования.
Даже когда тип 998 раздела дает минимальную ошибку кодирования, так как максимальная глубина равняется d, единица CU_(d-1) кодирования, имеющая глубину d-1, более не разделяется в большую глубину, и кодируемая глубина для единиц кодирования, составляющих текущую максимальную единицу 900 кодирования, определяется равной d-1 и тип раздела текущей максимальной единицы 900 кодирования может определяться равным N_(d-1)xN_(d-1). Кроме того, так как максимальная глубина равняется d и минимальная единица 980 кодирования, имеющая наибольшую глубину d-1, более не разделяется в большую глубину, информация разделения для минимальной единицы 980 кодирования не задается.
Единица 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 кодирования получаются посредством разделения единиц кодирования в единицах 1010 кодирования. Другими словами, типы раздела в единицах 1014, 1022, 1050 и 1054 кодирования имеют размер 2NxN, типы раздела в единицах 1016, 1048 и 1052 кодирования имеют размер Nx2N, и тип раздела единицы 1032 кодирования имеет размер NxN. Единицы предсказания и разделы единиц 1010 кодирования меньше или равны каждой единице кодирования.
Преобразование или обратное преобразование выполняется в отношении данных изображения единицы 1052 кодирования в единицах 1070 преобразования в единице данных, которая меньше, чем единица 1052 кодирования. Кроме того, единицы 1014, 1016, 1022, 1032, 1048, 1050 и 1052 кодирования в единицах 1070 преобразования отличаются от таковых в единицах 1060 предсказания исходя из размеров и форм. Другими словами, устройства 100 и 200 кодирования и декодирования видео могут выполнять внутреннее предсказание, оценку движения, компенсацию движения, преобразование и обратное преобразование по отдельности в отношении единицы данных в одной единице кодирования.
Таким образом, кодирование рекурсивно выполняется в отношении каждой из единиц кодирования, имеющих иерархическую структуру, в каждой области максимальной единицы кодирования для определения оптимальной единицы кодирования и таким образом могут быть получены единицы кодирования, имеющие древовидную структуру. Информация кодирования может включать в себя информацию разделения о единице кодирования, информацию о типе раздела, информацию о режиме предсказания и информацию о размере единицы преобразования. В Таблице 1 показана информация кодирования, которая может задаваться устройствами 100 и 200 кодирования и декодирования видео.
Таблица 1
Информация 0 разделения(Кодирование в отношении единицы кодирования, имеющей размер 2Nx2N, и текущую глубину d
Информация 1 разделения
Режим предсказания
Тип раздела
Размер единицы преобразования
Повторно кодируют единицы кодирования, имеющие большую глубину d+1
ВнутрикадровыймежкадровыйПропуск (только 2Nx2N)
Симметричный тип раздела
Асимметричный тип раздела
Информация 0 разделения единицы преобразова-ния
Информация 1 разделения единицы преобразова-ния
2Nx2N2NxNNx2NNxN
2NxnU2NxnDnLx2NnRx2N
2Nx2N
NxN(Симметричный тип)N/2xN/2(Асимметричный тип)
Энтропийный кодер 120 устройства 100 кодирования видео может выводить информацию кодирования о единицах кодирования, имеющих древовидную структуру, и энтропийный декодер 210 устройства 200 декодирования видео может выполнять синтаксический анализ принятого потока битов и извлекать информацию кодирования о единицах кодирования, имеющих древовидную структуру, из принятого потока битов.
Информация разделения указывает, была ли текущая единица кодирования разделена на единицы кодирования большей глубины. Если информация разделения текущей глубины d равняется 0, то глубина, на которой текущая единица кодирования более не разделяется в большую глубину, является кодируемой глубиной, и следовательно информация о типе раздела, режиме предсказания и размере единицы преобразования может быть определена для кодируемой глубины. Если текущая единица кодирования дополнительно разделяется согласно информации разделения, кодирование независимо выполняется в отношении четырех единиц кодирования разделения большей глубины.
Режим предсказания может представлять собой один из внутреннего режима, внешнего режима и режим пропуска. Внутренний режим и внешний режим могут определяться во всех типах раздела, и режим пропуска определен только в типе раздела, имеющем размер 2Nx2N.
Информация о типе раздела может указывать симметричные типы раздела, имеющие размеры 2Nx2N, 2NxN, Nx2N и NxN, получаемые за счет симметричного разделения высоты или ширины единицы предсказания, и асимметричные типы раздела, имеющие размеры 2NxnU, 2NxnD, nLx2N и nRx2N, получаемые за счет асимметричного разделения высоты или ширины единицы предсказания. Асимметричные типы раздела, имеющие размеры 2NxnU и 2NxnD, могут быть соответственно получены посредством разделения высоты единицы предсказания на 1:n и n:1, и асимметричные типы раздела, имеющие размеры nLx2N и nRx2N, могут быть соответственно получены посредством разделения ширины единицы предсказания на 1:n и n:1. Здесь, n представляет собой целое число, большее, чем 1.
Размер единицы преобразования может устанавливаться равным двум типам во внутреннем режиме и двум типам во внешнем режиме. Другими словами, если информация разделения единицы преобразования равна 0, размер единицы преобразования может равняться 2Nx2N, что является размером текущей единицы кодирования. Если информация разделения единицы преобразования равняется 1, единицы преобразования можно получать посредством разделения текущей единицы кодирования. Также, если тип раздела текущей единицы кодирования, имеющей размер 2Nx2N, является типом симметричного раздела, размер единицы преобразования может равняться NxN, и если тип раздела текущей единицы кодирования является типом ассиметричного раздела, размер единицы преобразования может равняться N/2xN/2.
Информация кодирования о единицах кодирования, имеющих древовидную структуру, может включать в себя по меньшей мере одну из единицы кодирования, соответствующей кодируемой глубине, единице предсказания и минимальной единице. Единица кодирования, соответствующая кодируемой глубине, может включать в себя по меньшей мере одну из единицы предсказания и минимальной единицы, содержащей такую же информацию кодирования.
Таким образом, определяется, включены ли смежные единицы данных в одну единицу кодирования, соответствующую кодируемой глубине, за счет сравнения информации кодирования смежных единиц данных. Кроме того, соответствующая единица кодирования, соответствующая кодируемой глубине, определяется с помощью информации кодирования единицы данных, и таким образом можно определить распределение кодируемых глубин в максимальной единице кодирования.
Таким образом, если текущая единица кодирования предсказывается на основании информации кодирования смежных единиц данных, на информацию кодирования единиц данных в более глубоких единицах кодирования, смежных с текущей единицей кодирования, можно непосредственно опереться, и она может быть использована.
Альтернативно, если текущая единица кодирования предсказывается на основании информации кодирования смежных единиц данных, единицы данных, смежные с текущей единицей кодирования, ищутся, используя кодированную информацию единиц данных, и на найденные смежные единицы кодирования можно опереться для предсказания текущей единицы кодирования.
На ФИГ. 13 представлена схема для описания отношения между единицей кодирования, единицей предсказания или разделом и единицей преобразования, согласно информации режима кодирования, указанной в Таблице 1.
Максимальная единица 1300 кодирования включает в себя единицы 1302, 1304, 1306, 1312, 1314, 1316 и 1318 кодирования кодируемых глубин. Здесь, так как единица 1318 кодирования представляет собой единицу кодирования кодируемой глубины, информация разделения может быть установлена равной 0. Информация о типе раздела единицы 1318 кодирования, имеющей размер 2Nx2N, может быть заданна как один из типа 1322 раздела, имеющего размер 2Nx2N, типа 1324 раздела, имеющего размер 2NxN, типа 1326 раздела, имеющего размер Nx2N, типа 1328 раздела, имеющего размер NxN, типа 1332 раздела, имеющего размер 2NxnU, типа 1334 раздела, имеющего размер 2NxnD, типа 1336 раздела, имеющего размер nLx2N, и типа 1338 раздела, имеющего размер nRx2N.
Когда тип раздела установлен симметричным, т.е. тип 1322, 1324, 1326 или 1328 раздела, единица 1342 преобразования, имеющая размер 2Nx2N, устанавливается, если информация разделения (флаг размера TU) единицы преобразования равна 0, и единица 1344 преобразования, имеющая размер NxN, устанавливается, если флаг размера TU равен 1.
Когда тип раздела установлен асимметричным, т.е., тип 1332, 1334, 1336 или 1338 раздела, единица 1352 преобразования, имеющая размер 2Nx2N, устанавливается, если флаг размера TU равен 0, и единица 1354 преобразования, имеющая размер N/2xN/2, устанавливается если флаг размера TU равен 1.
Флаг размера TU информации разделения единицы преобразования может представлять собой тип из индекса преобразования и размера единицы преобразования, соответствующей индексу преобразования, может изменяться в соответствии с типом единицы предсказания или типом раздела единицы кодирования.
Например, когда тип раздела установлен симметричным, т.е. тип 1322, 1324, 1326 или 1328 раздела, единица 1342 преобразования, имеющая размер 2Nx2N, устанавливается, если флаг размера TU равен 0, и единица 1344 преобразования, имеющая размер NxN, устанавливается, если флаг размера TU равен 1.
Когда тип раздела устанавливается асимметричным, т.е., тип 1332, 1334, 1336 или 1338 раздела, единица 1352 преобразования, имеющая размер 2Nx2N, устанавливается, если флаг размера TU равен 0, и единица 1354 преобразования, имеющая размер N/2xN/2, устанавливается, если флаг размера TU равен 1.
Ссылаясь на ФИГ. 9, флаг размера TU представляет собой флаг, имеющий значение или 0, или 1, но флаг размера TU не ограничен 1 битом, и единица преобразования может быть иерархически разделена, с получением древовидной структуры, в то время как флаг размера TU увеличивается от 0. Флаг размера TU можно использоваться в качестве примера индекса преобразования.
В этом случае, размер единицы преобразования, который был фактически использован, можно выразить, используя флаг размера TU единицы преобразования, вместе с максимальным размером и минимальным размером единицы преобразования. Устройство 100 кодирования видео способно кодировать информацию размера максимальной единицы преобразования, информацию размера минимальной единицы преобразования и флаг размера максимальной TU. Результат кодирования информации размера максимальной единицы преобразования, информации размера минимальной единицы преобразования и флага размера максимальной TU может вставляться в SPS. Устройство 200 декодирования видео может декодировать видео, используя информацию размера максимальной единицы преобразования, информацию размера минимальной единицы преобразования и флаг размера максимальной TU.
Например, если размер текущей единицы кодирования равен 64×64 и размер максимальной единицы преобразования равен 32×32, тогда размер единицы преобразования может равняться 32×32, когда флаг размера TU равен 0, может равняться 16×16, когда флаг размера TU равен 1, и может равняться 8×8, когда флаг размера TU равен 2.
В другом примере, если размер текущей единицы кодирования равен 32×32 и размер минимальной единицы преобразования равен 32×32, тогда размер единицы преобразования может равняться 32×32, когда флаг размера TU равен 0. Здесь, флаг размера TU не может быть установлен в значение, отличное от 0, так как размер единицы преобразования не может быть меньше, чем 32×32.
В другом примере, если размер текущей единицы кодирования равен 64×64 и флаг размера максимальной TU равен 1, тогда флаг размера TU может равняться 0 или 1. Здесь, флаг размера TU не может быть установлен в значение, отличное от 0 или 1.
Таким образом, если определено, что флаг размера максимальной TU равен ′MaxTransformSizelndex′, размер минимальной единицы преобразования равен ′MinTransformSize′ и размер единицы преобразования равен ′RootTuSize′,когда флаг размера TU равен 0, текущий размер минимальной единицы преобразования ′CurrMinTuSize′, который может быть определен в текущей единице кодирования, может быть задан Уравнением (1):
CurrMinTuSize=max(MinTransformSize, RootTuSize /(2^MaxTransformSizeIndex)) (1)
По сравнению с текущим размером минимальной единицы преобразования ′CurrMinTuSize′, который может быть определен в текущей единице кодирования, размер единицы преобразования ′RootTuSize′, когда флаг размера TU равен 0, может обозначать размер максимальной единицы преобразования, который может быть выбран в системе. В Уравнении (1), ′RootTuSize/(2^MaxTransformSizelndex)′ обозначает размер единицы преобразования, когда размер единицы преобразования ′RootTuSize′, когда флаг размера TU равен 0, разделяется некоторое число раз, соответствующее флагу размера максимальной TU, и ′MinTransformSize′ обозначает размер минимального преобразования. Таким образом, меньшее значение из ′RootTuSize/(2^MaxTransformSizelndex)′ и ′MinTransformSize′ может представлять собой размер текущей минимальной единицы преобразования ′CurrMinTuSize′′, который может быть определен в текущей единице кодирования.
Размер максимальной единицы преобразования RootTuSize может меняться согласно типу режима предсказания.
Например, если текущий режим предсказания является внешним режимом, тогда ′RootTuSize′ может определяться с использованием Уравнения (2), приведенного ниже. В Уравнении (2), ′MaxTransformSize′ обозначает размер максимальной единицы преобразования и ′PUSize′ обозначает размер текущей единицы предсказания.
RootTUSize=min(MaxTransformSize, PUSize) (2)
То есть, если текущий режим предсказания является внешним режимом, размер единицы преобразования ′RootTuSize′, когда флаг размера TU равен 0, может равняться наименьшему значению из размера максимальной единицы преобразования и размера текущей единицы предсказания.
Если режим предсказания текущей единицы раздела является внутренний режимом, ′RootTuSize′ можно определить, используя Уравнение (3), приведенное ниже. В Уравнении (3), ′PartitionSize′ обозначает размер текущей единицы раздела.
RootTuSize=min(MaxTransformSize, PartitionSize) (3)
То есть, если текущий режим предсказания является внутренним режимом, размер единицы преобразования ′RootTuSize′, когда флаг размера TU равен 0, может быть меньшим значением из размера максимальной единицы преобразования и размера текущей единицы раздела.
Однако, размер текущей максимальной единицы преобразования ′RootTuSize′, изменяющийся согласно типу режима предсказания в единице раздела, приведен исключительно в качестве примера и настоящее изобретение не ограничено им.
Далее в настоящем документе, процесс энтропийного кодирования синтаксического элемента, выполняемый энтропийным кодером 120 устройства 100 кодирования видео, показанного на ФИГ. 1, и процесс энтропийного кодирования синтаксического элемента, выполняемый энтропийным декодером 220 устройства 200 декодирования видео, показанного на ФИГ. 2, будут подробно описаны.
Как описано выше, устройство 100 кодирования видео и устройство 200 декодирования видео, согласно вариантам осуществления настоящего изобретения, осуществляют кодирование и декодирование с помощью разделения максимальной единицы кодирования, используя единицу кодирования равную или меньшую, чем максимальная единица кодирования. Единица предсказания и единица преобразования, используемые во время процессов предсказания и преобразования, могут определяться на основании затрат независимо от другой единицы данных. Фактически, единицы данных, обладающие древовидной структурой, могут быть сконфигурированы посредством определения оптимальной единицы кодирования, по мере того, как рекурсивно выполняется кодирование в соответствии с единицами кодирования, имеющими иерархическую структуру, включенную в максимальную единицу кодирования. Другими словами, единицы кодирования, имеющие древовидную структуру, и единицы предсказания и единицы преобразования, имеющие древовидную структуру, можно определить в соответствии с максимальной единицей кодирования. Для декодирования может передаваться информация об иерархии, указывающая иерархическую структуру единиц данных, и информация, отличная от информации об иерархии.
Информация об иерархии необходима для определения единиц кодирования, единиц предсказания и единиц преобразования, имеющих древовидную структуру, описанную выше со ссылкой на ФИГ. с 10 по 12, и включает в себя размер максимальной единицы кодирования, кодируемую глубину, информацию раздела единицы предсказания, флаг разделения, указывающий, разделена ли единица кодирования, информацию размера единицы преобразования, и флаг размера TU, указывающий, разделена ли единица преобразования. Информация, отличная от информации об иерархии, включает в себя информацию режима предсказания внутреннего/внешнего предсказания, применяемого к каждой единице предсказания, информацию вектора движения, информацию направления предсказания, информацию цветовых компонент, применяемую к соответствующей единице данных, когда используется множество цветовых компонент, и информацию текстуры, такую как коэффициент преобразования. Далее в настоящем документе, информация об иерархии и информация, отличная от информации об иерархии, передаваемая для декодирования может обозначаться как синтаксические элементы, которые должны быть энтропийно кодированы.
На ФИГ. 14 представлена блок-схема устройства 1400 энтропийного кодирования, согласно варианту осуществления настоящего изобретения. Устройство 1400 энтропийного кодирования соответствует энтропийному кодеру 120 устройства 100 кодирования видео, показанного на ФИГ. 1.
Ссылаясь на ФИГ. 14, устройство 1400 энтропийного кодирования включает модуль 1410 преобразования в двоичную форму, модуль 1420 определения контекстной модели и двоичный арифметический кодер 1430. Кроме того, двоичный арифметический кодер 1430 включает в себя механизм 1432 регулярного кодирования и механик 1434 кодирования обхода.
Синтаксические элементы, вводимые в устройство 1400 энтропийного кодирования могут не представлять собой двоичное значение. Когда синтаксические элементы не представляют собой двоичное значение, модуль 1410 преобразования в двоичную форму преобразует в двоичную форму синтаксические элементы и выводит строку бинов, сформированную из двоичных значений 0 и 1. Бин указывает каждый бит потока, сформированного из 0 или 1, и каждый бин кодируется с помощью контекстно-адаптивного двоичного арифметического кодирования (CABAC). Когда синтаксический элемент представляет собой данные, в которых частоты 0 и 1 являются одинаковыми, синтаксический элемент выводится в механизм 1434 кодирования обхода, который не использует значение вероятности, и кодируется.
Модуль 1420 определения контекстной модели предоставляет вероятностную модель текущего символа кодирования на механизм 1432 регулярного кодирования. Подробнее, модуль 1420 определения контекстной модели выводит двоичную вероятность для кодирования двоичного значения текущего символа кодирования на двоичный арифметический кодер 1430. Текущий символ кодирования обозначает двоичное значение, когда текущий синтаксический элемент, который должен быть кодирован, преобразован в двоичную форму.
Для определения контекстной модели для первого синтаксического элемента текущей единицы кодирования, которая должна быть кодирована, модуль 1420 определения контекстной модели может определять контекстную модель, которая должна быть применена к первому синтаксическому элементу, основываясь на информации о втором синтаксическом элементе, который является применимым в той же самой текущей единице кодирования, и отличным от первого синтаксического элемента. В общем, согласно стандарту H.264, для определения контекстной модели для некоторого синтаксического элемента текущего блока, информация о синтаксическом элементе, таком же как некоторый синтаксический элемент, получается из соседнего блока, и определяется контекст, который должен быть применен к некоторому синтаксическому элементу. Однако, для определения контекстной модели для общего энтропийного кодирования как такового, синтаксический элемент такого же типа получается из соседнего блока, и таким образом такой синтаксический элемент соседнего блока должен быть сохранен в заданной памяти системы и необходим доступ к заданной памяти для определения контекстной модели для энтропийного кодирования синтаксического элемента текущего блока. Однако, согласно варианту осуществления настоящего изобретения, модуль 1420 определения контекстной модели не использует информации о соседней единице кодирования, но выбирает контекстную модель для энтропийного кодирования первого синтаксического элемента, используя второй синтаксический элемент, используемый в текущей единице кодирования, и таким образом число обращений к памяти можно снизить и объем памяти для сохранения синтаксических элементов может быть сокращен.
Кроме того, как описано ниже, модуль 1420 определения контекстной модели может получать первый синтаксический элемент, имеющий тот же тип, что и первый синтаксический элемент текущей единицы кодирования, из соседней единицы кодирования, и определять контекстную модель для энтропийного кодирования первого синтаксического элемента текущей единицы кодирования объединяя второй синтаксический элемент, полученный из текущей единицы кодирования, и первый синтаксический элемент, полученный из соседней единицы кодирования.
Контекстная модель представляет собой вероятностную модель бина и включает в себя информацию о том какое из значений 0 и 1 соответствует MPS, а какое LPS, и вероятность MPS или LPS.
Механизм 1432 регулярного кодирования осуществляет двоичное арифметическое кодирование в отношении текущего символа кодирования на основании информации о MPS и LPS, и информации о вероятности MPS или LPS, предоставляемой модулем 1420 определения контекстной модели.
Процесс определения контекстной модели для энтропийного кодирования синтаксических элементов, осуществляемый модулем 1420 определения контекстной модели, показанным на FIG. 14, будет далее рассмотрен подробно.
На ФИГ. 15 представлена блок-схема модуля 1420 определения контекстной модели, показанного на ФИГ. 14.
Ссылаясь на ФИГ. 15, модуль 1420 определения контекстной модели включает в себя модуль 1421 получения дополнительной информации и модуль 1422 определения вероятностной модели.
Модуль 1421 получения дополнительной информации получает информацию о вторых синтаксических элементах текущей единицы кодирования, применимых при энтропийном кодировании первого синтаксического элемента текущей единицы данных. Например, второй синтаксический элемент включает в себя информацию о размере текущей единицы данных, информацию относительного размера, указывающую относительный размер текущей единицы данных, включающей в себя первый синтаксический элемент, по сравнению с единицей данных на более высоком уровне и имеющей размер больший, чем у текущей единицы данных, информацию типа цвета цветного изображения, к которому принадлежит единица данных, и информацию режима предсказания. Второй синтаксический элемент представляет собой дополнительную информацию о текущей единице кодирования, применяемой во время энтропийного кодирования первого синтаксического элемента.
Модуль 1422 определения вероятностной модели определяет контекстную модель, используемую для энтропийного кодирования первого синтаксического элемента, на основании полученной дополнительной информации о вторых синтаксических элементах. Подробнее, когда второй синтаксический элемент, используемый в энтропийном кодировании первого синтаксического элемента, кодируемого в настоящий момент, имеет ′a′ значений состояния, где ′a′ представляет собой положительное целое число, модуль 1422 определения вероятностной модели определяет индекс контекста, указывающий одну из ′a′ контекстных моделей согласно значениям состояния второго синтаксического элемента, для определения контекстной модели, используемой для энтропийного кодирования первого синтаксического элемента текущей единицы кодирования. Например, когда размер текущей единицы данных, для которой первый синтаксический элемент, кодируемый в настоящее время, имеет 5 значений состояния 2×2, 4×4, 8×8, 16×16, 32×32 и 64×64, и размер текущей единицы данных используется в качестве второго синтаксического элемента, модуль 1422 определения вероятностной модели может задавать 5 или менее контекстных моделей согласно размеру текущей единицы данных, являющемуся вторым синтаксическим элементом, и может определять и выводить индекс контекста, указывающий контекстную модель, используемую во время энтропийного кодирования первого синтаксического элемента текущей единицы данных, основываясь на размере текущей единицы данных, т.е., втором синтаксическом элементе.
i
1
2
n
Альтернативно, модуль 1422 определения вероятностной модели может определять контекстную модель для энтропийного кодирования первого синтаксического элемента текущей единицы кодирования, используя множество вторых синтаксических элементов. Подробнее, когда n обозначает число вторых синтаксических элементов, используемых для определения контекстной модели, где n обозначает целое число, и a обозначает число значений состояния каждого из n вторых синтаксических элементов, где i является целым числом от 1 до n, одна контекстная модель, используемая для энтропийного кодирования первого синтаксического элемента, может определяться из множества контекстных моделей, основанных на a*a*...*a, что является числом комбинаций значений состояния вторых синтаксических элементов.
Например, когда предполагается, что флаг CBF coded_block_flag (флаг кодируемого блока), который является флагом, указывающим, имеются ли ненулевые коэффициенты преобразования в единице преобразования, имеет 12 контекстных моделей, контекстная модель для энтропийного кодирования флага CBF текущей единицы преобразования может определяться на основании информации цветовых компонент изображения, к которому принадлежит текущая единица преобразования, и информации размера текущей единицы преобразования. Предполагается, что информация цветовых компонент является одной из Y, Cb и Cr, и индекс color_type_index (индекс типа цвета), указывающий цветовую компоненту устанавливается в 0, 1 и 2 соответственно по отношению к Y, Cb и Cr. Кроме того, предполагается, что индекс TU_Blocl_size_index, указывающий размер единицы преобразования устанавливается в 0, 1, 2 и 3 соответственно по отношению к 4×4, 8×8, 16×16 и 32×32. В этом случае, модуль 1422 определения вероятностной модели может получать индекс Ctxldx контекста, указывающий контекстную модель для энтропийного кодирования флага CBF текущей единицы преобразования, используя индекс color_type_index и индекс TU_Block_size_index, являющиеся другими синтаксическими элементами, согласно уравнению: Ctxldx=color_type_index*4+TU_Block_size_index. Как описано выше, выбирая контекстную модель, используя информацию о других синтаксических элементах в той же самой текущей единице кодирования, число обращений к памяти и объем памяти могут быть уменьшены.
В вышеуказанном примере, флаг CBF использует информацию размера единицы преобразования и информацию цветовых компонент, но первый синтаксический элемент, который должен быть энтропийно кодирован, и второй синтаксический элемент, используемый для выбора контекстной модели, могут выбираться различными, посредством использования текущей применяемой дополнительной информации единицы данных.
Модуль 1421 получения дополнительной информации получает первый синтаксический элемент, имеющий такой же тип, что и у первого синтаксического элемента, который должен быть энтропийно кодирован в настоящее время, из соседней единицы данных текущей единицы данных, а также дополнительную информацию текущей единицы данных. Модуль 1422 определения вероятностной модели может определять вероятностную модель для энтропийного кодирования первого синтаксического элемента текущей единицы данных, используя второй синтаксический элемент текущей единицы кодирования, отличающийся от первого синтаксического элемента, полученного из соседней единицы кодирования. Например, предполагается, что первый синтаксический элемент текущей единицы данных, которая должна быть кодирована, представляет собой флаг разделения, указывающий, разделена ли текущая единица данных. В этом случае, модуль 1422 определения вероятностной модели может получать флаг разделения из левой или верхней соседней единицы данных и выбирать контекстную модель для энтропийного кодирование флага разделения текущей единицы данных посредством уравнения: ctxldx=split_flag_left+(depth>>1), используя другие синтаксические элементы, за исключением флага разделения split_flag_neighbor соседней единицы данных и флага разделения текущей единицы данных, например, используя глубину текущей единицы данных, в качестве второго синтаксического элемента. При этом, модуль 1421 получения дополнительной информации может получать информацию о первом синтаксическом элементе, имеющем такой же тип, как и у первого синтаксического элемента текущей единицы данных, из левой соседней единицы данных текущей единицы данных, для энтропийного кодирования первого синтаксического элемента текущей единицы данных. Так как информация о единице данных как правило сохраняется в и считывается из буфера в виде линейного блока, размер буфера можно уменьшить, за счет получения информации о первых синтаксических элементах из текущей единицы данных и левой соседней единицы данных текущей единицы данных, вместо использования информации о первых синтаксических элементах текущей единицы данных и верхней соседней единицы данных текущей единицы данных. Кроме того, рассматривая порядок обработки растрового сканирования и т.п., размер буфера можно уменьшить, используя информацию о левой соседней единице данных текущей единицы данных, находящейся на той же линии, что и текущая единица данных и обработанной перед текущей единицей данных, вместо использования информация о верхней соседней единице данных во время энтропийного кодирования первого синтаксического элемента текущей единицы данных.
Процесс энтропийного кодирования информации о единицах кодирования, имеющих иерархическую структуру, описан выше со ссылкам на ФИГ. с 1 по 13, тогда как первый синтаксический элемент будет подробно описан далее.
На ФИГ.16 представлена схема, описывающая единицу 1600 данных, имеющую иерархическую структуру, и информацию 33 разделения единицы данных, имеющей иерархическую структуру, согласно варианту осуществления настоящего изобретения. Здесь, единица данных может представлять собой одну из единицы кодирования, единицы предсказания и единицы преобразования, описанные выше.
Как описано выше, согласно варианту осуществления настоящего изобретения, кодирование выполняется, используя единицы кодирования, единицы предсказания и единицы преобразования, имеющие иерархические структуры. На ФИГ. 16, единица 1600 данных имеющая размер NXN, и на уровне 0, являющемся самым верхним уровнем, разделена на единицы с 31a по 31d данных на уровне 1, являющемся уровнем меньшим, чем самый верхний уровень, и единицы 31a и 31d данных соответственно разделены на единицы с 32a по 32d и с 32e по 32 данных на уровне 2, являющемся уровнем меньшим, чем уровень 1. Флаг разделения, указывающий, разделена ли каждая единица данных на единицы данных более на более низком уровне, может использоваться в качестве символа для указания иерархической структуры единиц данных. Например, когда флаг разделения текущей единицы данных равен 1, текущая единица данных может быть разделена в более нижний уровень, и когда флаг разделения равен 0, текущая единица данных может не быть разделена.
Так как единицы 30, с 31a по 31d, и с 32a по 32h данных образуют иерархическую структуру, информация разделения единиц 30, с 31a по 31d и с 32a по 32h преобразования также может формировать иерархическую структуру. Другими словами, информация 33 разделения единицы данных включает в себя информацию 34 разделения единицы данных на уровне 0, являющемся самым верхним уровнем, информацию с 35a по 35d разделения единицы данных на уровне 1, и информацию с 36a по 36h разделения единицы данных на уровне 2.
Информация 34 разделения единицы данных на уровне 0 в информации 33 разделения единицы данных, имеющей иерархическую структуру, обозначает, что единица 30 данных на уровне 0 разделена. Аналогично, информация 35a и 35d разделения единицы данных на уровне 1 соответственно обозначает, что единицы 31a и 31d данных на уровне 1 разделены на единицы с 32a по 32d и с 32e по 32h данных на уровне 2.
Единицы 31b и 31c данных на уровне 1 далее не разделены, и соответствуют концевым узлам, не содержащим дочернего узла в древовидной структуре. Аналогично, единицы с 32a по 32h данных на уровне 2 соответствуют концевым узлам, которые более не разделяются в более низкие уровни.
Как таковой, флаг разделения, указывающий является ли единица данных на верхнем уровне разделенной на единицы данных на нижних уровнях, можно использовать в качестве символа, указывающего иерархическую структуру единиц данных.
При энтропийном кодировании флага разделения, указывающего иерархическую структуру единиц данных, энтропийный кодер 120 может осуществлять энтропийное кодирование флагов разделения единиц данных всех узлов, или осуществлять энтропийное кодирование только флагов разделения единиц данных, соответствующих концевым узлам, не имеющим дочернего узла.
На ФИГ. 17A и 17B представлены ссылочные схемы символов, указывающих иерархическую структуру единиц данных, согласно вариантам осуществления настоящего изобретения.
На ФИГ. 17A и 17B, предполагается, что флаг представляет собой флаг разделения единицы данных, указывающий, разделяется ли единица данных каждого узла на единицы данных на более нижнем уровне, включенный в информацию 33 разделения единицы данных, показанную на ФИГ. 16. Ссылаясь на ФИГ. 17A, энтропийный кодер 120 может осуществлять энтропийное кодирование флагов flag0, с flag1a по flag1d и с flag2a по flag2h разделения единиц 30, с 31a по 31d и с 32a по 32h данных на всех уровнях. Альтернативно, как показано на ФИГ. 17B, энтропийный кодер 120 может осуществлять энтропийное кодирование только флагов flag1b, flag1c и с flag2a по flag2h разделения единиц 31b, 31c и с 32a по 32h данных, соответствующих концевым узлам, которые не имеют дочернего узла, так как можно определить, разделена ли единица данных на верхнем уровне на основании того, существует ли флаг разделения в единице данных на нижнем уровне. Например, на ФИГ. 17B, когда флаги разделения с flag2a по flag2d единиц с 32a по 32d данных на уровне 2 существуют, значит единица 31a данных на уровне 1, являющемся верхним уровнем уровня 2, очевидно является разделенным на единицы с 32a по 32d данных, и таким образом флаг flag1a разделения единицы 31a данных может не кодироваться.
Устройство 200 декодирования видео определяет иерархическую структуру единиц данных, извлекая и считывая флаги flag0, с flag1a по flag1d и с flag2a по flag2h разделения единиц 30, с 31a по 31d и с 32a по 32h данных на всех уровнях, согласно режиму иерархического декодирования символа. Альтернативно, когда только флаги flag1b, flag1c и с flag2a по flag2h разделения единиц 31b, 31c и с 32a по 32h данных, соответствующих концевым узлам, кодированы, устройство 200 декодирования видео может определять иерархическую структуру единиц данных, определяя флаги flag0 и с flag1a по flag1d разделения единиц 30 и с 31a по 31d данных, которые не кодировались, на основании извлеченных флагов flag1b, flag1c и c flag2a по flag2h разделения.
Модуль 1420 определения контекстной модели может определять одну из множества контекстных моделей для энтропийного кодирования флагов разделения, указывающих иерархическую структуру единиц данных, на основании значений состояния согласно комбинации дополнительной информации.
На ФИГ. 18A и 18B представлены схемы индексов контекста для определения контекстной модели согласно комбинации дополнительной информации, согласно вариантам осуществления настоящего изобретения.
i
i
1
2
n
1
2
n
1
2
m
Ссылаясь на ФИГ. 18A, модуль 1420 определения контекстной модели может определять контекстную модель, которая должна быть использована для энтропийного кодирования флага разделения текущей единицы данных, на основании другой применяемой дополнительной информации, за исключением флага разделения единицы данных. Когда предполагается, что n частей дополнительной информации, каждая из которых имеет a значений состояния, где a представляет собой целое число и i представляет собой целое число от 1 до n, модуль 1420 определения контекстной модели может определять контекстную модель, которая должна быть использована для энтропийного кодирования флага разделения, из множества контекстных моделей на основании индекса Ctxldx контекста, определяемого согласно комбинации axax...xa значений состояния. Как показано на ФИГ. 18A, когда предполагается, что значения axax..xa, соответственно имеют значения комбинаций S1, S2,..., и Sm, один индекс контекста определяется на основании таких m значений состояния (S, S,..., и S).
1
2
m
Альтернативно, как показано на ФИГ. 18B, модуль 1420 определения контекстной модели может определять индекс контекста, согласно значению комбинации дополнительной информации, группируя m значений состояния (S, S, …, и S).
На ФИГ. 19 представлена ссылочная схема контекстной модели согласно варианту осуществления настоящего изобретения.
Модуль 1422 определения вероятностной модели определяет и выводит информацию о двоичных сигналах, соответствующих MPS и LPS, из двоичных сигналов 0 и 1, и о значении вероятности MPS или LPS, используя индекс контекста Ctxldx, определенный согласно комбинации дополнительной информации. Ссылаясь на ФИГ. 19, модуль 1422 определения вероятностной модели сохраняет вероятности двоичных сигналов в справочной таблице 1900, и выводит информацию о значении вероятности, соответствующем индексу Ctxldx контекста, определенному согласно комбинации дополнительной информации, на механизм 1432 регулярного кодирования. Подробнее, когда индекс Ctxldx контекста, указывающий контекстную модель, которая должна быть применена к текущему символу, определяется на основании комбинации дополнительной информации текущей единицы данных, модуль 1422 определения вероятностной модели может определять индекс pStateldx таблицы вероятностей, соответствующий индексу Ctxldx контекста, и бинарный сигнал, соответствующий MPS. Кроме того, модуль 1420 определения контекстной модели может аналогично определять контекстную модель для энтропийного кодирования синтаксического элемента текущей единицы данных из множества контекстных моделей согласно комбинации дополнительной информации о текущей единице данных и дополнительной информации о соседней единице данных, смежной с текущей единицей данных.
На ФИГ. 20 представлен график значения вероятности MPS, согласно варианту осуществления настоящего изобретения.
Таблица вероятностей показывает значения вероятности MPS и, когда назначен индекс pStateldx таблицы вероятностей, то определяется значение вероятности соответствующего MPS. Например, когда модуль 1420 определения контекстной модели определяет и выводит индекс Ctxldx контекста контекстной модели, которая должна быть использована для кодирования текущего символа, равный 1, модуль 1422 определения вероятностной модели определяет индекс pStatelndx равный 7 и MPS, соответствующий 0, что соответствует индексу Ctxldx контекста 1, среди контекстных моделей, показанных на ФИГ. 19. Кроме того, модуль 1422 определения вероятностной модели определяет значение вероятности MPS, соответствующее индексу pStateldx 7, среди предварительно заданных значений вероятности MPS, как показано на ФИГ. 20. Так как сумма значений вероятности MPS и LPS равна 1, после определения значения вероятности MPS или LPS, оставшееся значение вероятности может быть определено.
При этом, модуль 1422 определения вероятностной модели может обновить индекс pStateldx на основании которого один из MPS и LPS кодируется, всякий раз когда один бин кодируется механизмом 1432 регулярного кодирования, тем самым обновляя значения вероятности MPS и LPS с учетом статистики генерирования двоичного сигнала. Например, модуль 1422 определения вероятностной модели может задать transIdxMPS, представляющий собой значение индекса pStateldx после обновления во время кодирования MPS, и tranIdxLPS представляющий собой значение индекса pStateldx после обновления во время кодирования LPS в форме справочной таблицы с учетом результатов кодирования механизма 1432 регулярного кодирования, и затем обновить индекс pStateldx по каждой операции кодирования для изменения значения вероятности MPS.
Механизм 1432 регулярного кодирования выполняет энтропийное кодирование и выводит двоичный сигнал символа о текущем синтаксическом элементе, на основании информации о двоичном сигнале и значении вероятности, соответствующем MPS или LPS.
На ФИГ. 21 представлена схема для пояснения операции двоичного арифметического кодирования, выполняемой механизмом 1430 регулярного кодирования, показанным на ФИГ. 14. Ссылаясь на ФИГ. 21, предполагается, что флаг разделения, указывающий иерархическую структуру единиц данных, имеет двоичное значение 010, вероятность 1 равна 0,2, и вероятность 0 равна 0,8. Здесь, вероятности 1 и 0 обновляются каждый раз, когда кодируется двоичное значение, но для удобства описания, предполагается, что вероятности фиксированы.
Ссылаясь на ФИГ. 21, когда значение «0» исходного бина кодируется из двоичного значения «010», [от 0,0 до 0,8] составляющий нижние 80% от начального отрезка [от 0,0 до 1,0] обновляется в качестве нового отрезка, и когда значение «1» следующего бина кодируется, [от 0,64 до 0,8] составляющий верхние 20% отрезка [от 0,0 до 0,8] обновляется в качестве нового отрезка. Затем, при кодировании значения «0» последнего бина, [от 0,64 до 0,768] составляющий нижние 80% отрезка [от 0,64 до 0,8] обновляется в качестве нового отрезка. Из двоичной формы числа 0,11, соответствующего действительному числу 0,75, входящему в итоговый отрезок [0,64~0,768], "11", находящееся после десятичной точки, выводится в поток битов, соответствующий двоичному значению "010" флага разделения.
На ФИГ. 22 представлена блок-схема, иллюстрирующая способ энтропийного кодирования, согласно варианту осуществления настоящего изобретения.
i
1
2
n
Ссылаясь на ФИГ. 22, иерархический кодер 110 кодирует видео на основании единиц данных, имеющих иерархическую структуру, в операции 2210. В операции 2220, модуль 1420 определения контекстной модели определят контекстную модель, которая должна быть использована для энтропийного кодирования первого синтаксического элемента текущей единицы данных, который должен быть энтропийно кодирован, на основании по меньшей мере одного второго синтаксического элемента текущей единицы данных, где второй синтаксический элемент является применяемым и отличным от первого синтаксического элемента текущей единицы данных. Как описано выше, когда число вторых синтаксических элементов равно n, где n является целым числом, и число значений состояния каждого из n вторых синтаксических элементов равняется a, где i является целым числом от 1 до n, модуль 1420 определения контекстной модели может определять контекстную модель, указанную индексом Ctxldx контекста, определенным на основании a*a*...a, что представляет собой число комбинаций значений состояния вторых синтаксических элементов.
В операции 2230, механизм 1432 регулярного кодирования выполняет энтропийное кодирование первого синтаксического элемента текущей единицы данных, используя определенную контекстную модель.
На ФИГ. 23 представлена блок-схема устройства 2300 энтропийного декодирования, согласно варианту осуществления настоящего изобретения.
Ссылаясь на ФИГ. 23, устройство 2300 энтропийного декодирования включает в себя модуль 2310 определения контекстной модели, регулярный декодер 2320 (средство регулярного декодирования), декодер 2330 обхода, и модуль 2340 преобразования из двоичной формы. Устройство 2300 энтропийного декодирования выполняет обратные процессы процессов энтропийного кодирования, выполняемым устройством 1400 энтропийного кодирования, описанным выше.
Символ, кодированный посредством кодирования обхода, выводится на и декодируется декодером 2330 обхода, и символ, кодированный посредством регулярного кодирования, декодируется регулярным декодером 2320. Регулярный декодер 2320 выполняет арифметическое декодирование в отношении бинарного значения текущего символа кодирования на основании контекстной модели, предоставляемой модулем 2310 определения контекстной модели.
Подобно модулю 1420 определения контекстной модели, показанному на ФИГ. 14, модуль 2310 определения контекстной модели определяет контекстную модель, используемую для энтропийного декодирования первого синтаксического элемента текущей единицы данных, на основании по меньшей мере одного второго синтаксического элемента текущей единицы данных, который является применяемым и отличающимся от первого синтаксического элемента текущей единицы данных. Как описано выше модуль 2310 определения контекстной модели может получать информацию о первом синтаксическом элементе, имеющем тот же тип, что и у первого синтаксического элемента текущей единицы данных, из соседней единицы данных, смежной с текущей единицей данных, и определять контекстную модель для энтропийного декодирования первого синтаксического элемента текущей единицы данных, используя первый синтаксический элемент, полученный из соседней единицы данных, и второй синтаксический элемент, полученный из текущей единицы данных.
Работа модуля 2310 определения контекстной модели на ФИГ. 23, является такой же, как и у модуля 1420 определения контекстной модели на ФИГ. 14, за исключением того, что работа модуля 2310 определения контекстной модели выполняется с точки зрения декодирования, и поэтому подробности о нем опущены в настоящем документе.
Модуль 2340 преобразования из двоичной формы восстанавливает строки бинов, восстановленные регулярным декодером 2320 или декодером 2330 обхода, до синтаксического элемента.
На ФИГ. 24 представлена блок-схема, иллюстрирующая способ энтропийного декодирования, согласно варианту осуществления настоящего изобретения.
Ссылаясь на ФИГ. 24, модуль 210 извлечения синтаксического элемента извлекает синтаксические элементы изображения, кодированного на основании единиц данных, имеющих иерархическую структуру, посредством синтаксического анализа кодированного потока битов в операции 2410. В операции 2420 модуль 2310 определения контекстной модели устройства 2300 энтропийного декодирования определяет контекстную модель для энтропийного декодирования первого синтаксического элемента текущей единицы данных, который должен быть энтропийно декодирован, на основании по меньшей мере одного второго синтаксического элемента текущей единицы данных, являющегося применяемым и отличающимся от первого синтаксического элемента текущей единицы данных. Как описано выше, модуль 2310 определения контекстной модели может получать первый синтаксический элемент, имеющий тот же тип, что и первый синтаксический элемент текущей единицы данных, из левой или верхней соседней единицы данных текущей единицы данных, а также второй синтаксический элемент текущей единицы данных, и выбирать контекстную модель для энтропийного декодирования первого синтаксического элемента текущей единицы данных, объединяя первый синтаксический элемент, полученный из левой или верхней соседней единицы данных, и второй синтаксический элемент, полученный из текущей единицы данных. В операции 2430 регулярный декодер 2320 осуществляет энтропийное декодирование первого синтаксического элемента текущей единицы данных, используя определенную контекстную модель.
Изобретение может также быть воплощено в виде считываемых компьютером кодов на считываемом компьютером носителе записи. Считываемый компьютером носитель представляет собой любое устройство для хранения данных, которое может хранить данные, которые впоследствии могут быть прочитаны компьютерной системой. Примеры считываемого компьютером носителя включают в себя постоянное запоминающее устройство (ПЗУ), оперативное запоминающее устройство (ОЗУ), CD-ROM, магнитные ленты, дискеты, оптические устройства хранения данных и т.д. Считываемый компьютером носитель может также распределяться в сети связанных компьютерных систем, так что считываемый компьютером код хранится и исполняется распределенным образом.
Хотя настоящее изобретение было показано и описано со ссылкой на предпочтительные варианты осуществления, специалистам в данной области будет понятно, что различные изменения в форме и деталях могут быть сделаны без отступления от сущности и объема изобретения, как определено прилагаемой формулой изобретения. Таким образом, объем изобретения определяется не подробным описанием изобретения, а прилагаемой формулой изобретения, и все различия в рамках объема следует толковать как включенные в настоящее изобретение.