Способ, устройство и система для кодирования и декодирования единиц преобразования единицы кодирования
Иллюстрации
Показать всеИзобретение относится к области обработки видео. Технический результат – повышение эффективности кодирования/декодирования массивов остаточных коэффициентов битового потока видео. Способ обратного преобразования множества массивов остаточных коэффициентов из битового потока видео, сконфигурированного для формата цветности 4:2:2, содержит этапы, на которых: декодируют множество массивов остаточных коэффициентов яркости, при этом каждый массив соответствует одному блоку яркости 4×4 из множества блоков яркости 4×4, причем каждый блок яркости 4×4 совместно расположен с одной единицей преобразования 4×4 из множества единиц преобразования 4×4; декодируют множество массивов остаточных коэффициентов цветности для первого канала цвета и декодируют множество массивов остаточных коэффициентов цветности для второго канала цвета, при этом каждый массив соответствует блоку цветности 4×4 и каждый блок цветности для каждого канала цвета совместно расположен с двумя из множества единиц преобразования 4×4; применяют обратное преобразование к каждому из декодированного множества массивов остаточных коэффициентов. 9 н. и 8 з.п. ф-лы, 28 ил.
Реферат
Перекрестная ссылка на родственную заявку(и)
[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, или в качестве альтернативы, посредством сочетания специализированного аппар