Данная заявка испрашивает приоритет по предварительной заявке США №61/549,597, поданной 20 октября 2011 года, предварительной заявке США №61/605,705, поданной 01 марта 2012 года, предварительной заявке США №61/606,277, поданной 02 марта 2012 года, предварительной заявке США №61/624,901, поданной 16 апреля 2012 года и предварительной заявке США №61/641,775, поданной 02 мая 2012 года, полное содержание каждой из которых включено в состав данного документа по ссылке.
ОБЛАСТЬ ТЕХНИКИ
Изобретение относится к видеокодированию и, в частности, касается кодирования блоков видеоданных, созданных в процессах видеокодирования.
УРОВЕНЬ ТЕХНИКИ
Возможности цифрового видео могут быть включены в устройства самого широкого применения, в том числе цифровые телевизионные приемники, системы прямого цифрового вещания, системы беспроводного вещания, персональные цифровые помощники (PDA), компьютеры типа «лэптоп» или настольные компьютеры, планшетные компьютеры, устройства для чтения электронных книг, цифровые камеры, цифровые записывающие устройства, цифровые медиаплееры, видеоигровые устройства, видеоигровые консоли, сотовые или спутниковые радиотелефоны, так называемые «смартфоны», устройства для проведения телеконференций, устройства потокового видео и т.п. Устройства цифрового видео реализуют различные методики сжатия видео, которые, например, описаны в стандартах, определенных как MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Часть 10, стандарт усовершенствованного видеокодирования (AVC), стандарт высокоэффективного видеокодирования (HEVC), находящийся в процессе разработки, а также расширения указанных стандартов. Видеоустройства могут передавать, принимать, кодировать, декодировать и/или запоминать цифровую видеоинформацию более эффективно посредством реализации указанных методик сжатия видео.
Согласно методикам сжатия видео выполняется пространственное (внутрикадровое) предсказание и/или временное (межкадровое) предсказание с целью уменьшения или исключения избыточности, свойственной видеопоследовательностям. Для видеокодирования на блочной основе видеослайс (то есть, видеокадр или часть видеокадра) может быть разделен на видеоблоки, которые также могут называться древовидными блоками, единицами кодирования (CU), и/или узлами кодирования. Видеоблоки в интра-кодированном (внутреннее кодированном) слайсе изображения (I) кодируют с использованием пространственного предсказания применительно к опорным элементам дискретизации в соседних блоках одного и того же изображения. Видеоблоки в интер-кодированном (внешне кодированном) слайсе изображения (P или B) могут использовать пространственное предсказание в отношении опорных элементов дискретизации в соседних блоках одного и того же изображения или временное предсказание в отношении опорных элементов дискретизации других опорных изображений. Изображения могут называться кадрами, а опорные изображения могут называться опорными кадрами.
Пространственное или временное предсказание приводит в результате к предиктивному блоку для блока, который должен быть кодирован. Остаточные данные представляют пиксельные разности между исходным блоком, который должен быть кодирован, и предиктивным блоком. Кодирование интер-кодированного блока осуществляют в соответствии с вектором движения, который указывает блок опорных элементов дискретизации, образующих предиктивный блок, и остаточные данные, указывающие различие между кодированным блоком и предиктивным блоком. Кодирование интра-кодированного блока осуществляют в соответствии с режимом интра-кодирования и остаточными данными. Для дальнейшего сжатия остаточные данные могут быть преобразованы из пиксельной области в область преобразования, в результате чего получают остаточные коэффициенты преобразования, которые затем можно квантовать. Квантованные коэффициенты преобразования, изначально скомпонованные в двумерной матрице, можно сканировать для создания одномерного вектора коэффициентов преобразования. Затем можно применить энтропийное кодирование для достижения еще большего сжатия.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
В общем случае настоящее раскрытие описывает методики выполнения деблокирующей (удаления блочности) фильтрации относительно блоков видеоданных, кодированных с использованием режимов кодирования с интра-импульсно-кодовой модуляцией (IPCM) и/или кодирования без потерь. В частности, методики настоящего раскрытия могут включать в себя выполнение деблокирующей фильтрации в отношении одного или более блоков видеоданных, которые включают в себя один или более кодированных с IPCM блоков, кодированных без потерь блоков и блоков, кодированных с использованием методик или «режимов» кодирования с потерями. Описанные в данном документе методики позволяют повысить визуальное качество одного или более блоков видеоданных при кодировании блоков, по сравнению с другими методиками.
В частности, описанные здесь методики могут повысить визуальное качество одного или более кодированных с IPCM блоков, которые включают в себя восстановленные видеоданные, путем разрешения деблокирующей фильтрации для этих блоков и выполнения деблокирующей фильтрации конкретным образом. Вдобавок, эти методики могут повысить визуальное качество одного или более кодированных без потерь блоков, которые включают в себя исходные видеоданные, путем запрещения деблокирующей фильтрации для этих блоков. Кроме того, эти методики также могут повысить визуальное качество одного или более блоков, кодированных с использованием режимов кодирования с потерями, например, блоков, расположенных смежно с одним или более IPCM кодированными и кодированными без потерь блоками, посредством выполнения деблокирующей фильтрации в отношении этих блоков конкретным образом. В результате открывается возможность относительного улучшения визуального качества одного или более блоков видеоданных, включающих в себя блоки, кодированные с использованием режимов кодирования с IPCM, кодирования без потерь и кодирования с потерями, при использовании методик из настоящего раскрытия.
В одном примере настоящего раскрытия способ кодирования видеоданных включает в себя кодирование множества блоков видеоданных, при этом по меньшей мере один блок из упомянутого множества блоков видеоданных кодируют, используя режим кодирования, который содержит один из режима кодирования с IPCM и режима кодирования без потерь, который использует предсказание, назначение ненулевого значения параметра квантования (QP) для упомянутого по меньшей мере одного блока, кодированного с использованием упомянутого режима кодирования, и выполнение деблокирующей фильтрации в отношении одного или более из упомянутого множества блоков видеоданных, на основе режима кодирования, использованного для кодирования упомянутого по меньшей мере одного блока и назначенного ненулевого значения QP для упомянутого по меньшей мере одного блока.
В другом примере этого раскрытия устройство, сконфигурированное для кодирования видеоданных, включает в себя видеокодер. В этом примере видеокодер сконфигурирован для кодирования множества блоков видеоданных, при этом видеокодер сконфигурирован для кодирования по меньшей мере одного блока из упомянутого множества блоков видеоданных с использованием режима кодирования, который содержит один из режима кодирования с IPCM или режима кодирования без потерь, который использует предсказание, назначения ненулевого значения QP для упомянутого по меньшей мере одного блока, кодированного с использованием упомянутого режима кодирования, и выполнение деблокирующей фильтрации в отношении одного или более из упомянутого множества блоков видеоданных, на основе режима кодирования, использованного для кодирования упомянутого по меньшей мере одного блока, и назначенного ненулевого значения QP для упомянутого по меньшей мере одного блока.
В другом примере раскрытия устройство, сконфигурированное для кодирования видеоданных включает в себя средство для кодирования множества блоков видеоданных, в том числе средство для кодирования по меньшей мере одного блока из упомянутого множества блоков видеоданных, с использованием режима кодирования, который содержит один из режима кодирования с IPCM или режима кодирования без потерь, который использует предсказание, средство для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока, кодированного с использованием режима кодирования, и средство для выполнения деблокирующей фильтрации в отношении одного или более из упомянутого множества блоков видеоданных, на основе режима кодирования, использованного для кодирования упомянутого по меньшей мере одного блока, и назначенного ненулевого значения QP для упомянутого по меньшей мере одного блока.
Методики, описанные в данном изобретении, можно реализовать аппаратными средства, программными средствами, программно-аппаратными средствами или их комбинацией. При реализации программными средствами эти программные средства могут выполняться в одном или более процессорах, таких как микропроцессор, прикладная специализированная интегральная схема (ASIC), вентильная матрица, программируемая пользователем (FPGA) или цифровой процессор сигналов (DSP). Программные средства, реализующие указанные методики, могут изначально храниться на материальном считываемом компьютером носителе и загружаться и выполняться в процессоре.
Соответственно, в другом примере в изобретении предлагается считываемая компьютером запоминающая среда, хранящая инструкции, которые при исполнении побуждают один или более процессоров кодировать видеоданные. В этом примере упомянутые инструкции побуждают упомянутый один или более процессоров кодировать множество блоков видеоданных, в том числе кодировать по меньшей мере один блок из упомянутого множества блоков видеоданных с использованием режима кодирования, который содержит один из режима кодирования с IPCM и режима кодирования без потерь, который использует предсказание, назначать ненулевое значение QP для упомянутого по меньшей мере одного блока, кодированного с использованием упомянутого режима кодирования, и выполнять деблокирующую фильтрацию в отношении одного или более из упомянутого множества блоков видеоданных, на основе режима кодирования, использованного для кодирования упомянутого по меньшей мере одного блока, и назначенного ненулевого значения QP для упомянутого по меньшей мере одного блока.
В нижеследующем описании и сопроводительных чертежах раскрыты подробности одного или более примеров осуществления изобретения. Другие признаки, цели и преимущества настоящего изобретения станут очевидными из его описания и чертежей, а также из формулы изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1 - блок-схема, иллюстрирующая пример системы осуществления кодирования и декодирования видео, которая может выполнять методики деблокирования режима кодирования с интра-импульсно-кодовой модуляцией (IPCM) и кодирования без потерь, согласно методикам настоящего раскрытия;
фиг. 2 - блок-схема, иллюстрирующая пример средства осуществления кодирования, которое может реализовать методики деблокирования режима кодирования c IPCM и кодирования без потерь, согласно методикам настоящего раскрытия;
фиг. 3 - блок-схема, иллюстрирующая пример видеодекодера, который может реализовать методики деблокирования режима кодирования c IPCM и кодирования без потерь, согласно методикам настоящего раскрытия;
фиг. 4 - концептуальная схема, где показан пример деблокирующей фильтрации, выполняемой в отношении границы двух смежных блоков видеоданных, согласно методикам настоящего раскрытия;
фиг. 5 - концептуальная схема, где показан пример сигнализации значения дельта QP для каждого из одного или более блоков видеоданных, согласно методикам настоящего раскрытия;
фиг. 6 - блок-схема последовательности операций, где показан примерный способ вычисления значения силы границы для деблокирующего фильтра согласно методикам настоящего раскрытия;
фиг. 7А-7В - концептуальные схемы, на которых показаны примеры деблокирования режима кодирования с IPCM, согласно методикам настоящего раскрытия;
фиг. 8А-8В - концептуальные схемы, где показаны примеры деблокирования режима кодирования без потерь согласно методикам настоящего раскрытия;
фиг. 9-11 - блок-схемы последовательности операций, где проиллюстрированы примерные способы деблокирования режима кодирования без потерь и с IPCM, согласно методикам настоящего раскрытия.
ПОДРОБНОЕ ОПИСАНИЕ
В этом разделе описываются в целом методики выполнения деблокирующей фильтрации относительно блоков видеоданных, кодированных с использованием режимов кодирования с интра-импульсно-кодовой модуляцией IPCM и/или кодирования без потерь. В частности, методики согласно настоящему изобретению могут включать в себя выполнение деблокирующей фильтрации в отношении одного или более блоков видеоданных, которые включают в себя один или более кодированных с IPCM блоков, кодированных без потерь блоков, и блоков, кодированных с использованием методик или «режимов» кодирования с потерями. Описанные здесь методики позволяют повысить визуальное качество одного или более блоков видеоданных при их кодировании по сравнению с другими методиками.
В качестве одного примера, описанные методики могут повысить визуальное качество одного или более кодированных с IPCM блоков, которые включают в себя восстановленные видеоданные путем разрешения деблокирующей фильтрации для этих блоков и выполнения деблокирующей фильтрации конкретным образом. Например, эти методики включают в себя назначение ненулевого значения параметра квантования (QP) для Кодированного с IPCM блока на основе одного или более из просигнализированного значения QP, которое указывает назначенное ненулевое значение QP, предсказанного значения QP и значения дельта QP («dQP»), которое представляет разность между назначенным ненулевым значением QP и предсказанным значением QP для Кодированного с IPCM блока. Эти методики дополнительно включают в себя выполнение деблокирующей фильтрации в отношении IPCM кодированного блока на основе назначенного ненулевого значения QP для Кодированного с IPCM блока.
В качестве другого примера, описанные здесь методики могут улучшить визуальное качество одного или более кодированных без потерь блоков, которые включают в себя исходные видеоданные, путем запрещения деблокирующей фильтрации для указанных блоков. Например, упомянутые методики включают в себя сигнализацию одного или более синтаксических элементов (например, 1-битовые коды или «флаги»), которые указывают на запрещение деблокирующей фильтрации для одного или более кодированных без потерь блоков. В некоторых примерах один или более синтаксических элементов могут указывать, что деблокирующая фильтрация запрещена для всех границ одного или более кодированных без потерь блоков, которые совместно используются с другими смежными блоками видеоданных.
Еще в одном примере описанные методики также позволяют улучшить визуальное качество одного или более блоков видеоданных, которые расположены смежно с IPCM кодированным блоком или кодированным без потерь блоком, и которые кодируют с использованием режимов кодирования с потерями, выполняя деблокирующую фильтрацию в отношении блоков с потерями конкретным образом. Например, такие методики включают в себя выполнение деблокирующей фильтрации в отношении одного или более блоков с потерями на основе назначенного ненулевого значения QP для смежного кодированного без потерь или кодированного с IPCM блока.
Таким образом появляется возможность относительного улучшения визуального качества одного или более блоков видеоданных, включающих в себя блоки, кодированные с использованием режимов кодирования с IPCM, кодирования без потерь и кодирования с потерями, при использовании раскрытых здесь методик.
На фиг. 1 представлена блок-схема, где показан пример системы осуществления кодирования и декодирования видео, в которой могут быть реализованы методики деблокирования режима кодирования с IPCM и без потерь согласно методикам настоящего раскрытия. Как показано на фиг. 1, система 10 включает в себя устройство-источник 12, которое создает закодированные видеоданные, которые в дальнейшем должны быть декодированы устройством-адресатом 14. Устройство-источник 12 и устройство-адресат 14 могут содержать любое из самых разных устройств, в том числе, настольный компьютер, компьютер типа «ноутбук» (то есть «лэптоп»), планшетный компьютер, телевизионную приставку, телефонную трубку, такую как так называемый «смартфон», так называемый «смартпад», телевизионный приемник, камеру, устройство отображения, цифровой медиаплеер, видеоигровую консоль, устройство потокового видео или т.п. В некоторых случаях устройство-источник 12 и устройство-адресат 14 могут быть оборудованы средствами беспроводной связи.
Устройство-адресат 14 может принимать закодированные видеоданные, которые должны быть декодированы, через линию 16 связи. Линия 16 связи может содержать среду или устройство любого типа, способное перемещать закодированные видеоданные от устройства-источника 12 на устройство-адресат 14. В одном примере линия 16 связи может содержать среду связи, позволяющую устройству-источнику 12 передавать закодированные видеоданные непосредственно на устройство-адресат 14 в режиме реального времени. Закодированные видеоданные могут быть модулированы в соответствии со стандартом связи, таким как протокол беспроводной связи, и могут передаваться на устройство-адресат 14. Среда связи может содержать любой носитель проводной или беспроводной связи, например, радиочастотный (RF) спектр или одну или более физических линий передачи. Среда связи может оставлять часть сети пакетной передачи, такой как локальная сеть, региональная сеть или глобальная сеть, например Интернет. Среда связи может включать в себя маршрутизаторы, коммутаторы, базовые станции или любое другое оборудование, которое может быть полезно для осуществления связи между устройством-источником 12 и устройством-адресатом 14.
В качестве альтернативы закодированные данные могут выводиться из выходного интерфейса 22 в запоминающее устройство 2н. Аналогичным образом, к закодированным данным возможен доступ со стороны запоминающего устройства 24 через входной интерфейс 26. Запоминающее устройство 24 может включать в себя любую запоминающую среду из числа самых разных распределенных или локально доступных сред (носителей данных), таких как накопитель на жестком диске, диски типа Blu-ray, диски DVD, диски CD, флэш-память, энергозависимая или энергонезависимая память, либо любую другую подходящую цифровую запоминающую среду для хранения закодированных видеоданных. В еще одном примере запоминающее устройство 24 может соответствовать файловому серверу или другому промежуточному запоминающему устройству, которое может хранить закодированное видео, созданное устройством-источником 12. Устройство-адресат 14 может обращаться к запомненным в запоминающем устройстве 24 видеоданным, используя потоковую передачу или загрузку видеоданных. Файловый сервер может представлять собой сервер любого типа, способный запоминать и хранить закодированные видеоданные и передавать их на устройство-адресат 14. Примеры файловых серверов включают в себя Web-сервер (например, для Web-сайта), FTP сервер, подключенные к сети запоминающие устройства (NAS) или локальный накопитель на диске. Устройство-адресат 14 может иметь доступ к закодированным видеоданным через любое стандартное соединение для передачи данных, в том числе Интернет соединение. Такое соединение может включать в себя беспроводной канал (например, Wi-Fi соединение), проводное соединение (например, DSL, кабельный модем и т.д.), либо комбинацию обоих видов соединений, которая подходит для доступа к закодированным видеоданным, хранящимся на файловом сервере. Передача закодированных видеоданных из запоминающего устройства 24 может быть реализована в виде потоковой передачи, передачи с выгрузкой или их комбинации.
Раскрытые здесь методики не обязательно ограничиваются беспроводными приложениями или установками. Эти методики можно применить к видеокодированию для поддержки любого из разнообразных мультимедийных приложений, таких как эфирное телевизионное вещание, передачи кабельного телевидения, передачи спутникового телевидения, передачи потокового видео, например, через Интернет, кодирование цифрового видео для запоминания на носителе данных, декодирование цифрового видео, хранящегося на носителе данных, или другие приложения. В некоторых примерах система 10 может быть сконфигурирована для поддержки однонаправленной или двунаправленной передачи видео для поддержки приложений, таких как потоковое видео, видео воспроизведение, видеовещание или видеотелефония.
В примере по фиг. 1 устройство-источник 12 включает в себя источник 18 видео, средство 20 осуществления кодирования (средство осуществления кодирования) и выходной интерфейс 22. В некоторых случаях выходной интерфейс 22 может включать в себя модулятор/демодулятор (модем) и/или передатчик. В устройстве-источнике 12 источник 18 видео может включать в себя такой источник, как устройство фиксации видео, например, видеокамеру, видеоархив, содержащий ранее зафиксированное видео, интерфейс подачи видео для приема видео от провайдера видеоконтента или системы компьютерной графики для создания компьютерных графических данных в качестве исходного видео или комбинации указанных источников. Например, если источник 18 видео представляет собой видеокамеру, то устройство-источник 12 и устройство-адресат 14 могут образовать так называемые видеофоны или камерофоны. Однако описанные в этом изобретении методики можно применять к видеокодированию в целом и использовать для беспроводных и/или проводных приложений.
Зафиксированное в данный момент, предварительно зафиксированное или созданное компьютером видео может быть закодировано средством 20 осуществления кодирования. Закодированные видеоданные могут передаваться непосредственно на устройство-адресат 14 через выходной интерфейс 22 устройства-источника 12. Закодированные видеоданные также (или в качестве альтернативы) могут запоминаться в запоминающем устройстве 24 для обращения к ним в будущем со стороны устройства-адресата 14 или других устройств для декодирования и/или воспроизведения.
Устройство-адресат 14 включает в себя входной интерфейс 26, видеодекодер 30 и устройство 28 отображения. В некоторых случаях входной интерфейс 26 может включать в себя приемник и/или модем. Входной интерфейс 26 устройства-адресата 14 принимает закодированные видеоданные через линию 16 связи или от запоминающего устройства 24. Закодированные видеоданные, переданные через линию 16 связи, или предусмотренные в запоминающем устройстве 24, могут включать в себя разнообразные синтаксические элементы, созданные средством 20 осуществления кодирования для использования видеодекодером, таким как видеодекодер 30, при декодировании видеоданных. Указанные синтаксические элементы могут быть включены в закодированные видеоданные, передаваемые через среду связи, запоминаемые на носителе данных или запоминаемые на файловом сервере.
Устройство 28 отображения может являться составной частью (или быть внешним) устройства-адресата 14. В некоторых примерах устройство-адресат 14 может включать в себя интегрированное в него устройство отображения, а также быть сконфигурировано для взаимодействия с внешним устройством отображения. В других примерах устройством-адресатом 14 может быть устройство отображения. В общем случае устройство 28 отображения отображает пользователю декодированные видеоданные и может содержать любое из разнообразных устройств отображения, таких как жидкокристаллическое устройство отображения (LCD), плазменное устройство отображения, устройство отображения на органических светоизлучающих диодах (OLED) или устройство отображения другого типа.
Средство 20 осуществления кодирования и видеодекодер 30 могут функционировать согласно стандарту сжатия видео, такому как стандарт высокоэффективного видеокодирования (HEVC), разрабатываемый Объединенной командой разработчиков систем видеокодирования (JCT-VC) из Экспертной группы по видеокодированию ITU-T (VCEG) и Экспертной группы по движущимся изображениям (MPEG) ISO/IEC, и может соответствовать тестовой модели HEVC. В качестве альтернативы средство 20 осуществления кодирования и видеодекодер 30 могут работать согласно другим коммерческим или промышленным стандартам, таким как стандарт ITU-T H.264, также называемый MPEG-4, часть 10, AVC (усовершенствованное видеокодирование) или расширениям указанных стандартов. Однако методики, раскрытые в этом изобретении, не ограничиваются каким-либо конкретным стандартом кодирования. Другие примеры стандартов сжатия видео включают в себя MPEG-2 и ITU-T H.263. Последний проект стандарта HEVC, называемый «HEVC Working Draft 8» или «WD8» описан в документе JCTVC-J1003_d7, Bross и др., «High efficiency video coding (HEVC) text specification draft 8» описан в документе JCTVC-J1003_d7, Bross и др., “High efficiency video coding (HEVC) text specification draft 8” Объединенной команды разработчиков систем видеокодирования (JCT-VC) стандартов ITU-T SG16 WP3 и ISO/IEC JTC1/SC29/WG11, 10th Meeting: Stockholm, SE, 11-20 июля 2012 года, который по состоянию 2 октября 2012 года можно скачать из http://phenix.int-evry.fr/jct/doc_end_user/documents/10_Stockholm/wg11/JCTVC-J1003-v8.zip.
Другой предварительный проект стандарта HEVC, называемый в этом описании “HEVC Working Draft 4” или “WD4,” описан в документе JCTVC-F803_d2, Bross и др., “WD4: Working Draft 4 of High-Efficiency Video Coding,” Объединенной команды разработчиков систем видеокодирования (JCT-VC) стандартов ITU-T SG16 WP3 и ISO/IEC JTC1/SC29/WG11, 6th Meeting: Torino, IT, 14-22 июля 2011 года, который на 2 октября 2012 года можно скачать из http://phenix.int-evry.fr/jct/doc_end_user/documents/6_Torino/wg11/JCTVC-F803-v8.zip. Другой предварительный проект стандарта HEVC, называемый в этом описании “HEVC Working Draft 6” or “WD6,” описан в документе JCTVC-H1003, Bross и др., “High efficiency video coding (HEVC) text specification draft 6,” Объединенной команды разработчиков систем видеокодирования (JCT-VC) стандартов ITU-T SG16 WP3 и ISO/IEC JTC1/SC29/WG11, 8th Meeting: San Jose, Calif., USA, 20 февраля, 2012, который на 1 июня 2012 года можно скачать из http://phenix.int-evey.fr/jct/doc_end_user/documents/8_San%20Jose/wg11/JCTVC-H1003-v22.zip
Хотя это на фиг. 1 не показано, согласно некоторым аспектам средство 20 осуществления кодирования и видеодекодер 30 могут быть интегрированы каждый со средством осуществления кодирования аудио и аудиодекодером и могут включать в себя соответствующие блоки MUX-DMUX (мультиплексор-демультиплексор) или другие аппаратные и программные средства для осуществления кодирования как аудио, так и видео в общем потоке данных или в отдельных потоках данных. В некоторых примерах, если это имеет место, блоки MUX-DMUX могут соответствовать Протоколу мультиплексора ITU H.223 или другим протоколам, таким как Протокол дэйтаграмм пользователя (UDP).
Средство 20 осуществления кодирования и видеодекодер 30 могут быть реализованы каждый в виде любых подходящих схем средства осуществления кодирования (энкодера) или декодера, таких как один или более микропроцессоров, процессоры DSP, интегральные схемы ASIC, вентильные матрицы FPGA, дискретные логические схемы, программные средства, аппаратные средства, программно-аппаратные средства или любая их комбинация. При частичной реализации указанных методик программными средствами устройство может хранить инструкции программного обеспечения на подходящем невременном считываемом компьютером носителе и исполнять эти инструкции аппаратными средствами с использованием одного или более процессоров, реализующих раскрытые в изобретении методики. Как средство 20 осуществления кодирования, так и видеодекодер 30 могут быть включены в состав одного или более средств осуществления кодирования или декодеров, либо каждый из них может быть интегрирован в объединенном средстве осуществления кодирования/декодере («CODEC») в соответствующем устройстве.
Работы по стандартизации HEVC основаны на совершенствуемой модели устройства видеокодирования, называемой тестовой моделью (HM) стандарта HEVC. В модели HM заложено несколько дополнительных возможностей для устройств видеокодирования по сравнению с существующими устройствами, соответствующими, например, стандарту ITU-T H.264/AVC. Например, в то время как стандарт H.264 обеспечивает девять режимов кодирования с интра(внутренним)-предсказанием, модель HM может обеспечить до тридцати пяти режимов кодирования с интра-предсказанием.
В общем случае рабочая модель HM предполагает, что видеокадр или видеоизображение можно разделить на последовательность древовидных блоков или наибольших единиц кодирования (LCU), которые включают в себя элементы дискретизации яркости и элементы дискретизации цветности. Назначение древовидного блока такое же, как у макроблока в стандарте H.264. Слайс включает в себя ряд последовательных древовидных блоков в порядке кодирования. Видеокадр или видеоизображение может быть разбито на один или более слайсов. Каждый древовидный блок можно разделить на единицы кодирования (CU) согласно квадродереву. Например, корневой узел квадродерева можно разделить на четыре дочерних узла, а каждый дочерний узел, в свою очередь, может представлять собой родительский узел и быть разделен на четыре других дочерних узла. Конечный не разделенный дочерний узел как концевой узел квадродерева содержит узел кодирования, то есть, кодированный видеоблок. Синтаксические данные, связанные с кодированным битовым потоком могут определять максимальное количество возможных разделений древовидного блока, а также могут определять минимальный размер узлов кодирования.
CU включает в себя узел кодирования и единицы предсказания (PU) и единицы преобразования (TU), связанные с узлом кодирования. Размер CU соответствует размеру узла кодирования и должен иметь квадратную форму. Размер CU может находиться в диапазоне от 8×8 пикселей до размера древовидного блока с максимальным размером 64×64 пикселя или более. Каждая CU может содержать одну или более PU и одну или более TU. Синтаксические данные, связанные с CU, могут описывать, например, разбиение CU на одну или более PU. Режимы разбиения могут различаться в зависимости от того, пропущена ли CU, осуществлено ли кодирование в прямом режиме, осуществлено ли кодирование в режиме интра-предсказания или осуществлено ли кодирование в режиме интер-предсказания. PU могу быть разделены на части не квадратной формы. Синтаксические данные, связанные с CU, могут также описывать, например, разбиение CU на одну или более TU согласно квадродереву. TU может иметь квадратную или не квадратную форму.
Стандарт HEVC позволяет выполнять преобразование в соответствии с TU, которые могут отличаться у разных CU. Размер TU, как правило, основан на размере PU в данной CU, определенной для разделенной LCU, хотя это не всегда так. Как правило, TU имеют одинаковый или меньший размер с PU. В некоторых примерах остаточные элементы дискретизации, соответствующие одной CU, можно дополнительно разделить на меньшие удиницы, используя структуру квадродерева, известную под названием «остаточное квадродерево» (RQT). Концевые узлы дерева RQT могут называться TU. Значения пиксельной разности, связанные с TU, можно преобразовать для создания коэффициентов преобразования с последующим их квантованием.
В общем случае PU включает в себя данные, относящиеся к процессу предсказания. Например, когда PU закодирована в интра-режиме, она может включать в себя данные, описывающие режим интра-предсказания для данной PU. В другом примере, когда PU закодирована в интер-режиме, она может включать в себя данные, определяющие вектор движения для данной PU. Данные, определяющие вектор движения для PU, могут описывать, например, горизонтальную составляющую вектора движения, вертикальную составляющую вектора движения, разрешающую способность для вектора движения (например, с точностью до четверти пикселя или с точностью до одной восьмой пикселя), опорное изображение, на которое указывает вектор движения, и/или список опорных изображений (например, список 0, список 1 или список С) для вектора движения.
В общем случае TU используется в процессах преобразования и квантования. Данная CU, имеющая одну или более PU, может также включать в себя одну или более TU. Вслед за предсказанием средство 20 осуществления кодирования может вычислить остаточные значения, соответствующие данной PU. Остаточные значения содержат значения пиксельной разности, которые можно преобразовать в коэффициенты преобразования, выполнить их квантование и сканирование с использованием TU, чтобы создать преобразованные в последовательную форму коэффициенты преобразования для энтропийного кодирования. В данном описании, как правило, используется термин «видеоблок» или просто «блок» для ссылки на узел кодирования CU. В некоторых конкретных случаях в настоящем описании также может использоваться термин «видеоблок» для ссылки на древовидный блок, то есть, LCU или CU, которая включает в себя узел кодирования и PU и TU.
Видеопоследовательность, как правило, включает в себя ряд видеокадров или видеоизображений. Группа изображений (GOP) в общем случае содержит ряд, состоящий из одного или нескольких видеоизображений. Группа GOP может включать в себя синтаксические данные в заголовке группы GOP, заголовке одного или более изображений или где-либо в другом месте, где описывают количество изображений, включенных в группу GOP. Каждый слайс изображения может включать в себя синтаксические данные слайса, которые описывают режим осуществления кодирования для соответствующего слайса. Средство 20 осуществления кодирования обычно работает с видеоблоками внутри отдельных видеослайсов для осуществления кодирования видеоданных. Видеоблок может соответствовать узлу кодирования в CU. Видеоблоки могут иметь фиксированные или переменные размеры и могут отличаться по размерам в соответствии с заданным стандартом кодирования.
Например, модель HM поддерживает предсказание для разных размеров PU. Положим, что размер конкретной CU составляет 2N×2N, модель HM поддерживает интра-предсказание для размеров PU, составляющих 2N×2N или N×N, и интер-предсказание для симметричных размеров PU, составляющих 2N×2N, 2N×N, N×2N или N×N. Модель HM также поддерживает асимметричное разбиение для интра-предсказания для размеров PU, составляющих 2N×nU, 2N×nD, nL×2N и nR×2N. При асимметричном разбиении в одном направлении CU разбиение отсутствует, в то время как в другом направлении выполняется разбиение на части в отношении 25% и 75%. Часть CU, соответствующая 25% части, обозначена как «n», после которой следует обозначение «Вверх», «Вниз», «Влево» или «Вправо». Таким образом, например, «2N×nU» относится к CU размером 2N×2N, которая разбита по горизонтали на PU размером 2N×0,5N сверху и PU размером 2N×1,5N снизу.
В данном описании формы «N×N» и «N на N» могут использоваться как взаимозаменяемые для ссылки на пиксельные размеры видеоблока с точки зрения размеров по вертикали и горизонтали. Например, 16×16 пикселей или 16 на 16 пикселей. В общем случае блок размером 16×16 будет иметь 16 пикселей в вертикальном направлении (y=16) и 16 пикселей в горизонтальном направлении (x=16). Аналогичным образом блок N×N обычно имеет N пикселей в вертикальном направлении и N пикселей в горизонтальном направлении, где N представляет не отрицательное целое значение. Пиксели в блоке могут быть скомпонованы по строкам и столбцам. Кроме того, блоки не обязательно должны иметь одинаковое количество пикселей в горизонтальном направлении и в вертикальном направлении. Например, блоки могут содержать N×M пикселей, где M не обязательно равно N.
Вслед за кодированием с интра- или интер-предсказанием с использованием PU из CU средство 20 осуществления кодирования может вычислить остаточные данные для TU из CU. PU могут содержать пиксельные данные в пространственной области (называемой также пиксельной областью), а TU могут содержать коэффициенты в области преобразования после применения преобразования, например, дискретного косинусного преобразования (DCT), целочисленного преобразования, вейвлетного преобразования или концептуально подобного преобразования, применяемого к остаточным видеоданным. Остаточные данные могут соответствовать пиксельным разностям между пикселями некодированного изображения и предсказанными значениями, соответствующими PU. Средство 20 осуществления кодирования может образовать TU, включающие в себя остаточные данные для CU, а затем преобразовать TU для создания коэффициентов преобразования для CU.
После любого преобразования для создания коэффициентов преобразования средство 20 осуществления кодирования может выполнить квантование коэффициентов преобразования. Квантование в общем случае относится к процессу, в ходе которого выполняется квантование коэффициентов преобразования с целью возможного сокращения объема данных, используемых для представления указанных коэффициентов, что обеспечивает дополнительное сжатие. Процесс квантования может уменьшить глубину в битах, связанную с некоторыми или всеми упомянутыми коэффициентами. Например, n-битовое значение можно округлить в меньшую сторону, получив m-битовое значение во время квантования, где n больше, чем m.
В некоторых примерах средство 20 осуществления кодирования может использовать заранее определенное сканирование или порядок «сканирования» для сканирования квантованных коэффициентов преобразования, чтобы получить преобразованный в последовательную форму вектор, который можно энтропийно закодировать. В других примерах средство 20 осуществления кодирования может выполнять адаптивное сканирование. После сканирования квантованных коэффициентов преобразования для формирования одномерного вектора средство 20 осуществления кодирования может выполнить осуществление энтропийного кодирования этого одномерного вектора, например, в соответствии с контекстно-зависимым адаптивным кодированием с переменной длиной слова (CAVLC), контекстно-адаптивным двоичным арифметическим кодированием (CABAC), синтаксически ориентированным адаптивным двоичным арифметическим кодированием (SBAC), вероятностным энтропийным кодированием с интервальным разбиением (PIPE), или другим методом осуществления энтропийного кодирования. Средство 20 осуществления кодирования может также, выполнить осуществление энтропийного кодирования синтаксических элементов, связанных с закодированными видеоданными, для использования видеодекодером 30 при декодировании видеоданных.
Для выполнения кодирования CABAC средство 20 осуществления кодирования может назначить контекст в контекстной модели символу, который должен быть передан. Этот контекст может относиться, например, к тому, являются ли соседние значения символа нулевыми. Для выполнения кодирования CAVLC средство 20 осуществления кодирования может выбрать код с переменной длиной слова для символа, который должен быть передан. Кодовые слова в VLC могут быть построены так, чтобы относительно более короткие коды соответствовали более вероятным символам, в то время как относительно более длинные коды соответствовали менее вероятным символам. Таким образом, использование кодирования VLC может обеспечить экономное использование бит, например, путем использования кодовых слов одинаковой длины для каждого символа, который должен быть передан. Определение вероятности может быть основано на контексте, назначенном данному символу.
Нижеследующее обсуждается со ссылками на средство 20 осуществления кодирования и видеодекодер 30 и различные их компоненты, показанные на фигурах 2 и 3 и более подробно описанные ниже. Согласно некоторым методикам видеокодирования в случаях, когда средство 20 осуществления кодирования (например, используя блок 40 выбора режима по фиг. 2) выбирает режим кодирования c IPCM для кодирования конкретного “текущего” блока видеоданных на основе результатов с ошибками, средство 20 осуществления кодирования (например, использующее блок 48А осуществления кодирования c IPCM по фиг. 2) может выполнить осуществление кодирования данных или «элементов дискретизации» текущего блока в качестве необработанных данных или элементов дискретизации непосредственно в битовом потоке. В частности, в некоторых версиях рабочего проекта («WD») Стандарта HEVC (например, в версии 4 или «WD4») режим интра-кодирования с IPCM позволяет средству 20 осуществления кодирования представить элементы дискретизации яркости и цветности блока видеоданных непосредственно в битовом потоке в качестве необработанных данных (то есть, элементы дискретизации или значения яркости и цветности кодируют без их модификации или «как есть»). Таким образом, средство 20 осуществления кодирования может выполнить осуществление кодирования текущего блока в виде Кодированного с IPCM блока без сжатия данных в этом блоке.
В одном примере средство 20 осуществления кодирования может выбрать режим интра-кодирования c IPCM, когда количество бит, необходимых для представления сжатой версии текущего блока (например, версии текущего блока, закодированной с использованием интра-предсказания или интер-предсказания) превышает количество бит, необходимых для отправки несжатой версии данных в этом блоке. В этом случае средство 20 осуществления кодирования (используя, например, блок 48А осуществления кодирования c IPCM) может выполнить осуществление кодирования исходных несжатых данных или элементов дискретизации текущего блока в виде IPCM элементов дискретизации. В некоторых случаях возможна фильтрация исходных несжатых данных деблокирующим фильтром (например, деблокирующим фильтром 64 по фиг. 2) перед осуществлением их кодирования средством 20 осуществления кодирования в виде IPCM элементов дискретизации.
В другом примере средство 20 осуществления кодирования может использовать интра- или интер-предсказание для создания сжатой версии текущего блока, который должен быть энтропийно закодирован (например, с использованием блока 56 осуществления энтропийного кодирования по фиг. 2), и создать восстановленный блок из сжатой версии текущего блока для использования в качестве опорного изображения. Если средство 20 осуществления кодирования определяет, что сбой конвейерной обработки имеет место скорее всего в блоке осуществления энтропийного кодирования (например, в блоке 56 осуществления энтропийного кодирования), то средство 20 осуществления кодирования может выполнить осуществление кодирования восстановленных элементов дискретизации восстановленного блока в качестве IPCM элементов дискретизации. В примере на фиг. 2, описываемом ниже, восстановленный блок подвергается фильтрации деблокирующим фильтром, а именно, деблокирующим фильтром 64, перед его кодированием в виде IPCM элементов дискретизации блоком осуществления кодирования c IPCM, то есть, блоком 48А осуществления кодирования c IPCM. В других примерах осуществление кодирования восстановленного блока может быть выполнено блоком осуществления кодирования c IPCM без выполнения фильтрации.
Когда видеодекодер 30 принимает закодированный битовый поток видео, представляющий блоки видеоданных, от средства 20 осуществления кодирования, которое включает в себя IPCM элементы дискретизации в качестве необработанных видеоданных, видеодекодер 30 (используя, например, блок 98В декодирования с IPCM по фиг. 3) может декодировать битовый поток для создания блока видеоданных непосредственно из IPCM элементов дискретизации. Как было описано выше, в некоторых предварительных версиях стандарта HEVC (например, WD4) режим интра-кодирования c IPCM позволяет средству 20 осуществления кодирования представлять элементы дискретизации яркости и цветности блока видеоданных непосредственно в битовом потоке в виде необработанных данных. Таким образом, видеодекодер 30 (используя, например, блок 98А декодирования с IPCM) может декодировать текущий блок как кодируемый с IPCM блок, без распаковки закодированных данных этого блока.
В одном примере IPCM элементы дискретизации в битовом потоке для текущего блока могут представлять собой исходные несжатые элементы дискретизации, так что декодированный блок оказывается идентичным исходному блоку. В этом случае исходный блок, созданный видеодекодером 30 (например, с использованием блока 98А декодирования с IPCM) может быть непосредственно выведен в качестве декодированного видеоблока. В некоторых случаях исходный блок, созданный видеодекодером 30, может быть подвергнут фильтрации деблокирующим фильтром (например, деблокирующим фильтром 94 по фиг. 3) перед его использованием в качестве опорного изображения и выводом в виде декодированного видео.
В другом примере IPCM элементы дискретизации в битовом потоке для текущего блока могут представлять собой восстановленные элементы дискретизации восстановленной версии текущего блока. В этом случае декодированный блок может быть идентичен восстановленной версии исходного блока, который может включать в себя несколько искажений по сравнению с исходным блоком. В примере на фиг. 3, описанном ниже, восстановленный блок, созданный видеодекодером 30, то есть, с использованием блока 98А декодирования с IPCM, может быть подвергнут фильтрации деблокирующим фильтром, а именно, деблокирующим фильтром 94, перед его использованием в качестве опорного изображения и выводом в виде декодированного видео. В других примерах восстановленный блок может непосредственно выводиться из видеодекодера 30 (например, с использованием блока 98А декодирования с IPCM) в виде декодированного видео без фильтрации.
Некоторые предварительные версии стандарта HEVC (например, WD4) фактически поддерживают вышеописанный режим интра-кодирования c IPCM, который позволяет средству осуществления кодирования (например, средству 20 осуществления кодирования) представлять элементы дискретизации яркости и цветности текущего блока видеоданных непосредственно в битовом потоке в виде необработанных данных. Как пояснялось ранее, имеется несколько возможных вариантов использования указанных методик интра-кодирования c IPCM. В одном примере интра-кодирование c IPCM можно использовать в качестве средства, позволяющего средству осуществления кодирования обеспечить такой размер в битах кодированного представления блока видеоданных, который не будет превышать количество бит, необходимых для отправки несжатых данных этого блока. В указанных случаях средство осуществления кодирования может выполнить осуществление кодирования элементов дискретизации данных в текущем блоке в виде IPCM элементов дискретизации. В другом примере кодирование c IPCM и интра-предсказанием можно использовать, чтобы избежать сбоев конвейерной обработки. В указанных случаях средство осуществления кодирования может выполнить осуществление кодирования не исходных элементов дискретизации, например, восстановленных элементов дискретизации данных в восстановленной версии текущего блока в виде IPCM элементов дискретизации.
Вдобавок, некоторые предварительные версии стандарта HEVC (например, WD4) также поддерживают сигнализацию синтаксического элемента «pcm_loop_filter_disable_flag» в наборе параметров последовательности (SPS), связанном с одним или более блоками видеоданных для указания, разрешены ли процессы контурной фильтрации для кодированных с IPCM блоков. Процессы контурной фильтрации могут включать в себя деблокирующую фильтрацию, адаптивную контурную фильтрацию (ALF) и адаптивное к элементам дискретизации смещение (SAO). Если значение pcm_loop_filter_disable_flag равно «истина», или «1», то процессы деблокирующей фильтрации и адаптивной контурной фильтрации для элементов дискретизации кодированных с IPCM блоков запрещаются. В противном случае, когда значение pcm_loop_filter_disable_flag равно «ложь», или «0», то оба этих процесса для элементов дискретизации кодированных с IPCM блоков разрешаются.
Когда исходные несжатые элементы дискретизации текущего блока кодируются в виде IPCM элементов дискретизации, эти элементы дискретизации свободны от искажений. Таким образом, необходимость в контурной фильтрации на входе, такой как деблокирующая фильтрация, ALF фильтрация и SAO фильтрация, отпадает, и такая фильтрация может быть пропущена. В противном случае, когда несжатые элементы дискретизации восстановленной версии текущего блока кодируются в виде IPCM элементов дискретизации, возможно, что видеодекодеру (например, видеодекодеру 30) понадобится выполнить контурную фильтрацию на входе, включая деблокирующую фильтрацию, вдоль краев IPCM блока.
Деблокирующий фильтр (например, деблокирующий фильтр 64 средства 20 осуществления кодирования по фиг. 2 или деблокирующий фильтр 94 видеодекодера 30 по фиг. 3) в некоторых предварительных версиях стандарта HEVC может осуществлять фильтрацию краев некоторых TU и PU блока видеоданных на основе результата вычисления «силы» границ, которое более подробно описано ниже со ссылкой на фиг. 6, и на основе решений, относящихся к деблокированию. Например, решения, относящиеся к деблокированию, могут включать в себя данные о том, включен ли деблокирующий фильтр, является ли деблокирующий фильтр слабым или сильным, а также данные об уровне сигнала слабого фильтра для данного блока видеоданных. Вычисление уровня сигнала на границе и решения, относящиеся к деблокированию, зависят от пороговых значений параметров «tc» и «β». Эти пороговые значения могут храниться в таблице, доступ к которой осуществляется на основе значения QP конкретного блока. Например, деблокирующий фильтр может получить значение QP от блока, который содержит текущий край, который должен быть деблокирован (то есть, «QP яркости» для края яркости и «QP цветности» для края цветности). В некоторых предварительных версиях стандарта HEVC (например, WD6) деблокирующая фильтрация при ее применении выполняет фильтрацию краев (например, краев некоторых TU и/или PU) между двумя блоками (например, так называемые «общие края»). Согласно этим предварительным версиям стандарта HEVC фильтрация краев основана на среднем значении QP (например, «QPave») для значений QP обоих блоков.
В качестве другого примера, в ряде предварительных версий стандарта HEVC (например, WD6) принят режим кодирования без потерь. В режиме кодирования без потерь исходные данные или «не обработанные» данные блока видеоданных могут кодироваться без выполнения вышеописанных этапов предсказания, суммирования, преобразования, квантования и энтропийного кодирования. В другом примере остаточные данные блока видеоданных средством осуществления кодирования (например, средством 20 осуществления кодирования) не квантуются. Таким образом, в этом примере, когда декодер (например, видеодекодер 30) добавляет не квантованные остаточные данные к данным предсказания, результирующие видеоданные могут представлять собой воспроизведенные без потерь исходные видеоданные, закодированные упомянутым средством осуществления кодирования. В любом случае режим кодирования без потерь может быть использован, например, средством осуществления кодирования при осуществлении кодирования видеоданных и декодером при декодировании видеоданных.
В кодированном битовом потоке установка синтаксического элемента «qpprime_y_zero_transquant_bypass_flag» или в некоторых примерах синтаксического элемента «cu_transquant_bypass_flag» в SPS, связанном с одним или более блоками видеоданных, в значение “1”, может определить, что при нулевом значении QP яркости, или «QP′Y», для текущего блока видеоданных необходимо применить процесс кодирования без потерь. В режиме кодирования без потерь процессы масштабирования и преобразования, а также вышеописанные процессы контурной фильтрации на входе могут не выполняться.
В некоторых предварительных версиях стандарта HEVC (например, WD6) параметр QP′Y квантования яркости определяется следующим уравнением:
QP′Y=QPy+QpBdOffsety Уравнение 1
где «QpBdOffsety=6*bit_depth_luma_minus».
В этом примере, если глубина в битах составляет 8 бит, то тогда QpBdOffsety равен «0», или, если глубина в битах составляет 10 бит, то тогда QpBdOffsety равен «12». Диапазон QPY составляет от «QpBdOffsety» до «51», а диапазон QP′Y составляет от «0» до «(51+ QpBdOffsety)».
Согласно некоторым предварительным версиям стандарта HEVC (например, WD6) контурный деблокирующий фильтр на входе может пропустить обработку текущей CU или блока видеоданных, имеющего «QP′Y=0», если qpprime_y_zero_transquant_bypass_flag для данного блока равен «1». Однако, если текущая CU окружена блоками, которые не закодированы с использованием кодирования без потерь (например, для которых «QP′Y>0»), то деблокирующий фильтр может пропустить обработку левого и верхнего краев текущей CU, в то время как правый и нижний края текущей CU могут быть подвергнуты деблокирующей фильтрации, как показано на фиг. 8А, подробно описанной ниже. Одна потенциальная проблема, связанная с этим подходом заключается в том, что деблокирующий фильтр модифицирует элементы дискретизации, закодированные без потерь, вдоль правого и нижнего краев текущего блока, как показано пунктирными частями CU без потерь (то есть, блока 812), показанного на фиг. 8А.
В этом примере параметры β и tc деблокирующего фильтра могут быть определены на основе параметра «QPL», который представляет собой среднее значений QPY блоков по обеим сторонам текущего деблокируемого края. В тех случаях, когда с одной стороны края используется кодирование без потерь, значение QPL можно вычислить, используя следующее выражение:
QPL=(-QpBdOffsety+QPY+1)»1 Уравнение 2
Различные описанные здесь подходы, относящиеся к выполнению деблокирующей фильтрации для кодированных с IPCM блоков и кодированных без потерь блоков видеоданных, имеют ряд недостатков.
В одном примере в случае кодированного с IPCM блока некоторые предварительные версии стандарта HEVC (например, WD4) определяют, что значение QP для этого блока всегда равно «0». Установка значения QP, равным «0», для каждого IPCM блока позволяет эффективно запретить деблокирующую фильтрацию в отношении левого и верхнего края блока независимо от значения pcm_loop_filter_disable_flag, связанного с этим блоком. Однако в некоторых случаях (например, когда IPCM блок включает в себя восстановленные элементы дискретизации) выполнение деблокирующей фильтрации в отношении левого и верхнего края кодированного с IPCM блока может оказаться желательным. Вдобавок, в некоторых случаях возможна фильтрация правого и нижнего краев IPCM блока в зависимости от типа и значения QP соседнего блока видеоданных. Кроме того, как было описано ранее, в некоторых предварительных версиях стандарта HEVC (например, WD6) определено вычисление среднего для значений QP блоков с целью выполнения деблокирующей фильтрации на «общем крае» между этими блоками. В случаях, когда одним блоком является IPCM блок, вычисление среднего значения может привести к сокращению вдвое значения QP другого блока (поскольку значение QP для IPCM блока равно «0»). Это может привести к недопустимому ослаблению деблокирующей фильтрации общего края независимо от значения pcm_loop_filter_disable_flag.
В другом примере способ фильтрации граничных краев CU (закодированных без потерь) или блоков видеоданных, выполняемой в вышеописанном процессе контурной деблокирующей фильтрации на входе согласно некоторым предварительным версиям стандарта HEVC (например, WD6), можно улучшить, используя раскрытые в этом изобретении методики. В одном примере выполнение деблокирующей фильтрации в отношении правого и нижнего краев CU без потерь или блока, которая модифицирует элементы дискретизации без потерь данного блока, может оказаться нежелательным. В другом примере значение QPL, полученное с использованием вышеописанных методик (смотри уравнение 2), может оказаться неадекватным в тех случаях, когда элементы дискретизации с потерями, смежные по отношению к CU без потерь, модифицированы, как показано на фиг. 8В, что аналогично деблокированию с IPCM края в случае, когда pcm_loop_filter_disable_flag имеет значение «истина».
В настоящем изобретении описано несколько методик, которые в ряде случаев могут смягчить или полностью исключить некоторые из вышеописанных недостатков. В частности, раскрытые здесь методики могут поддерживать выполнение деблокирующей фильтрации для кодированных с IPCM блоков, кодированных без потерь блоков, а также блоков, кодированных с использованием так называемого «кодирования с потерями», которые расположены смежно с одним или более кодированными без потерь или с IPCM блоками.
В одном примере раскрытые здесь методики содержат назначение ненулевого значения QP для IPCM блока, когда деблокирующая фильтрация разрешена на основе предсказанного значения QP. Например, предсказанным значением QP может быть значение QP для группы квантования, которая включает в себя IPCM блок, или значение QP для соседнего блока видеоданных, который расположен смежно с или близко по отношению к этому IPCM блоку. В некоторых случаях раскрытые в изобретении методики также можно применить к IPCM блокам, состоящим из восстановленных элементов дискретизации, поскольку исходные элементы дискретизации свободны от искажений, и для них, как правило, деблокирующая фильтрация не требуется. В других случаях эти методики можно применить к IPCM блокам, состоящим из восстановленных элементов дискретизации или исходных элементов дискретизации.
В другом примере видеодекодер 30 может назначить в неявном виде ненулевое значение QP для IPCM блока на основе известного предсказанного значения QP. Предсказанным значением QP может быть значение QP для группы квантования, которая включает в себя IPCM блок, или для соседнего блока по отношению к данному IPCM блоку. Например, когда IPCM блок имеет размер, меньший минимального размера группы квантования CU, видеодекодер 30 может установить назначенное ненулевое значение для IPCM блока равным значению QP для группы квантования, которая включает в себя IPCM блок. Группа квантования может включать в себя один или более блоков видеоданных или CU, размер которых меньше минимального размера группы квантования CU, где все блоки имеют одинаковое значение QP. Когда размер IPCM блока больше или равен минимальному размеру группы квантования CU, видеодекодер 30 может установить назначенное ненулевое значение QP для IPCM блока, равным значению QP для соседнего блока по отношению к IPCM блоку. Соседним блоком может быть блок видеоданных, расположенный слева от IPCM блока или ближайший предыдущий блок IPCM блока в порядке кодирования.
В еще одном примере средство 20 осуществления кодирования может назначить ненулевое значение QP для IPCM блока на основе предсказанного значения QP и обеспечить в явном виде сигнализацию назначенного ненулевого значения QP для видеодекодера 30. Например, средство 20 осуществления кодирования может просигнализировать значение dQP для IPCM блока, которое представляет разность между назначенным ненулевым значением QP и предсказанным значением QP. В этом случае видеодекодер 30 может назначить ненулевое значение QP для IPCM блока на основе принятого значения dQP для IPCM блока и предсказанного значения QP. Затем видеодекодер 30 может применить деблокирующую фильтрацию к элементам дискретизации IPCM блока на основе назначенного ненулевого значения QP для IPCM блока. В других примерах средство 20 осуществления кодирования может просигнализировать назначенное ненулевое значение QP непосредственно видеодекодеру 30.
В еще одном примере согласно раскрытым здесь методикам, как показано на фиг. 8В, деблокирующий фильтр может отключаться на всех пограничных краях (то есть, верхнем, нижнем, левом и правом пограничных краях) CU без потерь, или блока видеоданных, где QP′Y=0, если qpprime_y_zero_transquant_bypass_flag для этого блока равен «1». Например, возможна проверка значений QP′Y=0 по обеим сторонам текущего края, который должен быть деблокирован (то есть, значений QP′Y для кодированного без потерь блока, и смежного блока, который совместно использует текущий край, который должен быть деблокирован), и, если по меньшей мере одно указанное значение равно «0», то деблокирование можно пропустить. В альтернативном варианте можно проверить значения QPY по обеим сторонам текущего края, и, если по меньшей мере одно указанное значение равно «-QpBdOffsety», то деблокирование можно пропустить. Чтобы избежать проверки значений QP для внутренних краев (например, краев «TU») кодированной без потерь CU или блока, деблокирующий фильтр может запретить обработку этих краев. Например, в некоторых случаях можно установить для всей CU значение параметра «bInternalEdge» равным «ложь».
В другом примере согласно раскрытым здесь методикам деблокирующий фильтр, показанный на фиг. 8В, может модифицировать элементы дискретизации блока с потерями, которые являются расположенными смежно с кодированной без потерь CU или блоком, оставляя при этом элементы дискретизации CU без потерь не модифицированными. Этот подход аналогичен случаю деблокирования пограничных краев кодированного с IPCM блока с pcm_loop_filter_disable_flag, равным значению «истина». Согласно раскрытым здесь методикам, можно изменить или переопределить способ вычисления значения QPL, используемого для определения параметров β и tc согласно некоторым предварительным версиям стандарта HEVC, поскольку значение QPL, вычисленное с использованием указанных методик (смотри, например, приведенное выше уравнение 2), может оказаться неадекватным с точки зрения обеспечения визуально привлекательной интеграции кодированных без потерь CU или блоков в окружающей кодированной с потерями области. Одно из возможных решений, предложенных этой методикой, состоит в использовании максимального из двух значений QPY,P/Q для деблокирования текущего края, совместно используемого для блока, кодированного без потерь, и смежного блока с потерями, как показано в следующем выражении:
QPL=max(QPY,P, QPY,Q) Уравнение 3
где P и Q представляют блоки (то есть, кодированные без потерь и с потерями блоки) по обеим сторонам текущего края (например, левый и правый или верхний и нижний блоки). Это эквивалентно использованию значения QPY для CU или блока, который расположен на кодированной с потерями стороне края, между блоками P и Q, как показано в Таблице 1, приведенной ниже.
Для получения предложенного «модифицированного» QPL можно использовать следующий псевдокод без необходимости определения специальных условий (например, определение режима без потерь уже может быть доступно):
if (CU_Q->isLosslessCoded(PartQIdx))
{
QP_Q=0;
QP_P «=1;
}
if (CU_P->isLosslessCoded(PartPIdx))
{
QP_P=0;
QP_Q «=1;
}
QP_L=(QP_P+QP_Q+1) » 1;
В некоторых случаях методики предложенные в этом изобретении, сглаживают разрывы краев между кодированными с потерями областями и кодированными без потерь областями, с помощью предложенного способа получения QPL для определения степени деблокирования. Используя другие методики можно привести разрывы между кодированной без потерь областью, и кодированной с потерями областью, к четко видимым границам. Предложенные здесь методики, которые включают в себя определение подходящего значения QPL для деблокирующей фильтрации, в некоторых случаях могут помочь сократить разрывы границ.
Для разрешения вышеописанного режима деблокирования, согласующегося с раскрытыми здесь методиками, в SPS, наборе параметров изображения (PPS), в наборе параметров адаптации (APS) или в заголовке слайса можно сигнализировать однобитовый код или «флаг». Например, для разрешения деблокирующей фильтрации кодированных с потерями элементов дискретизации, смежных с CU без потерь, или краем блока, как показано на фиг. 8В, можно использовать синтаксический элемент «lossless_loop_filter_enable_flag», равный «1», в то время как этот флаг со значением, равным «0», можно использовать для запрещения деблокирования всех границ CU без потерь. В качестве альтернативы, определение флага pcm_loop_filter_disable_flag, описанного выше со ссылками на кодированные с IPCM блоки, можно расширить так, чтобы оно распространялось на случай кодированных без потерь CU или блоков. Например, в тех случаях, когда значение pcm_loop_filter_disable_flag равно «истина» (например, равно «1»), режим деблокирования, показанный на фиг. 8В, можно применить как к граничным краям CU без потерь и с IPCM. Если значение pcm_loop_filter_disable_flag равно «ложь» (например, равно «0»), то можно полностью запретить деблокирование границ CU без потерь, но в то же время можно разрешить деблокирование с IPCM в отношении обеих сторон границ IPCM.
В другом примере, если pcm_loop_filter_disable_flag равно «ложь», то тогда деблокирование границ блоков или CU без потерь, можно разрешить в отношении обеих сторон границ, как и в случае для границ IPCM. Еще в одном примере, если pcm_loop_filter_disable_flag равно «ложь», то тогда деблокирование границ блока или CU без потерь и границ IPCM, можно запретить в отношении обеих сторон границ, и если pcm_loop_filter_disable_flag равен “истина”, деблокирование границ CU без потерь и границ IPCM может быть разрешено в отношении только одной стороны, как показано на фиг. 8В. Флаг pcm_loop_filter_disable_flag можно переименовать в синтаксический элемент «pcm_transquant_loopfilter_disable_flag» для отражения возможности его применения для или использования и в режиме кодирования с IPCM и режиме кодирования без потерь.
Соответственно, эти два значения для pcm_loop_filter_disable_flag могут соответствовать: (1) разрешению деблокирования для обеих сторон и запрещению деблокирования для обеих сторон; (2) разрешению деблокирования для обеих сторон, а также сочетание; или (3) запрещению деблокирования для обеих сторон, а также сочетание. В этом контексте словосочетание «для обеих сторон» относится к двум сторонам границы между кодированной с потерями CU или блоком и кодированной без потерь CU или блоком(то есть, один граничный край, являющийся внутренним по отношению к кодированной без потерь CU, и один граничный край, являющийся внутренним по отношении к кодированной с потерями CU, как показано на фигурах 8А и 8В). В этом контексте слово «сочетание» в общем случае относится к описанным здесь методикам, когда деблокирующая фильтрация выполняется для внутреннего граничного края кодированной с потерями CU, но деблокирующая фильтрация запрещена для внутреннего граничного края кодированной без потерь CU.
Еще в одном примере согласно раскрытым здесь методикам в качестве сигнализации может передаваться значение QP или значение синтаксического элемента «delta_QP» для текущего блока, например, из средства 20 осуществления кодирования на видеодекодер 30 вместе с данными CU без потерь для данного блока с целью управления деблокирующей фильтрацией вдоль граничных краев текущего блока и одного или более других блоков. Согласно еще одной раскрытой здесь методике значение QP для текущего блока, используемое для управления деблокирующей фильтрацией вдоль одного или более граничных краев кодированной без потерь CU можно предсказать из значения QPY или значения delta_QP из кодированных с потерями CU или блоков. Согласно другим раскрытым здесь методикам для управления деблокированием вдоль граничных краев CU без потерь может быть назначено постоянное значение QP (например «0» или другое значение).
Соответственно, в некоторых примерах, соответствующих раскрытым здесь методикам, средство 20 осуществления кодирования устройства-источника 12 может быть сконфигурировано для осуществления кодирования некоторых блоков видеоданных (например, одного или более PU или TU из CU). В этих примерах видеодекодер 30 устройства-адресата 14 может быть сконфигурирован для приема закодированных видеоданных от средства 20 осуществления кодирования и их декодирования. В одном примере средство 20 осуществления кодирования и/или видеодекодер 30 могут быть сконфигурированы для кодирования множества блоков видеоданных, при этом по меньшей мере один блок из множества блоков видеоданных кодируют с использованием одного из режима кодирования с IPCM или режима кодирования без потерь. В некоторых примерах режим кодирования без потерь может соответствовать режиму кодирования без потерь, использующему предсказание. В этих примерах средство 20 осуществления кодирования и/или видеодекодер 30 могут выполнять по меньшей мере этапы предсказания и суммирования, описанные выше, для создания остаточных данных блока видеоданных. Кроме того, в этих примерах можно избежать квантования остаточных данных, выполняемого средством 20 осуществления кодирования и/или видеодекодером 30. Однако в других примерах режим кодирования без потерь может соответствовать режиму кодирования без потерь, в котором предсказание не используется (например, где исходные или «не обработанные» данные блока видеоданных кодируют без выполнения вышеописанных этапов предсказания, суммирования, преобразования, квантования и энтропийного кодирования). В любом случае в этом примере средство 20 осуществления кодирования и/или видеодекодер 30 могут быть дополнительно сконфигурированы для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока, кодированного с использованием вышеуказанного режима кодирования. Также в этом примере средство 20 осуществления кодирования и/или видеодекодер 30 могут быть дополнительно сконфигурированы для выполнения деблокирующей фильтрации в отношении упомянутого одного или более из множества блоков видеоданных на основе режима кодирования, использованного для кодирования по меньшей мере одного блока и назначенного ненулевого значения QP для этого по меньшей мере одного блока.
Таким образом, раскрытые здесь методики позволяют средству 20 осуществления кодирования и/или видеодекодеру 30 повысить визуальное качество одного или более блоков видеоданных при их кодировании по сравнению с другими методиками. В частности, описанные методики позволяют повысить качество одного или более кодированных с IPCM блоков, состоящих из восстановленных видеоданных, разрешая деблокирующую фильтрацию для этих блоков и выполняя деблокирующую фильтрацию конкретным образом. Вдобавок, эти методики могут повысить визуальное качество одного или более кодированных без потерь блоков, которые включают в себя исходные видеоданные (например, будь то видеоданные, закодированные как исходные или «не обработанные» видеоданные, или остаточные не квантованные видеоданные) путем запрета деблокирующей фильтрации для этих блоков. Кроме того, эти методики также могут повысить визуальное качество одного или более блоков, кодированных с использованием режимов кодирования с потерями, например, блоков, которые расположены смежно с одним или более блоками, кодированными с IPCM или без потерь, путем выполнения деблокирующей фильтрации в отношении этих блоков конкретным образом. В результате возможно относительное повышение визуального качества одного или более блоков видеоданных, в том числе блоков, кодированных с использованием режимов кодирования с IPCM, без потерь и с потерями, при использовании указанных методик.
Средство 20 осуществления кодирования и видеодекодер 30 могут быть реализованы каждый в виде любых подходящих схем средства осуществления кодирования или декодера (если это применимо), таких как один или более микропроцессоров, процессоров DSP, интегральных схем ASIC, вентильных матриц FPGA, дискретных логических схем, программных средств, аппаратных средств, программно-аппаратных средств или любой их комбинации. Средство 20 осуществления кодирования и видеодекодер 30 могут быть включены каждое в одно или более средств осуществления кодирования или декодеров, причем каждый из них может являться составной частью комбинированного средства осуществления кодирования/видеодекодера (CODEC). Устройство, включающее в себя средство 20 осуществления кодирования и/или видеодекодер 30, может содержать интегральную схему (IC), микропроцессор и/или устройство беспроводной связи, такое как сотовый телефон.
На фиг. 2 представлена блок-схема, иллюстрирующая пример средства осуществления кодирования, способного выполнять методики для деблокирования режима кодирования c IPCM и без потерь, согласующиеся с методиками, раскрытыми в настоящем изобретении. Средство 20 осуществления кодирования может выполнять интра- и интер- кодирование видеоблоков в видеослайсах. Интра-кодирование с полагается на пространственное предсказание с целью уменьшения или устранения пространственной избыточности в данном видеокадре или видеоизображении. Интер-кодирование полагается на временное предсказание с целью уменьшения или устранения временной избыточности в смежных кадрах или изображениях видеопоследовательности. Интра-режим (I режим) может относиться к любому из нескольких режимов сжатия на пространственной основе. Интер-режимы, такие как режим однонаправленного предсказания (P режим) или двунаправленного предсказания (B режим) могут относиться к любому из нескольких режимов сжатия на временной основе.
В примере по фиг. 2 средство 20 осуществления кодирования включает в себя блок 40 выбора режима, блок 42 оценки движения, блок 44 компенсации движения, модуль 46 интра-предсказания, блок 48А кодирования c IPCM, блок 48В кодирования без потерь, память 66 опорных изображений, сумматор 50, модуль 52 преобразования, блок 54 квантования и блок 56 осуществления энтропийного кодирования. Для установления видеоблока средство 20 осуществления кодирования также включает в себя блок 58 обратного квантования, модуль 60 обратного преобразования и сумматор 62. Также имеется деблокирующий фильтр 64 для фильтрации границ блоков с целью удаления артефактов «блочности» из восстановленного видео.
Как показано на фиг. 2, средство 20 осуществления кодирования принимает текущий видеоблок в видеослайсе, который должен быть закодирован. Такой слайс может быть разделен на множество видеоблоков. Блок 40 выбора режима может выбрать один из режимов кодирования: интра-, интер-, с IPCM или без потерь для текущего видеоблока на основе результатов, содержащих ошибки. При выборе интра- или интер-режимы блок 40 выбора режима подает результирующий интра- или интер-кодированный блок на сумматор 50 для создания остаточных данных блока и подает их на сумматор 62 для восстановления закодированного блока, чтобы использовать его в качестве опорного изображения. Модуль 46 интра-предсказания выполняет кодирование с интра-предсказанием текущего видеоблока относительно одного или более соседних блоков в этом же кадре или слайсе в качестве текущего блока, который должен быть кодирован для обеспечения пространственного сжатия. Блок 42 оценки движения и блок 44 компенсации движения выполняют кодирование с интер-предсказанием текущего видеоблока относительно одного или более предиктивных блоков в одном или более опорных изображениях, чтобы обеспечить временное сжатие.
В случае интер-кодирования блок 42 оценки движения может быть сконфигурирован для определения режима интер-предсказания для видеослайса согласно заранее определенному шаблону для видеопоследовательности. Заранее определенный шаблон может обозначить видеослайсы в упомянутой последовательности как P слайсы, B слайсы или GPB слайсы. Блок 42 оценки движения и блок 44 компенсации движения могут быть объединены с высокой степенью интеграции, но они показаны здесь отдельно в концептуальных целях. Оценка движения, выполняемая блоком 42 оценки движения, представляет собой процесс создания векторов движения, в ходе которого оценивается движение видеоблоков. Вектор движения, например, может указывать смещение PU видеоблока в текущем видеокадре или изображении относительно предиктивного блока в опорном изображении.
Предиктивный блок - это блок, который определяют на основе близкого соответствия PU видеоблока, который должен быть кодирован на основе пиксельной разности, которую можно определить с использованием таких разностных показателей, как сумма абсолютных значений разностей (SAD), сумма квадратичных разностей (SSD) или другая сумма. В некоторых примерах средство 20 осуществления кодирования может вычислить значения для дробных пиксельных позиций опорных изображений, хранящихся в памяти 66 опорных изображений. Например, средство 20 осуществления кодирования может вычислить значения пиксельных позиций с точностью в одну четверть, пиксельных позиций с точностью одна восьмая или пиксельных позиций опорного изображения с другой дробной точностью. Таким образом, блок 42 оценки движения может выполнить поиск движения относительно целочисленных пиксельных позиций и дробных пиксельных позиций и вывести вектор движения с точностью до долей пикселя.
Блок 42 оценки движения вычисляет вектор движения для PU видеоблока в интер-кодированном слайсе, путем сравнения позиции данной PU с позицией предиктивного блока опорного изображения. Опорное изображение может быть выбрано из первого списка опорных изображений (список 0) или второго списка опорных изображений (список 1), каждый из которых идентифицирует одно или более опорных изображений, хранящихся в памяти 66 опорных изображений. Блок 42 оценки движения отправляет вычисленный вектор движения в блок 56 осуществления энтропийного кодирования и блок 44 компенсации движения.
Компенсация движения, выполняемая блоком 44 компенсации движения, может содержать извлечение или создание предиктивного блока на основе вектора движения, определенного в результате оценки движения. После получения вектора движения для PU текущего видеоблока блок 44 компенсации движения может определить местоположение предиктивного блока, на которое указывает вектор движения, в одном из списков опорных изображений. Средство 20 осуществления кодирования формирует остаточный видеоблок путем вычитания пиксельных значений предиктивного блока из пиксельных значений текущего кодируемого видеоблока, формируя значения пиксельных разностей. Значения пиксельных разностей образуют остаточные данные для рассматриваемого блока, причем они могут включать в себя разностные компоненты яркости и цветности. Сумматор 50 представляет ту компоненту, которая выполняет указанную операцию вычитания. Блок 44 компенсации движения может также создать синтаксические элементы, связанные с видеоблоками и видеослайсом, для их использования видеодекодером 30 при декодировании видеоблоков видеослайса.
После создания блоком 44 компенсации движения предиктивного блока для текущего видеоблока средство 20 осуществления кодирования формирует остаточный видеоблок путем вычитания предиктивного блока из текущего видеоблока. Остаточные видеоданные в остаточном блоке могут быть включены в одну или более TU и использованы в модуле 52 преобразования. Модуль 52 преобразования выполняет преобразование остаточных видеоданных в остаточные коэффициенты преобразования, используя такое преобразование, как дискретное косинусное преобразование (DCT) или концептуально подобное преобразование. Модуль 52 преобразования может преобразовать остаточные видеоданные из пиксельной области в область преобразования, например, частотную область.
Модуль 52 преобразования может отправить результирующие коэффициенты преобразования в блок 54 квантования. Блок 54 квантования выполняет квантование коэффициентов преобразования для дополнительного уменьшения частоты следования битов. Процесс квантования может уменьшить глубину в битах, связанную с некоторыми или всеми упомянутыми коэффициентами. Степень квантования можно модифицировать, регулируя значение QP. В некоторых примерах блок 54 квантования может затем выполнить сканирование матрицы, включающей в себя квантованные коэффициенты преобразования. В качестве альтернативы, сканирование может быть выполнено блоком 56 осуществления энтропийного кодирования. Вслед за квантованием блок 56 осуществления энтропийного кодирования выполняет осуществление энтропийного кодирования квантованных коэффициентов преобразования. Например, блок 56 осуществления энтропийного кодирования может реализовать осуществление кодирования CAVLC, CABAC или иной вариант осуществления энтропийного кодирования. После выполнения блоком 56 осуществления энтропийного кодирования закодированный битовый поток может быть передан на видеодекодер 10 или заархивирован для более поздней передачи или извлечения видеодекодером 30. Блок 56 осуществления энтропийного кодирования также может выполнить осуществление энтропийного кодирования векторов движения и других синтаксических элементов для кодируемого текущего видеослайса.
Блок 58 обратного квантования и модуль 60 обратного преобразования выполняют соответственно обратное квантование и обратное преобразование для восстановления остаточного блока в пиксельной области для использования в дальнейшем в качестве опорного блока опорного изображения. Блок 44 компенсации движения может вычислить опорный блок путем добавления остаточного блока к предиктивному блоку одного из опорных изображений в одном из списков опорных изображений. Блок 44 компенсации движения также может применить один или более интерполяционных фильтров для восстановленного остаточного блока, чтобы вычислить пиксельные значения в долях пикселя для использования при оценке движения. Сумматор 62 суммирует восстановленный остаточный блок с предиктивным блоком, созданным блоком 44 компенсации движения, для создания опорного блока для запоминания в памяти 66 опорных изображений. Опорный блок может быть использован блоком 42 оценки движения и блоком 44 компенсации движения в качестве опорного блока для интер-предсказания блока в последующем видеокадре или видеоизображении.
Как было описано выше со ссылками на фиг. 1, средство 20 осуществления кодирования также включает в себя блок 48А осуществления кодирования c IPCM и блок 48В осуществления кодирования без потерь, которые предоставляют возможность средству 20 осуществления кодирования реализовать методики кодирования c IPCM и без потерь, относящиеся к средству 20 осуществления кодирования согласно настоящему изобретению.
В одном примере средство 20 осуществления кодирования может быть сконфигурировано для осуществления кодирования одного или более блоков видеоданных во время процесса видеокодирования. Например, средство 20 осуществления кодирования может быть сконфигурировано для осуществления кодирования множества блоков видеоданных, где средство 20 осуществления кодирования выполняет осуществление кодирования по меньшей мере одного блока из множества блоков видеоданных, используя один из режимов кодирования: режим кодирования c IPCM или режим кодирования без потерь. Как объяснялось ранее, в некоторых случаях режим кодирования без потерь может включать в себя выполнение предсказания для упомянутого по меньшей мере одного блока с целью его кодирования (например, вместе с суммированием для создания остаточных данных по меньшей мере этого одного блока). Однако в других случаях режим кодирования без потерь может быть использован для кодирования по меньшей мере одного блока без выполнения предсказания (например, в качестве исходных или «необработанных» видеоданных).
Например, как было описано ранее, по меньшей мере один блок из множества блоков видеоданных, кодированных с использованием режима кодирования c IPCM, может соответствовать по меньше мере одному блоку, включающему в себя восстановленные видеоданные. Например, восстановленные видеоданные могут создаваться средством 20 осуществления кодирования как результат выполнения этапов предсказания, суммирования, преобразования и квантования, описанных выше со ссылками на средство 20 осуществления кодирования по фиг. 1 с использованием блока исходных видеоданных. Выполнив вышеописанные этапы, средство 20 осуществления кодирования может создать блок квантованных и преобразованных остаточных коэффициентов. Кроме того, средство 20 осуществления кодирования может быть сконфигурировано для выполнения обратного квантования, обратного преобразования, предсказания и суммирования для квантованных и преобразованных остаточных коэффициентов, как также было описано выше, для создания блока восстановленных видеоданных. В качестве альтернативы, как также было описано ранее, по меньшей мере один блок, кодируемый с использованием режима кодирования без потерь, может соответствовать по меньшей мере одному блоку, включающему в себя исходные данные или остаточные не квантованные видеоданные.
В любом случае средство 20 осуществления кодирования может быть дополнительно сконфигурировано для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока, кодированного с использованием упомянутого режима кодирования. Как было описано выше, средство 20 осуществления кодирования может быть сконфигурировано для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока с использованием, например, предсказанного значения QP для упомянутого по меньшей мере одного этого блока, которое можно определить, используя значение QP каждого из одного или более соседних блоков видеоданных. Средство 20 осуществления кодирования также может быть сконфигурировано для выполнения деблокирующей фильтрации в отношении одного или более из множества блоков видеоданных на основе режима кодирования, использованного средством 20 осуществления кодирования для кодирования данного по меньшей мере одного блока и назначенного ненулевого значения QP для данного по меньшей мере одного блока.
В некоторых примерах для выполнения деблокирующей фильтрации в отношении упомянутого одного или более из множества блоков видеоданных на основе режима кодирования, использованного для кодирования данного по меньшей мере одного блока, и назначенного ненулевого значения QP, средство 20 осуществления кодирования может быть сконфигурировано для выполнения следующих этапов. Например, если режимом кодирования, использованным для кодирования данного по меньшей мере одного блока является режим кодирования c IPCM, то средство 20 осуществления кодирования может быть сконфигурировано для выполнения деблокирующей фильтрации по меньшей мере в отношении одного блока на основе назначенного ненулевого значения QP. Кроме того, если режимом кодирования, использованным для кодирования данного по меньшей мере одного блока является режим кодирования без потерь, то средство 20 осуществления кодирования может быть сконфигурировано для выполнения деблокирующей фильтрации в отношении смежного блока множества блоков видеоданных на основе назначенного ненулевого значения QP. В этом примере смежный блок может располагаться смежно с данным по меньшей мере одним блоком и кодироваться с использованием режима кодирования с потерями.
В некоторых случаях для выполнения деблокирующей фильтрации в отношении данного по меньшей мере одного блока и смежного блока на основе назначенного ненулевого значения QP средство 20 осуществления кодирования может быть сконфигурировано для выбора фильтра для деблокирующей фильтрации на основе назначенного ненулевого значения QP. Например, средство 20 осуществления кодирования может быть сконфигурировано для выбора фильтра с использованием назначенного ненулевого значения QP таким образом, что этот фильтр будет иметь один или более параметров или характеристик фильтрации, определяющих, каким образом выполняется деблокирующая фильтрация с использованием данного фильтра. В других примерах для выполнения деблокирующей фильтрации в отношении каждого по меньшей мере одного блока и смежного блока на основе назначенного ненулевого значения QP средство 20 осуществления кодирования может быть сконфигурировано для определения силы фильтра для деблокирующей фильтрации на основе назначенного ненулевого значения QP, как было описано выше со ссылками на технические решения по деблокированию.
В некоторых примерах средство 20 осуществления кодирования может быть сконфигурировано для разрешения деблокирующей фильтрации для упомянутого одного или более из множества блоков видеоданных до выполнения деблокирующей фильтрации в отношении упомянутого одного или более из множества блоков видеоданных на основе режима кодирования, используемого для кодирования по меньшей мере одного блока, и назначенного ненулевого значения QP. В других примерах режимом кодирования может быть режим кодирования без потерь. В этих случаях средство 20 осуществления кодирования может быть дополнительно сконфигурировано для запрещения деблокирующей фильтрации для упомянутого по меньшей мере одного блока. В этих случаях запрещение деблокирующей фильтрации для упомянутого по меньшей мере одного блока может включать в себя невыполнение деблокирующей фильтрации для внутренних граничных краев рассматриваемого по меньшей мере одного блока.
В некоторых примерах для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока средство 20 осуществления кодирования может быть сконфигурировано для определения ненулевого значения QP на основе одного или более из следующих параметров: (1) просигнализированного значения QP для данного по меньшей мере одного блока (например, где просигнализированное значение QP указывает назначенное ненулевое значение QP); (2) предсказанного значения QP для данного по меньшей мере одного блока (определенного, например, с использованием значения QP каждого из соседних блоков видеоданных); и (3) просигнализированного значения dQP для упомянутого по меньшей мере одного блока (например, где значение dQP представляет разность между назначенным ненулевым значением QP и предсказанным значением QP). В одном примере, каждое из сигнализируемых значений QP и dQP (если они применяются) может быть определено средством 20 осуществления кодирования и просигнализировано видеодекодеру 30 в битовом потоке. В другом примере предсказанное значение QP может быть определено средством 20 осуществления кодирования.
В других примерах в тех случаях, когда режимом кодирования, используемым для кодирования данного по меньшей мере одного блока, является режим кодирования c IPCM, для назначения ненулевого значения QP для данного по меньшей мере одного блока, средство 20 осуществления кодирования может быть сконфигурировано для выполнения следующих шагов. Например, когда размер по меньшей мере одного блока меньше минимального размера группы квантования CU, средство 20 осуществления кодирования может быть сконфигурировано для установки по меньшей мере одного значения QP для группы квантования, которая включает в себя по меньшей мере один блок, в качестве назначенного ненулевого значения QP. В этих примерах группа квантования может также включать в себя один или более блоков видеоданных, кодированных с использованием режима кодирования с потерями.
Как было описано выше, в некоторых примерах каждый из блоков видеоданных, включенных в группу квантования, может иметь одинаковое групповое значение QP. В этих примерах средство 20 осуществления кодирования может быть сконфигурировано для установки этого общего группового значения QP в качестве назначенного ненулевого значения QP. Однако в других примерах одинаковое групповое значение QP могут иметь только некоторые блоки из группы квантования (например, блоки, начиная с первого блока из группы квантования, для которой передается значение QP, например, в виде значения dQP). В этих примерах средство 20 осуществления кодирования может быть сконфигурировано для установки в качестве назначенного ненулевого значения QP этого конкретного группового значения QP, являющегося общим только для поднабора блоков группы квантования.
Кроме того, когда размер по меньшей мере одного блока больше или равен минимальному размеру группы квантования CU, средство 20 осуществления кодирования может быть сконфигурировано для установки в качестве назначенного ненулевого значения QP значения QP для соседнего блока из множества блоков видеоданных. Например, соседним блоком может быть один или более блоков, которые расположены смежно с так называемым «краевым» блоком (то есть, блоком видеоданных, расположенным смежно с границей кадра видеоданных, который включает в себя данный блок), блок, расположенный смежно с упомянутым по меньшей мере одним блоком может не существовать. В таких случаях соседним блоком может быть ранее кодированный блок, то есть, блок видеоданных, появившийся до упомянутого по меньшей мере одного блока в порядке кодирования, связанном с кадром видеоданных, который включает в себя упомянутый по меньшей мере один блок и ранее кодированный блок.
В некоторых примерах, когда режимом кодирования, используемым для кодирования по меньшей мере одного блока, является режим кодирования без потерь, для назначения ненулевого значения QP по меньшей мере для указанного одного блока, средство 20 осуществления кодирования может быть сконфигурировано для установки значения QP или значения dQP для блока, кодированного с потерями, из множества блоков видеоданных в качестве назначенного ненулевого значения QP. В этих примерах значение dQP может представлять разность между значением QP и предсказанным значением QP для блока с потерями. Также в этих примерах блоком с потерями может быть блок, кодируемый с использованием режима кодирования с потерями, например, режима кодирования, который включает в себя выполнение этапов предсказания, суммирования, преобразования и квантования, описанных выше, или подобных этапов.
В других примерах в тех случаях, когда режимом кодирования, используемым для кодирования упомянутого по меньшей мере одного блока, является режим кодирования без потерь, для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока, средство 20 осуществления кодирования может быть сконфигурировано для установки постоянного значения в качестве назначенного ненулевого значения QP.
В некоторых примерах кодирование может представлять собой осуществление кодирования. В этих примерах для осуществления кодирования по меньшей мере одного блока средство 20 осуществления кодирования может быть сконфигурировано для сигнализации остаточных неквантованных видеоданных или восстановленных видеоданных упомянутого по меньшей мере одного блока в битовом потоке. Также в этих примерах для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока средство 20 осуществления кодирования может быть сконфигурировано для выполнения одного из сигнализации назначенного ненулевого значения QP в битовом потоке и сигнализации значения dQP для упомянутого по меньшей мере одного блока в битовом потоке. Например, значение dQP может представлять разность между назначенным ненулевым значением QP и предсказанным значение QP для упомянутого по меньшей мере одного блока. В этих примерах средство 20 осуществления кодирования дополнительно может быть сконфигурировано для сигнализации одного или более синтаксических элементов в битовом потоке. Например, один или более синтаксических элементов могут указывать, что для одного или более из множества блоков видеоданных разрешена деблокирующая фильтрация.
В вышеописанных примерах, в частности, в тех случаях, когда режимом кодирования, используемым для кодирования по меньшей мере одного блока является режим кодирования без потерь, один или более синтаксических элементов могут называться «первым» или «первыми» синтаксическими элементами. В этих примерах средство 20 осуществления кодирования может быть дополнительно сконфигурировано для сигнализации второго синтаксического элемента или вторых синтаксических элементов в битовом потоке. Например, второй синтаксический элемент или вторые синтаксические элементы могут указывать, что для упомянутого по меньшей мере одного блока деблокирующая фильтрация запрещена.
Соответственно, как было объяснено выше, раскрытые здесь методики дают возможность средству 20 осуществления кодирования повысить визуальное качество одного или более блоков видеоданных при осуществлении кодирования одного или более блоков по сравнению с другими методиками. В частности, описанные методики дают возможность повысить визуальное качество одного или более кодированных с IPCM блоков, состоящих из восстановленных видеоданных, путем разрешения деблокирующей фильтрации для этих блоков и выполнения деблокирующей фильтрации конкретным образом. Вдобавок, эти методики позволяют повысить визуальное качество одного или более блоков, кодированных с потерями, которые включают в себя исходные видеоданные, путем запрета деблокирующей фильтрации для этих блоков. Кроме того, эти методики также позволяют повысить визуальное качество одного или более блоков, кодированных с использованием режимов кодирования с потерями, например, одного или более блоков, расположенных смежно с одним или более блокам, закодированным с использованием режима кодирования c IPCM или режима кодирования без потерь, путем выполнения деблокирующей фильтрации в отношении блоков, закодированных с потерями, конкретным образом. В результате возможно относительное повышение визуального качества одного или более блоков видеоданных, в том числе блоков, кодированных с использованием режимов кодирования c IPCM, кодирования без потерь и кодирования с потерями, при использовании раскрытых здесь методик.
Таким образом, средство 20 осуществления кодирования представляет пример средства осуществления кодирования, сконфигурированного для кодирования множества блоков видеоданных, где средство осуществления кодирования сконфигурировано для кодирования по меньшей мере одного блока из множества блоков видеоданных с использованием режима кодирования, являющегося либо режимом кодирования c IPCM, либо режимом кодирования без потерь, в которых используется предсказание. Также в этом примере средство осуществления кодирования дополнительно сконфигурировано для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока, кодированного с использованием указанного режима кодирования, и выполнения деблокирующей фильтрации в отношении упомянутого одного или более из множества блоков видеоданных на основе указанного режима кодирования, используемого для кодирования упомянутого по меньшей мере одного блока, и назначенного ненулевого значения QP для упомянутого по меньшей мере одного блока.
На фиг. 3 представлена блок-схема, где показан пример видеодекодера, который может реализовать указанные методики для деблокирования режимов кодирования c IPCM или кодирования без потерь, соответствующие методикам, раскрытым в настоящем изобретении. В примере на фиг. 3 видеодекодер 30 включает в себя блок 80 энтропийного декодирования, блок 98А IPCM декодирования, блок 98В декодирования без потерь, модуль 82 предсказания, блок 88 обратного квантования, модуль 90 обратного преобразования, сумматор 92, деблокирующий фильтр 94 и память 96 опорных изображений. Модуль 82 предсказания включает в себя блок 84 компенсации движения и модуль 86 интра-предсказания. В некоторых примерах видеодекодер 30 может выполнять проход декодирования, который в общем случае является обратным по отношению к проходу осуществления кодирования, описанному применительно к средству 20 осуществления кодирования по фиг. 2.
В ходе процесса декодирования видеодекодер 30 принимает закодированный битовый поток видео, представляющий видеоблоки закодированного видеослайса и соответствующие синтаксические элементы от средства 20 осуществления кодирования. Когда представленные в битовом потоке видеоблоки включают в себя сжатые видеоданные, блок 80 энтропийного декодирования видеодекодера 30 выполняет энтропийное декодирование битового потока, создавая квантованные коэффициенты, векторы движения и другие синтаксические элементы. Блок 80 энтропийного декодирования направляет эти векторы движения и другие синтаксические элементы в модуль 82 предсказания. Видеодекодер 30 может принять синтаксические элементы на уровне видеослайса и/или на уровне видеоблока.
Когда видеослайс кодирован как интра-кодированный (I) слайс, модуль 86 интра-предсказания модуля 82 предсказания может создать данные предсказания для видеоблока текущего видеослайса на основе просигнализированного режима интра-предсказания, а также данных из ранее декодированных блоков текущего кадра или изображения. Когда видеокадр закодирован как интер-кодированный (то есть, B, P или GPB) слайс блок 84 компенсации движения модуля 82 предсказания создает предиктивные блоки для видеоблока текущего видеослайса на основе векторов движения и других синтаксических элементов, полученных от блока 80 энтропийного декодирования. Предиктивные блоки можно создать из одного из опорных изображений в одном из списков опорных изображений. Видеодекодер 30 может построить списки опорных кадров, список 0 и список 1, используя стандартные методики построения на основе опорных изображений, хранящихся в памяти 96 опорных изображений.
Блок 84 компенсации движения определяет информацию предсказания для видеоблока текущего видеослайса путем синтаксического анализа векторов движения и других синтаксических элементов и использует информацию предсказания для создания блоков предсказания для текущего декодируемого видеоблока. Например, блок 84 компенсации движения использует некоторые из полученных синтаксических элементов для определения режима предсказания (например, интра- или интер-предсказание), используемого для кодирования видеоблоков видеослайса, типа слайса с интер-предсказанием (например, B слайс, P слайс или GPB слайс), информации о структуре для одного или более списков опорных изображений для данного слайса, векторов движения для каждого inter-закодированного видеоблока слайса, статуса интер-предсказания для каждого интер-кодированного видеоблока слайса, и другой информации для декодирования видеоблоков в текущем видеослайсе.
Блок 84 компенсации движения также может выполнить интерполяцию на основе интерполяционных фильтров. Блок 84 компенсации движения может использовать интерполяционные фильтры, как это делается средством 20 осуществления кодирования в процессе осуществления кодирования видеоблоков для вычисления интерполированных значений для дробных пикселей опорных блоков. Блок 84 компенсации движения может определить интерполяционные фильтры, используемые средством 20 осуществления кодирования, исходя из полученных синтаксических элементов, и использовать эти интерполяционные фильтры для создания предиктивных блоков.
Блок 88 обратного квантования выполняет обратное квантование, то есть, деквантование квантованных коэффициентов преобразования, предусмотренных в битовом потоке и декодируемых блоком 80 энтропийного декодирования. Процесс обратного квантования может включать в себя использование параметра квантования (QP), вычисленного средством 20 осуществления кодирования для каждого видеоблока в видеослайсе, для определения степени квантования по аналогии со степенью обратного квантования, которую и следует применить. Модуль 90 обратного преобразования применяет обратное преобразование, например, обратное DCT преобразование, обратное целочисленное преобразование или концептуально подобный процесс обратного преобразования к коэффициентам преобразования, чтобы обеспечить остаточные блоки в пиксельной области.
После того, как блок 84 компенсации движения создал блок предсказания для текущего видеоблока на основе векторов движения и других синтаксических элементов, видеодекодер 30 формирует декодированный видеоблок посредством суммирования остаточных блоков, полученных от модуля 90 обратного преобразования, с соответствующими блоками предсказания, созданными блоком 84 компенсации движения. Сумматор 92 представляет компонент или компоненты, которые выполняют операцию суммирования. Деблокирующий фильтр 94 применяется для фильтрации декодированных блоков с целью устранения артефактов блочности. Декодированные видеоблоки в данном кадре или изображении запоминаются затем в памяти 96 опорных изображений, где хранятся опорные изображения, используемые для последующей компенсации движения. В памяти 96 опорных изображений также запоминается декодированное видео для его представления в дальнейшем на устройстве отображения, таком как устройство 28 отображения по фиг. 1.
Как было описано выше со ссылкой на фиг. 1, видеодекодер 30 также включает в себя блок 98А декодирования с IPCM и блок 98B декодирования без потерь, которые могут разрешить видеодекодеру 30 реализовать методики кодирования с IPCM и кодирования без потерь, являющиеся атрибутом видеодекодера 30 согласно настоящему изобретению.
В одном примере видеодекодер 30 может быть сконфигурирован для декодирования одного или более блоков видеоданных во время процесса видеокодирования. Например, видеодекодер 30 может быть сконфигурирован для декодирования множества блоков видеоданных, при этом по меньшей мере один блок из множества блоков видеоданных может быть закодирован (то есть, средством 20 осуществления кодирования с использованием режима кодирования, являющегося либо режимом кодирования c IPCM, либо режимом кодирования без потерь). Как пояснялось выше со ссылками на фигуры 1 и 2, в некоторых примерах режим кодирования без потерь может включать в себя выполнение предсказания для упомянутого по меньшей мере одного блока для кодирования данного блока (например, вместе с суммированием для создания остаточных данных упомянутого по меньшей мере одного блока). Однако в других примерах режим кодирования без потерь может быть использован для кодирования по меньшей мере одного блока без выполнения предсказания (например, исходные или «необработанные» видеоданные).
В одном примере, как было описано ранее, по меньшей мере один блок из множества блоков видеоданных, закодированных с использованием режима кодирования c IPCM, может соответствовать по меньшей мере одному блоку, включающему в себя восстановленные видеоданные. Например, восстановленные видеоданные могут создаваться, например, средством 20 осуществления кодирования путем выполнения этапов предсказания, суммирования, преобразования и квантования, описанных выше со ссылками на средство 20 осуществления кодирования по фиг. 1 и 2 с использованием блока исходных видеоданных. Путем выполнения вышеописанных этапов средство 20 осуществления кодирования может создать блок квантованных и преобразованных остаточных коэффициентов. Затем средство 20 осуществления кодирования может быть сконфигурировано для выполнения обратного квантования, обратного преобразования, предсказания и суммирования на квантованных и преобразованных остаточных коэффициентах, которые также были описаны выше, для создания блока восстановленных видеоданных. В качестве альтернативы, как также было описано выше, по меньшей мере один блок, кодируемый с использованием режима кодирования без потерь, может соответствовать по меньшей мере одному блоку, включающему в себя исходные видеоданные или остаточные не квантованные видеоданные.
В любом случае видеодекодер 30 может быть дополнительно сконфигурирован для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока, закодированного с использованием указанного режима кодирования. Как было описано ранее, видеодекодер 30 может быть сконфигурирован для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока с использованием, например, предсказанного значения QP для упомянутого по меньшей мере одного блока, которое может быть определено с использованием значения QP для каждого из одного или более соседних блоков видеоданных. Видеодекодер 30 также может быть сконфигурирован для выполнения деблокирующей фильтрации в отношении упомянутого одного или более из множества блоков видеоданных на основе режима кодирования, используемого для кодирования упомянутого по меньшей мере одного блока и назначенного ненулевого значения QP для упомянутого по меньшей мере одного блока.
В некоторых примерах для выполнения деблокирующей фильтрации в отношении упомянутого одного или более из множества блоков видеоданных на основе режима кодирования, используемого для кодирования данного по меньшей мере одного блока и назначенного ненулевого значения QP, видеодекодер 30 может быть сконфигурирован для выполнения следующих этапов. Например, если режимом кодирования, используемым для кодирования по меньшей мере одного блока, является режим кодирования c IPCM, то видеодекодер 30 может быть сконфигурирован для выполнения деблокирующей фильтрации в отношении упомянутого по меньшей мере одного блока на основе назначенного ненулевого значения QP. Кроме того, если режимом кодирования, используемым для кодирования упомянутого по меньшей мере одного блока является режим кодирования без потерь, то видеодекодер 30 может быть сконфигурирован для выполнения деблокирующей фильтрации в отношении смежного блока из множества блоков видеоданных на основе этого назначенного ненулевого значения QP. В данном примере этим смежным блоком может быть блок, примыкающий к указанному по меньшей мере одному блоку, и этот смежный блок может быть кодирован с использованием режима кодирования с потерями.
В некоторых примерах для выполнения деблокирующей фильтрации в отношении упомянутого по меньшей мере одного блока и упомянутого смежного блока на основе назначенного ненулевого значения QP видеодекодер 30 может быть сконфигурирован для выбора фильтра для деблокирующей фильтрации на основе назначенного ненулевого значения QP. Например, видеодекодер 30 может быть сконфигурирован для выбора фильтра с использованием назначенного ненулевого значения QP, так чтобы фильтр имел один или более параметров или характеристик фильтрации, которые определяют то, каким образом выполняется деблокирующая фильтрация с использованием выбранного фильтра. В других примерах для выполнения деблокирующей фильтрации в отношении упомянутого по меньшей мере одного блока и смежного блока на основе назначенного ненулевого значения QP видеодекодер 30 может быть сконфигурирован для определения силы фильтра для деблокирующей фильтрации на основе назначенного ненулевого значения QP, как было описано выше со ссылками на технические решения по деблокированию.
В некоторых примерах видеодекодер 30 может быть сконфигурирован для разрешения деблокирующей фильтрации для упомянутого одного или более из множества блоков видеоданных до выполнения деблокирующей фильтрации в отношении упомянутого одного или более из множества блоков видеоданных на основе указанного режима кодирования, используемого для кодирования упомянутого по меньшей мере одного блока и назначенного ненулевого значения QP. В других примерах режимом кодирования может быть режим кодирования с потерями. В этих примерах видеодекодер 30 может быть дополнительно сконфигурирован для запрета деблокирующей фильтрации для упомянутого по меньшей мере одного блока. В этих примерах запрет деблокирующей фильтрации для упомянутого по меньшей мере одного блока может включать в себя невыполнение деблокирующей фильтрации для внутренних граничных краев упомянутого по меньшей мере одного блока.
В некоторых примерах для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока видеодекодер 30 может быть сконфигурирован для определения назначенного ненулевого значения QP на основе одного или более из следующих параметров: (1) просигнализированного значения QP для данного по меньшей мере одного блока (например, при этом просигнализированное значение QP указывает назначенное ненулевое значение QP); (2) предсказанного значения QP для данного по меньшей мере одного блока (определенного, например, с использованием значения QP каждого из одного или более соседних блоков видеоданных); и (3) просигнализированного значения dQP для упомянутого по меньшей мере одного блока (например, где значение dQP представляет разность между назначенным ненулевым значением QP и предсказанным значением QP). В одном примере, каждое из просигнализированных значений QP и dQP (если они применяются) может быть получено видеодекодером 30 от средства 20 осуществления кодирования в битовом потоке. В другом примере предсказанное значение QP может быть определено видеодекодером 30.
В других примерах в тех случаях, когда режимом кодирования, используемым для кодирования данного по меньшей мере одного блока, является режим кодирования c IPCM, для назначения ненулевого значения QP для данного по меньшей мере одного блока, видеодекодер 30 может быть сконфигурирован для выполнения следующих этапов. Например, когда размер по меньшей мере одного блока меньше минимального размера группы квантования CU, видеодекодер 30 может установить групповое значение QP, например, по меньшей мере одно групповое значение QP для группы квантования, которая включает в себя по меньшей мере один блок, в качестве назначенного ненулевого значения QP. В этих примерах группа квантования может также включать в себя один или более блоков видеоданных, кодированных с использованием режима кодирования с потерями. Как было описано выше, в некоторых примерах каждый из блоков видеоданных, включенных в группу квантования, может иметь одинаковое групповое значение QP. В этих примерах видеодекодер 30 может быть сконфигурирован для установки этого общего группового значения QP в качестве назначенного ненулевого значения QP. Однако в других примерах одинаковое групповое значение QP могут иметь только некоторые блоки из группы квантования (например, блоки, начиная с первого блока из группы квантования, для которой передается значение QP, например, в виде значения dQP). В этих примерах видеодекодер 30 может быть сконфигурирован для установки в качестве назначенного ненулевого значения QP этого конкретного группового значения QP, являющегося общим только для поднабора блоков группы квантования. Кроме того, когда размер по меньшей мере одного блока больше или равен минимальному размеру группы квантования CU, видеодекодер 30 может быть сконфигурирован для установки в качестве назначенного ненулевого значения QP значения QP для соседнего блока из множества блоков видеоданных. Например, соседним блоком может быть один или более блоков, которые расположены смежно с по меньшей мере одним блоком и ранее кодированным блоком.
В ряде других примеров в тех случаях, когда режимом кодирования, используемым для кодирования по меньшей мере одного блока, является режим кодирования c IPCM, для назначения ненулевого значения QP для по меньшей мере одного блока, видеодекодер 30 может быть сконфигурирован для установки значения QP для соседнего блока из множества блоков видеоданных в качестве назначенного ненулевого значения QP, когда размер по меньшей мере одного блока меньше минимального размера группы квантования CU. В этих примерах соседним блоком может быть один или более блоков, которые расположены смежно с упомянутым по меньшей мере одним блоком и ранее кодированным блоком. Например, в тех случаях, когда по меньшей мере один блок является так называемым «краевым» блоком (то есть, блоком видеоданных, расположенным у границы кадра видеоданных, который включает в себя данный блок), блок, расположенный смежно с упомянутым по меньшей мере одним блоком, может не существовать. В таких случаях соседним блоком может быть ранее кодированный блок, то есть, блок видеоданных, появившийся до упомянутого по меньшей мере одного блока в порядке кодирования, связанном с кадром видеоданных, который включает в себя упомянутый по меньшей мере один блок и ранее кодированный блок.
В некоторых примерах, когда режимом кодирования, используемым для кодирования по меньшей мере одного блока, является режим кодирования без потерь, для назначения ненулевого значения QP по меньшей мере для указанного одного блока, видеодекодер 30 может быть сконфигурирован для установки значения QP или значения dQP для блока, кодированного с потерями, из множества блоков видеоданных в качестве назначенного ненулевого значения QP. Аналогичным образом, как было описано ранее, в этих примерах значение dQP может представлять разность между значением QP и предсказанным значением QP для блока, кодированного с потерями. Также в этих примерах блоком с потерями может быть блок, кодируемый с использованием режима кодирования с потерями, например, режим кодирования, который включает в себя выполнение этапов предсказания, суммирования, преобразования и квантования, описанных выше, или подобных этапов.
В других примерах в тех случаях, когда режимом кодирования, используемым для кодирования упомянутого по меньшей мере одного блока является режим кодирования с потерями, для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока, видеодекодер 30 может быть сконфигурирован для установки постоянного значения в качестве назначенного ненулевого значения QP.
В некоторых примерах кодирование может представлять собой декодирование. В этих примерах для декодирования по меньшей мере одного блока видеодекодер 30 может быть сконфигурирован для приема остаточных неквантованных видеоданных или восстановленных видеоданных упомянутого по меньшей мере одного блока в принятом битовом потоке. Также в этих примерах для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока видеодекодер 30 может быть сконфигурирован для выполнения приема назначенного ненулевого значения QP в принятом битовом потоке или приема значения dQP для упомянутого по меньшей мере одного блока в принятом битовом потоке. Например, значение dQP может представлять разность между назначенным ненулевым значением QP и предсказанным значением QP для упомянутого по меньшей мере одного блока. В примерах, где видеодекодер 30 сконфигурирован для приема значения dQP для упомянутого по меньшей мере одного блока видеодекодер 30 может кроме того быть сконфигурирован для определения назначенного ненулевого значения QP на основе значения dQP и предсказанного значения QP. Видеодекодер 30 вдобавок может быть сконфигурирован для приема одного или более синтаксических элементов в принятом битовом потоке. Например, один или более синтаксических элементов могут указывать, что для одного или более из множества блоков видеоданных разрешена деблокирующая фильтрация.
В вышеописанных примерах, в частности, в тех случаях, когда режимом кодирования, используемым для кодирования по меньшей мере одного блока, является режим кодирования без потерь, один или более синтаксических элементов могут называться «первым» или «первыми» синтаксическими элементами. В этих примерах видеодекодер 30 может быть дополнительно сконфигурирован для приема «второго» синтаксического элемента или «вторых» синтаксических элементов в принятом битовом потоке. Например, второй синтаксический элемент или вторые синтаксические элементы могут указывать, что для упомянутого по меньшей мере одного блока деблокирующая фильтрация запрещена.
Соответственно, как было объяснено выше, раскрытые здесь методики дают возможность видеодекодеру 30 повысить визуальное качество одного или более блоков видеоданных при осуществлении кодирования одного или более блоков по сравнению с другими методиками. В частности, описанные методики дают возможность повысить визуальное качество одного или более кодированных с IPCM блоков, состоящих из восстановленных видеоданных, путем разрешения деблокирующей фильтрации для этих блоков и выполнения деблокирующей фильтрации конкретным образом. Вдобавок, эти методики позволяют повысить визуальное качество одного или более блоков, кодированных без потерь, которые включают в себя исходные видеоданные, путем запрета деблокирующей фильтрации для этих блоков. Кроме того, эти методики также позволяют повысить визуальное качество одного или более блоков, кодированных с использованием режимов кодирования с потерями, например, одного или более блоков, расположенных смежно с одним или более блоками, кодированными с IPCM или без потерь, путем выполнения деблокирующей фильтрации в отношении блоков, кодированных с потерями, конкретным образом. В результате возможно относительное повышение визуального качества одного или более блоков видеоданных, в том числе блоков, кодированных с использованием режимов кодирования c IPCM, без потерь и с потерями, при использовании раскрытых здесь методик.
Таким образом, видеодекодер 30 представляет пример видеокодера, сконфигурированного для кодирования множества блоков видеоданных, при этом видеокодер сконфигурирован для кодирования по меньшей мере одного блока из множества блоков видеоданных с использованием режима кодирования, являющегося либо режимом кодирования c IPCM, либо режимом кодирования без потерь, в котором используется предсказание. Также в этом примере видеокодер дополнительно сконфигурирован для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока, кодированного с использованием указанного режима кодирования, и выполнения деблокирующей фильтрации в отношении упомянутого одного или более из множества блоков видеоданных на основе указанного режима кодирования, используемого для кодирования упомянутого по меньшей мере одного блока, и назначенного ненулевого значения QP для упомянутого по меньшей мере одного блока.
На фиг. 4 представлена концептуальная схема, иллюстрирующая пример деблокирующей фильтрации, выполняемой на границе двух смежных блоков видеоданных согласно раскрытым здесь методикам. В примере по фиг. 4 блок 404 может представлять кодируемый в настоящий момент или «текущий» блок видеоданных, который включает в себя левый край, подлежащий деблокирующей фильтрации или «деблокируемый» вместе с соответствующим правым краем блока 402. В этом примере блок 402 является смежным блоком видеоданных, который расположен смежно с (в этом примере слева от) блоком 404. Например, блок 402 может быть ранее кодированным блоком видеоданных, который кодирован до кодирования блока 404. В других примерах верхний край (не показан) блока 404 может быть деблокирован вместе с соответствующим нижним краем смежного блока видеоданных (также не показанного), который находится над блоком 404.
В некоторых версиях тестовой модели стандарта HEVC (например, в версии 4, или «HM4») конкретный деблокирующий фильтр может деблокировать край с восемью элементами дискретизации. Как показано на фиг. 4, область края деблокирования блоков 402 и 404 включает в себя четыре ряда пиксельных значений q0i-q3i, параллельных краю 400 в блоке 404, и четыре ряда пиксельных значений p0i-p3i, параллельных краю 400 в блоке 402, где «i» указывает ряд пикселей, перпендикулярный краю 400. В случае горизонтального края (не показан), например, верхнего края текущего блока, обозначение и нумерация могут быть идентичны вертикальному краю (то есть, краю 400), показанному на фиг. 4. Вдобавок, пиксельными значениями p или q могут быть либо значения после предварительной деблокирующей фильтрации (то есть, восстановленные пиксельные значения), либо значения после деблокирующей фильтрации.
В некоторых версиях модели HM (например, HM4) деблокирующий фильтр, например, деблокирующий фильтр 64 средства 20 осуществления кодирования или деблокирующий фильтр 94 видеодекодера 30 может выполнять фильтрацию некоторых краев TU и PU блока на основе результата вычисления силы границы и решений по деблокированию. Решения по деблокированию могут включать в себя решение о включении или выключении деблокирующего фильтра, решение о том, является ли деблокирующий фильтр слабым или сильным, и решение о силе слабого фильтра для данного блока. Вычисление силы границы, которая более подробно описывается ниже со ссылками на фиг. 6, и решения о деблокированию зависят от пороговых значений tc и β.
В некоторых версиях модели HM пороговые значения tc и β деблокирующего фильтра могут зависеть от параметра Q, который получают исходя из значения QP и силы границы («Bs») для текущего блока видеоданных с использованием следующих выражений:
If Bs>2, then TcOffset=2
If Bs<2, then TcOffset=0
For tc: Q=Clip3(0, MAX_QP+4, QP+TcOffset); MAX_QP=51
For β: Q=Clip3(0, MAX_QP, QP)
Clip3(thl, th2, значение)=min(thl, max(th2, значение))
Пороговые значения tc и β могут храниться в таблице, доступной на основе параметра Q, полученного исходя из значения QP текущего блока, как было описано выше.
Первым решением по деблокированию является решение о включении или отключении деблокирующей фильтрации для края 400 блока 404. Чтобы принять это решение «включить/отключить», устройство видеокодирования, например, средство 20 осуществления кодирования и/или видеодекодер 30 вычисляет уровень активности d1 через край 400 для пиксельных значений в третьем ряду (i=2), перпендикулярном краю 400, то есть, ряд 406. Устройство видеокодирования также вычисляет уровень активности d2 через край 400 для пиксельных значений в шестом ряду (i=5), перпендикулярном краю 400, то есть, ряд 408. Эти два измерения активности обеспечивают индикацию активности в окрестности края 400.
Затем результаты измерения активности суммируют и сравнивают с пороговым значением β. Если суммарные измерения активности дают результат, меньший порогового значения β, то включают деблокирующий фильтр и используют его применительно к области деблокирующего края, состоящей из восьми элементов дискретизации. Таким образом, если активность через край 400 высокая, то использовать деблокирующий фильтр нет необходимости, поскольку разрыв через край 400 не будет виден. Однако, если активность через край 400 низкая, то следует применить деблокирующий фильтр для сглаживания разрыва между блоками 402 и 404 на крае 400. Соответствующие вычисления можно выполнить согласно следующим выражениям:
Второе решение по деблокированию включает в себя определение того, является ли деблокирующий фильтр сильным фильтром или слабым фильтром. Решение о том, является ли деблокирующий фильтр сильным или слабым, может включать в себя три отдельных определения, в том числе определение текстуры/активности, определение градиента и определение разрыва через край 400. В некоторых версиях модели HM (например, HM 4) каждое из этих трех определений должно выполняться для каждого ряда (i=0,…,7) пиксельных значений, перпендикулярного краю 400. Эти три определения можно выполнить согласно следующим выражениям:
Третье решение о деблокировании может включать в себя (в том случае, когда деблокирующий фильтр является слабым фильтром) принятие решения о силе слабого фильтра. В некоторых версиях модели HM (например, HM4) слабый фильтр, используемый для края 400 блока 404, может скорректировать один или два элемента дискретизации с каждой стороны края 400. В некоторых случаях слабый фильтр можно применять асимметрично для коррекции только одного элемента дискретизации по одну сторону края 400 и коррекции двух элементов дискретизации по другую сторону края 400.
В некоторых версиях модели HM (например, HM4) слабый фильтр корректирует все элементы дискретизации p0 и q0 справа и слева от края 400 на основе вычисления силы слабого фильтра согласно следующим уравнениям:
Δ=(9*(q0-p0)-3*(ql-pl)+8)/16
Δ=Clip(-tc, tc, Δ); tc - пороговое значение, зависящее от значения QP
p0′=p0+Δ
q0′=q0-Δ
Слабый фильтр корректирует не обязательно все элементы дискретизации p1 во втором ряду, параллельном краю 400, в смежном блоке 104 согласно следующим уравнениям:
Δρ=Clip(-tc/2, tc/2, (((p2+p0+1)/2)-p1+Δ)/2)
p1′=p1+Δρ; деблокирование p1 зависит от условий решения.
Аналогичным образом слабый фильтр корректирует не обязательно все q1 элементов дискретизации во втором ряду, параллельном краю 400, в текущем блоке 404 согласно следующим уравнениям:
Δq=Clip(-tc/2, tc/2, (((q2+q0+1)/2)-ql-Δ)/2)
ql′=ql+Δq; деблокирование q1 зависит от условий решения.
Пиксельные значения p или q могут представлять собой либо значения после предварительной деблокирующей фильтрации (то есть, восстановленные пиксельные значения), либо значения после деблокирующей фильтрации. Пиксельные значения p′ и q′ представляют результирующие пиксельные значения после выполнения деблокирующей фильтрации на пиксельных значениях p и q соответственно. В частности, значения q0 и q1 указывают значения пикселей в первом и втором рядах, параллельных краю в текущем блоке 404. Значения p0 и p1 указывают пиксельные значения в первом и втором рядах, параллельных данному краю в смежном блоке 402. Уравнения q0-p0 и q1-p1 указывают ступенчатые разрывы между пиксельными значениями через край 400.
На фиг. 5 представлена концептуальная схема, иллюстрирующая пример сигнализации значения dQP для каждого из одного или более блоков видеоданных согласно раскрытым здесь методикам. В некоторых предварительных версиях HEVC (например, WD6) поддерживаются методики использования dQP на уровне LCU и подуровнях LCU. Например, некоторые методы использования dQP на подуровнях LCU позволяют обеспечить сигнализацию dQP для блоков видеоданных, то есть, для CU, размер которых меньше размера LCU. Цель этого состоит в том, чтобы учитывать глубину детализации изображения при управлении качеством визуального восприятия. Согласно некоторым методикам в качестве минимального размера группы квантования CU может быть определен параметр «dQpMinCuSize», который может сигнализировать значение dQP. Для блоков, размер которых меньше минимального размера группы квантования CU, все концевые блоки CU, то есть, блоки видеоданных в группе квантования размером с минимальный CU, могут использовать одно и то же значение dQP. В качестве альтернативы, согласно другим методикам для блоков, размер которых меньше минимального размера группы квантования CU, одинаковое значение dQP могут иметь только некоторые из концевых CU или блоков видеоданных в группе квантования с минимальным размером CU. Например, совместно использовать это значение dQP могут только концевые блоки CU или блоки видеоданных, начиная с первого концевого CU или блока видеоданных, для которого значение dQP передавалось первый раз для данной группы квантования. В любом случае в качестве сигнализации для блоков, размер которых больше или равен минимальному размеру группы квантования CU, может быть передано значение dQP для указанного концевого CU, то есть, блока видеоданных квадродерева LCU. Значение dQP может передаваться в качестве сигнализации только тогда, когда в данном блоке существует по меньшей мере один ненулевой коэффициент, то есть, флаг синтаксического элемента («CBF») для данного блока равен значению «истина», или «1». Видеодекодер 30 может добавить просигнализированное значение dQP для данного блока к предсказанному значению QP от соседнего блока видеоданных для создания значения QP для текущего блока. Соседним блоком может быть соседний блок видеоданных, расположенный слева от текущего блока, или ближайший к текущему блоку предыдущий блок видеоданных в порядке кодирования.
Как показано на фиг. 5 «LCU 0» 500 включает в себя единственный блок видеоданных, а именно «блок 0» с размером, превышающим минимальный размер 502 группы квантования CU, который может быть указан с использованием синтаксического элемента «QpMinCuSize». Также, как показано на фиг. 5, LCU 0 500 не расщеплена на концевые CU, так что группа квантования «Q0», связанная с LCU 0 500 включает в себя только блок 0. В примере на фиг. 5 блок 0 включает в себя по меньшей мере один ненулевой коэффициент. В этом примере блок 0 в качестве сигнализации может передаваться в виде битового потока 504 для LCU 0 500. Также в этом примере битовый поток 504 включает в себя режим кодирования («M0»), значение dQP («D0») и коэффициенты («C0») для блока 0.
Как дополнительно показано на фиг. 5, «LCU 1» 506 расщеплена на множественные блоки видеоданных или CU согласно квадродереву LCU. Например, «блок 1» и «блок 10» LCU 1 506 имеют каждый размер, равный минимальному размеру 502 группы квантования CU. С другой стороны, «блоки 2-9» имеют каждый размер, меньший минимального размера 502 группы квантования CU. В общем случае все концевые блоки CU, то есть, блоки видеоданных, в пределах минимального размера группы квантования CU могут иметь одинаковые значения QP и dQP. Например, как показано на фиг. 5, группа квантования «Q1» включает в себя только блок 1, а группа квантования «Q4» включает в себя только блок 10. Однако группа квантования «Q3» включает в себя блоки 2-5, где в результате каждый из блоков 2-5 может иметь одинаковое значение QP. Аналогичным образом, группа квантования «Q3» включает в себя блоки 6-9, и в результате каждый из блоков 6-9 может иметь одно и то же значение QP.
Как также показано на фиг. 5, блок 1 включает в себя по меньшей мере один ненулевой коэффициент и может быть просигнализирован как часть битового потока 508 для LCU 1 506, который соответствует Q1 и который включает в себя режим кодирования («M1»), значение dQP («D1») и коэффициенты («С1») для блока 1. В примере по фиг. 5 блок 10 находится в «режиме пропуска» или включает в себя все ненулевые коэффициенты и может быть просигнализирован как часть битового потока 508 для LCU 1 506, который соответствует Q4 и который включает в себя только компоненту («M10») режима кодирования для блока 10. В этом же примере каждый из блоков 2-5 в группе Q2 квантования находится в режиме пропуска или включает в себя все нулевые коэффициенты и может быть просигнализирован как часть битового потока 508 для LCU 1 506, который соответствует Q2 и включает в себя только компоненты («M2-M5») режима кодирования для блоков 2-5. В этом примере каждый из блоков 6 и 9 в группе Q3 квантования находится в режиме пропуска или включает в себя все нулевые коэффициенты, а каждый из блоков 7 и 8 в группе Q3 квантования включает в себя по меньшей мере один ненулевой коэффициент. Блоки 6-9 могут быть просигнализированы как часть битового потока 508 для LCU 1 506, который соответствует Q3 и который включает в себя только компоненты («M6 и M9») режима кодирования для блоков 6 и 9 и включает в себя компоненты режима кодирования («M7 и M8»), значения («D3») dQP и коэффициентов («C7 и C8») для блоков 7 и 8.
На фиг. 6 представлена блок-схема последовательности операций, иллюстрирующая примерный способ вычисления значения силы границы для деблокирующего фильтра согласно раскрытым здесь методикам. Как показано на фиг. 6, вычисление 600 силы границы может быть основано на режиме кодирования (например, режиме “интра-” или “интер-” кодирования) текущего блока видеоданных (например, блока 404 по фиг. 4) и смежного блока видеоданных (например, блока 402 по фиг. 4) и основано на том, включают ли пиксельные значения в краевой области деблокирования (то есть, в области блоков вдоль совместно используемого края, на котором выполняется деблокирующая фильтрация или которая «деблокирована», например, край 400 по фиг. 4) ненулевые коэффициенты.
В частности, выполнение вычисления силы границы может включать в себя определение того, является ли текущий блок с краем, который должен быть деблокирован, или является ли интра-кодированным смежный блок (602). Когда либо текущий блок, либо смежный блок кодирован с использованием интра-предсказания (602: «ДА»), может быть выполнена операция проверки края CU для определения того, является ли край, который должен быть деблокирован, внешней границей CU или внутренним краем CU (604). Если край, который должен быть деблокирован, является внешней границей CU (604: «ДА»), то значение силы границы («Bs») может быть установлено равным «4» (610), а если этот край является внутренним краем CU (604: «НЕТ»), то значение Bs может быть установлено равным «3» (612). В любом случае значение Bs может быть больше «2», так что синтаксический элемент «TcOffset» равный «2» может быть применен к соответствующему значению QP (то есть, значению QP для текущего блока) при идентификации порогового значения «tc» для деблокирующего фильтра.
Когда текущий блок и смежный блок являются интер-кодированными (602: «НЕТ»), может быть выполнена проверка ненулевого коэффициента, чтобы определить, включают ли элементы дискретизации в краевой области деблокирования вокруг данного края, который должен быть деблокирован, ненулевые коэффициенты (606). В том случае, когда эти элементы дискретизации включают в себя ненулевые коэффициенты (606: «ДА»), значение Bs может быть установлено равным 2 (614). В том случае, когда данные элементы дискретизации не включают в себя ненулевые коэффициенты (606: «НЕТ»), могут быть выполнены дополнительные проверки, чтобы определить какие-либо различия между элементами дискретизации в текущем блоке и смежном блоке (608). Если элементы дискретизации в текущем блоке и смежном блоке имеют некоторые различия (608: «ДА»), то значение Bs может быть установлено равным «1» (616). Однако, если элементы дискретизации в текущем блоке и соседнем блоке практически не имеют упомянутые различия (608: «НЕТ»), значение Bs может быть установлено равным «0» (618). Когда значение Bs равно «0», деблокирующая фильтрация может быть отключена и не применяться к краю, который должен быть деблокирован, текущего блока.
На фиг. 7А-7В представлены концептуальные схемы, иллюстрирующие примеры деблокирования в режиме кодирования c IPCM согласно раскрытым здесь методикам. На фиг. 7А показана деблокирующая фильтрация, которая выполняется в отношении текущего блока видеоданных 712, кодированных с использованием режима кодирования c IPCM (то есть, для которых «QP=0», как пояснялось выше со ссылками на фиг. 1). Как показано на фиг. 7А, блок 712 деблокирован в отношении правого и нижнего краев, совместно используемых с блоками 706 и 708 с потерями(то есть, для которых «QP>0». Как также показано на фиг. 7А, блок 712 не деблокирован в отношении левого и верхнего краев, совместно используемых с блоками 710 и 704 с потерями соответственно(то есть, для которых «QP>0». Как объяснялось ранее, блок 712 деблокируют вышеописанным образом, поскольку нулевое значение QP связано с блоком 712 согласно различным предварительным версиям стандарта HEVC для блоков, кодированных с IPCM.
На фиг. 7В, в свою очередь, показана примерная методика наследования QP, используемая для назначения ненулевого значения QP для IPCM блока для реализации методик деблокирования режима интра-кодирования c IPCM, раскрытых в настоящем изобретении. Описанная здесь методика наследования QP может действовать в чем-то таким же образом, как способ на основе dQP, описанный выше со ссылками на фиг. 5.
Согласно раскрытым здесь методикам, когда pcm_loop_filter_disable_flag имеет значение «ложь» или «0», разрешаются процессы контурной фильтрации, которые следует применить к текущему IPCM блоку. Чтобы применить деблокирующий фильтр, в раскрытых здесь методиках предусмотрено назначение ненулевого значения QP IPCM блоку на основе предсказанного значения QP. Видеодекодер 30, например, может использовать деблокирующий фильтр для элементов дискретизации текущего IPCM блока на основе назначенного ненулевого значения QP для данного IPCM блока.
В одном примере видеодекодер 30 может в неявном виде назначить ненулевое значение QP для IPCM блока на основе известного предсказанного значения QP. Предсказанным значением QP может быть значение QP для группы квантования, которая включает в себя IPCM блок, или для соседнего блока видеоданных, находящегося рядом с этим IPCM блоком. В примере по фиг. 7B, когда текущий IPCM блок 716 имеет размер, больший или равный минимальному размеру группы квантования CU (например, размер группы 720 квантования, также показанной на фиг. 7В), видеодекодер 30 может отправлять назначенное ненулевое значение QP «QP1» для IPCM блока 716, равным предсказанному значению QP («QP0»), от соседнего блока 714, как показано стрелкой на фиг. 7В. Другими словами, IPCM блок или CU1 716 может «унаследовать» QP0 от соседнего блока или CU0 714 в качестве QP1 блока IPCM, или CU1 716. Как показано на фиг. 7В, соседним блоком 714 может быть блок видеоданных, находящийся слева от IPCM блока 716. Как здесь также показано, соседним блоком 714 может быть CU («CU0») с QP0, как было описано ранее, со значением CBF, равным «истина», или «1», указывающим, что соседний блок 714 содержит ненулевые коэффициенты. В другом примере соседним блоком 714 может быть ближайший к IPCM блоку 716 предыдущий блок в порядке кодирования. В еще одном примере может вычисляться среднее значение QP на основе множества соседних блоков видеоданных, таких как блоки слева (например, соседний блок 714 или другой блок) и сверху (не показан) от IPCM блока 716, которые используют в качестве предсказанного значения QP для назначения ненулевого значения QP для IPCM блока 716.
Также в примере по фиг. 7В в качестве альтернативы, когда текущий IPCM блок 726 имеет размер, меньший минимального размера группы квантования CU (например, опять же размера группы 720 квантования), видеодекодер 30 может установить назначенное ненулевое значение QP для IPCM блока 726 равным значению QP («QPQG») для группы 720 квантования, которая включает в себя IPCM блок 726. Как показано на фиг. 7В, группа 720 квантования включает в себя четыре блока, а именно, блоки 722, 724, 726, и 728, или CU3-6 соответственно, каждый из которых меньше минимального размера группы квантования CU, и которые имеют одинаковое значение QP (то есть, QP3=QP4=QP5=QP6=QPQG). Другими словами, IPCM блок (или CU5 726 может «унаследовать» QPQG от группы 720 квантования, включающей в себя блоки 722, 724, 726, и 728, или CU3-6, в качестве QP5 блока IPCM или CU5 726. Как было описано ранее, в других примерах общий QPQG может иметь только один поднабор из CU3-6. В этих примерах CU5 726 может унаследовать указанный QPQG из поднабора группы 720 квантования (то есть, только из некоторых блоков из числа блоков 722, 724, 726, и 728, или CU3-6) в качестве QP3 блока IPCM, или CU5 726.
В качестве другого примера средство 20 осуществления кодирования может назначить ненулевое значение QP для IPCM блока на основе предсказанного значения QP и явно просигнализировать значение QP для видеодекодера 30. Средство 20 осуществления кодирования может, например, сигнализировать значение dQP для IPCM блока, которое представляет разность между назначенным ненулевым значением QP и предсказанным значением QP. В этом примере видеодекодер 30 может назначить ненулевое значение QP для IPCM блока на основе полученного значения dQP для указанного IPCM блока. Таким образом, средство 20 осуществления кодирования может в качестве сигнализации передать точное значение QP, которое использовалось для осуществления кодирования элементов дискретизации данного IPCM блока. Например, согласно описанным здесь методикам средство осуществления кодирования 30 может сигнализировать синтаксический элемент «cu_qp_delta» для указания значения dQP для IPCM блока с IPCM элементами дискретизации в синтаксисе PU для IPCM блока, как показано в Таблице 2. В свою очередь, Таблица 3 иллюстрирует случай функционирования в пакетном режиме с IPCM на основе версии WD6, где множественные значения cu_qp_delta сигнализируются последовательно по одному для каждого IPCM блока.
Согласно синтаксису PU, показанному в Таблице 2, если текущий блок видеоданных указан как IPCM блок (то есть, «pcm_flag_true»), видеодекодер 30 может определить, было ли передано значение dQP для данного IPCM блока. В этом примере, если разрешены процессы контурной фильтрации (то есть, «pcm_loop_filter_disable_flag=0»), разрешается использовать способ на основе dQP (то есть, «cu_qp_delta_enabled_flag=1»), и закодировано значение dQP для данного блока (то есть, «IsCuQPDeltaCoded flag=0»), то видеодекодер 30 может принять значение синтаксического элемента cu_qp_delta для указания значения dQP для данного IPCM блока.
В первом примере, описанном выше, когда IPCM блок 716 имеет размер, больший или равный минимальному размеру группы квантования CU, средство 20 осуществления кодирования может сигнализировать значение dQP для IPCM блока 716 равным «0». Таким образом, видеодекодер 30 может определить значение QP («QP1») для IPCM блока 716 путем добавления просигнализированного значения dQP, равного «0», к предсказанному значению QP («QP0») от соседнего блока 714 (то есть, «QP1=QP0»). В другом примере средство 20 осуществления кодирования может просигнализировать значение dQP для IPCM блока 716, которое отличается от «0», и видеодекодер 30 может определить значение QP («QP1») для IPCM блока 716 путем добавления переданного значения dQP к предсказанному значению QP («QP0») от соседнего блока 714 (то есть,«QP1=QP0+dQP»).
Во втором примере, описанном выше, когда IPCM блок 726 имеет размер, меньший размера группы квантования CU, средство 20 осуществления кодирования может сигнализировать значение dQP для IPCM блока 726 равным значению dQP для группы 720 квантования, которая включает в себя IPCM блок 726. Таким образом, видеодекодер 30 может определить значение QP («QP5») для IPCM блока 726 путем добавления переданного значения dQP, к предсказанному значению QP («QP2») от соседнего блока 718 (то есть, «QP5=QP2+dQP»). Поскольку значение dQP для IPCM блока 726 совпадает со значением dQP для всех блоков в группе 720 квантования, видеодекодер 30 может определить значение QP («QP5») для IPCM блока 726 так, что значение QP равно значению QP для указанной группы квантования (то есть, QP3=QP4=QP5=QP6=QPQG).
В некоторых случаях средство 20 осуществления кодирования может сигнализировать значение dQP только для одного из блоков (например, одного из блоков 722, 724, 726, 728) в группе квантования (например, группе 720 квантования). Переданное значение dQP может быть первым кодированным значением dQP для блока, не являющегося IPCM блоком, который включает в себя по меньшей мере один ненулевой коэффициент (то есть, для которого «CBF=1»). Например, в синтаксис PU может быть включен синтаксический элемент или флаг «IsCuQPDeltaCoded» для обеспечения того, чтобы на видеодекодер 30 сигнализировалось только первое кодированное значение dQP для блока в группе квантования. Затем видеодекодер 30 может установить значения dQP для других блоков в той же группе квантования равными указанному первому кодированному значению.
Как было описано выше, некоторые предварительные версии стандарта HEVC (например, WD6) поддерживают сигнализацию pcm_loop_filter_disable_flag в SPS для указания о том, разрешены ли процессы контурной фильтрации для IPCM блоков. В некоторых случаях возможно потребуется указать, разрешены ли процессы контурной фильтрации для IPCM блоков с большей глубиной детализации. Раскрытые здесь методики кроме того поддерживают сигнализацию pcm_loop_filter_disable_flag в PPS, APS, заголовке слайса, синтаксисе CU и синтаксисе PU.
В одном примере средство 20 осуществления кодирования может определить, применять ли процессы контурной фильтрации, такие как деблокирующая фильтрация, ALF и SAO, в зависимости от того, включает ли текущий IPCM блок исходные элементы дискретизации или восстановленные элементы дискретизации. Как обсуждалось выше, исходные элементы дискретизации свободны от искажений и не требуют контурной фильтрации, в то время как восстановленные элементы дискретизации содержат некоторое искажение и их контурная фильтрация может оказаться выгодной. В других примерах средство 20 осуществления кодирования может определить необходимость использования процессов контурной фильтрации для IPCM блоков на основе других подходов. Согласно описанным здесь методикам средство осуществления кодирования может сигнализировать флаг pcm_loop_filter_disable_flag в синтаксисе PU, как показано в Таблице 4, приведенной ниже. В частности, в таблице 4 показана наибольшая глубина детализации, при которой может быть просигнализирована необходимость контурной фильтрации.
В другом примере, как обсуждалось выше, некоторые предварительные версии стандарта HEVC (например, WD6) также поддерживают режим кодирования без потерь для CU или блоков видеоданных. В некоторых примерах флаг qpprime_y_zero_transquant_bypass_flag, сигнализируемый в SPS и равный «1», может определять следующее: если параметр «QP′Y» (например, где QP′Y=QPY+QpBdOffsetY, где QpBdOffsetY=6* bit_depth_luma_minus8) равно «0» для CU, то процесс кодирования без потерь следует применить. Как было описано ранее, при кодировании без потерь процессы масштабирования и преобразования, а также процессы контурной фильтрации пропускаются. Режим кодирования без потерь аналогичен случаю IPCM блока, содержащего исходные элементы дискретизации, как было описано выше, с тем отличием, что к IPCM блоку не применяется способ предсказания для кодирования без потерь. Если для IPCM блока сигнализировано значение QP или значение cu_qp_delta, как было описано выше, то результирующее значение QP′Y может быть равно «0», так как речь идет о режиме кодирования без потерь. Если значение QP′Y равно «0» для IPCM блока, то в отношении IPCM элементов дискретизации также будет запрещено использование контурных фильтров (например, деблокирование, SAO, ALF), так как речь идет о режиме кодирования без потерь. Это эквивалентно сигнализации флага pcm_loop_filter_disable_flag, имеющего значение «истина», или «1». Таким образом, сигнализация флага pcm_loop_filter_disable_flag может быть опущена, если для управления режимом работы контурного фильтра используют значение QP для IPCM блока: QP′Y, равное «0» эквивалентно тому, что флаг pcm_loop_filter_disable_flag имеет значение «истина», или «1», в то время как значение QP′Y больше «0» эквивалентно тому, что флаг pcm_loop_filter_disable_flag имеет значение «ложь», или «0». Деблокирующий фильтр может вычислить среднее или максимум значений QP блоков, с по меньшей мере одним блоком кодированным без потерь или IPCM блоком.
На фигурах 8А-8В представлены концептуальные схемы, иллюстрирующие примеры деблокирования режима кодирования без потерь согласно раскрытым здесь методикам. Как показано на фиг. 8А, включенный во множество CU (или блоков видеоданных) 800 «текущий» CU 812, кодированный без потерь (то есть, для которого «QP′Y=0») может быть окружен CU 804-810, которые не кодированы без потерь (то есть, для каждого из которых «QP′Y>0»). Как было объяснено выше со ссылками на фиг. 1, в указанных случаях деблокирующий фильтр может также пропустить обработку левого и верхнего краев текущей CU 812 (например, поскольку для CU 812 «QP′Y=0»), при выполнении деблокирующей фильтрации в отношении правого и нижнего краев текущей CU 812 (например, в силу выполнения деблокирующей фильтрации CU 806 и 808 при кодировании соответствующих CU), как показано на фиг. 8А. Как уже объяснялось, потенциальная проблема, связанная с вышеописанным подходом, заключается в том, что деблокирующий фильтр может модифицировать элементы дискретизации без потерь текущей CU 812 вдоль правого и нижнего краев, как показано участками (изображенными пунктиром) CU 812 без потерь, вокруг этих краев на фиг. 8А.
Как также было объяснено выше со ссылками на фиг. 1, раскрытые здесь методики могут включать в себя запрет деблокирующей фильтрации для CU, кодированных без потерь, так что эти CU не будут подвергаться деблокирующей фильтрации вдоль какого-либо из краев этих блоков, в то время как деблокирующая фильтрация смежных CU, кодированных с потерями, разрешается. Например, как показано на фиг. 8В, включенный в другое множество CU (или блоков видеоданных) 802, другой «текущий» CU 822, кодированный без потерь (то есть, для которого «QP′Y=0») может быть окружен CU 814-820, которые не кодированы без потерь (то есть, для каждого из которых «QP′Y>0», В указанных случаях деблокирующий фильтр может пропустить обработку каждого из краев (левого, верхнего, правого и нижнего) текущей CU 822, в то время как деблокирующая фильтрация соответствующих краев блоков 814-820 разрешается, как показано на фиг. 8В. Вдобавок, как также объяснялось выше со ссылками на фиг. 1, раскрытые здесь методики дополнительно включают в себя назначение ненулевого значения QP для CU 822 с целью выполнения деблокирующей фильтрации соответствующих краев CU 814-820.
На фигурах 9-11 представлены блок-схемы, иллюстрирующие примерные способы деблокирования режима кодирования c IPCM и режима кодирования без потерь согласно раскрытым здесь методикам. Методики по фиг. 9-11 в общем случае могут быть реализованы любым обрабатывающим блоком или процессором независимо от конкретной реализации: аппаратными средствами, программными средствами, программно-аппаратными средствами или их комбинацией, причем при реализации программными или программно-аппаратными средствами могут быть обеспечены соответствующие аппаратные средства для выполнения команд программного или программно-аппаратного обеспечения. В иллюстративных целях методики по фиг. 9-11 описаны со ссылками на средство 20 осуществления кодирования (фиг. 1 и 2) и/или видеодекодер (фиг. 1 и 3), хотя следует понимать, что для выполнения подобных методик могут быть сконфигурированы и другие устройства. Кроме того, этапы, показанные на фиг. 9-11, могут выполняться в другом порядке или параллельно, а также могут быть добавлены дополнительные этапы и опущены некоторые этапы, оставаясь в рамках раскрытых здесь методик.
В частности, на фиг. 9 показан примерный способ деблокирования режима кодирования c IPCM и режима кодирования без потерь («деблокирующая фильтрация») в общем случае в контексте кодирования (то есть, осуществление кодирования и/или декодирование). Вдобавок, на фиг. 10 и 11 показаны примерные способы деблокирования режима кодирования c IPCM и режима кодирования без потерь в контексте декодирования и осуществления кодирования соответственно.
Например, средство 20 осуществления кодирования и/или видеодекодер 30 могут кодировать (то есть, осуществлять кодирование и/или декодировать) один или более блоков видеоданных в процессе видеокодирования, как было описано выше по тексту. Например, одним или более блоками могут быть одна или более PU, TU или CU, как также было описано выше по тексту. В этом примере средство 20 осуществления кодирования и/или видеодекодер 30 изначально могут кодировать множество блоков видеоданных, при этом по меньшей мере один блок из множества блоков видеоданных кодируют с использованием режима кодирования, являющегося либо режимом кодирования c IPCM, либо режимом кодирования без потерь (900). Как было описано ранее, по меньшей мере один блок, кодируемый с использованием режима кодирования c IPCM, может соответствовать блоку восстановленных видеоданных. Например, блок восстановленных видеоданных может быть создан, например, средством 20 осуществления кодирования путем выполнения этапов предсказания, суммирования, преобразования и квантования, описанных выше со ссылками на фиг. 1 и 2, с использованием блока исходных видеоданных. Путем выполнения вышеописанных этапов с использованием блока исходных видеоданных средство 20 осуществления кодирования может создать блок преобразованных и квантованных остаточных коэффициентов. Затем средство 20 осуществления кодирования может выполнить обратное квантование, обратное преобразование, предсказание и суммирование, используя блок преобразованных и квантованных остаточных коэффициентов, как также было описано выше, для создания блока восстановленных видеоданных. В качестве альтернативы, также описанной ранее, по меньшей мере один блок, кодируемый с использованием режима кодирования без потерь, может соответствовать блоку остаточных (например, созданных с использованием предсказания) неквантованных видеоданных или исходных видеоданных.
Средство 20 осуществления кодирования и/или видеодекодер 30 дополнительно, могут назначить ненулевое значение QP для упомянутого по меньшей мере одного блока, кодированного с использованием указанного режима кодирования (902). Например, как более подробно будет описано ниже, средство 20 осуществления кодирования и/или видеодекодер 30 могут назначить ненулевое значение QP для упомянутого по меньшей мере одного блока с использованием любого из различных способов. Эти способы могут включать в себя определение назначенного ненулевого значения QP на основе одного или более значений: (1) просигнализированного значения QP для упомянутого по меньшей мере одного блока (например, которое непосредственно указывает назначенное ненулевое значение QP); (2) предсказанного значения QP для упомянутого по меньшей мере одного блока (например, значение QP для каждого из одного или более соседних блоков упомянутого по меньшей мере одного блока); и (3) просигнализированного значения dQP для упомянутого по меньшей мере одного блока (например, значения которое соответствует разности между назначенным ненулевым значением QP и предсказанным значением QP).
Кроме того средство 20 осуществления кодирования и/или видеодекодер 30 могут выполнять деблокирующую фильтрацию в отношении упомянутого одного или более из множества блоков видеоданных на основе режима кодирования, используемого для кодирования упомянутого по меньшей мере одного блока, и назначенного ненулевого значения QP для упомянутого по меньшей мере одного блока (904). Например, как более подробно будет описано ниже, средство 20 осуществления кодирования и/или видеодекодер 30 могут выполнить деблокирующую фильтрацию в отношении того же самого по меньшей мере одного блока или в отношении одного или более смежных блоков из множества блоков видеоданных, расположенных смежно с упомянутым по меньшей мере один блоком. В данном примере указанные один или более смежных блоков могут кодироваться с использованием режима кодирования с потерями.
В частности, в некоторых примерах для выполнения деблокирующей фильтрации в отношении упомянутого одного или более из множества блоков видеоданных на основе указанного режима кодирования, использованного для кодирования упомянутого по меньшей мере одного блока, и назначенного ненулевого значения QP средство 20 осуществления кодирования и/или видеодекодер 30 могут выполнить следующие этапы. Например, в тех случаях, когда режимом кодирования, использованным для кодирования данного по меньшей мере одного блока, является режим кодирования c IPCM, средство 20 осуществления кодирования и/или видеодекодер 30 могут выполнить деблокирующую фильтрацию в отношении упомянутого по меньшей мере одного блока на основе назначенного ненулевого значения QP. Как более подробно будет описано ниже, средство 20 осуществления кодирования и/или видеодекодер 30 могут также выполнить деблокирующую фильтрацию в отношении одного или более других блоков из множества блоков видеоданных на основе назначенного ненулевого значения QP. В качестве другого примера в тех случаях, когда режимом кодирования, использованным для кодирования упомянутого по меньшей мере одного блока, является режим кодирования без потерь, средство 20 осуществления кодирования и/или видеодекодер 30 могут выполнить деблокирующую фильтрацию в отношении одного или более соседних блоков из множества блоков видеоданных на основе назначенного ненулевого значения QP, избегая выполнения деблокирующей фильтрации на самом указанном по меньшей мере одном блоке. В этом примере каждый из одного или более смежных блоков может быть расположен смежно с указанным по меньшей мере одним блоком и кодирован с использованием режима кодирования с потерями. Например, каждый из одного или более смежных блоков может представлять собой блок квантованных и преобразованных остаточных коэффициентов, созданных путем выполнения этапов предсказания, суммирования, преобразования и квантования, описанных выше со ссылками на фиг. 1 и 2, с использованием блока исходных видеоданных.
В вышеописанных примерах для выполнения деблокирующей фильтрации в отношении упомянутого по меньшей мере одного блока и смежного блока на основе назначенного ненулевого значения QP средство 20 осуществления кодирования и/или видеодекодер 30 могут выбрать фильтр для деблокирующей фильтрации на основе назначенного ненулевого значения QP, Например, средство 20 осуществления кодирования и/или видеодекодер 30 могут быть сконфигурированы для выбора указанного фильтра с использованием назначенного ненулевого значения QP, так что этот фильтр будет иметь один или более параметров или характеристик фильтрации, которые определяют способ выполнения деблокирующей фильтрации с использованием данного фильтра. В других примерах для выполнения деблокирующей фильтрации в отношении упомянутого по меньшей мере одного блока или смежного блока на основе назначенного ненулевого значения QP средство 20 осуществления кодирования и/или видеодекодер 30 могут быть сконфигурированы для определения силы фильтра для указанной деблокирующей фильтрации на основе назначенного ненулевого значения QP, как было описано выше со ссылками на решение, касающееся деблокирования.
В одном примере, в тех случаях, когда по меньшей мере один блок кодирован с использованием режима кодирования c IPCM, средство 20 осуществления кодирования и/или видеодекодер 30 могут выполнить деблокирующую фильтрацию в отношении упомянутого по меньшей мере одного блока, а также в отношении одного или более смежных блоков из множества блоков видеоданных. В этом примере каждый из смежных блоков может располагаться смежно с упомянутым по меньшей мере одним блоком и может быть кодирован с использованием режима кодирования с потерями. Например, каждый из смежных блоков может представлять собой блок квантованных и преобразованных остаточных коэффициентов, созданных путем выполнения этапов предсказания, суммирования, преобразования и квантования, описанных выше со ссылками на фиг. 1 и 2, с использованием блока исходных видеоданных.
В данном примере средство 20 осуществления кодирования и/или видеодекодер 30 могут выполнить деблокирующую фильтрацию в отношении одной или более границ, являющихся общими для указанных по меньшей мере одного блока и смежных блоков. В частности, для выполнения деблокирующей фильтрации в отношении данной границы, являющейся общей для упомянутого по меньшей мере одного блока и одного конкретного блока из числа смежных блоков, средство 20 осуществления кодирования и/или видеодекодер 30 могут определить силу фильтра, используя среднее назначенное ненулевое значение QP для упомянутого по меньшей мере одного блока и значение QP для указанного смежного блока. По существу, согласно раскрытым здесь методикам средство 20 осуществления кодирования и/или видеодекодер 30 могут быть сконфигурированы для определения силы фильтра с использованием, по меньшей мере частично, назначенного ненулевого значения QP, а не стандартного «нулевого» значения QP для упомянутого по меньшей мере одного блока, как было описано ране. Затем средство 20 осуществления кодирования и/или видеодекодер 30 могут выполнить деблокирующую фильтрацию в отношении этой границы на основе определенной силы фильтра. В этом примере для выполнения деблокирующей фильтрации в отношении данной границы средство 20 осуществления кодирования и/или видеодекодер 30 могут выполнить фильтрацию внутренних граничных краев упомянутого по меньшей мере одного блока и смежного блока (например, один или более коэффициентов в каждом блоке, которые находятся вблизи границы, совместно используемой упомянутыми двумя блоками). Таким образом, назначение ненулевого значения QP для упомянутого по меньшей мере одного блока и определение силы фильтра, используемого для выполнения деблокирующей фильтрации на основе, по меньшей мере частично, назначенного ненулевого значения QP может в некоторых случаях повысить визуальное качество упомянутого по меньшей мере одного блока и смежных блоков по сравнению с другими методиками.
В другом ранее описанном примере в тех случаях, когда по меньшей мере один блок кодирован с использованием режима кодирования без потерь, средство 20 осуществления кодирования и/или видеодекодер 30 могут выполнить деблокирующую фильтрацию в отношении одного или более смежных блоков из множества блоков видеоданных, избегая выполнения деблокирующей фильтрации в отношении самого указанного по меньшей мере одного блока. Подобным же образом, как было описано выше, средство 20 осуществления кодирования и/или видеодекодер 30 могут выполнить деблокирующую фильтрацию в отношении одной или более границ, совместно используемых упомянутым по меньшей мере одним блоком и смежными блоками. Например, для выполнения деблокирующей фильтрации в отношении данной границы, совместно используемой упомянутым по меньшей мере одним блоком и одним конкретным смежным блоком, средство 20 осуществления кодирования и/или видеодекодер 30 могут снова определить силу фильтра, используя среднее значение назначенных ненулевых значений QP для упомянутого по меньшей мере одного блока и значения QP для упомянутых смежных блоков. Согласно методикам, раскрытым в настоящем изобретении, средство 20 осуществления кодирования и/или видеодекодер 30 могут снова определить силу фильтра, используя, по меньшей мере частично, назначенное ненулевое значение QP. Затем средство 20 осуществления кодирования и/или видеодекодер 30 могут выполнить деблокирующую фильтрацию в отношении границы на основе определенной силы фильтра.
В отличие от вышеописанного примера, где по меньшей мере один блок кодирован с использованием режима кодирования c IPCM, в данном примере для выполнения деблокирующей фильтрации в отношении упомянутой границы средство 20 осуществления кодирования и/или видеодекодер 30 могут только выполнить фильтрацию внутренних граничных краев смежного блока (например, один или более коэффициентов в смежном блоке, находящемся в окрестности границы, являющейся общей для этих двух блоков). Другими словами, в этом примере внутренние граничные края указанного самого по меньшей мере одного блока будут защищены от деблокирующей фильтрации. Выполненное таким образом назначение ненулевого значения QP для упомянутого по меньшей мере одного блока и определение коэффициентов фильтрации для выполнения деблокирующей фильтрации на основе, по меньшей мере частично, назначенного ненулевого значения QP в некоторых случаях повышает качество смежных блоков по сравнению с другими методиками.
В некоторых примерах средство 20 осуществления кодирования и/или видеодекодер 30 кроме того могут разрешить деблокирующую фильтрацию для упомянутого одного или более из множества блоков видеоданных до выполнения деблокирующей фильтрации в отношении упомянутого одного или более из множества блоков видеоданных на основе указанного режима кодирования, использованного для кодирования упомянутого по меньшей мере одного блока и назначенного ненулевого значения QP. В одном примере средство 20 осуществления кодирования может просигнализировать один или более синтаксических элементов (например, 1-битовые коды или «флаги») в битовом потоке, например, для приема их видеодекодером 30 или запоминания в запоминающем устройстве 24. В другом примере видеодекодер 30 может принять один или более синтаксических элементов в битовом потоке, например, переданных средством осуществления кодирования или запоминающим устройством 24. В любом из этих примеров один или более синтаксических элементов могут указывать, что деблокирующая фильтрация разрешается для упомянутого одного или более из множества блоков видеоданных.
В других примерах, в частности, в тех случаях, когда режимом кодирования является режим кодирования без потерь, средство 20 осуществления кодирования и/или видеодекодер 30 могут запретить деблокирующую фильтрацию для упомянутого по меньшей мере одного блока. В этих примерах для запрещения деблокирующей фильтрации средство 20 осуществления кодирования и/или видеодекодер 30 могут избежать выполнения деблокирующей фильтрации для внутренних граничных краев упомянутого по меньшей мере одного блока. Например, подобным же образом, описанным выше со ссылками на один или более синтаксических элементов, которые указывают, что деблокирующая фильтрация разрешена для одного или более из множества блоков видеоданных, средство 20 осуществления кодирования может сигнализировать, а видеодекодер 30 может принять один или более синтаксических элементов (например, 1-битовые коды или флаги) в битовом потоке. Однако в этом примере один или более синтаксических элементов могут указывать, что деблокирующая фильтрация запрещена для упомянутого по меньшей мере одного блока.
В некоторых примерах для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока средство 20 осуществления кодирования и/или видеодекодер 30 могут определить назначенное ненулевое значение QP на основе одного или более из следующего: (1) просигнализированного значения QP для упомянутого по меньшей мере одного блока, где просигнализированное значение QP указывает назначенное ненулевое значение QP; (2) является предсказанным значением QP для упомянутого по меньшей мере одного блока; и (3) просигнализированного значения dQP для упомянутого по меньшей мере одного блока, где значение dQP представляет разность между назначенным ненулевым значением QP и предсказанным значением QP.
Например, в тех случаях, когда режимом кодирования, используемым для кодирования упомянутого по меньшей мере одного блока, является режим кодирования c IPCM, для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока средство 20 осуществления кодирования и/или видеодекодер 30 могут выполнить следующие этапы. Например, когда размер по меньшей мере одного блока меньше минимального размера группы квантования CU, средство 20 осуществления кодирования и/или видеодекодер 30 могут установить групповое значение QP, например, по меньшей мере одно групповое значение QP для группы квантования, которая включает в себя упомянутый по меньшей мере один блок, в качестве назначенного ненулевого значения. В этом примере группа квантования также может включать в себя один или более блоков видеоданных, кодированных с использованием режима кодирования с потерями.
Как было описано выше, в некоторых примерах каждый из блоков видеоданных, включенных в группу квантования, может иметь одинаковое групповое значение QP. В этих примерах средство 20 осуществления кодирования и/или видеодекодер 30 могут установить это общее групповое значение QP в качестве назначенного ненулевого значения QP. Однако в других примерах одинаковое групповое значение QP могут иметь только некоторые блоки из группы квантования (например, блоки, начиная с первого блока из группы квантования, для которого сигнализируется значение QP, например, в виде значения dQP). В этих примерах средство 20 осуществления кодирования и/или видеодекодер 30 могут установить это конкретное групповое значение QP, являющееся общим только для поднабора блоков группы квантования, в качестве назначенного ненулевого значения QP. Таким образом, когда размер по меньшей мере одного блока меньше минимального размера группы квантования CU, средство 20 осуществления кодирования и/или видеодекодер 30 могут установить по меньшей мере одно групповое значение QP для группы квантования, которая включает в себя по меньшей мере один блок, в качестве назначенного ненулевого значения QP,
В другом примере, когда размер по меньшей мере одного блока больше или равен минимальному размеру группы квантования CU, средство 20 осуществления кодирования и/или видеодекодер 30 могут установить значение QP для соседнего блока из множества блоков видеоданных в качестве назначенного ненулевого значения QP. В этом примере, соседним блоком может быть один или более блоков, смежных по отношению к указанному по меньшей мере одному блоку и ранее закодированному блоку.
В другом примере в тех случаях, когда режимом кодирования, используемым для кодирования по меньшей мере одного блока, является режим кодирования c IPCM, для назначения ненулевого значения QP для по меньшей мере одного блока, средство 20 осуществления кодирования и/или видеодекодер 30 могут выполнить следующие этапы. Например, когда размер по меньшей мере одного блока меньше минимального размера группы квантования CU, средство 20 осуществления кодирования и/или видеодекодер 30 могут установить значение QP для соседнего блока из множества блоков видеоданных в качестве назначенного ненулевого значения QP. В этом примере соседним блоком может быть опять же один или более блоков, смежных по отношению к по меньшей мере одному блоку и ранее кодированному блоку.
В некоторых примерах, когда режимом кодирования, используемым для кодирования по меньшей мере одного блока, является режим кодирования без потерь, для назначения ненулевого значения QP по меньшей мере для указанного одного блока, средство 20 осуществления кодирования и/или видеодекодер 30 могут установить значение QP или значение dQP для блока, кодированного с потерями, из множества блоков видеоданных в качестве назначенного ненулевого значения QP. В этом примере значение dQP может представлять разность между значением QP и предсказанным значением QP для блока, кодированного с потерями. Также в этом примере блоком с потерями может быть блок, кодируемый с использованием режима кодирования с потерями.
В других примерах в тех случаях, когда режимом кодирования, используемым для кодирования упомянутого по меньшей мере одного блока, является режим кодирования без потерь, вместо определения назначенного ненулевого значения QP с использованием вышеописанных методик для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока, средство 20 осуществления кодирования и/или видеодекодер 30 могут установить постоянное значение в качестве назначенного ненулевого значения QP.
Таким образом, в некоторых примерах средство 20 осуществления кодирования и/или видеодекодер 30 могут кодировать множество блоков видеоданных, при этом по меньшей мере один блок из множества блоков видеоданных кодирован с использованием режима кодирования c IPCM, назначить ненулевое значение QP для упомянутого по меньшей мере одного блока и выполнить деблокирующую фильтрацию в отношении упомянутого одного или более из множества блоков видеоданных на основе назначенного ненулевого значения QP для упомянутого по меньшей мере одного блока.
В качестве альтернативы, в других примерах средство 20 осуществления кодирования и/или видеодекодер 30 могут: кодировать множество блоков видеоданных, при этом по меньшей мере один блок из множества блоков видеоданных кодирован с использованием режима кодирования без потерь, который использует предсказание; назначать ненулевое значение QP для упомянутого по меньшей мере одного блока; выполнять деблокирующую фильтрацию в отношении упомянутого одного или более из множества блоков видеоданных, отличных от упомянутого по меньшей мере одного блока, на основе назначенного ненулевого значения QP для упомянутого по меньшей мере одного блока. В этих примерах средство 20 осуществления кодирования и/или видеодекодер 30 кроме того могут избежать выполнения деблокирующей фильтрации в отношении упомянутого по меньшей мере одного блока.
В качестве другого примера, видеодекодер 30 может принять остаточные не квантованные видеоданные и восстановленные видеоданные блока из множества блоков видеоданных в принятом битовом потоке. В этом примере указанный блок можно закодировать, используя режим кодирования, являющийся одним из режима кодирования c IPCM или режима кодирования без потерь (1000). Также в этом примере режим кодирования без потерь может соответствовать режиму кодирования без потерь, который использует предсказание, как было описано ранее. Видеодекодер 30 кроме того может получить назначенное ненулевое значение QP, либо значение dQP для указанного блока в принятом битовом потоке. Например, значение dQP может представлять разность между назначенным ненулевым значением QP и предсказанным значением QP для данного блока (1002). В некоторых примерах, в частности, в тех случаях, когда видеодекодер 30 принимает значение dQP, он может кроме того определить предсказанное значение QP (1004) и определить назначенное ненулевое значение QP на основе значения dQP и предсказанного значения QP (1006). Видеодекодер 30 также может выполнить деблокирующую фильтрацию в отношении упомянутого одного или более из множества блоков видеоданных на основе режима кодирования, используемого для кодирования блока, и назначенного ненулевого значения QP (1008).
В вышеописанном примере видеодекодер 30 кроме того может принять первый синтаксический элемент или несколько первых синтаксических элементов (например, один или более однобитовых кодов, которые могут называться «флагами») в принятом битовом потоке, указывающих, что деблокирующая фильтрация разрешена для упомянутого одного или более из множества блоков видеоданных (1010). Также в этом примере видеодекодер 30 может кроме того принять второй синтаксический элемент или несколько вторых синтаксических элементов (например, один или более «флагов») в принятом битовом потоке, указывающих, что деблокирующая фильтрация запрещена для данного блока (1012).
В еще одном примере средство 20 осуществления кодирования может определить назначенное ненулевое значение для блока из множества блоков видеоданных. В данном примере этот блок может быть кодирован с использованием режима кодирования c IPCM, либо режима кодирования без потерь (1100). Также в этом примере режим кодирования без потерь опять же может соответствовать режиму кодирования без потерь, где используется предсказание. Средство 20 осуществления кодирования кроме того может выполнить деблокирующую фильтрацию в отношении упомянутого одного или более из множества блоков видеоданных на основе режима кодирования, использованного для кодирования указанного блока, и назначенного ненулевого значения QP (1102). В дополнение к вышесказанному средство 20 осуществления кодирования может сигнализировать либо остаточные не квантованные видеоданные, либо восстановленные видеоданные упомянутого блока в битовом потоке (1104). В некоторых примерах средство 20 осуществления кодирования также может определить предсказанное значение QP для данного блока (1106).
Средство 20 осуществления кодирования может также передать в качестве сигнализации назначенное ненулевое значение QP либо значение dQP для данного блока в битовом потоке. В этом примере значение dQP может представлять разность между назначенным ненулевым значением QP и предсказанным значением QP (1108), как было описано выше со ссылками на шаг (1106).
В вышеописанном примере средство 20 осуществления кодирования кроме того может передать первый или первые синтаксические элементы (например, один или более «флагов») в битовом потоке, указывающих, что деблокирующая фильтрация разрешена для указанных упомянутого одного или более из множества блоков видеоданных (1110). Также в этом примере средство 20 осуществления кодирования может кроме того сигнализировать второй или вторые синтаксические элементы (например, один или более «флагов») в битовом потоке, указывающих, что деблокирующая фильтрация для данного блока запрещена (1112).
Таким образом, способ по каждой из фиг. 9-11 представляет пример способа кодирования видеоданных, содержащий кодирование множества блоков видеоданных, при этом по меньшей мере один блок из множества блоков видеоданных кодирован с использованием режима кодирования c IPCM или режима кодирования без потерь, которые используют предсказание, присваивая ненулевое значение QP для упомянутого по меньшей мере одного блока, кодированного с использованием указанного режима кодирования, и выполняя деблокирующую фильтрацию в отношении упомянутого одного или более из множества блоков видеоданных на основе режима кодирования, используемого для кодирования по меньшей мере одного блока, и назначенного ненулевого значения QP для этого по меньшей мере одного блока.
В одном или более примерах описанные функции могут быть реализованы аппаратными средствами, программными средствами, программно-аппаратными средствами или любой их комбинацией. При реализации программными средствами эти функции могут храниться или передаваться в виде одной или нескольких команд или кода на считываемом компьютером носителе и выполняться обрабатывающим аппаратным блоком. Считываемая компьютером среда может включать в себя считываемую компьютером запоминающую среду, которая может соответствовать материальному носителю, такому как среда хранения данных или среда передачи, включая любой носитель, который позволяет обеспечить пересылку компьютерной программы из одного места в другое, например, согласно какому-либо протоколу связи. В этом аспекте считываемая компьютером среда в общем случае может соответствовать (1) материальной считываемой компьютером запоминающей среде, которая обеспечивает долговременное хранение, или (2) среде связи, такой как сигнал или несущая волна. Средой для запоминания данных может служить любая доступная среда, доступ к которой может осуществляться одним или более компьютерами или одним или более процессорами для извлечения инструкций, кода и/или со стороны структур данных для реализации раскрытых в этом изобретении методик. Компьютерный программный продукт может включать в себя считываемый компьютером носитель.
В качестве примера, но не как ограничение, указанная считываемая компьютером запоминающая среда может содержать ОЗУ (RAM), ПЗУ (ROM), электрически стираемое программируемое ПЗУ (EEPROM), ПЗУ на компакт-диске (CD-ROM) или другое запоминающее устройство на оптических дисках, запоминающее устройство на магнитных дисках или другие магнитные запоминающее устройства, флэш-память, или любой другой носитель, который можно использовать для запоминания требуемого программного кода в виде инструкций или структур данных, и к которым может иметь доступ компьютер. Также считываемой компьютером средой будет правильно назвать любое соединение. Например, если инструкции передаются с Web-сайта, сервера или другого удаленного источника с использованием коаксиального кабеля, оптоволоконного кабеля, скрученной пары, цифровой абонентской линии (DSL) или беспроводных технологий, таких как инфракрасная связь, радиосвязь и микроволновая связь, то тогда коаксиальный кабель, оптоволоконный кабель, скрученная пара, линии DSL или такие беспроводные технологии, как инфракрасная связь, радиосвязь и микроволновая связь, входят в определение среды. Однако следует понимать, что термины: «считываемая компьютером запоминающая среда» и «среда для хранения данных» не включают в себя соединения, несущие волны, сигналы или другие временные носители, а относятся к материальной запоминающей среде долговременного хранения. Используемый здесь термин «disc» (диск) относится к компакт-диску (CD), лазерному диску, оптическому диску, цифровому универсальному диску (DVD), флоппи-диску и диску Blu-ray, воспроизводящих данные оптическим путем с использованием лазеров, в то время как термин «disk» (диск) обычно относится к дискам, воспроизводящим данные магнитным путем. В понятие считываемой компьютером среды также следует отнести комбинации из вышеперечисленного.
Инструкции могут выполняться одним или более процессорами, такими как один или более микропроцессоров общего назначения, цифровых процессоров сигналов (DSP), прикладных специализированных интегральных схем (ASIC), вентильных матриц, программируемых пользователем (FPGA), или других эквивалентных интегральных или дискретных логических схем. Соответственно, используемый здесь термин «процессор» может относиться к любой из вышеописанных структур или любой иной структуре, подходящей для реализации вышеописанных методик. Вдобавок, в некоторых аспектах описанные здесь функциональные возможности могут быть обеспечены в рамках специализированных аппаратных и/или программных модулей, сконфигурированных для осуществления кодирования и декодирования, или включенных в состав комбинированного кодека. Также раскрытые здесь методики можно полностью реализовать в одной или нескольких схемах или логических элементах.
Раскрытые здесь методики могут быть реализованы в самых разных устройствах или установках, включая беспроводную телефонную трубку, интегральную схему (IC) или набор интегральных схем (например, микропроцессорный набор). Различные компоненты, модули или блоки описаны здесь таким образом, чтобы подчеркнуть функциональные аспекты устройств, сконфигурированных для выполнения раскрытых здесь методик, причем для этого не требуется их реализация с помощью различных аппаратных компонент, модулей или блоков. Скорее наоборот, как обсуждалось выше, различные блоки могут быть скомбинированы в аппаратном блоке-кодеке или обеспечены в виде набора взаимодействующих аппаратных блоков, включая один или более процессоров, как было описано выше, в сочетании с подходящим программным и/или программно-аппаратным обеспечением.
Здесь были описаны различные примеры. Эти и другие примеры входят в объем нижеследующей формулы изобретения.
Изобретение относится к видеокодированию, в частности к применению фильтра удаления блочности для стандарта высокоэффективного кодирования видео (HEVC). Техническим результатом является повышение визуального качества видео. Предложены способы кодирования видеоданных, которые содержат кодирование множества блоков видеоданных, при этом по меньшей мере один блок из множества блоков видеоданных кодируют, используя режим кодирования, являющийся либо режимом кодирования с интра-импульсно-кодовой модуляцией (IPCM), либо режимом кодирования без потерь, в том числе с использованием предсказания. Способы также включают назначение ненулевого значения параметра квантования (QP) для упомянутого по меньшей мере одного блока, кодированного с использованием упомянутого режима кодирования, и выполнение деблокирующей фильтрации в отношении упомянутого одного или более из множества блоков видеоданных на основе режима кодирования, использованного для кодирования упомянутого по меньшей мере одного блока и назначенного ненулевого значения QP для упомянутого по меньшей мере одного блока. 11 н. и 70 з.п. ф-лы, 11 ил.
1. Способ кодирования видеоданных, содержащий:
кодирование множества блоков видеоданных, при этом по меньшей мере один блок из упомянутого множества блоков видеоданных кодируют, используя режим кодирования с интра-импульсно-кодовой модуляцией (IPCM);
назначение ненулевого значения параметра квантования (QP) для упомянутого по меньшей мере одного блока, кодированного с использованием режима кодирования с IPCM; и
выполнение деблокирующей фильтрации в отношении одного или более из упомянутого множества блоков видеоданных на основе режима кодирования с IPCM и назначенного ненулевого значения QP для упомянутого по меньшей мере одного блока.
2. Способ по п. 1, в котором выполнение деблокирующей фильтрации в отношении упомянутого одного или более из упомянутого множества блоков видеоданных на основе режима кодирования с IPCM и назначенного ненулевого значения QP содержит:
выполнение деблокирующей фильтрации в отношении упомянутого по меньшей мере одного блока на основе назначенного ненулевого значения QP.
3. Способ по п. 2, в котором выполнение деблокирующей фильтрации в отношении упомянутого по меньшей мере одного блока на основе назначенного ненулевого значения QP содержит выбор фильтра для деблокирующей фильтрации на основе назначенного ненулевого значения QP.
4. Способ по п. 2 или 3, в котором выполнение деблокирующей фильтрации в отношении каждого из упомянутого по меньшей мере одного блока на основе назначенного ненулевого значения QP содержит определение силы фильтра для деблокирующей фильтрации на основе назначенного ненулевого значения QP.
5. Способ по п. 1, дополнительно содержащий разрешение деблокирующей фильтрации для упомянутого одного или более из упомянутого множества блоков видеоданных до выполнения деблокирующей фильтрации в отношении упомянутого одного или более из упомянутого множества блоков видеоданных на основе режима кодирования с IPCM и назначенного ненулевого значения QP.
6. Способ по п. 1, в котором назначение ненулевого значения QP для упомянутого по меньшей мере одного блока содержит определение назначенного ненулевого значения QP на основе одного или более из следующего:
просигнализированного значения QP для упомянутого по меньшей мере одного блока, при этом просигнализированное значение QP указывает назначенное ненулевое значение QP;
предсказанного значения QP для упомянутого по меньшей мере одного блока; и
просигнализированного значения дельта QP для упомянутого по меньшей мере одного блока, при этом значение дельта QP представляет разность между назначенным ненулевым значением QP и предсказанным значением QP.
7. Способ по п. 1, в котором назначение ненулевого значения QP для упомянутого по меньшей мере одного блока содержит:
когда размер упомянутого по меньшей мере одного блока меньше минимального размера группы квантования единиц кодирования, установку по меньшей мере одного группового значения QP для группы квантования, которая включает в себя упомянутый по меньшей мере один блок, в качестве назначенного ненулевого значения QP, при этом группа квантования также включает в себя один или более блоков видеоданных, кодированных с использованием режима кодирования с потерями,
когда размер упомянутого по меньшей мере одного блока больше или равен минимальному размеру группы квантования единиц кодирования, установку значения QP для соседнего блока из упомянутого множества блоков видеоданных, причем соседний блок содержит один или более из расположенного смежно с упомянутым по меньшей мере одним блоком, и ранее кодированного, в качестве назначенного ненулевого значения QP.
8. Способ по п. 1, в котором назначение ненулевого значения QP для упомянутого по меньшей мере одного блока содержит:
когда размер упомянутого по меньшей мере одного блока меньше минимального размера группы квантования единиц кодирования, установку значения QP для соседнего блока из упомянутого множества блоков видеоданных, причем соседний блок содержит один или более из расположенного смежно с упомянутым по меньшей мере одним блоком, и ранее кодированного, в качестве назначенного ненулевого значения QP.
9. Способ по п. 1, в котором кодирование содержит декодирование, и в котором
декодирование упомянутого по меньшей мере одного блока содержит прием одного из остаточных неквантованных видеоданных и восстановленных видеоданных упомянутого по меньшей мере одного блока в принятом битовом потоке, и
назначение ненулевого значения QP для упомянутого по меньшей мере одного блока содержит одно из приема назначенного ненулевого значения QP в принятом битовом потоке и приема значения дельта QP для упомянутого по меньшей мере одного блока в принятом битовом потоке, причем значение дельта QP представляет разность между назначенным ненулевым значением QP и предсказанным значением QP для упомянутого по меньшей мере одного блока, и определение назначенного ненулевого значения QP на основе значения дельта QP и предсказанного значения QP,
причем способ дополнительно содержит прием одного или более синтаксических элементов в принятом битовом потоке, причем один или более синтаксических элементов указывают, что деблокирующая фильтрация разрешена для упомянутого одного или более из упомянутого множества блоков видеоданных.
10. Способ по п. 1, в котором кодирование содержит осуществление кодирования и в котором
осуществление кодирования упомянутого по меньшей мере одного блока содержит сигнализацию одного из остаточных неквантованных видеоданных и восстановленных видеоданных упомянутого по меньшей мере одного блока в битовом потоке; и
назначение ненулевого значения QP для упомянутого по меньшей мере одного блока содержит одно из сигнализации назначенного ненулевого значения QP в битовом потоке и сигнализации значения дельта QP для упомянутого по меньшей мере одного блока в битовом потоке, причем значение дельта QP представляет разность между
назначенным ненулевым значением QP и предсказанным значением QP для упомянутого по меньшей мере одного блока,
причем способ дополнительно содержит сигнализацию одного или более синтаксических элементов в битовом потоке, причем один или более синтаксических элементов указывают, что деблокирующая фильтрация разрешена для упомянутого одного или более из упомянутого множества блоков видеоданных.
11. Устройство, сконфигурированное для кодирования видеоданных, причем устройство содержит видеокодер, сконфигурированный для:
кодирования множества блоков видеоданных, при этом видеокодер сконфигурирован для кодирования по меньшей мере одного блока из упомянутого множества блоков видеоданных с использованием режима кодирования с интра-импульсно-кодовой модуляцией (IPCM);
назначения ненулевого значения параметра квантования (QP) для упомянутого по меньшей мере одного блока, кодированного с использованием режима кодирования с IPCM; и
выполнения деблокирующей фильтрации в отношении одного или более из упомянутого множества блоков видеоданных на основе режима кодирования с IPCM и назначенного ненулевого значения QP для упомянутого по меньшей мере одного блока.
12. Устройство по п. 11, в котором для выполнения деблокирующей фильтрации в отношении упомянутого одного или более из упомянутого множества блоков видеоданных на основе режима кодирования с IPCM и назначенного ненулевого значения QP видеокодер сконфигурирован для:
выполнения деблокирующей фильтрации в отношении упомянутого по меньшей мере одного блока на основе назначенного ненулевого значения QP.
13. Устройство по п. 12, в котором для выполнения деблокирующей фильтрации в отношении упомянутого по меньшей мере одного блока на основе назначенного ненулевого значения QP видеокодер сконфигурирован для выполнения одного или более из:
выбора фильтра для деблокирующей фильтрации на основе назначенного ненулевого значения QP; и
определения силы фильтра для деблокирующей фильтрации на основе назначенного ненулевого значения QP.
14. Устройство по любому из пп. 11-13, в котором видеокодер дополнительно сконфигурирован для разрешения деблокирующей фильтрации для упомянутого одного или более из упомянутого множества блоков видеоданных до выполнения деблокирующей фильтрации в отношении упомянутого одного или более из упомянутого множества блоков видеоданных на основе режима кодирования с IPCM и назначенного ненулевого значения QP.
15. Устройство по п. 11, в котором для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока видеокодер сконфигурирован для определения назначенного ненулевого значения QP на основе одного или более из следующего:
просигнализированного значения QP для упомянутого по меньшей мере одного блока, при этом просигнализированное значение QP указывает назначенное ненулевое значение QP;
предсказанного значения QP для упомянутого по меньшей мере одного блока; и
просигнализированного значения дельта QP для упомянутого по меньшей мере одного блока, при этом значение дельта QP представляет разность между назначенным ненулевым значением QP и предсказанным значением QP.
16. Устройство по п. 11, в котором для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока видеокодер сконфигурирован для:
когда размер упомянутого по меньшей мере одного блока меньше минимального размера группы квантования единиц кодирования, установки по меньшей мере одного группового значения QP для группы квантования, которая включает в себя упомянутый по меньшей мере один блок, в качестве назначенного ненулевого значения QP, при этом группа квантования также включает в себя один или более блоков видеоданных, кодированных с использованием режима кодирования с потерями; и
когда размер упомянутого по меньшей мере одного блока больше или равен минимальному размеру группы квантования единиц кодирования, установки значения QP для соседнего блока из упомянутого множества блоков видеоданных, причем соседний блок содержит один или более из расположенного смежно с упомянутым по меньшей мере одним блоком, и ранее кодированного, в качестве назначенного ненулевого значения QP.
17. Устройство по п. 11, в котором для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока видеокодер сконфигурирован для:
когда размер упомянутого по меньшей мере одного блока меньше минимального размера группы квантования единиц кодирования,
установки значения QP для соседнего блока из упомянутого множества блоков видеоданных, причем соседний блок содержит один или более из блока, расположенного смежно с упомянутым по меньшей мере одним блоком, и ранее кодированного блока, в качестве назначенного ненулевого значения QP.
18. Устройство по п. 11, в котором для кодирования упомянутого множества блоков видеоданных, включающего в себя упомянутый по меньшей мере один блок, видеокодер сконфигурирован для декодирования упомянутого множества блоков видео, включающего в себя упомянутый по меньшей мере один блок, и при этом
для декодирования упомянутого по меньшей мере одного блока видеокодер сконфигурирован для приема одного из остаточных неквантованных видеоданных и восстановленных видеоданных упомянутого по меньшей мере одного блока в принятом битовом потоке, и
для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока видеокодер сконфигурирован для выполнения одного из приема назначенного ненулевого значения QP в принятом битовом потоке и приема значения дельта QP для упомянутого по меньшей мере одного блока в принятом битовом потоке, причем значение дельта QP представляет разность между назначенным ненулевым значением QP и предсказанным значением QP для упомянутого по меньшей мере одного блока, и определения назначенного ненулевого значения QP на основе значения дельта QP и предсказанного значения QP,
при этом видеокодер дополнительно сконфигурирован для приема одного или более синтаксических элементов в принятом битовом потоке, причем один или более синтаксических элементов указывают, что деблокирующая фильтрация разрешена для упомянутого одного или более из упомянутого множества блоков видеоданных.
19. Устройство по п. 11, в котором для кодирования упомянутого множества блоков видеоданных, включающего в себя упомянутый по меньшей мере один блок, видеокодер сконфигурирован для осуществления кодирования упомянутого множества блоков видео, включающего в себя упомянутый по меньшей мере один блок, и при этом
для осуществления кодирования упомянутого по меньшей мере одного блока видеокодер сконфигурирован для сигнализации одного из остаточных неквантованных видеоданных и восстановленных видеоданных упомянутого по меньшей мере одного блока в битовом потоке; и
для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока видеокодер сконфигурирован для выполнения одного из сигнализации назначенного ненулевого значения QP в битовом потоке и сигнализации значения дельта QP для упомянутого по меньшей мере одного блока в битовом потоке, причем значение дельта QP представляет разность между назначенным ненулевым значением QP и предсказанным значением QP для упомянутого по меньшей мере одного блока,
при этом видеокодер дополнительно сконфигурирован для сигнализации одного или более синтаксических элементов в битовом потоке, причем один или более синтаксических элементов указывают, что деблокирующая фильтрация разрешена для упомянутого одного или более из упомянутого множества блоков видеоданных.
20. Устройство по п. 11, при этом устройство содержит по меньшей мере одно из:
интегральной схемы;
микропроцессора; и
устройства беспроводной связи, которое включает в себя видеокодер.
21. Устройство, сконфигурированное для кодирования видеоданных, причем устройство содержит:
средство для кодирования множества блоков видеоданных, включающее в себя средство для кодирования по меньшей мере одного блока из упомянутого множества блоков видеоданных с использованием режима кодирования с интра-импульсно-кодовой модуляцией (IPCM);
средство для назначения ненулевого значения параметра квантования (QP) для упомянутого по меньшей мере одного блока, кодированного с использованием режима кодирования с IPCM; и
средство для выполнения деблокирующей фильтрации в отношении одного или более из упомянутого множества блоков видеоданных на основе режима кодирования с IPCM и назначенного ненулевого значения QP для упомянутого по меньшей мере одного блока.
22. Устройство по п. 21, в котором средство для выполнения деблокирующей фильтрации в отношении упомянутого одного или более из упомянутого множества блоков видеоданных на основе режима кодирования с IPCM и назначенного ненулевого значения QP содержит:
средство для выполнения деблокирующей фильтрации в отношении упомянутого по меньшей мере одного блока на основе назначенного ненулевого значения QP.
23. Устройство по п. 22, в котором средство для выполнения деблокирующей фильтрации в отношении каждого из упомянутого по меньшей мере одного блока на основе назначенного ненулевого значения QP содержит одно или более из:
средства для выбора фильтра для деблокирующей фильтрации на основе назначенного ненулевого значения QP; и
средства для определения силы фильтра для деблокирующей фильтрации на основе назначенного ненулевого значения QP.
24. Устройство по любому из пп. 21-23, в котором средство для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока содержит средство для определения назначенного ненулевого значения QP на основе одного или более из следующего:
просигнализированного значения QP для упомянутого по меньшей мере одного блока, при этом просигнализированное значение QP указывает назначенное ненулевое значение QP;
предсказанного значения QP для упомянутого по меньшей мере одного блока; и
просигнализированного значения дельта QP для упомянутого по меньшей мере одного блока, при этом значение дельта QP представляет разность между назначенным ненулевым значением QP и предсказанным значением QP.
25. Устройство по п. 21, в котором средство для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока содержит:
средство для, когда размер упомянутого по меньшей мере одного блока меньше минимального размера группы квантования единиц кодирования, установки по меньшей мере одного группового значения QP для группы квантования, которая включает в себя упомянутый по меньшей мере один блок, в качестве назначенного ненулевого значения QP, при этом группа квантования также включает в себя один или более блоков видеоданных, кодированных с использованием режима кодирования с потерями;
средство для, когда размер упомянутого по меньшей мере одного блока больше или равен минимальному размеру группы квантования единиц кодирования, установки значения QP для соседнего блока из упомянутого множества блоков видеоданных, причем соседний блок содержит один или более из расположенного смежно с упомянутым по меньшей мере одним блоком, и ранее кодированного, в качестве назначенного ненулевого значения QP.
26. Устройство по п. 21, в котором средство для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока содержит:
средство для, когда размер упомянутого по меньшей мере одного блока меньше минимального размера группы квантования единиц кодирования, установки значения QP для соседнего блока из упомянутого множества блоков видеоданных, причем соседний блок содержит один или более из расположенного смежно с упомянутым по меньшей мере одним блоком, и ранее кодированного, в качестве назначенного ненулевого значения QP.
27. Устройство по п. 21, в котором кодирование содержит декодирование, и в котором
средство для декодирования упомянутого по меньшей мере одного блока содержит средство для приема одного из остаточных неквантованных видеоданных и восстановленных видеоданных упомянутого по меньшей мере одного блока в принятом битовом потоке; и
средство для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока содержит средство для приема назначенного ненулевого значения QP в принятом битовом потоке, и средство для приема значения дельта QP для упомянутого по меньшей мере одного блока в принятом битовом потоке, причем значение дельта QP представляет разность между назначенным ненулевым значением QP и предсказанным значением QP для упомянутого по меньшей мере одного блока, и определения назначенного ненулевого значения QP на основе значения дельта QP и предсказанного значения QP,
причем устройство дополнительно содержит средство для приема одного или более синтаксических элементов в принятом битовом потоке, причем один или более синтаксических элементов указывают, что деблокирующая фильтрация разрешена для упомянутого одного или более из упомянутого множества блоков видеоданных.
28. Устройство по п. 21, в котором кодирование содержит осуществление кодирования и в котором
средство для осуществления кодирования упомянутого по меньшей мере одного блока содержит средство для сигнализации одного из остаточных неквантованных видеоданных и восстановленных видеоданных упомянутого по меньшей мере одного блока в битовом потоке; и
средство для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока содержит одно из средства для сигнализации назначенного ненулевого значения QP в битовом потоке и средства для сигнализации значения дельта QP для упомянутого по меньшей мере одного блока в битовом потоке, причем значение дельта QP представляет разность между назначенным ненулевым значением QP и предсказанным значением QP для упомянутого по меньшей мере одного блока,
причем устройство дополнительно содержит средство для сигнализации одного или более синтаксических элементов в битовом потоке, причем один или более синтаксических элементов указывают, что деблокирующая фильтрация разрешена для упомянутого одного или более из упомянутого множества блоков видеоданных.
29. Считываемая компьютером запоминающая среда, хранящая инструкции, которые при исполнении побуждают один или более процессоров кодировать видеоданные, при этом инструкции побуждают упомянутый один или более процессоров:
кодировать множество блоков видеоданных, в том числе кодировать по меньшей мере один блок из упомянутого множества блоков видеоданных с использованием режима кодирования с интра-импульсно-кодовой модуляцией (IPCM);
назначать ненулевое значение параметра квантования (QP) для упомянутого по меньшей мере одного блока, кодированного с использованием упомянутого режима кодирования с IPCM; и
выполнять деблокирующую фильтрацию в отношении одного или более из упомянутого множества блоков видеоданных на основе режима кодирования с IPCM и назначенного ненулевого значения QP для упомянутого по меньшей мере одного блока.
30. Считываемая компьютером запоминающая среда по п. 29, в которой инструкции, которые побуждают упомянутый один или более процессоров выполнять деблокирующую фильтрацию в отношении упомянутого одного или более из упомянутого множества блоков видеоданных на основе режима кодирования с IPCM и назначенного ненулевого значения QP, содержат инструкции, которые побуждают упомянутый один или более процессоров:
выполнять деблокирующую фильтрацию в отношении упомянутого по меньшей мере одного блока на основе назначенного ненулевого значения QP.
31. Считываемая компьютером запоминающая среда по п. 30, в которой инструкции, которые побуждают упомянутый один или более процессоров выполнять деблокирующую фильтрацию в отношении упомянутого по меньшей мере одного блока на основе назначенного ненулевого значения QP, содержат инструкции, которые побуждают упомянутый один или более процессоров выполнять одно или более из:
выбора фильтра для деблокирующей фильтрации на основе назначенного ненулевого значения QP; и
определения силы фильтра для деблокирующей фильтрации на основе назначенного ненулевого значения QP.
32. Считываемая компьютером запоминающая среда по любому из пп. 29 или 30, в которой инструкции, которые побуждают упомянутый один или более процессоров назначать ненулевое значение QP для упомянутого по меньшей мере одного блока, содержат инструкции, которые побуждают упомянутый один или более процессоров определять назначенное ненулевое значение QP на основе одного или более из следующих:
просигнализированного значения QP для упомянутого по меньшей мере одного блока, при этом просигнализированное значение QP указывает назначенное ненулевое значение QP;
предсказанного значения QP для упомянутого по меньшей мере одного блока; и
просигнализированного значения дельта QP для упомянутого по меньшей мере одного блока, при этом значение дельта QP представляет разность между назначенным ненулевым значением QP и предсказанным значением QP.
33. Считываемая компьютером запоминающая среда по любому из пп. 29 или 30, в которой режим кодирования, использованный для кодирования упомянутого по меньшей мере одного блока, содержит режим кодирования с IPCM, и при этом инструкции, которые побуждают упомянутый один или более процессоров назначать ненулевое значение QP для упомянутого по меньшей мере одного блока, содержат инструкции, которые побуждают упомянутый один или более процессоров:
когда размер упомянутого по меньшей мере одного блока меньше минимального размера группы квантования единиц кодирования, устанавливать по меньшей мере одного групповое значение QP для группы квантования, которая включает в себя упомянутый по меньшей мере один блок, в качестве назначенного ненулевого значения QP, при этом группа квантования также включает в себя один или более блоков видеоданных, кодированных с использованием режима кодирования с потерями; и
когда размер упомянутого по меньшей мере одного блока больше или равен минимальному размеру группы квантования единиц кодирования, устанавливать значение QP для соседнего блока из упомянутого множества блоков видеоданных, причем соседний блок содержит один или более из расположенного смежно с упомянутым по меньшей мере одним блоком и ранее кодированного, в качестве назначенного ненулевого значения QP.
34. Считываемая компьютером запоминающая среда по любому из пп. 29 или 30, в которой инструкции, которые побуждают упомянутый один или более процессоров назначать ненулевое значение QP для упомянутого по меньшей мере одного блока, содержат инструкции, которые побуждают упомянутый один или более процессоров:
когда размер упомянутого по меньшей мере одного блока меньше минимального размера группы квантования единиц кодирования, устанавливать значение QP для соседнего блока из упомянутого множества блоков видеоданных, причем соседний блок содержит один или более из блока, расположенного смежно с упомянутым по меньшей мере одним блоком, и ранее кодированного блока, в качестве назначенного ненулевого значения QP.
35. Считываемая компьютером запоминающая среда по любому из пп. 29-31, в которой кодирование содержит декодирование и в которой
инструкции, которые побуждают упомянутый один или более процессоров декодировать упомянутый по меньшей мере один блок,
содержат инструкции, которые побуждают упомянутый один или более процессоров принимать одно из остаточных неквантованных видеоданных и восстановленных видеоданных упомянутого по меньшей мере одного блока в принятом битовом потоке, и
инструкции, которые побуждают упомянутый один или более процессоров назначать ненулевое значение QP для упомянутого по меньшей мере одного блока, содержат одно из инструкций, которые побуждают упомянутый один или более процессоров принимать назначенное ненулевое значение QP в принятом битовом потоке, и инструкций, которые побуждают упомянутый один или более процессоров принимать значение дельта QP для упомянутого по меньшей мере одного блока в принятом битовом потоке, причем значение дельта QP представляет разность между назначенным ненулевым значением QP и предсказанным значением QP для упомянутого по меньшей мере одного блока, и определять назначенное ненулевое значение QP на основе значения дельта QP и предсказанного значения QP,
причем считываемая компьютером запоминающая среда дополнительно содержит инструкции, которые побуждают упомянутый один или более процессоров принимать один или более синтаксических элементов в принятом битовом потоке, причем один или более синтаксических элементов указывают, что деблокирующая фильтрация разрешена для упомянутого одного или более из упомянутого множества блоков видеоданных.
36. Считываемая компьютером запоминающая среда по любому из пп. 29-31, в которой кодирование содержит осуществление кодирования, и при этом
инструкции, которые побуждают упомянутый один или более процессоров осуществлять кодирование упомянутого по меньшей мере одного блока, содержат инструкции, которые побуждают упомянутый один или более процессоров сигнализировать одно из остаточных неквантованных видеоданных и восстановленных видеоданных упомянутого по меньшей мере одного блока в битовом потоке, и
инструкции, которые побуждают упомянутый один или более процессоров назначать ненулевое значение QP для упомянутого по меньшей мере одного блока, содержат одно из инструкций, которые побуждают упомянутый один или более процессоров сигнализировать назначенное ненулевое значение QP в битовом потоке, и инструкций, которые побуждают упомянутый один или более процессоров сигнализировать значение дельта QP для упомянутого по меньшей мере одного блока в битовом потоке, причем значение дельта QP представляет разность между назначенным ненулевым значением QP и предсказанным значением QP для упомянутого по меньшей мере одного блока,
причем считываемая компьютером запоминающая среда дополнительно содержит инструкции, которые побуждают упомянутый один или более процессоров сигнализировать один или более синтаксических элементов в битовом потоке, причем один или более синтаксических элементов указывают, что деблокирующая фильтрация разрешена для упомянутого одного или более из упомянутого множества блоков видеоданных.
37. Способ кодирования видеоданных, содержащий:
кодирование множества блоков видеоданных, при этом по меньшей мере один блок из упомянутого множества блоков видеоданных кодируют, используя режим кодирования с интра-импульсно-кодовой модуляцией (IPCM);
назначение ненулевого значения параметра квантования (QP) для упомянутого по меньшей мере одного блока; и
выполнение деблокирующей фильтрации в отношении одного или более из упомянутого множества блоков видеоданных на основе назначенного ненулевого значения QP для упомянутого по меньшей мере одного блока.
38. Способ декодирования видеоданных, содержащий:
декодирование множества блоков видеоданных с использованием режима кодирования с интра-импульсно-кодовой модуляцией (IPCM);
назначение ненулевого значения параметра квантования (QP) для по меньшей мере одного блока из упомянутого множества блоков, кодированных с использованием режима кодирования с IPCM, при этом назначение указанного ненулевого значения QP для упомянутого по меньшей мере одного блока содержит:
когда размер упомянутого по меньшей мере одного блока меньше минимального размера группы квантования единиц кодирования, установку по меньшей мере одного группового значения QP для группы квантования, которая включает в себя упомянутый по меньшей мере один блок, в качестве назначенного ненулевого значения QP, при этом группа квантования также включает в себя один или более блоков видеоданных, кодированных с использованием режима кодирования с потерями; и
когда размер упомянутого по меньшей мере одного блока больше или равен минимальному размеру группы квантования единиц кодирования, установку значения QP для соседнего блока из упомянутого множества блоков видеоданных, причем соседний блок содержит один или более из расположенного смежно с упомянутым по меньшей мере одним блоком, и ранее кодированного, в качестве назначенного ненулевого значения QP; и
выполнение деблокирующей фильтрации в отношении одного или более из упомянутого множества блоков видеоданных на основе режима кодирования с IPCM и назначенного ненулевого значения QP для упомянутого по меньшей мере одного блока.
39. Способ декодирования видеоданных, содержащий:
декодирование множества блоков видеоданных, при этом по меньшей мере первый блок из упомянутого множества блоков видеоданных кодирован с использованием режима кодирования без потерь, который использует предсказание, и при этом по меньшей мере второй блок из упомянутого множества блоков видеоданных кодирован с использованием режима кодирования с потерями;
установку одного из ненулевого значения параметра квантования (QP) и значения дельта QP для второго блока в качестве назначенного ненулевого значения QP для первого блока, кодированного с использованием режима кодирования без потерь, при этом значение дельта QP представляет разность между ненулевым значением QP и предсказанным значением QP для второго блока; и
выполнение деблокирующей фильтрации на втором блоке видеоданных на основе режима кодирования без потерь и назначенного ненулевого значения QP для второго блока.
40. Способ кодирования видеоданных, содержащий этапы, на которых:
кодируют множество блоков видеоданных, при этом по меньшей мере один блок из упомянутого множества блоков видеоданных кодируют с использованием режима кодирования без потерь, который использует предсказание;
назначают ненулевое значение параметра квантования (QP) для упомянутого по меньшей мере одного блока;
выполняют деблокирующую фильтрацию в отношении одного или более из упомянутого множества блоков видеоданных, отличных от упомянутого по меньшей мере одного блока, на основе назначенного ненулевого значения QP для упомянутого по меньшей мере одного блока; и
избегают выполнения деблокирующей фильтрации в отношении упомянутого по меньшей мере одного блока.
41. Способ по п. 40, в котором выполнение деблокирующей фильтрации в отношении упомянутого одного или более из упомянутого множества блоков видеоданных на основе режима кодирования без потерь и назначенного ненулевого значения QP содержит:
выполнение деблокирующей фильтрации в отношении смежного блока из упомянутого множества блоков видеоданных, причем смежный блок расположен смежно с упомянутым по меньшей мере одним блоком и кодирован с использованием режима кодирования с потерями на основе назначенного ненулевого значения QP.
42. Способ по п. 41, в котором выполнение деблокирующей фильтрации в отношении каждого из упомянутого по меньшей мере одного блока и смежного блока на основе назначенного ненулевого значения QP содержит выбор фильтра для деблокирующей фильтрации на основе назначенного ненулевого значения QP.
43. Способ по любому из пп. 41 или 42, в котором выполнение деблокирующей фильтрации в отношении каждого из упомянутого по меньшей мере одного блока и смежного блока на основе назначенного ненулевого значения QP содержит определение силы фильтра для деблокирующей фильтрации на основе назначенного ненулевого значения QP.
44. Способ по п. 41, дополнительно содержащий разрешение деблокирующей фильтрации для упомянутого одного или более из упомянутого множества блоков видеоданных до выполнения деблокирующей фильтрации в отношении упомянутого одного или более из упомянутого множества блоков видеоданных на основе режима кодирования, использованного для кодирования упомянутого по меньшей мере одного блока, и назначенного ненулевого значения QP.
45. Способ по п. 40, дополнительно содержащий запрещение деблокирующей фильтрации для упомянутого по меньшей мере одного блока, в том числе невыполнение деблокирующей фильтрации для внутренних граничных краев упомянутого по меньшей мере одного блока.
46. Способ по п. 41, в котором назначение ненулевого значения QP для упомянутого по меньшей мере одного блока содержит определение назначенного ненулевого значения QP на основе одного или более из следующего:
просигнализированного значения QP для упомянутого по меньшей мере одного блока, при этом просигнализированное значение QP указывает назначенное ненулевое значение QP;
предсказанного значения QP для упомянутого по меньшей мере одного блока; и
просигнализированного значения дельта QP для упомянутого по меньшей мере одного блока, при этом значение дельта QP представляет разность между назначенным ненулевым значением QP и предсказанным значением QP.
47. Способ по п. 41, в котором назначение ненулевого значения QP для упомянутого по меньшей мере одного блока содержит установку одного из значения QP и значения дельта QP для блока с потерями из упомянутого множества блоков видеоданных в качестве назначенного ненулевого значения QP, при этом значение дельта QP представляет разность между значением QP и предсказанным значением QP для блока с потерями, причем блок с потерями содержит блок, кодируемый с использованием режима кодирования с потерями.
48. Способ по п. 41, в котором назначение ненулевого значения QP для упомянутого по меньшей мере одного блока содержит установку постоянного значения в качестве назначенного ненулевого значения QP.
49. Способ по п. 41, в котором кодирование содержит декодирование, и в котором
декодирование упомянутого по меньшей мере одного блока содержит прием одного из остаточных неквантованных видеоданных и восстановленных видеоданных упомянутого по меньшей мере одного блока в принятом битовом потоке, и
назначение ненулевого значения QP для упомянутого по меньшей мере одного блока содержит одно из приема назначенного ненулевого значения QP в принятом битовом потоке и приема значения дельта QP для упомянутого по меньшей мере одного блока в принятом битовом потоке, причем значение дельта QP представляет разность между назначенным ненулевым значением QP и предсказанным значением QP для упомянутого по меньшей мере одного блока, и определения назначенного ненулевого значения QP на основе значения дельта QP и предсказанного значения QP,
причем способ дополнительно содержит прием одного или более синтаксических элементов в принятом битовом потоке, причем один или более синтаксических элементов указывают, что деблокирующая фильтрация разрешена для упомянутого одного или более из упомянутого множества блоков видеоданных.
50. Способ по п. 49, в котором упомянутый один или более синтаксических элементов содержат первый один или более синтаксических элементов, причем способ дополнительно содержит прием второго одного или более синтаксических элементов в принятом битовом потоке, причем второй один или более синтаксических элементов указывают, что деблокирующая фильтрация запрещена для упомянутого по меньшей мере одного блока.
51. Способ по п. 41, в котором кодирование содержит осуществление кодирования и в котором
осуществление кодирования упомянутого по меньшей мере одного блока содержит сигнализацию одного из остаточных неквантованных видеоданных и восстановленных видеоданных упомянутого по меньшей мере одного блока в битовом потоке, и
назначение ненулевого значения QP для упомянутого по меньшей мере одного блока содержит одно из сигнализации назначенного ненулевого значения QP в битовом потоке и сигнализации значения дельта QP для упомянутого по меньшей мере одного блока в битовом потоке, при этом значение дельта QP представляет разность между назначенным ненулевым значением QP и предсказанным значением QP для упомянутого по меньшей мере одного блока,
причем способ дополнительно содержит сигнализацию одного или более синтаксических элементов в битовом потоке, причем один или более синтаксических элементов указывают, что деблокирующая фильтрация разрешена для упомянутого одного или более из упомянутого множества блоков видеоданных.
52. Способ по п. 51, в котором упомянутый один или более синтаксических элементов содержат первый один или более синтаксических элементов, причем способ дополнительно содержит сигнализацию второго одного или более синтаксических элементов в битовом потоке, причем второй один или более синтаксических элементов указывают, что деблокирующая фильтрация запрещена для упомянутого по меньшей мере одного блока.
53. Устройство, сконфигурированное для кодирования видеоданных, причем устройство содержит видеокодер, сконфигурированный для:
кодирования множества блоков видеоданных, при этом видеокодер сконфигурирован для кодирования по меньшей мере одного блока из упомянутого множества блоков видеоданных с использованием режима кодирования без потерь, который использует предсказание;
назначения ненулевого значения параметра квантования (QP) для упомянутого по меньшей мере одного блока, кодированного с использованием режима кодирования; и
выполнения деблокирующей фильтрации в отношении одного или более из упомянутого множества блоков видеоданных, на основе режима кодирования, использованного для кодирования упомянутого по меньшей мере одного блока, и назначенного ненулевого значения QP для упомянутого по меньшей мере одного блока.
54. Устройство по п. 53, в котором для выполнения деблокирующей фильтрации в отношении упомянутого одного или более из упомянутого множества блоков видеоданных на основе режима кодирования, использованного для кодирования упомянутого по меньшей мере одного блока, и назначенного ненулевого значения QP, видеокодер сконфигурирован для:
выполнения деблокирующей фильтрации в отношении смежного блока из упомянутого множества блоков видеоданных, причем смежный блок расположен смежно с упомянутым по меньшей мере одним блоком и кодирован с использованием режима кодирования с потерями на основе назначенного ненулевого значения QP.
55. Устройство по п. 54, в котором для выполнения деблокирующей фильтрации в отношении каждого из упомянутого по меньшей мере одного блока и смежного блока на основе назначенного ненулевого значения QP, видеокодер сконфигурирован для выполнения одного или более из:
выбора фильтра для деблокирующей фильтрации на основе назначенного ненулевого значения QP; и
определения силы фильтра для деблокирующей фильтрации на основе назначенного ненулевого значения QP.
56. Устройство по любому из пп. 53-55, в котором видеокодер дополнительно сконфигурирован для разрешения деблокирующей фильтрации для упомянутого одного или более из упомянутого множества блоков видеоданных, до выполнения деблокирующей фильтрации в отношении упомянутого одного или более из упомянутого множества блоков видеоданных на основе упомянутого режима кодирования, использованного для кодирования упомянутого по меньшей мере одного блока, и назначенного ненулевого значения QP.
57. Устройство по п. 53, в котором видеокодер дополнительно сконфигурирован для запрещения деблокирующей фильтрации для упомянутого по меньшей мере одного блока, в том числе видеокодер не выполняет деблокирующую фильтрацию для внутренних граничных краев упомянутого по меньшей мере одного блока.
58. Устройство по п. 53, в котором для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока видеокодер сконфигурирован для определения назначенного ненулевого значения QP на основе одного или более из следующего:
просигнализированного значения QP для упомянутого по меньшей мере одного блока, при этом просигнализированное значение QP указывает назначенное ненулевое значение QP;
предсказанного значения QP для упомянутого по меньшей мере одного блока; и
просигнализированного значения дельта QP для упомянутого по меньшей мере одного блока, при этом значение дельта QP представляет разность между назначенным ненулевым значением QP и предсказанным значением QP.
59. Устройство по п. 53, в котором для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока видеокодер сконфигурирован для установки одного из значения QP и значения дельта QP для блока с потерями из упомянутого множества блоков видеоданных в качестве назначенного ненулевого значения QP, при этом значение дельта QP представляет разность между значением QP и предсказанным значением QP для блока с потерями, причем блок с потерями содержит блок, кодируемый с использованием режима кодирования с потерями.
60. Устройство по п. 53, в котором для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока видеокодер сконфигурирован для установки постоянного значения в качестве назначенного ненулевого значения QP.
61. Устройство по п. 53, в котором для кодирования упомянутого множества блоков видеоданных, включающего в себя упомянутый по меньшей мере один блок, видеокодер сконфигурирован для декодирования упомянутого множества блоков видео, в том числе упомянутый по меньшей мере один блок, и при этом
для декодирования упомянутого по меньшей мере одного блока видеокодер сконфигурирован для приема одного из остаточных неквантованных видеоданных и восстановленных видеоданных упомянутого по меньшей мере одного блока в принятом битовом потоке, и
для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока, видеокодер сконфигурирован для выполнения одного из приема назначенного ненулевого значения QP в принятом битовом потоке и приема значения дельта QP для упомянутого по меньшей мере одного блока в принятом битовом потоке, причем значение дельта QP представляет разность между назначенным ненулевым значением QP и предсказанным значением QP для упомянутого по меньшей мере одного блока, и определения назначенного ненулевого значения QP на основе значения дельта QP и предсказанного значения QP,
при этом видеокодер дополнительно сконфигурирован для приема одного или более синтаксических элементов в принятом битовом потоке, причем один или более синтаксических элементов указывают, что деблокирующая фильтрация разрешена для упомянутого одного или более из упомянутого множества блоков видеоданных.
62. Устройство по п. 61, в котором упомянутый один или более синтаксических элементов содержат первый один или более синтаксических элементов, и при этом видеокодер дополнительно сконфигурирован для приема второго одного или более синтаксических элементов в принятом битовом потоке, причем второй один или более синтаксических элементов указывают, что деблокирующая фильтрация запрещена для упомянутого по меньшей мере одного блока.
63. Устройство по п. 53, в котором для кодирования упомянутого множества блоков видеоданных, включающего в себя упомянутый по меньшей мере один блок, видеокодер сконфигурирован для осуществления кодирования множества блоков видео, включающего в себя упомянутый по меньшей мере один блок, и в котором
для осуществления кодирования упомянутого по меньшей мере одного блока видеокодер сконфигурирован для сигнализации одного из остаточных неквантованных видеоданных и восстановленных видеоданных упомянутого по меньшей мере одного блока в битовом потоке, и
для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока, видеокодер сконфигурирован для выполнения одного из сигнализации назначенного ненулевого значения QP в битовом потоке, и сигнализации значения дельта QP для упомянутого по меньшей мере одного блока в битовом потоке, причем значение дельта QP представляет разность между назначенным ненулевым значением QP и предсказанным значением QP для упомянутого по меньшей мере одного блока,
при этом видеокодер дополнительно сконфигурирован для сигнализации одного или более синтаксических элементов в битовом потоке, причем один или более синтаксических элементов указывают, что деблокирующая фильтрация разрешена для упомянутого одного или более из упомянутого множества блоков видеоданных.
64. Устройство по п. 63, в котором один или более синтаксических элементов содержат первый один или более синтаксических элементов, и при этом видеокодер дополнительно сконфигурирован для сигнализации второго одного или более синтаксических элементов в битовом потоке, причем второй один или более синтаксических элементов указывают, что деблокирующая фильтрация запрещена для упомянутого по меньшей мере одного блока.
65. Устройство по п. 53, при этом устройство содержит по меньшей мере одно из:
интегральной схемы;
микропроцессора; и
устройства беспроводной связи, которое включает в себя видеокодер.
66. Устройство, сконфигурированное для кодирования видеоданных, причем устройство содержит:
средство для кодирования множества блоков видеоданных, включающее в себя средство для кодирования по меньшей мере одного блока из упомянутого множества блоков видеоданных с использованием режима кодирования без потерь, который использует предсказание;
средство для назначения ненулевого значения параметра квантования (QP) для упомянутого по меньшей мере одного блока, кодированного с использованием режима кодирования; и
средство для выполнения деблокирующей фильтрации в отношении одного или более из упомянутого множества блоков видеоданных, на основе режима кодирования, использованного для кодирования упомянутого по меньшей мере одного блока, и назначенного ненулевого значения QP для упомянутого по меньшей мере одного блока.
67. Устройство по п. 66, в котором средство для выполнения деблокирующей фильтрации в отношении упомянутого одного или более из упомянутого множества блоков видеоданных на основе режима кодирования, использованного для кодирования упомянутого по меньшей мере одного блока, и назначенного ненулевого значения QP содержит:
средство для выполнения деблокирующей фильтрации в отношении смежного блока из упомянутого множества блоков видеоданных, причем смежный блок расположен смежно с упомянутым по меньшей мере одним блоком и кодирован с использованием режима кодирования с потерями на основе назначенного ненулевого значения QP.
68. Устройство по п. 67, в котором средство для выполнения деблокирующей фильтрации в отношении каждого из упомянутого по меньшей мере одного блока и смежного блока на основе назначенного ненулевого значения QP содержит одно или более из:
средства для выбора фильтра для деблокирующей фильтрации на основе назначенного ненулевого значения QP; и
средства для определения силы фильтра для деблокирующей фильтрации на основе назначенного ненулевого значения QP.
69. Устройство по любому из пп. 66-68, в котором средство для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока содержит средство для определения назначенного ненулевого значения QP на основе одного или более из следующего:
просигнализированного значения QP для упомянутого по меньшей мере одного блока, при этом просигнализированное значение QP указывает назначенное ненулевое значение QP;
предсказанного значения QP для упомянутого по меньшей мере одного блока; и
просигнализированного значения дельта QP для упомянутого по меньшей мере одного блока, при этом значение дельта QP представляет разность между назначенным ненулевым значением QP и предсказанным значением QP.
70. Устройство по любому из пп. 66-68, в котором средство для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока содержит средство для установки одного из значения QP и значения дельта QP для блока с потерями из упомянутого множества блоков видеоданных в качестве назначенного ненулевого значения QP, при этом значение дельта QP представляет разность между значением QP и предсказанным значением QP для блока с потерями, причем блок с потерями содержит блок, кодируемый с использованием режима кодирования с потерями.
71. Устройство по любому из пп. 66-68, в котором средство для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока содержит средство для установки постоянного значения в качестве назначенного ненулевого значения QP.
72. Устройство по любому из пп. 66-68, в котором кодирование содержит декодирование, и в котором
средство для декодирования упомянутого по меньшей мере одного блока содержит средство для приема одного из остаточных неквантованных видеоданных и восстановленных видеоданных упомянутого по меньшей мере одного блока в принятом битовом потоке, и
средство для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока содержит одно из средства для приема назначенного ненулевого значения QP в принятом битовом потоке и средства для приема значения дельта QP для упомянутого по меньшей мере одного блока в принятом битовом потоке, причем значение дельта QP представляет разность между назначенным ненулевым значением QP и предсказанным значением QP для упомянутого по меньшей мере одного блока, и определения назначенного ненулевого значения QP на основе значения дельта QP и предсказанного значения QP,
причем устройство дополнительно содержит средство для приема одного или более синтаксических элементов в принятом битовом потоке, причем один или более синтаксических элементов указывают, что деблокирующая фильтрация разрешена для упомянутого одного или более из упомянутого множества блоков видеоданных.
73. Устройство по любому из пп. 66-68, в котором кодирование содержит осуществление кодирования и в котором
средство для осуществления кодирования упомянутого по меньшей мере одного блока содержит средство для сигнализации одного из остаточных неквантованных видеоданных и восстановленных видеоданных упомянутого по меньшей мере одного блока в битовом потоке, и
средство для назначения ненулевого значения QP для упомянутого по меньшей мере одного блока содержит одно из средства для сигнализации назначенного ненулевого значения QP в битовом потоке и средства для сигнализации значения дельта QP для упомянутого по меньшей мере одного блока в битовом потоке, причем значение дельта QP представляет разность между назначенным ненулевым значением QP и предсказанным значением QP для упомянутого по меньшей мере одного блока,
причем устройство дополнительно содержит средство для сигнализации одного или более синтаксических элементов в битовом потоке, причем один или более синтаксических элементов указывают, что деблокирующая фильтрация разрешена для упомянутого одного или более из упомянутого множества блоков видеоданных.
74. Считываемая компьютером запоминающая среда, хранящая инструкции, которые при исполнении побуждают один или более процессоров кодировать видеоданные, при этом инструкции побуждают упомянутый один или более процессоров:
кодировать множество блоков видеоданных, в том числе кодирование по меньшей мере одного блока из упомянутого множества блоков видеоданных с использованием режима кодирования без потерь, который использует предсказание;
назначать ненулевое значение параметра квантования (QP) для упомянутого по меньшей мере одного блока, кодированного с использованием режима кодирования; и
выполнять деблокирующую фильтрацию в отношении одного или более из упомянутого множества блоков видеоданных на основе режима кодирования, использованного для кодирования упомянутого по меньшей мере одного блока, и назначенного ненулевого значения QP для упомянутого по меньшей мере одного блока.
75. Считываемая компьютером запоминающая среда по п. 74, в которой инструкции, которые побуждают упомянутый один или более процессоров выполнять деблокирующую фильтрацию в отношении упомянутого одного или более из упомянутого множества блоков видеоданных на основе режима кодирования, использованного для кодирования упомянутого по меньшей мере одного блока, и назначенного ненулевого значения QP, содержат инструкции, которые побуждают упомянутый один или более процессоров:
выполнять деблокирующую фильтрацию в отношении смежного блока из упомянутого множества блоков видеоданных, причем смежный блок расположен смежно с упомянутым по меньшей мере одним блоком и кодирован с использованием режима кодирования с потерями на основе назначенного ненулевого значения QP.
76. Считываемая компьютером запоминающая среда по п. 74 или 75, в которой инструкции, которые побуждают упомянутый один или более процессоров выполнять деблокирующую фильтрацию в отношении каждого из упомянутого по меньшей мере одного блока и смежного блока на основе назначенного ненулевого значения QP, содержат инструкции, которые побуждают упомянутый один или более процессоров выполнять одно или более из:
выбора фильтра для деблокирующей фильтрации на основе назначенного ненулевого значения QP; и
определения силы фильтра для деблокирующей фильтрации на основе назначенного ненулевого значения QP.
77. Считываемая компьютером запоминающая среда по любому из пп. 74 или 75, в которой инструкции, которые побуждают упомянутый один или более процессоров назначать ненулевое значение QP для упомянутого по меньшей мере одного блока, содержат инструкции,
которые побуждают упомянутый один или более процессоров определять назначенное ненулевое значение QP на основе одного или более из следующего:
просигнализированного значения QP для упомянутого по меньшей мере одного блока, при этом просигнализированное значение QP указывает назначенное ненулевое значение QP;
предсказанного значения QP для упомянутого по меньшей мере одного блока; и
просигнализированного значения дельта QP для упомянутого по меньшей мере одного блока, при этом значение дельта QP представляет разность между назначенным ненулевым значением QP и предсказанным значением QP.
78. Считываемая компьютером запоминающая среда по любому из пп. 74 или 75, в которой инструкции, которые побуждают упомянутый один или более процессоров назначать ненулевое значение QP для упомянутого по меньшей мере одного блока, содержат инструкции, которые побуждают упомянутый один или более процессоров устанавливать одно из значения QP и значения дельта QP для блока с потерями из упомянутого множества блоков видеоданных в качестве назначенного ненулевого значения QP, при этом значение дельта QP представляет разность между значением QP и предсказанным значением QP для блока с потерями, причем блок с потерями содержит блок, кодированный с использованием режима кодирования с потерями.
79. Считываемая компьютером запоминающая среда по любому из пп. 74 или 75, и в которой инструкции, которые побуждают упомянутый один или более процессоров назначать ненулевое значение QP для упомянутого по меньшей мере одного блока, содержат инструкции, которые побуждают упомянутый один или более процессоров устанавливать постоянное значение в качестве назначенного ненулевого значения QP.
80. Считываемая компьютером запоминающая среда по любому из пп. 74 или 75, в которой кодирование содержит декодирование и в которой
инструкции, которые побуждают упомянутый один или более процессоров декодировать упомянутый по меньшей мере один блок, содержат инструкции, которые побуждают упомянутый один или более процессоров принимать одно из остаточных неквантованных видеоданных и восстановленных видеоданных упомянутого по меньшей мере одного блока в принятом битовом потоке, и
инструкции, которые побуждают упомянутый один или более процессоров назначать ненулевое значение QP для упомянутого по меньшей мере одного блока, содержат одно из инструкций, которые побуждают упомянутый один или более процессоров принимать назначенное ненулевое значение QP в принятом битовом потоке, и инструкций, которые побуждают упомянутый один или более процессоров принимать значение дельта QP для упомянутого по меньшей мере одного блока в принятом битовом потоке, причем значение дельта QP представляет разность между назначенным ненулевым значением QP и предсказанным значением QP для упомянутого по меньшей мере одного блока, и определять назначенное ненулевое значение QP на основе значения дельта QP и предсказанного значения QP,
причем считываемая компьютером запоминающая среда дополнительно содержит инструкции, которые побуждают упомянутый один или более процессоров принимать один или более синтаксических элементов в принятом битовом потоке, причем один или более синтаксических элементов указывают, что деблокирующая фильтрация разрешена для упомянутого одного или более из упомянутого множества блоков видеоданных.
81. Считываемая компьютером запоминающая среда по любому из пп. 74 или 75, в которой кодирование содержит осуществление кодирования, и при этом
инструкции, которые побуждают упомянутый один или более процессоров осуществлять кодирование упомянутого по меньшей мере одного блока, содержат инструкции, которые побуждают упомянутый один или более процессоров сигнализировать одно из остаточных неквантованных видеоданных и восстановленных видеоданных упомянутого по меньшей мере одного блока в битовом потоке, и
инструкции, которые побуждают упомянутый один или более процессоров назначать ненулевое значение QP для упомянутого по меньшей мере одного блока, содержат одно из инструкций, которые побуждают упомянутый один или более процессоров сигнализировать назначенное ненулевое значение QP в битовом потоке, и инструкций, которые побуждают упомянутый один или более процессоров сигнализировать значение дельта QP для упомянутого по меньшей мере одного блока в битовом потоке, причем значение дельта QP представляет разность между назначенным ненулевым значением QP и предсказанным значением QP для упомянутого по меньшей мере одного блока,
считываемая компьютером запоминающая среда дополнительно содержит инструкции, которые побуждают упомянутый один или более процессоров сигнализировать один или более синтаксических элементов в битовом потоке, причем один или более синтаксических элементов указывают, что деблокирующая фильтрация разрешена для упомянутого одного или более из упомянутого множества блоков видеоданных.
KEIICHI CHONO et al, Proposal of enhanced PCM coding in HEVC, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC, JTC1/SC29/WG11, JCTVC-E192, 5th JCT-VC Meeting, Geneva, Switzerland, 16-23 March 2011, sec.2, Appendix A | |||
HIROFUMI AOKI et al, CE4 Subtest 2: Spatial QP prediction: combination of test 2.3.g, 2.3.f and |
Авторы
Даты
2016-06-20—Публикация
2012-10-19—Подача