СПОСОБ И УСТРОЙСТВО ДЛЯ ВЗВЕШЕННОГО ПРЕДСКАЗАНИЯ ДЛЯ МАСШТАБИРУЕМОГО КОДИРОВАНИЯ ВИДЕОСИГНАЛА
METHOD AND DEVICE FOR WEIGHTED PREDICTION FOR SCALABLE VIDEO SIGNAL CODING

ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ
Эта заявка испрашивает приоритет по предварительной заявке №60/701464 на выдачу патента США, поданной 21 июля 2005 года и озаглавленной «METHOD AND APPARATUS FOR WEIGHTED PREDICTION FOR SCALABLE VIDEO CODING» («СПОСОБ И УСТРОЙСТВО ДЛЯ ВЗВЕШЕННОГО ПРЕДСКАЗАНИЯ ДЛЯ МАСШТАБИРУЕМОГО КОДИРОВАНИЯ ВИДЕОСИГНАЛА»), которая включена в материалы настоящей заявки посредством ссылки во всей своей полноте.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение в целом относится к кодированию и декодированию видеосигнала, а более точно к способам и устройству для взвешенного предсказания для масштабируемого кодирования и декодирования видеосигнала.
УРОВЕНЬ ТЕХНИКИ ИЗОБРЕТЕНИЯ
Стандарт Усовершенствованного кодирования видеосигнала (AVC) части 10 стандарта 4 Экспертной группы по киноизображению (MPEG-4) Международной организации по стандартизации/Международной электротехнической комиссии (ISO/IEC)/стандарт H.264 Международного союза электросвязи - сектора телекоммуникаций (ITU-T) (в дальнейшем, «стандарт MPEG4/H.264» или просто «стандарт H.264») является первым международным стандартом кодирования видеосигнала для включения в состав инструментального средства Взвешенного предсказания (WP). Взвешенное предсказание применялось для повышения эффективности кодирования. Стандарт масштабируемого кодирования видеосигнала (SVC), разработанный в качестве дополнения стандарта H.264, также применяет взвешенное предсказание. Однако, стандарт SVC не определяет явным образом соотношение весов из базового уровня и его уровней улучшения.
Взвешенное предсказание (WP) поддерживается в основном, расширенном и прямом профилях стандарта H.264. Использование WP указывается в наборе параметров последовательности для серий Р и SP последовательных макроблоков с использованием поля weighted_pred_flag (флага взвешенного предсказания), а для серии В последовательных макроблоков, с использованием поля weighting_bipred_idc (кода идентификации двойного предсказания с весовой обработкой). Существуют два режима WP, явный режим и неявный режим. Явный режим поддерживается в сериях P, SP и В последовательных макроблоков. Неявный режим поддерживается только в серии В последовательных макроблоков.
Одиночный весовой коэффициент и смещение ассоциативно связаны с каждым индексом опорного изображения для каждой цветовой составляющей в каждой серии последовательных макроблоков. В явном режиме, эти параметры WP могут кодироваться в заголовке серии последовательных макроблоков. В неявном режиме, эти параметры выводятся на основании относительного расстояния текущего изображения и его опорных изображений.
Для каждого макроблока или сегмента макроблока, применяемые весовые параметры основаны на индексе опорного изображения (или индексах, в случае двойного предсказания) текущего макроблока или сегмента макроблока. Индексы опорного изображения закодированы либо в битовом потоке, либо могут выводиться, например, для макроблоков чередуемого или прямого режима. Использование индекса опорного изображения для сигнализации, какие весовые параметры следует применять, является эффективным по скорости передачи битов в сравнении с требованием индекса весового параметра в битовом потоке, поскольку индекс опорного изображения уже имеется в распоряжении на основании других требуемых полей битового потока.
Многие различные способы масштабируемости были широко изучены и стандартизованы, в том числе, масштабируемость SNR (отношения сигнал/шум), пространственная масштабируемость, временная масштабируемость и мелкозернистая масштабируемость, в профилях масштабируемости стандартов MPEG-2 и H.264, или разрабатываются в настоящее время в качестве дополнения стандарта H.264.
Для пространственной, временной и относящейся к SNR масштабируемости вводится высокая степень межуровневого предсказания. Макроблоки с внутренним и внешним кодированием могут предсказываться с использованием соответствующих сигналов предыдущих уровней. Более того, описание движения в каждом уровне может использоваться для предсказания описания движения для последующих уровней улучшения. Эти технологии делятся на три категории: межуровневое предсказание внутренней текстуры, межуровневое предсказание движения и межуровневое разностное предсказание.
В Объединенной масштабируемой модели видео (JVSM) 2.0, макроблок уровня улучшения может применять межуровневое предсказание с использованием данных движения масштабированного базового уровня, используя либо «BASE_LAYER_MODE» («Режим базового уровня»), либо «QPEL_REFINEMENT_MODE» («Режим улучшения качества с кодеком QPEL»), как в случае двухэлементной (двухуровневой) пространственной масштабируемости. Когда используется межуровневое предсказание движения, вектор движения (включая его индекс опорного изображения и ассоциативно связанные весовые параметры) соответствующего (подвергнутого повышающей дискретизации) MB (макроблока) в предыдущем уровне используется для предсказания движения. Если уровень улучшения и его предыдущий уровень имеют разные значения pred_weight_table() (таблицы весов предсказания), необходимо сохранять разные наборы весовых параметров для одного и того же опорного изображения в уровне улучшения.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
К преодолению этих и других недостатков и затруднений предшествующего уровня техники приняты меры настоящим изобретением, которое направлено на способы и устройство взвешенного предсказания для масштабируемого кодирования и декодирования видеосигнала.
Согласно аспекту настоящего изобретения, предложен масштабируемый декодер видеосигнала. Масштабируемый декодер видеосигнала включает в себя декодер для декодирования блока в уровне улучшения изображения посредством применения к опорному изображению уровня улучшения такого же весового параметра, как применяемый к опорному изображению нижнего уровня, используемому для декодирования блока в нижнем уровне изображения. Блок в уровне улучшения соответствует блоку в нижнем уровне, а опорное изображение уровня улучшения соответствует опорному изображению нижнего уровня.
Согласно еще одному аспекту настоящего изобретения, предложен способ для масштабируемого декодирования видеосигнала. Способ включает в себя этап декодирования блока в уровне улучшения изображения посредством применения к опорному изображению уровня такого же весового параметра улучшения, как примененный к опорному изображению нижнего уровня, используемому для декодирования блока в нижнем уровне изображения. Блок в уровне улучшения соответствует блоку в нижнем уровне, а опорное изображение уровня улучшения соответствует опорному изображению нижнего уровня.
Согласно еще одному аспекту настоящего изобретения, предложен запоминающий носитель, содержащий масштабируемые данные видеосигнала, закодированные на нем, включающие в себя блок, закодированный в уровне улучшения изображения, сформированный применением к опорному изображению уровня улучшения такого же весового параметра, как применяемый к опорному изображению нижнего уровня, используемому для кодирования блока в нижнем уровне изображения. Блок в уровне улучшения соответствует блоку в нижнем уровне, а опорное изображение уровня улучшения соответствует опорному изображению нижнего уровня.
Эти и другие аспекты, признаки и преимущества настоящего изобретения станут очевидными из последующего подробного описания примерных вариантов осуществления, которое должно читаться в связи с прилагаемыми чертежами.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Настоящее изобретение может быть лучше понято в соответствии со следующими примерными фигурами, на которых:
фиг.1 показывает структурную схему для примерного кодировщика Объединенной масштабируемой модели видео (JVSM) 2.0, к которому могут быть применены настоящие принципы;
фиг.2 показывает структурную схему для примерного декодера, к которому могут быть применены настоящие принципы;
фиг.3 - блок-схема последовательности операций способа для примерного способа масштабируемого кодирования видеосигнала блока изображения с использованием взвешенного предсказания в соответствии с примерным вариантом осуществления настоящих принципов;
фиг.4 - блок-схема последовательности операций способа для примерного способа масштабируемого декодирования видеосигнала блока изображения с использованием взвешенного предсказания в соответствии с примерным вариантом осуществления настоящих принципов;
фиг.5 - блок-схема последовательности операций способа для примерного способа декодирования синтаксических конструкций level_idc и profile_idc в соответствии с примерным вариантом осуществления настоящих принципов; и
фиг.6 - блок-схема последовательности операций способа для примерного способа декодирования ограничения взвешенного предсказания для уровня улучшения в соответствии с примерным вариантом осуществления настоящих принципов.
ПОДРОБНОЕ ОПИСАНИЕ
Настоящее изобретение направлено на способы и устройство взвешенного предсказания для масштабируемого кодирования и декодирования видеосигнала.
В соответствии с принципами настоящего изобретения, раскрыты способы и устройство, которые повторно используют весовые параметры базового уровня для взвешенного предсказания уровня улучшения. Преимущественно, варианты осуществления в соответствии с настоящими принципами могут экономить на памяти и/или сложности для обоих, кодировщика и декодера. Более того, варианты осуществления в соответствии с настоящими принципами также могут экономить биты при очень низких скоростях передачи битов.
Настоящее описание иллюстрирует принципы настоящего изобретения. Соответственно, будет приниматься во внимание, что специалисты в данной области техники будут способны разработать различные компоновки, которые, несмотря на то, что не описаны и не показаны в материалах настоящей заявки явным образом, воплощают принципы изобретения и включены в его сущность и объем.
Все примеры и условные формулировки, изложенные в материалах настоящей заявки, предназначены для образовательных целей, чтобы помочь читателю в понимании принципов изобретения и концепций, внесенных изобретателем в развитие данной области техники, и должны истолковываться в качестве существующих без ограничения такими ясно изложенными примерами и условиями.
Более того, все выражения в материалах настоящей заявки, излагающие принципы, аспекты и варианты осуществления изобретения, а также их конкретные примеры, предназначены для охвата как структурных, так и функциональных их эквивалентов. Дополнительно, подразумевается, что такие эквиваленты включают в себя известные в настоящее время эквиваленты, а также эквиваленты, разработанные в будущем, то есть, любые разработанные элементы, которые выполняют идентичную функцию, независимо от конструкции.
Таким образом, например, специалистами в данной области техники будет приниматься во внимание, что структурные схемы, представленные в материалах настоящей заявки, изображают концептуальные представления иллюстративных схем, воплощающих принципы изобретения. Подобным образом, будет приниматься во внимание, что любые блок-схемы последовательностей операций способов, диаграммы последовательностей операций, диаграммы переходов, псевдокод и тому подобное изображают различные последовательности операций, которые, по существу, могут представляться на машиночитаемых носителях и, значит, выполняться компьютером или процессором, показан или нет такой компьютер или процессор явным образом.
Функции различных элементов, показанных на фигурах, могут обеспечиваться благодаря использованию специализированных аппаратных средств, а также аппаратных средств, допускающих выполнение программного обеспечения в связи с надлежащим программным обеспечением. Когда предусматриваются процессором, функции могут обеспечиваться одиночным выделенным процессором, одиночным совместно используемым процессором или большим количеством отдельных процессоров, некоторые из которых могут совместно использоваться. Более того, явное использование термина «процессор» или «контроллер» не должно толковаться указывающими ссылкой исключительно на аппаратные средства, допускающие выполнение программного обеспечения, и может неявно включать в себя, без ограничения, аппаратные средства цифрового сигнального процессора («ЦСП», «DSP»), постоянное запоминающее устройство («ПЗУ», «ROM») для хранения программного обеспечения, оперативное запоминающее устройство («ОЗУ», «RAM») и энергонезависимую память.
Другие аппаратные средства, стандартные и/или сделанные на заказ, также могут быть включены в состав. Подобным образом, любые переключатели, показанные на фигурах, являются всего лишь понятийными. Их функция может выполняться благодаря работе программной логики, благодаря специализированной логике, благодаря взаимодействию программного управления и специализированной логики, или даже вручную, конкретная технология является выбираемой конструктором так, как точнее понятна из контекста.
В формуле изобретения из этого документа, любой элемент, выраженный в качестве средства для выполнения предписанной функции, предназначен для охвата любого способа выполнения такой функции, в том числе, например, а) сочетания элементов схемы, которые выполняют такую функцию, или b) программного обеспечение в любом виде, поэтому, заключая в себе, микропрограммное обеспечение, микрокод или тому подобное, объединенное с надлежащей схемой для выполнения такого программного обеспечения, чтобы выполнять функцию. Изобретению, в качестве определенного такой формулой изобретения, свойственен тот факт, что функциональные возможности, предусмотренные различными перечисленными средствами, объединены и сведены вместе таким образом, к которому обязывает формула изобретения. Соответственно, считается, что любые средства, которые могут обеспечивать такие функциональные возможности, эквивалентны показанным в материалах настоящей заявки.
В соответствии с вариантами осуществления настоящих принципов, раскрыты способ и устройство, которые повторно используют весовые параметры базового уровня для уровня улучшения. Поскольку базовый уровень является просто подвергнутым пониженной дискретизации вариантом уровня улучшения, выгодно, если уровень улучшения и базовый уровень имеют одинаковый набор весовых параметров для одного и того же опорного изображения.
В дополнение, другие преимущества/признаки предусмотрены настоящими принципами. Одно из преимуществ/признаков состоит в том, что только одному набору весовых параметров необходимо храниться для каждого уровня улучшения, каковое может экономить использование памяти. В дополнение, когда используется межуровневое предсказание движения, декодеру необходимо знать, какой набор весовых параметров используется. Справочная таблица может использоваться для хранения необходимой информации.
Другое преимущество/признак состоит в снижении сложности как кодировщика, так и декодера. В декодере, варианты осуществления настоящих принципов могут уменьшать сложность синтаксического анализа и табличного поиска для определения местонахождения правильного набора весовых параметров. В кодировщике, варианты осуществления настоящих принципов могут снижать сложность использования разных алгоритмов и, таким образом, принятия решений по оценке весовых параметров. Когда используется этап обновления, и учитываются веса предсказания, допущение многочисленных весовых параметров для одного и того же индекса опорного изображения будет делать получение информации о движении, на этапе обращенного обновления в декодере и этапе обновления в кодировщике, более сложным.
Еще одно другое преимущество/признак состоит в том, что при очень низких скоростях передачи битов, варианты осуществления настоящих принципов также могут иметь небольшое преимущество эффективности кодирования, поскольку весовые параметры не передаются в заголовке серии последовательных макроблоков для уровня улучшения явным образом.
Обращаясь к фиг.1, примерный кодировщик версии 2.0 Объединенной масштабируемой модели видео (JVSM) (в дальнейшем, «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 движения соединен сигнальной связью с первым входом кодировщика 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 соединен сигнальной связью со входом масштабируемого по SNR энтропийного декодера 204 с обратным пространственным преобразованием. Первый выход масштабируемого по SNR энтропийного декодера 204 с обратным пространственным преобразованием соединен сигнальной связью с первым входом модуля 206 предсказания. Выход модуля 206 предсказания соединен сигнальной связью с первым входом модуля 208 обратной MCTF.
Второй выход масштабируемого по SNR энтропийного декодера 204 с обратным пространственным преобразованием соединен сигнальной связью с первым входом декодера 210 вектора движения (MV). Выход декодера 210 MV соединен сигнальной связью со вторым входом модуля 208 обратной MCTF.
Второй выход демультиплексора 202 соединен сигнальной связью со входом масштабируемого по SNR энтропийного декодера 212 с обратным пространственным преобразованием. Первый выход масштабируемого по SNR энтропийного декодера 212 с обратным пространственным преобразованием соединен сигнальной связью с первым входом модуля 214 предсказания. Первый выход модуля 214 предсказания соединен сигнальной связью со входом модуля 216 интерполяции. Выход модуля 216 интерполяции соединен сигнальной связью со вторым входом модуля 206 предсказания. Второй выход модуля 214 предсказания соединен сигнальной связью с первым входом модуля 218 обратной MCTF.
Второй выход масштабируемого по SNR энтропийного декодера 212 с обратным пространственным преобразованием соединен сигнальной связью с первым входом декодера 220 MV. Первый выход декодера 220 MV соединен сигнальной связью со вторым входом декодера 210 MV. Второй выход декодера 220 MV соединен сигнальной связью со вторым входом модуля 218 обратной MCTF.
Третий выход демультиплексора 202 соединен сигнальной связью со входом масштабируемого по SNR энтропийного декодера 222 с обратным пространственным преобразованием. Первый выход масштабируемого по SNR энтропийного декодера 222 с обратным пространственным преобразованием соединен сигнальной связью со входом модуля 224 предсказания. Первый выход модуля 224 предсказания соединен сигнальной связью со входом модуля 226 интерполяции. Выход модуля 226 интерполяции соединен сигнальной связью со вторым входом модуля 214 предсказания.
Второй выход модуля 224 предсказания соединен сигнальной связью с первым входом модуля 228 обратной MCTF. Второй выход масштабируемого по SNR энтропийного декодера 222 с обратным пространственным преобразованием соединен сигнальной связью со входом декодера 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() из своего предыдущего уровня.
Таблица иллюстрирует синтаксическую структуру для взвешенного предсказания для масштабируемого кодирования видеосигнала.
<b>ТАБЛИЦА</b>
Slice_header_in_scalable_extension( ) {
<b>C</b>
<b>Ключевое слово</b>
<b>first_mb_in_slice</b>
2
<b>ue(v)</b>
<b>slice_type</b>
<b>ue(v)</b>
<b>pic_para meter_set_id</b>
2
<b>ue(v)</b>
if( slice_type == PR ) {
<b>num_mbs_in_slice__minus1</b>
2
<b>ue(v)</b>
<b>luma chroma_sep_flag</b>
2
<b>u(1)</b>
}
<b>frame_num</b>
<b>u(v)</b>
if( !frame_mbs_only_flag ) {
<b>field_pic_flag</b>
2
<b>u(1)</b>
if( field_pic_flag )
<b>bottom_field_flag</b>
2
<b>u(1)</b>
}
if nal_unit_type = = 21 )
<b>idr_pic_id</b>
2
<b>ue(v)</b>
if( pic_order_cnt_type = = 0 ) {
<b>pic_order_cnt_lsb</b>
2
<b>u(v)</b>
if( pic_order_present_flag && !field_pic_flag )
<b>delta_pic_order_cnt_bottom</b>
2
<b>se(v)</b>
}
if( pic_order__cnt_type = = 1 && !delta_pic_prder_always_zero_flag ) {
<b>delta_pic_order_cnt[0]</b>
<b>se(v)</b>
if( pic_order_present_flag && !field_pic_flag )
<b>delta_pic_order_cnt[ 1 ]</b>
2
<b>se(v)</b>
}
if( slice_type != PR ) {
if( redundant_pic_cnt_present_flag )
<b>redundant_pic_cnt</b>
2
<b>ue(v)</b>
if( slice_type = = EB )
<b>direct_spatial_mv_pred_flag</b>
2
<b>u(1)</b>
<b>key_picture_flag</b>
2
<b>u(1)</b>
<b>decomposition_stages</b>
2
<b>ue(v)</b>
<b>base_id_plus1</b>
2
<b>ue(v)</b>
if( base_id_plus1 != 0 ) {
<b>adaptive_prediction_flag</b>
2
<b>u(1)</b>
}
if( slicejype = = EP || slice_type = = EB) {
<b>num_ref_idx_active_override_flag</b>
2
<b>u(1)</b>
if( num_ref_idx_actjve_override_flag ) {
<b>num_ref_idx_l0_active_minus1</b>
2
<b>ue(v)</b>
if( slice_type = = EB )
<b>num_ref_idx_l1_active_minus1</b>
2
<b>ue(v)</b>
}
}
ref_pic_Iist_reordering( )
<b>for( decLvl = temporal level; decLvl <decomposition_stages; decLvl++ )</b><b>{</b>
<b>num_ref_idx_update_10_active [ decLvl + 1 ]</b>
<b>ue(v)</b>
<b>num_ref_idx_update_l1_active [ decLvl+ 1 ]</b>
<b>ue(v)</b>
}
if(( weighted_pred_flag <i>&& </i>slice_type = = EP ) || (weighted bipred idc = = 1 && slice type = = EB ))
{
if(( base_id_plus1 != 0) && (adaptive_prediction_flag = = 1 ))
base_pred_weight_table_flag
2
<b>u(1)</b>
if ( base_pred_weight_table_flag = = 0 )
pred_weight_table( )
2
}
if( nal_ref_idc != 0 )
dec_ref_pic_marking( )
2
if( entropy_coding_mode_fiag && slice_type != EI)
<b>cabac_init_idc</b>
2
<b>ue(v)</b>
<b>}</b>
<b>slice_qp_delta</b>
2
<b>se(v)</b>
if( deblocking_filter_control_present_flag ) <b>{</b>
<b>disable_deblockrng_filter_idc</b>
2
<b>ue(v)</b>
if( disable_deblocking_filter_idc != 1 ) <b>{</b>
<b>slice_alpha_c0_offset_div2</b>
2
<b>se(v)</b>
<b>slice_beta_offset_div2</b>
2
<b>se(v)</b>
}
}
if (slice_type != <b>PR </b>)
if (num_slice_groups_minus1 > 0 && slice_group_map_type>=3 && slice_group_map_type<=5)
<b>slice_group_change_cycle</b>
2
<b>u(v)</b>
if( slice_type != PR && extended_spatial_scalability > 0 ) {
if ( chroma_format_idc > <b>0 </b>) {
<b>base_chroma_phase_x_plus1</b>
2
<b>u(2)</b>
<b>base_chroma_phase_y_plus1</b>
2
<b>u(2)</b>
}
if (extended_spatial_scalabiliry = = <b>2 </b>) {
<b>scaled_base_left_offset</b>
2
<b>se(v)</b>
<b>scaled_base_top_offset</b>
2
<b>se(v)</b>
<b>scaled_base_right_offset</b>
2
<b>se(v)</b>
<b>scaled_base_bottom_offset</b>
2
<b>se(v)</b>
}
}
SpatialScalabiliryType = spatial_scalability_rype( )
}
В декодере, когда уровень улучшения должен повторно использовать веса из базового уровня, выполняется переназначение pred_weight_table() с базового (или предыдущего) уровня на pred_weight_table() в текущем уровне улучшения. Этот процесс используется для следующих случаев: в первом случае, одинаковый индекс опорного изображения в базовом уровне и уровне улучшения указывает разное опорное изображение; или во втором случае, опорное изображение, используемое в уровне улучшения, не имеет соответствующей пары в базовом уровне. Для первого случая, число счетчика очередности изображения (РОС) используется для установления соответствия весовых параметров из базового уровня надлежащему индексу опорного изображения в уровне улучшения. Если используются многочисленные весовые параметры в базовом уровне, весовые параметры с наименьшим индексом опорного изображения, предпочтительно, но не обязательно, приводятся в соответствие первыми. Для второго случая, предполагается, что поле 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 в качестве результата. Для Х, заменяемого на 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_log2_weight_denom синтаксической структуры базового изображения basePic.
- Пусть BaseRefPicListX является списком RefPicListX ссылочных индексов базового изображения basePic.
- Для каждого ссылочного индекса refldxLX в списке RefPicListX ссылочных индексов (цикл от 0 до num_ref_idx_IX_active_minus1) текущей серии последовательных макроблоков, его ассоциативно связанные весовые параметры в текущей серии последовательных макроблоков наследуются, как изложено ниже:
- Пусть refPic является изображением, которое указывается ссылкой посредством refldxLX.
- Пусть refPicBase, опорное изображение соответствующего базового уровня, считается существующим, если есть изображение, для которого справедливы все из следующих условий.
- Элемент dependency_id синтаксической структуры для изображения refPicBase равен переменной DependencyIdBase изображения refPic.
- Элемент quality_level синтаксической структуры для изображения refPicBase равен переменной QualityLevelBase изображения refPic.
- Элемент fragment_order синтаксической структуры для изображения refPicBase равен переменной FragmentOrderBase изображения refPic.
- Значение PicOrderCnt(refPic) равно значению PicOrderCnt(refPicBase).
- Есть индекс baseRefIdxLX, равный наименьшему имеющемуся в распоряжении ссылочному индексу в соответствующем списке BaseRefPicListX ссылочных индексов базового уровня, который указывает ссылкой refPicBase.
- Если было найдено, что refPicBase существует, применяется следующее:
- baseRefIdxLX помечается как недействительный для последующих этапов процесса.
luma_log2_weight_denom = base_luma_log2_weight_denom
(1)
chroma_Jog2_weight_denom = base_chroma_log2_weight_denom
(2)
luma_weight_LX[refldxLX] = base_luma_weight_LX[baseRefldxLX]
(3)
luma_offset_LX[refldxl_X] = base_luma_offset_LX[baseRefIdxLX]
(4)
chroma_weight_LX[refldxLX][0] = base_chroma_weight_LX[baseRefldxLX3[0]
(5)
chroma_offset_LX[refldxLX][0] = base_chroma_offset_LX[baseRefldxl_X][0]
(6)
chroma_weight_LX[refldxLX][1] = base_chroma_weight_LX[baseRefldxLX][1]
(7)
chroma_offset_LX[refldxLX][1] = base_chroma_offset_LX[baseRefldxLX][1 ]
(8)
- Иначе
luma_log2_weight_denom = base_luma_log2_weight_denom
(9)
chroma_log2_weight_denom = base_chroma_log2_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[refIdxLX][0] = 0
(14)
chroma_weight_LX[refldxLX][1] = 1 <<chroma_log2_weight_denom
(15)
chroma_offset_LX[refIdxLX][1] = 0
(16)
Последующее является одним из примерных способов реализовать процесс наследования:
for( baseRefIdxLX = 0; baseRefIdxLX <= base_num_ref_idx_IX_active_minus1; baseRefIdxLX ++)
base_ref_avail[baseRefIdxLX ] = 1
for( refIdxLX = 0; refIdxLX <= num_ref_idx_IX_active_minus1; refIdxLX ++ ) {
base_weights_avail_flag[refIdxLX ] = 0
for( baseRefIdxLX =0; baseRefIdxLX <= base_nurn_ref_idx_LX_active_minus1;
baseRefIdxLX ++) {
if(base_ref_avail[baseRefIdxLX]&& (PicOrderCnt(RefPicListX[refIdxLX])== PicOrderCnt(BaseRefPicListX[baseRefIdxLX])
)) {
применить уравнения с (1) по (8)
base_ref_avail[baseRefIdxLX] = 0
base_weights_avail_flag[refIdxLX] = 1
break;
}
if (base_weights_avail_flag[refIdxLX] = = 0) {
применить уравнения с (9) по (16)
}
}
(17)
Если изображение уровня улучшения и изображение базового уровня имеют одинаковое сегментирование серии последовательных макроблоков, переназначение 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 равным true («истина») и передает управление на функциональный этап 330. Функциональный этап 330 взвешивает опорное изображение полученными весами и передает управление на функциональный этап 335. Функциональный этап 335 записывает поле base_pred_weight_table_flag в заголовке серии последовательных макроблоков и передает управление на этап 340 принятия решения. Этап 340 принятия решения определяет, равно или нет поле base_pred_weight_table_flag значению true. Если так, то управление передается на функциональный этап 345. Иначе, управление передается на функциональный этап 360.
Функциональный этап 350 рассчитывает веса для изображения EL и передает управление на функциональный этап 355. Функциональный этап 355 устанавливает поле base_pred_weight_table_flag равным значению false («ложь») и передает управление на функциональный этап 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, примерный способ декодирования синтаксических структур level_idc и profile_idc в целом указан номером 500 ссылки.
Начальный этап 505 передает управление на функциональный этап 510. Функциональный этап 510 производит синтаксический анализ синтаксических структур level_idc и profile_idc и передает управление на функциональный этап 515. Функциональный этап 515 определяет ограничение взвешенного предсказания для уровня улучшения на основании синтаксического анализа, выполненного функциональным этапом 510, и передает управление на конечный этап 520.
Обращаясь к фиг.6, примерный способ декодирования ограничения взвешенного предсказания для уровня улучшения в целом указан номером 600 ссылки.
Начальный этап 605 передает управление на функциональный этап 610. Функциональный этап 610 производит синтаксический анализ синтаксической структуры для взвешенного предсказания для уровня улучшения и передает управление на конечный этап 615.
Далее будет дано описание некоторых из многочисленных сопутствующих преимуществ/признаков настоящего изобретения, некоторые из которых были упомянуты выше. Например, одним из преимуществ/признаков является масштабируемый кодировщик видеосигнала, который включает в себя кодировщик для кодирования блока в уровне улучшения изображения посредством применения к опорному изображению уровня улучшения такого же весового параметра, как применяемый к конкретному опорному изображению нижнего уровня, используемому для кодирования блока в нижнем уровне изображения, при этом блок в уровне улучшения соответствует блоку в нижнем уровне, а опорное изображение уровня улучшения соответствует конкретному опорному изображению нижнего уровня. Еще одним преимуществом/признаком является масштабируемый кодировщик видеосигнала, как описанный выше, при этом кодировщик кодирует блок в уровне улучшения посредством выбора между явным режимом весовых параметров и неявным режимом весовых параметров. Еще одним другим преимуществом/признаком является масштабируемый кодировщик видеосигнала, как описанный выше, при этом кодировщик накладывает ограничение, что к опорному изображению уровня улучшения всегда применяется такой же весовой параметр, как применяемый к конкретному опорному изображению нижнего уровня, когда блок в уровне улучшения соответствует блоку в нижнем уровне, а опорное изображение уровня улучшения соответствует конкретному опорному изображению нижнего уровня. Более того, еще одним преимуществом/признаком является масштабируемый кодировщик видеосигнала, имеющий ограничение, как описанное выше, при этом ограничение определяется в виде ограничения профиля или уровня либо сигнализируется в наборе параметров изображения последовательности. Кроме того, еще одним преимуществом/признаком является масштабируемый кодировщик видеосигнала, как описанный выше, при этом кодировщик добавляет синтаксическую структуру в заголовок серии последовательных макроблоков для серии последовательных макроблоков в уровне улучшения, чтобы выборочно применять к опорному изображению уровня улучшения прежний весовой параметр или другой весовой параметр. К тому же, еще одним преимуществом/признаком является масштабируемый кодировщик видеосигнала, как описанный выше, при этом кодировщик выполняет переназначение синтаксической структуры pred_weight_table() из нижнего уровня на синтаксическую структуру pred_weight_table() для уровня улучшения. Дополнительно, еще одним преимуществом/признаком является масштабируемый кодировщик видеосигнала с переназначением, как описано выше, при этом кодировщик использует счетчик очередности изображений для переназначения весовых параметров из нижнего уровня на соответствующий индекс опорного изображения в уровне улучшения. Более того, еще одним преимуществом/признаком является масштабируемый кодировщик видеосигнала с переназначением, использующим счетчик очередности изображений, как описано выше, при этом весовые параметры с наименьшим индексом опорного изображения переназначаются первыми. Кроме того, еще одним преимуществом/признаком является масштабируемый кодировщик видеосигнала с переназначением, как описано выше, при этом кодировщик устанавливает поле weighted_ prediction_flag в нуль для опорного изображения, используемого в уровне улучшения, который не имеется в распоряжении в нижнем уровне. К тому же, еще одним преимуществом/признаком является масштабируемый кодировщик видеосигнала с переназначением, как описано выше, при этом кодировщик отправляет, в заголовке серии последовательных макроблоков, весовые параметры для индекса опорного изображения, соответствующего опорному изображению, используемому в уровне улучшения, когда опорное изображение, используемый в уровне улучшения, не имеет соответствия в нижнем уровне. Более того, еще одним преимуществом/признаком является масштабируемый кодировщик видеосигнала с переназначением, как описано выше, при этом кодировщик выполняет переназначение на основе серии последовательных макроблоков, когда изображение имеет одинаковое сегментирование серии последовательных макроблоков в обоих, уровне улучшения и в нижнем уровне, и кодировщик выполняет переназначение на основе макроблока, когда изображение имеет другое сегментирование серии последовательных макроблоков в уровне улучшения относительно нижнего уровня. Кроме того, еще одним преимуществом/признаком является масштабируемый кодировщик видеосигнала, как описанный выше, при этом кодировщик выполняет переназначение синтаксической структуры pred_weight_table() из нижнего уровня на синтаксическую структуру pred_weight_table() для уровня улучшения, когда кодировщик применяет к опорному изображению уровня улучшения такой же весовой параметр, как применяемый к конкретному опорному изображению нижнего уровня. Также, еще одним преимуществом/признаком является масштабируемый кодировщик видеосигнала, как описанный выше, при этом кодировщик пропускает выполнение оценки весовых параметров, когда кодировщик применяет к опорному изображению уровня улучшения такой же весовой параметр, как применяемый к конкретному опорному изображению нижнего уровня. Дополнительно, еще одним преимуществом/признаком является масштабируемый кодировщик видеосигнала, как описанный выше, при этом кодировщик сохраняет только один набор весовых параметров для каждого индекса опорного изображения, когда кодировщик применяет к опорному изображению уровня улучшения такой же весовой параметр, как применяемый к конкретному опорному изображению нижнего уровня. Более того, еще одним преимуществом/признаком является масштабируемый кодировщик видеосигнала, как описанный выше, при этом кодировщик оценивает весовые параметры, когда кодировщик применяет другой весовой параметр или уровень улучшения не имеет нижнего уровня.
Эти и другие признаки и преимущества настоящего изобретения могут быть без труда установлены рядовым специалистом, имеющим отношение к данной области техники, на основании доктрин, приведенных в материалах настоящей заявки. Должно быть понятно, что доктрины настоящего изобретения могут быть реализованы в различных видах аппаратных средств, программного обеспечения, микропрограммного обеспечения, процессорах специального назначения, или их комбинации.
Наиболее предпочтительно, доктрины настоящего изобретения реализуются в качестве комбинации аппаратных средств и программного обеспечения. Более того, программное обеспечение может быть реализовано в качестве прикладной программы, реально воплощенной в устройстве хранения программ. Прикладная программа может выгружаться в, и выполняться машиной, содержащей любую подходящую архитектуру. Предпочтительно, машина реализована на компьютерной платформе, содержащей аппаратные средства, такие как один или более центральных процессоров («ЦП», «CPU»), оперативное запоминающее устройство («ОЗУ») и интерфейсы ввода/вывода («I/O»). Компьютерная платформа также может включать в себя операционную систему и микрокомандный код. Различные последовательности операций и функции, описанные в материалах настоящей заявки, могут быть либо частью микрокомандного кода, либо частью прикладной программы, или любой их комбинацией, которая может выполняться ЦП. В дополнение, различные другие периферийные устройства могут быть присоединены к компьютерной платформе, такие как дополнительное устройство хранения данных и печатающее устройство.
Кроме того, должно быть понятно, что, так как некоторые из составляющих компонентов и способов системы, изображенных на прилагаемых чертежах, предпочтительно реализованы в программном обеспечении, реальные связи между компонентами системы или функциональными этапами последовательности операций могут отличаться в зависимости от способа, которым запрограммировано настоящее изобретение. При заданных доктринах, приведенных в материалах настоящей заявки, специалист, имеющий отношение к данной области техники, будет способен предполагать эти и подобные реализации или конфигурации настоящего изобретения.
Несмотря на то, что иллюстративные варианты осуществления были раскрыты в материалах настоящей заявки со ссылкой на прилагаемые чертежи, должно быть понятно, что настоящее изобретение не ограничено такими отдельно взятыми вариантами осуществления и что различные изменения и модификации могут быть осуществлены в нем рядовым специалистом, имеющим отношение к данной области техники, не выходя из объема и сущности настоящего изобретения. Все такие изменения и модификации подразумеваются включенными в объем настоящего изобретения, как изложено в прилагаемой формуле изобретения.