СПОСОБ И УСТРОЙСТВО КОДИРОВАНИЯ ВИДЕО, ИСПОЛЬЗУЮЩИЕ БЛОК ПРЕОБРАЗОВАНИЯ ПЕРЕМЕННОЙ ДРЕВОВИДНОЙ СТРУКТУРЫ, И СПОСОБ И УСТРОЙСТВО ДЕКОДИРОВАНИЯ ВИДЕО
METHOD AND APPARATUS FOR ENCODING VIDEO USING VARIABLE TREE STRUCTURE CONVERSION UNIT, AND METHOD AND APPARATUS FOR DECODING VIDEO

ОБЛАСТЬ ТЕХНИКИ
Настоящее изобретение относится к кодированию и декодированию видео, в котором выполняется преобразование между пространственной областью и областью преобразования.
УРОВЕНЬ ТЕХНИКИ
Поскольку аппаратное обеспечение для воспроизведения и хранения видео контента с высоким разрешением или высоким качеством развивается и поставляется, потребность в видео кодеке для эффективного кодирования или декодирования видео контента с высоким разрешением или высоким качеством увеличивается. В уровне техники, относящемся к видео кодекам, видео кодируют согласно ограниченному способу кодирования на основании макроблока, имеющего заранее определенный размер. Кроме того, в уровне техники, относящемся к видео кодекам, видео данные кодируют и декодируют, выполняя преобразование и обратное преобразование посредством использования макроблоков, имеющих один и тот же размер.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
ТЕХНИЧЕСКАЯ ПРОБЛЕМА
Настоящее изобретение обеспечивает способ и устройство для кодирования и декодирования видео посредством выполнения преобразования и обратного преобразования посредством использования блока данных в переменной иерархической структуре.
ТЕХНИЧЕСКОЕ РЕШЕНИЕ
Согласно аспекту настоящего изобретения предоставлен способ кодирования видео, чтобы кодировать текущую область видео, включающий в себя операции выполнения преобразования в отношении текущей области посредством использования блоков преобразования в переменной древовидной структуре, которые определены из числа блоков преобразования, которые иерархически разделены из базового блока преобразования относительно текущей области, и которые генерируются на основании максимального уровня разделения блока преобразования, и определение блоков преобразования из числа блоков преобразования в переменной древовидной структуре относительно текущей области; и вывод кодированных данных текущей области, которые генерируются посредством кодирования, включающего в себя преобразование на основании определенных блоков преобразования, информации о режиме кодирования, определенном при кодировании относительно текущей области, и информации иерархической структуры блока преобразования, включающей в себя информацию максимального размера и информацию минимального размера блока преобразования относительно видео.
ВЫГОДНЫЕ ЭФФЕКТЫ
В процессе кодирования и декодирования видео преобразование и обратное преобразование выполняются посредством использования блоков преобразования, имеющих различные размеры и формы в древовидной структуре, посредством чего видео может быть эффективно кодировано и декодировано с учетом характеристик изображения.
ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1 является блок-схемой устройства кодирования видео, использующего блок преобразования в переменной древовидной структуре согласно варианту осуществления настоящего изобретения.
Фиг. 2 является блок-схемой устройства декодирования видео, использующего блок преобразования в переменной древовидной структуре, согласно варианту осуществления настоящего изобретения.
Фиг. 3 иллюстрирует иерархическую модель блока преобразования в древовидной структуре, согласно варианту осуществления настоящего изобретения.
Фиг. 4 иллюстрирует иерархическую модель блока преобразования в переменной древовидной структуре согласно варианту осуществления настоящего изобретения.
Фиг. 5-8 иллюстрируют базовые блоки преобразования согласно вариантам осуществления настоящего изобретения.
Фиг. 9 и 10 иллюстрируют блоки преобразования в переменной древовидной структуре согласно вариантам осуществления настоящего изобретения.
Фиг. 11 является последовательностью операций способа кодирования видео, использующего блоки преобразования в переменной древовидной структуре, согласно варианту осуществления настоящего изобретения.
Фиг. 12 является последовательностью операций способа декодирования видео, использующего блоки преобразования в переменной древовидной структуре, согласно варианту осуществления настоящего изобретения.
Фиг. 13 является блок-схемой устройства кодирования видео, использующего блок преобразования в древовидной структуре и блок преобразования в переменной древовидной структуре, согласно варианту осуществления настоящего изобретения.
Фиг. 14 является блок-схемой устройства декодирования видео, использующего блок преобразования в древовидной структуре и блок преобразования в переменной древовидной структуре, согласно варианту осуществления настоящего изобретения.
Фиг. 15 является диаграммой для описания понятия блоков кодирования согласно варианту осуществления настоящего изобретения.
Фиг. 16 является блок-схемой кодера изображения, основанного на кодировании блоков, согласно варианту осуществления настоящего изобретения.
Фиг. 17 является блок-схемой декодера изображения, основанного на кодировании блоков, согласно варианту осуществления настоящего изобретения.
Фиг. 18 является диаграммой, иллюстрирующей более глубокие блоки кодирования согласно глубинам и фрагменты, согласно варианту осуществления настоящего изобретения.
Фиг. 19 является диаграммой для описания соотношения между блоком кодирования и блоками преобразования, согласно варианту осуществления настоящего изобретения.
Фиг. 20 является диаграммой для описания информации кодирования блоков кодирования, соответствующих кодированной глубине, согласно варианту осуществления настоящего изобретения.
Фиг. 21 является диаграммой более глубоких блоков кодирования согласно глубинам, согласно варианту осуществления настоящего изобретения.
Фиг. 22-24 являются диаграммами для описания соотношения между блоками кодирования, блоками предсказания и блоками преобразования согласно варианту осуществления настоящего изобретения.
Фиг. 25 является диаграммой для описания соотношения между блоком кодирования, блоком предсказания или фрагментом, и блоком преобразования, согласно информации режима кодирования из Таблицы 1 согласно варианту осуществления настоящего изобретения.
Фиг. 26 является последовательностью операций, иллюстрирующей способ кодирования видео, использующий блок кодирования в древовидной структуре и блок преобразования в переменной древовидной структуре, согласно варианту осуществления настоящего изобретения.
Фиг. 27 является последовательностью операций, иллюстрирующей способ декодирования видео, использующий блок кодирования в древовидной структуре и блок преобразования в переменной древовидной структуре, согласно варианту осуществления настоящего изобретения.
НАИЛУЧШИЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ
Согласно аспекту настоящего изобретения предоставлен способ кодирования видео, чтобы кодировать текущую область видео, включая операции выполнения преобразования в отношении текущей области посредством использования блоков преобразования в переменной древовидной структуре, которые определены из числа блоков преобразования, которые иерархически разделены из базового блока преобразования относительно текущей области, и которые генерируются на основании максимального уровня разделения блока преобразования, и определения блоков преобразования из числа блоков преобразования в переменной древовидной структуре относительно текущей области; и вывода кодированных данных текущей области, которые генерируются посредством кодирования, включающего в себя преобразование на основании определенных блоков преобразования, информации о режиме кодирования, определенном при кодировании относительно текущей области, и информации иерархической структуры блока преобразования, включающей в себя информацию максимального размера и информацию минимального размера блока преобразования относительно видео.
Согласно другому аспекту настоящего изобретения предоставлен способ декодирования видео, включающий в себя операции приема потока битов, включающего в себя данные, полученные посредством кодирования видео; синтаксический анализ потока битов и извлечение из потока битов кодированных данных текущей области, информации о режиме кодирования, определенном при кодировании относительно текущей области, и информации иерархической структуры блока преобразования, включающей в себя информацию максимального размера и информацию минимального размера блока преобразования относительно видео; и выполнение обратного преобразования в отношении текущей области посредством использования блоков преобразования в переменной древовидной структуре, которые определены из числа блоков преобразования, которые иерархически разделены из базового блока преобразования относительно текущей области и которые генерируются на основании максимального уровня разделения блока преобразования, декодирование кодированных данных текущей области, и восстановление видео.
Информация иерархической структуры блока преобразования может также включать в себя информацию максимального разделения, указывающую максимальный уровень разделения блока преобразования.
Размер базового блока преобразования относительно текущей области может быть равным или меньше, чем максимальный размер блока преобразования относительно видео.
Блок преобразования может быть разделен однократно так, чтобы блоки преобразования на следующем более низком уровне могли быть сгенерированы, уровень заранее определенного блока преобразования может указывать общее количество разделений, чтобы сгенерировать заранее определенный блок преобразования посредством пошагового разделения базового блока преобразования, и базовый блок преобразования относительно текущей области может быть блоком преобразования максимального и высшего уровня, который может использоваться относительно текущей области.
Блоки преобразования в переменной древовидной структуре, которые генерируются на основании максимального уровня разделения блока преобразования относительно текущей области, могут включать в себя базовый блок преобразования и блоки преобразования согласно уровням, которые генерируются посредством пошагового разделения базового блока преобразования до максимального уровня разделения.
Минимальный размер блоков преобразования относительно текущей области может быть определен как больший размер из минимального размера блока преобразования относительно видео и размера блока преобразования на самом нижнем уровне, который получают посредством разделения базового блока преобразования до максимального уровня разделения.
Максимальный уровень разделения блока преобразования может быть равным или меньше, чем общее количество уровней от максимального блока кодирования до минимального блока кодирования, которые соответственно соответствуют максимальному размеру и минимальному размеру блоков преобразования относительно видео.
Размер базового блока преобразования может быть определен на основании по меньшей мере одного из режима предсказания и размера фрагмента, которые используются при кодировании текущей области.
Максимальный уровень разделения блока преобразования относительно текущей области может быть установлен для каждой из групп данных на уровне данных из числа уровней данных, включающих в себя последовательность картинок, картинку, вырезку и блок данных для кодирования видео, и информация максимального разделения блока преобразования может быть закодирована как параметр относительно уровня данных, посредством которого определен максимальный уровень разделения.
Максимальный уровень разделения блока преобразования относительно текущей области может быть отдельно определен в каждом из режимов предсказания, используемых в то время как кодирование выполняется в отношении текущей области.
Максимальный уровень разделения блока преобразования относительно текущей области может быть отдельно определен в каждом из используемых типов вырезки, в то время как кодирование выполняется в отношении текущей области.
Размер базового блока преобразования относительно текущей области может быть постоянным.
Базовый блок преобразования относительно текущей области может быть определен как блоки данных, имеющие формы, которые включены во фрагменты так, чтобы не охватывать границу между фрагментами, которые являются блоками данных для кодирования с предсказанием относительно текущей области.
Блоки преобразования на более низких уровнях, которые получены посредством разделения базового блока преобразования относительно текущей области, могут быть определены как блоки данных, имеющие формы, которые включены во фрагменты так, чтобы не охватывать границу между фрагментами, которые являются блоками данных для кодирования с предсказанием относительно текущей области.
Согласно другому аспекту настоящего изобретения предоставлено устройство кодирования видео, включающее в себя модуль определения блока преобразования, чтобы кодировать текущую область видео, выполнения преобразования в отношении текущей области посредством использования блоков преобразования в переменной древовидной структуре, которые определены из числа блоков преобразования, которые иерархически разделены из базового блока преобразования относительно текущей области, и которые генерируются на основании максимального уровня разделения блока преобразования, и определения блоков преобразования из числа блоков преобразования в переменной древовидной структуре относительно текущей области; и модуль вывода, выводящий кодированные данные текущей области, которые генерируются посредством кодирования, включающего в себя преобразование, основанное на определенных блоках преобразования, информации о режиме кодирования, определенном при кодировании относительно текущей области, и информации иерархической структуры блока преобразования, включающей в себя информацию максимального размера и информацию минимального размера блока преобразования относительно видео.
Согласно другому аспекту настоящего изобретения предоставлено устройство декодирования видео, включающее в себя модуль приема, принимающий поток битов, включающий в себя данные, полученные посредством кодирования видео; модуль извлечения, синтаксически анализирующий поток битов и извлекающий из потока битов кодированные данные текущей области, информацию о режиме кодирования, определенном при кодировании относительно текущей области, и информацию иерархической структуры блока преобразования, включающую в себя информацию максимального размера и информацию минимального размера блока преобразования относительно видео; и модуль декодирования, выполняющий обратное преобразование в отношении текущей области посредством использования блоков преобразования в переменной древовидной структуре, которые определены из числа блоков преобразования, которые иерархически разделены из базового блока преобразования относительно текущей области, и которые генерируются на основании максимального уровня разделения блока преобразования, декодирование кодированных данных текущей области, и восстановление видео.
Согласно другому аспекту настоящего изобретения предоставлен считываемый компьютером носитель записи, хранящий на нем программы для того, чтобы выполнить способ кодирования видео. Согласно другому аспекту настоящего изобретения, предоставлен считываемый компьютером носитель записи, хранящий на нем программы для того, чтобы выполнить способ декодирования видео.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
В дальнейшем в одном или более вариантах осуществления, описанных ниже, 'изображение' может в общем смысле указывать не только неподвижное изображение, но также и движущуюся картинку, включающую в себя видео.
Когда различные операции, относящиеся к изображению, выполняются, данные, относящиеся к изображению, могут быть разделены в группы данных и одна и та же операция может быть выполнена над множеством частей данных, включенных в одну и ту же группу данных. В дальнейшем по всему описанию группа данных, которая сформирована согласно заранее определенному стандарту, упоминается «как блок данных». В дальнейшем по всему описанию операция, которая выполняется в отношении каждого «блока данных», означает, что операция выполняется посредством использования множества частей данных, включенных в этот блок данных.
В дальнейшем со ссылками на фиг. 1-12 описаны кодирование и декодирование видео с использованием блока преобразования в переменной древовидной структуре. В дальнейшем описаны со ссылками на фиг. 13-27 кодирование и декодирование видео с использованием блока кодирования в древовидной структуре и блока преобразования в переменной древовидной структуре.
В дальнейшем описаны со ссылками на фиг. 1-12 устройство кодирования видео и устройство декодирования видео и способ кодирования видео и способ декодирования видео, которые используют блок преобразования в переменной древовидной структуре.
Фиг. 1 является блок-схемой устройства кодирования видео, использующего блок преобразования в переменной древовидной структуре 10 согласно варианту осуществления настоящего изобретения.
Устройство кодирования видео, использующее блок преобразования в переменной древовидной структуре, включает в себя модуль 11 определения блока преобразования и модуль 13 вывода. В дальнейшем для удобства описания устройство кодирования видео, использующее блок преобразования в переменной древовидной структуре 10 упоминается как «устройство 10 кодирования видео». Операции посредством модуля 11 определения блока преобразования и модуля 13 вывода устройства 10 кодирования видео, могут быть все вместе управляться процессором кодирования видео, центральным процессором, графическим процессором или подобным.
Чтобы кодировать текущую картинку введенного видео, устройство 10 кодирования видео разделяет текущую картинку в блоки данных, имеющие заранее определенный размер, и затем выполняет кодирование для каждого из блоков данных.
Например, текущая картинка состоит из пикселей пространственной области. Чтобы разрешить смежным пикселям в заранее определенном диапазоне формировать группу так, чтобы разрешить, чтобы пиксели, которые пространственно смежны друг с другом в текущей картинке, были закодированы вместе, текущая картинка может быть разделена в группы пикселей, имеющие заранее определенный размер. С помощью последовательности операций кодирования, которые выполняются в отношении пикселей разделенных групп пикселей, имеющих заранее определенный размер, кодирование относительно текущей картинки, может быть выполнено.
Так как начальные данные, которые являются целью кодирования картинки, являются пиксельным значением пространственной области, каждая из групп пикселей, имеющих заранее определенный размер, может использоваться как блок данных, который является целью кодирования. Кроме того, преобразование для кодирования видео выполняется в отношении пиксельных значений группы пикселей пространственной области так, что генерируются коэффициенты преобразования области преобразования, и в этом отношении коэффициенты преобразования поддерживают группу коэффициентов, имеющую тот же размер, что и группа пикселей пространственной области. Таким образом, группа коэффициентов для коэффициентов преобразования области преобразования также может использоваться как блок данных для кодирования картинки.
Таким образом, всюду по пространственной области и области преобразования группа данных, имеющая заранее определенный размер, может использоваться как блок данных для кодирования. Здесь, размер блока данных может быть определен как общее количество частей данных, включенных в блок данных. Например, общее количество пикселей пространственной области или общее количество коэффициентов преобразования области преобразования могут указывать размер блока данных.
В дальнейшем, «текущая область» может указывать группу данных, имеющую уровень данных, который является одним из блока данных, вырезки, картинки, и последовательности картинок, которые являются целями кодирования в видео.
Устройство 10 кодирования видео может выполнить кодирование с предсказанием, включающее в себя внешнее предсказание и внутреннее предсказание, преобразование и квантование, и энтропийное кодирование в отношении каждой из областей, таким образом выполняя кодирование в отношении текущей картинки.
Модуль 11 определения блока преобразования определяет блок преобразования, который является блоком данных, чтобы выполнить преобразование в отношении текущей области текущей картинки. Блок преобразования может быть определен как блок данных, имеющий размер, равный или меньше, чем текущая область, так чтобы быть включенным в текущую область.
Например, модуль 11 определения блока преобразования может генерировать блок преобразования посредством деления на два высоты и ширины текущей области. Кроме того, модуль 11 определения блока преобразования может генерировать блок преобразования посредством асимметричного разделения по меньшей мере одной из высоты и ширины текущей области. Модуль 11 определения блока преобразования может генерировать блок преобразования посредством разделения по меньшей мере одной из высоты и ширины текущей области согласно произвольному отношению. Блок преобразования может быть блоком данных многоугольной формы, включенным в текущую область.
Модуль 11 определения блока преобразования может генерировать блоки преобразования на более низком уровне посредством разделения снова по меньшей мере одной из высоты и ширины блока преобразования.
Модуль 11 определения блока преобразования может определить блоки преобразования в древовидной структуре для преобразования текущей области. Блоки преобразования в древовидной структуре включают в себя окончательные блоки преобразования, которые определены для вывода результата преобразования, и которые определены из числа блоков преобразования в текущей области.
Чтобы определить блоки преобразования в древовидной структуре, модуль 11 определения блока преобразования может генерировать блоки преобразования на более низком уровне посредством повторяющегося разделения по меньшей мере одной из высоты и ширины заранее определенного блока преобразования из числа блоков преобразования в текущей области.
Кроме того, модуль 11 определения блока преобразования может определить, разделить ли каждый из блоков преобразования в блоки преобразования на более низком уровне, и это определение может быть независимо выполнено в каждом из блоков преобразования, которые имеют один и тот же уровень, и которые генерируются посредством разделения из блока преобразования верхнего уровня.
В одном варианте осуществления операция, в которой блок преобразования, имеющий заранее определенный уровень, разделяется в блоки преобразования на более низком уровне, может включать в себя операцию, в которой разделяется по меньшей мере один из блоков преобразования, имеющих заранее определенный уровень.
Например, от высшего блока преобразования текущей области к заранее определенному уровню все блоки преобразования могут быть разделены или могут не быть разделены на каждом уровне разделения.
В другом варианте осуществления, когда блок преобразования разделяется от заранее определенного уровня до более низкого уровня, разделить ли блоки преобразования на некотором уровне, может быть независимо определено на каждом заранее определенном уровне, так чтобы размеры блоков преобразования на более низком уровне могли не быть постоянными.
Модуль 11 определения блока преобразования генерирует остаточные данные посредством выполнения внешнего предсказания или внутреннего предсказания в отношении текущей области, и выполняет преобразование относительно остаточных данных на основании блока преобразования, определенном модулем 11 определения блока преобразования, так чтобы модуль 11 определения блока преобразования закодировал текущую область. Таким образом, остаточные данные для каждого фрагмента для предсказания текущей области повторно разделяются посредством использования блока преобразования, определенного модулем 11 определения блока преобразования, так чтобы преобразование могло быть выполнено в отношении остаточных данных для каждого из блоков преобразования.
В настоящем варианте осуществления «преобразование» для кодирования видео указывает способ обработки данных, используемый для преобразования видео данных пространственной области в данные области преобразования. Преобразование для видео кодирования, которое выполняется модулем 11 определения блока преобразования, может включать в себя преобразование частоты, ортогональное преобразование, целочисленное преобразование, и т.п.
Модуль 11 определения блока преобразования может повторяющимся образом выполнять преобразование в отношении блоков преобразования, которые включены в текущую область и которые имеются на всех уровнях согласно иерархической структуре, посредством использования блоков преобразования согласно этим уровням, может сравнивать ошибку преобразования по блокам преобразования согласно этим уровням и таким образом может выбрать блоки преобразования на уровне, который вызывает минимальную ошибку. Блок преобразования на уровне, который генерирует коэффициент преобразования, который вызывает минимальную ошибку, может быть определен как блок преобразования с глубиной преобразования, которая является уровнем, на котором выводится результат преобразования.
Соответственно, модуль 11 определения блока преобразования может определить блоки преобразования в древовидной структуре, включающей в себя блоки преобразования, которые определяются для вывода результата преобразования.
Согласно настоящему варианту осуществления максимальный размер и минимальный размер блока преобразования относительно видео могут быть установлены заранее. Модуль 11 определения блока преобразования может определить базовый блок преобразования, который равен или меньше, чем максимальный размер блока преобразования относительно видео, для каждой из областей в текущей картинке. Базовый блок преобразования является максимальным и высшего уровня блоком преобразования, который может использоваться в текущей области.
Модуль 11 определения блока преобразования может ограничить общее количество уровней блока преобразования в текущей области. Блок преобразования разделяется однократно, так чтобы генерировались блоки преобразования на более низком уровне, и уровень заранее определенного блока преобразования может указывать общее количество выполненных разделений, пока заранее определенный блок преобразования не будет сгенерирован после того, как базовый блок преобразования разделен согласно уровням. Таким образом, максимальный уровень разделения блока преобразования в текущей области может быть соотнесен с максимальным общим количеством разделений из базового блока преобразования текущей области до блока преобразования на самом нижнем уровне.
Согласно базовому блоку преобразования и максимальному уровню разделения блока преобразования, который может быть по-разному установлен относительно текущей области, общее количество уровней и иерархическая структура блока преобразования могут быть изменены. Соответственно, модуль 11 определения блока преобразования может использовать блоки преобразования в переменной древовидной структуре на основании максимального уровня разделения блока преобразования. Блоки преобразования в переменной древовидной структуре могут включать в себя базовый блок преобразования и блоки преобразования согласно уровням, которые генерируются посредством пошагового разделения от базового блока преобразования до максимального уровня разделения блока преобразования.
Модуль 11 определения блока преобразования может выполнить преобразование в отношении текущей области на основании блоков преобразования в переменной древовидной структуре, которые генерируются на основании максимального уровня разделения блока преобразования, и которые определены из числа блоков преобразования, которые являются пошагового разделенными из базового блока преобразования относительно текущей области. Модуль 11 определения блока преобразования может в конечном итоге определить блоки преобразования, которые являются из числа блоков преобразования в переменной древовидной структуре, и которые должны использоваться при выводе коэффициента преобразования текущей области.
Минимальный размер блоков преобразования относительно текущей области может быть определен как больший из минимального размера блока преобразования относительно видео и размера блока преобразования на самом нижнем уровне, который получен посредством разделения базового блока преобразования к максимальному уровню разделения блока преобразования.
Максимальное общее количество разделений блока преобразования может быть равным или меньше, чем общее количество разделений от максимального блока преобразования до минимального блока преобразования, которые соответственно соответствуют максимальному размеру и минимальному размеру блоков преобразования относительно текущей области. Таким образом, максимальный уровень разделения блока преобразования может быть равным или меньше, чем общее количество разделений от максимального блока преобразования до минимального блока преобразования, которые соответственно соответствуют максимальному размеру и минимальному размеру блоков преобразования относительно текущей области.
Размер базовых блоков преобразования относительно текущей области может быть постоянным. Кроме того, базовые блоки преобразования, имеющие различные размеры, могут быть установлены согласно характеристикам областей. Например, размер базового блока преобразования может быть определен на основании по меньшей мере одного из режима предсказания и размера фрагмента, которые используются при кодировании текущей области.
Максимальный уровень разделения блока преобразования может быть установлен для каждой группы данных на заранее определенном уровне из числа уровней данных, включающих в себя последовательность картинок, картинку, вырезку и блок данных кодирования, которые являются видео. Таким образом, например, максимальный уровень разделения относительно текущей последовательности картинок может быть установлен или максимальный уровень разделения может быть установлен для каждой картинки, каждой вырезки или каждого блока данных. В другом примере максимальный уровень разделения блока преобразования может быть неявно установлен заранее между системами кодирования и декодирования.
Максимальный уровень разделения блока преобразования относительно текущей области может быть отдельно определен для каждого типа вырезки, который используется при кодировании текущей области.
Базовый блок преобразования относительно текущей области может быть определен как блок данных, имеющий форму, включенный во фрагменты, которые являются блоком данных для кодирования с предсказанием текущей области, посредством чего блок данных может не охватывать границу между фрагментами.
Кроме того, блоки преобразования на более низком уровне, которые получены посредством разделения базового блока преобразования относительно текущей области, могут быть определены как блоки данных, имеющие форму, включенную во фрагменты, которые являются блоком данных для кодирования с предсказанием текущей области, посредством чего блоки данных могут не охватывать границу между фрагментами.
Примеры, относящиеся к решению базового блока преобразования и блокам преобразования на более низком уровне, описаны ниже со ссылками на фиг. 5-10.
Модуль 13 вывода может выводить поток битов, включающий в себя кодированные данные текущей области, информацию о режиме кодирования и различные типы информации о блоке преобразования.
Модуль 13 вывода может выводить кодированные данные текущей области, которые генерируются после различных операций кодирования, включающих в себя преобразование на основании блока преобразования, определенного модулем 11 определения блока преобразования, и квантование, внешнее предсказание, внутреннее предсказание, энтропийное кодирование или подобное.
Модуль 13 вывода может выводить различные типы информации о режимах кодирования, относящихся к схемам кодирования, используемым в различных операциях кодирования, включающих в себя преобразование на основании блока преобразования, определенного модулем 11 определения блока преобразования, и квантование, внешнее предсказание, внутреннее предсказание, энтропийное кодирование или подобное.
Модуль 13 вывода может выводить информацию иерархической структуры блока преобразования, указывающую иерархическую структуру блоков преобразования относительно видео. Эта информация иерархической структуры блока преобразования может включать в себя информацию о максимальном размере и минимальном размере блока преобразования относительно видео, и информацию индекса преобразования.
В одном варианте осуществления информация индекса преобразования может указывать информацию о структуре блока преобразования, который используется в преобразовании текущей области. Например, информация индекса преобразования может включать в себя общее количество разделений от текущей области до блока преобразования на самом нижнем уровне, размер блока преобразования и форму блока преобразования.
В другом варианте осуществления согласно случаю, когда блок преобразования на верхнем уровне разделяется в блоки преобразования, имеющие один и тот же размер на каждом уровне, информация индекса преобразования может указывать общее количество разделений текущей области до блока преобразования на самом нижнем уровне.
Модуль 13 вывода может выводить информацию о максимальном размере и минимальном размере блока преобразования относительно видео. В одном варианте осуществления информация о максимальном размере и минимальном размере блока преобразования относительно видео может быть выведена, в то же время быть включена в набор параметров последовательности или набор параметров картинок видео потока.
Информация иерархической структуры блока преобразования может включать в себя информацию максимального разделения блока преобразования, указывающую максимальный уровень разделения блока преобразования. Таким образом, модуль 13 вывода может кодировать и выводить информацию максимального разделения блока преобразования. В одном варианте осуществления информация максимального разделения блока преобразования может быть выведена, в то же время быть включенной в набор параметров последовательности или набор параметров картинок, или может быть установлена для каждой вырезки или каждой области, имеющей заранее определенный размер.
В другом варианте осуществления, когда максимальный уровень разделения блока преобразования неявно установлен заранее между системами кодирования и декодирования, не требуется кодировать и выводить информацию максимального разделения блока преобразования.
Модуль 13 вывода может определить информацию подразделения блока преобразования для каждого блока преобразования в переменной древовидной структуре относительно текущей области и затем может выводить информацию подразделения блока преобразования, которая указывает, разделяется ли некоторый блок преобразования в блоки преобразования на следующем более низком уровне. Модуль 13 вывода может пропустить информацию подразделения блока преобразования относительно блока преобразования, имеющего минимальный размер, который является блоком из числа блоков преобразования, определенных относительно текущей области, и который разрешен относительно текущей области.
Модуль 13 вывода может определить и вывести иерархическую информацию шаблона блоков преобразования для каждого из блоков преобразования, которые определены относительно текущей области, и эта иерархическая информация шаблона блоков преобразования может указывать существование блока преобразования, который включает в себя ненулевой коэффициент и который является блоком из числа блоков преобразования на более низком уровне.
Фиг. 2 является блок-схемой устройства декодирования видео, использующее блок преобразования в переменной древовидной структуре 20, согласно варианту осуществления настоящего изобретения.
Устройство декодирования видео, использующее блок преобразования в переменной древовидной структуре 20, включает в себя модуль 21 приема, модуль 23 извлечения и модуль 25 декодирования. В дальнейшем для удобства описания устройство декодирования видео, использующее блок преобразования в переменной древовидной структуре 20, упоминается «как устройство 20 декодирования видео». Операции с помощью модуля 21 приема, модуля 23 извлечения и модуля 25 декодирования из устройства 20 декодирования видео могут быть совместно управляемыми процессором кодирования видео, центральным процессором, графическим процессором или подобным.
Чтобы восстановить изображение из потока битов, устройство 20 декодирования видео может выполнить операции, включающие в себя энтропийное декодирование, обратное квантование, обратное преобразование, внешнее предсказание/компенсацию и внутреннее предсказание/компенсацию, таким образом декодируя кодированные данные изображения потока битов.
Модуль 21 приема принимает и синтаксически анализирует поток битов относительно закодированного видео. Модуль 23 извлечения извлекает данные, закодированные относительно каждой из областей текущей картинки, информацию о режиме кодирования и различные типы информации о блоке преобразования из потока битов, который синтаксически проанализирован модулем 21 приема.
Модуль 23 извлечения может доставить кодированные данные текущей области, информацию о режиме кодирования и различные типы информации о блоке преобразования к модулю 25 декодирования.
Модуль 25 декодирования может выполнить различные операции декодирования, включающие в себя энтропийное декодирование, обратное квантование, обратное преобразование, внешнее предсказание/компенсацию и внутреннее предсказание / компенсацию в отношении кодированных данных, согласно различным схемам декодирования, которые определены на основании информации о режиме кодирования, может восстановить пиксельное значение текущей области, и затем может восстановить текущую картинку.
Модуль 23 извлечения может извлечь информацию иерархической структуры блока преобразования, такую как информация максимального размера и информация минимального размера блока преобразования, информация максимального размера и информация минимального размера блока преобразования или подобные, которые относятся к иерархической структуре блока преобразования, из потока битов.
Модуль 25 декодирования может определить блок преобразования, требуемый для обратного преобразования относительно текущей области на основании различных типов информации о блоке преобразования, которые извлечены модулем 23 извлечения, и может выполнить обратное преобразование относительно текущей области на основании этого блока преобразования. Обратное преобразование, которое выполняется для того, чтобы декодировать видео модулем 25 декодирования, может указывать процесс преобразования данных области преобразования в данные пространственной области. Обратное преобразование посредством модуля 25 декодирования может включать в себя обратное преобразование частоты, обратное ортогональное преобразование, обратное целочисленное преобразование и т.п.
Понятия «блок преобразования», «базовый блок преобразования» и «иерархическая структура блока преобразования» являются такими же, как в вышеупомянутом описании со ссылками на фиг. 1 и устройство 10 кодирования видео. Таким образом, в настоящем варианте осуществления блок преобразования генерируется посредством разделения по меньшей мере одной из высоты и ширины текущей области или блока преобразования на верхнем уровне согласно произвольному соотношению.
В частности, блоки преобразования в переменной древовидной структуре могут быть определены на основании максимального уровня разделения блока преобразования или максимальном общем количестве разделений блока преобразования относительно текущей области. Таким образом, блоки преобразования в переменной древовидной структуре могут включать в себя базовый блок преобразования и блоки преобразования на более низком уровне, которые разделены из базового блока преобразования до максимального уровня разделения, который разрешен в текущем видео.
Модуль 23 извлечения может извлечь информацию максимального размера и информацию минимального размера блока преобразования относительно видео из информации иерархической структуры блока преобразования. В одном варианте осуществления информация максимального размера и информация минимального размера блока преобразования относительно видео могут быть извлечены из набора параметров последовательности или набора параметров картинки видео потока.
Модуль 23 извлечения может извлечь информацию максимального разделения блока преобразования из информации иерархической структуры блока преобразования. В одном варианте осуществления информация максимального разделения блока преобразования может быть извлечена из набора параметров последовательности или набора параметров картинки или может быть извлечена из вырезки или параметров, которые установлены для каждой из областей.
В другом варианте осуществления, когда максимальный уровень разделения блока преобразования неявно установлен заранее между системами кодирования и декодирования, не требуется отдельно извлекать информацию максимального разделения блока преобразования.
Модуль 25 декодирования может анализировать общее количество допустимых уровней или общее количество допустимых разделений от базового блока преобразования до блока преобразования самого нижнего уровня текущей области.
Модуль 25 декодирования может считывать максимальный уровень разделения блока преобразования, который установлен относительно последовательности картинок видео. Альтернативно, максимальный уровень разделения блока преобразования может быть считан согласно различным уровням данных, таким как картинки, вырезки или блоки данных.
В другом варианте осуществления блоки преобразования в переменной древовидной структуре могут быть определены на основании максимального уровня разделения блока преобразования, неявно установлен заранее между системами кодирования и декодирования.
Модуль 23 извлечения может извлечь информацию индекса преобразования из информации иерархической структуры блока преобразования. Модуль 23 извлечения может проанализировать структуру блока преобразования, который используется в преобразовании текущей области, из информации индекса преобразования.
Например, общее количество разделений от текущей области до блока преобразования самого нижнего уровня, размер блока преобразования и форма блока преобразования могут быть извлечены из информации индекса преобразования. Когда блок преобразования на верхнем уровне разделяется в блоки преобразования, имеющие один и тот же размер на каждом уровне, согласно информации индекса преобразования, общее количество разделений от текущей области до блока преобразования самого нижнего уровня может быть считано.
Модуль 23 извлечения может извлечь информацию подразделения блока преобразования для каждого из блоков преобразования, которые определены относительно текущей области. Модуль 25 декодирования может определить, разделить ли блок преобразования на текущем уровне в блоки преобразования на следующем более низком уровне, на основании информации подразделения блока преобразования. Когда информация подразделения блока преобразования больше не извлекается относительно блока преобразования на заранее определенном уровне, блок преобразования на заранее определенном уровне может быть проанализирован как блок преобразования минимального размера, который разрешен относительно текущей области. Модуль 23 извлечения может извлечь иерархическую информацию шаблона блоков преобразования из каждого из блоков преобразования, которые определены относительно текущей области. Модуль 25 декодирования может проанализировать существование блока преобразования, который включает в себя ненулевой коэффициент, и который является из числа блоков преобразования на более низком уровне текущего блока преобразования, из иерархической информации шаблона блоков преобразования.
В одном варианте осуществления блоки преобразования, требуемые для обратного преобразования, могут быть проанализированы из блоков преобразования в иерархической структуре, которые однородно разделены в блоки преобразования, имеющие постоянный размер на каждом уровне, из блока преобразования высшего уровня текущей области до заранее определенного уровня разделения, на основании информации иерархической структуры блока преобразования. В другом варианте осуществления, разделить ли блок преобразования на верхнем уровне в блоки преобразования на более низком уровне, отдельно определяется, блоки преобразования на уровне преобразования, который определен как требуемый для обратного преобразования, на основании информации иерархической структуры блока преобразования, не ограничены блоками преобразования, имеющими постоянный размер.
Таким образом, модуль 25 декодирования может выполнить обратное преобразование в отношении текущей области посредством использования блоков преобразования, которые определены на основании информации, относящейся к блоку преобразования, извлеченной модулем 23 извлечения.
В частности, модуль 25 декодирования может проанализировать блоки преобразования в переменной древовидной структуре, которые разрешены относительно текущей области, на основании максимального уровня разделения блока преобразования относительно текущей области, которая определена на основании информации максимального разделения блока преобразования, и может обнаружить блоки преобразования, которые должны использоваться в обратном преобразовании коэффициента преобразования, и которые определены из числа блоков преобразования в переменной древовидной структуре. Модуль 25 декодирования может выполнить обратное преобразование в отношении текущей области посредством использования этих блоков преобразования, которые обнаружены на основании максимального уровня разделения.
Модуль 25 декодирования может выполнить декодирование в отношении каждого из изображений, конфигурирующих заранее определенную область видео, на основании информации о соответствующем режиме кодирования и относящейся к блоку преобразования информации и, таким образом, может декодировать видео.
В процедуре кодирования и декодирования видео устройство 10 кодирования видео и устройство 20 декодирования видео может выполнить преобразование и обратное преобразование посредством использования блоков преобразования древовидной структуры, имеющих различные размеры и формы, так чтобы устройство 10 кодирования видео и устройство 20 декодирования видео могло эффективно кодировать и декодировать видео, с учетом характеристики изображения.
Кроме того, так как кодирование и декодирование выполняются посредством использования преобразования на основании блока преобразования в переменной древовидной структуре из числа блоков преобразования в древовидной структуре, процедура кодирования и декодирования, использующая блоки преобразования на уровне, который не требуется согласно характеристике изображения, и характеристика кодирования может быть пропущена, так чтобы количество вычислений могло быть уменьшено.
Кроме того, максимальное общее количество разделений или общее количество уровней блока преобразования, которое разрешено относительно текущей области, могут быть предсказаны на основании максимального уровня разделения, так чтобы было возможно уменьшить количество передач относительно информации, включающей в себя информацию подразделения блока преобразования, которая требуется в определении блоков преобразования, которые должны использоваться в декодировании видео.
Фиг. 3 иллюстрирует иерархическую модель блока преобразования в древовидной структуре согласно варианту осуществления настоящего изобретения.
Блок преобразования в древовидной структуре, который должен использоваться при кодировании текущего видео, посредством устройства 10 кодирования видео и устройства 20 декодирования видео может быть определен на основании максимального размера и минимального размера блока преобразования, которые разрешены в текущем видео.
Устройство 10 кодирования видео может включать в себя информацию максимального размера 'MaxTransformSize' и информацию минимального размера 'MinTransformSize' блока преобразования, который разрешен в текущем видео в наборе параметров последовательности или наборе параметров картинки, и может выводить их.
Например, когда информация максимального размера 'MaxTransformSize' и информация минимального размера 'MinTransformSize' блока преобразования указывают 32x32 и 4x4 соответственно, блоки преобразования относительно области размером 64x64 (то есть блок кодирования (CU, БК) 30) может включать в себя от блоков преобразования 35a, 35b, 35c и 35d размером 32x32 до блоков преобразования 38a и 38b размером 4x4.
Для удобства описания принято иерархическое отношение блоков преобразования, в котором разделены на два высота и ширина текущего блока преобразования так, чтобы четыре блока преобразования на следующем более низком уровне генерировались из текущего блока преобразования. Так как максимальный размер блока преобразования, который разрешен в текущем видео, равен 32x32, размер блока преобразования на нулевом уровне, который является высшим уровнем, может быть равен 32x32, размер блока преобразования на первом уровне может быть равен 16x16, размер блока преобразования на втором уровне может быть равен 8x8, и размер блока преобразования на третьем уровне может быть равен 4x4.
Более подробно, блоки преобразования размером 32x32 35a, 35b, 35c и 35d на нулевом уровне могут быть разделены в блоки преобразования размером 16x16 36a, 36b, 36c, 36d, 36e, 36h, 36i, 36l, 36m и 36p на первом уровне. Кроме того, блоки преобразования размером 16x16 36a, 36b, 36c, 36d, 36e, 36h, 36i, 36l, 36m и 36p на первом уровне могут быть разделены в блоки преобразования размером 8x8 37a, 37b, 37c, 37d, 37e и 37f на втором уровне. Кроме того, блоки преобразования размером 8x8 37a, 37b, 37c, 37d, 37e и 37f на втором уровне могут быть разделены в блоки преобразования размером 4x4 38a и 38b на третьем уровне.
Из-за ограничения в пространстве все доступные блоки преобразования относительно блоков преобразования 36a, 36b, 36c, 36d, 36e, 36h, 36i, 36l, 36m и 36p на первом уровне, блоки преобразования 37a, 37b, 37c, 37d, 37e и 37f на втором уровне и блоки преобразования 38a и 38b на третьем уровне не иллюстрированы, но четыре блока преобразования на следующем более низком уровне могут генерироваться из текущего блока преобразования.
Более подробно, общее количество блоков преобразования согласно уровням, которые могут использоваться в преобразовании текущей области (то есть CU 30), может быть 4 блоками преобразования, включающими в себя блоки преобразования 35a, 35b, 35c и 35d на нулевом уровне, 16 блоками преобразования, включающими в себя блоки преобразования 36a, 36b, 36c, 36d, 36e, 36h, 36i, 36l, 36m и 36p на первом уровне, 64 блоками преобразования, включающими в себя блоки преобразования 37a, 37b, 37c, 37d, 37e и 37f на втором уровне, и 256 блоками преобразования, включающими в себя блоки преобразования 38a и 38b на третьем уровне.
Чтобы определить блоки преобразования в древовидной структуре относительно текущей области 30, устройство 10 кодирования видео может повторяющимся образом выполнять преобразование в отношении текущей области 30 посредством использования блоков преобразования размером 32x32 35a, 35b, 35c и 35d, блоков преобразования размером 16x16 36a, 36b, 36c, 36d, 36e, 36h, 36i, 36l, 36m и 36p, блоков преобразования размером 8x8 37a, 37b, 37c, 37d, 37e и 37f и блоков преобразования размером 4x4 38a и 38b, которые разрешены в текущем видео.
После того как устройство 10 кодирования видео выполнит преобразование относительно всех блоков преобразования в нулевом, первом, втором и третьем уровнях, устройство 10 кодирования видео может независимо выбрать блок преобразования для каждой из внутренних областей текущей области 30, причем блок преобразования находится на уровне, из которого выведен коэффициент преобразования с минимальной ошибкой. В одном варианте осуществления блоки преобразования в древовидной структуре могут включать в себя блоки преобразования на выбранном уровне.
Чтобы кодировать информацию о блоках преобразования в древовидной структуре текущей области 30, устройство 10 кодирования видео может кодировать и вывести информацию глубины преобразования о глубинах преобразования, указывающих уровни блоков преобразования, из которых генерируются коэффициенты преобразования с минимальной ошибкой.
Устройство 20 декодирования видео может считывать уровни блоков преобразования, используемых для вывода коэффициентов преобразования текущей области 30, посредством использования информации глубины преобразования, извлеченной из потока битов, и может определить блоки преобразования в древовидной структуре для обратного преобразования коэффициентов преобразования текущей области 30.
Фиг. 4 иллюстрирует иерархическую модель блока преобразования в переменной древовидной структуре согласно варианту осуществления настоящего изобретения.
Устройство 10 кодирования видео может выводить информацию максимального разделения 'MaxTuDepth' блока преобразования текущей области наряду с информацией максимального размера 'MaxTransformSize' и информацией минимального размера 'MinTransformSize' блока преобразования, который разрешен в текущем видео.
Информация максимального разделения блока преобразования текущей области может указывать максимальный уровень преобразования, то есть общее количество допустимых уровней блоков преобразования относительно текущей области. Относительно текущей области 40 из текущей области могут быть разрешены блоки преобразования от базового блока преобразования на высшем уровне до блоков преобразования на самом нижнем уровне, который является максимальным уровнем преобразования.
Например, максимальный уровень преобразования относительно текущей области может быть установлен равным 2.
Базовый блок преобразования может включать в себя блоки преобразования размером 32x32 45a, 45b, 45c и 45d на нулевом уровне.
Соответственно, блоки преобразования относительно текущей области 40, имеющие размер 64x64, могут включать в себя блоки преобразования размером 32x32 45a, 45b, 45c и 45d на нулевом уровне и блоки преобразования размером 16x16 46a, 46b, 46c, 46d, 46e, 46h, 46i, 46l, 46m и 46p на первом уровне.
На основании информации максимального размера 'MaxTransformSize' и информации минимального размера 'MinTransformSize' блока преобразования, который разрешен в текущем видео, и информации максимального разделения 'MaxTuDepth' блока преобразования текущей области, минимальный размер блока преобразования, который может использоваться в текущей области, может быть вычислен посредством использования Уравнения 1.
[Уравнение 1]
Минимальный возможный размер листового TU
=max(MinTransformSize, RootTUSize/(2^(MaxTuDepth-1)))
Таким образом, минимальный размер «Минимальный возможный размер листового TU» блока преобразования текущей области может быть большим из информации минимального размера 'MinTransformSize' блока преобразования, который разрешен в текущем видео, и размера RootTUSize/(2^(MaxTuDepth-1)) блока преобразования на самом нижнем уровне, который получен посредством разделения базового блока преобразования на максимальное общее количество разделений.
В Уравнении 1 диапазон «MaxTuDepth-1», соответствующий максимальному общему количеству разделений, удовлетворяет Уравнение 2.
[Уравнение 2]
MaxTuDepth-1≤Log2(MaxTransformSize)-Log2(MinTransformSize)
Таким образом, максимальное общее количество разделений может быть равным или меньшим, чем общее количество разделений от максимального блока преобразования до минимального блока преобразования, которые определены на основании информации максимального размера 'MaxTransformSize' и информации минимального размера 'MinTransformSize' блока преобразования, который разрешен в текущем видео.
Общее количество блоков преобразования согласно уровням, которые могут использоваться, чтобы выполнить преобразование в отношении текущей области 40, может быть четырьмя блоками преобразования 45a, 45b, 45c и 45d на нулевом уровне и 16 блоками преобразования 46a, 46b, 46c, 46d, 46e, 46h, 46i, 46l, 46m и 46p на первом уровне.
Таким образом, хотя все блоки преобразования в нулевом, первом, втором и третьем уровнях могут быть использованы согласно информации максимального размера и информации минимального размера блока преобразования относительно текущего видео, устройство 10 кодирования видео может выполнить преобразование в отношении текущей области 40 посредством использования только блоков преобразования на первом и втором уровнях, на основании уровня максимального разделения или максимальном общем количестве разделений, которое установлено относительно текущей области 40.
Таким образом, как описано выше, относительно текущей области 30 на Фиг. 3, преобразование выполняется посредством использования 4 блоков преобразования на нулевом уровне, 16 блоков преобразования на первом уровне, 64 блоков преобразования на втором уровне и 256 блоков преобразования на третьем уровне, на основании информации максимального размера и информации минимального размера блока преобразования относительно текущего видео. Напротив, относительно текущей области 40 на Фиг. 4 преобразование может быть выполнено посредством использования только 4 блоков преобразования на нулевом уровне и 16 блоков преобразования на первом уровне на основании максимального общего количества разделений или максимального уровня разделения блока преобразования.
Кроме того, устройство 10 кодирования видео может кодировать информацию подразделения блока преобразования для каждого блока преобразования, которая указывает, разделяется ли соответствующий блок преобразования в блоки преобразования на следующем более низком уровне, и затем может выводить ее. Так как блок преобразования, имеющий минимальный размер, больше не разделяется в блоки преобразования на следующем более низком уровне, информация подразделения блока преобразования не должна быть кодирована относительно блока преобразования на самом нижнем уровне.
Таким образом, относительно текущей области 30 на Фиг. 3 информация подразделения блока преобразования может быть закодирована относительно 4 блоков преобразования на нулевом уровне, 16 блоков преобразования на первом уровне и 64 блоков преобразования на втором уровне. Напротив, относительно текущей области 40 на Фиг. 4 информация подразделения блока преобразования кодируется относительно только 4 блоков преобразования на нулевом уровне, на основании максимального общего количества разделений или максимального уровня разделения блока преобразования.
Кроме того, как описано выше, максимальное общее количество разделений блока преобразования может быть равным или меньше, чем общее количество разделений от максимального блока преобразования до минимального блока преобразования, которые соответственно соответствуют максимальному размеру и минимальному размеру, которые разрешены для видео, и максимальный уровень разделения блока преобразования может быть предсказан согласно его результату. В этом способе на основании предсказуемости максимального уровня разделения могут быть уменьшены биты информации максимального разделения.
Например, когда информация максимального разделения кодируется согласно усеченной унарной схеме кодирования максимального значения (Truncated Unary Max Coding scheme), общее количество разделений от максимального блока преобразования до минимального блока преобразования, которые разрешены для видео, установлено как максимальное значение максимального уровня разделения так, чтобы, когда максимальный уровень разделения, соответствующий максимальному значению, кодируется, один бит мог быть сокращен.
В результате сравнения между блоками преобразования в древовидной структуре Фиг. 3 и блоками преобразования в переменной древовидной структуре Фиг. 4, так как общее количество уровней блока преобразования, которые используются для преобразования, изменяется согласно максимальному уровню разделения или максимальному общему количеству разделений, иерархическая структура блока преобразования изменяется. Устройство 10 кодирования видео может выполнить преобразование в отношении каждой из областей текущей области 40 посредством использования блоков преобразования в переменной древовидной структуре, и согласно результату этого преобразования устройство 10 кодирования видео может независимо выбрать блок преобразования для каждой из областей, при этом блок преобразования находится на уровне, из которого выводятся коэффициенты преобразования с минимальной ошибкой.
Устройство 10 кодирования видео может кодировать и вывести информацию глубины преобразования и информацию максимального разделения блока преобразования, которые требуются для устройства 10 кодирования видео, чтобы определить блоки преобразования в переменной древовидной структуре текущей области 40.
Устройство 20 декодирования видео может считывать глубину преобразования блоков преобразования и максимальный уровень разделения блока преобразования, которые используются при кодировании текущей области 40, посредством использования информации глубины преобразования и информации максимального разделения блока преобразования, извлеченной из потока битов. На основании считанной глубины преобразования или уровня блоки преобразования в переменной древовидной структуре, которые используются для обратного преобразования, коэффициенты преобразования текущей области 40 могут быть определены.
Максимальное общее количество разделений или максимальный уровень разделения блока преобразования могут быть определены согласно характеристике текущей области. Таким образом, согласно характеристике изображения, если не требуется выполнять преобразование посредством использования различных типов блока преобразования, кодирование и декодирование видео выполняется посредством использования блоков преобразования в переменной древовидной структуре так, чтобы можно было уменьшить количество вычислений, вызванное посредством выполнения преобразования посредством использования блоков преобразования с различными уровнями и размерами. Кроме того, так как иерархическая структура доступных блоков преобразования может быть предсказана на основании максимального уровня разделения блока преобразования, скорости передачи в битах для кодирования информации, относящейся к иерархической структуре блоков преобразования, могут быть уменьшены, так чтобы эффективность передачи результата кодирования могла быть улучшена.
Со ссылками на фиг. 3 и 4 описаны варианты осуществления, в которых высота и ширина блока преобразования разделены на два и разделяются в блоки преобразования на более низком уровне. Однако блоки преобразования в иерархической структуре не ограничены вариантами осуществления согласно Фиг. 3 и 4, и, таким образом, в других вариантах осуществления по меньшей мере одно из высоты и ширины блока преобразования могут быть разделены согласно произвольному отношению, так чтобы блоки преобразования на более низком уровне могли быть сгенерированы.
Фиг. 5-8 иллюстрируют базовые блоки преобразования согласно вариантам осуществления настоящего изобретения.
В одном варианте осуществления блоки преобразования в переменной древовидной структуре включают в себя блоки преобразования на более низких уровнях, которые разделены из базового блока преобразования, так чтобы форма и размер блоков преобразования в переменной древовидной структуре могли быть определены согласно форме или размеру базового блока преобразования.
В основном, размер базового блока преобразования равен или меньше, чем максимальный блок преобразования относительно текущего видео. На основании одного из режимов кодирования области форма базового блока преобразования области может быть определена.
Например, форма базового блока преобразования текущей области может быть определена согласно режиму предсказания из числа режимов кодирования области. Например, размер базового блока преобразования может быть определен на основании того, является ли режим предсказания текущей области внешним (inter) режимом или внутренним (intra) режимом.
Например, форма базового блока преобразования текущей области может быть определена согласно размеру фрагмента из числа режимов кодирования области. Фрагмент указывает блок данных, полученный посредством разделения области так, чтобы выполнить внешнее предсказание или внутреннее предсказание в отношении области, и размер фрагмента может указывать форму или размер фрагмента.
Со ссылками на Фиг. 5 базовый блок преобразования, имеющий ту же форму, как блок данных для предсказания области, может быть определен. Например, фрагмент 51 размером 2Nx2N относительно области 50 размером 2Nx2N является блоком данных для внешнего предсказания или внутреннего предсказания, и базовый блок преобразования области 50 размером 2Nx2N может быть определен как блок преобразования размером 2Nx2N.
В другом варианте осуществления базовый блок преобразования может быть определен как блок преобразования, имеющий размер, равный или меньше, чем размер фрагментов области. В этом случае, так как базовый блок преобразования включен во фрагмент, расположенный в соответствующей области, этот базовый блок преобразования может быть определен не охватывать границу между фрагментами текущей области.
Со ссылками на Фиг. 6, когда фрагменты 61a и 61b размером Nx2N определены относительно области 60 размером 2Nx2N, базовые блоки преобразования размером 2Nx2N 65a, 65b, 65c и 65d могут быть определены относительно области 60 размером 2Nx2N. Базовые блоки преобразования размером 2Nx2N 65a, 65b, 65c и 65d являются меньше, чем фрагменты 61a и 61b размером Nx2N, так чтобы базовые блоки преобразования размером 2Nx2N 65a, 65b, 65c и 65d были включены во фрагменты 61a и 61b размером Nx2N и не пересекали границу между фрагментами 61a и 61b размером Nx2N.
Со ссылками на Фиг. 7, фрагменты 71a и 71b, ширины которых асимметрично разделены, могут быть определены относительно области 70 размером 4Mx4M. Таким образом, фрагмент 71a размером Mx4M и фрагмент 71b размером 3Mx4M могут быть определены относительно области 70 размером 4Mx4M. В этом случае базовые блоки преобразования относительно области 70 размером 4Mx4M могут быть определены как блоки преобразования размером MxM 75a, 75b, 75c и 75d и блоки преобразования размером 2Mx2M 75i и 75j, так чтобы не охватывать границу между фрагментами 71a и 71b. Блоки преобразования размером MxM 75a, 75b, 75c и 75d и блоки преобразования размером 2Mx2M 75i и 75j могут быть включены во фрагмент 71a или 71b соответствующей области.
Кроме того, возможно ограничить размер базовых блоков преобразования, чтобы он был постоянным относительно текущей области. Со ссылками на Фиг. 8, фрагмент размером Mx4M 81a и фрагмент размером 3Mx4M 81b могут быть определены относительно области 80 размером 4Mx4M. В этом случае блоки преобразования размером MxM 85a, 85b, 85c, 85d, 85e, 85f, 85g, 85h, 85i, 85j, 85k, 85l, 85m, 85n, 85o и 85p, которые не охватывают границу между фрагментами 81a и 81b и который имеет постоянный размер, могут быть определены относительно области 80 размером 4Mx4M.
В одном варианте осуществления максимальный уровень разделения может быть отдельно определен для каждого из режимов кодирования области.
Максимальный уровень разделения может быть отдельно определен для каждого режима предсказания области. Например, максимальный уровень разделения может быть отдельно определен для каждого режима предсказания таким образом, что информация максимального разделения, 'MaxTUDepthOfInter', определена для области с внешним режимом или информация максимального разделения 'MaxTUDepthOfIntra', определена для области с внутренним режимом, или подобное.
Максимальный уровень разделения может быть отдельно определен для каждого типа вырезки. Например, максимальный уровень разделения может быть отдельно определен для каждого типа вырезки таким образом, что значение максимального уровня разделения, 'MaxTUDepthOfIntraSlice', определяется для вырезки внутреннего типа, значение максимального уровня разделения 'MaxTUDepthOfInterP' определено для внешней вырезки P-типа, значение максимального уровня разделения 'MaxTUDepthOfInterB' определено для внешней вырезки B-типа, или подобного. В этом случае, заголовок вырезки может быть закодирован, в то же время включая в себя информацию максимального разделения для каждого типа вырезки.
Фиг. 9 и 10 иллюстрируют блоки преобразования в переменной древовидной структуре согласно вариантам осуществления настоящего изобретения.
Блоки преобразования в переменной древовидной структуре могут включать в себя базовый блок преобразования и блоки преобразования, которые разделены из базового блока преобразования и которые имеют уровни ниже, чем базовый блок преобразования по меньшей мере на один уровень. Например, базовый блок преобразования является нерелевантным размеру фрагмента, но блоки преобразования на более низких уровнях, которые разделены из базового блока преобразования, могут быть определены на основании размера фрагмента.
Например, со ссылками на фиг. 9, тип фрагмента области 90 размером 2Nx2N может быть определен как фрагменты 91a и 91b размером Nx2N. Независимо от размера фрагментов 91a и 91b размером Nx2N, размер базового блока преобразования 95 на нулевом уровне может быть определен как размер 2Nx2N, который является таким же, как область 90 размером 2Nx2N. Блоки преобразования 97a, 97b, 97c и 97d на первом уровне, который находится на один уровень ниже от базового блока преобразования 95, могут быть определены как блоки преобразования размером NxN, которые не охватывают границу между фрагментами 91a и 91b размером Nx2N и которые меньше, чем фрагменты 91a и 91b размером Nx2N.
Со ссылками на Фиг. 10, тип фрагмента области 92 размером 4Mx4M может быть определен как фрагменты 93a и 93b, которые являются асимметричным типом фрагмента. Независимо от размеров фрагментов 93a и 93b, размер базового блока преобразования 94 на нулевом уровне может быть определен как 4Mx4M, который равен области 92 размером 4Mx4M.
В одном варианте осуществления блоки преобразования на первом уровне, который является уровнем на один уровень ниже от базового блока 94 преобразования на нулевом уровне, могут быть определены как блоки преобразования размером MxM 96a, 96b, 96c, 96d, 96e, 96f, 96g и 96h, и блоки преобразования размером 2Mx2M 96i и 96j, чтобы не охватывать границу между фрагментами 93a и 93b.
В другом варианте осуществления блоки преобразования на первом уровне, который является уровнем на один уровень ниже от базового блока 94 преобразования на нулевом уровне, могут быть определены как блоки преобразования размером MxM 98a, 98b, 98c, 98d, 98e, 98f, 98g, 98h, 98i, 98j, 98k, 98l, 98m 98n, 98o и 98p, чтобы иметь постоянный размер, в то время как они не пересекают границу между фрагментами 93a и 93b.
Со ссылками на фиг. 5-8 базовые блоки преобразования согласно вариантам осуществления настоящего изобретения описаны выше, и со ссылками на фиг. 9 и 10 блоки преобразования в переменной древовидной структуре согласно вариантам осуществления настоящего изобретения описаны выше. В то время как вышеупомянутые блоки преобразования являются блоками данных квадратной формы, полученными посредством деления на два высоты и ширины блока преобразования на верхнем уровне, форма блоков преобразования не ограничена блоком данных квадратной формы.
Фиг. 11 является последовательностью операций способа кодирования видео, использующего блоки преобразования в переменной древовидной структуре, согласно варианту осуществления настоящего изобретения.
Во время операции 111 видео разделяется на множество областей, и затем каждая из областей кодируется. Чтобы кодировать текущую область, имеющую заранее определенный размер в видео, преобразование может быть выполнено в отношении текущей области на основании блоков преобразования в переменной древовидной структуре, которые генерируются на основании максимального уровня разделения блока преобразования из числа блоков преобразования, которые иерархически разделены из базового блока преобразования текущей области. Текущая область может быть блоком данных, макроблоком, картинкой, вырезкой или подобным, которые предназначены для операции кодирования.
Базовый блок преобразования блока текущей области может быть максимальным размером и блоком преобразования высшего уровня, который может использоваться относительно текущей области. Размер базового блока преобразования может быть равным или меньше, чем максимальный размер блока преобразования относительно видео.
Максимальный уровень разделения блока преобразования может указывать общее количество уровней блока преобразования, которое разрешено относительно текущей области и может соответствовать общему количеству разделений от базового блока преобразования текущей области к блоку преобразования на самом нижнем уровне, который разрешен относительно текущей области.
Блоки преобразования в переменной древовидной структуре могут включать в себя базовый блок преобразования согласно максимальному уровню разделения блока преобразования, и блоки преобразования согласно уровням, которые генерируются посредством пошагового разделения от базового блока преобразования до максимального уровня разделения блока преобразования.
Максимальный уровень разделения блока преобразования может быть отдельно определен для каждого из режимов кодирования, включающих в себя режим предсказания, тип вырезки и т.п., которые используются при кодировании текущей области.
Базовый блок преобразования относительно текущей области может быть по-разному установлен согласно характеристике изображения.
На основании базового блока преобразования, который может быть по-разному установлен, или максимального уровня разделения, который может быть по-разному установлен, блоки преобразования в переменной древовидной структуре могут использоваться в преобразовании относительно текущей области. Блоки преобразования, которые вызывают минимальную ошибку и которые являются согласно результату операции, в которой преобразование выполняется в отношении текущей области посредством использования блоков преобразования в переменной древовидной структуре, могут быть определены как блоки преобразования с глубиной преобразования относительно текущей области, так чтобы мог быть выведен коэффициент преобразования.
Во время операции 112 кодированные данные текущей области и информация о режиме кодирования, которая определена при кодировании текущей области, выводятся в форме потока битов, причем кодированные данные генерируются посредством кодирования, которое включает в себя преобразование на основании блока преобразования, определенного во время операции 111. Кроме того, информация максимального размера и информация минимального размера блока преобразования относительно видео и информация максимального разделения блока преобразования, указывающая максимальный уровень разделения блока преобразования, выводятся в то же время будучи включенными в поток битов.
Для каждого из блоков преобразования, которые берутся из числа блоков преобразования, определенных как окончательный блок преобразования относительно текущей области и которые исключают блок преобразования, имеющий минимальный размер текущей области, информация подразделения блока преобразования, указывающая, разделяется ли каждый из блоков преобразования в блоки преобразования на следующем более низком уровне, может быть закодирована и может быть выведена.
Кроме того, для каждого из блоков преобразования иерархическая информация шаблона блоков преобразования, указывающая существование блока преобразования, который включает в себя ненулевой коэффициент и который берется из числа блоков преобразования на более низком уровне, может быть закодирована и может быть выведена.
Фиг. 12 является последовательностью операций способа декодирования видео, использующего блоки преобразования в переменной древовидной структуре, согласно варианту осуществления настоящего изобретения.
Во время операции 121 принимается поток битов, включающий в себя кодированные данные видео.
Во время операции 122 поток битов, принятый во время операции 121, анализируется, так чтобы кодированные данные текущей области и информация о режиме кодирования, которая определена при кодировании текущей области, были извлечены из потока битов.
Кроме того, информация максимального размера и информация минимального размера блока преобразования относительно упомянутого видео, и информация максимального разделения блока преобразования извлекаются из потока битов. Информация максимального разделения блока преобразования о блоке преобразования относительно текущей области может быть отдельно считана для каждого режима предсказания или каждого типа вырезки, который используется при кодировании текущей области.
Информация подразделения блока преобразования или иерархическая информация шаблона блоков преобразования может быть извлечена из потока битов.
Во время операции 123 режим кодирования текущей области может быть считан из извлеченной информации о режиме кодирования, и кодированные данные текущей области могут быть декодированы на основании режима кодирования.
В частности, максимальный уровень разделения блока преобразования относительно текущей области может быть считан на основании информации максимального разделения блока преобразования. Блоки преобразования в переменной древовидной структуре могут быть определены на основании максимального уровня разделения, при этом блоки преобразования в переменной древовидной структуре генерируются на основании максимального уровня разделения блока преобразования и определяются из числа блоков преобразования, которые иерархически разделены из базового блока преобразования относительно текущей области. Блок преобразования с глубиной преобразования может быть определен из числа блоков преобразования в переменной древовидной структуре, и обратное преобразование может быть выполнено в отношении коэффициента преобразования текущей области посредством использования блока преобразования с этой глубиной преобразования. Затем видео может быть восстановлено посредством комбинирования кодированных результатов относительно изображений.
Максимальное общее количество разделений или максимальный уровень разделения блока преобразования могут быть отдельно определены согласно характеристике пространственной области изображения. Максимальное общее количество разделений или максимальный уровень разделения блока преобразования могут быть определены на основании способности или среды передачи данных системы кодирования или системы декодирования. Так как максимальное общее количество разделений или максимальный уровень разделения выборочно ограничен от базового блока преобразования, объем вычислений кодирования и количество битов передачи могут быть уменьшены.
В дальнейшем со ссылками на фиг. 13-27 устройство кодирования видео и устройство декодирования видео и способ кодирования видео и способ декодирования видео, которые используют блок преобразования в древовидной структуре и блок преобразования в переменной древовидной структуре, будут описаны.
Фиг. 13 является блок-схемой устройства кодирования видео, использующего блок преобразования в древовидной структуре и блок преобразования в переменной древовидной структуре 100, согласно варианту осуществления настоящего изобретения.
Устройство кодирования видео, использующее блок преобразования в древовидной структуре и блок преобразования в переменной древовидной структуре 100 включает в себя модуль 110 разделения на основе максимального блока кодирования, модуль 120 определения блока кодирования и модуль 130 вывода. В дальнейшем для удобства описания устройство кодирования видео, использующее блок преобразования в переменной древовидной структуре и блок преобразования в переменной древовидной структуре 100 упоминается «как устройство 100 кодирования видео».
Модуль 110 разделения на основе максимального блока кодирования может разделить текущую картинку на основании максимального блока кодирования для текущей картинки изображения. Если текущая картинка больше, чем максимальный блок кодирования, данные изображения текущей картинки могут быть разделены по меньшей мере в один максимальный блок кодирования. Максимальный блок кодирования может быть блоком данных, имеющим размер 32x32, 64x64, 128x128, 256x256, и т.д., в котором форма блока данных является квадратом, имеющим ширину и высоту в степени 2. Данные изображения могут быть выведены к модулю 120 определения блока кодирования согласно по меньшей мере одному максимальному блоку кодирования.
Блок кодирования может быть охарактеризован максимальным размером и глубиной. Глубина обозначает количество раз, сколько блок кодирования пространственно разделяется из максимального блока кодирования. Соответственно, когда глубина углубляется, более глубокие блоки кодирования согласно глубинам могут быть разделены из максимального блока кодирования до минимального блока кодирования. Глубина максимального блока кодирования является наивысшей глубиной, и глубина минимального блока кодирования является самой нижней глубиной. Так как размер блока кодирования, соответствующий каждой глубине, уменьшается когда углубляется глубина максимального блока кодирования, блок кодирования, соответствующий верхней глубине, может включать в себя множество блоков кодирования, соответствующих более низким глубинам.
Как описано выше, данные изображения текущей картинки разделяются в один или более максимальных блоков кодирования согласно максимальному размеру блока кодирования и каждый из максимальных блоков кодирования может включать в себя более глубокие блоки кодирования, которые разделены согласно глубинам. Так как максимальный блок кодирования разделяется согласно глубинам, данные изображения пространственной области, включенной в максимальный блок кодирования, могут быть иерархически классифицированы согласно глубинам.
Максимальная глубина и максимальный размер блока кодирования, которые ограничивают общее количество раз, сколько высота и ширина максимального блока кодирования иерархически разделяются, могут быть предопределены.
Модуль 120 определения блока кодирования кодирует по меньшей мере одну область разделения, полученную посредством разделения области максимального блока кодирования согласно глубинам, и определяет глубину для вывода окончательно кодированных данных изображения согласно по меньшей мере одной области разделения. Модуль 120 определения блока кодирования кодирует по меньшей мере одну область разделения, полученную посредством разделения области максимального блока кодирования согласно глубинам, и определяет глубину, чтобы вывести окончательно кодированные данные изображения согласно по меньшей мере одной области разделения. Например, модуль 120 определения блока кодирования определяет кодированную глубину посредством кодирования данных изображения в более глубоких блоках кодирования согласно глубинам, согласно максимальному блоку кодирования текущей картинки, и выбора глубины, имеющей наименьшее количество ошибок кодирования. Например, модуль 120 определения блока кодирования определяет кодированную глубину посредством кодирования данных изображения в более глубоких блоках кодирования согласно глубинам, согласно максимальному блоку кодирования текущей картинки и выбора глубины, имеющей наименьшее количество ошибок кодирования. Таким образом, данные кодированного изображения блока кодирования, соответствующего определенной кодированной глубине, выводятся модулем 120 определения блока кодирования. Таким образом, данные кодированного изображения блока кодирования, соответствующего определенной кодированной глубине, выводятся модулем 120 определения блока кодирования. Кроме того, блоки кодирования, соответствующие кодированной глубине, могут быть расценены как кодированные блоки кодирования. Кроме того, блоки кодирования, соответствующие кодированной глубине, могут быть расценены как кодированные блоки кодирования.
Определенная кодированная глубина и кодированные данные изображения согласно определенной кодированной глубине выводятся к модулю 130 вывода.
Данные изображения в максимальном блоке кодирования закодированы на основании более глубоких блоков кодирования, соответствующих по меньшей мере одной глубине, равной или ниже максимальной глубины, и результаты кодирования данных изображения сравниваются на основании каждого из более глубоких блоков кодирования. Глубина, имеющая наименьшее количество ошибок кодирования, может быть выбрана после сравнения ошибок кодирования более глубоких блоков кодирования. По меньшей мере одна кодированная глубина может быть выбрана для каждого максимального блока кодирования.
Размер максимального блока кодирования разделяется, когда блок кодирования иерархически разделяется согласно глубинам и когда количество блоков кодирования увеличивается. Кроме того, даже если блоки кодирования соответствуют одной и той же глубине в одном максимальном блоке кодирования, определяется, разделить ли каждый из блоков кодирования, соответствующих одной и той же глубине, до более низкой глубины посредством измерения ошибки кодирования данных изображения каждого блока кодирования, отдельно. Соответственно, даже когда данные изображения включены в один максимальный блок кодирования, данные изображения разделяются в области согласно глубинам и ошибки кодирования могут отличаться согласно областям в одном максимальном блоке кодирования. Таким образом, кодированные глубины могут отличаться согласно областям в данных изображения. Поэтому одна или более кодированных глубин могут быть определены в одном максимальном блоке кодирования и данные изображения максимального блока кодирования могут быть разделены согласно блокам кодирования по меньшей мере одной закодированной глубины.
Соответственно, модуль 120 определения блока кодирования может определить блоки кодирования, имеющие структуру дерева, включенные в максимальный блок кодирования. Эти блоки кодирования, имеющие структуру дерева, включают в себя блоки кодирования, соответствующие глубине, определенной как являющейся закодированной глубиной, из числа всех более глубоких блоков кодирования, включенных в максимальный блок кодирования. Блок кодирования кодированной глубины может быть иерархически определен согласно глубинам в одной и той же области максимального блока кодирования и может быть независимо определен в различных областях. Аналогично, кодированная глубина в текущей области может быть независимо определена из кодированной глубины в другой области.
Максимальная глубина является индексом, относящимся к количеству раз разделения от максимального блока кодирования до минимального блока кодирования. Первая максимальная глубина может обозначить общее количество раз разделения от максимального блока кодирования до минимального блока кодирования. Вторая максимальная глубина может обозначить общее количество уровней глубины от максимального блока кодирования до минимального блока кодирования. Например, когда глубина максимального блока кодирования равна 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 кодирования видео может также выполнять преобразование в отношении данных изображения в блоке кодирования на основании не только блока кодирования для кодирования данных изображения, но также и на основании блока данных, который отличается от блока кодирования.
Как описано выше со ссылками на фиг. 1-12, чтобы выполнить преобразование в блоке кодирования, преобразование может быть выполнено на основании блока данных, имеющего размер, равный или меньше, чем блок преобразования. Например, блок преобразования для преобразования может включать в себя блок преобразования для внутреннего режима и блок преобразования для внешнего режима.
Подобно блокам преобразования в древовидной структуре согласно предыдущим вариантам осуществления блок преобразования в блоке кодирования может быть рекурсивно разделен в блоки преобразования меньшего размера, так чтобы остаточные данные в блоке кодирования могли быть разделены согласно блокам преобразования в древовидной структуре согласно глубинам преобразования.
Глубина преобразования, указывающая количество раз разделения, чтобы достигнуть блока преобразования посредством разделения высоты и ширины блока кодирования, может также быть установлена для блока преобразования. Например, в текущем блоке кодирования 2Nx2N, глубина преобразования может быть равна 0, когда размер блока преобразования 2Nx2N, глубина преобразования может быть равна 1, когда размер блока преобразования равен NxN, и глубина преобразования может быть равна 2, когда размер блока преобразования равен N/2xN/2. Другими словами, блок преобразования в древовидной структуре может быть установлен для блока преобразования согласно глубине преобразования.
Информация кодирования согласно блокам кодирования, соответствующим кодированной глубине, использует не только информацию о кодированной глубине, но также и информацию об информации, относящейся к кодированию с предсказанием и преобразованию. Соответственно, модуль 120 определения блока кодирования может определить кодированную глубину, имеющую минимальную ошибку кодирования, и может также определить тип фрагмента в блоке предсказания, режим предсказания согласно блокам предсказания и размер блока преобразования для преобразования.
Кроме того, модуль 120 определения блока кодирования может выполнить преобразование посредством использования блоков преобразования в переменной древовидной структуре в процессе кодирования относительно блока кодирования, на основании максимального уровня разделения блока преобразования, который является ограниченно установленным заранее для каждого из максимального блока кодирования или текущего блока кодирования.
Блок преобразования в переменной древовидной структуре на основании максимального уровня разделения блока преобразования соответствует вышеупомянутому описанию со ссылками на фиг. 1-12. Таким образом, блок преобразования в переменной древовидной структуре может включать в себя базовый блок преобразования и блоки преобразования на более низких уровнях, которые разделены из базового блока преобразования до максимального уровня разделения, который разрешен для блока кодирования.
Базовый блок преобразования и максимальный уровень разделения могут быть по-разному установлены согласно режимам кодирования. Например, форма базового блока преобразования текущего изображения может быть определена согласно размеру фрагмента или режиму предсказания из числа режимов кодирования блока кодирования.
Фрагмент может указывать блок данных, полученный посредством разделения блока предсказания блока кодирования, и блок предсказания может быть фрагментом, имеющим тот же размер как блок кодирования. В одном варианте осуществления базовый блок преобразования может быть определен иметь ту же самую форму, что и блок предсказания блока кодирования. В другом варианте осуществления базовый блок преобразования может быть определен иметь размер, равный или меньше, чем размер фрагмента, чтобы не охватывать границу между фрагментами.
Кроме того, в то время как базовый блок преобразования больше, чем фрагмент, блоки преобразования на более низких уровнях, чем базовый блок преобразования, могут быть определены иметь размер меньше, чем размер фрагмента, чтобы не охватывать границу между фрагментами.
Модуль 120 определения блока кодирования может выполнить преобразование в отношении каждого из блоков кодирования посредством использования блоков преобразования в переменной древовидной структуре и таким образом может определить блоки преобразования в древовидной структуре.
Блоки кодирования согласно древовидной структуре в максимальном блоке кодирования и способу определения фрагмента и блоку преобразования в древовидной структуре согласно одному или более вариантам осуществления будут описаны подробно ниже со ссылками на фиг. 15-25.
Модуль 120 определения блока кодирования может измерить ошибку кодирования более глубоких блоков кодирования согласно глубинам посредством использования оптимизации частота следования - скорость передачи на основании множителей Лагранжа.
Модуль 130 вывода выводит данные изображения максимального блока кодирования, который кодируется на основании по меньшей мере одной кодированной глубины, определенной модулем 120 определения блока кодирования, и информации о режиме кодирования согласно кодированной глубине, в потоках битов.
Закодированные данные изображения могут быть получены посредством кодирования остаточных данных изображения.
Информация о режиме кодирования согласно кодированной глубине может включать в себя по меньшей мере одну из информации о кодированной глубине, информации о типе фрагмента в блоке предсказания, режиме предсказания и размере блока преобразования.
Информация о кодированной глубине может быть определена посредством использования информации разделения согласно глубинам, которая указывает, выполнено ли кодирование в отношении блоков кодирования более низкой глубины вместо текущей глубины. Если текущая глубина текущего блока кодирования является кодированной глубиной, данные изображения в текущем блоке кодирования кодируются и выводятся, и таким образом информация разделения может быть определена, чтобы не разделять текущий блок кодирования до более низкой глубины. Альтернативно, если текущая глубина текущего блока кодирования не является кодированной глубиной, кодирование выполняется в отношении блока кодирования более низкой глубины. Таким образом, информация разделения может быть определена, чтобы разделить текущий блок кодирования, чтобы получить блоки кодирования более низкой глубины.
Если текущая глубина не является кодированной глубиной, кодирование выполняется в отношении блока кодирования, который разделяется в блок кодирования более низкой глубины. Так как по меньшей мере один блок кодирования более низкой глубины существует в одном блоке кодирования текущей глубины, кодирование повторяющимся образом выполняется в отношении каждого блока кодирования более низкой глубины. Таким образом, кодирование может быть рекурсивно выполнено для блоков кодирования, имеющих одну и ту же глубину.
Так как блоки кодирования, имеющие структуру дерева, определены для одного максимального блока кодирования и информация о по меньшей мере одном режиме кодирования определена для блока кодирования кодированной глубины, информация о по меньшей мере одном режиме кодирования может быть определена для одного максимального блока кодирования. Кроме того, кодированная глубина данных изображения максимального блока кодирования может быть различной согласно местоположениям, так как данные изображения иерархически разделены согласно глубинам. Таким образом, информация о кодированной глубине и режиме кодирования может быть установлена для данных изображения.
Соответственно, модуль 130 вывода может назначить информацию кодирования о соответствующих кодированной глубине и режиме кодирования для по меньшей мере одного из блока кодирования, блока предсказания и минимального блока, включенного в максимальный блок кодирования.
Минимальный блок может быть прямоугольным блоком данных, полученным посредством разделения минимального блока кодирования, имеющего самую нижнюю глубину, на 4. Альтернативно, минимальный блок может быть прямоугольным блоком данных максимального размера, который может быть включен во все из блоков кодирования, блоков предсказания, блоков фрагментов и блоков преобразования, включенных в максимальный блок кодирования.
Например, информация кодирования, выведенная через модуль 130 вывода, может быть классифицирована в информацию кодирования согласно блокам кодирования и информацию кодирования согласно блокам предсказания. Информация кодирования согласно блокам кодирования может включать в себя по меньшей мере одну из информации о режиме предсказания и информации о размере фрагментов. Информация кодирования согласно блокам предсказания может включать в себя по меньшей мере одну из информации об оцененном направлении внешнего режима, информации об опорном индексе изображения внешнего режима, информации о векторе движения, информации о компоненте насыщенности цвета внутреннего режима и информации о способе интерполяции внутреннего режима.
Информация о максимальном размере блока кодирования, определенного согласно картинкам, вырезкам или группам картинок (GOP), и информация о максимальной глубине может быть вставлена в заголовок потока битов, набор параметров последовательности (SPS) или набор параметров картинки.
Кроме того, информация максимального размера блока преобразования и информация минимального размера блока преобразования, которые разрешены для текущего видео, могут быть выведены через заголовок потока битов, SPS или набор параметров картинки. Модуль 130 вывода может выводить информацию максимального разделения блока преобразования, информацию индекса преобразования, информацию подразделения блока преобразования, иерархическую информацию шаблона блоков преобразования и т.п., которые описаны выше со ссылками на фиг. 1-12.
В устройстве 100 кодирования видео более глубокий блок кодирования может быть блоком кодирования, полученным посредством деления по меньшей мере одной из высоты и ширины блока кодирования верхней глубины, которая находится на один уровень выше, на два. Другими словами, когда размер блока кодирования текущей глубины равен 2Nx2N, размер блока кодирования более низкой глубины может быть NxN. Кроме того, блок кодирования текущей глубины, имеющей размер 2Nx2N, может включать в себя 4 из блоков кодирования более низкой глубины.
Соответственно, устройство 100 кодирования видео может сформировать блоки кодирования, имеющие структуру дерева, посредством определения блоков кодирования, имеющих оптимальную форму и оптимальный размер для каждого максимального блока кодирования, на основании размера максимального блока кодирования и максимальной глубины, оба определенных посредством рассмотрения характеристики текущей картинки. Кроме того, так как кодирование может быть выполнено в отношении каждого максимального блока кодирования посредством использования любого из различных режимов предсказания и преобразований, оптимальный режим кодирования может быть определен, рассматривая характеристики блока кодирования различных размеров изображения.
Таким образом, если изображение, имеющее высокое разрешение или большое количество данных, кодируется в блоки макроблоков согласно уровню техники, многие макроблоки в каждой картинке чрезмерно увеличиваются. Соответственно, многие вырезки сжатой информации, сгенерированные для каждого макроблока, увеличиваются и таким образом трудно передать сжатую информацию и эффективность сжатия данных уменьшается. Однако посредством использования устройства 100 кодирования видео эффективность сжатия изображения может быть увеличена, так как блок кодирования настраивается, в то же время рассматривая характеристики изображения, в то же время увеличивая максимальный размер блока кодирования, в то же время рассматривая размер изображения.
Устройство 100 кодирования видео на Фиг. 13 может соответствовать устройству 10 кодирования видео, описанному выше со ссылками на фиг. 1.
Таким образом, в устройстве 10 кодирования видео текущая область может указывать текущий блок кодирования, который является одним из блоков кодирования, полученных посредством разделения текущей картинки видео, чтобы кодировать видео.
Модуль 11 определения блока преобразования из устройства 10 кодирования видео может разделить текущую картинку на максимальные блоки кодирования, может выполнить преобразование в отношении каждого из максимальных блоков кодирования, на основании блоков кодирования согласно глубинам, может выбрать блоки кодирования с кодированной глубиной, из который выводится результат кодирования, который генерирует минимальную ошибку, и затем может определить блоки кодирования в древовидной структуре.
Когда модуль 11 определения блока преобразования из устройства 10 кодирования видео выполняет преобразование на основании блока кодирования, модуль 11 определения блока преобразования может выполнить преобразование на основании блока преобразования. В частности, блоки преобразования в переменной древовидной структуре могут конфигурироваться на основании максимального уровня разделения блока преобразования, который установлен максимальным блоком кодирования, или каждого из текущих блоков кодирования.
Модуль 11 определения блока преобразования из устройства 10 кодирования видео может выполнить преобразование в отношении каждого из блоков кодирования на основании блока преобразования в переменной древовидной структуре, и таким образом может определить глубину преобразования, которая является уровнем блока преобразования, и закодированную глубину блока кодирования, которые приводят к оптимальному результату кодирования. Соответственно, модуль 11 определения блока преобразования может определить блоки кодирования в древовидной структуре и блоки преобразования в переменной древовидной структуре относительно каждого из максимальных блоков кодирования.
Модуль 13 вывода из устройства 10 кодирования видео может выводить кодированные данные картинки, которая закодирована согласно блокам кодирования в древовидной структуре относительно каждого из максимальных блоков кодирования, может кодировать информацию о кодированных глубинах и режимах кодирования блоков кодирования в древовидной структуре, может кодировать информацию максимального разделения блока преобразования, и может выводить их.
Фиг. 14 является блок-схемой устройства декодирования видео, использующего блок преобразования в древовидной структуре и блок преобразования в переменной древовидной структуре 200, согласно варианту осуществления настоящего изобретения.
Устройство декодирования видео, использующее блок преобразования в древовидной структуре и блок преобразования в переменной древовидной структуре 200, включает в себя приемник 210, модуль 220 извлечения информации кодирования и данных изображения и декодер 230 данных изображения. В дальнейшем для удобства описания устройство декодирования видео, использующее блок преобразования в древовидной структуре и блок преобразования в переменной древовидной структуре 200 упоминается «как устройство 200 декодирования видео».
Определения различных терминов, такие как блок кодирования, глубина, блок предсказания, блок преобразования и информация о различных режимах кодирования, для различных операций устройства 200 декодирования видео являются такими же или подобными, описанным выше со ссылками на фиг. 13 и устройство 100 кодирования видео.
Приемник 210 принимает и синтаксически анализирует поток битов кодированного видео. Модуль 220 извлечения информации кодирования и данных изображения извлекает кодированные данные изображения для каждого блока кодирования из синтаксически проанализированного потока битов, в котором блоки кодирования имеют структуру дерева согласно каждому максимальному блоку кодирования, и выводит извлеченные данные изображения к декодеру 230 данных изображения. Модуль 220 извлечения информации кодирования и данных изображения может извлечь информацию о максимальном размере блока кодирования текущей картинки из заголовка, соответствующего текущей картинке, SPS, или набора параметров картинки.
Кроме того, модуль 220 извлечения информации кодирования и данных изображения извлекает информацию о кодированной глубине и режиме кодирования для блоков кодирования, имеющих структуру дерева, согласно каждому максимальному блоку кодирования, из синтаксически проанализированного потока битов. Извлеченная информация о кодированной глубине и режиме кодирования выводится к декодеру 230 данных изображения. Таким образом, данные изображения в битовом потоке разделяются в максимальный блок кодирования так, чтобы декодер 230 данных изображения декодировал данные изображения для каждого максимального блока кодирования.
Информация о кодированной глубине и режиме кодирования согласно максимальному блоку кодирования может быть установлена для информации о по меньшей мере одном блоке кодирования, соответствующем кодированной глубине. Кроме того, информация о режиме кодирования может включать в себя по меньшей мере одну из информации о типе фрагмента соответствующего блока кодирования, соответствующей кодированной глубине, информации о режиме предсказания и размера блока преобразования. Кроме того, информация разделения согласно глубинам может быть извлечена как информация о кодированной глубине.
Информация о кодированной глубине и режиме кодирования согласно каждому максимальному блоку кодирования, извлеченная модулем 220 извлечения информации кодирования и данных изображения, является информацией о кодированной глубине и режиме кодирования, определенным для генерирования минимальной ошибки кодирования, когда кодер, такой как устройство 100 кодирования видео, повторяющимся образом выполняет кодирование для каждого более глубокого блока кодирования согласно глубинам согласно каждому максимальному блоку кодирования. Соответственно, устройство 200 декодирования видео может восстановить изображение посредством декодирования данных изображения согласно кодированной глубине и режиму кодирования, который генерирует минимальную ошибку кодирования.
Кроме того, модуль 220 извлечения информации кодирования и данных изображения может извлечь информацию максимального размера блока преобразования и информацию минимального размера блока преобразования, которые разрешены для текущего видео, из заголовка потока битов, SPS или набора параметров картинки. Модуль 220 извлечения информации кодирования и данных изображения может извлечь информацию максимального разделения блока преобразования, информацию индекса преобразования, информацию подразделения блока преобразования, иерархическую информацию шаблона блоков преобразования и т.п., которые относятся к блоком преобразования, описанным выше со ссылками на фиг. 1-12, в качестве информации кодирования.
Так как информация кодирования о кодированной глубине и режиме кодирования может быть назначена на заранее определенный блок данных из числа соответствующих блока кодирования, блока предсказания и минимального блока, модуль 220 извлечения информации кодирования и данных изображения может извлечь информацию о кодированной глубине и режиме кодирования согласно заранее определенным блокам данных. Заранее определенные блоки данных, которым назначена одна и та же информация о кодированной глубине и режиме кодирования, могут быть логически выведены, чтобы быть блоками данных, включенными в один и тот же максимальный блок кодирования.
Декодер 230 данных изображения восстанавливает текущую картинку, декодируя данные изображения в каждом максимальном блоке кодирования, на основании информации о кодированной глубине и режиме кодирования согласно максимальным блокам кодирования. Другими словами, декодер 230 данных изображения может декодировать кодированные данные изображения на основании извлеченной информации о типе фрагмента, режиме предсказания и блоке преобразования для каждого блока кодирования из числа блоков кодирования, имеющих структуру дерева, включенных в каждый максимальный блок кодирования. Процесс декодирования может включать в себя по меньшей мере одно из предсказания, включающего в себя внутреннее предсказание и компенсацию движения, и обратное преобразование. Обратное преобразование может быть выполнено согласно способу обратного ортогонального преобразования или обратного целочисленного преобразования.
Декодер 230 данных изображения может выполнить внутреннее предсказание или компенсацию движения согласно фрагменту и режиму предсказания каждого блока кодирования, на основании информации о типе фрагмента и режиме предсказания блока предсказания блока кодирования согласно закодированным глубинам.
Кроме того, чтобы выполнить обратное преобразование согласно максимальным блокам кодирования, декодер 230 данных изображения может считывать блоки преобразования в древовидной структуре, включающей в себя информацию размера о блоках преобразования блоков кодирования согласно закодированным глубинам, и затем может выполнить обратное преобразование в отношении каждого из блоков кодирования, на основании блока преобразования.
Декодер 230 данных изображения может определить блоки преобразования в переменной древовидной структуре, включающей в себя допустимые более низкие уровни от базового блока преобразования, на основании максимального уровня разделения блока преобразования относительно каждого из блоков кодирования. Декодер 230 данных изображения может определить блоки преобразования с глубиной преобразования, которые требуются для выполнения обратного преобразования в отношении коэффициента преобразования, при этом блоки преобразования определяются из числа блоков преобразования в переменной древовидной структуре, может выполнить обратное преобразование в отношении коэффициента преобразования, и таким образом может восстановить пиксельное значение.
Декодер 230 данных изображения может определить по меньшей мере одну кодированную глубину текущего максимального блока кодирования посредством использования информации разделения согласно глубинам. Если информация разделения указывает, что данные изображения больше не разделяются в текущей глубине, текущая глубина является кодированной глубиной. Соответственно, декодер 230 данных изображения может декодировать кодированные данные по меньшей мере одного блока кодирования, соответствующего каждой кодированной глубине в текущем максимальном блока кодирования посредством использования информации о типе фрагмента блока предсказания, режиме предсказания и размере блока преобразования для каждого блока кодирования, соответствующего кодированной глубине, и вывести данные изображения текущего максимального блока кодирования.
Другими словами, блоки данных, включающие в себя информацию кодирования, включающую в себя одну и ту же информацию разделения, могут быть собраны посредством наблюдения набора информации кодирования, назначенной для заранее определенного блока данных из числа блока кодирования, блока предсказания и минимального блока. Кроме того, собранные блоки данных могут рассматриваться являющимися одним блоком данных, который должен быть декодирован декодером 230 данных изображения в одно и том же режиме кодирования.
Устройство 200 декодирования видео может получить информацию о по меньшей мере одном блоке кодирования, который генерирует минимальную ошибку кодирования, когда кодирование рекурсивно выполняется для каждого максимального блока кодирования, и может использовать эту информацию, чтобы декодировать текущую картинку. Другими словами, блоки кодирования, имеющие структуру дерева, определенные как оптимальные блоки кодирования в каждом максимальном блоке кодирования, могут быть декодированы. Кроме того, максимальный размер блока кодирования может быть определен, рассматривая разрешение и количество данных изображения.
Соответственно, даже если данные изображения имеют высокое разрешение и большое количество данных, данные изображения могут быть эффективно декодированы и восстановлены посредством использования размера блока кодирования и режима кодирования, которые адаптивно определены согласно характеристикам данных изображения, посредством использования информации об оптимальном режиме кодирования, принятой из кодера.
Устройство 200 декодирования видео на Фиг. 14 может соответствовать устройству 20 декодирования видео, описанному выше со ссылками на фиг. 2.
Таким образом, в устройстве 20 декодирования видео текущая область может указывать текущий блок кодирования, который является одним из блоков кодирования, полученных посредством разделения текущей картинки видео, чтобы кодировать видео.
Модуль 23 извлечения из устройства 20 декодирования видео может извлечь из синтаксически проанализированного потока битов кодированные данные картинки, которая закодирована согласно блокам кодирования в древовидной структуре, которые включены в каждый из максимальных блоков кодирования, и может извлечь информацию о кодированных глубинах и режимах кодирования для каждого из блоков кодирования. Кроме того, блок 23 извлечения из устройства 20 декодирования видео может извлечь информацию максимального разделения блока преобразования, которая установлена для каждой картинки, каждой вырезки, каждого максимального блока кодирования или каждого блока кодирования.
Модуль 25 декодирования из устройства 20 декодирования видео может выполнить обратное преобразование в отношении каждого из максимальных блоков кодирования посредством использования блоков преобразования в древовидной структуре. В частности, модуль 25 декодирования может выполнить обратное преобразование посредством использования блоков преобразования, которые определены из числа блоков преобразования в переменной древовидной структуре, которые конфигурируются на основании информации максимального разделения блока преобразования, может декодировать кодированные данные в каждом из блоков кодирования и таким образом может восстановить картинку.
Фиг. 15 является диаграммой для описания понятия блоков кодирования согласно варианту осуществления настоящего изобретения.
Размер блока кодирования может быть выражен как ширина x высота и может быть равен 64x64, 32x32, 16x16 и 8x8, хотя подразумевается, что другой вариант осуществления не ограничен этим. Блок кодирования 64x64 может быть разделен во фрагменты 64x64, 64x32, 32x64 или 32x32, блок кодирования 32x32 может быть разделен во фрагменты 32x32, 32x16, 16x32 или 16x16, блок кодирования 16x16 может быть разделен во фрагменты 16x16, 16x8, 8x16 или 8x8 и блок кодирования 8x8 может быть разделен во фрагменты 8x8, 8x4, 4x8 или 4x4.
Со ссылками на Фиг. 15, первые видео данные 310 имеют разрешение 1920x1080, максимальный размер блока кодирования 64 и максимальную глубину 2. Вторые видео данные 320 имеют разрешение 1920x1080, максимальный размер блока кодирования 64 и максимальную глубину 3. Третьи видео данные 330 имеют разрешение 352x288, максимальный размер блока кодирования 16 и максимальную глубину 1. Максимальная глубина, показанная на фиг. 15, обозначает общее количество разделений от максимального блока кодирования до минимального блока декодирования.
Если разрешение является высоким или количество данных является большим, максимальный размер блока кодирования может быть большим, чтобы не только увеличивать эффективность кодирования, но также и точно отразить характеристики изображения. Соответственно, максимальный размер блоков кодирования первых и вторых видео данных 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 уровня, посредством разделения максимального блока кодирования три раза. Поскольку глубина углубляется (то есть увеличивается), подробная информация может быть точно выражена.
Фиг. 16 является блок-схемой кодера 400 изображения на основании блоков кодирования, согласно варианту осуществления настоящего изобретения.
Со ссылками на Фиг. 16, кодер 400 изображения выполняет операции модуля 120 определения блока кодирования из устройства 100 кодирования видео, чтобы кодировать данные изображения. Например, внутренний предсказатель 410 выполняет внутреннее предсказание в отношении блоков кодирования во внутреннем режиме из числа текущего кадра 405 и модуль 420 оценки движения и компенсатор 425 движения выполняют внешнюю оценку и компенсацию движения соответственно в отношении блоков кодирования во внешнем режиме среди текущего кадра 405 посредством использования текущего кадра 405 и опорного кадра 495.
Данные, выведенные от внутреннего предсказателя 410, модуля 420 оценки движения и компенсатора 425 движения, выводятся как квантованный коэффициент преобразования через преобразователь 430 и квантователь 440. Квантованный коэффициент преобразования восстанавливается в качестве данных в пространственной области с помощью обратного квантователя 460 и обратного преобразователя 470. Восстановленные данные в пространственной области выводятся как опорный кадр 495 после постобработки с помощью модуля 480 удаления блочности и модуля 490 циклической фильтрации. Квантованный коэффициент преобразования может быть выведен как поток битов 455 через энтропийный кодер 450.
Чтобы кодер 400 изображения был применен в устройстве 100 кодирования видео, элементы кодера 400 изображения, то есть внутренний предсказатель 410, модуль 420 оценки движения, компенсатор 425 движения, преобразователь 430, квантователь 440, энтропийный кодер 450, обратный квантователь 460, обратный преобразователь 470, модуль 480 удаления блочности и модуль 490 циклической фильтрации выполняют операции на основании каждого блока кодирования из числа блоков кодирования, имеющих структуру дерева, в то же время рассматривая максимальную глубину каждого максимального блока кодирования.
В частности, внутренний предсказатель 410, модуль 420 оценки движения и компенсатор 425 движения определяют фрагменты и режим предсказания каждого блока кодирования из числа блоков кодирования, имеющих структуру дерева, в то же время рассматривая максимальный размер и максимальную глубину текущего максимального блока кодирования, и преобразователь 430 определяет размер блока преобразования в каждом блоке кодирования из числа блоков кодирования, имеющих структуру дерева.
Фиг. 17 является блок-схемой декодера 500 изображения на основании блоков кодирования согласно варианту осуществления настоящего изобретения.
Со ссылками на Фиг. 17 модуль 510 синтаксического анализа синтаксически анализирует кодированные данные изображения, которые должны быть декодированы, и информацию о кодировании, используемом для декодирования из потока 505 битов. Кодированные данные изображения выводятся в качестве обратно квантованных данных через энтропийный декодер 520 и обратный квантователь 530, и обратно квантованные данные восстанавливаются в данные изображения в пространственной области с помощью обратного преобразователя 540.
Внутренний предсказатель 550 выполняет внутреннее предсказание в отношении блоков кодирования во внутреннем режиме относительно данных изображения в пространственной области, и компенсатор 560 движения выполняет компенсацию движения в отношении блоков кодирования во внешнем режиме посредством использования опорного кадра 585.
Данные изображения в пространственной области, которые прошли через внутренний предсказатель 550 и компенсатор движения 560, могут быть выведены как восстановленный кадр 595, после постобработки с помощью модуля 570 удаления блочности и модуля 580 циклической фильтрации. Кроме того, данные изображения, которые постобработаны с помощью модуля 570 удаления блочности и модуля 580 циклической фильтрации, могут быть выведены как опорный кадр 585.
Чтобы декодировать данные изображения в декодере 230 данных изображения из устройства 200 декодирования видео, декодер 500 изображения может выполнить операции, которые выполняются после модуля 510 синтаксического анализа.
Чтобы декодер 500 изображения был применен в устройстве 200 декодирования видео, элементы декодера 500 изображения, то есть модуль 510 синтаксического анализа, энтропийный декодер 520, обратный квантователь 530, обратный преобразователь 540, внутренний 550 предсказатель, компенсатор движения 560, модуль 570 удаления блочности и модуль 580 циклической фильтрации, выполняют операции на основании блоков кодирования, имеющих структуру дерева, для каждого максимального блока кодирования.
В частности, внутренний предсказатель 550 и компенсатор 560 движения должны определить фрагменты и режим предсказания для каждого из блоков кодирования, имеющих структуру дерева, и обратный преобразователь 540 должен определить размер блока преобразования для каждого блока кодирования.
Фиг. 18 является диаграммой, иллюстрирующей более глубокие блоки кодирования согласно глубинам, и фрагменты согласно варианту осуществления настоящего изобретения.
Устройство 100 кодирования видео и устройство 200 декодирования видео используют иерархические блоки кодирования, чтобы рассматривать характеристики изображения. Максимальная высота, максимальная ширина и максимальная глубина блоков кодирования могут быть адаптивно определены согласно характеристикам изображения, или могут быть иным образом установлены пользователем. Размеры более глубоких блоков кодирования согласно глубинам могут быть определены согласно заранее определенному максимальному размеру блока кодирования.
В иерархической структуре 600 из блоков кодирования максимальная высота и максимальная ширина блоков кодирования каждая равны 64 и максимальная глубина равна 4. Здесь максимальная глубина указывает общее количество разделений от максимального блока кодирования до минимального блока кодирования. Так как глубина углубляется (то есть увеличивается) вдоль вертикальной оси иерархической структуры 600, высота и ширина более глубоких блоков кодирования каждая разделяется. Кроме того, блок предсказания и фрагменты, которые являются основаниями для кодирования с предсказанием каждого более глубокого блока кодирования, показаны вдоль горизонтальной оси иерархической структуры 600.
Например, первый блок кодирования 610 является максимальным блоком кодирования в иерархической структуре 600, в котором глубина его равна 0, и размер, то есть высота на ширину, его равен 64x64. Глубина углубляется вдоль вертикальной оси таким образом, что иерархическая структура 600 включает в себя второй блок кодирования 620, имеющий размер 32x32 и глубину 1, третий блок кодирования 630, имеющий размер 16x16 и глубину 2, и четвертый блок кодирования 640, имеющий размер 8x8 и глубину 3. Четвертый блок кодирования 640, имеющий размер 8x8 и глубины 3 является минимальным блоком кодирования.
Блок предсказания и фрагменты блоков кодирования 610, 620, 630 и 640 размещены вдоль горизонтальной оси согласно каждой глубине. Другими словами, если первый блок кодирования, 610, имеющий размер 64x64 и глубину 0 является блоком предсказания, этот блок предсказания может быть разделен на фрагменты, включенные в первый блок кодирования, 610, то есть фрагмент 610, имеющий размер 64x64, фрагменты 612, имеющие размер 64x32, фрагменты 614, имеющие размер 32x64, или фрагменты 616, имеющие размер 32x32.
Точно так же блок предсказания второго блока кодирования, 620, имеющий размер 32x32 и глубину 1, может быть разделен во фрагменты, включенные во второй блок кодирования 620, то есть фрагмент 620, имеющий размер 32x32, фрагменты 622, имеющие размер 32x16, фрагменты 624, имеющие размер 16x32, и фрагменты 626, имеющие размер 16x16.
Точно так же блок предсказания третьего блока кодирования, 630, имеющий размер 16x16 и глубину 2, может быть разделен во фрагменты, включенные в третий блок кодирования, 630, то есть фрагмент, имеющий размер 16x16, включенный в третий блок кодирования 630, фрагменты 632, имеющие размер 16x8, фрагменты 634, имеющие размер 8x16, и фрагменты 636, имеющие размер 8x8.
Точно так же блок предсказания четвертого блока кодирования, 640, имеющий размер 8x8 и глубину 3, может быть разделен во фрагменты, включенное в четвертый блок кодирования, 640, то есть фрагмент, имеющий размер 8x8, включенный в четвертый блок кодирования 640, фрагменты 642, имеющие размер 8x4, фрагменты 644, имеющие размер 4x8, и фрагменты 646, имеющие размер 4x4.
Чтобы определить по меньшей мере одну кодированную глубину блоков кодирования максимального блока кодирования 610, модулю 120 определения блока кодирования из устройства 100 кодирования видео требуется выполнить кодирование для блоков кодирования, соответствующих каждой глубине, включенной в максимальный блок кодирования 610.
Общее количество более глубоких блоков кодирования согласно глубинам, включающих в себя данные в одном и том же диапазоне и одинаковые размеры, увеличивается по мере того, как глубина углубляется. Например, четыре блока кодирования, соответствующих глубине 2, требуются, чтобы охватывать данные, которые включены в один блок кодирования, соответствующий глубине 1. Соответственно, чтобы сравнить результаты кодирования одних и тех же данных согласно глубинам, блок кодирования, соответствующий глубине 1, и четыре блока кодирования, соответствующие глубине 2, каждый кодируются.
Чтобы выполнить кодирование для текущей глубины из числа глубин, минимальная ошибка кодирования может быть выбрана для текущей глубины посредством выполнения кодирования для каждого блока предсказания в блоках кодирования, соответствующих текущей глубине, вдоль горизонтальной оси иерархической структуры 600. Альтернативно, минимальная ошибка кодирования может отыскиваться посредством сравнения минимальных ошибок кодирования согласно глубинам, посредством выполнения кодирования для каждой глубины, когда глубина углубляется вдоль вертикальной оси иерархической структуры 600. Глубина и фрагмент, имеющее минимальную ошибку кодирования в первом блоке кодирования 610, могут быть выбраны в качестве кодированной глубины и типа фрагмента первого блока кодирования 610.
Фиг. 19 является диаграммой для описания соотношения между блоком 710 кодирования и блоками 720 преобразования согласно варианту осуществления настоящего изобретения.
Устройство 100 кодирования видео и устройство 200 декодирования видео кодирует и декодирует соответственно изображение согласно блокам кодирования, имеющих размеры, меньшие чем или равные максимальному блоку кодирования для каждого максимального блока кодирования. Размеры блоков преобразования для преобразования во время кодирования могут быть выбраны на основании блоков данных, которые не больше чем соответствующий блок кодирования.
Например, в устройстве 100 кодирования видео, если размер блока 710 кодирования равен 64x64, преобразование может быть выполнено посредством использования блоков 720 преобразования, имеющих размер 32x32.
Кроме того, данные блока кодирования, 710, имеющего размер 64x64, могут быть кодированы посредством выполнения преобразования в отношении каждого из блоков преобразования, имеющих размер 32x32, 16x16, 8x8 и 4x4, которые меньше, чем 64x64, и затем блок преобразования, имеющий наименьшие ошибок кодирования, может быть выбран.
Фиг. 20 является диаграммой для описания информации кодирования блоков кодирования, соответствующих кодированной глубине, согласно варианту осуществления настоящего изобретения.
Модуль 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 для декодирования, согласно каждому более глубокому блоку кодирования.
Фиг. 21 является диаграммой более глубоких блоков кодирования согласно глубинам согласно варианту осуществления настоящего изобретения.
Информация разделения может использоваться, чтобы указывать изменение глубины. Информация разделения указывает, разделяется ли блок кодирования текущей глубины в блоки кодирования более низкой глубины.
Блок 910 предсказания для кодирования с предсказанием блока 900 кодирования, имеющего глубину 0 и размер 2N_0x2N_0, может включать в себя фрагменты типа фрагмента 912, имеющего размер 2N_0x2N_0, типа фрагмента 914, имеющего размер 2N_0xN_0, типа фрагмента 916, имеющего размер N_0x2N_0, и типа фрагмента 918, имеющего размер N_0xN_0. Фиг. 9 только иллюстрирует типы фрагментов 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, в качестве кодированный глубины посредством использования информации разделения согласно глубинам и использовать информацию о режиме кодирования соответствующей глубины для декодирования.
Фиг. 22-24 являются диаграммами для описания соотношения между блоками 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(Асимметричный Тип)
Модуль 130 вывода из устройства 100 кодирования видео может выводить информацию кодирования о блоках кодирования, имеющих структуру дерева, и модуль 220 извлечения информации кодирования и данных изображения из устройства 200 декодирования видео может извлечь информацию кодирования о блоках кодирования, имеющих структуру дерева, из принятого потока битов.
Информация разделения указывает, разделяется ли текущий блок кодирования в блоки кодирования более низкой глубины. Если информация разделения текущей глубины d равна 0, глубина, в которой текущий блок кодирования больше не разделяется на более низкую глубину, является закодированной глубиной, и таким образом информация о типе фрагмента, режиме предсказания и размере блока преобразования может быть определена для закодированной глубины. Если текущий блок кодирования далее разделяется согласно информации разделения, кодирование независимо выполняется в отношении четырех разделенных блоках кодирования более низкой глубины.
Режим предсказания может быть одним из внутреннего режима, внешнего режима и режима пропуска. Внутренний режим и внешний режим могут быть определены во всех типах фрагмента, и режим пропуска может быть определен только в типе фрагмента, имеющем размер 2Nx2N.
Информация о типе фрагмента может указывать симметричные типы фрагментов, имеющие размеры 2Nx2N, 2NxN, Nx2N и NxN, которые получают посредством симметричного разделения по меньшей мере одной из высоты и ширины блока предсказания, и асимметричные типы фрагментов, имеющие размеры 2NxnU, 2NxnD, nLx2N и nRx2N, которые получают посредством асимметричного разделения по меньшей мере одной из высоты и ширины блока предсказания. Асимметричные типы фрагментов, имеющие размеры 2NxnU и 2NxnD, могут быть соответственно получены посредством разделения высоты блока предсказания в соотношении 1:3 и 3:1, и асимметричные типы фрагментов, имеющие размеры nLx2N и nRx2N, могут быть соответственно получены посредством разделения ширины блока предсказания в соотношении 1:3 и 3:1
Размер блока преобразования может быть установлен быть двумя типами в внутреннем режиме и двумя типами во внешнем режиме. Например, если информация разделения блока преобразования равна 0, размер блока преобразования может быть 2Nx2N, который является размером текущего блока кодирования. Если информация разделения блока преобразования равна 1, блоки преобразования могут быть получены посредством разделения текущего блока кодирования. Кроме того, если тип фрагмента текущего блока кодирования, имеющего размер 2Nx2N, является симметричным типом фрагмента, размер блока преобразования может быть равен NxN, и если тип фрагмента текущего блока кодирования является асимметричным типом фрагмента, размер блока преобразования может быть равен N/2xN/2.
Информация кодирования о блоках кодирования, имеющих структуру дерева, может включать в себя по меньшей мере одно из блока кодирования, соответствующего кодированной глубине, блока предсказания и минимального блока. Блок кодирования, соответствующий кодированной глубине, может включать в себя по меньшей мере одно из блока предсказания и минимального блока, включающего в себя одну и ту же информацию кодирования.
Соответственно, определяют, включены ли смежные блоки данных в один и тот же блок кодирования, соответствующий кодированной глубине, посредством сравнения информации кодирования смежных блоков данных. Кроме того, соответствующий блок кодирования, соответствующий кодированной глубине, определяется посредством использования информации кодирования блока данных, и таким образом распределение кодированных глубин в максимальном блоке кодирования может быть определено.
Поэтому, если текущий блок кодирования предсказан на основании информации кодирования смежных блоков данных, на информацию кодирования блоков данных в более глубоких блоках кодирования, смежных с текущим блоком кодирования, можно непосредственно ссылаться и ее использовать.
В другом варианте осуществления, если текущий блок кодирования предсказан на основании информации кодирования смежных блоков данных, блоки данных, смежные с текущим блоком кодирования, отыскиваются, используя информацию кодирования блоков данных, и на отысканные смежные блоки кодирования можно ссылаться для того, чтобы предсказать текущий блок кодирования.
Фиг. 25 является диаграммой для описания соотношения между блоком кодирования, блоком предсказания или фрагментом и блоком преобразования согласно информации режима кодирования из Таблицы 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.
Флаг размера TU информации разделения блока преобразования может быть одним из индексов преобразования, и размер блока преобразования, который соответствует индексу преобразования, может быть изменен согласно типу блока предсказания или типу фрагмента блока кодирования.
Например, когда тип фрагмента установлен симметричным, то есть тип фрагмента 1322, 1324, 1326 или 1328, блок преобразования, 1342, имеющий размер 2Nx2N, устанавливается, если информация разделения блока преобразования равна 0, и блок преобразования, 1344, имеющий размер NxN, устанавливается, если информации разделения блока преобразования равна 1.
Когда тип фрагмента установлен асимметричным, то есть тип фрагмента 1332, 1334, 1336 или 1338, блок преобразования, 1352, имеющий размер 2Nx2N, устанавливается, если информация разделения блока преобразования равна 0, и блок преобразования, 1354, имеющий размер N/2xN/2, устанавливается, если информация разделения блока преобразования равна 1.
Со ссылками на Фиг. 21 флаг размера TU информации разделения блока преобразования является флагом, имеющим значение или 0, или 1, хотя подразумевается, что другой вариант осуществления не ограничен 1-битовым флагом, и блок преобразования может быть иерархически разделен, имея структуру дерева, в то время как информация разделения блока преобразования увеличивается от 0 в другом варианте осуществления. Информация разделения блока преобразования может использоваться как вариант осуществления индекса преобразования.
В этом случае, когда информация разделения блока преобразования используется вместе с максимальным размером блока преобразования и минимальным размером его, размер фактически используемого блока преобразования может быть представлен. Устройство 100 кодирования видео может кодировать информацию размера максимального блока преобразования, информацию размера минимального блока преобразования и информацию максимального разделения блока преобразования. Кодированная информация размера максимального блока преобразования, кодированная информация размера минимального блока преобразования и информация максимального разделения блока преобразования могут быть вставлены в SPS. Устройство 200 декодирования видео может выполнить декодирование видео посредством использования информации размера максимального блока преобразования, информации размера минимального блока преобразования и информации максимального разделения блока преобразования.
Например, когда текущий блок кодирования имеет размер 64x64, максимальный блок преобразования имеет размер 32x32 и информация разделения блока преобразования равна 0, блок преобразования может быть установлен, чтобы иметь размер 32x32. Когда текущий блок кодирования имеет размер 64x64, максимальный блок преобразования имеет размер 32x32, и информация разделения блока преобразования равна 1, блок преобразования может быть установлен, чтобы иметь размер 16x16. Когда текущий блок кодирования имеет размер 64x64, максимальный блок преобразования имеет размер 32x32 и информация разделения блока преобразования равна 2, блок преобразования может быть установлен, чтобы иметь размер 8x8.
Например, когда текущий блок кодирования имеет размер 32x32, минимальный блок преобразования имеет размер 32x32 и информация разделения блока преобразования равна 0, блок преобразования может быть установлен, чтобы иметь размер 32x32. Так как размер блока преобразования не может быть меньшим, чем 32x32, никакая информация разделения блока преобразования не может быть установлена.
Например, когда текущий блок кодирования имеет размер 64x64 и информация максимального разделения блока преобразования равна 1, информация разделения блока преобразования может быть равна 0 или 1 и другая информация разделения блока преобразования не может быть установлена.
Соответственно, когда информация максимального разделения блока преобразования определена как 'MaxTransformSizeIndex', размер минимального блока преобразования определен как 'MinTransformSize' и размер блока преобразования, когда информация разделения блока преобразования равна 0, определяется как 'RootTuSize', минимальный размер блока преобразования, возможный в текущем блоке кодирования, 'CurrMinTuSize', может быть определен из следующего Уравнения (1):
CurrMinTuSize
=max(MinTransformSize, RootTuSize/(2^MaxTransformSizeIndex)) (1)
По сравнению с минимальным размером блока преобразования, возможным в текущем блоке кодирования, 'CurrMinTuSize', размер блока преобразования, когда флаг размера TU равен 0, 'RootTuSize', может представлять максимальный размер блока преобразования, который может использоваться системой. Другими словами, согласно Уравнению (1), так как 'RootTuSize/(2^MaxTransformSizeIndex)' обозначает размер блока преобразования, полученного посредством разделения размера блока преобразования, когда информация разделения блока преобразования равна 0, 'RootTuSize', на количество раз, соответствующее информации максимального разделения блока преобразования, и 'MinTransformSize' обозначает минимальный размер блока преобразования, меньший размер из этих двух размеров может быть минимальным размером блока преобразования, возможным в текущем блоке кодирования, 'CurrMinTuSize'.
Текущий максимальный размер RootTuSize блока преобразования может изменяться в зависимости от типа режима предсказания.
Например, когда текущий режим предсказания является внешним режимом, RootTuSize может быть определен согласно Уравнению (2) ниже, где 'MaxTransformSize' указывает максимальный размер блока преобразования, и 'PUSize' указывает текущий размер блока предсказания:
RootTuSize=min(MaxTransformSize, PUSize) (2)
Другими словами, когда текущим режимом предсказания является внешний режим, размер блока преобразования, когда информация разделения блока преобразования равна 0, 'RootTuSize' может быть установлен меньшим размером из максимального размера блока преобразования и текущего размера блока предсказания.
Когда режимом предсказания текущего блока разделения является внутренний режим, 'RootTuSize' может быть определен согласно Уравнению (3) ниже, где 'PartitionSize' указывает размер текущего блока разделения:
RootTuSize=min(MaxTransformSize, PartitionSize) (3)
Другими словами, когда текущим режимом предсказания является внутренний режим, размер блока преобразования, когда информация разделения блока преобразования равна 0, 'RootTuSize' может быть установлена меньшим размером из максимального размера блока преобразования и текущего размера блока разделения.
Однако нужно отметить, что текущий максимальный размер блока преобразования, 'RootTuSize', который изменяется согласно режиму предсказания блока фрагмента, является только вариантом осуществления, и что коэффициент для определения размера текущего максимального блока преобразования 'RootTuSize', не ограничен этим вариантом осуществления.
Фиг. 26 является последовательностью операций, иллюстрирующей способ кодирования видео, использующий блок кодирования в древовидной структуре и блок преобразования в переменной древовидной структуре, согласно варианту осуществления настоящего изобретения.
Во время операции 1210 текущая картинка разделяется на по меньшей мере один максимальный блок кодирования. Максимальная глубина, указывающая общее количество возможных разделяющих разделений, может быть установлена заранее.
Во время операции 1220 по меньшей мере одна область разделения, полученная посредством разделения области максимального блока кодирования согласно глубинам, кодируется так, чтобы кодированная глубина для вывода окончательного результата кодирования была определена для каждой по меньшей мере одной области разделения и блок кодирования в древовидной структуре и блок преобразования в переменной древовидной структуре определяются.
Максимальный блок кодирования пространственно разделяется всякий раз, когда глубина углубляется, и таким образом разделяется в блоки кодирования более низкой глубины. Каждый блок кодирования может быть разделен в блоки кодирования другой более низкой глубины посредством пространственного разделения независимо от смежных блоков кодирования. Кодирование повторяющимся образом выполняется в отношении каждого блока кодирования согласно глубинам.
Кроме того, типы фрагментов и блоки преобразования, имеющие минимальную ошибку кодирования, определяются для каждого более глубокого блока кодирования. Чтобы определить кодированную глубину, имеющую минимальную ошибку кодирования в каждом максимальном блоке кодирования, ошибки кодирования могут быть измерены и сравнены во всех более глубоких блоках кодирования согласно глубинам.
Когда каждый блок кодирования определен, может быть определен блок преобразования для преобразования блока кодирования. Блок преобразования может быть определен как блок данных, который минимизирует ошибку, вызванную посредством преобразования блока кодирования. В результате выполнения преобразования на основании уровней согласно глубинам преобразования в текущем блоке кодирования, может быть определен блок преобразования в древовидной структуре, который является независимым от другого блока преобразования в смежной области и который формирует иерархическую структуру с блоками преобразования согласно глубинам в одной и той же области.
Кроме того, максимальный уровень разделения блока преобразования может быть ранее установлен для каждого максимального блока кодирования или каждого блока кодирования. Согласно максимальному уровню разделения текущего блока кодирования преобразование может быть выполнено посредством использования блоков преобразования в переменной древовидной структуре, включающей в себя базовый блок преобразования - минимальный блок преобразования, которые разрешены для текущего блока кодирования. Блоки преобразования с глубиной преобразования, которые выводят результат кодирования, имеющий минимальную ошибку, могут быть определены из блоков преобразования в переменной древовидной структуре относительно текущего блока кодирования, так чтобы блоки преобразования в древовидной структуре могли быть определены.
Во время операции 1230 данные изображения, являющиеся окончательным результатом кодирования по меньшей мере одной области разделения каждого максимального блока кодирования, выводятся с кодированной информацией о кодированной глубине и режиме кодирования. Кодированная информация о режиме кодирования может включать в себя информацию о кодированной глубине или информацию разделения, информацию о типе фрагмента блока предсказания и режиме предсказания и информацию иерархической структуры блока преобразования. Кодированная информация о режиме кодирования может быть передана к декодеру с кодированными данными изображения.
Фиг. 27 является последовательностью операций, иллюстрирующей способ декодирования видео, использующий блок кодирования в древовидной структуре и блок преобразования в переменной древовидной структуре, согласно варианту осуществления настоящего изобретения.
Во время операции 1310 поток битов закодированного видео принимается и синтаксически анализируется.
Во время операции 1320 кодированные данные изображения текущей картинки, назначенной на максимальный блок кодирования, получают из синтаксически проанализированного потока битов, и информация о кодированной глубине и режиме кодирования согласно максимальным блокам кодирования извлекается из синтаксически проанализированного потока битов. Кодированная глубина каждого максимального блока кодирования является глубиной, имеющей минимальную ошибку кодирования в каждом максимальном блоке кодирования. При кодировании каждого максимального блока кодирования данные изображения кодируются на основании по меньшей мере одного блока данных, полученного посредством иерархического разделения каждого максимального блока кодирования согласно глубинам.
Согласно информации о кодированной глубине и режиме кодирования, максимальный блок кодирования может быть разделен в блоки кодирования, имеющие структуру дерева. Каждый из блоков кодирования, имеющих структуру дерева, определяется как блок кодирования, соответствующий кодированной глубине, и оптимально кодируется так, чтобы вывести минимальную ошибку кодирования. Соответственно, эффективности кодирования и декодирования изображения могут быть улучшены посредством декодирования каждой части кодированных данных изображения в блоках кодирования, имеющих структуру дерева, после определения по меньшей мере одной кодированной глубины согласно блокам кодирования.
Кроме того, согласно извлеченной информации иерархической структуры блока преобразования, блок преобразования в древовидной структуре может быть определен в блоке кодирования. Например, общее количество уровней от базового блока преобразования до блока преобразования на самом нижнем уровне, которые разрешены для текущего блока кодирования, может быть считано на основании информации максимального разделения блока преобразования. Альтернативно, общее количество уровней от базового блока преобразования до блока преобразования на самом нижнем уровне может быть определено на основании максимального уровня разделения, который установлен заранее между системами кодирования и декодирования.
Базовый блок преобразования может быть по-разному определен согласно режиму кодирования на основании заданной схемы. Таким образом, блоки преобразования в переменной древовидной структуре относительно текущего блока кодирования могут быть определены на основании информации максимального разделения блока преобразования, и блок преобразования с глубиной преобразования, которая будет использоваться в обратном преобразовании относительно текущего блока кодирования, может быть определен из числа блоков преобразования в переменной древовидной структуре.
Во время операции 1330 кодированные данные изображения каждого максимального блока кодирования декодируются на основании информации о кодированной глубине и режиме кодирования согласно максимальным блокам кодирования. В этом отношении обратное преобразование может быть выполнено в отношении текущего блока кодирования посредством использования блока преобразования, который определен из числа блоков преобразования в переменной древовидной структуре, в то время как декодирование выполняется в отношении текущего блока кодирования, на основании информации о кодированной глубине и режиме кодирования. Поскольку декодирование выполняется в отношении каждого блока кодирования и каждого максимального блока кодирования, данные изображения пространственной области могут быть восстановлены, и затем картинка и видео, которое является последовательностью картинок, могут быть восстановлены. Восстановленное видео может быть воспроизведено устройством воспроизведения, может быть сохранено в носителе данных или может быть передано через сеть.
Варианты осуществления настоящего изобретения могут быть записаны как компьютерные программы и могут быть реализованы в компьютерах общего назначения, которые выполняют программы, используя считываемый компьютером носитель записи. Кроме того, структура данных, используемая в вариантах осуществления настоящего изобретения, может быть записана на считываемый компьютером носитель записи различными средствами. Примеры считываемого компьютером носителя записи включают в себя магнитные носители данных (например, ROM, дискеты, жесткие диски и т.д.), оптические носители записи (например, CD-ROM, или DVD) и т.д.
В то время как это изобретение было конкретно показано и описано в отношении примерных вариантов его осуществления, обычным специалистам в данной области техники понятно, что различные изменения в форме и деталях могут быть сделаны в нем, не отступая от объема и формы изобретения, которое определено приложенной формулой изобретения. Примерные варианты осуществления нужно рассматривать только в описательном смысле, а не в целях ограничения. Поэтому объем изобретения определяется не в соответствии с подробным описанием изобретения, а приложенной формулой изобретения и все различия в пределах объема будут рассматриваться как включаемые в настоящее изобретение.