Синтаксис и семантика для буферизации информации с целью упрощения конкатенации видеоданных
Иллюстрации
Показать всеИзобретение относится к вычислительной технике. Технический результат заключается в упрощение операции конкатенации. Вычислительное устройство для кодирования видео содержит видеокодер, выполненный с возможностью осуществления операций, чтобы кодировать видео для видеопоследовательности, каковые операции включают в себя: установку дельта-значения задержки удаления из буфера кодированного изображения (CPBRD) для заданного блока доступа для текущего изображения видеопоследовательности, причем текущее изображение имеет сообщение с дополнительной расширяющей информацией (SEI) о периоде буферизации, относящееся к текущему изображению; установку значения флага для упомянутого заданного блока доступа; и сигнализирование дельта-значения CPBRD и значения флага для упомянутого заданного блока доступа в сообщении с SEI о периоде буферизации, относящемся к текущему изображению; и буфер, приспособленный хранить кодированное видео для вывода. 3 н. и 21 з.п. ф-лы, 18 ил.
Реферат
УРОВЕНЬ ТЕХНИКИ
Инженеры используют уплотнение (называемое также кодированием источника (исходника) или кодированием источника данных) для снижения скорости передачи цифровых видеоданных. Уплотнение снижает стоимость хранения и передачи видеоинформации путем преобразования информации в некоторую форму с более низкой скоростью передачи. Разуплотнение (называемое также декодированием) восстанавливает версию исходной информации из уплотненной формы. «Кодек» является системой кодера/декодера.
За последние два десятилетия были приняты различные стандарты видеокодеков, включая стандарты ITU-T H.261, H.262 (MPEG-2 или ISO/IEC 13818-2), H.263 и H.264 (MPEG-4 AVC или ISO/IEC 14496-10), а также стандарты MPEG-1 (ISO/IEC 11172-2), MPEG-4 Visual (ISO/IEC 14496-2) и SMPTE 421M (VC-1). Позднее был разработан стандарт HEVC (ITU-T H.265 или ISO/IEC 23008-2). Стандарт видеокодека обычно задает настройки для синтаксиса кодированного видеопотока, детализирующие параметры в потоке, когда конкретные признаки используются при кодировании и декодировании. Во многих случаях стандарт видеокодека также задает детали операций декодирования, которые декодер должен реализовывать для достижения при декодировании соответствующих результатов. Помимо стандартов кодеков, различные фирменные форматы кодеков задают другие настройки для синтаксиса кодированного видеопотока и соответствующих операций декодирования.
Один тип параметра в кодированном видеопотоке представляет собой задержку удаления из буфера кодированного изображения (“CPBRD”). Как правило, значение CPBRD для заданного изображения задает номинальное время, в которое кодированные данные, связанные с изображением, должны удаляться из буфера в декодере. Если кодированные данные для изображений удаляются в нужные моменты времени в соответствии с нормальными режимами работы, буфер декодера не переполняется (что может вызывать потерю кодированных данных) или недостаточно заполняется (что может приводить к «подергиваниям» или иному нарушению непрерывного воспроизведения). В режиме малой задержки недостаточное заполнение при некоторых обстоятельствах допустимо, но в режиме большой задержки (таком, как обычно используется для широкополосного вещания) недостаточное заполнение буфера не допускается. Модель буфера, условно именуемая гипотетическим эталонным декодером (“HRD”) или буферным видеоконтрольником (“VBV”), использует значения CPBRD и иные параметры, такие как значения скорости передачи, значения размера буфера и значения заполненности буфера или значения начальной задержки буферизации (перед началом воспроизведения), чтобы убедиться, что битовые потоки могут декодироваться в рамках ресурсов буферизации системы декодирования, и помочь декодеру определить временной режим и этапы выполнения его процесса декодирования.
Во многих случаях битовые потоки для различных видеопоследовательностей сращиваются друг с другом. Например, такая конкатенация может использоваться для введения в телевизионную программу рекламного объявления или серии рекламных объявлений, либо для переключения между различными телевизионными программами. Существующие подходы к сигнализации CPBRD могут привести к обременительным и потенциально сложным операциям во время конкатенации с целью корректировки значений CPBRD с учетом конкатенации. Еще одна проблема состоит в том, что хотя два исходных потока могут являться независимо согласующимися с HRD, после конкатенации результирующий сращенный поток не является гарантированно согласующимися с HRD.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Таким образом, в подробном описании представлены инновации в синтаксисе и/или семантике значений задержки удаления из буфера кодированного изображения (“CPBRD”), которые упрощают операции конкатенации. В частности, инновации поддерживают операции конкатенации посредством новых путей сигнализации значений CPBRD для определенных изображений, когда такие значения CPBRD могут попросту повторно использоваться, если битовый поток или часть битового потока для одной видеопоследовательности соединяется с другим битовым потоком или частью битового потока для другой видеопоследовательности.
В соответствии с одним аспектом описываемых в настоящем документе инноваций, видеокодер или иное средство устанавливает значение CPBRD для заданного изображения видеопоследовательности. Значение CPBRD для заданного изображения указывает на значение приращения относительно номинального времени удаления буфера кодированного изображения («СРВ») предыдущего изображения в порядке декодирования независимо от того, имеет ли предыдущее изображение сообщение с SEI о периоде буферизации (“SEI о BP”). При этом кодер или иное средство сигнализирует значение CPBRD для заданного изображения. Значение CPBRD может сигнализироваться в соответствии с однозначным подходом, при котором флаг указывает, как интерпретировать значение CPBRD, в соответствии с двухзначным подходом, при котором также сигнализируется еще одно значение CPBRD (имеющее другую интерпретацию), в соответствии с двухзначным подходом, в котором используются флаг и дельта-значение, или в соответствии с иным методом.
В соответствии с еще одним аспектом описываемых в настоящем документе инноваций, видеодекодер или иное средство принимает значение CPBRD для заданного изображения видеопоследовательности. Значение CPBRD для заданного изображения указывает на значение приращения относительно номинального времени удаления СРВ предыдущего изображения в порядке декодирования независимо от того, имеет ли предыдущее изображение сообщение с SEI о BP. При этом кодер или иное средство проводит синтаксический анализ значения CPBRD для заданного изображения. Значение CPBRD может сигнализироваться в соответствии с однозначным подходом, при котором флаг указывает, как интерпретировать значение CPBRD, в соответствии с двухзначным подходом, при котором также сигнализируется еще одно значение CPBRD (имеющее другую интерпретацию), в соответствии с двухзначным подходом, в котором используются флаг и дельта-значение, или в соответствии с иным подходом.
В соответствии с еще одним аспектом описываемых в настоящем документе инноваций, средство конкатенации принимает, по меньшей мере, часть первого битового потока для первой видеопоследовательности и, кроме того, принимает, по меньшей мере, часть второго битового потока для второй видеопоследовательности. Значение CPBRD для заданного изображения второй видеопоследовательности указывает на значение приращения относительно номинального времени удаления СРВ предыдущего изображения в порядке декодирования независимо от того, имеет ли предыдущее изображение сообщение с SEI о BP. Средство конкатенации сращивает, по меньшей мере, часть второй видеопоследовательности, по меньшей мере, с частью первой видеопоследовательности. В ходе конкатенации средство конкатенации соединяет всю вторую видеопоследовательность или ее часть, начиная с заданного изображения, с указанной, по меньшей мере, частью первой видеопоследовательности. Значение CPBRD может сигнализироваться в соответствии с однозначным подходом, при котором флаг указывает, как интерпретировать значение CPBRD, в соответствии с двухзначным подходом, при котором также сигнализируется еще одно значение CPBRD (имеющее другую интерпретацию), в соответствии с двухзначным подходом, в котором используются флаг и дельта-значение, или в соответствии с иным подходом.
Кодирование, декодирование и конкатенация могут быть реализованы как часть способа, как часть вычислительного устройства, выполненного с возможностью осуществления способа, или как часть материального машиночитаемого носителя информации, хранящего выполняемые компьютером команды, инициирующие осуществление способа вычислительным устройством.
Вышеописанные и прочие цели, признаки и преимущества изобретения станут более понятными из нижеследующего подробного описания, которое приводится со ссылкой на прилагаемые чертежи.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1 представляет собой схему примера вычислительной системы, в которой могут быть реализованы некоторые описываемые варианты осуществления.
Фиг. 2а и 2b представляют собой схемы примеров сетевых сред, в которых могут быть реализованы некоторые описываемые варианты осуществления.
Фиг. 3 представляет собой схему примера системы кодера, с использованием которой могут быть реализованы некоторые описываемые варианты осуществления.
Фиг. 4 представляет собой схему примера системы декодера, с использованием которой могут быть реализованы некоторые описываемые варианты осуществления.
Фиг. 5 представляет собой схему, иллюстрирующую пример видеокодера, с использованием которого могут быть реализованы некоторые описываемые варианты осуществления.
Фиг. 6 представляет собой схему, иллюстрирующую пример видеодекодера, с использованием которого могут быть реализованы некоторые описываемые варианты осуществления.
Фиг. 7 представляет собой схему, иллюстрирующую операцию конкатенации в соответствии с предшествующими методами корректировки значений CPBRD.
Фиг. 8 и 9 представляют собой таблицы, иллюстрирующие синтаксис для однозначного подхода к сигнализации значений CPBRD.
Фиг. 10 представляет собой график, иллюстрирующий заполненность буфера при сращивании двух битовых потоков.
Фиг. 11 представляет собой таблицу, иллюстрирующую синтаксис для двухзначного подхода к сигнализации значений CPBRD с использованием флага и дельта-значения.
Фиг. 12 представляют собой структурную схему, иллюстрирующую обобщенный метод установки значений CPBRD во время кодирования для упрощения конкатенации видеоданных.
Фиг. 13 представляет собой структурную схему, иллюстрирующую пример метода установки значений CPBRD во время кодирования для упрощения конкатенации видеоданных в соответствии с однозначным подходом.
Фиг. 14 представляет собой структурную схему, иллюстрирующую обобщенный метод обработки значений CPBRD во время декодирования.
Фиг. 15 представляет собой структурную схему, иллюстрирующую пример метода определения значений CPBRD во время декодирования в соответствии с однозначным подходом.
Фиг. 16 представляет собой структурную схему, иллюстрирующую обобщенный метод конкатенации битовых потоков.
Фиг. 17 представляет собой структурную схему, иллюстрирующую пример метода установки значений CPBRD во время кодирования для упрощения конкатенации видеоданных в соответствии с двухзначным подходом с использованием флага и дельта-значения.
Фиг. 18 представляет собой структурную схему, иллюстрирующую пример метода определения значений CPBRD во время декодирования в соответствии с двухзначным подходом с использованием флага и дельта-значения.
ПОДРОБНОЕ ОПИСАНИЕ
В подробном описании представлены различные подходы к улучшению поддержки операций конкатенации путем корректировки синтаксиса и/или семантики значений задержки удаления из буфера кодированного изображения (“CPBRD”). Во многих случаях эти подходы устраняют недостатки предыдущих подходов. В частности, в подробном описании представлены инновации для синтаксиса и семантики значений CPBRD, сигнализируемых в типах сообщений с дополнительной расширяющей информацией (“SEI”) в стандарте HEVC или в стандарте H.264/AVC. В различных примерах синтаксис и/или семантика сообщений с SEI о периоде буферизации (“SEI о BP”) и/или сообщений с SEI о временном режиме изображений (“SEI о PT”) корректируется для обеспечения операций конкатенации.
Несмотря на то, что описываемые в настоящем документе операции иногда описываются как выполняемые кодером (например, видеокодером), декодером (например, видеодекодером) или средством конкатенации (например, средством конкатенации видеоданных), во многих случаях эти операции могут в качестве альтернативы выполняться другим типом средства обработки мультимедийной информации.
Некоторые из инноваций, описываемых в настоящем документе, иллюстрируются применительно к элементам и операциям синтаксиса, типичным для стандарта HEVC. Например, упоминается проект JCTVC-K1003 стандарта HEVC - «Проект 9 текстового описания Высокоэффективного кодирования видеосигналов (HEVC)», JCTVC-K1003_d13, 11-е заседание, Шанхай, 10-19 октября, 2012 г. Описываемые в настоящем документе инновации могут также быть реализованы для других стандартов или форматов, например, стандарта H.264/AVC.
В общем, возможны различные альтернативы примерам, описываемым в настоящем документе. Например, некоторые из способов, описываемых в настоящем документе, могут быть изменены путем изменения последовательности описываемых действий способа, путем разделения, повторения или исключения некоторых действий способа и т.д. Различные аспекты рассматриваемой технологии могут использоваться в совокупности или по отдельности. Различные варианты осуществления используют одну или более из описываемых инноваций. Некоторые из инноваций, описываемых в настоящем документе, решают одну или более проблем, отмеченных при описании уровня техники. Как правило, отдельно взятый метод/средство не решает все указанные проблемы.
I. Примеры вычислительных систем
Фиг. 1 иллюстрирует обобщенный пример применимой вычислительной системы (100), в которой могут быть реализованы некоторые из описанных инноваций. Вычислительная система (100) не предполагает какого-либо ограничения в отношении области применения или функциональных возможностей, поскольку указанные инновации могут быть реализованы в различных универсальных или специализированных вычислительных системах.
В соответствии с Фиг. 1, вычислительная система (100) содержит одно или более устройств (110, 115) обработки и память (120, 125). Устройства (110, 115) обработки выполняют выполняемые компьютером команды. Устройство обработки представляет собой универсальный центральный процессор (“CPU”), специализированную интегральную схему (“ASIC”) или любой иной тип процессора. В мультипроцессорной системе множество устройств обработки выполняет выполняемые компьютером команды для повышения вычислительной мощности. Например, на Фиг. 1 показан центральный процессор (110), а также устройство графической обработки или устройство (115) совместной обработки. Материальная память (120, 125) может представлять собой энергозависимую память (например, регистры, кэш, оперативное запоминающее устройство (ОЗУ)), энергонезависимую память (например, постоянное запоминающее устройство (ПЗУ), электрически-стираемое программируемое постоянное запоминающее устройство (ЭСППЗУ), флэш-память и т.д.) или некоторые комбинации обоих, доступные для устройства (устройств) обработки. Память (120, 125) хранит программные средства (180), реализующие одну или более инноваций, для кодирования, декодирования и/или конкатенации видеоданных с использованием синтаксиса и семантики для значений CPBRD, которые упрощают конкатенацию видеоданных, в форме выполняемых компьютером команд, применимых для выполнения устройством (устройствами) обработки.
Вычислительная система может иметь дополнительные признаки. Например, вычислительная система (100) содержит накопитель (140), одно или более устройств (150) ввода, одно или более устройств (160) вывода и одно или более коммуникационных соединений (170). Механизм межсоединений (не показан), такой как шина, контроллер или сеть, соединяет компоненты вычислительной системы (100). Как правило, операционная система (не показана) обеспечивает операционную среду для других программных средств, выполняемых в вычислительной системе (100), и координирует операции компонентов вычислительной системы (100).
Материальный накопитель (140) может быть съемным или несъемным и включает в себя магнитные диски, магнитные ленты или кассеты, постоянные запоминающие устройства на компакт-дисках (CD-ROM), цифровые видеодиски (DVD) или любой иной носитель, который может использоваться для хранения информации и который может быть доступным в вычислительной системе (100). Накопитель (140) хранит команды для программных средств (180), реализующие одну или более инноваций, для кодирования, декодирования и/или конкатенации видеоданных с использованием синтаксиса и семантики для значений CPBRD, которые упрощают конкатенацию видеоданных.
Устройство (устройства) (150) ввода может представлять собой сенсорное устройство ввода, такое как клавиатура, мышь, перо, либо трекбол, устройство речевого ввода, сканирующее устройство, либо иное устройство, которое обеспечивает ввод в вычислительную систему (100). Для кодирования видеоданных устройство (устройства) (150) ввода может представлять собой камеру, видеоадаптер, адаптер ТВ-тюнера, либо подобное устройство, которое принимает входные видеоданные в аналоговой или цифровой форме, либо CD-ROM или компакт-диск с многократной записью (CD-RW), который передает входные видеоданные в вычислительную систему (100). Устройство (устройства) (160) вывода может представлять собой дисплей, принтер, громкоговоритель, устройство записи компакт-дисков, либо иное устройство, которое обеспечивает вывод из вычислительной системы (100).
Коммуникационное соединение (соединения) (170) обеспечивает связь в среде передачи данных с другим вычислительным объектом. Среда передачи данных передает информацию, такую как выполняемые компьютером команды, входные или выходные аудиоданные или видеоданные, либо иные данные в модулированном информационном сигнале. Модулированный информационный сигнал представляет собой сигнал, одна или более характеристик которого задаются или изменяются таким образом, чтобы кодировать информацию в сигнале. В качестве примера, а не ограничения, среда передачи данных может использовать электрическую, оптическую, радиочастотную (РЧ) или иную несущую.
Инновации могут описываться в общем контексте машиночитаемых носителей. Машиночитаемые носители представляют собой любые материальные носители, доступ к которым может осуществляться в вычислительной среде. В качестве примера, а не ограничения, в вычислительной системе (100) машиночитаемые носители включают в себя память (120, 125), накопитель (140) и комбинации любого из перечисленного.
Инновации могут описываться в общем контексте выполняемых компьютером команд, например, входящих в программные модули и выполняемых в вычислительной системе в целевом реальном или виртуальном процессоре. Как правило, программные модули включают в себя подпрограммы, программы, библиотеки, объекты, классы, компоненты, структуры данных и т.д., которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. В различных вариантах осуществления функциональные возможности программных модулей могут быть по желанию объединены или разделены между программными модулями. Выполняемые компьютером команды для программных модулей могут выполняться в локальной или распределенной вычислительной системе.
Термины «система» и «устройство» используются в настоящем документе как синонимы. Если в контексте явно не указано иное, ни один из двух терминов не предполагает какого-либо ограничения типа вычислительной системы или вычислительного устройства. Как правило, вычислительная система или вычислительное устройство может быть локальным или распределенным и может включать в себя любую комбинацию специализированных аппаратных средств и/или универсальных аппаратных средств с использованием программных средств, реализующих описываемые в настоящем документе функциональные возможности.
Описываемые способы могут также быть реализованы с помощью специализированной вычислительной техники, выполненной с возможностью осуществления любых из описываемых способов. Например, описываемые способы могут быть реализованы с помощью интегральной схемы (например, специализированной интегральной схемы (“ASIC”), такой как цифровой сигнальный процессор (“DSP”) ASIC, графический процессор (“GPU”) или программируемое логическое устройство (“PLD”), такое как программируемая пользователем вентильная матрица (“FPGA”)), специально предназначенной для реализации или выполненной с возможностью реализации любого из описываемых способов.
С целью представления в подробном описании используются такие термины, как «определять» и «использовать» для описания компьютерных операций в вычислительной системе. Эти термины являются высокоуровневыми абстракциями для операций, выполняемых компьютером, и их не следует путать с действиями, выполняемыми человеком. Реальные компьютерные операции, соответствующие этим терминам, варьируются в зависимости от реализации.
II. Примеры сетевых сред
На Фиг. 2а и 2b приведены примеры сетевых сред (201, 202), которые включают в себя видеокодеры (220) и видеодекодеры (270). Кодеры (220) и декодеры (270) соединяются по сети (250) с помощью соответствующего протокола передачи данных. Сеть (250) может включать в себя Интернет или иную компьютерную сеть.
В сетевой среде (201), изображенной на Фиг. 2а, каждое средство (210) передачи в реальном времени (“RTC”) содержит как кодер (220), так и декодер (270) для двусторонней связи. Отдельно взятый кодер (220) может обеспечивать выходную информацию, совместимую со стандартом SMPTE 421M, стандартом ISO/IEC 14496-10 (называемым также Н.264 или AVC), стандартом HEVC (называемым также Н.265), иным стандартом, либо фирменным форматом, при этом соответствующий декодер (270) принимает кодированные данные от кодера (220). Двусторонняя связь может являться частью видеоконференции, видеотелефонного разговора или иного сценария двусторонней или многосторонней связи. Несмотря на то, что сетевая среда (201) на Фиг. 2 включает в себя два средства (210) передачи в реальном времени, сетевая среда (201) может вместо этого включать в себя три или более средств (210) передачи в реальном времени, которые участвуют в многосторонней связи.
Средство (210) передачи в реальном времени управляет кодированием с помощью кодера (220). На Фиг. 3 приведен пример системы (300) кодера, которая может быть включена в состав средства (210) передачи в реальном времени. В качестве альтернативы в средстве (210) передачи в реальном времени используется иная система кодера. Средство (210) передачи в реальном времени управляет также декодированием с помощью декодера (270). На Фиг. 4 приведен пример системы (400) декодера, которая может быть введена в состав средства (210) передачи в реальном времени. В качестве альтернативы в средстве (210) передачи в реальном времени используется иная система декодера.
В сетевой среде (202), изображенной на Фиг. 2b, средство (212) кодирования содержит кодер (220), который кодирует видеоданные для передачи на множество средств (214) воспроизведения, содержащих декодеры (270). Односторонняя связь может обеспечиваться для системы видеонаблюдения, системы контроля с веб-камерой, доклада при проведении компьютерной конференц-связи с удаленным рабочим столом или иного сценария, в котором видеоинформация кодируется и отправляется из одного местоположения в одно или более других местоположений. Несмотря на то, что сетевая среда (202) на Фиг. 2b содержит два средства (214) воспроизведения, сетевая среда (202) может содержать больше или меньше средств (214) воспроизведения. Как правило, средство (214) воспроизведения связывается со средством (212) кодирования для определения потока видеоданных для приема средством (214) воспроизведения. Средство (214) воспроизведения принимает поток, буферизует принимаемые кодированные данные для соответствующего периода и начинает декодирование и воспроизведение.
На Фиг. 3 приведен пример системы (300) кодера, которая может быть включена в состав средства (212) кодирования. В качестве альтернативы средство (212) кодирования использует другую систему кодера. Средство (212) кодирования может также включать в себя серверную логическую схему контроллера для управления соединениями с одним или более средств (214) воспроизведения. На Фиг. 4 приведен пример системы (400) декодера, которая может быть включена в состав средства (214) воспроизведения. В качестве альтернативы средство (214) воспроизведения использует другую систему декодера. Средство (214) воспроизведения может также включать в себя клиентскую логическую схему контроллера для управления соединениями со средством (212) кодирования.
Сетевая среда (201), изображенная на Фиг. 2а, может включать в себя множество средств RTC с множеством кодеров. Сетевая среда (202), изображенная на Фиг. 2b, может включать в себя множество средств кодирования с множеством кодеров. Такие кодеры могут выдавать множество выходных битовых потоков, которые сращиваются средством конкатенации в единый битовый поток. Либо один кодер может выдавать множество битовых потоков, которые сращиваются средством конкатенации в единый битовый поток.
III. Примеры систем кодера
Фиг. 3 представляет собой блок-схему примера системы (300) кодера, с использованием которой могут быть реализованы некоторые описываемые варианты осуществления. Система (300) кодера может представлять собой универсальное средство кодирования, способное работать в любом из множества режимов кодирования, таких как режим кодирования с малой задержкой для передачи в реальном времени, режим транскодирования и режим кодирования с большой задержкой для создания мультимедийной информации для воспроизведения из файла или потока, либо она может представлять собой специализированное средство кодирования, приспособленное для одного такого режима кодирования. Система (300) кодера может быть реализована в виде модуля операционной системы, в составе библиотеки прикладных программ или в виде автономного приложения. В общем и целом, система (300) кодера принимает последовательность исходных видеокадров (311) от источника (310) видеоинформации и выдает кодированные данные в качестве выходной информации в канал (390). Кодированные данные, выдаваемые в канал, могут содержать элементы синтаксиса, которые указывают на значения CPBRD для изображений, а также элементы синтаксиса, которые указывают, как должны интерпретироваться значения CPBRD.
Источником (310) видеоинформации может являться камера, адаптер тюнера, носитель информации или иной источник цифровой видеоинформации. Источник (310) видеоинформации выдает последовательность видеокадров с частотой кадров, например, 30 кадров в секунду. Используемый в настоящем документе термин «кадр» обычно относится к исходным, кодированным или восстановленным видеоданным. Для видеоинформации с прогрессивной разверткой кадр представляет собой кадр видеоинформации с прогрессивной разверткой. Для чересстрочной видеоинформации в примерах осуществления в кадре чересстрочной видеоинформации перед кодированием устраняется чересстрочная развертка. В качестве альтернативы два сопряженных поля чересстрочной видеоинформации кодируются вместе в виде единого видеокадра или кодируются в виде отдельно кодируемых полей. Помимо обозначения кадра видеоинформации с прогрессивной разверткой или кадра видеоинформации с чересстрочной разверткой термин «кадр» или «изображение» может обозначать единое непарное поле видеоинформации, сопряженную пару полей видеоинформации, плоскость объекта видеоинформации, которая представляет собой объект видео в определенный момент времени, или представляющий интерес участок в более крупном изображении. Плоскость объекта или участок видеоинформации может входить в более крупное изображение, которое содержит множество объектов или участков сцены.
Поступающий исходный кадр (311) сохраняется в области (320) хранения временной памяти исходных кадров, которая содержит множество областей (321, 322, …, 32n) хранения кадровых буферов. Кадровый буфер (321, 322 и т.д.) хранит один исходный кадр в области (320) хранения исходных кадров. После того, как один или более исходных кадров (311) сохраняются в кадровых буферах (321, 322 и т.д.), селектор (330) кадров выбирает отдельный исходный кадр из области (320) хранения исходных кадров. Порядок, в котором кадры выбираются селектором (330) кадров для ввода в кодер (340), может отличаться от порядка, в котором кадры выдаются источником (310) видеоинформации, например, кодирование некоторых кадров может задерживаться в порядке следования для обеспечения кодирования некоторых более поздних кадров в первую очередь и посредством этого временного обеспечения обратного предсказания. Перед кодером (340) система (300) кодера может содержать препроцессор (не показан), который выполняет предварительную обработку (например, фильтрацию) выбранного кадра (331) перед кодированием. Предварительная обработка может также включать в себя преобразование пространства цветов в первичные (например, яркость) и вторичные (например, смещения цветности в сторону красного цвета и в сторону синего цвета) компоненты и передискретизацию (например, для уменьшения пространственного разрешения компонентов цветности) для кодирования.
Кодер (340) кодирует выбранный кадр (331) для получения кодированного кадра (341) и, кроме того, выдает сигналы (342) операции управления распределением памяти (“MMCO”) или информацию о наборе эталонных изображений (“RPS”). Если текущий кадр не является первым кодированным кадром при осуществлении процесса кодирования, кодер (340) может использовать один или более из ранее кодированных/декодированных кадров (369), которые сохранялись в области (360) хранения временной памяти декодированных кадров. Такие декодированные кадры (369) используются в качестве эталонных кадров для межкадрового предсказания контента текущего исходного кадра (331). Информация (342) MMCO/RPS указывает декодеру, какие восстановленные кадры могут использоваться в качестве эталонных кадров и, следовательно, должны сохраняться в области хранения кадров.
Как правило, кодер (340) содержит множество модулей кодирования, которые выполняют задачи кодирования, такие как оценка и компенсация движения, частотные преобразования, квантование и энтропийное кодирование. Конкретные операции, выполняемые кодером (340), могут варьироваться в зависимости от формата сжатия. Форматом выходных кодированных данных может являться видеоформат Windows Media, формат VC-1, формат MPEG-x (например, MPEG-1, MPEG-2 или MPEG-4), формат Н.26х (например, Н.261, Н.262, Н.263, Н.264), формат HEVC (Н.265) или иной формат.
Например, в кодере (340) полученный с помощью межкадрового кодирования и предсказания кадр представлен с учетом предсказания по эталонным кадрам. Блок оценки движения оценивает движение наборов выборок исходного кадра (331) относительно одного или более эталонных кадров (369). Набор выборок может представлять собой макромассив (macroblock), суб-макромассив (sub-macroblock) или раздел суб-макромассива (как в стандарте Н.264), либо он может представлять собой блок дерева кодирования или блок предсказания (как в стандарте HEVC). Как правило, используемый в настоящем документе термин «массив» означает набор выборок, который может представлять собой одну двумерную (“2D”) матрицу или множество 2D матриц (например, одну матрицу для компоненты яркости и две матрицы для компонент цветности). При использовании множества эталонных кадров указанное множество эталонных кадров может быть получено по различным временным направлениям или одному и тому же временному направлению. Блок оценки движения выдает информацию о движении, такую как информация о векторе движения, которая подвергается энтропийному кодированию. Блок компенсации движения применяет векторы движения к эталонным кадрам для определения значений предсказания с учетом компенсации движения для межкадрового предсказания. Кодер определяет различия (при их наличии) между значениями предсказания с учетом компенсации движения блока и соответствующими исходными значениями. Эти остаточные значения предсказания дополнительно кодируются с помощью частотного преобразования, квантования и энтропийного кодирования. Например, кодер (340) устанавливает значения для параметра квантования (“QP”) яркости и QP цветности для изображения, фрагмента и/или иной части видеоинформации и в соответствии с этим квантует коэффициенты преобразования. Аналогичным образом, для внутрикадрового предсказания кодер (340) может определять значения внутреннего предсказания для блока, определять остаточные значения предсказания и кодировать остаточные значения предсказания (с частотным преобразованием, квантованием и энтропийным кодированием). В частности, энтропийный кодер кодера (340) уплотняет значения квантованного коэффициента преобразования, а также определенную побочную информацию (например, информацию о векторе движения, значения QP, выбранные режимы, выбранные параметры). Типичные методы энтропийного кодирования включают в себя Экспоненциальное кодирование Голомба, кодирование Голомба-Райса, арифметическое кодирование, кодирование по методу Хаффмена, кодирование длин серий, перекодирование неравномерного кода в неравномерный (“V2V”), перекодирование неравномерного кода в равномерный (“V2F”), кодирование по методу Лемпела-Зива (“LZ”), словарное кодирование, энтропийное кодирование с разбиением интервала вероятности (“PIPE”) и комбинации перечисленного. Энтропийный кодер может использовать различные методы кодирования для различных видов информации, может применять множество методов вместе (например, путем применения кодирования Голомба-Райса с последующим арифметическим кодированием) и может выбирать среди множества таблиц кодов в рамках конкретного метода кодирования.
Кодированные кадры (341) и информация (342) MMCO/RPS (или информация, эквивалентная информации (342) MMCO/RPS, поскольку зависимости и структуры упорядочения для кадров уже известны в кодере (340)) обрабатываются эмулятором (350) процесса декодирования. Эмулятор (350) процесса декодирования реализует некоторые из функциональных возможностей декодера, например, задачи декодирования по восстановлению эталонных кадров, которые используются кодером (340) при оценке и компенсации движения. Способом, согласующимся с информацией (342) MMCO/RPS, эмулятор (350) процесса декодирования определяет, необходимо ли восстанавливать отдельно взятый кодированный кадр (341) и сохранять его для использования в качестве эталонного кадра при межкадровом предсказании последующих кодируемых кадров. Если кодированный кадр (341) необходимо сохранять, эмулятор (350) процесса декодирования моделирует процесс декодирования, осуществляемый декодером, который принимает кодированный кадр (341) и выдает соответствующий декодированный кадр (351). При этом, если кодер (340) использовал декодированный кадр (кадры) (369), который был сохранен в области (360) хранения декодированных кадров, эмулятор (350) процесса декодирования также использует декодированный кадр (кадры) (369) из области (360) хранения в ходе процесса декодирования.
Область (360) хранения временной памяти декодированных кадров содержит множество областей (361, 362, …, 36n) хранения кадровых буферов. Способом, согласующимся с информацией (342) MMCO/RPS, эмулятор (350) процесса декодирования управляет содержимым области (360) хранения с целью отождествления любых кадровых буферов (361, 362 и т.д.) с кадрами, которые больше не нужны кодеру (340) для использования в качестве эталонных кадров. После моделирования процесса декодирования эмулятор (350) процесса декодирования сохраняет вновь декодированный кадр (351) в кадровом буфере (361, 362 и т.д.), который был отождествлен таким образом.
Кодер (340) устанавливает значения CPBRD для изображений, которые кодируются в соответствии со спецификацией модели буферного потока (например, гипотетического эталонного декодера (“HRD”) или буферного видеоконтрольника (“VBV”)). Таким образом, кодер (340) накладывает ограничения на флуктуации скорости передачи данных для битового потока, чтобы обеспечивать возможность декодирования битового потока в рамках ресурсов буферизации системы декодирования. Кодер (340) также устанавливает значения CPBRD, чтобы помочь декодеру определить временной режим и этапы для выполнения своего процесса декодирования.
Кодированные кадры (341) и информация (342) MMCO/RPS (или информация, эквивалентная информации MMCO/RPS) также буферизуются во временной области (370) кодированных данных. Кодированные данные, которые агрегируются в области (370) кодированных данных, содержат - в составе синтаксиса элементарного кодированного битового потока видеоинформации - кодированные данные для одного или более изображений. Кодированные данные, которые агрегируются в области (370) кодированных данных, м