[0001] Данная заявка испрашивает приоритет заявки на патент (США) номер 17/143611 года, поданной 7 января 2021 года, которая испрашивает приоритет предварительной заявки на патент (США) 62/958561, поданной 8 января 2020 года, причем все содержимое содержится в данном документе по ссылке.
Область техники, к которой относится изобретение
[0002] Данное раскрытие относится к хранению и доставке видеоданных.
Уровень техники
[0003] Функциональные возможности цифрового видео могут быть включены в широкий диапазон устройств, включающих в себя цифровые телевизионные приемники, системы цифровой прямой широковещательной передачи, беспроводные широковещательные системы, персональные цифровые устройства (PDA), переносные или настольные компьютеры, планшетные компьютеры, устройства для чтения электронных книг, цифровые камеры, цифровые записывающие устройства, цифровые мультимедийные проигрыватели, устройства видеоигр, консоли для видеоигр, сотовые или спутниковые радиотелефоны, так называемые "смартфоны", устройства видеоконференцсвязи, устройства потоковой передачи видео и т.п. Цифровые видеоустройства реализуют такие технологии кодирования видео, как технологии кодирования видео, описанные в стандартах, заданных посредством стандартов MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, часть 10, усовершенствованное кодирование видео (AVC), ITU-T H.265/стандарта высокоэффективного кодирования видео (HEVC), и расширений таких стандартов. Видеоустройства могут передавать, принимать, кодировать, декодировать и/или сохранять цифровую видеоинформацию более эффективно посредством реализации таких технологий кодирования видео.
[0004] Технологии кодирования видео включают в себя пространственное (внутрикадровое, внутри картинки) предсказание и/или временное (между картинками, межкадровое) предсказание для того, чтобы уменьшать или удалять избыточность, внутренне присутствующую в видеопоследовательностях. Для кодирования видео на основе блоков, видеосрез (например, видекартинка или часть видеокартинки) может сегментироваться на видеоблоки, которые также могут называться "единицами дерева кодирования (CTU)", "единицами кодирования (CU)" и/или "узлами кодирования". Видеоблоки во внутренне кодированном (I-) срезе картинки кодируются с использованием пространственного предсказания относительно опорных выборок в соседних блоках в той же картинке. Видеоблоки во внешне кодированном (P- или B-) срезе картинки могут использовать пространственное предсказание относительно опорных выборок в соседних блоках в той же картинке или временное предсказание относительно опорных выборок в других опорных картинках. Картинки могут называться "кадрами", и опорные картинки могут называться "опорными кадрами".
Сущность изобретения
[0005] В целом, это раскрытие описывает технологии для хранения и доставки потока битов, соответствующего стандарту кодирования видео на основе формата файлов. Это раскрытие также описывает примеры профиля мультимедийного формата для стандарта кодирования видео, а также доставку с использованием технологии потоковой передачи. В качестве одного примера, стандарт кодирования видео является стандартом фундаментального кодирования видео (EVC), и формат файлов является базовым форматом мультимедийных файлов Международной организации по стандартизации. Базовый формат мультимедийных файлов Международной организации по стандартизации называется "ISOBMFF". Один пример профиля мультимедийного формата представляет собой профиль общего формата мультимедийных приложений (CMAF), и один пример технологии потоковой передачи представляет собой динамическую адаптивную потоковую передачу по HTTP (DASH). Это раскрытие также может описывать требования по шифрованию и параметр Codecs, который должен использоваться с типом многоцелевого расширения возможностей почты в сети Интернет (MIME). Хотя описывается относительно EVC, ISOBMFF, CMAF и DASH, примерные технологии не должны считаться ограниченными таким образом.
[0006] Согласно одному примеру этого раскрытия, способ обработки видеопотока или видеофайла включает в себя прием конфигурационной записи для декодирования потока битов видеоданных, при этом конфигурационная запись для потока битов включает в себя синтаксический элемент индикатора набора инструментальных средств, который включает в себя информацию, идентифицирующую, из набора инструментальных средств декодирования видео, инструментальные средства, которые требуются, чтобы декодировать поток битов, ассоциированный с конфигурационной записью; на основе синтаксического элемента индикатора набора инструментальных средств, определение того, следует или нет извлекать поток битов, ассоциированный с конфигурационной записью; и на основе определения извлекать поток битов, ассоциированный с конфигурационной записью, извлечение потока битов и вывод потока битов в видеодекодер для декодирования.
[0007] Согласно другому примеру этого раскрытия, устройство для обработки видеопотока включает в себя запоминающее устройство, выполненное с возможностью сохранять видеопоток и один или несколько процессоров, реализованных в схеме, соединенной с запоминающим устройством и выполненных с возможностью принимать конфигурационную запись для декодирования потока битов видеоданных, при этом конфигурационная запись для потока битов включает в себя синтаксический элемент индикатора набора инструментальных средств, который включает в себя информацию, идентифицирующую, из набора инструментальных средств декодирования видео, инструментальные средства, которые требуются, чтобы декодировать поток битов, ассоциированный с конфигурационной записью; на основе синтаксического элемента индикатора набора инструментальных средств, определять, следует ли извлекать поток битов, ассоциированный с конфигурационной записью; и на основе определения извлекать поток битов, ассоциированный с конфигурационной записью, извлекать поток битов и выводить поток битов в видеодекодер для декодирования.
[0008] Согласно другому примеру этого раскрытия, сохраняет инструкции, которые машиночитаемый носитель хранения данных, при выполнении посредством одного или более процессоров инструктируют одному или более процессоров принимать конфигурационную запись для декодирования потока битов видеоданных, при этом конфигурационная запись для потока битов включает в себя синтаксический элемент индикатора набора инструментальных средств, который включает в себя информацию, идентифицирующую, из набора инструментальных средств декодирования видео, инструментальные средства, которые требуются, чтобы декодировать поток битов, ассоциированный с конфигурационной записью; на основе синтаксического элемента индикатора набора инструментальных средств, определять, следует ли извлекать поток битов, ассоциированный с конфигурационной записью; и на основе определения извлекать поток битов, ассоциированный с конфигурационной записью, извлекать поток битов и выводить поток битов в видеодекодер для декодирования.
[0009] Согласно другому примеру этого раскрытия, оборудование для обработки видеопотока или видеофайла включает в себя средство для приема конфигурационной записи для декодирования потока битов видеоданных, при этом конфигурационная запись для потока битов включает в себя синтаксический элемент индикатора набора инструментальных средств, который включает в себя информацию, идентифицирующую, из набора инструментальных средств декодирования видео, инструментальные средства, которые требуются, чтобы декодировать поток битов, ассоциированный с конфигурационной записью; средство для определения, следует ли извлекать поток битов, ассоциированный с конфигурационной записью, на основе синтаксического элемента индикатора набора инструментальных средств; средство для извлечения потока битов на основе определения извлекать поток битов, ассоциированный с конфигурационной записью; и средство для вывода потока битов в видеодекодер для декодирования.
[0010] Подробности одного или более примеров изложены на прилагаемых чертежах и в нижеприведенном описании. Другие признаки, цели и преимущества должны становиться очевидными из описания, чертежей и формулы изобретения.
Краткое описание чертежей
[0011] Фиг. 1 является блок-схемой, иллюстрирующей примерную систему кодирования и декодирования видео, которая может выполнять технологии этого раскрытия.
[0012] Фиг. 2A и 2B являются концептуальными схемами, иллюстрирующими примерную структуру в виде дерева квадрантов и двоичного дерева (QTBT) и соответствующую единицу дерева кодирования (CTU).
[0013] Фиг. 3 является блок-схемой, иллюстрирующей примерный видеокодер, который может выполнять технологии этого раскрытия.
[0014] Фиг. 4 является блок-схемой, иллюстрирующей примерный видеодекодер, который может выполнять технологии этого раскрытия.
[0015] Фиг. 5 является концептуальной схемой, иллюстрирующей примерную структуру файла в соответствии с одной или более технологий этого раскрытия.
[0016] Фиг. 6 является концептуальной схемой, иллюстрирующей элементы примерного мультимедийного контента.
[0017] Фиг. 7 является блок-схемой, иллюстрирующей элементы примерного видеофайла.
[0018] Фиг. 8 является блок-схемой последовательности операций, иллюстрирующей примерный способ для видеоданных процесса в соответствии с технологиями этого раскрытия.
Подробное описание изобретения
[0019] Стандарт фундаментального кодирования видео (EVC), разработанный посредством ISO/IEC JTC 1/SC 29/WG 11 (MPEG), предлагает эффективное решение по кодированию видео с низкой сложностью. Элементарные EVC-потоки структурируются в качестве единиц уровня абстрагирования сети (NAL). Устройство хранения данных NAL-единиц в базовом формате мультимедийных файлов ISO (ISOBMFF) следует аналогичным принципам с другими NAL-структурированными видеоформатами (например, согласно стандарту высокоэффективного кодирования видео (HEVC) и/или стандарту универсального кодирования видео (VVC)).
[0020] Устройство хранения данных элементарных EVC-потоков может подразделяться на две части: статическая информация, которая глобально используется в элементарном потоке и динамической информации, которая может варьироваться в расчете на выборку. Набор параметров последовательности (SPS) и набор параметров картинки (PPS) могут представлять собой часть информации, которая редко изменяется и может считаться статической. Набор флагов может использоваться для того, чтобы указывать, предполагается или нет изменение наборов параметров в потоке. В таком случае, задается группировка выборок, которая указывает выборки, при которых изменяются наборы параметров.
[0021] Набор параметров адаптации (APS) может представлять собой динамическую информацию, которая может изменяться на основе каждой выборки. APS используется для того, чтобы переносить информацию адаптивного контурного фильтра (ALF). Присутствие ALF сигнализируется через флаг и выборки, которые переносятся, APS-информация может принадлежать той же группе выборок.
[0022] Поле может означать элементарную синтаксическую структуру в ISOBMFF, включающую в себя четырехсимвольный кодированный тип поля, число байтов поля и рабочие данные. ISOBMFF-файл состоит из последовательности полей, и поля могут содержать другие поля. Кинополе (moov) содержит метаданные для непрерывных мультимедийных потоков, присутствующих в файле, при этом каждый из них представляется в файле в качестве дорожки.
[0023] Метаданные для дорожки могут включаться в поле дорожек (trak), тогда как мультимедийный контент дорожки может включаться либо в поле мультимедийных данных (mdat), либо непосредственно в отдельный файл. Мультимедийный контент для дорожек включает в себя последовательность выборок, таких как единицы аудио- или видеодоступа. Единица доступа, в общем, представляет собой единицу данных, включающих в себя кодированные мультимедийные данные (например, картинку) для общего момента времени. Выборка представляет собой единицу доступа как задано посредством конкретной спецификации, к примеру, спецификации кодирования видео, описанные в данном документе. Запись выборки может предоставлять описание соответствующей выборки.
[0024] ISOBMFF указывает следующие типы дорожек: мультимедийная дорожка, которая содержит элементарный мультимедийный поток, дорожка с подсказками, которая или включает в себя инструкции по передаче мультимедиа или представляет поток принимаемых пакетов, и дорожка синхронизированных по времени метаданных, которая содержит метаданные с временной синхронизацией.
[0025] Это раскрытие описывает конфигурационную запись для потока битов видеоданных, которые включают в себя синтаксический элемент индикатора набора инструментальных средств, который включает в себя информацию, идентифицирующую инструментальные средства, которые требуются, чтобы декодировать поток битов, ассоциированный с конфигурационной записью. Это раскрытие также описывает технологии для включения параметра типа многоцелевого расширения возможностей почты в сети Интернет (MIME), например, в HTTP-передаче, которая включает в себя пару ключ/значение. Ключ может указывать то, что MIME-тип идентифицирует инструментальные средства декодирования видео, и значение может идентифицировать инструментальные средства, которые требуются, чтобы декодировать поток битов. Типично, инструментальное средство может рассматриваться, чтобы требоваться, если инструментальное средство активируется, по меньшей мере, в одном наборе параметров для мультимедийного потока. Посредством использования такого синтаксического элемента индикатора набора инструментальных средств и MIME-типа, технологии этого раскрытия могут преимущественно обеспечивать возможность устройству видеообработки определять то, может или нет видеодекодер устройства видеообработки декодировать файл без необходимости синтаксически анализировать большинство файла.
[0026] Фиг. 1 является блок-схемой, иллюстрирующей примерную систему 100 кодирования и декодирования видео, которая может выполнять технологии этого раскрытия. Технологии этого раскрытия, в общем, направлены на кодирование (кодирование и/или декодирование) видеоданных. В общем, видеоданные включают в себя любые данные для обработки видео. Таким образом, видеоданные могут включать в себя необработанное некодированное видео, кодированное видео, декодированное (например, восстановленное) видео и видеометаданные, такие как данные сигнализации.
[0027] Как показано на фиг. 1, система 100 включает в себя исходное устройство 102, которое предоставляет кодированные видеоданные, которые должны декодироваться и отображаться посредством целевого устройства 116, в этом примере. В частности, исходное устройство 102 предоставляет видеоданные в целевое устройство 116 через машиночитаемый носитель 110. Исходное устройство 102 и целевое устройство 116 могут содержать любые из широкого диапазона устройств, включающих в себя настольные компьютеры, ноутбуки (т.е. переносные компьютеры), планшетные компьютеры, абонентские приставки, телефонные трубки, к примеру, смартфоны, телевизионные приемники, камеры, устройства отображения, цифровые мультимедийные проигрыватели, консоли для видеоигр, устройство потоковой передачи видео и т.п. В некоторых случаях, исходное устройство 102 и целевое устройство 116 могут оснащаться возможностями беспроводной связи и в силу этого могут называться "устройствами беспроводной связи".
[0028] В примере по фиг. 1, исходное устройство 102 включает в себя видеоисточник 104, запоминающее устройство 106, видеокодер 200 и интерфейс 108 вывода. Целевое устройство 116 включает в себя интерфейс 122 ввода, видеодекодер 300, запоминающее устройство 120 и устройство 118 отображения. В соответствии с этим раскрытием, исходное устройство 102 и целевое устройство 116 могут быть выполнены с возможностью применять технологии для хранения и доставки потоков битов, соответствующих стандарту кодирования видео на основе формата файлов (например, элементарный поток битов фундаментального кодирования видео (EVC) на основе базового формата мультимедийных файлов ISO (ISOBMFF)). Раскрытие также описывает мультимедийный профиль (например, общий формат мультимедийных приложений (мультимедийный CMAF-профиль для EVC), описывает доставку с использованием динамической адаптивной потоковой передачи по HTTP (DASH), описывает требования по шифрованию и описывает параметры кодека, которые должны использоваться с типом многоцелевого расширения возможностей почты в сети Интернет (MIME), который может использоваться посредством видеокодера 200 и видеодекодера 300. Таким образом, исходное устройство 102 представляет пример клиентского устройства, выполненного с возможностью выполнять кодирование видео и передачу, в то время как целевое устройство 116 представляет пример целевого устройства, выполненного с возможностью принимать и декодировать кодированное видео. В других примерах, исходное устройство и целевое устройство могут включать в себя другие компоненты или компоновки. Например, исходное устройство 102 может принимать видеоданные из внешнего видеоисточника, такого как внешняя камера. Аналогично, целевое устройство 116 может взаимодействовать с внешним устройством отображения вместо включения в себя интегрированного устройства отображения.
[0029] Система 100, как показано на фиг. 1, представляет собой просто один пример. В общем, любое устройство кодирования и/или декодирования цифрового видео может выполнять технологии для хранения и доставки потоков битов, соответствующих стандарту кодирования видео на основе формата файлов (например, элементарный EVC-поток битов на основе ISOBMFF). Раскрытие также описывает мультимедийный профиль (например, мультимедийный CMAF-профиль для EVC), описывает доставку с использованием DASH, описывает требования по шифрованию и описывает параметры кодека, которые должны использоваться с MIME-типом, который может использоваться посредством видеокодера 200 и видеодекодера 300. Исходное устройство 102 и целевое устройство 116 представляют собой просто примеры таких устройств кодирования, в которых исходное устройство 102 формирует кодированные видеоданные для передачи в целевое устройство 116. Это раскрытие называет устройство "кодирования" в качестве устройства, которое выполняет кодирование (кодирование и/или декодирование) данных. Таким образом, видеокодер 200 и видеодекодер 300 представляют примеры устройств кодирования, в частности, видеокодера и видеодекодера, соответственно. В некоторых примерах, исходное устройство 102 и целевое устройство 116 могут работать практически симметрично таким образом, что каждое из исходного устройства 102 и целевого устройства 116 включает в себя компоненты кодирования и декодирования видео. Следовательно, система 100 может поддерживать одностороннюю и двухстороннюю передачу видео между исходным устройством 102 и целевым устройством 116, к примеру, для потоковой передачи видео, воспроизведения видео, широковещательной передачи видео или видеотелефонии.
[0030] В общем, видеоисточник 104 представляет источник видеоданных (т.е. необработанных некодированных видеоданных) и предоставляет последовательную серию картинок (также называемых "кадрами") видеоданных в видеокодер 200, который кодирует данные для картинок. Видеоисточник 104 исходного устройства 102 может включать в себя устройство видеозахвата, такое как видеокамера, видеоархив, содержащий ранее захваченное необработанное видео, и/или интерфейс прямой видеотрансляции, чтобы принимать видео от поставщика видеосодержимого. В качестве дополнительной альтернативы, видеоисточник 104 может формировать данные компьютерной графики в качестве исходного видео либо комбинацию передаваемого вживую видео, архивного видео и машиногенерируемого видео. В каждом случае, видеокодер 200 кодирует захваченные, предварительно захваченные или машиногенерируемые видеоданные. Видеокодер 200 может перекомпоновывать картинки из принятого порядка (иногда называемого "порядком отображения") в порядок кодирования для кодирования. Видеокодер 200 может формировать поток битов, включающий в себя кодированные видеоданные. Исходное устройство 102 затем может выводить кодированные видеоданные через интерфейс 108 вывода на машиночитаемый носитель 110 для приема и/или извлечения, например, посредством интерфейса 122 ввода целевого устройства 116.
[0031] Запоминающее устройство 106 исходного устройства 102 и запоминающее устройство 120 целевого устройства 116 представляют запоминающие устройства общего назначения. В некоторых примерах, запоминающие устройства 106, 120 могут сохранять необработанные видеоданные, например, необработанное видео из видеоисточника 104 и необработанные декодированные видеоданные из видеодекодера 300. Дополнительно или альтернативно, запоминающие устройства 106, 120 могут сохранять программные инструкции, выполняемые, например, посредством видеокодера 200 и видеодекодера 300, соответственно. Хотя запоминающее устройство 106 и запоминающее устройство 120 показаны отдельно от видеокодера 200 и видеодекодера 300 в этом примере, следует понимать, что видеокодер 200 и видеодекодер 300 также могут включать в себя внутренние запоминающие устройства для функционально аналогичных или эквивалентных целей. Кроме того, запоминающие устройства 106, 120 могут сохранять кодированные видеоданные, например, выводимые из видеокодера 200 и вводимые в видеодекодер 300. В некоторых примерах, части запоминающих устройств 106, 120 могут выделяться в качестве одного или более видеобуферов, например, чтобы сохранять необработанные, декодированные и/или кодированные видеоданные.
[0032] Машиночитаемый носитель 110 может представлять любой тип носителя или устройства, допускающего транспортировку кодированных видеоданных из исходного устройства 102 в целевое устройство 116. В одном примере, машиночитаемый носитель 110 представляет среду связи, чтобы обеспечивать возможность исходному устройству 102 передавать кодированные видеоданные непосредственно в целевое устройство 116 в реальном времени, например, через радиочастотную сеть или компьютерную сеть. Интерфейс 108 вывода может модулировать передаваемый сигнал, включающий в себя кодированные видеоданные, и интерфейс 122 ввода может демодулировать принимаемый сигнал передачи, согласно стандарту связи, такому как протокол беспроводной связи. Среда связи может содержать любую беспроводную или проводную среду связи, такую как радиочастотный (RF) спектр либо одна или более физических линий передачи. Среда связи может формировать часть сети с коммутацией пакетов, такой как локальная вычислительная сеть, глобальная вычислительная сеть либо глобальная сеть, такая как Интернет. Среда связи может включать в себя маршрутизаторы, коммутаторы, базовые станции или любое другое оборудование, которое может быть полезным для того, чтобы упрощать передачу из исходного устройства 102 в целевое устройство 116.
[0033] В некоторых примерах, исходное устройство 102 может выводить кодированные данные из интерфейса 108 вывода в устройство 112 хранения данных. Аналогично, целевое устройство 116 может осуществлять доступ к кодированным данным из устройства 112 хранения данных через интерфейс 122 ввода. Устройство 112 хранения данных может включать в себя любые из множества распределенных или локально доступных носителей хранения данных, таких как жесткий диск, Blu-Ray-диски, DVD, CD-ROM, флэш-память, энергозависимое или энергонезависимое запоминающее устройство либо любые другие подходящие цифровые носители хранения данных для сохранения кодированных видеоданных.
[0034] В некоторых примерах, исходное устройство 102 может выводить кодированные видеоданные на файловый сервер 114 или другое промежуточное устройство хранения данных, которое может сохранять кодированное видео, сформированное посредством исходного устройства 102. Целевое устройство 116 может осуществлять доступ к сохраненным видеоданным из файлового сервера 114 через потоковую передачу или загрузку. Файловый сервер 114 может представлять собой любой тип серверного устройства, допускающего сохранение кодированных видеоданных и передачу этих кодированных видеоданных в целевое устройство 116. Файловый сервер 114 может представлять веб-сервер (например, для веб-узла), сервер по протоколу передачи файлов (FTP), сетевое устройство доставки контента или устройство по протоколу системы хранения данных с подключением по сети (NAS). Целевое устройство 116 может осуществлять доступ к кодированным видеоданным из файлового сервера 114 через любое стандартное соединение для передачи данных, включающее в себя Интернет-соединение. Оно может включать в себя беспроводной канал (например, Wi-Fi-соединение), проводное соединение (например, цифровую абонентскую линию (DSL), кабельный модем и т.д.) либо комбинацию означенного, которая является подходящей для осуществления доступа к кодированным видеоданным, сохраненным на файловом сервере 114. Файловый сервер 114 и интерфейс 122 ввода могут быть выполнены с возможностью работать согласно протоколу потоковой передачи, протоколу передачи на основе загрузки либо комбинации вышеозначенного.
[0035] Интерфейс 108 вывода и интерфейс 122 ввода могут представлять беспроводные передающие устройства/приемные устройства, модемы, проводные сетевые компоненты (например, Ethernet-карты), компоненты беспроводной связи, которые работают согласно любым из множества IEEE 802.11-стандартов, либо другие физические компоненты. В примерах, в которых интерфейс 108 вывода и интерфейс 122 ввода содержат беспроводные компоненты, интерфейс 108 вывода и интерфейс 122 ввода могут быть выполнены с возможностью передавать данные, к примеру, кодированные видеоданные, согласно стандарту сотовой связи, такому как 4G, 4G LTE (стандарт долгосрочного развития), усовершенствованный стандарт LTE, 5G и т.п. В некоторых примерах, в которых интерфейс 108 вывода содержит беспроводное передающее устройство, интерфейс 108 вывода и интерфейс 122 ввода могут быть выполнены с возможностью передавать данные, к примеру, кодированные видеоданные, согласно другим стандартам беспроводной связи, таким как IEEE 802.11-спецификация, IEEE 802.15-спецификация (например, ZigBee™), стандарт Bluetooth™ и т.п. В некоторых примерах, исходное устройство 102 и/или целевое устройство 116 могут включать в себя соответствующие внутримикросхемные (SoC) устройства. Например, исходное устройство 102 может включать в себя SoC-устройство, чтобы выполнять функциональность, приписываемую видеокодеру 200 и/или интерфейсу 108 вывода, и целевое устройство 116 может включать в себя SoC-устройство, чтобы выполнять функциональность, приписываемую видеодекодеру 300 и/или интерфейсу 122 ввода.
[0036] Технологии этого раскрытия могут применяться к кодированию видео в поддержку любых из множества мультимедийных вариантов применения, таких как телевизионные широковещательные передачи по радиоинтерфейсу, кабельные телевизионные передачи, спутниковые телевизионные передачи, потоковые передачи видео по Интернету, такие как динамическая адаптивная потоковая передача по HTTP (DASH), цифровое видео, которое кодируется на носитель хранения данных, декодирование цифрового видео, сохраненного на носителе хранения данных, или другие варианты применения.
[0037] Интерфейс 122 ввода целевого устройства 116 принимает кодированный поток видеобитов из машиночитаемого носителя 110 (например, среды связи, устройства 112 хранения данных, файлового сервера 114 и т.п.). Кодированный поток видеобитов может включать в себя информацию сигнализации, заданную посредством видеокодера 200, которая также используется посредством видеодекодера 300, такую как синтаксические элементы, имеющие значения, которые описывают характеристики и/или обработку видеоблоков либо других кодированных единиц (например, срезов, картинок, групп картинок, последовательностей и т.п.). Устройство 118 отображения отображает декодированные картинки декодированных видеоданных пользователю. Устройство 118 отображения может представлять любое из множества устройств отображения, таких как дисплей на электронно-лучевой трубке (CRT), жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на органических светодиодах (OLED) или другой тип устройства отображения.
[0038] Хотя не показано на фиг. 1, в некоторых примерах, видеокодер 200 и видеодекодер 300 могут быть интегрированы с аудиокодером и/или аудиодекодером и могут включать в себя соответствующие модули мультиплексора-демультиплексора либо другие аппаратные средства и программное обеспечение для того, чтобы обрабатывать мультимедийные потоки, включающие в себя как аудио, так и видео в общем потоке данных. Если применимо, модули мультиплексора-демультиплексора могут соответствовать протоколу мультиплексора ITU H.223 или другим протоколам, таким как протокол пользовательских дейтаграмм (UDP).
[0039] Видеокодер 200 и видеодекодер 300 могут реализовываться как любая из множества надлежащих схем кодера и/или декодера, к примеру, как один или более микропроцессоров, процессоров цифровых сигналов (DSP), специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA), как дискретная логика, программное обеспечение, аппаратные средства, микропрограммное обеспечение либо как любые комбинации вышеозначенного. Когда технологии реализуются частично в программном обеспечении, устройство может сохранять инструкции для программного обеспечения на подходящем энергонезависимом машиночитаемом носителе и выполнять инструкции в аппаратных средствах с использованием одного или более процессоров, чтобы осуществлять технологии этого раскрытия. Каждый из видеокодера 200 и видеодекодера 300 может быть включен в один или более кодеров или декодеров, любой из которых может быть интегрирован как часть комбинированного кодера/декодера (кодека) в соответствующем устройстве. Устройство, включающее в себя видеокодер 200 и/или видеодекодер 300, может содержать интегральную схему, микропроцессор и/или устройство беспроводной связи, такое как сотовый телефон.
[0040] Видеокодер 200 и видеодекодер 300 могут работать согласно другим собственным или отраслевым стандартам, таким как стандарт объединенной исследовательской группы тестовой модели (JEM) или ITU-T H.266, также называемый "универсальным кодированием видео (VVC)". Последний проект VVC-стандарта описывается в работе авторов Bross и др. "Versatile Video Coding (Draft 7)", Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 16-ая конференция: Женева, CH, 1-11 октября 2019, JVET-P2001-v14 (далее "VVC-проект 7"). Видеокодер 200 и видеодекодер 300 могут работать согласно EVC-стандарту, разработанному посредством ISO/IEC JTC 1/SC 29/WG 11 (MPEG). Тем не менее, технологии этого раскрытия не ограничены каким-либо конкретным стандартом кодирования.
[0041] В общем, видеокодер 200 и видеодекодер 300 могут выполнять кодирование картинок на основе блоков. Термин "блок", в общем, означает структуру, включающую в себя данные, которые должны обрабатываться (например, кодироваться, декодироваться или иным образом использоваться в процессе кодирования и/или декодирования). Например, блок может включать в себя двумерную матрицу выборок данных яркости и/или цветности. В общем, видеокодер 200 и видеодекодер 300 могут кодировать видеоданные, представленные в YUV- (например, Y-, Cb-, Cr-) формате. Таким образом, вместо кодирования данных красного цвета, зеленого цвета и синего цвета (RGB) для выборок картинки, видеокодер 200 и видеодекодер 300 могут кодировать компоненты яркости и цветности, при этом компоненты цветности могут включать в себя компоненты цветности оттенков красного цвета и оттенков синего цвета. В некоторых примерах, видеокодер 200 преобразует принимаемые RGB-отформатированные данные в YUV-представление до кодирования, и видеодекодер 300 преобразует YUV-представление в RGB-формат. Альтернативно, модули предварительной и постобработки (не показаны) могут выполнять эти преобразования.
[0042] Это раскрытие, в общем, может означать кодирование (например, кодирование и декодирование) картинок, которое включает в себя процесс кодирования или декодирования данных картинки. Аналогично, это раскрытие может означать кодирование блоков картинки, которое включает в себя процесс кодирования или декодирования данных для блоков, например, кодирование с предсказанием и/или остаточное кодирование. Кодированный поток видеобитов, в общем, включает в себя последовательность значений для синтаксических элементов, представляющих решения по кодированию (например, режимы кодирования) и сегментацию картинок на блоки. Таким образом, ссылки на кодирование картинки или блока, в общем, должны пониматься как кодирование значений для синтаксических элементов, формирующих картинку или блок.
[0043] Различные стандарты кодирования видео задают различные блоки, иногда называемые в качестве единиц кодирования (CU), единиц предсказания (PU) и единиц преобразования (TU). Видеокодер (к примеру, видеокодер 200) сегментирует единицу дерева кодирования (CTU) на CU согласно структуре в виде дерева квадрантов. Таким образом, видеокодер сегментирует CTU и CU на четыре равных неперекрывающихся квадрата, и каждый узел дерева квадрантов имеет либо нуль, либо четыре дочерних узла. Узлы без дочерних узлов могут называться "узлами-листьями", и CU таких узлов-листьев могут включать в себя одну или более PU и/или одну или более TU. Видеокодер дополнительно может сегментировать PU и TU. Например, остаточное дерево квадрантов (RQT) представляет сегментацию TU, и PU представляют данные внешнего предсказания, в то время как TU представляют остаточные данные. CU, которые внутренне предсказываются, включают в себя информацию внутреннего предсказания, такую как индикатор внутреннего режима.
[0044] В качестве другого примера, видеокодер 200 и видеодекодер 300 могут быть выполнены с возможностью работать согласно JEM, VVC, EVC или любому другому такому стандарту. Видеокодер (к примеру, видеокодер 200) сегментирует капртинку на множество единиц дерева кодирования (CTU). Видеокодер 200 может сегментировать CTU согласно древовидной структуре, такой как структура в виде дерева квадрантов и двоичного дерева (QTBT) или структура в виде многотипного дерева (MTT). QTBT-структура удаляет понятия нескольких типов сегментации, такие как разделение между CU, PU и TU. QTBT-структура включает в себя два уровня: первый уровень, сегментированный согласно сегментации на основе дерева квадрантов, и второй уровень, сегментированный согласно сегментации на основе двоичного дерева. Корневой узел QTBT-структуры соответствует CTU. Узлы-листья двоичных деревьев соответствуют единицам кодирования (CU).
[0045] В MTT-структуре сегментации, блоки могут сегментироваться с использованием сегмента дерева квадрантов (QT), сегмента двоичного дерева (BT) и одного или более типов сегментов троичного дерева (TT) (также называемого "третичным деревом (TT)). Сегмент троичного или третичного дерева представляет собой сегмент, в котором блок разбивается на три субблока. В некоторых примерах, сегмент троичного или третичного дерева разделяет блок на три субблока без разделения исходного блока по центру. Типы сегментации в MTT (например, QT, BT и TT) могут быть симметричными или асимметричными.
[0046] В некоторых примерах, видеокодер 200 и видеодекодер 300 могут использовать одну QTBT- или MTT-структуру для того, чтобы представлять каждый из компонентов яркости и цветности, в то время как в других примерах, видеокодер 200 и видеодекодер 300 могут использовать две или более QTBT- или MTT-структур, к примеру, одну QTBT/MTT-структуру для компонента яркости и другую QTBT/MTT-структуру для обоих компонентов цветности (либо две QTBT/MTT-структуры для соответствующих компонентов цветности).
[0047] Видеокодер 200 и видеодекодер 300 могут быть выполнены с возможностью использовать сегментацию на основе дерева квадрантов, QTBT-сегментацию, MTT-сегментацию либо другие структуры сегментации. Для целей пояснения, описание технологий этого раскрытия представляется относительно QTBT-сегментации. Тем не менее, следует понимать, что технологии этого раскрытия также могут применяться к видеокодерам, выполненным с возможностью использовать также сегментацию на основе дерева квадрантов или другие типы сегментации.
[0048] Блоки (например, CTU или CU) могут группироваться различными способами в картинку. В качестве одного примера, кирпич может означать прямоугольную область CTU-строк в конкретной плитке в картинке. Плитка может представлять собой прямоугольную область CTU в конкретном столбце плиток и конкретной строке плиток в картинке. Столбец плиток означает прямоугольную область CTU, имеющих высоту, равную высоте картинки, и ширину, указываемую посредством синтаксических элементов (например, в наборе параметров картинки). Строка плиток означает прямоугольную область CTU, имеющих высоту, указанную посредством синтаксических элементов (например, в наборе параметров картинки), и ширину, равную ширине картинки.
[0049] В некоторых примерах, плитка может сегментироваться на несколько кирпичей, каждый из которых может включать в себя одну или более CTU-строк внутри плитки. Плитка, которая не сегментируется на несколько кирпичей, также может называться "кирпичом". Тем не менее, кирпич, который представляет собой истинный поднабор плитки, может не называться "плиткой".
[0050] Кирпичи в картинке также могут компоноваться в срезе. Срез может представлять собой целое число кирпичей картинки, которые могут содержаться исключительно в одной единице уровня абстрагирования сети (NAL). В некоторых примерах, срез включает в себя либо некоторое число полных плиток, либо только непрерывную последовательность полных кирпичей одной плитки.
[0051] Это раскрытие может использовать "NxN" и "N на N" взаимозаменяемо, чтобы ссылаться на размеры в выборках блока (к примеру, CU или другого видеоблока) с точки зрения размеров по вертикали и горизонтали, например, на выборки 16×16 либо на выборки 16 на 16. В общем, CU 16×16 должна иметь 16 пикселов в вертикальном направлении (y=16) и 16 пикселов в горизонтальном направлении (x=16). Аналогично, CU NxN, в общем, имеет N выборок в вертикальном направлении и N выборок в горизонтальном направлении, при этом N представляет неотрицательное целочисленное значение. Выборки в CU могут размещаться в строках и столбцах. Кроме того, CU не обязательно должны иметь одинаковое число выборок в горизонтальном направлении и в вертикальном направлении. Например, CU могут содержать NxM выборок, причем M не обязательно равно N.
[0052] Видеокодер 200 кодирует видеоданные для CU, представляющих информацию предсказания и/или остаточную информацию и другую информацию. Информация предсказания указывает то, как CU должна предсказываться, чтобы формировать блок предсказания для CU. Остаточная информация, в общем, представляет последовательные выборочные разности между выборками CU до кодирования и блоком предсказания.
[0053] Чтобы предсказывать CU, видеокодер 200, в общем, может формировать блок предсказания для CU через внешнее предсказание или внутреннее предсказание. Внешнее предсказание, в общем, означает предсказание CU из данных ранее кодированной картинки, тогда как внутреннее предсказание, в общем, означает предсказание CU из ранее кодированных данных той же картинки. Чтобы выполнять внешнее предсказание, видеокодер 200 может формировать блок предсказания с использованием одного или более векторов движения. Видеокодер 200, в общем, может выполнять поиск движения для того, чтобы идентифицировать опорный блок, который тесно совпадает с CU, например, с точки зрения разностей между CU и опорным блоком. Видеокодер 200 может вычислять разностный показатель с использованием суммы абсолютных разностей (SAD), суммы квадратов разности (SSD), средней абсолютной разности (MAD), среднеквадратических разностей (MSD) или других таких вычислений разности, чтобы определять то, совпадает или нет опорный блок тесно с текущей CU. В некоторых примерах, видеокодер 200 может предсказывать текущую CU с использованием однонаправленного предсказания или двунаправленного предсказания.
[0054] Некоторые примеры VVC также предоставляют аффинный режим компенсации движения, который может считаться режимом внешнего предсказания. В аффинном режиме компенсации движения, видеокодер 200 может определять два или более векторов движения, которые представляют непоступательное движение в пространстве, такое как увеличение или уменьшение масштаба, вращение, перспективное движение или другие типы нерегулярного движения.
[0055] Чтобы выполнять внутреннее предсказание, видеокодер 200 может выбирать режим внутреннего предсказания для того, чтобы формировать блок предсказания. Например, видеокодер 200 может использовать шестьдесят семь или некоторое другое число режимов внутреннего предсказания, включающих в себя различные направленные режимы, а также планарный режим и DC-режим. В общем, видеокодер 200 выбирает режим внутреннего предсказания, который описывает соседние выборки относительно текущего блока (например, блока CU), из которых можно предсказывать выборки текущего блока. Такие выборки, в общем, могут находиться выше, выше и слева или слева от текущего блока в той же картинке с текущим блоком, при условии, что видеокодер 200 кодирует CTU и CU в порядке растрового сканирования (слева направо, сверху вниз).
[0056] Видеокодер 200 кодирует данные, представляющие режим предсказания для текущего блока. Например, для режимов внешнего предсказания, видеокодер 200 может кодировать данные, представляющие то, какой из различных доступных режимов внешнего предсказания используется, а также информацию движения для соответствующего режима. Для однонаправленного или двунаправленного внешнего предсказания, например, видеокодер 200 может кодировать векторы движения с использованием усовершенствованного предсказания векторов движения (AMVP) или режима объединения. Видеокодер 200 может использовать аналогичные режимы для того, чтобы кодировать векторы движения для аффинного режима компенсации движения.
[0057] После предсказания, такого как внутреннее предсказание или внешнее предсказание блока, видеокодер 200 может вычислять остаточные данные для блока. Остаточные данные, такие как остаточный блок, представляют последовательные выборочные разности между блоком и блоком предсказания для блока, сформированные с использованием соответствующего режима предсказания. Видеокодер 200 может применять одно или более преобразований к остаточному блоку для того, чтобы формировать преобразованные данные в области преобразования вместо выборочной области. Например, видеокодер 200 может применять дискретное косинусное преобразование (DCT), целочисленное преобразование, вейвлет-преобразование или концептуально аналогичное преобразование к остаточным видеоданным. Дополнительно, видеокодер 200 может применять вторичное преобразование после первого преобразования, такое как зависимое от режима неразделимое вторичное преобразование (MDNSST), зависимое от сигнала преобразование, преобразование Карунена-Лоэва (KLT) и т.п. Видеокодер 200 формирует коэффициенты преобразования после применения одного или более преобразований.
[0058] Как отмечено выше, после преобразований для того, чтобы формировать коэффициенты преобразования, видеокодер 200 может выполнять квантование коэффициентов преобразования. Квантование, в общем, означает процесс, в котором коэффициенты преобразования квантуются, чтобы, возможно, уменьшать объем данных, используемых для того, чтобы представлять коэффициенты преобразования, обеспечивая дополнительное сжатие. Посредством выполнения процесса квантования, видеокодер 200 может уменьшать битовую глубину, ассоциированную с некоторыми или всеми коэффициентами преобразования. Например, видеокодер 200 может округлять n-битовое значение в меньшую сторону до m-битового значения во время квантования, где n больше m. В некоторых примерах, для того чтобы выполнять квантование, видеокодер 200 может выполнять побитовый сдвиг вправо значения, которое должно квантоваться.
[0059] После квантования, видеокодер 200 может сканировать коэффициенты преобразования, формирующие одномерный вектор, из двумерной матрицы, включающей в себя квантованные коэффициенты преобразования. Сканирование может проектироваться с возможностью размещать коэффициенты преобразования с более высокой энергией (и в силу этого с более низкой частотой) в начале вектора и размещать коэффициенты преобразования с более низкой энергией (и в силу этого с более высокой частотой) в конце вектора. В некоторых примерах, видеокодер 200 может использовать предварительно заданный порядок сканирования для того, чтобы сканировать квантованные коэффициенты преобразования, с тем чтобы формировать преобразованный в последовательную форму вектор, и затем энтропийно кодировать квантованные коэффициенты преобразования вектора. В других примерах, видеокодер 200 может выполнять адаптивное сканирование. После сканирования квантованных коэффициентов преобразования для того, чтобы формировать одномерный вектор, видеокодер 200 может энтропийно кодировать одномерный вектор, например, согласно контекстно-адаптивному двоичному арифметическому кодированию (CABAC). Видеокодер 200 также может энтропийно кодировать другие синтаксические элементы, описывающие метаданные, ассоциированные с кодированными видеоданными, для использования посредством видеодекодера 300 при декодировании видеоданных.
[0060] Чтобы выполнять CABAC, видеокодер 200 может назначать контекст в контекстной модели символу, который должен передаваться. Контекст может быть связан, например, с тем, являются соседние значения символа нульзначными или нет. Определение вероятности может быть основано на контексте, назначаемом символу.
[0061] Видеокодер 200 дополнительно может формировать синтаксические данные, к примеру, синтаксические данные на основе блоков, синтаксические данные на основе картинок и синтаксические данные на основе последовательностей, в видеодекодер 300, например, в заголовке картинки, заголовке блока, заголовке среза, либо другие синтаксические данные, к примеру, набор параметров последовательности (SPS), набор параметров картинки (PPS) или набор параметров видео (VPS). Видеодекодер 300 аналогично может декодировать такие синтаксические данные для того, чтобы определять как декодировать соответствующие видеоданные.
[0062] Таким образом, видеокодер 200 может формировать поток битов, включающий в себя кодированные видеоданные, например, синтаксические элементы, описывающие сегментацию картинки на блоки (например, CU), и информацию предсказания и/или остаточную информацию для блоков. В конечном счете, видеодекодер 300 может принимать поток битов и декодировать кодированные видеоданные.
[0063] В общем, видеодекодер 300 выполняет взаимообратный процесс относительно процесса, выполняемого посредством видеокодера 200 для того, чтобы декодировать кодированные видеоданные потока битов. Например, видеодекодер 300 может декодировать значения для синтаксических элементов потока битов с использованием CABAC способом, практически аналогичным, хотя и взаимообратным, относительно процесса CABAC-кодирования видеокодера 200. Синтаксические элементы могут задавать сегментацию информации картинки на CTU и сегментацию каждой CTU согласно соответствующей структуре сегментации, такой как QTBT-структура, чтобы задавать CU CTU. Синтаксические элементы дополнительно могут задавать информацию предсказания и остаточную информацию для блоков (например, CU) видеоданных.
[0064] Остаточная информация может представляться, например, посредством квантованных коэффициентов преобразования. Видеодекодер 300 может обратно квантовать и обратно преобразовывать квантованные коэффициенты преобразования блока для того, чтобы воспроизводить остаточный блок для блока. Видеодекодер 300 использует сигнализируемый режим предсказания (внутреннее или внешнее предсказание) и связанную информацию предсказания (например, информацию движения для внешнего предсказания) для того, чтобы формировать блок предсказания для блока. Видеодекодер 300 затем может комбинировать блок предсказания и остаточный блок (на основе каждой выборки), чтобы воспроизводить исходный блок. Видеодекодер 300 может выполнять дополнительную обработку, такую как выполнение процесса удаления блочности, чтобы уменьшать визуальные артефакты вдоль границ блока.
[0065] Это раскрытие, в общем, может относиться к "сигнализации" некоторой информации, такой как синтаксические элементы. Термин "сигнализация", в общем, может означать передачу значений для синтаксических элементов и/или других данных, используемых для того, чтобы декодировать кодированных видеоданные. Таким образом, видеокодер 200 может сигнализировать значения для синтаксических элементов в потоке битов. В общем, сигнализация означает генерирование значения в потоке битов. Как отмечено выше, исходное устройство 102 может транспортировать поток битов в целевое устройство 116 практически в реальном времени или не в реальном времени, к примеру, что может происходить при сохранении синтаксических элементов в устройство 112 хранения данных для последующего извлечения посредством целевого устройства 116.
[0066] Далее описываются примерные технологии EVC. В некоторых примерах, технологии EVC могут быть аналогичными этим из VVC и/или HEVC (например, к примеру, технологии кодирования на основе блоков).
[0067] EVC-выборка содержит единицу доступа как задано в разделе 3.1 ISO/IEC 23094-1: "Information technology - General video coding - Part 1: Essential video coding". В EVC, может быть предусмотрен канонический порядок относительно потока битов, чтобы соответствовать EVC, и могут быть предусмотрены определенные ограничения. Канонический формат потока является элементарным EVC-потоком, который удовлетворяет следующим условиям в дополнение к общим условиям в ISO/IEC 14496-15: Information technology - Coding of audio-visual objects - Part 15: Формат файлов по стандарту усовершенствованного кодирования видео (AVC), раздел 4.3.2:
a. NAL-единицы разделителя единиц доступа: Ограничения, которым подчиняются посредством NAL-единицы разделителя единиц доступа, задаются в ISO/IEC 23094-1.
b. SPS и PPS: SPS или PPS, который должен использоваться в картинке, может (и в некоторых примерах, должен) отправляться до выборки, содержащей эту картинку, либо в выборке для этой картинки. По меньшей мере, SPS и PPS с идентификатором, равным 0, могут сохраняться в записи выборки дорожки, которая содержит элементарный EVC-поток.
c. APS: APS, который должен использоваться в срезе, может (в некоторых примерах, должен) отправляться до VCL NAL-единицы, содержащей этот срез. APS могут сохраняться в записи выборки и/или в выборках.
d. SEI-сообщения: SEI-сообщения декларативного характера могут сохраняться в записи выборки; отсутствует предписание касательно удаления таких SEI-сообщений из выборок.
e. Заполняющие данные. Видеоданные естественно представляются в качестве переменной скорость передачи битов в формате файлов и должны заполняться для передачи при необходимости.
[0068] Удаление или добавление NAL-единиц заполняющих данных, начальных кодов, SEI-сообщений или SEI-сообщений Заполняющих данных могут изменять характеристики потока битов относительно соответствия с гипотетическим опорным декодером (HRD) при работе с HRD в режиме с постоянной скоростью передачи битов (CBR), как указано в ISO/IEC 23094-1, приложении C.
[0069] Ниже приводится конфигурационная запись EVC-декодера и описание. Видеодекодер 300 может быть сконфигурирован в соответствии с конфигурацией EVC-декодера в некоторых примерах. В качестве части пояснения описания конфигурации EVC-декодера, далее указывается конфигурационная информация декодера для ISO/IEC 23094-1 видеоконтент.
[0070] Эта запись содержит поле версии. Синтаксические анализаторы формата файлов (например, считыватели) могут (например, должны) не пытаться декодировать эту запись или потоки, к которым она применяется, если номер версии является нераспознанным.
[0071] Совместимые расширения в эту запись могут расширять его и могут не изменять код конфигурационной версии. Считыватели могут игнорировать нераспознанные данные вне определения данных, на предмет которых считыватели выполнены с возможностью синтаксически анализировать.
[0072] Значения для profile_idc, level_idc, toolset_idc, chroma_format_idc, pic_width_in_luma_samples, pic_height_in_luma_samples, bit_depth_luma_minus8 и bit_depth_chroma_minus8 могут (и в некоторых примерах, должны) быть допустимыми для всех наборов параметров, которые активируются, когда поток декодируется (называемый в качестве "всех наборов параметров"). В частности, следующие ограничения могут применяться:
a. Индикатор profile_idc профиля может (например, должен) указывать профиль, которому соответствует поток, ассоциированный с этой конфигурационной записью. Если SPS помечаются с различными профилями, то поток может должным быть анализу, чтобы определять то, какому профилю, если таковые имеются, весь поток соответствует. Если весь поток не анализируется, или анализ раскрывает то, что отсутствует профиль, которому соответствует весь поток, то весь поток может (например, должен) разбиваться на два или более субпотока с отдельными конфигурационными записями, в которых могут эти правила удовлетворяться.
b. Индикатор level_idc уровня может (например, должен) указывать уровень характеристик, равных или больших самого верхнего уровня, указываемого во всех наборах параметров этой конфигурационной записи.
c. Pic_width_in_luma_samples и pic_height_in_luma_samples могут (например, должны) содержать наибольшие значения всех наборов параметров этой конфигурационной записи.
d. Индикатор набора инструментальных средств toolset_idc может (например, должен) сигнализировать все инструментальные средства, которые требуются, чтобы декодировать поток, ассоциированный с этой конфигурационной записью. Флаги инструментальных средств могут (например, должны) соответствовать требованиям по соответствию как предусмотрено в таблице 6 (воспроизведенный ниже) ISO/IEC 23094-1 и мочь (например, быть должными) быть одинаковым с полем toolset_idc, которое сигнализируется в SPS.
e. Значение chroma_format_idc во всех наборах параметров может (например, должно) быть одинаковым.
f. Значение bit_depth_luma_minus8 во всех наборах параметров может (например, должно) быть одинаковым.
g. Значение bit_depth_chroma_minus8 во всех наборах параметров может (например, должно) быть одинаковым.
[0073] Явный индикатор предоставляется в конфигурационной записи EVC-декодера относительно формате сигналов цветности и битовой глубине, используемой посредством элементарного EVC-видеопотока. Каждый тип этой информации может (например, должен) быть одинаковым во всех наборах параметров, если есть в одной конфигурационной EVC-записи. Если две последовательности отличаются по какому-либо типу этой информации, два различных записей EVC-выборок могут (например, должны) использоваться.
[0074] Предусмотрен набор массивов для того, чтобы переносить инициализирующие NAL-единицы. Типы NAL-единиц могут ограничиваться таким образом, чтобы указывать только SPS, PPS, APS и SEI NAL-единицы. Типы NAL-единиц, которые резервируются в ISO/IEC 23094-1 и в этой спецификации, могут задаваться, и NAL-единицы с нераспознанными типами NAL-единиц могут игнорироваться. Это "толерантное" поведение (например, игнорирование нераспознанных типов NAL-единиц) может проектироваться таким образом, что ошибки не возникают, обеспечивая возможность обратно совместимых расширений для этих массивов в будущих спецификациях.
[0075] Поле длины может использоваться в каждой выборке, чтобы указывать длину ее содержащихся NAL-единиц, а также наборов параметров, если сохранено в записи выборки. В некоторых примерах, массивы находятся в порядке SPS, PPS, APS, SEI.
[0076] Таблица 6 ISO/IEC 23094-1 заключается в следующем:
[0077] Далее описывается синтаксис, используемый посредством видеокодера 200 и видеодекодера 300.
совмещенный (8) класс EVCDecoderConfigurationRecord{
unsigned int (8) configurationVersion=1;
unsigned int (8) profile_idc;
unsigned int (8) level_idc;
unsigned int (32) toolset_idc;
unsigned int (2) chroma_format_idc;
unsigned int (3) bit_depth_luma_minus8;
unsigned int (3) bit_depth_chroma_minus8;
unsigned int (32) pic_width_in_luma_samples;
unsigned int (32) pic_height_in_luma_samples;
unsidned int(5) reserved='00000'b;
unsigned int (1) sps_in_stream;
unsigned int (1) pps_in_stream;
unsigned int (1) aps_in_stream;
unsigned int (8) numOfArrays;
для (j=0; j<numOfArrays; j++){
bit(2) reserved='00'b;
unsigned int (6) NAL_unit_type;
unsigned int (16) numNalus;
for (i=0; i<cnt; i++)
unsigned int (16) nalUnitLength;
бит (8*nalUnitLength) nalUnit;
}
}
}
[0078] Нижеприведенное описание иллюстрирует семантику для задания терминов в вышеуказанном синтаксисе. Синтаксические элементы profile_idc, level_idc, toolset_idc, chroma_format_idc, toolset_idc, bit_depth_luma_minus8 и bit_depth_chroma_minus8 содержат совпадающие значения для полей в PPS для всех наборов параметров конфигурационной записи. Обозначение "(32)" указывает то, что синтаксический элемент toolset_idc составляет 32 бита. Эти 32 бита могут включать в себя однобитовые флаги, которые соответствуют конкретному инструментальному средству, или в некоторых случаях, несколько битов 32 битов, например, могут соответствовать комбинациям инструментальных средств или выбору инструментальных средств из наборов инструментальных средств.
[0079] Синтаксические элементы pic_width_in_luma_samples и pic_height_in_luma_samples содержат наибольшие значения для полей во всем SPS этой конфигурационной записи, когда значение поля sps_in_stream равно 0. Эти синтаксические элементы могут содержать наибольшие значения для полей во всем SPS этой конфигурационной записи и всем SPS в потоке, когда значение поля sps_in_stream равно 1. Значение 0 может (например, должно) использоваться, если наибольшее значение этих полей в SPS для всех наборов параметров в этой записи не указывается через это поле, когда значение поля sps_in_stream равно 0, или значение этих полей в SPS в потоке имеет значение, большее наибольшего значения поля в этой записи, когда значение поля sps_in_stream равно 1.
[0080] Синтаксический элемент sps_in_stream указывает то, что поток может содержать дополнительный SPS, которые не включаются в массив NAL-единиц этой конфигурационной записи. Синтаксический элемент pps_in_stream указывает то, что поток может содержать дополнительный PPS, которые не включаются в массив NAL-единиц этой конфигурационной записи. Синтаксический элемент aps_in_stream указывает то, что поток может содержать дополнительный APS, которые не включаются в массив NAL-единиц этой конфигурационной записи.
[0081] Синтаксический элемент numArrays указывает число массивов NAL-единиц указываемого типа(ов). Синтаксический элемент NAL_unit_type указывает тип NAL-единиц в следующем массиве (который может (например, должен) все иметь этот тип). NAL_unit_type принимает значение как задано в ISO/IEC 23094-1 и может ограничиваться, чтобы принимать одно из значений, указывающих SPS, PPS, APS или SEI NAL-единицу.
[0082] Синтаксический элемент numNalus указывает число NAL-единиц указываемого типа, включенного в конфигурационную запись для потока, к которому применяется эта конфигурационная запись. Синтаксический элемент nalUnitLength указывает длину в байтах NAL-единицы. Синтаксический элемент nalUnit содержит SPS, PPS, APS или SEI NAL-единицу, как указано в ISO/IEC 23094-1.
[0083] Видеофайлы в соответствии с базовым форматом мультимедийных файлов ISO и его расширениями сохраняют данные в последовательности объектов, называемых "полями". Далее описывается базовый формат мультимедийных файлов ISO, включающий в себя определение EVC-видеопотока и название и формат записи выборки.
a. Типы записей выборок и полей: 'evc1', 'evcC'
b. Контейнер: Поле таблиц выборок ('stbl')
c. Обязательный: Запись выборки 'evc1' является обязательной
d. Количество: Могут присутствовать одна или более записей выборок
[0084] Визуальная EVC-запись выборки может (например, должна) содержать поле EVC-конфигурации, как задано ниже. Это включает в себя EVCDecoderConfigurationRecord.
[0085] Необязательный BitRateBox может присутствовать в визуальной EVC-записи выборки, чтобы сигнализировать информацию скорости передачи битов EVC-видеопотока.
[0086] Несколько записей выборок могут использоваться, в качестве разрешенного посредством спецификации базового формата мультимедийных файлов по стандарту ISO, чтобы указывать секции видео, которые используют различные конфигурации или наборы параметров.
[0087] Когда название записи выборки представляет собой 'evc1', поток, к которому применяется эта запись выборки, может (например, должен) быть совместимым EVC-потоком при просмотре посредством EVC-декодера (например, видеодекодера 300), работающего согласно конфигурации (включающей в себя профиль, уровень и набор инструментальных средств), заданной в EVCConfigurationBox.
[0088] Запись выборки 'evc1' предоставляет возможность хранения наборов параметров как в записи выборки, так и в потоке; sps_in_stream, pps_in_stream и aps_in_stream, когда они задаются равными 0, указывают то, что массив NAL-единиц соответствующего типа является полным.
[0089] Ниже приводится примерный набор синтаксиса для поля конфигурации для формата файлов.
class EVCConfigurationBox extends Box('evcC') {
EVCDecoderConfigurationRecord EVCConfig;
}
class EVCSampleEntry() extends VisualSampleEntry ('evc1'){
Конфигурация EVCConfigurationBox;
MPEG4ExtensionDescriptorsBox;//необязательный
}
[0090] Ниже приводится примерный набор семантики для синтаксиса, описанного выше.
[0091] Compressorname в базовом классе VisualSampleEntry указывает название модуля сжатия, используемого с рекомендуемым значением "\012EVC Coding" (\012 равно 10, длина строки в байтах). EVCDecoderConfigurationRecord задается в разделе 5.3.3 (например, возможно, но не только как ISO/IEC 23904-1).
[0092] Далее описывается наборы параметров. В качестве общего представления, по меньшей мере, начальный SPS и PPS с идентификаторами, равными 0, могут (например, должны) переноситься в записи выборки. Если sps_in_stream и/или pps_in_stream задаются равными "1", дополнительные SPS и/или PPS могут присутствовать внутриполосно в потоке.
[0093] Выборки, которые переносят набор параметров, могут (например, должны) принадлежать группе выборок, которая соответствует типу того набора параметров. Три примерных group_type "pss1" задаются в этой спецификации. Дополнительный параметр типа группировки используется для того, чтобы различать между SPS, PPS и APS, причем "sps1" идентифицирует группу выборок для выборок, которые переносят SPS, "pps1", идентифицируют группу выборок для выборок, которые переносят PPS, и "aps1" идентифицирует группу выборок для выборок, которые переносят APS.
[0094] Далее описывается запись группы выборок набора параметров, включающая в себя определения.
a. Типы групп: "pss1"
b. Контейнер: Поле описания групп выборок ('sgpd')
c. Обязательное: Нет
d. Количество: Нуль или более
[0095] Группа выборок набора параметров идентифицирует выборки, которые содержат набор параметров типа SPS, PPS или APS; grouping_type_parameter дополнительно идентифицирует тип набора параметров и может принимать значение "sps1", "pps1" или "aps1".
[0096] Далее описывается некоторый синтаксис для записи группы выборок набора параметров.
class PSSSampleEntry() extends VisualSampleGroupEntry ("pss1")
{
}
[0097] Далее описывается выборка синхроимпульсов. Выборка синхроимпульсов в дорожках 'evc1' может (например, должна) содержать VCL NAL-единицы, указывающие то, что кодированной картинкой с nuh_temporal_id, равным 0 в выборке, является картинка на основе мгновенного обновления при декодировании (IDR).
[0098] Таблица 1 указывает отображение между типами EVC VCL NAL-единиц, состоянием ISOBMFF-выборки синхроимпульсов и SAP-типами, задокументированными в ISOBMFF.
[0099] Таблица 1. Отображение состояния выборки синхроимпульсов и SAP-типов в тип NAL-единицы
[0100] Ниже приводится определение подвыборки для EVC. Для использования SubSampleInformationBox (8.7.7 из ISO/IEC 14496-12) в EVC-потоке, подвыборка задается на основе значения поля Flags поля информации подвыборок, как указано ниже. Присутствие этого поля является необязательным; тем не менее, если присутствует в дорожке, содержащей EVC-данные, поле codec_specific_parameters в поле может (например, должно) задавать семантику здесь.
[0101] Флаги указывают тип информации подвыборок, данной в этом поле следующим образом:
a. 0: Подвыборки на основе NAL-единиц: Подвыборка содержит одну или несколько смежных NAL-единиц.
b. 1: Подвыборки на основе плиток: Подвыборка содержит VCL NAL-единицы со всеми CTU одной плитки вместе с любыми ассоциированными не-VCL NAL-единицами, если таковые имеются.
c. 2: Подвыборки на основе срезов; подвыборка содержит один срез (т.е. одна VCL NAL-единица) и ассоциированные не-VCL NAL-единицы, если таковые имеются.
d. Другие значения флагов резервируются.
[0102] Поле subsample_priority может (например, должно) задаваться равным значению в соответствии со спецификацией этого поля в ISO/IEC 14496-12.
[0103] Отбрасываемое поле может (например, должно) задаваться равным 1, только если эта выборка по-прежнему должна быть декодируемой, если эта подвыборка отбрасывается (например, подвыборка состоит из SEI NAL-единицы).
[0104] Когда первый байт NAL-единицы включается в подвыборку, предшествующее поле длины может (например, должно) также включаться в ту же подвыборку.
[0105] Поле codec_specific_parameters SubSampleInformationBox задается для EVC следующим образом:
if(помечает флагом==1){
unsigned int (16) tile_col_idx;
unsigned int (16) tile_row_idx;
}
[0106] tile_col_idx для подвыборок на основе плиток, этот параметр указывает индекс на основе 0 столбца плиток, который содержит плитку этой подвыборки.
[0107] tile_row_idx для подвыборок на основе плиток, этот параметр указывает индекс на основе 0 строки плиток, которая содержит плитку этой подвыборки.
[0108] Далее описывается мультимедийный CMAF-профиль. ISO/IEC 23000-19 общих форматов мультимедийных приложений (CMAF) задает структурные ограничения на ISOBMFF-файлы, дополнительные в ISO/IEC 14496-12 для целей, например, адаптивная потоковая передача или доставка зашифрованных файлов. Соответствие в эти структурные ограничения сигнализируется посредством присутствия CMAF-заданного структурного бренда в FileTypeBox.
[0109] Если ISOBMFF-дорожка использует бренд 'cevc', она называется "CMAF EVC-дорожкой", и следующие ограничения, задающие мультимедийный CMAF-профиль для EVC, применяются:
a. она может (например, должно) использовать 'evc1' запись выборки, как задано в разделе 6.3 ISO/IEC 23094-1.
b. дорожка может (например, должна) соответствовать общим ограничениям для CMAF-дорожки в ISO/IEC 23000-19, раздел 7
c. дорожка может (например, должна) соответствовать общим ограничениям для CMAF-видеодорожки в ISO/IEC 23000-19, раздел 9
[0110] Если EVC-мультимедиа предоставляется в наборе для CMAF-переключения, то:
a. каждая CMAF-дорожка в наборе для CMAF-переключения может (например, должна) согласовывать CMAF EVC-дорожку
b. набор для CMAF-переключения может (например, должен) соответствовать общим ограничениям для набора для CMAF-переключения в ISO/IEC 23000-19, раздел 7, и
c. общие ограничения для набора для переключения CMAF-видеодорожек, заданные в ISO/IEC 23000-19, раздел 9.
[0111] Набор для CMAF-переключения после этих требований задается как мультимедийный CMAF EVC-профиль 'cevc'. Шифрование CMAF EVC-дорожек и наборов для CMAF EVC-переключения может (например, должно) быть совместимым с ISO/IEC 23000-19 раздел 8, с использованием либо AES-CTR-'cenc', либо AES-CBC-схемы шифрования на основе шаблонов подвыборок 'CBC', как указано в ISO/IEC 23001-7, раздел 10.1 и 10.4, соответственно.
[0112] Кроме того, режим 'cbcs' общего шифрования использует шифрование на основе шаблонов, как задано в разделе 9.6 ISO/IEC 23001-7 используется, то длина блока шаблонов 10 и шаблон "шифрование:пропуск" 1:9 могут (например, должны) применяться (например, как описано в разделе 10.4 ISO/IEC 23001-7).
[0113] Далее описывается отображение в DASH-доставку. Если EVC-кодированное мультимедиа предоставляется в мультимедийном DASH-представлении в адаптивном наборе, то адаптивный набор может (например, должен) соответствовать DASH-профилю для CMAF как задано в ISO/IEC 23009-1. Следующие параметры могут (например, должны) присутствовать на уровне адаптивных наборов и наборе:
a. @codecs задается согласно приложению A
b. @mimeType задается таким образом, что он является совместимым с "video/mp4 profiles='cevc'"
[0114] Ниже приводится описание для подпараметров для параметра 'кодов' MIME-типа. DASH и другие применения требуют заданных значений для параметра Codecs, указываемого в IETF RFC 6381 для мультимедийных ISOBMFF-дорожек. Строка параметров Codecs для EVC-кодека является следующей: <sample entry 4CC>.<key1><value1>.<key2><value2>...<keyN><valueN>
[0115] Ключи задаются как 4CC. Начальный набор ключей и ассоциированных пар значений задается в таблице 2. Дополнительные ключи могут указываться в качестве 4CC. В некоторых примерах, ключи совмещаются с ISO/IEC 23091-2.
[0116] Если конкретный ключ не предоставляется, то либо указанное значение по умолчанию применяется, либо, если не уведомляется (n/a), значение для ключа является неизвестным.
Определение таблицы 2 начального набора ключей и значений, заданных для EVC
[0117] Например, кодеки="evc1.vprf3.vlev51.vtoo03FF. vbit20.vcss420.vcpr09.vtrc16.vmac09.vsar01" представляют главный профиль EVC, уровень 5.1, с субдискретизацией сигналов цветности 4:2:0, совместно размещаемой с выборкой сигналов яркости (0, 0), ограниченным набором инструментальных средств, первичными цветами ITU-R BT.2100, передаточными PQ-характеристиками ITU-R BT.2100, YCbCr-матрицей цветов ITU-R BT.2100 и выборочным соотношением сторон 1:1. Все ключи в таблице 2 могут быть (например, должен быть), распознанный, если распознается evc1 запись выборки. Если ключ не распознается, пара ключ/значение игнорируется. В некоторых примерах, могут задаваться другие ключи, например, только 2CC.
[0118] Пара ключ/значение 'vtoo' и toolset_idc передает одинаковую информацию с синтаксическим элементом toolset_idc в конфигурационной записи декодера, но представляет другой способ обеспечения доступности этой информации для устройства видеообработки.
[0119] В соответствии с технологиями, описанными выше, целевое устройство 116 может быть выполнено с возможностью принимать конфигурационную запись для декодирования потока битов видеоданных, при этом конфигурационная запись для потока битов включает в себя синтаксический элемент индикатора набора инструментальных средств, который включает в себя информацию, идентифицирующую, из набора инструментальных средств декодирования видео, инструментальные средства, которые требуются, чтобы декодировать поток битов, ассоциированный с конфигурационной записью; на основе синтаксического элемента индикатора набора инструментальных средств, определять, следует ли извлекать поток битов, ассоциированный с конфигурационной записью; и на основе определения извлекать поток битов, ассоциированный с конфигурационной записью, извлекать поток битов и выводить поток битов в видеодекодер для декодирования. Целевое устройство 116 дополнительно или альтернативно может принимать параметр MIME-типа, который включает в себя пару ключ/значение, при этом ключ указывает то, что MIME-тип идентифицирует инструментальные средства декодирования видео, и значение идентифицирует, из инструментальных средств декодирования видео, инструментальные средства, которые требуются, чтобы декодировать поток битов. Поток битов видеоданных может включать в себя один или несколько наборов параметров, и каждое из инструментальных средств, идентифицированных в конфигурационной записи как требуемое, чтобы декодировать поток битов, может активироваться, по меньшей мере, в одном из одного или нескольких наборов параметров.
[0120] Синтаксический элемент индикатора набора инструментальных средств сигнализируется в поле конфигурации информации формата файлов. Синтаксический элемент индикатора набора инструментальных средств, который включает в себя информацию, идентифицирующую инструментальные средства, которые требуются, чтобы декодировать поток битов, ассоциированный с конфигурационной записью, может идентифицировать все инструментальные средства, которые требуются, чтобы декодировать поток битов, ассоциированный с конфигурационной записью. Синтаксический элемент индикатора набора инструментальных средств может быть 32-битовым целочисленным значением без знака, причем каждый бит 32-битового целочисленного значения без знака соответствует уникальному инструментальному средству для декодирования потока битов.
[0121] Конфигурационная запись может форматироваться в соответствии с существенным EVC-стандартом. Конфигурационная запись для потока битов может включать в себя синтаксический элемент профиля и/или синтаксический элемент уровня перед синтаксическим элементом индикатора набора инструментальных средств. Конфигурационная запись для потока битов может включать в себя синтаксический элемент формата сигналов цветности после синтаксического элемента индикатора набора инструментальных средств.
[0122] Фиг. 2A и 2B являются концептуальными схемами, иллюстрирующими примерную структуру 130 в виде дерева квадрантов и двоичного дерева (QTBT) и соответствующую единицу 132 дерева кодирования (CTU). Сплошные линии представляют разбиение на дерево квадрантов, и пунктирные линии указывают разбиение на двоичное дерево. В каждом разбитом (т.е. нелисте) узле двоичного дерева, один флаг сигнализируется для того, чтобы указывать то, какой тип разбиения (т.е. горизонтальное или вертикальное) используется, где 0 указывает горизонтальное разбиение, и 1 указывает вертикальное разбиение в этом примере. Для разбиения на дерево квадрантов, нет необходимости указывать тип разбиения, поскольку узлы дерева квадрантов разбивают блок горизонтально и вертикально на 4 субблока с равным размером. Соответственно, видеокодер 200 может кодировать, и видеодекодер 300 может декодировать синтаксические элементы (к примеру, информацию разбиения) для древовидного уровня области QTBT-структуры 130 (т.е. сплошные линии) и синтаксические элементы (к примеру, информацию разбиения) для древовидного уровня предсказания QTBT-структуры 130 (т.е. пунктирные линии). Видеокодер 200 может кодировать, и видеодекодер 300 может декодировать видеоданные, такие как данные предсказания и преобразования, для CU, представленных посредством терминальных узлов-листьев QTBT-структуры 130.
[0123] В общем, CTU 132 по фиг. 2B может быть ассоциирована с параметрами, задающими размеры блоков, соответствующих узлам QTBT-структуры 130 на первом и втором уровнях. Эти параметры могут включать в себя CTU-размер (представляющий размер CTU 132 в выборках), минимальный размер дерева квадрантов (MinQTSize, представляющий минимальный разрешенный размер узлов-листьев дерева квадрантов), максимальный размер двоичного дерева (MaxBTSize, представляющий максимальный разрешенный размер корневых узлов двоичного дерева), максимальную глубину двоичного дерева (MaxBTDepth, представляющий максимальную разрешенную глубину двоичного дерева) и минимальный размер двоичного дерева (MinBTSize, представляющий минимальный разрешенный размер узлов-листьев двоичного дерева).
[0124] Корневой узел QTBT-структуры, соответствующей CTU, может иметь четыре дочерних узла на первом уровне QTBT-структуры, каждый из которых может сегментироваться согласно сегментации на основе дерева квадрантов. Таким образом, узлы первого уровня либо представляют собой узлы-листья (имеющие дочерние узлы), либо имеют четыре дочерних узла. Пример QTBT-структуры 130 представляет такие узлы как включающие в себя родительский узел и дочерние узлы, имеющие сплошные линии для ветвей. Если узлы первого уровня не превышают максимальный разрешенный размер корневых узлов двоичного дерева (MaxBTSize), то узлы дополнительно могут сегментироваться посредством соответствующих двоичных деревьев. Разбиение на двоичное дерево одного узла может обрабатываться с помощью итераций до тех пор, пока узлы, получающиеся в результате разбиения, не достигают минимального разрешенного размера узлов-листьев двоичного дерева (MinBTSize) или максимальной разрешенной глубины двоичного дерева (MaxBTDepth). Пример QTBT-структуры 130 представляет такие узлы как имеющие пунктирные линии для ветвей. Узел-лист двоичного дерева называется "единицей кодирования (CU)", которая используется для предсказания (например, предсказания внутри картинки или между картинок) и преобразования, без дополнительной сегментации. Как пояснено выше, CU также могут называться "видеоблоками" или "блоками".
[0125] В одном примере QTBT-структуры сегментации, CTU-размер задается как 128×128 (выборки сигналов яркости и две соответствующих выборки сигналов цветности 64×64), MinQTSize задается как 16×16, MaxBTSize задается как 64×64, MinBTSize (для ширины и высоты) задается как 4, и MaxBTDepth задается как 4. Сегментация на основе дерева квадрантов применяется к CTU сначала, чтобы формировать узлы-листья дерева квадрантов. Узлы-листья дерева квадрантов могут иметь размер от 16×16 (т.е. от MinQTSize) до 128×128 (т.е. до CTU-размера). Если узел-лист дерева квадрантов представляет собой 128×128, то узел-лист дерева квадрантов не должен дополнительно разбиваться посредством двоичного дерева, поскольку размер превышает MaxBTSize (т.е. 64×64, в этом примере). В противном случае, узел-лист дерева квадрантов дополнительно сегментируется посредством двоичного дерева. Следовательно, узел-лист дерева квадрантов также представляет собой корневой узел для двоичного дерева и имеет глубину двоичного дерева в 0. Когда глубина двоичного дерева достигает MaxBTDepth (4, в этом примере), дополнительное разбиение не разрешается. Когда узел двоичного дерева имеет ширину, равную MinBTSize (4, в этом примере), это подразумевает то, что дополнительное горизонтальное разбиение не разрешается. Аналогично, узел двоичного дерева, имеющий высоту, равную MinBTSize, подразумевает то, что дополнительное вертикальное разбиение не разрешается для этого узла двоичного дерева. Как отмечено выше, узлы-листья двоичного дерева называются "CU" и дополнительно обрабатываются согласно предсказанию и преобразованию без дополнительной сегментации.
[0126] Фиг. 3 является блок-схемой, иллюстрирующей примерный видеокодер 200, который может выполнять технологии этого раскрытия. Фиг. 3 предоставляется для целей пояснения и не должен считаться ограничением технологий, проиллюстрированных и описанных в общих чертах в этом раскрытии. Для целей пояснения, это раскрытие описывает видеокодер 200 согласно технологиям JEM, EVC, VVC (ITU-T H.266, разрабатывается) и HEVC (ITU-T H.265). Тем не менее, технологии этого раскрытия могут выполняться посредством устройств кодирования видео, которые сконфигурированы для других стандартов кодирования видео.
[0127] В примере по фиг. 3, видеокодер 200 включает в себя запоминающее устройство 230 видеоданных, модуль 202 выбора режима, модуль 204 формирования остатков, модуль 206 обработки преобразования, модуль 208 квантования, модуль 210 обратного квантования, модуль 212 обработки обратного преобразования, модуль 214 восстановления, модуль 216 фильтрации, буфер 218 декодированных картинок (DPB) и модуль 220 энтропийного кодирования. Любое из запоминающего устройства 230 видеоданных, модуля 202 выбора режима, модуля 204 формирования остатков, модуля 206 обработки преобразования, модуля 208 квантования, модуля 210 обратного квантования, модуля 212 обработки обратного преобразования, модуля 214 восстановления, модуля 216 фильтрации, DPB 218 и модуля 220 энтропийного кодирования может реализовываться в одном или более процессоров либо в схеме обработки. Например, модули видеокодера 200 могут реализовываться как одна или более схем или логических элементов в качестве части аппаратной схемы или в качестве части процессора, ASIC, FPGA. Кроме того, видеокодер 200 может включать в себя дополнительные или альтернативные процессоры либо схему обработки для того, чтобы выполнять эти и другие функции.
[0128] Запоминающее устройство 230 видеоданных может сохранять видеоданные, которые должны кодироваться посредством компонентов видеокодера 200. Видеокодер 200 может принимать видеоданные, сохраненные в запоминающем устройстве 230 видеоданных, например, из видеоисточника 104 (фиг. 1). DPB 218 может выступать в качестве запоминающего устройства опорных картинок, которое сохраняет опорные видеоданные для использования при предсказании последующих видеоданных посредством видеокодера 200. Запоминающее устройство 230 видеоданных и DPB 218 могут формироваться посредством любых из множества запоминающих устройств, к примеру, как динамическое оперативное запоминающее устройство (DRAM), включающее в себя синхронное DRAM (SDRAM), магниторезистивное RAM (MRAM), резистивное RAM (RRAM) или другие типы запоминающих устройств. Запоминающее устройство 230 видеоданных и DPB 218 могут предоставляться посредством того же запоминающего устройства или отдельных запоминающих устройств. В различных примерах, запоминающее устройство 230 видеоданных может быть внутримикросхемным с другими компонентами видеокодера 200, как проиллюстрировано, или внемикросхемным относительно этих компонентов.
[0129] В этом раскрытии, ссылка на запоминающее устройство 230 видеоданных не должна интерпретироваться как ограниченная запоминающим устройством, внутренним для видеокодера 200, если не описывается конкретно в таком качестве, или запоминающим устройством, внешним для видеокодера 200, если не описывается конкретно в таком качестве. Наоборот, ссылка на запоминающее устройство 230 видеоданных должна пониматься как опорное запоминающее устройство, которое сохраняет видеоданные, которые видеокодер 200 принимает для кодирования (например, видеоданные для текущего блока, который должен кодироваться). Запоминающее устройство 106 по фиг. 1 также может предоставлять временное хранение выводов из различных модулей видеокодера 200.
[0130] Различные модули по фиг. 3 проиллюстрированы для того, чтобы помогать в понимании операций, выполняемых посредством видеокодера 200. Модули могут реализовываться как фиксированные функциональные схемы, программируемые схемы либо комбинация вышеозначенного. Фиксированные функциональные схемы означают схемы, которые предоставляют конкретную функциональность и предварительно установлены в отношении операций, которые могут выполняться. Программируемые схемы означают схемы, которые могут программироваться с возможностью выполнять различные задачи и предоставлять гибкую функциональность в операциях, которые могут выполняться. Например, программируемые схемы могут выполнять программное обеспечение или микропрограммное обеспечение, которое инструктирует программируемым схемам работать способом, заданным посредством инструкций программного обеспечения или микропрограммного обеспечения. Фиксированные функциональные схемы могут выполнять программные инструкции (например, чтобы принимать параметры или выводить параметры), но типы операций, которые выполняют фиксированные функциональные схемы, в общем, являются неизменными. В некоторых примерах, один или более модулей могут представлять собой различные схемные блоки (фиксированные функциональные или программируемые), и в некоторых примерах, один или более модулей могут представлять собой интегральные схемы.
[0131] Видеокодер 200 может включать в себя арифметико-логические устройства (ALU), элементарные функциональные модули (EFU), цифровые схемы, аналоговые схемы и/или программируемые ядра, сформированные из программируемых схем. В примерах, в которых операции видеокодера 200 выполняются с использованием программного обеспечения, выполняемого посредством программируемых схем, запоминающее устройство 106 (фиг. 1) может сохранять инструкции (объектный код) программного обеспечения, которое видеокодер 200 принимает и выполняет, или другое запоминающее устройство в видеокодере 200 (не показано) может сохранять такие инструкции.
[0132] Запоминающее устройство 230 видеоданных выполнено с возможностью сохранять принимаемые видеоданные. Видеокодер 200 может извлекать картинку видеоданных из запоминающего устройства 230 видеоданных и предоставлять видеоданные в модуль 204 формирования остатков и модуль 202 выбора режима. Видеоданные в запоминающем устройстве 230 видеоданных могут представлять собой необработанные видеоданные, которые должны кодироваться.
[0133] Модуль 202 выбора режима включает в себя модуль 222 оценки движения, модуль 224 компенсации движения и модуль 226 внутреннего предсказания. Модуль 202 выбора режима может включать в себя дополнительные функциональные модули, чтобы выполнять предсказание видео в соответствии с другими режимами предсказания. В качестве примера, модуль 202 выбора режима может включать в себя модуль палитровой обработки, модуль внутриблочного копирования (который может представлять собой часть модуля 222 оценки движения и/или модуля 224 компенсации движения), модуль аффинной обработки, модуль обработки на основе линейной модели (LM) и т.п.
[0134] Модуль 202 выбора режима, в общем, координирует несколько проходов кодирования, чтобы тестировать комбинации параметров кодирования и результирующих значений искажения в зависимости от скорости передачи для таких комбинаций. Параметры кодирования могут включать в себя сегментацию CTU на CU, режимы предсказания для CU, типы преобразования для остаточных данных CU, параметры квантования для остаточных данных CU и т.д. Модуль 202 выбора режима в конечном счете может выбирать комбинацию параметров кодирования, имеющих значения искажения в зависимости от скорости передачи, которые лучше других тестированных комбинаций.
[0135] Видеокодер 200 может сегментировать картинку, извлеченную из запоминающего устройства 230 видеоданных, на последовательность CTU и инкапсулировать одну или более CTU в срезе. Модуль 202 выбора режима может сегментировать CTU картинки в соответствии с древовидной структурой, такой как QTBT-структура или структура в виде дерева квадрантов, описанная выше. Как описано выше, видеокодер 200 может формировать одну или более CU из сегментации CTU согласно древовидной структуре. Такая CU также, в общем, может называться "видеоблоком" или "блоком".
[0136] В общем, модуль 202 выбора режима также управляет своими компонентами (например, модулем 222 оценки движения, модулем 224 компенсации движения и модулем 226 внутреннего предсказания) таким образом, чтобы формировать блок предсказания для текущего блока (например, текущей CU либо перекрывающейся части PU и TU). Для внешнего предсказания текущего блока, модуль 222 оценки движения может выполнять поиск движения для того, чтобы идентифицировать один или более тесно совпадающих опорных блоков в одном или более опорных картинок (например, в одной или более ранее кодированных картинок, сохраненных в DPB 218). В частности, модуль 222 оценки движения может вычислять значение, представляющее то, насколько аналогичным является потенциальный опорный блок относительно текущего блока, например, согласно сумме абсолютных разностей (SAD), сумме квадратов разности (SSD), средней абсолютной разности (MAD), среднеквадратическим разностям (MSD) и т.п. Модуль 222 оценки движения, в общем, может выполнять эти вычисления с использованием последовательных выборочных разностей между текущим блоком и рассматриваемым опорным блоком. Модуль 222 оценки движения может идентифицировать опорный блок, имеющий наименьшее значение, получающееся в результате этих вычислений, указывающее опорный блок, который наиболее тесно совпадает с текущим блоком.
[0137] Модуль 222 оценки движения может формировать один или более векторов движения (MV), которые задают позиции опорных блоков в опорных картинках относительно позиции текущего блока в текущем картинке. Модуль 222 оценки движения затем может предоставлять векторы движения в модуль 224 компенсации движения. Например, для однонаправленного внешнего предсказания, модуль 222 оценки движения может предоставлять один вектор движения, тогда как для двунаправленного внешнего предсказания, модуль 222 оценки движения может предоставлять два вектора движения. Модуль 224 компенсации движения затем может формировать блок предсказания с использованием векторов движения. Например, модуль 224 компенсации движения может извлекать данные опорного блока с использованием вектора движения. В качестве другого примера, если вектор движения имеет точность в дробную часть выборки, модуль 224 компенсации движения может интерполировать значения для блока предсказания согласно одному или более интерполяционных фильтров. Кроме того, для двунаправленного внешнего предсказания, модуль 224 компенсации движения может извлекать данные для двух опорных блоков, идентифицированных посредством соответствующих векторов движения, и комбинировать извлеченные данные, например, посредством последовательного выборочного усреднения или усреднения со взвешиванием.
[0138] В качестве другого примера, для внутреннего предсказания или кодирования с внутренним предсказанием, модуль 226 внутреннего предсказания может формировать блок предсказания из выборок, соседних с текущим блоком. Например, для направленных режимов, модуль 226 внутреннего предсказания, в общем, может математически комбинировать значения соседних выборок и заполнять эти вычисленные значения в заданном направлении для текущего блока для того, чтобы формировать блок предсказания. В качестве другого примера, для DC-режима, модуль 226 внутреннего предсказания может вычислять среднее соседних выборок по отношению к текущему блоку и формировать блок предсказания, который включает в себя это результирующее среднее для каждой выборки блока предсказания.
[0139] Модуль 202 выбора режима предоставляет блок предсказания в модуль 204 формирования остатков. Модуль 204 формирования остатков принимает необработанную некодированную версию текущего блока из запоминающего устройства 230 видеоданных и блок предсказания из модуля 202 выбора режима. Модуль 204 формирования остатков вычисляет последовательные выборочные разности между текущим блоком и блоком предсказания. Результирующие последовательные выборочные разности задают остаточный блок для текущего блока. В некоторых примерах, модуль 204 формирования остатков также может определять разности между выборочными значениями в остаточном блоке, чтобы формировать остаточный блок с использованием остаточной дифференциальной импульсно-кодовой модуляции (RDPCM). В некоторых примерах, модуль 204 формирования остатков может формироваться с использованием одной или более схем вычитателя, которые выполняют двоичное вычитание.
[0140] В примерах, в которых модуль 202 выбора режима сегментирует CU на PU, каждая PU может быть ассоциирована с единицей предсказания сигналов яркости и соответствующими единицами предсказания сигналов цветности. Видеокодер 200 и видеодекодер 300 могут поддерживать PU, имеющие различные размеры. Как указано выше, размер CU может означать размер блока кодирования сигналов яркости CU, и размер PU может означать размер единицы предсказания сигналов яркости PU. При условии, что размер конкретной CU составляет 2Nx2N, видеокодер 200 может поддерживать PU-размеры в 2Nx2N или NxN для внутреннего предсказания и симметричные PU-размеры в 2Nx2N, 2NxN, Nx2N, NxN или аналогичные для внешнего предсказания. Видеокодер 200 и видеодекодер 300 также могут поддерживать асимметричное сегментирование для PU-размеров в 2NxnU, 2NxnD, nLx2N и nRx2N для внешнего предсказания.
[0141] В примерах, в которых модуль 202 выбора режима дополнительно не сегментирует CU на PU, каждая CU может быть ассоциирована с блоком кодирования сигналов яркости и соответствующими блоками кодирования сигналов цветности. Как описано выше, размер CU может означать размер блока кодирования сигналов яркости CU. Видеокодер 200 и видеодекодер 300 могут поддерживать CU-размеры в 2Nx2N, 2NxN или Nx2N.
[0142] Для других технологий кодирования видео, таких как кодирование в режиме внутриблочного копирования, кодирование в аффинном режиме и кодирование в режиме на основе линейной модели (LM), в качестве нескольких примеров, модуль 202 выбора режима, через соответствующие модули, ассоциированные с технологиями кодирования, формирует блок предсказания для кодируемого текущего блока. В некоторых примерах, таких как кодирование в палитровом режиме, модуль 202 выбора режима может не формировать блок предсказания и вместо этого формировать синтаксические элементы, которые указывают способ, которым следует восстанавливать блок на основе выбранной палитры. В таких режимах, модуль 202 выбора режима может предоставлять эти синтаксические элементы в модуль 220 энтропийного кодирования для кодирования.
[0143] Как описано выше, модуль 204 формирования остатков принимает видеоданные для текущего блока и соответствующего блока предсказания. Модуль 204 формирования остатков затем формирует остаточный блок для текущего блока. Чтобы формировать остаточный блок, модуль 204 формирования остатков вычисляет последовательные выборочные разности между блоком предсказания и текущим блоком.
[0144] Модуль 206 обработки преобразования применяет одно или более преобразований к остаточному блоку для того, чтобы формировать блок коэффициентов преобразования (называется в данном документе "блоком коэффициентов преобразования"). Модуль 206 обработки преобразования может применять различные преобразования к остаточному блоку для того, чтобы формировать блок коэффициентов преобразования. Например, модуль 206 обработки преобразования может применять дискретное косинусное преобразование (DCT), направленное преобразование, преобразование Карунена-Лоэва (KLT) или концептуально аналогичное преобразование к остаточному блоку. В некоторых примерах, модуль 206 обработки преобразования может выполнять несколько преобразований для остаточного блока, например, первичное преобразование и вторичное преобразование, такое как вращательное преобразование. В некоторых примерах, модуль 206 обработки преобразования не применяет преобразования к остаточному блоку.
[0145] Модуль 208 квантования может квантовать коэффициенты преобразования в блоке коэффициентов преобразования для того, чтобы формировать блок квантованных коэффициентов преобразования. Модуль 208 квантования может квантовать коэффициенты преобразования блока коэффициентов преобразования согласно значению параметра квантования (QP), ассоциированному с текущим блоком. Видеокодер 200 (например, через модуль 202 выбора режима) может регулировать степень квантования, применяемую к блокам коэффициентов преобразования, ассоциированным с текущим блоком, посредством регулирования QP-значения, ассоциированного с CU. Квантование может вводить потери информации, и в силу этого квантованные коэффициенты преобразования могут иметь меньшую точность, чем исходные коэффициенты преобразования, сформированные посредством модуля 206 обработки преобразования.
[0146] Модуль 210 обратного квантования и модуль 212 обработки обратного преобразования могут применять обратное квантование и обратные преобразования к блоку квантованных коэффициентов преобразования, соответственно, для того чтобы восстанавливать остаточный блок из блока коэффициентов преобразования. Модуль 214 восстановления может формировать восстановленный блок, соответствующий текущему блоку (хотя потенциально с определенной степенью искажения), на основе восстановленного остаточного блока и блока предсказания, сформированного посредством модуля 202 выбора режима. Например, модуль 214 восстановления может суммировать выборки восстановленного остаточного блока в соответствующие выборки из блока предсказания, сформированного посредством модуля 202 выбора режима, чтобы формировать восстановленный блок.
[0147] Модуль 216 фильтрации может выполнять одну или более операций фильтрации для восстановленных блоков. Например, модуль 216 фильтрации может выполнять операции удаления блочности, чтобы уменьшать артефакты блочности вдоль краев CU. Операции модуля 216 фильтрации могут пропускаться в некоторых примерах.
[0148] Видеокодер 200 сохраняет восстановленные блоки в DPB 218. Например, в примерах, в которых операции модуля 216 фильтрации не требуются, модуль 214 восстановления может сохранять восстановленные блоки в DPB 218. В примерах, в которых операции модуля 216 фильтрации необходимы, модуль 216 фильтрации может сохранять фильтрованные восстановленные блоки в DPB 218. Модуль 222 оценки движения и модуль 224 компенсации движения могут извлекать опорную картинку из DPB 218, сформированного из восстановленных (и потенциально фильтрованных) блоков для того, чтобы внешне предсказывать блоки последующих кодированных картинок. Помимо этого, модуль 226 внутреннего предсказания может использовать восстановленные блоки в DPB 218 текущей картинки, чтобы внутренне предсказывать другие блоки в текущей картинке.
[0149] В общем, модуль 220 энтропийного кодирования может энтропийно кодировать синтаксические элементы, принимаемые из других функциональных компонентов видеокодера 200. Например, модуль 220 энтропийного кодирования может энтропийно кодировать блоки квантованных коэффициентов преобразования из модуля 208 квантования. В качестве другого примера, модуль 220 энтропийного кодирования может энтропийно кодировать синтаксические элементы предсказания (например, информацию движения для внешнего предсказания или информацию внутреннего режима для внутреннего предсказания) из модуля 202 выбора режима. Модуль 220 энтропийного кодирования может выполнять одну или более операций энтропийного кодирования для синтаксических элементов, которые представляют собой другой пример видеоданных, чтобы формировать энтропийно кодированные данные. Например, модуль 220 энтропийного кодирования может выполнять операцию контекстно-адаптивного кодирования переменной длины (CAVLC), CABAC-операцию, операцию кодирования переменно-переменной (V2V) длины, операцию синтаксического контекстно-адаптивного двоичного арифметического кодирования (SBAC), операцию энтропийного кодирования на основе сегментирования на интервалы вероятности (PIPE), операцию экспоненциального кодирования кодом Голомба или другой тип операции энтропийного кодирования для данных. В некоторых примерах, модуль 220 энтропийного кодирования может работать в обходном режиме, в котором синтаксические элементы не подвергаются энтропийному кодированию.
[0150] Видеокодер 200 может выводить поток битов, который включает в себя энтропийно кодированные синтаксические элементы, требуемые для того, чтобы восстанавливать блоки среза или картинки. В частности, модуль 220 энтропийного кодирования может выводить поток битов.
[0151] Операции, описанные выше, описываются относительно блока. Такое описание должно пониматься как операции для блока кодирования сигналов яркости и/или блоков кодирования сигналов цветности. Как описано выше, в некоторых примерах, блок кодирования сигналов яркости и блоки кодирования сигналов цветности представляют собой компоненты сигнала яркости и сигнала цветности CU. В некоторых примерах, блок кодирования сигналов яркости и блоки кодирования сигналов цветности представляют собой компоненты сигнала яркости и сигнала цветности PU.
[0152] В некоторых примерах, операции, выполняемые относительно блока кодирования сигналов яркости, не должны повторяться для блоков кодирования сигналов цветности. В качестве одного примера, операции для того, чтобы идентифицировать вектор движения (MV) и опорную картинку для блока кодирования сигналов яркости, не должны повторяться для идентификации MV и опорной картинки для блоков сигналов цветности. Наоборот, MV для блока кодирования сигналов яркости может масштабироваться с возможностью определять MV для блоков сигналов цветности, и опорная картинка может быть одной и той же. В качестве другого примера, процесс внутреннего предсказания может быть одинаковым для блока кодирования сигналов яркости и блоков кодирования сигналов цветности.
[0153] Видеокодер 200 представляет пример устройства, выполненного с возможностью кодировать видеоданные, включающего в себя запоминающее устройство, выполненное с возможностью сохранять видеоданные, и один или более модулей обработки, реализованных в схеме и выполненных с возможностью выполнять одну или более примерных технологий, описанных в этом раскрытии.
[0154] В некоторых примерах, исходное устройство может быть выполнено с возможностью принимать вывод из видеокодера 200 и определять (например, формируются), конфигурационная запись для видеоданных, кодированных инкапсуляции потока битов посредством видеокодера 200 в соответствии со стандартом фундаментального кодирования видео (EVC), который включает в себя информацию для декодирования потока битов. Конфигурационная запись может включать в себя синтаксический элемент индикатора набора инструментальных средств (например, toolset_idc). Конфигурационная запись может предоставляться в уровне формата файлов, например, в качестве данных уровня формата файлов или на уровне, который инкапсулирует кодированные на уровне уровня кодирования видео (VCL) мультимедийные данные. Например, как пояснено в данном документе, конфигурационная запись может включаться в поле конфигурации в мультимедийном файле, причем поле конфигурации является отдельным от поля кинофрагментов или другого поля, которое включает в себя фактические кодированные мультимедийные данные. В некоторых примерах, синтаксический элемент индикатора набора инструментальных средств может включать в себя информацию всех инструментальных средств, которые требуются, чтобы декодировать поток битов, ассоциированный с конфигурационной записью. Синтаксический элемент индикатора набора инструментальных средств может указывать инструментальные средства, которые совпадают с другим полем toolset_idc, которое сигнализируется в наборе параметров последовательности (SPS).
[0155] В некоторых примерах, может рассматриваться синтаксический элемент индикатора набора инструментальных средств, включающий в себя инструментальные средства, которые требуются, чтобы воспроизводить файл в записи выборки, которая представляет собой часть кодированных параметров. Чтобы предоставлять синтаксический элемент индикатора набора инструментальных средств, может использоваться схема кодирования для кодированных параметров в MIME-типе.
[0156] Фиг. 4 является блок-схемой, иллюстрирующей примерный видеодекодер 300, который может выполнять технологии этого раскрытия. Фиг. 4 предоставляется для целей пояснения и не представляет собой ограничение технологий, проиллюстрированных и описанных в общих чертах в этом раскрытии. Для целей пояснения, это раскрытие описывает видеодекодер 300 согласно технологиям JEM, EVC, VVC (ITU-T H.266, разрабатывается) и HEVC (ITU-T H.265). Тем не менее, технологии этого раскрытия могут выполняться посредством устройств кодирования видео, которые сконфигурированы для других стандартов кодирования видео.
[0157] В примере по фиг. 4, видеодекодер 300 включает в себя буферное запоминающее устройство 320 кодированных картинок (CPB), модуль 302 энтропийного декодирования, модуль 304 обработки предсказания, модуль 306 обратного квантования, модуль 308 обработки обратного преобразования, модуль 310 восстановления, модуль 312 фильтрации и буфер 314 декодированных картинок (DPB). Любое из запоминающего CPB-устройства 320, модуля 302 энтропийного декодирования, модуля 304 обработки предсказания, модуля 306 обратного квантования, модуля 308 обработки обратного преобразования, модуля 310 восстановления, модуля 312 фильтрации и DPB 314 может реализовываться в одном или более процессоров либо в схеме обработки. Например, модули видеодекодера 300 могут реализовываться как одна или более схем или логических элементов в качестве части аппаратной схемы или в качестве части процессора, ASIC, FPGA. Кроме того, видеодекодер 300 может включать в себя дополнительные или альтернативные процессоры либо схему обработки для того, чтобы выполнять эти и другие функции.
[0158] Модуль 304 обработки предсказания включает в себя модуль 316 компенсации движения и модуль 318 внутреннего предсказания. Модуль 304 обработки предсказания может включать в себя дополнительные модули для того, чтобы выполнять предсказание в соответствии с другими режимами предсказания. В качестве примера, модуль 304 обработки предсказания может включать в себя модуль палитровой обработки, модуль внутриблочного копирования (который может составлять часть модуля 316 компенсации движения), модуль аффинной обработки, модуль обработки на основе линейной модели (LM) и т.п. В других примерах, видеодекодер 300 может включать в себя большее, меньшее число или другие функциональные компоненты.
[0159] Запоминающее CPB-устройство 320 может сохранять видеоданные, такие как кодированный поток видеобитов, который должен декодироваться посредством компонентов видеодекодера 300. Видеоданные, сохраненные в запоминающем CPB-устройстве 320, могут получаться, например, из машиночитаемого носителя 110 (фиг. 1). Запоминающее CPB-устройство 320 может включать в себя CPB, который сохраняет кодированные видеоданные (например, синтаксические элементы) из кодированного потока видеобитов. Кроме того, запоминающее CPB-устройство 320 может сохранять видеоданные, отличные от синтаксических элементов кодированной картинки, такие как временные данные, представляющие выводы из различных модулей видеодекодера 300. DPB 314, в общем, сохраняет декодированные картинки, которые видеодекодер 300 может выводить и/или использовать в качестве опорных видеоданных при декодировании последующих данных или картинок кодированного потока видеобитов. Запоминающее CPB-устройство 320 и DPB 314 могут формироваться посредством любого из множества запоминающих устройств, таких как DRAM, включающих в себя SDRAM, MRAM, RRAM или другие типы запоминающих устройств. Запоминающее CPB-устройство 320 и DPB 314 могут предоставляться посредством того же запоминающего устройства или отдельных запоминающих устройств. В различных примерах, запоминающее CPB-устройство 320 может быть внутримикросхемным с другими компонентами видеодекодера 300 или внемикросхемным относительно этих компонентов.
[0160] Дополнительно или альтернативно, в некоторых примерах, видеодекодер 300 может извлекать кодированные видеоданные из запоминающего устройства 120 (фиг. 1). Таким образом, запоминающее устройство 120 может сохранять данные, как пояснено выше для запоминающего CPB-устройства 320. Аналогично, запоминающее устройство 120 может сохранять инструкции, которые должны выполняться посредством видеодекодера 300, когда часть или вся функциональность видеодекодера 300 реализуется в программном обеспечении для выполнения посредством схемы обработки видеодекодера 300.
[0161] Различные модули, показанные на фиг. 4, проиллюстрированы для того, чтобы помогать в понимании операций, выполняемых посредством видеодекодера 300. Модули могут реализовываться как фиксированные функциональные схемы, программируемые схемы либо комбинация вышеозначенного. Аналогично фиг. 3, фиксированные функциональные схемы означают схемы, которые предоставляют конкретную функциональность и предварительно установлены в отношении операций, которые могут выполняться. Программируемые схемы означают схемы, которые могут программироваться с возможностью выполнять различные задачи и предоставлять гибкую функциональность в операциях, которые могут выполняться. Например, программируемые схемы могут выполнять программное обеспечение или микропрограммное обеспечение, которое инструктирует программируемым схемам работать способом, заданным посредством инструкций программного обеспечения или микропрограммного обеспечения. Фиксированные функциональные схемы могут выполнять программные инструкции (например, чтобы принимать параметры или выводить параметры), но типы операций, которые выполняют фиксированные функциональные схемы, в общем, являются неизменными. В некоторых примерах, один или более модулей могут представлять собой различные схемные блоки (фиксированные функциональные или программируемые), и в некоторых примерах, один или более модулей могут представлять собой интегральные схемы.
[0162] Видеодекодер 300 может включать в себя ALU, EFU, цифровые схемы, аналоговые схемы и/или программируемые ядра, сформированные из программируемых схем. В примерах, в которых операции видеодекодера 300 выполняются посредством программного обеспечения, выполняющегося в программируемых схемах, внутримикросхемное или внемикросхемное запоминающее устройство может сохранять инструкции (например, объектный код) программного обеспечения, которые принимает и выполняет видеодекодер 300.
[0163] Модуль 302 энтропийного декодирования может принимать кодированные видеоданные из CPB и энтропийно декодировать видеоданные, чтобы воспроизводить синтаксические элементы. Модуль 304 обработки предсказания, модуль 306 обратного квантования, модуль 308 обработки обратного преобразования, модуль 310 восстановления и модуль 312 фильтрации могут формировать декодированные видеоданные на основе синтаксических элементов, извлеченных из потока битов.
[0164] В общем, видеодекодер 300 восстанавливает картинку на поблочной основе. Видеодекодер 300 может выполнять операцию восстановления для каждого блока отдельно (причем блок, в данный момент восстанавливаемый, т.е. декодируемый, может называться "текущим блоком").
[0165] Модуль 302 энтропийного декодирования может энтропийно декодировать синтаксические элементы, задающие квантованные коэффициенты преобразования блока квантованных коэффициентов преобразования, а также информацию преобразования, такую как параметр квантования (QP) и/или индикатор(ы) режима преобразования. Модуль 306 обратного квантования может использовать QP, ассоциированный с блоком квантованных коэффициентов преобразования, для того, чтобы определять степень квантования и, аналогично, степень обратного квантования для модуля 306 обратного квантования, которая должна применяться. Модуль 306 обратного квантования, например, может выполнять операцию побитового сдвига влево, чтобы обратно квантовать квантованные коэффициенты преобразования. Модуль 306 обратного квантования в силу этого может формировать блок коэффициентов преобразования, включающий в себя коэффициенты преобразования.
[0166] После того, как модуль 306 обратного квантования формирует блок коэффициентов преобразования, модуль 308 обработки обратного преобразования может применять одно или более обратных преобразований к блоку коэффициентов преобразования для того, чтобы формировать остаточный блок, ассоциированный с текущим блоком. Например, модуль 308 обработки обратного преобразования может применять обратное DCT, обратное целочисленное преобразование, обратное преобразование Карунена-Лоэва (KLT), обратное вращательное преобразование, обратное направленное преобразование или другое обратное преобразование к блоку коэффициентов преобразования.
[0167] Кроме того, модуль 304 обработки предсказания формирует блок предсказания согласно синтаксическим элементам с информацией предсказания, которые энтропийно декодированы посредством модуля 302 энтропийного декодирования. Например, если синтаксические элементы с информацией предсказания указывают, что текущий блок внешне предсказывается, модуль 316 компенсации движения может формировать блок предсказания. В этом случае, синтаксические элементы с информацией предсказания могут указывать опорную картинку в DPB 314, из которого можно извлекать опорный блок, а также вектор движения, идентифицирующий местоположение опорного блока в опорной картинке относительно местоположения текущего блока в текущей картинке. Модуль 316 компенсации движения, в общем, может выполнять процесс внешнего предсказания таким способом, который является практически аналогичным способу, описанному относительно модуля 224 компенсации движения (фиг. 3).
[0168] В качестве другого примера, если синтаксические элементы с информацией предсказания указывают то, что текущий блок внутренне предсказывается, модуль 318 внутреннего предсказания может формировать блок предсказания согласно режиму внутреннего предсказания, указываемому посредством синтаксических элементов с информацией предсказания. С другой стороны, модуль 318 внутреннего предсказания, в общем, может выполнять процесс внутреннего предсказания таким способом, который является практически аналогичным способу, описанному относительно модуля 226 внутреннего предсказания (фиг. 3). Модуль 318 внутреннего предсказания может извлекать данные соседних выборок по отношению к текущему блоку из DPB 314.
[0169] Модуль 310 восстановления может восстанавливать текущий блок с использованием блока предсказания и остаточного блока. Например, модуль 310 восстановления может суммировать выборки остаточного блока с соответствующими выборками блока предсказания для того, чтобы восстанавливать текущий блок.
[0170] Модуль 312 фильтрации может выполнять одну или более операций фильтрации для восстановленных блоков. Например, модуль 312 фильтрации может выполнять операции удаления блочности, чтобы уменьшать артефакты блочности вдоль краев восстановленных блоков. Операции модуля 312 фильтрации не обязательно выполняются во всех примерах.
[0171] Видеодекодер 300 может сохранять восстановленные блоки в DPB 314. Например, в примерах, в которых операции модуля 312 фильтрации не выполняются, модуль 310 восстановления может сохранять восстановленные блоки в DPB 314. В примерах, в которых операции модуля 312 фильтрации выполняются, модуль 312 фильтрации может сохранять фильтрованные восстановленные блоки в DPB 314. Как пояснено выше, DPB 314 может предоставлять ссылочную информацию, такую как выборки текущей картинки для внутреннего предсказания и ранее декодированных картинок для последующей компенсации движения, в модуль 304 обработки предсказания. Кроме того, видеодекодер 300 может выводить декодированные картинки (например, декодированное видео) из DPB 314 для последующего представления на устройстве отображения, таком как устройство 118 отображения по фиг. 1.
[0172] Таким образом, видеодекодер 300 представляет пример устройства декодирования видео, включающего в себя запоминающее устройство, выполненное с возможностью сохранять видеоданные, и один или более модулей обработки, реализованных в схеме и выполненных с возможностью выполнять примерные технологии, описанные в этом раскрытии.
[0173] В некоторых примерах, клиентское устройство может быть выполнено с возможностью принимать конфигурационную запись для декодирования потока битов видеоданных в соответствии со стандартом фундаментального кодирования видео (EVC). Конфигурационная запись может включать в себя синтаксический элемент индикатора набора инструментальных средств (например, toolset_idc). В некоторых примерах, синтаксический элемент индикатора набора инструментальных средств может включать в себя информацию всех инструментальных средств, которые требуются, чтобы декодировать поток битов, ассоциированный с конфигурационной записью. Синтаксический элемент индикатора набора инструментальных средств конфигурационной записи может совпадать с синтаксическим элементом индикатора набора инструментальных средств, сигнализируемым в наборе параметров последовательности (SPS). На основе синтаксического элемента индикатора набора инструментальных средств клиентское устройство может определять, следует ли извлекать поток битов, ассоциированный с конфигурационной записью. На основе определения извлекать поток битов, ассоциированный с конфигурационной записью, клиентское устройство может извлекать поток битов и выводить поток битов в видеодекодер 300 для декодирования.
[0174] В некоторых примерах, может рассматриваться синтаксический элемент индикатора набора инструментальных средств, включающий в себя инструментальные средства, которые требуются, чтобы воспроизводить файл в записи выборки, которая представляет собой часть кодированных параметров. Чтобы предоставлять синтаксический элемент индикатора набора инструментальных средств, может использоваться схема кодирования для кодированных параметров в MIME-типе.
[0175] Фиг. 5 является концептуальной схемой, иллюстрирующей примерную структуру файла 500 в соответствии с одной или более технологий этого раскрытия. В примере по фиг. 5, файл 500 включает в себя кинополе 502 и множество полей 504 мультимедийных данных. Хотя иллюстрируются в примере по фиг. 5 как находящиеся в одном и том же файле, в других примерах, кинополе 502 и поля 504 мультимедийных данных могут находиться в отдельных файлах. Как указано выше, поле может представлять собой объектно-ориентированный компоновочный блок, заданный посредством уникального идентификатора типа и длины. Например, поле может представлять собой элементарную синтаксическую структуру в ISOBMFF, включающую в себя четырехсимвольный кодированный тип поля, число байтов поля и рабочие данные.
[0176] Кинополе 502 может содержать метаданные для дорожек файла 500. Каждая дорожка файла 500 может содержать непрерывный поток мультимедийных данных. Каждое из полей 504 мультимедийных данных может включать в себя одну или несколько выборок 505. Каждая из выборок 505 может содержать единицу аудио- или видеодоступа. Каждая единица доступа может содержать несколько кодированных картинок для многовидового кодирования или масштабируемого кодирования видео. Например, единица доступа может включать в себя одну или несколько кодированных картинок для каждого уровня.
[0177] Кроме того, в примере по фиг. 5, кинополе 502 включает в себя поле 506 дорожек. Поле 506 дорожек может включать метаданные для дорожки файла 500. В других примерах, кинополе 502 может включать в себя несколько полей дорожек для различных дорожек файла 500. Поле 506 дорожек включает в себя поле 508 ссылок на дорожки и мультимедийное поле 510. Поле 508 ссылок на дорожки может включать в себя поле 509 типа ссылок на дорожки. Поле 509 типа ссылок на дорожки может быть ассоциировано с типом (например, "tbas") и идентификатором дорожки, идентифицирующим другую дорожку. В соответствии с шестой технологией этого раскрытия, поля ссылок на дорожки дорожек плиток могут или могут не включать в себя поля типа ссылок на дорожки, ассоциированные с идентификатором типа "tbas".
[0178] Мультимедийное поле 510 может содержать все объекты, которые объявляют информацию относительно мультимедийных данных в дорожке. Мультимедийное поле 510 включает в себя поле 512 мультимедийной информации. Поле 512 мультимедийной информации может содержать все объекты, которые объявляют информацию характеристик мультимедиа дорожки. Поле 512 мультимедийной информации включает в себя поле 514 таблиц выборок. Поле 514 таблиц выборок может указывать конкретные для выборки метаданные.
[0179] В примере по фиг. 5, поле 514 таблиц выборок включает в себя поле 516 описания выборок, и поле 516 описания выборок включает в себя запись 518 выборки. Запись 518 выборки включает в себя конфигурацию 520 EVC-декодера, запись 518 выборки, которая, как описано выше, может включать в себя синтаксический элемент индикатора набора инструментальных средств. В других примерах, поле 514 таблиц выборок может включать в себя другие поля в дополнение к полю 516 описания выборок и записи 518 выборки. Хотя не показано на фиг. 5, запись 518 выборки может включать в себя конфигурационную запись декодера. Как подробнее описано выше, это раскрытие описывает технологии для включения новых типов важной информации в записи выборки, к примеру, запись 518 выборки.
[0180] Фиг. 6 является концептуальной схемой, иллюстрирующей элементы примерного мультимедийного контента 620. В примере по фиг. 6, мультимедийный контент 620 включает в себя MPD 622 и множество представлений 624A-624N (представления 624). Представление 624A включает в себя необязательные данные 626 заголовка и сегменты 628A-628N (сегменты 628), тогда как представление 624N включает в себя необязательные данные 630 заголовка и сегменты 632A-632N (сегменты 632). Буква N используется для того, чтобы обозначать последний кинофрагмент в каждом из представлений 624 для удобства. В некоторых примерах, могут быть предусмотрены различные числа кинофрагментов между представлениями 624.
[0181] MPD 622 может содержать структуру данных, отдельную от представлений 624. В общем, MPD 422 может включать в себя данные, которые в общем, описывает характеристики представлений 424, к примеру, характеристики кодирования и рендеринга, адаптивные наборы, профиль, которому MPD 422 соответствует, информация типов текста, информация ракурсов камеры, рейтинговая информация, информация режимов трюков (например, информация, указывающая представления, которые включают в себя временные подпоследовательности), и/или информация для извлечения удаленных периодов (например, для вставки адресных рекламных объявлений в мультимедийный контент во время воспроизведения).
[0182] Данные 626 заголовка, когда присутствуют, могут описывать характеристики сегментов 628, например, временные местоположения точек произвольного доступа (RAP, также называемых в качестве точек доступа к потоку (SAP)), то, какие из сегментов 628 включают в себя точки произвольного доступа, байтовые смещения в точках произвольного доступа в сегментах 628, универсальные указатели ресурса (URL-адреса) сегментов 628 либо другие аспекты сегментов 628. Данные 630 заголовка, когда присутствуют, могут описывать аналогичные характеристики для сегментов 632. Дополнительно или альтернативно, такие характеристики могут быть полностью включены в MPD 622.
[0183] Сегменты 628, 632 включают в себя одну или более кодированных видеовыборок, каждая из которых может включать в себя кадры или срезы видеоданных. Каждая из кодированных видеовыборок сегментов 628 может иметь аналогичные характеристики, например, высоту, ширину и требования по полосе пропускания. Такие характеристики могут описываться посредством данных MPD 622, хотя такие данные не проиллюстрированы в примере по фиг. 6. MPD 622 может включать в себя характеристики, как описано посредством технических требований 3GPP, с добавлением любой из сигнализируемой информации, описанной в этом раскрытии.
[0184] Каждый из сегментов 628, 632 может быть ассоциирован с уникальным универсальным указателем ресурса (URL-адресом). Таким образом, каждый из сегментов 628, 632 может быть независимо извлекаемым с использованием сетевого протокола потоковой передачи, такого как DASH. Таким образом, целевое устройство может использовать HTTP GET-запрос на то, чтобы извлекать сегменты 628 или 632. В некоторых примерах, целевое устройство может использовать частичные HTTP GET-запросы на то, чтобы извлекать конкретные байтовые диапазоны сегментов 628 или 632.
[0185] Фиг. 7 является блок-схемой, иллюстрирующей элементы примерного видеофайла 750. Можно сказать, что видеофайл 750 инкапсулирует сегмент. Как описано выше, видеофайлы в соответствии с базовым форматом мультимедийных файлов ISO и его расширениями сохраняют данные в последовательности объектов, называемых в качестве "полей". В примере по фиг. 7, видеофайл 750 включает в себя поле 752 типов файлов (FTYP), кинополе 754 (MOOV), поля 762 индексов сегментов (SIDX), поля 764 кинофрагментов (MOOF) и поле 766 произвольного доступа к кинофрагментам (MFRA). Хотя фиг. 7 представляет пример видеофайла, следует понимать, что другие мультимедийные файлы могут включать в себя другие типы мультимедийных данных (например, аудиоданные, синхронизированные по времени текстовые данные и т.п.), которые структурированы аналогично данным видеофайла 750, в соответствии с базовым форматом мультимедийных файлов ISO и его расширениями.
[0186] Поле 752 FTYP, в общем, описывает тип файла для видеофайла 750. Поле 752 типов файлов может включать в себя данные, которые идентифицирует спецификацию, которая описывает наилучшее использование для видеофайла 750. Поле 752 типов файлов альтернативно может быть размещено перед полем 754 MOOV, полями 764 кинофрагментов и/или полем 766 MFRA.
[0187] В некоторых примерах, сегмент, такой как видеофайл 750, может включать в себя поле MPD-обновления (не показано) до поля 752 Ftyp. Поле MPD-обновления может включать в себя информацию, указывающую то, что MPD, соответствующее представлению, включающему в себя видеофайл 750, должно обновляться, вместе с информацией для обновления MPD. Например, поле MPD-обновления может предоставлять URI или URL-адрес для ресурса, который должен использоваться для того, чтобы обновлять MPD. В качестве другого примера, поле MPD-обновления может включать в себя данные для обновления MPD. В некоторых примерах, поле MPD-обновления может идти сразу после поля типов сегментов (STYP) (не показано) видеофайла 750, причем поле STYP может задавать тип сегмента для видеофайла 750.
[0188] Поле 754 MOOV, в примере по фиг. 7, включает в себя поле 756 кинозаголовков (MVHD), поле 758 дорожек (TRAK) и одно или более полей 760 кинорасширений (MVEX). В общем, поле 756 MVHD может описывать общие характеристики видеофайла 750. Например, поле 756 MVHD может включать в себя данные, которые описывают то, когда видеофайл 750 первоначально создан, когда видеофайл 750 в последний раз модифицирован, временную шкалу для видеофайла 750, длительность воспроизведения для видеофайла 750 либо другие данные, которые в общем, описывают видеофайл 750.
[0189] Поле 758 TRAK может включать в себя данные для дорожки видеофайла 750. Поле 758 TRAK может включать в себя поле (TKHD) заголовков дорожек, которое описывает характеристики дорожки, соответствующей полю 758 TRAK. В некоторых примерах, поле 758 TRAK может включать в себя кодированные видеокартинки, тогда как в других примерах, кодированные видеокартинки дорожки могут быть включены в кинофрагменты 764, к которым можно обращаться посредством данных поля 758 TRAK и/или полей 762 SIDX.
[0190] В некоторых примерах, видеофайл 750 может включать в себя более одной дорожки. Соответственно, поле 754 MOOV может включать в себя число полей TRAK, равное числу дорожек в видеофайле 750. Поле 758 TRAK может описывать характеристики соответствующей дорожки видеофайла 750. Например, поле 758 TRAK может описывать временную и/или пространственную информацию для соответствующей дорожки. Поле TRAK, аналогичное полю 758 TRAK поля 754 MOOV, может описывать характеристики дорожки наборов параметров, когда дорожка наборов параметров включается в видеофайл, к примеру, видеофайл 750. Присутствие SEI-сообщений уровня последовательности может сигнализироваться в дорожке наборов параметров в поле TRAK, описывающем дорожку наборов параметров.
[0191] Поля 760 MVEX могут описывать характеристики соответствующих кинофрагментов 764, например, сигнализировать, что этот видеофайл 750 включает в себя кинофрагменты 764, в дополнение к видеоданным, включенным в поле 754 MOOV, если таковые имеются. В контексте потоковой передачи видеоданных, кодированные видеокартинки могут быть включены в кинофрагменты 764, а не в поле 754 MOOV. Соответственно, все кодированные видеовыборки могут быть включены в кинофрагменты 764, а не в поле 754 MOOV.
[0192] Поле 754 MOOV может включать в себя число полей 760 MVEX, равное числу кинофрагментов 764 в видеофайле 750. Каждое из полей 760 MVEX может описывать характеристики соответствующего одного из кинофрагментов 764. Например, каждое поле MVEX может включать в себя поле заголовков кинорасширений (MEHD), которое описывает временную длительность для соответствующего одного из кинофрагментов 164.
[0193] Набор данных последовательности может сохраняться в видеовыборке, которая не включает в себя фактические кодированные видеоданные. Видеовыборка, в общем, может соответствовать единице доступа, которая является представлением кодированной картинки в конкретный момент времени. В контексте AVC, кодированная картинка включает в себя одну или более VCL NAL-единиц, которые содержат информацию для того, чтобы составлять все пикселы единицы доступа, и других ассоциированных не-VCL NAL-единиц, таких как SEI-сообщения. Соответственно, набор данных последовательности, который может включать в себя SEI-сообщения уровня последовательности, может включаться в один из кинофрагментов 764. Присутствие набора данных последовательности и/или SEI-сообщений уровня последовательности может сигнализироваться как присутствующее в одном из кинофрагментов 764 в пределах одного из полей 760 MVEX, соответствующих одному из кинофрагментов 764.
[0194] Поля 762 SIDX представляют собой необязательные элементы видеофайла 750. Иными словами, видеофайлы, соответствующие 3GPP-формату файлов или другим таким форматам файлов, не обязательно включают в себя поля 762 SIDX. В соответствии с примером 3GPP-формата файлов, поле SIDX может использоваться для того, чтобы идентифицировать субсегмент сегмента (например, сегмента, содержащегося в видеофайле 750). 3GPP-формат файлов задает субсегмент в качестве "автономного набора из одного или более последовательных полей кинофрагментов с соответствующим полем(ями) мультимедийных данных, и поле мультимедийных данных, содержащее данные, к которым обращаются посредством поля кинофрагментов, должно идти после этого поля кинофрагментов и предшествовать следующему полю кинофрагментов, содержащему информацию относительно той же дорожки". 3GPP-формат файлов также указывает то, что поле SIDX "содержит последовательность ссылок на субсегменты для (суб)сегмента, задокументированного посредством поля. Субсегменты, к которым обращаются, являются смежными по времени представления. Аналогично, байты, на которые ссылаются посредством поля индексов сегментов, всегда являются смежными в сегменте. Размер, к которому обращаются, обеспечивает подсчет числа байтов в материале, к которому обращаются".
[0195] Поля 762 SIDX, в общем, предоставляют информацию, представляющую один или более субсегментов сегмента, включенного в видеофайл 750. Например, эта информация может включать в себя времена воспроизведения, в которые субсегменты начинаются и/или завершаются, байтовые смещения для субсегментов, то, включают или нет субсегменты в себя (например, начинаются) точку доступа к потоку (SAP), тип для SAP (например, представляет ли собой SAP картинку на основе мгновенного обновления декодера (IDR), картинку на основе чистого произвольного доступа (CRA), картинку на основе доступа к нерабочей ссылке (BLA) и т.п.), позицию SAP (с точки зрения времени воспроизведения и/или байтового смещения) в субсегменте и т.п.
[0196] Кинофрагменты 764 могут включать в себя одну или более кодированных видеокартинок. В некоторых примерах, кинофрагменты 764 могут включать в себя одну или более групп картинок (GOP), каждая из которых может включать в себя некоторое число кодированных видеокартинок, например, кадров или картинок. Помимо этого, как описано выше, кинофрагменты 764 могут включать в себя наборы данных последовательности в некоторых примерах. Каждый из кинофрагментов 764 может включать в себя поле заголовков кинофрагментов (MFHD, не показано на фиг. 7). Поле MFHD может описывать характеристики соответствующего кинофрагмента, такие как порядковый номер для кинофрагмента. Кинофрагменты 764 могут быть включены в порядке порядкового номера в видеофайл 750.
[0197] Поле 766 MFRA может описывать точки произвольного доступа в кинофрагментах 764 видеофайла 750. Это может помогать с выполнением режимов трюков, таких как выполнение поисков для конкретных временных местоположений (т.е. времен воспроизведения) в сегменте, инкапсулированном посредством видеофайла 750. Поле 766 MFRA, в общем, является необязательным и не должно включаться в видеофайлы, в некоторых примерах. Аналогично, клиентское устройство не обязательно должно ссылаться на поле 766 MFRA, чтобы корректно декодировать и отображать видеоданные видеофайла 750. Поле 766 MFRA может включать в себя число полей произвольного доступа к фрагментам дорожек (TFRA) (не показаны), равное числу дорожек видеофайла 750 или, в некоторых примерах, равное числу мультимедийных дорожек (например, дорожек, отличных от дорожек с подсказками) видеофайла 750.
[0198] В некоторых примерах, кинофрагменты 764 могут включать в себя одну или более точек доступа к потоку (SAP), таких как IDR-картинки. Аналогично, поле 766 MFRA может предоставлять индикаторы относительно местоположений в видеофайле 750 SAP. Соответственно, временная подпоследовательность видеофайла 750 может формироваться из SAP видеофайла 750. Временная подпоследовательность также может включать в себя другие картинки, такие как P-кадры и/или B-кадры, которые зависят от SAP. Кадры и/или серии срезы временной подпоследовательности могут компоноваться в сегментах таким образом, что кадры/срезы временной подпоследовательности, которые зависят от других кадров/срезов подпоследовательности, могут надлежащим образом декодироваться. Например, в иерархической компоновке данных, данные, используемые для предсказания для других данных, также могут быть включены во временную подпоследовательность.
[0199] Видеофайл 750 также содержит поле 768 описания выборок в этом примере. В частности, поле 768 описания выборок включается в поле 758 TRAK в этом примере. В примере по фиг. 7, поле 768 описания выборок не включает в себя видеоданные, кодированные согласно кодеку.
[0200] Примерное поле 768 описания выборок может задаваться следующим образом:
- Типы записей выборок и полей: 'hvc2', 'hev2', 'lhv1', 'lhe1', 'lhvC'
- Контейнер: Поле описания выборок ('stsd')
- Обязательное: Запись выборки 'hvc1', 'hev1', 'hvc2', 'hev2', 'lhv1' или 'lhe1' является обязательной
- Количество: Могут присутствовать одни или несколько записей выборок
[0201] В этом примере определение для поля 768 описания выборок, когда название записи выборки представляет собой 'lhv1', и обязательным значением по умолчанию array_completeness, равно 4 для массивов всех типов наборов параметров и 0 для всех других массивов. Когда название записи выборки представляет собой 'lhe1', значение по умолчанию array_completeness равно 0 для всех массивов.
[0202] Фиг. 8 является блок-схемой последовательности операций, иллюстрирующей примерный способ для видеоданных процесса в соответствии с технологиями этого раскрытия. Хотя описывается относительно целевого устройства 116 по фиг. 1, следует понимать, что другие устройства могут быть выполнены с возможностью осуществлять способ, аналогичный способу по фиг. 8.
[0203] Целевое устройство 116 может быть выполнено с возможностью принимать конфигурационную запись для декодирования потока битов видеоданных (800). Конфигурационная запись для потока битов может включать в себя синтаксический элемент индикатора набора инструментальных средств, который включает в себя информацию, идентифицирующую, из набора инструментальных средств декодирования видео, инструментальные средства, которые требуются, чтобы декодировать поток битов, ассоциированный с конфигурационной записью. На основе синтаксического элемента индикатора набора инструментальных средств в конфигурационной записи, целевое устройство 116 может определять, следует ли извлекать поток битов, ассоциированный с конфигурационной записью (802). Целевое устройство 116 затем может извлекать поток битов (804). Целевое устройство 116 может выводить поток битов в видеодекодер для декодирования (806). Целевое устройство 116 дополнительно или альтернативно может принимать параметр MIME-типа, который включает в себя пару ключ/значение, при этом ключ указывает то, что MIME-тип идентифицирует инструментальные средства декодирования видео, и значение идентифицирует, из инструментальных средств декодирования видео, инструментальные средства, которые требуются, чтобы декодировать поток битов. Поток битов видеоданных может включать в себя один или несколько наборов параметров, и каждое из инструментальных средств, идентифицированных в конфигурационной записи как требуемое, чтобы декодировать поток битов, может активироваться, по меньшей мере, в одном из одного или нескольких наборов параметров.
[0204] Синтаксический элемент индикатора набора инструментальных средств сигнализируется в поле конфигурации информации формата файлов. Синтаксический элемент индикатора набора инструментальных средств, который включает в себя информацию, идентифицирующую инструментальные средства, которые требуются, чтобы декодировать поток битов, ассоциированный с конфигурационной записью, может идентифицировать все инструментальные средства, которые требуются, чтобы декодировать поток битов, ассоциированный с конфигурационной записью. Синтаксический элемент индикатора набора инструментальных средств может быть 32-битовым целочисленным значением без знака, причем каждый бит 32-битового целочисленного значения без знака соответствует уникальному инструментальному средству для декодирования потока битов.
[0205] Конфигурационная запись может форматироваться в соответствии с существенным EVC-стандартом. Конфигурационная запись для потока битов может включать в себя синтаксический элемент профиля и/или синтаксический элемент уровня перед синтаксическим элементом индикатора набора инструментальных средств. Конфигурационная запись для потока битов может включать в себя синтаксический элемент формата сигналов цветности после синтаксического элемента индикатора набора инструментальных средств.
[0206] Следует признавать то, что в зависимости от примера, определенные этапы или события любой из технологий, описанных в данном документе, могут выполняться в другой последовательности, могут добавляться, объединяться или вообще исключаться (например, не все описанные этапы или события требуются для практической реализации технологий). Кроме того, в определенных примерах, этапы или события могут выполняться одновременно, например, посредством многопоточной обработки, обработки прерывания или посредством нескольких процессоров, а не последовательно.
[0207] Следующие разделы представляют примерные реализации систем и технологий, описанных выше.
[0208] Часть 1 формулы изобретения. Способ обработки видеопотока или видеофайла, при этом способ содержит этапы, на которых: прием конфигурационной записи для декодирования потока битов видеоданных, при этом конфигурационная запись для потока битов включает в себя синтаксический элемент индикатора набора инструментальных средств, который включает в себя информацию, идентифицирующую, из набора инструментальных средств декодирования видео, инструментальные средства, которые требуются, чтобы декодировать поток битов, ассоциированный с конфигурационной записью; на основе синтаксического элемента индикатора набора инструментальных средств, определение того, следует или нет извлекать поток битов, ассоциированный с конфигурационной записью; и на основе определения извлекать поток битов, ассоциированный с конфигурационной записью, извлечение потока битов и вывод потока битов в видеодекодер для декодирования.
[0209] Часть 2 формулы изобретения. Способ по части 1 формулы изобретения, дополнительно содержащей: при приеме параметра типа многоцелевого расширения возможностей почты в сети Интернет (MIME), который включает в себя пару ключ/значение, при этом указывает то, что ключ, MIME-тип идентифицирует инструментальные средства декодирования видео, и значение идентифицирует инструментальные средства из инструментальных средств декодирования видео, которые требуются, чтобы декодировать поток битов.
[0210] Часть 3 формулы изобретения. Способ по части 1 или 2 формулы изобретения, в котором поток битов видеоданных содержит один или несколько наборов параметров и, в котором каждое из инструментальных средств, идентифицированных в конфигурационной записи как требуемое, чтобы декодировать поток битов, активируется, по меньшей мере, в одном из одного или нескольких наборов параметров.
[0211] Часть 4 формулы изобретения. Способ по любой из частей 1-3 формулы изобретения, в котором синтаксический элемент индикатора набора инструментальных средств, который включает в себя информацию, идентифицирующую инструментальные средства, которые требуются, чтобы декодировать поток битов, ассоциированный с конфигурационной записью, идентифицирует все инструментальные средства, которые требуются, чтобы декодировать поток битов, ассоциированный с конфигурационной записью.
[0212] Часть 5 формулы изобретения. Способ по любой из частей 1-4 формулы изобретения, в котором конфигурационная запись форматируется в соответствии со стандартом фундаментального кодирования видео (EVC).
[0213] Часть 6 формулы изобретения. Способ любая из частей 1-5 формулы изобретения, в котором синтаксический элемент индикатора набора инструментальных средств сигнализируется в поле конфигурации информации формата файлов.
[0214] Часть 7 формулы изобретения. Способ по любой из частей 1-6 формулы изобретения, в котором синтаксический элемент индикатора набора инструментальных средств содержит 32-битовое целочисленное значение без знака.
[0215] Часть 8 формулы изобретения. Способ по части 7 формулы изобретения, в котором биты 32-битового целочисленного значения без знака соответствуют уникальному инструментальному средству для декодирования потока битов.
[0216] Часть 9 формулы изобретения. Способ по любой из частей 1-8 формулы изобретения, в котором конфигурационная запись для потока битов включает в себя синтаксический элемент профиля перед синтаксическим элементом индикатора набора инструментальных средств.
[0217] Часть 10 формулы изобретения. Способ по любой из частей 1-9 формулы изобретения, в котором конфигурационная запись для потока битов включает в себя синтаксический элемент уровня перед синтаксическим элементом индикатора набора инструментальных средств.
[0218] Часть 11 формулы изобретения. Способ по любой из частей 1-10 формулы изобретения, в котором конфигурационная запись для потока битов включает в себя синтаксический элемент формата сигналов цветности после синтаксического элемента индикатора набора инструментальных средств.
[0219] Часть 12 формулы изобретения. Способ по любой из частей 1-11 формулы изобретения, в котором конфигурационная запись содержит данные уровня формата файлов, которые инкапсулируют кодированные на уровне уровня кодирования видео (VCL) мультимедийные данные в потоке битов видеоданных, при этом кодированные на VCL-уровне мультимедийные данные включают в себя один или несколько наборов параметров и, в котором каждое из инструментальных средств, идентифицированных в конфигурационной записи как требуемое, чтобы декодировать поток битов, активируется, по меньшей мере, в одном из одного или нескольких наборов параметров.
[0220] Часть 13 формулы изобретения. Устройство для обработки видеоданных, при этом устройство содержит: запоминающее устройство; и один или несколько процессоров, реализованных в схеме, соединенной с запоминающим устройством и сконфигурированных в: принимать конфигурационную запись для декодирования потока битов видеоданных, при этом конфигурационная запись для потока битов включает в себя синтаксический элемент индикатора набора инструментальных средств, который включает в себя информацию, идентифицирующую, из набора инструментальных средств декодирования видео, инструментальные средства, которые требуются, чтобы декодировать поток битов, ассоциированный с конфигурационной записью; на основе синтаксического элемента индикатора набора инструментальных средств, определять, следует ли извлекать поток битов, ассоциированный с конфигурационной записью; и на основе определения извлекать поток битов, ассоциированный с конфигурационной записью, извлекать поток битов и выводить поток битов в видеодекодер для декодирования.
[0221] Часть 14 формулы изобретения. Устройство по части 13 формулы изобретения, в котором один или несколько процессоров дополнительно выполнены с возможностью: принимать параметр типа многоцелевого расширения возможностей почты в сети Интернет (MIME), который включает в себя пару ключ/значение, при этом ключ указывает то, что MIME-тип идентифицирует инструментальные средства декодирования видео, и значение идентифицирует инструментальные средства из инструментальных средств декодирования видео, которые требуются, чтобы декодировать поток битов.
[0222] Часть 15 формулы изобретения. Устройство по части 13 или 14 формулы изобретения, в котором поток битов видеоданных содержит один или несколько наборов параметров и, в котором каждое из инструментальных средств, идентифицированных в конфигурационной записи как требуемое, чтобы декодировать поток битов, активируется, по меньшей мере, в одном из одного или нескольких наборов параметров.
[0223] Часть 16 формулы изобретения. Устройство по любой из частей 13-15 формулы изобретения, в котором синтаксический элемент индикатора набора инструментальных средств, который включает в себя информацию, идентифицирующую инструментальные средства, которые требуются, чтобы декодировать поток битов, ассоциированный с конфигурационной записью, идентифицирует все инструментальные средства, которые требуются, чтобы декодировать поток битов, ассоциированный с конфигурационной записью.
[0224] Часть 17 формулы изобретения. Устройство по любой из частей 13-16 формулы изобретения, в котором конфигурационная запись форматируется в соответствии со стандартом фундаментального кодирования видео (EVC).
[0225] Часть 18 формулы изобретения. Устройство любая из частей 13-117 формулы изобретения, в котором синтаксический элемент индикатора набора инструментальных средств сигнализируется в поле конфигурации информации формата файлов.
[0226] Часть 19 формулы изобретения. Устройство по любой из частей 13-15 формулы изобретения, в котором синтаксический элемент индикатора набора инструментальных средств содержит 32-битовое целочисленное значение без знака.
[0227] Часть 20 формулы изобретения. Устройство по части 19 формулы изобретения, в котором биты 32-битового целочисленного значения без знака соответствуют уникальному инструментальному средству для декодирования потока битов.
[0228] Часть 21 формулы изобретения. Устройство по любой из частей 13-20 формулы изобретения, в котором конфигурационная запись для потока битов включает в себя синтаксический элемент профиля перед синтаксическим элементом индикатора набора инструментальных средств.
[0229] Часть 22 формулы изобретения. Устройство по любой из частей 13-21 формулы изобретения, в котором конфигурационная запись для потока битов включает в себя синтаксический элемент уровня перед синтаксическим элементом индикатора набора инструментальных средств.
[0230] Часть 23 формулы изобретения. Устройство по любой из частей 13-22 формулы изобретения, в котором конфигурационная запись для потока битов включает в себя синтаксический элемент формата сигналов цветности после синтаксического элемента индикатора набора инструментальных средств.
[0231] Часть 24 формулы изобретения. Устройство по любой из частей 13-23 формулы изобретения, в котором конфигурационная запись содержит данные уровня формата файлов, которые инкапсулируют кодированные на уровне уровня кодирования видео (VCL) мультимедийные данные в потоке битов видеоданных, при этом кодированные на VCL-уровне мультимедийные данные включают в себя один или несколько наборов параметров и, в котором каждое из инструментальных средств, идентифицированных в конфигурационной записи как требуемое, чтобы декодировать поток битов, активируется, по меньшей мере, в одном из одного или нескольких наборов параметров.
[0232] Часть 25 формулы изобретения. Машиночитаемый носитель хранения данных, сохраняющий инструкции, которые при выполнении посредством одного или более процессоров, инструктируют одному или более процессоров: принимать конфигурационную запись для декодирования потока битов видеоданных, при этом конфигурационная запись для потока битов включает в себя синтаксический элемент индикатора набора инструментальных средств, который включает в себя информацию, идентифицирующую, из набора инструментальных средств декодирования видео, инструментальные средства, которые требуются, чтобы декодировать поток битов, ассоциированный с конфигурационной записью; на основе синтаксического элемента индикатора набора инструментальных средств, определять, следует ли извлекать поток битов, ассоциированный с конфигурационной записью; и на основе определения извлекать поток битов, ассоциированный с конфигурационной записью, извлекать поток битов и выводить поток битов в видеодекодер для декодирования.
[0233] Часть 26 формулы изобретения. Машиночитаемый носитель хранения данных по части 25 формулы изобретения, в котором инструкции инструктируют одному или более процессоров: принимать параметр типа многоцелевого расширения возможностей почты в сети Интернет (MIME), который включает в себя пару ключ/значение, при этом ключ указывает то, что MIME-тип идентифицирует инструментальные средства декодирования видео, и значение идентифицирует инструментальные средства из инструментальных средств декодирования видео, которые требуются, чтобы декодировать поток битов.
[0234] Часть 27 формулы изобретения. Машиночитаемый носитель хранения данных по части 25 формулы изобретения или 26, в котором поток битов видеоданных содержит один или несколько наборов параметров и, в котором каждое из инструментальных средств, идентифицированных в конфигурационной записи как требуемое, чтобы декодировать поток битов, активируется, по меньшей мере, в одном из одного или нескольких наборов параметров.
[0235] Часть 28 формулы изобретения. Машиночитаемый носитель хранения данных по любой из частей 25-27 формулы изобретения, в котором синтаксический элемент индикатора набора инструментальных средств, который включает в себя информацию, идентифицирующую инструментальные средства, которые требуются, чтобы декодировать поток битов, ассоциированный с конфигурационной записью, идентифицирует все инструментальные средства, которые требуются, чтобы декодировать поток битов, ассоциированный с конфигурационной записью.
[0236] Часть 29 формулы изобретения. Машиночитаемый носитель хранения данных по любой из частей 25-28 формулы изобретения, в котором конфигурационная запись содержит данные уровня формата файлов, которые инкапсулируют кодированные на уровне уровня кодирования видео (VCL) мультимедийные данные в потоке битов видеоданных, при этом кодированные на VCL-уровне мультимедийные данные включают в себя один или несколько наборов параметров и, в котором каждое из инструментальных средств, идентифицированных в конфигурационной записи как требуемое, чтобы декодировать поток битов, активируется, по меньшей мере, в одном из одного или нескольких наборов параметров.
[0237] Часть 30 формулы изобретения. Оборудование для обработки видеопотока или видеофайла, причем оборудование содержит: средство для приема конфигурационной записи для декодирования потока битов видеоданных, при этом конфигурационная запись для потока битов включает в себя синтаксический элемент индикатора набора инструментальных средств, который включает в себя информацию, идентифицирующую, из набора инструментальных средств декодирования видео, инструментальные средства, которые требуются, чтобы декодировать поток битов, ассоциированный с конфигурационной записью; средство для определения, следует ли извлекать поток битов, ассоциированный с конфигурационной записью, на основе синтаксического элемента индикатора набора инструментальных средств; средство для извлечения потока битов на основе определения извлекать поток битов, ассоциированный с конфигурационной записью; и средство для вывода потока битов в видеодекодер для декодирования.
[0238] Часть 31 формулы изобретения. Способ обработки видеоданных, при этом способ содержит: прием конфигурационной записи для декодирования потока битов видеоданных в соответствии со стандартом фундаментального кодирования видео (EVC), в котором конфигурационная запись для потока битов включает в себя синтаксический элемент индикатора набора инструментальных средств, который включает в себя информацию всех инструментальных средств, которые требуются, чтобы декодировать поток битов, ассоциированный с конфигурационной записью; на основе синтаксического элемента индикатора набора инструментальных средств, определение того, следует или нет извлекать поток битов, ассоциированный с конфигурационной записью; и на основе определения извлекать поток битов, ассоциированный с конфигурационной записью, извлечение потока битов и вывод потока битов в видеодекодер для декодирования.
[0239] Часть 32 формулы изобретения. Способ обработки видеоданных, при этом способ содержит: определять конфигурационную запись для потока битов видеоданных, сформированных посредством видеокодера в соответствии со стандартом фундаментального кодирования видео (EVC), в котором конфигурационная запись для потока битов включает в себя информацию для декодирования потока битов и, в котором конфигурационная запись включает в себя синтаксический элемент индикатора набора инструментальных средств, который включает в себя информацию всех инструментальных средств, которые требуются, чтобы декодировать поток битов, ассоциированный с конфигурационной записью; и сигнализация конфигурационной записи.
[0240] Часть 33 формулы изобретения. Способ по части 31 или 32 формулы изобретения, в котором синтаксический элемент индикатора набора инструментальных средств сигнализируется в поле конфигурации информации формата файлов.
[0241] Часть 34 формулы изобретения. Устройство для обработки видеоданных, при этом устройство содержит: схему обработки, выполненную с возможностью осуществлять способ по любой либо по комбинации частей 1-3 формулы изобретения.
[0242] Часть 35 формулы изобретения. Устройство по части 34 формулы изобретения, дополнительно содержащей запоминающее устройство, чтобы сохранять видеоданные.
[0243] Часть 36 формулы изобретения. Устройство по любой из частей 34 и 35 формулы изобретения, дополнительно содержащих дисплей, выполненный с возможностью отображать декодированные видеоданные.
[0244] Часть 37 формулы изобретения. Устройство по любой из частей 34-36 формулы изобретения, при этом устройство содержит одно или более из камеры, компьютера, мобильного устройства, широковещательного приемного устройства или абонентской приставки.
[0245] Часть 38 формулы изобретения. Машиночитаемый носитель хранения данных, имеющий сохраненные инструкции, которые при выполнении инструктируют одному или более процессоров осуществлять способ по любой из частей 31-33 формулы изобретения.
[0246] Часть 39 формулы изобретения. Устройство для обработки видеоданных, причем устройство содержит средство для осуществления способа по любой из частей 31-33 формулы изобретения.
[0247] В одном или более примеров, описанные функции могут реализовываться в аппаратных средствах, программном обеспечении, микропрограммном обеспечении или в любой комбинации вышеозначенного. При реализации в программном обеспечении, функции могут сохраняться или передаваться, в качестве одной или более инструкций или кода, по машиночитаемому носителю и выполняться посредством аппаратного модуля обработки. Машиночитаемые носители могут включать в себя машиночитаемые носители хранения данных, которые соответствуют материальному носителю, такие как носители хранения данных, или среды связи, включающие в себя любую среду, которая упрощает перенос компьютерной программы из одного места в другое, например, согласно протоколу связи. Таким образом, машиночитаемые носители, в общем, могут соответствовать (1) материальному машиночитаемому носителю хранения данных, который является энергонезависимым, или (2) среде связи, такой как сигнал или несущая. Носители хранения данных могут представлять собой любые доступные носители, к которым может осуществляться доступ посредством одного или более компьютеров или одного или более процессоров, с тем чтобы извлекать инструкции, код и/или структуры данных для реализации технологий, описанных в этом раскрытии. Компьютерный программный продукт может включать в себя машиночитаемый носитель.
[0248] В качестве примера, а не ограничения, эти машиночитаемые носители хранения данных могут содержать RAM, ROM, EEPROM, CD-ROM или другое устройство хранения данных на оптических дисках, устройство хранения данных на магнитных дисках или другие магнитные устройства хранения, флэш-память либо любой другой носитель, который может использоваться для того, чтобы сохранять требуемый программный код в форме инструкций или структур данных, и к которому можно осуществлять доступ посредством компьютера. Кроме того, любое соединение корректно называть машиночитаемым носителем. Например, если инструкции передаются из веб-узла, сервера или другого удаленного источника с помощью коаксиального кабеля, оптоволоконного кабеля, "витой пары", цифровой абонентской линии (DSL) или беспроводных технологий, таких как инфракрасные, радиопередающие и микроволновые среды, то коаксиальный кабель, оптоволоконный кабель, "витая пара", DSL или беспроводные технологии, такие как инфракрасные, радиопередающие и микроволновые среды, включаются в определение носителя. Тем не менее, следует понимать, что машиночитаемые носители хранения данных и носители хранения данных не включают в себя соединения, несущие, сигналы или другие энергозависимые носители, а вместо этого направлены на энергонезависимые материальные носители хранения данных. Диск (disk) и диск (disc) при использовании в данном документе включают в себя компакт-диск (CD), лазерный диск, оптический диск, универсальный цифровой диск (DVD), гибкий диск и диск Blu-Ray, при этом диски (disk) обычно воспроизводят данные магнитно, тогда как диски (disc) обычно воспроизводят данные оптически с помощью лазеров. Комбинации вышеперечисленного также следует включать в пределы объема машиночитаемых носителей.
[0249] Инструкции могут выполняться посредством одного или более процессоров, например, одного или более процессоров цифровых сигналов (DSP), микропроцессоров общего назначения, специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA) либо других эквивалентных интегральных или дискретных логических схем. Соответственно, термины "процессор" и "схема обработки", при использовании в данном документе, могут означать любую из вышеприведенных структур или любую другую структуру, подходящую для реализации технологий, описанных в данном документе. Помимо этого, в некоторых аспектах функциональность, описанная в данном документе, может предоставляться в пределах специализированных аппаратных и/или программных модулей, выполненных с возможностью кодирования или декодирования либо встроенных в комбинированный кодек. Кроме того, технологии могут полностью реализовываться в одной или более схем или логических элементов.
[0250] Технологии этого раскрытия могут реализовываться в широком спектре устройств или оборудования, в том числе в беспроводном переносном телефоне, в интегральной схеме (IC), или в наборе IC (к примеру, в наборе микросхем). Различные компоненты, модули или блоки описываются в этом раскрытии для того, чтобы подчеркивать функциональные аспекты устройств, выполненных с возможностью осуществлять раскрытые технологии, но необязательно требуют реализации посредством различных аппаратных модулей. Наоборот, как описано выше, различные модули могут комбинироваться в аппаратный модуль кодека или предоставляться посредством набора взаимодействующих аппаратных модулей, включающих в себя один или более процессоров, как описано выше, в сочетании с надлежащим программным обеспечением и/или микропрограммным обеспечением.
[0251] Выше описаны различные примеры. Эти и другие примеры находятся в пределах объема прилагаемой формулы изобретения.
Изобретение относится к средствам для обработки видеоданных. Технический результат - повышение эффективности кодирования видеоданных. Принимают конфигурационную запись для декодирования потока битов видеоданных, при этом конфигурационная запись для потока битов включает в себя синтаксический элемент индикатора набора инструментальных средств, который включает в себя информацию, идентифицирующую, из набора инструментальных средств декодирования видео, инструментальные средства, которые требуются, чтобы декодировать поток битов, ассоциированный с конфигурационной записью. На основе синтаксического элемента индикатора набора инструментальных средств определяют следует ли извлекать поток битов, ассоциированный с конфигурационной записью. На основе определения извлекают поток битов, ассоциированный с конфигурационной записью. Извлекают поток битов и выводят поток битов в видеодекодер для декодирования. 4 н. и 26 з.п. ф-лы, 9 ил., 3 табл.
1. Способ обработки видеопотока или видеофайла, при этом способ содержит этапы, на которых:
- принимают конфигурационную запись для декодирования потока битов видеоданных, при этом конфигурационная запись для потока битов включает в себя синтаксический элемент индикатора набора инструментальных средств, который включает в себя информацию, идентифицирующую, из набора инструментальных средств декодирования видео, инструментальные средства, которые требуются, чтобы декодировать поток битов, ассоциированный с конфигурационной записью;
- на основе синтаксического элемента индикатора набора инструментальных средств определяют, следует ли извлекать поток битов, ассоциированный с конфигурационной записью; и
- на основе определения извлекать поток битов, ассоциированный с конфигурационной записью, извлекают поток битов и выводят поток битов в видеодекодер для декодирования.
2. Способ по п. 1, дополнительно содержащий этап, на котором:
- принимают параметр типа многоцелевого расширения возможностей почты в сети Интернет (MIME), который включает в себя пару ключ/значение, при этом ключ указывает, что MIME-тип идентифицирует инструментальные средства декодирования видео, и значение идентифицирует инструментальные средства из инструментальных средств декодирования видео, которые требуются, чтобы декодировать поток битов.
3. Способ по п. 1, в котором поток битов видеоданных содержит один или несколько наборов параметров и при этом каждое из инструментальных средств, идентифицированных в конфигурационной записи как требуемое, чтобы декодировать поток битов, активируется, по меньшей мере, в одном из одного или нескольких наборов параметров.
4. Способ по п. 1, в котором синтаксический элемент индикатора набора инструментальных средств, который включает в себя информацию, идентифицирующую инструментальные средства, которые требуются, чтобы декодировать поток битов, ассоциированный с конфигурационной записью, идентифицирует все инструментальные средства, которые требуются, чтобы декодировать поток битов, ассоциированный с конфигурационной записью.
5. Способ по п. 1, в котором конфигурационная запись форматируется в соответствии со стандартом фундаментального кодирования видео (EVC).
6. Способ по п. 1, в котором синтаксический элемент индикатора набора инструментальных средств сигнализируется в поле конфигурации информации формата файлов.
7. Способ по п. 1, в котором синтаксический элемент индикатора набора инструментальных средств содержит 32-битовое целочисленное значение без знака.
8. Способ по п. 7, в котором каждый из битов 32-битового целочисленного значения без знака соответствует уникальному инструментальному средству для декодирования потока битов.
9. Способ по п. 1, в котором конфигурационная запись для потока битов включает в себя синтаксический элемент профиля перед синтаксическим элементом индикатора набора инструментальных средств.
10. Способ по п. 1, в котором конфигурационная запись для потока битов включает в себя синтаксический элемент уровня перед синтаксическим элементом индикатора набора инструментальных средств.
11. Способ по п. 1, в котором конфигурационная запись для потока битов включает в себя синтаксический элемент формата сигналов цветности после синтаксического элемента индикатора набора инструментальных средств.
12. Способ по п. 1, в котором конфигурационная запись содержит данные уровня формата файлов, которые инкапсулируют кодированные на уровне уровня кодирования видео (VCL) мультимедийные данные в потоке битов видеоданных, при этом кодированные на VCL-уровне мультимедийные данные включают в себя один или несколько наборов параметров и, в котором каждое из инструментальных средств, идентифицированных в конфигурационной записи как требуемое, чтобы декодировать поток битов, активируется, по меньшей мере, в одном из одного или нескольких наборов параметров.
13. Устройство для обработки видеоданных, при этом устройство содержит:
- запоминающее устройство; и
- один или несколько процессоров, реализованных в схеме, подсоединенной к запоминающему устройству, и выполненных с возможностью:
- принимать конфигурационную запись для декодирования потока битов видеоданных, при этом конфигурационная запись для потока битов включает в себя синтаксический элемент индикатора набора инструментальных средств, который включает в себя информацию, идентифицирующую, из набора инструментальных средств декодирования видео, инструментальные средства, которые требуются, чтобы декодировать поток битов, ассоциированный с конфигурационной записью;
- на основе синтаксического элемента индикатора набора инструментальных средств определять, следует ли извлекать поток битов, ассоциированный с конфигурационной записью; и
- на основе определения извлекать поток битов, ассоциированный с конфигурационной записью, извлекать поток битов и выводить поток битов в видеодекодер для декодирования.
14. Устройство по п. 13, в котором один или более процессоров дополнительно выполнены с возможностью:
- принимать параметр типа многоцелевого расширения возможностей почты в сети Интернет (MIME), который включает в себя пару ключ/значение, при этом ключ указывает, что MIME-тип идентифицирует инструментальные средства декодирования видео, и значение идентифицирует инструментальные средства из инструментальных средств декодирования видео, которые требуются, чтобы декодировать поток битов.
15. Устройство по п. 13, в котором поток битов видеоданных содержит один или несколько наборов параметров, и в котором каждое из инструментальных средств, идентифицированных в конфигурационной записи как требуемое, чтобы декодировать поток битов, активируется, по меньшей мере, в одном из одного или нескольких наборов параметров.
16. Устройство по п. 13, в котором синтаксический элемент индикатора набора инструментальных средств, который включает в себя информацию, идентифицирующую инструментальные средства, которые требуются, чтобы декодировать поток битов, ассоциированный с конфигурационной записью, идентифицирует все инструментальные средства, которые требуются, чтобы декодировать поток битов, ассоциированный с конфигурационной записью.
17. Устройство по п. 13, в котором конфигурационная запись форматируется в соответствии со стандартом фундаментального кодирования видео (EVC).
18. Устройство по п. 13, в котором синтаксический элемент индикатора набора инструментальных средств сигнализируется в поле конфигурации информации формата файлов.
19. Устройство по п. 13, в котором синтаксический элемент индикатора набора инструментальных средств содержит 32-битовое целочисленное значение без знака.
20. Устройство по п. 19, в котором биты 32-битового целочисленного значения без знака соответствуют уникальному инструментальному средству для декодирования потока битов.
21. Устройство по п. 13, в котором конфигурационная запись для потока битов включает в себя синтаксический элемент профиля перед синтаксическим элементом индикатора набора инструментальных средств.
22. Устройство по п. 13, в котором конфигурационная запись для потока битов включает в себя синтаксический элемент уровня перед синтаксическим элементом индикатора набора инструментальных средств.
23. Устройство по п. 13, в котором конфигурационная запись для потока битов включает в себя синтаксический элемент формата сигналов цветности после синтаксического элемента индикатора набора инструментальных средств.
24. Устройство по п. 13, в котором конфигурационная запись содержит данные уровня формата файлов, которые инкапсулируют кодированные на уровне уровня кодирования видео (VCL) мультимедийные данные в потоке битов видеоданных, при этом кодированные на VCL-уровне мультимедийные данные включают в себя один или несколько наборов параметров и, в котором каждое из инструментальных средств, идентифицированных в конфигурационной записи как требуемое, чтобы декодировать поток битов, активируется, по меньшей мере, в одном из одного или нескольких наборов параметров.
25. Машиночитаемый носитель хранения данных, хранящий инструкции, которые при выполнении посредством одного или более процессоров, инструктируют одному или более процессоров:
- принимать конфигурационную запись для декодирования потока битов видеоданных, при этом конфигурационная запись для потока битов включает в себя синтаксический элемент индикатора набора инструментальных средств, который включает в себя информацию, идентифицирующую, из набора инструментальных средств декодирования видео, инструментальные средства, которые требуются, чтобы декодировать поток битов, ассоциированный с конфигурационной записью;
- на основе синтаксического элемента индикатора набора инструментальных средств определять, следует ли извлекать поток битов, ассоциированный с конфигурационной записью; и
- на основе определения извлекать поток битов, ассоциированный с конфигурационной записью, извлекать поток битов и выводить поток битов в видеодекодер для декодирования.
26. Машиночитаемый носитель хранения данных по п. 25, в котором инструкции инструктируют одному или более процессоров:
- принимать параметр типа многоцелевого расширения возможностей почты в сети Интернет (MIME), который включает в себя пару ключ/значение, при этом ключ указывает, что MIME-тип идентифицирует инструментальные средства декодирования видео, и значение идентифицирует инструментальные средства из инструментальных средств декодирования видео, которые требуются, чтобы декодировать поток битов.
27. Машиночитаемый носитель хранения данных по п. 25, в котором поток битов видеоданных содержит один или несколько наборов параметров, и в котором каждое из инструментальных средств, идентифицированных в конфигурационной записи как требуемое, чтобы декодировать поток битов, активируется, по меньшей мере, в одном из одного или нескольких наборов параметров.
28. Машиночитаемый носитель хранения данных по п. 25, в котором синтаксический элемент индикатора набора инструментальных средств, который включает в себя информацию, идентифицирующую инструментальные средства, которые требуются, чтобы декодировать поток битов, ассоциированный с конфигурационной записью, идентифицирует все инструментальные средства, которые требуются, чтобы декодировать поток битов, ассоциированный с конфигурационной записью.
29. Машиночитаемый носитель хранения данных по п. 25, в котором конфигурационная запись содержит данные уровня формата файлов, которые инкапсулируют кодированные на уровне уровня кодирования видео (VCL) мультимедийные данные в потоке битов видеоданных, при этом кодированные на VCL-уровне мультимедийные данные включают в себя один или несколько наборов параметров, и в котором каждое из инструментальных средств, идентифицированных в конфигурационной записи как требуемое, чтобы декодировать поток битов, активируется, по меньшей мере, в одном из одного или нескольких наборов параметров.
30. Оборудование для обработки видеопотока или видеофайла, причем оборудование содержит:
- средство для приема конфигурационной записи для декодирования потока битов видеоданных, при этом конфигурационная запись для потока битов включает в себя синтаксический элемент индикатора набора инструментальных средств, который включает в себя информацию, идентифицирующую, из набора инструментальных средств декодирования видео, инструментальные средства, которые требуются, чтобы декодировать поток битов, ассоциированный с конфигурационной записью;
- средство для определения, следует ли извлекать поток битов, ассоциированный с конфигурационной записью, на основе синтаксического элемента индикатора набора инструментальных средств;
- средство для извлечения потока битов на основе определения извлекать поток битов, ассоциированный с конфигурационной записью; и
- средство для вывода потока битов в видеодекодер для декодирования.
US 20180199071 A1, 12.07.2018 | |||
US 20140022343 A1, 23.01.2014 | |||
WO 2020005365 A1, 02.01.2020 | |||
ВЫВОД ИНФОРМАЦИИ ДВИЖЕНИЯ ДЛЯ ПОДБЛОКОВ ПРИ ВИДЕОКОДИРОВАНИИ | 2016 |
|
RU2705428C2 |
Авторы
Даты
2024-07-02—Публикация
2021-01-08—Подача