[0001] Настоящая заявка испрашивает приоритет на основании патентной заявки Китая № 201910341218.6, поданной в Национальное управление интеллектуальной собственности Китая 25 апреля 2019 г. и озаглавленной «СПОСОБ И УСТРОЙСТВО КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ ВИДЕО ИЗОБРАЖЕНИЙ», которая полностью включена в настоящий документ посредством ссылки.
[0002] Настоящая заявка испрашивает приоритет на основании патентной заявки Китая № 201910474007.X, поданной в Национальное управление интеллектуальной собственности Китая 2 июня 2019 г. и озаглавленной « СПОСОБ И УСТРОЙСТВО ПРОГНОЗИРОВАНИЯ ИЗОБРАЖЕНИЙ, СЧИТЫВАЕМЫЙ КОМПЬЮТЕРОМ НОСИТЕЛЬ ДАННЫХ», которая полностью включена в настоящий документ посредством ссылки.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[0003] Настоящая заявка относится к области технологий кодирования видео, а более конкретно, к способу и устройству прогнозирования изображения, а также к считываемому компьютером носителю данных.
УРОВЕНЬ ТЕХНИКИ
[0004] Возможности цифрового видео могут быть включены в самые разные устройства, включая цифровое телевидение, систему цифрового прямого вещания, систему беспроводного вещания, карманный персональный компьютер (PDA, personal digital assistant , КПК), портативный или настольный компьютер, планшет, устройство для чтения электронных книг, цифровую камеру, цифровое записывающее устройство, цифровой медиаплеер, устройство для видеоигр, игровую консоль, сотовый или спутниковый радиотелефон (а именно «смартфон»), устройство для видеоконференцсвязи, устройство потоковой передачи видео и т.п. Цифровое видеоустройство реализует технологии сжатия видео, такие как технологии сжатия видео, описанные в стандартах, определенных в MPEG-2, MPEG-4, ITU-T H. 263 и ITU-T H.264/MPEG-4, часть 10, усовершенствованное кодирование видео (AVC, advanced video coding), стандарт кодирования видео H.265/стандарт высокоэффективного кодирования видео (high efficiency video coding, HEVC) и расширения таких стандартов. Видеоустройство может более эффективно передавать, принимать, кодировать, декодировать и/или хранить цифровую видеоинформацию за счет реализации таких технологий сжатия видео.
[0005] Технологии сжатия видео используются для выполнения пространственного (внутри изображения) прогнозирования и/или временного (между изображениями) прогнозирования, чтобы уменьшить или удалить присущую избыточность в видеопоследовательностях. При блочном кодировании видео фрагмент видео (а именно, видеокадр или часть видеокадра) может быть разделен на блоки изображения, и блок изображения также может называться древовидным блоком, блоком кодирования (CU, coding unit) и/или узлом кодирования. Блок изображения в подлежащем внутрикадровому кодированию (I) фрагменте изображения кодируется посредством пространственного прогнозирования на основе опорной выборки в соседнем блоке в том же самом изображении. Для блока изображения в фрагменте изображения, подлежащего внутрикадровому кодированию (P или B), пространственное прогнозирование на основе опорной выборки в соседнем блоке в том же изображении или временное прогнозирование на основе опорной выборки в другом опорном изображении может быть использовано. Изображение может называться кадром, а опорное изображение может называться опорным кадром.
[0006] Когда для прогнозирования блока изображения используется режим слияния, обычно существует множество опциональных режимов слияния. В традиционном решении режим слияния, применимый к текущему блоку изображения, обычно определяется из множества возможных режимов слияния один за другим. Когда режим слияния недоступен, продолжает определяться, доступен ли следующий режим слияния. В традиционном решении существует избыточность, когда режим слияния, применимый к текущему блоку, определяется из двух последних оставшихся режимов слияния.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0007] Настоящая заявка обеспечивает способ и устройство прогнозирования изображения, а также считываемый компьютером носитель данных, чтобы уменьшить избыточность в процессе прогнозирования изображения, насколько это возможно.
[0008] Согласно первому аспекту обеспечивается способ прогнозирования изображения. Способ включает в себя: определение того, используется ли режим слияния для текущего блока изображения; когда режим слияния используется для текущего блока изображения, продолжение определения того, доступен ли режим слияния уровня-1; когда режим слияния уровня-1 недоступен, и элемент синтаксиса высокого уровня, соответствующий первому режиму слияния, указывает, что первый режим слияния запрещено использовать, определение второго режима слияния как целевого режима слияния, применимого к текущему блоку изображения; и прогнозирование текущего блока изображения на основе целевого режима слияния.
[0009] И первый режим слияния, и второй режим слияния принадлежат режиму слияния уровня-2, и режим слияния уровня-2 включает в себя первый режим слияния и второй режим слияния. Кроме того, для текущего блока изображения режим слияния уровня-1 и режим слияния уровня-2 уже включают в себя все опциональных режимы слияния текущего блока изображения, и для текущего блока изображения необходимо определить окончательный целевой режим слияния из режима слияния уровня-1 и режима слияния уровня-2.
[0010] Необязательно, приоритет режима слияния уровня-1 выше, чем приоритет режима слияния уровня-2.
[0011] То, что приоритет режима слияния уровня-1 выше, чем приоритет режима слияния уровня-2, означает, что в процессе определения целевого режима слияния текущего блока изображения целевой режим слияния предпочтительно определяется из режим слияния уровня-1. Если нет доступного режима слияния в режиме слияния уровня-1, целевой режим слияния затем определяется из режима слияния уровня-2.
[0012] Необязательно, определение того, используется ли режим слияния для текущего блока изображения, включает в себя: когда merge_flag, соответствующий текущему блоку изображения, равен 1, определение, что режим слияния используется для текущего блока изображения; и когда merge_flag, соответствующий текущему блоку изображения, равен 0, определение, что режим слияния не используется для текущего блока изображения.
[0013] Следует понимать, что когда определено, что режим слияния не используется для текущего блока изображения, для прогнозирования текущего блока изображения может использоваться другой режим, отличный от режима слияния. Например, когда определено, что режим слияния не используется для текущего блока изображения, режим AMVP с расширенным вектором движения может использоваться для прогнозирования текущего блока изображения.
[0014] В настоящей заявке, когда элемент синтаксиса высокого уровня первого режима слияния указывает, что использование первого режима слияния запрещено, нет необходимости анализировать информацию о доступном статусе оставшегося второго режима слияния, и второй режим слияния может напрямую определяться как окончательный целевой режим слияния. Это может уменьшить, насколько это возможно, избыточность, создаваемую из-за определения целевого режима слияния в процессе прогнозирования изображения.
[0015] Необязательно, способ дополнительно включает в себя: определение, доступен ли режим слияния уровня-1.
[0016] В частности, то, доступен ли режим слияния уровня-1, определяется на основе элемента синтаксиса высокого уровня, соответствующего режиму слияния уровня-1, и/или информации о доступном статусе, соответствующей режиму слияния уровня-1.
[0017] Что касается первого аспекта, в некоторых реализациях первого аспекта, когда режим слияния уровня-1 недоступен, и элемент синтаксиса высокого уровня, соответствующий первому режиму слияния, указывает, что разрешено использовать первый режим слияния, целевой режим слияния определяется на основе элемента синтаксиса высокого уровня, соответствующего второму режиму слияния, и/или информации о доступном статусе второго режима слияния.
[0018] Информация о доступном статусе второго режима слияния используется, чтобы указать, используется ли второй режим слияния, когда прогнозируется текущий блок изображения.
[0019] Например, второй режим слияния - это режим CIIP, а информация о доступном статусе второго режима слияния - это значение ciip_flag. Когда ciip_flag равно 0, режим CIIP недоступен для текущего блока изображения. Когда ciip_flag равно 1, режим CIIP доступен для текущего блока изображения.
[0020] Следует понимать, что для режима CIIP, если режим CIIP должен быть выбран в качестве целевого режима слияния, элемент синтаксиса высокого уровня, соответствующий CIIP, должен указывать, что режим CIIP разрешен для использования и информация о доступном статусе, указывающая на доступный статус режима CIIP, должна указывать, что CIIP доступен.
[0021] Например, когда sps_ciip_enabled_flag=1 и ciip_flag=1, режим CIIP может быть определен как целевой режим слияния текущего блока изображения.
[0022] Что касается первого аспекта, в некоторых реализациях первого аспекта то, что целевой режим слияния определяется на основе элемента синтаксиса высокого уровня, соответствующего второму режиму слияния, и/или информации о доступном статусе второго режима слияния, включает в себя: когда элемент синтаксиса высокого уровня, соответствующий второму режиму слияния, и/или информация о доступном статусе второго режима слияния указывает/указывают, что второй режим слияния запрещено использовать, первый режим слияния определяется как целевой режим слияния.
[0023] То, что элемент синтаксиса высокого уровня, соответствующий второму режиму слияния, и/или информация о доступном статусе второго режима слияния указывает/указывают, что использование второго режима слияния запрещено, включает в себя:
[0024] Элемент синтаксиса высокого уровня, соответствующий второму режиму слияния, указывает, что второй режим слияния запрещено использовать, и информация о доступном статусе второго режима слияния указывает, что второй режим слияния не может быть использован; и элемент синтаксиса высокого уровня, соответствующий второму режиму слияния, указывает, что второй режим слияния разрешено использовать, и информация о доступном статусе второго режима слияния указывает, что второй режим слияния не может быть использован.
[0025] Необязательно, что целевой режим слияния определяется на основе элемента синтаксиса высокого уровня, соответствующего второму режиму слияния, и/или информации о доступном статусе второго режима слияния, дополнительно включает в себя: когда элемент синтаксиса высокого уровня, соответствующий второму режиму слияния, указывает, что второй режим слияния разрешен для использования, и информация о доступном статусе второго режима слияния указывает, что доступен второй режим слияния, второй режим слияния определяется как целевой режим слияния.
[0026] Что касается первого аспекта, в некоторых реализациях первого аспекта перед тем, как целевой режим слияния будет определен на основе элемента синтаксиса высокого уровня, соответствующего второму режиму слияния, и/или информации о доступном статусе второго режима слияния, способ дополнительно включает в себя: определение того, что выполняется по меньшей мере одно из следующих условий: размер текущего блока изображения соответствует заданному условию; и режим пропуска не используется для прогнозирования текущего блока изображения.
[0027] Другими словами, перед определением целевого режима слияния необходимо дополнительно гарантировать, что размер текущего блока изображения соответствует условию, и режим пропуска не используется для текущего блока изображения. В противном случае для прогнозирования текущего блока изображения может использоваться другой режим, отличный от режима слияния.
[0028] Что касается первого аспекта, в некоторых реализациях первого аспекта то, что размер текущего блока изображения соответствует заданному условию, включает в себя: текущий блок изображения удовлетворяет следующим трем условиям:
(cdWidth * cbHeight) ≥ 64;
cbWidth < 128; и
cbHeight < 128.
[0029] cdWidth - ширина текущего блока изображения, а cbHeight - высота текущего блока изображения.
[0030] Что касается первого аспекта, в некоторых реализациях первого аспекта первый режим слияния включает в себя режим TPM треугольного разделения, а второй режим слияния включает в себя комбинированный режим CIIP с внутрикадровым и межкадровым прогнозированием.
[0031] Необязательно, когда элемент синтаксиса высокого уровня, соответствующий режиму TPM, указывает, что режим TPM запрещено использовать, режим CIIP определяется как целевой режим слияния.
[0032] В настоящей заявке, когда элемент синтаксиса высокого уровня, соответствующий режиму TPM, указывает, что режим TPM запрещено использовать, нет необходимости определять, анализируя синтаксис высокого уровня, соответствующий режиму CIIP, и/или информацию о доступном статусе, которая указывает доступный статус режима CIIP, доступен ли режим CIIP. Вместо этого режим CIIP может быть напрямую определен как целевой режим слияния. Это может уменьшить избыточность в процессе определения целевого режима слияния.
[0033] Необязательно, когда элемент синтаксиса высокого уровня, соответствующий режиму TPM, указывает, что режим TPM разрешен для использования, целевой режим слияния определяется на основе элемента синтаксиса высокого уровня, соответствующего режиму CIIP, и/или информации о доступном статусе, указывающей на доступный статус режима CIIP.
[0034] Необязательно, когда элемент синтаксиса высокого уровня, соответствующий режиму CIIP и/или информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает/указывают, что режим CIIP запрещено использовать, режим TPM определяется как целевой режим слияния.
[0035] Необязательно, когда элемент синтаксиса высокого уровня, соответствующий режиму CIIP, указывает, что режим CIIP разрешен для использования, и информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает, что режим CIIP доступен, режим CIIP определяется как целевой режим слияния.
[0036] Что касается первого аспекта, в некоторых реализациях первого аспекта, прежде чем целевой режим слияния будет определен на основе элемента синтаксиса высокого уровня, соответствующего второму режиму слияния, и/или информации о доступном статусе второго режима слияния, способ дополнительно включает в себя: определение того, что тип фрагмента или группы фрагментов, в которых расположен текущий блок изображения, является B; и определение того, что максимальное количество возможных режимов TPM, поддерживаемое фрагментом или группой фрагментов, в которых расположен текущий блок изображения, больше или равно 2.
[0037] Необязательно, прежде чем целевой режим слияния будет определен на основе элемента синтаксиса высокого уровня, соответствующего режиму CIIP и/или информации о доступном статусе, которая указывает доступный статус режима CIIP, способ дополнительно включает в себя: определение того, что тип фрагмент или группа фрагментов, в которых расположен текущий блок изображения, является B; и определение того, что максимальное количество возможных режимов TPM, поддерживаемое фрагментом или группой фрагментов, в которых расположен текущий блок изображения, больше или равно 2.
[0038] Что касается первого аспекта, в некоторых реализациях первого аспекта первый режим слияния представляет собой режим TPM треугольного разделения, а второй режим слияния представляет собой комбинированный режим CIIP с внутрикадровым и межкадровым прогнозированием. Способ дополнительно включает в себя: когда режим слияния уровня-1 недоступен, и элемент синтаксиса высокого уровня, соответствующий режиму TPM, указывает, что режим TPM разрешен для использования, но текущий блок изображения не соответствует по меньшей мере одному из условия A и условия B, определяющие режим CIIP как целевой режим слияния.
[0039] Условие A и условие B следующие:
[0040] Условие A: тип фрагмента, в котором расположен текущий блок изображения, является B.
[0041] Условие B: максимальное количество возможных режимов TPM, поддерживаемое фрагментом или группой фрагментов, в которых расположен текущий блок изображения, больше или равно 2.
[0042] Режим TPM может быть выбран в качестве целевого режима слияния, окончательно используемого для прогнозирования текущего блока изображения, только когда выполняются как условие A, так и условие B.
[0043] С одной стороны, если условие A или условие B не выполняется, режим CIIP определяется как целевой режим слияния.
[0044] С другой стороны, когда элемент синтаксиса высокого уровня, соответствующий режиму TPM, указывает, что режим TPM запрещено использовать, если условие A или условие B не выполняется, режим CIIP определяется как целевой режим слияния.
[0045] С другой стороны, когда элемент синтаксиса высокого уровня, соответствующий режиму TPM, указывает, что режим TPM разрешен для использования, если условие A или условие B не выполняется, режим CIIP определяется как целевой режим слияния.
[0046] Другими словами, режим CIIP может быть определен как целевой режим слияния при условии, что одно из sps_trangle_enabled_flag=1, условие A и условие B не выполняется.
[0047] С другой стороны, если sps_trangle_enabled_flag=1, условие A и условие B все удовлетворены, целевой режим слияния должен быть определен на основе ciip_flag согласно нескольким условиям в предшествующем уровне техники.
[0048] Что касается первого аспекта, в некоторых реализациях первого аспекта элемент синтаксиса высокого уровня является элементом синтаксиса по меньшей мере на одном из уровня последовательности, уровня изображения, уровня фрагмента и уровня группы фрагментов.
[0049] Что касается первого аспекта, в некоторых реализациях первого аспекта режим слияния уровня-1 включает в себя обычный режим слияния, слияние с режимом MMVD разности векторов движения и режим слияния подблоков.
[0050] Когда определяется, доступен ли режим слияния уровня-1, то, доступны ли эти режимы, можно последовательно определять в последовательности из обычного режима слияния, режима MMVD и режима слияния подблоков.
[0051] Например, сначала может быть определено, доступен ли обычный режим слияния. Когда обычный режим слияния недоступен (если доступен обычный режим слияния, обычный режим слияния может непосредственно использоваться в качестве конечного целевого режима слияния), продолжает определяться, доступен ли режим MMVD. Когда режим MMVD недоступен, продолжает определяться, доступен ли режим слияния подблоков.
[0052] Что касается первого аспекта, в некоторых реализациях первого аспекта способ дополнительно включает в себя: когда режим слияния уровня-1 недоступен, определение целевого режима слияния из режима слияния уровня-2, при этом режим слияния уровня-2 включает режим TPM и режим CIIP; и когда разрешено использование режима CIIP и не выполняется одно из следующих условий, определение режима CIIP как целевого режима слияния:
[0053] Условие D: разрешено использование режима TPM.
[0054] Условие E: режим пропуска не используется для прогнозирования текущего блока изображения.
[0055] Условие F: (cbWidth * cbHeight) ≥ 64.
[0056] Условие G: cbWidth < 128.
[0057] Условие H: cbHeight < 128.
[0058] cbWidth - ширина текущего блока изображения, а cbHeight - высота текущего блока изображения.
[0059] Что касается первого аспекта, в некоторых реализациях первого аспекта способ прогнозирования применяется к стороне кодера для кодирования текущего блока изображения.
[0060] Что касается первого аспекта, в некоторых реализациях первого аспекта способ прогнозирования применяется к стороне декодера для декодирования текущего блока изображения.
[0061] Согласно второму аспекту обеспечивается способ прогнозирования изображения. Способ включает в себя: определение того, используется ли режим слияния для текущего блока изображения; когда режим слияния используется для текущего блока изображения, определение того, доступен ли режим слияния уровня-1; когда режим слияния уровня-1 недоступен, определение целевого режима слияния из режима слияния уровня-2, где режим слияния уровня-2 включает в себя режим TPM и режим CIIP; когда разрешено использование режима CIIP и не выполняется одно из следующих условий (условие 1 - условие 5), определение режима CIIP как целевой режим слияния:
[0062] Условие 1: допускается использование режима TPM.
[0063] Условие 2: тип фрагмента или группы фрагментов, в которых расположен текущий блок изображения, - B.
[0064] Условие 3: Максимальное количество возможных режимов TPM, поддерживаемое фрагментом или группой фрагментов, в которых расположен текущий блок изображения, определяется как большее или равное 2.
[0065] Условие 4: Размер текущего блока изображения соответствует заданному условию.
[0066] Условие 5: Режим пропуска не используется для прогнозирования текущего блока изображения.
[0067] Первое условие может быть конкретно представлено sps_triangle_enabled_flag=1, второе условие может быть конкретно представлено slice_type == B, а третье условие может быть конкретно представлено MaxNumTriangleMergeCand ≥ 2. MaxNumTriangleMergeCand указывает максимальное количество возможных режимов TPM, поддерживаемое фрагментом или группой фрагментов, в которых расположен текущий блок изображения.
[0068] Кроме того, для текущего блока изображения режим слияния уровня-1 и режим слияния уровня-2 могут включать в себя все опциональные режимы слияния текущего блока изображения, а для текущего блока изображения необходимо определить окончательный целевой режим слияния из режима слияния уровня-1 и режима слияния уровня-2.
[0069] Необязательно, приоритет режима слияния уровня-1 выше, чем приоритет режима слияния уровня-2.
[0070] То, что приоритет режима слияния уровня-1 выше, чем приоритет режима слияния уровня-2, означает, что в процессе определения целевого режима слияния текущего блока изображения целевой режим слияния предпочтительно определяется из режим слияния уровня-1. Если нет доступного режима слияния в режиме слияния уровня-1, целевой режим слияния затем определяется из режима слияния уровня-2.
[0071] Необязательно, что размер текущего блока изображения соответствует заданному условию, включает в себя: текущий блок изображения соответствует следующим трем условиям:
(cdWidth * cbHeight) ≥ 64;
cbWidth < 128; и
cbHeight < 128.
[0072] Необязательно, определение того, используется ли режим слияния для текущего блока изображения, включает в себя: когда merge_flag, соответствующий текущему блоку изображения, равен 1, определение того, что режим слияния используется для текущего блока изображения; и когда merge_flag, соответствующий текущему блоку изображения, равен 0, определение того, что режим слияния не используется для текущего блока изображения.
[0073] Следует понимать, что когда определено, что режим слияния не используется для текущего блока изображения, для прогнозирования текущего блока изображения может использоваться другой режим, отличный от режима слияния. Например, когда определено, что режим слияния не используется для текущего блока изображения, режим AMVP с расширенным вектором движения может использоваться для прогнозирования текущего блока изображения.
[0074] Необязательно, режим слияния уровня-1 включает в себя обычный режим слияния, режим MMVD и режим слияния подблоков.
[0075] Когда определяется, доступен ли режим слияния уровня-1, то, доступны ли эти режимы, можно последовательно определять в последовательности из обычного режима слияния, режима MMVD и режима слияния подблоков. Когда все режимы недоступны, определяется, что режим слияния уровня-1 недоступен.
[0076] В настоящей заявке, когда режим слияния уровня-1 недоступен, на основе некоторых заданных условий может быть определено, следует ли выбирать режим CIIP в качестве окончательного режима слияния, и режим CIIP может быть напрямую определен как целевой режим слияния при условии, что ни одно из заданных условий не выполняется. Это снижает избыточность, возникающую в процессе определения целевого слияния.
[0077] Что касается второго аспекта, в некоторых реализациях второго аспекта определение целевого режима слияния из режима слияния уровня-2 включает в себя: когда любое из условия 1 - условия 5 не выполняется, установку значения информации о доступном статусе, которая указывает доступный статус режима CIIP для первого значения, при этом когда значение информации о доступном статусе, которое указывает доступный статус режима CIIP, является первым значением, режим CIIP используется для осуществления прогнозирования изображения на текущий блок изображения.
[0078] Следует понимать, что установка значения информации о доступном статусе, которая указывает доступный статус режима CIIP для первого значения в данном документе, эквивалентна определению CIIP в качестве целевого режима слияния.
[0079] Необязательно, информацией о доступном статусе, указывающей доступный статус режима CIIP, является ciip_flag.
[0080] Установка значения информации о доступном статусе, которая указывает доступный статус режима CIIP на первое значение, может, в частности, устанавливать ciip_flag на 1.
[0081] Кроме того, когда значение информации о доступном статусе, которая указывает доступный статус режима CIIP, устанавливается на второе значение, это может означать, что режим CIIP не используется для осуществления прогнозирования изображения для текущего блока изображения. Например, когда информацией о доступном статусе, которая указывает доступный статус режима CIIP, является ciip_flag, а ciip_flag=0, режим CIIP не используется для осуществления прогнозирования изображения для текущего блока изображения.
[0082] Что касается второго аспекта, в некоторых реализациях второго аспекта определение целевого режима слияния из режима слияния уровня-2 включает в себя: когда все условия от условия 1 до условия 5 выполнены, определение целевого режима слияния на основе элемента синтаксиса высокого уровня, соответствующего режиму CIIP, и/или информации о доступном статусе, которая указывает доступный статус режима CIIP, при этом информация о доступном статусе, которая указывает доступный статус режима CIIP, используется для указания того, используется ли режим CIIP, когда прогнозируется текущий блок изображения.
[0083] Например, информация о доступном статусе, которая указывает доступный статус режима CIIP, представляет собой значение ciip_flag. Когда ciip_flag равен 0, режим CIIP недоступен для текущего блока изображения. Когда ciip_flag равен 1, режим CIIP доступен для текущего блока изображения.
[0084] В настоящей заявке целевой режим слияния может быть определен на основе элемента синтаксиса высокого уровня режима CIIP и/или информации о доступном статусе, которая указывает доступный статус режима CIIP, только когда выполняются пять заданных условий. По сравнению с обычным решением, необходимо выполнить больше условий, прежде чем целевой режим слияния будет дополнительно определен на основе элемента синтаксиса высокого уровня и информации о доступном статусе режима CIIP. В противном случае режим CIIP может быть напрямую определен как целевой режим слияния. Это может уменьшить количество избыточных процессов в процессе определения целевого режима слияния.
[0085] Что касается второго аспекта, в некоторых реализациях второго аспекта определение целевого режима слияния на основе элемента синтаксиса высокого уровня, соответствующего режиму CIIP, и/или информации о доступном статусе, которая указывает доступный статус режима CIIP, включает в себя: когда элемент синтаксиса высокого уровня, соответствующий режиму CIIP, и/или информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает/указывают, что режим CIIP запрещено использовать, определение режима TPM в качестве целевого режима слияния.
[0086] Что касается второго аспекта, в некоторых реализациях второго аспекта, когда элемент синтаксиса высокого уровня, соответствующий режиму CIIP, и/или информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает/указывают, что режим CIIP запрещено использовать, определение режима TPM в качестве целевого режима слияния включает в себя:
когда элемент синтаксиса высокого уровня, соответствующий режиму CIIP, и/или информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает/указывают, что режим CIIP запрещено использовать, установка значения информации о доступном статусе, которая указывает доступный статус режима TPM, до первого значения, при этом когда значение информации о доступном статусе, которая указывает доступный статус режима TPM, является первым значением, режим TPM используется для выполнения прогнозирования изображения для текущего блока изображения.
[0087] Следует понимать, что установка значения информации о доступном статусе, которая указывает доступный статус режима TPM, до первого значения в данном документе, эквивалентна определению TPM в качестве целевого режима слияния.
[0088] Необязательно, информация о доступном статусе, указывающая доступный статус режима TPM, - это MergeTriangleFlag.
[0089] Установка значения информации о доступном статусе, которая указывает доступный статус режима TPM, до первого значения, может, в частности, устанавливать для MergeTriangleFlag значение 1.
[0090] Что касается второго аспекта, в некоторых реализациях второго аспекта перед определением целевого режима слияния на основе элемента синтаксиса высокого уровня, соответствующего режиму CIIP, и/или информации о доступном статусе, которая указывает доступный статус режим CIIP, способ дополнительно включает в себя:
определение того, что выполняется хотя бы одно из следующих условий:
[0091] Размер текущего блока изображения соответствует заданному условию; и
режим пропуска не используется для прогнозирования текущего блока изображения.
[0092] cdWidth - это ширина текущего блока изображения, и cbHeight - высота текущего блока изображения.
[0093] Согласно третьему аспекту обеспечивается способ прогнозирования изображения. Способ включает в себя: определение того, используется ли режим слияния для текущего блока изображения; когда режим слияния используется для текущего блока изображения, определение, доступен ли режим слияния уровня-1; и когда режим слияния уровня-1 недоступен, определение целевого режима слияния из режима слияния уровня-2. Режим слияния уровня-2 включает в себя режим TPM и режим CIIP. Когда разрешено использование режима CIIP и выполняются все следующие условия (условие 1 - условие 3), информация о доступном статусе режима CIIP получается путем анализа потока битов, а целевой режим слияния определяется на основе информация о доступном статусе режима CIIP:
[0094] Условие 1: допускается использование режима TPM.
[0095] Условие 2: размер текущего блока изображения соответствует заданному условию.
[0096] Условие 3: режим пропуска не используется для прогнозирования текущего блока изображения.
[0097] В возможной форме реализации согласно третьему аспекту, если информация о доступном статусе режима CIIP, полученная путем анализа потока битов, указывает, что режим CIIP недоступен, TPM используется в качестве целевого режима слияния.
[0098] В настоящей заявке, когда режим слияния уровня-1 недоступен, на основе некоторых заданных условий может быть определено, следует ли выбирать режим CIIP в качестве окончательного режима слияния, и режим CIIP может быть напрямую определен как целевой режим слияния при условии, что ни одно из заданных условий не выполняется. Это уменьшает избыточность, возникающую в процессе определения целевого слияния.
[0099] Согласно четвертому аспекту обеспечивается способ прогнозирования изображения. Способ включает в себя: определение того, используется ли режим слияния для текущего блока изображения; когда режим слияния используется для текущего блока изображения, определение, доступен ли режим слияния уровня-1; и когда режим слияния уровня-1 недоступен, определение целевого режима слияния из режима слияния уровня-2. Режим слияния уровня-2 включает в себя режим TPM и режим CIIP. Когда разрешено использование режима CIIP и выполняются все следующие условия (условие 1 - условие 5), информация о доступном статусе режима CIIP получается путем анализа потока битов, а целевой режим слияния определяется на основе информация о доступном статусе режима CIIP:
[00100] Условие 1: допускается использование режима TPM.
[00101] Условие 2: тип фрагмента или группы фрагментов, в которых расположен текущий блок изображения, - B.
[00102] Условие 3: максимальное количество возможных режимов TPM, поддерживаемое фрагментом или группой фрагментов, в которых расположен текущий блок изображения, определяется как большее или равное 2.
[00103] Условие 4: размер текущего блока изображения соответствует заданному условию.
[00104] Условие 5: режим пропуска не используется для прогнозирования текущего блока изображения.
[00105] В возможной форме реализации согласно четвертому аспекту, если информация о доступном статусе режима CIIP, полученная путем анализа потока битов, указывает, что режим CIIP недоступен, TPM используется в качестве целевого режима слияния.
[00106] В настоящей заявке, когда режим слияния уровня-1 недоступен, на основе некоторых заданных условий может быть определено, следует ли выбирать режим CIIP в качестве окончательного режима слияния, и режим CIIP может быть напрямую определен как целевой режим слияния при условии, что ни одно из заданных условий не выполняется. Это уменьшает избыточность, возникающую в процессе определения целевого слияния.
[00107] Согласно пятому аспекту обеспечивается способ прогнозирования изображения. Способ включает в себя: определение того, используется ли режим слияния для текущего блока изображения; когда режим слияния используется для текущего блока изображения, продолжение определения, доступен ли режим слияния уровня-1; когда режим слияния уровня-1 недоступен, а элемент синтаксиса высокого уровня, соответствующий первому набору режима слияния, указывает, что режим слияния в первом наборе режимов слияния запрещено использовать, определение целевого режима слияния, применимого к текущему блок изображения из второго набора режимов слияния; и прогнозирование текущего блока изображения с использованием целевого режима слияния.
[00108] И первый набор режимов слияния, и второй набор режимов слияния принадлежат режиму слияния уровня-2. Другими словами, режим слияния уровня-2 включает в себя первый набор режимов слияния и второй набор режимов слияния. Кроме того, для текущего блока изображения режим слияния уровня-1 и режим слияния уровня-2 уже включают все опциональные режимы слияния текущего блока изображения, а для текущего блока изображения необходимо определить окончательный целевой режим слияния из режима слияния уровня-1 и режима слияния уровня-2.
[00109] Необязательно, первый набор режимов слияния включает в себя по меньшей мере один режим слияния, а второй набор режимов слияния включает в себя по меньшей мере один режим слияния.
[00110] Следует понимать, что первый набор режимов слияния и второй набор режимов слияния - это просто концепции, введенные для простоты описания, и в основном используются, чтобы различать разные режимы слияния. В фактическом процессе определения окончательного целевого режима слияния первый набор режимов слияния и второй набор режимов слияния могут не существовать.
[00111] В настоящей заявке, когда элементы синтаксиса высокого уровня некоторых режимов слияния указывают, что эти режимы слияния запрещено использовать, нет необходимости анализировать информацию о доступном статусе этих режимов слияния. Вместо этого окончательный целевой режим слияния может быть напрямую определен из оставшихся опциональных режимов слияния. Это может уменьшить, насколько это возможно, избыточность, формируемую из-за определения целевого режима слияния в процессе прогнозирования изображения.
[00112] Что касается пятого аспекта, в некоторых реализациях пятого аспекта, когда режим слияния уровня-1 недоступен, и элемент синтаксиса высокого уровня, соответствующий первому набору режимов слияния, указывает, что режим слияния в первом наборе режимов слияния разрешено использовать, целевой режим слияния определяется на основе элемента синтаксиса высокого уровня, соответствующего второму набору режимов слияния и/или информации о доступном статусе второго набора режимов слияния.
[00113] Информация о доступном статусе второго набора режимов слияния используется, чтобы указать, используется ли режим слияния во втором наборе режимов слияния, когда прогнозируется текущий блок изображения.
[00114] Например, если второй набор режимов слияния включает в себя режим CIIP, информация о доступном статусе второго набора режимов слияния может быть значением ciip_flag. Когда ciip_flag равен 0, режим CIIP недоступен для текущего блока изображения. Когда ciip_flag равен 1, режим CIIP доступен для текущего блока изображения.
[00115] Что касается пятого аспекта, в некоторых реализациях пятого аспекта первый набор режимов слияния включает в себя режима TPM треугольного разделения, а второй набор режимов слияния включает в себя комбинированный режим CIIP с внутрикадровым и межкадровым прогнозированием.
[00116] Необязательно, первый набор режимов слияния состоит из режима TPM, а второй набор режимов состоит из режима CIIP.
[00117] Когда первый набор режимов слияния и второй режим слияния включают каждый только один режим слияния, если режим слияния в первом наборе режимов слияния запрещено использовать, режим слияния во втором наборе режимов слияния может быть определен как целевой режим слияния; и если режим слияния во втором наборе режимов слияния запрещено использовать, слияние в первом наборе режимов слияния может быть определено как целевой режим слияния.
[00118] Когда первый набор режимов слияния и второй набор режимов слияния включают в себя каждый только один режим слияния, до тех пор, пока режим слияния в одном из наборов режимов слияния запрещено использовать, режим слияния в другом наборе режимов слияния может быть непосредственно определяется как последний целевой режим слияния.
[00119] Что касается пятого аспекта, в некоторых реализациях пятого аспекта, когда режим слияния уровня-1 недоступен, и элемент синтаксиса высокого уровня, соответствующий первому набору режимов слияния, указывает, что режим слияния в первом наборе режимов слияния запрещено использовать, определение целевого режима слияния, применимого к текущему блоку изображения из второго набора режимов слияния, включает в себя: когда режим слияния уровня-1 недоступен, и элемент синтаксиса высокого уровня, соответствующий режиму TPM, указывает, что режим TPM запрещено использовать, определение режима CIIP как целевого режима слияния.
[00120] Согласно шестому аспекту обеспечивается устройство прогнозирования изображения. Устройство включает в себя модуль, соответствующий способу согласно любому из аспектов от первого до пятого, и соответствующий модуль может реализовывать этапы способа согласно любому одному из аспектов от первого до пятого.
[00121] Устройство прогнозирования изображения в шестом аспекте может включать в себя один или более модулей, и любой из одного или более модулей может включать в себя любое из схемы, программируемой пользователем вентильной матрицы FPGA, специализированной интегральной схемы ASIC и универсального процессора.
[00122] Устройство прогнозирования изображения в шестом аспекте может быть расположено в устройстве кодирования или устройстве декодирования.
[00123] Согласно седьмому аспекту обеспечивается устройство прогнозирования изображения, включающее в себя память и процессор. Процессор вызывает программный код, хранящийся в памяти, для осуществления способа в соответствии с любым из первого, второго и третьего аспектов.
[00124] Устройство прогнозирования изображения в седьмом аспекте может быть расположено в устройстве кодирования изображения или устройстве декодирования изображения.
[00125] Согласно восьмому аспекту обеспечивается устройство кодирования/декодирования изображений. Устройство включает в себя модуль, соответствующий способу согласно любому из аспектов от первого до пятого, и соответствующий модуль может реализовывать этапы способа согласно любому одному из аспектов от первого до пятого.
[00126] Согласно девятому аспекту обеспечивается устройство кодирования/декодирования изображений, включающее в себя память и процессор. Процессор вызывает программный код, хранящийся в памяти, для осуществления способа в соответствии с любым из аспектов с первого по пятый.
[00127] Необязательно, память является энергонезависимой.
[00128] Необязательно, память и процессор связаны друг с другом.
[00129] Согласно десятому аспекту вариант осуществления настоящей заявки обеспечивает считываемый компьютером носитель данных. Считываемый компьютером носитель данных хранит инструкцию, и инструкция позволяет одному или более процессорам осуществлять способ согласно любому из аспектов от первого до пятого.
[00130] Любой из одного или более процессоров может включать в себя любое из схемы, программируемой пользователем вентильной матрицы FPGA, специализированной интегральной схемы ASIC и универсального процессора.
[00131] Согласно одиннадцатому аспекту вариант осуществления настоящей заявки обеспечивает компьютерный программный продукт. Когда компьютерный программный продукт выполняется на компьютере, компьютер обеспечен возможностью осуществлять некоторые или все этапы способа в соответствии с любым из аспектов от первого до пятого.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[00132] Фиг. 1 - схематическая блок-схема примера системы кодирования видео для реализации варианта осуществления настоящей заявки;
[00133] Фиг. 2 - схематическая структурная блок-схема примера видеокодера для реализации варианта осуществления настоящей заявки;
[00134] Фиг. 3 - схематическая структурная блок-схема примера видеодекодера для реализации варианта осуществления настоящей заявки;
[00135] Фиг. 4 - схематическая структурная блок-схема примера системы кодирования видео для реализации варианта осуществления настоящей заявки;
[00136] Фиг. 5 - схематическая структурная блок-схема примера устройства кодирования видео для реализации варианта осуществления настоящей заявки;
[00137] Фиг. 6 - схематическая блок-схема примера устройства кодирования или устройства декодирования для реализации варианта осуществления настоящей заявки;
[00138] Фиг. 7 - схематическая диаграмма пространственной и временной информации о движении возможной текущей единицы кодирования;
[00139] Фиг. 8 - схематическая диаграмма точки поиска MMVD, используемой для реализации варианта осуществления настоящей заявки;
[00140] Фиг. 9 - еще одна схематическая диаграмма точки поиска MMVD, используемой для реализации варианта осуществления настоящей заявки;
[00141] Фиг. 10 - схематическая диаграмма треугольного разделения;
[00142] Фиг. 11 - схематическая диаграмма способа прогнозирования в виде треугольного разделения;
[00143] Фиг. 12 - схематическая блок-схема системы видеосвязи согласно варианту осуществления настоящей заявки; и
[00144] Фиг. 13 - схематическая блок-схема способа прогнозирования изображения согласно варианту осуществления настоящей заявки;
[00145] Фиг. 14 - схематическая блок-схема способа прогнозирования изображения согласно варианту осуществления настоящей заявки;
[00146] Фиг. 15 - схематическая блок-схема способа прогнозирования изображения согласно варианту осуществления настоящей заявки;
[00147] Фиг. 16 - схематическая блок-схема устройства прогнозирования изображения согласно варианту осуществления настоящей заявки;
[00148] Фиг. 17 - схематическая блок-схема устройства прогнозирования изображения согласно варианту осуществления настоящей заявки; а также
[00149] Фиг. 18 - схематическая блок-схема устройства кодирования/декодирования изображений согласно варианту осуществления настоящей заявки.
ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
[00150] Далее описаны технические решения настоящей заявки со ссылкой на сопроводительные чертежи.
[00151] В нижеследующем описании сделана ссылка на сопроводительные чертежи, которые составляют часть настоящей заявки и показывают в качестве иллюстрации конкретные аспекты вариантов осуществления настоящей заявки или конкретные аспекты, в которых могут использоваться варианты осуществления настоящей заявки. Следует понимать, что варианты осуществления настоящей заявки могут дополнительно использоваться в другом аспекте и могут включать в себя структурные или логические изменения, не изображенные на прилагаемых чертежах. Следовательно, нижеследующее подробное описание не следует рассматривать в ограничивающем смысле, и объем этой заявки должен определяться прилагаемой формулой изобретения.
[00152] Например, следует понимать, что раскрытие в связи с описанным способом также может быть верным для соответствующего устройства или системы, выполненной с возможностью осуществления способа, и наоборот.
[00153] В качестве другого примера, если описан один или болееболее конкретных этапов способа, соответствующее устройство может включать в себя один или более блоков, таких как функциональные блоки, для осуществления описанных одного или более этапов способа (например, один блок, осуществляющий один или более этапов; или множество блоков, каждый из которых выполняет один или более из множества этапов), даже если такой один или более блоков явно не описаны или не проиллюстрированы на сопроводительных чертежах.
[00154] Кроме того, если конкретное устройство описывается на основе одного или более блоков, таких как функциональные блоки, соответствующий способ может включать в себя один этап, используемый для осуществления функции одного или более блоков (например, один этап, используемый для выполнения функции один или более блоков или множество этапов, каждый из которых используется для выполнения функции одного или более из множества блоков), даже если такой один или более этапов явно не описаны или не проиллюстрированы на сопроводительных чертежах. Кроме того, следует понимать, что особенности различных примерных вариантов осуществления и/или аспектов, описанных в этом описании, могут быть объединены друг с другом, если специально не указано иное.
[00155] Технические решения в вариантах осуществления настоящей заявки могут быть применены к стандарту H.266 и будущему стандарту кодирования видео. Термины, используемые в реализациях настоящей заявки, предназначены только для объяснения конкретных вариантов осуществления настоящей заявки и не предназначены для ограничения настоящей заявки. Нижеследующее сначала кратко описывает связанные концепции в вариантах осуществления настоящей заявки.
[00156] Кодирование видео обычно относится к обработке последовательности изображений, составляющих видео или видеопоследовательность. В области кодирования видео термины «изображение (image)», «кадр (frame)» и «изображение (image)» могут использоваться как синонимы. Кодирование видео, используемое в этой спецификации, включает кодирование видео и декодирование видео. Кодирование видео выполняется на стороне источника и обычно включает в себя обработку (например, путем сжатия) исходного видеоизображения для уменьшения объема данных для представления видеоизображения для более эффективного хранения и/или передачи. Декодирование видео выполняется на стороне назначения и обычно включает в себя обратную обработку относительно кодера для восстановления видеоизображения. «Кодирование» видеоизображения в вариантах осуществления следует понимать как «кодирование» или «декодирование» видеопоследовательности. Комбинация части кодирования и части декодирования также называется CODEC (кодирование и декодирование).
[00157] Видеопоследовательность включает в себя серию изображений (image), изображение дополнительно разбивается на фрагменты (slice), а фрагмент дополнительно разбивается на блоки (block). Кодирование видео выполняется блочно. В некоторых новых стандартах кодирования видео понятие «блок» дополнительно расширено. Например, макроблок (macroblock, MB) введен в стандарт H.264. Макроблок дополнительно может быть разделен на множество блоков прогнозирования (раздел), которые могут использоваться для кодирования с прогнозированием. В стандарте высокоэффективного кодирования видео (high efficiency video coding, HEVC) основные концепции, такие как «блок кодирования» (coding unit, CU), «блок прогнозирования» (prediction unit, PU) и «блок преобразования» (transform unit, TU). Множество блочных единиц получается посредством функционального разделения и описывается с использованием новой древовидной структуры. Например, CU может быть разделен на меньшие CU на основе квадродерева, а меньший CU может быть дополнительно разделен, чтобы сформировать структуру квадродерева. CU - это базовый блок для разделения и кодирования закодированного изображения. PU и TU также имеют похожие древовидные структуры. PU может соответствовать блоку прогнозирования и является базовым блоком для кодирования с прогнозированием. CU дополнительно разделяется на множество PU на основе шаблона разделения. TU может соответствовать блоку преобразования и является базовым блоком для преобразования остатка прогнозирования. Однако, по сути, все CU, PU и TU концептуально являются блоками (или блоками изображения).
[00158] Например, в HEVC CTU разделяется на множество CU с использованием структуры квадродерева, представленной как дерево кодирования. Решение о том, кодировать ли область изображения посредством межкадрового (временного) или внутрикадрового (пространственного) прогнозирования, принимается на уровне CU. Каждый CU может быть дополнительно разделен на один, два или четыре PU на основе шаблона разделения PU. Внутри одного PU применяется один и тот же процесс прогнозирования, и соответствующая информация передается в декодер на основе PU. После получения остаточного блока путем применения процесса прогнозирования на основе шаблона разделения PU, CU может быть разделен на единицы преобразования (transform unit, TU) на основе другой структуры квадродерева, аналогичной дереву кодирования, используемому для CU. В недавних разработках технологий сжатия видео для разделения блока кодирования используется кадр разделения дерева квадрантов и двоичного дерева (quad-tree and binary tree, QTBT). В блочной структуре QTBT CU может быть квадратным или прямоугольным.
[00159] В этой спецификации для простоты описания и понимания блок изображения, который должен быть закодирован в текущем кодированном изображении, может называться текущим блоком изображения. Например, при кодировании текущий блок изображения является блоком, кодируемым в данный момент, а при декодировании текущий блок изображения является блоком, декодируемым в данный момент. Блок декодированного изображения в опорном изображении, используемый для прогнозирования текущего блока изображения, называется опорным блоком. Другими словами, опорный блок - это блок, который обеспечивает опорный сигнал для текущего блока изображения, а опорный сигнал представляет значение пикселя в блоке изображения. Блок, который обеспечивает сигнал прогнозирования для текущего блока изображения в опорном изображении, может называться блоком прогнозирования, и сигнал прогнозирования представляет значение пикселя, значение выборки или сигнал выборки в блоке прогнозирования. Например, после прохождения множества опорных блоков находится оптимальный опорный блок, и оптимальный опорный блок обеспечивает прогнозирование для текущего блока изображения, и этот блок упоминается как блок прогнозирования.
[00160] В случае кодирования видео без потерь исходные видеоизображения могут быть восстановлены, что означает, что восстановленные видеоизображения имеют то же качество, что и исходные видеоизображения (при условии, что во время хранения или передачи не происходит потери передачи или других потерь данных). В случае кодирования видео с потерями выполняется дальнейшее сжатие, например, посредством квантования, чтобы уменьшить объем данных, необходимых для представления видеоизображений, и видеоизображения не могут быть полностью восстановлены на стороне декодера, что означает качество восстановленных видеоизображений ниже или хуже, чем у исходных видеоизображений.
[00161] Несколько стандартов кодирования видео H.261 предназначены для «гибридных видеокодеков с потерями» (в частности, пространственное и временное прогнозирование в области выборки объединяется с кодированием с двумерным преобразованием для применения квантования в области преобразования). Каждое изображение видеопоследовательности обычно разделяется на набор неперекрывающихся блоков, и кодирование обычно выполняется на уровне блоков. Другими словами, на стороне кодера видео обычно обрабатывается, то есть кодируется на уровне блока (видеоблока). Например, блок прогнозирования формируется посредством пространственного (внутрикадрового) прогнозирования и временного (межкадрового) прогнозирования, блок прогнозирования вычитается из текущего блока изображения (блок, который в настоящее время обрабатывается или должен быть обработан), чтобы получить остаточный блок, а остаточный блок преобразуется в области преобразования и квантуется, чтобы уменьшить количество данных, которые должны быть переданы (сжаты). На стороне декодера часть обратной обработки относительно кодера применяется к кодированному или сжатому блоку, чтобы восстановить текущий блок изображения для представления. Кроме того, кодер дублирует цикл обработки декодера, так что кодер и декодер формируют одинаковое прогнозирование (например, внутрикадровое прогнозирование и межкадровое прогнозирование) и/или реконструкцию для обработки, то есть для кодирования последующих блоков.
[00162] Ниже описывается архитектура системы, применимая к вариантам осуществления настоящего изобретения. Фиг. 1 является схематической блок-схемой примера системы 10 кодирования и декодирования видео, применимой к вариантам осуществления настоящей заявки. Как показано на фиг. 1, система 10 кодирования и декодирования видео может включать в себя устройство-источник 12 и целевое устройство 14. Устройство-источник 12 формирует кодированные видеоданные, и поэтому устройство-источник 12 может называться устройством кодирования видео. Целевое устройство 14 может декодировать кодированные видеоданные, сформированные устройством-источником 12, и поэтому целевое устройство 14 может называться устройством декодирования видео. В различных вариантах реализации устройство-источник 12, целевое устройство 14 или как устройство-источник 12, так и целевое устройство 14 могут включать в себя один или более процессоров и память, связанную с одним или более процессорами. Память может включать, помимо прочего, постоянное запоминающее устройство (read-only memory, ROM), оперативная память (random access memory, RAM), стираемое программируемое постоянное запоминающее устройство (erasable programmable read-only memory, EPROM), флэш-память или любой другой носитель, который может быть выполнен с возможностью хранения необходимого программного кода в форме инструкции или структуры данных и к которому может быть осуществлен доступ с компьютера, как описано в данном описании. Устройство-источник 12 и целевое устройство 14 могут включать в себя различные устройства, включая настольный компьютер, мобильное вычислительное устройство, портативный компьютер (например, ноутбук), планшетный компьютер, телеприставку, телефонную трубку, такую как так называемый «смарт» телефон, телевизор, камеру, устройство отображения, цифровой медиаплеер, игровую приставку, установленный на транспортном средстве компьютер, устройство беспроводной связи и т.п.
[00163] Хотя фиг. 1 изображает устройство-источник 12 и целевое устройство 14 как отдельные устройства, вариант осуществления устройства может альтернативно включать в себя как устройство-источник 12, так и целевое устройство 14 или функции как устройства-источника 12, так и целевого устройства 14, то есть устройство-источник 12 или соответствующая функция и целевое устройство 14 или соответствующая функция. В таком варианте осуществления устройство-источник 12 или соответствующие функциональные возможности и целевое устройство 14 или соответствующие функциональные возможности могут быть реализованы с использованием одного и того же аппаратного и/или программного обеспечения, отдельного аппаратного и/или программного обеспечения или любой их комбинации.
[00164] Коммуникационное соединение между устройством-источником 12 и целевым устройством 14 может быть реализовано через канал 13 связи. Целевое устройство 14 может принимать закодированные видеоданные от устройства-источника 12 через канал 13 связи. Канал 13 связи может включать в себя один или более носителей или устройств, способных перемещать закодированные видеоданные от устройства-источника 12 к целевому устройству 14. В примере канал 13 связи может включать в себя одну или более сред передачи данных, которые позволяют устройству-источнику 12 напрямую передавать закодированные видеоданные на целевое устройство 14 в реальном времени. В этом примере устройство-источник 12 может модулировать кодированные видеоданные в соответствии со стандартом связи (например, протоколом беспроводной связи) и может передавать модулированные видеоданные на целевое устройство 14. Одна или более сред связи могут включать в себя среду беспроводной связи и/или проводную среду связи, например, радиочастотный (radio frequency, RF) спектр или один или более физических кабелей передачи. Одна или более коммуникационных сред могут быть частью сети на основе пакетов, а сеть на основе пакетов представляет собой, например, локальную сеть, глобальную сеть или глобальную сеть (например, Интернет). Одна или более коммуникационных сред могут включать в себя маршрутизатор, коммутатор, базовую станцию или другое устройство, которое обеспечивает связь от устройства-источника 12 к целевому устройству 14.
[00165] Устройство-источник 12 включает в себя кодер 20. Необязательно, устройство-источник 12 может дополнительно включать в себя источник 16 изображения, препроцессор 18 изображения и интерфейс 22 связи. В конкретной форме реализации кодер 20, источник 16 изображения, препроцессор 18 изображения и интерфейс 22 связи могут быть аппаратными компонентами в устройстве-источнике 12 или могут быть программами программного обеспечения в устройстве-источнике 12. Описания обеспечиваются отдельно следующим образом:
[00166] Источник 16 изображения может включать в себя или быть устройством захвата изображения любого типа, выполненным, например, с возможностью захвата реального изображения; и/или устройство любого типа для создания изображения или комментария (для кодирования содержимого экрана, некоторый текст на экране также рассматривается как часть изображения или изображения, подлежащего кодированию), например, компьютерный графический процессор, выполненный с возможностью создания компьютерной анимационной картинки; или устройство любого типа, выполненное с возможностью получения и/или обеспечения реального изображения или компьютерного анимационного изображения (например, содержимого экрана или изображения виртуальной реальности (virtual reality , VR); и/или любое их сочетание (например, изображение дополненной реальности (augmented reality, AR)). Источник 16 изображения может быть камерой, выполненной с возможностью захвата изображения, или памятью, выполненной с возможностью хранения изображения. Источник 16 изображения может дополнительно включать в себя интерфейс любого типа (внутренний или внешний), через который ранее захваченное или сформированное изображение сохраняется и/или изображение получается или принимается. Когда источником 16 изображения является камера, источником 16 изображения может быть, например, локальная камера или интегрированная камера, встроенная в устройство- источник. Когда источник 16 изображения является памятью, источник 16 изображения может быть локальной памятью или, например, интегрированной памятью, интегрированной в устройство-источник. Когда источник 16 изображения включает в себя интерфейс, этот интерфейс может быть, например, внешним интерфейсом для приема изображения от внешнего видеоисточника. Внешний видеоисточник представляет собой, например, внешнее устройство захвата изображения, такое как камера, внешняя память или внешнее устройство создания изображения. Внешнее устройство создания изображения представляет собой, например, внешний компьютерный графический процессор, компьютер или сервер. Интерфейс может быть интерфейсом любого типа, например проводным или беспроводным интерфейсом или оптическим интерфейсом, в соответствии с любым частным или стандартизованным протоколом интерфейса.
[00167] Изображение можно рассматривать как двумерный массив или матрицу элементов пикселей (picture element, pixel). Элемент пикселя в массиве также может называться выборкой. Количество выборок в горизонтальном и вертикальном направлениях (или осях) массива или изображения определяет размер и/или разрешение изображения. Для представления цвета обычно используются три цветовых компонента. Более конкретнно, изображение может быть представлено в виде трех массивов выборок или может включать их. Например, в формате RBG или цветовом пространстве изображение включает в себя соответствующие массивы выборок красного, зеленого и синего цветов. Однако при кодировании видео каждый пиксель обычно представлен в формате яркость/цветность или цветовом пространстве. Например, изображение в формате YUV включает в себя компонент яркости, обозначенный Y (иногда обозначаемый альтернативно L), и два компонента цветности, обозначенные U и V. Компонент Y яркости (яркость, luma) представляет яркость или интенсивность уровня серого (например, оба одинаковы в изображении с оттенками серого), и два компонента цветности (цветность, chroma) U и V представляют собой компоненты цветности или информации о цвете. Соответственно, изображение в формате YUV включает в себя массив выборок яркости значений выборок яркости (Y) и два массива выборок цветности значений цветности (U и V). Изображение в формате RGB может быть преобразовано или конвертировано в формат YUV и наоборот. Этот процесс также называется преобразованием цвета или конвертацией. Если изображение является монохромным, оно может включать в себя только массив выборок яркости. В этом варианте осуществления настоящей заявки изображение, переданное источником 16 изображения в процессор изображения, также может называться данными 17 необработанного изображения.
[00168] Препроцессор 18 изображения выполнен с возможностью приема данных 17 необработанного изображения и осуществления предварительной обработки данных 17 необработанного изображения для получения предварительно обработанного изображения 19 или данных 19 предварительно обработанного изображения. Например, предварительная обработка, осуществяемая препроцессором 18 изображения, может включать в себя обрезку, конвертирование цветового формата (например, из формата RGB в формат YUV), цветокоррекцию или шумоподавление.
[00169] Кодер 20 (также называемый видеокодером 20) выполнен с возможностью приема данных 19 предварительно обработанного изображения и обработки данных 19 предварительно обработанного изображения с использованием соответствующего режима прогнозирования (такого как режим прогнозирования в каждом варианте осуществления данной спецификации), для обеспечения данных 21 закодированного изображения (структурные детали кодера 20 дополнительно описаны ниже на основе фиг. 2, фиг. 4 или фиг. 5). В некоторых вариантах осуществления кодер 20 может быть выполнен с возможностью осуществления каждого варианта осуществления, описанного ниже, для реализации на стороне кодера способа прогнозирования изображения, описанного в настоящей заявке.
[00170] Интерфейс 22 связи может быть выполнен с возможностью приема данных 21 закодированного изображения и передачи данных 21 закодированного изображения на целевое устройство 14 или любое другое устройство (например, память) через канал 13 связи для хранения или прямого восстановления. Другое устройство может быть любым устройством, используемым для декодирования или хранения. Интерфейс 22 связи может быть, например, выполнен с возможностью инкапсуляции данных 21 закодированного изображения в соответствующий формат, например, пакет данных для передачи по каналу 13 связи.
[00171] Целевое устройство 14 включает в себя декодер 30. Необязательно, целевое устройство 14 может дополнительно включать в себя интерфейс 28 связи, постпроцессор 32 изображения и устройство 34 отображения. Описания обеспечиваются отдельно следующим образом:
[00172] Интерфейс 28 связи может быть выполнен с возможностью приема данных 21 закодированного изображения от устройства-источника 12 или любого другого источника. Любой другой источник - это, например, запоминающее устройство. Запоминающее устройство представляет собой, например, устройство хранения данных закодированного изображения. Интерфейс 28 связи может быть выполнен с возможностью передачи или приема данных 21 закодированного изображения через канал 13 связи между устройством-источником 12 и целевым устройством 14 или через сеть любого типа. Канал 13 связи представляет собой, например, прямое проводное или беспроводное соединение. Любой тип сети представляет собой, например, проводную или беспроводную сеть или любую их комбинацию, или любой тип частной или общедоступной сети, или любую их комбинацию. Интерфейс 28 связи может быть, например, выполнен с возможностью декапсуляции пакета данных, переданного через интерфейс 22 связи, для получения данных 21 закодированного изображения.
[00173] И интерфейс 28 связи, и интерфейс 22 связи могут быть выполнены как интерфейсы однонаправленной связи или интерфейсы двунаправленной связи, и могут быть выполнены с возможностью, например, отправки и приема сообщений для установления соединения, а также подтверждения и обмена любой другой информацией, относящейся к канал связи и/или передача данных, такая как передача данных закодированного изображения.
[00174] Декодер 30 (также называемый декодером 30) выполнен с возможностью приема данных 21 закодированного изображения и обеспечения данных 31 декодированного изображения или декодированного изображения 31 (структурные детали декодера 30 дополнительно описаны ниже на основе фиг. 3, фиг. 4 или фиг 5). В некоторых вариантах осуществления декодер 30 может быть выполнен с возможностью осуществления каждого варианта осуществления, описанного ниже, для реализации на стороне декодера способа прогнозирования изображения, описанного в настоящей заявке.
[00175] Постпроцессор 32 изображения выполнен с возможностью постобработки данных 31 декодированного изображения (также называемых данными восстановленного изображения) для получения данных 33 постобработанного изображения. Постобработка, выполняемая постпроцессором 32 изображения, может включать в себя преобразование формата цвета (например, из формата YUV в формат RGB), цветокоррекцию, обрезку, повторную выборку или любую другую обработку. Постпроцессор 32 изображения может дополнительно быть выполнен с возможностью передачи данных 33 постобработанного изображения на устройство 34 отображения.
[00176] Устройство 34 отображения выполнено с возможностью приема данных 33 постобработанного изображения, чтобы отображать изображение, например, пользователю или зрителю. Устройство 34 отображения может быть или включать в себя любой тип дисплея для представления восстановленного изображения, например, интегрированный или внешний дисплей или монитор. Например, дисплей может включать в себя жидкокристаллический дисплей (жидкокристаллический дисплей, ЖК- дисплей), дисплей с органическим светоизлучающим диодом (органический светоизлучающий диод, OLED), плазменный дисплей, проектор, микро-светодиодный дисплей, жидкокристаллический дисплей на кремний (liquid crystal on silicon, LCoS), цифровой световой процессор (digital light processor, DLP) или любой другой дисплей.
[00177] Хотя фиг. 1 изображает устройство-источник 12 и целевое устройство 14 как отдельные устройства, вариант осуществления устройства может альтернативно включать в себя как устройство-источник 12, так и целевое устройство 14 или функциональные возможности как устройства-источника 12, так и целевого устройства 14, то есть устройство-источник 12 или соответствующие функциональные возможности и целевое устройство 14 или соответствующие функциональные возможности. В таком варианте осуществления устройство-источник 12 или соответствующие функциональные возможности и целевое устройство 14 или соответствующие функциональные возможности могут быть реализованы с использованием одного и того же аппаратного и/или программного обеспечения, отдельного аппаратного и/или программного обеспечения или любой их комбинации.
[00178] Как будет очевидно для специалиста в данной области на основании описаний, существования и (точного) разделения функциональных возможностей различных блоков или функций устройства-источника 12 и/или целевого устройства 14, показанных на фиг. 1 может отличаться в зависимости от реального устройства и приложения. Устройство-источник 12 и целевое устройство 14 могут включать в себя любое из широкого диапазона устройств, включая любой тип портативного или стационарного устройства, например, ноутбук или портативный компьютер, мобильный телефон, смартфон, планшет или планшетный компьютер, видеокамера, настольный компьютер, телевизионная приставка, телевизор, камера, устройство, установленное на транспортном средстве, устройство отображения, цифровой медиаплеер, игровая консоль, устройство потоковой передачи видео (например, служба контента сервер или сервер доставки контента), устройство приемника вещания или устройство передатчика вещания и может использовать или не использовать операционную систему любого типа.
[00179] Кодер 20 и декодер 30 каждый может быть реализован в виде любой из различных подходящих схем, например, одного или более микропроцессоров, процессоров цифровых сигналов (digital signal processor, DSP), специализированных интегральных схем (application-specific integrated circuit, ASIC), программируемые пользователем вентильные матрицы (field-programmable gate array, FPGA), дискретная логика, оборудование или любые их комбинации. Если технологии реализованы частично с использованием программного обеспечения, устройство может хранить программную инструкцию на подходящем энергонезависимом считываемом компьютером носителе данных и может осуществлять инструкцию, используя оборудование, такое как один или более процессоров, для выполнения технологий данной спецификации. Любой из вышеуказанного контента (включая оборудование, программное обеспечение, комбинацию аппаратного и программного обеспечения и т.п.) может рассматриваться как один или более процессоров.
[00180] В некоторых случаях система 10 кодирования и декодирования видео, показанная на фиг. 1 является просто примером, и технологии настоящей заявки могут быть применимы к настройкам кодирования видео (например, кодирование видео или декодирование видео), которые не обязательно включают в себя какой-либо обмен данными между устройством кодирования и устройством декодирования. В другом примере данные могут быть извлечены из локальной памяти, переданы в потоковом режиме по сети и т.п. Устройство кодирования видео может кодировать данные и сохранять данные в памяти, и/или устройство декодирования видео может извлекать данные из памяти и декодировать данные. В некоторых примерах кодирование и декодирование выполняется устройствами, которые не обмениваются данными друг с другом, а просто кодируют данные в память и/или извлекают данные из памяти и декодируют данные.
[00181] Фиг. 2 - схематическая/концептуальная блок-схема примера кодера 20, выполненного с возможностью реализации варианта осуществления настоящего изобретения. В примере на фиг. 2, кодер 20 включает в себя блок 204 вычисления остатка, блок 206 обработки преобразования, блок 208 квантования, блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, буфер 216, контурный фильтр220, буфер 230 декодированного изображения (decoded picture buffer, DPB), блок 260 обработки прогнозирования и блок 270 энтропийного кодирования. Блок 260 обработки прогнозирования может включать в себя блок 244 межкадрового прогнозирования, блок 254 внутрикадрового прогнозирования и блок 262 выбора режима. Блок 244 межкадрового прогнозирования может включать в себя блок оценки движения и блок компенсации движения (не показаны на фигуре). Кодер 20, показанный на фиг. 2 также может называться гибридным видеокодером или видеокодером на основе гибридного видеокодека.
[00182] Например, блок 204 вычисления остатка, блок 206 обработки преобразования, блок 208 квантования, блок 260 обработки прогнозирования и блок 270 энтропийного кодирования образуют прямой путь сигнала кодера 20, тогда как, например, блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, буфер 216, контурный фильтр 220, буфер 230 декодированного изображения (decoded picture buffer, DPB) и блок 260 обработки прогнозирования образуют обратный путь прохождения сигнала кодера. Обратный путь сигнала кодера соответствует пути сигнала декодера (см. декодер 30 на фиг. 3).
[00183] Кодер 20 принимает, например, через вход 202 изображение 201 или блок 203 изображения для изображения 201, например, изображение в последовательности изображений, образующих видео или видеопоследовательность. Блок 203 изображения может также называться текущим блоком изображения или блоком изображения, который должен быть закодирован, а изображение 201 может упоминаться как текущее изображение или изображение, которое должно быть кодировано (в частности, при кодировании видео, отличать текущее изображение от других изображений, например, ранее кодированных и/или декодированных изображений в одной и той же видеопоследовательности, а именно видеопоследовательности, которая также включает в себя текущее изображение).
[00184] Вариант осуществления кодера 20 может включать в себя блок разделения (не показан на фиг. 2), выполненный с возможностью разделения изображения 201 на множество блоков, таких как блок 203 изображения. Изображение 201 обычно разделяется на множество неперекрывающихся блоков. Блок разделения может быть выполнен с возможностью использования одного и того же размера блока для всех изображений в видеопоследовательности и соответствующей сетки, определяющей размер блока, или изменения размера блока между изображениями, или подмножествами, или группами изображений, и разделения каждого изображения на соответствующие блоки.
[00185] В одном примере блок 260 обработки прогнозирования кодера 20 может быть выполнен с возможностью осуществления любой комбинации технологий разделения, описанных выше.
[00186] Подобно изображению 201, блок 203 изображения также может рассматриваться как двумерный массив или матрица выборок со значениями выборок, хотя размер блока 203 изображения меньше, чем размер изображения 201. Другими словами, блок 203 изображения может включать в себя, например, один массив выборок (например, массив яркости в случае монохромного изображения 201), три массива выборок (например, один массив яркости и два массива цветности в случай цветного изображения) или любое другое количество и/или тип массивов в зависимости от применяемого цветового формата. Количество выборок в горизонтальном и вертикальном направлениях (или осях) блока 203 изображения определяет размер блока 203 изображения.
[00187] Кодер 20, показанный на фиг. 2, выполнен с возможностью кодирования изображения 201 блок за блоком, например, для осуществления кодирования и прогнозирования для каждого блока 203 изображения.
[00188] Блок 204 вычисления остатка выполнен с возможностью вычисления остаточного блока 205 на основе блока 203 изображения и блока 265 прогнозирования (детали о блоке 265 прогнозирования дополнительно обеспечены ниже), например, путем вычитания значений выборки блока 265 прогнозирования из значений выборки блока 203 изображения выборка за выборкой (пиксель за пикселем), чтобы получить остаточного блок 205 в области выборки.
[00189] Блок 206 обработки преобразования выполнен с возможностью применения преобразования, например дискретного косинусного преобразования (discrete cosine transform, DCT) или дискретного синусоидального преобразования (discrete sine transform, DST), к значениям выборки остаточного блока 205 для получения коэффициентов 207 преобразования в области преобразования. Коэффициент 207 преобразования также может называться остаточным коэффициентом преобразования и представляет остаточного блок 205 в области преобразования.
[00190] Блок 206 обработки преобразования может быть выполнен с возможностью применения целочисленных аппроксимаций DCT/DST, таких как преобразования, указанные в HEVC/H.265. По сравнению с ортогональным преобразованием DCT, такие целочисленные аппроксимации обычно масштабируются в несколько раз. Чтобы сохранить норму остаточного блока, который обрабатывается с использованием прямого и обратного преобразований, дополнительный масштабный коэффициент применяется как часть процесса преобразования. Масштабный коэффициент обычно выбирается на основе некоторых ограничений, например, масштабный коэффициент является степенью двойки для операции сдвига, битовой глубиной коэффициента преобразования и оптимальное соотношение между точностью и затратами на реализацию. Например, конкретный масштабный коэффициент задается для обратного преобразования, например, блоком 212 обработки обратного преобразования на стороне декодера 30 (и соответствующее обратное преобразование, например, блоком 212 обработки обратного преобразования на стороне кодера 20), и, соответственно, соответствующий масштабный коэффициент может быть указан для прямого преобразования блоком 206 обработки преобразования на стороне кодера 20.
[00191] Блок 208 квантования выполнен с возможностью квантования коэффициентов 207 преобразования для получения квантованных коэффициентов 209 преобразования, например, путем применения скалярного квантования или векторного квантования. Квантованный коэффициент 209 преобразования также может упоминаться как квантованный остаточный коэффициент 209. Процесс квантования может уменьшить битовую глубину, относящуюся к некоторым или всем коэффициентам 207 преобразования. Например, n- битный коэффициент преобразования может быть округлен до m- битного коэффициента преобразования во время квантования, где n больше m. Степень квантования может быть модифицирована посредством регулирования параметра квантования (quantization parameter, QP). Например, для скалярного квантования могут применяться разные масштабы для достижения более тонкого или более грубого квантования. Меньший шаг квантования соответствует более тонкому квантованию, а больший шаг квантования соответствует более грубому квантованию. Соответствующий шаг квантования может быть указан параметром квантования (quantization parameter, QP). Например, параметр квантования может быть индексом для заданного набора подходящих шагов квантования. Например, меньший параметр квантования может соответствовать более тонкому квантованию (меньшему шагу квантования), а больший параметр квантования может соответствовать более грубому квантованию (большему шагу квантования), или наоборот. Квантование может включать в себя деление на этап квантования и соответствующее квантование или обратное квантование, например, выполняемое блоком 210 обратного квантования, или может включать в себя умножение на этап квантования. Варианты осуществления согласно некоторым стандартам, таким как HEVC, могут использовать параметр квантования для определения шага квантования. Обычно этап квантования может быть вычислен на основе параметра квантования с использованием аппроксимации с фиксированной точкой уравнения, включающего деление. Дополнительные масштабные коэффициенты могут быть введены для квантования и деквантования, чтобы восстановить норму остаточного блока, где норма остаточного блока может быть изменена из-за масштаба, используемого в приближении фиксированной точки уравнения для шага квантования и параметра квантования. В примерной реализации масштаб обратного преобразования может быть объединен с масштабом деквантования. В качестве альтернативы может использоваться настроенная таблица квантования и передаваться сигнал от кодера к декодеру, например, в потоке битов. Квантование - это операция с потерями, где больший шаг квантования указывает на большие потери.
[00192] Блок 210 обратного квантования выполнен с возможностью применения обратного квантования блока 208 квантования к квантованному коэффициенту, чтобы получить деквантованный коэффициент 211, например, применять на основе или с использованием того же шага квантования, что и блок 208 квантования, обратный схемы квантования, применяемой блоком 208 квантования. Деквантованный коэффициент 211 также может называться деквантованным остаточным коэффициентом 211 и соответствовать коэффициенту 207 преобразования, хотя обычно он отличается от коэффициента преобразования из-за потерь, вызванных квантованием.
[00193] Блок 212 обработки обратного преобразования выполнен с возможностью применения обратного преобразования преобразования, применяемого блоком 206 обработки преобразования, например, обратного дискретного косинусного преобразования (discrete cosine transform , DCT) или обратного дискретного синусоидального преобразования (discrete sine transform , DST), чтобы получить блок 213 обратного преобразования в области выборки. Блок 213 обратного преобразования также может называться блоком 213 деквантования обратного преобразования или остаточным блоком 213 обратного преобразования.
[00194] Блок 214 восстановления (например, сумматор 214) выполнен с возможностью добавления блока 213 обратного преобразования (а именно, восстановленного остаточного блока 213) к блоку 265 прогнозирования, например, путем добавления значений выборки восстановленного остаточного блока 213 и значения выборки блока 265 прогнозирования, чтобы получить восстановленный блок 215 в области выборки.
[00195] Необязательно, блок 216 буфера («буфер» 216 для краткости), например, строковый буфер 216, выполнен с возможностью буферизации или хранения восстановленного блока 215 и соответствующего значения выборки, например, для внутрикадрового прогнозирования. В другом варианте осуществления кодер может быть выполнен с возможностью использования нефильтрованного восстановленного блока и/или соответствующего значения выборки, который/которые хранится/хранятся в блоке 216 буфера, для осуществления любого типа оценки и/или прогнозирования, например, внутрикадрового прогнозирования.
[00196] Например, в варианте осуществления кодер 20 может быть выполнен так, чтобы блок 216 буфера был выполнен с возможностью хранения восстановленного блока 215, который не только использовался для внутрикадрового прогнозирования 254, но также использовался для блока 220 контурного фильтра (не показан на фиг. 2), и/или так, что, например, блок 216 буфера и буфер 230 декодированного изображения образуют один буфер. В другом варианте осуществления фильтрованный блок 221 и/или блок или выборка (не показаны на фиг. 2) из буфера 230 декодированных изображений используется/используются в качестве входа или основы для внутрикадрового прогнозирования 254.
[00197] Блок 220 контурного фильтра («контурный фильтр» 220 для краткости) выполнен с возможностью фильтрации восстановленного блока 215 для получения отфильтрованного блока 221, сглаживания перехода пикселей или улучшения качества видео. Блок 220 контурного фильтра предназначен для представления одного или более контурных фильтров, таких как фильтр удаления блочности, фильтр с адаптивным смещением к выборке (sample-adaptive offset, SAO) или другой фильтр, например, двусторонний фильтр, адаптивный контурный фильтр. (adaptive loop filter, ALF), фильтр повышения резкости или сглаживания или совместный фильтр. Хотя блок 220 контурного фильтра показан как входной контурный фильтр на фиг. 2, в другой реализации блок 220 контурного фильтра может быть реализован как пост-контурный фильтр. Отфильтрованный блок 221 также может называться отфильтрованным восстановленным блоком 221. Буфер 230 декодированных изображений может хранить восстановленный кодированный блок после того, как блок 220 контурного фильтра осуществит операцию фильтрации на восстановленном кодированном блоке.
[00198] В варианте осуществления кодер 20 (соответственно, блок 220 контурного фильтра) может быть выполнен с возможностью вывода параметра контурного фильтра (например, выборочной информации адаптивного смещения), например, непосредственно или после энтропийного кодирования, выполняемого блоком 270 энтропийного кодирования или любым другим блоком энтропийного кодирования, так что декодер 30 может принимать и применять один и тот же параметр контурного фильтра для декодирования.
[00199] Буфер 230 декодированных изображений (decoded picture buffer, DPB) может быть памятью опорных изображений, в которой хранятся данные опорных изображений для использования при кодировании видеоданных кодером 20. DPB 230 может быть сформирован любым из множества устройств памяти, таких как динамическая оперативная память (dynamic random access memory, DRAM) (включая синхронную DRAM (синхронную DRAM, SDRAM), магниторезистивную RAM (magnetoresistive RAM, MRAM), резистивное оперативное запоминающее устройство (resistive RAM, RRAM)) или другой тип запоминающего устройства. DPB 230 и буфер 216 могут быть обеспечены одним и тем же запоминающим устройством или отдельными запоминающими устройствами. В примере буфер 230 декодированного изображения (decoded picture buffer, DPB) выполнен с возможностью хранения отфильтрованного блока 221. Буфер 230 декодированного изображения может дополнительно быть выполнен с возможностью хранения других ранее отфильтрованных блоков, например, ранее восстановленных и отфильтрованных блоков 221, одного и того же текущего изображения или разных изображений, например, ранее восстановленных изображений, и может обеспечивать полностью ранее восстановленные, то есть декодированные изображения (и соответствующие опорные блоки и выборки) и/или частично восстановленное текущее изображение (и соответствующие опорные блоки и выборки), например, для межкадрового прогнозирования. В одном примере, если восстановленный блок 215 восстанавливается без внутриконтурной фильтрации, буфер 230 декодированного изображения (decoded picture buffer, DPB) выполнен с возможностью хранения восстановленного блока 215.
[00200] Блок 260 обработки прогнозирования, также называемый блоком 260 обработки прогнозирования блока, выполнен с возможностью приема или получения блока 203 изображения (текущего блока 203 изображения текущего изображения 201) и данных восстановленного изображения, например, опорных выборок одного и того же (текущего) изображения из буфера 216 и/или данных 231 опорного изображения одного или более ранее декодированных изображений из буфера 230 декодированных изображений, и обработки таких данных для прогнозирования, а именно, чтобы обеспечить блок 265 прогнозирования, который может быть блоком 245 межкадрового прогнозирования или блоком 255 внутрикадрового прогнозирования.
[00201] Блок 262 выбора режима может быть выполнен с возможностью выбора режима прогнозирования (например, режима внутрикадрового или межкадрового прогнозирования) и/ или соответствующего блока 245 или 255 прогнозирования, который будет использоваться в качестве блока 265 прогнозирования, для вычисления остаточного блока 205 и для восстановления восстановленного блока 215.
[00202] В варианте осуществления блок 262 выбора режима может быть выполнен с возможностью выбора режима прогнозирования (например, из режимов прогнозирования, поддерживаемых блоком 260 обработки прогнозирования), при этом режим прогнозирования обеспечивает наилучшее совпадение или, другими словами, минимальный остаток (минимальный остаток означает лучшее сжатие для передачи или хранения), или обеспечивает минимальные накладные расходы на сигнализацию (минимальные накладные расходы на сигнализацию означают лучшее сжатие для передачи или хранения), или учитывает или уравновешивает и то, и другое. Блок 262 выбора режима может быть выполнен с возможностью определения режима прогнозирования на основе оптимизации искажения скорости (rate distortion optimization, RDO), а именно, выбора режима прогнозирования, который обеспечивает оптимизацию минимального искажения скорости, или выбора режима прогнозирования, для которого искажение скорости по меньшей мере удовлетворяет критерию выбора режима прогнозирования.
[00203] Нижеследующее подробно описывает обработку прогнозирования, выполняемую (например, блоком 260 обработки прогнозирования), и выбор режима, выполняемый (например, блоком 262 выбора режима), на примере кодера 20.
[00204] Как описано выше, кодер 20 выполнен с возможностью определения или выбора оптимального или наиболее эффективного режима прогнозирования из набора (заданных) режимов прогнозирования. Набор режимов прогнозирования может включать в себя, например, режим внутрикадрового прогнозирования и/или режим межкадрового прогнозирования.
[00205] Набор режимов внутрикадрового прогнозирования может включать в себя 35 различных режимов внутрикадрового прогнозирования, например, ненаправленные режимы, такие как режим постоянного (или среднего) и планарный режим, или направленные режимы, такие как определенные в H.265, или может включать 67 различных режимов внутрикадрового прогнозирования, например, ненаправленные режимы, такие как режим постоянного тока (или усредненный) и планарный режим, или направленные режимы, такие как те, которые определены в H.266, находящемся в стадии разработки.
[00206] В возможной реализации набор режимов межкадрового прогнозирования зависит от доступных опорных изображений (а именно, например, по меньшей мере частично декодированных изображений, хранящихся в DBP 230, как описано выше), и других параметров межкадрового прогнозирования, например, зависит от того, все ли опорное изображение или только часть опорного изображения, например, область окна поиска вокруг области текущего блока изображения, используется для поиска наиболее подходящего опорного блока и/или, например, зависит от того, выполняется ли интерполяция пикселей например, применяется интерполяция в полупикселе и/или в четверть пикселя. Набор режимов межкадрового прогнозирования может включать в себя, например, режим расширенного вектора движения (Advanced Motion Vector Prediction, AMVP) и режим слияния (merge). В конкретной реализации набор режимов межкадрового прогнозирования может включать в себя улучшенный режим AMVP на основе контрольных точек и улучшенный режим слияния на основе контрольных точек в вариантах осуществления настоящей заявки. В примере блок 254 внутрикадрового прогнозирования может быть выполнен с возможностью выполнения любой комбинации технологий межкадрового прогнозирования, описанных ниже.
[00207] В дополнение к вышеупомянутым режимам прогнозирования в вариантах осуществления настоящей заявки также могут применяться режим пропуска и/ или прямой режим.
[00208] Блок 260 обработки прогнозирования может дополнительно быть выполнен с возможностью разделения блока 203 изображения на более мелкие части или подблоки, например, посредством итеративного использования разделения дерева квадрантов (quad-tree, QT), разделение двоичного дерева (binary-tree, BT), разделение троичного дерева (triple-tree, TT) или любую их комбинацию и осуществление, например, прогнозирования для каждого из разделов блока или подблоков. Выбор режима включает в себя выбор древовидной структуры разделенного блока 203 изображения и выбор режима прогнозирования, применяемого к каждому из разделов блока или подблоков.
[00209] Блок 244 межкадрового прогнозирования может включать в себя блок оценки движения (motion estimation, ME) (не показан на фиг. 2) и блок компенсации движения (motion compensation, MC) (не показан на фиг. 2). Блок оценки движения выполнен с возможностью приема или получения блока 203 изображения изображения (блок 203 текущего изображения текущего изображения 201) и декодированного изображения 231, или по меньшей мере одного или более ранее восстановленных блоков, например, одного или более восстановленных блоков других/различных ранее декодированных изображений 231 для оценки движения. Например, видеопоследовательность может включать в себя текущее изображение и ранее декодированные изображения 231, или, другими словами, текущее изображение и ранее декодированные изображения 231 могут быть частью или формировать последовательность изображений, образующих видеопоследовательность.
[00210] Например, кодер 20 может быть выполнен с возможностью выбора опорного блока из множества опорных блоков одного и того же изображения или разных изображений из множества других изображений и обеспечения опорного изображения и/или смещения (пространственного смещения) между местоположением (координаты X, Y) опорного блока и местоположением текущего блока изображения в качестве параметров межкадрового прогнозирования для блока оценки движения (не показано на фиг. 2). Смещение также называется вектором движения (motion vector, MV).
[00211] Блок компенсации движения выполнен с возможностью получения параметра межкадрового прогнозирования и выполнения межкадрового прогнозирования на основе или с использованием параметра межкадрового прогнозирования, чтобы получить блок 245 межкадрового прогнозирования. Компенсация движения, осуществляемая блоком компенсации движения (не показанным на фиг. 2), может включать в себя выборку или формирование блока прогнозирования на основе вектора движения/блока, определенного посредством оценки движения (возможно, выполнение интерполяции с точностью до субпикселя). Интерполяционная фильтрация может формировать дополнительные выборки пикселей из известных выборок пикселей, тем самым потенциально увеличивая количество возможных блоков прогнозирования-, которые могут использоваться для кодирования блока изображения. После приема вектора движения для PU текущего блока изображения блок 246 компенсации движения может найти блок прогнозирования, на который указывает вектор движения, в одном из списков опорных изображений. Блок 246 компенсации движения также может формировать элемент синтаксиса, связанный с блоком и фрагментом видео, так что декодер 30 использует элемент синтаксиса для декодирования блока изображения в фрагменте видео.
[00212] В частности, блок 244 межкадрового прогнозирования может передавать элемент синтаксиса в блок 270 энтропийного кодирования. Элемент синтаксиса включает в себя параметр межкадрового прогнозирования (например, информацию индикации выбора режима межкадрового прогнозирования, используемого для прогнозирования текущего блока изображения после обхода множества режимов межкадрового прогнозирования). В возможном сценарии применения, если существует только один режим межкадрового прогнозирования, параметр межкадрового прогнозирования может альтернативно не переноситься в элементе синтаксиса. В этом случае сторона 30 декодера может непосредственно выполнять декодирование с использованием режима прогнозирования по умолчанию. Можно понять, что блок 244 межкадрового прогнозирования может быть выполнен с возможностью осуществления любой комбинации технологий межкадрового прогнозирования.
[00213] Блок 254 внутрикадрового прогнозирования выполнен с возможностью получения, например, приема, блока 203 изображения (текущего блока изображения) и одного или более ранее восстановленных блоков, например, восстановленных соседних блоков, одного и того же изображения для внутрикадровой оценки. Кодер 20 может быть, например, выполнен с возможностью выбора режима внутрикадрового прогнозирования из множества (заданных) режимов внутрикадрового прогнозирования.
[00214] В варианте осуществления кодер 20, выполненный с возможностью выбора режима внутрикадрового прогнозирования согласно критерию оптимизации, например, на основе минимального остатка (например, режим внутрикадрового прогнозирования, обеспечивающий блок 255 прогнозирования, который наиболее похож на текущий блок 203 изображения) или минимальная скорость искажения.
[00215] Блок 254 внутрикадрового прогнозирования дополнительно выполнен с возможностью определения блока 255 внутрикадрового прогнозирования на основе, например, параметра внутрикадрового прогнозирования в выбранном режиме внутрикадрового прогнозирования. В любом случае, после выбора режима внутрикадрового прогнозирования для блока, блок 254 внутрикадрового прогнозирования дополнительно выполнен с возможностью обеспечения параметра внутрикадрового прогнозирования, а именно информации, указывающей выбранный режим внутрикадрового прогнозирования для блока, в блок 270 энтропийного кодирования. В примере блок 254 внутрикадрового прогнозирования может быть выполнен с возможностью выполнения любой комбинации технологий внутрикадрового прогнозирования.
[00216] В частности, блок 254 внутрикадрового прогнозирования может передавать элемент синтаксиса в блок 270 энтропийного кодирования. Элемент синтаксиса включает в себя параметр внутрикадрового прогнозирования (например, информацию индикации выбора режима внутрикадрового прогнозирования, используемого для прогнозирования текущего блока изображения после обхода(перехода) множества режимов внутрикадрового прогнозирования). В возможном сценарии применения, если существует только один режим внутрикадрового прогнозирования, параметр внутрикадрового прогнозирования может альтернативно не переноситься в элементе синтаксиса. В этом случае сторона 30 декодера может непосредственно выполнять декодирование с использованием режима прогнозирования по умолчанию.
[00217] Блок 270 энтропийного кодирования выполнен с возможностью применения (или неприменения) алгоритма или схемы энтропийного кодирования (например, схема кодирования с переменной длиной (variable length coding, VLC), схема контекстно-адаптивного VLC (context adaptive VLC, CAVLC), схема арифметического кодирования, контекстно-адаптивное двоичное арифметическое кодирование (context adaptive binary arithmetic coding, CABAC), контекстно-адаптивное двоичное арифметическое кодирование на основе синтаксиса (syntax-based context-adaptive binary arithmetic coding, SBAC), кодирование с энтропией разделения вероятностного интервала (probability interval partitioning entropy, PIPE) или другая методология или технология энтропийного кодирования) к одному или всем из квантованного остаточного коэффициента 209, параметра межкадрового прогнозирования, параметра внутрикадрового прогнозирования и/или параметра контурного фильтра, чтобы получить кодированные данные 21 изображения, которые могут выводиться через выход 272, например, в форме кодированного битового потока 21. Кодированный поток битов может быть передан на видеодекодер 30 или заархивирован для последующей передачи или поиска видеодекодером 30. Блок 270 энтропийного кодирования может дополнительно быть выполнен с возможностью энтропийного кодирования другого элемента синтаксиса для текущего кодируемого фрагмента видео.
[00218] Другой структурный вариант видеокодера 20 может использоваться для кодирования видеопотока. Например, кодер 20, не основанный на преобразовании, может напрямую квантовать остаточный сигнал без блока 206 обработки преобразования для некоторых блоков или кадров. В другой реализации кодер 20 может иметь блок 208 квантования и блок 210 обратного квантования, объединенные в единый блок.
[00219] В частности, в этом варианте осуществления настоящей заявки кодер 20 может быть выполнен с возможностью реализации процесса кодирования видео, описанного в следующих вариантах осуществления.
[00220] Следует понимать, что видеокодер в настоящей заявке может включать в себя только некоторые модули в видеокодере 20. Например, видеокодер в настоящей заявке может включать в себя блок декодирования изображения и блок разделения. Блок декодирования изображения может включать в себя один или более из блока энтропийного декодирования, блока прогнозирования, блока обратного преобразования и блока обратного квантования.
[00221] Кроме того, другой структурный вариант видеокодера 20 может использоваться для кодирования видеопотока. Например, для некоторых блоков изображения или кадров изображения видеокодер 20 может непосредственно квантовать остаточный сигнал, обработка блоком 206 обработки преобразования не требуется, и, соответственно, обработка блоком 212 обработки обратного преобразования также не требуется. В качестве альтернативы, для некоторых блоков изображения или кадров изображения видеокодер 20 не формирует остаточные данные, и, соответственно, обработка блоком 206 обработки преобразования, блоком 208 квантования, блоком 210 обратного квантования и блоком 212 обработки обратного преобразования не требуется. В качестве альтернативы видеокодер 20 может напрямую сохранять восстановленный блок изображения в качестве опорного блока, и обработка фильтром 220 не требуется. В качестве альтернативы, блок 208 квантования и блок 210 обратного квантования в видеокодере 20 могут быть объединены. Контурный фильтр 220 не является обязательным. Кроме того, в случае кодирования со сжатием без потерь блок 206 обработки преобразования, блок 208 квантования, блок 210 обратного квантования и блок 212 обработки обратного преобразования являются необязательными. Следует понимать, что в различных сценариях приложений блок 244 межкадрового прогнозирования и блок 254 внутрикадрового прогнозирования могут использоваться выборочно.
[00222] Фиг. 3 - схематическая/концептуальная блок-схема примера декодера 30, выполненного с возможностью реализации варианта осуществления настоящего изобретения. Видеодекодер 30 выполнен с возможностью приема кодированных данных 21 изображения (например, кодированного потока битов), закодированных, например, кодером 20, для получения декодированного изображения 231. В процессе декодирования видеодекодер 30 принимает видеоданные от видеокодера 20, например, кодированный битовый поток видеоданных, который представляет блок изображения кодированного фрагмента видео и связанный с ним элемент синтаксиса.
[00223] В примере на фиг. 3, декодер 30 включает в себя блок 304 энтропийного декодирования, блок 310 обратного квантования, блок 312 обработки обратного преобразования, блок 314 восстановления (например, сумматор 314), буфер 316, контурный фильтр 320, буфер 330 декодированного изображения и блок 360 обработки прогнозирования. Блок 360 обработки прогнозирования может включать в себя блок 344 межкадрового прогнозирования, блок 354 внутрикадрового прогнозирования и блок 362 выбора режима. В некоторых примерах видеодекодер 30 может выполнять этап декодирования, в целом обратный этапу кодирования, описанному со ссылкой на видеокодер 20 на фиг. 2.
[00224] Блок 304 энтропийного декодирования выполнен с возможностью осуществления энтропийного декодирования кодированных данных 21 изображения, чтобы получить, например, квантованный коэффициент 309 и/или декодированный параметр кодирования (не показан на фиг. 3), например, любой один или все из параметра межкадрового прогнозирования, параметра внутрикадрового прогнозирования, параметра контурного фильтра и/или другого элемента синтаксиса (которые декодируются). Блок 304 энтропийного декодирования дополнительно выполнен с возможностью пересылки параметра межкадрового прогнозирования, параметра внутрикадрового прогнозирования и/или другого элемента синтаксиса в блок 360 обработки прогнозирования. Видеодекодер 30 может принимать элементы синтаксиса на уровне фрагмента видео и/или уровне видеоблока.
[00225] Блок 310 обратного квантования может иметь ту же функцию, что и блок 110 обратного квантования. Блок 312 обработки обратного преобразования может иметь ту же функцию, что и блок 212 обработки обратного преобразования. Блок 314 восстановления может иметь ту же функцию, что и блок 214 восстановления. Буфер 316 может иметь ту же функцию, что и буфер 216. Контурный фильтр 320 может иметь ту же функцию, что и контурный фильтр 220. Буфер 330 декодированных изображений может иметь ту же функцию, что и буфер 230 декодированных изображений.
[00226] Блок 360 обработки прогнозирования может включать в себя блок 344 межкадрового прогнозирования и блок 354 внутрикадрового прогнозирования. Блок 344 межкадрового прогнозирования может напоминать блок 244 межкадрового прогнозирования по функциям, а блок 354 внутрикадрового прогнозирования может напоминать блок 254 внутрикадрового прогнозирования по функциям. Блок 360 обработки внутрикадрового прогнозирования обычно выполнен с возможностью осуществления прогнозирования блока и/ или получения блока 365 прогнозирования из закодированных данных 21, а также приема или получения (явно или неявно) параметра, относящегося к прогнозированию, и/ или информации о выбранном режиме прогнозирования, например, от блока 304 энтропийного декодирования.
[00227] Когда фрагмент видео кодируется в внутрикодированный (I) фрагмент, блок 354 внутрикадрового прогнозирования блока 360 обработки прогнозирования выполнен с возможностью формирования блока 365 прогнозирования для блока изображения текущего фрагмента видео на основе сигнализированного режима внутрикадрового прогнозирования и данных ранее декодированного блока текущего кадра или изображения. Когда видеокадр кодируется в межкодированный (а именно, B или P) фрагмент, блок 344 межкадрового прогнозирования (например, блок компенсации движения) в блоке обработки прогнозирования 360 выполнен с возможностью формирования блока 365 прогнозирования видеоблока в текущем фрагменте видео на основе вектора движения и другого элемента синтаксиса, который принят из блока 304 энтропийного декодирования. Для межкадрового прогнозирования блок прогнозирования может быть сформирован из одного из опорных изображений в одном списке опорных изображений. Видеодекодер 30 может создавать списки опорных кадров, список 0 и список 1, используя технологию построения по умолчанию и на основе опорных изображений, хранящихся в DPB 330.
[00228] Блок 360 обработки прогнозирования выполнен с возможностью определения информации прогнозирования для видеоблока текущего фрагмента видео путем анализа вектора движения и других элементов синтаксиса и использования информации прогнозирования для формирования блока прогнозирования для текущего декодируемого видеоблока. В примере настоящей заявки блок 360 обработки прогнозирования определяет, используя некоторые принятые элементы синтаксиса, режим прогнозирования (например, внутрикадровое или межкадровое прогнозирование) для кодирования видеоблока в видеофрагменте, тип фрагмента межкадрового прогнозирования (например, B- фрагмент, P- фрагмент или GPB- фрагмент), информация о построении одного или более списков опорных изображений для фрагмента, вектор движения каждого межкодированного видеоблока для фрагмента, статус межкадрового прогнозирования каждого межкадрового кодированного видеоблока в фрагменте и другую информацию для декодирования видеоблока в текущем фрагменте. В другом примере настоящей заявки элемент синтаксиса, принятый видеодекодером 30 из потока битов, включает в себя элемент синтаксиса в одном или более наборах адаптивных параметров (adaptive parameter set, APS), набор параметров последовательности (sequence parameter set, SPS), набор параметров изображения (picture parameter set, PPS) или заголовок фрагмента.
[00229] Блок 310 обратного квантования может быть выполнен с возможностью осуществления обратного квантования (а именно, деквантования) квантованного коэффициента преобразования, обеспеченного в потоке битов и декодированного блоком 304 энтропийного декодирования. Процесс обратного квантования может включать в себя: использование параметра квантования, вычисленного видеокодером 20 для каждого видеоблока в фрагменте видео, для определения степени квантования, которая должна применяться, и, аналогично, степени обратного квантования, которая должна применяться.
[00230] Блок 312 обработки обратного преобразования выполнен с возможностью применения обратного преобразования (например, обратного DCT, обратного целочисленного преобразования или концептуально аналогичного процесса обратного преобразования) к коэффициенту преобразования, чтобы сформировать остаточный блок в области пикселей.
[00231] Блок 314 восстановления (например, сумматор 314) выполнен с возможностью добавления блока 313 обратного преобразования (а именно, восстановленного остаточного блока 313) к блоку 365 прогнозирования, например, путем добавления значений выборок восстановленного остаточного блока 313 и значения выборки блока 365 прогнозирования, чтобы получить восстановленный блок 315 в области выборки.
[00232] Блок 320 контурного фильтра (в контуре кодирования или после контура кодирования) выполнен с возможностью фильтрации восстановленного блока 315 для получения отфильтрованного блока 321, сглаживания переходов пикселей или улучшения качества видео. В одном примере блок 320 контурного фильтра может быть выполнен с возможностью выполнения любой комбинации технологий фильтрации, описанных ниже. Блок 320 контурного фильтра предназначен для представления одного или более контурных фильтров, таких как фильтр удаления блочности, фильтр с адаптивным смещением к выборке (sample-adaptive offset, SAO) или другой фильтр, например двусторонний фильтр, адаптивный контурный фильтр (adaptive loop filter, ALF), фильтр повышения резкости или сглаживания или совместный фильтр. Хотя блок 320 контурного фильтра показан как входной контурный фильтр на фиг. 3, в другой реализации блок 320 контурного фильтра может быть реализован как пост-контурный фильтр.
[00233] Затем декодированный блок 321 видео, в данном кадре или изображении сохраняется в буфере 330 декодированного изображения, который хранит опорное изображение, используемое для последующей компенсации движения.
[00234] Декодер 30 выполнен с возможностью, например, вывода декодированного изображения 31 через выход 332 для представления или просмотра пользователю.
[00235] Другой вариант видеодекодера 30 может использоваться для декодирования сжатого битового потока. Например, декодер 30 может формировать выходной видеопоток без блока 320 контурного фильтра. Например, декодер 30, не основанный на преобразовании, может напрямую выполнить обратное квантование остаточного сигнала без блока 312 обработки обратного преобразования для некоторых блоков или кадров. В другой реализации видеодекодер 30 может иметь блок 310 обратного квантования и блок 312 обработки обратного преобразования, объединенные в один блок.
[00236] В частности, в этом варианте осуществления настоящей заявки декодер 30 выполнен с возможностью реализации способа декодирования видео, описанного в следующих вариантах осуществления.
[00237] Следует понимать, что видеокодер в настоящей заявке может включать в себя только некоторые модули в видеокодере 30. Например, видеокодер в настоящей заявке может включать в себя блок разделения и блок кодирования изображения. Блок кодирования изображения может включать в себя один или более из блока прогнозирования, блока преобразования, блока квантования и блока энтропийного кодирования.
[00238] Кроме того, другой структурный вариант видеодекодера 30 может использоваться для декодирования кодированного битового потока видеоданных. Например, видеодекодер 30 может формировать выходной видеопоток без обработки фильтром 320. В качестве альтернативы, для некоторых блоков изображения или кадров изображения блок 304 энтропийного декодирования видеодекодера 30 не получает квантованные коэффициенты посредством декодирования, и, соответственно, нет необходимости в блоке 310 обратного квантования и блоке 312 обработки обратного преобразования для выполнения обработка. Контурный фильтр 320 не является обязательным. Кроме того, в случае сжатия без потерь блок 310 обратного квантования и блок 312 обработки обратного преобразования также являются необязательными. Следует понимать, что в различных сценариях приложений блок межкадрового прогнозирования и блок внутрикадрового прогнозирования могут использоваться выборочно.
[00239] Следует понимать, что в кодере 20 и декодере 30 в настоящей заявке результат обработки для процедуры может быть выведен в следующую процедуру после дальнейшей обработки. Например, после такой процедуры, как интерполяционная фильтрация, вывод вектора движения или контурная фильтрация, операция, такая как (clip) обрезка или сдвиг (shift), дополнительно выполняется над результатом обработки соответствующей процедуры.
[00240] Например, вектор движения, который является контрольной точкой текущего блока изображения и который выводится на основе вектора движения соседнего блока аффинного кодирования (блок кодирования, который прогнозируется с использованием модели аффинного движения, может называться блок аффинного кодирования) или вектор движения, который является подблоком текущего блока изображения и который выводится на основе вектора движения соседнего блока аффинного кодирования, может дополнительно обрабатываться. В настоящей заявке это однозначно не ограничено. Например, значение вектора движения ограничено определенным диапазоном битовой ширины. Предполагается, что допустимая разрядность вектора движения равна bitDepth, значение вектора движения находится в диапазоне от -2 ^ (bitDepth - 1) до 2 ^ (bitDepth - 1) - 1, где символ «^» представляет возведение в степень. Если bitDepth равен 16, значение находится в диапазоне от -32768 до 32767. Если bitDepth равно 18, значение находится в диапазоне от -131072 до 131071.
[00241] В другом примере значение вектора движения (например, векторы движения MV четырех подблоков 4x4 в одном блоке изображения 8x8) может быть дополнительно ограничено, так что максимальная разница между целыми частями MV четырех подблоков 4x4 не будет превышает N (например, N может быть установлено равным 1) пикселей.
[00242] Фиг. 4 является иллюстративной схемой примера системы 40 кодирования видео, включающей в себя кодер 20 на фиг. 2 и/или декодер 30 на фиг. 3 согласно примерному варианту осуществления. Система 40 кодирования видео может реализовывать комбинацию различных технологий в вариантах осуществления настоящей заявки. В проиллюстрированной реализации система 40 кодирования видео может включать в себя устройство 41 формирования изображения, кодер 20, декодер 30 (и/или видеокодер/декодер, реализованный логической схемой 47 блока 46 обработки), антенну 42, один или более процессоров 43, одно или более запоминающих устройств 44 и/или устройство 45 отображения.
[00243] Как показано на фиг. 4, устройство 41 формирования изображения, антенна 42, блок 46 обработки, логическая схема 47, кодер 20, декодер 30, процессор 43, память 44 и/или устройство 45 отображения могут обмениваться данными друг с другом. Как описано, хотя система 40 кодирования видео проиллюстрирована кодером 20 и декодером 30, система 40 кодирования видео может включать в себя только кодер 20 или только декодер 30 в различных примерах.
[00244] В некоторых примерах антенна 42 может быть выполнена с возможностью передачи или приема закодированного потока битов видеоданных. Кроме того, в некоторых примерах устройство 45 отображения может быть выполнено с возможностью представления видеоданных. В некоторых примерах логическая схема 47 может быть реализована блоком 46 обработки. Блок 46 обработки может включать в себя логику специализированной интегральной схемы (application-specific integrated circuit, ASIC), графический процессор, универсальный процессор и т.п. Система 40 кодирования видео может также включать в себя необязательный процессор 43. Необязательный процессор 43 может аналогичным образом включать в себя логику специализированной интегральной схемы (application-specific integrated circuit, ASIC), графический процессор, универсальный процессор и т.п. В некоторых примерах логическая схема 47 может быть реализована аппаратными средствами, например выделенным аппаратным обеспечением для кодирования видео. Процессор 43 может быть реализован посредством программного обеспечения общего назначения, операционной системы и т.п. Кроме того, память 44 может быть памятью любого типа, например, энергозависимой памятью (например, статической оперативной памятью (static random access memory, SRAM) или динамической оперативной памятью (dynamic random access memory, DRAM)) или энергонезависимой памяти (например, флэш- памятью). В неограничивающем примере память 44 может быть реализована как кэш-память. В некоторых примерах логическая схема 47 может обращаться к памяти 44 (например, для реализации буфера изображения). В другом примере логическая схема 47 и/или блок 46 обработки могут включать в себя память (например, кэш) для реализации буфера изображений и т.п.
[00245] В некоторых примерах кодер 20, реализованный логической схемой, может включать в себя буфер изображения (например, реализованный блоком 46 обработки или памятью 44) и графический процессор (например, реализованный блоком 46 обработки). Графический процессор может быть коммуникативно связан с буфером изображения. Графический процессор может включать в себя кодер 20, реализованный логической схемой 47, для реализации различных модулей, которые описаны со ссылкой на фиг. 2 и/или любую другую систему или подсистему кодера, описанную в этой спецификации. Логическая схема может быть выполнена с возможностью осуществления различных операций, описанных в этой спецификации.
[00246] В некоторых примерах декодер 30 может быть реализован логической схемой 47 аналогичным образом для реализации различных модулей, которые описаны со ссылкой на декодер 30 на фиг. 3 и/или любую другую систему или подсистему декодера, описанную в этой спецификации. В некоторых примерах декодер 30, реализованный логической схемой, может включать в себя буфер изображения (например, реализованный блоком 2820 обработки или памятью 44) и графический процессор (например, реализованный блоком 46 обработки). Графический процессор может быть коммуникативно связан с буфером изображения. Графический процессор может включать в себя декодер 30, реализованный логической схемой 47, для реализации различных модулей, которые описаны со ссылкой на фиг. 3 и/или любую другую систему или подсистему декодера, описанную в этой спецификации.
[00247] В некоторых примерах антенна 42 может быть выполнена с возможностью приема закодированного потока битов видеоданных. Как описано, закодированный поток битов может включать в себя данные, индикатор, значение индекса, данные выбора режима и т.п., которые относятся к кодированию видеокадров и которые описаны в этой спецификации, например, данные, относящиеся к разделению кодирования (например, коэффициент преобразования или квантованный коэффициент преобразования, необязательный индикатор (как описано) и/или данные, определяющие разделение кодирования). Система 40 кодирования видео может дополнительно включать в себя декодер 30, который подключен к антенне 42 и выполнен с возможностью декодирования закодированного потока битов. Устройство 45 отображения приспособлено для представления видеокадра.
[00248] Следует понимать, что в этом варианте осуществления настоящей заявки для примера, описанного со ссылкой на кодер 20, декодер 30 может быть выполнен с возможностью осуществления обратного процесса. Что касается сигнализации элемента синтаксиса, декодер 30 может быть выполнен с возможностью приема и анализа такого элемента синтаксиса и, соответственно, декодирования связанных видеоданных. В некоторых примерах кодер 20 может энтропийно кодировать элемент синтаксиса в кодированный битовый поток видео. В таких примерах декодер 30 может анализировать элемент синтаксиса и, соответственно, декодировать соответствующие видеоданные.
[00249] Фиг. 5 является схематической структурной схемой устройства 400 кодирования видео (например, устройства 400 кодирования видео или устройства 400 декодирования видео) согласно варианту осуществления настоящего изобретения. Устройство 400 кодирования видео подходит для реализации вариантов осуществления, описанных в этой спецификации. В варианте осуществления устройство 400 кодирования видео может быть видеодекодером (например, декодером 30 на фиг. 3) или видеокодером (например, кодером 20 на фиг. 2). В другом варианте осуществления устройство 400 кодирования видео может быть одним или более компонентами декодера 30 на фиг. 3 или кодер 20 на фиг. 2.
[00250] Устройство 400 кодирования видео включает в себя: входные порты 410 и приемный блок (Rx) 420, которые выполнены с возможностью приема данных; процессор, логический блок или центральный процессор 430 (CPU), который выполнен с возможностью обработки данных; блок 440 передатчика (Tx) и выходные порты 450, которые выполнены с возможностью передачи данных; и память 460, выполненная с возможностью хранения данных. Устройство 400 кодирования видео может дополнительно включать в себя оптико-электрический компонент и электрически-оптический компонент (EO), подключенные к входным портам 410, блоку 420 приемника, блоку 440 передатчика и выходным портам 450 для выхода или входа оптического или электрического сигнала.
[00251] Процессор 430 реализуется аппаратным обеспечением и программным обеспечением. Процессор 430 может быть реализован как одна или более микросхем CPU, ядер (например, многоядерный процессор), FPGA, ASIC и DSP. Процессор 430 обменивается данными с входными портами 410, блоком 420 приемника, блоком 440 передатчика, выходными портами 450 и памятью 460. Процессор 430 включает в себя модуль 470 кодирования (например, модуль 470 кодирования или модуль 470 декодирования). Модуль 470 кодирования/декодирования реализует варианты осуществления, раскрытые в этом описании, для реализации способа прогнозирования изображения, обеспеченного в вариантах осуществления настоящего изобретения. Например, модуль 470 кодирования/декодирования осуществляет, обрабатывает или обеспечивает различные операции кодирования. Следовательно, модуль 470 кодирования/декодирования существенно улучшает функции устройства 400 кодирования видео и влияет на преобразование устройства 400 кодирования видео в другое статус. В качестве альтернативы модуль 470 кодирования/декодирования реализован в виде инструкции, хранящейся в памяти 460 и выполняемой процессором 430.
[00252] Память 460 включает в себя один или более дисков, ленточных накопителей и твердотельных накопителей и может использоваться в качестве устройства хранения данных переполнения, для хранения программ, когда такие программы выбираются для выполнения, и для хранения инструкций и данных, которые считываются во время выполнение программы. Память 460 может быть энергозависимой и/или энергонезависимой и может быть постоянным запоминающим устройством (ROM), оперативной памятью (RAM), оперативной памятью (троичной памятью с адресацией по содержимому, ternary content-addressable memory TCAM) и/или статической оперативной памятью (SRAM).
[00253] Фиг. 6 - упрощенная блок-схема устройства 500, которое может использоваться как одно или два из устройства-источника 12 и целевого устройства 14 на фиг. 1 согласно примерному варианту осуществления. Устройство 500 может реализовать способ прогнозирования изображения в вариантах осуществления настоящей заявки. Другими словами, фиг. 6 является схематической блок-схемой реализации устройства кодирования или устройства декодирования (называемого для краткости устройством 500 кодирования) согласно варианту осуществления настоящей заявки. Устройство 500 кодирования может включать в себя процессор 510, память 530 и шинную систему 550. Процессор и память связаны через шинную систему. Память выполнена с возможностью хранения инструкции. Процессор выполнен с возможностью выполнения инструкции, хранящейся в памяти. В памяти кодирующего устройства хранится программный код. Процессор может вызывать программный код, хранящийся в памяти, для осуществления различных способов кодирования или декодирования видео, описанных в настоящей заявке, в частности, различных новых способов разделения блоков изображения. Чтобы избежать повторов, подробности здесь снова не приводятся.
[00254] В этом варианте осуществления настоящей заявки процессор 510 может быть центральным процессором (central processing unit, CPU). В качестве альтернативы, процессор 510 может быть другим процессором общего назначения, процессором цифровых сигналов (DSP), специализированной интегральной схемой (ASIC), программируемой пользователем вентильной матрицей (FPGA) или другим программируемым логическим устройством, дискретным вентилем или транзисторным логическим устройством, дискретным аппаратным компонентом и т.п. Процессор общего назначения может быть микропроцессором, или процессор может быть любым традиционным процессором или подобным.
[00255] Память 530 может включать в себя постоянное запоминающее устройство (ROM) или устройство оперативной памяти (RAM). В качестве альтернативы 530 может использоваться любой другой подходящий тип запоминающего устройства. Память 530 может включать в себя код и данные 531, к которым имеет доступ процессор 510 через шину 550. Память 530 может дополнительно включать в себя операционную систему 533 и прикладную программу 535. Прикладная программа 535 включает в себя по меньшей мере одну программу, которая позволяет процессору 510 осуществлять способ кодирования или декодирования видео, описанный в настоящей заявке. Например, прикладная программа 535 может включать в себя приложения с 1 по N и дополнительно включать в себя приложение для кодирования или декодирования видео (называемое для краткости приложением для кодирования видео), которое осуществляет способ кодирования или декодирования видео, описанный в настоящей заявке.
[00256] В дополнение к шине данных шинная система 550 может дополнительно включать в себя шину питания, шину управления, шину сигнала состояния и т.п. Однако для ясного описания различные типы шин на чертеже обозначены как шинная система 550.
[00257] Необязательно, устройство 500 кодирования может дополнительно включать в себя одно или более устройств вывода, например, дисплей 570. В примере дисплей 570 может быть сенсорным дисплеем, который объединяет дисплей и сенсорный блок, который оперативно распознает сенсорный ввод. Дисплей 570 может быть подключен к процессору 510 через шину 550.
[00258] Чтобы лучше понять способ прогнозирования изображения в вариантах осуществления настоящей заявки, нижеследующее сначала подробно описывает некоторые связанные концепции и основное содержание межкадрового прогнозирования.
[00259] Межкадровое прогнозирование означает поиск в восстановленном изображении согласованного опорного блока для текущего блока изображения в текущем изображении и использование значения пикселя элемента пикселя в опорном блоке в качестве предиктора значения пикселя элемента пикселя в текущем блоке изображения (Этот процесс называется оценкой движения (Motion estimation, ME)).
[00260] Оценка движения состоит в том, чтобы попробовать множество опорных блоков в опорном изображении для текущего блока изображения, а затем, наконец, определить один или два опорных блока (два опорных блока требуются для двойного прогнозирования) из множества опорных блоков с использованием скорости оптимизация искажений (rate-distortion optimization, RDO) или другой способ. Опорный блок используется для выполнения межкадрового прогнозирования текущего блока изображения.
[00261] Информация о движении текущего блока изображения включает в себя информацию индикации направления прогнозирования (которое обычно является прямым прогнозированием, обратным прогнозированием или двунаправленным прогнозированием), один или два вектора движения (motion vector, MV), указывающих на опорный блок, информацию индикации изображения, в котором расположен опорный блок (который обычно представлен посредством опорного индекса (reference index)).
[00262] Прямое прогнозирование означает выбор опорного изображения из набора прямых опорных изображений, чтобы получить опорный блок для текущего блока изображения. Обратное прогнозирование означает выбор опорного изображения из набора обратных опорных изображений, чтобы получить опорный блок для текущего блока изображения. Двойное прогнозирование означает выбор опорного изображения из набора прямых опорных изображений и опорного изображения из набора обратных опорных изображений для получения опорного блока. Когда используется способ двойного прогнозирования, в текущем блоке кодирования есть два опорных блока. Каждый опорный блок необходимо указывать посредством вектора движения и опорного индекса. Затем определяется предиктор значения пикселя элемента пикселя в текущем блоке изображения на основе значений пикселей элементов пикселя в двух опорных блоках.
[00263] В HEVC есть два режима межкадрового прогнозирования: режим AMVP и режим слияния.
[00264] В режиме AMVP сначала просматриваются пространственно или временно соседние кодированные блоки (обозначенные как соседние блоки) текущего блока кодирования. Список возможных векторов движения- строится на основе информации о движении соседних блоков. Затем оптимальный вектор движения определяется из списка информации о возможном движении на основе затрат на искажения скорости, и информация о возможном движении с минимальными затратами на искажение скорости используется в качестве предиктора вектора движения (motion vector predictor, MVP) текущего блок кодирования.
[00265] Расположение и порядок обхода соседних блоков заданы. Затраты на искажения скорости может быть получена путем вычисления с использованием формулы (1), где J - затраты на искажения скорости (rate-distortion cost ), SAD - это сумма абсолютных разностей (sum of absolute differences, SAD) между исходным значением пикселя и прогнозируемым значением пикселя, которая получена посредством оценки движения, осуществляемой с использованием предиктора возможного вектора движения кандидата, R - скорость передачи в битах, а λ - множитель Лагранжа. Сторона кодера передает стороне декодера значение индекса и значение опорного индекса выбранного предиктора вектора движения в списке возможных векторов движения. Кроме того, сторона кодера может выполнять поиск движения в окрестности с центром в MVP, чтобы получить фактический вектор движения текущего блока кодирования, а затем передавать разницу (разность векторов движения) между MVP и фактическим вектором движения на сторону декодера.
J=SAD+λR (1)
[00266] Кроме того, с точки зрения различных моделей движения, режим AMVP можно разделить на режим AMVP на основе трансляционной модели и режим AMVP на основе непереводной модели.
[00267] В режиме слияния список информации о возможном движении сначала создается на основе информации о движении пространственно или временно кодированной единицы текущей единицы кодирования. Затем информация об оптимальном движении определяется из списка информации о возможном движении как информация о движении для текущей единицы кодирования на основе затрат на искажения скорости. Наконец, значение индекса (обозначаемое в дальнейшем как индекс слияния) местоположения оптимальной информации о движении в списке информации о возможном движении передается на сторону декодера.
[00268] В режиме слияния пространственная и временная информация о возможном движении текущей единицы кодирования может быть показана на фиг. 7. Информация о возможном кандидата в пространстве поступает из пяти пространственно соседних блоков (A0, A1, B0, B1 и B2). Если соседние блоки недоступны или режимом прогнозирования является внутрикадровое прогнозирование, соседние блоки не добавляются в список информации о возможном движении.
[00269] Информация о временном возможном движении для текущей единицы кодирования может быть получена путем масштабирования MV блока в соответствующем местоположении в опорном кадре на основе отсчетов порядка изображений (picture order count, POC) опорного кадра и текущего кадра. Когда получен блок в соответствующем местоположении в опорном кадре, сначала может быть определено, доступен ли блок в местоположении T в опорном кадре. Если блок в местоположении T недоступен, выбирается блок в местоположении C.
[00270] Когда поступательная модель используется для прогнозирования, одна и та же информация о движении используется для всех пикселей в блоке кодирования, а затем выполняется компенсация движения на основе информации о движении, чтобы получить предиктор пикселя в блоке кодирования. Однако в реальном мире существует множество движений. Многие объекты, например, вращающийся объект, американские горки, вращающиеся в разных направлениях, фейерверки и некоторые трюки в фильмах, не находятся в поступательном движении. Если эти движущиеся объекты, особенно те, которые находятся в сценарии контента, созданного пользователем (user generated content, UGC), кодируются с использованием технологии компенсации движения блока, основанной на модели поступательного движения в текущем стандарте кодирования, это сильно влияет на эффективность кодирования. Следовательно, для улучшения эффекта кодирования обеспечивается прогнозирование на основе модели непоступательного движения.
[00271] При прогнозировании на основе модели непоступательного движения одна и та же модель движения используется на стороне кодера и стороне декодера для получения информации о движении каждого вспомогательного блока компенсации движения в текущем блоке кодирования, а затем компенсация движения осуществляется на основе информацию о движении вспомогательного блока компенсации движения, чтобы получить подблок прогнозирования каждого подблока, чтобы повысить эффективность прогнозирования. Часто используемые модели непоступательного движения включают 4-параметрическую модель аффинного движения и 6-параметрическую модель аффинного движения.
[00272] Кроме того, режим пропуска (skip) - это особый режим режима слияния. Разница заключается в том, что во время передачи в режиме пропуска (skip) нет остатка, и передается только возможный индекс слияния (merge index). Индекс слияния используется для указания информации о наилучшем или целевом возможном движении в списке информации о возможном движении на слияние.
[00273] При прогнозировании изображения могут использоваться разные режимы. Ниже подробно описаны эти общие режимы.
[00274] Слияние с режимом разности векторов движения:
[00275] В режиме слияния с разностью векторов движения (merge with motion vector difference, MMVD) один или более возможных векторов движения выбираются из списка возможных векторов движения на слияние, а затем осуществляется выражение расширения вектора движения (MV) на основе движения возможного вектора. Выражение расширения MV включает в себя начальную точку MV, шаг движения и направление движения.
[00276] Обычно тип возможного вектора движения, выбранного в режиме MMVD, является типом слияния по умолчанию (например, MRG_TYPE_DEFAULT_N). Выбранный возможный вектор движения является начальной точкой MV. Другими словами, выбранный возможный вектор движения используется для определения начального местоположения MV.
[00277] Как показано в таблице 1, базовый возможный индекс (Base candidate IDX) указывает, какой возможный вектор движения выбран из списка возможных векторов движения в качестве оптимального возможного вектора движения. Если список возможных векторов движения на слияние включает в себя один возможный вектор движения для выбора, базовый возможный IDX может не определяться.
Таблица 1
[00278] Например, если базовый индекс кандидата равен 1, выбранный возможный вектор движения является вторым вектором движения в списке возможных векторов движения на слияние.
[00279] Индекс расстояния (Distance IDX) представляет информацию о расстоянии смещения вектора движения. Значение индекса расстояния представляет собой смещение (например, предварительно заданное расстояние) от исходного местоположения. Расстояние здесь представлено пиксельным расстоянием (Pixel Distance). Расстояние между пикселями может быть кратко обозначено как pel. Соответствие между индексом расстояния и расстоянием между пикселями может быть показано в таблице 2.
Таблица 2
[00280] Индекс направления (Direction IDX) используется для представления направления разности векторов движения (MVD) на основе исходного местоположения. Всего в указатель направления может входить четыре случая. Конкретное определение может быть показано в таблице 3.
Таблица 3
[00281] Процесс определения прогнозируемого значения пикселя текущего блока изображения на основе способа MMVD включает в себя следующие этапы:
[00282] Этап 1: Определение начальной точки MV на основе базового возможного IDX.
[00283] Фиг. 8 - схематическая диаграмма точки поиска MMVD согласно варианту осуществления настоящей заявки, а фиг. 9 - схематическая диаграмма процесса поиска MMVD согласно этому варианту осуществления настоящей заявки.
[00284] Например, начальная точка MV - полая точка в центре на фиг. 8, или место, соответствующее сплошной линии на фиг. 9.
[00285] Этап 2: Определение на основе направления IDX направление смещения ab на основе начальной точки MV.
[00286] Этап 3: Определение на основе расстояния IDX количество элементов пикселей, которые смещены в направлении, указанном направлением IDX.
[00287] Например, направление IDX == 00 и расстояние IDX=2 указывают, что вектор движения, который смещен на один элемент пикселя в положительном направлении X, используется в качестве вектора движения текущего блока изображения, чтобы спрогнозировать или получить прогнозируемое значение пикселя текущего блока изображения. Комбинированный внутрикадровый и межкадровый режимы:
[00288] В блоке кодирования/CU, закодированном в режиме слияния (merge), может быть передан индикатор (например, ciip_flag), чтобы указать, используется ли режим комбинированного внутрикадрового и межкадрового прогнозирования (combined inter and intra prediction, CIIP) для текущего блока изображения. Когда используется режим CIIP, блок внутрикадрового прогнозирования может быть сформирован на основе режима внутрикадрового прогнозирования, выбранного из списка возможных режимов с внутрикадровым кодированием (intra candidate list) согласно соответствующему элементу синтаксиса, и блок межкадрового прогнозирования формируется с использованием обычного способа межкадрового прогнозирования. Наконец, способ адаптивного взвешивания используется для объединения блока прогнозирования с внутрикадровым кодированием и блока прогнозирования с межкадровым кодированием для формирования окончательного блока прогнозирования.
[00289] Для блока яркости список возможных режимов с внутрикадровым кодированием может быть выбран из четырех режимов: режима постоянного тока, плоского режима, горизонтального (горизонтального) режима и вертикального (вертикального) режима. Размер списка возможных режимов с внутрикадровым кодированием выбирается на основе формы текущего блока кодирования, и в списке возможных режимов с внутрикадровым кодированием может быть три или четыре режима. Когда ширина текущего блока кодирования/CU превышает высоту более чем в два раза, список внутрикадровых возможных режимов не включает горизонтальный режим. Когда высота текущего блока кодирования/CU превышает ширину более чем в два раза, список возможных режимов с внутрикадровым кодированием не включает вертикальный режим.
[00290] В способе взвешивания, который объединяет внутрикадровое кодирование и межкадровое кодирование, разные весовые коэффициенты используются для разных режимов внутрикадрового прогнозирования. В частности, когда DC или планарный режим используется для внутрикадрового кодирования или когда длина или ширина текущего блока кодирования меньше или равна 4, то же значение веса/весовой коэффициент используется для предиктора, полученного посредством внутрикадрового прогнозирования и предиктор, полученный посредством межкадрового прогнозирования. В противном случае весовое значение/весовой коэффициент может быть определено на основе режима внутрикадрового прогнозирования, используемого текущим блоком, и/или местоположения выборки прогнозирования в текущем блоке. Например, переменный весовой коэффициент используется, когда горизонтальный и вертикальный режимы используются для внутрикадрового кодирования.
[00291] Режим блока прогнозирования треугольника:
[00292] Режим блока прогнозирования треугольника (triangle prediction unit mode, triangle PU) может также называться режимом разделения треугольника (triangle partition mode, TPM) или режимом треугольника слияния. Для простоты описания в настоящей заявке режим блока прогнозирования треугольника или режим разделения треугольника кратко упоминается как TPM, что также применимо в дальнейшем.
[00293] Как показано на фиг. 11, текущий блок изображения разделяется на два блока прогнозирования треугольника, и вектор движения и опорный индекс выбираются из списка возможного единое прогнозирование для каждого блока прогнозирования треугольника. Затем для каждого из двух блоков прогнозирования треугольника получается предиктор, и предиктор получается путем выполнения адаптивного взвешивания пикселя, включенного в каждую область гипотенузы. Затем процессы преобразования и квантования осуществляются для всего текущего блока изображения. Следует отметить, что способ блока прогнозирования треугольника обычно применяется только в режиме пропуска или в режиме слияния. Левая сторона фиг. 10 показывает режим разделения от верхнего левого угла к нижнему правому (другими словами, разделение от сверху слева вниз направо), а правая сторона фиг. 10 показывает режим разделения от верхнего правого к нижнему левому (другими словами, разделение сверху- справа вниз- налево).
[00294] Список возможного единого прогнозирование в режиме блока прогнозирования треугольника обычно может включать в себя пять прогнозируемых возможных векторов движения. Эти прогнозируемые возможные векторы движения получаются, например, с использованием семи периферийных соседних блоков (пяти пространственных соседних блоков и двух совместно расположенных во времени блоков) на фиг. 5. Ищется информация о движении семи соседних блоков, и семь соседних блоков помещаются в список возможного единого прогнозирования в последовательности. Например, последовательность может быть вектором движения с двойным прогнозированием в L0, вектором движения с двойным прогнозированием в L1 и средним значением векторов движения в L0 и L1. Если имеется менее пяти возможных, нулевой вектор движения 0 добавляется в список возможного единого прогнозирования. Во время кодирования список возможного единого прогнозирования получается вышеизложенным способом. Например, в списке возможного единого прогнозирования информация движения с прямым прогнозированием используется для прогнозирования пиксельного предиктора одного треугольника PU, а информация движения с обратным прогнозированием используется для прогнозирования пиксельного предиктора другого треугольника PU. Сторона кодера выбирает оптимальный вектор движения путем обхода. Например, можно использовать следующий способ {m, i, j}:
{ 0, 1, 0 }, { 1, 0, 1 }, { 1, 0, 2 }, { 0, 0, 1 }, { 0, 2, 0 }
{ 1, 0, 3 }, { 1, 0, 4 }, { 1, 1, 0 }, { 0, 3, 0 }, { 0, 4, 0 }
{ 0, 0, 2 }, { 0, 1, 2 }, { 1, 1, 2 }, { 0, 0, 4 }, { 0, 0, 3 }
{ 0, 1, 3 }, { 0, 1, 4 }, { 1, 1, 4 }, { 1, 1, 3 }, { 1, 2, 1 }
{ 1, 2, 0 }, { 0, 2, 1 }, { 0, 4, 3 }, { 1, 3, 0 }, { 1, 3, 2 }
{ 1, 3, 4 }, { 1, 4, 0 }, { 1, 3, 1 }, { 1, 2, 3 }, { 1, 4, 1 }
{ 0, 4, 1 }, { 0, 2, 3 }, { 1, 4, 2 }, { 0, 3, 2 }, { 1, 4, 3 }
{ 0, 3, 1 }, { 0, 2, 4 }, { 1, 2, 4 }, { 0, 4, 2 }, { 0, 3, 4 }
где в { m, i, j}, m в первом положении представляет режим разделения сверху слева - вниз направа или режим разделения сверху справа - вниз налево, второе местоположение представляет информацию о поступательном движении i-го прогнозируемого возможного вектора движения, используемого для первого треугольника PU, а третье местоположение представляет информацию о движении назад j-го прогнозируемого возможного вектора движения, используемого для второго треугольника PU.
[00295] Для процесса адаптивного взвешивания, осуществляемого на основе предиктора пикселя, включенного в область гипотенузы, см. фиг. 11. После того, как прогнозирование для блоков P1 и P2 прогнозирования треугольника завершено, процесс адаптивного взвешивания осуществляется для пикселя, включенного в область гипотенузы, чтобы получить окончательный предиктор текущего блока изображения.
[00296] Например, на изображении слева на фиг. 11, предиктором пикселя в местоположении 2 является
[00297] Два набора взвешенных параметров:
[00298] Первый набор взвешенных параметров, {7/8, 6/8, 4/8, 2/8, 1/8} и {7/8, 4/8, 1/8}, используется для точек яркости и цветности, соответственно.
[00299] Второй набор взвешенных параметров, {7/8, 6/8, 5/8, 4/8, 3/8, 2/8, 1/8} и {6/8, 4/8, 2/8}, используются для точек яркости и цветности соответственно.
[00300] Один набор взвешенных параметров используется для кодирования и декодирования текущего блока изображения. Когда опорные изображения двух блоков прогнозирования различны или разность векторов движения между двумя блоками прогнозирования превышает 16 пикселей, выбирается второй набор взвешенных параметров; в противном случае используется первый набор взвешенных параметров.
[00301] Фиг. 12 - схематическая блок-схема системы видеосвязи согласно варианту осуществления настоящей заявки.
[00302] Система 500 видеосвязи, показанная на фиг. 12 включает в себя устройство-источник 600 и целевое устройство 700. Устройство-источник 600 может кодировать полученное видео и передавать кодированный видеопоток битов на устройство 700 приема. Целевое устройство 700 может анализировать принятый видеопоток битов, чтобы получить видеоизображение, и отображать видео посредством устройства отображения.
[00303] Способ прогнозирования изображения в вариантах осуществления настоящей заявки может выполняться устройством-источником 600 или целевым устройством 700. В частности, способ прогнозирования изображения в вариантах осуществления настоящей заявки может выполняться видеокодером 603 или видеодекодером 702.
[00304] Система 500 видеосвязи также может называться системой кодирования видео. Устройство-источник 600 также может называться аппаратом кодирования видео или устройством кодирования видео. Целевое устройство 700 также может называться аппаратом декодирования видео или устройством декодирования видео.
[00305] На фиг. 12, устройство-источник 600 включает в себя устройство 601 захвата видео, видеопамять 602, видеокодер 603 и передатчик 604. Видеопамять 602 может хранить видео, полученное устройством 601 захвата видео. Видеокодер 603 может кодировать видеоданные из видеопамяти 602 и устройства 601 захвата видео. В некоторых примерах устройство-источник 600 напрямую передает закодированные видеоданные в целевое устройство 700 через передатчик 604. Кодированные видеоданные могут дополнительно храниться на носителе данных или на файловом сервере, так что целевое устройство 700 извлекает закодированные видеоданные позже для декодирования и/или воспроизведения.
[00306] На фиг. 12, целевое устройство 700 включает в себя приемник 701, видеодекодер 702 и устройство 703 отображения. В некоторых примерах приемник 701 может принимать закодированные видеоданные через канал 800. Устройство 703 отображения может быть интегрировано с целевым устройством 700 или может находиться вне целевого устройства 7000. Обычно устройство 703 отображения отображает декодированные видеоданные. Устройство 703 отображения может включать в себя множество типов устройств отображения, таких как жидкокристаллический дисплей, плазменный дисплей, дисплей на органических светодиодах или другой тип устройства отображения.
[00307] Конкретные реализации устройства-источника 600 и целевого устройства 700 могут быть любым из следующих устройств: настольный компьютер, мобильное вычислительное устройство, ноутбук (например, портативный компьютер), планшетный компьютер, телеприставка, смартфон, телефонная трубка, телевизор, фотоаппарат, устройство отображения, цифровой медиаплеер, игровая консоль, установленный на транспортном средстве компьютер или другое подобное устройство.
[00308] Целевое устройство 700 может принимать кодированные видеоданные от устройства-источника 600 по каналу 800. Канал 800 может включать в себя один или более носителей и/или устройств, которые могут перемещать кодированные видеоданные от устройства-источника 600 к целевому устройству 700. В одном примере канал 800 может включать в себя одну или более сред передачи данных, которые могут позволить устройству-источнику 600 напрямую передавать закодированные видеоданные в целевое устройство 700 в реальном времени. В этом примере устройство-источник 600 может модулировать кодированные видеоданные в соответствии со стандартом связи (например, протоколом беспроводной связи) и может передавать модулированные видеоданные на целевое устройство 700. Одна или более сред связи могут включать в себя беспроводные и/или проводные среды связи, например, радиочастотный (radio frequency, RF) спектр или одну или более физических линий передачи. Одна или более коммуникационных сред могут образовывать часть сети на основе пакетов (например, локальную сеть, глобальную сеть или глобальную сеть (например, Интернет)). Одна или более сред связи могут включать в себя маршрутизатор, коммутатор, базовую станцию или другое устройство, реализующее связь между устройством-источником 600 и целевым устройством 700.
[00309] В другом примере канал 800 может включать в себя носитель данных, на котором хранятся кодированные видеоданные, сформированные устройством-источником 600. В этом примере целевое устройство 700 может получить доступ к носителю данных через доступ к диску или доступ к карте. Носитель данных может включать в себя множество локально доступных носителей данных, таких как Blu-ray, цифровой видеодиск высокой плотности (digital video disc, DVD), постоянное запоминающее устройство для компакт- диска (compact disc read-only memory, CD- ROM), флэш-память или другой подходящий цифровой носитель данных, выполненный с возможностью хранения кодированных видеоданных.
[00310] В другом примере канал 800 может включать в себя файловый сервер или другое промежуточное запоминающее устройство, в котором хранятся кодированные видеоданные, сформированные устройством-источником 600. В этом примере целевое устройство 700 может осуществлять доступ посредством потоковой передачи или загрузки к кодированным видеоданным, хранящимся на файловом сервере или другом промежуточном устройстве хранения. Файловый сервер может относиться к типу сервера, который может хранить кодированные видеоданные и передавать закодированные видеоданные на целевое устройство 700. Например, файловый сервер может включать в себя сервер глобальной сети связи (World Wide Web, Web) (например, используемый для веб-сайта), сервер протокола передачи файлов (file transfer protocol, FTP), сетевое хранилище (network attached storage, NAS) и локальный диск.
[00311] Целевое устройство 700 может получить доступ к кодированным видеоданным через стандартное соединение для передачи данных (например, Интернет-соединение). Примерный тип соединения для передачи данных включает в себя беспроводной канал, проводное соединение (например, кабельный модем) или их комбинацию, которая подходит для доступа к кодированным видеоданным, хранящимся на файловом сервере. Передача закодированных видеоданных с файлового сервера может быть потоковой передачей, загрузкой или их комбинацией.
[00312] Далее подробно описывается способ прогнозирования изображения в вариантах осуществления настоящей заявки со ссылкой на конкретные сопроводительные чертежи.
[00313] Фиг. 13 - схематическая блок-схема способа прогнозирования изображения согласно варианту осуществления настоящей заявки. Способ прогнозирования изображения, показанный на фиг. 13, может выполняться устройством прогнозирования изображения (устройство прогнозирования изображения может быть расположено в устройстве (системе) кодирования изображения или устройстве (системе) декодирования изображения). В частности, способ, показанный на фиг. 13, может выполняться устройством кодирования изображения или устройством декодирования изображения. Способ, показанный на фиг. 13 может выполняться на стороне кодера или может выполняться на стороне декодера. Способ, показанный на фиг. 13 включает в себя этапы 1001-1008. Ниже приводится подробное описание этих этапов.
[00314] 1001: Начало.
[00315] Этап 1001 указывает, что прогнозирование изображения начинается.
[00316] 1002: Определение того, используется ли режим слияния для текущего блока изображения.
[00317] Необязательно, способ, показанный на фиг. 13 дополнительно включает в себя: получение текущего блока изображения перед этапом 1002.
[00318] Текущий блок изображения может быть блоком изображения в текущем кодируемом или декодируемом изображении.
[00319] Следует понимать, что в настоящей заявке текущий блок изображения может быть получен в процессе определения целевого режима слияния текущего блока изображения или после определения целевого режима слияния текущего блока изображения.
[00320] Для стороны декодера на этапе 1002 может быть определено, используется ли режим слияния для текущего блока изображения, на основе элемента синтаксиса уровня CU merge_flag [ x0] [ y0].
[00321] Если merge_flag[x0][y0]=1, определяется, что режим слияния используется для прогнозирования текущего блока изображения. Если merge_flag[x0][y0]=1, определяется, что режим слияния не используется для прогнозирования текущего блока изображения. x0 и y0 представляют собой координаты местоположения элемента пикселя яркости в верхнем левом углу текущего блока изображения относительно элемента пикселя яркости в верхнем левом углу текущего изображения.
[00322] После определения, на основе элемента синтаксиса уровня CU merge_flag[x0][y0], что режим слияния используется для текущего блока изображения, целевой режим слияния, который в конечном итоге используется, может быть определен путем анализа конкретной информации в элемент синтаксиса уровня CU merge_flag[x0][y0].
[00323] Когда на этапе 1002 определяется, что режим слияния не используется для текущего блока изображения, для прогнозирования текущего блока изображения может использоваться другой режим, отличный от режима слияния. Например, когда определено, что режим слияния не используется для текущего блока изображения, режим AMVP может использоваться для прогнозирования текущего блока изображения.
[00324] После того, как на этапе 1002 определено, что режим слияния используется для текущего блока изображения, этап 1003 продолжает осуществляться для определения целевого режима слияния, применимого к текущему блоку изображения.
[00325] 1003: Определение того, следует ли использовать режим слияния уровня-1.
[00326] В частности, то, доступен ли режим слияния уровня-1 может быть определено на основе элемента синтаксиса высокого уровня, соответствующего режиму слияния уровня-1, и/или информации о доступном статусе, соответствующей режиму слияния уровня-1.
[00327] В возможной реализации настоящего изобретения предполагается, что режим слияния уровня-1 включает в себя всего два режима слияния: режим слияния A и режим слияния B. В этом случае, есть ли доступный режим слияния уровня-1 режим слияния определяется по одному. Если есть доступный режим слияния, осуществляется этап 1005. Если режим слияния недоступен в режиме слияния уровня-1, определяется, что режим слияния уровня-1 недоступен. В этом случае целевой режим слияния должен быть определен из режима слияния уровня-2. Другими словами, осуществляется этап 1004.
[00328] 1004: Определение того, указывает ли элемент синтаксиса высокого уровня, соответствующий первому режиму слияния, на то, что использование первого режима слияния запрещено.
[00329] Первый режим слияния принадлежит режиму слияния уровня-2, а режим слияния уровня-2 дополнительно включает в себя второй режим слияния.
[00330] Когда на этапе 1004 определяется, что элемент синтаксиса высокого уровня, соответствующий первому режиму слияния, указывает, что использование первого режима слияния запрещено, выполняется этап 1006 для определения второго режима слияния как целевого режима слияния.
[00331] В настоящей заявке, когда элемент синтаксиса высокого уровня первого режима слияния указывает, что использование первого режима слияния запрещено, нет необходимости анализировать информацию о доступном статусе оставшегося второго режима слияния, и второй режим слияния может напрямую определяться как окончательный целевой режим слияния. Это может уменьшить, насколько это возможно, избыточность, вызванную определением целевого режима слияния в процессе прогнозирования изображения.
[00332] Когда на этапе 1004 определяется, что элемент синтаксиса высокого уровня, соответствующий первому режиму слияния, указывает, что разрешено использовать первый режим слияния, выполняется этап 1007, чтобы дополнительно определить целевой режим слияния.
[00333] 1005: Прогнозирование текущего блока изображения на основе режима слияния уровня-1.
[00334] Следует понимать, что на этапе 1005, если доступен режим слияния A в режиме слияния уровня-1, текущий блок изображения прогнозируется на основе режима слияния A.
[00335] 1006: Определение второго режима слияния как целевого режима слияния, применимого к текущему блоку изображения.
[00336] Когда элемент синтаксиса высокого уровня, соответствующий первому режиму слияния, указывает, что первый режим слияния запрещено использовать, нет необходимости анализировать элемент синтаксиса высокого уровня и/или информацию о доступном статусе, соответствующую второму режиму слияния, и второй режим слияния может быть напрямую определен как целевой режим слияния.
[00337] 1007: Определение целевого режима слияния на основе элемента синтаксиса высокого уровня, соответствующего второму режиму слияния, и/или информации о доступном статусе второго режима слияния.
[00338] Информация о доступном статусе второго режима слияния используется, чтобы указать, используется ли второй режим слияния, когда прогнозируется текущий блок изображения.
[00339] Например, второй режим слияния - это режим CIIP, а информация о доступном статусе второго режима слияния - это значение ciip_flag. Когда ciip_flag равен 0, режим CIIP не используется для текущего блока изображения. Когда ciip_flag равен 1, режим CIIP используется для прогнозирования текущего блока изображения.
[00340] Следует понимать, что для режима CIIP, если режим CIIP должен быть выбран в качестве целевого режима слияния, элемент синтаксиса высокого уровня, соответствующий CIIP, должен указывать, что режим CIIP разрешен для использования и информация о доступном статусе, указывающая на доступный статус режима CIIP, должна указывать, что CIIP доступен.
[00341] Например, когда sps_ciip_enabled_flag=1 и ciip_flag=1, режим CIIP может быть определен как целевой режим слияния текущего блока изображения.
[00342] На этапе 1007, поскольку разрешено использовать первый режим слияния, как первый режим слияния, так и второй режим слияния могут использоваться в качестве целевого режима слияния текущего блока изображения. Следовательно, целевой режим слияния может быть определен из режима слияния уровня-2 на основе синтаксиса высокого уровня и информации о доступном статусе, которые соответствуют одному из режимов слияния.
[00343] Необязательно, первый режим слияния - это режим TPM, а второй режим слияния - это режим CIIP.
[00344] Ниже подробно описано, как определить целевой режим слияния, когда первый режим слияния является режимом TPM, а второй режим слияния - режимом CIIP.
[00345] Необязательно, когда элемент синтаксиса высокого уровня, соответствующий режиму TPM, указывает, что режим TPM запрещено использовать, режим CIIP определяется как целевой режим слияния.
[00346] Например, когда sps_triangle_enabled_flag, соответствующий режиму TPM, равен 0, использование режима TPM запрещено. В этом случае нет необходимости анализировать конкретное значение ciip_flag. Вместо этого режим CIIP может быть напрямую определен как целевой режим слияния. Таким образом можно сократить ненужный процесс синтаксического анализа и уменьшить избыточность решения.
[00347] В настоящей заявке, когда элемент синтаксиса высокого уровня, соответствующий режиму TPM, указывает, что режим TPM запрещено использовать, нет необходимости определять, анализируя синтаксис высокого уровня, соответствующий режиму CIIP, и/или информацию о доступном статусе, указывающую на доступный статус режима CIIP, а также на то, доступен ли режим CIIP. Вместо этого режим CIIP может быть напрямую определен как целевой режим слияния. Это может уменьшить избыточность в процессе определения целевого режима слияния.
[00348] Необязательно, когда элемент синтаксиса высокого уровня, соответствующий режиму TPM, указывает, что режим TPM разрешен для использования, целевой режим слияния определяется на основе элемента синтаксиса высокого уровня, соответствующего режиму CIIP, и/или информации о доступном статусе, указывающей на доступный статус режима CIIP.
[00349] Например, когда sps_triangle_enabled_flag, соответствующий режиму TPM, равен 1, режим TPM может использоваться. В этом случае как режим TPM, так и режим CIIP могут использоваться в качестве целевого режима слияния. Следовательно, необходимо дополнительно определить, следует ли выбрать режим TPM или режим CIIP в качестве целевого режима слияния.
[00350] Необязательно, когда элемент синтаксиса высокого уровня, соответствующий режиму CIIP и/или информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает/указывают, что режим CIIP запрещено использовать, режим TPM определяется как целевой режим слияния.
[00351] То, что элемент синтаксиса высокого уровня, соответствующий режиму CIIP, и/или информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает/указывают, что режим CIIP запрещено использовать, включает в себя случаи с 1 по 3:
[00352] Случай 1: Элемент синтаксиса высокого уровня, соответствующий режиму CIIP, указывает, что режим CIIP запрещено использовать, а информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает, что режим CIIP недоступен.
[00353] Случай 2: Элемент синтаксиса высокого уровня, соответствующий режиму CIIP, указывает, что режим CIIP разрешен для использования, а информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает, что режим CIIP недоступен.
[00354] Случай 3: Информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает, что режим CIIP недоступен.
[00355] Необязательно, когда элемент синтаксиса высокого уровня, соответствующий режиму CIIP, указывает, что режим CIIP разрешен для использования, а информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает, что режим CIIP доступен, режим CIIP определяется как целевой режим слияния.
[00356] 1008: Прогнозирование текущего блока изображения на основе целевого режима слияния.
[00357] В способе, показанном на фиг. 13, перед выполнением этапа 1007 способ, показанный на фиг. 13 дополнительно включает в себя: определение того, что типом фрагмента или группы фрагментов, в которых расположен текущий блок изображения, является B; и определение того, что максимальное количество возможных режимов TPM, поддерживаемое фрагментом или группой фрагментов, в которых расположен текущий блок изображения, больше или равно 2.
[00358] Необязательно, прежде чем целевой режим слияния будет определен на основе элемента синтаксиса высокого уровня, соответствующего режиму CIIP, и/или информации о доступном статусе, которая указывает доступный статус режима CIIP, способ дополнительно включает в себя: определение того, что тип фрагмента или группа фрагментов, в которых расположен текущий блок изображения, - это B; и определение того, что максимальное количество возможных режимов TPM, поддерживаемое фрагментом или группой фрагментов, в которых расположен текущий блок изображения, больше или равно 2.
[00359] Необязательно, в варианте осуществления способ, показанный на фиг. 13 дополнительно включает в себя: когда режим слияния уровня-1 недоступен, и элемент синтаксиса высокого уровня, соответствующий режиму TPM, указывает, что режим TPM разрешено использовать, но текущий блок изображения не соответствует по меньшей мере одному из условия A и условия B, режим CIIP определяется как целевой режим слияния.
[00360] Условие A и условие B следующие:
[00361] Условие A: Тип фрагмента, в котором расположен текущий блок изображения, - B.
[00362] Условие B: максимальное количество возможных режимов TPM, поддерживаемое фрагментом или группой фрагментов, в которых расположен текущий блок изображения, больше или равно 2.
[00363] Статус A и условие B могут быть представлены некоторыми конкретными способами. Например, условие A может быть конкретно представлено параметром slice_type == B, а условие B может быть конкретно представлено параметром MaxNumTriangleMergeCand ≥ 2. MaxNumTriangleMergeCand указывает максимальное количество возможных режимов TPM, поддерживаемое фрагментом или группой фрагментов, в которых расположен текущий блок изображения.
[00364] Режим TPM может быть выбран в качестве целевого режима слияния, окончательно используемого для прогнозирования текущего блока изображения, только когда выполняются как условие A, так и условие B.
[00365] Если условие A или условие B не выполняется, режим CIIP определяется как целевой режим слияния.
[00366] Когда элемент синтаксиса высокого уровня, соответствующий режиму TPM, указывает, что режим TPM запрещено использовать, если условие A или условие B не выполняется, режим CIIP определяется как целевой режим слияния.
[00367] Когда элемент синтаксиса высокого уровня, соответствующий режиму TPM, указывает, что режим TPM разрешен для использования, если условие A или условие B не выполняется, режим CIIP определяется как целевой режим слияния.
[00368] Другими словами, режим CIIP может быть определен как целевой режим слияния при условии, что одно из sps_trangle_enabled_flag=1, условие A и условие B не выполняется.
[00369] Наоборот, если sps_trangle_enabled_flag=1, условие A и условие B все выполнены, целевой режим слияния должен быть определен на основе ciip_flag согласно нескольким условиям в предшествующем уровне техники.
[00370] Необязательно, элемент синтаксиса высокого уровня представляет собой элемент синтаксиса по меньшей мере на одном из уровня последовательности, уровня изображения, уровня фрагмента и уровня группы фрагментов.
[00371] Необязательно, режим слияния уровня-1 включает в себя обычный режим слияния, режим MMVD и режим слияния подблоков.
[00372] Когда определяется, доступен ли режим слияния уровня-1, то, доступны ли эти режимы, можно последовательно определять в последовательности из обычного режима слияния, режима MMVD и режима слияния подблоков.
[00373] Например, сначала может быть определено, доступен ли обычный режим слияния. Когда обычный режим слияния недоступен (если доступен обычный режим слияния, обычный режим слияния может непосредственно использоваться в качестве конечного целевого режима слияния), продолжает определяться, доступен ли режим MMVD. Когда режим MMVD недоступен, продолжает определяться, доступен ли режим слияния подблоков.
[00374] Необязательно, способ, показанный на фиг. 13 может применяться к стороне кодера для кодирования текущего блока изображения.
[00375] Необязательно, способ, показанный на фиг. 13 может применяться к стороне декодера для декодирования текущего блока изображения.
[00376] Чтобы лучше понять конкретный процесс способа прогнозирования изображения в вариантах осуществления настоящей заявки, ниже подробно описывается со ссылкой на конкретный пример процесс определения режима слияния изображений в способе прогнозирования изображения в вариантах осуществления настоящей заявки.
[00377] Нижеследующее подробно описывает способ прогнозирования изображения в вариантах осуществления настоящей заявки со ссылкой на фиг. 14 и таблицу 4.
[00378] Фиг. 14 показывает процесс определения режима слияния согласно варианту осуществления настоящей заявки. Процесс, показанный на фиг. 14 включает в себя этапы с 3001 по 3007. Ниже приводится подробное описание этих шагов.
[00379] 3001: Начало.
[00380] Этап 3001 указывает, что прогнозирование изображения начинается.
[00381] 3002: Определение того, используется ли режим слияния для текущего блока изображения.
[00382] В частности, когда этап 3002 выполняется стороной декодера, на этапе 3002, то, используется ли режим слияния для текущего блока изображения, может быть определено на основе значения элемента синтаксиса уровня CU merge_flag[x0] [y0], соответствующего текущему блоку изображения.
[00383] Например, как показано в таблице 4, когда merge_flag[x0][y0] = 0, режим слияния не используется для текущего блока изображения. В этом случае текущий блок изображения может быть спрогнозирован другим способом. Например, текущий блок изображения может быть спрогнозирован в режиме AMVP.
[00384] Когда merge_flag[x0][y0] = 1, режим слияния используется для текущего блока изображения. Затем может дополнительно определяться, какой режим слияния используется для прогнозирования текущего блока изображения.
[00385] Следует понимать, что, когда в потоке битов нет merge_flag[x0][y0], merge_flag[x0][y0] по умолчанию равен 0.
[00386] (x0, y0) представляет координаты местоположения элемента пикселя яркости в верхнем левом углу текущего блока изображения относительно элемента пикселя яркости в верхнем левом углу текущего изображения. Значение (x0, y0) в следующих элементах синтаксиса такое же, как это, и подробности здесь не описываются.
[00387] Необязательно, способ, показанный на фиг. 14 дополнительно включает в себя: получение текущего блока изображения перед этапом 3002.
[00388] Текущий блок изображения может быть блоком изображения в текущем кодируемом или декодируемом изображении.
[00389] Следует понимать, что в настоящей заявке текущий блок изображения может быть получен в процессе определения целевого режима слияния текущего блока изображения или после определения целевого режима слияния текущего блока изображения.
[00390] 3003: Определение того, используется ли обычный режим слияния для текущего блока изображения.
[00391] В частности, на этапе 3003, используется ли обычный режим слияния для текущего блока изображения, может быть определено путем анализа значения элемента синтаксиса regular_merge_flag[x0][y0].
[00392] Когда regular_merge_flag[x0][y0] = 1, определяется, что для текущего блока изображения используется обычный режим слияния. В этом случае может быть выполнен этап 3007. Чтобы быть конкретным, текущий блок изображения прогнозируется на основе обычного режима слияния.
[00393] Когда regular_merge_flag[x0][y0]=0, определяется, что обычный режим слияния не используется для текущего блока изображения. В этом случае необходимо продолжить выполнение этапа 3004, чтобы дополнительно определить режим слияния, используемый для текущего блока изображения.
[00394] Следует понимать, что, когда в потоке битов нет regular_merge_flag[x0][y0], regular_merge_flag[x0][y0] по умолчанию равен 0.
[00395] 3004: Определите, используется ли режим MMVD для текущего блока изображения.
[00396] В частности, на этапе 3004, когда элемент синтаксиса высокого уровня, соответствующий режиму MMVD, указывает, что MMVD может быть разрешено использовать, и область текущего блока изображения не равна 32, используется ли MMVD для текущий блок изображения может быть определен путем анализа значения элемента синтаксиса mmvd_flag[x0][y0].
[00397] Когда mmvd_flag[x0][y0]=1, определяется, что режим MMVD используется для текущего блока изображения. В этом случае может быть выполнен этап 3007. Чтобы быть конкретным, текущий блок изображения прогнозируется на основе режима MMVD.
[00398] Когда mmvd_flag[x0][y0]=0, определяется, что режим MMVD не используется для текущего блока изображения. В этом случае необходимо продолжить выполнение этапа 3005, чтобы дополнительно определить режим слияния, используемый для текущего блока изображения.
[00399] Следует понимать, что, когда в потоке битов нет mmvd_flag[x0][y0], mmvd_flag[x0][y0] по умолчанию равен 0.
[00400] 3005: Определите, используется ли режим слияния подблоков для текущего блока изображения.
[00401] На этапе 3004, используется ли режим слияния подблоков для текущего блока изображения, может быть определено на основе значения элемента синтаксиса merge_subblock_flag[x0][y0], которое получается путем анализа потока битов.
[00402] Когда merge_subblock_flag[x0][y0] = 1, определяется, что режим слияния подблоков используется для текущего блока изображения. В этом случае может быть выполнен этап 3007. В частности, текущий блок изображения прогнозируется на основе режима слияния подблоков.
[00403] Когда merge_subblock_flag[x0][y0] = 0, определяется, что режим слияния подблоков не используется для текущего блока изображения. В этом случае необходимо продолжить выполнение этапа 3006, чтобы дополнительно определить режим слияния, используемый для текущего блока изображения.
[00404] Следует понимать, что, когда в потоке битов нет merge_subblock_flag[x0][y0], merge_subblock_flag[x0][y0] по умолчанию равен 0.
[00405] Кроме того, на этапе 3004 значение элемента синтаксиса merge_subblock_flag[x0][y0] может быть проанализировано только тогда, когда максимальная длина списка на слияние возможных подблоков больше 0, а ширина и высота текущего блока изображения равны больше или равно 8, и этап 3007 продолжает выполняться, когда полученное значение merge_subblock_flag[x0][y0] равно 0.
[00406] 3006: Определение режим слияния, используемого для текущего блока изображения, из режима CIIP и режима TPM.
[00407] В частности, на этапе 3006, если все шесть условий в следующих условиях (1) - (6) выполнены, ciip_flag[x0][y0] анализируется из потока битов, режим слияния, используемый для текущего блока изображения, определяется на основе на значении ciip_flag[x0][y0]. Когда ciip_flag[x0][y0] = 1, режим CIIP используется для прогнозирования текущего блока изображения.
[00408] Кроме того, когда выполняется следующее условие (1), если любое из следующих условий (2) - (6) не выполняется, режим CIIP используется для прогнозирования текущего блока изображения.
(1) sps_ciip_enabled_flag = 1;
(2) sps_triangle_enabled_flag = 1;
(3) cu_skip_flag [x0] [y0] == 0;
(4) (cbWidth * cbHeight) ≥ 64;
(5) cbWidth < 128; и
(6) cbHeight < 128.
[00409] cbWidth и cbHeight - соответственно ширина и высота текущего блока изображения.
[00410] Необязательно, дополнительные условия определения могут быть дополнительно добавлены, когда режим слияния, используемый для текущего блока, определяется на этапе 3006.
[00411] На основании вышеизложенных условий (1) - (6) могут быть дополнительно добавлены условия (7) и (8):
(7) slice_type == B; и
(8) MaxNumTriangleMergeCand ≥ 2.
[00412] Необязательно, на этапе 3006, если все восемь условий в вышеупомянутых условиях (1) - (8) выполняются, ciip_flag[x0][y0] анализируется из потока битов, режим слияния, используемый для текущего блока изображения, определяется на основе от значения ciip_flag[x0][y0]. Когда ciip_flag[x0][y0] = 1, режим CIIP используется для прогнозирования текущего блока изображения.
[00413] Кроме того, когда вышеупомянутое условие (1) выполняется, если любое из следующих условий (2) - (8) не выполняется, режим CIIP используется для прогнозирования текущего блока изображения.
[00414] 3007: Прогнозирование текущего блока изображения на основе режима слияния, используемого для текущего блока изображения.
[00415] Когда на этапе 3003 определяется, что для текущего блока изображения используется обычный режим слияния, на этапе 3007 текущий блок изображения прогнозируется на основе обычного режима слияния. Когда на этапе 3004 определяется, что режим MMVD используется для текущего блока изображения, на этапе 3007 текущий блок изображения прогнозируется на основе режима MMVD. Когда на этапе 3005 определяется, что режим слияния подблоков используется для текущего блока изображения, на этапе 3007 текущий блок изображения прогнозируется на основе режима слияния подблоков.
[00416] В таблице 4 показано, как определить на основе соответствующего элемента синтаксиса режим слияния, используемый для текущего блока изображения, когда используется режим слияния. Ниже подробно описано определение режима слияния текущего блока изображения со ссылкой на таблицу 4.
Таблица 4
cu_skip_flag[ x0 ][ y0 ] = = 0 && ( cbWidth * cbHeight ) ≥ 64 && cbWidth < 128 && cbHeight < 128 )
[00417] Когда regular_merge_flag[x0][y0], показанный в таблице 4, равен 1, определяется, что для текущего блока изображения используется обычный режим слияния. В этом случае параметр обычного режима слияния может быть получен путем анализа элемента синтаксиса merge_idx[x0][y0]. Когда regular_merge_flag[x0][y0], показанный в таблице 4, равен 0, определяется, что обычный режим слияния не используется для текущего блока изображения, и дополнительно необходимо определить режим слияния, используемый для текущего блока изображения.
[00418] Когда sps_mmvd_enabled_flag и cbWidth * cbHeight ! в таблице 4 показаны соответственно 1 и 32, это указывает на то, что режим MMVD может использоваться для текущего блока изображения. В этом случае режим слияния текущего блока изображения может быть определен на основе значения mmvd_flag[x0][y0]. Если mmvd_flag[x0][y0] = 1, определяется, что режим MMVD используется для текущего блока изображения, и параметр режима MMVD может быть определен путем синтаксического анализа элементов mmvd_merge_flag[x0][y0], mmvd_distance_idx[x0][y0] и mmvd_direction_idx[x0][y0]. Если mmvd_flag[x0][y0]=0, дополнительно необходимо определить режим слияния, используемый для текущего блока изображения.
[00419] Когда merge_subblock_flag[x0][y0], показанный в таблице 4, равен 1, определяется, что режим слияния подблоков используется для текущего блока изображения. Когда merge_subblock_flag[x0][y0], показанный в таблице 4, равен 0, определяется, что режим слияния подблоков не используется для текущего блока изображения, и дополнительно необходимо определить режим слияния, используемый для текущего блока изображения.
[00420] Когда sps_ciip_enabled_flag, показанный в таблице 4, равен 0, можно напрямую определить, что режим TPM используется для текущего блока изображения. Однако, когда sps_ciip_enabled_flag и sps_ciip_enabled_flag, показанные в таблице 4, равны соответственно 1 и 0, можно напрямую определить, что режим CIIP используется для текущего блока изображения.
[00421] Как показано в таблице 4, когда все шесть условий в следующих условиях (1) - (6) выполняются, должна быть указана информация о доступном статусе режима CIIP, а именно значение ciip_flag[x0][y0] должно быть полученным из битового потока. Если ciip_flag[x0][y0] = 1, определяется, что режим CIIP используется для текущего блока изображения. Если ciip_flag[x0][y0]=0, определяется, что режим TPM используется для текущего блока изображения.
(1) sps_ciip_enabled_flag = 1;
(2) sps_triangle_enabled_flag = 1;
(3) cu_skip_flag[x0][y0] == 0;
(4) (cbWidth * cbHeight) ≥ 64;
(5) cbWidth < 128;
(6) cbHeight < 128.
[00422] Необязательно, if(sps_ciip_enabled_flag && sps_triangle_enabled_flag &&cu_skip_flag[x0][y0] == 0 && (cbWidth * cbHeight) ≥ 64&&cbWidth < 128 && cbHeight < 128) в таблице 4 может быть заменено if(sps_triangle_enabled_flag && sps_ciip_enabled_flag && cu_skip_flag[x0][y0] = = 0 && (cbWidth * cbHeight) ≥ 64 && cbWidth < 128 && cbHeight < 128). Другими словами, можно настроить последовательность sps_ciip_enabled_flag и sps_triangle_enabled_flag. Конкретный результат может быть показан в таблице 5.
Таблица 5
cu_skip_flag[ x0 ][ y0 ] = = 0 && ( cbWidth * cbHeight ) ≥ 64 && cbWidth < 128 && cbHeight < 128 )
[00423] Следует отметить, что в таблице 4 и таблице 5 временная последовательность определения CIIP предшествует временной последовательности определения TPM. Чтобы быть конкретным, сначала определяется CIIP, а режим прогнозирования, наконец, используемый для текущего блока, определяется на основе состояния CIIP. Если CIIP верен, нет необходимости дополнительно определять информацию о TPM. Если CIIP имеет значение false, это означает, что доступен только TPM. В этом случае последний режим прогнозирования текущего блока может быть установлен в режим TPM. Установка приоритета или логика определения временной последовательности - это просто пример, и в качестве альтернативы их можно отрегулировать по мере необходимости. Например, временная последовательность TPM сделана раньше, чем временная последовательность CIIP. В этом случае условие для определения, применим ли режим TPM, также должно быть скорректировано по мере необходимости.
Таблица 6
slice_type == B && MaxNumTriangleMergeCand ≥ 2 &&
cu_skip_flag[ x0 ][ y0 ] = = 0 && ( cbWidth * cbHeight ) ≥ 64 && cbWidth < 128 && cbHeight < 128)
[00424] Как показано в таблице 6, когда все восемь условий в следующих условиях (1) - (8) выполняются, индикация информации о доступном статусе режима CIIP, а именно, значение ciip_flag[x0][y0], должно быть полученным из битового потока. Если ciip_flag[x0][y0] = 1, определяется, что режим CIIP используется для текущего блока изображения. Если ciip_flag[x0][y0] = 0, определяется, что режим TPM используется для текущего блока изображения.
(1) sps_ciip_enabled_flag = 1;
(2) sps_triangle_enabled_flag = 1;
(3) cu_skip_flag[x0][y0] == 0;
(4) (cbWidth * cbHeight) ≥ 64;
(5) cbWidth < 128;
(6) cbHeight < 128.
[00425] Необязательно, if(sps_ciip_enabled_flag && sps_triangle_enabled_flag &&slice_type == B && MaxNumTriangleMergeCand ≥ 2 && cu_skip_flag[x0][y0] = =0&& (cbWidth * cbHeight) ≥ 64&&cbWidth < 128 && cbHeight < 128) в таблице 6 может быть альтернативно заменено на if(sps_triangle_enabled_flag && sps_ciip_enabled_flag &&slice_type == B && MaxNumTriangleMergeCand ≥ 2 && cu_skip_flag[x0][y0] = =0&& (cbWidth * cbHeight) ≥ 64&&cbWidth < 128 && cbHeight < 128). Другими словами, последовательность sps_ciip_enabled_flag и sps_triangle_enabled_flag может быть скорректирована. Конкретный результат может быть показан в таблице 7.
Таблица 7
slice_type == B && MaxNumTriangleMergeCand ≥ 2 &&
cu_skip_flag[ x0 ][ y0 ] = = 0 && ( cbWidth * cbHeight ) ≥ 64 && cbWidth < 128 && cbHeight < 128)
[00426] Вышеизложенное подробно описывает способ прогнозирования изображения в вариантах осуществления настоящей заявки со ссылкой на фиг. 13 и фиг. 14. Ниже описывается способ прогнозирования изображения в вариантах осуществления настоящей заявки со ссылкой на фиг. 15.
[00427] Фиг. 15 - схематическая блок-схема способа прогнозирования изображения согласно варианту осуществления настоящей заявки. Способ прогнозирования изображения, показанный на фиг. 15 может выполняться устройством прогнозирования изображения (устройство прогнозирования изображения может быть расположено в устройстве (системе) декодирования изображения или устройстве (системе) кодирования изображения). В частности, способ, показанный на фиг. 15 может выполняться устройством кодирования изображения или устройством декодирования изображения. Способ, показанный на фиг. 15 может выполняться на стороне кодера или может выполняться на стороне декодера. Способ, показанный на фиг. 15 включает в себя этапы 4001-4007. Ниже приводится подробное описание этих шагов.
[00428] 4001: Начало.
[00429] Этап 4001 указывает, что прогнозирование изображения начинается.
[00430] 4002: Определение того, используется ли режим слияния для текущего блока изображения.
[00431] Для стороны декодера на этапе 4002, используется ли режим слияния для текущего блока изображения, может быть определено на основе элемента синтаксиса уровня CU merge_flag[x0][y0]. Для конкретного процесса определения см. соответствующие описания ниже этапа 1003.
[00432] Когда на этапе 4002 определяется, что режим слияния не используется для текущего блока изображения, для прогнозирования текущего блока изображения может использоваться другой режим, отличный от режима слияния. Например, когда определено, что режим слияния не используется для текущего блока изображения, режим AMVP может использоваться для прогнозирования текущего блока изображения.
[00433] После того, как на этапе 4002 определено, что режим слияния используется для текущего блока изображения, этап 4003 продолжает выполняться для определения целевого режима слияния, применимого к текущему блоку изображения.
[00434] Необязательно, способ, показанный на фиг. 15, дополнительно включает в себя: получение текущего блока изображения перед этапом 4002.
[00435] Текущий блок изображения может быть блоком изображения в текущем кодируемом или декодируемом изображении.
[00436] Следует понимать, что в настоящей заявке текущий блок изображения может быть получен в процессе определения целевого режима слияния текущего блока изображения или после определения целевого режима слияния текущего блока изображения.
[00437] 4003: Определение того, следует ли использовать режим слияния уровня-1.
[00438] В частности, то, доступен ли режим слияния уровня-1 может быть определена на основе элемента синтаксиса высокого уровня, соответствующего режиму слияния уровня-1, и/или информации о доступном статусе, соответствующей режиму слияния уровня-1.
[00439] Необязательно, режим слияния уровня-1 на этапе 4003 включает в себя обычный режим слияния, режим MMVD и режим слияния подблоков.
[00440] Когда определяется, доступен ли режим слияния уровня-1, то, доступны ли эти режимы, можно последовательно определять в последовательности из обычного режима слияния, режима MMVD и режима слияния подблоков. Когда все режимы недоступны, определяется, что режим слияния уровня-1 недоступен.
[00441] Когда на этапе 4003 определяется, что режим слияния уровня-1 недоступен, этап 4004 может продолжаться для определения целевого режима слияния из режима слияния уровня-2.
[00442] Для способа прогнозирования изображения, показанного на фиг. 15, режим слияния уровня-1 и режим слияния уровня-2 могут включать в себя все опциональные режимы слияния текущего блока изображения, а для текущего блока изображения окончательный целевой режим слияния должен быть определен из режима слияния уровня-1 и режима слияния уровня-2.
[00443] Необязательно, приоритет режима слияния уровня-1 выше, чем приоритет режима слияния уровня-2.
[00444] То, что приоритет режима слияния уровня-1 выше, чем приоритет режима слияния уровня-2, означает, что в процессе определения целевого режима слияния текущего блока изображения целевой режим слияния предпочтительно определяется из режим слияния уровня-1. Если нет доступного режима слияния в режиме слияния уровня-1, целевой режим слияния затем определяется из режима слияния уровня-2.
[00445] 4004: Определение того, выполняются ли условия с 1 по 5.
[00446] Условие 1 - условие 5 следующие:
[00447] Условие 1: Допускается использование режима TPM.
[00448] Условие 2: Тип фрагмента или группы фрагментов, в которых расположен текущий блок изображения, - B.
[00449] Условие 3: Максимальное количество возможных режимов TPM, поддерживаемое фрагментом или группой фрагментов, в которых расположен текущий блок изображения, определяется как большее или равное 2.
[00450] Условие 4: Размер текущего блока изображения соответствует заданному условию.
[00451] Условие 5: Режим пропуска не используется для прогнозирования текущего блока изображения.
[00452] Условие 1 может быть конкретно представлено sps_triangle_enabled_flag=1, условие 2 может быть конкретно представлено slice_type == B, а условие 3 может быть конкретно представлено MaxNumTriangleMergeCand ≥ 2. MaxNumTriangleMergeCand указывает максимальное количество возможных режимов TPM, поддерживаемое фрагментом или группой фрагментов, в которых расположен текущий блок изображения.
[00453] Когда на этапе 4004 определяется, что любое из условия 1 - условия 5 не выполняется, режим CIIP может быть непосредственно определен как целевой режим слияния. Другими словами, осуществляется этап 4005. Когда на этапе 4004 определяется, что пять условий, а именно условие 1 - условие 5, удовлетворяются, целевой режим слияния дополнительно должен быть определен на основе соответствующей информации о режиме CIIP. Другими словами, осуществляется этап 4006.
[00454] 4005: Определение режима CIIP как целевого режима слияния, когда разрешено использование режима CIIP.
[00455] Другими словами, на этапе 4005, когда разрешено использование режима CIIP, и любое из условия 1 - условия 5 не выполняется, режим CIIP определяется как целевой режим слияния.
[00456] Необязательно, когда любое из условия 1 - условия 5 не выполняется, значение информации о доступном статусе, которая указывает доступный статус режима CIIP, устанавливается на первое значение. Когда значение информации о доступном статусе, которая указывает доступный статус режима CIIP, является первым значением, режим CIIP используется для выполнения прогнозирования изображения для текущего блока изображения.
[00457] Следует понимать, что значение информации о доступном статусе, которое указывает доступный статус режима CIIP, установлено на первое значение в данном документе, эквивалентно тому, что CIIP определяется как целевой режим слияния.
[00458] Необязательно, информацией о доступном статусе, указывающей доступный статус режима CIIP, является ciip_flag.
[00459] То, что значение информации о доступном статусе, которое указывает доступный статус режима CIIP, установлено на первое значение, в частности, может быть то, что ciip_flag установлен на 1.
[00460] Кроме того, когда значение информации о доступном статусе, которая указывает доступный статус режима CIIP, устанавливается на второе значение, это может означать, что режим CIIP не используется для выполнения прогнозирования изображения для текущего блока изображения. Например, когда информацией о доступном статусе, которая указывает доступный статус режима CIIP, является ciip_flag, а ciip_flag=0, режим CIIP не используется для осуществления прогнозирования изображения для текущего блока изображения.
[00461] 4006: Определение целевого режима слияния на основе элемента синтаксиса высокого уровня, соответствующего режиму CIIP, и/или информации о доступном статусе, которая указывает доступный статус режима CIIP.
[00462] Информация о доступном статусе, которая указывает доступный статус режима CIIP, используется, чтобы указать, используется ли режим CIIP, когда прогнозируется текущий блок изображения.
[00463] Другими словами, на этапе 4006, когда все условия от условия 1 до условия 5 выполнены, целевой режим слияния дополнительно должен быть определен на основе элемента синтаксиса высокого уровня, соответствующего режиму CIIP и/или информации о доступном статусе, указывающая на доступный статус режима CIIP.
[00464] Информация о доступном статусе, которая указывает доступный статус режима CIIP, может быть значением ciip_flag. Когда ciip_flag равен 0, режим CIIP недоступен для текущего блока изображения. Когда ciip_flag равен 1, режим CIIP доступен для текущего блока изображения.
[00465] Необязательно, что целевой режим слияния определяется на основе элемента синтаксиса высокого уровня, соответствующего режиму CIIP, и/или информации о доступном статусе, которая указывает доступный статус режима CIIP, включает в себя: когда элемент синтаксиса высокого уровня, соответствующий режиму CIIP, и/или информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает/указывают, что режим CIIP запрещено использовать, режим TPM определяется как целевой режим слияния.
[00466] То, что элемент синтаксиса высокого уровня, соответствующий режиму CIIP, и/или информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает/указывают, что режим CIIP запрещено использовать, включает случаи 1 и 3:
[00467] Случай 1: Элемент синтаксиса высокого уровня, соответствующий режиму CIIP, указывает, что режим CIIP запрещено использовать, а информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает, что режим CIIP недоступен.
[00468] Случай 2: Элемент синтаксиса высокого уровня, соответствующий режиму CIIP, указывает, что режим CIIP разрешен для использования, а информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает, что режим CIIP недоступен.
[00469] Случай 3: Информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает, что режим CIIP недоступен.
[00470] Следует понимать, что, когда элемент синтаксиса высокого уровня, соответствующий режиму CIIP, указывает, что режим CIIP разрешен для использования, а информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает, что режим CIIP доступен, режим CIIP определяется как целевой режим слияния.
[00471] Необязательно, когда элемент синтаксиса высокого уровня, соответствующий режиму CIIP, и/или информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает/указывают, что режим CIIP запрещено использовать, что режим TPM определяется как целевой режим слияния включает в себя:
[00472] Когда элемент синтаксиса высокого уровня, соответствующий режиму CIIP, и/или информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает/указывают, что режим CIIP запрещено использовать, значение информации о доступном статусе, которая указывает доступный статус режима TPM, устанавливается на первое значение, где, когда значение информации о доступном статусе, которая указывает доступный статус режима TPM, является первым значением, режим TPM используется для выполнения прогнозирования изображения для текущего блока изображения.
[00473] Следует понимать, что значение информации о доступном статусе, которая указывает доступный статус режима TPM, установлено на первое значение в данном документе, эквивалентно тому, что TPM определяется как целевой режим слияния.
[00474] Необязательно, информация о доступном статусе, указывающая доступный статус режима TPM, - это MergeTriangleFlag.
[00475] То, что значение информации о доступном статусе, которая указывает доступный статус режима TPM, установлено на первое значение, в частности, может быть то, что MergeTriangleFlag установлен на 1.
[00476] В настоящей заявке целевой режим слияния может быть определен на основе элемента синтаксиса высокого уровня режима CIIP и/или информации о доступном статусе, которая указывает доступный статус режима CIIP, только когда выполняются пять заданных условий. По сравнению с обычным решением, необходимо выполнить больше условий, прежде чем целевой режим слияния будет дополнительно определен на основе элемента синтаксиса высокого уровня и информации о доступном статусе режима CIIP. В противном случае режим CIIP может быть напрямую определен как целевой режим слияния. Это может уменьшить количество избыточных процессов в процессе определения целевого режима слияния.
[00477] С другой стороны, когда режим слияния уровня-1 недоступен, на основе некоторых заданных условий может быть определено, следует ли выбирать режим CIIP в качестве окончательного режима слияния, и режим CIIP может быть непосредственно определен как целевой режим слияния при условии, что ни одно из заданных условий не выполняется. Это снижает избыточность, возникающую в процессе определения целевого слияния.
[00478] 4007: Прогнозирование текущего блока изображения на основе целевого режима слияния.
[00479] Необязательно, прежде чем целевой режим слияния будет определен на основе элемента синтаксиса высокого уровня, соответствующего режиму CIIP, и/или информации о доступном статусе, которая указывает доступный статус режима CIIP, способ, показанный на фиг. 15, также включает в себя:
определение того, что выполняется хотя бы одно из следующих условий:
[00480] Размер текущего блока изображения соответствует заданному условию; и
Режим пропуска не используется для прогнозирования текущего блока изображения.
[00481] Необязательно, что размер текущего блока изображения соответствует заданному условию, включает в себя: текущий блок изображения соответствует следующим трем условиям:
(cdWidth * cbHeight) ≥ 64;
cbWidth < 128; and
cbHeight < 128.
[00482] cdWidth - ширина текущего блока изображения, а cbHeight - высота текущего блока изображения.
[00483] Вышеизложенное подробно описывает способ прогнозирования изображения в вариантах осуществления настоящей заявки со ссылкой на сопроводительные чертежи. Ниже описывается устройство прогнозирования изображения в варианте осуществления настоящей заявки со ссылкой на фиг. 16. Следует понимать, что устройство прогнозирования изображения, показанное на фиг. 16 может осуществлять этапы способа прогнозирования изображения в вариантах осуществления настоящей заявки. Чтобы избежать ненужного повторения, нижеследующее надлежащим образом опускает повторяющиеся описания при описании устройства прогнозирования изображения в этом варианте осуществления настоящей заявки.
[00484] Фиг. 16 - схематическая блок-схема устройства прогнозирования изображения согласно варианту осуществления настоящей заявки.
[00485] Устройство 5000 прогнозирования изображения, показанное на фиг. 16 включает в себя блок 5001 определения и блок 5002 прогнозирования.
[00486] Устройство 5000 прогнозирования изображения, показанное на фиг. 16, выполнено с возможностью осуществления способа прогнозирования изображения в вариантах осуществления настоящей заявки. В частности, блок 5001 определения в устройстве 5000 прогнозирования изображения может быть выполнен с возможностью осуществления процесса определения целевого режима слияния в способе прогнозирования изображения, показанном на фиг. 13 - фиг. 15. Блок 5002 прогнозирования в устройстве 5000 прогнозирования изображения выполнен с возможностью осуществления процесса осуществления прогнозирования изображения для текущего блока изображения на основе целевого режима слияния в способе прогнозирования изображения, показанном на фиг. 13 - фиг. 15.
[00487] Фиг. 17 - схематическая диаграмма аппаратной структуры устройства прогнозирования изображения согласно варианту осуществления настоящей заявки. Устройство 6000 прогнозирования изображения, показанное на фиг. 17 (устройство 6000, в частности, может быть компьютерным устройством) включает в себя память 6001, процессор 6002, интерфейс 6003 связи и шину 6004. Коммуникационные соединения между памятью 6001, процессором 6002 и интерфейсом 6003 связи реализуются через шину 6004.
[00488] Память 6001 может быть постоянным запоминающим устройством (read only memory, ROM), статическим запоминающим устройством, динамическим запоминающим устройством или оперативной памятью (random access memory, RAM). Память 6001 может хранить программу. Когда программа, хранящаяся в памяти 6001, выполняется процессором 6002, процессор 6002 выполнен с возможностью осуществления этапов способа прогнозирования изображения в вариантах осуществления настоящей заявки.
[00489] Процессор 6002 может использовать центральный процессор общего назначения (central processing unit, CPU), микропроцессор, специализированную интегральную схему (application specific integrated circuit, ASIC), графический процессор (graphics processing unit, GPU), или одной или более интегральных схем, и выполнен с возможностью выполнения связанной программы, чтобы реализовать способ обнаружения изображения в вариантах осуществления способа настоящей заявки.
[00490] Процессор 6002 может быть интегральной микросхемой и может обладать возможностью обработки сигналов. В процессе реализации этапы способа прогнозирования изображения в настоящей заявке могут быть выполнены с использованием аппаратной интегральной логической схемы или инструкции в форме программного обеспечения в процессоре 6002.
[00491] В качестве альтернативы процессор 6002 может быть процессором общего назначения, процессором цифровых сигналов (digital signal processing, DSP), специализированной интегральной схемой (ASIC), программируемой пользователем вентильной матрицей (FPGA) или другим программируемым логическим устройством, дискретным логическое устройство затвора или транзистора, или дискретный аппаратный компонент. Процессор 602 может реализовывать или выполнять способы, этапы и логические блок-схемы, которые раскрыты в вариантах осуществления настоящей заявки. Процессор общего назначения может быть микропроцессором, или процессор может быть любым традиционным процессором или подобным. Этапы способа, раскрытого со ссылкой на варианты осуществления настоящей заявки, могут быть непосредственно выполнены и завершены процессором аппаратного декодирования или могут выполняться и завершаться комбинацией аппаратных и программных модулей в процессоре декодирования. Программный модуль может быть расположен на носителе данных, хорошо известном в данной области техники, таком как оперативная память, флэш-память, постоянная память, программируемая постоянная память, электрически стираемая программируемая память или регистр. Носитель данных расположен в памяти 6001. Процессор 6002 считывает информацию в памяти 6001 и выполняет, в сочетании с аппаратным обеспечением процессора 6002, функции, которые должны выполняться блоками, включенными в устройство прогнозирования изображения, или выполняет способ прогнозирования изображения в вариантах осуществления способа настоящей заявки.
[00492] Интерфейс 6003 связи использует устройство приемопередатчика, например, но не ограничиваясь этим, приемопередатчик, для реализации связи между устройством 6000 и другим устройством или сетью связи. Например, информация о нейронной сети, которая должна быть построена, и данные обучения, необходимые в процессе построения нейронной сети, могут быть получены через интерфейс 6003 связи.
[00493] Шина 6004 может включать в себя путь для передачи информации между компонентами (например, памятью 6001, процессором 6002 и интерфейсом 6003 связи) устройства 6000.
[00494] Блок 5001 определения и блок 5002 прогнозирования в устройстве 5000 прогнозирования изображения эквивалентны процессору 6002 в устройстве 6000 прогнозирования изображения.
[00495] Фиг. 18 - схематическая диаграмма аппаратной структуры устройства кодирования/декодирования изображения согласно варианту осуществления настоящей заявки. Устройство 7000 кодирования/декодирования изображений, показанное на фиг. 18 (устройство 7000, в частности, может быть компьютерным устройством) включает в себя память 7001, процессор 7002, интерфейс 7003 связи и шину 7004. Коммуникационные соединения между памятью 7001, процессором 7002 и интерфейсом 7003 связи реализуются через шину 7004.
[00496] Вышеупомянутые ограничения и пояснения модулей в устройстве 6000 прогнозирования изображения также применимы к устройству 7000 кодирования/декодирования изображения, и подробности здесь снова не описываются.
[00497] Память 7001 может быть выполнена с возможностью хранения программы. Процессор 7002 выполнен с возможностью выполнения программы, хранящейся в памяти 7001. Когда программа, хранящаяся в памяти 7001, выполняется, процессор 7002 выполнен с возможностью осуществления этапов способа прогнозирования изображения в вариантах осуществления настоящей заявки.
[00498] Кроме того, при кодировании видеоизображения устройство 7000 кодирования/декодирования изображений может получать видеоизображение через интерфейс связи, а затем кодировать полученное видеоизображение для получения закодированных видеоданных. Закодированные видеоданные могут быть переданы в устройство декодирования видео через интерфейс 7003 связи.
[00499] При декодировании видеоизображения устройство 7000 кодирования/декодирования изображений может получить видеоизображение через интерфейс связи, а затем декодировать полученное видеоизображение, чтобы получить видеоизображение, которое должно быть отображено.
[00500] Специалист в данной области техники может знать, что в сочетании с примерами, описанными в вариантах осуществления, раскрытых в данном описании, блоки и этапы алгоритма могут быть реализованы посредством электронного аппаратного обеспечения или комбинации компьютерного программного обеспечения и электронного аппаратного обеспечения. Выполняются ли функции аппаратным или программным обеспечением, зависит от конкретного приложения и конструктивных ограничений технических решений. Специалист в данной области может использовать различные способы для реализации описанных функций для каждого конкретного применения, но не следует считать, что такая реализация выходит за рамки объема данной заявки.
[00501] Специалисту в данной области техники может быть ясно, что для удобного и краткого описания подробный рабочий процесс вышеупомянутой системы, устройства и блоков относится к соответствующему процессу в вышеупомянутых вариантах осуществления способа, а подробности не приводятся здесь снова.
[00502] Следует понимать, что в нескольких вариантах осуществления, представленных в настоящей заявке, раскрытые система, устройство и способ могут быть реализованы другим способом. Например, описанный вариант осуществления устройства является просто примером. Например, разделение на блоки - это просто разделение логических функций и может быть другим разделением в фактической реализации. Например, множество блоков или компонентов могут быть объединены или интегрированы в другую систему, или некоторые признаки могут игнорироваться или не выполняться. Кроме того, отображаемые или обсуждаемые взаимные связи или прямые связи или коммуникационные соединения могут быть реализованы через некоторые интерфейсы. Непрямые соединения или коммуникационные соединения между устройствами или блоками могут быть реализованы в электронной форме, механической форме или другой форме.
[00503] Блоки, описанные как отдельные части, могут быть или не быть физически отдельными, и части, отображаемые как блоки, могут быть или не быть физическими единицами, могут быть расположены в одном месте или могут быть распределены по множеству сетевых блоков. Некоторые или все блоки могут быть выбраны на основе фактического требования для достижения целей решений вариантов осуществления.
[00504] Кроме того, функциональные блоки в вариантах осуществления настоящей заявки могут быть интегрированы в один блок обработки, или каждый из блоков может существовать отдельно физически, или два или более блоков интегрируются в один блок.
[00505] Когда функции реализуются в форме программного функционального блока и продаются или используются в виде независимого продукта, функции могут быть сохранены на считываемом компьютером носителе данных. Основываясь на таком понимании, суть технических решений в этой заявке, или определенная часть, вносящая в уровень техники вклад, или некоторые технические решения могут быть реализованы в форме программного продукта. Программный продукт хранится на носителе данных и включает в себя несколько инструкций для указания компьютерному устройству (которое может быть персональным компьютером, сервером или сетевым устройством) выполнять все или некоторые из этапов способов, описанных в вариантах осуществления. настоящей заявки. Вышеуказанный носитель данных включает в себя: любой носитель, который может хранить программный код, такой как флэш-накопитель USB, съемный жесткий диск, постоянное запоминающее устройство (read-only memory, ROM), оперативная память (random access memory, RAM), магнитный диск или оптический диск.
[00506] Вышеприведенное описание представляет собой лишь конкретные реализации настоящей заявки, но оно не предназначено для ограничения объема охраны настоящей заявки. Любое изменение или замена, легко обнаруживаемая специалистом в данной области техники в пределах технического объема, раскрытого в настоящей заявке, должно/должна попадать в объем охраны настоящей заявки. Следовательно, объем охраны настоящей заявки должен соответствовать объему охраны формулы изобретения.
Изобретение относится к технологиям кодирования видео, а более конкретно, к способу и устройству прогнозирования изображения. Техническим результатом является повышение эффективности кодирования видео посредством уменьшения избыточности в процессе прогнозирования изображения. Результат достигается тем, что способ прогнозирования изображения включает в себя: определение того, используется ли режим слияния для текущего блока изображения; когда режим слияния используется для текущего блока изображения, определение того, доступен ли режим слияния уровня-1 для текущего блока изображения; если первый режим слияния недоступен, и элемент синтаксиса высокого уровня, соответствующий первому режиму слияния, указывает, что первый режим слияния запрещено использовать, напрямую определение второго режима слияния как целевого режима слияния, применимого к текущему блоку изображения, при этом и первый режим слияния, и второй режим слияния принадлежат режиму слияния уровня-2; и прогнозирование текущего блока изображения на основе целевого режима слияния. 9 н. и 15 з.п. ф-лы, 18 ил., 7 табл.
1. Способ прогнозирования изображения, содержащий:
определение того, используется ли режим слияния для текущего блока изображения;
когда режим слияния используется для текущего блока изображения, определение того, доступен ли режим слияния уровня-1;
когда режим слияния уровня-1 недоступен, и элемент синтаксиса высокого уровня, соответствующий первому режиму слияния в режиме слияния уровня-2, указывает, что первый режим слияния запрещено использовать, определение второго режима слияния в режиме слияния уровня-2 в качестве целевого режима слияния, применимого к текущему блоку изображения, при этом режим слияния уровня-2 содержит первый режим слияния и второй режим слияния, при этом первый режим слияния представляет собой режим TPM треугольного разделения, а второй режим слияния представляет собой комбинированный режим CIIP с внутрикадровым и межкадровым прогнозированием; и
прогнозирование текущего блока изображения на основе целевого режима слияния.
2. Способ по п. 1, дополнительно содержащий:
когда режим слияния уровня-1 недоступен, и элемент синтаксиса высокого уровня, соответствующий первому режиму слияния в режиме слияния уровня-2, указывает, что первый режим слияния разрешен для использования, определение целевого режима слияния на основе элемента синтаксиса высокого уровня, соответствующего второму режиму слияния в режиме слияния уровня-2, и/или информации о доступном статусе второго режима слияния, при этом информация о доступном статусе второго режима слияния используется для указания того, используется ли второй режим слияния, когда прогнозируется текущий блок изображения.
3. Способ по п. 2, в котором определение целевого режима слияния на основе элемента синтаксиса высокого уровня, соответствующего второму режиму слияния, и/или информации о доступном статусе второго режима слияния, содержит:
когда элемент синтаксиса высокого уровня, соответствующий второму режиму слияния, и/или информация о доступном статусе второго режима слияния указывает/указывают, что второй режим слияния запрещено использовать, определение первого режима слияния как целевого режима слияния.
4. Способ по п. 2 или 3, в котором перед определением целевого режима слияния на основе элемента синтаксиса высокого уровня, соответствующего второму режиму слияния, и/или информации о доступном статусе второго режима слияния, способ дополнительно содержит:
определение того, что текущий блок изображения удовлетворяет хотя бы одному из следующих условий:
размер текущего блока изображения соответствует заданному условию;
режим пропуска не используется для прогнозирования текущего блока изображения.
5. Способ по п. 4, в котором размер текущего блока изображения соответствует заданному условию, содержит:
текущий блок изображения удовлетворяет следующим трем условиям:
(cdWidth * cbHeight) ≥ 64;
cbWidth < 128; и
cbHeight < 128, при этом
cdWidth - ширина текущего блока изображения, а cbHeight - высота текущего блока изображения.
6. Способ по любому из пп. 1-5, в котором элемент синтаксиса высокого уровня является элементом синтаксиса по меньшей мере на одном из уровня последовательности, уровня изображения, уровня фрагмента и уровня группы фрагментов.
7. Способ по любому из пп. 1-6, в котором режим слияния уровня-1 содержит обычный режим слияния, слияние с режимом MMVD разности векторов движения и режим слияния подблоков.
8. Способ по п. 1, дополнительно содержащий:
когда режим слияния уровня-1 недоступен, определение целевого режима слияния из режима слияния уровня-2, при этом режим слияния уровня-2 содержит режим TPM и режим CIIP; и
когда разрешено использование режима CIIP и не выполняется одно из следующих условий, определение режима CIIP как целевого режима слияния:
условие D: разрешено использование режима TPM;
условие E: режим пропуска не используется для прогнозирования текущего блока изображения;
условие F: (cbWidth * cbHeight) ≥ 64;
условие G: cbWidth < 128; и
условие H: cbHeight < 128, при этом
cbWidth текущего блока изображения - ширина текущего блока изображения, а cbHeight - высота текущего блока изображения.
9. Способ по любому из пп. 1-8, в котором способ прогнозирования применяется к стороне кодера для кодирования текущего блока изображения.
10. Способ по любому из пп. 1-8, в котором способ прогнозирования применяется к стороне декодера для декодирования текущего блока изображения.
11. Способ прогнозирования изображения, содержащий:
определение того, используется ли режим слияния для текущего блока изображения;
когда режим слияния используется для текущего блока изображения, определение того, доступен ли режим слияния уровня-1;
когда режим слияния уровня-1 недоступен, определение целевого режима слияния из режима слияния уровня-2, при этом режим слияния уровня-2 содержит режим TPM и режим CIIP; и
определение режима CIIP как целевого режима слияния, когда разрешено использование режима CIIP и не выполняется одно из следующих условий:
условие 1: разрешено использование режима TPM;
условие 2: тип фрагмента или группы фрагментов, в которых расположен текущий блок изображения, является B;
условие 4: размер текущего блока изображения соответствует заданному условию; и
условие 5: режим пропуска не используется для прогнозирования текущего блока изображения.
12. Способ по п. 11, в котором определение целевого режима слияния из режима слияния уровня-2 содержит:
когда любое из условия 1, условия 2, условия 4 и условия 5 не выполняется, установку значения информации о доступном статусе, которое указывает доступный статус режима CIIP, на первое значение, при этом, когда значение информации о доступном статусе, которое указывает доступный статус режима CIIP является первым значением, режим CIIP используется для выполнения прогнозирования изображения для текущего блока изображения.
13. Способ по п. 11, в котором определение целевого режима слияния из режима слияния уровня-2 содержит:
когда все условия из условия 1, условия 2, условия 4 и условия 5 выполнены, определение целевого режима слияния на основе элемента синтаксиса высокого уровня, соответствующего режиму CIIP, и/или информации о доступном статусе, которая указывает доступный статус режима CIIP, при этом информация о доступном статусе, которая указывает доступный статус режима CIIP, используется, чтобы указать, используется ли режим CIIP, когда прогнозируется текущий блок изображения.
14. Способ по п. 13, в котором определение целевого режима слияния на основе элемента синтаксиса высокого уровня, соответствующего режиму CIIP, и/или информации о доступном статусе, которая указывает доступный статус режима CIIP, содержит:
когда элемент синтаксиса высокого уровня, соответствующий режиму CIIP, и/или информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает/указывают, что режим CIIP запрещено использовать, определение режима TPM как целевого режима слияния.
15. Способ по п. 14, в котором, когда элемент синтаксиса высокого уровня, соответствующий режиму CIIP, и/или информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает/указывают, что режим CIIP запрещено использовать, определение режима TPM в качестве целевого режима слияния содержит:
когда элемент синтаксиса высокого уровня, соответствующий режиму CIIP, и/или информация о доступном статусе, которая указывает доступный статус режима CIIP, указывает/указывают, что режим CIIP запрещено использовать, установку значения информации о доступном статусе, которое указывает доступный статус режима TPM на первое значение, при этом, когда значение информации о доступном статусе, которое указывает доступный статус режима TPM, является первым значением, режим TPM используется для выполнения прогнозирования изображения для текущего блока изображения.
16. Способ по любому из пп. 11-15, в котором способ прогнозирования применяется к стороне кодера для кодирования текущего блока изображения.
17. Способ по любому из пп. 11-15, в котором способ прогнозирования применяется к стороне декодера для декодирования текущего блока изображения.
18. Устройство прогнозирования изображения, при этом устройство прогнозирования изображения содержит модуль, выполненный с возможностью осуществления способа по любому из пп. 1-10 или пп. 11-17.
19. Устройство прогнозирования изображения, содержащее:
память, выполненную с возможностью хранения программы; и
процессор, выполненный с возможностью выполнения программы, хранящейся в памяти, при этом, когда программа, хранящаяся в памяти, выполняется процессором, процессор осуществляет способ по любому из пп. 1-10 или пп. 11-17.
20. Устройство кодирования, содержащее устройство прогнозирования изображения по п. 18 или 19.
21. Устройство декодирования, содержащее устройство прогнозирования изображения по п. 18 или 19.
22. Система кодирования видео, при этом электронное устройство содержит устройство кодирования по п. 20 и/или устройство декодирования по п. 21.
23. Считываемый компьютером носитель данных, при этом считываемый компьютером носитель данных хранит компьютерную программу, которая может выполняться процессором, и когда компьютерная программа выполняется процессором, процессор осуществляет способ по любому из пп. 1-10 или пп. 11-17.
24. Кодер, содержащий схему обработки для выполнения способа по любому из пп. 1-10 или пп. 11-17.
US 9025669 B1, 2015.05.05 | |||
US 2019141334 A1, 2019.05.09 | |||
US 9066104 B2, 2015.06.23 | |||
CN 106303534 A, 2017.01.04 | |||
WO 2017084512 A1, 2017.05.26 | |||
WO 2012177388 A1, 2012.12.27 | |||
US 2012320984 A1, 2012.12.20 | |||
ДВОЙНОЙ ПРЕДСКАЗЫВАЮЩИЙ РЕЖИМ СЛИЯНИЯ, ОСНОВАННЫЙ НА ОДИНАРНЫХ ПРЕДСКАЗЫВАЮЩИХ СОСЕДЯХ, В КОДИРОВАНИИ ВИДЕО | 2012 |
|
RU2547240C1 |
Авторы
Даты
2023-12-22—Публикация
2020-04-23—Подача