СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ ВИДЕО И СПОСОБ И УСТРОЙСТВО ДЛЯ ДЕКОДИРОВАНИЯ ВИДЕО
METHOD AND APPARATUS FOR ENCODING VIDEO AND METHOD AND APPARATUS FOR DECODING VIDEO

ОБЛАСТЬ ТЕХНИКИ
[1] Примерные варианты осуществления относятся к кодированию и декодированию видео.
УРОВЕНЬ ТЕХНИКИ
[2] Поскольку аппаратное обеспечение для воспроизведения и сохранения видео контента с высоким разрешением или высоким качеством развивается и поставляется, потребность в видео кодеке для эффективного кодирования или декодирования видео контента с высоким разрешением или высоким качеством увеличивается. В обычном видео кодеке видео закодировано согласно ограниченному способу кодирования, основанному на макроблоке, имеющем заранее определенный размер.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Техническая проблема
[3] Примерные варианты осуществления обеспечивают кодирование и декодирование изображения, на основании иерархического блока кодирования, имеющего различный размер.
Решение проблемы
[4] Согласно аспекту примерного варианта осуществления предоставлен способ кодирования видео, причем способ содержит: разделение текущей картинки в по меньшей мере один максимальный блок кодирования; определение кодированной глубины, чтобы вывести окончательный результат кодирования согласно по меньшей мере одной области разделения, полученной посредством разделения области каждого по меньшей мере одного максимального блока кодирования согласно глубинам, посредством кодирования по меньшей мере одной области разделения на основании глубины, которая углубляется в пропорции к количеству раз, сколько область каждого максимального блока кодирования разделяется; и вывод данных изображения, составляющих окончательный результат кодирования согласно по меньшей мере одной области разделения, и информации кодирования о кодированной глубине и режиме предсказания, согласно каждому максимальному блоку кодирования.
Выгодные эффекты изобретения
[5] Когда данные изображения имеют высокое разрешение и большое количество данных, данные изображения могут быть эффективно декодированы и восстановлены посредством использования размера блока кодирования и режима кодирования, которые адаптивно определены согласно характеристикам данных изображения, посредством использования информации об оптимальном режиме кодирования, принятом от кодера.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[6] Вышеупомянутые и другие признаки примерного варианта осуществления станут более очевидными посредством подробного описания примерных вариантов его осуществления со ссылками на прилагаемые чертежи, на которых:
[7] ФИГ. 1 является блок-схемой устройства для кодирования видео согласно примерному варианту осуществления;
[8] ФИГ. 2 является блок-схемой устройства для декодирования видео согласно примерному варианту осуществления;
[9] ФИГ. 3 является диаграммой для описания понятия блоков кодирования согласно примерному варианту осуществления;
[10] ФИГ. 4 является блок-схемой кодера изображения на основании блоков кодирования согласно примерному варианту осуществления;
[11] ФИГ. 5 является блок-схемой декодера изображения на основании блоков кодирования согласно примерному варианту осуществления;
[12] ФИГ. 6 является диаграммой, иллюстрирующей более глубокие блоки кодирования согласно глубинам, и сегменты согласно примерному варианту осуществления;
[13] ФИГ. 7 является диаграммой для описания соотношения между блоком кодирования и блоками преобразования согласно примерному варианту осуществления;
[14] ФИГ. 8 является диаграммой для описания информации кодирования блоков кодирования, соответствующих кодированной глубине, согласно примерному варианту осуществления;
[15] ФИГ. 9 является диаграммой более глубоких блоков кодирования согласно глубинам, согласно примерному варианту осуществления;
[16] ФИГ. 10-12 являются диаграммами для описания соотношения между блоками кодирования, блоками предсказания и блоками преобразования согласно примерному варианту осуществления;
[17] ФИГ. 13 является диаграммой для описания соотношения между блоком кодирования, блоком или сегментом предсказания и блоком преобразования согласно информации кодирования режима из Таблицы 1;
[18] ФИГ. 14 является последовательностью операций, иллюстрирующей способ кодирования видео согласно примерному варианту осуществления; и
[19] ФИГ. 15 является последовательностью операций, иллюстрирующей способ декодирования видео согласно примерному варианту осуществления.
ЛУЧШИЙ РЕЖИМ ДЛЯ ВЫПОЛНЕНИЯ ИЗОБРЕТЕНИЯ
[20] Согласно аспекту примерного варианта осуществления предоставлен способ кодирования видео, причем способ содержит этапы: разделение текущей картинки на по меньшей мере один максимальный блок кодирования; определение кодированной глубины, чтобы вывести окончательный результат кодирования согласно по меньшей мере одной области разделения, полученной посредством разделения области каждого по меньшей мере одного максимального блока кодирования согласно глубинам, посредством кодирования по меньшей мере одной область разделения, на основании глубины, которая углубляется в пропорции к количеству раз, когда область каждого максимального блока кодирования была разделена; и вывод данных изображения, составляющих окончательный результат кодирования согласно по меньшей мере одной области разделения, и кодирование информации о кодированной глубине и режиме предсказания, согласно каждому максимальному блоку кодирования.
[21] Блок кодирования может быть охарактеризован максимальным размером и глубиной.
[22] Глубина обозначает количество раз, сколько блок кодирования был иерархически разделен, и когда глубина углубляется, более глубокие блоки кодирования согласно глубинам могут быть разделены из максимального блока кодирования, чтобы получить минимальные блоки кодирования. Глубина углубляется от верхней глубины к более низкой глубине. Когда глубина углубляется, количество раз, сколько максимальный блок кодирования разделяется, увеличивается, и общее количество возможных раз, сколько максимальный блок кодирования разделяется, соответствует максимальной глубине. Максимальный размер и максимальная глубина блока кодирования могут быть заранее определены.
[23] Способ может также включать в себя заранее определение максимальной глубины, указывающей общее количество раз, сколько высота и ширина по меньшей мере одного максимального блока кодирования иерархически разделяются, и максимальный размер по меньшей мере одного максимального блока кодирования.
[24] Данные изображения могут быть закодированы на основании более глубоких блоков кодирования согласно по меньшей мере одной глубине для каждого из по меньшей мере одного максимального блока кодирования, и когда глубина углубляется, блоки кодирования могут быть иерархически разделены из каждого максимального блока кодирования.
[25] Определение кодированной глубины может включать в себя выполнение кодирования с предсказанием согласно блокам кодирования, соответствующим текущей глубине и сегментам, полученным посредством разделения по меньшей мере одного из высоты и ширины блоков кодирования, соответствующих текущей глубине, согласно более глубоким блокам кодирования согласно глубинам для каждого максимального блока кодирования.
[26] Определение кодированной глубины может включать в себя выполнение преобразования над блоком данных, имеющим меньшую высоту или ширину, чем блоки кодирования, соответствующие текущей глубине, согласно более глубоким блокам кодирования согласно глубинам для максимального блока кодирования.
[27] Определение кодированной глубины может также включать в себя определение кодированной глубины, имеющей минимальную ошибку кодирования, посредством сравнения результатов кодирования согласно глубинам для каждого максимального блока кодирования, и определение по меньшей мере одного из типа сегмента и режима предсказания блока данных, который выполнил кодирование с предсказанием в каждом блоке кодирования, соответствующем кодированной глубине, и размера блока данных, который выполнил преобразование в блоках кодирования, соответствующих кодированной глубине.
[28] Режим предсказания может быть независимо определен согласно блокам кодирования, соответствующим кодированной глубине, и включать в себя по меньшей мере один из внутреннего (intra-) режима, внешнего (inter-) режима и режима пропуска.
[29] Информация о режиме кодирования может включать в себя по меньшей мере одно из кодированной глубины для каждого максимального блока кодирования, информации о типе сегмента блока данных, который выполнил кодирование с предсказанием согласно блокам кодирования, соответствующим кодированной глубине, информации о режиме предсказания согласно сегментам блоков кодирования, соответствующих кодированной глубине, и информации о размере блока данных, который выполнил преобразование согласно блокам кодирования, соответствующим кодированной глубине.
[30] Способ может также включать в себя кодирование информации разделения, указывающей, выполнено ли кодирование над блоками кодирования более низкой глубины вместо текущей глубины, согласно глубинам в каждом максимальном блоке кодирования. Способ может также включать в себя, если кодирование выполнено над блоками кодирования более низкой глубины на основании информации разделения текущей глубины, повторяющимся образом выполнение кодирования над каждым частичным блоком кодирования, полученным посредством разделения блока кодирования, соответствующего текущей глубине.
[31] Глубина максимального блока кодирования может быть наиболее верхней глубиной, и более глубокие блоки кодирования согласно глубинам, составляющие область разделения согласно глубинам, могут быть блоками кодирования, полученными посредством деления высоты и ширины блока кодирования более верхней глубины на два. Сегменты, соответствующие текущей глубине, могут быть блоками данных, полученными посредством деления по меньшей мере одного из высоты и ширины блока данных, соответствующего текущей глубине, на два.
[32] Ошибка кодирования может быть измерена посредством использования способа оптимизации частота-искажение, на основании множителей Лагранжа.
[33] Кодирование с предсказанием во внутреннем режиме и кодирование с предсказанием во внешнем режиме могут быть выполнены согласно блокам данных, полученным посредством деления блоков кодирования, соответствующих текущей глубине, или по меньшей мере одного из высоты и ширины блоков кодирования, соответствующих текущей глубине, на два.
[34] Согласно другому аспекту примерного варианта осуществления представлен способ декодирования видео, причем способ содержит этапы: прием и анализ потока битов кодированного видео; извлечение данных изображения текущей картинки, назначенной по меньшей мере одному максимальному блоку кодирования, и информации о кодированной глубине и режиме кодирования согласно по меньшей мере одному максимальному блоку кодирования, из потока битов; и декодирование данных изображения в каждом из по меньшей мере одного максимального блока кодирования на основании информации о кодированной глубине и режиме кодирования для каждого максимального блока кодирования, при этом глубина углубляется в пропорции к количеству раз, сколько область каждого максимального блока кодирования разделяется, и глубина, для которой окончательный результат кодирования выводится согласно по меньшей мере одной области разделения, которая получена посредством разделения области каждого максимального блока кодирования согласно глубинам, посредством кодирования по меньшей мере одной области разделения каждого максимального блока кодирования во время кодирования текущей картинки, определяется как по меньшей мере одна кодированная глубина для каждого максимального блока кодирования.
[35] Способ может также включать в себя извлечение информации о максимальной глубине, указывающей общее количество раз, сколько высота и ширина каждого максимального блока кодирования иерархически разделены, и информации о максимальном размере каждого максимального блока кодирования из потока битов.
[36] Декодирование может включать в себя выполнение кодирования с предсказанием над блоками кодирования, соответствующими кодированной глубине для каждого максимального блока кодирования, на основании информации о кодированной глубине и информации о типе сегмента и режиме предсказания блока данных, чтобы выполнить декодирование с предсказанием, из извлеченной информации о режиме кодирования для каждого максимального блока кодирования.
[37] Декодирование может включать в себя выполнение обратного преобразования над каждым блоком кодирования, соответствующим кодированной глубине для каждого максимального блока кодирования, на основании информации о кодированной глубине и размере блока данных, чтобы выполнить обратное преобразование для каждого максимального блока кодирования.
[38] Способ может также включать в себя извлечение информации разделения, указывающей, выполнено ли декодирование над блоками кодирования, соответствующими более низкой глубине вместо текущей глубины согласно глубинам для каждого максимального блока кодирования, из потока битов.
[39] Согласно другому аспекту примерного варианта осуществления, обеспечено устройство для кодирования видео, при этом устройство содержит модуль разделения максимального блока кодирования для того, чтобы разделить текущую картинку на по меньшей мере один максимальный блок кодирования; модуль определения блока кодирования для определения кодированный глубины для вывода окончательного результата кодирования согласно по меньшей мере одной области разделения, полученной посредством разделения области каждого из по меньшей мере одного максимального блока кодирования согласно глубинам, посредством кодирования по меньшей мере одной области разделения, на основании глубины, которая углубляется в пропорции к количеству раз, сколько область каждого максимального блока кодирования была разделена; и модуль вывода для вывода данных изображения, составляющих окончательный результат кодирования согласно по меньшей мере одной области разделения, и информации кодирования о кодированной глубине и режиме предсказания, согласно каждому максимальному блоку кодирования.
[40] Согласно другому аспекту примерного варианта осуществления, обеспечено устройство для декодирования видео, причем устройство содержит приемник для приема и анализа потока битов кодированного видео; модуль извлечения данных изображения и информации кодирования для извлечения данных изображения текущей картинки, назначенной на по меньшей мере один максимальный блок кодирования, и информации о кодированной глубине и режиме кодирования согласно по меньшей мере одному максимальному блоку кодирования, из потока битов; и декодер для декодирования данных изображения в каждом максимальном блоке кодирования на основании информации о кодированной глубине и режиме кодирования для каждого из по меньшей мере одного максимального блока кодирования, в котором глубина углубляется в пропорции к количеству раз, сколько область каждого максимального блока кодирования была разделена, и глубина, для которой окончательный результат кодирования выводят согласно по меньшей мере одной области разделения, которая получена посредством разделения области каждого максимального блока кодирования согласно глубинам посредством кодирования по меньшей мере одной области разделения каждого максимального блока кодирования во время кодирования текущей картинки, определяется как по меньшей мере одна кодированная глубина для каждого максимального блока кодирования.
[41] Согласно другому аспекту примерного варианта осуществления обеспечен считываемый компьютером носитель записи, имеющий записанную на нем программу для выполнения способа кодирования видео.
[42] Согласно другому аспекту примерного варианта осуществления обеспечен считываемый компьютером носитель записи, имеющий записанную на нем программу для выполнения способа декодирования видео.
РЕЖИМ ДЛЯ РЕАЛИЗАЦИИ ИЗОБРЕТЕНИЯ
[43] Ниже примерные варианты осуществления описаны более полно со ссылками на сопроводительные чертежи, на которых показаны примерные варианты осуществления. В примерных вариантах осуществления "блок" может или не может относиться к единице размера, в зависимости от его контекста.
[44] В дальнейшем «блок кодирования» является блоком данных кодирования, в котором данные изображения закодированы на стороне кодера, и блоком данных кодирования, в котором кодированные данные изображения декодируются на стороне декодера, согласно примерным вариантам осуществления. Кроме того, «кодированная глубина» означает глубину, где блок кодирования закодирован.
[45] В дальнейшем «изображение» может обозначать неподвижное изображение для видео или движущееся изображение, то есть непосредственно видео.
[46] ФИГ. 1 является блок-схемой устройства 100 кодирования видео согласно примерному варианту осуществления.
[47] Устройство 100 кодирования видео включает в себя модуль 110 разделения максимального блока кодирования, модуль 120 определения блока кодирования и модуль 130 вывода.
[48] Модуль 110 разделения максимального блока кодирования может разделять текущую картинку на основании максимального блока кодирования для текущей картинки изображения. Если текущая картинка больше, чем максимальный блок кодирования, данные изображения текущей картинки могут быть разделены в по меньшей мере один максимальный блок кодирования. Максимальный блок кодирования согласно примерному варианту осуществления может быть блоком данных, имеющим размер 32×32, 64×64, 128×128, 256×256, и т.д., в котором формой блока данных является квадрат, имеющий ширину и высоту в степени 2. Данные изображения могут быть выведены на модуль 120 определения блока кодирования согласно по меньшей мере одному максимальному блоку кодирования.
[49] Блок кодирования согласно примерному варианту осуществления может быть охарактеризован максимальным размером и глубиной. Глубина обозначает количество раз, сколько блок кодирования пространственно разделен из максимального блока кодирования, и когда глубина углубляется или увеличивается, более глубокие блоки кодирования согласно глубинам могут быть разделены от максимального блока кодирования до минимального блока кодирования. Глубина максимального блока кодирования является самой верхней глубиной, и глубина минимального блока кодирования является самой нижней глубиной. Так как размер блока кодирования, соответствующего каждой глубине, уменьшается, когда углубляется глубина максимального блока кодирования, блок кодирования, соответствующий более верхней глубине, может включать в себя множество блоков кодирования, соответствующих более низким глубинам.
[50] Как описано выше, данные изображения текущей картинки разделяются в максимальные блоки кодирования согласно максимальному размеру блока кодирования, и каждый из максимальных блоков кодирования может включать в себя более глубокие блоки кодирования, которые разделены согласно глубинам. Так как максимальный блок кодирования согласно примерному варианту осуществления разделяется согласно глубинам, данные изображения пространственной области, включенной в максимальный блок кодирования, могут быть иерархически классифицированы согласно глубинам.
[51] Максимальная глубина и максимальный размер блока кодирования, которые ограничивают общее количество раз, сколько высота и ширина максимального блока кодирования иерархически разделяются, могут быть заранее определены.
[52] Модуль 120 определения блока кодирования кодирует по меньшей мере одну область разделения, полученную посредством разделения области максимального блока кодирования согласно глубинам, и определяет глубину, чтобы вывести окончательно кодированные данные изображения согласно по меньшей мере одной области разделения. Другими словами, модуль 120 определения блока кодирования определяет кодированную глубину посредством кодирования данных изображения в более глубокие блоки кодирования согласно глубинам, согласно максимальному блоку кодирования текущей картинки, и выбора глубины, имеющей наименьшую ошибку кодирования. Таким образом, кодированные данные изображения блока кодирования, соответствующего определенной кодированной глубине, окончательно выводятся. Кроме того, блоки кодирования, соответствующие кодированной глубине, могут быть расценены как кодированные блоки кодирования.
[53] Определенная кодированная глубина и кодированные данные изображения согласно определенной кодированной глубине выводятся к модулю 130 вывода.
[54] Данные изображения в максимальном блоке кодирования закодированы на основании более глубоких блоков кодирования, соответствующих по меньшей мере одной глубине, равной или ниже максимальной глубины, и результаты кодирования данных изображения сравниваются на основании каждого из более глубоких блоков кодирования. Глубина, имеющая наименьшую ошибку кодирования, может быть выбрана после сравнения ошибок кодирования более глубоких блоков кодирования. По меньшей мере одна кодированная глубина может быть выбрана для каждого максимального блока кодирования.
[55] Размер максимального блока кодирования делится, когда блок кодирования иерархически разделяется согласно глубинам, и когда количество блоков кодирования увеличивается. Кроме того, даже если блоки кодирования соответствуют одной и той же глубине в одном максимальном блоке кодирования, определяют, разделять ли каждый из блоков кодирования, соответствующих одной и той же глубине, до более низкой глубины, посредством измерения ошибки кодирования данных изображения каждого блока кодирования отдельно. Соответственно, даже когда данные изображения включены в один максимальный блок кодирования, эти данные изображения разделяются на области согласно глубинам, и ошибки кодирования могут отличаться согласно областям в одном максимальном блоке кодирования, и таким образом кодированные глубины могут отличаться согласно областям в данных изображения. Таким образом, одна или более кодированных глубин могут быть определены в одном максимальном блоке кодирования, и данные изображения максимального блока кодирования могут быть разделены согласно блокам кодирования по меньшей мере одной кодированной глубины.
[56] Соответственно, модуль 120 определения блока кодирования может определить блоки кодирования, имеющие структуру дерева, включенные в максимальный блок кодирования. «Блоки кодирования, имеющие структуру дерева» согласно примерному варианту осуществления, включают в себя блоки кодирования, соответствующие глубине, определенной, чтобы быть кодированной глубиной, из числа всех более глубоких блоков кодирования, включенных в максимальный блок кодирования. Блок кодирования кодированной глубины может быть иерархически определен согласно глубинам в одной и той же области максимального блока кодирования, и может быть независимо определен в различных областях. Аналогично, кодированная глубина в текущей области может быть независимо определена из кодированной глубины в другой области.
[57] Максимальная глубина согласно примерному варианту осуществления является индексом, относящимся к количеству раз разделения от максимального блока кодирования до минимального блока кодирования. Первая максимальная глубина согласно примерному варианту осуществления может обозначать общее количество раз разделения от максимального блока кодирования до минимального блока кодирования. Вторая максимальная глубина согласно примерному варианту осуществления может обозначать общее количество уровней глубины от максимального блока кодирования до минимального блока кодирования. Например, когда глубина максимального блока кодирования равна 0, глубина блока кодирования, в котором максимальный блок кодирования разделен однажды, может быть установлена в 1, и глубина блока кодирования, в котором максимальный блок кодирования разделен дважды, может быть установлена в 2. Здесь, если минимальным блоком кодирования является блок кодирования, в котором максимальный блок кодирования разделен четыре раза, существуют 5 уровней глубины из глубин 0, 1, 2, 3 и 4, и таким образом первая максимальная глубина может быть установлена в 4, и вторая максимальная глубина может быть установлена в 5.
[58] Кодирование с предсказанием и преобразование могут быть выполнены согласно максимальному блоку кодирования. Кодирование с предсказанием и преобразование также выполняют на основании более глубоких блоков кодирования согласно глубине, равной, или глубинам, меньшим, чем максимальная глубина, согласно максимальному блоку кодирования. Преобразование может быть выполнено согласно способу ортогонального преобразования или целочисленному преобразованию.
[59] Так как количество более глубоких блоков кодирования увеличивается всякий раз, когда максимальный блок кодирования разделяют согласно глубинам, кодирование, включающее в себя кодирование с предсказанием, и преобразование выполняют над всеми более глубокими блоками кодирования, генерируемыми, когда глубина углубляется. Для удобства описания кодирование с предсказанием и преобразование описаны ниже на основании блока кодирования текущей глубины в максимальном блоке кодирования.
[60] Устройство 100 кодирования видео может переменным образом выбирать размер или форму блока данных для кодирования данных изображения. Чтобы закодировать данные изображения, операции, такие как кодирование с предсказанием, преобразование и статистическое кодирование, выполняются, и в этот момент один и тот же блок данных может использоваться для всех операций, или различные блоки данных могут использоваться для каждой операции.
[61] Например, устройство 100 кодирования видео может выбрать не только блок кодирования для кодирования данных изображения, но также и блок данных, отличающийся от блока кодирования, чтобы выполнить кодирование с предсказанием над данными изображения в блоке кодирования.
[62] Чтобы выполнить кодирование с предсказанием в максимальном блоке кодирования, кодирование с предсказанием может быть выполнено на основании блока кодирования, соответствующего кодированной глубине, то есть, на основании блока кодирования, который больше не разделен на блоки кодирования, соответствующие более низкой глубине. В дальнейшем блок кодирования, который больше не разделяется и становится базовым блоком для кодирования с предсказанием, будет называться как «блок предсказания». Сегмент, полученный посредством разделения блока предсказания, может включать в себя блок предсказания или блок данных, полученный посредством разделения по меньшей мере одной из высоты и ширины блока предсказания.
[63] Например, когда блок кодирования 2N×2N (где N-положительное целое число) больше не разделяется, и становится блоком предсказания 2N×2N, и размер сегмента может быть 2N×2N, 2N×N, N×2N или N×N. Примеры типа сегмента включают в себя симметричные сегменты, которые получают посредством симметричного разделения высоты или ширины блока предсказания, сегменты, полученные посредством асимметричного разделения высоты или ширины блока предсказания, такого как 1:n или n:1, сегменты, которые получены посредством геометрического разделения блока предсказания, и сегменты, имеющее произвольные формы.
[64] Режим предсказания блока предсказания может быть по меньшей мере одним из внутреннего режима, внешнего режима и режима пропуска. Например, внутренний режим или внешний режим могут быть выполнены над сегментами 2N×2N, 2N×N, N×2N или N×N. Кроме того, режим пропуска может быть выполнен только над сегментом 2N×2N. Кодирование независимо выполняют над одним блоком предсказания в блоке кодирования, таким образом выбирая режим предсказания, имеющий наименьшую ошибку кодирования.
[65] Устройство 100 кодирования видео может также выполнить преобразование над данными изображения в блоке кодирования на основании не только блока кодирования для кодирования данных изображения, но также и на основании блока данных, который отличается от блока кодирования.
[66] Чтобы выполнить преобразование в блоке кодирования, преобразование может быть выполнено на основании блока данных, имеющего размер, меньший чем или равный блоку кодирования. Например, блок данных для преобразования может включать в себя блок данных для внутреннего режима и блок данных для внешнего режима.
[67] Блок данных, используемый как основа преобразования, будет называться как «блок преобразования». Глубина преобразования, указывающая количество раз разделения, чтобы достигнуть блока преобразования посредством разделения высоты и ширины блока кодирования, может также быть установлена в блоке преобразования. Например, в текущем блоке кодирования 2N×2N глубина преобразования может быть равна 0, когда размер блока преобразования также равен 2N×2N, может быть равна 1, когда каждая из высоты и ширины текущего блока кодирования делится на две равные части, полностью разделены в 4^1 блоков преобразования, и размер блока преобразования равен таким образом N×N, и может быть равна 2, когда каждая из высоты и ширины текущего блока кодирования делится на четыре равные части, полностью разделены на 4^2 блоков преобразования, и размер блока преобразования таким образом равен N/2×N/2. Например, блок преобразования может быть установлен согласно иерархической структуре дерева, в которой блок преобразования более верхней глубины преобразования разделен на четыре блока преобразования более низкой глубины преобразования согласно иерархическим характеристикам глубины преобразования.
[68] Аналогично блоку кодирования, блок преобразования в блоке кодирования может быть рекурсивно разделен на меньшие размерные области, так чтобы блок преобразования мог быть определен независимо в единицах областей. Таким образом, остаточные данные в блоке кодирования могут быть разделены согласно преобразованию, имеющему структуру дерева согласно глубинам преобразования.
[69] Информация кодирования согласно блокам кодирования, соответствующим кодированной глубине, требует не только информации о кодированной глубине, но также и об информации, относящейся к кодированию с предсказанием и преобразованию. Соответственно, модуль 120 определения блока кодирования не только определяет кодированную глубину, имеющую наименьшую ошибку кодирования, но также и определяет тип сегмента в блоке предсказания, режим предсказания согласно блокам предсказания и размер блока преобразования для преобразования.
[70] Блоки кодирования согласно структуре дерева в максимальном блоке кодирования и способ определения сегмента, согласно примерным вариантам осуществления, будет описано подробно ниже со ссылками на фиг. 3-12.
[71] Модуль 120 определения блока кодирования может измерять ошибку кодирования более глубоких блоков кодирования согласно глубинам посредством использования оптимизации частота-искажение, на основании множителей Лагранжа.
[72] Модуль 130 вывода выводит данные изображения максимального блока кодирования, который закодирован на основании по меньшей мере одной кодированной глубины, определенной модулем 120 определения блока кодирования, и информации о режиме кодирования согласно кодированной глубине, в потоках битов.
[73] Кодированные данные изображения могут быть получены посредством кодирования остаточных данных изображения.
[74] Информация о режиме кодирования согласно кодированной глубине может включать в себя информацию о кодированной глубине, о типе сегмента в блоке предсказания, режиме предсказания и размере блока преобразования.
[75] Информация о кодированной глубине может быть определена посредством использования информации разделения согласно глубинам, которая указывает, выполняется ли кодирование над блоками кодирования более низкой глубины вместо текущей глубины. Если текущая глубина текущего блока кодирования является кодированной глубиной, данные изображения в текущем блоке кодирования кодируют и выводят, и таким образом информация разделения может быть определена, чтобы не разделять текущий блок кодирования до более низкой глубины. Альтернативно, если текущая глубина текущего блока кодирования не является кодированной глубиной, кодирование выполняют над блоком кодирования более низкой глубины, и таким образом информация разделения может быть определена, чтобы разделять текущий блок кодирования, чтобы получить блоки кодирования более низкой глубины.
[76] Если текущая глубина не является кодированной глубиной, кодирование выполняют над блоком кодирования, который разделен в блок кодирования более низкой глубины. Так как по меньшей мере один блок кодирования более низкой глубины существует в одном блоке кодирования текущей глубины, кодирование повторяющимся образом выполняется над каждым блоком кодирования более низкой глубины, и таким образом кодирование может быть рекурсивно выполнено для блоков кодирования, имеющих одну и ту же глубину.
[77] Так как блоки кодирования, имеющие структуру дерева, определены для одного максимального блока кодирования, и информация о по меньшей мере одном режиме кодирования определена для блока кодирования кодированной глубины, информация о по меньшей мере одном режиме кодирования может быть определена для одного максимального блока кодирования. Кроме того, кодированная глубина данных изображения максимального блока кодирования может быть различной согласно местоположениям, так как данные изображения иерархически разделены согласно глубинам, и таким образом информация о кодированной глубине и режиме кодирования может быть установлена для данных изображения.
[78] Соответственно, модуль 130 вывода может назначить информацию кодирования о соответствующей кодированной глубине и режиме кодирования по меньшей мере одному из блока кодирования, блока предсказания и минимального блока, включенного в максимальный блок кодирования.
[79] Минимальный блок согласно примерному варианту осуществления является прямоугольным блоком данных, полученным посредством разделения минимального блока кодирования, составляющего самую нижнюю глубину, на 4. Альтернативно, минимальный блок может быть максимальным прямоугольным блоком данных, который может быть включен во все блоки кодирования, блоки предсказания, блоки сегментов и блоки преобразования, включенные в максимальный блок кодирования.
[80] Например, информация о кодировании, выведенная через модуль 130 вывода, может быть классифицирована в информацию кодирования согласно блокам кодирования и информацию кодирования согласно блокам предсказания. Информация кодирования согласно блокам кодирования может включать в себя информацию о режиме предсказания и о размере сегментов. Информация кодирования согласно блокам предсказания может включать в себя информацию об оцененном направлении внешнего режима, об индексе опорного изображения внешнего режима, о векторе движения, о компоненте насыщенности цвета внутреннего режима, и о способе интерполяции внутреннего режима. Кроме того, информация о максимальном размере блока кодирования, определенном согласно картинкам, вырезкам или GOP, и информация о максимальной глубине могут быть вставлены в SPS (набор параметров последовательности) или заголовок потока битов.
[81] В устройстве 100 кодирования видео более глубокий блок кодирования может быть блоком кодирования, полученным посредством деления высоты или ширины блока кодирования более верхней глубины, которая является на один уровень выше, на два. Другими словами, когда размер блока кодирования текущей глубины равен 2N×2N, размер блока кодирования более низкой глубины равен N×N. Кроме того, блок кодирования текущей глубины, имеющий размер 2N×2N, может включать в себя максимум 4 блоков кодирования более низкой глубины.
[82] Соответственно, устройство 100 кодирования видео может сформировать блоки кодирования, имеющие структуру дерева, посредством определения блоков кодирования, имеющих оптимальную форму и оптимальный размер для каждого максимального блока кодирования, на основании размера максимального блока кодирования и максимальной глубины, определенной, рассматривая характеристики текущей картинки. Кроме того, так как кодирование может быть выполнено над каждым максимальным блоком кодирования посредством использования любого из различных режимов предсказания и преобразований, оптимальный режим кодирования может быть определен, рассматривая характеристики блока кодирования различных размеров изображения.
[83] Таким образом, если изображение, имеющее высокое разрешение или большое количество данных, закодировано в обычный макроблок, количество макроблоков для каждой картинки чрезмерно увеличивается. Соответственно, количество частей сжатой информации, сгенерированной для каждого макроблока увеличивается, и таким образом трудно передать сжатую информацию и эффективность сжатия данных уменьшается. Однако, посредством использования устройства 100 кодирования видео, эффективность сжатия изображения может быть увеличена, так как блок кодирования регулируется, в то же время рассматривая характеристики изображения, в то же время увеличивая максимальный размер блока кодирования, в то же время рассматривая размер изображения.
[84] ФИГ. 2 является блок-схемой устройства 200 декодирования видео согласно примерному варианту осуществления.
[85] Устройство 200 декодирования видео включает в себя приемник 210, модуль 220 извлечения данных изображения и информации кодирования, и декодер 230 данных изображения. Определения различных терминов, таких как блок кодирования, глубина, блок предсказания, блок преобразования и информация о различных режимах кодирования для различных операций устройства 200 декодирования видео, идентичны описанным со ссылками на фиг. 1 и устройство 100 кодирования видео.
[86] Приемник 210 принимает и анализирует поток битов кодированного видео. Модуль 220 извлечения данных изображения и информации кодирования извлекает закодированные данные изображения для каждого блока кодирования из проанализированного потока битов, в котором блоки кодирования имеют структуру дерева согласно каждому максимальному блоку кодирования, и выводит извлеченные данные изображения к декодеру 230 данных изображения. Модуль 220 извлечения данных изображения и информации кодирования может извлечь информацию о максимальном размере блока кодирования текущей картинки из заголовка о текущей картине или SPS.
[87] Кроме того, модуль 220 извлечения данных изображения и информации кодирования извлекает информацию о кодированной глубине и режиме кодирования для блоков кодирования, имеющих структуру дерева, согласно каждому максимальному блоку кодирования, из проанализированного потока битов. Извлеченная информация о кодированной глубине и режиме кодирования выводится к декодеру 230 данных изображения. Другими словами, данные изображения в битовом потоке разделяют в максимальный блок кодирования так, чтобы декодер 230 данных изображения декодировал данные изображения для каждого максимального блока кодирования.
[88] Информация о кодированной глубине и режиме кодирования согласно максимальному блоку кодирования может быть установлена для информации о по меньшей мере одном блоке кодирования, соответствующем кодированной глубине, и информация о режиме кодирования может включать в себя информацию о типе сегмента соответствующего блока кодирования, соответствующего кодированной глубине, о режиме предсказания и размере блока преобразования. Кроме того, информация о разделении согласно глубинам может быть извлечена как информация о кодированной глубине.
[89] Информация о кодированной глубине и режиме кодирования согласно каждому максимальному блоку кодирования, извлеченному модулем 220 извлечения данных изображения и информации кодирования, является информацией о кодированной глубине и режиме кодирования, определенной, чтобы генерировать минимальную ошибку кодирования, когда кодер, такой как устройство 100 кодирования видео, повторяющимся образом выполняет кодирование для каждого более глубокого блока кодирования согласно глубинам согласно каждому максимальному блоку кодирования. Соответственно, устройство 200 декодирования видео может восстановить изображение посредством декодирования данных изображения согласно кодированной глубине и режиму кодирования, который генерирует минимальную ошибку кодирования.
[90] Так как информация кодирования о кодированной глубине и режиме кодирования может быть назначена на заранее определенный блок данных из соответствующего блока кодирования, блока предсказания, и минимального блока, модуль 220 извлечения данных изображения и информации кодирования может извлечь информацию о кодированной глубине и режиме кодирования согласно заранее определенным блокам данных. Заранее определенные блоки данных, которым назначена одна и та же информация о кодированной глубине и режиме кодирования, могут быть логически выведены, чтобы быть блоками данных, включенными в один и тот же максимальный блок кодирования.
[91] Декодер 230 данных изображения восстанавливает текущую картинку посредством декодирования данных изображения в каждом максимальном блоке кодирования на основании информации о кодированной глубине и режиме кодирования согласно максимальным блокам кодирования. Другими словами, декодер 230 данных изображения может декодировать кодированные данные изображения на основании извлеченной информации о типе сегмента, режиме предсказания и блоке преобразования для каждого блока кодирования из числа блоков кодирования, имеющих структуру дерева, в каждом максимальном блоке кодирования. Процесс декодирования может включать в себя предсказание, включающее в себя внутреннее предсказание и компенсацию движения, и обратное преобразование. Обратное преобразование может быть выполнено согласно способу обратного ортогонального преобразования или обратного целочисленного преобразования.
[92] Декодер 230 данных изображения может выполнить внутреннее предсказание или компенсацию движения согласно сегменту и режиму предсказания каждого блока кодирования на основании информации о типе сегмента и режиме предсказания блока предсказания блока кодирования согласно кодированным глубинам.
[93] Кроме того, декодер 230 данных изображения может выполнить обратное преобразование согласно каждому блоку преобразования в блоке кодирования на основании информации о размере блока преобразования блока кодирования согласно кодированным глубинам так, чтобы выполнить обратное преобразование согласно максимальным блокам кодирования.
[94] Декодер 230 данных изображения может определить по меньшей мере одну кодированную глубину текущего максимального блока кодирования посредством использования информации разделения согласно глубинам. Если информация разделения указывает, что данные изображения больше не разделены в текущей глубине, текущая глубина является кодированной глубиной. Соответственно, декодер 230 данных изображения может декодировать кодированные данные по меньшей мере одного блока кодирования, соответствующего каждой кодированной глубине в текущем максимальном блоке кодирования, посредством использования информации о типе сегмента блока предсказания, режиме предсказания и размере блока преобразования для каждого блока кодирования, соответствующего кодированной глубине, и вывести данные изображения текущего максимального блока кодирования.
[95] Другими словами, блоки данных, содержащие информацию кодирования, включающую одну и ту же информацию разделения, могут быть собраны посредством наблюдения набора информации кодирования, назначенного для заранее определенного блока данных из числа блока кодирования, блока предсказания и минимального блока, и эти собранные блоки данных могут рассматриваться как являющиеся одним блоком данных, который должен быть декодирован декодером 230 данных изображения в одном и том же режиме кодирования.
[96] Устройство 200 декодирования видео может получить информацию о по меньшей мере одном блоке кодирования, который генерирует минимальную ошибку кодирования, когда кодирование рекурсивно выполняется для каждого максимального блока кодирования, и может использовать эту информацию, чтобы декодировать текущую картинку. Другими словами, блоки кодирования, имеющие структуру дерева, определенные как оптимальные блоки кодирования в каждом максимальном блоке кодирования, могут быть декодированы. Кроме того, максимальный размер блока кодирования определяется, рассматривая разрешение и количество данных изображения.
[97] Соответственно, даже если данные изображения имеют высокое разрешение и большое количество данных, данные изображения могут быть эффективно декодированы и восстановлены посредством использования размера блока кодирования и режима кодирования, которые адаптивно определены согласно характеристикам данных изображения, посредством использования информации об оптимальном режиме кодирования, принятом от кодера.
[98] Способ определения блоков кодирования, имеющих структуру дерева, блока предсказания и блока преобразования, согласно примерному варианту осуществления, описан ниже со ссылками на Фиг. 3-13.
[99] Фиг. 3 является диаграммой для объяснения понятия блоков кодирования согласно примерному варианту осуществления.
[100] Размер блока кодирования может быть выражен как ширина × высота, и может быть 64×64, 32×32, 16×16 и 8×8. Блок кодирования 64×64 может быть разделен на сегменты 64×64, 64×32, 32×64 или 32×32, и блок кодирования 32×32 может быть разделен на сегменты 32×32, 32×16, 16×32 или 16×16, блок кодирования 16×16 может быть разделен на сегменты 16×16, 16×8, 8×16 или 8×8, и блок кодирования 8×8 может быть разделен на сегменты 8×8, 8×4, 4×8 или 4×4.
[101] В видео данных 310 разрешение равно 1920×1080, максимальный размер блока кодирования равен 64 и максимальная глубина равна 2. В видео данных 320 разрешение равно 1920×1080, максимальный размер блока кодирования равен 64 и максимальная глубина равна 3. В видео данных 330 разрешение равно 352×288, максимальный размер блока кодирования равен 16 и максимальная глубина равна 1. Максимальная глубина, показанная в Фиг. 3, обозначает общее количество разделений от максимального блока кодирования до минимального блока декодирования.
[102] Если разрешение высоко или количество данных является большим, максимальный размер блока кодирования может быть большим так, чтобы не только повысить эффективность кодирования, но также и точно отразить характеристики изображения. Соответственно, максимальный размер блока кодирования видео данных 310 и 320, имеющих более высокое разрешение, чем видео данные 330, может быть равен 64.
[103] Так как максимальная глубина видео данных 310 равна 2, блоки кодирования 315 видео данных 310 могут включать в себя максимальный блок кодирования, имеющий размер вдоль длинной оси 64, и блоки кодирования, имеющие размеры вдоль длинной оси 32 и 16, так как глубины углубляются до двух уровней посредством разделения максимального блока кодирования дважды. Между тем, так как максимальная глубина видео данных 330 равна 1, блоки 335 кодирования в видео данных 330 могут включать в себя максимальный блок кодирования, имеющий размер вдоль длинной оси 16, и блоки кодирования, имеющие размер вдоль длинной оси 8, так как глубины углубляются до одного уровня посредством разделения максимального блока кодирования один раз.
[104] Так как максимальная глубина видео данных 320 равна 3, блоки 325 кодирования из видео данных 320 могут включать в себя максимальный блок кодирования, имеющий размер вдоль длинной оси 64, и блоки кодирования, имеющие размеры вдоль длинной оси 32, 16 и 8, так как глубины углубляются до 3 уровней посредством разделения максимального блока кодирования три раза. Поскольку глубина углубляется, подробная информация может быть точно выражена.
[105] Фиг. 4 является блок-схемой кодера 400 изображения на основании блоков кодирования, согласно примерному варианту осуществления.
[106] Кодер 400 изображения выполняет операции блока 120 определения блока кодирования из устройства 100, чтобы закодировать данные изображения. Другими словами, модуль 410 внутреннего предсказания выполняет внутреннее предсказание над блоками кодирования во внутреннем режиме среди текущего кадра 405, и модуль 420 оценки движения и компенсатор 425 движения выполняют внешнюю оценку и компенсацию движения над блоками кодирования во внешнем режиме среди текущего кадра 405 посредством использования текущего кадра 405 и опорного кадра 495.
[107] Данные, выведенные из модуля 410 внутреннего предсказания, модуля 420 оценки движения и компенсатора 425 движения, выводят как квантованный коэффициент преобразования через преобразователь 430 и квантователь 440. Квантованный коэффициент преобразования восстанавливается как данные в пространственной области посредством обратного квантователя 460 и обратного преобразователя 470, и восстановленные данные в пространственной области выводят как опорный кадр 495 после постобработки через модуль 480 удаления блочности и модуль 490 циклической фильтрации. Квантованный коэффициент преобразования может быть выведен как поток битов 455 через статистический кодер 450.
[108] Для того, чтобы кодер 400 изображения был применен в устройстве 100, все элементы кодера 400 изображения, то есть модуль 410 внутреннего предсказания, модуль 420 оценки движения, компенсатор 425 движения, преобразователь 430, квантователь 440, статистический кодер 450, обратный квантователь 460, обратный преобразователь 470, модуль 480 удаления блочности и модуль 490 циклической фильтрации, выполняют операции на основании каждого блока кодирования из числа блоков кодирования, имеющих структуру дерева, в то же время рассматривая максимальную глубину каждого максимального блока кодирования.
[109] В частности, модуль 410 внутреннего предсказания, модуль 420 оценки движения и компенсатор 425 движения определяют сегменты и режим предсказания каждого блока кодирования из числа блоков кодирования, имеющих структуру дерева, в то же время рассматривая максимальный размер и максимальную глубину текущего максимального блока кодирования, и преобразователь 430 определяет размер блока преобразования в каждом блоке кодирования из числа блоков кодирования, имеющих структуру дерева.
[110] Фиг. 5 является блок-схемой декодера 500 изображения на основании блоков кодирования согласно примерному варианту осуществления.
[111] Анализатор 510 анализирует (выполняет синтаксический разбор) кодированные данные изображения, которые должны быть декодированы, и информацию о кодировании, необходимую для декодирования, из потока битов 505. Кодированные данные изображения выводят как обратно квантованные данные через статистический декодер 520 и обратный квантователь 530, и обратно квантованные данные восстанавливают в данные изображения в пространственной области с помощью обратного преобразователя 540.
[112] Модуль 550 внутреннего предсказания выполняет внутреннее предсказание над блоками кодирования во внутреннем режиме относительно данных изображения в пространственной области, и компенсатор 560 движения выполняет компенсацию движения над блоками кодирования во внешнем режиме посредством использования опорного кадра 585.
[113] Данные изображения в пространственной области, которые прошли через модуль 550 внутреннего предсказания и компенсатор 560 движения, могут быть выведены как восстановленный кадр 595 после постобработки через модуль 570 удаления блочности и модуль 580 циклической фильтрации. Кроме того, данные изображения, которые постобработаны с помощью модуля 570 удаления блочности и модуля 580 циклической фильтрации, могут быть выведены как опорный кадр 585.
[114] Чтобы декодировать данные изображения в декодере 230 данных изображения в устройстве 200 декодирования видео, декодер 500 изображения может выполнить операции, которые выполняют после анализатора 510.
[115] Для того, чтобы декодер 500 изображения был применен в устройстве 200 декодирования видео, все элементы декодера 500 изображения, то есть, анализатор 510, статистический декодер 520, обратный квантователь 530, обратный преобразователь 540, модуль 550 внутреннего предсказания, компенсатор 560 движения, модуль 570 удаления блочности и модуль 580 циклической фильтрации, выполняют операции на основании блоков кодирования, имеющих структуру дерева, для каждого максимального блока кодирования.
[116] В частности, модуль 550 внутреннего предсказания и компенсатор 560 движения выполняют операции на основании сегментов и режима предсказания для каждого из блоков кодирования, имеющих структуру дерева, и обратный преобразователь 540 выполняет операции на основании размера блока преобразования для каждого блока кодирования.
[117] Фиг. 6 является диаграммой, иллюстрирующей более глубокие блоки кодирования согласно глубинам и сегменты согласно примерному варианту осуществления.
[118] Устройство 100 кодирования видео и устройство 200 декодирования видео используют иерархические блоки кодирования, чтобы учесть характеристики изображения. Максимальная высота, максимальная ширина и максимальная глубина блоков кодирования могут быть адаптивно определены согласно характеристикам изображения, или могут быть иным образом установлены пользователем. Размеры более глубоких блоков кодирования согласно глубинам могут быть определены согласно заранее определенному максимальному размеру блока кодирования.
[119] В иерархической структуре 600 блоков кодирования, согласно примерному варианту осуществления, каждая максимальная высота и максимальная ширина блоков кодирования равны 64 и максимальная глубина равна 4. Так как глубина углубляется вдоль вертикальной оси иерархической структуры 600, высота и ширина каждого более глубокого блока кодирования делятся. Кроме того, блок предсказания и сегменты, которые являются основаниями для кодирования с предсказанием каждого более глубокого блока кодирования, показаны вдоль горизонтальной оси иерархической структуры 600.
[120] Другими словами, блок кодирования 610 является максимальным блоком кодирования в иерархической структуре 600, в котором глубина равна 0, и размер, то есть высота на ширину, равен 64×64. Глубина углубляется вдоль вертикальной оси, и существуют блок кодирования 620, имеющий размер 32×32 и глубину 1, блок кодирования 630, имеющий размер 16×16 и глубину 2, блок кодирования 640, имеющий размер 8×8 и глубину 3, и блок кодирования 650, имеющий размер 4×4 и глубину 4. Блок кодирования 650, имеющий размер 4×4 и глубину 4, является минимальным блоком кодирования.
[121] Блок предсказания и сегменты блока кодирования скомпонованы вдоль горизонтальной оси согласно каждой глубине. Другими словами, если блок кодирования 610, имеющий размер 64×64 и глубину 0, является блоком предсказания, этот блок предсказания может быть разделен на сегменты, включенные в блок кодирования 610, то есть сегмент 610, имеющий размер 64×64, сегменты 612, имеющие размер 64×32, сегменты 614, имеющие размер 32×64, или сегменты 616, имеющие размер 32×32.
[122] Аналогично, блок предсказания блока кодирования 620, имеющий размер 32×32 и глубину 1, может быть разделен на сегменты, включенные в блок кодирования 620, то есть сегмент 620, имеющий размер 32×32, сегменты 622, имеющие размер 32×16, сегменты 624, имеющие размер 16×32, и сегменты 626, имеющие размер 16×16.
[123] Аналогично, блок предсказания блока кодирования 630, имеющий размер 16×16 и глубину 2, может быть разделен на сегменты, включенные в блок кодирования 630, то есть сегмент, имеющий размер 16×16, включенный в блок кодирования 630, сегменты 632, имеющие размер 16×8, сегменты 634, имеющие размер 8×16, и сегменты 636, имеющие размер 8×8.
[124] Аналогично, блок предсказания блока кодирования 640, имеющий размер 8×8 и глубину 3, может быть разделен на сегменты, включенные в блок кодирования 640, то есть сегмент, имеющий размер 8×8, включенный в блок кодирования 640, сегменты 642, имеющие размер 8×4, сегменты 644, имеющие размер 4×8, и сегменты 646, имеющие размер 4×4.
[125] Блок кодирования 650, имеющий размер 4×4 и глубину 4, является минимальным блоком кодирования и блоком кодирования самой нижней глубины. Только блок предсказания блока кодирования 650 назначен на сегмент, имеющий размер 4×4.
[126] Чтобы определить по меньшей мере одну кодированную глубину блоков кодирования, составляющих максимальный блок кодирования 610, модуль 120 определения блока кодирования из устройства 100 кодирования видео выполняет кодирование для блоков кодирования, соответствующих каждой глубине, включенных в максимальный блок кодирования 610.
[127] Количество более глубоких блоков кодирования согласно глубинам, включающих в себя данные в одном и том же диапазоне и один и тот же размер, увеличивается, когда глубина углубляется. Например, четыре блока кодирования, соответствующие глубине 2, требуются, чтобы охватывать данные, которые включены в один блок кодирования, соответствующий глубине 1. Соответственно, чтобы сравнить результаты кодирования одних и тех же данных согласно глубинам, кодируют каждый блок кодирования, соответствующий глубине 1, и четыре блока кодирования, соответствующие глубине 2.
[128] Чтобы выполнить кодирование для текущей глубины среди глубин, наименьшая ошибка кодирования может быть выбрана для текущей глубины посредством выполнения кодирования для каждого блока предсказания в блоках кодирования, соответствующих текущей глубине, вдоль горизонтальной оси иерархической структуры 600. Альтернативно, минимальная ошибка кодирования может быть найдена посредством сравнения наименьших ошибок кодирования согласно глубинам, посредством выполнения кодирования для каждой глубины, когда глубина углубляется вдоль вертикальной оси иерархической структуры 600. Глубина и сегмент, имеющие минимальную ошибку кодирования в блоке кодирования 610, могут быть выбраны как кодированная глубина и тип сегмента блока кодирования 610.
[129] Фиг. 7 является диаграммой для объяснения соотношения между блоком кодирования 710 и блоками преобразования 720 согласно примерному варианту осуществления.
[130] Устройство 100 кодирования видео или 200 кодирует или декодирует изображение согласно блокам кодирования, имеющим размеры, меньшие чем или равные максимальному блоку кодирования, для каждого максимального блока кодирования. Размеры блоков преобразования для преобразования во время кодирования могут быть выбраны на основании блоков данных, которые не больше чем соответствующий блок кодирования.
[131] Например, в устройстве 100 кодирования видео или 200, если размер блока кодирования 710 равен 64×64, преобразование может быть выполнено посредством использования блоков преобразования 720, имеющих размер 32×32.
[132] Кроме того, данные блока кодирования 710, имеющего размер 64×64, могут быть кодированы посредством выполнения преобразования над каждым из блоков преобразования, имеющих размер 32×32, 16×16, 8×8 и 4×4, которые меньше чем 64×64, и затем блок преобразования, имеющий наименьшую ошибку кодирования, может быть выбран.
[133] Фиг. 8 является диаграммой для объяснения информации кодирования блоков кодирования, соответствующих кодированной глубине, согласно примерному варианту осуществления.
[134] Модуль 130 вывода в устройстве 100 кодирования видео может закодировать и передать информацию 800 о типе сегмента, информацию 810 о режиме предсказания и информацию 820 о размере блока преобразования для каждого блока кодирования, соответствующего кодированной глубине, в качестве информации о режиме кодирования.
[135] Информация 800 указывает информацию о форме сегмента, полученного посредством разделения блока предсказания текущего блока кодирования, в котором сегментом является блок данных для кодирования с предсказанием текущего блока кодирования. Например, текущий блок кодирования CU_0, имеющий размер 2N×2N, может быть разделен в любое одно из: сегмента 802, имеющего размер 2N×2N, сегмента 804, имеющего размер 2N×N, сегмента 806, имеющего размер N×2N и сегмента 808, имеющего размер N×N. Здесь, информация 800 о типе сегмента установлена, чтобы указывать одно из сегмента 804, имеющего размер 2N×N, сегмента 806, имеющего размер N×2N, и сегмента 808, имеющего размер N×N.
[136] Информация 810 указывает режим предсказания каждого сегмента. Например, информация 810 может указывать режим кодирования с предсказанием, выполняемого над сегментом, указанным информацией 800, то есть внутренний (intra) режим 812, внешний (inter) режим 814 или режим 816 пропуска.
[137] Информация 820 указывает блок преобразования, который должен быть основан на том, когда преобразование выполняется над текущим блоком кодирования. Например, блок преобразования может быть первым внутренним блоком 822 преобразования, вторым внутренним блоком 824 преобразования, первым внешним блоком 826 преобразования или вторым внешним блоком 828 преобразования.
[138] Модуль 220 извлечения информации кодирования и данных изображения в устройстве 200 декодирования видео может извлечь и использовать информацию 800, 810 и 820 для декодирования согласно каждому более глубокому блоку кодирования.
[139] Фиг. 9 является диаграммой более глубоких блоков кодирования согласно глубинам, согласно примерному варианту осуществления.
[140] Информация разделения может использоваться, чтобы указать изменение глубины. Информация разделения указывает, разделен ли блок кодирования текущей глубины на блоки кодирования более низкой глубины.
[141] Блок 910 предсказания для кодирования с предсказанием блока 900 кодирования, имеющего глубину 0 и размер 2N_0×2N_0, может включать в себя сегменты типа 912 сегментов, имеющих размер 2N_0×2N_0, типа 914 сегментов, имеющих размер 2N_0×N_0, типа 916 сегментов, имеющих размер N_0×2N_0 и типа 918 сегментов, имеющих размер N_0×N_0. Фиг. 9 только иллюстрирует типы 912-918 сегментов, которые получены посредством симметричного разделения блока 910 предсказания, но тип сегмента не ограничен этими, и сегменты блока 910 предсказания могут включать в себя асимметричные сегменты, сегменты, имеющие заранее определенную форму, и сегменты, имеющее геометрическую форму.
[142] Кодирование с предсказанием повторяющимся образом выполняется над одним сегментом, имеющим размер 2N_0×2N_0, двумя сегментами, имеющими размер 2N_0×N_0, двумя сегментами, имеющими размер N_0×2N_0, и четырьмя сегментами, имеющими размер N_0×N_0, согласно каждому типу сегмента. Кодирование с предсказанием во внутреннем режиме и внешнем режиме может быть выполнено над сегментами, имеющими размеры 2N_0×2N_0, N_0×2N_0, 2N_0×N_0 и N_0×N_0. Кодирование с предсказанием в режиме пропуска выполняется только над сегментами, имеющими размер 2N_0×2N_0.
[143] Ошибки кодирования, включающие кодирование с предсказанием в типах 912-918 сегментов сравнивают, и определяют наименьшую ошибку кодирования среди типов сегментов. Если ошибка кодирования является наименьшей в одном из типов 912-916 сегментов, блок 910 предсказания может быть не разделен в более низкую глубину.
[144] Если ошибка кодирования является наименьшей в типе 918 сегментов, глубина изменяется от 0 к 1, чтобы разделить тип 918 сегментов в операции 920, и кодирование повторяющимся образом выполняется над блоками кодирования 930, имеющими глубину 2 и размер N_0×N_0, чтобы искать минимальную ошибку кодирования.
[145] Блок предсказания 940 для кодирования с предсказанием блока кодирования 930, имеющего глубину 1 и размер 2N_1×2N_1 (=N_0×N_0), может включать в себя сегменты типа 942 сегмента, имеющие размер 2N_1×2N_1, типа 944 сегмента, имеющие размер 2N_1×N_1, типа 946 сегмента, имеющие размер N_1×2N_1, и типа 948 сегмента, имеющие размер N_1×N_1.
[146] Если ошибка кодирования является наименьшей в типе 948 сегментов, глубина изменяется от 1 до 2, чтобы разделить тип 948 сегментов, на операции 950, и кодирование повторяющимся образом выполняется над блоками кодирования 960, которые имеют глубину 2 и размер N_2×N_2, чтобы искать минимальную ошибку кодирования.
[147] Когда максимальная глубина равна d, операция разделения согласно каждой глубине может быть выполнена до тех пор, пока глубина не станет равной d-1, и информация разделения может быть кодирована до тех пор, пока глубина не станет одной из 0-d-2. Другими словами, когда кодирование выполняется до тех пор, пока глубина не станет равной d-1, после этого блок кодирования, соответствующий глубине d-2, разделяется на операции 970, блок предсказания 990 для кодирования с предсказанием блока кодирования 980, имеющего глубину d-1 и размер 2N_(d-1)×2N_(d-1), может включать в себя сегменты типа 992 сегментов, имеющих размер 2N_(d-1)×2N_(d-1), типа 994 сегментов, имеющих размер 2N_(d-1)×N_(d-1), типа 996 сегментов, имеющих размер N_(d-1)×2N_(d-1), и типа 998 сегментов, имеющих размер N_(d-1)×N_(d-1).
[148] Кодирование с предсказанием может повторяющимся образом выполняться над одним сегментом, имеющим размер 2N_(d-1) ×2N_(d-1), двумя сегментами, имеющими размер 2N_(d-1)×N_(d-1), двумя сегментами, имеющими размер N_(d-1)×2N_(d-1), четырьмя сегментами, имеющими размер N_(d-1)×N_(d-1) из числа типов 992-998 сегментов, чтобы искать тип разделения, имеющий минимальную ошибку кодирования.
[149] Даже когда тип 998 сегментов имеет минимальную ошибку кодирования, так как максимальная глубина равна d, блок кодирования CU_(d-1), имеющий глубину d-1, больше не разделяется до более низкой глубины, и кодированная глубина для блоков кодирования, составляющих текущий максимальный блок кодирования 900, определяется как равная d-1, и тип сегмента текущего максимального блока кодирования 900 может быть определен как N_(d-1)×N_(d-1). Кроме того, так как максимальная глубина равна d, и минимальный блок кодирования 980, имеющий самую нижнюю глубину d-1, больше не разделяется до более низкой глубины, информация разделения для блока кодирования 980 не установлена.
[150] Блок данных 999 может быть «минимальным блоком» для текущего максимального блока кодирования. Минимальный блок согласно примерному варианту осуществления может быть прямоугольным блоком данных, полученным посредством разделения минимального блока кодирования 980 на 4. Выполняя кодирование повторяющимся образом, устройство 100 кодирования видео может выбрать глубину, имеющую наименьшую ошибку кодирования, посредством сравнения ошибок кодирования согласно глубинам блока кодирования 900, чтобы определить кодированную глубину, и установить соответствующий тип сегмента и режим предсказания в качестве режима кодирования кодированной глубины.
[151] Как таковые, минимальные ошибки кодирования согласно глубинам сравнивают во всех из глубин 1-d, и глубина, имеющая наименьшую ошибку кодирования, может быть определена как кодированная глубина. Кодированная глубина, тип сегмента блока предсказания и режим предсказания могут быть кодированы и переданы как информация о режиме кодирования. Кроме того, так как блок кодирования разделен от глубины 0 до кодированной глубины, только информация разделения кодированной глубины устанавливается в 0, и информация разделения глубин, исключая кодированную глубину, устанавливается равной 1.
[152] Модуль 220 извлечения информации кодирования и данных изображения в устройстве 200 декодирования видео может извлечь и использовать информацию о кодированной глубине и блоке предсказания блока кодирования 900, чтобы декодировать сегмент 912. Устройство 200 декодирования видео может определить глубину, в которой информация разделения равна 0, в качестве кодированной глубины посредством использования информации разделения согласно глубинам, и использовать информацию о режиме кодирования соответствующей глубины для декодирования.
[153] Фиг. 10-12 являются диаграммами для описания соотношения между блоками кодирования 1010, блоками предсказания 1060 и блоками преобразования 1070 согласно примерному варианту осуществления.
[154] Блоки кодирования 1010 являются блоками кодирования, имеющими структуру дерева, соответствующими кодированным глубинам, определенным устройством 100 кодирования видео, в максимальном блоке кодирования. Блоки предсказания 1060 являются сегментами блоков предсказания каждого из блоков кодирования 1010, и блоки преобразования 1070 являются блоками преобразования каждого из блоков кодирования 1010.
[155] Когда глубина максимального блока кодирования равна 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.
[156] В блоках предсказания 1060 некоторые блоки кодирования 1014, 1016, 1022, 1032, 1048, 1050, 1052 и 1054 получают разделением блоков кодирования в блоках кодирования 1010. Другими словами, типы сегментов в блоках кодирования 1014, 1022, 1050 и 1054 имеют размер 2N×N, типы сегментов в блоках кодирования 1016, 1048 и 1052 имеют размер N×2N, и тип сегмента блока кодирования 1032 имеет размер N×N. Блоки предсказания и сегменты блоков кодирования 1010 меньше или равны каждому блоку кодирования.
[157] Преобразование или обратное преобразование выполняют над данными изображения блока кодирования 1052 в блоках преобразования 1070 в блоке данных, который меньше чем блок кодирования 1052. Кроме того, блоки кодирования 1014, 1016, 1022, 1032, 1048, 1050 и 1052 в блоках преобразования 1070 отличаются от таковых в блоках предсказания 1060 в терминах размеров и форм. Другими словами, устройства 100 и 200 кодирования видео и декодирования видео могут выполнять внутреннее предсказание, оценку движения, компенсацию движения, преобразование и обратное преобразование индивидуально над блоком данных в одном и том же блоке кодирования.
[158] Соответственно, кодирование рекурсивно выполняют над каждым из блоков кодирования, имеющих иерархическую структуру в каждой области максимального блока кодирования, чтобы определить оптимальный блок кодирования, и таким образом, блоки кодирования, имеющие рекурсивную структуру дерева, могут быть получены. Информация кодирования может включать в себя информацию разделения о блоке кодирования, информацию о типе сегмента, информацию о режиме предсказания и информацию о размере блока преобразования. Таблица 1 показывает информацию кодирования, которая может быть установлена устройствами 100 и 200 кодирования видео и декодирования видео.
Таблица 1
Информация разделения 0 (кодирование над блоком кодирования, имеющим размер 2N×2N и текущую глубину d)
Информация разделения 1
Режим предсказания
Тип сегмента
Размер блока преобразования
Кодирование повторяющимся образом блоков кодирования, имеющих более низкую глубину d+1
IntraInterSkip (Только 2N×2N)
Симметричный тип сегмента
Асимметричный тип сегмента
Информация разделения 0 блока преобразования
Информация разделения 1 блока преобразования
2N×2N2N×NN×2NN×N
2N×nU2N×nDnL×2NnR×2N
2N×2N
N×N(Симметричный тип)N/2×N/2(Асимметричный тип)
[160] Модуль 130 вывода устройства 100 кодирования видео может выводить информацию кодирования о блоках кодирования, имеющих структуру дерева, и модуль 220 извлечения информации кодирования и данных изображения в устройстве 200 декодирования видео может извлекать информацию кодирования о блоках кодирования, имеющих структуру дерева, из принятого потока битов.
[161] Информация разделения указывает, разделен ли текущий блок кодирования в блоки кодирования более низкой глубины. Если информация разделения текущей глубины d равна 0, глубина, на которой текущий блок кодирования больше не разделяется в более низкую глубину, является кодированной глубиной, и таким образом информация о типе сегмента, режиме предсказания и размере блока преобразования может быть задана для кодированной глубины. Если текущий блок кодирования дополнительно разделен согласно информации разделения, кодирование независимо выполняется над четырьмя разделенными блоками кодирования более низкой глубины.
[162] Режим предсказания может быть одним из внутреннего режима, внешнего режима и режима пропуска. Внутренний режим и внешний режим могут быть заданы во всех типах сегментов, и режим пропуска задан только в типе сегмента, имеющего размер 2N×2N.
[163] Информация о типе сегмента может указывать симметричные типы сегментов, имеющих размеры 2N×2N, 2N×N, N×2N и N×N, которые получены посредством симметричного разделения высоты или ширины блока предсказания, и асимметричные типы сегментов, имеющих размеры 2N×nU, 2N×nD, nL×2N и nR×2N, которые получены посредством асимметричного разделения высоты или ширины блока предсказания. Асимметричные типы сегментов, имеющих размеры 2N×nU и 2N×nD, могут быть соответственно получены посредством разделения высоты блока предсказания в соотношении 1:3 и 3:1, и асимметричные типы сегментов, имеющих размеры nL×2N и nR×2N, могут быть соответственно получены посредством разделения ширины блока предсказания в соотношении 1:3 и 3:1.
[164] Размер блока преобразования может быть установлен, чтобы быть двумя типами во внутреннем режиме и двумя типами во внешнем режиме. Другими словами, если информация разделения блока преобразования равна 0, размер блока преобразования может быть 2N×2N, который является размером текущего блока кодирования. Если информация разделения блока преобразования равна 1, блоки преобразования могут быть получены посредством разделения текущего блока кодирования. Кроме того, если тип сегмента текущего блока кодирования, имеющего размер 2N×2N, является симметричным типом сегментов, размер блока преобразования может быть равен N×N, и если тип сегмента текущего блока кодирования является асимметричным типом сегментов, размер блока преобразования может быть равен N/2×N/2.
[165] Информация кодирования о блоках кодирования, имеющих структуру дерева, может включать в себя по меньшей мере один из блока кодирования, соответствующего кодированной глубине, блока предсказания и минимального блока. Блок кодирования, соответствующий кодированной глубине, может включать в себя по меньшей мере один из блока предсказания и минимального блока, содержащего одну и ту же информацию кодирования.
[166] Соответственно, определяют, включены ли смежные блоки данных в один и тот же блок кодирования, соответствующий кодированной глубине, посредством сравнения информации кодирования смежных блоков данных. Кроме того, соответствующий блок кодирования, соответствующий кодированной глубине, определяют посредством использования информации кодирования блока данных и таким образом может быть определено распределение кодированных глубин в максимальном блоке кодирования.
[167] Соответственно, если текущий блок кодирования предсказан на основании информации кодирования смежных блоков данных, на информацию кодирования блоков данных в более глубоких блоках кодирования, смежных с текущим блоком кодирования, можно непосредственно ссылаться и ее использовать.
[168] Альтернативно, если текущий блок кодирования предсказан на основании информации кодирования смежных блоков данных, блоки данных, смежные с текущим блоком кодирования, ищутся, используя информацию кодирования блоков данных, и на найденные смежные блоки кодирования можно ссылаться для того, чтобы предсказать текущий блок кодирования.
[169] Фиг. 13 является диаграммой для объяснения соотношения между блоком кодирования, блоком предсказания или сегментом и блоком преобразования, согласно информации режима кодирования из Таблицы 1.
[170] Максимальный блок кодирования 1300 включает в себя блоки кодирования 1302, 1304, 1306, 1312, 1314, 1316 и 1318 кодированных глубин. Здесь, так как блок кодирования 1318 является блоком кодирования кодированной глубины, информация разделения может быть установлена в 0. Информация о типе сегмента блока кодирования 1318, имеющего размер 2N×2N, может быть установлена, чтобы быть одной из типа 1322 сегмента, имеющего размер 2N×2N, типа 1324 сегмента, имеющего размер 2N×N, типа 1326 сегмента, имеющего размер N×2N, типа 1328 сегмента, имеющего размер N×N, типа 1332 сегмента, имеющего размер 2N×nU, типа 1334 сегмента, имеющего размер 2N×nD, типа 1336 сегмента, имеющего размер nL×2N и типа 1338 сегмента, имеющего размер nR×2N.
[171] Когда тип сегмента установлен симметричным, т.е. тип 1322, 1324, 1326 или 1328 сегмента, блок преобразования 1342, имеющий размер 2N×2N, установлен, если информация разделения (флаг размера TU) блока преобразования равен 0, и блок преобразования 1344, имеющий размер N×N, установлен, если флаг размера TU равен 1.
[172] Когда тип сегмента установлен асимметричным, т.е. тип 1332, 1334, 1336 или 1338 сегмента, блок преобразования 1352, имеющий размер 2N×2N, установлен, если флаг размера TU равен 0, и блок преобразования 1354, имеющий размер N/2×N/2, установлен, если флаг размера TU равен 1.
[173] Со ссылками на фиг. 13, флаг размера TU является флагом, имеющим значение или 0 или 1, но флаг размера TU не ограничен 1 битом и блок преобразования может быть иерархически разделенным, имеющим структуру дерева, в то время как флаг размера TU увеличивается от 0.
[174] В этом случае размер блока преобразования, который фактически использовался, может быть выражен посредством использования флага размера TU блока преобразования, согласно примерному варианту осуществления, вместе с максимальным размером и минимальным размером блока преобразования. Согласно примерному варианту осуществления, устройство 100 кодирования видео способно кодировать информацию размера максимального блока преобразования, информацию размера минимального блока преобразования и флаг максимального размера TU. Результат кодирования информации размера максимального блока преобразования, информации размера минимального блока преобразования и флага максимального размера TU может быть вставлен в SPS. Согласно примерному варианту осуществления, устройство 200 декодирования видео может декодировать видео посредством использования информации размера максимального блока преобразования, информации размера минимального блока преобразования и флага максимального размера TU.
[175] Например, если размер текущего блока кодирования равен 64×64, и максимальный размер блока преобразования равен 32×32, то размер блока преобразования может быть равен 32×32, когда флаг размера TU равен 0, может быть равен 16×16, когда флаг размера TU равен 1, и может быть 8×8, когда флаг размера TU равен 2.
[176] В качестве другого примера, если размер текущего блока кодирования равен 32×32 и минимальный размер блока преобразования равен 32×32, то размер блока преобразования может быть равен 32×32, когда флаг размера TU равен 0. Здесь, флаг размера TU не может быть установлен в значение, отличное от 0, так как размер блока преобразования не может быть меньше, чем 32×32.
[177] В качестве другого примера, если размер текущего блока кодирования равен 64×64 и максимальный флаг размера TU равен 1, то флаг размера TU может быть 0 или 1. Здесь, флаг размера TU не может быть установлен в значение, отличное от 0 или 1.
[178] Таким образом, если задано, что максимальный флаг размера TU есть «MaxTransformSizeIndex», минимальный размер блока преобразования есть «MinTransformSize», и размер блока преобразования есть «RootTuSize», когда флаг размера TU равен 0, то текущий минимальный размер блока преобразования «CurrMinTuSize», который может быть определен в текущем блоке кодирования, может быть определен Уравнением (1):
[179] CurrMinTuSize=max(MinTransformSize, RootTuSize/(2^MaxTransformSizeIndex))…………… (1)
[180] По сравнению с текущим минимальным размером блока преобразования «CurrMinTuSize», который может быть определен в текущем блоке кодирования, размер блока преобразования «RootTuSize», когда флаг размера TU равен 0, может обозначать максимальный размер блока преобразования, который может быть выбран в системе. В Уравнении (1) «RootTuSize/(2^MaxTransformSizeIndex)» обозначает размер блока преобразования, когда размер блока преобразования «RootTuSize», когда флаг размера TU равен 0, разделяется количество раз, соответствующее максимальному флагу размера TU, и «MinTransformSize» обозначает минимальный размер преобразования. Таким образом, меньшее значение из «RootTuSize/(2^MaxTransformSizeIndex)» и «MinTransformSize» может быть текущим минимальным размером блока преобразования «CurrMinTuSize», который может быть определен в текущем блоке кодирования.
[181] Согласно примерному варианту осуществления, максимальный размер блока преобразования RootTuSize может изменяться согласно типу режима предсказания.
[182] Например, если текущим режимом предсказания является внешний режим, то «RootTuSize» может быть определен посредством использования Уравнения (2) ниже. В Уравнении (2) «MaxTransformSize» обозначает максимальный размер блока преобразования, и «PUSize» обозначает текущий размер блока предсказания.
[183] RootTuSize=min (MaxTransformSize, PUSize) …………… (2)
[184] Таким образом, если текущим режимом предсказания является внешний режим, размер блока преобразования «RootTuSize», когда флаг размера TU равен 0, может быть меньшим значением из максимального размера блока преобразования и текущего размера блока предсказания.
[185] Если режимом предсказания текущего блока сегмента является внутренний режим, «RootTuSize» может быть определен посредством использования Уравнения (3) ниже. В Уравнении (3) «PartitionSize» обозначает размер текущего блока сегмента.
[186] RootTuSize=min (MaxTransformSize, artitionSize) …… (3)
[187] Таким образом, если текущим режимом предсказания является внутренний режим, размер блока преобразования «RootTuSize», когда флаг размера TU равен 0, может быть меньшим значением из максимального размера блока преобразования и размера текущего блока сегмента.
[188] Однако, текущий максимальный размер блока преобразования «RootTuSize», который изменяется согласно типу режима предсказания в блоке сегмента, является только примером и им не ограничивается.
[189] ФИГ. 14 является последовательностью операций, иллюстрирующей способ кодирования видео согласно примерному варианту осуществления.
[190] Во время операции 1210 текущая картинка разделяется в по меньшей мере один максимальный блок кодирования. Может быть заранее определена максимальная глубина, указывающая общее количество возможных разделений.
[191] Во время операции 1220 кодированная глубина, чтобы вывести окончательный результат кодирования согласно по меньшей мере одной области разделения, которая получена посредством разделения области каждого максимального блока кодирования согласно глубинам, определяется посредством кодирования по меньшей мере одной области разделения, и определяется блок кодирования согласно структуре дерева.
[192] Максимальный блок кодирования пространственно разделяется всякий раз, когда глубина углубляется, и таким образом разделяется в блоки кодирования более низкой глубины. Каждый блок кодирования может быть разделен в блоки кодирования другой более низкой глубины, будучи пространственно разделенным независимо от смежных блоков кодирования. Кодирование повторяющимся образом выполняется над каждым блоком кодирования согласно глубинам.
[193] Кроме того, блок преобразования согласно типам сегмента, имеющим наименьшую ошибку кодирования, определяется для каждого более глубокого блока кодирования. Чтобы определить кодированную глубину, имеющую минимальную ошибку кодирования в каждом максимальном блоке кодирования, ошибки кодирования могут быть измерены и сравнены во всех более глубоких блоков кодирования согласно глубинам.
[194] Во время операции 1230 кодированные данные изображения, составляющие окончательный результат кодирования согласно кодированной глубине, выводят для каждого максимального блока кодирования, с информацией кодирования о кодированной глубине и режиме кодирования. Информация о режиме кодирования может включать в себя информацию о кодированной глубине или информацию разделения, информацию о типе сегмента блока предсказания, режиме предсказания, и размере блока преобразования. Кодированная информация о режиме кодирования может быть передана к декодеру с кодированными данными изображения.
[195] ФИГ. 15 является последовательностью операций, иллюстрирующей способ декодирования видео, согласно примерному варианту осуществления.
[196] Во время операции 1310 поток битов кодированного видео принимают и анализируют.
[197] Во время операции 1320 кодированные данные изображения текущей картинки, назначенной на максимальный блок кодирования, и информацию о кодированной глубине и режиме кодирования согласно максимальным блокам кодирования, извлекают из проанализированного потока битов. Кодированная глубина каждого максимального блока кодирования является глубиной, имеющей наименьшую ошибку кодирования в каждом максимальном блоке кодирования. При кодировании каждого максимального блока кодирования данные изображения кодируют на основании по меньшей мере одного блоке данных, полученного посредством иерархического разделения каждого максимального блока кодирования согласно глубинам.
[198] Согласно информации о кодированной глубине и режиме кодирования, максимальный блок кодирования может быть разделен в блоки кодирования, имеющие структуру дерева. Каждый из блоков кодирования, имеющих структуру дерева, определяется как блок кодирования, соответствующий кодированной глубине, и оптимально кодируется относительно вывода наименьшей ошибки кодирования. Соответственно, эффективность кодирования и декодирования изображения могут быть улучшены посредством декодирования каждой части кодированных данных изображения в блоки кодирования после определения по меньшей мере одной кодированной глубины согласно блокам кодирования.
[199] Во время операции 1330, данные изображения каждого максимального блока кодирования декодируют на основании информации о кодированной глубине и режиме кодирования согласно максимальным блокам кодирования. Декодированные данные изображения могут быть воспроизведены устройством воспроизведения, сохранены в носителе данных или переданы через сеть.
[200] Примерные варианты осуществления могут быть записаны как компьютерные программы и могут быть реализованы в компьютерах общего назначения, которые выполняют программы, используя считываемый компьютером носитель записи. Примеры считываемого компьютером носителя записи включают в себя магнитные носители данных (например, ROM, дискеты, жесткие диски, и т.д.) и оптические носители записи (например, CD-ROM или DVD).
[201] В то время как изобретение конкретно показано и описано в отношении его примерных вариантов осуществления, должно быть понятно специалистам в данной области техники, что различные изменения в форме и деталях могут быть сделаны в нем, не отступая от объема и формы изобретения, как определено приложенной формулой изобретения. Примерные варианты осуществления нужно рассматривать только в описательном смысле, а не в целях ограничения. Поэтому объем изобретения определен не в соответствии с подробным описанием изобретения, а приложенной формулой изобретения, и все различия в его объеме должны рассматриваться как включаемые в настоящее изобретение.