СПОСОБ, УСТРОЙСТВО И СИСТЕМА ДЛЯ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ЕДИНИЦ ПРЕОБРАЗОВАНИЯ ЕДИНИЦЫ КОДИРОВАНИЯ
METHOD, DEVICE AND SYSTEM FOR ENCODING AND DECODING CONVERSION UNITS FOR ENCODING UNITS

Перекрестная ссылка на родственную заявку(и)
[0001] По данной заявке испрашивается приоритет согласно § 119 Раздела 35 Свода Законов США по дате подачи Австралийской Патентной Заявки № 2012247040, поданной 08 ноября 2012г., которая настоящим во всей своей полноте включена в данный документ посредством ссылки. Данная заявка является выделенной заявкой Австралийской Патентной Заявки №№ 2012232992, поданной 28 сентября 2012г., которая настоящим во всей своей полноте включена в данный документ посредством ссылки.
Область техники, к которой относится изобретение
[0002] Настоящее изобретение, в целом, относится к цифровой обработке видео сигнала, и, в частности, к способу, устройству и системе для кодирования и декодирования остаточных коэффициентов единицы преобразования (TU), при этом единица преобразования (TU) включает в себя одну или более единицы преобразования (TU) и может быть сконфигурирована для нескольких форматов цветности, включая 4:2:2 формат цветности, и при этом остаточные коэффициенты единицы преобразования (TU) могут представлять собой данные либо в частотной области, либо в пространственной области.
Предпосылки создания изобретения
[0003] В настоящее время существует много приложений для кодирования видео, включая приложения для передачи и хранения видео данных. Также было разработано много стандартов кодирования видео, а прочие разрабатываются в настоящее время. Последние разработки в стандартизации кодирования видео привели к образованию группы, именуемой «Объединенной Командой по Кодированию Видео» (JCT-VC). Объединенная Команда по Кодированию Видео (JCT-VC) включает в себя членов Исследовательской Группы 16, Проблема 6 (SG16/Q6) Сектора Стандартизации Телекоммуникаций (ITU-T) Международного Союза Электросвязи (ITU), известной также как Группа Экспертов по Кодированию Видео (VCEG) и членов Международной Организации по Стандартизации/ Объединенного Технического Комитета 1 Международной Электротехнической Комиссии/ Подкомитет 29/ Рабочая Группа 11 (ISO/IEC JCT1/SC29/WG11), также известной как Экспертная Группа по Кинематографии (MPEG).
[0004] Объединенная Команда по Кодированию Видео (JCT-VC) имеет целью создание нового стандарта кодирования видео для обеспечения значительного превосходства над существующим в настоящее время стандартом кодирования видео, известного как «H.264/MPEG-4 AVC». Сам по себе стандарт H.264/MPEG-4 AVC является большим улучшением в сравнении с предыдущими стандартами кодирования видео, такими как MPEG-4 и ITU-T H.263. Находящийся на стадии разработки новый стандарт кодирования был назван «высокоэффективным кодированием видео (HEVC)». Объединенная Команда по Кодированию Видео (JCT-VC) также, учитывает проблемы реализации, связанные с предлагаемой технологией для высокоэффективного кодирования видео (HEVC), которая создает трудности при масштабируемых реализациях стандарта для функционирования при высоких разрешениях в режиме реального времени или высоких частотах кадра. Одной проблемой реализации является сложность и размер логики, используемой для обеспечения нескольких размеров ‘преобразования’ для преобразования видео данных между частотной областью и пространственной областью.
Сущность изобретения
[0005] Цель настоящего изобретения состоит, по существу, в преодолении или, по меньшей мере, улучшении, одного или более недостатков существующих компоновок.
[0006] В соответствии с одним аспектом настоящего изобретения предоставляется способ декодирования преобразования яркости и множества преобразований цветности из битового потока видео, причем множество преобразований цветности содержит данные цветности для одного канала цвета, при этом способ содержит этапы, на которых:
определяют значение флага пропуска преобразования яркости для преобразования яркости, причем флаг пропуска преобразования яркости, указывающий на то, закодированы ли данные преобразования яркости в битовом потоке видео как представление в пространственной области;
определяют значение флага пропуска преобразования цветности для первого преобразования цветности из множества преобразований цветности, причем флаг пропуска преобразования цветности, указывающий на то, закодированы ли данные преобразования цветности в битовом потоке видео как представление в пространственной области; и
декодируют преобразование яркости в соответствии с определенным значением флага пропуска преобразования яркости и множество преобразований цветности в соответствии с определенным значение флага пропуска преобразования цветности для первого преобразования цветности.
[0007] В соответствии с другим аспектом предоставляется способ декодирования единицы преобразования с преобразованием яркости и двумя преобразованиями цветности из битового потока видео, причем два преобразования цветности, содержащие данные цветности для одного канала цвета в соответствии с 4:2:2 форматом цветности, при этом способ содержит этапы, на которых:
определяют значение флага пропуска преобразования яркости для преобразования яркости, причем флаг пропуска преобразования яркости, указывающий на то, закодированы ли данные преобразования яркости в битовом потоке видео как представление в пространственной области;
определяют значение флага пропуска преобразования цветности для первого преобразования цветности из двух преобразований цветности, причем флаг пропуска преобразования цветности, указывающий на то, закодированы ли данные преобразований цветности в битовом потоке видео как представление в пространственной области; и
декодируют преобразование яркости в соответствии с определенным значением флага пропуска преобразования яркости и декодируют два преобразования цветности в соответствии с определенным значением флага пропуска преобразования цветности для первого преобразования цветности.
[0008] В соответствии с еще одним другим аспектом, предоставляется способ декодирования преобразования яркости и множества преобразований цветности из битового потока видео, причем множество преобразований цветности содержит данные для одного канала цвета, при этом способ содержит этапы, на которых:
разбивают по меньшей мере одно прямоугольное одно из преобразований на множество квадратных преобразований; и
декодируют квадратные преобразования.
[0009] Желательно, чтобы этап, на котором разбивают, содержал этап, на котором разбивают все прямоугольные преобразования на квадратные преобразования с тем, чтобы этап, на котором декодируют, проводился только над квадратными преобразованиями.
[0010] В соответствии с другим аспектом, предоставляется способ декодирования единицы преобразования, содержащей остаточные коэффициенты цветности, из битового потока видео, причем единица преобразования, содержащая по меньшей мере один массив остаточных коэффициентов цветности, связанный с одним каналом цветности, при этом способ содержит этапы, на которых:
определяют размер единицы преобразования, причем размер имеющий отношение к иерархическому уровню единицы преобразования в соответствующей единице кодирования;
декодируют из битового потока видео по меньшей мере один массив остаточных коэффициентов цветности, используя предварительно определенное максимальное количество преобразований для канала цветности единицы преобразования;
выбирают обратное преобразование для декодированных массивов остаточных коэффициентов цветности, причем обратное преобразование, выбираемое из предварительно определенного набора обратных преобразований; и
применяют выбранное обратное преобразование к каждому из массивов остаточных коэффициентов цветности для декодирования остаточных элементов дискретизации цветности для канала цветности единицы преобразования.
[0011] В еще одном другом аспекте, раскрывается способ для декодирования остаточных данных для области в единице преобразования (TU) в канале цвета, закодированном в битовом потоке видео, при этом способ содержит этапы, на которых:
в первую очередь определяют из битового потока то, что задействован флаг пропуска преобразования;
во вторую очередь определяют, является ли область первой областью в канале цвета и в единице преобразования (TU) со значение флага кодированного блока (CBF) равным единице, и если так, декодируют и сохраняют значение флага пропуска преобразования, в противном случае извлекают значение флага пропуска преобразования; и
декодируют остаточные данные области, используя значение флага пропуска преобразования.
[0012] Здесь, предпочтительно первый этап определения дополнительно содержит этап, на котором определяют, что флаг обхода квантования преобразования единицы кодирования не задействован и размер преобразования составляет 4х4.
[0013] В соответствии с другим аспектом настоящего изобретения, предоставляется способ для обратного преобразования множества массивов остаточных коэффициентов из битового потока видео, сконфигурированного для формата цветности 4:2:2, при этом способ содержит этапы, на которых:
блоку яркости 4×4 из множества блоков яркости 4×4, причем каждый блок яркости 4×4 совместно расположен с одной единицей преобразования 4×4 из множества единиц преобразования 4×4, причем множество блоков яркости 4×4 вместе занимают область яркости 8×8;
декодируют, после того как декодированы массивы остаточных коэффициентов яркости, множество массивов остаточных коэффициентов цветности для первого канала цвета, при этом каждый массив остаточных коэффициентов цветности соответствует блоку цветности 4×4 и каждый блок цветности 4×4 для первого канала цвета совместно расположен с двумя из множества единиц преобразования 4×4;
декодируют, после того как декодированы массивы остаточных коэффициентов цветности для первого канала цвета, множество массивов остаточных коэффициентов цветности для второго канала цвета, при этом каждый массив остаточных коэффициентов цветности соответствует блоку цветности 4×4 и каждый блок цветности для второго канала цвета совместно расположен с двумя из множества единиц преобразования 4×4; и
применяют обратное преобразование к каждому из декодированного множества массивов остаточных коэффициентов яркости, декодированного множества массивов остаточных коэффициентов цветности для первого канала цвета и декодированного множества массивов остаточных коэффициентов цветности для второго канала цвета.
[0014] Предпочтительно, количество массивов остаточных коэффициентов яркости во множестве массивов остаточных коэффициентов яркости равно четырем. Желательно, при этом количество массивов остаточных коэффициентов цветности во множестве массивов остаточных коэффициентов цветности равно двум. Преимущественно один массив остаточных коэффициентов включает в себя все коэффициенты, необходимые для обратного преобразования одного блока 4×4.
[0015] В соответствии с другим аспектом, раскрывается способ для прямого преобразования множества массивов остаточных коэффициентов в битовый поток видео, сконфигурированный для формата цветности 4:2:2, при этом способ содержит этапы, на которых:
применяют прямое преобразование к каждому из: множества массивов остаточных коэффициентов яркости, множества массивов остаточных коэффициентов цветности для первого канала цвета и множества массивов остаточных коэффициентов цветности для второго канала цвета;
блоку яркости 4×4 из множества блоков яркости 4×4, причем каждый блок яркости 4×4 совместно расположен с одной единицей преобразования 4×4 из множества единиц преобразования 4×4, причем множество блоков яркости 4×4 вместе занимают область яркости 8×8;
кодируют, после того как закодированы массивы остаточных коэффициентов яркости, множество массивов остаточных коэффициентов цветности для первого канала цвета, при этом каждый массив остаточных коэффициентов цветности соответствует блоку цветности 4×4 и каждый блок цветности 4×4 для первого канала цвета совместно расположен с двумя из множества единиц преобразования 4×4; и
кодируют, после того как закодированы массивы остаточных коэффициентов цветности для первого канала цвета, множество массивов остаточных коэффициентов цветности для второго канала цвета, при этом каждый массив остаточных коэффициентов цветности соответствует блоку цветности 4×4 и каждый блок цветности для второго канала цвета совместно расположен с двумя из множества единиц преобразования 4×4.
[0016] Также раскрываются другие аспекты, включающие в себя дополнительные кодеры.
Краткое описание чертежей
[0017] По меньшей мере один вариант осуществления настоящего изобретения теперь будет описан со ссылкой на следующие чертежи, на которых:
[0018] Фиг. 1 является принципиальной структурной схемой, показывающей систему кодирования и декодирования видео;
[0019] Фиг. 2A и 2B образуют принципиальную структурную схему компьютерной системы общего назначения на которой может быть на практике реализована одна или обе из систем кодирования и декодирования видео с Фиг. 1.
[0020] Фиг. 3 является принципиальной структурной схемой, показывающей функциональные модули кодера видео;
[0021] Фиг. 4 является принципиальной структурной схемой, показывающей функциональные модули декодера видео;
[0022] Фиг. 5A и 5B схематично иллюстрируют форматы цветности для представления данных кадра;
[0023] Фиг. 6A является схематическим представлением примерного дерева преобразования единицы кодирования;
[0024] Фиг. 6B является схематическим представлением примерного дерева преобразования скомпонованного по сетке элементов дискретизации яркости;
[0025] Фиг. 6C является схематическим представлением примерного дерева преобразования скомпонованного по сетке элементов дискретизации цветности;
[0026] Фиг. 7 является схематической иллюстрацией структуры данных, представляющей собой канал яркости примерного дерева преобразования;
[0027] Фиг. 8 иллюстрирует структуру данных, представляющую собой канал цветности примерного дерева преобразования;
[0028] Фиг. 9A и 9B схематично показывают структуру битового потока, которая кодирует примерное дерево преобразования;
[0029] Фиг. 9C, 9D и 9E схематично показывают альтернативную структуру битового потока, которая кодирует примерное дерево преобразования;
[0030] Фиг. 10 является принципиальной блок-схемой, показывающей способ для кодирования примерного дерева преобразования;
[0031] Фиг. 11 является принципиальной блок-схемой, показывающей способ для декодирования примерного дерева преобразования;
[0032] Фиг. 12A-12C схематично показывают остаточные шаблоны сканирования 4х8 единицы преобразования;
[0033] Фиг. 13 является принципиальной блок-схемой, показывающей способ для кодирования примерной единицы преобразования;
[0034] Фиг. 14 является принципиальной блок-схемой, показывающей способ для декодирования примерной единицы преобразования;
[0035] Фиг. 15 схематично показывает возможные компоновки 4×4 преобразований для 4×4 и 8×8 единиц преобразования (TU);
[0036] Фиг. 16 схематично иллюстрирует примерные области цветности для реализации;
[0037] Фиг. 17 является принципиальной блок-схемой, показывающей способ для декодирования остаточных данных примерной единицы преобразования; и
[0038] Фиг. 18 схематично иллюстрирует операцию пропуска преобразования, применяемую к 4×8 области цветности с (не квадратным) 4×8 преобразованием.
Подробное описание, включающее в себя предпочтительный вариант осуществления
[0039] Там, где на одном или более сопроводительных чертежах делается ссылка на этапы и/или признаки, которые имеют одинаковые цифровые обозначения, эти этапы и/или признаки, в целях данного описания, обладают одинаковой функцией(ями) или операцией(ями), до тех пор, пока не появляется противоположное намерение.
[0040] Фиг. 1 является принципиальной структурной схемой, показывающей функциональные модули системы 100 кодирования и декодирования видео, которая может использовать методики для кодирования элементов синтаксиса, представляющих собой подразумеваемое подразделение единиц преобразования на несколько преобразований для канала цветности. Система 100 включает в себя устройство-источник 110 и устройство-получатель 130. Канал 120 связи используется для передачи закодированной видеоинформации от устройства-источника 110 устройству-получателю 130. В некоторых случаях, устройство-источник 110 и устройство-получатель 130 могут быть выполнены в виде соответствующих мобильных телефонных трубок, и в этом случае канал 120 связи является беспроводным каналом. В других случаях, устройство-источник 110 и устройство-получатель 130 могут быть выполнены в виде оборудования для видео конференций, и в этом случае канал 120 связи, как правило, является проводным каналом, таким как Интернет соединение. Более того, устройство-источник 110 и устройство-получатель 130 могут быть выполнены в виде любого из широкого диапазона устройств, включая устройства, поддерживающие эфирное телевизионное вещание, приложения кабельного телевидения, приложения Интернет видео и включая приложения, где закодированное видео захватывается на запоминающий носитель информации или файловый сервер.
[0041] Как иллюстрируется, устройство-источник 110 включает в себя источник 112 видео, кодер 114 видео и передатчик 116. Источник 112 видео, как правило, выполнен в виде источника: захваченных данных видео кадра, такого как датчик формирования изображения; ранее захваченной последовательности видео, хранящейся на не временном записывающем носителе информации; или видео, подаваемого от удаленного датчика формирования изображения. Примеры устройств-источников 110, которые могут включать в себя датчик формирования изображения в качестве источника 112 видео, включают в себя интеллектуальные телефоны, видеокамеры и сетевые видеокамеры. Кодер 114 видео конвертирует захваченные данные кадра от источника 112 видео в закодированные видео данные и будет описан далее со ссылкой на Фиг. 3. Закодированные видео данные, как правило, передаются передатчиком 116 по каналу 120 связи в качестве закодированной видеоинформации. Также возможно, чтобы закодированные видео данные сохранялись на некотором устройстве хранения, таком как «Флэш» память или накопитель на жестком диске, до тех пор, пока последние не передаются по каналу 120 связи.
[0042] Устройство-получатель 130 включает в себя приемник 132, декодер 134 видео и устройство 136 отображения. Приемник 132 принимает закодированную видеоинформацию от канала 120 связи и пересылает принятые видеоданные к декодеру 134 видео. Декодер 134 видео затем выводит декодированные данные кадра на устройство 136 отображения. Примеры устройства 136 отображения включают в себя электроннолучевую трубку, жидкокристаллический дисплей, такой как в интеллектуальных телефонах, планшетных компьютерах, компьютерных мониторах или стационарных телевизорах. Также возможно, чтобы функциональные возможности каждого из устройства-источника 110 и устройства-получателя 130 были воплощены в одном устройстве.
[0043] Несмотря на упомянутые выше примерные устройства, каждое из устройств: устройство-источник 110 и устройство-получатель 130, могут быть выполнены в рамках вычислительной системы общего назначения, как правило, посредством сочетания компонентов аппаратного и программного обеспечения. Фиг. 2A иллюстрирует такую компьютерную систему 200, которая включает в себя: компьютерный модуль 201; устройства ввода, такие как клавиатура 202, указывающее устройство 203 мышь, сканер 226, камера 227, которая может быть сконфигурирована в качестве источника 112 видео, и микрофон 280; и устройств вывода, включающих в себя принтер 215, устройство 214 отображения, которое может быть сконфигурировано в качестве устройства 136 отображения, и громкоговорители 217. Внешнее устройство 216 приемопередатчика Модулятора-Демодулятора (Модема) может быть использовано компьютерным модулем 201 для передачи в и приема от сети 220 связи через соединение 221. Сеть 220 связи, которая может представлять собой канал 120 связи, может быть глобальной сетью (WAN), такой как Интернет, сетью сотовой связи, или частной WAN. В случае, когда соединение 221 является телефонной линией, модем 216 может быть традиционным «коммутируемым» модемом. В качестве альтернативы, в случае, когда соединение 221 является соединением с высокой емкостью (например, кабелем), модем 216 может быть широкополосным модемом. Беспроводной модем также может быть использован для беспроводного соединения с сетью 220 связи. Устройство 216 приемопередатчика может обеспечивать функциональные возможности передатчика 116 и приемника 132, а канал 120 связи может быть воплощен в соединении 221.
[0044] Компьютерный модуль 201, как правило, включает в себя по меньшей мере один узел 205 процессора, и узел 206 памяти. Например, узел 206 памяти может иметь полупроводниковое запоминающее устройство с произвольной выборкой (RAM) и полупроводниковое постоянное запоминающее устройство (ROM). Компьютерный модуль 201 также включает в себя некоторое количество интерфейсов ввода/вывода (I/O), включая: аудио-видео интерфейс 207, который обеспечивает сопряжение с видео дисплеем 214, громкоговорителем 217 и микрофоном 280; интерфейс 213 I/O, который обеспечивает сопряжение с клавиатурой 202, мышью 203, сканером 226, камерой 227 и опционально джойстиком или другим устройством интерфейса с человеком (не проиллюстрировано); и интерфейс 208 для внешнего модема 216 и принтера 215. В некоторых реализациях, модем 216 может быть встроен в компьютерный модуль 201, например, внутри интерфейса 208. Компьютерный модуль 201 также имеет интерфейс 211 локальной сети, который разрешает сопряжение компьютерной системы 200 через соединение 223 с локальной сетью 222 связи, известной как Локальная Сеть (LAN). Как иллюстрируется на Фиг. 2A, локальная сеть 222 связи также может сопрягаться с глобальной сетью 220 через соединение 224, которое, как правило, будет включать в себя так называемое устройство «брандмауэр» или устройство с подобными функциональными возможностями. Интерфейс 211 локальной сети может содержать монтажную плату Ethernet™, беспроводную компоновку Bluetooth™ или беспроводную компоновку IEEE 802.11; тем не менее, многочисленные другие типы интерфейсов могут быть на практике реализованы применительно к интерфейсу 211. Интерфейс 211 локальной сети 211 также может предоставлять функциональные возможности передатчика 116 и приемника 132, а канал 120 связи также может быть воплощен в локальной сети 222 связи.
[0045] Интерфейсы 208 и 213 I/O могут обеспечивать либо одну из, либо обе из возможностей последовательного и параллельного соединения, причем первая, как правило, реализуется в соответствии со стандартами Универсальной Последовательной Шины (USB) и при помощи соответствующих разъемов USB (не проиллюстрировано). Устройства 209 хранения обеспечиваются, и, как правило, включают в себя накопитель 210 на жестком диске (HDD). Также могут быть использованы прочие устройства хранения, такие как накопитель на гибком диске и накопитель на магнитной ленте (не проиллюстрировано). Накопитель 212 на оптическом диске, как правило, предусматривается для работы в качестве энергонезависимого источника данных. Портативные устройства памяти, такие как оптические диски (например, CD-ROM, DVD, Blu-ray Disc™), USB-RAM, портативные, внешние накопители на жестком диске, и гибкие диски, например, могут быть использованы в качестве соответствующих источников данных для компьютерной системы 200. Как правило, любой из компонентов: HDD 210, оптический накопитель 212, сети 220 и 222, также может быть выполнен с возможностью функционирования в качестве источника 112 видео, или в качестве получателя применительно к декодированным видео данным, для сохранения с целью воспроизведения через дисплей 214.
[0046] Компоненты с 205 по 213 компьютерного модуля 201, как правило, осуществляют связь через взаимосвязанную шину 204 и образом, который приводит к обычному режиму функционирования компьютерной системы 200, известной специалистам в соответствующей области. Например, процессор 205 сопрягается с системной шиной 204 при помощи соединения 218. Аналогичным образом, память 206 и накопитель 212 на оптическом диске сопрягаются с системной шиной 204 посредством соединений 219. Примеры компьютеров, на которых описанные компоновки могут быть выполнены на практике, включают в себя IBM-PC и совместимые, Sun SPARCstations, Apple Mac™ или подобные компьютерные системы.
[0047] В случае необходимости или по желанию, кодер 114 видео и декодер 134 видео, как впрочем и описываемые ниже способы, могут быть реализованы при помощи компьютерной системы 200, при этом кодер 114 видео, декодер 134 видео и процессы с Фиг. 10-13, которые будут описаны, могут быть реализованы в качестве одной или более прикладных программ 233 программного обеспечения, исполняемых в компьютерной системе 200. В частности, кодер 114 видео, декодер 134 видео и этапы описываемых способов совершаются посредством инструкций 231 (см. Фиг. 2B) в программном обеспечении 233, которое выполняется в компьютерной системе 200. Инструкции 231 программного обеспечения могут быть сформированы в качестве одного или более модулей кода, каждый для выполнения одной или более конкретных задач. Программное обеспечение также может быть разделено на две отдельные части, из которых первая часть и соответствующие модули кода выполняют описанные способы, а вторая часть и соответствующие модули кода управляют интерфейсом пользователя между первой частью и пользователем.
Программное обеспечение может быть сохранено на считываемом компьютером носителе информации, включающем в себя описываемые ниже устройства хранения, например. Программное обеспечение загружается в компьютерную систему 200 считываемого компьютером со считываемого компьютером носителя информации, и затем исполняется компьютерной системой 200. Считываемый компьютером носитель информации с таким программным обеспечением или компьютерной программой, записанной на считываемом компьютером носителе информации, является компьютерным программным продуктом. Использование компьютерного программного продукта в компьютерной системе 200 предпочтительно воплощает преимущественное устройство для реализации кодера 114 видео, декодера 134 видео и описываемых способов.
[0049] Программное обеспечение 233, как правило, хранится на HDD 210 или в памяти 206. Программное обеспечение загружается в компьютерную систему 200 считываемого компьютером со считываемого компьютером носителя информации, и исполняется компьютерной системой 200. Таким образом, например, программное обеспечение 233 может быть сохранено на оптически-читаемом дисковом запоминающем носителе 225 информации (например, CD-ROM), который считывается накопителем 212 на оптическом диске.
[0050] В некоторых случаях, прикладные программы 233 могут быть поставлены пользователю закодированными на одном или более CD-ROM 225 и считаны через соответствующий накопитель 212, или, в качестве альтернативы, могут быть считаны пользователем из сетей 220 или 222. В еще одном случае, программное обеспечение также может быть загружено в компьютерную систему 200 с других считываемых компьютером носителей информации. Считываемые компьютером запоминающие носители информации относятся к любым не временным вещественным запоминающим носителям информации, которые предоставляют записанные инструкции и/или данные компьютерной системе 200 для исполнения и/или обработки. Примеры таких запоминающих носителей информации включают в себя гибкие диски, магнитную ленту, CD-ROM, DVD, Blu-ray Disc, накопитель на жестком диске, ROM или интегральную микросхему, память USB, магнитооптический диск, или считываемую компьютером карту, такую как карта PCMCIA и подобная, являются или нет такие устройства внутренними или внешними по отношению к компьютерному модулю 201. Примеры временных или не вещественных считываемых компьютером средств передачи, которые также могут участвовать в предоставлении программного обеспечения, прикладных программ, инструкций и/или видео данных или закодированных видео данных компьютерному модулю 401, включают в себя радио или инфракрасные каналы передачи, как, впрочем, и сетевое соединение с другим компьютером или сетевым устройством, Интернет или Интрасетями, включая передачи электронной почты и информации, записанной на web-сайтах и подобном.
[0051] Вторая часть прикладных программ 233 и соответствующие модули кода, упомянутые выше, могут быть исполнены для реализации одного или более графических интерфейсов пользователя (GUI) для визуализации или иного представления на дисплее 214. Посредством манипуляции, как правило, клавиатурой 202 и мышью 203, пользователь компьютерной системы 200 и приложение могут манипулировать интерфейсом функционально гибким образом для предоставления команд управления и/или ввода приложениям, связанным с GUI. Также могут быть реализованы другие формы функционально гибких интерфейсов пользователя, такие как аудиоинтерфейс, использующий вывод речевых подсказок через громкоговорители 217 и ввод голосовых команд пользователя через микрофон 280.
[0052] Фиг. 2B является подробной принципиальной структурной схемой процессора 205 и «памяти» 234. Память 234 представляет собой логическую агрегацию всех модулей памяти (включая HDD 209 и полупроводниковую память 206), доступ к которым может быть получен посредством компьютерного модуля 201 на Фиг. 2A.
[0053] Когда исходно на компьютерный модуль 201 подается питание, исполняется программа 250 самотестирования при включении питания (POST). Программа 250 POST, как правило, хранится в ROM 249 полупроводниковой памяти 206 с Фиг. 2A. Устройство аппаратного обеспечения, такое как ROM 249, хранящее программное обеспечение, иногда именуется встроенным программным обеспечением. Программа 250 POST исследует аппаратное обеспечение внутри компьютерного модуля 201, чтобы гарантировать правильное функционирование, и, как правило, проверяет процессор 205, память 234 (209, 206), и модуль 251 программного обеспечения базовых систем ввода вывода (BIOS), также, как правило, хранящийся в ROM 249, для корректного функционирования. Как только программа 250 POST выполнена успешно, BIOS 251 активирует накопитель 210 на жестком диске с Фиг. 2A. Активация накопителя 210 на жестком диске вызывает программу 252 начального загрузчика, которая является резидентной на накопителе 210 на жестком диске, для исполнения через процессор 205. Это загружает операционную систему 253 в память 206 RAM, после чего операционная система 253 начинает функционировать. Операционная система 253 является приложением системного уровня, исполняемым процессором 205, для исполнения различных высокоуровневых функций, включая управление процессором, управление памятью, управление устройствами, управление хранением, прикладной интерфейс программного обеспечения, и общий интерфейс пользователя.
[0054] Операционная система 253 управляет памятью 234 (209, 206) чтобы гарантировать то, что каждый процесс или приложение, запущенное на компьютерном модуле 201, имеет достаточно памяти, для исполнения без конфликта с памятью, выделенной другому процессу. Кроме того, различные типы памяти, доступные в компьютерной системе 200 с Фиг. 2A, должны быть использованы правильно с тем, чтобы каждый процесс мог выполняться эффективно. Соответственно, агрегированная память 234 не предназначена проиллюстрировать то, каким образом выделяются конкретные сегменты памяти (до тех пор, пока не изложено иначе), а скорее для предоставления общего вида памяти, доступной компьютерной системе 200, и то, как таковая используется.
[0055] Как показано на Фиг. 2B, процессор 205 включает в себя некоторое количество функциональных модулей, включая узел 239 управления, арифметико-логическое устройство 240 (ALU), и локальную или внутреннюю память 248, иногда именуемую кэш-памятью. Кэш-память 248, как правило, включает в себя некоторое количество регистров 244-246 хранения в секции регистра. Одна или более внутренние шины 241 функциональным образом взаимно соединяют эти функциональные модули. Процессор 205, как правило, также имеет один или более интерфейсы 242 для осуществления связи с внешними устройствами через системную шину 204, используя соединение 218. Память 234 сопрягается с шиной 204 при помощи соединения 219.
[0056] Прикладная программа 233 включает в себя последовательность инструкций 231, которые могут включать в себя условные переходы и цикловые инструкции. Программа 233 также может включать в себя данные 232, которые используются при исполнении программы 233. Инструкции 231 и данные 232 хранятся в ячейках 228, 229, 230 и 235, 236, 237 памяти, соответственно. В зависимости от относительного размера инструкций 231 и ячеек 228-230 памяти, конкретная инструкция может быть сохранена в одной ячейке памяти, как изображено инструкцией, показанной в ячейке 230 памяти. В качестве альтернативы, инструкции могут быть сегментированы на некоторое количество частей, каждая из которых хранится в отдельной ячейке памяти, как изображено сегментами инструкции, показанными в ячейках 228 и 229 памяти.
[0057] В целом, процессор 205 выдается набор инструкций, которые в нем выполняются. Процессор 205 ожидает последующего ввода, на который процессор 205 реагирует посредством исполнения другого набора инструкций. Каждый ввод может быть предоставлен от одного или более из некоторого количества источников, включая данные, генерируемые одним или более устройствами 202, 203 ввода, данные извлеченные из одного из устройств 206, 209 хранения или данные извлеченные из запоминающего носителя 225 информации, вставленного в соответствующее считывающее устройство 212, все изображенные на Фиг. 2A. Исполнение набора инструкций может в некоторых случаях приводить к выводу данных. Исполнение также может вызывать сохранение данных или переменных в памяти 234.
[0058] Кодер 114 видео, декодер 134 видео и описываемые способы могут использовать входные переменных 254, которые хранятся в памяти 235 в соответствующих ячейках 255, 256, 257 памяти. Кодер 114 видео, декодер 134 видео и описываемые способы создают выходные переменные 261, которые сохраняются в памяти 234 в соответствующих ячейках 262, 263, 264 памяти. Промежуточные переменные 258 могут быть сохранены в ячейках 259, 260, 266 и 267 памяти.
[0059] Обращаясь к процессору 205 с Фиг. 2B, регистры 244, 245, 246, арифметико-логическое устройство 240 (ALU), и узел 239 управления работают совместно для выполнения последовательностей микроопераций, требуемых для выполнения циклов «выборки, декодирования, и исполнения» для каждой инструкции в наборе инструкций, составляющих программу 233. Каждый цикл выборки, декодирования, и исполнения содержат:
(a) операцию выборки, которая выбирает и считывает инструкцию 231 из ячейки 228, 229, 230 памяти;
(b) операцию декодирования, при которой узел 239 управления определяет, какая инструкция была отобрана; и
(c) операцию исполнения, при которой узел 239 управления и/или ALU 240 исполняет инструкцию.
[0060] После этого может быть исполнен дополнительный цикл выборки, декодирования, и исполнения для следующей инструкции. Аналогичным образом, может быть выполнен цикл сохранения, посредством которого узел 239 управления сохраняет или записывает значение в ячейку 232 памяти.
[0061] Каждый этап или субпроцесс в процессах с Фиг. 10-13, которые будут описаны, связан с одним или более сегментами программы 233 и, как правило, выполняется секцией 244, 245, 247 регистра, ALU 240, и узлом 239 управления в процессоре 205, работающими совместно для выполнения циклов выборки, декодирования, и исполнения для каждой инструкции в наборе инструкций для отмеченных сегментов программы 233.
[0062] Фиг. 3 является принципиальной структурной схемой, показывающей функциональные модули кодера 114 видео. Фиг. 4 является принципиальной структурной схемой, показывающей функциональные модули декодера 134 видео. Кодер 114 видео и декодер 134 видео могут быть реализованы при помощи компьютерной системы 200 общего назначения, как показано на Фиг. 2A и 2B, где различные функциональные модули могут быть реализованы посредством специализированного аппаратного обеспечения в компьютерной системе 200, посредством программного обеспечения, исполняемого в компьютерной системе 200, такого как один или более модули кода программного обеспечения прикладной программы 233 программного обеспечения, постоянно находящейся на накопителе 205 на жестком диске и управляемой при ее исполнении процессором 205, или в качестве альтернативы, посредством сочетания специализированного аппаратного обеспечения и программного обеспечения, исполняемого в компьютерной системе 200. Кодер 114 видео, декодер 134 видео и описываемые способы могут, альтернативно, быть реализованы в специализированном аппаратном обеспечении, таком как одна или более интегральные микросхемы, выполняющие функции или субфункции описываемых способов. Такое специализированное аппаратное обеспечение может включать в себя графические процессоры, цифровые сигнальные процессоры, проблемно-ориентированные интегральные микросхемы (ASIC), программируемые вентильные матрицы (FPGA), или один или более микропроцессоры и связанные запоминающие устройства. В частности, кодер 114 видео содержит модули 320-344, а декодер 134 видео содержит модули 420-434, каждый из которых может быть реализован в качестве одного или более модулей кода программного обеспечения прикладной программы 233 программного обеспечения.
[0063] Несмотря на то, что кодер 114 видео с Фиг. 3 является примером конвейерной обработки кодирования видео стандарта высокоэффективного кодирования видео (HEVC), стадии обработки, выполняемые модулями 320-344 являются общими для других видео кодеков, таких как VC-1 или H.264/MPEG-4 AVC. Кодер 114 видео принимает захваченные данные кадра, такие как захваченные данные кадра, в качестве ряда кадров, причем каждый кадр включающий в себя один или более каналы цвета. Каждый кадр содержит одну сетку элементов дискретизации на канал цвета. Информация о цвете представляется при помощи ‘цветового пространства’, такого как рекомендация ITU-R BT.709 (‘YUV’), несмотря на то, что также возможны другие цветовые пространства. Когда используется цветовое пространство YUV, каналы цвета включают в себя канал (‘Y’) яркости и два канала (‘U’ и ‘V’) цветности. Более того, отличающиеся объемы информации могут быть включены в сетку элементов дискретизации каждого канала цвета, в зависимости от дискретизации изображения или посредством применения фильтрации для передискретизации захваченных данных кадра. Существует несколько подходов передискретизации, известных как ‘форматы цветности’, некоторые из которых будут описаны со ссылкой на Фиг. 5A и 5B.
[0064] Кодер 114 видео делит каждый кадр захваченных данных кадра, таких как данные 310 кадра, на области, как правило, именуемые ‘блоки дерева кодирования’ (CTB). Каждый блок дерева кодирования (CTB) включает в себя иерархическое подразделение квадродерева в виде участка кадра в коллекции ‘единиц кодирования’ (CU). Блок дерева кодирования (CTB), как правило, занимает зону из 64×64 элементов дискретизации яркости, несмотря на то, что возможны другие размеры, такие как 16×16 или 32×32. В некоторых случаях могут быть использованы даже еще большие размеры, такие как 128×128. Блок дерева кодирования (CTB) может быть подразделен через разбиение на четыре равного размера области для создания нового иерархического уровня. Разбиение может быть применено рекурсивно, приводя к формированию иерархии квадродерева. Поскольку боковые размерности блока единицы кодирования (CTB) всегда являются степенями двух и разбиение квадродерева всегда приводит к разделению пополам ширины и высоты, размерности стороны области всегда являются степенями двух. Когда дальнейшее разбиение области не выполняется, говорят о том, что в области существует ‘единица кодирования’ (CU). Когда разбиение не выполняется на верхнем уровне блока дерева кодирования, область, занимающая весь блок дерева кодирования, содержит одну единицу кодирования (CU), которая, как правило, именуется ‘наибольшей единицей кодирования’ (LCU). Для каждой единицы кодирования также существует минимальный размер, такой как зона, занимаемая 8х8 элементами дискретизации яркости, несмотря на то, что также возможны другие минимальные размеры. Единицы кодирования данного размера, как правило, именуются ‘наименьшими единицами кодирования’ (SCU). В результате данной иерархии квадродерева, весь блок дерева кодирования (CTB) занимается одной или более единицами кодирования (CU).
[0065] Кодер 114 видео создает один или более массивы из элементов дискретизации, как правило, именуемые ‘единицами предсказания’ (PU) для каждой единицы кодирования (CU). Возможны различные компоновки единиц предсказания (PU) в каждой единице кодирования (CU), при условии, что единицы предсказания (PU) не пересекаются и что вся единица кодирования (CU) занимается одной или более единицами предсказания (PU). Данная схема гарантирует то, что единицы предсказания (PU) охватывают всю зону кадра.
[0066] Кодер 114 видео функционирует посредством вывода, из модуля 340 мультиплексора, единицы 382 предсказания (PU). Модуль 344 разности выводит разность между единицей 382 предсказания (PU) и соответствующим 2D массивом элементов дискретизации данных, в пространственной области, из единицы кодирования (CU) блока дерева кодирования (CTB) данных 310 кадра, причем разность известная как ‘массив остаточных элементов дискретизации’ 360. Массив 360 остаточных элементов дискретизации может быть преобразован в частотную область в модуле 320 преобразования, или массив 360 остаточных элементов дискретизации может оставаться в пространственной области, при этом выбор из двух вариантов выполняется мультиплексором 321, функционирующим под управление модуля 346 управления пропуском преобразования, и сигнализируется при помощи флага 386 пропуска преобразования. Модуль 346 управления пропуском преобразования определяет флаг 386 пропуска преобразования, который указывает на то, используется ли модуль 320 преобразования для преобразования массива 360 остаточных элементов дискретизации в массив 362 остаточных коэффициентов, или пропускается ли модуль 320 преобразования. Пропуск модуля 320 преобразования именуется ‘пропуском преобразования’. Когда преобразование не пропускается, массив 360 остаточных элементов дискретизации от модуля 344 разности принимается модулем 320 преобразования, который конвертирует (или ‘кодирует’) массив 360 остаточных элементов дискретизации из пространственного представления в представление в частотной области посредством применения ‘прямого преобразования’. Модуль 320 преобразование создает коэффициенты преобразования, сконфигурированные в качестве массива 362 остаточных преобразований для каждого преобразования в единице преобразования (TU) в иерархическом подразделении единицы кодирования (CU) в одной или более единицах преобразования (TU), как правило, именуемом ‘дерево преобразования’. Когда выполняется пропуск преобразования, массив 360 остаточных элементов дискретизации представляется в закодированном битовом потоке 312 в пространственной области и выполняется обход модуля 320 преобразования, что приводит к непосредственной пересылке массива 360 остаточных элементов дискретизации к модулю 322 масштабирования и квантования через мультиплексор 321, который функционирует под управлением флага 386 пропуска преобразования. Модуль 346 управления пропуском преобразования может тестировать битовую скорость передачи, требуемую в закодированном битовом потоке 312, для каждого значения флага 386 пропуска преобразования (т.е., пропущенного преобразования, или нормальной операции преобразования). Модуль 346 управления пропуском преобразования может выбирать значение для флага 386 пропуска преобразования, которое приводит к более низкой скорости передачи битов в закодированном битовом потоке 312, тем самым достигая более высокой эффективности сжатия. Каждый тест, выполняемый модулем 346 управления пропуском преобразования, увеличивает сложность кодера 114 видео, и, следовательно, желательно сократить количество случаев, для которых модуль 346 пропуска преобразования выполняет тест, до тех, для которых преимущество выбора пропуска преобразования перевешивает затраты на выполнение теста. Например, это может быть достигнуто посредством ограничения пропуска преобразования конкретными размерами преобразования и типами блока, как например, только 4х4 преобразованиями для блоков с внутренним предсказанием (как описывается дополнительно ниже) в разрабатываемом стандарте высокоэффективного кодирования видео (HEVC). Функциональная возможность пропуска преобразования особенно полезна для кодирования массивов 360 остаточных элементов дискретизации, которые содержат большой объем ‘высокочастотной’ информации. Высокочастотная информация, как правило, присутствует в данных 310 кадра, содержащих много резких краев, как например, где в данные 310 кадра включены буквенно-цифровые символы. Прочие источники данных 310 кадра, такие как графика, сгенерированная компьютером, также могут содержать значительный объем высокочастотной информации. DCT-подобное преобразование модуля 320 преобразования оптимизировано для данных 310 кадра, содержащих главным образом низкочастотную информацию, как например та, что получена от датчика формирования изображения, захватывающего естественное изображение. Таким образом, наличие функциональной возможности пропуска преобразования обеспечивает значительный прирост эффективности кодирования для приложений, которые имеют отношение к разрабатываемому стандарту высокоэффективного кодирования видео (HEVC). Применительно к кодеру 114 видео, один недостаток поддержки функциональной возможности пропуска преобразования состоит в необходимости тестирования двух возможных режимов для флага 386 пропуска преобразования. Как рассматривается ниже, функциональная возможность пропуска преобразования поддерживается для массива 360 остаточных элементов дискретизации размера 4×4 элементов дискретизации и когда массив 360 остаточных элементов дискретизации соответствует блоку с внутренним предсказанием, как описывается со ссылкой на модуль 336 внутреннего кадрового предсказания. Тем не менее, флаг 386 пропуска преобразования желательно сигнализируется отдельно для каждого канала цвета и, следовательно, отдельный тест может быть выполнен модулем 346 управления пропуском преобразования для каждого канала цвета. Отдельная сигнализация для каждого канала цвета является преимущественной так как высокочастотная информация может быть сконцентрирована в одном или в обоих каналах цвета, тем самым, подходит для пропуска преобразования, тогда как канал яркости может иметь минимальную высокочастотную информацию и, следовательно, преимущество от использования преобразования. Например, цветной текст на цветном фоне приведет к такому сценарию.
[0067] Применительно к разрабатываемому стандарту высокоэффективного кодирования видео (HEVC), конвертирование в представление в частотной области реализуется при помощи модифицированного дискретного косинусного преобразования (DCT), в котором обычное DCT модифицировано с тем, чтобы реализовываться при помощи сдвигов и сложений. Возможны различные размеры применительно к массиву 360 остаточных элементов дискретизации и коэффициентам 362 преобразования, в соответствии с поддерживаемыми размерами преобразования. В разрабатываемом стандарте высокоэффективного кодирования видео (HEVC), преобразования выполняются над 2D массивами элементов дискретизации с конкретными размерами, такими как 32×32, 16×16, 8×8 и 4×4. Следовательно, можно сказать, что существует предварительно определенный набор размеров преобразования, доступных кодеру 114 видео. Более того, как предзнаменовано выше, набор размеров преобразования может различаться между каналом яркости и каналами цветности. Двумерные преобразования, как правило, выполняются ‘раздельными’, предоставляя возможность реализации в качестве первого набора 1D преобразований, оперирующих над 2D массивом элементов дискретизации в одном направлении (например, по строкам), за которым следует второй набор 1D преобразований, оперирующих над 2D массивом элементов дискретизации, выводимым из первого набора 1D преобразования в другом направлении (например, по столбцам). Преобразования с одинаковой шириной и высотой, как правило, именуются ‘квадратными преобразованиями’. Дополнительно, также возможны преобразования с разными ширинами и высотами и они, в общем, именуются ‘не квадратными преобразованиями’. Оптимизированные реализации преобразований могут объединять одномерные преобразования по строкам и столбцам в конкретных модулях аппаратного или программного обеспечения, таких как модуле 4х4 преобразования или модуле 8х8 преобразования. Преобразования с большими размерностями требуют большего количества схем для реализации, даже несмотря на то, что они могут редко использоваться. Соответственно, в разрабатываемом стандарте высокоэффективного кодирования видео (HEVC) существует максимальный размер преобразования равный 32×32. Комплексный характер реализации преобразования также вносит предпочтение в отношении сокращения количества поддерживаемых не квадратных размеров преобразования, так как они, как правило, будут требовать полностью нового аппаратного обеспечения для реализации, вместо повторного использования существующей логики одномерного преобразования, присутствующей в соответствующих квадратных преобразованиях.
[0068] Преобразования применяются как к каналам яркости, так и цветности. Существуют отличия между обработкой каналов яркости и цветности в отношении единиц преобразования (TU) и они будут описаны ниже со ссылкой на Фиг. 5A и 5B. Каждое дерево преобразования занимает одну единицу кодирования (CU) и задается в качестве декомпозиции квадродерева единицы кодирования (CU) в иерархию, содержащую одну единицу преобразования (TU) на каждой концевой вершине иерархии дерева (квадродерева) преобразования, при этом каждая единица преобразования (TU) имеет возможность использования преобразований поддерживаемых размеров преобразования. Аналогично блоку дерева кодирования (CTB), необходимо, чтобы вся единица кодирования (CU) занималась одной или более единицами преобразования (TU). На каждом уровне иерархии квадродерева дерева преобразования ‘значение флага кодированного блока’ сигнализирует о возможном наличии преобразования в каждом канале цвета, либо на настоящем уровне иерархии, когда дальнейшие разбиения отсутствуют, либо для сигнализации того, что более низкие уровни иерархии могут содержать по меньшей мере одно преобразование из результирующих единиц преобразования (TU). Когда значение флага кодированного блока равно нулю, для соответствующего канала цвета не выполняется преобразование любых единиц преобразования (TU) дерева преобразования, либо на настоящем иерархическом уровне, либо на более низких иерархических уровнях. Когда значение флага кодированного блока равно нулю, область содержит преобразование, которое должно иметь по меньшей мере один не нулевой остаточный коэффициент. Таким образом, для каждого канала цвета, ноль или более преобразований могут охватывать участок зоны единицы кодирования (CU), варьирующийся от никакого до полной единицы кодирования (CU). Для каждого канала цвета существуют отдельные значения флага кодированного блока. Не требуется чтобы кодировалось каждое значение флага кодированного блока, так как существуют случаи, когда существует только одно возможное значение флага кодированного блока.
[0069] Таким образом выходными данными мультиплексора 321 являются одно из следующего: массив 360 остаточных элементов дискретизации или массив 362 коэффициентов преобразования, и просто помечены как массив 363 на Фиг. 3. Массив 363 является входными данными для модуля 322 масштабирования и квантования, где его значения элементов дискретизации масштабируются и квантуются в соответствии с определенным параметром 384 квантования для создания массива 364 остаточных данных. Процесс масштабирования и квантования приводит к потере точности, в зависимости от значения определенного параметра 384 квантования. Более высокое значение определенного параметра 384 квантования приводит к большему количеству информации, которое теряется из остаточных данных. Это увеличивает сжатие, достигаемое кодером 114 видео, ценой сокращения визуального качества вывода из декодера 134 видео. Определенный параметр 384 квантования может быть адаптирован во время кодирования каждого кадра данных 310 кадра, или он может быть фиксированным для участка данных 310 кадра, такого как полный кадр. Также возможны прочие адаптации определенного параметра 384 квантования, как например, квантование разных остаточных коэффициентов с помощью отдельных значений. Массив 364 остаточных данных и определенный параметр 384 квантования берутся в качестве входных данных для модуля 326 обратного масштабирования, который реверсирует масштабирование, выполненное модулем 322 масштабирования и квантования, для создания массивов 366 перемасштабированных данных, которые являются перемасштабированными версиями массива 364 остаточных данных. Разрабатываемый стандарт высокоэффективного кодирования видео (HEVC) также поддерживает режим кодирования ‘без потерь’. Когда используется кодирование без потерь, выполняется обход как модуля 320 преобразования, так и модуля 322 масштабирования и квантования, приводя к тому, что массив 360 остаточного кодирования непосредственно вводится в энтропийный кодер 324. В режиме без потерь, также выполняется обход модуля 326 обратного масштабирования и модуля 328 обратного преобразования. Выбор режима кодирования без потерь (как противоположности обычному режиму ‘с потерями’) кодируется в закодированном битовом потоке 312 посредством энтропийного кодера 324. Логика для реализации обхода применительно к режиму без потерь не иллюстрируется на Фиг. 3. Обход модуля 322 масштабирования и квантования приводит к отсутствию квантования массива 362 остаточных коэффициентов или массива 360 остаточных элементов дискретизации, и строгое представление данных 310 кадра кодируется в закодированном битовом потоке 312 посредством энтропийного кодера 324. Режим кодирования без потерь приводит к низкой эффективности сжатия кодера 114 видео и, вследствие этого, как правило, используется только в приложениях, где крайне желательно кодирование без потерь, как например, в медицинских приложениях.
[0070] Массив 364 остаточных данных, определенный параметр 384 квантования и флаг 386 пропуска преобразования также берутся в качестве входных данных для модуля 324 энтропийного кодера, который кодирует значения массива 364 остаточных данных в закодированном битовом потоке 312 (или ‘битовом потоке видео’). Массив 364 остаточных данных в каждой единице преобразования кодируется в группах, в общем, именуемых ‘субблоками’. Субблоки должны предпочтительно иметь одинаковые размерности независимо от размера преобразования, так как это разрешает повторное использование логики, которая относится к обработке субблока. Остаточные данные в одном субблоке, как правило, именуются ‘группой данных’ (или ‘группой коэффициентов’, даже когда применяется пропуск преобразования и ‘группа коэффициентов’ включает в себя представление в пространственной области вместо представления в частотной области) и для каждой группы данных, как правило, кодируется флаг группы данных для указания того, является ли по меньшей мере одно значение остаточных данных в группе данных не нулевым. В некоторых случаях флаг группы данных может подразумеваться и, следовательно, не кодируется. Флаг кодируется для каждого значения остаточных данных, принадлежащего к группе данных со значением флага группы данных равным единице для указания того, является ли значение остаточных данных не нулевым (‘значимым’) или нулевым (‘незначимым’). Из-за потери точности, проистекающей от модуля 322 масштабирования и квантования, массивы 366 перемасштабированных данных не идентичны исходным значениям в массиве 363. Массивы 366 перемасштабированных данных из модуля 326 обратного масштабирования затем выводятся на модуль 328 обратного преобразования. Модуль 328 обратного преобразования выполняет обратное преобразование из частотной области в пространственную область для создания представления 368 в пространственной области массивов 366 перемасштабированных коэффициентов преобразования, идентичное представлению в пространственной области, которое создается в декодере 134 видео. Мультиплексор 369 выполнен с возможностью дополнения операции мультиплексора 321. Мультиплексор 369 выполнен с возможностью приема каждого из массивов 366 перемасштабированных данных и (преобразованного) представления 368 в пространственной области в качестве входных данных и, под управлением флага 386 пропуска преобразования, выбора одних из входных данных 366 или 368 в качестве входных данных для модуля 342 суммирования.
[0071] Модуль 338 оценки движения создает векторы 374 движения посредством сравнения данных 310 кадра с предыдущими данными кадра из одного или более наборов кадров, хранящихся в модуле 332 буфера кадров, как правило, выполненного в памяти 206. Набор кадров известен как ‘список опорных картинок’. Векторы 374 движения затем вводятся в модуль 334 компенсации движения, который создает единицу 374 предсказания (PU) с взаимным предсказанием посредством фильтрации элементов дискретизации, хранящихся в модуле 332 буфера кадра, учитывая пространственное смещение, извлеченное из векторов 374 движения. Не иллюстрируется на Фиг. 3, но также возможна пересылка векторов 374 движения в качестве элементов синтаксиса к модулю 324 энтропийного кодера для кодирования в закодированном битовом потоке 312. Модуль 336 внутреннего кадрового предсказания создает единицу 378 предсказания (PU) с внутренним предсказанием используя элементы 370 дискретизации, полученные от модуля 342 суммирования, который суммирует единицу 382 предсказания (PU) от модуля 340 мультиплексора и выходные данные в пространственной области мультиплексора 369. Модуль 336 внутреннего кадрового предсказания также создает режим 380 внутреннего предсказания, который отправляется энтропийному кодеру 324 для кодирования в закодированном битовом потоке 312.
[0072] Единицы предсказания (PU) могут быть сгенерированы используя способ либо внутреннего предсказания, либо взаимного предсказания. Режимы внутреннего предсказания используют элементы дискретизации смежные с единицей предсказания (PU), которые были ранее декодированы (как правило, над и слева от единицы предсказания) для того, чтобы сгенерировать опорные элементы дискретизации в единице предсказания (PU). Возможны различные направления внутреннего предсказания, именуемые ‘режимом внутреннего предсказания’. Способы взаимного предсказания используют вектор движения для ссылки на блок из выбранного опорного кадра. Поскольку блок может иметь любое выравнивание вплоть до с точностью до субэлемента дискретизации, например, в одну восьмую элемента дискретизации, требуется фильтрация для создания блока опорных элементов дискретизации для единицы предсказания (PU). Решение, в отношении того, какой способ использовать, принимается в соответствии с компромиссом по скорости-искажению между требуемой скоростью передачи битов результирующего закодированного битового потока 312 и объемом искажения качества изображения, вносимого способом либо внутреннего предсказания, либо взаимного предсказания. Если используется внутреннее предсказание, один режим внутреннего предсказания выбирается из набора режимов возможного внутреннего предсказания, также в соответствии с компромиссом по скорости-искажению. Модуль 340 мультиплексора выбирает либо опорные элементы 378 дискретизации с внутренним предсказанием от модуля 336 внутреннего кадрового предсказания, либо единицу 376 предсказания (PU) с взаимным предсказанием от модуля 334 компенсации движения, в зависимости от решения, принятого алгоритмом скорости-искажения. Модуль 342 суммирования создает сумму 370, которая вводится в модуль 330 фильтра устранения блочности. Модуль 330 фильтра устранения блочности выполняет фильтрацию по границам блока, создавая элементы 372 дискретизации с устраненной блочностью, которые записываются в модуль 332 буфера кадров, выполненный в памяти 206. Модуль 332 буфера кадров является буфером достаточной емкости для удержания данных из одного или более прошлых кадров для будущего обращения как части списка опорных картинок.
[0073] Применительно к разрабатываемому стандарту высокоэффективного кодирования видео (HEVC), закодированный битовый поток 312, созданный энтропийным кодером 324, разграничивается в единицах уровня сетевой абстракции (NAL). Как правило, каждый слайс кадра содержится в одной единице NAL. Энтропийный кодер 324 кодирует остаточный массив 364, режим 380 внутреннего предсказания, векторы движения и прочие параметры, собирательно именуемые ‘элементы синтаксиса’, в закодированном битовом потоке 312 посредством выполнения алгоритма контекстно-зависимого адаптивного бинарного арифметического кодирования (CABAC). Элементы синтаксиса группируются вместе в ‘структуры синтаксиса’, причем эти группировки могут содержать рекурсию для описания иерархических структур. В дополнение к значениям порядковых числительных, таким как режим внутреннего предсказания, или целочисленным значениям, таким как вектор движения, элементы синтаксиса также включают в себя флаги, такие как те, чтобы указывать разбиение квадродерева. Модуль 338 оценки движения и модуль 334 компенсации движения оперируют над векторами 374 движения, с точностью в 1/8 элемента дискретизации яркости, обеспечивая точное моделирование движения между кадрами в данных 310 кадра.
[0074] Несмотря на то, что декодер 134 видео с Фиг. 4 описывается со ссылкой на конвейер декодирования видео по стандарту высокоэффективного кодирования видео (HEVC), стадии обработки, выполняемые модулями 420-434, являются общими для других кодеков видео, которые используют энтропийное кодирование, таких как H.264/MPEG-4 AVC, MPEG-2 и VC-1. Закодированная видео информация также может быть считана из памяти 206, накопителя 210 на жестком диске, CD-ROM, диска Blu-ray™ или другого считываемого компьютером запоминающего носителя информации. В качестве альтернативы, закодированная видеоинформация может быть принята от внешнего источника, такого как сервер, соединенного с сетью 220 связи или радиочастотным приемником.
[0075] Как видно на Фиг. 4, принятые видеоданные, такие как закодированный битовый поток 312, вводятся в декодер 134 видео. Закодированный битовый поток 312 может быть считан из памяти 206, накопителя 210 на жестком диске, CD-ROM, диска Blu-ray™ или другого считываемого компьютером запоминающего носителя информации. В качестве альтернативы, закодированный битовый поток 312 может быть принят от внешнего источника, такого как сервер, соединенного с сетью 220 связи или радиочастотным приемником. Закодированный битовый поток 312 содержит закодированные элементы синтаксиса, представляющие собой захваченные данные кадра, которые должны быть декодированы.
[0076] Закодированный битовый поток 312 является входными данными для модуля 420 энтропийного декодера, который извлекает элементы синтаксиса из закодированного битового потока 312 и пересылает значения элементов синтаксиса к другим блокам в декодере 134 видео. Модуль 420 энтропийного декодера применяет алгоритм контекстно-зависимого адаптивного бинарного арифметического кодирования (CABAC) для декодирования элементов синтаксиса из закодированного битового потока 312. Декодированные элементы синтаксиса используются для восстановления параметров в декодере 134 видео. Параметры включают в себя ноль или более из следующего: массив 450 остаточных данных, векторы 452 движения, режим 454 предсказания и флаг 468 пропуска преобразования. Массив 450 остаточных данных пересылается модулю 421 обратного масштабирования, векторы 452 движения пересылаются модулю 434 компенсации движения, и режима 454 предсказания пересылается модулю 426 внутреннего кадрового предсказания и мультиплексору 428. Модуль 421 обратного масштабирования выполняет обратное масштабирование над остаточными данными для создания воссозданных данных 455. Когда флаг 468 пропуска преобразования равен нулю, модуль 421 обратного масштабирования выводит воссозданные данные 455 на модуль 422 обратного преобразования. Модуль 422 обратного преобразования применяет ‘обратное преобразование’ для конвертирования (или ‘декодирования’) воссозданных данных, которые в данном случае являются коэффициентами преобразования, из представления в частотной области в представление в пространственной области, выводя массив 456 остаточных элементов дискретизации через модуль 423 мультиплексора. Когда значение флага 468 пропуска преобразования равно единице, воссозданные данные 455, которые в данном случае находятся в пространственной области, выводятся в качестве массива 456 остаточных элементов дискретизации через модуль 423 мультиплексора. Модуль 422 обратного преобразования выполняет ту же операцию, что и модуль 328 обратного преобразования. Модуль 422 обратного преобразования, вследствие этого, должен быть выполнен с возможностью предоставления предварительно определенного набора размеров преобразования, требуемых для декодирования закодированного битового потока 312, который совместим с разрабатываемым стандартом высокоэффективного кодирования видео (HEVC). Когда сигнализация в закодированном битовом потоке 312 указывает на то, что был использован режим без потерь, декодер 134 видео выполнен с возможностью обхода модуля 421 обратного масштабирования и модуля 422 обратного преобразования (не иллюстрируется на Фиг. 4), что приводит к тому, что массив 450 остаточных данных непосредственно вводится в модуль 424 суммирования.
[0077] Модуль 434 компенсации движения использует векторы 452 движения от модуля 420 энтропийного декодера, объединенные с данными 460 опорного кадра от блока 432 буфера кадров, выполненного в памяти 206, для создания единицы 462 предсказания (PU) с взаимным предсказанием для единицы предсказания (PU), являющейся предсказанием выходных декодированных данных кадра. Когда режим 454 предсказания указывает на то, что текущая единица предсказания была закодирована при помощи внутреннего предсказания, модуль 426 внутреннего кадрового предсказания создает единицу 464 предсказания (PU) с внутренним предсказанием для единицы предсказания (PU), используя элементы дискретизации, пространственно соседние с единицей предсказания (PU), и направление предсказания, также обеспечиваемое режимом 454 предсказания. Пространственно соседние элементы дискретизации получаются из суммы 458, выводимой из модуля 424 суммирования. Модуль 428 мультиплексора выбирает единицу 464 предсказания (PU) с внутренним предсказанием или единицу 462 предсказания (PU) с взаимным предсказанием для единицы 466 предсказания (PU), в зависимости от текущего режима 454 предсказания. Единица 466 предсказания (PU), которая выводится из модуля 428 мультиплексора, складывается с массивом 456 остаточных элементов дискретизации из модуля 422 обратного масштабирования и преобразования посредством модуля 424 суммирования для создания суммы 458, которая затем вводится в каждый из модулей: модуль 430 фильтра устранения блочности и модуль 426 внутреннего кадрового предсказания. Модуль 430 фильтра устранения блочности выполняет фильтрацию по границам блока данных, таким как границы единицы преобразования (TU), для сглаживания видимых артефактов. Выходные данные модуля 430 фильтра устранения блочности записываются в модуль 432 буфера кадров, выполненный в памяти 206. Модуль 432 буфера кадров обеспечивает достаточное хранилище для удержания одного или более декодированных кадров для обращения в будущем. Декодированные кадры 412 также выводятся из модуля 432 буфера кадров на устройство отображения, такое как устройство 136 отображения.
[0078] Фиг. 5A и 5B каждая показывают сетки элементов дискретизации участка 500 кадра и участка 510 кадра, закодированного при помощи 4:2:0 и формата цветности 4:2:2 соответственно. Формат цветности указывается в качестве параметра конфигурации кодеру 114 видео и кодер 114 видео кодирует элемент синтаксиса ‘chroma_format_idc’ в закодированном битовом потоке 312, который указывает формат цветности. Декодер 134 видео декодирует элемент синтаксиса ‘chroma_format_idc’ из закодированного битового потока 312 для определения используемого формата цветности. Например, когда используется 4:2:0 формат цветности, значение chroma_format_idc равно единице, когда используется 4:2:2 формат цветности, значение chroma_format_idc равно двум, а когда используется 4:4:4 формат цветности, значение chroma_format_idc равно трем. На Фиг. 5A и 5B, местоположения элементов дискретизации яркости, такое как местоположение 501 элемента дискретизации яркости, иллюстрируются при помощи символов ‘Х’, а местоположения элементов дискретизации цветности, такое как местоположение 502 элемента дискретизации цветности, иллюстрируются при помощи символов ‘O’. Посредством дискретизации участка 500 кадра в указанных точках, получается сетка элементов дискретизации для каждого канала цвета, когда применяется 4:2:0 формат цветности. В каждом местоположении X элемента дискретизации яркости, осуществляется дискретизация канала яркости (‘Y’), а в каждом местоположении O элемента дискретизации цветности, осуществляется дискретизация обоих каналов цветности (‘U’ и ‘V’). Как показано на Фиг. 5A, для каждого местоположения элемента дискретизации цветности, существует 2х2 компоновка местоположений элементов дискретизации яркости. Посредством дискретизации элементов дискретизации яркости в местоположениях элементов дискретизации яркости и элементов дискретизации цветности в местоположениях элементов дискретизации цветности, указанных на участке 510 кадра, получается сетка элементов дискретизации для каждого канала цвета, когда применяется 4:2:2 формат цветности. Точно такое же распределение элементов дискретизации для каналов цвета выполнено для участка 510 кадра, как и для участка 500 кадра. В противоположность участку 500 кадра, на участке 510 кадра существует в два раза больше местоположений элементов дискретизации цветности. На участке 510 кадра местоположения элементов дискретизации цветности совместно располагаются с каждым вторым местоположением элемента дискретизации яркости. Соответственно, на Фиг. 5B, для каждого местоположения цветности, существует компоновка из 2х1 местоположений элементов дискретизации яркости.
[0079] Различные допустимые размерности единиц преобразования были описаны выше в единицах элементов дискретизации яркости. Область, охватываемая преобразованием, применяемым к каналу яркости, следовательно, будет иметь такие же размерности, что и размерности единицы преобразования. Так как единицы преобразования также кодируют каналы цветности, применяемое преобразование для каждого канала цветности будет иметь размерности адаптированные в соответствии с конкретным используемым форматом цветности. Например, когда используется 4:2:0 формат цветности, 16×16 единица преобразования (TU) будет использовать 16×16 преобразование для канала яркости, и 8х8 преобразование для каждого канала цветности. Один особый случай заключается в том, что когда 4×4 преобразование используется для канала яркости, отсутствует соответствующее доступное 2х2 преобразование (когда применяется 4:2:0 формат цветности) или доступное 4×2 преобразование (когда применяется 4:2:2 формат цветности), которое может быть использовано для каналов цветности. В данном особом случае, 4×4 преобразование для каждого канала цветности может охватывать область, занимаемую несколькими преобразованиями яркости.
[0080] Фиг. 6A является схематическим представлением примерного дерева преобразования единицы 602 кодирования (CU) (изображенной с помощью толстой границы), в блоке 600 дерева кодирования (CTB) кадра. Одно подразделение квадродерева делит блок 600 дерева кодирования (CTB) на четыре 32×32 единицы кодирования (CU), такие как единица 602 кодирования (CU). Примерное дерево преобразования существует в единице 602 кодирования (CU). Примерное дерево кодирования включает в себя несколько подразделений квадродерева, которые приводят к десяти единицам преобразования (TU), пронумерованным, как такая, что на Фиг. 6A, например, единица 604 преобразования #9 (TU). Единицы преобразования #1-#10 охватывают всю единицу 602 кодирования (CU). Каждое подразделение квадродерева пространственно делит область на четыре четверти, что дает четыре более мелких области. Каждая единица преобразования (TU) имеет значение глубины преобразования, соответствующее иерархическому уровню единицы преобразования (TU) в дереве преобразования. Иерархический уровень указывает количество подразделений квадродерева, выполняемых до того, как завершает подразделение квадродерева, что приводит к экземпляру единицы преобразования (TU), который занимает соответствующую область. Например, единица 604 преобразования #9 (TU), занимает одну четвертую зоны единицы 602 кодирования (CU) и, вследствие этого, имеет глубину преобразования равную единице. Каждая единица преобразования (TU) имеет связанный размер (или ‘размер преобразования’), как правило, описываемый размерностями области, содержащей единицу преобразования (TU) по сетке элементов дискретизации яркости. Размер зависит от размера единицы кодирования (CU) и глубины преобразования. Единицы преобразования (TU) с глубиной преобразования равной нулю имеют размер равный размеру соответствующей единицы кодирования (CU). Каждое приращение глубины преобразования приводит к делению пополам размера единиц преобразования (TU), присутствующих в дереве преобразования на заданной глубине преобразования. Так как кадр включает в себя канал яркости и каналы цветности, единица 602 кодирования (CU) занимает область как по сетке элементов дискретизации яркости, так и по сетке элементов дискретизации цветности, и, следовательно, каждая единица преобразования (TU) включает в себя информацию, описывающую как элементы дискретизации яркости по сетке элементов дискретизации яркости, так и элементы дискретизации цветности по сетке элементов дискретизации цветности. Характер информации для каждой единицы преобразования (TU) зависит от стадии обработки кодера 114 видео или декодера 134 видео. На входе модуля 320 преобразования и на выходе модуля 422 обратного масштабирования и преобразования, массив 360 и 456 остаточных элементов дискретизации соответственно содержит информацию для каждой единицы преобразования (TU) в пространственной области. Массив 360 и 456 остаточных элементов дискретизации может быть дополнительно разделен на ‘массив остаточных элементов дискретизации цветности’ и ‘массив остаточных элементов дискретизации яркости’, из-за отличий в обработке между каналом яркости и каналами цветности. На выходе из модуля 322 масштабирования и квантования и на входе модуля 422 обратного масштабирования и преобразования, массив 364 и 450 остаточных данных соответственно содержит информацию для каждой единицы преобразования (TU) в частотной области. Массивы 364 и 450 остаточных данных могут быть дополнительно разделены на ‘массив остаточных данных цветности’ и ‘массив остаточных данных яркости’, из-за отличий в обработке между каналом яркости и каналами цветности.
[0081] Фиг. 6B иллюстрирует примерное дерево 630 преобразования, соответствующее примерному дереву преобразования с Фиг. 6A, для канала яркости 32х32 единицы кодирования (CU), содержащей набор единиц преобразования (TU), и занимающей единицу 602 кодирования (CU), которая занимает 32×32 массив элементов дискретизации яркости по сетке элементов дискретизации яркости. Фиг. 7 иллюстрирует структуру 700 данных, которая представляет собой примерное дерево 630 преобразования. На Фиг. 6B, рамки, пронумерованные от 1 до 10, указывают единицы преобразования, присутствующие в области 632 (проиллюстрированной посредством нескольких единиц 640 преобразования (TU)), и каждая рамка содержится в области, которая более не подразделяется (указана с помощью рамки с пунктирной границей).
[0082] На Фиг. 6B, рамки, пронумерованные 1 и 9, содержат 16×16 преобразования для канала яркости, рамки, пронумерованные 2, 3 и 8 содержат 8×8 преобразования для канала яркости, а рамки, пронумерованные от 4 до 7, содержат 4×4 преобразования для канала яркости. Соответствующая область (пунктирная рамка) для каждой из этих рамок имеет значение флага кодированного блока равное единице, для указания наличия преобразования.
[0083] Наличие или отсутствие преобразования для каждого канала цвета указывается отдельным значением флага кодированного блока, которое используется как при кодировании, так и декодировании битового потока, но которое не обязательно должно передаваться в битовом потоке, как будет рассмотрено ниже. Следовательно, количество массивов 450 остаточных коэффициентов, выводимое из энтропийного декодера 420, зависит от значений флага кодированного блока. Когда отсутствуют значимые коэффициенты (т.е., все коэффициенты равны нулю) в любом канале цвета, количество массивов 450 остаточных данных (коэффициентов), выводимое из энтропийного декодера 420, равно нулю.
[0084] На Фиг. 7, круги представляют собой значения флага разбиения преобразования с указываемым внутри соответствующего круга значением флага разбиения преобразования. На Фиг. 7, треугольники представляют собой значения флага кодированного блока, с указываемым внутри соответствующих треугольников значением флага кодированного блока. Квадраты представляют собой единицы преобразования, при этом каждое преобразование пронумеровано, чтобы согласовываться с нумерацией преобразования, представленной на Фиг. 6B.
[0085] Самый верхний иерархический уровень примерного дерева 630 преобразования содержит область 632, занимающую 32х32 единицу кодирования (CU). Значение 702 флага разбиения преобразования указывает на то, что область 632 подразделяется на четыре 16х16 области, такие как область 634, тем самым задавая ‘не концевую’ вершину примерного дерева 630 преобразования. Для каждой 16×16 области, дальнейшее значение флага разбиения преобразования, такое как значение 704 флага разбиения преобразования, указывает на то, что соответствующая 16×16 область должна быть дополнительно подразделена на четыре 8х8 области. Например, область 634 далее не подразделяется, как указывается значением 704 флага разбиения преобразования равным нулю, тем самым задается ‘концевая’ вершина примерного дерева 630 преобразования. В противоположность, область 638 дополнительно подразделяется на четыре 4×4 области (как например область 636), как указывается значением 712 флага разбиения преобразования равным единице. Структура рекурсивного разбиения, присутствующая в дереве 630 преобразования, аналогична разбиению квадродерева, присутствующему в блоке дерева кодирования (CTB). Применительно к каналу яркости, в ‘концевых’ вершинах квадродерева, наличие преобразования в единице преобразования (TU) сигнализируется значением флага кодированного блока, например, значение 708 флага кодированного блока равное единице указывает на наличие преобразования 710 в области 634.
[0086] Так как преобразование может быть использовано для представления остаточных данных в каждой области, областям не разрешено быть меньше чем наименьший поддерживаемый размер преобразования, такой как 4х4 элементы дискретизации яркости для канала яркости. Дополнительно, для областей больше наибольшего доступного размера преобразования, значение флага разбиения преобразования подразумевается равным единице. Например, для дерева преобразования с верхним уровнем в виде 64х64 единицы кодирования, автоматическое подразделение (т.е., не сигнализируемое в закодированном битовом потоке 312) на четыре 32х32 области происходит, когда наибольшим поддерживаемым размером преобразования является 32х32 элементов дискретизации яркости.
[0087] Нижняя правая 16×16 область 642 содержит единицу преобразования (TU) (пронумерована 10 (десять) и заштрихована) с отсутствующим преобразованием для канала яркости и, вследствие этого, имеет соответствующее значение 716 флага кодированного блока равное нулю.
[0088] Фиг. 6C и 8 иллюстрируют примерное дерево 630 преобразования, соответствующее примерному дереву преобразования с Фиг. 6A, для канала цветности, сконфигурированного для формата цветности 4:2:2, и содержащее набор преобразований для канала цветности, соответствующий дереву 630 преобразования для канала яркости, и представленное структурой 800 данных. Так как иерархия дерева преобразования общая в силу структуры с Фиг. 6A между каналом яркости и каналами цветности, значения флага разбиения преобразования совместно используются между структурами 700 и 800 данных. В противоположность структуре 700 данных, структура 800 данных включает в себя значение флага кодированного блока с каждым значением флага разбиения преобразования равным единице (т.е., на не концевых вершинах дерева преобразования). Например, значение 802 флага кодированного блока равное единице связано с флагом 702 разбиения преобразования. Если значение флага кодированного блока на не концевой вершине дерева преобразования равно нулю, значения флага кодированного блока на вершинах потомках подразумеваются равными нулю (и соответствующие флаги кодированного блока не кодируются в закодированном битовом потоке 312). Значения флага кодированного блока на не концевых областях разрешают завершение кодирования флагов кодированного блока на боле низких уровнях дерева преобразования для каждого канала цветности если, не присутствуют значимые остаточные коэффициенты в любой из областей потомков, даже несмотря на то, что значимые остаточные коэффициенты могут присутствовать в канале цветности. Это общая ситуация для типичных захваченных данных кадра, так как большая часть информации представлена в канале яркости.
[0089] Когда кодер 114 видео и декодер 134 видео сконфигурированы для 4:4:4 формата цветности, область цветности каждого канала цветности любой заданной единицы преобразования (TU) размера, который не является одним из предварительно определенного набора размеров единицы преобразования (TU), имеет размерности идентичные областям яркости заданной единицы преобразования (TU) (т.е., когда не имеет место подразумеваемое разбиение). Когда кодер 114 видео и декодер 134 видео сконфигурированы для 4:4:4 формата цветности, область цветности каждого канала цветности любой заданной единицы преобразования (TU) размера, который является одним из предварительно определенного набора размеров единицы преобразования (TU), имеет размерности меньше чем области яркости заданной единицы преобразования (т.е., когда не имеет место подразумеваемое разбиение).
[0090] Когда используется 4:2:2 формат цветности, это приводит к единице 602 кодирования (CU), включающей в себя 16×32 область 662 с Фиг. 6C из элементов дискретизации цветности для каждого канала цветности и, следовательно, занимающей 16×32 область по сетке элементов дискретизации цветности. Фиг. 6C иллюстрирует области по сетке элементов дискретизации цветности, нарисованные как массив элементов дискретизации цветности, при этом каждый элемент дискретизации цветности равноудален по горизонтали и вертикали (в противоположность Фиг. 5B). Из-за использования формата цветности 4:2:2, каждая из областей цветности с Фиг. 6C становится горизонтально сжатой по отношению к соответствующей области яркости с Фиг. 6B. Значение 702 флага разбиения преобразования равное единице делит 16×32 область 662, соответствующую единице 602 кодирования (CU), на четыре 8х16 области, такие как 8×16 область 664. 8×16 область 664 имеет не квадратную форму и также больше по размеру чем другие не квадратные области, иллюстрируемые на Фиг. 6C, такие как 4×8 область 670. Для каждой 8х16 области, значение флага разбиения преобразования, такое как значение 704 флага разбиения преобразования, указывает, должна ли соответствующая 8×16 область быть дополнительно подразделена на четыре меньшие 4×8 области, образом аналогичным разбиению квадродерева, присутствующему в дереве 630 преобразования для массива элементов дискретизации яркости. Верхняя правая 8×16 область 672 дополнительно подразделена на четыре 4×8 области. Значение 804 флага кодированного блока равное единице указывает на то, что каждая из четырех 4×8 областей может содержать значимые остаточные коэффициенты. Флаг кодированного блока для каждой 4×8 области, таким образом, требуется для указания на наличие преобразования для соответствующей области. Из этих четырех 4×8 областей, нижняя левая 4×8 область 674 (заштрихована) содержит единицу преобразования (TU), но не содержит преобразования и, вследствие этого, имеет значение 814 флага кодированного блока равное нулю. Оставшиеся 4×8 области, такие как область 670, каждая имеет преобразование и, вследствие этого, имеет соответствующие значения флага кодированного блока равные единице. Верхняя левая 8×16 область подразделена на две одинакового размера 8×8 области. В противоположность подразделению квадродерева, в закодированном битовом потоке 312 не присутствует соответствующий флаг разбиения преобразования.
[0091] Разбиение области канала, такого как канал цветности, единицы преобразования (TU) на несколько областей (каждая из которых может иметь преобразование), без присутствия сигнализации в закодированном битовом потоке 312, именуется ‘подразумеваемым разбиением’. Подразумеваемое разбиение исключает потребность в ведении аппаратного обеспечения, поддерживающего не квадратное преобразование для данного случая (8×16). Вместо этого, используются преобразования, такие как первое 8×8 преобразование 666. Так как существует возможность того, что каждая из областей, полученная из подразумеваемого разбиения, содержит всю нулевую остаточную информацию, необходимо указать наличие преобразования в каждой области, получаемой из подразумеваемого разбиения. Соответственно, отдельные значения флага кодированного блока требуются для каждой области, получаемой из подразумеваемого разбиения. В данном случае, значения 806 и 808 флага кодированного блока соответствуют первому 8×8 преобразованию 666 и второму 8х8 преобразованию 668 соответственно. Применительно к единицам преобразования (TU), в которых не имеет место подразумеваемое разбиение, значение флага кодированного блока для каждого канала цветности указывает на наличие или отсутствие преобразования для области, занимаемой единицей преобразования (TU) для канала цветности. Когда подразумеваемое разбиение имеет место, отдельное значение флага кодированного блока (не иллюстрируется на Фиг. 8) требуется для каждой из результирующих областей, тем не менее, реализации могут сохранять значение флага кодированного блока, свойственное для всей единицы преобразования (TU). Отдельное значение флага кодированного блока может подразумеваться как ‘единица’ во всех случаях, или отдельное значение флага кодированного блока может быть определено посредством выполнения логической операции 'ИЛИ’ в отношении значения флага кодированного блока каждой области, получаемой из разбиения. Если отдельное значение флага кодированного блока определяется из значения флага кодированного блока каждой области, получаемой из разбиения, отдельное значение флага кодированного блока может быть закодировано в закодированном битовом потоке 312 посредством энтропийного кодера 324 и декодировано из закодированного битового потока 312 посредством энтропийного декодера 420 в качестве дополнительного флага кодированного блока (не иллюстрируется на Фиг. 9). В таком случае, когда отдельное значение флага кодированного блока равно нулю, значение флага кодированного блока каждой области из разбиения может подразумеваться равным нулю, а когда отдельное значение флага кодированного блока равно единице, флаги кодированного блока для каждой области из разбиения кодируются в закодированном битовом потоке 312 энтропийным кодером 324 и декодируются из закодированного битового потока 312 энтропийным декодером 420.
[0092] Нижняя левая 8×16 область 680 16×32 области 662 иллюстрирует подразумеваемое разбиение, где 8×8 преобразование присутствует в верхней 8×8 подразумеваемой области 682, но 8х8 преобразование не присутствует в нижней 8×8 подразумеваемой области 684. Нижний правый 8×16 массив 676 (заштрихован) содержит единицу преобразования (TU), но не содержит преобразование ни в одной квадратной 8×8 области, полученной из подразумеваемого разбиения, и, вследствие этого, имеет значения 810, 812 флага кодированного блока равные нулю.
[0093] Наличие двух каналов цветности приводит к дублированию структуры, изображенной на Фиг. 6C, с отдельными значениями флага кодированного блока используемыми для указания наличия преобразования для каждого канала цветности. В данной реализации, разбиение подразумевалось для размеров области применительно к цветности отличных от размера 4×8, приводя к использованию 4×8 прямоугольного преобразования, такого как 4×8 преобразование 816 (содержащееся в области 670), и обеспечивая повторное использование существующих квадратных преобразования в других случаях (например, 8×8, 16×16). Таким образом, можно сказать что существует набор предварительно определенных размеров областей (таких как 8×16 и 16×32), для которых могут быть использованы разбиение на две области, и, следовательно, два преобразования (размеров 8×8 и 16×16). Разные определения предварительно определенного набора размеров областей, для которых происходит подразумеваемое разбиение, также возможно и будет предоставлять возможность использования разного сочетания существующих квадратных преобразования и прямоугольных преобразований. Также применительно к определенным реализациям существует возможность всегда подразумевать разбиение, и в этом случае не вводится прямоугольное преобразование для каналов цвета 4:2:2 цветности. В таком случае, предварительно определенный набор размеров областей, для которых происходит подразумеваемое разбиение, содержит все возможные размеры области цветности (например, 4×8, 8×16 и 16×32 для формата цветности 4:2:2, или 4×4, 8×8, 16×16 и 32×32 для 4:4:4 формата цветности).
[0094] Фиг. 16 является схематичным представлением, показывающим пример ‘не прямоугольного преобразования’ для реализации ‘всегда’ подразумеваемого разбиения для всех возможных размеров областей (4×8, 8×16 и 16×32) для 4:2:2 форматов цветности. Как иллюстрируется на Фиг. 16 с помощью маркировки ‘1’ (один) и ‘2’ (два) для каждой области цветности, получаемой из подразумеваемого разбиения.
[0095] Когда используется 4:2:0 формат цветности, подразумеваемое разбиение не имеет места для любой области цветности в единице преобразования (TU), вследствие этого, максимальное количество преобразований для каждого канала цветности всегда равно одному (значение флага кодированного блока для каждого канала цветности управляет тем, происходит ли преобразование цветности).
[0096] Несмотря на то, что кодер 114 видео и декодер 134 видео описываются независимо от отличий между каналами яркости и цветности, отличающиеся сетки элементов дискретизации, получаемые из форматов цветности, неизбежно влекут за собой потребность в отличиях в модулях. Практические реализации могут иметь отдельные ‘маршруты обработки’ для канала яркости и для каналов цветности. Такая реализация, следовательно, может разъединять обработку элементов дискретизации яркости и элементов дискретизации цветности. Так как закодированный битовый поток 312 является одним битовым потоком для каналов яркости и цветности, энтропийный кодер 324 и энтропийный декодер не разъединяются. Дополнительно, один буфер кадров, такой как буфер 332432 кадров, удерживает элементы дискретизации яркости и цветности и, следовательно, не разъединяется. Тем не менее, модули 322-330 и 334-340 и модули 422-430 и 434 могут иметь разъединенные обработки яркости и цветности, позволяя реализациям иметь отдельную логику для яркости и цветности, тем самым, создавая ‘маршрут обработки яркости’ и ‘маршрут обработки цветности’.
[0097] Некоторые реализации могут подразумевать разбиение для 16х32 области канала цветности единицы преобразования (TU) на две 16х16 области, но не подразумевают разбиение для случаев 8х16 и 4х8. Такие реализации избегают необходимости введения 32-точечной логики преобразования в маршрут обработки цветности, вместо этого полагаясь на 4, 8 или 16-точечную логику преобразования, хорошо разработанную в данной области техники.
[0098] Фиг. 9A и 9B иллюстрируют структуру синтаксиса, которая может быть использована для кодирования или иного представления иерархического уровня дерева преобразования. На не концевых вершинах дерева преобразования, структура 900 синтаксиса рекурсивно расширяется в соответствии со структурами данных, такими как структуры 700 и 800 данных, для задания элементов синтаксиса, присутствующих в участке закодированного битового потока 312, соответствующем дереву преобразования. На концевых вершинах дерева преобразования (где не имеет место дальнейшее подразделение в дереве преобразования) структура 930 синтаксиса задает элементы синтаксиса, присутствующие в участке закодированного битового потока 312. Как правило, присутствует одна структура данных для яркости и две структуры данных для цветности, несмотря на то, что возможны дополнительные структуры данных, как например для кодирования альфа-канала или карты глубины. В качестве альтернативы, может быть использовано меньшее число структур данных, как в случае, где одна структура данных совместно используется каналами цветности и существует возможность совместного использования значений флага кодированного блока каналами цветности. Структура 902 синтаксиса не концевой вершины дерева преобразования задает кодирование одного иерархического уровня дерева преобразования, такого как дерево 630 преобразования. Флаг 910 разбиения преобразования кодирует значение флага разбиения преобразования равное единице, такое как значение 702 флага разбиения преобразования. Данное значение указывает на то, что структура 902 синтаксиса не концевой вершины дерева преобразования включает в себя более низкий иерархический уровень, который содержит дополнительные экземпляры структуры 902 синтаксиса не концевой вершины дерева преобразования или структуры 902 синтаксиса концевой вершины дерева преобразования, или ‘вершины потомки’. Флаг 912 кодированного блока кодирует значение 802 флага кодированного блока равное единице для канала цветности ‘U’, а флаг 914 кодированного блока кодирует дополнительное значение флага кодированного блока для канала цветности ‘V’. Если структура 902 синтаксиса не концевой вершины дерева преобразования является задающей верхний уровень иерархии дерева преобразования, тогда присутствуют флаги 912 914 кодированного блока. Если структура 902 синтаксиса не концевой вершины дерева преобразования не является задающей верхний уровень иерархии дерева преобразования, тогда флаги 912 914 кодированного блока присутствуют только если соответствующие флаги кодированного блока на родительском уровне иерархии дерева преобразования присутствуют и имеют значение единицы. Так как в дереве 630 преобразования существует более низкий иерархический уровень (относительно верхнего иерархического уровня), имеет место подразделение квадродерева. Данное подразделение приводит к четырем структурам 916, 918, 920, 922 синтаксиса дерева преобразования (идентифицируемых посредством переменной ‘blkIdx’ (индекс-блока), пронумерованной от нуля до трех), включенным в структуру 902 синтаксиса не концевой вершины дерева преобразования.
[0099] Структура 903 синтаксиса задает кодирование концевой вершины концевой вершины 932 дерева преобразования (т.е., где не имеет место дальнейшее подразделение). Флаг 940 разбиения преобразования кодирует значение флага разбиения преобразования равное нулю, такое как значение 704 флага разбиения преобразования.
[0100] Флаг разбиения преобразования кодируется только если соответствующая область больше минимального размера. Например, область 636 имеет наименьший возможный размер для области из 4×4 элементов дискретизации яркости (соответствующий наименьшему поддерживаемому размеру преобразования яркости), так что значение 714 флага разбиения преобразования подразумевается нулем и флаг разбиения преобразования не кодируется для соответствующей структуры синтаксиса дерева преобразования.
[0101] Применительно к области 636, остаточные элементы дискретизации цветности преобразуются при помощи 4×8 преобразования цветности, следовательно, не присутствует подразумеваемое разбиение преобразования. Флаги кодированного блока, такие как флаг 942 кодированного блока и флаг 946 кодированного блока, могут присутствовать для сигнализации наличия преобразования для каждого из каналов цветности. Флаг 950 кодированного блока сигнализирует наличие преобразования для канала яркости. Остаточные коэффициенты для каналов яркости и цветности (если присутствуют) присутствуют в структуре 952 синтаксиса единицы преобразования (TU). Если значение флага 950 кодированного блока равно единице, флаг 964 пропуска преобразования яркости и блок 954 остаточных данных яркости, кодирующий либо остаточные коэффициенты для преобразования яркости, либо остаточные элементы дискретизации, когда преобразование пропускается, присутствуют в закодированном битовом потоке 312. Значение флага 964 пропуска преобразования яркости указывает на то, используются (при нормальной операции) или обходятся (при операции пропуска преобразования) модуль 320 преобразования в кодере 114 видео и модуль 422 обратного преобразования в декодере 134 видео. Если значение флага кодированного блока для каждого канала цветности равно единице, соответствующие флаги 966 и 968 пропуска преобразования цветности и остаточные блоки 956 и 960 цветности присутствуют в закодированном битовом потоке 312. Флаг 966 пропуска преобразования сигнализирует режим пропуска преобразования для остаточного блока 956 цветности, а флаг 968 пропуска преобразования сигнализирует режим пропуска преобразования для остаточного блока 960 цветности. Когда не происходит подразумеваемого разбиения преобразования, флаг 944 и 948 кодированного блока и остаточные блоки 958 и 962 цветности отсутствуют в закодированном битовом потоке 312. Когда не происходит подразумеваемого разбиения преобразования, флаг пропуска преобразования для каждого канала цветности, следовательно, сигнализирует режим пропуска преобразования для соответствующего канала цветности во всей области 636.
[0102] Применительно к области 664, остаточные элементы дискретизации цветности преобразуются при помощи двух 8х8 преобразований цветности, следовательно, присутствует подразумеваемое разбиение преобразования. Флаги 942 и 946 кодированного блока, если присутствуют, сигнализируют наличие 8х8 преобразований для каждого канала цветности первого 8х8 преобразования 666. Флаг 944 кодированного блока и флаг 948 кодированного блока, если присутствуют, сигнализируют наличие 8х8 преобразований для каждого канала цветности второго 8х8 преобразования 668. Если значение флага 944 кодированного блока равно единице, остаточный блок 958 цветности присутствует в закодированном битовом потоке 312. Если значение флага 948 кодированного блока равно единице, остаточный блок 962 цветности присутствует в закодированном битовом потоке 312. Флаг 966 пропуска преобразования сигнализирует режим пропуска преобразования для остаточных блоков 956 и 958 цветности, а флаг 968 пропуска преобразования сигнализирует режим пропуска преобразования для остаточных блоков 960 и 962 цветности. Когда присутствует подразумеваемое разбиение преобразования, флаг пропуска преобразования для каждого канала цветности, следовательно, является сигнализирующим режим пропуска преобразования для соответствующего канала цветности во всей области 664, в соответствии с поведением, когда не присутствует подразумеваемое разбиение преобразования.
[0103] Структура 930 синтаксиса, как иллюстрируется на Фиг. 9B, показывает первое и второе преобразование каждого канала цветности кодируемое смежно для подразумеваемого разбиения преобразования. В качестве альтернативы могут быть использованы прочие компоновки, как например смежное кодирование элементов синтаксиса для каждого цветности, или кодирование элементов синтаксиса для каждого канала цветности чередующихся с другими элементами синтаксиса.
[0104] Фиг. 9C, 9D и 9E иллюстрируют альтернативную структуру 9100 синтаксиса, которая может быть использована для кодирования или иного представления иерархического уровня дерева преобразования. На не концевых вершинах дерева преобразования, альтернативная структура 9100 синтаксиса рекурсивно расширяется в соответствии со структурами данных, такими как структуры 700 и 800 данных, для задания элементов синтаксиса присутствующих в участке закодированного битового потока 312, соответствующем дереву преобразования. Экземпляр альтернативной структуры 9100 синтаксиса существует для каждой вершины в дереве преобразования, включая концевые вершины, каждая из которых содержит единицу преобразования (TU). Где происходит ‘подразумеваемое разбиение’ для подразделения единицы преобразования (TU) для каждого канала цветности, структура 9130 синтаксиса задает элементы синтаксиса, присутствующие в участке закодированного битового потока 312 для первой субобласти, получаемой из подразумеваемого разбиения (например, верхняя половина области цветности, когда используется 4:2:2 формат цветности или верхняя левая четверть области цветности, когда используется 4:4:4 формат цветности). Кроме того, структура 9160 синтаксиса задает элементы синтаксиса, присутствующие в участке закодированного битового потока 312 для последующих субобластей, получаемых из подразумеваемого разбиения (например, еще одной субобласти для нижней половины области цветности, когда используется 4:2:2 формат цветности, и оставшихся трех субобластей области цветности, когда используется 4:4:4 формат цветности). Отсылка на ‘первую’ субобласть и ‘последующую’ субобласть (например, вторую и возможно третью и четвертую субобласть) подразумевается в очередности сканирования субобластей области в квадродереве. Очередность сканирования такова, что субобласти пересекаются сначала слева направо, а затем сверху вниз. Как правило, присутствует одна структура данных для яркости и две структуры данных для цветности, несмотря на то, что возможны дополнительные структуры данных, как например для кодирования альфа-канала или карты глубины. В качестве альтернативы, может быть использовано меньшее число структур данных, как например в случае, где одна структура данных совместно используется каналами цветности и существует возможность совместного использования значений флага кодированного блока между каналами цветности. Структура 9102 синтаксиса дерева преобразования задает кодирование одного иерархического уровня дерева преобразования, такого как дерево 630 преобразования.
[0105] Применительно к экземпляру структуры 9102 синтаксиса дерева преобразования на не концевой вершине дерева преобразования, такого как дерево 630 преобразования, флаг 9110 разбиения преобразования кодирует значение флага разбиения преобразования равное единице, такое как значение 702 флага разбиения преобразования. Данное значение указывает на то, что экземпляр структуры 9102 синтаксиса дерева преобразования включает в себя более низкий иерархический уровень, содержащий дополнительные экземпляры структуры 9102 синтаксиса дерева преобразования или ‘вершины потомки’. Флаг 9112 кодированного блока кодирует значение флага кодированного блока в соответствии с описанием флага 912 кодированного блока. Флаг 9114 кодированного блока кодирует значение флага кодированного блока в соответствии с описанием флага 914 кодированного блока. Так как существует более низкий иерархический уровень в дереве 630 преобразования (относительно верхнего иерархического уровня), имеет место подразделение квадродерева. Данное подразделение приводит к четырем структурам 9116, 9118, 9120, 9122 синтаксиса дерева преобразования (идентифицируемым посредством переменной ‘blkIdx’, пронумерованной от нуля до трех), включенным в структуру 9102 синтаксиса вершины дерева преобразования. Каждая из структур 9116, 9118, 9120, 9122 синтаксиса дерева преобразования является другим экземпляром структуры 9102 синтаксиса дерева преобразования. Флаг 9124 кодированного блока и участок 9126 единицы преобразования яркости, кодирующий либо остаточные коэффициенты для преобразования яркости, либо остаточные элементы дискретизации, когда преобразование пропускается, будут отсутствовать в структуре 9102 синтаксиса дерева преобразования.
[0106] Реализации также могут компоновать структуру 9102 синтаксиса дерева преобразования так, что флаг 9124 кодированного блока и участок 9126 единицы преобразования яркости (если присутствует) помещаются раньше в структуре 9102 синтаксиса дерева преобразования, как например, между флагом 9114 кодированного блока и структурой 9116 синтаксиса дерева преобразования.
[0107] Применительно к экземпляру структуры 9102 синтаксиса дерева преобразования на концевой вершине дерева преобразования, таком как дерево 630 преобразования, флаг 9110 разбиения преобразования кодирует значение флага разбиения преобразования равное нулю, такое как значение 704 флага разбиения преобразования. Экземпляр структуры 9102 синтаксиса дерева преобразования, следовательно, соответствует единице преобразования (TU) в дереве 930 преобразования. Единица преобразования (TU) имеет размер, который определяется в соответствии с единицей кодирования (CU), содержащей единицу преобразования (TU), такой как единица 602 кодирования (CU), и глубиной преобразования. Флаг 9112 кодированного блока кодирует значение флага кодированного блока равное единице для указания того, что любая из областей цветности, получаемая из подразумеваемого разбиения для канала цветности ‘U’, может иметь значение флага кодированного блока равное единице. Если флаг 9112 кодированного блока кодирует значение равное нулю, тогда значение флага кодированного блока для каждой области цветности, получаемой из подразумеваемого разбиения для канала цветности ‘U’, имеет значение флага кодированного блока, подразумеваемое как ноль. Даже когда флаг 9112 кодированного блока кодирует значение равное единице, реализации могут все же кодировать флаг кодированного блока со значение равным нулю для каждой области цветности, получаемой из подразумеваемого разбиения. Вследствие этого, реализации могут опускать флаг 9112 кодированного блока в закодированном битовом потоке 312, вместо всегда подразумеваемого значения флага кодированного блока равного единице для опускаемого флага 9112 кодированного блока. Флаг 9114 кодированного блока кодирует дополнительное значение флага кодированного блока для канала цветности ‘V’ образом аналогичным тому, что используется для флага 9112 кодированного блока. Применительно к размерам единицы преобразования (TU), которые согласуются с теми, для которых происходит подразумеваемое разбиение на четыре области цветности (максимальное количество массивов остаточных коэффициентов цветности составляет четыре), четыре структуры 9116 9118 9120 9122 синтаксиса дерева преобразования (идентифицируемые ‘blkIdx’ от нуля до трех) включаются в структуру 9102 синтаксиса вершины дерева преобразования. Применительно к размерам единицы преобразования (TU), которые согласуются с теми, для которых происходит подразумеваемое разбиение на две области цветности (максимальное количество массивов остаточных коэффициентов цветности составляет два), две структуры синтаксиса дерева преобразования, такие как структуры 9116 9118 синтаксиса дерева преобразования (идентифицируемые ‘blkIdx’ от нуля до единицы) включаются в структуру 9102 синтаксиса вершины дерева преобразования. Каждая из структур 9116 9118 9120 9122 синтаксиса дерева преобразования является экземпляром дерева преобразования для структуры 9132 синтаксиса цветности. Флаг 9124 кодированного блока кодирует значение флага кодированного блока, такое как значение 708 флага кодированного блока, указывающее на наличие отсутствия преобразования для канала яркости единицы преобразования (TU). Участок яркости единицы 9126 преобразования кодирует флаг пропуска преобразования яркости в качестве флага 9127 пропуска преобразования и массив остаточных коэффициентов яркости в качестве остаточных элементов 9128 синтаксиса яркости.
[0108] Дерево преобразования для структуры 9132 синтаксиса яркости, существующей только для первой области цветности (или ‘субобласти’), когда имеет место подразумеваемое разбиение, включает в себя сокращенный набор синтаксиса структуры 930 синтаксиса дерева преобразования. Флаг 9142 кодированного блока кодирует значение флага кодированного блока для канала цветности ‘U’ области цветности. Флаг 9144 кодированного блока кодирует значение флага кодированного блока для канала цветности ‘V’ области цветности. Участок цветности единицы 9146 преобразования (TU), кодирует подмножество структуры 952 синтаксиса единицы преобразования (TU). Участок цветности единицы 9146 преобразования (TU) кодирует преобразования цветности, содержащие данные цветности для одного канала цвета. Преобразования цветности кодируются в форме массива остаточных коэффициентов цветности как остаточные элементы 9150 синтаксиса цветности для канала цветности ‘U’, если значение флага 9142 кодированного блока равно единице, и массива остаточных коэффициентов цветности как остаточных элементов 9152 синтаксиса цветности для канала цветности ‘V’, если значение флага 9144 кодированного блока равно единице (собирательно, массивы остаточных коэффициентов для ‘преобразований цветности’). Флаг 9148 пропуска преобразования связан с остаточными элементами 9150 синтаксиса цветности и кодирует значение флага пропуска преобразования для канала цветности ‘U’, для каждой области цветности, получаемой из подразумеваемого разбиения. Флаг 9151 пропуска преобразования связан с остаточными элементами 9152 синтаксиса цветности и кодирует значение флага пропуска преобразования для канала цветности ‘V’, для каждой области цветности, получаемой из подразумеваемого разбиения. Эта связь посредством того, что флаг пропуска преобразования кодируется в структуре синтаксиса ‘остаточного кодирования’, которая включает в себя соответствующие остаточные элементы синтаксиса.
[0109] Дерево преобразования для структуры 9162 синтаксиса цветности, существующей только для областей цветности отличных от первой области цветности (или ‘субобласти’), когда имеет место подразумеваемое разбиение, включает в себя сокращенный набор синтаксиса структуры 930 синтаксиса дерева преобразования. Флаг 9172 кодированного блока кодирует значение флага кодированного блока для канала цветности ‘U’ области цветности. Флаг 9174 кодированного блока кодирует значение флага кодированного блока для канала цветности ‘V’ области цветности. Участок цветности единицы 9176 преобразования (TU), кодирует подмножество структуры 952 синтаксиса единицы преобразования (TU). Участок яркости единицы 9176 преобразования (TU) кодирует массив остаточных коэффициентов цветности как остаточные элементы 9180 синтаксиса цветности для канала цветности ‘U’, если значение флага 9172 кодированного блока равно единице. Участок цветности единицы 9176 преобразования (TU) кодирует массив остаточных коэффициентов цветности как остаточные элементы 9182 синтаксиса цветности для канала цветности ‘V’, если значение флага 9174 кодированного блока равно единице. Режим пропуска преобразования для области, соответствующей остаточным элементам 9180 синтаксиса цветности, определяется из флага 9148 пропуска преобразования. Режим пропуска преобразования для области, соответствующей области, соответствующей каждому остаточным элементам 9182 синтаксиса цветности, определяется из флага 9151 пропуска преобразования. Реализации могут использовать регистры аппаратного обеспечения, такие как регистры 246, или память 206, для сохранения флага пропуска преобразования из первой области цветности для использования в последующей субобласти(ях).
[0110] Структуры 9130 и 9160 синтаксиса, как иллюстрируется на Фиг. 9D и 9E, показывают первый и второй флаг кодированного блока закодированные смежно с последующим первым и вторым массивом остаточных коэффициентов цветности каждого канала цветности для подразумеваемого разбиения преобразования. В качестве альтернативы могут быть использованы другие компоновки, такие как кодирование флага кодированного блока и массива остаточных коэффициентов цветности смежно для каждого канала цветности.
[0111] Несмотря на то, что подразумеваемое разбиение преобразования иллюстрируется с помощью 8×16 области 664, разбитой на две 8×8 области, альтернативные реализации могут выполнять разбиение для других областей. Например, некоторые реализации могут подразумевать разбиение 16×32 области на две 16×16 области. Такие реализации преимущественно избегают потребности в 32-точечном 1D преобразовании по маршруту обработки цветности. Поскольку 32-точечное 1D преобразование не требуется для маршрута обработки цветности, когда применяется 4:2:0 формат цветности, требование в отношении 32-точечного 1D преобразования полностью удаляется из маршрута обработки цветности. Реализации, которые используют отдельную схему обработки для разъединения каналов яркости и цветности, следовательно, могут получать более низкую стоимость реализации в схеме обработки цветности.
[0112] 4:4:4 формат цветности существует там, где присутствует одно местоположение элемента дискретизации цветности для каждого местоположения элемента дискретизации яркости. Соответственно, при данном формате, преобразования для канала цветности и канала яркости могут иметь одинаковые размеры. При наибольшем размере преобразования равном 32×32 в маршруте обработки яркости, это потребует ввода 32×32 преобразования в маршрут обработки цветности применительно к разъединенной реализации. Конкретные реализации могут подразумевать разбиение применительно к каждому каналу цветности разбиение 32×32 области на четыре 16×16 области, разрешая повторное использование существующего 16×16 преобразования в маршруте обработке цветности. Поскольку 32×32 преобразование будет использоваться только в маршруте обработки цветности для 4:4:4 формата цветности, подразумевание разбиения для каждого канала цветности для разбиения 32×32 области на четыре 16×16 области позволит удалить 32×32 преобразование из маршрута обработки цветности, уменьшая требуемую схему обработки. Такие реализации будут требовать четыре значения флага кодированного блока для каждого канала цветности, и, следовательно, вплоть до четырех флагов кодированного блока, кодированы в структуре 930 синтаксиса для каждого канала цветности в закодированном битовом потоке 312.
[0113] Реализации, поддерживающие 4:2:2 формат цветности также могут подразумевать разбиение для каждого канала цветности для разбиения 32×16 области на четыре 8×16 области. Такие реализации требуют четыре значения флага кодированного блока для каждого канала цветности, и, следовательно, четыре флага кодированного блока кодированы в структуре 930 синтаксиса для каждого канала цветности в закодированном битовом потоке 312, следовательно, флаг ‘CU3’, ‘CU4’, ‘CV3’ и ‘CV4’ кодированного блока (не иллюстрируется на Фиг. 9B), может быть введен в структуру 952 синтаксиса единицы преобразования (TU). Такие реализации избегают введения 32-точечной логики преобразования в маршрут обработки цветности и, там, где 8×16 области не подразделяются, могут повторно использовать логику 8×16 преобразования, требуемую для единиц преобразования (TU) размера 16×16 (в канале яркости), которые требуют выполнения преобразования над преобразованием размера 8×16 для каналов цветности.
[0114] Фиг. 10 является принципиальной блок-схемой, показывающей способ 1000 для кодирования единицы преобразования (TU) посредством кодирования структуры 902 синтаксиса не концевой вершины дерева преобразования и структуры 932 синтаксиса концевой вершины дерева преобразования. Способ 1000 описывается со ссылкой на канал цветности единицы преобразования (TU), тем не менее, способ 1000 может быть применен к любому каналу цветности единицы преобразования (TU). Так как структура 902 синтаксиса не концевой вершины дерева преобразования и структура 932 синтаксиса концевой вершины дерева преобразования описывают одну вершину в дереве преобразования, способ 1000 кодирует одну вершину дерева преобразования в закодированном битовом потоке 312. Способ 1000 может быть реализован в аппаратном обеспечении или программном обеспечении, исполняемом на процессоре 205, например. Способ 1000 исходно вызывается для верхнего уровня дерева преобразования и выполнен с возможностью вызова себя самого (рекурсивно) для кодирования вершин потомков дерева преобразования. Этап 1002 определения размера единицы преобразования определяет размер единицы преобразования (TU) в дереве преобразования в соответствии с размером единицы кодирования (CU), которая содержит дерево преобразования, и значением глубины преобразования единицы преобразования (TU). Когда способ 1000 вызывается на верхнем уровне дерева преобразования, значение глубины преобразования устанавливается равным нулю, в противном случае значение глубины преобразования предоставляется родительским экземпляром способа 1000. Значение флага разбиения преобразования, такое как значение 702 флага разбиения преобразования, кодируется в закодированном битовом потоке 312 как флаг 910 разбиения преобразования, если значение глубины преобразования меньше максимально разрешенной глубины преобразования.
[0115] Когда значение флага разбиения преобразования равно единице, флаги 912 и 914 кодированного блока цветности кодируются для каждого канала цветности только если родительская вершина иерархии дерева преобразования имеет соответствующее значение флага кодированного блока равное единице. Способ 1000 затем вызывает новый экземпляр способа 1000 для каждой вершины потомка (представленной в участке закодированного битового потока 312 посредством структур 916, 918, 920 и 922 синтаксиса дерева преобразования) дерева преобразования. Каждому экземпляру способа 1000, вызванному для вершин потомков, предоставляется значение глубины преобразования равное значению глубины преобразования настоящего экземпляра способа 1000, увеличенному на единицу.
[0116] Когда значение флага разбиения преобразования равно нулю, этап 1004 идентификации максимального количества прямых преобразований определяет максимальное количество (n) преобразований для каждого канала цветности кодируемой области. Когда имеет место подразумеваемое разбиение, это количество n будет равно единицей. Когда используется 4:2:2 формат цветности и сталкиваются с прямоугольной областью канала цветности, такой как 8×16 область 664, и размер области соответствует одному из предварительно определенного набора размеров области (такому как 16×32 и 8×16), имеет место подразумеваемое разбиение и максимальное количество преобразований будет равно двум (в противном случае количество преобразований будет равно одному). В противном случае (размер области не соответствует одному из предварительно определенного набора размеров области) максимальное количество преобразований будет равно одному. Например, если 4×8 не является одним из предварительно определенного набора размеров области, тогда максимальное количество преобразований будет равно одному. Когда используется 4:4:4 формат цветности и размером области, с которым сталкиваются является одним из предварительно определенного набора размеров области (таким как 32×32 область), имеет место подразумеваемое разбиение и максимальное количество преобразований будет равно четырем. В противном случае (размер области не является одним из предварительно определенного набора размеров области) максимальное количество будет равно одному. Например, если 8×8 не является одним из предварительно определенного набора размеров области, тогда максимальное количество преобразований будет равно одному. Несмотря на то, что предварительно определенный набор размеров области включает в себя 8×16, возможен другой предварительно определенный набор размеров области, такой, как только 16×32, когда используется 4:2:2 формат цветности или 32×32, когда используется 4:4:4 формат цветности.
[0117] Для каждого канала цветности, если родительская вершина имела значение флага кодированного блока равное единице, тогда для каждого из n, флаг кодированного блока кодируется в закодированном битовом потоке 312. Например, когда количество преобразований равно двум, флаги 942 и 944 кодированного блока указывают на наличие преобразования для каждой из двух областей, подразумеваемых посредством разбиения. Этап 1006 выбора прямого преобразования выбирает прямое преобразование из предварительно определенного набора прямых преобразований, для каждого из максимального количества преобразований, на основании размера единицы преобразования (TU), который в свою очередь зависит от глубины преобразования, и, следовательно, относится к иерархическому уровню единицы преобразования в наибольшей единице кодирования. Когда глубина преобразования равна нулю, размер единицы преобразования (TU) равен размеру единицы кодирования (CU). Для каждого приращения глубины преобразования, размер единицы преобразования (TU) делится пополам. Применительно к 32×32 размеру единицы кодирования (CU), глубине преобразования равной нулю и использованию формата цветности 4:2:2, размер единицы преобразования (TU), следовательно, будет 32×32, а размер преобразования для цветности, следовательно, будет 16×32. Например, когда максимальное количество преобразований равно двум и размер области для цветности равен 16×32, тогда 16×16 прямое преобразование выбирается для каждой из 16×16 областей для цветности, полученных в результате подразумеваемого разбиения.
[0118] Этап 1008 применения прямого преобразования выполняет прямое преобразование для каждого из максимального количества преобразований по соответствующей области, которая имеет значение флага кодированного блока равное единице. Этап 1008 кодирования массивов остаточных элементов дискретизации цветности, как правило, выполняется модулем 320 преобразования. Это приводит к конвертации каждого массива остаточных элементов дискретизации цветности (представления в пространственной области) в массив остаточных коэффициентов цветности (представление в частотной области).
[0119] Этап 1010 кодирования массивов остаточных коэффициентов цветности кодирует массив остаточных коэффициентов цветности для каждого из максимального количества областей преобразования каждого канала цветности со значением флага кодированного блока равным единице в закодированный битовый поток 312. Количество массивов остаточных коэффициентов цветности, кодируемых для заданной единицы преобразования для заданного канала цветности, зависит от значения флага кодированного блока каждого преобразования и, следовательно, будет варьироваться от нуля до (в большинстве) максимального количества преобразований. Например, когда количество преобразований равно двум и оба канала цветности имеют значения флага кодированного блока равные единице для каждого из значений счетчика, тогда остаточные блоки 956, 958, 960 и 962 цветности кодируются в закодированном битовом потоке. Если значение флага кодированного блока для каждого преобразования для заданного канала цветности равно нулю, тогда остаточный блок цветности не кодируется в закодированном битовом потоке для канала цветности. Этап 1010 кодирования массива остаточных коэффициентов цветности, как правило, выполняется посредством энтропийного кодера 324.
[0120] Фиг. 11 является принципиальной блок-схемой, показывающей способ 1100 для декодирования единицы преобразования (TU) посредством декодирования структуры 902 синтаксиса не концевой вершины дерева преобразования и структуры 932 синтаксиса концевой вершины дерева преобразования. Способ 1100 описывается со ссылкой на канал цветности единицы преобразования (TU), тем не менее, способ 1100 может быть применен к любому каналу цветности единицы преобразования (TU). Так как структура 902 синтаксиса не концевой вершины дерева преобразования и структура 932 синтаксиса концевой вершины дерева преобразования описывает одну вершину в дереве преобразования, способ 1100 декодирует одну вершину дерева преобразования из закодированного битового потока 312. Способ 1100 может быть выполнен в соответствующем аппаратном обеспечении или альтернативно в программном обеспечении, например, исполняемом процессором 205. Способ 1100 исходно вызывается для верхнего уровня дерева преобразования и, выполнен с возможностью, вызова себя самого (рекурсивно) для декодирования вершин потомков дерева преобразования. Этап 1102 определения размера единицы преобразования (TU) определяет размер единицы преобразования (TU) образом идентичным этапу 1002 определения размера единицы преобразования. Этап 1102 определения размера единицы преобразования определяет размер единицы преобразования (TU) в дереве преобразования в соответствии с размером единицы кодирования (CU), которая содержит дерево преобразования, и значением глубины преобразования единицы преобразования (TU). Когда способ 1100 вызывается на верхнем уровне дерева преобразования, значение глубины преобразования устанавливается равным нулю, в противном случае значение глубины преобразования предоставляется родительским экземпляром способа 1100. Значение флага разбиения преобразования, такое как значение 702 флага разбиения преобразования, декодируется из закодированного битового потока 312 в качестве флага 910 разбиения преобразования, если значение глубины преобразования меньше максимальной разрешенной глубины преобразования.
[0121] Когда значение флага разбиения преобразования равно единице, флаги 912 и 914 кодированного блока цветности декодируются для каждого канала цветности только если родительская вершина иерархии дерева преобразования имеет соответствующее значение флага кодированного блока равное единице. Способ 1100 затем вызывает новый экземпляр способа 1100 для каждой вершины потомка (представленной в участке закодированного битового потока 312 структурами 916, 918, 920 и 922 синтаксиса дерева преобразования) дерева преобразования. Каждому экземпляру способа 1100, вызванному для вершин потомков, предоставляется значение глубины преобразования равное значению глубины преобразования настоящего экземпляра способа 1100 увеличенному на единицу.
[0122] Когда значение флага разбиения преобразования равно нулю, этап 1104 идентификации максимального количества обратных преобразований определяет (максимальное) количество (n) преобразований для каждого из по меньшей мере одного массивов остаточных коэффициентов цветности, присутствующих в каждом канале цветности декодируемой области, образом идентичным этапу 1004 идентификации максимального количества (n) прямых преобразований. Когда не имеет место подразумеваемое разбиение, данное количество n будет равно одному. Когда используется 4:2:2 формат цветности и сталкиваются с прямоугольной областью канала цветности, такой как 8×16 область 664, и размер области соответствует одному из предварительно определенного набора размеров областей (такому как 16×32 и 8×16), имеет место подразумеваемое разбиение и максимальное количество преобразований будет равно двум (в противном случае количество преобразований будет равно одному). В противном случае (размер области не соответствует одному из предварительно определенного набора размеров области) максимальное количество преобразований будет равно одному. Например, если 4×8 не является одним из предварительно определенного набора размеров области, тогда максимальное количество преобразований будет равно одному. Когда используется 4:4:4 формат цветности и размер области с которым сталкиваются является одним из предварительно определенного набора размеров области (таким как 32×32 область), имеет место подразумеваемое разбиение и максимальное количество преобразований будет равно четырем. В противном случае (размер области не является одним из предварительно определенного набора размеров области) максимальное количество будет равно одному. Например, если 8×8 не является одним из предварительно определенного набора размеров области, тогда максимальное количество преобразований будет равно одному. Несмотря на то, что предварительно определенный набор размеров области включает в себя 8×16, возможен другой предварительно определенный набор размеров области, такой, как только 16×32, когда используется 4:2:2 формат цветности, или 32×32, когда используется 4:4:4 формат цветности. Для каждого канала цветности, если родительская вершина имела значение флага кодированного блока равное единице, тогда для каждого из (n) преобразований, флаг кодированного блока декодируется в закодированном битовом потоке 312. Например, когда максимальное количество преобразований равно двум, флаги 942 и 944 кодированного блока указывают на наличие преобразования для каждой из двух областей, подразумеваемых посредством разбиения.
[0123] Этап 1106 декодирования массивов остаточных коэффициентов цветности декодирует массив остаточных коэффициентов цветности для каждого из максимального количества областей преобразования каждого канала цветности из закодированного битового потока 312 с значением флага кодированного блока равным единице. Количество массивов остаточных коэффициентов, декодируемых для заданной единицы преобразования для заданного канала цветности, зависит от значения флага кодированного блока каждого преобразования и, следовательно, будет варьироваться от нуля до (в большинстве) ‘количества (n) преобразований’. Например, когда количество преобразований равно двум и оба канала цветности имеют флаги кодированного блока равные единице для каждого из значений счетчика, тогда остаточные блоки 956, 958, 960 и 962 цветности декодируются из закодированного битового потока 312. Этап 1106 декодирования массива остаточных коэффициентов цветности, как правило, выполняется посредством энтропийного декодера 420 для каждого массива остаточных коэффициентов цветности со значением флага кодированного блока равным единице.
[0124] Этап 1108 выбора обратного преобразования затем выбирает обратное преобразование из предварительно определенного набора обратных преобразований, для каждого из максимального количества преобразований со значением флага кодированного блока равным единице для каждого канала цветности. Например, когда максимальное количество преобразований равно двум и размер области равен 16×32, а значение флага кодированного блока для каждого из двух преобразований равно единице, тогда 16×16 обратное преобразование выбирается для каждой из 16×16 областей, полученных в результате подразумеваемого разбиения.
[0125] Этап 1110 применения обратного преобразования затем выполняет обратное преобразование для каждой из максимального количества областей преобразований по соответствующей области со значением флага кодированного блока равным единице. Это приводит к конвертации каждого массива остаточных коэффициентов цветности (представления в частотной области) в массив остаточных элементов дискретизации цветности (представление в пространственной области), представляющий собой декодированный видео кадр. Этап 1110 применения обратного преобразования, как правило, выполняется посредством модуля 422 обратного масштабирования и преобразования.
[0126] Фиг. 12A показывает шаблон 1201 диагонального сканирования, Фиг. 12B показывает шаблон 1202 горизонтального сканирования, а Фиг. 12C показывает шаблон 1203 вертикального сканирования, каждый для 4×8 единицы 1200 преобразования. Эти реализации, которые сканируют 4×8 единицу 1200 преобразования, при помощи иллюстрируемых шаблонов сканирования, обладают свойством того, что остаточные коэффициенты группируются в 4×4 блоки, известные как ‘субблоки’. Флаг ‘группы коэффициентов’, присутствующий в закодированном битовом потоке 312, вследствие этого, может быть использован для указания, для каждого субблока, на наличие по меньшей мере одного значимого (не нулевого) остаточного коэффициента. Применение 4×4 размера субблока для 4×8 преобразования достигает связанности с шаблоном сканирования, присутствующем в других размерах преобразования, где коэффициенты всегда группируются в субблоках.
[0127] Конкретные реализации могут применять флаг группы коэффициентов для сигнализации наличия по меньшей мере одного не нулевого остаточного коэффициента в каждом субблоке. Преимущественно, эти шаблоны сканирования разрешают повторное использование программного обеспечения управления или цифровой схемы, которая обрабатывает остаточные коэффициенты, посредством повторного использования обработки субблока для всех размеров преобразования. Конкретный используемый шаблон сканирования может быть выбран в соответствии с критерием, таким как направление внутреннего предсказания совместно расположенной единицы предсказания (PU). Где преобразование кодирует элементы дискретизации цветности по сетке элементов дискретизации формата цветности 4:2:2, зависимость между направлением внутреннего предсказания и шаблоном сканирования изменяется, так как каждый элемент дискретизации цветности соотносится с не квадратным (2×1) массивом элементов дискретизации яркости, оказывая влияние на ‘направление’ или угол режима внутреннего предсказания. Сканирование показано в ‘обратном’ направлении на Фиг. 12A-12C, заканчиваясь на DC коэффициенте, расположенном в верхнем левом углу единицы преобразования (TU). Кроме того, не требуется, чтобы сканирование начиналось в нижнем правом углу единицы преобразования (TU). Из-за преобладания ненулевых остаточных коэффициентов в верхней левой области единицы преобразования (TU), сканирование может начинаться из ‘позиции последнего значимого коэффициента’ и проходить в обратном направлении вплоть до достижения верхнего левого коэффициента.
[0128] Прочие реализации могут применять одно сканирование для заданной области для кодирования остаточных коэффициентов и затем применять более одного преобразования к этим остаточным коэффициентам. В данном случае, только один флаг кодированного блока используется для области и, вследствие этого, для всех преобразований, охватываемых шаблоном сканирования. Флаг кодированного блока устанавливается равным единице, если по меньшей мере один значимый остаточный коэффициент существует в любом из сканирований. Например, 4×8 шаблоны сканирования на Фиг. 12A-12C могут быть применены для кодирования остаточных коэффициентов двух 4×4 преобразований. Два 4×4 массива остаточных коэффициентов могут быть сцеплены для формирования 4×8 массива, подходящего для шаблона сканирования. Так как одно сканирование выполняется над массивом, одна позиция ‘последнего значимого коэффициента’ кодируется в битовом потоке для шаблона сканирования и одного значения флага кодированного блока достаточно для массива. Свойство уплотнения энергии модифицированного дискретного косинусного преобразования (DCT) дает преимущество в сравнении с другими схемами, такое как чередование коэффициентов каждого квадратного преобразования по маршруту шаблона сканирования в прямоугольном массиве коэффициентов. Это дает преимущество, заключенное в том, что плотность значений остаточных коэффициентов в каждом 4×4 массиве остаточных коэффициентов приблизительно выравнивается в объединенном 4×8 массиве, обеспечивая достижение более высокой эффективности сжатия энтропийным кодером 324, для последующего декодирования энтропийным декодером 420.
[0129] Некоторые реализации кодирования каналов цвета по цветности могут использовать первое преобразование для кодирования остаточных элементов дискретизации в местоположениях элементов дискретизации цветности, соответствующих 4:2:0 сетке элементов дискретизации цветности, и второе преобразование для кодирования остаточных элементов дискретизации в дополнительных местоположениях элементов дискретизации цветности, вносимых при 4:2:2 сетке элементов дискретизации цветности, относительно 4:2:0 сетки элементов дискретизации цветности. Такие реализации могут преимущественно использовать упрощенное преобразование для второго преобразования, такое как преобразование Адамара, при этом выходные данные второго преобразования складываются (или иным образом объединяются) с остаточными элементами дискретизации для первого преобразования, чтобы создать остаточные элементы дискретизации для второго преобразования. Преимущественно стадия предварительной обработки, реализующая преобразование, такое как преобразование Адамара, может быть использована для дискретизации сетки элементов дискретизации цветности для формата цветности 4:2:2 в сетку элементов дискретизации цветности для 4:2:0 формата цветности. Такие конфигурации должны передавать дополнительные остаточные коэффициенты из стадии предварительной обработки в качестве побочной информации, причем такой остаток, применяемый к каждой наибольшей единице кодирования (LCU) в случае, когда преобразование предварительной обработки применяется на уровне наибольшей единицы кодирования (LCU).
[0130] Реализации с несколькими преобразованиями для заданной области могут использовать либо одно объединенное сканирование, охватывающее всю область, либо отдельное сканирование для каждого преобразования. Если сканирование для нескольких преобразований объединяется в одно сканирование, тогда только один флаг кодированного блока требуется для каждой сканируемой области. Эти реализации, использующие одно объединенное сканирование, могут достигать более высокого сжатия остаточных коэффициентов посредством чередования остаточных коэффициентов каждого преобразования, такого как чередование на основе коэффициент-за-коэффициентом, для того, чтобы совместно располагать остаточные коэффициенты из каждого преобразования с подобными спектральными свойствами.
[0131] Фиг. 13 является принципиальной блок-схемой, показывающей способ 1300 кодирования единицы преобразования. Способ 1300, выполняемый кодером 114 видео, кодирует канал яркости и канал цветности единицы преобразования. На этапе 1302 определения значения флага пропуска преобразования яркости, модуль 346 управления пропуском преобразования определяет значение флага пропуска преобразования, такого как флаг 964 или 9127 пропуска преобразования, для канала яркости, как правило, посредством тестирования затрат на кодирование массива 360 остаточных элементов дискретизации как в пространственной области (пропуск преобразования выполняется), так и частотной области (пропуск преобразования не выполняется). На этапе 1304 определения значения флага пропуска преобразования цветности, модуль 346 управления пропуском преобразования определяет или иным образом устанавливает значение флага пропуска преобразования, такого как флаг 966 или 9148 пропуска преобразования, для одного из каналов цветности, который будет применен ко всем субобластям, получающимся из подразумеваемого разбиения, и принадлежащих к одному и тому же каналу цветности. Модуль 346 управления пропуском преобразования может применять логику подобную той, что применяется к каналу яркости, тем не менее определение затрат скорости передачи битов должно учитываться для каждого из массивов остаточных элементов дискретизации цветности, получаемых из подразумеваемого разбиения, при определении затрат либо на выполнение пропуска преобразования для всех массивов остаточных элементов дискретизации цветности в канале цветности (или ‘канале цвета’), либо на выполнение пропуска преобразования для ни одного из массивов остаточных элементов дискретизации цветности в канале цветности. Этап 1304 определения значения флага пропуска преобразования цветности повторяется для каждого канала цветности, определяя значения флага пропуска преобразования для других каналов цветности, таких как флаг 968 или 9151 пропуска преобразования. Этап 1306 кодирования преобразования яркости и преобразования цветности кодирует массив остаточных элементов дискретизации яркости в закодированном битовом потоке 312 при помощи энтропийного кодера 324 и кодирует массивы остаточных элементов дискретизации цветности для канала цветности в закодированном битовом потоке 312 при помощи энтропийного кодера 324. Массив остаточных элементов дискретизации яркости определяется в соответствии с флагом пропуска преобразования яркости, либо посредством преобразования в модуле 320 преобразования массива остаточных элементов дискретизации в массив остаточных коэффициентов, либо выполняя обход модуля 320 преобразования, когда пропуск преобразования выполняется кодером 114 видео. Впоследствии, остаточный массив 363 пересылается модулю 322 масштабирования и квантования для создания массива 364 остаточных данных. Когда по меньшей мере одно из значений в массиве 364 остаточных данных не нулевое, значения массива 364 остаточных данных кодируются в закодированном битовом потоке 312 посредством энтропийного кодера 324 (в блоке остаточных данных, таком как блок 954, 956, 958, 960 или 962 остаточных данных) и соответствующий флаг кодированного блока устанавливается равным единице. Массивы остаточных элементов дискретизации цветности определяются подобно массивам остаточных элементов дискретизации яркости, за исключением того, что массивы остаточных элементов дискретизации цветности отличные от первого совместно используют флаг пропуска преобразования с первым массивом остаточных элементов дискретизации цветности. Этап 1306 кодирования массивов остаточных элементов дискретизации цветности повторяется для каждого канала цветности.
[0132] Фиг. 14 является принципиальной блок-схемой, показывающей способ 400 для декодирования единицы преобразования. Способ 1400, выполняемый декодером 134 видео, декодирует канал яркости и канал цветности единицы преобразования. Этап 1402 определения значения флага пропуска преобразования яркости определяет значение флага пропуска преобразования для канала яркости посредством декодирования флага пропуска преобразования, такого как флаг 964 или 9127 пропуска преобразования, из закодированного битового потока 312 при помощи энтропийного декодера 420. Этап 1404 определения значения флага пропуска преобразования цветности определяет значение флага пропуска преобразования для одного из массивов остаточных элементов дискретизации цветности в канале цветности, которое должно быть применено ко всем массивам остаточных элементов дискретизации цветности в канале цветности и в той же самой единице преобразования (TU). Этап 1404 декодирует флаг пропуска преобразования, такой как флаг 966 или 9148 пропуска преобразования, из закодированного битового потока 312, при помощи энтропийного декодера 420. Реализации, которые связывают флаг пропуска преобразования с первым массивом остаточных элементов дискретизации цветности, избегают потребности в буферизации более ранних массивов остаточных элементов дискретизации перед определением флага пропуска преобразования из более позднего массива остаточных коэффициентов (который затем будет использован для продолжения обработки более раннего массива остаточных элементов дискретизации, тем самым вводя внутреннюю буферизацию). Этап 1404 также может определять флаг пропуска преобразования для дополнительных каналов цветности, как например посредством декодирования флага 968 или 9151 пропуска преобразования из закодированного битового потока 312 при помощи энтропийного декодера 420. Этап 1406 декодирования преобразования яркости и преобразования цветности предписывает энтропийному декодеру 420 декодировать массив остаточных коэффициентов яркости, такой как блок 954 остаточных данных яркости, когда соответствующий флаг кодированного блока равен единице, такой как флаг 950 кодированного блока, и массивы остаточных коэффициентов цветности, связанных с конкретным каналом цветности, таких как массивы 956 и 958 остаточных коэффициентов цветности, когда каждый соответствующий флаг кодированного блока, такой как флаги 942 и 944 кодированного блока, равны единице. При декодировании преобразования яркости, массив остаточных коэффициентов яркости пересылается только через модуль 422 обратного преобразования, если пропуск преобразования не выполняется, в противном случае массив остаточных коэффициентов яркости обходит модуль 422 обратного преобразования. При декодировании преобразования цветности, для каждого массива остаточных элементов дискретизации цветности в единице преобразования, применяется флаг пропуска преобразования, присутствующий в закодированном битовом потоке 312 и связанный с первым массивом остаточных элементов дискретизации яркости.
[0133] Описание способов 1300 и 1400 относятся к ‘единице преобразования’, которая может содержать несколько массивов остаточных элементов дискретизации цветности для заданного канала цветности, когда имеет место подразумеваемое разбиение. Это согласуется со структурой 930 синтаксиса. Когда используются структуры 9100, 9130 и 9160 синтаксиса, каждая область цветности, полученная из подразумеваемого разбиения, иллюстрируется в качестве отдельной единицы преобразования (TU), помеченной в качестве единиц преобразования цветности (CTU) на Фиг. 9C, 9D и 9E. Для целей способов 1300 и 1400, единицы преобразования цветности (CTU) являются лишь артефактом использования структуры 9100 синтаксиса дерева преобразования для разбиения областей цветности. На Фиг. 9C, пространственная область, занимаемая единицей 9126 преобразования яркости (LTU), может считаться ‘единицей преобразования’ поскольку она занимает точно такую же пространственную область, что и единица 952 преобразования. Единицы 9116 9118 и 9120-9122 преобразования цветности (CTU) (если присутствуют) могут считаться субобластями цветности, полученными из подразумеваемого разбиения.
[0134] Преимущественно, оба способа 1300 и 1400 приводят к одному флагу пропуска преобразования, кодируемому для каждого канала цвета, независимо от наличия или отсутствия операции подразумеваемого разбиения (которая может быть применена, когда используются 4:2:2 и 4:4:4 форматы цветности). Данная характеристика приводит к единообразному характеру при 4:2:0 формате цветности, где один флаг пропуска преобразования присутствует для каждого массива остаточных коэффициентов, и только один массив остаточных коэффициентов присутствует для каждого канала цвета применительно к заданной единице преобразования. Например, 8×8 единица преобразования в 4:2:0 будет иметь 8×8 преобразование для яркости и 4×4 преобразование цветности для каждого канала цветности. Один флаг пропуска преобразования будет присутствовать для каждого канала цветности в данном случае. В случае 4:2:2, при подразумеваемом разбиении, два 4×4 преобразования цветности будут присутствовать в каждом канале цветности. Флаг пропуска преобразования кодированный с первым 4×4 преобразованием цветности, но применяемый к обоим 4×4 преобразованиям цветности, будет управлять статусом пропуска преобразования для той же самой пространственной области, как и в случае 4:2:0. Данный единообразный характер приводит к обработке пропуска преобразования для 4:2:2, которая обратно совместима со случаем 4:2:0 (т.е., не происходит перекомпоновки элементов синтаксиса в 4:2:0 из-за поддержки пропуска преобразования в 4:2:2). Наличие общего пропуска преобразования для цветности приводит к подразумеваемому разбиению, которое избегает искусственного разделения единицы преобразования на верхнюю половину и нижнюю половину в целях указания пропуска преобразования.
[0135] Фиг. 15 является схематичным представлением, показывающим возможные компоновки 4×4 преобразований в 4×4 и 8×8 единице преобразования, для кодера 114 видео и декодера 134 видео. Каналы Y, U и V цвета изображены на Фиг. 15 в столбцах, а три случая изображены вдоль строк. Во всех изображенных случаях кодер 114 видео и декодер 134 видео сконфигурированы для использования формата цветности 4:2:2. Также, во всех случаях, кодер 114 видео и декодер 134 видео поддерживают подразумеваемое разбиение 4×8 области цветности на две 4×4 области цветности, и, следовательно, два 4×4 преобразования цветности изображено для каждого канала цвета. Изображенными тремя случаями являются:
случай 1: 8×8 единица преобразования (TU) (верхняя строка);
случай 2: четыре 4×4 единицы преобразования (TU) с первым упорядочением (очередность 1) преобразований (средняя строка); и
случай 3: четыре 4×4 единицы преобразования (TU) со вторым упорядочением (очередность 2) преобразований (нижняя строка).
[0136] Для каждого случая, преобразования пронумерованы в очередности, в которой они появляются в закодированном битовом потоке 312. Случай 1 показывает единицу преобразования (TU) с 8×8 преобразованием яркости и двумя 4×4 преобразованиями, для каждого канала цветности. Преобразование яркости не имеет флага пропуска преобразования поскольку преобразование яркости является 8×8. Случай 2 и 3 дополнительно иллюстрируют случай, где четыре 4×4 единицы преобразования приводят к областям яркости для каждого преобразования цветности, которые распространяются на несколько единиц преобразования (TU). В Случаях 2 и 3, четыре единицы преобразования (TU) пронумерованы от нуля до трех и проиндексированы с помощью переменной ‘blkIdx’, как используемой в разрабатываемом стандарте высокоэффективного кодирования видео (HEVC). Для каждого преобразования, изображенного на Фиг. 15, если поддерживается пропуск преобразования, рамка включается в верхний левый угол преобразования. Для преобразований, в которых флаг пропуска преобразования всегда явно кодируется, рамка заштрихована (такая как заштрихованная рамка 1502). Незаштрихованная рамка (такая как незаштрихованная рамка 1504) иллюстрирует случай, когда флаг пропуска преобразования для настоящего преобразования извлекается из более раннего (такого как преобразование сверху). Реализации, которые не поддерживают данное извлечение, будут явным образом кодировать флаг пропуска преобразования в закодированном битовом потоке 312 для преобразований с незаштрихованными рамками. В Случае 2 и Случае 3, структура синтаксиса единицы преобразования, такая как структура 952 синтаксиса единицы преобразования, вызывается четыре раза (со значением для ‘blkIdx’, увеличивающимся от нуля до трех), один раз для каждой 4х4 единицы преобразования. Таким образом, четыре экземпляра структуры синтаксиса единицы преобразования присутствует в закодированном битовом потоке 312. На каждом вызове, остаточный блок яркости, такой как блок 954 остаточных данных яркости, присутствует в закодированном битовом потоке 312, если соответствующий флаг кодированного блока, такой как флаг 950 кодированного блока, имеет значение равное единице. В Случае 2, на четвертом вызове (‘blkIdx’ равна трем), остаточные блоки цветности для каналов цветности, такие как остаточные блоки 956, 958, 960, 962 цветности, кодируются в закодированном битовом потоке 312 (если соответствующие флаги кодированного блока, такие как флаги 942, 944, 946, 948 кодированного блока имеют значение равное единице). Упорядочение остаточных блоков яркости и цветности с Фиг. 9B соответствует упорядочению преобразований, присутствующих в Случае 2. В случае 3, упорядочение меняется из-за следующего: Остаточные блоки цветности для верхней половины (такие как остаточные 956, 960 цветности) обрабатываются на втором вызове структуры синтаксиса единицы преобразования (т.е., когда ‘blkIdx’ равна единице), а остаточные блоки цветности для нижней половины (такие как остаточные блоки 958, 962 цветности) обрабатываются на четвертом вызове структуры синтаксиса единицы преобразования (т.е., когда ‘blkIdx’ равна трем).
[0137] Другой случай, не иллюстрируемый на Фиг. 15, состоит в том, что из 4×4 единицы преобразования, когда используется 4:2:0 формат цветности, одно 4×4 преобразование для цветности применяется к зоне по сетке элементов дискретизации цветности, которая соответствует четырем 4×4 единицам преобразования для яркости на одном и том же иерархическом уровне квадродерева (вместе занимающими 8×8 область по сетке элементов дискретизации яркости). Когда 4×8 преобразование доступно в цветности, пропуск преобразования для случая 4:2:2 применяется к 4×8 преобразованию (в дополнение к 4×4 преобразованию), как описывается со ссылкой на Фиг. 18 ниже. Когда 4×8 преобразование не доступно в цветности и используется 4:2:2 формат цветности, реализации должны использовать два 4×4 преобразования для каждого канала цветности и могут кодировать флаг пропуска преобразования для одного 4×4 преобразования, такого как верхнее 4×4 преобразование, но применять закодированный флаг пропуска преобразования для обоих 4×4 преобразований для заданного канала цветности.
[0138] Фиг. 17 является принципиальной блок-схемой, показывающей способ 1700 для декодирования остаточных данных для единицы преобразования (TU), развивая аспекты способа 1400 с Фиг. 14. Способ 1700 определяет флаг пропуска преобразования для заданной области и декодирует остаточные данные для области. Когда способ 1700 вызывается для канала яркости единицы преобразования (TU), существует только одна область. Применительно к одному каналу цветности единицы преобразования (TU) и когда происходит подразумеваемое разбиение, две области присутствуют и способ 1700 вызывается для каждой области со значением флага кодированного блока равным единице. Способ 1700 начинается с этапа 1702 тестирования поддерживаемого пропуска преобразования. Этап 1702 тестирует флаг задействованного пропуска преобразования и флаг обхода квантования преобразования единицы кодирования и размер преобразования для настоящей области. Флаг задействованного пропуска преобразования, закодированный в закодированном битовом потоке 312, указывает на то, доступна ли в закодированном битовом потоке 312 функция пропуска преобразования. Флаг обхода квантования преобразования единицы кодирования, закодированный в закодированном битовом потоке 312, указывает на то, был ли кодером 114 видео выбран режим кодирования ‘без потерь’, посредством которого выполняется обход как модуля 320 преобразования, так и модуля 322 квантования, и, следовательно, кодер 114 видео функционирует в режиме без потерь, позволяя декодеру 134 видео точно воспроизводить захваченные данные кадра от источника 112 видео. Размер преобразования для настоящей области, указываемый переменной ‘log2TrafoSize’ в разрабатываемом стандарте высокоэффективного кодирования видео (HEVC), который задается как log2 боковой размерности квадратного преобразования. Когда флаг пропуска преобразования соответствует значению истина (т.е., задействовано), а флаг обхода квантования преобразования единицы кодирования соответствует значению ложь (т.е., не задействовано) и размер преобразования составляет 4×4 (т.е., log2TrafoSize равна 2), управление переходит к этапу 1704 тестирования первой области с истинным флагом кодированного блока (CBF) в канале цвета, в противном случае управление переходит к этапу 1712 декодирования остаточных данных. Этап 1704 тестирования определяет, является ли настоящая область первой областью в канале цвета (и в единице преобразования (TU) со значением флага кодированного блока (CBF) равным единице). Так как способ 1700 вызывается только если значение флага кодированного блока для настоящей области равно единице, возможно два случая. Если способ 1700 вызывается для первой области цветности (верхней области, когда используется 4:2:2 формат цветности, например, области 682 или 666 на Фиг. 6C) подразумеваемого разбиения, тогда этап 1704 тестирования дает оценку, соответствующую значению истина, и управление переходит к этапу 1706 декодирования флага пропуска преобразования. Если способ 1700 вызывается для последующей области(ей) цветности подразумеваемого разбиения (нижней области, когда используется 4:2:2 формат цветности, например, области 684 или 668 на Фиг. 6C), этап 1704 тестирования дает оценку, соответствующую значению ложь, когда способ 1700 был ранее вызван для первой области цветности (применительно к настоящей единице преобразования), и соответствующую значению истина, когда способ 1700 не был ранее вызван для первой области цветности (применительно к настоящей единице преобразования). Когда этап 1704 тестирования дает оценку, соответствующую значению истина, управление переходит к этапу 1706 декодирования флага пропуска преобразования. На этапе 1706, энтропийный декодер 420 декодирует флаг пропуска преобразования из закодированного битового потока 312, чтобы определить значение флага пропуска преобразования. Этап 1708 сохранения значения флага пропуска преобразования сохраняет значение флага пропуска преобразования в памяти, такой как регистры аппаратного обеспечения или регистры 246, для использования позже при последующих вызовах способа 1700. Если этап 1704 тестирования дает оценку, соответствующую значению ложь, управление переходит к этапу 1710 извлечения флага пропуска преобразования, где значение флага пропуска преобразования, определенное и сохраненное на предыдущем вызове способа 1700, извлекается из памяти, такой как регистры аппаратного обеспечения или регистры 246. На этапе 1712 декодирования остаточных данных, блок остаточных данных, такой как блок 954, 956, 958, 960 или 962 остаточных данных, декодируется из закодированного битового потока 312 энтропийным декодером 420. Определенное значение флага пропуска преобразования пересылается в качестве значения 468 флага пропуска преобразования для управления операцией пропуска преобразования, как описывается выше со ссылкой на мультиплексор 423. Этапы 1702-1710 соответствуют этапу 1402 с Фиг. 14, когда способ 1700 вызывается для канала яркости, и этапы 1702-1710 соответствуют этапу 1404 с Фиг. 14, когда способ 1700 вызывается для канала цветности. Этап 1712 декодирования остаточных данных соответствует декодированию остатка яркости этапа 1406 с Фиг. 14 и декодированию остатка цветности этапа 1406 с Фиг. 14. Способ 1700 также соответствует структуре синтаксиса ‘остаточного кодирования’, как задается в разрабатываемом стандарте высокоэффективного кодирования видео (HEVC).
[0139] Фиг. 18 является схематичным представлением 1800, показывающим операцию пропуска преобразования, применяемую к 4×8 области цветности (с 4×8 не квадратным преобразованием) для каждого канала цвета. На Фиг. 18 изображены канал яркости (‘Y’) и каждый канал цветности (‘U’ и ‘V’). На Фиг. 18 изображены два случая:
[0140] Случай 1: ‘8×8 TU’ (верхняя строка на Фиг. 18) изображает 8×8 единицу преобразования (TU), с 8×8 преобразованием 1802 для канала яркости и 4×8 (не квадратным или прямоугольным) преобразованием 1804 для каждого канала цветности. Флаг пропуска преобразования изображен с помощью заштрихованной рамки в верхнем правом углу преобразования для которого поддерживается операция пропуска преобразования. В данном случае, операция пропуска преобразования также поддерживается в случае 4×8 преобразования (в дополнение к случаю 4×4 преобразования) и, следовательно, каждое из 4×8 преобразований включает в себя флаг 1806 пропуска преобразования, как иллюстрируется на Фиг. 18.
[0141] Случай 2: ‘Четыре 4×4 TU’ (нижняя строка на Фиг. 18) изображает четыре 4×4 единицы преобразования (TU), с четырьмя 4×4 преобразованиями 1808 для канала яркости и 4×8 (не квадратным или прямоугольным) преобразованием 1810 для каждого канала цветности. 4×8 преобразование для каждого канала цветности совместно располагается (по сетке элементов дискретизации цветности) с преобразованием яркости (по сетке элементов дискретизации яркости) и совместно используется среди четырех единиц преобразования 4×4 (TU). В данной реализации, операция пропуска преобразования также поддерживается в случае 4×8 преобразования (в дополнение к случаю 4×4 преобразования) и, следовательно, 4×8 преобразования включают в себя флаг 1812 пропуска преобразования, как иллюстрируется на Фиг. 18.
[0142] Применительно к реализации, поддерживающей Случаи 1 и 2 с Фиг. 18, модифицированные этап 1702 тестирования и этапы 1706 и 1712 способа 1700 выполняются декодером 134 видео. Модифицированный этап 1702 тестирования функционирует как этап 1702 тестирования с Фиг. 17, за исключением того, что размер преобразования 4×8 включается (в дополнение к размеру преобразования 4×4) в качестве возможного размера преобразования для которого поддерживается операция пропуска преобразования, тем самым позволяя модифицированному этапу 1702 тестирования выдавать оценку, соответствующую значению истина, как в случае 4×4, так и в случае 4×8 преобразования.
[0143] Приложение A иллюстрирует возможный ‘текст’ применительно к разрабатываемому стандарту высокоэффективного кодирования (HEVC), который соответствует структуре 900 синтаксиса и структуре 930 синтаксиса. Каждый экземпляр функции transform_tree() в приложении A, изображается в качестве участка структуры синтаксиса промаркированной ‘TT’ на Фиг. 9A и 9C, а каждый экземпляр функции transform_unit() в Приложении A изображается в качестве участка структуры синтаксиса промаркированной ‘TU’ на Фиг. 9A и 9B. Текст, предоставленный в Приложении A, является одним примером текста, который согласуется со структурами 900 и 930 синтаксиса и возможны прочие примеры. Текст, который согласуется со структурами 900 и 930 синтаксиса, предполагает, что кодер 114 видео выполняет способ 1000 для кодирования битового потока, а декодер 134 видео выполняет способ 1100 для декодирования битового потока.
[0144] Приложение B иллюстрирует возможный текст применительно к разрабатываемому стандарту высокоэффективного кодирования видео (HEVC), который соответствует структуре 9100 синтаксиса и структуре 9130 синтаксиса. Каждый экземпляр функции transform_tree() в приложении B, изображается в качестве участка структуры синтаксиса промаркированной ‘TT’ на Фиг. 9C, 9D и 9E, а каждый экземпляр функции transform_unit() в Приложении B изображается в качестве участка структуры синтаксиса промаркированной ‘TU’ на Фиг. 9C, 9D и 9E. Текст, предоставленный в Приложении B, является одним примером текста, который согласуется со структурами 9100 и 9130 синтаксиса и возможны прочие примеры. Текст, который согласуется со структурами 9100 и 9130 синтаксиса, также предполагает, что кодер 114 видео выполняет способ 1000 для кодирования битового потока, а декодер 134 видео выполняет способ 1100 для декодирования битового потока.
[0145] Текст в Приложении A и Приложении B приводят к реализации, посредством которой 32×32 область цветности, с которой сталкиваются в единице преобразования (TU) размера 32×32, сконфигурированной для 4:4:4 формата цветности, приводит к применяемым (максимальному количеству) четырем 16×16 преобразованиям цветности, а 16×32 область цветности, с которой сталкиваются в единице преобразования (TU) размером 32×32, сконфигурированной для формата цветности 4:2:2, приводит к применяемым (максимальному количеству) двум 16×16 преобразованиям цветности. Реализация, получаемая из текста в Приложении A и Приложении B, когда применяется к единицам преобразования (TU) меньшего размера и сконфигурированным для формата цветности 4:2:2, применяет (максимум) одно преобразование цветности. Например, 8×16 преобразование применяется в 8×16 области цветности и 4×8 преобразование применяется к 4×8 области цветности.
Промышленная применимость
[0146] Описанные компоновки применимы в компьютерной отрасли и отрасли обработки данных и в частности для цифровой обработки сигналов применительно к кодированию и декодированию сигналов, таких как видеосигналы.
[0147] Вышеприведенное описывает только некоторые варианты осуществления настоящего изобретения, и модификации и/или изменения могут быть в этом сделаны, не отступая от объема и сущности изобретения, при этом варианты осуществления являются иллюстрирующими, а не ограничивающими.
[0148] (Только для Австралии) В контексте данного технического описания, слово «содержащий» означает «включающий в себя главным образом, но не обязательно исключительно» или «обладающий» или «включающий в себя», и не «состоящий только из». Вариации слова «содержащий», такие как «содержать» и «содержит» имеют соответственно измененные значения.
ПРИЛОЖЕНИЕ A
TRANSFORM_TREE() И TRANSFORM_UNIT() РЕАЛИЗУЮТ ПОДРАЗУМЕВАЕМОЕ РАЗБИЕНИЕ ЦВЕТНОСТИ, ИСПОЛЬЗУЯ ОПЕРАТОР ЦИКЛА
7.3.11 Синтаксис дерева преобразования
7.3.12 Синтаксис единицы преобразования
7.4.8.1 Общая семантика единицы кодирования
Переменные TrafoCrCbHorCnt и TrafoCrCbVertCnt извлекаются следующим образом:
- Если log2TrafoSize равна 5 и split_transform_flag равна 0, TransformIdxMax извлекается следующим образом:
- Если chroma_format_idc равна 1, TrafoCrCbHorCnt и TrafoCrCbVertCnt равны 1.
- Если chroma_format_idc равна 2, TrafoCrCbHorCnt равна 1, а TrafoCrCbVertCnt равна 2.
- В противном случае, если chroma_format_idc равна 3, TrafoCrCbHorCnt и TrafoCrCbVertCnt равны 2.
- В противном случае, TrafoCrCbHorCnt и TrafoCrCbVertCnt равны 1.
Переменная TrafoCrCbCnt извлекается как TrafoCrCbHorCnt * TrafoCrCbVertCnt.
Переменные log2CrCbTrafoHorSize и log2CrCbTrafoVertSize извлекаются следующим образом:
- Если chroma_format_idc равна 1, log2CrCbTrafoHorSize и log2CrCbTrafoVertSize равны log2TrafoSize - 1.
- В противном случае, если chroma_format_idc равна 2, log2CrCbTrafoHorSize равна log2TrafoSize, а log2CrCbTrafoVertSize равна min(log2TrafoSize - 1, 4).
- В противном случае, если chroma_format_idc равна 3, log2CrCbTrafoHorSize и log2CrCbTrafoVertSize равны min(log2TrafoSize, 4).
Конец Приложения A
ПРИЛОЖЕНИЕ B
ВЫЗЫВАЮТ TRANSFORM_TREE() ОДИН РАЗ НА ПАРУ КАНАЛОВ ЦВЕТНОСТИ ДЛЯ КАЖДОГО ПРЕОБРАЗОВАНИЯ ЦВЕТНОСТИ, ПОЛУЧАЕМОГО ИЗ ПОДРАЗУМЕВАЕМОГО РАЗБИЕНИЯ
7.3.11 Синтаксис дерева преобразования
7.3.12 Синтаксис единицы преобразования
7.4.8.1 Общая семантика единицы кодирования
Переменные TrafoCrCbHorCnt и TrafoCrCbVertCnt извлекаются следующим образом:
- Если log2TrafoSize равна 5 и split_transform_flag равна 0, TransformIdxMax извлекается следующим образом:
- Если chroma_format_idc равна 1, TrafoCrCbHorCnt и TrafoCrCbVertCnt равны 1.
- Если chroma_format_idc равна 2, TrafoCrCbHorCnt равна 1, а TrafoCrCbVertCnt равна 2.
- В противном случае, если chroma_format_idc равна 3, TrafoCrCbHorCnt и TrafoCrCbVertCnt равны 2.
- В противном случае, TrafoCrCbHorCnt и TrafoCrCbVertCnt равны 1.
Переменная TrafoCrCbCnt извлекается как TrafoCrCbHorCnt * TrafoCrCbVertCnt.
Конец Приложения B