Область техники, к которой относится изобретение
Настоящее изобретение относится к области видеокодирования и сжатия и, в частности, к способу и устройству предсказания изображений.
Уровень техники
Возможности цифрового видео могут включаться в широкий диапазон таких систем и устройств, как цифровое телевидение, цифровые системы прямого вещания, беспроводные вещательные системы, персональные цифровые помощники (personal digital assistant, PDA), переносные или настольные компьютеры, планшетные компьютеры, электронные книги, цифровые камеры, цифровые записывающие устройства, цифровые медиаплееры, игровые видеоустройства, игровые видеоконсоли, сотовые или спутниковые радиотелефоны, устройства для видеоконференций, устройства передачи видеопотока и т. п. Цифровые видеоустройства реализуют технологии видеосжатия, такие как технологии видеосжатия, описанные в стандартах, определенных в MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Часть 10: стандарт Advanced Video Coding (AVC) (усовершенствованное видеокодирование) и ITU-T H.265: стандарт High Efficiency Video Coding (HEVC) (высокоэффективное видеокодирование), и описываются в дополнениях к этим стандартам, чтобы более эффективно передавать и принимать цифровую видеоинформацию. Реализуя такие технологии видеокодирования, видеоустройства могут более эффективно передавать, принимать, кодировать, декодировать и/или хранить видеоинформацию.
Технологии видеосжатия содержат пространственное (внутрикадровое) предсказание и временное (межкадровое) предсказание, чтобы уменьшать или удалять избыточность, присущую видеопоследовательностям. Для видеокодирования на блочной основе видеосрез (то есть, видеокадр или часть видеокадра) может быть разделен на отдельные видеоблоки. Видеоблок может упоминаться как древовидный блок, блок кодирования (CU) и/или узел кодирования. Видеоблоки в срезе с внутрикадровым кодированием (I) картинки кодируются посредством пространственного предсказания по отношению к опорному образцу в соседних блоках одной и той же картинки. Видеоблоки в срезе с межкадровым (P или B) кодированием картинки могут использовать пространственное предсказание по отношению к опорному образцу в другой опорной картинке. Картинка может упоминаться как кадр и опорная картинка может упоминаться как опорный кадр.
Пространственное или временное предсказание дает в результате блок предсказания для блока, который должен быть кодирован. Избыточные Остаточные данные содержат выраженную в пикселях разность между первоначальным блоком, который должен быть кодирован, и блоком предсказания. Блок с межкадровым кодированием кодируется в соответствии с вектором движения, указывающим на блок опорных образцов, образующих блок предсказания, и остаточными данными, указывающими разность между блоком, который должен кодироваться, и блоком предсказания. Блок с внутрикадровым кодированием кодируется в соответствии с режимом внутрикадрового кодирования и остаточными данными. Для дополнительного сжатия остаточные данные могут быть преобразованы из пиксельной области в область преобразования, формируя, таким образом, коэффициенты остаточного преобразования Коэффициенты остаточного преобразования затем могут быть квантованы. Квантованные коэффициенты преобразования, которые первоначально располагаются в двумерном массиве, могут последовательно сканироваться, чтобы формировать одномерный вектор коэффициентов преобразования, и для достижения еще большего сжатия может применяться энтропийное кодирование.
Сущность изобретения
Представленное изобретение описывает способ предсказания изображений с повышенной эффективностью кодирования. В соответствии с информацией предсказания или размерами блоков соседних блоков изображения того блока изображения, который должен обрабатываться, или набором возможных режимов предсказания, отмечающих уровень области, получают режим предсказания блока изображения, который должен обрабатываться. Поскольку предшествующую информацию обеспечивают для кодирования режима предсказания, битовая скорость кодирования режима предсказания снижается, повышая, тем самым, эффективность кодирования.
В соответствии с технологией представленного изобретения, способ декодирования предсказанного изображения содержит этапы, на которых: определяют в соответствии с информацией о соседних блоках изображения, находящихся рядом с блоком изображения, который должен обрабатываться, содержит ли набор возможных режимов предсказания для блока изображения, который должен обрабатываться, режим аффинного объединения, где режим аффинного объединения указывает, что соответствующие предсказанные изображения блока изображения, который должен обрабатываться, и соседние блоки изображения того блока изображения, который должен обрабатываться, получают, используя одну и ту же аффинную модель; проводят синтаксический анализ битового потока, чтобы получить первую информацию указания; определяют в наборе возможных режимов предсказания режим предсказания для блока изображения, который должен обрабатываться, в соответствии с первой информацией указания; и определяют предсказанное изображение блока изображения, который должен обрабатываться, в соответствии с режимом предсказания.
Соседние блоки изображения того блока изображения, который должен обрабатываться, содержат по меньшей мере соседние блоки изображения сверху, слева, сверху справа, снизу слева и сверху слева от блока изображения, который должен обрабатываться.
В соответствии с технологией представленного изобретения, определение в соответствии с информацией о соседних блоках изображения, находящихся рядом с блоком изображения, который должен обрабатываться, содержит ли набор возможных режимов предсказания для блока изображения, который должен обрабатываться, режим аффинного объединения, содержит следующие реализации:
Первая реализация содержит следующее: когда режим предсказания по меньшей мере одного из соседних блоков изображения получает предсказанное изображение, используя аффинную модель, синтаксически анализируют битовый поток, чтобы получить вторую информацию указания, причем, когда вторая информация указания равна 1, набор возможных режимов предсказания содержит режим аффинного объединения; или, когда вторая информация указания равна 0, набор возможных режимов предсказания не содержит режим аффинного объединения; в противном случае, набор возможных режимов предсказания не содержит режим аффинного объединения.
Вторая реализация содержит следующее: когда режим предсказания по меньшей мере одного из соседних блоков изображения получает предсказанное изображение, используя аффинную модель, набор возможных режимов предсказания содержит режим аффинного объединения; в противном случае, набор возможных режимов предсказания не содержит режим аффинного объединения.
Третья реализация содержит следующее: информация о соседних блоках изображения является режимами предсказания соседних блоков изображения, режимы предсказания содержат по меньшей мере первый аффинный режим, в котором предсказанное изображение получают, используя первую аффинную модель, или второй аффинный режим, в котором предсказанное изображение получают, используя вторую аффинную модель, и, соответственно, режим аффинного объединения содержит по меньшей мере первый режим аффинного объединения, который объединяет первый аффинный режим, и второй режим аффинного объединения, который объединяет второй аффинный режим; и, соответственно, определение в соответствии с информацией о соседних блоках изображения, находящихся рядом с блоком изображения, который должен обрабатываться, содержит ли набор возможных режимов предсказания для блока изображения, который должен обрабатываться, режим аффинного объединения, содержит следующее: когда первый аффинный режим устанавливается первым по количеству из режимов предсказания для соседних блоков предсказания, набор возможных режимов предсказания содержит первый режим аффинного объединения и не содержит второй режим аффинного объединения; когда второй аффинный режим устанавливается первым по количеству из режимов предсказания для соседних блоков предсказания, набор возможных режимов предсказания содержит второй режим аффинного объединения и не содержит первый режим аффинного объединения; или, когда неаффинный режим устанавливается первым по количеству среди режимов предсказания для соседних блоков предсказания, набор возможных режимов предсказания не содержит режим аффинного объединения.
Третья реализация дополнительно содержит следующее: когда первый аффинный режим устанавливается первым по количеству из режимов предсказания для соседних блоков предсказания, набор возможных режимов предсказания содержит первый режим аффинного объединения и не содержит второй режим аффинного объединения; когда второй аффинный режим устанавливается первым по количеству из режимов предсказания для соседних блоков предсказания, набор возможных режимов предсказания содержит второй режим аффинного объединения и не содержит первый режим аффинного объединения; или, когда неаффинный режим устанавливается первым по количеству из режимов предсказания для соседних блоков предсказания, набор возможных режимов предсказания содержит второй режим аффинного объединения и не содержит первый режим аффинного объединения.
Четвертая реализация содержит следующее: когда режим предсказания по меньшей мере для одного из соседних блоков изображения получает предсказанное изображение, используя аффинную модель, и ширина и высота по меньшей мере одного из соседних блоков изображения, соответственно, меньше, чем ширина и высота блока изображения, который должен обрабатываться, синкаксически анализируют битовый поток, чтобы получить третью информацию указания, причем, когда третья информация указания равна 1, набор возможных режимов предсказания содержит режим аффинного объединения; или когда третья информация указания равна 0, набор возможных режимов предсказания не содержит режим аффинного объединения; в противном случае, набор возможных режимов предсказания не содержит режим аффинного объединения.
Пятая реализация содержит следующее: когда режим предсказания по меньшей мере для одного из соседних блоков изображения получает предсказанное изображение, используя аффинную модель, и ширина и высота по меньшей мере одного из соседних блоков изображения, соответственно, меньше ширины и высоты блока изображения, который должен обрабатываться, набор возможных режимов предсказания содержит режим аффинного объединения; в противном случае, набор возможных режимов предсказания не содержит режим аффинного объединения.
В соответствии с технологией представленного изобретения, способ декодирования предсказанного изображения содержит этапы, на которых: проводят синтаксический анализ битового потока для получения первой информации указания; определяют набор возможных режимов для первой области изображения, подлежащей обрабоке, в соответствии с первой информацией указания, где в случае, когда первая информация указания равна 0, набор возможных трансляционных режимов используется в качестве набора возможных режимов для первой области изображения, которая должна обрабатываться, причем трансляционный режим указывает режим предсказания, в котором предсказанное изображение получают, используя трансляционную модель; или, когда первая информация указания равна 1, набор возможных трансляционных режимов и набор аффинных режимов используются в качестве набора возможных режимов для первой области изображения, которая должна обрабатываться, где аффинный режим указывает режим предсказания, в котором предсказанное изображение получают, используя аффинную модель; проводят синтаксический анализ битового потока для получения второй информации указания; определяют в наборе возможных режимов предсказания для первой области изображения, которая должна обрабатываться, режим предсказания для блока изображения, который должен обрабатываться, в соответствии со второй информацией указания, где блок изображения, который должен обрабатываться, принадлежит к первой области изображения, которая должна обрабатываться; и определяют предсказанное изображение блока изображения, который должен обрабатываться, в соответствии с режимом предсказания.
Первая область изображения, которая должна обрабатываться, содержит одно из следующего: группа кадров изображения, кадр изображения, набор мозаичных элементов изображения, набор срезов изображения, мозаичный элемент изображения, срез изображения, набор блоков кодирования изображения или блок кодирования изображения.
В примере, способ декодирования предсказанного изображения содержит этапы, на которых: определяют в соответствии с информацией о соседних блоках изображения, находящихся рядом с блоком изображения, который должен обрабатываться, содержит ли набор возможных режимов предсказания для блока изображения, который должен обрабатываться, режим аффинного объединения, где режим аффинного объединения указывает, что соответствующие предсказанные изображения блока изображения, который должен обрабатываться, и соседние блоки изображения того блока изображения, который должен обрабатываться, получают, используя одну и ту же аффинную модель; проводят синтаксический анализ битового потока, чтобы получить первую информацию указания; определяют в наборе возможных режимов предсказания режим предсказания для блока изображения, который должен обрабатываться, в соответствии с первой информацией указания; и определяют предсказанное изображение блока изображения, который должен обрабатываться, в соответствии с режимом предсказания.
В другом примере, способ кодирования предсказанного изображения содержит этапы, на которых: определяют в соответствии с информацией о соседних блоках изображения, находящихся рядом с блоком изображения, которое должно обрабатываться, содержит ли набор возможных режимов предсказания для блока изображения, которое должен обрабатываться, режим аффинного объединения, где режим аффинного объединения указывает, что соответствующие предсказанные изображения блока изображения, который должен обрабатываться, и соседние блоки изображения блока изображения, который должен обрабатываться, получают, используя одну и ту же аффинную модель; определяют в наборе возможных режимов предсказания режим предсказания для блока изображения, который должен обрабатываться, в соответствии с режимом предсказания; и кодируют первую информацию указания в битовом потоке, где первая информация указания указывает режим предсказания.
В другом примере, способ декодирования предсказанного изображения содержит этапы, на которых: синтаксически анализируют битовый поток, чтобы получить первую информацию указания; определяют набор возможных режимов для первой области изображения, которая должна обрабатываться, соответствующей первой информации указания, где в случае, когда первая информация указания равна 0, набор возможных трансляционных режимов используется в качестве набора возможных режимов для первой области изображения, которая должна обрабатываться, где трансляционный режим указывает режим предсказания, в котором предсказанное изображение получают, используя трансляционную модель; или, когда первая информация указания равна 1, набор возможных трансляционных режимов и набор аффинных режимов используются в качестве набора возможных режимов для первой области изображения, которая должна обрабатываться, где аффинный режим указывает режим предсказания, в котором предсказанное изображение получают, используя аффинную модель; синтаксически анализируют битовый поток для получения второй информации указания; определяют в наборе возможных режимов предсказания для первой области изображения, которая должна обрабатываться, режим предсказания для блока изображения, который должен обрабатываться, в соответствии со второй информацией указания, где блок изображения, который должен обрабатываться, принадлежит к первой области изображения, которая должна обрабатываться; и определяют предсказанное изображение блока изображения, который должен обрабатываться, в соответствии с режимом предсказания.
В другом примере, способ кодирования предсказанного изображения содержит этапы, на которых: когда набор возможных трансляционных режимов используют в качестве набора возможных режимов для первой области изображения, которая должна обрабатываться, устанавливают первую информацию указания на 0 и кодируют первую информацию указания в битовом потоке, где трансляционный режим указывает режим предсказания, в котором предсказанное изображение получают, используя трансляционную модель; или, когда набор возможных трансляционных режимов и набор возможных аффинных режимов используют в качестве набора возможных режимов для первой области изображения, которая должна обрабатываться, устанавливают первую информацию указания равной 1 и кодируют первую информацию указания в битовом потоке, где аффинный режим указывает режим предсказания, в котором предсказанное изображение получают, используя аффинную модель; определяют в наборе возможных режимов предсказания для первой области изображения, которая должна обрабатываться, режим предсказания для блока изображения, который должен обрабатываться, в соответствии со второй информацией указания, где блок изображения, который должен обрабатываться, принадлежит к первой области изображения, которая должна обрабатываться; определяют предсказанное изображение блока изображения, который должен обрабатываться, в соответствии с режимом предсказания; и кодируют вторую информацию указания в битовом потоке, где вторая информация указания указывает режим предсказания.
В другом примере, устройство декодирования предсказанного изображения содержит: первый модуль определения, выполненный с возможностью определения в соответствии с информацией о соседних блоках изображения, находящихся рядом с блоком изображения, который должен обрабатываться, содержит ли набор возможных режимов предсказания для блока изображения, который должен обрабатываться, режим аффинного объединения, где режим аффинного объединения указывает, что соответствующие предсказанные изображения блока изображения, который должен обрабатываться, и соседние блоки изображения блока изображения, который должен обрабатываться, получают, используя одну и ту же аффинную модель; модуль синтаксического анализа, выполненный с возможностью синтаксического анализа битового потока, чтобы получить первую информацию указания; второй модуль определения, выполненный с возможностью определения в наборе возможных режимов предсказания режима предсказания для блока изображения, который должен обрабатываться, в соответствии с первой информацией указания; и третий модуль определения, выполненный с возможностью определения предсказанного изображения блока изображения, который должен обрабатываться, в соответствии с режимом предсказания.
В другом примере, устройство кодирования предсказанного изображения содержит: первый модуль определения, выполненный с возможностью определения в соответствии с информацией о соседних блоках изображения, находящихся рядом с блоком изображения, который должен обрабатываться, содержит ли набор возможных режимов предсказания для блока изображения, который должен обрабатываться, режим аффинного объединения, где режим аффинного объединения указывает, что соответствующие предсказанные изображения блока изображения, который должен обрабатываться, и соседние блоки изображения блока изображения, который должен обрабатываться, получают, используя одну и ту же аффинную модель; второй модуль определения, выполненный с возможностью определения в наборе возможных режимов предсказания режима предсказания для блока изображения, который должен обрабатываться; третий модуль определения, выполненный с возможностью определения предсказанного изображения блока изображения, который должен обрабатываться, в соответствии с режимом предсказания; и модуль кодирования, выполненный с возможностью кодирования первой информации указания в битовом потоке, где первая информация указания указывает режим предсказания.
В другом примере, устройство декодирования предсказанного изображения содержит: первый модуль синтаксического анализа, выполненный с возможностью синтаксического анализа битового потока, чтобы получить первую информацию указания; первый модуль определения, выполненный с возможностью определения набора возможных режимов для первой области изображения, которая должна обрабатываться, в соответствии с первой информацией указания, где в случае, когда первая информация указания равна 0, набор возможных трансляционных режимов используется в качестве набора возможных режимов для первой области изображения, которая должна обрабатываться, где трансляционный режим указывает режим предсказания, в котором предсказанное изображение получают, используя трансляционную модель; или, когда первая информация указания равна 1, набор возможных трансляционных режимов и набор возможных аффинных режимов используются в качестве набора возможных режимов для первой области изображения, которая должна обрабатываться, где аффинный режим указывает режим предсказания, в котором предсказанное изображение получают, используя аффинную модель; второй модуль синтаксического анализа, выполненный с возможностью синтаксического анализа битового потока для получения второй информации указания; второй модуль определения, выполненный с возможностью определения в наборе возможных режимов предсказания для первой области изображения, которая должна обрабатываться, режима предсказания для блока изображения, который должен обрабатываться, в соответствии со второй информацией указания, где блок изображения, который должен обрабатываться, принадлежит к первой области изображения, которая должна обрабатываться; и третий модуль определения, выполненный с возможностью определения предсказанного изображения блока изображения, который должен обрабатываться, в соответствии с режимом предсказания.
В другом примере, устройство кодирования предсказанного изображения содержит: первый модуль кодирования, выполненный с возможностью: когда набор возможных трансляционных режимов используют в качестве набора возможных режимов для первой области изображения, которая должна обрабатываться, устанавливают первую информацию указания равной 0 и кодируют первую информацию указания в битовом потоке, где трансляционный режим указывает режим предсказания, в котором предсказанное изображение получают, используя трансляционную модель; или, когда набор возможных трансляционных режимов и набор возможных аффинных режимов используют в качестве набора возможных режимов для первой области изображения, которая должна обрабатываться, устанавливают первую информацию указания равной 1 и кодируют первую информацию указания в битовом потоке, где аффинный режим указывает режим предсказания, в котором предсказанное изображение получают, используя аффинную модель; первый модуль определения, выполненный с возможностью определения в наборе возможных режимов предсказания для первой области изображения, которая должна обрабатываться, где блок изображения, который должен обрабатываться, принадлежит первой области режима предсказания для блока изображения, который должен обрабатываться, в соответствии со второй информацией указания, где блок изображения, который должен обрабатываться, принадлежит к первой области изображения, которая должна обрабатываться; второй модуль определения, выполненный с возможностью определения предсказанного изображения блока изображения, который должен обрабатываться, в соответствии с режимом предсказания; и второй модуль кодирования, выполненный с возможностью кодирования второй информации указания в битовом потоке, где вторая информация указания указывает режим предсказания.
В другом примере обеспечивают устройство декодирования видеоданных. Устройство содержит видеодекодер, выполненный с возможностью осуществления следующих операций: определение в соответствии с информацией о соседних блоках изображения, находящихся рядом с блоком изображения, который должен обрабатываться, содержит ли набор возможных режимов предсказания для блока изображения, который должен обрабатываться, режим аффинного объединения, когда режим аффинного объединения указывает, что соответствующие предсказанные изображения блока изображения, который должен обрабатываться, и соседние блоки изображения блока изображения, который должен обрабатываться, получают, используя одну и ту же аффинную модель; синтаксически анализируют битовый поток, чтобы получить первую информацию указания; определение в наборе возможных режимов предсказания режима предсказания для блока изображения, который должен обрабатываться, в соответствии с первой информацией указания; и определение предсказанного изображения блока изображения, которое должен обрабатываться, в соответствии с режимом предсказания.
В другом примере обеспечивают устройство кодирования видеоданных. Устройство содержит видеокодер, выполненный с возможностью осуществления следующих операций: определение в соответствии с информацией о соседних блоках изображения, находящихся рядом с блоком изображения, который должен обрабатываться, содержит ли набор возможных режимов предсказания для блока изображения, который должен обрабатываться, режим аффинного объединения, где режим аффинного объединения указывает, что соответствующие предсказанные изображения блока изображения, который должен обрабатываться, и соседние блоки изображения блока изображения, который должен обрабатываться, получают, используя одну и ту же аффинную модель; определение в наборе возможных режимов предсказания режима предсказания для блока изображения, который должен обрабатываться, в соответствии с режимом предсказания; и кодирование первой информации указания в битовом потоке, где первая информация указания указывает режим предсказания.
В другом примере обеспечивают устройство декодирования видеоданных. Устройство содержит видеодекодер, выполненный с возможностью осуществления следующих операций: синтаксический анализ битового потока, чтобы получить первую информацию указания; определение набора возможных режимов для первой области изображения, которая должна обрабатываться, в соответствии с первой информацией указания, где в случае, когда первая информация указания равна 0, набор возможных трансляционных режимов используется в качестве набора возможных режимов для первой области изображения, которая должна обрабатываться, где трансляционный режим указывает режим предсказания, в котором предсказанное изображение получают, используя трансляционную модель; или, когда первая информация указания равна 1, набор возможных трансляционных режимов и набор аффинных режимов используют в качестве набора возможных режимов для первой области изображения, которая должна обрабатываться, где аффинный режим указывает режим предсказания, в котором предсказанное изображение получают, используя аффинную модель; синтаксически анализируют битовый поток для получения второй информации указания; определяют в наборе возможных режимов предсказания для первой области изображения, которая должна обрабатываться, режим предсказания для блока изображения, который должен обрабатываться, в соответствии со второй информацией указания, где блок изображения, который должен обрабатываться, принадлежит к первой области изображения, которая должна обрабатываться; и определяют предсказанное изображение блока изображения, который должен обрабатываться, в соответствии с режимом предсказания.
В другом примере обеспечивают устройство кодирования видеоданных. Устройство содержит видеокодер, выполненный с возможностью осуществления следующих операций: когда набор возможных трансляционных режимов используют в качестве набора возможных режимов для первой области изображения, которая должна обрабатываться, устанавливают первую информацию указания равной 0 и кодируют первую информацию указания в битовом потоке, где трансляционный режим указывает режим предсказания, в котором предсказанное изображение получают, используя трансляционную модель; или, когда набор возможных трансляционных режимов и набор возможных аффинных режимов используют в качестве набора возможных режимов для первой области изображения, которая должна обрабатываться, устанавливают первую информацию указания равной 1 и кодируют первую информацию указания в битовом потоке, где аффинный режим указывает режим предсказания, в котором предсказанное изображение получают, используя аффинную модель; определяют в наборе возможных режимов предсказания для первой области изображения, которая должна обрабатываться, режим предсказания для блока изображения, который должен обрабатываться, в соответствии со второй информацией указания, где блок изображения, который должен обрабатываться, принадлежит к первой области изображения, которая должна обрабатываться; определяют предсказанное изображение блока изображения, который должен обрабатываться, в соответствии с режимом предсказания; и кодируют вторую информацию указания в битовом потоке, где вторая информация указания указывает режим предсказания.
В другом примере обеспечивают считываемый компьютером носитель данных. При выполнении считывания, команда заставляет один или более процессоров устройства декодирования видеоданных выполнять следующие операции: определение в соответствии с информацией о соседних блоках изображения, находящихся рядом с блоком изображения, который должен обрабатываться, содержит ли набор возможных режимов предсказания для блока изображения, который должен обрабатываться, режим аффинного объединения, где режим аффинного объединения указывает, что соответствующие предсказанные изображения блока изображения, который должен обрабатываться, и соседние блоки изображения блока изображения, который должен обрабатываться, получают, используя одну и ту же аффинную модель; синтаксический анализ битового потока, чтобы получить первую информацию указания; определение в наборе возможных режимов предсказания режима предсказания для блока изображения, который должен обрабатываться, в соответствии с первой информацией указания; и определение предсказанного изображения блока изображения, который должен обрабатываться, в соответствии с режимом предсказания.
В другом примере обеспечивают считываемый компьютером носитель данных, на котором хранятся команды. При выполнении считывания команда заставляет один или более процессоров устройства кодирования видеоданных выполнять следующие операции: определение в соответствии с информацией о соседних блоках изображения, находящихся рядом с блоком изображения, который должен обрабатываться, содержит ли набор возможных режимов предсказания для блока изображения, который должен обрабатываться, режим аффинного объединения, где режим аффинного объединения указывает, что соответствующие предсказанные изображения блока изображения, который должен обрабатываться, и соседние блоки изображения блока изображения, который должен обрабатываться, получают, используя одну и ту же аффинную модель; определение в наборе возможных режимов предсказания режима предсказания для блока изображения, который должен обрабатываться, в соответствии с режимом предсказания; и кодирование первой информации указания в битовом потоке, где первая информация указания указывает режим предсказания.
В другом примере обеспечивают считываемый компьютером носитель данных, на котором хранят команды. При выполнении считывания, команда заставляет один или более процессоров устройства декодирования видеоданных выполнять следующие операции: синтаксический анализ битового потока, чтобы получить первую информацию указания; определение набора возможных режимов для первой области изображения, которая должна обрабатываться, в соответствии с первой информацией указания, где в случае, когда первая информация указания равна 0, набора возможных трансляционных режимов, оторый используют в качестве набора возможных режимов для первой области изображения, которая должна обрабатываться, где трансляционный режим указывает режим предсказания, в котором предсказанное изображение получают, используя трансляционную модель; или, когда первая информация указания равна 1, набора возможных трансляционных режимов и набора аффинных режимов, которые используют в качестве набора возможных режимов для первой области изображения, которая должна обрабатываться, где аффинный режим указывает режим предсказания, в котором предсказанное изображение получают, используя аффинную модель; синтаксический анализ битового потока для получения второй информации указания; определение в наборе возможных режимов предсказания для первой области изображения, которая должна обрабатываться, режима предсказания для блока изображения, который должен обрабатываться, в соответствии со второй информацией указания, где блок изображения, который должен обрабатываться, принадлежит к первой области изображения, которая должна обрабатываться; и определение предсказанного изображения блока изображения, который должен обрабатываться, в соответствии с режимом предсказания.
В другом примере обеспечивают считываемый компьютером носитель данных, на котором хранятся команды. При выполнении считывания, команда заставляет один или более процессоров устройства кодирования видеоданных выполнять следующие операции: когда набор возможных трансляционных режимов используют в качестве набора возможных режимов для первой области изображения, которая должна обрабатываться, установливают первую информацию указания равной 0 и кодируют первую информацию указания в битовом потоке, где трансляционный режим указывает режим предсказания, в котором предсказанное изображение получают, используя трансляционную модель; или, когда набор возможных трансляционных режимов и набор возможных аффинных режимов используют в качестве набора возможных режимов для первой области изображения, которая должна обрабатываться, установливают первую информацию указания равной 1 и кодируют первую информацию указания в битовом потоке, где аффинный режим указывает режим предсказания, в котором предсказанное изображение получают, используя аффинную модель; определяют в наборе возможных режимов предсказания для первой области изображения, которая должна обрабатываться, режим предсказания для блока изображения, который должен обрабатываться, в соответствии со второй информацией указания, где блок изображения, который должен обрабатываться, принадлежит к первой области изображения, которая должна обрабатываться; определяют предсказанное изображение блока изображения, который должен обрабатываться, в соответствии с режимом предсказания; и кодируют вторую информацию указания в битовом потоке, где вторая информация указания указывает режим предсказания.
Краткое описание чертежей
Для более ясного описания технических решений в вариантах осуществления представленного изобретения, ниже кратко описываются сопроводительные чертежи, требующиеся для описания вариантов осуществления или предшествующего уровня техники. Как очевидно, сопроводительные чертежи в последующем описании показывают просто некоторые варианты осуществления представленного изобретения и специалисты в данной области техники, не прилагая творческих усилий, могут из этих сопроводительных чертежей дополнительно создавать другие чертежи.
Фиг. 1 – блок-схема системы видеокодирования, соответствующей варианту осуществления представленного изобретения;
Фиг. 2 – блок-схема видеокодера, соответствующего варианту осуществления представленного изобретения;
Фиг. 3 – блок-схема последовательности выполнения операций примера работы видеокодера, соответствующего варианту осуществления представленного изобретения;
Фиг. 4 – схема расположения блока, который должен обрабатываться, и реконструированных блоков, расположенных рядом с блоком, который должен обрабатываться, соответствующая варианту осуществления представленного изобретения;
Фиг. 5 – блок-схема другого видеокодера, соответствующего варианту осуществления представленного изобретения;
Фиг. 6 – блок-схема последовательности выполнения операций другого примера работы видеокодера, соответствующего варианту осуществления представленного изобретения;
Фиг. 7 – блок-схема еще одного видеокодера, соответствующего варианту осуществления представленного изобретения.
Фиг. 8 – блок-схема видеодекодера, соответствующего варианту осуществления представленного изобретения.
Фиг. 9 – блок-схема последовательности выполнения операций примера работы видеодекодера, соответствующего варианту осуществления представленного изобретения.
Фиг. 10 – блок-схема другого видеокодера, соответствующего варианту осуществления представленного изобретения.
Фиг. 11 – блок-схема последовательности выполнения операций другого примера работы видеодекодера, соответствующего варианту осуществления представленного изобретения.
Фиг. 12 – блок-схема еще одного видеодекодера, соответствующего варианту осуществления представленного изобретения.
Осуществление изобретения
Ниже ясно и полностью в виде вариантов осуществления представленного изобретения описаны технические решения со ссылкой на сопроводительные чертежи к вариантам осуществления представленного изобретения. Очевидно, что описанные варианты осуществления являются некоторой частью, а не всеми вариантами осуществления представленного изобретения. Все другие варианты осуществления, без творческих усилий полученные специалистами в данной области техники, основываясь на вариантах осуществления представленного изобретения, будут попадать в рамки объема защиты представленного изобретения.
Компенсация движения является одной из ключевых технологий видеокодирования для повышения эффективности сжатия. Традиционная компенсация движения, основанная на совпадении блоков, является способом, широко применяемым к видеокодерам основного потока и, особенно, в стандартах видеокодирования. В способе компенсации движения, основанном на совпадении блоков, блок межкадрового предсказания использует трансляционную модель движения и трансляционная модель движения предполагает, что векторы движения во всех положениях пикселей блока равны. Однако, это предположение во многих случаях является недействительным. Реально, движение объекта в видео обычно является сложной комбинацией движений, таких как трансляция (поступательное движение), вращение и изменение масштаба. Если пиксельный блок содержит такие сложные движения, предсказанный сигнал, получаемый путем использования традиционного способа компенсации движения, основанного на совпадении блоков, является неточным. Следовательно, межкадровая корреляция не может быть полностью удалена. Для решения проблемы в компенсацию движения при видеокодировании вводится модель движения высокого порядка. Модель движения высокого порядка имеет повышенную степень свободы по сравнению с трансляционной моделью движения и позволяет пикселям в блоке межкадрового предсказания иметь другие векторы движения. То есть, поле векторов движения, формируемое посредством модели движения высокого порядка, является более точным.
Описанная аффинная модель движения, основанная на точке управления, является репрезентативным типом модели движения высокого порядка. В отличие от традиционное трансляционной модели движения, значение вектора движения каждой пиксельной точки в блоке связывается с положением пиксельной точки и является линейным уравнением первого порядка положения координат. Аффинная модель движения позволяет деформационное преобразование, такое как вращение или изменение масштаба опорного блока и посредством компенсации движения может быть получен более точно предсказанный блок.
Вышеупомянутый тип межкадрового предсказания, при котором предсказанный блок получают, используя аффинную модель движения, посредством компенсации движения, обычно упоминается как аффинный режим. В существующих стандартах кодирования с видеосжатием основного потока тип межкадрового предсказания содержит два режима: режим улучшенного предсказания вектора движения (Advanced motion vector prediction, AMVP) и режим объединения (Merge). В режиме AMVP для каждого блока кодирования необходимо точно передавать направление предсказания, индекс опорного кадра и разницу между фактическим вектором движения и предсказанным вектором движения. Однако в режиме объединения информация о движении текущего блока кодирования выводится напрямую из вектора движения соседнего блока. Аффинный режим и способ межкадрового предсказания, такой как AMVP или Merge, который основан на трансляционной модели движения, могут объединяться, чтобы сформировать новый режим межкадрового предсказания, такой как AMVP или Merge, который основан на аффинной модели движения. Например, режим объединения, основанный на аффинной модели движения, может упоминаться как режим аффинного объединения (Affine Merge). В процессе выбора режима предсказания новые режимы предсказания и режимы предсказания, используемые в существующих стандартах, совместно принимают участие в процессе сравнения (отношение "цена/качества"), чтобы выбрать оптимальный режим в качестве режима предсказания и сформировать предсказанное изображение блока, который должен быть обработан. В целом, результат выбора режима предсказания кодируется и кодированный результат выбора режима предсказания передается на сторону декодирования.
Аффинный режим может лучше повышать точность предсказанного блока и повышать эффективность кодирования. Однако, с другой стороны, для аффинного режима должны использоваться более высокие битовые скорости для кодирования информации о движении точек управления, чем битовые скорости, необходимые для однородной информации о движении, основанной на трансляционной модели движения. Кроме того, поскольку количество возможных режимов предсказания увеличивается, битовые скорости, используемые для кодирования результата выбора режима предсказания, также увеличиваются. Такое дополнительное потребление битовой скорости сильно влияет на повышение эффективности кодирования.
В соответствии с техническими решениями представленного изобретения, с одной стороны, содержит ли режим аффинного объединения набор возможных режимов предсказания для блока изображений, который должен обрабатываться, определяют в соответствии с информацией о режиме предсказания или информацией о размере соседних блоков изображения блока изображения, который должен обрабатываться; битовый поток синтаксически анализируют, чтобы получить информацию указания; режим предсказания для блока изображения, который должен обрабатываться, определяют в наборе возможных режимов предсказания в соответствии с информацией указания; и предсказанное изображение блока изображения, который должен обрабатываться, определяют в соответствии с режимом предсказания. С другой стороны, синтаксически анализируют битовый поток, чтобы получить информацию указания; использует ли конкретная область набор возможных режимов предсказания, содержащий аффинный режим, определяют, используя информацию указания; режим предсказания определяют в соответствии с набором возможных режимов предсказания и другой принятой информацией указания; и предсказанное изображение формируется.
Поэтому информация о режиме предсказания или информация о размере соседних блоков изображения блока изображения, который должен обрабатываться, может использоваться в качестве предварительного знания для кодирования информации предсказания блока изображения, который должен быть обработан. Информация указания, содержащая набор возможных режимов предсказания в области, также может использоваться в качестве предварительного знания для кодирования информации предсказания блока изображения, который должен быть обработан. Предварительное знание дает указание для кодирования режима предсказания, снижает битовую скорость информации для выбора режима кодирования, повышая, тем самым, эффективность кодирования.
Кроме того, существуют многочисленные решения для повышения эффективности при кодировании информации о движении для аффинной модели, например, патентные заявки №№ CN201010247275.7, CN201410584175.1, CN201410526608.8, CN201510085362.X, PCT/CN2015/073969, CN201510249484.8, CN201510391765.7 и CN201510543542.8, которые включены сюда посредством ссылки во всей их полноте. Следует понимать, что поскольку решаемые конкретные технические проблемы различны, технические решения представленного изобретения могут применяться в описанных выше решениях, чтобы дополнительно повысить эффективность кодирования.
Дополнительно следует понимать, что аффинная модель является общим термином нетрансляционных моделей движения. Все фактические движения, содержащие вращение, изменение масштаба, деформацию, перспективу и т. п., могут использоваться для оценки движения и компенсации движения при межкадровом предсказании, устанавливая различные модели движения, и, для краткости, раздельно упоминаются как первая аффинная модель, вторая аффинная модель и т.п.
На фиг. 1 схематично показана блок-схема системы 10 видеокодирования, соответствующей варианту осуществления представленного изобретения. Как представлено в настоящем описании, термин "видеокодер", в общем смысле, относится как к видеокодеру, так и к видеодекодеру. В представленном изобретении термин "видеокодирование" или "кодирование" может, в общем смысле, относиться в видеокодированию или к видеодекодированию.
Как показано на фиг. 1, система 10 видеокодирования содержит устройство 12 источника и устройство 14 места назначения. Устройство 12 источника создает кодированные видеоданные. Поэтому устройство 12 источника может упоминаться как устройство видеокодирования или установка видеокодирования. Устройство 14 места назначения может декодировать кодированные видеоданные, сформированные устройством 12 источника. Поэтому, устройство 14 места назначения может упоминаться как устройство видеодекодирование или установка видеодекодирования. Устройство 12 источника и устройство 14 места назначения могут быть примерами устройств видеокодирования или установки видеокодирования. Устройство 12 источника и устройство 14 места назначения могут содержать широкий диапазон устройств, содержащих настольные компьютеры, мобильные компьютерные устройства, ноутбуки (например, дорожный компьютер), планшеты, телевизионные приставки, телефонные аппараты, такие как, так называемые, смартфоны, телевизоры, камеры, устройства отображения, цифровые медиаплееры, игровые видеоконсоли, автомобильные компьютеры и т.п.
Устройство 14 места назначения может принимать кодированные видеоданные от устройства 12 источника, используя канал 16. Канал 16 может содержать один или более медиаканалов и/или устройств, которые могут перемещать кодированные видеоданные от устройства 12 источника к устройству 14 места назначения. Например, канал 16 может содержать один или более медиаканалов связи, что позволяет устройству 12 источника напрямую передавать кодированные видеоданные устройству 14 места назначения в реальном времени. В этом примере устройство 12 источника может модулировать кодированные видеоданные в соответствии со стандартом связи (например, протоколом беспроводной связи) и может передавать модулированные видеоданные устройству 14 места назначения. Один или более медиаканалов связи могут содержать беспроводные и/или проводные медиаканалы связи, например, радиочастотный (RF) спектр или одну или более физических линий передачи. Один или более медиаканалов связи могут формировать часть сети на основе пакетов (например, локальная сеть, региональная сеть или глобальная сеть (такая как Интернет). Один или более медиаканалов связи могут содержать роутер, переключатель, базовую станцию или другое устройство, облегчающее связь от устройства 12 источника к устройству 14 места назначения.
В другом примере канал 16 может содержать носитель данных, на котором хранятся кодированные видеоданные, сформированные устройством 12 источника. В этом примере устройство 14 места назначения может получать доступ к носителю данных посредством доступа к диску или доступа к карте. Носитель записи может содержать множество локально доступных носителей данных, таких как диск Blu-ray, DVD, CD-ROM, флэш-память или других подходящих цифровых носителей данных для хранения кодированных видеоданных.
В другом примере канал 16 может содержать файловый сервер или другое промежуточное запоминающее устройство, которое хранит кодированные видеоданные, сформированные устройством 12 источника. В этом примере устройство 14 места назначения может получать доступ посредством потоковой передачи или загрузки кодированных видеоданных, которые хранятся на файловом сервере или в другом промежуточном запоминающем устройстве. Файловый сервер может быть типом сервера, способным хранить кодированные видеоданные и передавать кодированные видеоданные устройству 14 места назначения. Примерами файлового сервера являются веб-сервер (например, для веб-сайта), сервер протокола передачи файлов (file transfer protocol, FTP), подключенное сетевое запоминающее устройство (network attached storage, NAS) и локальный дисковод.
Устройство 14 места назначения может получать доступ к кодированным видеоданным посредством стандартного соединения для передачи данных (такого, как Интернет-соединение). Примерный тип соединения для передачи данных может содержать беспроводной канал (например, Wi-Fi-соединение), проводное соединение (например, DSL или кабельный модем) или сочетание обоих соединений, которое пригодно для получения доступа к кодированным видеоданным, хранящимся на файловом сервере. Передача кодированных видеоданных с файлового сервера может быть потоковой передачей, загрузочной передачей или сочетанием их обоих.
Технологии представленного изобретения не ограничиваются беспроводными приложениями или установками. Технологии могут применяться к видеокодированию для поддержки множества мультимедийных приложений при таких применениях, как, например, радиотелевизионное вещание, кабельное телевизионное вещание, спутниковое телевизионное вещание, потоковая видеопередача (например, через Интернет), кодирование видеоданных, хранящихся на носителе данных, декодирование видеоданных, хранящихся на носителе данных, или другое применение. В некоторых примерах система 10 видеокодирования может быть выполнена с возможностью односторонней или двухсторонней видеопередачи, с тем, чтобы поддерживать такие приложения, как видеопотоковая передача, воспроизведение видеоданных, широковещательное видео и/или видеотелефония.
В примере, показанном на фиг. 1, устройство 12 источника содержит видеоисточник 18, видеокодер 20 и выходной интерфейс 22. В некоторых примерах выходной интерфейс 22 может содержать модулятор/демодулятор (модем) и/или передатчик. Видеоисточник 18 может содержать устройство получения видеоданных (такое как видеокамера), видеоархив, содержащий ранее полученные видеоданные, интерфейс получения видео для приема видеоданных от провайдера видеоконтента и/или компьютерную графическую систему для формирования видеоданных или сочетание таких источников видеоданных.
Видеокодер 20 может кодировать видеоданные, поступающие от видеоисточника 18. В некоторых примерах устройство 12 источника напрямую передает кодированные видеоданные устройству 14 места назначения, используя выходной интерфейс 22. Альтернативно, кодированные видеоданные могут быть сохранены на носителе данных или на файловом сервере для последующего доступа устройством 14 места назначения для декодирования и/или воспроизведения.
В примере, показанном на фиг. 1, устройство 14 места назначения содержит входной интерфейс 28, видеодекодер 30 и устройство 32 отображения. В некоторых примерах входной интерфейс 28 содержит приемник и/или модем. Входной интерфейс 28 может принимать кодированные видеоданные, используя канал 16. Устройство 32 отображения может быть интегрировано с устройством 14 места назначения или может находиться отдельно от устройства 14 места назначения. В целом, устройство 32 отображения отображает декодированные видеоданные. Устройство 32 отображения может содержать множество устройств отображения, например, жидкокристаллический дисплей (liquid crystal display, LCD), плазменный дисплей, органический светодиодный (organic light emitting diode, OLED) дисплей или другой тип устройства отображения.
Видеокодер 20 и видеодекодер 30 могут действовать в соответствии со стандартом видеосжатия (таким, как стандарт высокоэффективного видеокодирования (High Efficiency Video Coding, H.265)) и могут соответствовать тестовой модели HEVC Test Model (HM). Текстовое описание ITU-T H.265 (V3)(04/2015) стандарта H.265 опубликовано 29 апреля 2015 г. и может быть загружено с http://handle.itu.int/11.1002/1000/12455. Полное содержание файла включено сюда посредством ссылки.
Альтернативно, видеокодер 20 и видеодекодер 30 могут действовать в соответствии с другими собственными или промышленными стандартами. Стандарты содержат ITU-T H.261, ISO/IECMPEG-1Visual, ITU-T H.262 или ISO/IECMPEG-2Visual, ITU-T H.263, ISO/IECMPEG-4Visual и ITU-T H.264 (дополнительно упоминается как SO/IECMPEG-4AVC) и содержат их дополнения Scalable Video Coding (SVC) (масштабируемое видеокодирование) и Multiview Video Coding (MVC) (мультипроекционное видеокодирование). Однако, технологии представленного изобретения не ограничиваются никаким частным стандартом или технологией кодирования.
Кроме того, фиг. 1 является просто примером и технологии представленного изобретения могут применяться к установке видеокодирования (например, видеокодирования или видеодекодирования), которая не обязательно содержит какую-либо передачу данных между устройством кодирования и устройством декодирования. В других примерах данные получают из локальной памяти и потоком передают по сети или управляются аналогичным способом. Устройство кодирования может кодировать данные и сохранять кодированные данные в памяти и/или устройство декодирования может получать данные из памяти и декодировать данные. Во многих примерах кодирование и декодирование выполняются многочисленными устройствами, которые не связаны друг с другом, а просто кодируют данные в память и/или получают данные из памяти и декодируют их.
Видеокодер 20 и видеодекодер 30 могут быть реализованы как любая из множества подходящих схем, таких как один или более микропроцессоров, цифровой сигнальный процессор (digital signal processor, DSP), специализированная интегральная схема (application-specific integrated circuit, ASIC), программируемая логическая интегральная схема (field-programmable gate array, FPGA), дискретная логика, аппаратные средства или любое их сочетание. Если технологии частично реализуются в программном обеспечении, устройство может хранить команду для работы программного обеспечения на соответствующем непереносном считываемом компьютером носителе данных и может выполнять команду с помощью аппаратных средств, используя один или более процессоров для выполнения технологий представленного изобретения. Все что угодно из вышеперечисленного (в том числе, аппаратные средства, программное обеспечение, сочетание аппаратных средств и программного обеспечения и т. п.) может рассматриваться как один или более процессоров. Каждый из видеокодера 20 и видеодекодера 30 может быть введен в состав одного или более кодеров или декодеров и любой видеокодер 20 или видеодекодер 30 может быть интегрирован как часть объединенного кодера/декодера (кодер и декодер (encoder и decoder (CODEC))) в соответствующем устройстве.
Представленное изобретение, в целом, может быть отнесено к видеокодеру 20 "сигнализирующему" конкретную информацию другому устройству (такому как видеодекодер 30). Термин "сигнализация", в целом, может быть отнесен к передаче синтаксического элемента и/или других данных, представляющих кодированные видеоданные. Такая передача может происходить в реальном или почти реальном времени. Альтернативно, такая передача может происходить в течение промежутка времени, например, может происходить, когда синтаксический элемент сохраняется на считываемом компьютером носителе данных в качестве кодированного битового потока во время кодирования. Синтаксический элемент может затем быть получен обратно посредством устройства декодирования в любое время после его сохранения на носителе.
Как кратко упомянуто выше, видеокодер 20 кодирует видеоданные. Видеоданные могут содержать одну или более картинок. Каждая из картинок может быть неподвижным изображением. В некоторых примерах картинка может упоминаться как "видеокадр". Видеокодер 20 может формировать битовый поток и битовый поток содержит последовательность битов, образующую кодированное представление видеоданных. Кодированное представление видеоданных может содержать кодированную картинку и сопутствующие данные. Кодированная картинка является кодированным представлением картинки. Сопутствующие данные могут содержать набор параметров последовательности (sequence parameter set, SPS), набор параметров картинки (picture parameter set, PPS) и другую синтаксическую структуру. SPS может содержать параметры, применимые к нулю или более последовательностям картинок. PPS может содержать параметры, применимые к нулю или более картинок. Синтаксическая структура может быть набором нуля или более синтаксических элементов, представленных вместе в битовом потоке в определенном порядке.
Чтобы сформировать кодированное представление картинки, видеокодер 20 может разделить картинку на части в виде сетки кодируемых древовидных блоков (coding tree block, CTB). В некоторых примерах CTB может упоминаться как "древовидный блок", "наибольший кодируемый блок" (largest coding unit, LCU) или "coding tree unit". CTB в HEVC может быть в значительной степени аналогичен макроблоку в предыдущем стандарте (таком как H.264/AVC). Однако, CTB не обязательно ограничивается конкретным размером и может содержать один или более кодируемых блоков (coding unit, CU).
Каждый из CTB может ассоциироваться с другим пиксельным блоком равного размера внутри картинки. Каждый пиксель может содержать образец яркости (яркости или сигнала яркости) и два образца цветности (цветности или сигнала цветности). Поэтому, каждый CTB может ассоциироваться с блоком образцов яркости и двумя блоками образцов цветности. Для простоты объяснения, в представленном изобретении двумерный пиксельный массив может упоминаться как пиксельный блок и двумерный массив образцов может упоминаться как блок образцов. Видеокодер 20 может посредством квадрадревовидного деления разделять пиксельный блок, связанный с CTB, на пиксельные блоки, связанные с CU, которые затем называют как "кодируемые древовидные блоки".
СТВ для картинки могут группироваться в один или более срезов. В некоторых примерах каждый из срезов содержит целое число СТВ. Как часть кодирования картинки, видеокодер 20 может формировать кодированное представление (то есть, кодированный срез) для каждого среза картинки. Чтобы сформировать кодированный срез, видеокодер 20 может кодировать каждый СТВ среза, чтобы сформировать кодированное представление (то есть, кодированный СТВ) каждого СТВ среза.
Чтобы сформировать кодированный CTB, видеокодер 20 может рекурсивно выполнять квадрадревовидное деление на пиксельном блоке, связанном с CTB, чтобы разделить пиксельный блок на прогрессивно уменьшающиеся пиксельные блоки. Каждый из более мелких пиксельных блоков может связываться c CU. Разделенный CU может быть CU, чей пиксельный блок делится на пиксельные блоки, связанные с другим CU. Неразделенный CU может быть CU, чей пиксельный блок не делится на пиксельные блоки, связанные с другим CU.
Видеокодер 20 может формировать один или более блоков предсказания (PU) для каждого неразделенного CU. Каждый из PU определенного CU может быть связан с другим пиксельным блоком в пиксельных блоках CU. Видеокодер 20 может формировать пиксельный блок предсказания для каждого PU из определенного CU. Пиксельный блок предсказания PU может быть пиксельным блоком.
Видеокодер 20 может формировать пиксельный блок предсказания для каждого из PU посредством внутрикадрового предсказания или межкадрового предсказания. Если видеокодер 20 формирует пиксельный блок предсказания для PU посредством внутрикадрового предсказания, видеокодер 20 может сформировать пиксельный блок предсказания для PU, основываясь на декодированных пикселях картинки, связанной с PU. Если видеокодер 20 формирует пиксельный блок предсказания для PU посредством межкадрового предсказания, видеокодер 20 может сформировать пиксельный блок предсказания для PU, основываясь на декодированных пикселях одной или более картинки, связанной с PU.
Видеокодер 20 может формировать остаточный пиксельный блок для CU, основываясь на прогнозируемых пиксельных блоках блоков PU блока CU. Остаточный пиксельный блок блока CU может указывать различия между образцами в прогнозируемых пиксельных блоках блоков PU блока CU и соответствующими образцами в первоначальном пиксельном блоке блока CU.
Кроме того, как часть кодирования неразделенного CU, видеокодер 20 может выполнять выполнять рекурсивное квадродревовидное разделение на остаточном пиксельном блоке блока, чтобы разделить остаточный пиксельный блок блока CU на один или более остаточных пиксельных блоков меньшего размера, связанных с блоками преобразования (transform unit, TU) блока CU. Поскольку каждый из пикселей в пиксельных блоках, связанных с блоками TU, содержит образец яркости и два образца цветности, каждый из блоков TU может быть связан с остаточным блоком образцов из образца яркости и двух остаточных блоков образцов цветности.
Видеокодер 20 может применять одно или более преобразований к остаточным блокам образцов, связанным с блоками TU, чтобы формировать блоки коэффициентов (то есть, блоки, состоящие из коэффициентов). Видеокодер 20 может выполнять процесс квантования на каждом из блоков коэффициентов. Квантование обычно относится к процессу, в котором коэффициенты квантуются, чтобы, насколько возможно, уменьшить объем данных, используемых для представления коэффициентов, выполняя, тем самым, дополнительное сжатие.
Видеокодер 20 может формировать набор синтаксических элементов, представляющих коэффициенты в квантованных блоках коэффициентов. Видеокодер 20 может применять операцию энтропийного кодирования (такую как контекстно адаптивное двоичное арифметическое кодирование (context-adaptive binary arithmetic coding, CABAC) , по меньшей мере, к некоторым из этих синтаксических элементов.
Чтобы применить кодирование CABAC к синтаксическому элементу, видеокодер 20 может перевести синтаксический элемент в двоичную форму, чтобы сформировать двоичную строку, содержащую последовательности из одного или более битов (которые упоминаются как "бины" (bin). Видеокодер 20 может кодировать некоторые из бинов с помощью регулярного кодирования CABAC и может кодировать другие бины посредством байпасного кодирования.
Когда видеокодер 20 кодирует последовательности бинов с помощью регулярного кодирования CABAC, видеокодер 20 может сначала идентифицировать контекст кодирования. Контекст кодирования может идентифицировать вероятности бинов кодирования, имеющих частные значения. Например, контекст кодирования может индицировать, что вероятность кодирования бина со значением 0 равна 0,7, а вероятность кодирования бина со значением 1 равна 0,3. После идентификации контекста кодирования видеокодер 20 может разделить интервал на нижний подинтервал и верхний подинтервал. Один из подинтервалов может быть связан со значением 0, а другой подинтервал может быть связан со значением 1. Ширина подинтервала может быть пропорциональна вероятности, указанной для соответствующего значения с помощью идентифицированного контекста кодирования.
Если бин синтаксного элемента имеет значение, связанное с нижним подинтервалом, кодированное значение может быть равно нижней границе нижнего подинтервала. Если тот же самый бин синтаксического элемента имеет значение, связанное с верхним подинтервалом, кодированное значение может быть равно нижней границе верхнего подинтервала. Для кодирования следующего бина синтаксического элемента, видеокодер 20 может повторить эти этапы в отношении интервала, внутрь которого попадает подинтервал, связанный со значением кодированного бита. Когда видеокодер 20 повторяет эти этапы для следующего бина, видеокодер 20 может использовать вероятность, которая модифицируется на основе вероятности, указанной идентифицированным контекстом кодирования и фактическим значением кодированного бина.
Когда видеокодер 20 кодирует последовательность бинов посредством байпасного кодирования, видеокодер 20 может иметь возможность кодирования нескольких бинов в едином цикле, но, когда видеокодер 20 кодирует последовательность бинов с помощью регулярного кодирования CABAC, видеокодер 20 может иметь возможность кодировать только одиночный бин в одном цикле. Байпасное кодирование может быть проще, поскольку при байпасном кодировании видеокодеру 20 не требуется выбирать контекст и видеокодер 20 может предполагать, что вероятности обоих символов (0 и 1) равны 1/2 (50%). Поэтому при байпасном кодировании интервал напрямую делится пополам. Фактически, байпасное кодирование обходит контекстную адаптивную часть механизма арифметического кодирования.
Выполнение байпасного кодирования на бине требует меньше вычислений, чем выполнение регулярного кодирования CABAC на бине. Кроме того, выполнение байпасного кодирования может позволить более высокую степень распараллеливания и повышенную производительность. Бины, кодированные с помощью байпасного кодирования могут упоминаться как "байпасно кодированные бины".
В дополнение к выполнению энтропийного кодирования на синтаксических элементах в блоке коэффициентов, видеокодер 20 может применять инверсное квантование и инверсное преобразование к блоку преобразования, так чтобы реконструировать остаточный блок образцов из блока преобразования. Видеокодер 20 может добавить реконструированный остаточный блок образцов к соответствующему образцу из одного или более блоков предсказания образцов, чтобы сформировать реконструированный блок образцов. Путем реконструкции блока образцов для каждого цветового компонента видеокодер 20 может реконструировать пиксельный блок, связанный с блоком TU. Реконструируя таким образом пиксельные блоки для каждого TU блока CU, видеокодер 20 может реконструировать пиксельные блоки блока CU.
После того, как видеокодер 20 реконструирует пиксельные блоки блока CU, видеокодер 20 может выполнить операцию разблокирования, чтобы уменьшить артефакт блокировки, связанный с CU. После того, как видеокодер 20 выполнит операцию разблокирования, видеокодер 20 может модифицировать реконструированные пиксельные блоки блоков CTB картинки, используя адаптивное смещение образца (sample adaptive offset, SAO). В целом, добавление значения смещения к пикселям на картинке может повысить эффективность кодирования. После выполнения этих операций видеокодер 20 может сохранить реконструированный пиксельный блок блока CU в буфере декодированной картинки для использования при создании пиксельного блока предсказания для другого CU.
Видеодекодер 30 может принимать битовый поток. Битовый поток может содержать кодированное представление видеоданных, кодированных видеокодером 20. Видеодекодер 30 может синтаксически анализировать битовый поток, чтобы извлекать из битового потока синтаксические элементы. Как часть извлечения, по меньшей мере, некоторых синтаксических элементов из битового потока, видеодекодер 30 может посредством энтропийного декодирования извлекать данные, содержащиеся в битовом потоке.
Когда видеодекодер 30 выполняет декодирование CABAC, видеодекодер 30 может выполнять регулярное декодирование CABAC на одних бинах и выполнять байпасное декодирование на других бинах. Когда видеодекодер 30 выполняет регулярное декодирование CABAC для синтаксических элементов, видеодекодер 30 может идентифицировать контент кодирования. Видеодекодер 30 может затем делить интервал на нижний подинтервал и верхний подинтервал. Один из подинтервалов может быть связан со значением 0, а другой подинтервал может быть связан со значением 1. Ширина подинтервала может быть пропорциональна вероятности, указанной для сопутствующего значения посредством идентифицированного контекста кодирования. Если кодированное значение находится внутри нижнего подинтервала, видеодекодер 30 может декодировать бин, имеющий значение, связанное с нижним подинтервалом. Если кодированное значение находится внутри верхнего подинтервала, видеодекодер 30 может декодировать бин, имеющий значение, связанное с верхним подинтервалом. Для декодирования следующего бина синтаксического элемента видеодекодер 30 может повторять эти этапы в отношении интервала, внутрь которого попадает подинтервал, который содержит кодированное значение. Когда видеодекодер 30 повторяет эти этапы для следующего бина, видеодекодер 30 может использовать вероятность, которая модифицируется, основываясь на вероятности, указанной идентифицированным контекстом кодирования и декодированным бином. Видеодекодер 30 может производить перевод из двоичной формы, чтобы восстановить синтаксический элемент. Устройство перевода из двоичной формы может означать выбор синтаксического элемента, соответствующего отображению между двоичной строкой и значением синтаксического элемента.
Когда видеодекодер 30 выполняет байпасное декодирование, видеодекодер 30 может иметь возможность декодировать несколько бинов в едином цикле, но когда видеодекодер 30 выполняет регулярное декодирование CABAC, видеодекодер 30 может обычно быть способен декодировать только один единственный бин в цикле или требовать более одного цикла для одного бина. Байпасное декодирование может быть проще, чем регулярное декодирование CABAC, поскольку видеодекодер 30 не нуждается в выборе контекста и можно предположить, что вероятности обоих символов (0 и 1) равны 1/2. В таком случае, выполнение байпасного декодирования и/или декодирования для бина может потребовать меньше вычислений, чем выполнение регулярного кодирования для бина и может позволить более высокую степень распараллеривания и повышенную производительность.
Видеодекодер 30 может реконструировать картинку видеоданных, основываясь на синтаксических элементах, извлеченных из битового потока. Процесс реконструкции видеоданных, основываясь на синтаксических элементах, может, в целом, быть взаимообразным с процессом, выполняемым видеокодером 20, чтобы формировать синтаксические элементы. Например, видеодекодер 30 может формировать, основываясь на синтаксических элементах, связанных с CU, пиксельные блоки предсказания для блоков PU блока CU. Кроме того, видеодекодер 30 может инверсно квантовать блоки коэффициентов, связанные с блоками TU блока CU. Видеодекодер может выполнять инверсное преобразование на блоках коэффициентов, чтобы реконструировать остаточные пиксельные блоки, связанные с блоками TU блока CU. Видеодекодер 30 может реконструировать пиксельные блоки блока CU, основываясь на пиксельных блоках предсказания и остаточных пиксельных блоках.
После того, как видеодекодер 30 реконструирует пиксельные блоки блока CU, видеодекодер 30 может выполнить операцию деблокирования, чтобы уменьшить артефакт блокирования, связанный с CU. Кроме того, основываясь на одном или более синтаксических элементах SAO, видеодекодер 30 может применять SAO, которое применяется видеокодером 20. После того, как видеодекодер 30 выполнит эти операции, видеодекодер 30 может сохранить пиксельные блоки блока CU в буфере декодированной картинки. Буфер декодированной картинки может обеспечивать опорные картинки для последующей компенсации движения, внутрикадрового предсказания и представления на устройстве отображения.
На фиг. 2 представлена блок-схема примера видеокодера 20, выполненного с возможностью реализации технологий представленного изобретения. Фиг. 2 представлен для целей объяснения и не должен истолковываться как ограничение технологий, широко представленных в качестве примера и описанных в представленном изобретении. Для целей объяснения, видеокодер 20 описывается в представленном изобретении для предсказания изображения при кодировании HEVC. Однако, технологии представленного изобретения применимы и к другим стандартам или способам кодирования.
В примере, показанном на фиг. 2, видеокодер 20 содержит блок 100 процесса предсказания, остаточный блок 102 формирования, блок 104 процесса преобразования, блок 106 квантования, блок 108 инверсного квантования, блок 110 процесса инверсного преобразования, блок 112 реконструкции, блок 113 фильтра, буфер 114 декодированной картинки и блок 116 энтропийного кодирования. Блок 116 энтропийного кодирования содержит механизм 118 регулярного кодирования CABAC и механизм 120 байпасного кодирования. блок 100 процесса предсказания содержит блок 121 процесса межкадрового предсказания и блок 126 внутрикадрового предсказания. Блок 121 процесса межкадрового предсказания содержит блок 122 оценки движения и блок 124 компенсации движения. В другом примере видеокодер 20 может содержать больше, меньше или другие функциональные компоненты.
Видеокодер 20 принимает видеоданные. Для кодирования видеоданных видеокодер 20 может кодировать каждый срез каждой картинки видеоданных. Как часть кодирования среза, видеокодер 20 может кодировать каждый блок CTB в срезе. Как часть кодирования CTB, блок 100 процесса предсказания может выполнять квадрадревовидное деление на пиксельном блоке, связанном с CTB, чтобы разделить пиксельный блок на прогрессивно уменьшающиеся пиксельные блоки. Каждый из более мелких пиксельных блоков может связываться с CU. Например, блок 100 процесса предсказания может делить пиксельный блок блока CTB на четыре субблока равного размера, делить один или более субблоков на четыре суб-субблока равного размера и так далее.
Видеокодер 20 может кодировать блоки CU блока CTB на картинке, чтобы сформировать кодированные представления блоков CU (то есть, кодированные CU). Видеокодер 20 может кодировать блоки CU блока CTB в порядке зигзагообразного сканирования. Другими словами, видеокодер 20 может последовательно кодировать верхний левый CU, верхний правый CU, нижний левый CU и затем нижний правый CU. Когда видеокодер 20 кодирует разделенный CU, видеокодер 20 может кодировать в зигзагообразном порядке блоки CU, связанные с субблоками пиксельного блока разделенного CU.
Кроме того, как часть кодирования CU, блок 100 процесса предсказания может делить пиксельный блок блока CU между одним или более блоками PU блока CU. Видеокодер 20 и видеодекодер 30 могут поддерживать различные размеры блока PU. Полагая, что размер отдельного CU равен 2N×2N, видеокодер 20 и видеодекодер 30 могут поддерживать размер блока PU равным 2N×2N или N×N для внутрикадрового предсказания и симметричный размер PU, равный 2N×2N, 2N×N, N×2N, N×N или подобный, для межкадрового предсказания. Видеокодер 20 и видеодекодер 30 могут также поддерживать асимметричное разделение для размеров PU, равных 2N×nU, 2N×nD, nL×2N и nR×2N для межкадрового предсказания.
Блок 121 процесса межкадрового предсказания может формировать данные предсказания для блока PU, выполняя межкадровое предсказание на каждом блоке PU блока CU. Данные предсказания для PU могут содержать пиксельный блок предсказания, соответствующий PU, и информацию о движении блока PU. Срезы могут быть I-срезами, P-срезами или B-срезами. Блок 121 процесса межкадрового предсказания может выполнять различные операции для блока PU блока CU, в зависимости от того, находится ли блок PU в I-срезе, a P-срезе или B-срезе. В I-срезе все PU имеют внутрикадровое предсказание. Поэтому, если PU находится в I-срезе, блок 121 процесса межкадрового предсказания не выполняет межкадрового предсказания для PU.
Если PU находится в P-срезе, блок 122 оценки движения может искать опорные картинки в перечне опорных картинок (таком как "перечень 0") для опорного блока блока PU. Опорный блок PU может быть пиксельным блоком, который наиболее близко соответствует пиксельному блоку PU. Блок 122 оценки движения может формировать индекс опорной картинки, указывающий опорную картинку в перечне 0, содержащем опорный блок PU и вектор движения, который указывает пространственное смещение между пиксельным блоком PU и опорным блоком. Блок 122 оценки движения может выводить индекс опорной картинки и вектор движения в качестве информации о движении блока PU. Блок 124 компенсации движения может формировать пиксельный блок предсказания блока PU, основываясь на опорном блоке, указанном информацией о движении блока PU.
Если PU находится в B-срезе, блок 122 оценки движения может выполнять однонаправленное межкадровое предсказание или двунаправленное межкадровое предсказание для PU. Для выполнения однонаправленного межкадрового предсказания для PU, блок 122 оценки движения может проводить поиск опорных картинок в первом перечне опорных картинок ("перечень 0") или во втором перечне опорных картинок ("перечень 1") для опорного блока для блока PU. Блок 122 оценки движения может выводить нижеследующее в качестве информации о движении блока PU: индекс опорной картинки, указывающий положение в перечне 0 или в перечне 1 опорных картинок, который указывает положение в перечне 0 или в перечне 1 опорной картинки, содержащей опорный блок, вектор движения, который указывает пространственное смещение между пиксельным блоком PU и опорным блоком, и индикатор направления предсказания, указывающий находится ли опорная картинка в перечне 0 или в перечне 1.
Для выполнения двунаправленного межкадрового предсказания на блоке PU блок 122 оценки движения может проводить поиск опорных картинок в перечне 0 опорного блока для PU и может также проводить поиск опорных картинок в перечне 1 для другого опорного блока блока PU. Блок 122 оценки движения может формировать индексы опорных картинок, указывающие позиции в перечне 0 и в перечне 1 опорных картинок, которые содержат опорные блоки. Кроме того, блок 122 оценки движения может формировать векторы движения, указывающие пространственные смещения между опорными блоками и пиксельным блоком блока PU. Информация о движении блока PU может содержать индексы опорных картинок и векторы движения PU. Блок 124 компенсации движения может формировать пиксельный блок предсказания блока PU, основываясь на опорных блоках, указанных информацией о движении блока PU.
Блок 126 процесса внутрикадрового предсказания может формировать данные предсказания для PU, выполняя внутрикадровое предсказание на блоке PU. Данные предсказания блока PU могут содержать пиксельный блок предсказания PU и различные синтаксические элементы. Блок 126 процесса внутрикадрового предсказания может выполнять внутрикадровое предсказание на блоках PU в I-срезах, P-срезах и B-срезах.
Для выполнения внутрикадрового предсказания на блоке PU блок 126 процесса внутрикадрового предсказания может формировать многочисленные наборы данных предсказания для PU, используя многочисленные режимы внутрикадрового предсказания. Для формирования набора данных предсказания для блока PU, используя режим внутрикадрового предсказания, блок 126 процесса внутрикадрового предсказания может расширить образцы из блоков образцов соседних PU через блоки образцов PU в направлении, связанном с внутрикадровым режимом. Соседние PU могут находиться наверху, вверху справа, вверху слева или слева от PU, предполагая, что для PU, CU и CTB используется порядок кодирования слева-направо, сверху вниз. Блок 126 процесса внутрикадрового предсказания может использовать различные количества режимов внутрикадрового предсказания, например, 33 направленных режима внутрикадрового предсказания. В некоторых примерах количество режимов внутрикадрового предсказания может зависеть от размера пиксельного блока блока PU.
Блок 100 процесса предсказания может выбрать данные предсказания для блоков PU блока CU из данных предсказания, формируемых блоком 121 процесса межкадрового предсказания для блоков PU, или из данных предсказания, формируемых блоком 126 процесса внутрикадрового предсказания для блоков PU. В некоторых примерах блок 100 процесса предсказания выбирает данные предсказания для блоков PU блока CU, основываясь на метрике скорости/искажения наборов данных предсказания. Блоки пикселей предсказания выбранных данных предсказания могут здесь упоминаться как выбранные пиксельные блоки предсказания.
Блок 102 остаточного формирования может формировать, основываясь на пиксельном блоке CU и выбранных пиксельных блоках предсказания блоков PU блока CU, остаточный пиксельный блок блока CU. Например, блок 102 остаточного формирования может формировать остаточный пиксельный блок CU так, что каждый образец в остаточном пиксельном блоке имеет значение, равное разности между образцом в пиксельном блоке блока CU и соответствующим образцом в выбранном пиксельном блоке предсказания блока PU для блока CU.
Блок 100 процесса предсказания может выполнять квадродревовидное деление, чтобы разделить остаточный пиксельный блок CU на субблоки. Каждый неразделенный остаточный пиксельный блок может быть связан с другим блоком TU блока CU. Размеры и положения остаточных пиксельных блоков, связанных с блоками TU блока CU, могут или не могут основываться на размерах и позициях пиксельных блоков блоков PU блока CU.
Поскольку пиксели каждого из остаточных пиксельных блоков блоков TU могут содержать образец яркости и два образца цветности, каждый из блоков TU может быть связан с блоком образцов яркости и двумя блоками образцов цветности. Блок 104 процесса преобразования может формировать блок коэффициентов для каждого TU блока CU, применяя одно или более преобразований к остаточному блоку образца, связанному с TU. Блок 104 процесса преобразования может применять различные преобразования к остаточному блоку образцов, связанному с TU. Например, блок 104 процесса преобразования может применять дискретное косинусное преобразование (discrete cosine transform, DCT), направленное преобразование или концептуально подобное преобразование к остаточному блоку образцов.
Блок 106 квантования может квантовать коэффициенты в блоке коэффициентов. Процесс квантования может уменьшить глубину цвета, связанную с некоторыми или со всеми коэффициентами. Наапример, n-ый битовый коэффициент во время квантования может быть округлен вниз до m-битового коэффициента, где n больше, чем m. Блок 106 квантования может квантовать блок коэффициентов, связанный с блоком TU блока CU, основываясь на значении параметра квантования (quantization parameter, QP), связанном с блоком CU. Видеокодер 20 может регулировать степень квантования, применяемую к блокам коэффициентов, связанным с CU, регулируя значение QP, связанное с CU.
Блок 108 инверсного квантования и блок 110 процесса инверсного преобразования могут раздельно применять инверсное квантование и инверсное преобразование к блоку коэффициентов, чтобы реконструировать из блока коэффициентов остаточный блок образцов. Блок 112 реконструкции может добавить образец реконструированного остаточного блока образцов к соответствующему образцу из одного или блоков образцов предсказания, сформированных блоком 100 процесса предсказания, чтобы сформировать реконструированный блок образцов, связанный с блоком TU. Реконструируя блоки образцов для каждого блока TU блока CU таким образом, видеокодер 20 может реконструировать пиксельный блок блока CU.
Блок 113 фильтра может выполнять операцию удаления блочности, чтобы уменьшить артефакты блочности в пиксельном блоке, связанном с блоком CU. Кроме того, блок 113 фильтров может применять смещение SAO, определенное блоком 100 процесса предсказания, к реконструированному блоку образцов, чтобы восстановить пиксельный блок. Блок 113 фильтра может формировать последовательность синтаксических элементов SAO для CTB. Синтаксические элеенты SAO могут содержать регулярные, кодированные CABAC бины и байпасно кодированные бины. В соответствии с технологиями представленного изобретения, внутри последовательности ни один из байпасно кодированных бинов для цветового компонента не находится между двумя регулярными, кодированными CABAC бинами для одного и того же цветового компонента.
Буфер 114 декодированных картинок может хранить реконструированный пиксельный блок. Блок 121 процесса межкадрового предсказания может выполнять межкадровое предсказание на блоке PU другой картинки, используя опорную картинку, содержащую реконструированный пиксельный блок. Кроме того, блок 126 процесса внутрикадрового кодирования может выполнять внутрикадровое предсказание на другом PU в той же самой картинке, что и CU, используя реконструированный пиксельный блок в буфере 114 декодированной картинки.
Блок 116 энтропийного кодирования может принимать данные от другого функционального компонента видеокодера 20. Например, блок 116 энтропийного кодирования может принимать блоки коэффициентов от блока 106 квантования и может принимать синтаксические элементы от блока 100 процесса предсказания. Блок 116 энтропийного кодирования может выполнять одну или более операций энтропийного кодирования на данных, чтобы сформировать энтропийно кодированные данные. Например, блок 116 энтропийного кодирования может выполнять на данных операцию контекстно адаптивного кодирования переменной длины (context-adaptive variable length coding, CAVLC), операцию CABAC, операцию кодирования с переменной-переменной длиной (variable-to-variable, V2V), операцию контекстно адаптивного двоичного арифметического кодирования, основанного на синтаксисе (syntax-based context-adaptive binary arithmetic coding, SBAC), операцию энтропийного кодирования с участием интервала вероятности (probability interval partitioning entropy, PIPE) или операцию другого типа энтропийного кодирования. В конкретном примере, блок 116 энтропийного кодирования может кодировать синтаксические элементы SAO, сформированные блоком 113 фильтра. Как часть кодирования синтаксических элементов SAO, блок 116 энтропийного кодирования может кодировать регулярные, кодированные CABAC бины синтаксических элементов SAO, используя механизм 118 регулярного кодирования CABAC, и может кодировать байпасно кодированные бины, используя механизм 120 байпасного кодирования.
В соответствии с технологиями представленного изобретения, блок 121 процесса межкадрового предсказания определяет набор межкадровых возможных режимов предсказания. Таким образом, видеокодер 20 является примером видеокодера. В соответствии с технологиями представленного изобретения, видеокодер выполнен с возможностью определения, согласно информации о соседних блоках изображения, находящихся по соседству с блоком изображения, который должен обрабатываться, содержит ли набор возможных режимов предсказания для блока изображения, который должен обрабатываться, режим аффинного объединения, где режим аффинного объединения указывает, что соответствующие предсказанные изображения блока изображения, который должен обрабатываться, и соседние блоки изображения блока изображения, который должен обрабатываться, получают, используя одну и ту же аффинную модель; определяют в наборе возможных режимов предсказания режим предсказания для блока изображения, который должен обрабатываться; определяют предсказанное изображение блока изображения, который должен обрабатываться, в соответствии с режимом предсказания; и кодируют первую информацию указания в битовом потоке, где первая индикация в формации указывает режим предсказания.
На фиг. 3 представлена последовательность выполнения примерных операций 200 видеокодера для кодирования видеоданных в соответствии с одной или более технологиями представленного изобретения. Фиг. 3 представлен в качестве примера. В другом примере технологии, соответствующие представленному изобретению, могут реализовываться, используя больше, меньше или другие этапы, отличные от показанных в примере на фиг. 3. Согласно примерному способу, показанному на фиг. 3, видеокодер 20 выполняет следующие этапы.
S210. Определяют в соответствии с информацией о соседних блоках изображения, расположенных рядом с блоком изображения, который должен обрабатываться, содержит ли набор возможных режимов предсказания для блока изображения, который должен обрабатываться, режим аффинного объединения.
Конкретно, как показано на фиг. 4, блоки A, B, C, D и E являются соседними реконструированными блоками текущего блока, который должен кодироваться, и соответственно располагаюся сверху, слева, сверху справа, снизу слева и сверху слева от блока, который должен кодироваться. В соответствии с информацией кодирования соседних реконструированных блоков можно определить, содержит ли набор возможных режимов предсказания для текущего блока, который должен кодироваться, режим аффинного объединения.
Следует понимать, что на фиг. 4 в этом варианте осуществления представленного изобретения количество и позиции соседних реконструированных блоков блока, который должен кодироваться, представлены в иллюстративных целях. Количество соседних реконструированных блоков может быть больше или меньше пяти и никаких ограничений на это не накладывается.
В первой возможной реализации определяют, существует ли среди соседних реконструированных блоков блок, типом предсказания которого является аффинное предсказание. Если среди соседних реконструированных блоков не существует блок, типом предсказания которого является аффинное предсказание, набор возможных режимов предсказания для блока, который должен кодироваться, не содержит режим аффинного объединения; или, если среди соседних реконструированных блоков существует блок, типом предсказания которого является аффинное предсказание, процесс кодирования, показанный на фиг. 2, выполняется раздельно в двух случаях: набор возможных режимов предсказания для блока, который должен кодироваться, содержит режим аффинного предсказания, и набор возможных режимов предсказания для блока, который должен кодироваться, не содержит режим аффинного предсказания. Если характеристики кодирования в первом случае лучше, набор возможных режимов предсказания для блока, который должен кодироваться, содержит режим аффинного объединения и информация указания, которая может предполагаться как вторая информация указания, устанавливается равной 1 и кодируется в битовом потоке. В противном случае, набор возможных режимов предсказания для блока, который должен кодироваться, не содержит режим аффинного объединения и вторая информация указания устанавливается равной 0 и кодируется в битовом потоке.
Во второй возможной реализации определяют, существует ли среди соседних реконструированных блоков блок, чьим типом предсказания является аффинное преобразование. Если среди среди соседних реконструированных блоков блок не существует блок, чьим типом предсказания является аффинное преобразование, набор возможных режимов предсказания для блока, который должен кодироваться, не содержит режим аффинного объединения; или если среди соседних реконструированных блоков блок не существует блок, чьим типом предсказания является аффинное преобразование, набор возможных режимов предсказания для блока, который должен кодироваться, содержит режим аффинного объединения.
В третьей возможной реализации соседние реконструированные блоки содержат многочисленные аффинные режимы, которые содержат, например, первый аффинный режим или второй аффинный режим и, соответственно, режим аффинного объединения содержит первый режим аффинного объединения, который объединяет первый аффинный режим, или второй режим аффинного объединения, который объединяет второй аффинный режим. Количества первых аффинных режимов, вторых аффинных режимов и неаффинных режимов среди соседних реконструированных блоков получают раздельно через сбор статистики. Когда первый аффинный режим следует первым по количеству среди соседних реконструированных блоков, набор возможных режимов предсказания содержит первый режим аффинного объединения и не содержит второй режим аффинного объединения. Когда первый аффинный режим следует первым по количеству среди соседних реконструированных блоков, набор возможных режимов предсказания содержит первый режим аффинного объединения и не содержит второй режим аффинного объединения. Когда неаффинный режим следует первым по количеству среди соседних реконструированных блоков, набор возможных режимов предсказания не содержит режим аффинного объединения.
Альтернативно, в третьей возможной реализации, когда первый аффинный режим следует первым по количеству среди соседних реконструированных блоков, набор возможных режимов предсказания содержит первый режим аффинного объединения и не содержит второй режим аффинного объединения. Когда первый аффинный режим следует первым по количеству среди соседних реконструированных блоков, набор возможных режимов предсказания содержит первый режим аффинного объединения и не содержит второй режим аффинного объединения. Когда неаффинный режим следует первым по количеству среди соседних реконстрированных блоков, посредством сбора статистики получают, следует ли первый аффинный режим или второй аффинный режим вторым по количеству среди соседних реконструированных блоков. Когда первый аффинный режим следует вторым по количеству среди соседних реконструированных блоков, набор возможных режимов предсказания содержит первый режим аффинного объединения и не содержит второй режим аффинного объединения. Когда второй аффинный режим следует вторым по количеству среди соседних реконструированных блоков, набор возможных режимов предсказания содержит второй режим аффинного объединения и не содержит первый режим аффинного объединения.
В четвертой возможной реализации определяют, удовлетворяются ли два условия: (1) существует ли среди соседних реконструированных блоков блок, типом предсказания которого является аффиный режим; и (2) существуют ли ширина и высота соседнего блока в аффинном режиме, которые меньше ширины и высоты блока, который должен кодироваться. Если одно из условий не удовлетворяется, набор возможных режимов предсказания для блока, который должен кодироваться, не содержит режим аффинного объединения. Если оба условия удовлетворяются, процесс кодирования, показанный на фиг. 2, выполняется раздельно согласно двум случаям: набор возможных режимов предсказания для блока, который должен кодироваться, содержит режим аффинного объединения и набор возможных режимов предсказания для блока, который должен кодироваться, не содержит режим аффинного объединения. Если характеристики кодирования в первом случае лучше, набор возможных режимов предсказания для блока, который должен кодироваться, содержит режим аффинного объединения и информация указания, которую можно предположить в качестве третьей информации указания, устанавливается равной 1 и кодируется в битовом потоке. В противном случае, набор возможных режимов предсказания для блока, который должен кодироваться, не содержит режим аффинного объединения и третья информация указания устанавливается равной 0 и кодируется в битовом потоке.
Следует понимать, что условие (2) определения в этом варианте осуществления представленного изобретения означает, что ширина соседнего блока в аффинном режиме меньше, чем ширина блока, который должен кодироваться и высота соседнего блока в аффинном режиме меньше, чем высота блока, который должен кодироваться. В другом варианте осуществления, альтернативно, условием определения может быть: ширина соседнего блока в аффинном режиме меньше, чем ширина блока, который должен кодироваться или высота соседнего блока в аффинном режиме меньше, чем высота блока, который должен кодироваться, и никакое ограничение на это не накладывается.
В пятой возможной реализации определяют, удовлетворяются ли два условия: (1) существует ли среди соседних реконструированных блоков блок, типом предсказания которого является аффиный режим; и (2) существуют ли ширина и высота соседнего блока в аффинном режиме, которые меньше ширины и высоты блока, который должен кодироваться. Если одно из условий не удовлетворяется, набор возможных режимов предсказания для блока, который должен кодироваться, не содержит режим аффинного объединения. Если оба условия удовлетворяются, набор возможных режимов предсказания для блока, который должен кодироваться, содержит режим аффинного объединения.
Следует понимать, что в этом варианте осуществления представленного изобретения типы предсказания и размеры соседних реконструированных блоков используются в качестве основы для определения набора возможных режимов предсказания для текущего блока, который должен кодироваться, и информация об атрибутах соседних реконструированных блоков, которую получают посредством синтаксического анализа, может дополнительно использоваться для определения. Это не является здесь ограничением.
Дополнительно следует понимать, что в различных возможных реализациях в этом варианте осуществления представленного изобретения в иллюстративных целях, таких как вторая возможная реализация, нижеследующие критерии определения могут использоваться для определения, существует ли среди соседних реконструированных блоков блок, типом предсказания которого является аффинное предсказание. Для целей иллюстрации, когда типами режимов предсказания по меньшей мере двух соседних блоков является аффинный режим, набор возможных режимов предсказания для блока, который должен кодироваться, содержит режим аффинного объединения; в противном случае, набор возможных режимов предсказания для блока, который должен кодироваться, не содержит режим аффинного объединения. Альтернативно, количество соседних блоков, для которых типом предсказания является аффинный режим, также может быть равно по меньшей мере трем или по меньшей мере четырем и никакое ограничение на это не накладывается.
Дополнительно, следует понимать, что в различных возможных реализациях в этом варианте осуществления представленного изобретения, для целей иллюстрации, такой как пятая возможная реализация, определяют, удовлетворяются ли два условия: (1) существует ли среди соседних реконструированных блоков блок, типом предсказания которого является аффиный режим; и (2) существуют ли ширина и высота соседнего блока в аффинном режиме, которые меньше ширины и высоты блока, который должен кодироваться. Второе условие определения для целей иллюстрации может также заключаться в том, являются ли ширина и высота соседнего блока в аффинном режиме меньшими, чем 1/2, 1/3 или 1/4 ширины и высоты блока, который должен кодироваться, и никакое ограничение на это не накладывается.
Дополнительно, следует понимать, что то, что в этом варианте осуществления представленного изобретения информация указания устанавливается равной 0 или 1, служит для иллюстративных целей. Альтернативно, может выполняться реверсивная установка. Для иллюстративных целей, например, в первой возможной реализации может быть определено, существует ли среди соседних реконструированных блоков такой блок, типом предсказания которого является аффинное предсказание. Если среди соседних реконструированных блоков не существует такой блок, типом предсказания которого является аффинное предсказание, набор возможных режимов предсказания для блока, который должен кодироваться не содержит режим аффинного объединения; или, если среди соседних реконструированных блоков существует блок, типом предсказания которого является аффинное предсказание, процесс кодирования, показанный на фиг. 2, выполняется отдельно в соответствии с двумя случаями: Набор возможных режимов предсказания для блока, который должен кодироваться, содержит режим аффинного объединения и набор возможных режимов предсказания для блока, который должен кодироваться, не содержит режим аффинного объединения. Если характеристики кодирования в первом случае лучше, набор возможных режимов предсказания для блока, который должен кодироваться, содержит режим аффинного объединения и информация указания, которую можно предположить в качестве второй информации указания, устанавливается равной 0 и кодируется в битовом потоке. В противном случае, набор возможных режимов предсказания для блока, который должен кодироваться, не содержит режим аффинного объединения и вторая информация указания устанавливается равной 1 и кодируется в битовом потоке.
S220. Определяют в наборе возможных режимов предсказания режим предсказания для блока изображения, который должен обрабатываться.
Набор возможных режимов предсказания является набором возможных режимов предсказания, определенным на этапе S210. Каждый режим предсказания в наборе возможных режимов предсказания последовательно используется для выполнения процесса кодирования, показанного на фиг. 2, чтобы выбрать режим с оптимальными характеристиками кодирования в качестве режима предсказания для блока, который должен кодироваться.
Следует понимать, что в этом варианте осуществления представленного изобретения задача выполнения процесса кодирования, показанного на фиг. 2, состоит в выборе режима предсказания с оптимальными характеристиками кодирования. В процессе выбора могут сравниваться отношения характеристики/стоимость режимов предсказания. Характеристики указываются качеством восстановления изображения, а стоимость указывается битовой скоростью кодирования. Альтернативно, могут сравниваться только характеристики или стоимости режимов предсказания. Соответственно, могут сравниваться все этапы кодирования, показанные на фиг. 2, или процесс кодирования останавливается после того, как получены индикаторы, которые необходимо сравнивать. Например, если режимы предсказания сравниваются только с точки зрения характеристик, процесс кодирования может быть остановлен после того, как блок предсказания выполняет свои этапы, и никакое ограничение на это не накладывается.
S230. Определяют предсказанный режим блока изображения, который должен обрабатываться, в соответствии с режимом предсказания.
Стандарт H.265 и файлы приложения, такие как CN201010247275.7, упомянутый ранее, подробно описывают процесс, в котором предсказанное изображение блока, который должен быть кодирован, формируется в соответствии с режимом предсказания, в том числе, в соответствии с режимом предсказания для трансляционной модели, режимом аффинного предсказания, режимом аффинного объединения и т. п. п подробности этого здесь повторно не приводятся.
S240. Кодируют первую информацию указания в битовый поток.
Режим предсказания, определенный на этапе S220, кодируется в битовый поток. Следует понимать, что этап может быть выполнен в любой момент после этапа S220, и никакие конкретные ограничения на порядок этапов не накладываются, при условии, что этап соответствует этапу декодирования первой информации указания на стороне декодирования.
На фиг. 5 представлена блок-схема примера другого видеокодера 40, для кодирования видеоданных, соответствующего одной или более технологиям представленного изобретения.
Видеокодер 40 содержит: первый модуль 41 определения, второй модуль 42 определения, третий модуль 43 определения и модуль 44 кодирования.
Первый модуль 41 определения выполнен с возможностью осуществления этапа S210 определения в соответствии с информацией о соседних блоках изображения, находящихся рядом с блоком изображения, который должен обрабатываться, содержит ли набор возможных режимов предсказания для блока изображения, который должен обрабатываться, режим аффинного объединения.
Второй модуль 42 определения выполнен с возможностью осуществления этапа S220 определения в наборе возможных режимов предсказания режима предсказания для блока изображения, который должен обрабатываться.
Третий модуль 43 определения выполнен с возможностью осуществления этапа S230 определения предсказанного изображения блока изображения, который должен обрабатываться, в соответствии с режимом предсказания.
Модуль 44 кодирования выполнен с возможностью осуществления этапа S240 кодирования первой информации указания в битовый поток.
Поскольку информация о движении соседних блоков коррелирована, существует очень большая вероятность, что текущий блок и соседний блок имеют один и тот же или схожий режим предсказания. В этом варианте осуществления представленного изобретения информацию о режиме предсказания текущего блока получают путем определения информации о соседних блоках, снижая битовую скорость кодирования режима предсказания, повышая, тем самым, эффективность кодирования.
На фиг. 6 представлена блок-схема примера другого видеокодера 40, для кодирования видеоданных, соответствующего одной или более технологиям представленного изобретения. Фиг. 6 представлен в качестве примера. В другом примере, технологии представленного изобретения могут быть реализованы, используя больше, меньше или другие этапы, отличные от показанных в примере на фиг. 6. В соответствии с примерным способом, показанным на фиг. 6, видеокодер 20 выполняет следующие этапы.
S310. Кодируют информацию указания набора возможных режимов предсказания для первой области изображения, которая должна обрабатываться.
Когда для первой области изображения, которая должна обрабатываться, в качестве набора возможных режимов используется набор возможных трансляционных режимов, первая информация указания устанавливается равной 0 и первая информация указания кодируется в битовом потоке, где трансляционный режим указывает режим предсказания, являющийся режимом предсказания, полученным, используя трансляционную модель. Когда для первой области изображения, которая должна обрабатываться, в качестве набора возможных режимов для первой области изображения, которая должна обрабатываться, используется набор возможных трансляционных режимов и набор возможных аффинных режимов, первая информация указания устанавливается равной 1 и первая информация указания кодируется в битовом потоке, где аффинный режим указывает режим предсказания, являющийся режимом предсказания, полученным, используя аффинную модель. Первая область изображения, которая должно обрабатываться может быть одной из следующих: группа кадров изображения, кадр изображения, набор мозаичных элементов изображения, набор срезов изображения, мозаичный элемент изображения, срез изображения, набор блоков кодирования изображения или блок кодирования изображения. Соответственно, первая информация указания кодируется в заголовке группы кадров изображения, например, набора видеопараметров (video parameter set, VPS), набора параметров последовательности (sequence parameter set, SPS), в дополнительной информации по улучшению (supplemental enhancement information, SEI) или в заголовке кадра изображения, или, например, в наборе параметров изображения (image parameter set, PPS), заголовке набора мозаичных элементов изображения, заголовке набора срезов изображения или в заголовке мозаичного элемента изображения или, например, в заголовок мозаичного элемента изображения (tile header), заголовке среза изображения (slice header), заголовке набора блоков кодирования изображения или заголовке блока кодирования изображения.
Следует понимать, что первая область изображения, которая должна обрабатываться на этом этапе, может быть заранее конфигурирована или может определяться адаптивно в процессе кодирования. Представление о диапазоне первой области изображения, которая должна обрабатываться, можно получить из протокола на стороне кодирования/декодирования или диапазон первой области изображения, которая должна обрабатываться, может быть кодирован в битовом потоке для передачи и никакого ограничения в этом отношении не накладывается.
Дополнительно следует понимать, что набор возможных режимов предсказания может быть конфигурирован заранее или может определяться после сравнения характеристик кодирования и никакого ограничения в этом отношении не накладывается.
Дополнительно, следует понимать, что то, что в этом варианте осуществления представленного изобретения информация указания устанавливается равной 0 или 1, служит для иллюстративных целей. Альтернативно, может выполняться реверсированная установка.
S320. Определяют в наборе возможных режимов предсказания для первой области изображения, которая должна обрабатываться, для блока изображения, который должен обрабатываться, в первой области, которая должна обрабатываться, режим предсказания для блока изображения, который должен обрабатываться.
Конкретный способ подобен этапу S220 и его подробности здесь повторно не описываются.
S330. Определяют предсказанный режим блока изображения, который должен обрабатываться, в соответствии с режимом предсказания.
Конкретный способ подобен этапу S230 и его подробности здесь повторно не описываются.
S340. Кодируют в битовый поток режим предсказания, выбранный для блока изображения, который должен обрабатываться.
Конкретный способ подобен этапу S240 и его подробности здесь повторно не описываются.
На фиг. 7 представлена блок-схема примера другого видеокодера 50, для кодирования видеоданных, соответствующего одной или более технологиям представленного изобретения.
Видеокодер 50 содержит: первый модуль 51 кодирования, первый модуль 52 определения, второй модуль 53 определения и второй модуль 54 кодирования.
Первый модуль 51 кодирования выполнен с возможностью осуществления этапа S310 кодирования информации указания набора возможных режимов предсказания для первой области изображения, которая должна обрабатываться.
Первый модуль 52 определения выполнен с возможностью осуществления этапа S320 определения в наборе возможных режимов предсказания для первой области изображения, которая должна обрабатываться, для блока изображения, который должен обрабатываться, в первой области, которая должна обрабатываться, режима предсказания для блока изображения, который должен обрабатываться.
Второй модуль 53 определения выполнен с возможностью осуществления этапа S330 определения предсказанного изображения блока изображения, который должен обрабатываться, в соответствии с режимом предсказания.
Второй модуль 54 кодирования выполнен с возможностью осуществления этапа S340 кодирования в битовом потоке режима предсказания, выбранного для блока изображения, который должен обрабатываться.
Поскольку информация о движении соседних блоков коррелирована, существует очень большая вероятность, что в той же области существует только трансляционное движение, а аффинное движение отсутствует. В этом варианте осуществления представленного изобретения установлен набор возможных режимов предсказания, обозначающий уровень области, без использования битовой скорости кодирования избыточного режима, повышая, тем самым, эффективность кодирования.
На фиг. 8 представлена блок-схема примера видеокодера 30, выполненного с возможностью реализации технологий представленного изобретения. Фиг. 8 представлен для целей объяснения и не должен истолковываться как ограничение технологий, широко представленных в качестве примера и описанных в представленном изобретении. Для целей объяснения, видеокодер 30 описывается в представленном изобретении для предсказания изображения при кодировании HEVC. Однако, технологии представленного изобретения применимы и к другим стандартам или способам кодирования.
В примере, показанном на фиг. 8, видеодекодер 30 содержит блок 150 энтропийного декодирования, блок 152 процесса предсказания, блок 154 инверсного квантования, блок 156 процесса инверсного преобразования, блок 158 реконструкции, блок 159 фильтра и буфер 160 декодированной картинки. Блок 152 процесса предсказания содержит блок 162 компенсации движения и блок 164 процесса внутрикадрового предсказания. Блок 150 энтропийного декодирования содержит механизм 166 регулярного кодирования CABAC и механизм 168 байпасного кодирования. В другом примере видеодекодер 39 может содержать больше, меньше или другие функциональные компоненты.
Видеодекодер 30 может принимать битовый поток. Блок 150 энтропийного декодирования может синтаксически анализировать битовый поток, чтобы извлекать из битового потока синтаксические элементы. Как часть синтаксического анализа битового потока, блок 150 энтропийного декодирования может энтропийно декодировать энтропийно кодированные синтаксические элементы, содержащиеся в битовом потоке. Блок 152 процесса предсказания, блок 154 инверсного квантования, блок 156 процесса инверсного преобразования, блок 158 реконструкции и блок 159 фильтра могут формировать декодированные видеоданные, основываясь на синтаксических элементах, извлеченных из битового потока.
Битовый поток может содержать последовательность кодированных синтаксических элементов SAO блока STB. Синтаксические элементы SAO могут содержать бины, кодированные регулярным CABAC, и байпасно кодированные бины. В соответствии с технологиями представленного изобретения, в последовательности кодированных синтаксических элементов SAO между двумя бинами, кодированными регулярным CABAC, никакие байпасно кодированные бины не находятся. Блок 150 энтропийного декодирования может декодировать синтаксические элементы SAO. Как часть кодирования синтаксических элементов SAO, блок 150 энтропийного декодирования может декодировать бины, кодированные регулярным CABAC, используя механизм 166 регулярного кодирования CABAC, и может декодировать байпасно кодированные бины, используя механизм 168 байпасного кодирования.
Кроме того, видеодекодер 30 может выполнять операцию реконструкции для неразделенного CU. Для выполнения операции реконструкции на неразделенном CU видеодекодер 30 может выполнить операцию реконструкции на каждом блоке TU блока CU. Выполняя операцию реконструкции на каждом блоке TU блока CU, видеодекодер 30 может реконструировать остаточные пиксельные блоки, связанные с блоком CU.
Как часть выполнения операции разделения на блоке TU блока CU, блок 154 инверсного квантования может инверсно квантовать (то есть, деквантовать) блоки коэффициентов, связанные с TU. Блок 154 инверсного квантования может определять степень квантования, используя значение QP, связанное с блоком CU блока TU, и определять степень инверсного квантования, которая должна применяться блоком 154 инверсного квантования.
После того, как блок 154 инверсного квантования инверсно квантует блоки коэффициентов, блок 156 процесса инверсного преобразования может применить одно или более инверсных преобразований к блокам коэффициентов, чтобы сформировать остаточные блоки образцов, связанные с блоком TU. Например, блок 156 процесса инверсного преобразования может применять к блокам коэффициентов инверсное DCT, инверсное целочисленное преобразование, инверсное преобразование Карунена-Лоэва (Karhunen-Loeve) (KLT), инверсное вращательное преобразование, инверсное направленное преобразование или другое инверсное преобразование.
Если PU кодируют посредством внутрикадрового предсказания, блок 164 процесса внутрикадрового предсказания может выполнить внутрикадровое предсказание, чтобы сформировать блок образцов предсказания для блока PU. Блок 164 процесса внутрикадрового предсказания может использовать режим внутрикадрового предсказания для формирования пиксельного блока предсказания для блока PU, основываясь на пиксельных блоках пространственно находящихся рядом PU. Блок 164 внутрикадрового предсказания может определять режим внутрикадрового предсказания для блока PU, основываясь на одном или более синтаксических элементах, полученных из битового потока посредством синтаксического анализа.
Блок 162 компенсации движения может создавать первый перечень опорных картинок (перечень 0) и второй перечень опорных картинок (перечень 1), основываясь на синтаксических элементах, извлеченных из битового потока. Кроме того, если PU кодируется посредством межкадрового предсказания, блок 150 энтропийного декодирования может извлекать информацию о движении блока PU. Блок 162 компенсации движения может определять один или более опорных блоков для PU, основываясь на информации о движении блока PU. Блок 162 компенсации движения может формировать пиксельный блок предсказания для блока PU, основываясь на одном или более опорных блоках для блока PU.
Блок 158 реконструкции может использовать остаточные пиксельные блоки, связанные с блоками TU блока CU, и пиксельные блоки предсказания (то есть данные внутрикадрового предсказания или данные межкадрового предсказания) блоков PU блока CU, когда это применимо, для реконструкции пиксельного блока блока CU. В частности, блок 158 реконструкции может добавлять образцы остаточных пиксельных блоков к соответствующим образцам пиксельных блоков предсказания, чтобы реконструировать пиксельный блок блока CU.
Блок 159 фильтра может выполнять операцию удаления блочности для уменьшения артефактов блочности, связанных с пиксельным блоком блока CU блока CTB. Кроме того, блок 159 фильтра может модифицировать пиксельный блок CTB, основываясь на синтаксических элементах SAO, синтаксически анализированных в битовом потоке. Например, блок 159 фильтра может определять значения, основываясь на синтаксических элементах SAO блока CTB, и добавлять определенные значения к образцам в реконструированном пиксельном блоке блока CTB. Модифицируя, по меньшей мере, некоторые из пиксельных блоков блоков CTB картинки, блок 159 фильтра может модифицировать реконструированную картинку видеоданных, основываясь на синтаксических элементах SAO.
Видеодекодер 30 может хранить пиксельный блок блока CU в буфере 160 декодированной картинки. Буфер 160 декодированной картинки может обеспечивать опорные картинки для последующей компенсации движения, внутрикадрового предсказания и представления на устройстве отображения (таком как устройство 32 отображения на фиг. 1). Например, видеодекодер 30 может выполнять, основываясь на пиксельном блоке в буфере 160 декодированной картинки, операцию внутрикадрового предсказания или межкадрового предсказания на блоке PU другого блока CU.
В соответствии с технологиями представленного изобретения, блок 152 процесса предсказания определяет набор возможных режимов межкадрового предсказания. Таким образом, видеодекодер 30 является примером видеодекодера. В соответствии с технологией представленного изобретения, видеодекодер выполнен с возможностью: определения в соответствии с информацией о соседних блоках изображения, находящихся рядом с блоком изображения, который должен обрабатываться, содержит ли набор возможных режимов предсказания для блока изображения, который должен обрабатываться, режим аффинного объединения, когда режим аффинного объединения указывает, что соответствующие предсказанные изображения блока изображения, который должен обрабатываться, и соседние блоки изображения блока изображения, который должен обрабатываться, получают, используя одну и ту же аффинную модель; синтаксического анализа битового потока, чтобы получить первую информацию указания; определения в наборе возможных режимов предсказания режима предсказания для блока изображения, который должен обрабатываться, в соответствии с первой информацией указания; и определения предсказанного изображения блока изображения, который должен обрабатываться, в соответствии с режимом предсказания.
На фиг. 9 представлена блок-схема последовательности выполнения примера операций 400 видеодекодера 40, для декодирования видеоданных, соответствующих одной или более технологиям представленного изобретения. Фиг. 9 представлен в качестве примера. В другом примере, технологии представленного изобретения могут быть реализованы, используя больше, меньше или другие этапы, отличные от показанных в примере на фиг. 9. В соответствии с примерным способом, показанным на фиг. 9, видеодекодер 30 выполняет следующие этапы.
Определяют в соответствии с информацией о соседних блоках изображения, находящихся рядом с блоком изображения, который должен обрабатываться, содержит ли набор возможных режимов предсказания режим аффинного объединения для блока изображения, который должен обрабатываться.
Конкретно, как показано на фиг. 4, блоки A, B, C, D и E являются соседними реконструированными блоками текущего блока, который должен кодироваться, и соответственно располагаются сверху, слева, сверху справа, снизу слева и сверху слева от блока, который должен кодироваться. В соответствии с информацией кодирования соседних реконструированных блоков можно определить, содержит ли набор возможных режимов предсказания для текущего блока, который должен кодироваться, режим аффинного объединения.
Следует понимать, что на фиг. 4 в этом варианте осуществления представленного изобретения для целей иллюстрации представлены количество и позиции соседних реконструированных блоков блока, который должен кодироваться. Количество соседних реконструированных блоков может быть больше или меньше, чем пять, и никакое ограничение на это не налагается.
В первой возможной реализации определяют, существует ли среди соседних реконструированных блоков такой блок, типом предсказания которого является аффинное предсказание. Если режим предсказания по меньшей мере для одного из соседних блоков изображения получает предсказанное изображение, используя аффинную модель, битовый поток синтаксически анализируется, чтобы получить вторую информацию указания. Когда вторая информация указания равна 1, набор возможных режимов предсказания содержит режим аффинного объединения; или, когда вторая информация указания равна 0, набор возможных режимов предсказания не содержит режим аффинного объединения; в противном случае, набор возможных режимов предсказания не содержит режим аффинного объединения.
Во второй возможной реализации определяют, существует ли среди соседних реконструированных блоков такой блок, типом предсказания которого является аффинное предсказание. Если среди соседних реконструированных блоков нет блока, для которого типом предсказания было бы аффинное предсказание, набор возможных режимов предсказания для блока, который должен кодироваться, не содержит режим аффинного объединения; или, если среди соседних реконструированных блоков существует блок, типом предсказания которого является аффинное предсказание, набор возможных режимов предсказания для блока, который должен кодироваться, содержит режим аффинного объединения.
В третьей возможной реализации соседние реконструированные блоки содержат многочисленные аффинные режимы, которые содержат, например, первый аффинный режим или второй аффинный режим и, соответственно, режим аффинного объединения содержит первый режим аффинного объединения, который объединяет первый аффинный режим, или второй режим аффинного объединения, который объединяет второй аффинный режим. Количества первых аффинных режимов, вторых аффинных режимов и неаффинных режимов среди соседних реконструированных блоков получают раздельно через сбор статистики. Когда первый аффинный режим следует первым по количеству среди соседних реконструированных блоков, набор возможных режимов предсказания содержит первый режим аффинного объединения и не содержит второй режим аффинного объединения. Когда второй аффинный режим следует первым по количеству среди соседних реконструированных блоков, набор возможных режимов предсказания содержит второй режим аффинного объединения и не содержит первый режим аффинного объединения. Когда неаффинный режим следует первым по количеству среди соседних реконструированных блоков, набор возможных режимов предсказания не содержит режим аффинного объединения.
Альтернативно, в третьей возможной реализации, когда первый аффинный режим следует первым по количеству среди соседних реконструированных блоков, набор возможных режимов предсказания содержит первый режим аффинного объединения и не содержит второй режим аффинного объединения. Когда второй аффинный режим следует первым по количеству среди соседних реконструированных блоков, набор возможных режимов предсказания содержит второй режим аффинного объединения и не содержит первый режим аффинного объединения. Когда неаффинный режим следует первым по количеству среди соседних реконстрированных блоков, посредством сбора статистики получают, следует ли первый аффинный режим или второй аффинный режим вторым по количеству среди соседних реконструированных блоков. Когда первый аффинный режим следует вторым по количеству среди соседних реконструированных блоков, набор возможных режимов предсказания содержит первый режим аффинного объединения и не содержит второй режим аффинного объединения. Когда второй аффинный режим следует вторым по количеству среди соседних реконструированных блоков, набор возможных режимов предсказания содержит второй режим аффинного объединения и не содержит первый режим аффинного объединения.
В четвертой возможной реализации определяют, удовлетворяются ли два условия: (1) существует ли среди соседних реконструированных блоков блок, типом предсказания которого является аффиный режим; и (2) существуют ли ширина и высота соседнего блока в аффинном режиме, которые меньше ширины и высоты блока, который должен кодироваться. Если одно из условий не удовлетворяется, набор возможных режимов предсказания для блока, который должен кодироваться, не содержит режим аффинного объединения. Если оба условия удовлетворяются, битовый поток синтаксически анализируют, чтобы получить третью информацию указания. Когда третья информация указания равна 1, набор возможных режимов предсказания содержит режим аффинного объединения; или, когда третья информация указания равна 0, набор возможных режимов предсказания не содержит режим аффинного объединения; в противном случае, набор возможных режимов предсказания не содержит режим аффинного объединения.
Следует понимать, что условие (2) определения в этом варианте осуществления представленного изобретения означает, что ширина соседнего блока в аффинном режиме меньше, чем ширина блока, который должен кодироваться, и высота соседнего блока в аффинном режиме меньше, чем высота блока, который должен кодироваться. В другом варианте осуществления, альтернативно, условием определения может быть: ширина соседнего блока в аффинном режиме меньше, чем ширина блока, который должен кодироваться, или высота соседнего блока в аффинном режиме меньше, чем высота блока, который должен кодироваться, и никакое ограничение на это не накладывается.
В пятой возможной реализации определяют, удовлетворяются ли два условия: (1) существует ли среди соседних реконструированных блоков блок, типом предсказания которого является аффиный режим; и (2) существуют ли ширина и высота соседнего блока в аффинном режиме, которые меньше ширины и высоты блока, который должен кодироваться. Если одно из условий не удовлетворяется, набор возможных режимов предсказания для блока, который должен кодироваться, не содержит режим аффинного объединения. Если оба условия удовлетворяется, набор возможных режимов предсказания для блока, который должен кодироваться, содержит режим аффинного объединения.
Следует понимать, что в этом варианте осуществления представленного изобретения типы предсказания и размеры соседних реконструированных блоков используются в качестве основы для определения набора возможных режимов предсказания для текущего блока, который должен кодироваться, и информация об атрибутах соседних реконструированных блоков, которую получают посредством синтаксического анализа, может дополнительно использоваться для определения при условии, что способ соответствует стороне кодирования. Это не является здесь ограничением.
Дополнительно следует понимать, что в различных возможных реализациях в этом варианте осуществления представленного изобретения в иллюстративных целях, таких как вторая возможная реализация, нижеследующие критерии определения могут использоваться для определения, существует ли среди соседних реконструированных блоков блок, типом предсказания которого является аффинное предсказание. Для целей иллюстрации, когда типами режимов предсказания по меньшей мере двух соседних блоков является аффинный режим, набор возможных режимов предсказания для блока, который должен кодироваться, содержит режим аффинного объединения; в противном случае, набор возможных режимов предсказания для блока, который должен кодироваться, не содержит режим аффинного объединения. Альтернативно, количество соседних блоков, для которых типом предсказания является аффинный режим, также может быть равно по меньшей мере трем или по меньшей мере четырем и никакое ограничение на это не накладывается.
Дополнительно, следует понимать, что в различных возможных реализациях в этом варианте осуществления представленного изобретения, для целей иллюстрации, такой как пятая возможная реализация, определяют, удовлетворяются ли два условия: (1) существует ли среди соседних реконструированных блоков блок, типом предсказания которого является аффиный режим; и (2) существуют ли ширина и высота соседнего блока в аффинном режиме, которые меньше ширины и высоты блока, который должен кодироваться. Второе условие определения, для целей иллюстрации, может также заключаться в том, являются ли ширина и высота соседнего блока в аффинном режиме меньшими, чем 1/2, 1/3 или 1/4 ширины и высоты блока, который должен кодироваться, при условии, что это соответствует стороне кодирования, и никакое ограничение на это не накладывается.
Дополнительно, следует понимать, что то, что в этом варианте осуществления представленного изобретения информация указания устанавливается равной 0 или 1, соответствует стороне кодирования.
S420. Синтаксически анализируют битовый поток, чтобы получить первую информацию указания.
Первая информация указания указывает информацию об индексе режима предсказания блока, который должен декодироваться. Этот этап соответствует этапу S240 на стороне кодирования.
S430. Определяют в наборе возможных режимов предсказания режим предсказания для блока изображения, который должен обрабатываться, в соответствии с первой информацией указания.
Другие наборы возможных режимов предсказания соответствуют другим перечням режимов предсказания. Перечень режимов предсказания, соответствующий набору возможных режимов предсказания, определенному на этапе S410, ищут в соответствии с информацией об индексе, полученной на этапе S420, так чтобы мог быть найден режим предсказания для блока, который должен декодироваться.
S440. Определяют предсказанный режим блока изображения, который должен обрабатываться, в соответствии с режимом предсказания.
Конкретный способ подобен этапу S230 и его подробности здесь повторно не описываются.
На фиг. 10 представлена блок-схема примера другого видеодекодера 60 для декодирования видеоданных, соответствующего одной или более технологиям представленного изобретения.
Видеодекодер 60 содержит: первый модуль 61 определения, первый модуль 62 синтаксического анализа, второй модуль 63 определения и третий модуль 64 определения.
Первый модуль 61 определения выполнен с возможностью осуществления этапа S410 определения в соответствии с информацией о соседних блоках изображения, находящихся рядом с блоком изображения, который должен обрабатываться, содержит ли режим аффинного объединения набор возможных режимов предсказания для блока изображения, который должен обрабатываться.
Модуль 62 синтаксического анализа выполнен с возможностью осуществления этапа S420 синтаксического анализа битового потока, чтобы получить первую информацию указания.
Второй модуль 63 определения выполнен с возможностью осуществления этапа S430 определения в наборе возможных режимов предсказания режима предсказания для блока изображения, который должен обрабатываться, в соответствии с первой информацией указания.
Третий модуль 64 определения выполнен с возможностью осуществления этапа S440 определения предсказанного изображения блока изображения, который должен обрабатываться, в соответствии с режимом предсказания.
Поскольку информация о движении соседних блоков коррелирована, существует очень большая вероятность, что текущий блок и соседний блок имеют один и тот же или схожий режим предсказания. В этом варианте осуществления представленного изобретения информацию о режиме предсказания текущего блока получают путем определения информации о соседних блоках, снижая битовую скорость кодирования режима предсказания и повышая, тем самым, эффективность кодирования.
На фиг. 11 представлена блок-схема последовательности выполнения примера операций 500 видеодекодера 40, для декодирования видеоданных, соответствующих одной или более технологиям представленного изобретения. Фиг. 11 представлен в качестве примера. В другом примере, технологии представленного изобретения могут быть реализованы, используя больше, меньше или другие этапы, отличные от показанных в примере на фиг. 11. В соответствии с примерным способом, показанным на фиг. 11, видеодекодер 20 выполняет следующие этапы.
S510. Синтаксически анализируют битовый поток, чтобы получить первую информацию указания.
Первая информация указания указывает, содержит ли набор возможных режимов предсказания для первой области изображения, которая должна обрабатываться, модель аффинного движения. Этот этап соответствует этапу S310 на стороне кодирования.
S520. Определяют набор возможных режимов предсказания для первой области изображения, которая должна обрабатываться, в соответствии с первой информацией указания.
Когда первая область изображения равна 0, набор возможных трансляционных режимов используется в качестве набора возможных режимов для первой области изображения, которая должна обрабатываться, где трансляционный режим указывает режим предсказания, в котором предсказанное изображение получают, используя трансляционную модель. Когда первая информация указания равна 1, набор возможных трансляционных режимов и набор возможных аффинных режимов используются в качестве набора возможных режимов для первой области изображения, которая должна обрабатываться, где аффинный режим указывает режим предсказания, в котором предсказанное изображение получают, используя аффинную модель. Первая область изображения, которая должно обрабатываться, может быть одной из следующих: группа кадров изображения, кадр изображения, набор мозаичных элементов изображения, набор срезов изображения, мозаичный элемент изображения, срез изображения, набор блоков кодирования изображения или блок кодирования изображения. Соответственно, первую информацию указания кодируют в заголовке группы кадров изображения, например, набора видеопараметров (video parameter set, VPS), набора параметров последовательности (sequence parameter set, SPS), в дополнительной информации по улучшению (supplemental enhancement information, SEI) или в заголовке кадра изображения, или, например, в наборе параметров изображения (image parameter set, PPS), в заголовке набора мозаичных элементов изображения, в заголовке набора срезов изображения или в заголовке мозаичного элемента изображения или, например, в заголовке мозаичного элемента изображения (tile header), в заголовке среза изображения (slice header), в заголовке набора блоков кодирования изображения или в заголовке блока кодирования изображения.
Следует понимать, что первая область изображения, которая должна обрабатываться на этом этапе, может быть заранее конфигурирована или может определяться адаптивно в процессе кодирования. Представление о диапазоне первой области изображения, которая должна обрабатываться, можно получить из протокола на стороне кодирования/декодирования или диапазон первой области изображения, может быть принят в битовом потоке со стороны кодирования при условии, что это соответствует стороне кодирования, и никакого ограничения в этом отношении не накладывается.
Дополнительно следует понимать, что в этом варианте осуществления представленного изобретения то, что информация указания устанавливается равной 0 или 1, служит для иллюстративных целей при условии, что это соответствует стороне кодирования.
S530. Синтаксически анализируют битовый поток, чтобы получить вторую информацию указания.
Вторая информация указания указывает режим предсказания для блока, который должен обрабатываться, в первой области изображения, которая должна обрабатываться. Этот этап соответствует этапу S340 на стороне кодирования.
S540. Определяют в наборе возможных режимов предсказания для первой области изображения, которая должна обрабатываться, режим предсказания для блока изображения, который должен обрабатываться, в соответствии со второй информацией указания.
Конкретный способ подобен этапу S320 и его подробности здесь повторно не описываются.
S550. Определяют предсказанный режим блока изображения, который должен обрабатываться, в соответствии с режимом предсказания.
Конкретный способ подобен этапу S330 и его подробности здесь повторно не описываются.
На фиг. 12 представлена блок-схема примера другого видеодекодера 70, для декодирования видеоданных, соответствующего одной или более технологиям представленного изобретения.
Видеодекодер 70 содержит: первый модуль 71 синтаксического анализа, первый модуль 72 определения, второй модуль 73 синтаксического анализа, второй модуль 74 кодирования и третий модуль75 определения.
Модуль 71 синтаксического анализа выполнен с возможностью осуществления этапа S510 синтаксического анализа битового потока, чтобы получить первую информацию указания.
Первый модуль 72 определения выполнен с возможностью осуществления этапа S520 определения набора возможных режимов для первой области изображения, которая должна обрабатываться, в соответствии с первой информацией указания.
Второй модуль 73 синтаксического анализа выполнен с возможностью осуществления этапа S530 синтаксического анализа битового потока для получения второй информации указания.
Второй модуль 74 определения выполнен с возможностью осуществления этапа S540 определения в наборе возможных режимов предсказания для первой области изображения, которая должна обрабатываться, режима предсказания для блока изображения, который должен обрабатываться, в соответствии со второй информацией указания.
Третий модуль 75 определения выполнен с возможностью осуществления этапа S550 определения предсказанного изображения блока изображения, который должен обрабатываться, в соответствии с режимом предсказания.
Поскольку информация о движении соседних блоков коррелирована, существует очень большая вероятность, что в той же области существует только трансляционное движение, а аффинное движение отсутствует. В этом варианте осуществления представленного изобретения установлен набор возможных режимов предсказания, обозначающий уровень области, без использования битовой скорости кодирования избыточного режима, повышая, тем самым, эффективность кодирования.
В одном или более вариантах осуществления описанные функции могут быть реализованы посредством аппаратных средств, программного обеспечения, встроенного программного обеспечения или любого их сочетания. Если функции реализуются посредством программного обеспечения, функции могут храниться на считываемом компьютером носителе в качестве одной или более команд или управляющей программы или передаваться считываемым компьютером носителем и выполняться блоком процессора, основанным на аппаратных средствах. Считываемый компьютером носитель может содержать считываемый компьютером носитель запоминающего устройства (который соответствует физическому носителю, такому как носитель данных запоминающего устройства) или носитель связи. Носитель Носитель связи содержит, например, любой носитель, который производит передачу данных, используя компьютерную программу, из какого-либо места в другое место в соответствии с протоколом связи. Таким образом, считываемый компьютером носитель, в целом, может соответствовать: (1) непереносному физическому считываемому компьютером носителю запоминающего устройства или (2) носителю связи, такому как сигнал или несущая. Носитель запоминающего устройства может быть любым доступным носителем, к которому может получать доступ один или более компьютеров или один или более процессоров, чтобы восстановить команду, управляющую программу и/или структуру данных для реализации технологий, описанных в представленном изобретении. Компьютерный программный продукт может содержать считываемый компьютером носитель.
Для примера, но не для ограничения, некоторые считываемые компьютером носители могут содержать оперативную память (RAM), постоянную память (ROM), электрически стираемую программируемую постоянную память (EEPROM), компакт-диск (CD-ROM), другое запоминающее устройство на оптических дисках для хранения данных или запоминающее устройство на магнитных дисках, другое магнитное запоминающее устройство, флэш-память или любой другой носитель, который может хранить управляющую программу в форме команды или структуры данных и может быть доступен компьютеру для доступа. Кроме того, любое подключение может, соответственно, рассматриваться как считываемый компьютером носитель. Например, если с веб-сайта, сервера или от другого удаленного источника передается команда, используя коаксиальный кабель, оптический кабель, витую пару, цифровую абонентскую линию (digital subscriber line, DSL) или беспроводную технологию (например, инфракрасный свет, радиоволны или микроволны), коаксиальный кабель, оптический кабель, витая пара, DSL или беспроводная технология (например, инфракрасный свет, радиоволны или микроволны) содержатся в определении носителя. Однако, следует понимать, что считываемый компьютером носитель данных и носитель запоминающего устройства данных могут не содержать соединение, несущую, сигнал или другой переносной носитель, но являться непереносным физическим носителем для хранения данных. Диск и оптический диск, используемые в настоящем описании, содержат компакт-диск (compact disc, CD), лазерный диск, оптический диск, универсальный цифровой диск (digital versatile disc, DVD), дискету и диск Blu-ray, причем диск обычно копирует данные магнитным способом, а оптический диск копирует данные оптическим способом, используя лазер. Сочетание перечисленных выше объектов будет дополнительно внесено в объем защиты считываемого компьютером носителя.
Команда может выполняться одним или более процессорами, такими как один или более цифровых сигнальных процессоров (digital signal processor, DSP), универсальный микропроцессор, специализированная интегральная схема (application-specific integrated circuit, ASIC), программируемая логическая интегральная схема (field programmable gate array, FPGA) или другая эквивалентная интегрированная или дискретная логическая схема. Поэтому, термин "процессор", используемый в настоящем описании, может относиться к описанной выше структуре или к любой другой структуре, которая может применяться для реализации представленных в этом описании технологий. Кроме того, в некоторых вариантах функциональные возможности, представленные в настоящем описании, могут быть обеспечены в специализированных аппаратных средствах и/или в модуле программного обеспечения, выполненных с возможностью кодирования и декодирования, или могут быть введены в объединенный кодер-декодер. Кроме того, технологии могут быть полностью реализованы в одной или более схемах или логических элементах.
Технологии, описанные в представленном изобретении, могут быть широко реализованы многочисленными устройствами или установками. Устройства или установки содержат миниатюрную радиостанцию, интегральную схему (integrated circuit, IC) или набор IC (например, набор микросхем). В представленном изобретении различные компоненты, модули и блоки описываются, чтобы подчеркнуть функции устройства, которое выполнено с возможностью реализации раскрытых технологий, но функции не обязательно требуется реализовывать различными блоками аппаратных средств. Точнее, как описано выше, различные блоки могут объединяться в аппаратный блок кодера-декодера или могут обеспечиваться с помощью набора способных к взаимодействию аппаратных средств (содержащих один или более процессоров, описанных выше) с соответствующим программным обеспечением и встроенным программным обеспечением.
Следует понимать, что "один из вариантов осуществления" или "вариант осуществления", упоминаемые повсеместно в описании, означают, что конкретные признаки, структуры или характеристики, связанные с вариантом осуществления, содержатся по меньшей мере в одном из вариантов осуществления представленного изобретения. Поэтому выражение "в одном из вариантов осуществления" или "в варианте осуществления", встречающееся в описании, не обязательно относится к одному и тому же варианту осуществления. Кроме того, эти конкретные признаки, структуры или характеристики могут объединяться в одном или более вариантах осуществления, используя любой соответствующий способ.
Следует понимать, что в различных вариантах осуществления представленного изобретения последовательные номера перечисленных выше процессов не означают последовательности выполнения и не должны истолковываться как какое-либо ограничение в процессах реализации вариантов осуществления представленного изобретения. Последовательности выполнения процессов должны определяться в соответствии с функциями и внутренней логикой процессов.
Кроме того, термины "система" и "сеть" в этом описании могут использоваться как взаимозаменяющие. Термин "и/или" в этом описании описывает только соотношение связи для описания связанных объектов и представляет, что могут существовать три взаимосвязи. Например, А и/или В может представлять следующие три случая: Существует только А, А и В существуют одновременно и существует только В. Кроме того, символ "/" в этом описании обычно указывает соотношение "или" между связанными объектами.
Следует понимать, что в вариантах осуществления настоящей заявки "В соответствует А" указывает, что В связано с А и В может определяться в соответствии с А. Однако дополнительно должно быть понятно, что определение А, соответствующего В, на означает, что В определяться только в соответствии с А; и В может также определяться в соответствии с А и/или другой информацией.
Специалисты в данной области техники могут знать, что совместно с примерами, описанными в вариантах осуществления, раскрытых в настоящем описании, блоки и этапы алгоритма могут быть реализованы электронными аппаратными средствами, компьютерным программным обеспечением или их сочетанием. Чтобы ясно определить возможность совместного функционирования между аппаратными средствами и программным обеспечением, ранее были, в целом, описаны составы и этапы каждого примера, соответствующего функциям. Выполняются ли функции аппаратными средствами или программным обеспечением, зависит от конкретных применений и условий конструктивных ограничений технических решений. Специалисты в данной области техники могут использовать различные способы для реализации описанных функций при каждом конкретном применении, но это не должно рассматриваться как реализация, выходящая за рамки объема представленного изобретения.
Специалистам в данной области техники может быть очевидно, что в целях удобства и краткости описания для более подробного описания технологического процесса описанных выше системы, устройства и блока ссылка, может делаться на соответствующий процесс в описанных выше вариантах осуществления способа и подробности здесь повторно не описываются.
В нескольких вариантах осуществления, представленных в настоящей заявке, следует понимать, что раскрытые система, устройство и способ могут быть реализованы другими способами. Например, описанный вариант осуществления устройства является просто примерным. Например, деление блоков является просто логическим функциональным делением и при реальном осуществлении возможно другое деление. Например, множество блоков или компонент могут объединяться или интегрироваться в другую систему или некоторые признаки могут игнорироваться или не выполняться. Кроме того, отображаемые или обсуждаемые взаимосвязи или прямые связи или связные соединения между устройствами могут реализовываться, используя некоторые интерфейсы. Косвенные связи или связные соединения между устройствами или блоками могут быть реализованы в электрической, механической или других формах.
Блоки, описанные как отдельные части, могут или не могут быть физически разделенными и части, отображаемые как блоки, могут быть или не быть физическими блоками, могут располагаться в одном месте или могут быть распределены по множеству сетевых блоков. Некоторые или все блоки могут выбираться в соответствии с реальными потребностями, чтобы достигнуть задач решений вариантов осуществления.
Кроме того, функциональные блоки в вариантах осуществления представленного изобретения могут интегрироваться в блок процессора или каждый из блоков может физически существовать отдельно или два или более блоков интегрируются в один блок.
Приведенные выше описания является просто конкретными реализациями представленного изобретения и не предназначено ограничивать объем защиты представленного изобретения. Любое изменение или замена, с легкостью определенные специалистами в данной области техники в рамках технического объема, раскрытого в представленном изобретении, будут попадать в границы объема защиты представленного изобретения. Поэтому объем защиты настоящего изобретения является предметом объема защиты формулы изобретения.
название | год | авторы | номер документа |
---|---|---|---|
СПОСОБ И УСТРОЙСТВО ПРЕДСКАЗАНИЯ ИЗОБРАЖЕНИЙ | 2016 |
|
RU2697726C1 |
Способ и устройство для видеокодирования | 2020 |
|
RU2789146C1 |
ВЫВЕДЕНИЕ ВЕКТОРА ДВИЖЕНИЯ ПРИ ВИДЕОКОДИРОВАНИИ | 2016 |
|
RU2742298C2 |
ВЫВОД ИНФОРМАЦИИ ДВИЖЕНИЯ ДЛЯ ПОДБЛОКОВ ПРИ ВИДЕОКОДИРОВАНИИ | 2016 |
|
RU2705428C2 |
ГЕНЕРИРОВАНИЕ ДОПОЛНИТЕЛЬНЫХ КАНДИДАТОВ ДЛЯ СЛИЯНИЯ | 2012 |
|
RU2577779C2 |
ОПРЕДЕЛЕНИЕ РЕЖИМА ВЫВОДА ИНФОРМАЦИИ ДВИЖЕНИЯ ПРИ ВИДЕОКОДИРОВАНИИ | 2016 |
|
RU2719296C2 |
УКАЗАНИЕ ИСПОЛЬЗОВАНИЯ ПАРАЛЛЕЛЬНОЙ ВОЛНОВОЙ ОБРАБОТКИ В КОДИРОВАНИИ ВИДЕО | 2012 |
|
RU2609073C2 |
ЗАПОЛНЕНИЕ КРАЕВЫХ ПИКСЕЛОВ НЕИНФОРМАТИВНЫМИ СИМВОЛАМИ ДЛЯ ВНУТРЕННЕГО ПРЕДСКАЗАНИЯ ПРИ КОДИРОВАНИИ ВИДЕОСИГНАЛА | 2012 |
|
RU2575412C2 |
ФИЛЬТР АДАПТИВНОГО СМЕЩЕНИЯ ЦЕНТРАЛЬНОЙ ПОЛОСЫ ДЛЯ ВИДЕОКОДИРОВАНИЯ | 2012 |
|
RU2575418C2 |
ОПРЕДЕЛЕНИЕ РАЗМЕРА ПАЛИТРЫ, ЗАПИСЕЙ ПАЛИТРЫ И ФИЛЬТРОВАНИЕ БЛОКОВ, КОДИРОВАННЫХ НА ОСНОВЕ ПАЛИТРЫ, ПРИ КОДИРОВАНИИ ВИДЕО | 2015 |
|
RU2678490C2 |
Изобретение относится к способу и устройству предсказания изображения. Технический результат заключается в снижении битовой скорости кодирования режима предсказания, повышая, тем самым, эффективность кодирования. Способ предсказания изображения содержит этапы, на которых: определяют в соответствии с информацией о соседних блоках изображения, находящихся рядом с блоком изображения, который должен обрабатываться, содержит ли набор возможных режимов предсказания для блока изображения, который должен обрабатываться, режим аффинного объединения, где режим аффинного объединения указывает, что соответствующие предсказанные изображения блока изображения, который должен обрабатываться, и соседние блоки изображения блока изображения, который должен обрабатываться, получают, используя одну и ту же аффинную модель; проводят синтаксический анализ битового потока, чтобы получить первую информацию указания; определяют в наборе возможных режимов предсказания режим предсказания для блока изображения, который должен обрабатываться, в соответствии с первой информацией указания; и определяют предсказанное изображение блока изображения, который должен обрабатываться, в соответствии с режимом предсказания. 8 н. и 15 з.п. ф-лы, 12 ил.
1. Способ декодирования предсказанного изображения, содержащий этапы, на которых:
определяют набор возможных режимов предсказания, блока изображения подлежащего обработке, на основе информации о соседних блоках изображения являющихся соседними к блоку подлежащему обработке, причем информацией о соседних блоках изображения является режимы предсказания соседних блоков изображения, при этом, когда режим предсказания по меньшей мере одного из соседних блоков изображения получает режим предсказания с использованием аффинной модели, набор возможных режимов предсказания содержит режим аффинного объединения, иначе набор возможных режимов предсказания не содержит режим аффинного объединения, при этом режим аффинного объединения указывает, что соответствующие предсказанным изображениям блока изображения подлежащего обработке и соседние блоки изображения, для блока изображения подлежащего обработке получены с использованием той же аффинной модели;
определяют в наборе возможных режимов предсказания режим предсказания для блока изображения, подлежащего обработке; и
определяют предсказанное изображение блока изображения, подлежащего обработке, в соответствии с определенным режимом предсказания.
2. Способ по п. 1, в котором соседние, для блока изображения, подлежащего обработке, блоки изображения, содержат по меньшей мере соседние блоки изображения сверху, слева, сверху справа, снизу слева и сверху слева от блока изображения, подлежащего обработке.
3. Способ по п. 1, в котором аффинная модель содержит шести параметричную аффинную модель и четырех параметричную аффинную модель.
4. Способ по п. 1, в котором содержит ли набор возможных режимов предсказания блока изображения подлежащего обработке режим аффинного объединения определяется в соответствии с шириной и высотой блока изображения.
5. Способ по п. 4, в котором набор возможных режимов предсказания блока изображения подлежащего обработке содержит режим аффинного объединения, когда ширина и высота выше заданных значений.
6. Устройство декодирования предсказанного изображения, содержащее:
первый блок определения для определения набора возможных режимов предсказания, блока изображения подлежащего обработке, на основе информации о соседних блоках изображения являющихся соседними к блоку подлежащему обработке, причем информацией о соседних блоках изображения являются режимы предсказания соседних блоков изображения, при этом, когда режим предсказания по меньшей мере одного из соседних блоков изображения получает режим предсказания с использованием аффинной модели, набор возможных режимов предсказания содержит режим аффинного объединения, иначе набор возможных режимов предсказания не содержит режим аффинного объединения, при этом режим аффинного объединения указывает, что соответствующие предсказанным изображениям блока изображения подлежащего обработке и соседние блоки изображения, для блока изображения подлежащего обработке, получены с использованием той же аффинной модели;
второй блок определения для определения в наборе возможных режимов предсказания режима предсказания для блока изображения, подлежащего обработке; и
третий блок определения для определения предсказанного изображения блока изображения, подлежащего обработке, в соответствии с определенным режимом предсказания.
7. Устройство по п. 6, в котором соседние, для блока изображения, подлежащего обработке, блоки изображения, содержат по меньшей мере соседние блоки изображения сверху, слева, сверху справа, снизу слева и сверху слева от блока изображения, подлежащего обработке.
8. Устройство по п. 6, в котором аффинная модель содержит шести параметричную аффинную модель и четырех параметричную аффинную модель.
9. Устройство по п. 6, в котором содержит ли набор возможных режимов предсказания блока изображения подлежащего обработке режим аффинного объединения определяется в соответствии с шириной и высотой блока изображения.
10. Устройство по п. 9, в котором набор возможных режимов предсказания блока изображения подлежащего обработке содержит режим аффинного объединения, когда ширина и высота выше заданных значений.
11. Устройство декодирования предсказанного изображения, содержащее:
первый модуль синтаксического анализа для выполнения синтаксического анализа потока битов для получения первой информации указания;
первый модуль определения для определения набора возможных режимов предсказания первой области изображения подлежащей обработке, в соответствии с информацией указания, при этом
аффинный режим отсутствует в наборе возможных режимов предсказания для первой области изображения подлежащей обработке, когда первая информация указания равна 0; или аффинный режим содержится в наборе возможных режимов предсказания для первой области изображения подлежащей обработке, когда первая информация указания равна 1;
второй модуль определения для определения, в наборе возможных режимов предсказания для первой области изображения подлежащей обработке, режима предсказания для блока изображения подлежащего обработке, причем блок изображения подлежащий обработке принадлежит первой области изображения подлежащей обработке; и
третий блок определения для определения предсказанного изображения блока изображения подлежащего обработке в соответствии с режимом предсказания.
12. Устройство по п. 11, в котором первая область подлежащая обработке содержит одно из группы фреймов изображения, фрейма изображения, набора элементов мозаики изображения, набора срезов изображения, элемента мозаики изображения, среза изображения, набора блоков кодирования изображения или блока кодирования изображения.
13. Способ декодирования предсказанного изображения, содержащий этапы, на которых:
выполняют синтаксический анализ потока битов для получения первой информации указания;
определяют набор возможных режимов предсказания первой области изображения подлежащей обработке, в соответствии с информацией указания, при этом
аффинный режим отсутствует в наборе возможных режимов предсказания для первой области изображения подлежащей обработке, когда первая информация указания равна 0; или аффинный режим содержится в наборе возможных режимов предсказания для первой области изображения подлежащей обработке, когда первая информация указания равна 1;
определяют, в наборе возможных режимов предсказания для первой области изображения подлежащей обработке, режим предсказания для блока изображения подлежащего обработке, причем блок изображения подлежащий обработке принадлежит первой области изображения подлежащей обработке; и
определяют предсказанное изображение блока изображения подлежащего обработке в соответствии с режимом предсказания.
14. Способ по п. 13, в котором первая область подлежащая обработке содержит одно из группы фреймов изображения, фрейма изображения, набора элементов мозаики изображения, набора срезов изображения, элемента мозаики изображения, среза изображения, набора блоков кодирования изображения или блока кодирования изображения.
15. Способ кодирования предсказанного изображения, содержащий этапы, на которых:
определяют набор возможных режимов предсказания для блока изображения подлежащего обработке, на основе информации о соседних блоках изображения являющихся соседними к блоку подлежащему обработке, причем информацией о соседних блоках изображения являются режимы предсказания соседних блоков изображения, при этом, когда режим предсказания по меньшей мере одного из соседних блоков изображения получает режим предсказания с использованием аффинной модели, набор возможных режимов предсказания содержит режим аффинного объединения, иначе набор возможных режимов предсказания не содержит режим аффинного объединения, при этом режим аффинного объединения указывает, что соответствующие предсказанным изображениям блока изображения подлежащего обработке и соседние блоки изображения, для блока изображения подлежащего обработке получены с использованием той же аффинной модели;
определяют, в наборе возможных режимов предсказания, режим предсказания для блока изображения, подлежащего обработке;
определяют предсказанное изображение блока изображения, подлежащего обработке, в соответствии с определенным режимом предсказания; и
кодируют первую информацию указания в поток битов, причем первая информация указания указывает режим предсказания и используется декодером для декодирования предсказываемого изображения в соответствии со способом по любому из пп. 1-5.
16. Способ по п. 15, в котором соседние, для блока изображения, подлежащего обработке, блоки изображения, содержат по меньшей мере соседние блоки изображения сверху, слева, сверху справа, снизу слева и сверху слева от блока изображения, подлежащего обработке.
17. Способ по п. 15, в котором аффинная модель содержит шести параметричную аффинную модель и четырех параметричную аффинную модель.
18. Способ по п. 15, в котором содержит ли набор возможных режимов предсказания блока изображения подлежащего обработке режим аффинного объединения определяется в соответствии с шириной и высотой блока изображения.
19. Способ по п. 18, в котором набор возможных режимов предсказания блока изображения подлежащего обработке содержит режим аффинного объединения, когда ширина и высота выше заданных значений.
20. Способ кодирования предсказанного изображения, содержащий этапы, на которых:
аффинный режим отсутствует в наборе возможных режимов предсказания для первой области изображения подлежащей обработке, когда первая информация указания равна 0; или аффинный режим содержится в наборе возможных режимов предсказания для первой области изображения подлежащей обработке, когда первая информация указания равна 1;
определяют, в наборе возможных режимов предсказания для первой области изображения подлежащей обработке, режим предсказания для блока изображения подлежащего обработке, причем блок изображения подлежащий обработке принадлежит первой области изображения подлежащей обработке; и
определяют предсказанное изображение блока изображения подлежащего обработке в соответствии с режимом предсказания; и
кодируют вторую информацию указания в поток битов, причем вторая информация указания указывает режим предсказания и используется декодером для декодирования предсказываемого изображения в соответствии со способом по любому из пп. 6-10.
21. Способ по п. 20, в котором первая область подлежащая обработке содержит одно из группы фреймов изображения, фрейма изображения, набора элементов мозаики изображения, набора срезов изображения, элемента мозаики изображения, среза изображения, набора блоков кодирования изображения или блока кодирования изображения.
22. Энергонезависимый носитель информации, хранящий инструкции, вызывающие, при исполнении процессором, выполнение, процессором, этапов способа декодирования по любому из пп. 1-5, 13 и 14.
23. Энергонезависимый носитель информации, хранящий инструкции, вызывающие, при исполнении процессором, выполнение, процессором, этапов способа кодирования по любому из пп. 15-21.
US 20110176014 A1, 21.07.2011 | |||
ВНУТРЕННЕЕ ПРЕДСКАЗАНИЕ БЛОЧНОГО КОПИРОВАНИЯ С АСИММЕТРИЧНЫМИ РАЗДЕЛАМИ И СХЕМАМИ ПОИСКА НА СТОРОНЕ КОДЕРА, ДИАПАЗОНЫ ПОИСКА И ПОДХОДЫ К РАЗДЕЛЕНИЮ | 2015 |
|
RU2683165C1 |
Быстрооткрываемый затвор для сосудов и аппаратов | 1983 |
|
SU1158806A1 |
US 20130279577 A1, 24.10.2013 | |||
УСТРОЙСТВО КОДИРОВАНИЯ ИЗОБРАЖЕНИЯ, СПОСОБ КОДИРОВАНИЯ ИЗОБРАЖЕНИЯ, УСТРОЙСТВО ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЯ, СПОСОБ ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЯ, ПРОГРАММА И ЗАПОМИНАЮЩИЙ НОСИТЕЛЬ | 2008 |
|
RU2496252C2 |
Авторы
Даты
2023-10-09—Публикация
2016-09-08—Подача