Способ и устройство взвешенного прогнозирования для масштабируемого видеокодирования
Иллюстрации
Показать всеИзобретение относится к кодированию и декодированию видеосигналов и, в частности, к способами и устройствам взвешенного прогнозирования для масштабируемого кодирования и декодирования видеосигналов. Техническим результатом является снижение объема памяти и/или снижение сложности кодера/декодера и экономия количества бит при очень низких скоростях передачи данных. Указанный технический результат достигается тем, что масштабируемый видеокодер содержит кодер для кодирования блока на повышенном уровне изображения посредством применения к опорному изображению повышенного уровня того же самого весового параметра, который применялся к опорному изображению более низкого уровня, используемого для кодирования блока на более низком уровне изображения. Блок на повышенном уровне соответствует блоку на более низком уровне, и опорное изображение повышенного уровня соответствует опорному изображению более низкого уровня. 3 н. и 28 з.п. ф-лы, 6 ил., 1 табл.
Реферат
Настоящая заявка на изобретение заявляет приоритет предварительной заявки США № 60/701464, поданной 21 июля 2005 г. под названием "Способ и устройство взвешенного прогнозирования для масштабированного видеокодирования", которая включена в настоящую заявку путем ссылки на нее во всей ее полноте.
ОБЛАСТЬ ТЕХНИКИ
Настоящее изобретение, в целом, связано с кодированием и декодированием видеосигналов и, более конкретно, со способами и устройством взвешенного прогнозирования для масштабируемого кодирования и декодирования видеосигналов.
УРОВЕНЬ ТЕХНИКИ
Стандарт комитета-4 по стандартизации методов цифровой компрессии потоков видеоданных Международной Организации по Стандартизации/Международной Электротехнической Комиссии (ISO/IEC) (MPEG-4), Часть 10, Перспективное видеокодирование (AVC) / стандарт Международного Союза Электросвязи, сектор связи (ITU-T) H.264 (здесь далее "стандарт MPEG4/H.264" или просто "стандарт H.264") является первым международным стандартом по кодированию видеосигналов, содержащим инструмент взвешенного прогнозирования (WP). Взвешенное прогнозирование было введено для повышения эффективности кодирования. Стандарт масштабируемого видеокодирования (SVC), разработанный как дополнение к стандарту H.264, также использует взвешенное прогнозирование. Однако стандарт SVC явно не определяет взаимосвязь весов между базовым уровнем и повышенными уровнями.
Взвешенное прогнозирование поддерживается в основном, повышенном и высоком профилях стандарта H.264. Использование WP указывается в последовательности набора параметров для секций P и SP, используя поле weighted_pred_flag, и для секций B, используя поле weighting_bipred_idc. Существуют два режима WP, явный режим и неявный режим. Явный режим поддерживается в секциях P, SP и B. Неявный режим поддерживается только в секциях B.
Единый весовой коэффициент и смещение связаны с каждым индексом опорного изображения для каждого цветного компонента в каждой секции. В явном режиме эти параметры WP могут быть закодированы в заголовке секции. При неявном режиме эти параметры выводятся, основываясь на относительном расстоянии (мере подобия) между текущим изображением и его опорными изображениями.
Для каждого макроблока или части макроблока применяемые весовые параметры основываются на индексе опорного изображения (или индексах в случае би-прогнозирования) текущего макроблока или части макроблока. Индексы опорного изображения либо кодируются в потоке двоичных данных, либо могут быть получены, например, для пропущенных макроблоков или макроблоков прямого режима. Применение индекса опорного изображения к сигналу, к которому должны быть применены весовые параметры, является более эффективным для скорости передачи данных по сравнению с требованием к индексу весового параметра в потоке двоичных данных, так как индекс опорного изображения уже доступен на основе других требуемых полей потока двоичных данных.
Многочисленные различные способы масштабируемости были широко исследованы и стандартизированы, в том числе масштабируемость по отношению "сигнал/шум" (SNR), пространственная масштабируемость, временная масштабируемость и точная масштабируемость по качеству в профилях масштабируемости в стандартах MPEG-2 и H.264 или разрабатываемых в настоящее время поправках к стандарту H.264.
Для пространственного, временного масштабирования и масштабирования по SNR обеспечивается высокая степень прогнозирования между уровнями. Интрамакроблоки и интермакроблоки могут прогнозироваться, используя соответствующие сигналы предыдущих уровней. Кроме того, описание движения для каждого уровня может использоваться для прогнозирования описания движения для следующих повышенных уровней. Эти методы делятся на три категории: межуровневое прогнозирование интратекстуры, межуровневое прогнозирование движения и межуровневое прогнозирование остатка.
В модели объединенного масштабируемого видеосигнала (Joint Scaleable Video Model, JSVM) 2.0 макроблок повышенного уровня может использовать межуровневое прогнозирование, используя либо режим "BASE_LAYER_MODE", либо режим "QPEL_REFINEMENT_MODE", как в случае двухэлементного (двухуровневого) пространственного масштабирования. Когда используется межуровневое прогнозирование движения, вектор движения (содержащий свой индекс опорного изображения и ассоциированные весовые параметры) соответствующего (с повышенной дискретизацией) MB на предыдущем уровне используется для прогнозирования движения. Если повышенный уровень и его предыдущий уровень имеют различные значения pred_weight_table(), необходимо сохранять различные наборы весовых параметров для одного и того же опорного изображения на улучшенном уровне.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Эти и другие недостатки и неудобства, существующие на предшествующем уровне техники, устраняются настоящим изобретением, которое направлено на способы и устройства для взвешенного прогнозирования масштабируемого кодирования и декодирования видеосигнала.
В соответствии с особенностью настоящего изобретения обеспечивается масштабируемый видеокодер. Масштабируемый видеокодер содержит кодер для кодирования блока на повышенном уровне изображения посредством применения к опорному изображению повышенного уровня того же самого весового параметра, который был применен к опорному изображению более низкого уровня, использованному для кодирования блока на более низком уровне. Блок на повышенном уровне соответствует блоку на более низком уровне, и опорное изображение повышенного уровня соответствует опорному изображению более низкого уровня.
Согласно другой особенности настоящего изобретения обеспечивается способ масштабируемого видеокодирования. Способ содержит кодирование блока на повышенном уровне изображения, применяя к эталонному изображению повышенного уровня тот же самый весовой параметр, который был применен к опорному изображению более низкого уровня, использованного для кодирования блока на более низком уровне изображения. Блок на повышенном уровне соответствует блоку на более низком уровне, и опорное изображение повышенного уровня соответствует опорному изображению более низкого уровня.
Согласно еще одной особенности настоящего изобретения обеспечивается структура видеосигнала для масштабируемого видеокодирования, содержащая блок, кодированный на повышенном уровне изображения, сформированный посредством применения к опорному изображению повышенного уровня того же самого весового параметра, который был применен к опорному изображению более низкого уровня, использованного для кодирования блока на более низком уровне изображения. Блок на повышенном уровне соответствует блоку на более низком уровне, и опорное изображение на повышенном уровне соответствует опорному изображению на более низком уровне.
Эти и другие особенности, признаки и преимущества настоящего изобретения станут очевидными из последующего подробного описания примеров вариантов осуществления, иллюстрируемых чертежами.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Настоящее изобретение может быть лучше понято в соответствии со следующими пояснительными чертежами, на которых:
Фиг.1 - блок-схема примера кодера согласно модели объединенного масштабируемого видеосигнала (Joint Scaleable Video Model, JSVM) 2.0, к которому могут применяться настоящие принципы;
Фиг.2 - блок-схема примера декодера, к которому могут применяться настоящие принципы;
Фиг.3 - блок-схема последовательности операций примера способа масштабируемого видеокодирования блока изображения, использующего взвешенное прогнозирование в соответствии с примером варианта осуществления настоящих принципов;
Фиг.4 - блок-схема последовательности операций примера способа масштабируемого видеодекодирования, использующего взвешенное прогнозирование в соответствии с примером варианта осуществления настоящих принципов;
Фиг.5 - блок-схема последовательности операций примера способа декодирования синтаксисов level_idc и profile_idc в соответствии с примером варианта осуществления настоящих принципов и
Фиг.6 - блок-схема последовательности операций примера способа декодирования ограничения взвешенного прогнозирования для повышенного уровня в соответствии с примером варианта осуществления настоящих принципов.
ПОДРОБНОЕ ОПИСАНИЕ
Настоящее изобретение относится к способам и устройству взвешенного прогнозирования для масштабируемого кодирования и декодирования видеосигналов.
В соответствии с принципами настоящего изобретения раскрываются способы и устройство, которые повторно используют весовые параметры базового уровня для взвешенного прогнозирования на повышенном уровне. В качестве преимущества, варианты осуществления, соответствующие настоящим принципам, могут экономить объем памяти и/или снижать сложность как кодера, так и декодера. Кроме того, варианты осуществления в соответствии с настоящими принципами могут также экономить количество бит при очень низких скоростях передачи данных.
Настоящее описание иллюстрирует принципы настоящего изобретения. Таким образом, должно быть понятно, что специалисты в данной области техники смогут предложить различные варианты, которые, хотя и не описаны или не показаны здесь в явном виде, осуществляют принципы изобретения и охватываются его сущностью и объемом.
Все примеры и условный язык, представленные здесь во всех подробностях, предназначены для описательных целей, чтобы помочь читателю в понимании принципов изобретения и концепций, внесенных изобретателем в дальнейшее развитие техники, и должны истолковываться без ограничения в таких конкретно представленных примерах и условиях.
Кроме того, все определения представленных здесь принципов, особенностей и вариантов осуществления изобретения, а также их конкретных примеров предназначены для осуществления как его структурных, так и функциональных эквивалентов. Дополнительно, подразумевается, что такие эквиваленты содержат как известные в настоящее время эквиваленты, так и эквиваленты, которые будут разработаны в будущем, то есть любые разработанные элементы, которые исполняют ту же самую функцию, независимо от структуры.
Таким образом, например, для специалистов в данной области техники должно быть понятно, что представленные блок-схемы являются концептуальными представлениями иллюстративной схемотехники, реализующей принципы изобретения. Аналогично, должно быть понятно, что любые блок-схемы, блок-схемы последовательностей операций способа, диаграммы изменения состояния, псевдокоды и т.п. представляют различные процессы, которые в значительной степени могут быть представлены на машиночитаемых носителях информации и выполняться компьютером или процессором, независимо от того, показан ли такой компьютер или процессор в явном виде.
Функции различных элементов, показанных на чертежах, могут обеспечиваться, используя специализированное оборудование, а также оборудование, способное выполнять программное обеспечение в сочетании с соответствующим программным обеспечением. Когда функции обеспечиваются процессором, они могут быть обеспечены отдельным специализированным процессором, отдельным совместно используемым процессором или множеством индивидуальных процессоров, некоторые из которых могут использоваться совместно с другими устройствами. Кроме того, явное использование термина "процессор" или "контроллер" не должно истолковываться как относящееся исключительно к оборудованию, способному выполнять программное обеспечение, и может неявно содержать, в частности, цифровой процессор сигналов ("DSP"), постоянное запоминающее устройство ("ROM") для хранения программного обеспечения, оперативное запоминающее устройство ("RAM") и энергонезависимое запоминающее устройство.
Может также обеспечиваться другое оборудование, обычное и/или специализированное. Точно так же любые переключатели, показанные на чертежах, являются только концептуальными. Их функция может выполняться путем работы программной логики, специализированной логики, через взаимодействие программного управления и специализированной логики или даже вручную, и конкретный способ должен выбираться разработчиком, как более конкретно следует из контекста.
В формуле изобретения любой элемент, представленный как средство выполнения указанной функции, предназначен для осуществления любым способом исполнения этой функции, в том числе, например, a) комбинация элементов схемы, которая выполняет эту функцию, или b) программное обеспечение в любой форме, в том числе встроенные программы, микрокоды или им подобное, объединенные с соответствующей схемотехникой для выполнения этого программного обеспечения для исполнения функции. Изобретение, как оно определено такой формулой изобретения, основано на том факте, что функциональные возможности, обеспечиваемые различными перечисленными средствами, объединяются и действуют вместе способом, которого требует формула изобретения. Тем самым считается, что любое средство, которое может обеспечивать эти функциональные возможности, является эквивалентным тем, которые показаны здесь.
В соответствии с вариантами осуществления настоящих принципов описываются способ и устройство, которые повторно используют весовые параметры базового уровня для повышенного уровня. Поскольку базовый уровень является просто более низкой версией повышенного уровня, выгодно, если повышенный уровень и базовый уровень имеют один и тот же набор весовых параметров для одного и того же опорного изображения.
Кроме того, настоящими принципами обеспечиваются другие преимущества/признаки. Одним из преимуществ/признаков является то, что для каждого повышенного уровня может храниться только один единственный набор весовых параметров, что может экономить использование объема запоминающего устройства. Кроме того, когда используется межуровневое прогнозирование движения, декодер должен знать, какой используется набор весовых параметров. Для хранения необходимой информации может использоваться поисковая таблица.
Другим преимуществом/признаком является снижение сложности как кодера, так и декодера. В декодере варианты осуществления настоящих принципов могут понижать сложность синтаксического анализа и поисковой таблицы для определения местоположения правильного набора весовых параметров. В кодере варианты осуществления настоящих принципов могут понижать сложность использования различных алгоритмов и, таким образом, принятия решений для оценки весовых параметров. Когда используется этап обновления и учитываются веса прогнозирования, наличие множества весовых параметров для одного и того же индекса опорного изображения будет делать вывод информации о движении на этапе инверсии-обновления в декодере и на этапе обновления в кодере более сложным.
Еще одним преимуществом/признаком является то, что при очень низких скоростях передачи данных варианты осуществления настоящих принципов также могут давать небольшое преимущество в эффективности кодирования, так как весовые параметры в явном виде не передаются в заголовке секции для повышенного уровня.
На фиг. 1 пример кодера согласно версии 2.0 модели объединенного масштабируемого видеосигнала (в дальнейшем "JSVM2.0"), к которому может быть применено настоящее изобретение, обозначен, в целом, ссылочным номером 100. Кодер 100 JSVM2.0 использует три пространственных уровня и скомпенсированную по движению временную фильтрацию. Кодер 100 JSVM содержит двумерный (2D) дециматор 104, двумерный (2D) дециматор 106, модуль 108 компенсированной по движению временной фильтрации (MCTF), каждый из которых имеет вход для приема данных 102 видеосигнала.
Выход 2D-дециматора 106 подключен для передачи сигнала к входу модуля 110 MCTF. Первый выход модуля 110 MCTF соединен для передачи сигнала с входом кодера 112 движения, а второй выход модуля 110 MCTF соединен для передачи сигнала с входом прогнозирующего модуля 116. Первый выход кодера 112 движения соединен для передачи сигнала с первым входом мультиплексора 114. Второй выход кодера 112 движения 112 соединен для передачи сигнала с первым входом кодера 124 движения. Первый выход модуля 116 прогнозирования соединен для передачи сигнала с входом пространственного преобразователя 118. Выход пространственного преобразователя 118 соединен для передачи сигнала со вторым входом мультиплексора 114. Второй выход модуля 116 прогнозирования соединен для передачи сигнала с входом интерполятора 120. Выход интерполятора соединен для передачи сигнала с первым входом прогнозирующего модуля 122. Первый выход прогнозирующего модуля 122 соединен для передачи сигнала с входом пространственного преобразователя 126. Выход пространственного преобразователя 126 соединен для передачи сигнала со вторым входом мультиплексора 114. Второй выход прогнозирующего модуля 122 соединен для передачи сигнала с входом интерполятора 130. Выход интерполятора 130 соединен для передачи сигнала с первым входом прогнозирующего модуля 134. Выход прогнозирующего модуля 134 соединен для передачи сигнала с пространственным преобразователем 136. Выход пространственного преобразователя соединен для передачи сигнала со вторым входом мультиплексора 114.
Выход 2D-дециматора 104 соединен для передачи сигнала со входом модуля 128 MCTF. Первый выход модуля 128 MCTF соединен для передачи сигнала со вторым входом кодера 124 движения. Первый выход кодера 124 движения соединен для передачи сигнала с первым входом мультиплексора 114. Второй выход кодера 124 движения соединен для передачи сигнала с первым входом кодера 132 движения. Второй выход модуля 128 MCTF соединен для передачи сигнала со вторым входом прогнозирующего модуля 122.
Первый выход модуля 108 MCTF соединен для передачи сигнала со вторым входом кодера 132 движения. Выход кодера 132 движения соединен для передачи сигнала с первым входом мультиплексора 114. Второй выход модуля 108 MCTF соединен для передачи сигнала со вторым входом прогнозирующего модуля 134. Выход мультиплексора 114 обеспечивает выходной поток 138 двоичных данных.
Для каждого пространственного уровня выполняется скомпенсированное по движению временное разложение. Это разложение обеспечивает временную масштабируемость. Информация о движении с более низких пространственных уровней может использоваться для прогнозирования движения на более высоких уровнях. Для кодирования текстуры, чтобы удалить избыточность, может применяться пространственное прогнозирование между соседними пространственными уровнями. Остаточный сигнал в результате внутриуровневого прогнозирования или скомпенсированного по движению межуровневого прогнозирования кодируется путем преобразования. Остаток, соответствующий по качеству базовому уровню, обеспечивает минимальное качество реконструкции на каждом пространственном уровне. Этот базовый уровень качества может кодироваться в поток, совместимый со стандартом H.264, если никакое межуровневое прогнозирование не применяется. Для масштабирования по качеству повышенные уровни качества кодируются дополнительно. Эти повышенные уровни могут выбираться, чтобы обеспечивать грубую или точную масштабируемость по качеству (отношению "сигнал/шум", SNR).
На фиг. 2 пример масштабируемого видеодекодера, к которому может применяться настоящее изобретение, обозначен, в целом, ссылочным номером 200. Вход демультиплексора 202 служит в качестве входа масштабируемого видеодекодера 200 для приема масштабируемого потока двоичных данных. Первый выход демультиплексора 202 соединен для передачи сигнала со входом декодера 204 со статистическим кодированием с масштабированием по SNR и пространственным инверсным преобразованием. Первый выход декодера 204 со статистическим кодированием с масштабированием по SNR и пространственным инверсным преобразованием соединен для передачи сигнала с первым входом прогнозирующего модуля 206. Выход прогнозирующего модуля 206 соединен для передачи сигнала с первым входом модуля 208 инверсии MCTF.
Второй выход декодера 204 со статистическим кодированием с масштабированием по SNR и пространственным инверсным преобразованием соединен для передачи сигнала с первым входом декодера 210 вектора движения (MV). Выход декодера 210 MV соединен для передачи сигнала со вторым входом модуля 208 инверсии MCTF.
Второй выход демультиплексора 202 соединен для передачи сигнала с входом декодера 212 со статистическим кодированием с масштабированием по SNR и пространственным инверсным преобразованием. Первый выход декодера 212 со статистическим кодированием с масштабированием по SNR и пространственным инверсным преобразованием соединен для передачи сигнала с первым входом прогнозирующего модуля 214. Первый выход прогнозирующего модуля 214 соединен для передачи сигнала с входом модуля 216 интерполяции. Выход модуля 216 интерполяции соединен для передачи сигнала со вторым входом прогнозирующего модуля 206. Второй выход прогнозирующего модуля 214 соединен для передачи сигнала с первым входом модуля 218 инверсии MCTF.
Второй выход декодера 212 со статистическим кодированием с масштабированием по SNR и пространственным инверсным преобразованием соединен для передачи сигнала с первым входом декодера 220 MV. Первый выход декодера 220 MV соединен для передачи сигнала со вторым входом декодера 210 MV. Второй выход декодера 220 MV соединен для передачи сигнала со вторым входом модуля 218 инверсии MCTF.
Третий выход демультиплексора 202 соединен для передачи сигнала с входом декодера 222 со статистическим кодированием с масштабированием по SNR и пространственным инверсным преобразованием. Первый выход декодера 222 со статистическим кодированием с масштабированием по SNR и пространственным инверсным преобразованием соединен для передачи сигнала с входом прогнозирующего модуля 224. Первый выход прогнозирующего модуля 224 соединен для передачи сигнала с входом модуля 226 интерполяции. Выход модуля 226 интерполяции соединен для передачи сигнала со вторым входом прогнозирующего модуля 214.
Второй выход прогнозирующего модуля 224 соединен для передачи сигнала с первым входом модуля 228 инверсии MCTF. Второй выход декодера 222 со статистическим кодированием с масштабированием по SNR и пространственным инверсным преобразованием соединен для передачи сигнала с входом декодера 230 MV. Первый выход декодера 230 MV соединен для передачи сигнала со вторым входом декодера 220 MV. Второй выход декодера 230 MV соединен для передачи сигнала со вторым входом модуля 228 инверсии MCTF.
Выход модуля 228 инверсии MCTF используется как выход декодера 200 для вывода сигнала уровня 0. Выход модуля 218 инверсии MCTF используется как выход декодера 200 для вывода сигнала уровня 1. Выход модуля 208 инверсии MCTF используется как выход декодера 200 для вывода сигнала уровня 2.
В первом примере варианта осуществления в соответствии с настоящими принципами новый синтаксис не используется. В этом первом примере варианта осуществления повышенный уровень повторно использует веса базового уровня. Первый пример варианта осуществления может быть реализован, например, как ограничение уровня или профиля. Требование может также указываться в последовательности или в наборах параметров изображения.
Во втором примере варианта осуществления в соответствии с настоящими принципами один элемент синтаксиса, base_pred_weight_table_flag, введен в синтаксис заголовка секции в масштабируемое расширение, как показано в таблице 1, так, чтобы кодер мог адаптивно выбирать, который способ использовать для взвешенного прогнозирования на основании секции. Когда base_pred_weight_table_flag не присутствует, base_pred_weight_ table_flag должно предполагаться равным 0. Когда base_pred_weight_table_flag равно 1, это указывает, что повышенный уровень повторно использует pred_weight_table() из его предыдущего уровня.
В таблице 1 показан синтаксис для взвешенного прогнозирования для масштабируемого видеокодирования.
Таблица 1 | |
В декодере, когда повышенный уровень должен повторно использовать веса с базового уровня, выполняется повторное отображение pred_weight_table() с базового (или предыдущего) уровня на текущий повышенный уровень pred_weight_table(). Этот процесс используется для следующих случаев: в первом случае, один и тот же индекс опорного изображения на базовом уровне и повышенном уровне указывает другое опорное изображение или, во втором случае, опорное изображение, используемое на повышенном уровне, не имеет соответствующего совпадающего изображения на базовом уровне. Для первого случая порядковый номер изображения (POC) используется для отображения весовых параметров на базовом уровне в индексе правого опорного изображения на повышенном уровне. Если многократные весовые параметры используются на базовом уровне, весовые параметры с наименьшим индексом опорного изображения, предпочтительно, но не обязательно, отображаются первыми. Для второго случая предполагается, что для base_pred_weight_table_flag устанавливается 0 для опорного изображения, которое недоступно на повышенном уровне. Повторное отображение pred_weight_table() с базового (или предыдущего) уровня в pred_weight_table() на текущем повышенном уровне выводится следующим образом. Процесс именуется как процесс наследования для pred_weight_table(). В частности, этот процесс наследования осуществляется, когда base_pred_weight_table_flag
равно 1. Результатами этого процесса является следующее:
luma_weight_LX[ ] (с X равным 0 или 1)
luma_offset_LX[ ] (с X равным 0 или 1)
chroma_weight_LX[ ] (с X равным 0 или 1)
chroma_offset_LX[ ] (с X равным 0 или 1)
luma_log2_weight_denom
chroma_log2_weight_denom
Процесс вывода для базовых изображений осуществляется с basePic в качестве выходного результата. Для X, заменяемого 0 или 1, применяется следующее:
- Пусть base_luma_weight_LX[] является значением элемента синтаксиса luma_weight_LX [] для basePic базового изображения.
- Пусть base_luma_offset_LX[] является значением элемента синтаксиса luma_offset_LX[] для basePic базового изображения.
- Пусть base_chroma_weight_LX[] является значением элемента синтаксиса chroma_weight_LX[] для basePic базового изображения.
- Пусть base_chroma_offset_LX [] является значением элемента синтаксиса chroma_offset_LX [] для basePic базового изображения.
- Пусть base_luma_log2_weight_denom является значением элемента синтаксиса luma_log2_weight_denom для basePic базового изображения.
- Пусть base_chroma_log2_weight_denom является значением элемента синтаксиса chroma_Jog2_weight_denom для basePic базового изображения.
- Пусть BaseRefPicListX является списком опорных индексов RefPicListX для basePic базового изображения.
- Для каждого опорного индекса refldxLX в текущем списке опорных индексов секций RefPicListX (контур от 0 до num_ref_idx_IX_active_minus1) его сопутствующие весовые параметры в текущей секции наследуются следующим образом:
- Пусть refPic является изображением, на которое делается ссылка с помощью refldxLX
- Пусть refPicBase, опорное изображение соответствующего базового уровня, считается существующим, если существует изображение, для которого все последующие условия являются истинными.
- Элемент синтаксиса dependency_id для изображения refPicBase равен переменной DependencyldBase изображения refPic.
- Элемент синтаксиса qualityjevel для изображения refPicBase равен переменной QualityLevelBase изображения refPic.
- Элемент синтаксиса fragment_order для изображения refPicBase равен переменной FragmentOrderBase изображения refPic.
- Значение PicOrderCnt (refPic) равно значению PicOrderCnt (refPicBase).
- Имеется индекс baseRefldxLX, равный доступному опорному индексу с самым низким значением в соответствующем списке опорных индексов базового уровня BaseRefPicListX, который ссылается на refPicBase.
- Если обнаружено, что существует refPicBase, то применяется следующее:
- BaseRefldxLX маркируется как недоступный для последующих этапов процесса.
luma_log2_weight_denom =base_luma_log2_weight_denom | (1) |
chroma_log2_weight_denom =base_chroma_log2_weight_denom | (2) |
luma_weight_LX[refldxLX] =base_luma_weight_LX[baseRefldxLX] | (3) |
luma_offset_LX[refldxLX] =base_luma_offset_LX[baseRefldxLX] | (4) |
chroma_weight_LX[refldxLX][0] =base_chroma_weight_LX[baseRefldxl_X][0] | (5) |
chroma_offset_LX[refldxLX][0] =base_chroma_offset_LX [baseRefldxLX][0] | (6) |
chroma_weight_LX[refldxl_X][1] =base_chroma_weight_LX[baseRefldxLX][1] | (7) |
chroma_offset_LX[refldxLX][1] =base_chroma_offset_LX[baseRefldxLX][1] | (8) |
- В противном случае
luma_log2_weight_denom =basejuma_log2_weight_denom | (9) |
chroma_log2_weight_denom =base_chromajog2_weight_denom | (10) |
luma_weight_LX[refldxLX]=1<<luma_log2_weight_denom | (11) |
luma_offset_LX[refldxLX] = 0 | (12) |
chroma_weight_LX[refldxLX][0] =1 << chroma_log2_weight_denom | (13) |
chroma_offset_LX[refldxLX][0] = 0 | (14) |
chroma_weight_LX[refldxLX][1] =1 << chroma_log2_weight_denom | (15) |
chroma_offset_LX[refldxLX][1] = 0 | (16) |
Ниже приводится пример способа реализации процесса наследования:
Если изображение повышенного уровня и изображение базового уровня имеют одно и то же разделение по секциям, повторное отображение pred_weight_table() базового (или более низкого) уровня в pred_weight_table() текущего повышенного уровня может быть выполнено на основе секций. Однако если повышенный уровень и базовый уровень имеют различное разделение на секции, повторное отображение pred_weight_table() базового (или более низкого) уровня в pred_weight_table() текущего повышенного уровня должно выполняться на основании макроблоков. Например, когда базовый уровень и повышенный уровень имеют одни и те же разделения на секции, процесс наследования может вызываться один раз для каждой секции. Напротив, если базовый уровень имеет два разделения, а повышенный уровень имеет три разделения, то процесс наследования осуществляется на основе макроблоков.
На фиг. 3 пример способа масштабируемого видеокодирования блока изображения, использующего взвешенное прогнозирование, обозначается, в целом, ссылочным номером 300.
Блок 305 запуска запускает кодирование текущего изображения повышенного уровня (EL) и передает управление блоку 310 принятия решения. Блок 310 принятия решения определяет, присутствует ли изображение базового уровня (BL) для текущего изображения EL. Если присутствует, то управление передается функциональному блоку 350. В противном случае управление передается функциональному блоку 315.
Функциональный блок 315 получает веса из изображения BL и передает управление функциональному блоку 320. Функциональный блок 320 повторно отображает pred_weight_table() базового уровня BL на pred_weight_table() повышенного уровня и передает управление функциональному блоку 325. Функциональный блок 325 устанавливает base_pred_weight_table_flag как истинное значение и передает управление функциональному блоку 330. Функциональный блок 330 взвешивает опорное изображение полученными весами и передает управление функциональному блоку 335. Функциональный блок 335 записывает base_pred_weight_table_flag в заголовок секции и передает управление блоку 340 принятия решения. Блок 340 принятия решения определяет, действительно ли base_pred_weight_table_flag имеет истинное значение. Если это так, то управление передается функциональному блоку 345. В противном случае управление передается функциональному блоку 360.
Функциональный блок 350 вычисляет веса для изображения EL и передает управление функциональному блоку 355. Функциональный блок 355 устанавливает base_pred_weight_table_flag как ложное значение и передает управление функциональному блоку 330.
Функциональный блок 345 кодирует изображение EL, используя взвешенное опорное изображение, и передает управление блоку 365 окончания.
Функциональный блок 360 записывает веса в заголовок секции и передает управление функциональному блоку 345.
На фиг. 4 пример способа масштабируемого видеодекодирования блока изображения, использующего взвешенное прогнозирование, обозначен, в целом, ссылочным номером 400.
Блок 405 запуска запускает декодирование текущего изображения повышенного уровня (EL) и передает управление функциональному блоку 410. Функциональный блок 410 анализирует base_pred_weight_table_flag в заголовке секции и передает управление блоку 415 принятия решения. Блок 415 принятия решения определяет, действительно ли значение base_pred_weight_table_flag равно единице. Если это так, то управление передается функциональному блоку 420. В противном случае управление передается функциональному блоку 435.
Функциональный блок 420 копирует веса из соответствующего изображения базового уровня (BL) в изображение EL и передает управление функциональному блоку 425. Функциональный блок 425 повторно преобразует pred_weight_table() изображения BL на pred_weight_table() изображения EL и передает управление функциональному блоку 430. Функциональный блок 430 декодирует изображение EL с полученными весами и передает управление блоку 440 окончания.
Функциональный блок 435 анализирует весовые параметры и передает управление функциональному блоку 430.
На фиг. 5 пример способа декодирования синтаксиса leveMdc и profile_idc обозначен, в целом, ссылочным номером 500.
Блок 505 запуска передает управление функциональному блоку 510. Функциональный блок 510 анализирует синтаксис leveljdc и profile_idc и передает управление функциональному блоку 515. Функциональный блок 515 определяет ограничение взвешенного прогнозирования для повышенного уровня, основываясь на анализе, выполненном функциональным блоком 510, и передает управление блоку 520 окончания.
На фиг. 6 пример способа декодирования ограничения взвешенного прогнозирования для повышенного уровня обозначается, в целом, ссылочным номером 600.
Блок 605 запуска передает управление функциональному блоку 610. Функциональный блок 610 анализирует синтаксис для взвешенного прогнозирования для повышенного уровня и передает управление блоку 615 окончания.
Далее описаны некоторые из множества сопутствующих преимуществ/признаков настоящего изобретения, ряд из которых были упомянуты выше. Например, одним из преимуществ/признаков является масштабируемый видеокодер, который содержит кодер для кодирования блока на повышенном уровне изображения, применяя к опорному изображению повышенного уровня тот же самый весовой параметр, который был применен к конкретному опорному изображению более низкого уровня, использованному для кодирования блока на более низком уровне изображения, в котором блок на повышенном уровне соответствует блоку на более низком уровне, и опорное изображение повышенного уровня соответствует конкретному изображению более низкого уровня. Другим преимуществом/признаком является масштабируемый видеокодер, описанный выше, в котором кодер кодирует блок на повышенном уровне путем переключения между явным режимом весового параметра и неявным режимом весового параметра. Еще одним преимуществом/признаком является масштабируемый видеокодер, описанный выше, в котором кодер налагает ограничение, что к опорному изображению повышенного уровня всегда применяется тот же самый весовой параметр, который применялся к конкретному опорному изображению более низкого уровня, когда блок на повышенном уровне соответствует блоку на более низком уровне и опорное изображение повышенного уровня соответствует конкретному опорному изображению более низкого уровня. Кроме того, еще одним другим преимуществом/признаком является масштабируемый видеокодер, имеющий ограничение, как описано выше, причем ограничение определяется как ограничение профиля или уровня или сообщается в наборе последовательности параметров изображений. Дополнительно, еще одним преимуществом/признаком является масштабируемый видеокодер, описанный выше, в котором кодер добавляет синтаксис в заголовок секции для секции на повышенном уровне, чтобы выборочно применять к опорному изображению повышенного уровня тот же самый весовой параметр или другой весовой параметр. Также, другим преимуществом/признаком является масштабируемый видеокодер, описанный выше, в котором кодер выполняет повторное отображение синтаксиса pred_weight_table() более низкого уровня на синтаксис pred_weight_table() повышенного уровня. Дополнительно, другим преимуществом/признаком является масштабируемый видеокодер с повторным отображением, как описано выше, в котором кодер использует порядковый номер изображения для повторного отображения весовых параметров с более низкого уровня на индекс соответствующего опорного изображения на повышенном уровне. Кроме того, еще о