Способ и устройство для энтропийного кодирования видео и способ и устройство для энтропийного декодирования видео
Иллюстрации
Показать всеИзобретение относится к технологиям кодирования/декодирования видео. Техническим результатом является упрощение функционирования энтропийного кодирования/декодирования за счет выбора контекстной модели на основании глубины преобразования. Предложен способ декодирования видео. Способ содержит этап, на котором получают из битового потока флаг преобразования с разбиением для текущей глубины, при этом, когда флаг преобразования с разбиением указывает отсутствие разбиения для текущей глубины, определяют, что глубина преобразования равна текущей глубине. Далее согласно способу определяют параметр приращения контекста для определения индекса контекста на основе того, равна ли глубина преобразования некоторому предопределенному значению, без использования размера блока преобразования. Получают контекстную модель для флага значимого коэффициента блока преобразования из числа множества контекстных моделей с использованием индекса контекста, полученного посредством сложения параметра приращения контекста и смещения контекста. 2 з.п. ф-лы, 27 ил., 1 табл.
Реферат
Область техники, к которой относится изобретение
Один или несколько вариантов осуществления настоящего изобретения относятся к кодированию и декодированию видео и, в частности, к способу и устройству для энтропийного кодирования и декодирования информации, относящейся к блоку преобразования.
Уровень техники
Согласно способам сжатия изображений, таким как MPEG-1, MPEG-2 или улучшенное кодирование видео (AVC) MPEG-4 H.264/MPEG-4, изображение разбивается на блоки, имеющие предварительно определенный размер, и затем остаточные данные блоков получаются путем промежуточного предсказания или внутреннего предсказания. Остаточные данные сжимаются путем преобразования, квантования, сканирования, кодирования длин серий и энтропийного кодирования. При энтропийном кодировании синтаксический элемент, такой как коэффициент преобразования или режим предсказания, энтропийно кодируется для вывода битового потока. Декодер выполняет синтаксический анализ и извлекает синтаксические элементы из битового потока и восстанавливает изображение на основе извлеченных синтаксических элементов.
Сущность изобретения
Техническая задача
Один или несколько вариантов осуществления настоящего изобретения включают в себя способ и устройство энтропийного кодирования и способ и устройство энтропийного декодирования для выбора контекстной модели, используемой для энтропийного кодирования и декодирования синтаксического элемента, относящегося к блоку преобразования, то есть блоку данных, используемому для преобразования блока кодирования, на основе глубины преобразования, указывающей иерархическое взаимоотношение разбиения между блоком кодирования и блоком преобразования.
Техническое решение
Контекстная модель для арифметического декодирования флага значимого коэффициента блока преобразования определяется на основе глубины преобразования, указывающей количество раз, когда блок кодирования разбивается, для определения блока преобразования, включенного в блок кодирования, и флаг значимого коэффициента блока преобразования арифметически декодируется на основе определенной контекстной модели.
Полезные эффекты
Согласно вариантам осуществления настоящего изобретения, путем выбора контекстной модели на основе глубины преобразования условие для выбора контекстной модели может быть упрощено, и операция для энтропийного кодирования и декодирования может также быть упрощена.
Краткое описание чертежей
Фиг. 1 изображает структурную схему устройства кодирования видео согласно одному варианту осуществления настоящего изобретения.
Фиг. 2 изображает структурную схему устройства декодирования видео согласно одному варианту осуществления настоящего изобретения.
Фиг. 3 изображает схему для описания концепции блоков кодирования согласно одному варианту осуществления настоящего изобретения.
Фиг. 4 изображает структурную схему кодера видео на основе блоков кодирования, имеющих иерархическую структуру, согласно одному варианту осуществления настоящего изобретения.
Фиг. 5 изображает структурную схему декодера видео на основе блоков кодирования, имеющих иерархическую структуру, согласно одному варианту осуществления настоящего изобретения.
Фиг. 6 изображает схему, иллюстрирующую более глубокие блоки кодирования согласно глубинам и сегменты, согласно одному варианту осуществления настоящего изобретения.
Фиг. 7 изображает схему для описания отношения между блоком кодирования и блоками преобразования согласно одному варианту осуществления настоящего изобретения.
Фиг. 8 изображает схему для описания информации кодирования блоков кодирования, соответствующих кодируемой глубине, согласно одному варианту осуществления настоящего изобретения.
Фиг. 9 изображает схему более глубоких блоков кодирования согласно глубинам согласно одному варианту осуществления настоящего изобретения.
Фиг. 10-12 изображают схемы для описания отношения между блоками кодирования, блоками предсказания и блоками преобразования частоты согласно одному варианту осуществления настоящего изобретения.
Фиг. 13 изображает схему для описания отношения между блоком кодирования, блоком предсказания и блоком преобразования согласно информации режима кодирования из таблицы 1.
Фиг. 14 изображает структурную схему устройства энтропийного кодирования согласно одному варианту осуществления настоящего изобретения.
Фиг. 15 изображает блок-схему операции энтропийного кодирования и декодирования синтаксического элемента, относящегося к блоку преобразования, согласно одному варианту осуществления настоящего изобретения.
Фиг. 16 изображает схему, иллюстрирующую блок кодирования и блоки преобразования, включенные в блок кодирования, согласно одному варианту осуществления настоящего изобретения.
Фиг. 17 изображает схему, иллюстрирующую параметр увеличения контекста, используемый для определения контекстной модели флага значимого коэффициента блока преобразования каждого из блоков преобразования с фиг. 16, на основе глубины преобразования.
Фиг. 18 изображает схему, иллюстрирующую блок кодирования и блок преобразования, включенный в блок кодирования, согласно другому варианту осуществления настоящего изобретения.
Фиг. 19 изображает схему, иллюстрирующую флаги преобразования разбиения, используемые для определения структуры блоков преобразования, включенных в блок кодирования с фиг. 16, согласно одному варианту осуществления настоящего изобретения.
Фиг. 20 изображает блок преобразования, который энтропийно кодируется, согласно одному варианту осуществления настоящего изобретения.
Фиг. 21 изображает карту значимости, соответствующую блоку преобразования с фиг. 20.
Фиг. 22 изображает coeff_abs_level_greater1_flag, соответствующий блоку преобразования 4×4 с фиг. 20.
Фиг. 23 изображает coeff_abs_level_greater2_flag, соответствующий блоку преобразования 4×4 с фиг. 20.
Фиг. 24 изображает coeff_abs_level_remaining, соответствующий блоку преобразования 4×4 с фиг. 20.
Фиг. 25 изображает блок-схему способа энтропийного кодирования видео согласно одному варианту осуществления настоящего изобретения.
Фиг. 26 изображает структурную схему устройства энтропийного декодирования согласно одному варианту осуществления настоящего изобретения.
Фиг. 27 изображает блок-схему способа энтропийного декодирования видео согласно одному варианту осуществления настоящего изобретения.
Предпочтительный вариант осуществления изобретения
Согласно одному или нескольким вариантам осуществления настоящего изобретения, способ энтропийного декодирования видео, причем способ включает в себя определение блока преобразования, включенного в блок кодирования и используемого для обратного преобразования блока кодирования; получение флага значимого коэффициента блока преобразования, указывающего, существует ли ненулевой коэффициент преобразования в блоке преобразования, из битового потока; если количество раз, когда блок кодирования разбивается для определения блока преобразования, называется глубиной преобразования блока преобразования, определение контекстной модели для арифметического декодирования флага значимого коэффициента блока преобразования, на основе глубины преобразования блока преобразования; и арифметическое декодирование флага значимого коэффициента блока преобразования на основе определенной контекстной модели.
Согласно одному или нескольким вариантам осуществления настоящего изобретения, устройство энтропийного декодирования видео, причем устройство включает в себя синтаксический анализатор для получения флага значимого коэффициента блока преобразования, указывающего, существует ли ненулевой коэффициент преобразования в блоке преобразования, включенном в блок кодирования и используемом для обратного преобразования блока кодирования, из битового потока; средство моделирования контекстов для того, чтобы, если количество раз, когда блок кодирования разбивается для определения блока преобразования, называется глубиной преобразования блока преобразования, определять контекстную модель для арифметического декодирования флага значимого коэффициента блока преобразования, на основе глубины преобразования блока преобразования; и арифметический декодер для арифметического декодирования флага значимого коэффициента блока преобразования на основе определенной контекстной модели.
Согласно одному или нескольким вариантам осуществления настоящего изобретения, способ энтропийного кодирования видео, причем способ включает в себя получение данных блока кодирования, преобразованного на основе блока преобразования; если количество раз, когда блок кодирования разбивается для определения блока преобразования, называется глубиной преобразования блока преобразования, определение контекстной модели для арифметического кодирования флага значимого коэффициента блока преобразования, указывающего, существует ли ненулевой коэффициент преобразования в блоке преобразования, на основе глубины преобразования блока преобразования; и арифметическое кодирование флага значимого коэффициента блока преобразования на основе определенной контекстной модели.
Согласно одному или нескольким вариантам осуществления настоящего изобретения, устройство энтропийного кодирования видео, причем устройство включает в себя средство моделирования контекстов для получения данных блока кодирования, преобразованного на основе блока преобразования, и, если количество раз, когда блок кодирования разбивается для определения блока преобразования, называется глубиной преобразования блока преобразования, определение контекстной модели для арифметического кодирования флага значимого коэффициента блока преобразования, указывающего, существует ли ненулевой коэффициент преобразования в блоке преобразования, на основе глубины преобразования блока преобразования; и арифметический кодер для арифметического кодирования флага значимого коэффициента блока преобразования на основе определенной контекстной модели.
Техническая проблема
Далее способ и устройство для обновления параметра, используемого в информации размера энтропийного кодирования и декодирования блока преобразования согласно одному варианту осуществления настоящего изобретения, будут описаны со ссылками на фиг. 1-13. Дополнительно способ энтропийного кодирования и декодирования синтаксического элемента, полученного посредством способа энтропийного кодирования и декодирования видео, описанного со ссылками на фиг. 1-13, будет описан подробно со ссылками на фиг. 14-27. Такие выражения, как "по меньшей мере один из", когда предшествуют списку элементов, модифицируют весь список элементов и не модифицируют отдельные элементы из списка.
Фиг. 1 изображает структурную схему устройства 100 кодирования видео согласно одному варианту осуществления настоящего изобретения.
Устройство 100 кодирования видео включает в себя иерархический кодер 110 и энтропийный кодер 120.
Иерархический кодер 110 может разбивать текущую картинку, которая должна быть закодирована, на блоки предварительно определенных блоков данных для выполнения кодирования над каждым из блоков данных. Подробно иерархический кодер 110 может разбивать текущую картинку на основе наибольшего блока кодирования, которым является блок кодирования максимального размера. Наибольшим блоком кодирования согласно одному варианту осуществления настоящего изобретения может быть блок данных, имеющий размер 32×32, 64×64, 128×128, 256×256 и т.д., причем формой блока данных является квадрат, ширина и длина которого является степенью 2 и больше 8.
Блок кодирования согласно одному варианту осуществления настоящего изобретения может характеризоваться максимальным размером и глубиной. «Глубина» обозначает количество раз, которое блок кодирования пространственно разбивается от наибольшего блока кодирования, и по мере углубления глубины более глубокие блоки кодирования согласно глубинам могут быть разбиты из наибольшего блока кодирования до наименьшего блока кодирования. Глубиной наибольшего блока кодирования является самая высокая глубина, а глубиной наименьшего блока кодирования является самая низкая глубина. Поскольку размер блока кодирования, соответствующего каждой глубине, уменьшается по мере того, как глубина наибольшего блока кодирования углубляется, блок кодирования, соответствующий верхней глубине, может включать в себя множество блоков кодирования, соответствующих нижним глубинам.
Как описано выше, данные изображения текущей картинки разбиваются на наибольшие блоки кодирования согласно максимальному размеру блока кодирования, и каждый из наибольших блоков кодирования может включать в себя более глубокие блоки кодирования, которые разбиваются согласно глубинам. Поскольку наибольший блок кодирования согласно одному варианту осуществления настоящего изобретения разбивается согласно глубинам, данные изображения пространственной области, включенной в наибольший блок кодирования, могут быть иерархически классифицированы согласно глубинам.
Максимальная глубина и максимальный размер блока кодирования, которые ограничивают полное количество раз, которое высота и ширина наибольшего блока кодирования иерархически разбиваются, могут быть предварительно определены.
Иерархический кодер 110 кодирует по меньшей мере одну разбитую область, полученную путем разбиения области наибольшего блока кодирования согласно глубинам, и определяет глубину для вывода наконец закодированных данных изображения согласно по меньшей мере одной разбитой области. Иными словами, иерархический кодер 110 определяет кодируемую глубину путем кодирования данных изображения в более глубоких блоках кодирования согласно глубинам, согласно наибольшему блоку кодирования текущей картинки, и выбора глубины, имеющей наименьшую ошибку кодирования. Определенная кодируемая глубина и закодированные данные изображения согласно максимальным блокам кодирования выводятся к энтропийному кодеру 120.
Данные изображения в наибольшем блоке кодирования закодированы на основе более глубоких блоков кодирования, соответствующих по меньшей мере одной глубине, равной или меньшей, чем максимальная глубина, и результаты кодирования данных изображения сравниваются на основе каждого из более глубоких блоков кодирования. Глубина, имеющая наименьшую ошибку кодирования, может быть выбрана после сравнения ошибок кодирования более глубоких блоков кодирования. По меньшей мере одна кодируемая глубина может быть выбрана для каждого наибольшего блока кодирования.
Размер наибольшего блока кодирования разбивается, когда блок кодирования иерархически разбивается согласно глубинам и когда количество блоков кодирования увеличивается. Кроме того, даже если блоки кодирования соответствуют одной и той же глубине в одном наибольшем блоке кодирования, определяется, разбивать ли каждый из блоков кодирования, соответствующих одной и той же глубине, до более низкой глубины путем измерения ошибки кодирования данных изображения каждого блока кодирования, отдельно. Соответственно, даже когда данные изображения включены в один наибольший блок кодирования, данные изображения разбивается на области согласно глубинам, и ошибки кодирования могут отличаться согласно областям в одном наибольшем блоке кодирования, и, таким образом, кодируемые глубины могут отличаться согласно областям в данных изображения. Таким образом, одна или несколько кодируемых глубин могут быть определены в одном наибольшем блоке кодирования, и данные изображения наибольшего блока кодирования могут быть разделены согласно блокам кодирования по меньшей мере одной кодируемой глубины.
Соответственно, иерархический кодер 110 может определять блоки кодирования, имеющие древовидную структуру, включенные в наибольший блок кодирования. "Блоки кодирования, имеющие древовидную структуру" согласно одному варианту осуществления настоящего изобретения, включают в себя блоки кодирования, соответствующие глубине, определенной как кодируемая глубина, из всех более глубоких блоков кодирования, включенных в наибольший блок кодирования. Блок кодирования, имеющий кодируемую глубину, может быть иерархически определен согласно глубинам в той же самой области наибольшего блока кодирования и может быть независимо определен в других областях. Подобным образом кодируемая глубина в текущей области может быть независимо определена из кодируемой глубины в другой области.
Максимальная глубина согласно одному варианту осуществления настоящего изобретения является индексом, относящимся к количеству раз, которое наибольший блок кодирования разбивается на наименьшие блоки кодирования. Первая максимальная глубина согласно одному варианту осуществления настоящего изобретения может обозначать полное количество раз, которое наибольший блок кодирования разбивается на наименьшие блоки кодирования. Вторая максимальная глубина согласно одному варианту осуществления настоящего изобретения может обозначать полное количество уровней глубин от наибольшего блока кодирования до наименьшего блока кодирования. Например, когда глубина наибольшего блока кодирования равна 0, глубина блока кодирования, в котором наибольший блок кодирования разбивается единожды, может быть установлена равной 1, и глубина блока кодирования, в котором наибольший блок кодирования разбивается дважды, может быть установлена равной 2. Здесь, если наименьшим блоком кодирования является блок кодирования, в котором наибольший блок кодирования разбивается четыре раза, существует пять уровней глубин 0, 1, 2, 3 и 4, и, таким образом, первая максимальная глубина может быть установлена равной 4, и вторая максимальная глубина может быть установлена равной 5.
Кодирование с предсказанием и преобразование могут выполняться согласно наибольшему блоку кодирования. Кодирование с предсказанием и преобразование также выполняются на основе более глубоких блоков кодирования согласно глубине, равной, или глубинам, меньшим, чем максимальная глубина, согласно наибольшему блоку кодирования.
Поскольку количество более глубоких блоков кодирования увеличивается всегда, когда наибольший блок кодирования разбивается согласно глубинам, кодирование, включающее в себя кодирование с предсказанием и преобразование, выполняется над всеми из более глубоких блоков кодирования, генерируемых по мере углубления глубины. Для удобности описания кодирование с предсказанием и преобразование далее будут описаны на основе блока кодирования текущей глубины, в наибольшем блоке кодирования.
Устройство 100 кодирования видео может различным образом выбирать размер или форму блока данных для кодирования данных изображения. Для того чтобы кодировать данные изображения, такие операции, как кодирование с предсказанием, преобразование и энтропийное кодирование, выполняются, и при этом один и тот же блок данных может быть использован для всех операций или различные блоки данных могут быть использованы для каждой операции.
Например, устройство 100 кодирования видео может выбирать не только блок кодирования для кодирования данных изображения, но также и блок данных, отличный от блока кодирования, для выполнения кодирования с предсказанием над данными изображения в блоке кодирования.
Для того чтобы выполнить кодирование с предсказанием в наибольшем блоке кодирования, кодирование с предсказанием может выполняться на основе блока кодирования, соответствующего кодируемой глубине, т. е. на основе блока кодирования, который больше не разбит на блоки кодирования, соответствующие более низкой глубине. Далее блок кодирования, который более не разбит и становится базисным блоком для кодирования с предсказанием, будет называться "блоком предсказания". Сегмент, полученный путем разбиения блока предсказания, может включать в себя блок предсказания или блок данных, полученный путем разбиения по меньшей мере одной из высоты и ширины блока предсказания.
Например, когда блок кодирования 2N×2N (где N является положительным целым) больше не разбит и становится блоком предсказания 2N×2N, размер сегмента может быть 2N×2N, 2N×N, N×2N или N×N. Примеры типа сегмента включают в себя симметричные сегменты, которые получаются путем симметричного разбиения высоты или ширина блока предсказания, сегменты, полученные путем асимметричного разбиения высоты или ширины блока предсказания, такого как 1:n или n:1, сегменты, которые получаются путем геометрического разбиения блока предсказания, и сегменты, имеющие произвольные формы.
Режим предсказания блока предсказания может быть по меньшей мере одним из внутреннего режима, промежуточного режима и режима пропуска. Например, внутренний режим или промежуточный режим могут выполняться над сегментом 2N×2N, 2N×N, N×2N или N×N. Кроме того, режим пропуска может выполняться только над сегментом 2N×2N. Кодирование независимо выполняется над одним блоком предсказания в блоке кодирования, тем самым выбирая режим предсказания, имеющий наименьшую ошибку кодирования.
Устройство 100 кодирования видео может также выполнять преобразование над данными изображения в блоке кодирования на основе не только блока кодирования для кодирования данных изображения, но также на основе блока данных, который отличен от блока кодирования.
Для того чтобы выполнить преобразование в блоке кодирования, преобразование может выполняться на основе блока данных, имеющего размер, равный или меньший размеру блока кодирования. Например, блок данных для преобразования может включать в себя блок данных для внутреннего режима и блок данных для промежуточного режима.
Блок данных, используемый в качестве основы преобразования, называется "блоком преобразования". Подобным образом блоку кодирования блок преобразования в блоке кодирования может быть рекурсивно разбит на области меньшего размера так, чтобы блок преобразования мог быть определен независимо в блоках областей. Таким образом, остаточные данные в блоке кодирования могут быть разделены согласно блоку преобразования, имеющему древовидную структуру, согласно глубинам преобразования.
Глубина преобразования, указывающая количество раз, которое высота и ширина блока кодирования разбиваются для достижения блока преобразования, может также быть установлена в блоке преобразования. Например, в текущем блоке кодирования 2N×2N глубина преобразования может быть 0, когда размер блока преобразования равен 2N×2N, может быть 1, когда размер блока преобразования равен N×N, и может быть 2, когда размер блока преобразования равен N/2×N/2. То есть блок преобразования, имеющий древовидную структуру, может также быть установлен согласно глубинам преобразования.
Информация кодирования согласно блокам кодирования, соответствующим кодируемой глубине, требует не только информации о кодируемой глубине, но также об информации, относящейся к кодированию с предсказанием и преобразованию. Соответственно, иерархический кодер 110 не только определяет кодируемую глубину, имеющую наименьшую ошибку кодирования, но также определяет тип сегмента в блоке предсказания, режим предсказания согласно блокам предсказания и размер блока преобразования для преобразования.
Блоки кодирования согласно древовидной структуре в наибольшем блоке кодирования и способ определения сегмента согласно вариантам осуществления настоящего изобретения будут описаны подробно ниже со ссылками на фиг. 3-12.
Иерархический кодер 110 может измерять ошибку кодирования более глубоких блоков кодирования согласно глубинам посредством оптимизации искажения скорости на основе множителей Лагранжа.
Энтропийный кодер 120 выводит данные изображения наибольшего блока кодирования, который закодирован на основе по меньшей мере одной кодируемой глубины, определенной иерархическим кодером 110, и информации о режиме кодирования согласно кодируемой глубине, в битовых потоках. Закодированными данными изображения может быть закодированный результат остаточных данных изображения. Информация о режиме кодирования согласно кодируемой глубине может включать в себя информацию о кодируемой глубине, информацию о типе сегмента в блоке предсказания, информацию режима предсказания и информацию размера блока преобразования. В частности, как будет описано ниже, энтропийный кодер 120 может энтропийно кодировать флаг значимого коэффициента блока преобразования (coded_block_flag) cbf, указывающий, включен ли ненулевой коэффициент преобразования в блок преобразования, посредством контекстной модели, определенной на основе глубины преобразования блока преобразования. Операция энтропийного кодирования синтаксических элементов, относящихся к блоку преобразования, в блоке 120 энтропийного кодирования будет описана ниже.
Информация о кодируемой глубине может быть определена посредством информации разбиения согласно глубинам, которые указывают, выполняется ли кодирование над блоками кодирования более низкой глубины вместо текущей глубины. Если текущая глубина текущего блока кодирования является кодируемой глубиной, данные изображения в текущем блоке кодирования кодируются и выводятся, и, таким образом, информация разбиения может быть определена не для разбиения текущего блока кодирования до более низкой глубины. В качестве альтернативы, если текущая глубина текущего блока кодирования не является кодируемой глубиной, кодирование выполняется на блоке кодирования более низкой глубины, и, таким образом, информация разбиения может быть определена для разбиения текущего блока кодирования для получения блоков кодирования более низкой глубины.
Если текущая глубина не является кодируемой глубиной, кодирование выполняется над блоком кодирования, который разбивается на блок кодирования более низкой глубины. Поскольку по меньшей мере один блок кодирования более низкой глубины существует в одном блоке кодирования текущей глубины, кодирование многократно выполняется над каждым блоком кодирования более низкой глубины, и, таким образом, кодирование может рекурсивно выполняться для блоков кодирования, имеющих одну и ту же глубину.
Поскольку блоки кодирования, имеющие древовидную структуру, определяются для одного наибольшего блока кодирования, и информация о по меньшей мере одном режиме кодирования определяется для блока кодирования кодируемой глубины, информация о по меньшей мере одном режиме кодирования может быть определена для одного наибольшего блока кодирования. Кроме того, кодируемая глубина данных изображения наибольшего блока кодирования может быть другой согласно местоположениям, поскольку данные изображения иерархически разбиваются согласно глубинам, и, таким образом, информация о кодируемой глубине и режиме кодирования может быть установлена для данных изображения.
Соответственно, энтропийный кодер 120 может назначать информацию кодирования о соответствующей кодируемой глубине и режиме кодирования по меньшей мере одному из блока кодирования, блока предсказания и минимального блока, включенного в наибольший блок кодирования.
Минимальным блоком согласно одному варианту осуществления настоящего изобретения является блок данных квадратной формы, полученный путем разбиения наименьшего блока кодирования, составляющего самую нижнюю глубину, на 4. В качестве альтернативы минимальным блоком может быть максимальный блок данных квадратной формы, который может быть включен во все из блоков кодирования, блоков предсказания, блоков сегментирования и блоков преобразования, включенных в наибольший блок кодирования.
Например, информация кодирования, выводимая через энтропийный кодер 120, может быть классифицирована на информацию кодирования согласно блокам кодирования и информацию кодирования согласно блокам предсказания. Информация кодирования согласно блокам кодирования может включать в себя информацию о режиме предсказания и о размере сегментов. Информация кодирования согласно блокам предсказания может включать в себя информацию об оцененном направлении промежуточного режима, об опорном индексе изображения промежуточного режима, о векторе движения, о компоненте насыщенности внутреннего режима и о способе интерполяции внутреннего режима. Кроме того, информация о максимальном размере блока кодирования, определенная согласно картинкам, секторам или GOP, и информация о максимальной глубине может быть добавлена в заголовок битового потока.
В устройстве 100 кодирования видео более глубокий блок кодирования может быть блоком кодирования, полученным путем деления высоты или ширины блока кодирования более высокой глубины, которая на один слой выше, на два. Иными словами, когда размер блока кодирования текущей глубины равен 2N×2N, размер блока кодирования более низкой глубины равен N×N. Кроме того, блок кодирования текущей глубины, имеющий размер 2N×2N, может включать в себя максимальное количество из четырех блоков кодирования более низкой глубины.
Соответственно, устройство 100 кодирования видео может формировать блоки кодирования, имеющие древовидную структуру, путем определения блоков кодирования, имеющих оптимальную форму и оптимальный размер для каждого наибольшего блока кодирования, на основе размера наибольшего блока кодирования и максимальной глубины, определенной с учетом характеристик текущей картинки. Кроме того, поскольку кодирование может выполняться над каждым наибольшим блоком кодирования посредством любого из различных режимов предсказания и преобразований, оптимальный режим кодирования может быть определен с учетом характеристик блока кодирования различных размеров изображения.
Таким образом, если изображение, имеющее высокое разрешение или большое количество данных, закодировано в стандартном макроблоке, количество макроблоков на картинку чрезмерно увеличивается. Соответственно, количество частей сжатой информации, генерируемой для каждого макроблока, увеличивается, и, таким образом, сложно передать сжатую информацию, и эффективность сжатия данных уменьшается. Однако посредством устройства 100 кодирования видео эффективность сжатия изображений может быть увеличена, поскольку блок кодирования регулируется с учетом характеристик изображения, при этом увеличивается максимальный размер блока кодирования, причем учитывается размер изображения.
Фиг. 2 изображает структурную схему устройства 200 декодирования видео согласно одному варианту осуществления настоящего изобретения.
Устройство 200 декодирования видео включает в себя синтаксический анализатор 210, энтропийный декодер 220 и иерархический декодер 230. Определения различных терминов, таких как «блок кодирования», «глубина», «блок предсказания», «блок преобразования» и «информация о различных режимах кодирования», для различных операций устройства 200 декодирования видео идентичны описанным со ссылками на фиг. 1 и устройство 100 кодирования видео.
Синтаксический анализатор 210 принимает битовый поток закодированного видео для синтаксического анализа синтаксического элемента. Энтропийный декодер 220 арифметически декодирует синтаксические элементы, указывающие закодированные данные изображения на основе блоков кодирования, имеющих структуру, путем выполнения энтропийного декодирования синтаксически проанализированных синтаксических элементов и выводит арифметически декодированные синтаксические элементы к иерархическому декодеру 230. То есть энтропийный декодер 220 выполняет энтропийное декодирование синтаксических элементов, которые принимаются в форме битовых строк из 0 и 1, тем самым перестраивая синтаксические элементы.
Кроме того, энтропийный декодер 220 извлекает информацию о кодируемой глубине, режиме кодирования, информацию цветовых компонент, информацию режима предсказания и т. д. для блоков кодирования, имеющих древовидную структуру, согласно каждому наибольшему блоку кодирования, из синтаксически проанализированного битового потока. Извлеченная информация о кодируемой глубине и режиме кодирования выводится к иерархическому декодеру 230. Данные изображения в битовом потоке разбиваются на наибольший блок кодирования так, чтобы иерархический декодер 230 мог декодировать данные изображения для каждого наибольшего блока кодирования.
Информация о кодируемой глубине и режиме кодирования согласно наибольшему блоку кодирования может быть установлена для информации о по меньшей мере одном блоке кодирования, соответствующем кодируемой глубине, и информация о режиме кодирования может включать в себя информацию о типе сегмента соответствующего блока кодирования, соответствующего кодируемой глубине, о режиме предсказания и размере блока преобразования. Кроме того, информация разбиения согласно глубинам может извлекаться в качестве информации о кодируемой глубине.
Информация о кодируемой глубине и режиме кодирования согласно каждому наибольшему блоку кодирования, извлеченному энтропийным декодером 220, является информацией о кодируемой глубине и режиме кодирования, определенной для генерирования минимальной ошибки кодирования, когда кодер, такой как устройство 100 кодирования видео, многократно выполняет кодирование для каждого более глубокого блока кодирования согласно глубинам согласно каждому наибольшему блоку кодирования. Соответственно, устройство 200 декодирования видео может перестраивать изображение путем декодирования данных изображения согласно кодируемой глубине и режиму кодирования, что генерирует минимальную ошибку кодирования.
Поскольку кодирование информации о кодируемой глубине и режиме кодирования может быть назначено предварительно определенному блоку данных из соответствующих блока кодирования, блока предсказания и минимального блока, энтропийный декодер 220 может извлекать информацию о кодируемой глубине и режиме кодирования согласно предварительно определенным блокам данных. Когда информация о кодируемой глубине и режиме кодирования соответствующего наибольшего блока кодирования назначена каждому из предварительно определенных блоков данных, предварительно определенные блоки данных, которым назначена одна и та же информация о кодируемой глубине и режиме кодирования, могут быть оценены как блоки данных, включенные в один и тот же наибольший блок кодирования.
Кроме того, как будет описано ниже, энтропийный декодер 220 может энтропийно декодировать флаг значимого коэффициента блока преобразования cbf посредством контекстной модели, определенной на основе глубины преобразования блока преобразования. Операция энтропийного декодирования синтаксических элементов, относящихся к блоку преобразования в энтропийном декодере 220, будет описана ниже.
Иерархический декодер 230 восстанавливает текущую картинку путем декодирования данных изображения в каждом наибольшем блоке кодирования на основе информации о кодируемой глубине и режиме кодирования согласно наибольшим блокам кодирования. Иными словами, иерархический декодер 230 может декодировать закодированные данные изображения на основе извлеченной информации о типе сегмента, режиме предсказания и блоке преобразования для каждого блока кодирования из блоков кодирования, имеющих древовидную структуру, включенных в каждый наибольший блок кодирования. Операция декодирования может включать в себя предсказание, включающее в себя внутреннее предсказание и компенсацию движения, и обратное преобразование.
Иерархический декодер 230 может выполнять внутреннее предсказание или компенсацию движения согласно сегменту и режиму предсказания каждого блока кодирования, на основе информации о типе сегмента и режиме предсказания блока предсказания блока кодирования согласно кодируемым глубинам.
Кроме того, иерархический декодер 230 может выполнять обратное преобразование согласно каждому блоку преобразования в блоке кодирования на основе информации о размере блока преобразования блока кодирования согласно кодируемым глубинам, с целью выполнения обра