Способ, устройство и система для кодирования и декодирования единиц преобразования единицы кодирования
Иллюстрации
Показать всеИзобретение относится к области кодирования/декодирования видео. Технический результат - обеспечение повышения эффективности кодирования видео. Способ декодирования единицы преобразования содержит: определение иерархического уровня для единицы преобразования в пределах единицы кодирования из флагов преобразования разделения; определение размера преобразования единицы преобразования для единственного канала цветности; декодирование множества значений флага кодированного блока из битового видеопотока для единственного канала цветности единицы преобразования, при этом единица преобразования имеет множество массивов остаточных коэффициентов сигнала цветности; декодирование каждого из множества массивов остаточных коэффициентов сигнала цветности согласно значению флага кодированного блока; выбор квадратного обратного преобразования для декодированных массивов остаточных коэффициентов сигнала цветности; применение выбранного квадратного обратного преобразования к каждому из декодированных массивов остаточных коэффициентов сигнала цветности для получения остаточных отсчетов сигнала цветности для канала цветности единицы преобразования. 6 н. и 14 з.п. ф-лы, 21 ил.
Реферат
ПЕРЕКРЕСТНАЯ ССЫЛКА НА СВЯЗАННЫЕ ЗАЯВКИ
[0001] Данная заявка в соответствии с §119(e) 35 U.S.C. испрашивает приоритет по дате подачи австралийской патентной заявки № 2012232992, поданной 28 сентября 2012 г., которая тем самым включена в настоящий документ посредством ссылки во всей ее полноте как если бы она была полностью сформулирована в настоящем документе.
ОБЛАСТЬ ТЕХНИКИ
[0002] Настоящее изобретение в целом относится к обработке сигнала цифрового видео и в частности к способу, устройству и системе для кодирования и декодирования остаточных коэффициентов единицы преобразования (TU), где единица преобразования (TU) включает в себя одну или более единиц преобразования (TU) и может конфигурироваться для множества форматов цветности, в том числе формат цветности 4:2:2.
УРОВЕНЬ ТЕХНИКИ
[0003] В настоящее время существует множество приложений для видеокодирования, в том числе приложения для передачи и хранения видеоданных. Также было разработано множество стандартов видеокодирования, и новые стандарты находятся в настоящий момент в разработке. Недавние разработки в стандартизации видеокодирования привели к формированию группы, названной «Объединенная Совместная Команда по Видеокодированию» (JCT-VC). Объединенная Совместная Команда по Видеокодированию (JCT-VC) включает в себя членов Исследовательской группы 16, Вопрос 6 (SG16/Q6) Сектора стандартизации электросвязи (ITU-T) Международного Телекоммуникационного Объединения (ITU), известной как Группа Экспертов по Видеокодированию (VCEG), а также членов Международных организаций по Стандартизации/Совместный Технический Комитет 1 Международной электротехнической комиссии/Подкомиссия 29/Рабочая группа 11 (ISO/IEC JTC1/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] В соответствии с другим аспектом настоящего раскрытия предлагается способ кодирования в битовый видеопоток единицы преобразования, содержащей остаточные отсчеты сигнала цветности, связанные с единственным каналом цветности, причем единица преобразования содержит по меньшей мере один массив остаточных отсчетов сигнала цветности, способ содержит:
определение размера единицы преобразования, причем размер связан с иерархическим уровнем единицы преобразования в соответствующей единице кодирования;
идентификацию максимального количества предопределенных прямых преобразований, используемых для преобразования упомянутого по меньшей мере одного массива остаточных отсчетов сигнала цветности в соответствии с определенным размером;
выбор прямого преобразования для массивов остаточных отсчетов сигнала цветности, причем прямое преобразование выбирается из предопределенного набора прямых преобразований;
применение выбранного прямого преобразования к каждому из массивов остаточных отсчетов сигнала цветности для преобразования по меньшей мере одного из массивов остаточных отсчетов сигнала цветности в соответствующий массив остаточных коэффициентов сигнала цветности для канала цветности единицы преобразования; и
кодирование массивов остаточных коэффициентов сигнала цветности для канала цветности единицы преобразования;
[0008] Предпочтительно максимальное количество преобразований равно одному или двум. Предпочтительно это количество равно двум и применяется в формате цветности 4:2:2 к имеющей размер 32×16 области цветности единицы преобразования.
[0009] Предпочтительно количество преобразований выбирается из набора из одного, двух и четырех. В конкретной реализации это количество равно четырем и применяется в формате цветности 4:4:4 к имеющей размер 32×32 области цветности единицы преобразования с размером 32×32.
[00010] Предпочтительно применяется единственное сканирование, покрывающее идентифицированное количество преобразований. Желательно, чтобы коэффициенты идентифицированного количества преобразований перемежались.
[00011] В одной реализации единица преобразования, имеющая размер 4×8, сканируется с использованием схемы сканирования подблоков 4×4.
[00012] В другой реализации количество применяемых преобразований определяется с использованием по меньшей мере флага блока кода. Желательно, чтобы количество применяемых преобразований определялось с использованием идентифицированного максимального количества преобразований и значения флага кодированного блока для каждого преобразования.
[00013] В соответствии с другим аспектом настоящего изобретения предлагается способ декодирования единицы преобразования, содержащей остаточные отсчеты сигнала цветности, из битового видеопотока, причем единица преобразования содержит по меньшей мере один массив остаточных коэффициентов сигнала цветности, связанный с единственным каналом цветности в формате цветности 4:2:2, способ содержит:
определение иерархического уровня для единицы преобразования в пределах единицы кодирования из флагов преобразования разделения, присутствующих в битовом видеопотоке, при этом размер единицы кодирования находится в диапазоне от наименьшей единицы кодирования до наибольшей единицы кодирования;
определение размера преобразования единицы преобразования для единственного канала цветности, причем размер преобразования связан с определенным иерархическим уровнем единицы преобразования и размером единицы кодирования;
определение множества значений флага кодированного блока из битового видеопотока для единственного канала цветности единицы преобразования, при этом единица преобразования имеет множество массивов остаточных коэффициентов сигнала цветности для единственного цветового канала, и каждое значение флага кодированного блока из упомянутого множества значений флага кодированного блока соответствует одному массиву остаточных коэффициентов сигнала цветности из массивов остаточных коэффициентов сигнала цветности;
декодирование из битового видеопотока каждого из множества массивов остаточных коэффициентов сигнала цветности согласно соответствующему значению флага кодированного блока из упомянутого множества значений флага кодированного блока;
выбор квадратного обратного преобразования для декодированных массивов остаточных коэффициентов сигнала цветности, причем квадратное обратное преобразование выбирается из предопределенного набора квадратных обратных преобразований согласно определенному размеру преобразования; и
применение выбранного квадратного обратного преобразования к каждому из декодированных массивов остаточных коэффициентов сигнала цветности для получения остаточных отсчетов сигнала цветности для канала цветности единицы преобразования.
[00014] В соответствии с другим аспектом настоящего изобретения предлагается способ кодирования единицы преобразования, содержащей остаточные отсчеты сигнала цветности, в битовый видеопоток, причем единица преобразования содержит по меньшей мере один массив остаточных коэффициентов сигнала цветности, связанный с единственным каналом цветности в формате цветности 4:2:2, способ содержит:
кодирование флагов преобразования разделения в битовый видеопоток на основе принятого иерархического уровня для единицы преобразования в пределах единицы кодирования, при этом размер единицы кодирования находится в диапазоне от наименьшей единицы кодирования до наибольшей единицы кодирования;
прием размера преобразования единицы преобразования для единственного канала цветности, причем размер преобразования связан с иерархическим уровнем единицы преобразования и размером единицы кодирования;
кодирование множества значений флага кодированного блока в битовый видеопоток для единственного канала цветности единицы преобразования, при этом единица преобразования имеет множество массивов остаточных коэффициентов сигнала цветности для единственного цветового канала, и каждое значение флага кодированного блока из упомянутого множества значений флага кодированного блока соответствует одному массиву остаточных коэффициентов сигнала цветности из массивов остаточных коэффициентов сигнала цветности;
выбор квадратного прямого преобразования для массивов остаточных коэффициентов сигнала цветности, причем квадратное прямое преобразование выбирается из предопределенного набора квадратных прямых преобразований согласно принятому размеру преобразования;
применение выбранного квадратного прямого преобразования к каждому из декодированных массивов остаточных коэффициентов сигнала цветности для получения остаточных отсчетов сигнала цветности для канала цветности единицы преобразования; и
кодирование в битовый видеопоток каждого из упомянутого множества массивов остаточных коэффициентов сигнала цветности согласно соответствующему значению флага кодированного блока из упомянутого множества значений флага кодированного блока.
[00015] Также раскрываются и другие аспекты.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[00016] По меньшей мере один вариант осуществления настоящего изобретения будет теперь описан со ссылкой на следующие чертежи, в которых:
[00017] Фиг.1 представляет собой блок-схему, показывающую систему кодирования и декодирования видео;
[00018] Фиг. 2A и 2B образуют схематическую блок-схему компьютерной системы общего назначения, на которой может быть осуществлена система по меньшей мере одного из кодирования и декодирования видео, изображенная на Фиг.1;
[00019] Фиг.3 представляет собой блок-схему, показывающую функциональные модули видеокодера;
[00020] Фиг.4 представляет собой блок-схему, показывающую функциональные модули видеодекодера;
[00021] Фиг. 5A и 5B схематично иллюстрируют форматы цветности для представления данных кадра;
[00022] Фиг.6A является схематическим представлением примерного дерева преобразований единицы кодирования;
[00023] Фиг.6B является схематическим представлением примерного дерева преобразований, расположенного на сетке отсчетов сигнала яркости;
[00024] Фиг.6C является схематическим представлением примерного дерева преобразований, расположенного на сетке отсчетов сигнала цветности;
[00025] Фиг.7 представляет собой схематическую иллюстрацию структуры данных, представляющей канал яркости примерного дерева преобразований;
[00026] Фиг.8 иллюстрирует структуру данных, представляющую канал цветности примерного дерева преобразований;
[00027] Фиг. 9A и 9B схематично показывают структуру потока битов, которая кодирует примерное дерево преобразований;
[00028] Фиг. 9C и 9D схематично показывают альтернативную структуру потока битов, которая кодирует примерное дерево преобразований;
[00029] Фиг.10 представляет собой блок-схему последовательности операций, показывающую способ для кодирования примерного дерева преобразований;
[00030] Фиг.11 представляет собой блок-схему последовательности операций, показывающую способ для декодирования примерного дерева преобразований; и
[00031] Фиг. 12A-12C схематично показывают схемы сканирования остатка единицы преобразования размером 4×8.
ПОДРОБНОЕ ОПИСАНИЕ, ВКЛЮЧАЮЩЕЕ В СЕБЯ ЛУЧШИЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ
[00032] Там, где ссылочные цифры, обозначающие этапы и/или особенности, в любом одном или более сопроводительных чертежей являются одинаковыми, эти этапы и/или особенности в целях данного описания представляют собой одинаковые функции или операции, если явно не указано противоположное.
[00033] Фиг.1 представляет собой блок-схему, показывающую функциональные модули системы 100 кодирования и декодирования видео, которая может использовать способы кодирования синтаксических элементов, характерных для предполагаемого подразделения единиц преобразования на многократные преобразования для канала цветности. Система 100 включает в себя устройство-источник 110 и устройство-адресат 130. Канал 120 связи используется для передачи закодированной видеоинформации от устройства-источника 110 к устройству-адресату 130. В некоторых случаях устройство-источник 110 и устройство-адресат 130 могут включать в себя соответствующие мобильные телефоны, и в этом случае канал 120 связи является беспроводным каналом. В других случаях устройство-источник 110 и устройство-адресат 130 могут включать в себя оборудование для организации видеоконференций, и в этом случае канал 120 связи обычно является проводным каналом, таким как интернет-соединение. Кроме того, устройство-источник 110 и устройство-адресат 130 могут включать в себя любое из широкого диапазона устройств, в том числе устройства, поддерживающие эфирное телевещание, приложения кабельного телевидения, приложения интернет-видео и в том числе приложения, в которых закодированное видео записывается на некотором носителе данных или файловом сервере.
[00034] Как было проиллюстрировано, устройство-источник 110 включает в себя видеоисточник 112, видеокодер 114 и передатчик 116. Видеоисточник 112 обычно включает в себя источник данных захватываемого видеокадра, такой как датчик формирователя изображений, ранее захваченную видео последовательность, сохраненную на невременном (“non-transitory”) носителе записи, или видеопоток от удаленного датчика формирователя изображений. Примеры устройств-источников 110, которые могут включать в себя датчик формирователя изображений в качестве видеоисточника 112, включают в себя смартфоны, видеокамеры и сетевые видеокамеры. Видеокодер 114 преобразует захваченные от видеоисточника 112 данные кадра в закодированные видеоданные и будет описан далее со ссылкой на Фиг.3. Закодированные видеоданные обычно передаются передатчиком 116 по каналу 120 связи в виде закодированной видеоинформации. Для закодированных видеоданных также возможно сохранение в некотором устройстве хранения данных, таком как флэш-память или жесткий диск, до того, как они позже будут переданы по каналу 120 связи.
[00035] Устройство-адресат 130 включает в себя приемник 132, видеодекодер 134 и устройство 136 отображения. Приемник 132 принимает закодированную видеоинформацию из канала 120 связи и передает принятые видеоданные видеодекодеру 134. Видеодекодер 134 затем выводит декодированные данные кадра на устройство 136 отображения. Примеры устройства 136 отображения включают в себя электронно-лучевую трубку, жидкокристаллическое устройство отображения, такое как в смартфонах, планшетных компьютерах, компьютерных мониторах или в автономных телевизионных приемниках. Также возможно воплощение функциональности каждого из устройства-источника 110 и устройства-адресата 130 в одном устройстве.
[00036] Невзирая на примерные устройства, упомянутые выше, каждое из устройства-источника 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.
[00037] Компьютерный модуль 201 обычно включает в себя по меньшей мере один блок 205 процессора и блок 206 памяти. Например, блок 206 памяти может иметь полупроводниковую память произвольного доступа (RAM) и полупроводниковую память только для чтения (ROM). Компьютерный модуль 201 также включает в себя ряд интерфейсов ввода/вывода (I/O), в том числе: аудио-видео интерфейс 207, который соединяется с устройством 214 отображения, громкоговорителями 217 и микрофоном 280; интерфейс ввода-вывода 213, который соединяется с клавиатурой 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 может также обеспечивать функциональность передатчика 116 и приемника 132, а канал 120 связи также может быть воплощен в локальной сети 222.
[00038] Интерфейс ввода-вывода 208 и 213 может обеспечивать одну или обе из последовательной и параллельной связи, причем первая обычно реализуется в соответствии со стандартами Универсальной Последовательной Шины (USB) и имеет соответствующие соединители USB (не показаны). Предусматриваемые устройства 209 хранения данных обычно включают в себя жесткий диск (HDD) 210. Другие устройства хранения данных, такие как дисковод и накопитель на магнитной ленте (не показаны) также могут использоваться. Оптический дисковод 212 обычно предусматривается для использования в качестве энергонезависимого источника данных. Портативные устройства памяти, например такие как оптические диски (например, CD-ROM, DVD, Blu-ray Disc™), USB-RAM, портативные внешние жесткие диски, и дискеты, могут использоваться в качестве подходящих источников данных для компьютерной системы 200. Как правило, любой из жесткого диска 210, накопителя на оптических дисках 212 и сетей 220 и 222 также может быть выполнено с возможностью работы в качестве видеоисточника 112, или в качестве места назначения для декодированных видеоданных, которые должны быть сохранены для воспроизведения через устройство 214 отображения.
[00039] Компоненты 205-213 компьютерного модуля 201 обычно обмениваются информацией через соединяющую их шину 204 таким способом, который приводит к обычному режиму работы компьютерной системы 200, известному специалистам в данной области техники. Например, процессор 205 связывается с системной шиной 204 с использованием соединения 218. Аналогичным образом, память 206 и оптический дисковод 212 связываются с системной шиной 204 с помощью соединений 219. Примеры компьютеров, на которых могут быть осуществлены описанные компоновки, включают в себя компьютеры типа IBM PC и совместимые с ними, Sun SPARCstations, Apple MacTM или подобные компьютерные системы.
[00040] Когда это необходимо или желательно, видеокодер 114 и видеодекодер 134, так же как и описанные ниже способы, могут быть реализованы с использованием компьютерной системы 200, в которой видеокодер 114, видеодекодер 134 и процессы, которые изображены на Фиг. 10 - 13 и будут описаны позже, могут быть реализованы как одно или более программных приложений 233, исполняемых на компьютерной системе 200. В частности, видеокодер 114, видеодекодер 134 и этапы описанных способов реализуются инструкциями 231 (см. Фиг.2B) в программном обеспечении 233, которые выполняются на компьютерной системе 200. Инструкции 231 программного обеспечения могут быть сформированы как один или более модулей кода, каждый из которых выполняет одну или более конкретных задач. Программное обеспечение также может быть поделено на две отдельные части, в которых первая часть и соответствующий ей модуль кода выполняет описанные способы, а вторая часть и соответствующий ей модуль кода управляет пользовательским интерфейсом между первой частью и пользователем.
[00041] Программное обеспечение может быть сохранено на считываемом компьютером носителе, в том числе, например, устройствах хранения данных, описанных ниже. Программное обеспечение загружается в компьютерную систему 200 со считываемого компьютером носителя, а затем выполняется компьютерной системой 200. Считываемый компьютером носитель, содержащий такое программное обеспечение или компьютерную программу, записанную на считываемом компьютером носителе, является компьютерным программным продуктом. Использование компьютерного программного продукта в компьютерной системе 200 предпочтительно осуществляет предпочтительное устройство для реализации видеокодера 114, видеодекодера 134 и описанных способов.
[00042] Программное обеспечение 233 обычно хранится на жестком диске 210 или в памяти 206. Программное обеспечение загружается в компьютерную систему 200 со считываемого компьютером носителя, а затем выполняется компьютерной системой 200. Таким образом, например, программное обеспечение 233 может быть сохранено на оптически читаемом дисковом носителе данных (например, CD-ROM) 225, который читается оптическим дисководом 212.
[00043] В некоторых случаях программы 233 приложения могут поставляться пользователю закодированными на одном или более дисках CD-ROM 225 и читаться с помощью соответствующего дисковода 212, или альтернативно могут быть считаны пользователем из сетей 220 или 222. Кроме того, программное обеспечение также может быть загружено в компьютерную систему 200 с других считываемых компьютером носителей. Считываемые компьютером носители данных означают любой невременной материальный носитель данных, который обеспечивает записанные инструкции и/или данные для компьютерной системы 200 для выполнения и/или обработки. Примеры таких носителей данных включают в себя дискеты, магнитную ленту, CD-ROM, DVD, диск blu-ray, жесткий диск, ROM или интегральную схему, память USB, магнитно-оптический диск или считываемую компьютером карту, такую как карта PCMCIA и т.п., независимо от того, являются ли такие устройства внутренними или внешними по отношению к компьютерному модулю 201. Примеры временных или нематериальных считываемых компьютером носителей (сред), которые также могут участвовать в процессе доставки программного обеспечения, приложений, инструкций и/или видеоданных или закодированных видеоданных к компьютерному модулю 401, включают в себя радио- или инфракрасные каналы передачи, а также сетевое соединение с другим компьютером или сетевым устройством, а также Интернет или сети Интранет, в том числе передачу электронной почты и информацию, записанную на веб-сайтах и т.п.
[00044] Вторая часть приложений 233 и соответствующие упомянутые выше модули кода могут выполняться для реализации одного или более графических интерфейсов пользователя (GUI), которые должны быть воспроизведены или иным образом представлены на устройстве 214 отображения. Посредством манипулирования обычно клавиатурой 202 и мышью 203, пользователь компьютерной системы 200 и приложение может управлять интерфейсом функционально адаптируемым способом для того, чтобы обеспечить команды управления и/или ввод для приложений, связанных с GUI. Также могут быть реализованы другие формы функционально адаптируемых пользовательских интерфейсов, такие как аудиоинтерфейс, использующий вывод речевых подсказок через громкоговорители 217 и речевой ввод пользовательских команд через микрофон 280.
[00045] Фиг.2B представляет собой подробную блок-схему процессора 205 и «памяти» 234. Память 234 представляет собой логическую агрегацию всех модулей памяти (в том числе жесткого диска 209 и полупроводниковой памяти 206), к которым может осуществлять доступ компьютерный модуль 201 на Фиг.2A.
[00046] Когда изначально включается питание компьютерного модуля 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 запускает выполнение процессором 205 программы 252 загрузчика операционной системы, которая является резидентным объектом на жестком диске 210. Она загружает операционную систему 253 в память RAM 206, после чего операционная система 253 начинает работу. Операционная система 253 является приложением системного уровня, выполняемым процессором 205 для того, чтобы выполнять различные высокоуровневые функции, включая управление процессором, управление памятью, управление устройствами, управление хранением, обеспечение интерфейса с приложениями, а также обеспечение универсального пользовательского интерфейса.
[00047] Операционная система 253 управляет памятью 234 (209, 206) для того, чтобы гарантировать, что каждый процесс или приложение, выполняющееся на компьютерном модуле 201, имеет достаточно памяти для выполнения и не создает коллизий с памятью, выделенной другому процессу. Кроме того, различные типы памяти, доступной в компьютерной системе 200, изображенной на Фиг.2A, должны использоваться так, чтобы каждый процесс мог работать эффективно. Соответственно, агрегированная память 234 предназначена не для иллюстрации того, как выделяются определенные сегменты памяти (если не указано иное), а скорее для того, чтобы показать общий вид памяти, доступной для компьютерной системы 200, а также то, как такая память используется.
[00048] Как показано на Фиг.2B, процессор 205 включает в себя ряд функциональных модулей, в том числе блок 239 управления, арифметический логический блок (ALU) 240, а также локальную или внутреннюю память 248, иногда называемую кэш-памятью. Кэш-память 248 обычно включает в себя ряд регистров 244-246 в секции регистров. Одна или более внутренних шин 241 функционально взаимосвязывают эти функциональные модули. Процессор 205 обычно также имеет один или более интерфейсов 242 для того, чтобы обмениваться информацией с внешними устройствами через системную шину 204, используя соединение 218. Память 234 соединена с шиной 204 с использованием соединения 219.
[00049] Приложение 233 включает в себя последовательность инструкций 231, которая может включать в себя инструкции условного перехода и цикла. Программа 233 может также включать в себя данные 232, которые используются при выполнении программы 233. Инструкции 231 и данные 232 хранятся в областях памяти 228, 229, 230 и 235, 236, 237, соответственно. В зависимости от относительного размера инструкций 231 и областей памяти 228-230, конкретная инструкция может храниться в одной области памяти, как изображено инструкцией, показанной в области памяти 230. Альтернативно, инструкция может быть сегментирована на несколько частей, каждая из которых хранится в отдельной области памяти, как изображено сегментами инструкции, показанными в областях памяти 228 и 229.
[00050] В большинстве случаев процессору 205 дается набор инструкций, которые в нем выполняются. Процессор 205 ожидает последующего ввода, на который процессор 205 реагирует путем выполнения другого набора инструкций. Каждый ввод может быть обеспечен от одного или более из ряда источников, в том числе данных, генерируемых одним или более устройствами ввода 202, 203, данных, принимаемых от внешнего источника через одну из сетей 220, 202, данных, принимаемых от одного из устройств хранения данных 206, 209, или данных, принимаемых от носителя данных 225, вставленного в соответствующее средство 212 чтения, которые все изображены на Фиг.2A. Выполнение набора инструкций может в некоторых случаях привести к выводу данных. Выполнение может также включать в себя сохранение данных или переменных в памяти 234.
[00051] Видеокодер 114, видеодекодер 134 и описанные способы могут использовать входные переменные 254, которые хранятся в памяти 234 в соответствующих областях памяти 255, 256, 257. Видеокодер 114, видеодекодер 134 и описанные способы могут создавать выходные переменные 261, которые хранятся в памяти 234 в соответствующих областях памяти 262, 263, 264. Промежуточные переменные 258 могут храниться в областях памяти 259, 260, 266 и 267.
[00052] Что касается процессора 205, изображенного на Фиг.2B, регистры 244, 245, 246, арифметический логический блок (ALU) 240, и блок 239 управления работают совместно для того, чтобы выполнять последовательности микроопераций, необходимых для выполнения циклов «выборка-декодирование-выполнение» для каждой инструкции в наборе инструкций, составляющем программу 233. Каждый цикл «выборка-декодирование-выполнение» включает в себя:
(a) операцию выборки, которая выбирает или считывает инструкцию 231 из области памяти 228, 229, 230;
(b) операцию декодирования, в которой блок 239 управления определяет, какая именно инструкция была выбрана; и
(c) операцию выполнения, в которой блок 239 управления и/или ALU 240 выполняет эту инструкцию.
[00053] После этого может быть выполнен следующий цикл «выборка-декодирование-выполнение» для следующей инструкции. Аналогичным образом может быть выполнен цикл запоминания, с помощью которого блок 239 управления сохраняет или записывает значение в область памяти 232.
[00054] Каждый этап или подпроцесс в процессе, изображенном на Фиг. 10-13, которые будут описаны позже, связаны с одним или более сегментами программы 233 и обычно выполняются совместно секцией регистра 244, 245, 247, арифметико-логическим блоком 240 и блоком 239 управления в процессоре 205 так, чтобы выполнять циклы выборки, декодирования и выполнения для каждой инструкции в наборе инструкций для отмеченных сегментов программы 233.
[00055] Фиг.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 приложения.
[00056] Хотя видеокодер 114, изображенный на Фиг.3, является примером конвейера высокоэффективного видеокодирования (HEVC), этапы обработки, выполняемые модулями 320-344, являются характерными для других видеокодеров, таких как VC-1 или H.264/MPEG-4 AVC. Видеокодер 114 принимает данные захваченного кадра как серию кадров, каждый из которых включает в себя один или более цветовых каналов. Каждый кадр включает в себя одну сетку отсчетов на цветовой канал. Информация о цвете представляется с использованием «цветового пространства», такого как пространство в соответствии с рекомендациями ITU-R BT.709 («YUV»), хотя также возможны другие цветовые пространства. Когда используется цветовое пространство YUV, цветовые каналы включают в себя канал яркости («Y») и два канала цветности («U» и «V»). Более того, различное количество информации может быть включено в сетку отсчетов каждого цветового канала в зависимости от дискретизации изображения или приложения фильтрации, используемого для передискретизации данных захваченного кадра. Существует несколько подходов к дискретизации, известных как «форматы цветности», некоторые из которых будут описаны со ссылками на Фиг. 5A и Фиг. 5B.
[00057] Видеокодер 114 делит каждый кадр данных захваченного кадра, таких как данные 310 кадра, на области, обычно называемые «блоками дерева кодирования» (CTB). Каждый блок дерева кодирования (CTB) включает в себя иерархическое подразделение с использованием дерева квадрантов части кадра на совокупность «единиц кодирования» (CU). Блок дерева кодирования (CTB) обычно занимает область из 64×64