СИГНАЛИЗАЦИЯ МАТРИЦ КВАНТОВАНИЯ ДЛЯ ВИДЕОКОДИРОВАНИЯ
SIGNALLING QUANTISATION MATRICES FOR VIDEO CODING

ПЕРЕКРЕСТНЫЕ ССЫЛКИ НА РОДСТВЕННЫЕ ЗАЯВКИ
Настоящая заявка испрашивает приоритет согласно предварительной заявке на патент США № 61/556,785, поданной 7 ноября 2011 года, предварительной заявке на патент США № 61/594,885, поданной 3 февраля 2012 года, предварительной заявке на патент США № 61/597,107, поданной 9 февраля 2012 года, и предварительной заявке на патент США № 61/605,654, поданной 1 марта 2012 года, содержание которых полностью включено в настоящий документ посредством ссылки.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится к кодированию данных и, более конкретно, к способам кодирования видеоданных.
УРОВЕНЬ ТЕХНИКИ
Возможности цифрового видео могут быть реализованы в широком ряде устройств, включающем цифровые телевизоры, цифровые системы прямой широковещательной передачи, системы беспроводной широковещательной передачи, персональные цифровые помощники (PDA), портативные или настольные компьютеры, цифровые фотоаппараты, цифровые записывающие устройства, цифровые медиа-плееры, устройства видеоигр, игровые видеоприставки, сотовые или спутниковые радиотелефоны, устройства видео телеконференции, и тому подобное. Цифровые видео устройства осуществляют способы сжатия видеосигнала, как, например, описанные в стандартах MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, часть 10, Продвинутое Кодирование (AVC) Видеосигнала, стандарте Высокоэффективное Кодирование (HEVC) Видеосигнала, в настоящее время находящемся в разработке, и расширениях этих стандартов, чтобы передавать, принимать и хранить цифровую видео информацию более эффективно.
Способы сжатия видеосигнала включают в себя пространственное прогнозирование и/или временное прогнозирование для сокращения или устранения избыточности, присущей для последовательностей видеокадров. Для кодирования видеосигналов на основе блоков, видеокадр или серия могут быть разделены на блоки. Каждый блок может быть дополнительно разделен. Блоки в кадре или серии с внутренним кодированием (I) кодируются с использованием пространственного прогнозирования по отношению к опорным образцам в соседних блоках в том же кадре или серии. Блоки в кадре или серии с внешним кодированием (Р или В) могут использовать пространственное прогнозирование по отношению к опорным образцам в соседних блоках в том же кадре или серии или временное прогнозирование по отношению к опорным образцам в других опорных кадрах. Пространственное или временное прогнозирование приводит к прогнозирующему блоку для блока, который подлежит кодированию. Остаточные данные представляют собой разницы пикселов между исходным блоком, который подлежит кодированию, и прогнозирующим блоком.
Блок с внешним кодированием кодируется в соответствии с вектором движения, который указывает на блок опорных образцов, формирующих прогнозирующий блок, и остаточными данными, указывающими разницу между закодированным блоком и прогнозирующим блоком. Блок с внутренним кодированием кодируется в соответствии с режимом внутреннего кодирования и остаточными данными. Для дополнительного сжатия остаточные данные могут быть преобразованы из области пикселов в область преобразования, что приведет к остаточным коэффициентам преобразования, которые затем могут быть квантованы. Квантованные коэффициенты преобразования, изначально размещенные в двумерной решетке, могут быть сканированы в конкретном порядке для производства одномерного вектора коэффициентов преобразования для статистического кодирования.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
В общем, настоящее изобретения описывает сигнализацию величин матрицы квантования. Например, видеокодер может делить величины матрицы квантования, по меньшей мере, на первую подгруппу величин и вторую подгруппу величин. Видеокодер может кодировать и сигнализировать величины первой подгруппы в качестве синтаксических элементов. Видеодекодер может принимать синтаксические элементы для величин первой подгруппы и декодировать синтаксические элементы для формирования величин первой подгруппы. Не принимая величины второй подгруппы, видеодекодер может прогнозировать величины второй подгруппы из величин первой подгруппы.
В одном примере настоящего изобретения, способ кодирования видеоданных содержит формирование матрицы квантования, которая включает в себя множество величин, понижающую дискретизацию первой группы величин в матрице квантования с помощью первого коэффициента понижающей дискретизации для формирования первой группы подвергнутых понижающей дискретизации величин, понижающую дискретизацию второй группы величин в матрице квантования с помощью второго коэффициента понижающей дискретизации для формирования второй группы подвергнутых понижающей дискретизации величин, и формирование закодированного потока двоичных данных, который включает в себя первую группу подвергнутых понижающей дискретизации величин и вторую группу подвергнутых понижающей дискретизации величин.
В другом примере настоящего изобретения, способ декодирования видеоданных содержит прием матрицы квантования, закодированной с помощью подвергнутых понижающей дискретизации величин в закодированном потоке двоичных данных, повышающую дискретизацию первой группы подвергнутых понижающей дискретизации величин в матрице квантования с помощью первого коэффициента повышающей дискретизации для формирования первой группы величин, повышающую дискретизацию второй группы подвергнутых понижающей дискретизации величин в матрице квантования с помощью второго коэффициента повышающей дискретизации для формирования второй группы величин, и обратное квантование блока коэффициентов преобразования с помощью первой и второй группы величин.
Детали одного или нескольких примеров изложены ниже в сопровождающих чертежах и осуществлении изобретения. Другие признаки, объекты и преимущества будут очевидны из осуществления изобретения и чертежей, а также из формулы изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1 является блочной диаграммой, изображающей пример системы кодирования и декодирования видеосигнала, которая может использовать способы, описанные в настоящем изобретении.
Фиг. 2 является блочной диаграммой, изображающей пример видеокодера, который может осуществлять способы, описанные в настоящем изобретении.
Фиг. 3 является блочной диаграммой, изображающей пример видеодекодера, который может осуществлять способы, описанные в настоящем изобретении.
Фиг. 4 является концептуальной схемой, изображающей пример матрицы квантования.
Фиг. 5 является концептуальной схемой, изображающей матрицу квантования с примерными величинами.
Фиг. 6 является концептуальной схемой, изображающей восстановленную матрицу квантования с использованием одного или нескольких способов настоящего изобретения.
Фиг. 7 является концептуальной схемой, изображающей коэффициенты понижающей дискретизации для различных частей в одном примере матрицы квантования.
Фиг. 8 является концептуальной схемой, изображающей коэффициенты понижающей дискретизации для различных частей в другом примере матрицы квантования.
Фиг. 9 является концептуальной схемой, изображающей коэффициенты понижающей дискретизации для различных частей в другом примере матрицы квантования.
Фиг. 10 является блок-схемой, изображающей способ кодирования видеосигнала в соответствии со способами настоящего изобретения.
Фиг. 11 является блок-схемой, изображающей способ декодирования видеосигнала в соответствии со способами настоящего изобретения.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
Настоящее изобретение описывает способы сигнализации величин матрицы квантования в кодировании видеосигнала. Матрица квантования может быть двумерной матрицей, которая включает в себя множество величин. В качестве иллюстрации, матрица квантования может быть использована для масштабирования размера этапа квантования для квантования остаточных коэффициентов преобразования, связанных с элементом преобразования для кодирования видеосигнала. Параметр (QP) квантования может быть присвоен блоку коэффициентов преобразования, как, например, элемент преобразования, для задания размера этапа квантования. Каждая величина в матрице квантования соответствует коэффициенту в блоке, который подлежит квантованию, и используется для определения степени квантования, которая будет применена к коэффициенту, с учетом величины QP.
Более конкретно, настоящее изобретение предлагает способы понижающей дискретизации матрицы квантования, чтобы меньше величин квантования нужно было передавать и/или хранить в закодированном потоке двоичных данных. Передача или хранение всех матриц квантования, связанных с блоками видеоданных, может потребовать большое число битов, что сокращает эффективность использования полосы пропускания закодированного двоичного потока видеосигнала. Также, видеодекодер может хранить всю матрицу квантования в памяти для процесса обратного квантования. Путем понижающей дискретизации матрицы квантования с помощью способов настоящего изобретения, биты могут быть сохранены без существенного ухудшения качества закодированного видеосигнала.
В настоящем изобретении, кодирование видеосигнала будет описано для целей иллюстрации. Способы кодирования, описанные в настоящем изобретении, также могут быть применимы к другим типам кодирования данных. Цифровые видеоустройства осуществляют способы сжатия видеосигнала для более эффективного кодирования и декодирования цифровой видеоинформации. Сжатие видеосигнала может применять способы пространственного (внутрикадрового) прогнозирования и/или временного (межкадрового) прогнозирования для сокращения или устранения избыточности, присущей для последовательностей видеокадров.
Следует понимать, что термин «кадр» можно использовать взаимозаменяемо с термином «изображение». Другими словами, каждый из терминов «кадр» и «изображение» относится к части видео, и последовательное отображение кадра или изображения в результате дает ровное воспроизведение. Соответственно, в случаях, когда изобретение использует термин «кадр», способы настоящего изобретения не следует понимать как ограниченные способами или стандартами кодирования видеосигнала, которые используют термин «кадр», и способы можно расширить до других стандартов, как, например, улучшенные стандарты, стандарты в разработке или будущие стандарты, и до других способов кодирования видеосигнала, которые используют термин «изображение».
Обычный видеокодер разделяет каждый кадр исходной видеопоследовательности на смежные прямоугольные участки, называемые «блоки» или «элементы кодирования». Эти блоки кодируются во «внутреннем режиме» (I-режим) или «внешнем режиме» (Р-режим или В-режим).
Для Р- или В-режима, кодер сперва ищет блок, похожий на кодируемый блок, в «опорном кадре», обозначенном Fref. Поиски, в общем, ограничены конкретным пространственным смещением от блока, который подлежит кодированию. Когда наилучшее соответствие, то есть прогнозирующий блок или «прогнозирование», идентифицировано, оно выражается в форме двумерного (2D) вектора (Δх, Δу) движения, где Δх - горизонтальное, а Δу - вертикальное смещение положения пикселов в прогнозирующем блоке в опорном кадре, относительно положения пикселов в блоке, который подлежит кодированию.
Векторы движения вместе с опорным кадром используются для создания прогнозируемого блока Fpred следующим образом:
Fpred (x,y)=Fref(x+Δx, y+Δу)
Местоположение пиксела внутри кадра обозначается как (х,у).
Для блоков, закодированных в I-режиме, прогнозируемый блок формируется с использованием пространственного прогнозирования из ранее закодированных соседних блоков внутри того же кадра. Для I-режима и Р- или В-режима, ошибка прогнозирования, то есть остаточная разница между величинами пикселов в блоке, который кодируют, и в прогнозируемом блоке, представлена в качестве группы взвешенных основных функций дискретного преобразования, как, например, дискретное косинусное преобразование (DCT). Преобразования могут быть выполнены на основании различных размеров блоков, как, например, 4×4, 8×8 или 16×16 и больше. Форма блока преобразования не всегда квадратная. Прямоугольные блоки преобразования также могут быть использованы, например, с размером блока преобразования 16×4, 32×8 и так далее.
Веса (то есть, коэффициенты преобразования) квантуют последовательно. Квантование несет с собой потерю информации, и при этом квантованные коэффициенты имеют более низкую точность, чем исходные коэффициенты преобразования. Квантованные коэффициенты преобразования и векторы движения являются примерами «синтаксических элементов». Эти синтаксические элементы, плюс информация управления, формируют закодированное представление видеопоследовательности. Синтаксические элементы могут также быть статистически закодированы, тем самым дополнительно сокращая число битов, необходимых для их представления. Статистическое кодирование является функционированием без потерь, нацеленным на минимизацию числа битов, требуемых для представления переданных или хранимых символов (в нашем случае, синтаксических элементов), путем использования характеристик их распределения (некоторые символы встречаются чаще, чем другие).
Коэффициентом сжатия, то есть коэффициентом числа битов, используемых для представления исходной последовательности и сжатой последовательности, можно управлять путем регулировки одной или обеих из величины параметра (QP) квантования и величин в матрице квантования, обе из которых могут быть использованы для квантования величин коэффициентов преобразования. Коэффициент сжатия может зависеть от способа используемого статистического кодирования. Матрицы квантования, как правило, устроены так, что величины квантования в матрице, в общем, но не без исключения, растут как в направлении строки (слева направо), так и столбца (сверху вниз). Например, по мере расширения блока коэффициентов преобразования от положения DC в верхнем левом (0,0) углу до более высокочастотных коэффициентов преобразования в направлении нижнего правого (n,n) угла блока коэффициентов преобразования, соответствующие величины в матрице квантования, в общем, растут. Причина такого строения заключается в том, что функция (CSF) контрастной чувствительности визуальной системы (HVS) человека уменьшается по мере увеличения частоты, как в горизонтальном, так и вертикальном направлениях.
В декодере, блок в текущем кадре получают путем построения его прогнозирования тем же образом, что и в кодере, и путем добавления к прогнозированию ошибки сжатия прогнозирования. Ошибку сжатия прогнозирования находят путем взвешивания основных функций преобразования с использованием квантованных коэффициентов. Разница между восстановленным кадром и исходным кадром называется ошибкой восстановления.
Фиг. 1 является блочной диаграммой, изображающей пример системы 10 кодирования и декодирования видеосигнала, которая может использовать способы, описанные в настоящем изобретении. Как изображено на Фиг. 1, система 10 включает в себя устройство 12 источника, которое передает закодированный видеосигнал устройству 14 назначения по каналу 16 связи. Закодированные видеоданные могут также храниться на носителе 34 данных или файловом сервере 36, и доступ к ним может быть осуществлен устройством 14 назначения по желанию. При сохранении на носителе данных или файловом сервере, видеокодер 20 может обеспечивать закодированные видеоданные другому устройству, как, например, сетевой интерфейс, компактный диск (CD), Blu-ray или устройство записи цифрового видеодиска (DVD) либо устройство обеспечения тиснения, либо другие устройства, для хранения закодированных видеоданных на носителе данных. Подобным образом, устройство, отдельное от видеодекодера 30, как, например, сетевой интерфейс, устройство считывания CD или DVD и тому подобное, может извлекать закодированные видеоданные из носителя данных и обеспечивать извлеченные данные видеокодеру 30.
Устройство 12 источника и устройство 14 назначения могут содержать любое из множества устройств, включая настольные компьютеры, ноутбуки (то есть, портативные компьютеры), планшеты, телевизионные приставки, телефонные устройства, как, например, так называемые смартфоны, телевизоры, фотоаппараты, устройства отображения, цифровые медиаплееры, игровые видеоприставки и тому подобное. Во многих случаях, такие устройства могут быть оборудованы для беспроводной связи. Следовательно, канал 16 связи может содержать беспроводной канал, проводной канал или комбинацию беспроводного и проводного каналов, подходящую для передачи закодированных видеоданных. Подобным образом, к файловому серверу 36 доступ может быть осуществлен устройством 14 назначения по любому стандартному соединению данных, включая интернет-соединение. Это может включать в себя беспроводной канал (например, соединение Wi-Fi), проводное соединение (например, DSL, кабельный модем и так далее), или их комбинацию, подходящую для доступа к закодированных видеоданным, хранящимся на файловом сервере.
Способы сигнализации матриц квантования, в соответствии с примерами настоящего изобретения, могут быть применены к кодированию видеосигнала для поддержки любого из множества мультимедийных приложений, как, например, широковещательные передачи по эфирному телевидению, передачи по кабельному телевидению, передачи по спутниковому телевидению, передачи по потоковому видео, например, по интернету, кодирование цифрового видеосигнала для хранения на носителе данных, декодирование цифрового видеосигнала, хранящегося на носителе данных, и другие приложения. В некоторых примерах, система 10 может быть выполнена с возможностью поддерживать одностороннюю или двустороннюю передачу видеоданных для поддержки приложений, как, например, потоковое видео, воспроизведение видео, широковещательная передача видео и/или видеотелефония.
В примере на Фиг. 1, устройство 12 источника включает в себя видеоисточник 18, видеокодер 20, модулятор/демодулятор 22 и передатчик 24. В устройстве 12 источника, видеоисточник 18 может включать в себя источник, как, например, устройство захвата видеосигнала, как, например, видеокамера, видеоархив, содержащий ранее захваченный видеосигнал, интерфейс видеопотока для приема видео от провайдера видеоконтента, и/или систему компьютерной графики для формирования данных компьютерной графики в качестве видеосигнала источника, либо комбинация таких источников. В качестве одного примера, если источник 18 видеосигнала - это видеокамера, то устройство 12 источника и устройство 14 назначения могут формировать так называемые камерофоны или видеофоны. Однако способы, описанные в настоящем изобретении, могут быть применимы к кодированию видеосигнала в общем и могут быть применимы к беспроводным и/или проводным приложениям, либо приложению, в котором закодированные видеоданные хранятся на локальном диске.
Захваченный, ранее захваченный или сформированный компьютером видеосигнал может быть закодирован видеокодером 20. Закодированная видеоинформация может быть модулирована модемом 22 в соответствии со стандартом связи, как, например, протокол беспроводной связи, и передана устройству 14 назначения по передатчику 24. Модем 22 может включать в себя различные микшеры, фильтры, усилители или другие компоненты, предназначенные для модуляции сигнала. Передатчик 24 может включать в себя схемы, предназначенные для передачи данных, включая усилители, фильтры и одну или несколько антенн.
Захваченный, ранее захваченный или сформированный компьютером видеосигнал, который закодирован видеокодером 20, может также храниться на носителе 34 данных или файловом сервере 36 для дальнейшего использования. Носитель 34 данных может включать в себя диски Blu-ray, DVD, CD-ROM, флэш-память, или любые другие подходящие носители данных для хранения закодированного видеосигнала. Доступ к закодированному видеосигналу, хранящемуся на носителе 34 данных, может быть осуществлен устройством 14 назначения для декодирования и воспроизведения. Хотя это не изображено на Фиг. 1, в некоторых примерах носитель 34 данных и/или файловый сервер 36 могут хранить вывод передатчика 24.
Файловый сервер 36 может быть любым типом сервера, способным хранить закодированный видеосигнал и передавать этот закодированный видеосигнал устройству 14 назначения. Примеры файловых серверов включают в себя веб-сервер (например, для вебсайта), сервер FTP, устройства сетевого хранилища (NAS) данных, локальный дисковод или любой другой тип устройства, способного хранить закодированный видеосигнал и передавать его устройству назначения. Передача закодированных видеоданных от файлового сервера 36 может быть потоковой передачей, передачей загрузки или их комбинацией. Доступ к файловому серверу 36 может быть осуществлен устройством 14 назначения по любому стандартному соединению данных, включая интернет-соединение. Это может включать в себя беспроводной канал (например, соединение Wi-Fi), проводное соединение (например, DSL, кабельный модем, этернет, USB и так далее) или их комбинацию, подходящую для доступа к закодированным видеоданным, хранящимся на файловом сервере.
Устройство 14 назначения, в примере на Фиг. 1, включает в себя приемник 26, модем 28, видеодекодер 30 и устройство 32 отображения. Приемник 26 устройства 14 назначения принимает информацию по каналу 16, и модем 28 демодулирует информацию для производства демодулированного потока двоичных данных для видеодекодера 30. Информация, передаваемая по каналу 16, может включать в себя различную синтаксическую информацию, сформированную видеокодером 20, для использования видеодекодером 30 в декодировании видеоданных. Такой синтаксис может также быть включен в закодированные видеоданные, хранящиеся на носителе 34 данных или файловом сервере 36. Каждый из видеокодера 20 и видеодекодера 30 может формировать часть соответствующего кодера-декодера (CODEC), который способен кодировать или декодировать видеоданные.
Устройство 32 отображения может быть интегрировано, либо быть внешним по отношению к устройству 14 назначения. В некоторых примерах, устройство 14 назначения может включать в себя интегрированное устройство отображения и также быть выполнено с возможностью взаимодействовать с внешним устройством отображения. В других примерах, устройство 14 назначения может быть устройством отображения. В общем, устройство 32 отображения отображает декодированные видеоданные пользователю и может содержать любое из устройств отображения, как, например, жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на органических светодиодах (OLED) или другой тип устройства отображения.
В примере на Фиг. 1, канал 16 связи может содержать беспроводной или проводной носитель связи, как, например, радиочастотный (RF) спектр или одна или несколько физических линий передачи, либо любую комбинацию беспроводных и проводных носителей. Канал 16 связи может формировать часть пакетной сети, как, например, локальная сеть, региональная сеть или глобальная сеть, как, например, интернет. Канал 16 связи, в общем, представляет собой любой подходящий носитель связи или группу различных носителей связи для передачи видеоданных от устройства 12 источника устройству 14 назначения, включая любую подходящую комбинацию проводных или беспроводных носителей. Канал 16 связи может включать в себя роутеры, переключатели, базовые станции или любое другое оборудование, которое можно использовать для усиления связи от устройства 12 источника устройству 14 назначения.
Видеокодер 20 и видеодекодер 30 могут функционировать в соответствии со стандартом сжатия видеосигнала, как, например, стандарт высокоэффективного кодирования (HEVC) видеосигнала, находящийся в настоящее время в разработке, и может соответствовать тестовой модели (HM) HEVC. Альтернативно, видеокодер 20 и видеодекодер 30 могут функционировать в соответствии с другими частными или индустриальными стандартами, как, например, стандарт ITU-T H.264, альтернативно называемый как MPEG-4, часть 10, Продвинутое Кодирование (AVC) Видеосигнала, либо расширения таких стандартов. Способы настоящего изобретения, однако, не ограничены любым конкретным стандартом кодирования. Другие примеры стандартов сжатия видеосигнала включают в себя MPEG-2 и ITU-T H.263.
Хотя это не изображено на Фиг. 1, в некоторых аспектах видеокодер 20 и видеодекодер 30 могут быть интегрированы с аудиокодером и декодером и могут включать в себя элементы MUX-DEMUX или другие технические средства или программное обеспечение для выполнения кодирования аудио- и видеосигнала в общем потоке данных либо раздельных потоках данных. Если это применимо, в некоторых примерах, элементы MUX-DEMUX могут соответствовать протоколу мультиплексирования ITU H.223 или другим протоколам, как, например, протокол (UDP) пользовательских датаграмм.
Видеокодер 20 и видеодекодер 30 могут быть осуществлены в качестве любой из подходящих схем кодирования, как, например, один или несколько микропроцессоров, цифровых сигнальных процессоров (DSP), специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA), дискретная логика, программное обеспечение, технические средства, программно-аппаратные средства или любые их комбинации. Когда способы осуществлены частично в программном обеспечении, устройство может хранить команды для программного обеспечения на подходящем непереходном машиночитаемом носителе и выполнять команды в технических средствах с использованием одного или нескольких процессоров для выполнения способов настоящего изобретения. Каждый из видеокодера 20 и видеодекодера 30 может быть включен в один или несколько кодеров и декодеров, любой из которых может быть интегрирован как часть комбинированного кодера-декодера (CODEC) в соответствующем устройстве.
Для кодирования видеосигнала в соответствии с развивающимся стандартом HEVC, который находится в разработке в настоящее время Совместной Кооперативной Группой (JCT-VC) по Кодированию видеосигнала, в качестве примера, видеокадр может быть разделен на элементы кодирования. Элемент (CU) кодирования, в общем, относится к участку изображения, который служит в качестве базового элемента, к которому применяются различные инструменты кодирования для сжатия видеосигнала. CU, как, правило, имеет компонент яркости, обозначаемый как Y, и два компонента цветности, обозначаемые как U и V. В зависимости от формата видеообразца, размер компонентов U и V, относительно числа образцов, может быть тем же или отличаться от размера компонента Y. CU, как правило, квадратный, и его можно рассматривать как похожий на так называемый макроблок, например, по другим стандартам кодирования видеосигнала, как, например, ITU-T H.264. Кодирование в соответствии с некоторыми из предлагаемых аспектов развивающегося стандарта HEVC будет описано в настоящей заявке для целей иллюстрации. Однако способы, описанные в настоящем изобретении, могут быть использованы для других процессов кодирования видеосигнала, как, например, определенные в соответствии с Н.264 или другим стандартом или частными процессами кодирования видеосигнала.
Усилия по стандартизации HEVC основаны на модели устройства кодирования видеосигнала, называемой тестовая модель (НМ) HEVC. НМ предполагает несколько способностей устройств кодирования видеосигнала по сравнению с другими устройствами в соответствии, например, с ITU-T H.264/AVC. Например, в то время как Н.264 обеспечивает девять режимов кодирования с внутренним прогнозированием, НМ обеспечивает тридцать пять режимов кодирования с внутренним прогнозированием. Последняя рабочая версия (WD) HEVC, именуемая в настоящем документе как HEVC WD7, доступна на http://phenix.intevry.fr/jct/doc_end_user/documents/9_Geneva/wg11/JCTVC-I1003-v6.zip от 30 октября 2012 года.
В общем, рабочая модель НМ описывает, что видеокадр или изображение могут быть разделены на последовательность древовидных блоков или наибольших элементов (LCU) кодирования, которые включают в себя образцы яркости и цветности. Древовидный блок имеет ту же цель, что и макроблок стандарта Н.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 может включать в себя данные, определяющие вектор движения для PU. Данные, определяющие вектор движения для PU, могут описывать, например, горизонтальный компонент вектора движения, вертикальный компонент вектора движения, разрешение для вектора движения (например, с точностью до одной четвертой пиксела или одной восьмой пиксела), опорное изображение, на которое указывает вектор движения, и/или список опорных изображений (например, Список 0, Список 1 или Список С) для вектора движения.
В общем, TU используется для процессов преобразования и квантования. Заданный CU, имеющий один или несколько PU, может также включать в себя один или несколько элементов (TU) преобразования. Вслед за прогнозированием, видеокодер 20 может вычислять остаточные величины, соответствующие PU. Остаточные величины содержат величины разницы пикселов, которые могут быть преобразованы в коэффициенты преобразования, квантованы и сканированы с использованием TU для произведения упорядоченных коэффициентов преобразования для статистического кодирования. Настоящее изобретение обычно использует термин «видеоблок» для ссылки на узел кодирования CU. В некоторых конкретных случаях, настоящее изобретение может также использовать термин «видеоблок» для ссылки на древовидный блок, то есть, LCU или CU, который включает в себя узел кодирования, PU и TU.
Видеопоследовательность обычно включает в себя последовательность видеокадров или изображений. Группа (GOP) изображений, в общем, содержит последовательность одного или нескольких видеоизображений. GOP может включать в себя синтаксические данные в заголовке GOP, заголовке одного или нескольких изображений или еще где-либо, которые описывают число изображений, включенных в GOP. Каждая серия изображения может включать в себя синтаксические данные серии, которые описывают режим кодирования для соответствующей серии. Видеокодер 20, как правило, функционирует на видеоблоках внутри отдельных видеосерий, чтобы кодировать видеоданные. Видеоблок может соответствовать узлу кодирования внутри CU. Видеоблоки могут иметь фиксированные или изменяемые размеры и могут отличаться в размерах в соответствии с конкретным стандартом кодирования.
В качестве примера, НМ поддерживает прогнозирование в различных размерах PU. Предполагая, что размер конкретного CU равен 2N×2N, НМ поддерживает внутреннее прогнозирование в размерах PU 2N×2N или N×N, и внешнее прогнозирование в симметричных размерах PU 2N×2N, 2N×N, N×2N или N×N. НМ также поддерживает асимметричное разделение для внешнего прогнозирования в размерах PU 2N×nU, 2N×nD, nL×2N и nR×2N. В асимметричном разделении, одно направление CU не разделяется, в то время как другое направление разделяется на 25% и 75%. Часть CU, соответствующая 25% разделению, указывается «n», за которым следует указание «Вверх», «Вниз», «Влево» или «Вправо». Таким образом, например, «2N×nU» относится к 2N×2N CU, который разделен горизонтально с 2N×0,5N PU сверху и 2N×1,5N PU снизу.
В настоящем изобретении, «N×N» и «N на N» могут быть использованы взаимозаменяемо для ссылки на размеры пикселов видеоблока с учетом вертикальных и горизонтальных размеров, например, 16×16 или 16 на 16 пикселов. В общем, блок 16×16 будет иметь 16 пикселов в вертикальном направлении (у=16) и 16 пикселов в горизонтальном направлении (х=16). Подобным образом, блок N×N будет иметь N пикселов в вертикальном направлении и N пикселов в горизонтальном направлении, где N представляет собой неотрицательную целую величину. Пикселы в блоке могут быть расположены в строках и столбцах. Более того, блоки необязательно должны иметь одинаковое число пикселов в горизонтальном направлении и вертикальном направлении. Например, блоки могут содержать N×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) с переменной длиной кодового слова, контекстно-зависимым адаптивным двоичным арифметическим кодированием (CAВАC), синтаксическим контекстно-зависимым адаптивным двоичным арифметическим кодированием (SBAC), статистическим кодированием (PIPE) с разделением интервала вероятности или другой методологией статистического кодирования. Видеокодер 20 может также статистически кодировать синтаксические элементы, связанные с закодированными видеоданными для использования видеодекодером 30 при декодировании видеоданных.
Для выполнения САВАС, видеокодер 20 может назначать контекст внутри контекстной модели символу, который будет передан. Контекст может относиться, например, к тому, являются ли соседние символу величины ненулевыми или нет. Для выполнения CAVLC, видеокодер 20 может выбирать переменную длину кода для символа, который будет передан. Кодовые слова в VLC могут быть построены так, что относительно более короткие коды соответствуют более вероятным символам, в то время как более длинные коды соответствуют менее вероятным символам. Таким образом, использование VLC может добиться сохранения битов по сравнению, например, с использованием кодовых слов одинаковой длины для каждого символа, который будет передан. Определение вероятности может быть основано на контексте, назначенном символу.
Видеокодер 20 может осуществлять любой или все способы настоящего изобретения для понижающей дискретизации и сигнализации матриц квантования в процессе видеокодирования. Подобным образом, видеодекодер 30 может осуществлять любой или все способы для повышающей дискретизации матриц квантования в процессе видеокодирования. Видеокодер, как описано в настоящем изобретении, может относиться к видеокодеру или видеодекодеру. Подобным образом, элемент кодирования видеосигнала может относиться к видеокодеру или видеодекодеру. Подобным образом, кодирование видеосигнала может относиться к кодированию видеосигнала или декодированию видеосигнала.
В одном примере настоящего изобретения, видеокодер 20 может быть выполнен с возможностью формировать матрицу квантования, которая включает в себя множество величин, осуществлять понижающую дискретизацию первой группы величин в матрице квантования с помощью первого коэффициента понижающей дискретизации для формирования первой группы подвергнутых понижающей дискретизации величин, осуществлять понижающую дискретизацию второй группы величин в матрице квантования с помощью второго коэффициента понижающей дискретизации для формирования второй группы подвергнутых понижающей дискретизации величин, и формировать закодированный поток двоичных данных, который включает в себя первую группу подвергнутых понижающей дискретизации величин и вторую группу подвергнутых понижающей дискретизации величин. В некоторых примерах, коэффициент понижающей дискретизации может быть равен одному, и в этом случае величины кодируются напрямую без понижающей дискретизации.
В другом примере настоящего изобретения, видеодекодер 30 может быть выполнен с возможностью принимать матрицу квантования, закодированную с помощью подвергнутых понижающей дискретизации величин в закодированном потоке двоичных данных, осуществлять повышающую дискретизацию первой группы подвергнутых понижающей дискретизации величин в матрице квантования с помощью первого коэффициента повышающей дискретизации для формирования первой группы величин, осуществлять повышающую дискретизацию второй группы подвергнутых понижающей дискретизации величин в матрице квантования с помощью второго коэффициента повышающей дискретизации для формирования второй группы величин, и обратно квантовать блок коэффициентов преобразования с помощью первой и второй группы величин. В некоторых примерах, коэффициент повышающей дискретизации может быть равен одному, и в этом случае величины кодируются напрямую без повышающей дискретизации.
Фиг. 2 является блочной диаграммой, изображающей пример видеокодера 20, который может осуществлять способы, описанные в настоящем изобретении. Видеокодер 20 может выполнять внутреннее и внешнее кодирование видеоблоков внутри видеосерий. Внутреннее кодирование полагается на пространственное прогнозирование для сокращения или устранения пространственной избыточности в видеосигнале внутри заданного видеокадра или изображения. Внешнее кодирование полагается на временное прогнозирование для сокращения или устранения временной избыточности в видеосигнале внутри соседних кадров или изображений в видеопоследовательности. Внутренний режим (I-режим) может относиться к любому из нескольких пространственных режимов сжатия. Внешние режимы, как, например, однонаправленное прогнозирование (Р-режим) или би-прогнозирование (В-режим), могут относиться к любому из нескольких временных режимов сжатия.
В одном примере на Фиг. 2, видеокодер 20 включает в себя элемент 25 разделения, обрабатывающий элемент 41 прогнозирования, память 64 опорных изображений, сумматор 50, обрабатывающий элемент 52 преобразования, элемент 54 квантования и элемент 56 статистического кодирования. Элемент 41 прогнозирования включает в себя элемент 42 оценки движения, элемент 44 компенсации движения и обрабатывающий элемент 46 внутреннего прогнозирования. Для восстановления видеоблока, видеокодер 20 также включает в себя элемент 58 обратного квантования, обрабатывающий элемент 60 обратного преобразования и сумматор 62. Деблочный фильтр (не изображен на Фиг. 2) может также быть включен для фильтрации границ блока для устранения блочных искажений из восстановленного видеосигнала. Если желательно, то деблочный фильтр будет фильтровать вывод сумматора 62. Дополнительные циклические фильтры (в цикле или пост-цикле) также могут быть использованы в дополнение к деблочному фильтру.
Как изображено на Фиг. 2, видеокодер 20 принимает видеоданные, и элемент 35 разделения разделяет данные на видеоблоки. Это разделение может также включать в себя разделение на серии, фрагменты или другие большие элементы, и также разделение видеоблока, например, в соответствии со структурой дерева квадратов LCU и CU. Видеокодер 20, в общем, иллюстрирует компоненты, которые кодируют видеоблоки внутри видеосерии, подлежащей кодированию. Эта серия может быть разделена на множество видеоблоков (и, возможно, на группы видеоблоков, называемые фрагментами). Обрабатывающий элемент 41 прогнозирования может выбирать один из множества возможных режимов кодирования, как, например, один из множества режимов внутреннего кодирования или один из множества режимов внешнего кодирования, для текущего видеоблока на основании результатов ошибки (например, скорость кодирования или уровень искажения). Обрабатывающий элемент 41 прогнозирования может обеспечивать результирующий блок, закодированный во внутреннем или внешнем режиме, сумматору 50 для формирования блока остаточных данных и сумматору 62 для восстановления закодированного блока для использования в качестве опорного изображения.
Обрабатывающий элемент 46 внутреннего прогнозирования внутри обрабатывающего элемента 41 прогнозирования может выполнять кодирование с внутренним прогнозированием текущего видеоблока по отношению к одному или нескольким соседним блокам в том же кадре или серии, что и текущий блок, подлежащий кодированию, для обеспечения пространственного сжатия. Элемент 42 оценки движения и элемент 44 компенсации движения внутри обрабатывающего элемента 41 прогнозирования выполняют кодирование с внешним прогнозированием текущего видеоблока по отношению к одному или нескольким прогнозирующим блокам в одном или нескольких опорных изображениях для обеспечения временного сжатия.
Элемент 42 оценки движения может быть выполнен с возможностью определять режим внешнего прогнозирования для видеосерии в соответствии с заранее заданным шаблоном для видеопоследовательности. Заранее заданный шаблон может обозначать видеосерии в последовательности как Р серии, В серии или GPB серии. Элемент 42 оценки движения и элемент 44 компенсации движения могут быть высоко интегрированы, но изображены отдельно для концептуальных целей. Оценка движения, выполняемая элементом 42 оценки движения, является процессом формирования векторов движения, которые оценивают движение для видеоблоков. Вектор движения, например, может указывать расположение PU в видеоблоке внутри текущего видеокадра или изображения по отношению к прогнозирующему блоку внутри опорного изображения.
Прогнозирующий блок является блоком, который близко совпадает с PU видеоблока, который подлежит кодированию, с учетом разницы пикселов, которая может быть определена как сумма (SAD) абсолютной разницы, сумма (SSD) разницы квадратов, или с помощью других метрик разницы. В некоторых примерах, видеокодер 20 может вычислять величины для подцелочисленных положений пикселов опорных изображений, хранящихся в памяти 64 опорных изображений. Например, видеокодер 20 может интерполировать величины одной четвертой положений пикселов, одной восьмой положений пикселов или других дробных положений пикселов опорного изображения. Следовательно, элемент 42 оценки движения может выполнять поиск движения относительно полных положений пикселов и дробных положений пикселов и выводить вектор движения с точностью до дробных пикселов.
Элемент 42 оценки движения вычисляет вектор движения для PU видеоблока в серии, кодируемой во внешнем режиме, путем сравнения положения PU с положением прогнозирующего блока опорного изображения. Опорное изображение может быть выбрано из первого списка (Список 0) опорных изображений или второго списка (Список 1) опорных изображений, каждый из которых идентифицирует одно или несколько опорных изображений, хранящихся в памяти 64 опорных изображений. Элемент 42 оценки движения отправляет вычисленный вектор движения элементу 56 статистического кодирования и элементу 44 компенсации движения.
Компенсация движения, выполняемая элементом 44 компенсации движения, может включать получение или формирование прогнозирующего блока на основании вектора движения, определенного оценкой движения, возможное выполнение интерполяций с точностью до суб-пикселов. После приема вектора движения для PU текущего видеоблока, элемент 44 компенсации движения может располагать прогнозирующий блок, на который указывает вектор движения, в одном из списков опорных изображений. Видеокодер 20 формирует остаточный видеоблок путем выделения величин пикселов прогнозирующего блока из величин пикселов текущего видеоблока, который кодируется, формируя величины разницы пикселов. Величины разницы пикселов формируют остаточные данные для блока и могут включать в себя компоненты разницы яркости и цветности. Сумматор 50 представляет собой компонент или компоненты, которые выполняют эту функцию извлечения. Элемент 44 компенсации движения может также формировать синтаксические элементы, связанные с видеоблоками и видеосерией для использования видеодекодером 30 при декодировании видеоблоков видеосерии.
Обрабатывающий элемент 46 внутреннего прогнозирования может выполнять внутреннее прогнозирование текущего блока, в качестве альтернативы внешнему прогнозированию, выполняемому элементом 42 оценки движения и элементом 44 компенсации движения, как описано выше. Более конкретно, обрабатывающий элемент 46 внутреннего прогнозирования может определять режим внутреннего прогнозирования для использования при кодировании текущего блока. В некоторых примерах, обрабатывающий элемент 46 внутреннего прогнозирования может кодировать текущий блок с использованием различных режимов внутреннего прогнозирования, например, во время отдельных проходов кодирования, и обрабатывающий элемент 46 внутреннего прогнозирования (или элемент 40 выбора режима, в некоторых примерах) может выбирать подходящий режим внутреннего прогнозирования для использования из тестовых моделей. Например, обрабатывающий элемент 46 внутреннего прогнозирования может вычислять величины случайного искажения с использованием анализа случайного искажения для различных тестируемых режимов внутреннего прогнозирования, и выбирать режим внутреннего прогнозирования, имеющий лучшую характеристику случайного искажения среди тестируемых режимов. Анализ случайного искажения, в общем, определяет количество искажения (или ошибку) между закодированным блоком и исходным, незакодированным блоком, который был закодирован для произведения закодированного блока, а также скорость передачи (то есть, число битов), используемую для произведения закодированного блока. Обрабатывающий элемент 46 внутреннего прогнозирования может вычислять коэффициенты из искажений и скорости для различных закодированных блоков для определения того, какой из режимов внутреннего прогнозирования дает лучшую величину случайного искажения для блока.
В любом случае, после выбора режима внутреннего прогнозирования для блока, обрабатывающий элемент 46 внутреннего прогнозирования может обеспечивать информацию, указывающую на выбранный режим внутреннего прогнозирования для блока элементу 56 статистического кодирования. Элемент 56 статистического кодирования может кодировать информацию, указывающую выбранный режим внутреннего прогнозирования, в соответствии со способами настоящего изобретения. Видеокодер 20 может включать в передаваемый поток двоичных данных данные конфигурации, которые могут включать в себя множество индексных таблиц режима внутреннего прогнозирования и множество модифицированных индексных таблиц режима внутреннего прогнозирования (также называемых таблицы соответствий кодовых слов), определения контекстов кодирования для различных блоков и указания наиболее вероятного режима внутреннего прогнозирования, индексной таблицы режима внутреннего прогнозирования и модифицированной индексной таблицы режима внутреннего прогнозирования для использования для каждого из контекстов.
После того, как обрабатывающий элемент 41 прогнозирования сформирует прогнозирующий блок для текущего видеоблока с помощью внешнего прогнозирования или внутреннего прогнозирования, видеокодер 20 формирует остаточный видеоблок путем выделения прогнозирующего блока из текущего видеоблока. Остаточные видеоданные в остаточном блоке могут быть включены в один или несколько TU и применены к обрабатывающему элементу 52 преобразования. Обрабатывающий элемент 52 преобразования преобразует остаточные видеоданные в остаточные коэффициенты преобразования с использованием преобразования, как, например, дискретное косинусное преобразование (DCT) или концептуально похожее преобразование. Обрабатывающий элемент 52 преобразования переводит остаточные видеоданные из домена пикселов в домен преобразования, как, например, домен частот.
Обрабатывающий элемент 52 преобразования может отправлять получившиеся коэффициенты преобразования элементу 54 квантования. Элемент 54 квантования квантует коэффициенты преобразования для дополнительного увеличения скорости передачи. Процесс квантования может сократить битовую глубину, связанную с некоторыми или всеми коэффициентами. Степень квантования может быть модифицирована путем регулировки параметра квантования или модифицирующих величин в матрице квантования. В некоторых примерах, элемент 54 квантования может затем выполнять сканирование матрицы, включающей квантованные коэффициенты преобразования. Альтернативно, элемент 56 статистического кодирования может выполнять сканирование.
В некоторых случаях, элемент 54 квантования может выполнять функцию масштабирования пост-преобразования в дополнение к функции квантования. Функция масштабирования пост-преобразования может быть использована совместно с основной функцией преобразования, выполняемой элементом 52 преобразования, для эффективного выполнения полной функции преобразования «пространство-частота» или ее приблизительного соответствия по отношению к блоку остаточных данных. В некоторых примерах, функция масштабирования пост-преобразования может быть интегрирована с функцией квантования, чтобы функция пост-преобразования и функция квантования выполнялись как часть одной группы функций по отношению к одному или нескольким коэффициентам преобразования, которые подлежат квантованию.
В некоторых примерах, элемент 54 квантования может квантовать коэффициенты преобразования на основании матрицы квантования. Матрица квантования может включать в себя множество величин, каждая из которых соответствует соответственной величине из множества коэффициентов преобразования в блоке коэффициентов преобразования, который подлежит квантованию. Величины в матрице квантования могут быть использованы для определения количества квантования, которое будет применено элементом 54 квантования к соответствующим коэффициентам преобразования в блоке коэффициентов преобразования. Например, для каждого из коэффициентов преобразования, которые подлежат квантованию, элемент 54 квантования может квантовать соответственные коэффициенты преобразования в соответствии с количеством квантования, которое определено, по меньшей мере, частично, соответственной величиной в матрице квантования, которая соответствует коэффициенту преобразования, который подлежит квантованию.
В дополнительных примерах, элемент 54 квантования может квантовать коэффициенты преобразования на основании параметра квантования и матрицы квантования. Параметр квантования может быть параметром уровня блока (то есть, параметром, назначенным всему блоку коэффициентов преобразования), который может быть использован для определения количества квантования, которое будет применено к блоку коэффициентов преобразования. В таких примерах, величины в матрице квантования и параметр квантования могут вместе быть использованы для определения количества квантования, которое будет применено к соответствующим коэффициентам преобразования в блоке коэффициентов преобразования. Другими словами, матрица квантования может устанавливать величины, которые, вместе с параметром квантования, могут быть использованы для определения числа квантования, которое будет применено к соответствующим коэффициентам преобразования. Например, для каждого из коэффициентов преобразования, который подлежит квантованию в блоке коэффициентов преобразования, элемент 54 квантования может квантовать соответствующий коэффициент преобразования в соответствии с количеством квантования, которое определено, по меньшей мере, частично, параметром (QP) квантования уровня блока для блока коэффициентов преобразования и соответствующей из множества величин, относящихся к коэффициентам, в матрице квантования, которая соответствует коэффициенту преобразования, который подлежит квантованию. Следовательно, матрица квантования обеспечивает соответствующую величину для каждого коэффициента преобразования и применяет величину QP для определения количества квантования для величины коэффициента преобразования.
В некоторых примерах, процесс квантования может включать в себя процесс, похожий на один или несколько процессов, предложенных для HEVC и/или определенных стандартом декодирования Н.264. Например, чтобы квантовать величину (то есть, уровень) коэффициента преобразования, элемент 54 квантования может масштабировать коэффициент преобразования с помощью соответствующей величины в матрице квантования и величины масштабирования пост-преобразования. Элемент 54 квантования может затем менять масштабированный коэффициент преобразования на количество, которое основано на параметре квантования. В некоторых случаях, величина масштабирования пост-преобразования может быть выбрана на основании параметра квантования. Другие способы квантования могут также быть использованы.
Элемент 54 квантования может, в некоторых случаях, приводить к тому, что данные, указывающие на матрицу квантования, используемую элементом 54 квантования для квантования коэффициентов преобразования, будут включены в закодированный поток двоичных. Например, элемент 54 квантования может обеспечивать данные, указывающие на матрицу квантования, элементу 56 статистического кодирования для статистического кодирования данных и последующего размещения в закодированном потоке двоичных данных.
Данные матрицы квантования, включенные в закодированный поток двоичных данных, могут быть использованы видеодекодером 30 для декодирования потока двоичных данных (например, для выполнения функции обратного квантования). В некоторых примерах, данные могут быть индексной величиной, которая идентифицирует заранее заданную матрицу квантования из группы матриц квантования, либо может идентифицировать функцию для формирования матрицы квантования. В дополнительных примерах, данные могут включать в себя актуальные величины, содержащиеся в матрице квантования. В дополнительных примерах, данные могут включать в себя закодированную версию актуальных величин, содержащихся в матрице квантования. Например, закодированная версия матрицы квантования может включать в себя подвергнутые понижающей дискретизации величины для конкретных местоположений в матрице квантования. В другом примере, закодированная версия может быть сформирована на основании прогноза, как описано более подробно далее в настоящем изобретении. В некоторых примерах, данные могут принимать форму одного или нескольких синтаксических элементов, которые устанавливают матрицу квантования, используемую элементом 54 квантования для квантования блока коэффициентов преобразования, соответствующего видеоблоку, который подлежит кодированию, и элемент 54 квантования может приводить к включению одного или нескольких синтаксических элементов в заголовок закодированного видеоблока.
В предыдущих стандартах, как, например, MPEG-2 и AVC/H.264, матрицы квантования, как описано выше, использовались для улучшения субъективного качества. Матрицы квантования также являются частью стандарта HEVC.
В НМ5.1, возможны размеры преобразования 4×4, 8×8, 16×16 и 32×32. Преобразование 32×32 может быть использовано для яркости и, возможно, только для яркости (то есть, возможно, не для компонентов цветности). Оно может подходить для общего числа 20 матриц квантования (то есть, отдельная матрица квантования для блоков со внутренним и внешним прогнозированием 4×4, 8×8, 16×16 для компонентов Y, U и V, а также 32×32 для блоков со внутренним и внешним прогнозированием для компонента Y). Таким образом, возможно, что кодер будет сигнализировать 4064 величины матриц квантования, чтобы сигнализировать все возможные комбинации. В некоторых примерах, зигзагообразное сканирование входов матриц квантования, вслед за первым порядком прогнозирования (например, дифференциальное кодирование) и экспоненциальным кодированием Голомба (с параметром = 0), может быть использовано для сжатия без потерь матриц квантования. Однако лучшие способы сжатия могут быть желательны в HEVC вследствие большого числа коэффициентов матриц квантования.
Матрицы квантования, как правило, предназначены для получения преимущества от визуальной системы (HVS) человека. Визуальная система человека обычно менее чувствительна к ошибкам квантования на высоких частотах. Одной причиной этому является то, что функция (CSF) контрастной чувствительности визуальной системы человека уменьшается по мере увеличения частоты, как в горизонтальном, так и вертикальном направлениях. Следовательно, для хорошо продуманных матриц квантования, входы матрицы увеличиваются как в направлении строки (слева направо), так и в направлении столбца (сверху вниз). Более конкретно, по мере расширения блока коэффициентов преобразования из положения DC в верхнем левом (0,0) углу до высокочастотных коэффициентов в направлении нижнего правого (n,n) угла, соответствующие величины в матрице квантования, в общем, увеличиваются или, по меньшей мере, не уменьшаются.
В предыдущих способах сигнализации матриц квантования сигнализировались все величины (то есть, коэффициенты) для всей матрицы квантования. Однако сигнализация всей матрицы квантования может быть необязательной, так как некоторые коэффициенты, как, например, в направлении нижнего левого угла матрицы квантования, не вносят существенного вклада в качество видеоизображения.
В качестве примера, большие размеры блока, как, например, 32×32, обычно используются, когда остаточный блок ровный, где остаточный блок является разницей между актуальным блоком видеоданных и прогнозируемым блоком видеоданных. Ровный остаточный блок дает маленькое отклонение в величинах внутри остаточного блока. В таком случае, после квантования маловероятно, что останется много ненулевых коэффициентов на высоких частотах (то есть, по направлению к нижнему правому углу) преобразованного блока.
Статистика закодированных видеопоследовательностей поддерживает это предположение. Например, использование способа преобразования парциальной частоты (например, кодирование наименьших коэффициентов 16×16 в блоке 32×32) показывает очень малую потерю в эффективности кодирования. Это можно считать эквивалентным выбору очень высокой величины для входов матрицы квантования для частот вне участка 16×16 (например, высокие величины для коэффициентов матрицы квантования для частот вне участка 16×16). В этом примере, так как потеря в эффективности кодирования может быть очень маленькой, то не нужно будет сигнализировать все величины 32×32 матрицы квантования, всего 1024 величины, в закодированном потоке двоичных данных.
Далее описаны примеры сигнализации и кодирования матрицы квантования. Например, для сигнализации, видеокодер 20 может сигнализировать одно-битовый флаг для указания того, кодируется ли вся матрица квантования или только подгруппа матрицы квантования. Если флаг указывает, что кодируется вся матрица квантования, то может быть использован любой способ кодирования, как, например, НМ5.1, AVC/H.264, JCTVC-F085, JCTVC-E073, или способы, описанные в предварительной заявке на патент США № 61/547,647, которая включена посредством ссылки во всей полноте и описана более подробно ниже.
Если флаг указывает, что кодируется только подгруппа матрицы квантования (например, первая подгруппа), то размер подгруппы может быть закодирован как пара величин (last_row, last_col). В этом примере, предполагается, что подгруппа прямоугольная и покрывает входы матрицы квантования от положения (0,0) до положения (last_row, last_col). Однако возможно использовать другие формы. Также возможно ограничить форму до квадратной, и в таком случае нужно будет кодировать только последнюю величину, так как величины last_row, last_col будут одинаковыми. Последние величины (last_row, last_col) могут быть закодированы с фиксированным числом битов, которое может зависеть от размера матрицы квантования. Например, для матрицы квантования 32×32, последние величины могут быть закодированы с использованием 5+5=10 бит. Возможно использовать коды с переменной длиной, как, например, экспоненциальные коды Голомба или коды Голомба, для кодирования последних величин.
После кодирования последних величин (last_row, last_col), входы матрицы квантования, принадлежащие к подгруппе, могут быть закодированы (например, величины первой подгруппы). Способ НМ5.1 или любой другой способ (как, например, AVC/H.264, JCTVC-F085, JCTVC-E073, или способы, описанные в предварительной заявке на патент США № 61/547,647, поданной 11 октября 2012 года) может быть использован для кодирования входов матрицы квантования, принадлежащих к подгруппе. Кодирование может иметь или не иметь потери.
В соответствии со способами заявки на патент США № 13/649,836, видеокодер 20 и видеодекодер 30 могут выполнять растровое сканирование и способ нелинейного прогнозирующего параметра для кодирования ошибок прогнозирования величин первой подгруппы матрицы квантования. В соответствии с примером способа, прогнозирующий параметр - это максимальная из величины слева и величины сверху в первой подгруппе матрицы квантования по отношению к текущему положению сканирования в матрице квантования. Другими словами, так как матрица квантования сканируется в растровом порядке, то текущая величина в матрице квантования прогнозируется на основании максимальной величины слева от текущей величины и величины сверху от текущей величины. Растровый порядок может, в общем, относиться к порядку, в котором величины в матрице квантования сканируются в строках сверху вниз и внутри каждой строки слева направо. В общем, величины в матрице квантования будут соответствовать соответственным коэффициентам преобразования в блоке коэффициентов преобразования, где коэффициенты по направлению вверх влево низкочастотные, а коэффициенты ближе к низу и вправо увеличиваются в частоте.
После завершения кодирования входов матрицы квантования, принадлежащих к подгруппе, оставшиеся входы матрицы квантования (например, величины коэффициентов второй подгруппы) могут быть спрогнозированы из входов матрицы квантования, принадлежащих к подгруппе. Этот процесс может быть соблюден кодером и декодером. Например, если входы матрицы квантования, принадлежащие к подгруппе, были закодированы с потерями, то они восстанавливаются. Затем входы матрицы квантования вне подгруппы (например, величины коэффициентов второй подгруппы) сканируются в растровом порядке сканирования, в качестве примера, для прогнозирования величин коэффициентов второй подгруппы.
В примерах настоящего изобретения, видеокодер 20 может быть выполнен с возможностью сигнализировать величины матрицы квантования для подгруппы матрицы квантования. Например, видеокодер может разделять матрицу квантования, по меньшей мере, на первую подгруппу и вторую подгруппу величин матрицы квантования. Видеокодер может кодировать величины коэффициентов первой подгруппы и сигнализировать эти величины видеодекодеру как синтаксические элементы. Видеодекодер может декодировать величины коэффициентов первой подгруппы из принятых синтаксических элементов.
В некоторых примерах настоящего изобретения, видеодекодер 30 может прогнозировать величины второй подгруппы. Например, в некоторых примерах, видеокодер необязательно сигнализирует синтаксические элементы, которые используются для извлечения величин коэффициентов матрицы квантования второй подгруппы, чтобы видеодекодер мог прогнозировать величины второй подгруппы. Скорее, видеодекодер 30 может использовать способы настоящего изобретения для прогнозирования величин второй подгруппы без использования таких синтаксических элементов. Таким образом, количество данных, которое нужно сигнализировать для матрицы квантования, может быть сокращено.
В качестве примера, видеокодер 20 может прогнозировать величины коэффициентов для второй подгруппы величин матрицы квантования на основании декодированных величин коэффициентов первой подгруппы величин матрицы квантования, как описано более подробно ниже. В качестве другого примера, для прогнозирования величин коэффициентов для второй подгруппы величин матрицы квантования, видеодекодер 30 может назначать каждому коэффициенту во второй подгруппе постоянную величину, где постоянная величина может быть максимально разрешенной величиной матрицы квантования, в качестве неограничительного примера. В других примерах, видеокодер 20 может сигнализировать постоянную величину видеодекодеру, или, альтернативно, видеокодер 20 и видеодекодер 30 могут быть запрограммированы на постоянную величину.
Фиг. 4 является графической диаграммой, изображающей пример матрицы квантования. Фиг. 4 изображает матрицу 94 квантования, которая является матрицей квантования 32×32, используемой для квантования блока 32×32 остаточных коэффициентов преобразования. Хотя способы, относящиеся к Фиг. 4, описаны в контексте матрицы квантования 32×32, аспекты настоящего изобретения этим не ограничены и могут быть расширены до матриц квантования других размеров, включая неквадратные матрицы квантования. Матрица 94 квантования включает в себя первую подгруппу 96, которая включает в себя подгруппу величин входов матрицы 94 квантования. В этом примере, первая подгруппа 96 является матрицей 8×8 (включая величины матрицы квантования А001 в верхнем левом углу и А232 в нижнем правом углу), хотя другие размеры возможны, включая неквадратные размеры. В этом примере, величины коэффициентов во входах первой подгруппы 96 могут быть закодированы и сигнализированы видеокодером 20. Размер первой подгруппы 96 может также быть закодирован и сигнализирован. Размер может быть последней строкой и последним столбцом первой подгруппы 96, которая (7,7), предполагая, что переменная А001 расположена в (0,0) в матрице 94 квантования. Так как эта подгруппа квадратная, только одну переменную нужно сигнализировать (например, 7). Для неквадратных подгрупп, величины последней строки и последнего столбца могут быть закодированы и сигнализированы.
В некоторых примерах величины входов второй подгруппы 98 могут быть не использованы для прогнозирования величин входов второй подгруппы 98. Вторая подгруппа включает в себя величины А009, А257 и А1025 матрицы квантования, среди прочих, и обведена пунктирной линей. Овалы представляют собой дополнительные величины матрицы квантования и используются для сокращения размера чертежа. Другими словами, величины входов второй подгруппы 98 могут быть предсказаны без использования синтаксических элементов, которые вычисляются из величин коэффициентов входов второй подгруппы. В некоторых других примерах, величины входов второй подгруппы 98 могут быть определены из принятых подвергнутых понижающей дискретизации величин второй подгруппы от видеокодера, как будет описано более подробно ниже.
В некоторых примерах, величины входов второй подгруппы 98 могут быть максимальной величиной матрицы квантования, сверху от конкретной величины, или максимальной величиной матрицы квантования слева от конкретной величины. Если величины слева или сверху не существует, то предполагается, что величина слева или сверху равна нулю. Например, чтобы прогнозировать величины коэффициентов второй подгруппы матрицы квантования, видеокодер 20 или видеодекодер 30 могут настраивать величину коэффициентов для текущего входа второй подгруппы в положении [x,y] координат, чтобы она была больше величины коэффициента входа в матрице квантования, которая находится слева в положении [x-1,y] координат, и величины входа матрицы квантования, которая находится сверху в положении [x,y-1] координат (предполагая, что верхний левый угол [0,0], а нижний правый угол [n,n] в матрице квантования n на n).
В некоторых примерах, величины входов первой подгруппы 96 могут быть спрогнозированы в растровом порядке сканирования; однако, другой порядок сканирования может быть использован. В этом примере, вместо сигнализации величины матрицы квантования, сигнализируется разница между текущей величиной матрицы квантования и предыдущей величиной матрицы квантования согласно растровому порядку сканирования. Так как величины матрицы квантования, в общем, увеличиваются в горизонтальном и вертикальном направлениях, то ошибки прогнозирования (то есть, разница между текущей и предыдущей величинами матрицы квантования согласно растровому порядку сканирования) для предложенного прогнозирующего параметра (то есть, величины матрицы квантования сверху и слева) почти всегда неотрицательны. Необходимо отметить, что эта предложенная схема прогнозирования хорошо работает, когда используются асимметричные матрицы квантования, в то время как зигзагообразное сканирование не будет эффективно.
В некоторых примерах, ошибка прогнозирования кодируется с использованием кодов Голомба. Параметр кода Голомба может быть включен кодером или декодером в закодированный поток двоичных данных (с использованием кода фиксированной или переменной длины) или может быть известен кодеру и декодеру. Возможно использовать другие способы, как, например, экспоненциальное кодирование Голомба, для кодирования ошибки прогнозирования. Вследствие слегка рассредоточенной природы ошибки прогнозирования, желателен код Голомба. Чтобы закодировать случайные отрицательные величины, может быть использован способ перераспределения.
В некоторых примерах, одна или несколько прогнозируемых величин коэффициентов второй подгруппы могут быть спрогнозированы из других прогнозируемых величин коэффициентов второй подгруппы. Например, величина коэффициента входа матрицы квантования, которая также является частью второй подгруппы, может быть сверху от текущего входа второй подгруппы, и величина коэффициента входа матрицы квантования, которая также является частью второй подгруппы, может быть слева от текущего входа второй подгруппы. В этом примере, величины коэффициентов для входов, которые могут быть использованы для прогнозирования величины коэффициента текущего входа, могут быть сами прогнозируемым величинами, так как эти входы также являются частью второй подгруппы, и величины коэффициентов во второй подгруппе все могут быть прогнозированы. Видеокодер 20 и видеодекодер 30 могут использовать этот процесс для извлечения всех входов квантования, которые находятся вне подгруппы (например, во второй подгруппе). Графические диаграммы, изображающие матрицу квантования и восстановленную матрицу квантования, изображены на Фиг. 5 и 6 и описаны более подробно ниже.
Возвращаясь к Фиг. 4, в качестве примера, величина коэффициента А009 второй подгруппы 98 прогнозируется как равная коэффициенту А008 первой подгруппы 96, так как нет величины сверху от А009. Величина коэффициента А257 второй подгруппы 98 прогнозируется как равная коэффициенту А225 первой подгруппы 96, так как нет величины слева от А257. Величина коэффициента А042 второй подгруппы 98 прогнозируется как большая, чем величина коэффициента А010 и коэффициента А041, оба во второй подгруппе 98. В этом примере, величины коэффициентов А010 и А041 являются прогнозируемыми величинами, так как оба коэффициента во второй подгруппе 98.
Фиг. 5 является графической диаграммой, изображающей матрицу квантования с примерами величин, которые могут быть сигнализированы с использованием прогнозирования в соответствии со способами, описанными выше. Фиг. 6 является графической диаграммой, изображающей восстановленную матрицу квантования с использованием одного или нескольких способов настоящего изобретения. Например, для целей иллюстрации, Фиг. 5 изображает матрицу 100 квантования, которая является матрицей 8×8. В этом примере, видеокодер 20 может сигнализировать величины для первых входов 5×5 в матрице 100 квантования (изображены жирными линиями). Например, в этом примере, первая подгруппа 101 матрицы 100 квантования является первыми величинами 5×5, что означает, что, в данном примере, величины last_row и last_col каждая равны 4, если предположить нулевые индексы. Так как первая подгруппа 101 квадратная, то видеокодер 20 может сигнализировать только величину 5 (например, так как величины last_row и last_col одинаковы). Оставшиеся величины в матрице 100 квантования (то есть, вне первой подгруппы 101) считают относящимися ко второй подгруппе.
Фиг. 6 изображает восстановленную матрицу 102 квантования. В этом примере, видеодекодер 30 (или видеокодер 20 в контуре восстановления) может использовать один или несколько примеров способов для формирования восстановленной матрицы 102 квантования. Например, видеодекодер 30 и видеокодер 20 могут использовать способ определения величин второй подгруппы величин матрицы квантования путем использования максимального между левым коэффициентом и верхним коэффициентом по отношению к текущему коэффициенту.
Восстановленная матрица 102 квантования изображает результаты этого способа. Например, первые входы 5×5 в первой подгруппе 103 те же, что и первые входы 5×5 в первой подгруппе 101 в матрице 100 квантования, так как эти величины были прямо сигнализированы. Оставшиеся величины (например, величины второй подгруппы вне первой подгруппы 103) извлекают из определения максимального из коэффициентов сверху и слева по отношению к текущему коэффициенту.
В одном примере, вместо прогнозирования и растрового сканирования, описанных выше, другие сканирования и/или прогнозирование могут быть использованы. Альтернативно, входы матрицы квантования вне подгруппы (например, величины коэффициентов второй подгруппы) могут быть настроены на постоянную величину, как, например, максимально допустимая величина матрицы квантования. Такая постоянная величина может быть сигнализирована в двоичном потоке данных от видеокодера видеодекодеру, либо видеокодер и видеодекодер могут быть запрограммированы с постоянной величиной.
В некоторых примерах, видеокодер 20 может подобным образом прогнозировать величины во второй подгруппе, как это выполняется видеодекодером 30. Например, видеокодер 20 может прогнозировать величины второй подгруппы и заменять величины во второй подгруппе прогнозируемыми величинами второй подгруппы. Таким образом, матрица квантования, используемая на стороне видеокодера и стороне видеодекодера, может быть одинаковой.
В некоторых примерах кодирования видеосигнала, может быть недостаточно использовать постоянную величину для величин матрицы квантования или прогнозирование из первой подгруппы для определения входов матрицы квантования, которые не прямо сигнализированы (то есть, тех входов, которые вне прямоугольника (0,0) (last_row,last_col)), величины второй подгруппы). Далее описаны другие примеры сигнализации величин матрицы квантования, как, например, с использованием величин для другой матрицы и с использованием подвергнутых понижающей дискретизации величин для определения величин второй подгруппы.
В качестве одного примера, входы, которые не явно сигнализированы (например, величины второй подгруппы) извлекаются из другой матрицы (например, матрицы квантования меньшего размера). Эта матрица квантования меньшего размера может уже быть закодирована в двоичном потоке данных, который сигнализирует видеокодер, в качестве примера. В некоторых примерах, другая матрица может быть матрицей квантования. Видеокодер 20 может ранее сигнализировать эту другую матрицу.
Например, видеокодер может сигнализировать величины для других матриц квантования, как, например, матрицы квантования, чьи размеры включают в себя 4×4, 8×8, 16×16 или 32×32. В этом примере, видеодекодер 30 может использовать величины коэффициентов из любой из матриц квантования, которые ранее были закодированы в двоичном потоке данных, для восстановления текущей матрицы квантования. Например, предположим, что матрица квантования, которую надо восстановить, является матрицей квантования 32×32. В этом примере, видеокодер 20 может сигнализировать величины коэффициентов для первой подгруппы матрицы квантования 32×32. Предположив, что видеодекодер уже принял матрицы квантования размеров 4×4, 8×8 или 16×16, видеодекодер может использовать матрицу квантования 4×4, 8×8 или 16×16 для определения величин второй подгруппы для восстановления матрицы квантования 32×32.
В некоторых примерах, возможно использовать любую из матриц квантования 4×4, 8×8 или 16×16 для восстановления матрицы квантования 32×32. Например, для восстановления матрицы квантования 32×32, видеодекодер 30 может использовать матрицу квантования 8×8, и матрица квантования 8×8 может быть восстановленной матрицей квантования, которая использовала матрицу квантования 4×4 для восстановления. Однако такое многоуровневое восстановление матриц квантования может быть ненужным в каждом примере. Например, видеокодер 20 может сигнализировать всю матрицу квантования 8×8, которую видеодекодер 30 использует для восстановления матрицы квантования 32×32. Некоторые из величин матрицы квантования 32×32 могут быть сигнализированы, в то время как другие величины могут быть восстановлены из одной или нескольких меньших матриц.
Дополнительно, в некоторых примерах, видеокодер может сигнализировать размер меньшей матрицы (например, первую подгруппу). В другом примере, видеодекодер 30 и видеокодер 20 могут быть запрограммированы с размером меньшей матрицы (например, размер меньшей матрицы может быть известен априори видеокодеру 20 и видеодекодеру 30).
В качестве другого конкретного примера, предположим, что матрица квантования - 32×32, и last_row = 14, а last_col = 14. В этом примере, видеокодер 20 сигнализирует величины самого нижнего из входов 15×15 в матрице квантования 32х32. Предположим, что видеодекодер 30 извлекает величину для входа матрицы с индексом (r,c), где либо r>=15, либо с>=15. В этом примере, для извлечения величин матрицы квантования видеодекодер может использовать величины из другой матрицы (например, матрицы 8×8), которая может быть матрицей квантования меньшего размера.
Видеодекодер 30 может использовать различные способы для применения матрицы квантования наименьшего размера, чтобы определить величины для второй подгруппы. Например, видеодекодер может определить коэффициент отношения размера матрицы квантования и размера другой матрицы квантования меньшего размера. Видеодекодер 30 может разделить координаты местоположения для входа внутри матрицы квантования, чья величина определяется (например, величина для входа во вторую подгруппу) коэффициентом отношения, и использовать функции потолка или пола для определения соответствующих местоположений в другой матрице меньшего размера. Видеодекодер 30 может затем использовать величины в другой матрице меньшего размера, которые соответствуют идентифицированным местоположениям внутри другой матрицы меньшего размера, для определения величин во второй подгруппе в матрице квантования, которая восстанавливается.
NxN
L
H
L
H
32x32
8x8
L
L
8x8
L
L
8x8
L
Н
8x8
Н
L
8x8
Н
Н
Например, пусть Q(r,c) обозначает величину восстановленной матрицы квантования размера N×N в положении (r,c), где r- индекс строки, а с - индекс столбца. Пусть r = floor(r/4), r= ceil(r/4), c=floor(c/4) и c=ceil(c/4), где коэффициент 4 извлекается как (32/8). Здесь floor(x) указывает наибольшее целое число, меньше чем или равное х. Подобным образом, ceil(x) указывает наименьшее целое число, больше или равное х. Тогда Q(r,c) можно настраивать на Q(r,c), или она может быть настроена на среднее Q(r,c), Q(r,c), Q(r,c)и Q(r,c). Если вся матрица квантования 8×8 отправлена декодеру, то восстановленная матрица 8×8 та же, что и исходная матрица квантования 8×8. Билинейная интерполяция или другие более сложные способы интерполяции и/или более длинные фильтры интерполяции могут быть использованы. Размер матрицы, из которой извлекаются отсутствующие величины, может быть сигнализирован в потоке двоичных данных или быть известен априори видеокодеру и видеодекодеру. Величины меньшей матрицы (например, первой подгруппы) могут также быть включены в поток двоичных данных.
В AVC/H.264 используется зигзагообразное сканирование и дифференциальная импульсно-кодовая модуляция (DPCM, то есть, прогнозирование из последней величины в порядке сканирования). Затем, если величина матрицы квантования кодируется как равная нулю, это указывает, что больше никаких величин матрицы квантования не закодировано, и что последняя закодированная положительная величина матрицы квантования повторяется. В таком случае, вместо повторения последней закодированной величины матрицы квантования, оставшиеся величины матрицы квантования могут быть извлечены из матрицы квантования меньшего размера, как описано ранее.
Как описано выше, в некоторых примерах, видеодекодер 30 может определять величины второй подгруппы без приема синтаксических элементов, на основании величин второй подгруппы. Однако не в каждом примере избегание сигнализации величин матрицы квантования во второй подгруппе может быть преимущественным. То есть, сигнализация, по меньшей мере, некоторых величин матрицы квантования для высокочастотных компонентов матрицы квантования (например, во второй подгруппе величин) может обеспечить самое оптимальное соотношение между эффективностью кодирования и ошибками в восстановленной матрице квантования.
В другом примере настоящего изобретения, как описано более подробно ниже, видеокодер 20 может осуществлять понижающую дискретизацию величин подгруппы матрицы квантования и сигнализировать подвергнутые понижающей дискретизации величины. Видеодекодер может осуществлять повышающую дискретизацию подвергнутых понижающей дискретизации величин, чтобы определить величины, необходимые для восстановления матрицы квантования на стороне видеодекодера. По сравнению с исходными величинами, в подвергнутых понижающей дискретизации величинах может быть меньшее количество данных, и путем сигнализации подвергнутых понижающей дискретизации величин, количество данных, которые сигнализируются для матрицы квантования, может быть сокращено.
В одном примере понижающей дискретизации, величины вне матрицы квантования (например, от (0,0) до (last_row, last_col), то есть величины во второй подгруппе) могут подвергаться понижающей дискретизации с использованием конкретного коэффициента (например, 2), и подвергнутые понижающей дискретизации величины могут быть закодированы в потоке двоичных данных без потерь. Любой способ кодирования, как, например, описанные в AVC/H.264, JCTVC-F085, JCTVC-E073, или способы, описанные в заявке на патент США № 13/649,836, могут быть использованы для кодирования подвергнутых понижающей дискретизации величин. Понижающая дискретизация может быть выполнена с использованием усреднения (например, усреднения величин матрицы квантования в участке N×N) или использованием сложных фильтров и/или уравнений. Видеокодер 20 и видеодекодер 30 могут использовать повышающую дискретизацию закодированных величин для формирования величин вне первой подгруппы (например, величин для второй подгруппы). Способы повышающей дискретизации могут применять простое воспроизведение пикселов (то есть, с использованием подвергнутых понижающей дискретизации величин для всех координат внутри подвергнутых понижающей дискретизации участков) или более сложные способы. Например, подвергнутые понижающей дискретизации величины матрицы квантования могут быть обработаны подобно изображению с пониженным разрешением. Затем способы, известные в текущем уровне техники, выполнения повышающей дискретизации изображения, как, например, билинейная интерполяция, бикубическая интерполяция и так далее, могут быть использованы для повышающей дискретизации матрицы квантования с пониженным разрешением.
Как описано выше, видеокодер 20 может прямо сигнализировать величины коэффициентов для первой подгруппы и определять величины коэффициентов для второй подгруппы, используя форму прогнозирования. В последующем примере, вместо сигнализации величин коэффициентов для первой подгруппы и определения величин коэффициентов для второй подгруппы с помощью прогнозирования, следующие способы могут позволить видеокодеру формировать закодированный поток двоичных данных, который сигнализирует величины коэффициентов матрицы квантования с различными уровнями крупности. Например, величины коэффициентов, которые соответствуют низкочастотным компонентам матрицы квантования, могут быть сигнализированы без потерь (то есть, прямо) и другие величины коэффициентов (например, во второй подгруппе, третьей подгруппе и так далее) могут быть сигнализированы все более и более крупно (например, используя различные коэффициенты понижающей дискретизации). Величины коэффициентов, которые соответствуют низкочастотным положениям, в общем, расположены близко к начальной точке матрицы квантования (например, индексы строки и столбца для величины коэффициента близко к (0,0)). В общем, следующие способы позволяют видеокодеру применять неодинаковые количества понижающей дискретизации к величинам матрицы квантования на основании того, где расположена величина матрицы квантования в матрице квантования.
Способы данного примера могут обеспечить схему, по которой величины коэффициентов, которые расположены дальше от начальной точки матрицы квантования, округляются более крупно, чем величины коэффициентов, которые расположены ближе к начальной точке матрицы квантования. В данном примере, округленные величины матрицы квантования (например, во второй и/или третьей подгруппе или больше) могут быть закодированы в двоичном потоке данных и сигнализированы.
Однако, в некоторых альтернативных примерах, возможно использовать следующий способ для величин коэффициентов первой подгруппы, где первая подгруппа похожа на описанную выше. В этих альтернативных примерах, способы могут определять величины коэффициентов для второй подгруппы с использованием любого из вышеописанных способов.
2
4
Например, для величин матрицы квантования, расположенных в участке близко к начальной точке матрицы квантования (например, в первой подгруппе близко к (0,0)), видеокодер 20 может не применять понижающую дискретизацию (то есть, применять коэффициент 1 понижающей дискретизации). В этом участке, все величины матрицы квантования сигнализированы. Если местоположение величины коэффициента в матрице квантования дальше от начальной точки матрицы квантования (например, во второй подгруппе вне первой подгруппы), то видеокодер 20 может применять более высокий уровень понижающей дискретизации (например, применять коэффициент 2, 3, 4 понижающей дискретизации и так далее). Коэффициент понижающей дискретизации больше 1 может указывать число величин коэффициентов, которые представлены одной величиной. В качестве примера, коэффициент 2 понижающей дискретизации может означать, что величины коэффициентов 2 (то есть, 4) матрицы квантования могут быть представлены закодированной величиной, когда повторение пикселов используется для восстановления. Подобным образом, коэффициент 4 понижающей дискретизации может означать, что величины коэффициентов 2 (то есть, 16) матрицы квантования могут быть представлены закодированной величиной, когда повторение пикселов используется для восстановления.
Как описано выше, величина, вычисленная в соответствии с коэффициентом понижающей дискретизации, может быть простым средним. Например, на стороне кодера, для коэффициента 2 понижающей дискретизации, четыре величины матрицы квантования в квадрате 2×2 усредняются, и среднее значение этих четырех величин матрицы квантования сигнализируется. Подобным образом, если коэффициент понижающей дискретизации равен 4, то шестнадцать величин матрицы квантования в квадрате 4×4 усредняются, и среднее значение этих шестнадцати величин матрицы квантования сигнализируется. Другие более сложные уравнения или способы фильтрации могут быть использованы для вычисления подвергнутых понижающей дискретизации величин.
В некоторых примерах, видеокодер 20 может устанавливать точки перехода понижающей дискретизации (например, границы) внутри матрицы квантования. Величины коэффициентов, которые расположены в матрице квантования между первой точкой перехода и начальной точкой матрицы квантования, проходят понижающую дискретизацию в соответствии с первым коэффициентом понижающей дискретизации (который может быть равен одному, что означает отсутствие понижающей дискретизации), величины коэффициентов, которые расположены в матрице квантования между первой точкой перехода и второй точкой перехода, могут проходить понижающую дискретизацию с помощью второго коэффициента понижающей дискретизации, величины коэффициентов, которые расположены в матрице квантования между второй точкой перехода и третьей точкой перехода, могут проходить понижающую дискретизацию с помощью третьего коэффициента понижающей дискретизации, и так далее. В некоторых примерах, количество, на которое коэффициент понижающей дискретизации изменяется на одну точку перехода, может быть неодинаковым; хотя, аспекты настоящего изобретения этим не ограничены.
Например, в некоторых примерах, синтаксический элемент, указывающий местоположение подгрупп величин матрицы квантования, может быть не включен в поток двоичных данных. Напротив, местоположение участков известно априори видеокодеру и декодеру. Использование коэффициента 1 понижающей дискретизации может быть эквивалентно отправке всех величин, что и делается для низкочастотных величин подгруппы в предыдущем примере (например, низкочастотные величины подгруппы относятся к величинам, которые расположены близко к основанию матрицы квантования). Дополнительно, для других областей, которые используют коэффициент понижающей дискретизации больше 1, дополнительные величины матрицы квантования могут быть включены в двоичный поток данных. Один пример этого изображен на Фиг. 7 для блока 16×16.
В примере на Фиг. 7, если оба индекса строки и столбца находятся в диапазоне 0<= index <=3, то используется коэффициент 1 понижающей дискретизации в каждом направлении (то есть, нет понижающей дискретизации). Если оба индекса строки и столбца находятся в диапазоне 0<= index <=7, но при этом оба не в диапазоне 0<= index <=3, то используется коэффициент 2 понижающей дискретизации в каждом направлении (строка/столбец). Для всех оставшихся величин, используется коэффициент 4 понижающей дискретизации в каждом направлении. На Фиг. 7, одна величина матрицы квантования закодирована для каждого из перечисленных квадратов. Эта величина может быть извлечена путем простого усреднения всех величин матрицы квантования из исходной матрицы квантования 16×16, которые принадлежат соответствующему квадрату. В то время как в данном примере используется простое усреднение, также возможно использовать более сложные фильтры понижающей дискретизации. Каждый из квадратов 0-15 соответствует напрямую одной величине матрицы квантования, так как коэффициент понижающей дискретизации в этом участке равен 1. Квадраты 17-27 соответствуют блокам 2×2 величин матрицы квантования (то есть 4 величины матрицы квантования), так как коэффициент понижающей дискретизации в этом участке равен 2. Квадраты 29-39 соответствуют блокам 4×4 величин матрицы квантования (то есть 16 величин матрицы квантования), так как коэффициент понижающей дискретизации в этом участке равен 4. Числа внутри квадратов представляют собой зигзагообразный порядок сканирования, в котором кодируются величины в двоичном потоке данных.
Одна величина матрицы квантования, соответствующая каждому квадрату, может быть включена в поток двоичных данных. Это можно выполнить, используя отдельное зигзагообразное сканирование в конкретном участке для каждого коэффициента понижающей дискретизации. Например, первые квадраты 0-15, соответствующие коэффициенту 1 понижающей дискретизации, сканируются в зигзагообразном порядке. За этим следует зигзагообразное сканирование квадратов 17-27, соответствующих коэффициенту 2 понижающей дискретизации. За этим следует зигзагообразное сканирование квадратов 28-39, соответствующих коэффициенту 4 понижающей дискретизации. Если зигзагообразное сканирование для более высокого коэффициента понижающей дискретизации перемещается по области, которая была охвачена другим зигзагообразным сканированием для более низкого коэффициента понижающей дискретизации, то никакая величина не кодируется (например, если идти от квадрата 16 к квадрату 17). Однако если DPCM используется для кодирования подвергнутых понижающей дискретизации величин, то прогнозирующий параметр для следующей величины в зигзагообразном сканировании может быть извлечен из соответствующих величин матрицы квантования для более низкого коэффициента субдискретизации, которые уже закодированы в потоке двоичных данных.
Например, на Фиг. 7, рассмотрено зигзагообразное сканирование, соответствующее коэффициенту 2 субдискретизации. Зигзагообразное сканирование проходит через квадраты с индексами 16 и 17. Область между этими двумя квадратами уже была охвачена зигзагообразным сканированием, соответствующим коэффициенту 1 субдискретизации (квадраты 11-15). В таком случае, никакая величина не кодируется в двоичном потоке данных для этого участка, так как этот участок уже закодирован. Однако когда величина матрицы квантования для квадрата с индексом 17 кодируется с использованием DPCM, то величина прогнозирования извлекается из уже закодированных величин для квадратов с индексами 11, 13, 14 и 15. Эта величина матрицы квантования может быть простым средним закодированных величин, округленным до ближайшего целого.
После приема матрицы квантования с пониженным разрешением, видеодекодер 30 может декодировать величины матрицы квантования для величин коэффициентов в том же порядке, в котором они были включены в поток двоичных данных. Видеодекодер 30 может использовать простое воспроизведение для выполнения повышающей дискретизации величин матрицы квантования. То есть, все положения внутри квадрата используют одну и ту же величину матрицы квантования. Это, как правило, закодированная величина, соответствующая этому квадрату. Более сложные фильтры повышающей дискретизации могут быть также использованы.
Как описано выше для других способов, подвергнутые понижающей дискретизации величины матрицы квантования могут быть закодированы с использованием DPCM (прогнозирование из предыдущей величины в сканировании), за которым следует имеющее знак экспоненциальное кодирование Голомба. Когда величина не кодируется, так как эта область уже была охвачена зигзагообразным сканированием, соответствующим более низкому коэффициенту субдискретизации, то прогнозирование для следующей закодированной величины модифицируется, как описано выше. Любой другой способ прогнозирования и кодирования может также быть использован. Вместо 3 коэффициентов понижающей дискретизации, как изображено на Фиг. 7, меньше или больше коэффициентов понижающей дискретизации и участков могут быть использованы. Фиг. 8 изображает пример с 2 коэффициентами понижающей дискретизации для блока 8×8, где блоки 0-15 имеют коэффициент 1 понижающей дискретизации, а блоки 17-27 имеют коэффициент 2 понижающей дискретизации.
Необходимо отметить, что любой другой тип сканирования, как, например, вверх по диагонали, может быть использован. Также сканирование может идти в обратном порядке. Например, сперва величины, соответствующие коэффициенту 3 понижающей дискретизации, могут быть закодированы. За этим могут следовать величины, соответствующие коэффициенту 2 понижающей дискретизации, и так далее.
В одном конкретном примере настоящего изобретения, коэффициент DC матрицы квантования (то есть, величина матрицы квантования в положении (0,0)) является единственной величиной в первой подгруппе и проходит понижающую дискретизацию с коэффициентом 1 понижающей дискретизации (то есть, передается прямо). Все другие величины матрицы квантования в матрице квантования считаются относящимися ко второй подгруппе и проходят понижающую дискретизацию с коэффициентом 2 или больше. Фиг. 9 изображает матрицу квантования 16×16, закодированную в соответствии с этим примером. Как изображено на Фиг. 9, коэффициент DC в квадрате 0 закодирован прямо (то есть, с коэффициентом 1 понижающей дискретизации), и все другие величины матрицы квантования в матрице квантования проходят понижающую дискретизацию с коэффициентом 2. Заметьте, что квадрат 1, прошедший понижающую дискретизацию с коэффициентом 2, технически включает в себя коэффициент DC. Величина, используемая для этого конкретного блока 2×2, может быть определена как среднее трех оставшихся величин матрицы квантования (то есть, отличных от коэффициента DC), как среднее всех четырех величин матрицы квантования в участке (то есть, среднее, включая коэффициент DC), либо с использованием другого способа фильтрации.
В другом примере настоящего изобретения, для блока 32×32, могут быть использованы следующие точки перехода понижающей дискретизации. Если оба индекса строки и столбца находятся в диапазоне 0<= index <=3, то коэффициент 1 понижающей дискретизации используется в каждом направлении (то есть, нет понижающей дискретизации). Если оба индекса строки и столбца находятся в диапазоне 0<= index <=15, но при этом оба не находятся в диапазоне 0<= index <=3, то коэффициент 2 понижающей дискретизации может быть использован в каждом направлении (строка/столбец). Для всех оставшихся величин коэффициент 4 понижающей дискретизации может быть использован в каждом направлении. Точки перехода, где коэффициент понижающей дискретизации изменяет величины (например, от 1 до 2 или от 2 до 4) и актуальные коэффициенты понижающей дискретизации, могут быть включены в поток двоичных данных или могут быть известны априори видеокодеру 20 и видеодекодеру 30.
В одном примере настоящего изобретения, если используется равномерная дискретизация, то кодировать необходимо только матрицу 8×8. Для неравномерной дискретизации, кодируется больше величин матрицы квантования, и достигается более точное округление до полной матрицы квантования (32×32 или 16×16).
Для примера равномерной дискретизации, вместо кодирования матрицы квантования 16×16 или 32×32, в потоке двоичных данных кодируется матрица квантования меньшего размера (например, 8×8). Затем, когда нужно сформировать величину входа матрицы квантования для большей матрицы, может быть использована интерполяция. Если вход матрицы квантования представляет собой частоту в низкочастотной подгруппе, как, например, самые низкие частоты 8×8, то используется билинейная интерполяция для вычисления величины входа матрицы квантования для большей матрицы квантования. Для остальной области используется воспроизведение соответствующих величин из матрицы квантования меньшего размера. Вместо использования самых низких частот 8×8, может быть использована любая другая подгруппа. Дополнительно, вместо билинейной интерполяции и воспроизведения пикселов, могут быть использованы любые два способа интерполяции. Этот способ может быть дополнительно сформирован для более чем 2 участков и более чем 2 способов интерполяции.
По отношению к Фиг. 7, 8 и 9 и примерам, описанным выше, где величины коэффициентов проходят понижающую дискретизацию, другие коэффициенты понижающей дискретизации используются в других областях (то есть, представляющие другие подгруппы величин матрицы квантования). Для каждой подгруппы, одна величина матрицы квантования может быть сигнализирована для каждого блока (например, пронумерованные квадраты на Фиг. 7-9), где число величин матрицы квантования, представленное каждым блоком, определяется с помощью коэффициента понижающей дискретизации для конкретного замещения. Положение, где происходит переключение между коэффициентами понижающей дискретизации, может быть известно видеокодеру и видеодекодеру или прямо сигнализировано.
Другими словами, способы понижающей дискретизации, описанные выше, могут позволить видеокодеру 20 сигнализировать низкочастотные величины матрицы квантования без потерь (в одном примере с коэффициентом DC) и округлять другие величины матрицы квантования более и более грубо. Это поможет избежать необходимости хранить всю матрицу квантования в памяти, что может быть преимущественным для блоков размером 16×16 и 32×32 (хотя преимущества могут быть применимы также к блокам других размеров).
В соответствии со способами, описанными выше, видеокодер 20 может быть выполнен с возможностью определять матрицу квантования, которая включает в себя множество величин, осуществлять понижающую дискретизацию первой группы величин в матрице квантования с помощью первого коэффициента понижающей дискретизации для формирования первой группы подвергнутых понижающей дискретизации величин, осуществлять понижающую дискретизацию второй группы величин в матрице квантования с помощью второго коэффициента понижающей дискретизации для формирования второй группы подвергнутых понижающей дискретизации величин, и формировать закодированный поток двоичных данных, который включает в себя первую группу подвергнутых понижающей дискретизации величин и вторую группу подвергнутых понижающей дискретизации величин.
Возвращаясь к Фиг. 2, вслед за квантованием, элемент 56 статистического кодирования статистически кодирует квантованные коэффициенты преобразования. Например, элемент 56 статистического кодирования может выполнять контекстно-зависимое адаптивное кодирование (CAVLC) с переменной длиной кодового слова, контекстно-зависимое адаптивное двоичное арифметическое кодирование (CAВАC), синтаксическое контекстно-зависимое адаптивное двоичное арифметическое кодирование (SBAC), статистическое кодированием (PIPE) с разделением интервала вероятности или другую методологию или способ статистического кодирования. Вслед за статистическим кодированием элементом 56 статистического кодирования, закодированный поток двоичных данных может быть передан видеодекодеру 30 или заархивирован для более поздней передачи или извлечения видеодекодером 30. Элемент 56 статистического кодирования может также статистически кодировать векторы движения и другие синтаксические элементы для текущей видеосерии, которая кодируется.
В других примерах, элемент 56 статистического кодирования может быть выполнен с возможностью выполнять способы настоящего изобретения. Однако аспекты настоящего изобретения этим не ограничены. В альтернативных примерах, другому элементу видеокодера 20, как, например, элементу обработки, или любому другому элементу видеокодера 20, может быть поручено выполнение способов настоящего изобретения. В качестве примера, элемент 56 статистического кодирования может быть выполнен с возможностью кодировать размер первой подгруппы матрицы квантования, кодировать величины коэффициентов первой подгруппы и прогнозировать величины коэффициентов второй подгруппы матрицы квантования. Также, в некоторых примерах, способы настоящего изобретения могут быть разделены среди одного или нескольких элементов видеокодера 20.
Элемент 58 обратного квантования и обрабатывающий элемент 60 обратного преобразования применяют обратное квантование и обратное преобразование, соответственно, для восстановления остаточного блока в домене пикселов для дальнейшего использования в качестве опорного блока опорного изображения. Элемент 44 компенсации движения может вычислять опорный блок путем добавления остаточного блока к прогнозирующему блоку одного из опорных изображений внутри одного из списков опорных изображений. Элемент 44 компенсации движения может применять также один или несколько фильтров интерполяции к восстановленному остаточному блоку для вычисления подцелочисленных величин пикселов для использования при оценке движения. Сумматор 62 добавляет восстановленный остаточный блок к блоку прогнозирования с компенсированным движением, произведенным элементом 44 компенсации движения, для произведения опорного блока для хранения в памяти 64 опорных изображений. Опорный блок может быть использован элементом 42 оценки движения и элементом 44 компенсации движения в качестве опорного блока для внешнего прогнозирования блока в последующем видеокадре или изображении.
Фиг. 3 является блочной диаграммой, изображающей пример видеодекодера 30, который может осуществлять способы, описанные в настоящем изобретении. В примере на Фиг. 3, видеодекодер 30 включает в себя элемент 80 статистического декодирования, обрабатывающий элемент 81 прогнозирования, элемент 86 обратного квантования, элемент 88 обратного преобразования, сумматор 90 и память 92 опорных изображений. Обрабатывающий элемент 81 прогнозирования включает в себя элемент 82 компенсации движения и обрабатывающий элемент 84 внутреннего прогнозирования. Видеодекодер 30 может, в некоторых примерах, выполнять проход декодирования, в общем, противоположный проходу кодирования, описанному по отношению к видеокодеру 20 на Фиг. 2.
Во время процесса декодирования, видеодекодер 30 принимает закодированный видеопоток двоичных данных, который представляет собой видеоблоки закодированной видеосерии и связанных синтаксических элементов, от видеокодера 20. Элемент 80 статистического декодирования видеодекодера 30 статистически декодирует поток двоичных данных для формирования квантованных коэффициентов, векторов движения и других синтаксических элементов. Элемент 80 статистического декодирования направляет векторы движения и другие синтаксические элементы обрабатывающему элементу 81 прогнозирования. Видеодекодер 30 может принимать синтаксические элементы на уровне видеосерии и/или уровне видеоблока.
В некоторых примерах, элемент 80 статистического декодирования может быть выполнен с возможностью выполнять способы настоящего изобретения. Однако аспекты настоящего изобретения этим не ограничены. В альтернативных примерах, другому элементу видеодекодера 30, как, например, элементу обработки или любому другому элементу видеодекодера 30, может быть поручено выполнения способов настоящего изобретения. В качестве примера, элемент 80 статистического декодирования может быть выполнен с возможностью декодировать размер первой подгруппы матрицы квантования, декодировать величины коэффициентов первой подгруппы и прогнозировать величины коэффициентов второй подгруппы матрицы квантования. Также, в некоторых примерах, способы настоящего изобретения могут быть разделены среди одного или нескольких элементов видеодекодера 30.
Когда видеосерия закодирована как серия с внутренним (I) кодированием, то обрабатывающий элемент 84 внутреннего прогнозирования обрабатывающего элемента 81 прогнозирования может формировать данные для видеоблока текущей видеосерии на основании сигнализированного режима внутреннего прогнозирования и данных от ранее декодированных блоков текущего кадра или изображения. Когда видеокадр закодирован как серия с внешним (то есть, В, Р или GPB) кодированием, то элемент 82 компенсации движения обрабатывающего элемента 81 прогнозирования производит прогнозирующие блоки для видеоблока текущей видеосерии на основании векторов движения и других синтаксических элементов, принятых от элемента 80 статистического декодирования. Прогнозирующие блоки могут быть произведены из одного из опорных изображений внутри одного из списков опорных изображений. Видеодекодер 30 может создавать списки опорных кадров, Список 0 и Список 1, используя установленные по умолчанию способы создания, на основании опорных изображений, хранящихся в памяти 92 опорных изображений.
Элемент 82 компенсации движения определяет информацию прогнозирования для видеоблока текущей видеосерии путем синтаксического разбора векторов движения и других синтаксических элементов и использует информацию прогнозирования для произведения прогнозирующих блоков для текущего видеоблока, который декодируется. Например, элемент 82 компенсации движения использует часть принятых синтаксических элементов для определения режима прогнозирования (например, внутреннее или внешнее прогнозирование), используемого для кодирования видеоблоков в видеосерии, типа серии с внешним прогнозированием (например, В серия, Р серия или GPB серия), информации создания для одного или нескольких списков опорных изображений для серии, векторов движения для каждого видеоблока серии с внешним кодированием, статуса внешнего прогнозирования для каждого видеоблока серии с внешним кодированием и другой информации для декодирования видеоблоков в текущей видеосерии.
Элемент 82 компенсации движения может также выполнять интерполяцию на основании фильтров интерполяции. Элемент 82 компенсации движения может использовать фильтры интерполяции так же, как и видеокодер 20 во время кодирования видеоблоков для вычисления интерполяционных величин для подцелочисленных пикселов опорных блоков. В этом случае, элемент 82 компенсации движения может определять фильтры интерполяции, используемые видеокодером 20, из принятых синтаксических элементов, и использовать фильтры интерполяции для производства прогнозирующих блоков.
Элемент 86 обратного квантования квантует обратно, то есть, де-квантует, квантованные коэффициенты преобразования, обеспеченные в потоке двоичных данных и декодированные элементом 80 статистического декодирования. Процесс обратного квантования может включать в себя использование параметра квантования и/или матрицы квантования, вычисленных и сигнализированных видеокодером 20 для каждого видеоблока в видеосерии, для определения степени квантования и, подобным образом, степени обратного квантования, которую следует применить. Более конкретно, элемент 86 обратного квантования может быть выполнен с возможностью декодировать принятую матрицу квантования, которая была закодирована в соответствии со способами, описанными выше. Более конкретно, видеодекодер 30 может быть выполнен с возможностью осуществлять повышающую дискретизацию принятой матрицы квантования, разрешение которой было понижено в соответствии со способами настоящего изобретения.
В одном примере настоящего изобретения, видеодекодер 30 может быть выполнен с возможностью принимать матрицу квантования, закодированную с помощью подвергнутых понижающей дискретизации величин в закодированном потоке двоичных данных, осуществлять повышающую дискретизацию первой группы подвергнутых понижающей дискретизации величин в матрице квантования с помощью первого коэффициента повышающей дискретизации для формирования первой группы величин, осуществлять повышающую дискретизацию второй группы подвергнутых понижающей дискретизации величин в матрице квантования с помощью второго коэффициента повышающей дискретизации для формирования второй группы величин, и обратно квантовать блок коэффициентов преобразования с помощью первой и второй группы величин.
Обрабатывающий элемент 88 обратного преобразования применяет обратное преобразование, например, обратное DCT, обратное интегральное преобразование или концептуально похожий процесс обратного преобразования, к коэффициентам преобразования для производства остаточных блоков в домене пикселов.
После того, как элемент 82 компенсации движения сформирует прогнозирующий блок для текущего видеоблока на основании векторов движения и других синтаксических элементов, видеодекодер 30 формирует декодированный видеоблок путем суммирования остаточных блоков из обрабатывающего элемента 88 обратного преобразования с соответствующими прогнозирующими блоками, сформированными элементом 82 компенсации движения. Сумматор 90 представляет собой компонент или компоненты, которые выполняют функцию суммирования. Если желательно, то деблочный фильтр может также быть применен для фильтрации декодированных блоков, чтобы устранить блочные искажения. Другие фильтры контура (либо в контуре кодирования или после контура кодирования) могут также быть использованы на выравнивания переходов пикселов, либо для улучшения качества видеоизображения. Декодированные видеоблоки в заданном кадре или изображении затем сохраняются в памяти 92 опорных изображений, которая хранит опорные изображения, используемые для последующей компенсации движения. Память 92 опорных изображений также хранит декодированный видеосигнал для дальнейшего представления на устройстве отображения, как, например, устройство 32 отображения на Фиг. 1.
Фиг. 10 является блок-схемой, изображающей способ кодирования видеосигнала в соответствии со способами настоящего изобретения. Способ на Фиг. 10 может быть выполнен видеокодером 20. Видеокодер 20 может быть выполнен с возможностью определять матрицу квантования, которая включает в себя множество величин (920), осуществлять понижающую дискретизацию первой группы величин в матрице квантования с помощью первого коэффициента понижающей дискретизации для формирования первой группы подвергнутых понижающей дискретизации величин (922), и осуществлять понижающую дискретизацию второй группы величин в матрице квантования с помощью второго коэффициента понижающей дискретизации для формирования второй группы подвергнутых понижающей дискретизации величин (924).
В одном примере настоящего изобретения, видеокодер 20 может определять первый коэффициент понижающей дискретизации на основании местоположения первой группы величин в матрице квантования и определять второй коэффициент понижающей дискретизации на основании местоположения второй группы величин в матрице квантования. В конкретном примере, первая группа величин включает в себя только величину в местоположении (0,0) матрицы квантования, причем первый коэффициент понижающей дискретизации определяется как равный 1, и причем второй коэффициент понижающей дискретизации определяется как равный одному из 2 и 4.
Видеокодер 20 может быть выполнен с возможностью определять точки перехода в матрице квантования для определения того, как подвергнуты понижающей дискретизации величины матрицы квантования. В одном примере, видеокодер 20 может быть выполнен с возможностью определять первую точку перехода в матрице квантования, где величины, расположенные между первой точкой перехода и начальной точкой матрицы квантования, не с пониженным разрешением, определять вторую точку перехода в матрице квантования, где первая группа величин расположена между первой точкой перехода и второй точкой перехода, и определять третью точку перехода в матрице квантования, где вторая группа величин расположена между второй точкой перехода и третьей точкой перехода. Видеокодер 20 может быть выполнен с возможностью сигнализировать первую, вторую и третью точки перехода, а также первый и второй коэффициенты понижающей дискретизации в закодированном потоке двоичных данных.
В одном примере настоящего изобретения, видеокодер 20 может быть выполнен с возможностью сигнализировать подвергнутые понижающей дискретизации величины путем прогнозирования одной из подвергнутых понижающей дискретизации величин согласно порядку сканирования в первой и второй группах подвергнутых понижающей дискретизации величин из предыдущей подвергнутые понижающей дискретизации величины согласно порядку сканирования в первой и второй группах подвергнутых понижающей дискретизации величин, причем подвергнутые понижающей дискретизации величины в первой группе могут быть использованы для прогнозирования подвергнутых понижающей дискретизации величин во второй группе.
В другом примере, понижающая дискретизация первой группы величин в матрице квантования содержит усреднение первого числа величин матрицы квантования в первой группе величин для формирования величин в первой группе подвергнутых понижающей дискретизации величин, причем первое число определяется исходя из первого коэффициента понижающей дискретизации, и причем понижающая дискретизация второй группы величин в матрице квантования содержит усреднение второго числа величин матрицы квантования во второй группе величин для формирования величин во второй группе подвергнутых понижающей дискретизации величин, причем второе число определяется исходя из второго коэффициента понижающей дискретизации.
Видеокодер 20 может быть дополнительно выполнен с возможностью квантовать величины коэффициента преобразования в блоке коэффициентов преобразования в соответствии с матрицей квантования для формирования квантованных коэффициентов преобразования (926). Видеокодер 20 может быть дополнительно выполнен с возможностью формировать закодированный поток двоичных данных, который включает в себя первую группу подвергнутых понижающей дискретизации величин и вторую группу подвергнутых понижающей дискретизации величин (928).
Фиг. 11 является блок-схемой, изображающей способ декодирования видеосигнала в соответствии со способами настоящего изобретения. Способ на Фиг. 11 может быть выполнен видеодекодером 30. Видеодекодер 30 может быть выполнен с возможностью принимать матрицу квантования, закодированную с помощью подвергнутых понижающей дискретизации величин, в закодированном потоке двоичных данных (1020), осуществлять повышающую дискретизацию первой группы подвергнутых понижающей дискретизации величин в матрице квантования с помощью первого коэффициента повышающей дискретизации для формирования первой группы величин (1022), осуществлять повышающую дискретизацию второй группы подвергнутых понижающей дискретизации величин в матрице квантования с помощью второго коэффициента повышающей дискретизации для формирования второй группы величин (1024), и обратно квантовать блок коэффициентов преобразования с помощью первой и второй группы величин (1026).
В одном примере настоящего изобретения, видеодекодер 30 может быть выполнен с возможностью определять первый коэффициент повышающей дискретизации на основании местоположения первой группы подвергнутых понижающей дискретизации величин в матрице квантования и определять второй коэффициент повышающей дискретизации на основании местоположения второй группы подвергнутых понижающей дискретизации величин в матрице квантования. В конкретном примере, первая группа подвергнутых понижающей дискретизации величин включает в себя только величину в местоположении (0,0) матрицы квантования, причем первый коэффициент повышающей дискретизации определяется как равный 1, и причем второй коэффициент повышающей дискретизации определяется как равный одному из 2 и 4.
В другом примере настоящего изобретения, видеодекодер 30 может быть дополнительно выполнен с возможностью определять первую точку перехода в матрице квантования, где величины матрицы квантования, расположенные между первой точкой перехода и начальной точкой матрицы квантования, не с пониженным разрешением, определять вторую точку перехода в матрице квантования, где первая группа подвергнутых понижающей дискретизации величин в матрице квантования расположена между первой точкой перехода и второй точкой перехода, и определять третью точку перехода в матрице квантования, где вторая группа подвергнутых понижающей дискретизации величин в матрице квантования расположена между второй точкой перехода и третьей точкой перехода. В этом примере, первая, вторая и третья точки перехода, и первый и второй коэффициенты понижающей дискретизации принимаются в закодированном потоке двоичных данных.
В другом примере настоящего изобретения, видеодекодер 30 дополнительно выполнен с возможностью прогнозировать каждую последующую одну из подвергнутых понижающей дискретизации величин согласно порядку сканирования в первой и второй группах подвергнутых понижающей дискретизации величин исходя из предыдущей подвергнутой понижающей дискретизации величины согласно порядку сканирования в первой и второй группах подвергнутых понижающей дискретизации величин, причем подвергнутые понижающей дискретизации величины в первой группе могут быть использованы для прогнозирования подвергнутых понижающей дискретизации величин во второй группе.
В другом примере настоящего изобретения, повышающая дискретизация первой группы величин в матрице квантования содержит воспроизведение подвергнутые понижающей дискретизации величины в первой группе подвергнутых понижающей дискретизации величин для первого числа первой группы величин, причем первое число определяется исходя из первого коэффициента повышающей дискретизации, и повышающая дискретизация второй группы величин в матрице квантования содержит воспроизведение подвергнутые понижающей дискретизации величины во второй группе подвергнутых понижающей дискретизации величин для второго числа второй группы величин, причем второе число определяется исходя из второго коэффициента повышающей дискретизации.
В одном примере настоящего изобретения, различные способы повышающей дискретизации используются для повышения дискретизации первой и второй групп подвергнутых понижающей дискретизации величин. В конкретном примере, по меньшей мере, одна из первой и второй группы величин проходит повышающую дискретизацию с использованием билинейной интерполяции.
Видеодекодер 30 может быть дополнительно выполнен с возможностью обратно преобразовывать обратно квантованный блок коэффициентов преобразования для формирования остаточного блока видеоданных и выполнять процесс прогнозирования на остаточном блоке видеоданных для формирования декодированного блока видеоданных.
В одном или нескольких примерах, описанные функции могут быть осуществлены в технических средствах, программном обеспечении, программно-аппаратных средствах или любой их комбинации. При осуществлении в программном обеспечении, функции могут храниться или передаваться в качестве одной или нескольких команд или кодов на машиночитаемом носителе и выполняться обрабатывающим элементом на основании технических средств. Машиночитаемые носители могут включать в себя машиночитаемые запоминающие носители, которые соответствуют физическому носителю, как, например, читаемый носитель данных или средства связи, включая любой носитель, который поддерживает передачу компьютерной программы из одного места в другое, например, в соответствии с протоколом связи. В этом случае, машиночитаемые носители, в общем, могут соответствовать (1) физическим машиночитаемым запоминающим носителям, которые являются непереходными, или (2) средствам связи, как, например, сигнал или несущая волна. Запоминающие носители данных могут быть любыми доступными носителями, доступ к которым может быть осуществлен одним или несколькими компьютерами или одним или несколькими устройствами обработки для извлечения команд, кода и/или структур данных для осуществления способов, описанных в настоящем изобретении. Компьютерный программный продукт может включать в себя машиночитаемый носитель.
Для примера, но не ограничения, такие машиночитаемые запоминающие носители могут содержать RAM, ROM, EEPROM, CD-ROM или другое хранилище на оптическом диске, хранилище на магнитном диске или другие магнитные устройства хранения, флэш-память, или любой другой носитель, который может быть использован для хранения желаемого программного кода в форме команд или структур данных и доступ к которому может быть осуществлен компьютером. Также, любое соединение правильно называется машиночитаемым носителем. Например, если команды передаются с вебсайта, сервера или другого удаленного источника с использованием коаксиального кабеля, оптоволоконного кабеля, кабеля с витой парой, цифровой абонентской линии (DSL) или беспроводной технологии, как, например, инфракрасная, радио и микроволновая, то коаксиальный кабель, оптоволоконный кабель, кабель с витой парой, DSL или беспроводная технология, как, например, инфракрасная, радио или микроволновая включены в определение носителя. Необходимо понимать, однако, что машиночитаемые запоминающие носители и запоминающие носители данных не включают в себя соединения, несущие волны, сигналы или другие переходные носители, но, напротив, направлены на непереходные, физические запоминающие носители. Диск [disk] и диск [disc], как использовано в настоящем документе, включает в себя компакт-диск (CD), лазерный диск, оптический диск, универсальный цифровой диск (DVD), гибкий диск и диск Blu-ray, где диски [disks], как правило, воспроизводят данные магнитным образом, в то время как диски [discs] воспроизводят данные оптически с помощью лазера. Комбинации вышеназванного также должны быть включены в объем машиночитаемых носителей.
Команды могут быть выполнены одним или несколькими устройствами обработки, как, например, одно или несколько устройств (DSP) для цифровой обработки сигнала, микропроцессоров общего назначения, специализированные интегральные схемы (ASIC), программируемые пользователем вентильные матрицы (FPGA) или другие эквивалентные интегральные схемы или схемы с дискретной логикой. Соответственно, термин «устройство обработки», как использовано в настоящем документе, может относиться к любой из вышеуказанных структур или любой другой структуре, подходящей для осуществления способов, описанных в настоящем документе. Дополнительно, в некоторых аспектах, функциональность, описанная в настоящем документе, может быть обеспечена внутри закрепленных модулей технических средств и/или программного обеспечения, выполненных с возможностью кодировать и декодировать, или встроенных в комбинированный кодер-декодер. Также, способы могут быть полностью осуществлены в одной или нескольких схемах или логических элементах.
Способы настоящего изобретения могут быть осуществлены в широком ряде устройств или аппаратов, включая беспроводной мобильный телефон, интегральную схему (IC) или группу IC (например, набор микросхем). Различные компоненты, модули или элементы описаны в настоящем изобретении для усиления функциональных аспектов, выполненных с возможностью выполнять раскрытые способы, но не обязательно требуют реализации различными элементами технических средств. Скорее, как описано выше, различные элементы могут быть скомбинированы в аппаратном модуле кодера-декодера или обеспечены группой взаимодействующих аппаратных модулей, включая одно или несколько устройств обработки, как описано выше, совместно с подходящим программным обеспечением и/или программно-аппаратными средствами.
Описаны различные примеры. Эти и другие примеры находятся в пределах объема нижеследующей формулы изобретения.