АДАПТИВНОЕ ПОВЫШЕНИЕ ДИСКРЕТИЗАЦИИ ДЛЯ МАСШТАБИРУЕМОГО КОДИРОВАНИЯ ВИДЕО
ADAPTIVE INCREASE OF DIGITISATION FOR SCALED CODING OF VIDEO

Данная заявка притязает на приоритет предварительной заявки на патент (США) номер 60/884099, поданной 9 января 2007 года, и предварительной заявки на патент (США) номер 60/888912, поданной 8 февраля 2007 года. Все содержимое обеих предварительных заявок содержится в данном документе по ссылке.
Область техники, к которой относится изобретение
Данное раскрытие сущности относится к кодированию цифрового видео, а более конкретно к технологиям масштабируемого кодирования видео (SVC), которые предоставляют пространственную масштабируемость.
Уровень техники
Возможности цифрового видео могут быть встроены в широкий диапазон устройств, включая цифровые телевизоры, системы цифрового прямого вещания, устройства беспроводной связи, беспроводные широковещательные системы, персональные цифровые устройства (PDA), дорожные или настольные компьютеры, цифровые камеры, цифровые записывающие устройства, устройства видеоигр, консоли видеоигр, сотовые или спутниковые радиотелефоны и т.п. Цифровые видеоустройства могут реализовывать технологии сжатия видео на основе блоков, такие как задаваемые посредством стандартов MPEG-2, MPEG-4, ITU-T H.261, H.263 или H.264/MPEG-4, часть 10, усовершенствованное кодирование видео (AVC), для того чтобы более эффективно передавать и принимать цифровое видео. Технологии сжатия видеоизображений выполняют пространственное и временное прогнозирование для того, чтобы уменьшать или удалять избыточность, присутствующую в видеопоследовательностях.
Пространственное прогнозирование уменьшает избыточность между соседними видеоблоками в рамках данного видеокадра. Временное прогнозирование, также известное как оценка и компенсация движения, уменьшает временную избыточность между видеоблоками в предшествующих и/или последующих видеокадрах видеопоследовательности. Для временного прогнозирования видеокодер выполняет оценку движения для того, чтобы отслеживать перемещение совпадающих видеоблоков между двумя или более смежными кадрами. Векторы движения указывают смещение видеоблоков относительно соответствующих прогнозных видеоблоков в одном или более опорных кадров. Компенсация движения использует вектор движения для того, чтобы формировать прогнозный видеоблок из опорного кадра. Остаточный видеоблок формируется посредством вычитания прогнозного видеоблока из исходного видеоблока, который должен быть кодирован. Остаточный видеоблок может быть отправлен в видеодекодер наряду с вектором движения, и декодер может использовать эту информацию для того, чтобы восстанавливать исходный видеоблок или приближение исходного видеоблока. Видеокодер может применять процессы преобразования, квантования и энтропийного кодирования для того, чтобы дополнительно уменьшать скорость передачи битов, связанную с остаточным блоком.
Определенное кодирование видео использует технологии масштабируемого кодирования, которые могут быть особенно желательными для беспроводной передачи видеоданных. В общем, масштабируемое кодирование видео (SVC) упоминается как кодирование видео, при котором видеоданные представляются посредством базового слоя и одного или более улучшающих слоев. Для SVC, базовый слой типично переносит видеоданные с базовым пространственным, временным уровнем и/или уровнем отношения "сигнал-шум" (SNR). Один или более улучшающих слоев переносят дополнительные видеоданные, чтобы поддерживать более высокие пространственные, временные уровни и/или уровни SNR.
Для пространственной масштабируемости улучшающие слои добавляют пространственное разрешение в кадры базового слоя. В системах SVC, которые поддерживают пространственную масштабируемость, межслойное прогнозирование может использоваться для того, чтобы уменьшать объем данных, требуемых для того, чтобы передавать улучшающий слой. В межслойном прогнозировании видеоблоки улучшающего слоя могут быть кодированы с использованием прогнозирующих технологий, которые аналогичны оценке движения и компенсации движения. В частности, остаточные блоки видеоданных улучшающего слоя могут быть кодированы с использованием опорных блоков в базовом слое. Тем не менее, базовые и улучшающие слои имеют различные пространственные разрешения. Следовательно, видеоданные базового слоя могут быть подвергнуты повышению дискретизации до пространственного разрешения видеоданных улучшающего слоя, к примеру, чтобы формировать опорные блоки для формирования остаточных данных улучшающего слоя.
Раскрытие изобретения
В общем, это раскрытие сущности описывает адаптивные технологии для повышения дискретизации видеоданных базового слоя, чтобы кодировать видеоданные улучшающего слоя для пространственной масштабируемости. Например, видеоданные базового слоя (к примеру, остаточные видеоблоки базового слоя) могут быть подвергнуты повышению дискретизации до более высокого разрешения, и данные после повышающей дискретизации могут использоваться для того, чтобы кодировать видеоданные улучшающего слоя. Как часть процесса повышения дискретизации технологии этого раскрытия сущности идентифицируют условия, при которых повышение дискретизации посредством интерполяции может быть предпочтительно, и другие ситуации, при которых повышение дискретизации посредством так называемых технологий копирования ближайшего соседа может быть предпочтительно. Следовательно, чтобы кодировать данные улучшающего слоя, технологии интерполяции и копирования ближайшего соседа могут использоваться для повышения дискретизации данных базового слоя на адаптивной основе.
Согласно определенным аспектам этого раскрытия сущности либо интерполяция, либо копирование ближайшего соседа могут использоваться для того, чтобы задавать данные после повышающей дискретизации, которые могут использоваться как опорные блоки при кодировании видеоданных улучшающего слоя. В частности, решение о том, следует выполнять интерполяцию или копирование ближайшего соседа, может быть основано на том, соответствует или нет пиксел после повышающей дискретизации граничной позиции пиксела в улучшающем слое. Вместо учета только позиций пикселов базового слоя при определении того, следует интерполировать или использовать копирование ближайшего соседа для повышения дискретизации, технологии, описанные в этом раскрытии сущности, могут учитывать позиции пикселов после повышающей дискретизации относительно границ блоков в улучшающем слое. Границы блоков в улучшающем слое могут отличаться от границ блоков базового слоя.
В одном примере это раскрытие сущности предоставляет способ для кодирования видеоданных с пространственной масштабируемостью. Способ содержит формирование видеоданных после повышающей дискретизации на основе видеоданных базового слоя, причем видеоданные после повышающей дискретизации соответствуют пространственному разрешению видеоданных улучшающего слоя, и кодирование видеоданных улучшающего слоя на основе видеоданных после повышающей дискретизации, при этом формирование видеоданных после повышающей дискретизации включает в себя интерполяцию значений для одной или более позиций пикселов видеоданных после повышающей дискретизации, которые соответствуют позициям между различными видеоблоками базового слоя, заданными в видеоданных базового слоя.
В другом примере это раскрытие сущности предоставляет устройство, которое кодирует видеоданные с пространственной масштабируемостью, причем устройство выполнено с возможностью формировать видеоданные после повышающей дискретизации на основе видеоданных базового слоя, причем видеоданные после повышающей дискретизации соответствуют пространственному разрешению видеоданных улучшающего слоя, и кодировать видеоданные улучшающего слоя на основе видеоданных после повышающей дискретизации, при этом устройство интерполирует значения для одной или более позиций пикселов видеоданных после повышающей дискретизации, которые соответствуют позициям между различными видеоблоками базового слоя, заданными в видеоданных базового слоя.
В другом примере это раскрытие сущности предоставляет устройство для кодирования видеоданных с пространственной масштабируемостью, причем устройство содержит средство формирования видеоданных после повышающей дискретизации на основе видеоданных базового слоя, причем видеоданные после повышающей дискретизации соответствуют пространственному разрешению видеоданных улучшающего слоя, и средство кодирования видеоданных улучшающего слоя на основе видеоданных после повышающей дискретизации, при этом средство формирования видеоданных после повышающей дискретизации включает в себя средство интерполяции значений для одной или более позиций пикселов видеоданных после повышающей дискретизации, которые соответствуют позициям между различными видеоблоками базового слоя, заданными в видеоданных базового слоя.
Технологии, описанные в данном раскрытии сущности, могут быть реализованы в аппаратных средствах, программном обеспечении, микропрограммном обеспечении или в любой их комбинации. Если реализованы в программном обеспечении, программное обеспечение может выполняться в процессоре, таком как микропроцессор, специализированная интегральная схема (ASIC), программируемая пользователем вентильная матрица (FPGA) или процессор цифровых сигналов (DSP). Программное обеспечение, которое выполняет технологии, может быть первоначально сохранено на машиночитаемом носителе и загружено и приведено в исполнение в процессоре.
Соответственно, это раскрытие сущности также рассматривает машиночитаемый носитель, содержащий инструкции, которые при выполнении в процессоре инструктируют процессору кодировать видеоданные с пространственной масштабируемостью, причем инструкции инструктируют процессору формировать видеоданные после повышающей дискретизации на основе видеоданных базового слоя, при этом видеоданные после повышающей дискретизации соответствуют пространственному разрешению видеоданных улучшающего слоя, и кодировать видеоданные улучшающего слоя на основе видеоданных после повышающей дискретизации, при этом формирование видеоданных после повышающей дискретизации включает в себя интерполяцию значений для одной или более позиций пикселов видеоданных после повышающей дискретизации, которые соответствуют позициям между различными видеоблоками базового слоя, заданными в видеоданных базового слоя.
В других случаях это раскрытие сущности может быть направлено на схему, такую как интегральная схема, набор микросхем, специализированная интегральная схема (ASIC), программируемая пользователем вентильная матрица (FPGA), логика или различные комбинации вышеозначенного, выполненную с возможностью выполнять одну или более технологий, описанных в данном документе.
Подробности одного или более вариантов осуществления данного раскрытия сущности изложены на прилагаемых чертежах и в нижеприведенном описании. Другие признаки, цели и преимущества технологий, описанных в данном раскрытии сущности, должны стать очевидными из описания и чертежей, а также из формулы изобретения.
Краткое описание чертежей
Фиг. 1 является примерной блок-схемой, иллюстрирующей систему кодирования и декодирования видео, которая может реализовывать технологии кодирования, описанные в данном документе, как часть процесса кодирования и/или декодирования.
Фиг. 2 является блок-схемой, иллюстрирующей пример видеокодера в соответствии с этим раскрытием сущности.
Фиг. 3 является блок-схемой, иллюстрирующей пример видеодекодера в соответствии с этим раскрытием сущности.
Фиг. 4 и 5 являются концептуальными схемами, иллюстрирующими повышение дискретизации от базового слоя к улучшающему слою.
Фиг. 6-8 являются концептуальными схемами, иллюстрирующими технологии повышения дискретизации, которые могут использоваться согласно этому раскрытию сущности.
Фиг. 9 является блок-схемой последовательности операций, иллюстрирующей технологию в соответствии с этим раскрытием сущности.
Подробное описание изобретения
Это раскрытие сущности описывает технологии повышения дискретизации, применимые при кодировании (т.е. при кодировании или декодировании) видеоблоков улучшающего слоя в схеме масштабируемого кодирования видео (SVC). В схемах SVC, которые поддерживают пространственную масштабируемость, видеоданные базового слоя (к примеру, остаточные видеоблоки базового слоя) могут быть подвергнуты повышению дискретизации до более высокого разрешения, и данные после повышающей дискретизации с более высоким разрешением могут использоваться для того, чтобы кодировать видеоданные улучшающего слоя (к примеру, остаточные видеоблоки улучшающего слоя). В частности, данные после повышающей дискретизации используются в качестве эталонных данных при кодировании видеоданных улучшающего слоя относительно базового слоя. Другими словами, видеоданные базового слоя подвергаются повышению дискретизации до пространственного разрешения видеоданных улучшающего слоя, и результирующие данные после повышающей дискретизации используются для того, чтобы кодировать видеоданные улучшающего слоя.
Как часть этого процесса повышения дискретизации технологии этого раскрытия сущности идентифицируют условия, при которых повышение дискретизации посредством интерполяции является предпочтительной, и другие условия, при которых повышение дискретизации посредством так называемых технологий копирования ближайшего соседа является предпочтительной. Интерполяция может заключать в себе формирование среднего взвешенного для значения после повышающей дискретизации, при этом среднее взвешенное задается между двумя или более значениями пикселов базового слоя. Для технологий ближайшего соседа значение после повышающей дискретизации задается как значение позиции пиксела в базовом слое, которая находится в непосредственной пространственной близости к позиции пиксела после повышающей дискретизации. Согласно этому раскрытию сущности посредством использования интерполяции для некоторых конкретных условий повышения дискретизации и копирования ближайшего соседа для других условий кодирование видеоблоков улучшающего слоя может быть усовершенствовано.
Интерполяция или копирование ближайшего соседа могут использоваться для того, чтобы задавать данные после повышающей дискретизации при пространственном разрешении улучшающего слоя. Данные после повышающей дискретизации могут быть подвергнуты повышению дискретизации из данных базового слоя (к примеру, из остаточных видеоблоков, кодированных в базовом слое). Данные после повышающей дискретизации могут формировать блоки, которые могут использоваться как опорные при кодировании данных улучшающего слоя (к примеру, при кодировании остаточных видеоблоков улучшающего слоя). Решение о том, следует выполнять интерполяцию или копирование ближайшего соседа в ходе процесса повышения дискретизации, может быть основано на том, соответствует ли позиция значения пиксела после повышающей дискретизации граничной позиции пиксела в улучшающем слое. Это контрастирует с традиционными технологиями повышения дискретизации, которые, в общем, рассматривают только позиции пикселов базового слоя при определении того, следует выполнять интерполяцию или использовать копирование ближайшего соседа.
Например, традиционные технологии повышения дискретизации могут выполнять интерполяцию пиксела после повышающей дискретизации только тогда, когда два пиксела базового слоя, используемые для интерполяции, не соответствуют границе видеоблока базового слоя. В этом раскрытии сущности термин "граница" упоминается как позиции пикселов, которые соответствуют границе видеоблока, а термин "внутренний" упоминается как позиции пикселов, которые не соответствуют границе видеоблока. Видеоблок может относиться к блочному преобразованию, используемому в видеокодере-декодере (кодеке). В качестве примеров в H.264/AVC видеоблок может иметь размер 4x4 или 8x8. Границы блоков в улучшающем слое, тем не менее, могут отличаться от границ блоков базового слоя. Согласно этому раскрытию сущности решение о том, выполнять ли интерполяцию, может зависеть от того, соответствует ли значение пиксела, который должен быть подвергнут повышению дискретизации, граничной позиции пиксела в улучшающем слое.
Если два пиксела базового слоя, используемые для интерполяции, соответствуют границам двух смежных видеоблоков базового слоя, значение после повышающей дискретизации может попадать между двумя смежными видеоблоками базового слоя. В этом случае традиционные технологии используют технологии копирования ближайшего соседа для выполнения повышения дискретизации. Интерполяция традиционно исключается в этом случае, поскольку различные видеоблоки базового слоя, возможно, кодированы с различными уровнями квантования. Для копирования ближайшего соседа значение после повышающей дискретизации может быть задано как значение позиции пиксела базового слоя в непосредственной пространственной близости к позиции пиксела после повышающей дискретизации.
Согласно этому раскрытию сущности интерполяция может быть выполнена в нескольких контекстах, где значение слоя после повышающей дискретизации попадает между двумя видеоблоками базового слоя. Если значение после повышающей дискретизации не связано с граничной позицией пиксела в улучшающем слое, интерполяция может быть предпочтительна копированию ближайшего соседа. В этом случае фильтрация удаления блочности улучшающего слоя вряд ли сможет разрешать какие-либо артефакты блочности при воспроизведении видеокадра. Следовательно, интерполяция может быть предпочтительна даже при том, что различные видеоблоки базового слоя, возможно, кодированы с различными уровнями квантования. Если значение после повышающей дискретизации само связано с граничной позицией пиксела в улучшающем слое и значение после повышающей дискретизации попадает между этими двумя видеоблоками базового слоя, то копирование ближайшего соседа может использоваться в соответствии с этим раскрытием сущности. В этом случае фильтрация удаления блочности улучшающего слоя разрешает артефакты блочности в улучшающем слое, и риск плохой интерполяции вследствие различных уровней квантования в видеоблоках базового слоя может перевешивать потенциальные преимущества интерполяции в этом контексте. Помимо этого решение о том, следует ли выполнять интерполяцию или использовать копирование ближайшего соседа, также может зависеть о того, кодированы ли два видеоблока базового слоя через различные режимы кодирования (к примеру, режимы внутреннего и взаимного кодирования). Например, копирование ближайшего соседа может использоваться, а интерполяция исключаться, если эти два видеоблока базового слоя кодированы через различные режимы кодирования. Кроме того, необязательные адаптивные фильтры нижних частот могут быть применены до или после повышающей дискретизации, чтобы дополнительно смягчать проблему неоднородности сигнала на границах блоков кодирования базового слоя.
Для простоты и легкости иллюстрации, в этом раскрытии сущности, технологии интерполяции и копирования ближайшего соседа, в общем, описываются в одной размерности, хотя такие технологии должны типично применяться как к вертикальным, так и к горизонтальным измерениям. Для технологий двумерной интерполяции или двумерного ближайшего соседа интерполяция или копирование ближайшего соседа должны сначала применяться в одной размерности, а затем должны применяться в другой размерности.
Фиг. 1 является блок-схемой, иллюстрирующей систему 10 кодирования и декодирования видео. Как показано на фиг. 1, система 10 включает в себя исходное устройство 12, которое передает кодированное видео в приемное устройство 16 через канал 15 связи. Исходное устройство 12 может включать в себя видеоисточник 20, видеокодер 22 и модулятор/передающее устройство 24. Приемное устройство 16 может включать в себя приемное устройство/демодулятор 26, видеодекодер 28 и устройство 30 отображения. Система 10 может быть выполнена с возможностью применять адаптивные технологии повышения дискретизации, как описано в данном документе, в ходе кодирования и декодирования видеоинформации улучшающего слоя для схемы SVC. Кодирование и декодирование, в общем, упоминаются в данном документе как кодирование.
В примере по фиг. 1 канал 15 связи может содержать любую беспроводную и проводную среду связи, такую как радиочастотный (RF) спектр или одна или более физических линий передачи, либо любую комбинацию беспроводных и проводных сред. Канал 15 связи может формировать часть сети с коммутацией пакетов, такой как локальная вычислительная сеть, глобальная вычислительная сеть либо глобальная сеть, такая как Интернет. Канал 15 связи, в общем, представляет любую надлежащую среду связи или набор различных сред связи для передачи видеоданных из исходного устройства 12 в приемное устройство 16.
Исходное устройство 12 формирует видео для передачи в приемное устройство 16. В некоторых случаях, тем не менее, устройства 12, 16 могут работать практически симметричным способом. Например, каждое из устройств 12, 16 может включать в себя компоненты кодирования и декодирования видео. Следовательно, система 10 может поддерживать одностороннюю и двухстороннюю передачу видео между видеоустройствами 12, 16, к примеру, для потоковой передачи видео, широковещательной передачи видео или видеотелефонии.
Видеоисточник 20 исходного устройства 12 может включать в себя устройство видеозахвата, такое как видеокамера, видеоархив, содержащий ранее захваченное видео, или видеопередачу от поставщика видеосодержимого. В качестве дополнительной альтернативы видеоисточник 20 может формировать основанные на компьютерной графике данные в качестве исходного видео или комбинацию живого видео и сформированного компьютером видео. В некоторых случаях, если видеоисточником 20 является видеокамера, исходное устройство 12 и приемное устройство 16 могут формировать так называемые камерофоны или видеофоны. В каждом случае захваченное, предварительно захваченное или создаваемое компьютером видео может быть кодировано посредством видеокодера 22 для передачи от устройства 12 видеоисточника в видеодекодер 28 устройства 16 приема видео через модулятор/передающее устройство 22, канал связи 15 и приемное устройство/демодулятор 26.
Процессы кодирования и декодирования видео могут реализовывать адаптивные технологии повышения дискретизации, используя интерполяцию и копирование ближайшего соседа, как описано в данном документе, для того чтобы усовершенствовать процесс кодирования улучшающего слоя. Устройство 30 отображения отображает декодированные видеоданные пользователю и может содержать любое из множества устройств отображения, таких как электронно-лучевая трубка, жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на органических светодиодах (OLED) или другой тип устройства отображения. Пространственная масштабируемость дает возможность видеодекодеру восстанавливать и отображать видеосигнал более высокого пространственного разрешения, к примеру CIF (общий промежуточный формат, разрешение изображений 352×288) в отличие от QCIF (четверть от общего промежуточного формата, разрешение изображений 176×144)), посредством декодирования потока битов улучшающего слоя из потока битов SVC.
Видеокодер 22 и видеодекодер 28 могут быть выполнены с возможностью поддерживать масштабируемое кодирование видео (SVC) для пространственной масштабируемости. Помимо этого временная масштабируемость и/или масштабируемость отношения "сигнал-шум" (SNR) также может поддерживаться, хотя технологии этого раскрытия сущности не ограничены в этом отношении. В некоторых аспектах видеокодер 22 и видеодекодер 28 могут быть выполнены с возможностью поддерживать кодирование с масштабированием SNR с высокой степенью детализации (FGS) для SVC. Кодер 22 и декодер 28 могут поддерживать различные степени масштабирования посредством поддержки кодирования, передачи и декодирования базового слоя и одного или более масштабируемых улучшающих слоев. Для масштабируемого кодирования видео базовый слой переносит видеоданные с базовым пространственным, временным уровнем или уровнем SNR. Один или более улучшающих слоев переносят дополнительные данные, чтобы поддерживать более высокие пространственные, временные уровни и/или уровни SNR. Базовый слой может быть передан способом, который является более надежным, чем передача улучшающих слоев. Например, самые надежные части модулированного сигнала могут использоваться для того, чтобы передавать базовый слой, тогда как менее надежные части модулированного сигнала могут использоваться для того, чтобы передавать улучшающие слои.
Чтобы поддерживать SVC, видеокодер 22 может включать в себя кодер 32 базового слоя и кодер 34 улучшающего слоя, чтобы выполнять кодирование базового слоя и улучшающего слоя соответственно. В некоторых случаях несколько улучшающих слоев могут поддерживаться, и при этом несколько кодеров улучшающего слоя могут быть предоставлены для того, чтобы кодировать постепенно детализируемые уровни улучшения видео. Технологии этого раскрытия сущности, которые влекут за собой повышение дискретизации данных базового слоя до пространственного разрешения видеоданных улучшающего слоя, с тем чтобы данные после повышающей дискретизации могли использоваться для того, чтобы кодировать данные улучшающего слоя, могут выполняться посредством кодера 34 улучшающего слоя.
Видеодекодер 28 может содержать комбинированный базовый/улучшающий декодер, который декодирует видеоблоки, связанные как с базовыми, так и с улучшающими слоями, и комбинирует декодированное видео, чтобы восстанавливать кадры видеопоследовательности. На стороне декодирования технологии этого раскрытия сущности, которые влекут за собой повышение дискретизации данных базового слоя до пространственного разрешения видеоданных улучшающего слоя, с тем чтобы данные после повышающей дискретизации могли использоваться для того, чтобы кодировать данные улучшающего слоя, могут быть выполнены посредством видеодекодера 28. Устройство 30 отображения принимает декодированную видеопоследовательность и представляет видеопоследовательность пользователю.
Видеокодер 22 и видеодекодер 28 могут работать согласно такому стандарту видеосжатия, как MPEG-2, MPEG-4, ITU-T H.263 или ITU-T H.264/MPEG-4, часть 10, усовершенствованное кодирование видео (AVC). Хотя не показано на фиг. 1, в некоторых аспектах видеокодер 22 и видеодекодер 28 могут быть интегрированы с аудиокодером и декодером соответственно и могут включать в себя соответствующие модули MUX-DEMUX либо другие аппаратные средства и программное обеспечение, чтобы обрабатывать кодирование как аудио, так и видео в общем потоке данных или в отдельных потоках данных. Если применимо, модули MUX-DEMUX могут соответствовать протоколу мультиплексора ITU H.223 или другим протоколам, таким как протокол пользовательских дейтаграмм (UDP).
Стандарт H.264/MPEG-4 (AVC) сформулирован Экспертной группой в области кодирования видео (VCEG) ITU-T совместно с Экспертной группой по киноизображению (MPEG) ISO/IEC как продукт коллективного партнерского проекта, известного как Объединенная группа по видеостандартам (JVT). В некоторых аспектах технологии, описанные в этом раскрытии сущности, могут быть применены к устройствам, которые, в общем, соответствуют стандарту H.264. Стандарт H.264 описан в ITU-T Recommendation H.264 "Advanced Video Coding for Generic Audiovisual Services" от Исследовательской группы ITU-T и датирован мартом 2005 года, который может упоминаться в данном документе как стандарт H.264 или спецификация H.264 либо стандарт или спецификация H.264/AVC.
Объединенная группа по видеостандартам (JVT) продолжает работать над дополнениями по масштабируемому кодированию видео (SVC) в H.264/MPEG-4 AVC. Например, объединенная модель масштабируемого видео (JSVM), созданная в JVT, реализует средства для использования в масштабируемом видео, которые могут быть использованы в системе 10 для различных задач кодирования, описанных в данном раскрытии сущности. Подробную информацию, касающуюся кодирования с масштабированием SNR с высокой степенью детализации (FGS), можно найти в документах совместного проекта и, в частности, в Совместном проекте 8 (JD8) по внесению поправок в SVC (редакция 2), Thomas Wiegand, Gary Sullivan, Julien Reichel, Heiko Schwarz и Mathias Wien, "Joint Draft 8 of SVC Amendment (revision 2)", JVT-U201, октябрь 2006 года, Hangzhou, China. Кроме того, дополнительные подробности одной реализации технологий, описанных в данном документе, можно найти в документе предложения JVT-W117, представленном в объединенную группу по видеостандартам (JVT) ISO/IEC MPEG & ITU-T VCEG (ISO/IEC JTC1/SC29/WG11 и ITU-T SG16 Q.6), авторы Yan Ye и Yiliang Bao, в апреле 2007 года на 23-м собрании в Сан-Хосе, Калифорния, США, и в документе предложения JVT-V115, представленном в JVT, авторы Yan Ye и Yiliang Bao, в январе 2007 года на 22-м собрании в Марракеше, Марокко.
В некоторых аспектах для широковещательной передачи видео технологии, описанные в данном раскрытии, могут быть применены к улучшенному кодированию видео H.264 для доставки видеоуслуг реального времени в системах наземной многоадресной передачи мобильного мультимедиа (TM3), использующих спецификацию радиоинтерфейса только прямой линии связи (FLO), "Forward Link Only Air Interface Specification for Terrestrial Mobile Multimedia Multicast", которая должна быть опубликована как Технический стандарт TIA-1099 ("FLO Specification"). Другими словами, канал 15 связи может содержать беспроводной информационный канал, используемый для того, чтобы выполнять широковещательную передачу беспроводной видеоинформации согласно спецификации FLO, и т.п. Спецификация FLO включает в себя примеры, задающие синтаксис и семантику потока битов, а также процессы декодирования, подходящие для радиоинтерфейса FLO. Альтернативно, видео может передаваться в широковещательном режиме согласно другим стандартам, таким как DVB-H (цифровая широковещательная передача видео для карманных устройств), ISDB-T (комплексные службы цифровой наземной широковещательной передачи) или DMB (цифровая широковещательная передача мультимедиа).
Следовательно, исходным устройством 12 может быть мобильный беспроводной терминал, сервер потоковой передачи видео и сервер широковещательной передачи видео. Тем не менее, технологии, описанные в данном документе, не ограничены каким-либо конкретным типом системы широковещательной передачи, многоадресной передачи или передачи "точка-точка". В случае широковещательной передачи исходное устройство 12 может передавать в широковещательном режиме несколько каналов видеоданных в несколько приемных устройств, каждое из которых может быть аналогичным приемному устройству 16 по фиг. 1. В качестве примера приемное устройство 16 может содержать устройство беспроводной связи, такое как мобильный телефон, обычно упоминаемый как сотовый радиотелефон.
Видеокодер 22 и видеодекодер 28 могут быть реализованы как один или более микропроцессоров, процессоров цифровых сигналов (DSP), специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA), дискретная логика, программное обеспечение, аппаратные средства, микропрограммное обеспечение или любые комбинации вышеозначенного. Каждый из видеокодера 22 и видеодекодера 28 может быть включен в один или более кодеров или декодеров, любой из которых может быть интегрирован как часть комбинированного кодера/декодера (кодека) в соответствующем мобильном устройстве, абонентском устройстве, широковещательном устройстве, сервере и т.п. Помимо этого исходное устройство 12 и приемное устройство 16 могут включать в себя соответствующие компоненты модуляции, демодуляции, частотного преобразования, фильтрации и усилителя для передачи и приема кодированного видео, в зависимости от необходимости, включая радиочастотные (RF) беспроводные компоненты и антенны, достаточные для того, чтобы поддерживать беспроводную связь. Для простоты иллюстрации, тем не менее, такие компоненты обобщены как модулятор/передающие устройство 24 исходного устройства 12 и приемное устройство/демодулятор 26 приемного устройства 16 на фиг. 1.
Видеопоследовательность включает в себя серии видеокадров. Видеокодер 22 оперирует с блоками пикселов в рамках отдельных видеокадров, чтобы кодировать видеоданные. Видеоблоки могут иметь фиксированный или изменяющийся размер и могут отличаться по размеру согласно заданному стандарту кодирования. Каждый видеокадр может быть разделен на последовательность серий последовательных макроблоков. Каждая серия последовательных макроблоков может включать в себя серии макроблоков, которые могут быть скомпонованы в субблоки. В качестве примера стандарт ITU-T H.264 поддерживает внутреннее прогнозирование для различных размеров блоков, таких как 16 × 16, 8 × 8, 4 × 4 для компонентов сигнала яркости и 8×8 для компонентов сигнала цветности, а также взаимное прогнозирование для различных размеров блоков, таких как 16 × 16, 16 × 8, 8 × 16, 8 × 8, 8 × 4, 4 × 8 и 4 × 4 для компонентов сигнала яркости и соответствующие масштабированные размеры для компонентов сигнала цветности.
Меньшие видеоблоки могут предоставлять лучшее разрешение и могут быть использованы для позиций видеокадра, которые включают в себя более высокий уровень детальности. В общем, макроблоки (MB) и различные субблоки могут обобщенно упоминаться как видеоблоки. Помимо этого серия последовательных макроблоков может считаться серией видеоблоков, таких как MB и/или субблоки. Каждая серия последовательных макроблоков может быть независимо декодируемой единицей. После прогнозирования преобразование может быть выполнено для остаточного блока 8×8 или остаточного блока 4×4, и дополнительное преобразование может быть применено к DC-коэффициентам блоков 4×4 для компонентов сигнала цветности или компонентов сигнала яркости, если режим прогнозирования intra_16×16 используется.
Следуя технологиям кодирования с внутренним и взаимным прогнозированием, дополнительные технологии кодирования могут быть применены к передаваемому потоку битов. Эти дополнительные технологии кодирования могут включать в себя технологии преобразования, такие как целочисленное преобразование 4×4 или 8×8, используемое в H.264/AVC, или дискретное косинусное преобразование DCT, и энтропийного кодирования, такие как кодирование переменной длины (VLC), кодирование Хаффмана и/или кодирование по длинам серий.
Согласно технологиям этого раскрытия сущности технологии повышения дискретизации используются для того, чтобы формировать видеоданные после повышающей дискретизации для использования при кодировании (т.е. при кодировании или декодировании) видеоданных улучшающего слоя. Видеоданные базового слоя могут быть подвергнуты повышению дискретизации до пространственного разрешения соответствующих видеоблоков улучшающего слоя, и данные после повышающей дискретизации могут использоваться в качестве эталонных при кодировании видеоданных улучшающего слоя. Как часть этого процесса повышения дискретизации технологии этого раскрытия сущности идентифицируют ситуации, в которых технологии интерполяции являются предпочтительными, и другие ситуации, в которых так называемые технологии копирования ближайшего соседа являются предпочтительными. С другой стороны, интерполяция может заключать в себе формирование среднего взвешенного для значения после повышающей дискретизации, при этом среднее взвешенное задается между двумя или более значениями базового слоя. Для копирования ближайшего соседа значение уровня после повышающей дискретизации задается как значение позиции пиксела базового слоя в непосредственной пространственной близости к позиции пиксела после повышающей дискретизации. Используя интерполяцию в конкретных сценариях повышения дискретизации и копирование ближайшего соседа в других сценариях, кодирование видеоблоков улучшающего слоя может быть усовершенствовано.
Повышение дискретизации может изменять границы блоков. Например, если базовый слой и улучшающий слой каждый задают видеоблоки 4 × 4 пиксела, повышение дискретизации базового слоя, чтобы задавать больше пикселов согласно пространственному разрешению улучшающего слоя, приводит к отличающимся границам блоков базового слоя от границ данных после повышающей дискретизации. Это наблюдение может быть использовано так, что решения, касающиеся технологий интерполяции или ближайшего соседа, могут быть основаны на том, соответствуют ли значения после повышающей дискретизации граничным позициям пикселов улучшающего слоя (т.е. границам блоков в улучшающем слое) и соответствуют ли такие позиции также позициям между границами блоков базового слоя.
Кодер 22 и декодер 28 могут выполнять взаимно обратные способы, причем каждый из них выполняет технологии повышения дискретизации, описанные в данном документе. Кодер 22 может использовать повышение дискретизации для того, чтобы кодировать информацию улучшающего слоя, а декодер 28 может использовать тот же самый процесс повышения дискретизации для того, чтобы декодировать информацию улучшающего слоя. Термин "кодирование", в общем, упоминается как кодирование или как декодирование.
Фиг. 2 является блок-схемой, иллюстрирующей пример видеокодера 50, который включает в себя модуль 45 повышения дискретизации, чтобы подвергнуть повышению дискретизации видеоданные базового слоя до пространственного разрешения, связанного с видеоданными улучшающего слоя. Данные после повышающей дискретизации затем используются для того, чтобы кодировать видеоданные улучшающего слоя. Видеокодер 50 может соответствовать кодеру 34 улучшающего слоя исходного устройства 12 на фиг. 1. Другими словами, компоненты кодирования базового слоя не проиллюстрированы на фиг. 3 для простоты. Следовательно, видеокодер 50 может считаться кодером улучшающего слоя. В некоторых случаях проиллюстрированные компоненты видеокодера 50 также могут быть реализованы в комбинации с модулями или блоками кодирования базового слоя, к примеру, в схеме пирамидального кодера, которая поддерживает масштабируемое кодирование видео базового слоя и улучшающего слоя.
Видеокодер 50 может выполнять внутреннее и взаимное кодирование блоков в видеокадрах. Внутреннее кодирование базируется на пространственном прогнозировании, чтобы уменьшать или удалять пространственную избыточность видео в данном видеокадре. Взаимное кодирование основывается на временном прогнозировании, чтобы уменьшать или удалять временную избыточность видео в смежных кадрах видеопоследовательности. Для взаимного кодирования видеокодер 5 выполняет оценку движения, чтобы отслеживать перемещение совпадающих видеоблоков между двумя или более смежными кадрами. Для внутреннего кодирования пространственное прогнозирование с использованием пикселов из соседних блоков в одном кадре применяется для того, чтобы формировать прогнозный блок для кодируемого блока. Компоненты пространственного прогнозирования, используемые для внутреннего кодирования, не проиллюстрированы на фиг. 2.
Как показано на фиг. 2, видеокодер 50 принимает текущий видеоблок 31 (к примеру, видеоблок улучшающего слоя) в видеокадре, который должен быть кодирован. В примере по фиг. 2 видеокодер 50 включает в себя модуль 33 оценки движения, модуль 35 хранения опорных кадров, модуль 37 компенсации движения, модуль 39 блочного преобразования, модуль 45 повышения дискретизации, модуль 41 квантования, модуль 42 обратного квантования, модуль 44 обратного преобразования и модуль 46 энтропийного кодирования. Фильтр 32 удаления блочности также может быть включен для того, чтобы фильтровать границы блоков, чтобы удалять артефакты блочности. Видеокодер 50 также включает в себя сумматор 48, сумматоры 49A и 49B и сумматор 51. Фиг. 2 иллюстрирует компоненты временного прогнозирования видеокодера 50 для взаимного кодирования видеоблоков. Хотя не показано на фиг. 2 для упрощения иллюстрации, видеокодер 50 также может включать в себя компоненты пространственного прогнозирования для внутреннего кодирования некоторых видеоблоков.
Модуль 33 оценки движения сравнивает видеоблок 31 с блоками в одном или более смежных кадров, чтобы сформировать один или более векторов движения. Смежный кадр или кадры могут извлекаться из модуля 35 хранения опорных кадров, который может включать в себя любой тип запоминающего устройства или устройства хранения данных, чтобы сохранять видеоблоки, восстановленные из ранее кодированных блоков. Оценка движения может выполняться для блоков переменного размера, к примеру 16×16,16×8, 8×16, 8×8 или меньших размеров блоков. Модуль 33 оценки движения идентифицирует блок в смежном кадре, который наиболее близко соответствует текущему видеоблоку 31, к примеру, на основе модели искажения в зависимости от скорости передачи, и определяет смещение между блоками. На этой основе модуль 33 оценки движения формирует вектор движения (MV) (или несколько MV в случае двунаправленного прогнозирования), который указывает величину и траекторию смещения между текущим видеоблоком 31 и прогнозирующим блоком, используемым для того, чтобы кодировать текущий видеоблок 31.
Векторы движения могут иметь точность в пол- или четверть пиксела или даже большую точность, позволяя видеокодеру 50 отслеживать движение с более высокой точностью, чем целочисленные позиции пикселов, и получать более оптимальный прогнозный блок. Когда векторы движения с дробными значениями пикселов используются, операции интерполяции выполняются в модуле 37 компенсации движения. Модуль 33 оценки движения может идентифицировать наиболее оптимальный вектор движения для видеоблока, используя модель искажения в зависимости от скорости передачи. Используя результирующий вектор движения, модуль 37 компенсации движения формирует прогнозный видеоблок посредством компенсации движения.
Видеокодер 50 формирует остаточный видеоблок посредством вычитания прогнозного видеоблока, сформированного посредством модуля 37 компенсации движения, из исходного текущего видеоблока 31 в сумматоре 48. Модуль 39 блочного преобразования применяет преобразование, такое как дискретное косинусное преобразование (DCT), к остаточному блоку, формируя остаточные преобразованные блочные коэффициенты. Здесь, дополнительное сжатие применяется посредством вычитания остаточной информации базового слоя из остаточной информации улучшающего слоя с помощью сумматора 49A. Модуль 45 повышения дискретизации принимает остаточную информацию базового слоя (к примеру, от кодера базового слоя) и подвергает повышению дискретизации остаточную информацию базового слоя, чтобы формировать информацию после повышающей дискретизации. Эта информация после повышающей дискретизации затем вычитается (через сумматор 49A) из кодируемой остаточной информации улучшающего слоя.
Как описано более подробно ниже, модуль 45 повышения дискретизации может идентифицировать ситуации, в которых интерполяция является предпочтительной, и другие ситуации, в которых так называемые технологии копирования ближайшего соседа являются предпочтительными. Интерполяция заключает в себе формирование среднего взвешенного для значения после повышающей дискретизации, при этом среднее взвешенное задается между двумя значениями базового слоя. Для копирования ближайшего соседа, значение после повышающей дискретизации задается как значение позиции пиксела базового слоя в непосредственной пространственной близости к позиции пиксела после повышающей дискретизации. Согласно этому раскрытию сущности модуль 45 повышения дискретизации использует интерполяцию в конкретных сценариях повышения дискретизации и технологии ближайшего соседа в других сценариях. В частности, решение посредством модуля 45 повышения дискретизации в отношении того, следует ли выполнять интерполяцию или технологии ближайшего соседа, может быть основано на том, соответствует ли значение после повышающей дискретизации граничной позиции пиксела в улучшающем слое. Это контрастирует с традиционными технологиями повышения дискретизации, которые, в общем, рассматривают только позиции пикселов базового слоя при определении того, следует ли выполнять интерполяцию или использовать технологии ближайшего соседа. Примеры интерполяции и ближайшего соседа в этом раскрытии сущности описываются в одной размерности для простоты, но такая одномерная интерполяция или технологии ближайшего соседа должны типично применяться последовательно как в горизонтальном, так и в вертикальном измерении. Дополнительный фильтр 47 также может быть включен для того, чтобы фильтровать границы блоков информации базового слоя перед повышением дискретизации посредством модуля 45 повышения дискретизации. Хотя проиллюстрирован на фиг. 2 как находящийся перед модулем 45 повышения дискретизации, дополнительный фильтр 47 также может быть помещен после модуля 45 повышения дискретизации, чтобы фильтровать те позиции пикселов в видеоданных после повышающей дискретизации, которые интерполируются из двух пикселов базового слоя, которые соответствуют двум различным блокам кодирования базового слоя. Так или иначе, эта дополнительная фильтрация посредством фильтра 47 является необязательной и рассматривается более подробно далее в этом раскрытии сущности.
Модуль 41 квантования квантует остаточные преобразованные блочные коэффициенты, чтобы дополнительно уменьшать скорость передачи битов. Сумматор 49A принимает информацию после повышающей дискретизации от модуля 45 повышения дискретизации и позиционируется между сумматором 48 и модулем 39 блочного преобразования. В частности, сумматор 49A вычитает блок данных после повышающей дискретизации из вывода модуля 39 блочного преобразования. Аналогичным образом, сумматор 49B, который позиционируется между модулем 44 обратного преобразования и сумматором 51, также принимает информацию после повышающей дискретизации от модуля 45 повышения дискретизации. Сумматор 49B прибавляет блок данных после повышающей дискретизации обратно к выводу модуля 44 обратного преобразования.
Кодирование с пространственным прогнозированием работает во многом аналогично кодированию с временным прогнозированием. Тем не менее, тогда как кодирование с временным прогнозированием базируется на блоках смежных кадров (или других кодированных единицах), чтобы выполнять кодирование, пространственное прогнозирование базируется на блоках в общем кадре (другой кодированной единице), чтобы выполнять кодирование. Кодирование с пространственным прогнозированием кодирует внутренне кодированные блоки, тогда как кодирование с временным прогнозированием кодирует взаимно кодированные блоки. К тому же, компоненты пространственного прогнозирования не показаны на фиг. 2 для простоты.
Модуль 46 энтропии кодирует квантованные коэффициенты преобразования согласно технологии энтропийного кодирования, такой как кодирование переменной длины, двоичное арифметическое кодирование (CABAC), кодирование методом Хаффмана, кодирование по длинам серий, кодирование по конфигурациям кодированных блоков (CBP) и т.п., чтобы дополнительно уменьшать скорость передачи битов передаваемой информации. Модуль 46 энтропии может выбирать VLC-таблицу, чтобы способствовать эффективности кодирования. После энтропийного кодирования кодированное видео может быть передано в другое устройство. Помимо этого модуль 42 обратного квантования и модуль 44 обратного преобразования применяют обратное квантование и обратное преобразование соответственно, для того чтобы восстанавливать остаточный блок. Сумматор 49B прибавляет обратно данные после повышающей дискретизации от модуля 45 повышения дискретизации (который представляет версию после повышающей дискретизации остаточного блока базового слоя), а сумматор 51 прибавляет конечный восстановленный остаточный блок к прогнозному блоку с компенсацией движения, сформированному посредством модуля 37 компенсации движения, чтобы формировать восстановленный видеоблок для сохранения в модуле 35 хранения опорных кадров. Фильтр 32 удаления блочности может выполнять фильтрацию удаления блочности до сохранения опорного кадра. Фильтрация удаления блочности может быть необязательной в некоторых примерах.
Согласно этому раскрытию сущности модуль 45 повышения дискретизации интерполирует значения для одной или более позиций пикселов видеоблоков после повышающей дискретизации, которые соответствуют позиции между двумя различными границами двух различных видеоблоков базового слоя.
В одном примере модуль 45 повышения дискретизации интерполирует первые значения для видеоданных после повышающей дискретизации на основе видеоданных базового слоя для следующего: (i) позиции пикселов видеоданных после повышающей дискретизации, которые соответствуют внутренним позициям пикселов видеоблоков улучшающего слоя, заданным в видеоданных улучшающего слоя, при этом, по меньшей мере, некоторые из внутренних позиций пикселов видеоблоков улучшающего слоя соответствуют позициям между различными видеоблоками базового слоя, и (ii) позиции пикселов видеоданных после повышающей дискретизации, которые соответствуют граничным позициям пикселов видеоблоков улучшающего слоя и не находятся между различными видеоблоками базового слоя. Модуль 45 повышения дискретизации может задавать вторые значения для видеоданных после повышающей дискретизации на основе значений ближайших соседей в видеоданных базового слоя для следующего: (iii) позиции пикселов видеоданных после повышающей дискретизации, которые соответствуют граничным позициям пикселов видеоблоков улучшающего слоя и находятся между различными видеоблоками базового слоя.
В другом примере модуль 45 повышения дискретизации интерполирует первые значения для видеоданных после повышающей дискретизации на основе видеоданных базового слоя для следующего: (i) позиции пикселов видеоданных после повышающей дискретизации, которые соответствуют внутренним позициям пикселов видеоблоков улучшающего слоя, заданным в видеоданных улучшающего слоя, при этом, по меньшей мере, некоторые из внутренних позиций пикселов видеоблоков улучшающего слоя соответствуют позициям между различными видеоблоками базового слоя, и (ii) позиции пикселов видеоданных после повышающей дискретизации, которые соответствуют граничным позициям пикселов видеоблоков улучшающего слоя и не находятся между различными видеоблоками базового слоя. В этом случае модуль 45 повышения дискретизации может задавать вторые значения для видеоданных после повышающей дискретизации на основе значений ближайших соседей в видеоданных базового слоя для следующего: (iii) позиции пикселов видеоданных после повышающей дискретизации, которые соответствуют граничным позициям пикселов видеоблоков улучшающего слоя и находятся между различными видеоблоками базового слоя, (iv) позиции пикселов видеоданных после повышающей дискретизации, которые соответствуют внутренним позициям пикселов видеоблоков улучшающего слоя и находятся между различными видеоблоками базового слоя, когда два различных видеоблока базового слоя задают различные режимы кодирования. Различные режимы кодирования могут содержать режим внутреннего кодирования и режим взаимного кодирования. В этом случае модуль 45 повышения дискретизации рассматривает не только позиции, связанные со значениями после повышающей дискретизации (т.е. то, соответствуют ли значения после повышающей дискретизации границам блоков в улучшающем слое и попадают ли значения между границами блоков в базовом слое), но также то, кодируются ли эти два видеоблока базового слоя с использованием различных режимов кодирования (к примеру, режимов внутреннего или взаимного кодирования).
Фиг. 3 является блок-схемой, иллюстрирующей пример видеодекодера 60, который может соответствовать видеодекодеру 28 по фиг. 1 или декодеру другого устройства. Видеодекодер 60 включает в себя модуль 59 повышения дискретизации, который выполняет функции, аналогичные функциям модуля 45 повышения дискретизации по фиг. 2. Другими словами, аналогично модулю 45 повышения дискретизации, модуль 59 повышения дискретизации интерполирует значения для видеоблоков после повышающей дискретизации для одной или более позиций пикселов видеоблоков улучшающего слоя, которые соответствуют позиции между двумя различными границами двух различных видеоблоков базового слоя. Помимо этого аналогично модулю 45 повышения дискретизации, модуль 59 повышения дискретизации может выбирать между интерполяцией и копированием ближайшего соседа способом, описанным в данном документе. Модуль 61 повышения дискретизации движения также может использоваться для того, чтобы подвергнуть повышению дискретизации векторы движения, связанные с базовым слоем. Необязательный фильтр 65 также может использоваться для того, чтобы фильтровать границы блоков данных базового слоя перед повышением дискретизации, выполняемым посредством модуля 59 повышения дискретизации. Хотя не проиллюстрировано на фиг. 3, фильтр 65 также может быть помещен после модуля 59 повышения дискретизации и использован для того, чтобы фильтровать те позиции пикселов в видеоданных после повышающей дискретизации, которые интерполируются из двух пикселов базового слоя, которые соответствуют двум различным блокам кодирования базового слоя.
Видеодекодер 60 может включать в себя модуль 52A энтропии для энтропийного декодирования информации улучшающего слоя и может включать в себя другой модуль 52B энтропии для энтропийного декодирования информации базового слоя. Компоненты внутреннего прогнозирования не показаны на фиг. 3, но могут использоваться, если видеодекодер 60 поддерживает кодирование с внутренним и взаимным прогнозированием. Путь улучшающего слоя может включать в себя модуль 56A обратного квантования и модуль 58A обратного преобразования, а путь базового слоя может включать в себя модуль 56B обратного квантования и модуль 58B обратного преобразования. Информация в путях базового слоя и улучшающего слоя может быть комбинирована посредством сумматора 57. Перед этим комбинированием, тем не менее, информация базового слоя подвергается повышению дискретизации посредством модуля 59 повышения дискретизации согласно технологиям, описанным в данном документе.
Видеодекодер 60 может выполнять взаимное декодирование блоков в видеокадрах. В примере по фиг. 3 видеодекодер 60 включает в себя модули 52A и 52B энтропии, модуль 54 компенсации движения, модули 56A и 56B обратного квантования, модули 58A и 58B обратного преобразования и модуль 62 хранения опорных кадров. Видеодекодер 60 также включает в себя сумматор 64. Видеодекодер 60 также может включать в себя фильтр 53 удаления блочности, который фильтрует вывод сумматора 64. С другой стороны, сумматор 57 комбинирует информацию в путях базового слоя и улучшающего слоя после повышающей дискретизации пути базового слоя через модуль 59 повышения дискретизации. Модуль 61 повышения дискретизации движения может подвергнуть повышению дискретизации векторы движения, связанные с базовым слоем, так что такие векторы движения соответствуют пространственному разрешению видеоданных улучшающего слоя.
Для видеоблоков улучшающего слоя модуль 52A энтропии принимает кодированный поток видеобитов и применяет технологию энтропийного декодирования для того, чтобы декодировать информацию. Это позволяет формировать квантованные остаточные коэффициенты, режим кодирования по макроблокам и субблокам и информацию о движении, которая может включать в себя векторы движения и блочные сегменты. После декодирования, выполненного посредством модуля 52A энтропии, модуль 54 компенсации движения принимает векторы движения и один или более восстановленных опорных кадров от модуля 62 хранения опорных кадров. Модуль 56A обратного квантования обратно квантует, т.е. деквантует, квантованные блочные коэффициенты, а модуль 58A обратного преобразования применяет обратное преобразование, к примеру обратное DCT, к коэффициентам, чтобы формировать остаточные блоки. Вывод модуля 58A обратного преобразования комбинируется с информацией базового слоя после повышающей дискретизации как вывод модуля 59 повышения дискретизации. Сумматор 57 упрощает это комбинирование. Модуль 54 компенсации движения формирует блоки с компенсацией движения, которые суммируются посредством сумматора 64 с остаточными блоками, чтобы формировать декодированные блоки. Фильтр 53 удаления блочности фильтрует декодированные блоки, чтобы удалять артефакты блочности. Фильтрованные блоки затем помещаются в модуль 62 хранения опорных кадров, который предоставляет опорные блоки компенсации движения и также формирует декодированное видео, чтобы активировать устройство отображения (такое, как устройство 30 по фиг. 1).
SVC может поддерживать ряд технологий межслойного прогнозирования для того, чтобы повышать производительность кодирования. Например, при кодировании макроблока улучшающего слоя соответствующий режим макроблока, информация о движении и остаточные сигналы из базового или предыдущего слоя могут использоваться. В частности, определенные остаточные блоки в базовом или предыдущем слое могут быть коррелированы с соответствующими остаточными блоками улучшающего слоя. Для этих блоков применение остаточного прогнозирования позволяет уменьшать остаточную энергию улучшающего слоя и повышать производительность кодирования.
В SVC то, используется или нет остаточное прогнозирование, может быть указано с помощью однобитового флага ResPred, связанного с макроблоком, который может быть кодирован как синтаксический элемент уровня макроблока. Если ResPred=1, то остаток улучшающего слоя кодируется после вычитания из него остаточного блока базового слоя. Когда поток битов улучшающего слоя представляет видеосигнал с более высоким пространственным разрешением, остаточный сигнал базового слоя подвергается повышению дискретизации до разрешения улучшающего слоя перед использованием в межслойном прогнозировании. Это является функцией модулей 45 и 59 повышения дискретизации на фиг. 2 и 3, т.е. формированием видеоблоков после повышающей дискретизации. В SVC совместном проекте 8 (JD8) билинейный фильтр предлагается для модуля повышения дискретизации, чтобы подвергнуть повышению дискретизации остаточный сигнал базового слоя, с некоторыми исключениями на границах блоков базового слоя.
SVC JD8 поддерживает как двухэлементную пространственную масштабируемость, так и расширенную пространственную масштабируемость (ESS). В двухэлементной пространственной масштабируемости видеокадр улучшающего слоя имеет размер, в два раза превышающий видео базового слоя в каждой размерности, и обрезание, если таковое имеется, осуществляется на границах макроблоков. В ESS допускаются произвольные масштабные множители и параметры обрезания между видеосигналом базового и улучшающего слоя. Когда ESS используется, совмещение пикселов между базовым и улучшающим слоями может быть произвольным.
Фиг. 4 и 5 предоставляют примеры относительного позиционирования пикселов в базовом слое и улучшающем слое для масштабных множителей 2:1 и 5:3 соответственно. На фиг. 4 и 5 метки "B" упоминаются как позиции пикселов, связанные с базовым слоем, а метки "E" упоминаются как позиции, связанные с данными после повышающей дискретизации (что соответствует данным улучшающего слоя). Видеоблок(и) после повышающей дискретизации используется как опорный при кодировании информации улучшающего слоя. Метка "B E" в средней позиции пиксела по фиг. 5 означает, что одна позиция пиксела перекрывается в базовом слое и в данных после повышающей дискретизации, которые имеют разрешение улучшающего слоя.
Как показано на фиг. 4 и 5, повышение дискретизации от базового слоя с более низким разрешением до более высокого разрешения улучшающего слоя производится в двух размерностях. Это двумерное повышение дискретизации, тем не менее, может легко производиться через последовательные процессы одномерного повышения дискретизации для каждой позиции пиксела. Например, на фиг. 5, матрица пикселов 3×3 видеоданных базового слоя (отмечено B) сначала подвергается повышению дискретизации в горизонтальном направлении, чтобы стать матрицей пикселов 5×3 промежуточных значений (отмечено X). Затем, матрица пикселов X 5×3 подвергается повышению дискретизации в вертикальном направлении, чтобы стать конечной матрицей пикселов 5×5 видеоданных после повышающей дискретизации, которые соответствуют пространственному разрешению улучшающего слоя (отмечено E). Отметим, что на фиг. 5 позиция пиксела после повышающей дискретизации и позиция пиксела перед повышением дискретизации может быть совмещена; например, средний пиксел помечается три раза как B, E и X. В ходе процессов горизонтального и вертикального повышения дискретизации решение относительно того, следует использовать интерполяцию или копирование ближайшего соседа, может быть применено согласно этому раскрытию сущности.
В последующем пояснении технологии интерполяции и копирования ближайшего соседа поясняются в горизонтальном измерении. Подразумевается, тем не менее, что последовательные линейные технологии могут быть применены в вертикальных и горизонтальных направлениях для двумерного повышения дискретизации.
Когда пространственная масштабируемость используется, остаточный сигнал базового слоя подвергается повышению дискретизации. Сформированные данные после повышающей дискретизации имеют такую же пространственную размерность, как видеоинформация улучшающего слоя, и используются в качестве данных прогнозирования для остатка улучшающего слоя. С другой стороны, SVC JD8 предлагает использование билинейного фильтра для этого повышения дискретизации. Для двухэлементной пространственной масштабируемости расстояния пикселов, используемые для того, чтобы извлекать весовые коэффициенты при билинейном повышении дискретизации в горизонтальном направлении, показаны на фиг 6. Билинейное повышение дискретизации в вертикальном измерении выполняется таким же образом, как в горизонтальном направлении.
Фиг. 6 показывает строку пикселов в блоке базового слоя и строку пикселов в блоке после повышающей дискретизации, соответствующем пространственному разрешению улучшающего слоя. Как показано на фиг. 6, остаточные значения после повышающей дискретизации p(e0) и p(e1) в позициях пикселов e0 и e1 извлекаются согласно уравнениям (1) и (2), где b0 и b1 - это ближайшие целочисленные позиции пикселов в базовом слое.
(1)
(2)
Для ESS с масштабным множителем 5:3 весовые коэффициенты, используемые при билинейном повышении дискретизации в горизонтальном направлении, показаны на фиг. 7. С другой стороны, билинейное повышение дискретизации в вертикальном измерении выполняется таким же образом, как в горизонтальном направлении.
На фиг. 7 остаточные значения после повышающей дискретизации от p(e0) до p(e4) в позициях пикселов от e0 до e4 извлекаются так, как показано в уравнениях (3)-(7), где b0 к b4 - это целочисленные позиции пикселов в базовом слое, используемом при интерполяции, а e0-e4 - это позиции пикселов в слое после повышающей дискретизации, который соответствует пространственному разрешению улучшающего слоя.
(3)
(4)
(5)
(6)
(7)
Неоднородность на границах блоков существует в восстановленном остаточном сигнале в базовом слое. Позиции, где неоднородность существует, зависят от размера преобразования, используемого для того, чтобы кодировать видео базового слоя. Когда используется блочное преобразование 4×4, неоднородность существует на границах блоков 4×4. Когда используется блочное преобразование 8×8, неоднородность существует на границах блоков 8×8. В JD8, если два пиксела базового слоя, использованные в билинейной интерполяции (к примеру, b0 и b1 на фиг. 6), принадлежат двум различным блокам, то билинейная интерполяция отключается. Вместо этого значения после повышающей дискретизации извлекаются посредством копирования из ближайшего соседнего пиксела в базовом слое.
В примере двухэлементной пространственной масштабируемости на фиг. 6, если пикселы в позиции b0 и b1 принадлежат двум блокам, то пикселы в e0 и e1 извлекаются с использованием уравнений (8) и (9) вместо (1) и (2):
(8)
(9)
В ESS границы блоков кодирования в базовом слое не совмещаются с границами блоков кодирования в улучшающем слое. Следовательно, блок после повышающей дискретизации, соответствующий разрешению улучшающего слоя, может содержать пикселы, интерполированные из различных блоков кодирования базового слоя. Для ESS с пространственным отношением 5:3 (фиг. 7) пример совмещения блоков может быть найден так, как показано на фиг. 8. На фиг. 8, пикселы B0-B3 принадлежат одному блоку кодирования базового слоя, а пикселы B4-B5 принадлежат другому блоку кодирования базового слоя (при условии, что используется преобразование 4×4). В этом случае неоднородность сигнала может существовать между пикселами B3 и B4. В слое после повышающей дискретизации, который соответствует пространственному разрешению улучшающего слоя, пикселы E0-E4 интерполируются или копируются из пикселов базового слоя B0-B3, а пикселы E5-E7 интерполируются или копируются из пикселов базового слоя B3-B5. При условии что пикселы после повышающей дискретизации, помеченные как e0-e7, принадлежит одному блоку кодирования после повышающей дискретизации 8x8, неоднородность сигнала из базового слоя переносится на слой после повышающей дискретизации 8x8. В частности, поскольку пикселы базового слоя в b3 и b4 принадлежат двум блокам базового слоя, согласно традиционным технологиям, пиксел после повышающей дискретизации в позиции e5 копируется из пиксела базового слоя в позиции b4 вместо интерполяции из пикселов в b3 и b4. Эта принудительная копия (согласно традиционным технологиям, заданным в JD8) может обострять проблему неоднородности сигнала в блоке улучшающего слоя 8×8. Это, в свою очередь, может приводить к менее точному остаточному прогнозированию.
В этом раскрытии сущности рассматривается схема адаптивного остаточного повышения дискретизации. Схема адаптивного остаточного повышения дискретизации позволяет уменьшать неоднородность сигнала в блоке данных после повышающей дискретизации посредством принятия во внимание относительного совмещения блоков между базовым слоем и улучшающим слоем. Чтобы дополнительно повышать качество остаточного сигнала после повышающей дискретизации, адаптивная фильтрация нижних частот может быть применена к остаточному сигналу в базовом слое (до повышения дискретизации) и/или к остаточному сигналу в улучшающем слое (после повышающей дискретизации). Например, фильтры 47 и 65 по фиг. 2 и 3 соответственно могут содержать фильтры нижних частот, которые упрощают эту фильтрацию улучшающего слоя после повышающей дискретизации. Хотя на фиг. 2 и 3 фильтрация нижних частот иллюстрируется как применяемая к остаточному сигналу в базовом слое до повышения дискретизации, этот фильтр нижних частот (элементы 47 и 65 на фиг. 2 и 3) также может находиться после модуля 45 повышения дискретизации и после модуля 59 повышения дискретизации и до сумматора 49A и сумматора 57.
Обобщая, в процессе остаточного повышения дискретизации, как указано в SVC JD8, для каждой позиции пиксела в данных после повышающей дискретизации сначала определяются соответствующие позиции пикселов базового слоя. Если пикселы базового слоя принадлежат одному блоку кодирования базового слоя в данном направлении (горизонтальном или вертикальном), то билинейная интерполяция в этом направлении активируется с тем, чтобы получать значение данных после повышающей дискретизации. Иначе (пикселы базового слоя принадлежат различным блокам кодирования базового слоя в данном направлении), значение данных после повышающей дискретизации определяется посредством копирования из ближайшего соседнего пиксела в базовом слое.
Остаточное повышение дискретизации, как в настоящий момент задано в SVC JD8, может обострять проблему неоднородности сигнала в блоках улучшающего слоя, особенно в случае расширенной пространственной масштабируемости, где совмещение блоков базового и улучшающего слоя может быть произвольным. Такая неоднородность сигнала может искажать сигнал после повышающей дискретизации и снижать его точность как сигнала прогнозирования, когда используется в остаточном прогнозировании.
Согласно этому раскрытию сущности решение относительно того, следует активировать интерполяцию или копировать из ближайшего соседнего пиксела, может быть определено в зависимости от совмещения между блоками базового слоя и улучшающего слоя. Рассмотрим фиг. 8 в качестве примера. Пиксел улучшающего слоя, соответствующий позиции пиксела после повышающей дискретизации e5, находится в блоке кодирования 8x8 при разрешении улучшающего слоя. В этом случае, вместо копирования из пиксела базового слоя в позиции b4 или , может быть активирована билинейная интерполяция между пикселами базового слоя в позициях b3 и b4, чтобы уменьшать неоднородность сигнала и повышать точность прогнозирования. Таким образом, значение пиксела после повышающей дискретизации в e5 может быть извлечено с помощью уравнения (10):
(10)
Копирование из ближайшего соседнего пиксела может быть активировано только тогда, когда оба из следующих условий являются истиной.
C1. Пиксел после повышающей дискретизации, который должен быть интерполирован, находится на границе блока кодирования улучшающего слоя.
C2. Пикселы базового слоя, участвующие в процессе интерполяции, принадлежат различным блокам кодирования базового слоя.
Система кодирования видео может поддерживать больше чем одно блочное преобразование. Например, в H.264/AVC целочисленные блочные преобразования как 4×4, так и 8×8 поддерживаются для блока сигнала яркости, тогда как только преобразование 4×4 применяется к блоку сигнала цветности. Для компонента сигнала цветности, предусмотрено дополнительное DC-преобразование по DC-коэффициентам блоков 4×4. Поскольку это не меняет того факта, что артефакты блочности возникают на границах блоков 4×4, это преобразование не рассматривается в пояснении этого раскрытия сущности.
Блочное преобразование, которое применяется к остаточному сигналу, кодируется в потоке видеобитов как синтаксический элемент уровня макроблока. В контексте SVC тип блочного преобразования, применяемого к блоку кодирования базового слоя, известен как кодеру, так и декодеру, когда выполняется остаточное повышение дискретизации. Для улучшающего слоя декодер может знать тип блочного преобразования, используемый для того, чтобы кодировать остаток улучшающего слоя. Тем не менее, на стороне кодера, когда остаточный сигнал базового слоя подвергается повышению дискретизации, фактическое блочное преобразование, которое должно использоваться для того, чтобы кодировать остаток улучшающего слоя, еще не известно. Одно решение состоит в том, чтобы подвергнуть повышению дискретизации остаток базового слоя на основе правил, заданных выше, по-разному для различных типов блочного преобразования, испробованных в процессе выбора режима.
Два альтернативных способа могут использоваться для того, чтобы смягчать эту проблему и предоставлять общие правила как для кодера, так и для декодера, чтобы выбирать размер блока кодирования улучшающего слоя и, следовательно, идентифицировать границу блока кодирования.
[Правило A блоков кодирования]. Размер блоков кодирования улучшающего слоя может предположительно составлять 8×8 для компонента сигнала яркости и 4×4 для компонентов сигнала цветности.
[Правило B блоков кодирования]. Размер блоков кодирования улучшающего слоя может предположительно составлять 8×8 как для компонента сигнала яркости, так и для компонентов сигнала цветности.
Как только блоки кодирования в базовом слое и в улучшающем слое выбраны с помощью любого из вышеупомянутых правил, то находится ли пиксел(ы), участвующий в процессе интерполяции, на границах блоков кодирования, может быть определено следующим образом.
a. Пиксел базового слоя, который должен использоваться при интерполяции пиксела после повышающей дискретизации, может считаться находящимся на границе блока кодирования базового слоя в данном направлении (горизонтальном или вертикальном), либо если он является последним пикселом в блоке кодирования базового слоя, либо если он является первым пикселом в блоке кодирования базового слоя.
b. Пиксел после повышающей дискретизации, который должен быть интерполирован, может считаться находящимся на границе блока улучшающего слоя в данном направлении (или горизонтальном или вертикальном), если он является последним пикселом в блоке кодирования улучшающего слоя либо если он является первым пикселом в блоке кодирования улучшающего слоя.
Эти правила полагают, что граница блока кодирования составляет 1 пиксел в ширину на каждой стороне. Тем не менее, граница блока кодирования может рассматриваться как имеющая ширину, отличную от 1 пиксела на каждой стороне. Кроме того, базовый слой и улучшающий слой могут иметь различные определения границ блока кодирования. Например, базовый слой может задавать границу блока кодирования равной одному пикселу в ширину на каждой стороне, тогда как улучшающий слой может задавать границу блока кодирования более широкой чем один пиксел на каждой стороне или наоборот.
Отметим, что объем этого раскрытия сущности не ограничен использованием билинейной интерполяции. Решение по повышению дискретизации на основе совмещения блоков между базовым слоем и улучшающим слоем может быть применено к любой схеме интерполяции. Пространственные отношения 2:1 и 5:3, а также соответствующее совмещение блоков для этих отношений и соответствующие весовые коэффициенты, задаваемые в уравнениях интерполяции, предоставляются выше в качестве примеров, но не имеют намерение ограничивать объем этого раскрытия сущности. Кроме того, раскрытая схема может быть применена к остаточному повышению дискретизации в других системах и/или стандартах кодирования видео, где может использоваться размер блока кодирования, отличный от 4×4 и 8×8. Интерполяция также может использовать средние взвешенные нескольких пикселов, находящихся с обеих сторон пиксела, который должен быть интерполирован.
Чтобы дополнительно смягчать проблему неоднородности сигнала на границах блоков в остатке базового слоя, которая может проявляться как внутренние пикселы в данных после повышающей дискретизации, перед повышением дискретизации, фильтрация нижних частот для остаточного сигнала базового слоя может уменьшать эту неоднородность и повышать качество остатка после повышающей дискретизации. Например, операции в уравнениях (11) и (12) могут выполняться для значений пикселов в позициях b3 и b4 в базовом слое до того, как уравнение (13) применяется для того, чтобы получать значение пиксела в e5 на фиг. 8. С другой стороны, это может быть реализовано через фильтры 47 и 65 (к примеру, фильтры нижних частот), расположенные до модуля 45 повышения дискретизации (фиг. 2) или модуля 59 повышения дискретизации (фиг. 3).
(11)
(12)
(13)
В уравнениях (11) и (12) сглаживающий фильтр [1,2,1] используется в качестве примера. Альтернативно, модифицированный фильтр нижних частот с меньшим эффектом сглаживания, например с коэффициентами ответвления [1,6,1] вместо [1,2,1], может использоваться в (11) и (12). Кроме того, адаптивный фильтр нижних частот, который регулирует интенсивность фильтрации в зависимости от характера и величины неоднородности базового слоя, может быть применен к остаточному сигналу базового слоя до того, как выполняется повышение дискретизации. Фильтр нижних частот может быть применен только к пикселам на границах блоков базового слоя (b3 и b4 на фиг. 8), или, альтернативно, он может быть применен также к пикселам близко к границам блоков (к примеру, b2 и b5 на фиг. 8).
Решение относительно того, следует ли применять фильтр нижних частот к сигналу базового слоя перед повышением дискретизации, может быть основано на позициях участвующих пикселов улучшающего слоя и базового слоя. Например, дополнительный фильтр нижних частот может быть применен к пикселам базового слоя, если оба из следующих условий являются истиной.
1. Пикселы базового слоя, которые должны использоваться в процессе интерполяции, принадлежат различным блокам кодирования базового слоя.
2. Пиксел после повышающей дискретизации, который должен быть интерполирован, соответствует внутреннему пикселу в блоке кодирования улучшающего слоя. Блок кодирования после повышающей дискретизации может быть определен с помощью либо правила A блока кодирования, либо правила B блока кодирования, поясненных выше.
Другой способ уменьшать неоднородность сигнала в пикселах, внутренних относительно блока кодирования после повышающей дискретизации, состоит в том, чтобы применять фильтр нижних частот к сигналу после повышающей дискретизации после интерполяции. Это может быть выполнено посредством переупорядочения фильтров 47 и 65 на фиг. 2 и фиг. 3 так, чтобы применяться после модулей 45 и 59 повышения дискретизации. Используя пиксел в позиции e5 на фиг. 8 в качестве примера, после того как p(e5) получается с помощью уравнений (10) и (11), следующее может быть применено:
(14)
В уравнении (14) p(e4) и p(e6) являются значениями пикселов после повышающей дискретизации в позициях e4 и e6. С другой стороны, сглаживающий фильтр [1,2,1] используется в качестве примера. Также может быть применена альтернативная фильтрация нижних частот. Например, может быть применен модифицированный сглаживающий фильтр с коэффициентами ответвления [1,6,1]. Альтернативно, может быть применена адаптивная фильтрация нижних частот на основе характера и величины неоднородности сигнала.
Решение о том, следует ли применять дополнительный фильтр нижних частот, может быть основано на позициях пикселов после повышающей дискретизации и участвующих пикселов базового слоя. Например, дополнительный фильтр нижних частот может быть применен, если оба из следующих условий являются истиной.
1. Пиксел после повышающей дискретизации соответствует внутреннему пикселу в блоке кодирования улучшающего слоя. Блок кодирования улучшающего слоя может быть определен с помощью либо правила A блока кодирования, либо правила B блока кодирования (как изложено выше), либо любых других правил блока кодирования.
2. Пикселы базового слоя, используемые в процессе интерполяции, принадлежат различным блокам кодирования базового слоя.
SVC поддерживает остаточное прогнозирование для того, чтобы повышать производительность кодирования в улучшающем слое. В пространственной масштабируемости остаточный сигнал базового слоя подвергается повышению дискретизации до использования в остаточном прогнозировании. Неоднородность сигнала в блоках кодирования базового слоя может существовать в остатке базового слоя, и эта неоднородность сигнала может быть перенесена на сигнал после повышающей дискретизации. В случае ESS позиции, где эта наследованная неоднородность может проявляться, могут быть произвольными. Чтобы повышать качество сигнала после повышающей дискретизации, схема адаптивного остаточного повышения дискретизации для масштабируемого кодирования видео поясняется в этом раскрытии сущности.
В ходе остаточного повышения дискретизации существующая схема в SVC JD8 предотвращает интерполяцию между пикселами от различных блоков кодирования базового слоя. Напротив, с предложенной адаптивной схемой повышения дискретизации этого раскрытия сущности относительное совмещение блоков между базовым слоем и улучшающим слоем может рассматриваться в процессе повышения дискретизации. В частности, когда пиксел, который должен быть подвергнут повышению дискретизации, соответствует внутреннему пикселу блока кодирования улучшающего слоя, интерполяция вместо копирования из ближайшего соседнего пиксела может использоваться для того, чтобы уменьшать неоднородность сигнала в блоке кодирования улучшающего слоя.
Кроме того, как отмечено выше, дополнительная фильтрация нижних частот может быть применена к остаточному сигналу как до, так и после интерполяции, чтобы дополнительно уменьшать неоднородность сигнала, которая может существовать в блоке кодирования улучшающего слоя. В частности, если пиксел после повышающей дискретизации соответствует внутреннему пикселу соответствующего блока кодирования улучшающего слоя и участвующие пикселы базового слоя находятся на или близко к границам блока кодирования базового слоя, то следующее может быть применено.
1. Перед интерполяцией сглаживающий фильтр или адаптивный фильтр нижних частот может быть применен к пикселам базового слоя, которые находятся на или близко к границам блока кодирования базового слоя.
2. После интерполяции сглаживающий фильтр или адаптивный фильтр нижних частот может быть применен к пикселу улучшающего слоя, который является внутренним пикселом в блоке кодирования улучшающего слоя.
Другим фактором, который должен учитываться при решении о том, следует активировать интерполяцию или копирование ближайшего соседа в ходе остаточного повышения дискретизации, являются режимы кодирования (взаимно кодированный против внутренне кодированного) участвующих блоков базового слоя. В SVC повышение дискретизации применяется только к остаточному сигналу от взаимно кодированных блоков. В JD8, когда видеоблок базового слоя является внутренне кодированным, его остаточный сигнал сбрасывается до нуля в остаточном изображении базового слоя. Это влечет за собой сильную неоднородность сигнала в остаточных блоках базового слоя, когда режим кодирования изменяется. Следовательно, может быть преимущественным не применять интерполяцию между двумя пикселами базового слоя, если они принадлежат блокам с различными режимами кодирования. Другими словами, следующее решение может использоваться.
1. Если два участвующих пиксела базового слоя принадлежат двум блокам кодирования базового слоя, один из которых является внутренне кодированным, а другой является взаимно кодированным, то используется копирование ближайшего соседа.
Вышеупомянутое правило может быть комбинировано с правилами адаптивного выбора интерполяции на основе совмещения блоков, как изложено в этом раскрытии сущности. Когда комбинированы, адаптивный выбор интерполяции может быть следующим.
Копирование из ближайшего соседнего пиксела может быть активировано, когда любое из следующих условий 1 и 2 является истиной.
1. Если пикселы базового слоя, участвующие в процессе интерполяции, принадлежат различным блокам кодирования базового слоя, и блоки базового кодирования имеют различные режимы кодирования.
2. Оба из следующих условий являются истиной:
a. Пиксел после повышающей дискретизации, который должен быть интерполирован, находится на границе блока кодирования улучшающего слоя;
b. Пикселы базового слоя, участвующие в процессе интерполяции, принадлежат различным блокам кодирования базового слоя.
подчеркнутые условия
В нижеприведенном псевдокоде  могут быть добавлены к логике, изложенной в JD8, в ходе остаточного повышения дискретизации и прогнозирования, чтобы реализовывать технологии, согласованные с этим раскрытием сущности.
//Пусть b0 и b1 - это два пиксела базового слоя, используемые в интерполяции.
//Пусть w - это параметр весового коэффициента, используемый в билинейной интерполяции.
//Пусть e - это пиксел после повышающей дискретизации, который должен быть извлечен,
b0 или b1 принадлежит внутренне кодированному блоку кодирования базового слоя OR
если (
AND
(b0 и b1 принадлежат двум блокам кодирования базового слоя
e находится на границе блока улучшающего слоя
)),
{
p(e) = (w>1/2)? p (b1):p (b0)
}
else
{
p(e)=(1-w) *p (b0)+w*p (b1)
}
Размер блока базового слоя - это фактический размер блока, используемый в кодировании базового слоя. Синтаксический элемент FRext может быть задан как часть заголовка блока. Если FRext деактивирован, то размер блока улучшающего слоя, как также известно, 4×4. Тем не менее, если преобразования 4×4 и 8×8 разрешены (т.е. FRext активирован) для улучшающего слоя, на стороне кодера, размер блока (т.е. размер преобразования) в улучшающем слое еще не известен, когда остаточное повышение дискретизации выполняется. В этой ситуации (FRext активирован для улучшающего слоя) размер блока улучшающего слоя может предположительно составлять 8×8 для сигнала яркости и 4×4 для сигнала цветности. Таким образом, для сигнала яркости пиксел после повышающей дискретизации в позиции e считается пикселом границы блока, если e=8*m-1 или e=8*m (m - это целое число). Для сигнала цветности пиксел после повышающей дискретизации в позиции e считается пикселом границы блока, если e=4*m-1 или e=4*m.
подчеркиваниями
Для декодирования изменение синтаксических элементов не требуется. Процесс декодирования JD8 (подпункт G.8.10.3) может модифицироваться следующим образом, при этом модификации показаны .
Для билинейной интерполяции для остаточного прогнозирования входные данные следующие:
...
- Переменная blkSize (blkSize = 8 или 4 для сигнала яркости и blkSize = 4 для сигнала цветности).
- матрица transBlkType[x, y], где x=0...mb-1 и y=0...nb-1.
Выходными данными этого процесса является матрица resInterp[x, y], где x=0...m-1 и y=ys...ye-1.
- Пусть переменная temp1 извлекается следующим образом.
или 0<(x%blkSize)<(blkSize-1), и transBlkType[x1, y1] равна transBlkType[x2, y2]
- Если transBlkIdx[x1, y1] равна transBlkIdx[x2, y1]
temp1 = r[x1, y1]*(16-(posX[x]%16))+r[x2, y1]*(posX[x]%16) (G-544)
...
- Пусть переменная temp2 извлекается следующим образом.
или 0<(x%blkSize)<(blkSize-1), и transBlkType[x1, y2] равна transBlkType[x2, y2]
- Если transBlkIdx[x1, y2] равна transBlkIdx[x2, y2]
temp2=r[x1, y2]*(16-(posX[x]%16))+r[x2, y2]*(posX[x]%16) (G-547)
...
- Пусть resInterp извлекается следующим образом.
или 0<(y%blkSize)<(blkSize-1), и transBlkType[x1, y1] равна transBlkType[x1, y2]
- Если transBlkIdx[x1, y1] равна transBlkIdx[x1, y2]
resInterp[x, y]=(temp1*(16-(posY[y]%16))+temp2*(posY[y]%16)+(128))>>8) (G-550)
...
Моделирование выполнялось согласно базовому эксперименту 2 (CE2), условия испытаний, указанные в JVT-V302 и моделировании, демонстрировали улучшения качества видео согласно пиковому отношению "сигнал-шум" (PSNR), когда технологии этого раскрытия сущности используются относительно традиционных технологий, изложенных в JD8. В случае ESS предложенные незначительные изменения в остаточном повышении дискретизации предоставляют очень простой и эффективный способ уменьшать артефакты блочности в остатке после повышающей дискретизации в блоке кодирования улучшающего слоя. Результаты моделирования показывают, что предложенное изменение повышает производительность кодирования по сравнению с JSVM_7_13 для всех условий испытаний CE2. Помимо этого предложенная схема значительно улучшает визуальное качество за счет подавления неприятных артефактов блочности в восстановленном видео улучшающего слоя.
Фиг. 9 является блок-схемой последовательности операций, иллюстрирующей технологию, согласованную с этим раскрытием сущности. Фиг. 9 описывается с точки зрения кодера, хотя аналогичный процесс был бы выполнен посредством декодера. Как показано на фиг. 9, кодер 32 базового слоя кодирует информацию базового слоя (200), а кодер 34 улучшающего слоя кодирует информацию улучшающего слоя (202). Как часть процесса кодирования улучшающего слоя кодер 34 улучшающего слоя (к примеру, видеокодер 50, показанный на фиг. 2) принимает информацию базового слоя (204). Фильтр 47 может выполнять необязательную фильтрацию границ блоков информации базового слоя (206). Модуль 45 повышения дискретизации подвергает повышению дискретизации информацию базового слоя, чтобы формировать видеоблоки после повышающей дискретизации с использованием различных технологий и правил, заданных в данном документе, чтобы выбирать между интерполяцией или копированием ближайшего соседа (208). Необязательный фильтр 47 также может быть применен после модуля 45 повышения дискретизации для пикселов видео улучшающего слоя, которые интерполируются от пикселов границы блока базового слоя (210) (к примеру, пиксел e5 на фиг. 8 и уравнение 14), а видеокодер 50 использует данные после повышающей дискретизации для того, чтобы кодировать информацию улучшающего слоя (212).
Технологии, описанные в этом раскрытии сущности, могут быть реализованы в одном или более процессорах, таких как микропроцессор общего назначения, процессор цифровых сигналов (DSP), специализированная интегральная схема (ASIC), программируемая пользователем вентильная матрица (FPGA) или другие эквивалентные логические устройства.
Технологии, описанные в данном документе, могут быть реализованы в аппаратных средствах, программном обеспечении, микропрограммном обеспечении или в любой их комбинации. Любые признаки, описанные как модули или компоненты, могут быть реализованы совместно в интегральном логическом устройстве или отдельно как дискретные, но имеющие возможность взаимодействовать логические устройства. Если реализованы в программном обеспечении, технологии могут быть осуществлены, по меньшей мере, частично посредством машиночитаемого носителя, содержащего инструкции, которые, когда приводятся в исполнение, выполняют один или более способов, описанных выше, Машиночитаемый носитель может формировать часть компьютерного программного продукта, который может включать в себя упаковочный материал. Машиночитаемые носители могут содержать оперативное запоминающее устройство (RAM), такое как синхронное динамическое оперативное запоминающее устройство (SDRAM), постоянное запоминающее устройство (ROM), энергонезависимое оперативное запоминающее устройство (NVRAM), электрически стираемое программируемое постоянное запоминающее устройство (EEPROM), флэш-память, магнитные или оптические носители хранения данных и т.п. Дополнительно или альтернативно, технологии могут быть реализованы, по меньшей мере, частично посредством машиночитаемой среды связи, которая переносит или передает код в форме инструкций или структур данных и которая может быть доступной, считываться и/или приводиться в исполнение посредством компьютера.
Программный код может быть выполнен посредством одного или более процессоров, DSP, микропроцессоров общего назначения, ASIC, FPGA или других эквивалентных интегрированных или дискретных логических схем. Соответственно, термин "процессор" при использовании в данном документе может означать любую вышеуказанную структуру или другую структуру, подходящую для реализации технологий, описанных в данном документе. В этом раскрытии сущности термин "процессор" имеет намерением охватывать любую комбинацию из одного или более микропроцессоров, DSP, ASIC, FPGA или логики. Помимо этого в некоторых аспектах функциональность, описанная в данном документе, может быть предоставлена в рамках специализированных программных модулей или аппаратных модулей, выполненных с возможностью кодирования или декодирования либо встроенных в комбинированный видеокодер-декодер (кодек).
Если реализовано в аппаратных средствах, это раскрытие сущности может быть направлено на схему, такую как интегральная схема, набор микросхем, ASIC, FPGA, логические или различные комбинации вышеозначенного, выполненные с возможностью выполнять одну или более технологий, описанных в данном документе.
Описаны разные варианты осуществления изобретения. Эти и другие варианты осуществления находятся в рамках объема прилагаемой формулы изобретения.