[0001] Настоящая заявка испрашивает приоритет предварительной патентной заявки США №62/905339, поданной 24 сентября 2019 г., и патентной заявки США №17/024246, поданной 17 сентября 2020 г.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[0002] Настоящее изобретение относится к области обработки данных в целом и к кодированию и декодированию видео в частности.
УРОВЕНЬ ТЕХНИКИ
[0003] ITU-T VCEG (экспертная группа МККТТ по кодированию видео) (Q6/16) и ISO/IEC MPEG (экспертная группа ИСО/МЭК по движущимся изображениям) (JTC 1/SC 29/WG 11) опубликовали стандарт H.265/HEVC (High Efficiency Video Coding, высокоэффективное кодирование видео) в 2013 (версия 1), 2014 (версия 2), 2015 (версия 3) и 2016 (версия 4) гг. В 2015 году эти две организации по стандартизации совместно сформировали группу JVET (Joint Video Exploration Team, объединенная группа исследований видео) с целью изучения возможностей разработки более совершенного по сравнению с HEVC стандарта кодирования видео. В октябре 2017 года они объявили совместный сбор предложений (CfP, Call for Proposal) по сжатию видео с возможностями, превосходящими HEVC. К 15 февраля 2018 года были представлены в общей сложности 22 предложения в категории стандартного динамического диапазона (SDR, Standard Dynamic Range), 12 предложений в категории расширенного динамического диапазона (HDR, High Dynamic Range) и 12 предложений в категории видео 360. В апреле 2018 года все полученные предложения были рассмотрены на 122-й встрече группы MPEG / 10-й встрече группы JVET. По итогам этой встречи группа JVET официально объявила о начале процесса стандартизации кодирования видео следующего поколения после HEVC. Новый стандарт получил название Versatile Video Coding (VVC, универсальное кодирование видео), а группа JVET была переименована в объединенную группу специалистов по видео. Текущая версия тестовой модели VVC (VTM, VVC Test Model) - VTM 6.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0004] Варианты осуществления изобретения относятся к способу, системе и машиночитаемому носителю для кодирования видеоданных. Согласно одному аспекту настоящего изобретения предлагается способ кодирования видеоданных. Способ может включать в себя прием видеоданных, имеющих размер единицы дерева кодирования. Информация о размере единицы дерева кодирования, связанном с видеоданными, передается с помощью двух или большего количества флагов. Кодирование и декодирование видеоданных осуществляется в соответствии со значениями флагов, которые передают информацию о размере единицы дерева кодирования.
[0005] Согласно другому аспекту настоящего изобретения предлагается компьютерная система для кодирования видеоданных. Компьютерная система может содержать один или более процессоров, одну или более машиночитаемых систем памяти, одно или более машиночитаемых запоминающих устройств и программные инструкции, записанные по меньшей мере на одном из этих устройств хранения данных и предназначенные для исполнения по меньшей мере одним из указанных выше процессоров с помощью по меньшей мере одной из упомянутых выше систем памяти, в результате чего компьютерная система может реализовать данный способ. Способ может включать в себя прием видеоданных, имеющих размер единицы дерева кодирования. Информация о размере единицы дерева кодирования, связанном с видеоданными, передается с помощью двух или большего количества флагов. Кодирование и декодирование видеоданных осуществляется в соответствии со значениями флагов, которые передают информацию о размере единицы дерева кодирования.
[0006] Согласно еще одному аспекту настоящего изобретения предлагается машиночитаемый носитель для кодирования видеоданных. Машиночитаемый носитель может содержать одно или более машиночитаемых запоминающих устройств и программные инструкции, записанные по меньшей мере на одном из этих устройств хранения данных, причем эти программные инструкции могут исполняться процессором. Программные инструкции исполняются процессором для реализации способа, который может предусматривать прием видеоданных, имеющих размер единицы дерева кодирования. Информация о размере единицы дерева кодирования, связанном с видеоданными, передается с помощью двух или большего количества флагов. Кодирование и декодирование видеоданных осуществляется в соответствии со значениями флагов, которые передают информацию о размере единицы дерева кодирования.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0007] Эти и другие цели, особенности и преимущества настоящего изобретения будут понятны из приведенного ниже подробного описания иллюстрированных вариантов осуществления, которое следует читать совместно с сопроводительными чертежами. Различные элементы чертежей выполнены не в масштабе, поскольку иллюстрации приводятся для наглядности с целью облегчить понимание специалисту в данной области техники и сопровождаются подробным описанием. Состав чертежей:
[0008] На фиг.1 представлена сетевая компьютерная среда согласно по меньшей мере одному варианту осуществления.
[0009] На фиг.2 представлена структура блока квадродерева/двоичного дерева (QTBT, quad-tree/binary-tree) согласно по меньшей мере одному варианту осуществления.
[0010] На фиг.3A-3D приведены примеры элементов синтаксиса согласно по меньшей мере одному варианту осуществления.
[0011] На фиг.4 представлена блок-схема программы кодирования видеоданных согласно по меньшей мере одному варианту осуществления.
[0012] На фиг.5 представлена структурная схема внутренних и внешних компонентов компьютеров и серверов, изображенных на фиг.1, согласно по меньшей мере одному варианту осуществления.
[0013] На фиг.6 представлена структурная схема типовой облачной среды, содержащей компьютерную систему, изображенную на фиг.1, согласно по меньшей мере одному варианту осуществления.
[0014] На фиг.7 представлена структурная схема функциональных уровней типовой облачной среды, изображенной на фиг.6, согласно по меньшей мере одному варианту осуществления.
ПОДРОБНОЕ ОПИСАНИЕ
[0015] В настоящем документе подробно описываются варианты осуществления предложенных структур и способов; однако следует иметь в виду, что описанные здесь варианты осуществления лишь иллюстрируют предложенные структуры и способы, которые могут быть воплощены в различных формах. Поскольку эти структуры и способы могут быть воплощены во множестве различных форм, описанные здесь варианты осуществления не следует рассматривать как ограничение для возможных реализаций. Эти варианты осуществления приводятся с целью всестороннего и полного описания настоящего изобретения, чтобы оно было в полной мере понятно специалистам в данной области. Во избежание неоправданной перегрузки представленных вариантов осуществления деталями подробные описания известных признаков и способов могут быть опущены.
[0016] Варианты осуществления относятся к области обработки данных в целом и к кодированию и декодированию видео в частности. В описанных ниже примерах вариантов осуществления представлены система, способ и компьютерная программа, предназначенные, в частности, для кодирования видеоданных, в котором для указания размера единицы кодового дерева вместо синтаксиса используются отдельные флаги. Таким образом, некоторые варианты осуществления изобретения позволяют повысить эффективность вычислительных ресурсов, используя меньший объем памяти за счет экономии битов при передаче информации о размере единицы дерева кодирования с помощью флагов.
[001 7] Как уже указано выше, ITU-T VCEG (экспертная группа МККТТ по кодированию видео) (Q6/16) и ISO/IEC MPEG (экспертная группа ИСО/МЭК по движущимся изображениям) (JTC 1/SC 29/WG 11) опубликовали стандарт H.265/HEVC (High Efficiency Video Coding, высокоэффективное кодирование видео) в 2013 (версия 1), 2014 (версия 2), 2015 (версия 3) и 2016 (версия 4) гг. В 2015 году эти две организации по стандартизации совместно сформировали группу JVET (Joint Video Exploration Team, объединенная группа исследований видео) с целью изучения возможностей разработки более совершенного по сравнению с HEVC стандарта кодирования видео. В октябре 2017 года они объявили совместный сбор предложений (CfP, Call for Proposal) по сжатию видео с возможностями, превосходящими HEVC. К 15 февраля 2018 года были представлены в общей сложности 22 предложения в категории стандартного динамического диапазона (SDR, Standard Dynamic Range), 12 предложений в категории расширенного динамического диапазона (HDR, High Dynamic Range) и 12 предложений в категории видео 360. В апреле 2018 года все полученные предложения были рассмотрены на 122-й встрече группы MPEG / 10-й встрече группы JVET. По итогам этой встречи группа JVET официально объявила о начале процесса стандартизации кодирования видео следующего поколения после HEVC. Новый стандарт получил название Versatile Video Coding (VVC, универсальное кодирование видео), а группа JVET была переименована в объединенную группу специалистов по видео. Текущая версия тестовой модели VVC (VTM, VVC Test Model) - VTM 6.
[0018] С целью адаптации к различным локальным характеристикам стандартом HEVC предусматривается разделение единицы дерева кодирования на единицы кодирования с использованием структуры квадродерева, называемой деревом кодирования. Решение о выборе способа кодирования изображения с использованием межкадрового (временного) или внутрикадрового (пространственного) предсказания принимается на уровне единицы кодирования. Каждая единица кодирования может быть дополнительно разделена на одну, две или четыре единицы предсказания в зависимости от типа разделения на единицы предсказания. Внутри одной единицы предсказания применяется один и тот же процесс предсказания и соответствующая информация передается декодеру на основе единицы предсказания. После получения остаточного блока в результате процедуры предсказания в соответствии с типом разделения на единицы предсказания, единица кодирования может быть разделена на единицы преобразования на основе другой структуры квадродерева подобно дереву кодирования для единиц кодирования. Одной из основных особенностей структуры HEVC является наличие нескольких концепций разделения, включая единицы кодирования, единицы предсказания и единицы преобразования. Однако, если для описания синтаксиса log2_ctu_size_minus5 использовать код фиксированной длины u(2), то один бит может быть потрачен впустую, поскольку закодировать можно только три числа 0, 1 и 2, при этом при кодировании чисел 0 и 1 один бит оказывается лишним. Поэтому целесообразно заменить исходный синтаксис, описывающий размер единицы дерева кодирования, отдельными флагами, чтобы сэкономить биты в наборе параметров последовательности.
[0019] Описание аспектов настоящего изобретения опирается на блок-схемы и (или) структурные схемы способов, устройств (систем) и машиночитаемых носителей согласно различным вариантам осуществления изобретения. Следует иметь в виду, что каждый блок блок-схемы и (или) структурной схемы, а также комбинации блоков блок-схемы и (или) структурной схемы могут быть реализованы с помощью машиночитаемых программных инструкций.
[0020] На фиг.1 представлена функциональная схема сетевой компьютерной среды, иллюстрирующая систему кодирования видео 100 (далее «система») для кодирования видеоданных с использованием отдельных флагов, заменяющих синтаксис размера единицы дерева кодирования. Следует иметь в виду, что на фиг.1 представлен лишь один вариант осуществления, который не накладывает никаких ограничений в отношении других сред, где могут быть реализованы другие варианты осуществления. Изображенные среды могут быть изменены различными способами в зависимости от требований к проектированию и реализации.
[0021] Система 100 может содержать компьютер 102 и сервер 114. Компьютер 102 может взаимодействовать с сервером 114 по коммуникационной сети 110 (далее «сеть»). Компьютер 102 может содержать процессор 104 и программное обеспечение 108, которое записано на запоминающем устройстве 106 и может взаимодействовать с пользователем и обмениваться данными с сервером 114. Как будет показано ниже со ссылкой на фиг.5, компьютер 102 может содержать внутренние компоненты 800А и внешние компоненты 900А, а сервер 114 может содержать внутренние компоненты 800В и внешние компоненты 900В. Компьютер 102 может быть, в частности, мобильным устройством, телефоном, карманным портативным компьютером, нетбуком, ноутбуком, планшетным компьютером, настольным компьютером или любым типом вычислительного устройства, которое может исполнять программу, подключаться к сети и обращаться к базе данных.
[0022] Сервер 114 может также работать в рамках модели облачных сервисов, таких как программное обеспечение как услуга (SaaS, Software as a Service), платформа как услуга (PaaS, Platform as a Service) или инфраструктура как услуга (laaS, Infrastructure as a Service), как показано ниже в описании фиг.6 и фиг.7. Сервер 114 также может находиться в облачной модели развертывания вычислительных ресурсов, например в частном облаке, коммунальном облаке, общедоступном облаке или гибридном облаке.
[0023] Сервер 114, который может использоваться для кодирования видеоданных, способен исполнять программу кодирования видео 116 (далее «программа»), которая может взаимодействовать с базой данных 112. Более подробно способ программы кодирования видео описывается ниже в контексте фиг.4. В одном варианте осуществления компьютер 102 может выполнять функции устройства ввода, предоставляющего пользовательский интерфейс, а программа 116 может выполняться преимущественно на сервере 114. В другом варианте осуществления программа 116 может выполняться преимущественно на одном или более компьютерах 102, а сервер 114 может использоваться для обработки и хранения данных, которые используются программой 116. Следует отметить, что программа 116 может быть автономной или интегрированной в более крупную программу кодирования видео.
[0024] Однако нужно иметь в виду, что в некоторых случаях функции обработки программы 116 могут быть распределены между компьютерами 102 и серверами 114 в любых соотношениях. Еще в одном варианте осуществления программа 116 может работать на нескольких компьютерах, серверных компьютерах или комбинации компьютеров и серверных компьютеров, например на нескольких компьютерах 102, взаимодействующих по сети 110 с одним сервером 114. В другом варианте осуществления программа 116 может работать, например, на нескольких серверах 114, взаимодействующих по сети 110 с несколькими клиентскими компьютерами. Как вариант, программа может работать на сетевом сервере, взаимодействующем по сети с сервером и несколькими клиентскими компьютерами.
[0025] Сеть 110 может содержать проводные соединения, беспроводные соединения, оптоволоконные соединения или комбинацию вышеперечисленных соединений. В целом сеть 110 может представлять собой любую комбинацию соединений и протоколов, которые обеспечивают взаимодействие между компьютером 102 и сервером 114. Сеть 110 может включать в себя различные типы сетей, в том числе локальную сеть (LAN, local area network), глобальную сеть (WAN, wide area network), например Интернет, телекоммуникационную сеть, например телефонную сеть общего пользования (ТфОП), беспроводную сеть, коммутируемую сеть общего пользования, спутниковую сеть, сеть сотовой связи (например сеть пятого поколения (5G), сеть LTE, сеть третьего поколения (3G), сеть множественного доступа с кодовым разделением (CDMA, code division multiple access) и т.д.), сеть сотовой связи общего пользования (ССОП), городскую сеть (MAN, metropolitan area network), частную сеть, специальную сеть, интранет, оптоволоконную сеть или т.п., а также (или) комбинацию этих или других типов сетей.
[0026] Количество и распределение устройств и сетей, показанных на фиг.1, приведено в качестве примера. На практике могут использоваться дополнительные устройства и (или) сети, устройства и (или) сети в меньшем количестве, другие устройства и (или) сети либо устройства и (или) сети, распределенные иначе, чем показано на фиг.1. Кроме того, два или более устройств, изображенных на фиг.1, могут быть реализованы в составе одного устройства, либо одно устройство, изображенное на фиг.1, может быть реализовано в виде нескольких распределенных устройств. В качестве дополнительного или альтернативного варианта некоторые устройства системы 100 (например, одно или более устройств) могут выполнять одну или более функций, которые в описании закреплены за другими устройствами системы 100.
[0027] На фиг.2 изображен пример структуры блока QTBT 200. Структура блока QTBT 200 предусматривает возможность разделение на блоки с помощью QTBT. На рисунке также изображено соответствующее представление в виде дерева. Сплошные линии обозначают разделение квадродерева, а пунктирные линии - разделение двоичного дерева. В каждом узле разделения (т.е. нелистовом) двоичного дерева используется один флаг, значение которого указывает на примененный тип разделения (горизонтальное или вертикальное), при этом 0 соответствует горизонтальному разделению, а 1 - вертикальному. При разделении квадродерева не требуется указывать тип разделения, поскольку в этом случае блок всегда делится как по горизонтали, так и по вертикали, чтобы получить 4 подблока одинакового размера.
[0028] QTBT позволяет отказаться от различных типов разделения. В частности, QTBT позволяет не разграничивать понятия единицы кодирования, единицы предсказания и единицы преобразования и поддерживает более гибкие формы разделения единицы кодирования. В структуре блока QTBT 200 единица кодирования может иметь квадратную или прямоугольную форму. Единица дерева кодирования (CTU, coding tree unit) может быть разделена на основе структуры квадродерева. Листовые узлы квадродерева могут быть далее разделены на основе структуры двоичного дерева. При разделении двоичного дерева может использоваться два типа разделения: симметричное горизонтальное и симметричное вертикальное.
[0029] Листовые узлы двоичного дерева можно назвать единицами кодирования (CU, coding unit) и такое разделение можно использовать для предсказания и преобразования без дополнительного разделения. Это значит, что в структуре блоков кодирования QTBT 200 единица кодирования, единица предсказания и единица преобразования могут иметь одинаковый размер. Единица кодирования может содержать блоки кодирования (СВ, coding block) различных цветовых компонентов (например, одна единица кодирования может содержать один блок СВ яркостной компоненты и два блока СВ цветоразностных компонент в случае слайсов типа Р и В для формата субдискретизации 4:2:0) или блок СВ одной компоненты (например, одна единица кодирования может содержать один блок СВ яркостной компоненты или два блока СВ цветоразностных компонент в случае слайсов типа I).
[0030] Для схемы разделения QTBT могут быть определены следующие параметры: размер единицы дерева кодирования может быть размером корневого узла квадродерева, что аналогично концепции, используемой в HEVC; MinQTSize может быть минимальным допустимым размером листового узла квадродерева;
MaxBTSize может быть максимально допустимым размером корневого узла двоичного дерева;
MaxBTDepth может быть максимальной допустимой глубиной двоичного дерева; и
MinBTSize может быть минимальным допустимым размером листового узла двоичного дерева
[0031] В одном примере структуры разделения QTBT 200 размер единицы дерева кодирования может быть установлен в объеме 128×128 отсчетов яркостной компоненты с двумя соответствующими блоками по 64×64 отсчетов цветоразностных компонент. Размер MinQTSize может быть установлен равным 16×16. Размер MaxBTSize может быть установлен равным 64×64. Размер MinBTSize может быть установлен равным 4×4 по ширине и длине. Размер MaxBTDepth может быть установлен равным 4. Разделение квадродерева может быть применено сначала к единице дерева кодирования для формирования листовых узлов квадродерева. Листовые узлы квадродерева могут иметь размер от 16×16 (т.е. MinQTSize) до 128×128 (т.Е. размер единицы дерева кодирования). Если листовой узел квадродерева имеет размер 128×128, он не может быть дополнительно разделен на с помощью двоичного дерева, поскольку размер может превысить MaxBTSize (т.е. 64×64). В противном случае листовой узел квадродерева может быть далее разделен с помощью двоичного дерева. Поэтому листовой узел квадродерева может быть также корневым узлом двоичного дерева и глубина этого двоичного дерева равна 0.
[0032] Когда глубина двоичного дерева достигает значения MaxBTDepth (т.е. 4), дальнейшее разделение невозможно. Когда ширина узла двоичного дерева достигает значения MinBTSize (т.е. 4), дальнейшее горизонтальное разделение невозможно. Аналогичным образом, когда высота узла двоичного дерева достигает значения MinBTSize, дальнейшее вертикальное разделение невозможно. Затем листовые узлы двоичного дерева подвергаются операциям предсказания и преобразования без какого-либо дальнейшего разделения. В одном примере максимальный размер единицы дерева кодирования может составлять 256×256 отсчетов яркостной компоненты.
[0033] Кроме того благодаря гибкости схемы QTBT могут поддерживаться раздельные структуры QTBT для яркостных и цветоразностных компонент. В настоящее время для слайсов типа Р и В блоки СТВ яркостных и цветоразностных компонент в одной единице дерева кодирования могут использовать одну и ту же структуру QTBT. Однако для слайсов типа I блок СТВ яркостной компоненты может быть разделен на единицы CU с помощью одной структуры QTBT, а блок СТВ цветоразностной компоненты может быть разделен на единицы кодирования с помощью другой структуры QTBT. Это означает, что единица кодирования в слайсе типа I может содержать блок кодирования яркостной компоненты или блоки кодирования двух цветоразностных компонент, а единица кодирования в слайсе типа Р или В состоит из блоков кодирования всех трех цветовых компонент.
[0034] Обратимся теперь к фиг.3A-3D, на которых представлены примеры элементов синтаксиса 300A-300D. Элементы синтаксиса 300A-300D могут использоваться для передачи информации о размере единицы дерева кодирования в целях экономии битов.
[0035] Согласно одному или нескольким вариантам осуществления изобретения для передачи информации о размере единицы дерева кодирования могут использоваться два из трех флагов use_32_ctu_size_flag (флаг размера CTU 32), use_64_ctu_size_flag (флаг размера CTU 64) и use_128_ctu_size_flag (флаг размера CTU 128). Согласно одному варианту осуществления первым может передаваться флаг use_32_ctu_size_flag. Если флаг use_32_ctu_size_flag равен 1, то на этом передача информации о размере единицы дерева кодирования может быть завершена. В противном случае может быть передан флаг use_64_ctu_size_flag. Согласно одному варианту осуществления первым может передаваться флаг use_64_ctu_size_flag. Если флаг use_64_ctu_size_flag равен 1, то на этом передача информации о размере единицы дерева кодирования может быть завершена. В противном случае может быть передан флаг use_32_ctu_size_flag. Согласно одному варианту осуществления первым может передаваться флаг use_32_ctu_size_flag. Если флаг use_32_ctu_size_flag равен 1, то на этом передача информации о размере единицы дерева кодирования может быть завершена. В противном случае может быть передан флаг use_128_ctu_size_flag. Согласно одному варианту осуществления первым может передаваться флаг use_128_ctu_size_flag. Если флаг use_128_ctu_size_flag равен 1, то на этом передача информации о размере единицы дерева кодирования может быть завершена. В противном случае может быть передан флаг use_32_ctu_size_flag. Согласно одному варианту осуществления первым может передаваться флаг use_64_ctu_size_flag. Если флаг use_64_ctu_size_flag равен 1, то на этом передача информации о размере единицы дерева кодирования может быть завершена. В противном случае может быть передан флаг use_128_ctu_size_flag. Согласно одному варианту осуществления первым может передаваться флаг use_128_ctu_size_flag. Если флаг use_128_ctu_size_flag равен 1, то на этом передача информации о размере единицы дерева кодирования может быть завершена. В противном случае может быть передан флаг use_64_ctu_size_flag.
[0036] Теперь обратимся к фиг.3А-3В. Согласно одному или нескольким вариантам осуществления изобретения в наборе параметров последовательности отдельные флаги указывают, может ли применяться наименьший размер единицы дерева кодирования (use_smallest_ctu_size_flag) или наибольший размер единицы дерева кодирования (use_largest_ctu_size_flag). В одном варианте осуществления первым может передаваться флаг набора параметров последовательности, указывающий, может ли быть применен наименьший размер единицы дерева кодирования. Если наименьший размер единицы дерева кодирования не может быть применен, то может быть передан другой флаг набора параметров последовательности, указывающий, может ли быть применен наибольший размер единицы дерева кодирования. В другом варианте осуществления первым может передаваться флаг набора параметров последовательности, указывающий, может ли быть применен наибольший размер единицы дерева кодирования. Если наибольший размер единицы дерева кодирования не может быть применен, то может быть передан другой флаг набора параметров последовательности, указывающий, может ли быть применен наименьший размер единицы дерева кодирования.
[0037] Флаг со значением 1 может указывать на то, что размер блока дерева кодирования яркостной компоненты каждой единицы дерева кодирования может быть равен 32×32. Флаг use_smallest_ctu_size_flag со значением 0 может указывать на присутствие флага use_largest_ctu_size_flag.
[0038] Флаг со значением 1 может указывать на то, что размер блока дерева кодирования яркостной компоненты каждой единицы дерева кодирования может быть равен 128×128. Флаг use_largest_ctu_size_flag со значением 0 может указывать, что размер блока дерева кодирования яркостной компоненты каждой единицы дерева кодирования может быть равен 64×64.
[0039] Выражение plus 2 может определять минимальный размер блока кодирования яркостной компоненты.
[0040] Значения переменных CtbLog2SizeY, CtbSizeY, MinCbLog2SizeY, MinCbSizeY, MinTbLog2SizeY, MaxTbLog2SizeY, MinTbSizeY, MaxTbSizeY, PicWidthlnCtbsY, PicHeightlnCtbsY, PicSizelnCtbsY, PicWidthlnMinCbsY, PicHeightlnMinCbsY, PicSizelnMinCbsY, PicSizelnSamplesY, PicWidthlnSamplesC и PicHeightlnSamplesC могут быть определены следующим образом:
[0041] Теперь обратимся к фиг.3С. Согласно одному или нескольким вариантам осуществления, флаг sps_max_luma_transform_size_64_flag (максимальный размер блока преобразования яркостной компоненты 64) может передаваться только в том случае, если размер единицы дерева кодирования может быть больше или равен 64×64. В одном варианте осуществления, если флаг use_32_ctu_size_flag может передаваться первым и может быть равен 1, флаг sps_max_luma_transform_size_64_flag может не передаваться. В одном варианте осуществления, если флаг use_64_ctu_size_flag может передаваться первым и может быть равен 0, а затем может передаваться флаг use_32_ctu_size_flag, который может быть равен 1, и флаг sps_max_luma_transform_size_64_flag может не передаваться. В одном варианте осуществления, если флаг use_128_ctu-size_flag может передаваться первым и может быть равен 0, а затем может передаваться флаг use_32_ctu_size_flag, который может быть равен 1, и флаг sps_max_luma_transform_size_64_flag может не передаваться.
[0042] Флаг use_32_ctu_size_flag со значением 1 может указывать на то, что размер блока дерева кодирования яркостной компоненты каждой единицы дерева кодирования может быть равен 32×32. Флаг use_32_ctu_size_flag со значением 0 может указывать на присутствие флага use_128_ctu_size_flag.
Флаг use_128_ctu_size_flag со значением 1 может указывать на то, что размер блока дерева кодирования яркостной компоненты каждой единицы дерева кодирования может быть равен 128×128. Флаг use_128_ctu_size_flag со значением 0 может указывать на то, что размер блока дерева кодирования яркостной компоненты каждой единицы дерева кодирования может быть равен 64×64.
[0043] Выражение plus 2 может определять минимальный размер блока кодирования яркостной компоненты.
[0044] Флаг со значением 1 может указывать, что максимальный размер преобразования может быть равным 64 отсчетам яркостной компоненты. Флаг sps_max_luma_transform_size_64_flag со значением 0 может указывать, что максимальный размер преобразования может быть равным 32 отсчетам яркостной компоненты. Если флаг sps_max_luma_transform_size_64_flag отсутствует, его значение можно принять равным 0.
[0045] Значения переменных CtbLog2SizeY, CtbSizeY, MinCbLog2SizeY, MinCbSizeY, MinTbLog2SizeY, MaxTbLog2SizeY, MinTbSizeY, MaxTbSizeY, PicWidthlnCtbsY, PicHeightlnCtbsY, PicSizelnCtbsY, PicWidthhiMinCbsY, PicHeightlnMinCbsY, PicSizehiMinCbsY, PicSizelnSamplesY, PicWidthhiSamplesC и PicHeightlnSamplesC могут быть определены следующим образом:
else
[0046] Теперь обратимся к фиг.3D. Согласно одному или нескольким вариантам осуществления, флаг sps_max_luma_transform_size_64_flag может передаваться только в том случае, если размер единицы дерева кодирования может не быть наименьшим размером единицы дерева кодирования.
[0047] Флаг со значением 1 может указывать на то, что размер блока дерева кодирования яркостной компоненты каждой единицы дерева кодирования может быть равен 32×32. Флаг use_smallest_ctu_size_flag со значением 0 может указывать на присутствие флага use_largest_ctu_size_flag.
[0048] Флаг со значением 1 может указывать на то, что размер блока дерева кодирования яркостной компоненты каждой единицы дерева кодирования может быть равен 128×128. Флаг use_largest_ctu_size_flag со значением 0 может указывать, что размер блока дерева кодирования яркостной компоненты каждой единицы дерева кодирования может быть равен 64×64.
[0049] Выражение plus 2 может определять минимальный размер блока кодирования яркостной компоненты.
[0050] Флаг со значением 1 может указывать, что максимальный размер преобразования может быть равным 64 отсчетам яркостной компоненты. Флаг sps_max_luma_transform_size_64_flag со значением 0 может указывать, что максимальный размер преобразования может быть равным 32 отсчетам яркостной компоненты. Если флаг sps_max_luma_transform_size_64_flag отсутствует, его значение можно принять равным 0.
[0051] Значения переменных CtbLog2SizeY, CtbSizeY, MinCbLog2SizeY, MinCbSizeY, MinTbLog2SizeY, MaxTbLog2SizeY, MinTbSizeY, MaxTbSizeY, PicWidthlnCtbsY, PicHeightlnCtbsY, PicSizelnCtbsY, PicWidthhiMinCbsY, PicHeightlnMinCbsY, PicSizemMinCbsY, PicSizelnSamplesY, PicWidthmSamplesC и PicHeightlnSamplesC могут быть определены следующим образом:
else
[0052] Теперь обратимся к фиг.4, где показана операционная блок-схема, демонстрирующая последовательность действий способа 400 для кодирования видеоданных. В некоторых вариантах осуществления один или более функциональных блоков на фиг.4 могут выполняться компьютером 102 (фиг.1) и сервером 114 (фиг.1). В некоторых вариантах осуществления один или более функциональных блоков на фиг.4 могут выполняться другим устройством или группой устройств, не связанных с компьютером 102 и сервером 114 или включающих их.
[0053] В блоке 402 способ 400 предусматривает прием видеоданных, имеющих размер единицы дерева кодирования.
[0054] В блоке 404 способ 400 предусматривает передачу информации о размере единицы дерева кодирования, связанном с видеоданными, с помощью двух или более флагов.
[0055] В блоке 406 способ 400 предусматривает кодирование видеоданных, которые кодируют в соответствии со значениями флагов, которые передают информацию о размере единицы дерева кодирования.
[0056] Следует иметь в виду, что на фиг.4 представлен лишь один вариант осуществления, который не накладывает никаких ограничений в отношении возможности реализации других вариантов осуществления. Изображенные среды могут быть изменены различными способами в зависимости от требований к проектированию и реализации.
[0057] На фиг.5 представлена структурная блок-схема 500 внутренних и внешних компонентов компьютеров и серверов, изображенных на фиг.1, согласно одному варианту осуществления. Следует иметь в виду, что на фиг.5 представлен лишь один вариант осуществления, который не накладывает никаких ограничений в отношении других сред, где могут быть реализованы другие варианты осуществления. Изображенные среды могут быть изменены различными способами в зависимости от требований к проектированию и реализации.
[0058] Компьютер 102 (фиг.1) и сервер 114 (фиг.1) могут включать соответствующие наборы внутренних компонентов 800А, В и внешних компонентов 900А, В, показанные на фиг.4. Каждый набор внутренних компонентов 800 содержит один или более процессоров 820, одно или более машиночитаемых ОЗУ 822 и одно или более машиночитаемых ПЗУ 824 на одной или более шинах 826, одну или более операционных систем 828 и одно или более машиночитаемых физических запоминающих устройств 830.
[0059] Процессор 820 реализован в виде аппаратных средств, микропрограммного обеспечения или комбинации аппаратных средств и программного обеспечения. Процессор 820 может представлять собой центральный процессор (CPU, central processing unit), графический процессор (GPU, graphics processing unit), гибридный процессор (APU, accelerated processing unit), микропроцессор, микроконтроллер, цифровой сигнальный процессор (DSP, digital signal processor), программируемую логическую интегральную схему (FPGA, field-programmable gate array), интегральную схему специального назначения (ASIC, application-specific integrated circuit) или вычислительный компонент другого типа. В некоторых вариантах реализации процессор 820 может включать в себя один или более процессоров, которые могут быть запрограммированы на выполнение определенной функции. Шина 826 содержит компонент, который обеспечивает обмен данными между внутренними компонентами 800А, В.
[0060] Одна или более операционных систем 828, программное обеспечение 108 (фиг.1) и программа кодирования видео 116 (фиг.1) на сервере 114 (фиг.1) хранятся, соответственно, на одном или более машиночитаемых запоминающих устройствах 830 для исполнения, соответственно, одним или несколькими процессорами 820 с помощью, соответственно, одного или более ОЗУ 822 (которые обычно включают в себя кеш-память). В варианте осуществления, показанном на фиг.5, каждое машиночитаемое запоминающее устройство 830 представляет собой магнитный диск встроенного накопителя на жестком диске. В качестве альтернативного варианта каждое машиночитаемое физическое запоминающее устройство 830 может представлять собой полупроводниковое запоминающее устройство, например ПЗУ 824, ППЗУ, флеш-память, оптический диск, магнитооптический диск, твердотельный диск, компакт-диск (CD, compact disc), цифровой многоцелевой диск (DVD, digital versatile disc), дискету, картридж, магнитную ленту и (или) другое машиночитаемое физическое запоминающее устройство, на котором могут храниться компьютерная программа и цифровая информация.
[0061] Каждый набор внутренних компонентов 800А, В также включает в себя привод или интерфейс чтения-записи (R/W) 832 для чтения данных с одного или более портативных машиночитаемых физических запоминающих устройств 936, например CD-ROM, DVD, карты памяти, магнитной ленты, магнитного диска, оптического диска или полупроводникового запоминающего устройства, и для записи данных на такие устройства. Программное обеспечение, например программное обеспечение 108 (фиг.1) и программа кодирования видео 116 (фиг.1), может храниться, соответственно, на одном или более портативных машиночитаемых физических запоминающих устройствах 936, считываться с помощью соответствующего привода или интерфейса чтения-записи 832 и загружаться на соответствующий жесткий диск 830.
[0062] Каждый набор внутренних компонентов 800А, В также включает в себя сетевые адаптеры или интерфейсы 836, например платы адаптера TCP/IP, платы беспроводного интерфейса Wi-Fi, платы беспроводного интерфейса 3G, 4G или 5G либо другие проводные или беспроводные каналы связи. Программное обеспечение 108 (фиг.1) и программа кодирования видео 116 (фиг.1) на сервере 114 (фиг.1) могут быть скачаны в компьютер 102 (фиг.1) и сервер 114 с внешнего компьютера через сеть (например Интернет, локальную сеть или другую глобальную сеть) и соответствующие сетевые адаптеры или интерфейсы 836. От сетевых адаптеров или интерфейсов 836 программное обеспечение 108 и программа кодирования видео 116 на сервере 114 загружаются на соответствующий жесткий диск 830. Сеть может быть построена на основе медных проводов, оптических волокон, беспроводных средств передачи данных, маршрутизаторов, межсетевых экранов, коммутаторов, шлюзовых компьютеров и (или) периферийных серверов.
[0063] Каждый набор внешних компонентов 900А,В может содержать компьютерный монитор 920, клавиатуру 930 и компьютерную мышь 934. Внешние компоненты 900А, В могут также включать в себя сенсорные экраны, виртуальные клавиатуры, сенсорные панели, указывающие устройства и другие устройства для пользовательского интерфейса. Каждый набор внутренних компонентов 800А, В также включает в себя драйверы устройств 840 для подключения компьютерного монитора 920, клавиатуры 930 и компьютерной мыши 934. Драйверы устройств 840, привод или интерфейс чтения-записи 832 и сетевой адаптер или интерфейс 836 состоят из аппаратных средств и программного обеспечения, которое хранится в запоминающем устройстве 830 и (или) ПЗУ 824.
[0064] Изначально подразумевается, что, хотя настоящее изобретение включает в себя подробное описание облачных технологий, реализация изложенных здесь принципов не ограничивается облачной средой. Напротив, некоторые варианты осуществления могут быть реализованы в любой другой вычислительной среде, как известной в настоящее время, так и созданной в будущем.
[0065] Облачные вычисления представляют собой модель предоставления услуг для обеспечения удобного сетевого доступа по запросу к общему пулу настраиваемых вычислительных ресурсов (например сетей, сетевой пропускной способности, серверов, ресурсов обработки, памяти, хранения, приложений, виртуальных машин и сервисов), которые могут быть быстро подготовлены и переданы при минимальных управленческих затратах и взаимодействии с поставщиком услуг. Такая облачная модель может описываться не менее чем пятью характеристиками, включать в себя не менее трех сервисных моделей и не менее четырех моделей развертывания.
[0066] Применяются следующие характеристики:
Самообслуживание по запросу: потребитель облака может в одностороннем порядке, автоматически, по мере необходимости выделять вычислительные ресурсы, например время работы сервера и сетевое хранилище, без необходимости взаимодействия с поставщиком услуг.
Широкий сетевой доступ: доступ к ресурсам осуществляется по сети и с помощью стандартных механизмов, которые позволяют использовать гетерогенные платформы с тонкими или толстыми клиентами (например мобильные телефоны, ноутбуки и КПК).
Объединение ресурсов в пул: вычислительные ресурсы поставщика объединяются в пул для обслуживания множества потребителей с использованием многоарендной модели, при этом различные физические и виртуальные ресурсы динамически выделяются и перераспределяются в зависимости от спроса. Независимость от местоположения проявляется в том, что потребитель обычно не контролирует и не знает точное местоположение предоставляемых ресурсов, но может определить местоположение на более высоком уровне абстракции (например на уровне страны, штата или центра обработки данных).
Быстрая эластичность: ресурсы могут оперативно и гибко предоставляться для быстрого горизонтального масштабирования, в некоторых случаях автоматически, и оперативно высвобождаться для быстрого сокращения. Потребителю доступные для выделения ресурсы часто представляются неограниченными и могут быть приобретены в любом объеме в любой момент.
Измеряемый сервис: облачные системы автоматически контролируют и оптимизируют использование ресурсов, опираясь на возможности учета на определенном уровне абстракции в зависимости от типа сервиса (например хранение, обработка, пропускная способность и активные учетные записи пользователей). Использование ресурсов можно отслеживать, регулировать и регистрировать, обеспечивая прозрачность как для поставщика, так и для потребителя используемого сервиса.
[0067] Используются следующие сервисные модели:
Программное обеспечение как услуга (SaaS): потребителю предоставляется возможность использовать приложения поставщика, работающие в облачной инфраструктуре. Приложения доступны с различных клиентских устройств через интерфейс тонкого клиента, такой как веб-браузер (например, веб-клиент электронной почты) Потребитель не управляет базовой облачной инфраструктурой, включая сеть, серверы, операционные системы, хранилища и даже отдельные возможности приложений, кроме ограниченных пользовательских параметров конфигурации приложений.
Платформа как услуга (PaaS): потребителю предоставляется возможность развертывать в облачной инфраструктуре собственные или приобретенные приложения, созданные с помощью языков программирования и инструментов, которые поддерживает поставщик. Потребитель не управляет базовой облачной инфраструктурой, включая сеть, серверы, операционные системы или хранилища, но контролирует развернутые приложения и, возможно, настройки среды размещения приложений.
Инфраструктура как услуга (laaS): потребителю предоставляется возможность выделять ресурсы обработки, хранения, сетевые и другие базовые вычислительные ресурсы, с помощью которых потребитель может развертывать и запускать произвольное программное обеспечение, в том числе операционные системы и приложения. Потребитель не управляет базовой облачной инфраструктурой, но контролирует операционные системы, хранилища, развернутые приложения и, возможно, ограниченно управляет отдельными сетевыми компонентами (например, брандмауэрами хоста).
[0068] Используются следующие модели развертывания:
Частное облако: облачная инфраструктура используется исключительно в интересах организации. Она может находиться под управлением организации или третьей стороны и может существовать как локально, так и дистанционно.
Коммунальное облако: облачная инфраструктура совместно используется несколькими организациями и поддерживает определенное сообщество с общими потребностями (например миссия, требования к безопасности, политика и соответствие нормативным требованиям). Она может находиться под управлением организаций или третьей стороны и может существовать как локально, так и дистанционно.
Общедоступное облако: облачная инфраструктура доступна широкой общественности или крупной промышленной группе и принадлежит организации, продающей облачные сервисы.
Гибридное облако: облачная инфраструктура представляет собой совокупность двух или более облаков (частных, коммунальных или общедоступных), которые остаются уникальными образованиями, но объединены стандартизированной или фирменной технологией, обеспечивающей возможность переноса данных и приложений (например, технология cloud bursting для балансировки нагрузки между облаками).
[0069] Облачная среда имеет сервис-ориентированный характер с акцентом на отказ от статичности, низкий уровень привязки, модульность и семантическую совместимость. Ядром облачных вычислений служит инфраструктура, состоящая из сети взаимосвязанных узлов.
[0070] На фиг.6 показан пример облачной среды 600. Как изображено на рисунке, облачная среда 600 содержит один или более узлов облака 10, с которыми могут взаимодействовать локальные вычислительные устройства, используемые потребителями облака, например карманный персональный компьютер (КПК) или сотовый телефон 54А, настольный компьютер 54В, ноутбук 54С и (или) автомобильная компьютерная система 54N. Узлы облака 10 могут взаимодействовать друг с другом. Они могут быть сгруппированы (не показано на рисунке) физически или виртуально, в одной или более сетях, например в частных, коммунальных, общедоступных или гибридных облаках, как описано выше, или в их комбинации. Благодаря этому облачная среда 600 может предлагать инфраструктуру, платформы и (или) программное обеспечение в качестве сервисов, при использовании которых потребителю облака не требуется поддерживать ресурсы на локальном вычислительном устройстве. Следует иметь в виду, что типы вычислительных устройств 54A-N на фиг.5 приведены только для примера и что узлы облака 10 и облачная среда 600 могут взаимодействовать с компьютерными устройствами любого типа по сети и (или) посредством сетевого адресного подключения любого типа (например с помощью веб-браузера).
[0071] На фиг.7 показан набор функциональных уровней абстракции 700, предоставляемых облачной средой 600 (фиг.6). Следует сразу оговориться, что компоненты, уровни и функции, показанные на фиг.7, приведены только для примера и не ограничивают варианты осуществления изобретения. Как показано на рисунке, предусмотрены следующие уровни и соответствующие им функции:
[0072] Аппаратно-программный уровень 60 состоит из аппаратных и программных компонентов. Примерами аппаратных компонентов могут служить: мэйнфреймы 61; серверы на базе архитектуры RISC (Reduced Instruction Set Computer, компьютер с сокращенным набором команд) 62; серверы 63; блейд-серверы 64; запоминающие устройства 65; сети и сетевые компоненты 66. В некоторых вариантах осуществления программные компоненты включают в себя программное обеспечение сетевого сервера приложений 67 и программное обеспечение базы данных 68.
[0073] Уровень виртуализации 70 обеспечивает уровень абстракции, на котором могут быть созданы следующие примеры виртуальных объектов: виртуальные серверы 71; виртуальные хранилища 72; виртуальные сети 73, включая виртуальные частные сети; виртуальные приложения и операционные системы 74; виртуальные клиенты 75.
[0074] В одном примере уровень управления 80 может обеспечивать описанные ниже функции. Подготовка ресурсов 81 обеспечивает динамическое выделение вычислительных и иных ресурсов, которые используются для выполнения задач в облачной среде. Учет и ценообразование 82 обеспечивают отслеживание затрат по мере использования ресурсов в облачной среде, а также тарификацию или выставление счетов за потребление этих ресурсов. В одном примере эти ресурсы могут включать в себя лицензии на прикладное программное обеспечение. Система безопасности обеспечивает проверку удостоверений потребителей и задач облака, а также защиту данных и других ресурсов. Пользовательский портал 83 обеспечивает доступ к облачной среде потребителям и системным администраторам. Управление уровнем обслуживания 84 обеспечивает распределение облачных ресурсов и управление ими таким образом, чтобы соблюдать требуемые уровни обслуживания. Планирование и выполнение соглашений об уровне обслуживания (SLA, Service Level Agreement) 85 обеспечивает предварительную оценку и приобретение облачных ресурсов, потребность в которых ожидается в соответствии с SLA.
[0075] Уровень рабочих нагрузок 90 предлагает примеры функциональных возможностей, для которых может быть использована облачная среда. На этом уровне могут быть предоставлены следующие рабочие нагрузки и функции: картирование и навигация 91; разработка и управление жизненным циклом программного обеспечения 92; организация виртуального учебного класса 93; аналитическая обработка данных 94; обработка транзакций 95; кодирование видео 96. Кодирование видео 96 может кодировать видеоданные с использованием отдельных флагов вместо синтаксиса размера единицы дерева кодирования.
[0076] Некоторые варианты осуществления изобретения могут относиться к системе, способу и (или) машиночитаемому носителю с интеграцией на любом возможном уровне технической детализации. Машиночитаемый носитель может содержать машиночитаемый физический носитель информации (или носители), на котором записаны машиночитаемые программные инструкции, под управлением которых процессор может выполнять операции.
[0077] Машиночитаемый носитель информации может быть устройством, где могут храниться инструкции, которые выполняет устройство выполнения инструкций. Машиночитаемый носитель информации может быть, в частности, электронным запоминающим устройством, магнитным запоминающим устройством, оптическим запоминающим устройством, электромагнитным запоминающим устройством, полупроводниковым запоминающим устройством или любой подходящей комбинацией вышеперечисленных устройств. Неисчерпывающий перечень более конкретных примеров машиночитаемого носителя информации включает в себя следующие устройства: портативную компьютерную дискету, жесткий диск, оперативное запоминающее устройство (ОЗУ), постоянное запоминающее устройство (ПЗУ), стираемую программируемую память только для чтения (EPROM или Flash-память), статическое ОЗУ (СОЗУ), портативный компакт-диск только для чтения (CD-ROM), цифровой универсальный диск (DVD), карту памяти, дискету, устройство с механическим кодированием, например перфокарты или рельефные поверхностные структуры, на которых записаны инструкции, а также любую подходящую комбинацию перечисленных выше устройств. Под машиночитаемым носителем информации в настоящем документе не подразумеваются как таковые непостоянные сигналы, в частности, радиоволны или другие свободно распространяющиеся электромагнитные волны, электромагнитные волны, распространяющиеся по волноводу или в другой среде передачи (например, световые импульсы, передаваемые по волоконно-оптическому кабелю), или электрические сигналы, передаваемые по проводам.
[0078] Описанные в настоящем документе машиночитаемые программные инструкции могут загружаться в соответствующие вычислительные или обрабатывающие устройства с машиночитаемого носителя информации или на внешний компьютер или внешнее запоминающее устройство по сети, например по Интернету, локальной сети, глобальной сети и (или) беспроводной сети. Сеть может быть построена на основе медных кабелей, оптических волокон, беспроводных средств передачи данных, маршрутизаторов, межсетевых экранов, коммутаторов, шлюзовых компьютеров и (или) периферийных серверов. Плата сетевого адаптера или сетевой интерфейс в каждом вычислительном или обрабатывающем устройстве получает машиночитаемые программные инструкции из сети и пересылает на хранение в машиночитаемый носитель информации в соответствующем вычислительном или обрабатывающем устройстве.
[0079] Машиночитаемый программный код или инструкции для выполнения операций могут быть командами ассемблера, командами архитектуры набора команд (ISA), машинными командами, машинозависимыми командами, микрокодом, командами микропрограммы, данными установки состояния, данными конфигурации для интегральных схем либо исходным или объектным кодом, написанными на любой комбинации из одного или более языков программирования, включая объектно-ориентированные языки программирования, например Smalltalk, С++ или аналогичные им, а также процедурные языки программирования, например язык программирования "С" или аналогичные языки программирования. Машиночитаемые программные инструкции могут выполняться на компьютере пользователя полностью или частично, как отдельный программный пакет, частично на компьютере пользователя и частично на удаленном компьютере либо полностью на удаленном компьютере или сервере. В последнем варианте удаленный компьютер может быть подключен к компьютеру пользователя через сеть любого типа, включая локальную сеть (LAN) или глобальную сеть (WAN), либо можно использовать подключение к внешнему компьютеру (например через Интернет с помощью интернет-провайдера). В некоторых вариантах осуществления выполнять машиночитаемые программные инструкции могут электронные схемы, в том числе программируемые логические схемы, программируемые логические интегральные схемы (FPGA) или программируемые логические матрицы (PLA, programmable logic array), используя информацию о состоянии машиночитаемых программных команд для персонализации электронной схемы с целью выполнения определенных аспектов или операций.
[0080] Эти машиночитаемые программные инструкции могут быть переданы в процессор компьютера общего назначения, в компьютер специального назначения или в другое программируемое устройство обработки данных для формирования машины таким образом, чтобы инструкции, выполняемые процессором компьютера или другого программируемого устройства обработки данных, создавали средства для реализации функций или действий, указанных на блоках блок-схемы и (или) структурной схемы. Эти машиночитаемые программные инструкции могут также храниться на машиночитаемом носителе информации, который может предписывать компьютеру, программируемому устройству обработки данных и (или) другим устройствам функционировать определенным образом, причем машиночитаемый носитель информации с записанными на нем инструкциями представляет собой изделие, включающее в себя инструкции, реализующие определенные аспекты функции или действий, указанных на блоках блок-схемы и (или) структурной схемы.
[0081] Машиночитаемые программные инструкции могут также загружаться в компьютер, другое программируемое устройство обработки данных или иное устройство, чтобы инициировать выполнение ряда операционных действий на компьютере, другом программируемом устройстве или ином устройстве для получения реализованной на компьютере процедуры, причем инструкции, выполняемые на компьютере, другом программируемом устройстве или ином устройстве, реализуют функции или действия, указанные на блоках блок-схемы и (или) структурной схемы.
[0082] Приведенные на чертежах блок-схемы и структурные схемы иллюстрируют архитектуру, функциональные возможности и работу возможных реализаций систем, способов и машиночитаемых носителей согласно различным вариантам осуществления изобретения. В связи с этим, каждый блок блок-схемы или структурной схемы может соответствовать модулю, сегменту или части инструкций, которые включают в себя одну или более исполняемых инструкций для реализации заданных логических функций. Способ, компьютерная система и машиночитаемый носитель могут содержать дополнительные блоки, меньшее количество блоков, другие блоки или иначе организованные блоки, нежели те, что изображены на рисунках. В некоторых альтернативных вариантах реализации указанные на блоках функции могут выполняться не в том порядке, который указан на чертежах. Например, два блока, изображенные последовательно, на практике могут выполняться одновременно или практически одновременно, а иногда блоки могут выполняться в обратном порядке в зависимости от используемых функциональных возможностей. Следует также отметить, что каждый блок структурной схемы и (или) блок-схемы, а также комбинации блоков структурной схемы и (или) блок-схемы могут быть реализованы специализированными аппаратными системами, которые выполняют указанные функции или действия либо реализуют комбинации инструкций для специализированных аппаратных средств и компьютеров.
[0083] Следует понимать, что описанные в настоящем документе системы и (или) способы могут быть реализованы посредством различных форм аппаратных средств, микропрограммного обеспечения или комбинации аппаратных средств и программного обеспечения. Фактическое специализированное управляющее оборудование или программный код, используемые для реализации этих систем и (или) способов, не ограничивают варианты реализации. Поэтому работа и поведение систем и (или) способов описываются в настоящем документе без ссылки на конкретный программный код; при этом подразумевается, что программное обеспечение и аппаратные средства могут быть разработаны для реализации систем и (или) способов на основе приведенного в настоящем документе описания.
[0084] Никакие элементы, действия или инструкции, используемые в настоящем документе, не следует рассматривать как критически важные или существенные, если это не оговорено в явном виде. Кроме того, понятия, используемые в настоящем документе в единственном числе, могут подразумевать один или более экземпляров и могут использоваться с тем же значением вместе с выражением «один или более». Также в настоящем документе понятие «набор» используется для обозначения одного или более элементов (например, связанных элементов, несвязанных элементов, комбинации связанных и несвязанных предметов и т.д.) и может использоваться взаимозаменяемо с выражением «один или более». Если имеется в виду только один элемент, то используется понятие «один» или аналогичная формулировка. Кроме того, используемые в настоящем документе понятия «имеет», «имеют», «имеющий» и т.п.являются неограничивающими понятиями. Кроме того, формулировка «на основе» означает «по меньшей мере частично на основе», если явно не оговорено иное.
[0085] Описания различных аспектов и вариантов осуществления представлены для наглядности и не исчерпывают и не ограничивают раскрытые варианты осуществления. Даже если в формуле изобретения и (или) в описании приводятся комбинации признаков, такие комбинации не ограничивают возможные варианты осуществления. На практике многие из этих признаков можно объединять различными способами, которые отдельно не упоминаются в формуле изобретения и (или) не раскрыты в описании. Хотя каждый приведенный ниже зависимый пункт формулы может напрямую зависеть только от одного пункта, при раскрытии возможных вариантов осуществления каждый зависимый пункт рассматривается в комбинации со всеми остальными пунктами формулы. Специалистам в данной области техники будут понятны разнообразные модификации и варианты, не выходящие за рамки описанных вариантов осуществления изобретения. Используемая в настоящем документе терминология выбрана с целью наилучшего разъяснения принципов осуществления, практического применения или технического усовершенствования по сравнению с существующими на рынке технологиями, а также для того, чтобы другие специалисты в данной области техники могли понять раскрытые здесь варианты осуществления.
название | год | авторы | номер документа |
---|---|---|---|
КОДИРОВАНИЕ ВИДЕОДАННЫХ, ИСПОЛЬЗУЯ ИНФРАСТРУКТУРУ ДВУХУРОВНЕВОГО МНОГОТИПНОГО ДЕРЕВА | 2017 |
|
RU2746935C2 |
УПРАВЛЕНИЕ МАКСИМАЛЬНЫМ РАЗМЕРОМ ПРЕОБРАЗОВАНИЯ | 2020 |
|
RU2778250C1 |
СПОСОБЫ И СИСТЕМЫ ЭКСПОНЕНЦИАЛЬНОГО РАЗБИЕНИЯ | 2019 |
|
RU2788631C2 |
СПОСОБ И УСТРОЙСТВО КОДИРОВАНИЯ ИЛИ ДЕКОДИРОВАНИЯ ВИДЕО | 2020 |
|
RU2782435C1 |
СИСТЕМЫ И СПОСОБЫ ДЛЯ РАЗДЕЛЕНИЯ ВИДЕОБЛОКОВ ПРИ ВНЕШНЕМ ПРОГНОЗИРОВАНИИ СРЕЗА ВИДЕОДАННЫХ | 2018 |
|
RU2767982C2 |
СПОСОБЫ И УСТРОЙСТВА ДЛЯ ОБРАБОТКИ ВИДЕО ДАННЫХ С УСЛОВНЫМ НАПРАВЛЕНИЕМ СИГНАЛА ИНФОРМАЦИИ ПАРАМЕТРА КВАНТОВАНИЯ | 2017 |
|
RU2718164C1 |
ПЕРЕДАЧА В СЛУЖЕБНЫХ СИГНАЛАХ ПРЕДИКТОРА ВЕКТОРА ДВИЖЕНИЯ НА ОСНОВЕ СУБЪЕДИНИЦ ПРЕДСКАЗАНИЯ | 2019 |
|
RU2783333C2 |
ЭФФЕКТИВНОЕ ПО ПАМЯТИ МОДЕЛИРОВАНИЕ КОНТЕКСТА | 2012 |
|
RU2580066C2 |
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ ОБЛАКА ТОЧЕК | 2021 |
|
RU2792020C1 |
Диапазон минимального размера блока кодирования при кодировании видео | 2020 |
|
RU2796261C1 |
Изобретение относится к средствам для кодирования видео. Технический результат заключается в повышении эффективности кодирования. Принимают видеоданные, имеющие размер единицы дерева кодирования. Передают, в наборе параметров последовательности или в заголовке слайса, два или более флагов, соответствующих размеру единицы дерева кодирования. При этом передача двух или более флагов, соответствующих размеру единицы дерева кодирования, содержит передачу первого флага из двух или более флагов, причем первый флаг соответствует первому размеру единицы дерева кодирования. Когда первый флаг равен 1, выполняют кодирование видеоданных на основании первого размера единицы дерева кодирования без передачи второго флага из двух или более флагов. Когда первый флаг равен 0, выполняют передачу второго флага из двух или более флагов и кодирование видеоданных на основании переданного второго флага. 3 н. и 15 з.п. ф-лы, 10 ил.
1. Способ кодирования видео, реализуемый процессором и содержащий:
прием (402) видеоданных, имеющих размер единицы дерева кодирования;
передачу (404), в наборе параметров последовательности или в заголовке слайса, двух или более флагов, соответствующих размеру единицы дерева кодирования,
при этом передача двух или более флагов, соответствующих размеру единицы дерева кодирования, содержит передачу первого флага из двух или более флагов, причем первый флаг соответствует первому размеру единицы дерева кодирования;
когда первый флаг равен 1, кодирование (406) видеоданных на основании первого размера единицы дерева кодирования без передачи второго флага из двух или более флагов и,
когда первый флаг равен 0, передача второго флага из двух или более флагов и кодирование (406) видеоданных на основании переданного второго флага.
2. Способ по п. 1, в котором в число двух или более флагов входят два или более из флага размера 32-пиксельной единицы дерева кодирования, флага размера 64-пиксельной единицы дерева кодирования и флага размера 128-пиксельной единицы дерева кодирования.
3. Способ по п. 2, в котором первым передают флаг размера 32-пиксельной единицы дерева кодирования, а флаг размера 64-пиксельной единицы дерева кодирования передают в случае, если флаг размера 32-пиксельной единицы дерева кодирования не равен 1.
4. Способ по п. 2, в котором первым передают флаг размера 64-пиксельной единицы дерева кодирования, а флаг размера 32-пиксельной единицы дерева кодирования передают в случае, если флаг размера 64-пиксельной единицы дерева кодирования не равен 1.
5. Способ по п. 2, в котором первым передают флаг размера 32-пиксельной единицы дерева кодирования, а флаг размера 128-пиксельной единицы дерева кодирования передают в случае, если флаг размера 32-пиксельной единицы дерева кодирования не равен 1.
6. Способ по п. 2, в котором первым передают флаг размера 128-пиксельной единицы дерева кодирования, а флаг размера 32-пиксельной единицы дерева кодирования передают в случае, если флаг размера 128-пиксельной единицы дерева кодирования не равен 1.
7. Способ по п. 2, в котором первым передают флаг размера 64-пиксельной единицы дерева кодирования, а флаг размера 128-пиксельной единицы дерева кодирования передают в случае, если флаг размера 64-пиксельной единицы дерева кодирования не равен 1.
8. Способ по п. 2, в котором первым передают флаг размера 128-пиксельной единицы дерева кодирования, а флаг размера 64-пиксельной единицы дерева кодирования передают в случае, если флаг размера 128-пиксельной единицы дерева кодирования не равен 1.
9. Способ по п. 2, в котором флаг максимального размера преобразования яркостной компоненты 64 пикселя передают исходя из того, что размер единицы дерева кодирования, связанный с видеоданными, больше или равен 64×64 пикселя.
10. Способ по п. 9, в котором на основании того, что флаг размера 32-пиксельной единицы дерева кодирования передан первым и равен 1, флаг максимального размера преобразования яркостной компоненты 64 пикселя не передают.
11. Способ по п. 9, в котором на основании того, что флаг размера 64-пиксельной единицы дерева кодирования передан первым и равен 0, а затем передан флаг размера 32-пиксельной единицы дерева кодирования, который равен 1, флаг максимального размера преобразования яркостной компоненты 64 пикселя не передают.
12. Способ по п. 9, в котором на основании того, что флаг размера 128-пиксельной единицы дерева кодирования передан первым и равен 0, а затем передан флаг размера 32-пиксельной единицы дерева кодирования, который равен 1, флаг максимального размера преобразования яркостной компоненты 64 пикселя не передают.
13. Способ по п. 1, в котором первый флаг и второй флаг из двух или более флагов соответствуют набору параметров последовательности, связанному с видеоданными, причем первый флаг указывает, используется ли наименьший размер единицы дерева кодирования, а второй флаг указывает, используется ли наибольший размер единицы дерева кодирования.
14. Способ по п. 13, в котором первый флаг передают первым, а второй флаг передают на основании того, что наименьший размер единицы дерева кодирования не используется.
15. Способ по п. 13, в котором второй флаг передают первым, а первый флаг передают на основании того, что наибольший размер единицы дерева кодирования не используется.
16. Способ по п. 13, в котором флаг максимального размера преобразования яркостной компоненты 64 пикселя передают на основании того, что наименьший размер единицы дерева кодирования не используется.
17. Компьютерная система для кодирования видеоданных, которая включает в себя:
один или более машиночитаемых носителей информации, конфигурированных для хранения компьютерного программного кода, и
один или более компьютерных процессоров, конфигурированных для доступа к указанному компьютерному программному коду и работе в соответствии с его инструкциями, причем этот компьютерный программный код содержит выполнение способа по любому из пп. 1-16.
18. Машиночитаемый носитель, на котором записана компьютерная программа для кодирования видеоданных, причем компьютерная программа конфигурирована таким образом, что под ее управлением один или более компьютерных процессоров выполняют способ по любому из пп. 1-16.
Устройство для закрепления лыж на раме мотоциклов и велосипедов взамен переднего колеса | 1924 |
|
SU2015A1 |
Станок для придания концам круглых радиаторных трубок шестигранного сечения | 1924 |
|
SU2019A1 |
Способ получения цианистых соединений | 1924 |
|
SU2018A1 |
Токарный резец | 1924 |
|
SU2016A1 |
Способ защиты переносных электрических установок от опасностей, связанных с заземлением одной из фаз | 1924 |
|
SU2014A1 |
CN 106254870 A, 21.12.2016. |
Авторы
Даты
2022-10-12—Публикация
2020-09-22—Подача