СПОСОБ И УСТРОЙСТВО ДЛЯ СЖАТИЯ БЛОКА КОДИРОВАНИЯ В ВЫСОКОЭФФЕКТИВНОМ КОДИРОВАНИИ ВИДЕО
METHOD AND DEVICE FOR CONDENSING THE CODING UNIT IN HIGH-EFFICIENT VIDEO CODING

ПЕРЕКРЕСТНАЯ ССЫЛКА НА СВЯЗАННЫЕ ЗАЯВКИ
Настоящее изобретение испрашивает приоритет по предварительной заявке на патент США, серийный номер 61/508825, поданной 18 июля 2011 года, озаглавленной "Способ и синтаксис для сжатия блоков кодирования в HEVC". Настоящее изобретение также относится к непредварительной заявке на патент США, серийный номер 13/272221, поданной 13 октября 2011, озаглавленной "Способ и устройство для сжатия блоков кодирования в высокоэффективном кодировании видео”. Упомянутая предварительная заявка на патент США и упомянутая непредварительная заявка на патент США включены в настоящее описание посредством ссылки во всей полноте.
ОБЛАСТЬ ТЕХНИКИ
Настоящее изобретение относится к обработке видео. В частности, настоящее изобретение относится к способу и устройству для сжатия блоков кодирования в высокоэффективном кодировании видео (HEVC).
УРОВЕНЬ ТЕХНИКИ
Высокоэффективное кодирование видео (HEVC) является передовой системой кодирования видео, разрабатываемой в рамках группы Объединенной команды по кодированию видео (JCT-VC) экспертов по кодированию видео из Исследовательской группы ITU-T. В высокоэффективном кодировании видео (HEVC), блок кодирования 2N×2N может быть иерархически разделен на тип разделения, выбранный из 2N×2N, 2N×N, N×2N и N×N. Система кодирования использует критерий для определения наилучшего разделения, где в качестве критерия часто используется соотношение скорость передачи - искажение. Разделение N×N оценивается на уровне k, и то же самое разделение, то есть разделение 2N×2N, также оценивается на уровне k+1. Поэтому разделение N×N на уровне k становится избыточным, если разделение 2N×2N будет оцениваться на уровне k+1. Для устранения указанной выше избыточности, допустимые размеры разделения ограничены в соответствии со способом, раскрытым в непредварительной заявке на патент США, серийный номер 13/012811, поданной 25 января 2011 года, озаглавленной "Устройство и способ ограниченного размера разделения для высокоэффективного кодирования видео". В непредварительной заявке на патент США, серийный номер 13/012811, для каждого листового CU большего, чем SCU (наименьший CU), допустимы размеры разделения 2N×2N, 2N×N и N×2N. Другими словами, разделение N×N не допустимо для INTER (внешнего) режима, если листовой CU больше, чем SCU. Если размер листового CU такой же, как размер SCU, допускаются все размеры разделения: 2N×2N, 2N×N, N×2N и N×N. Хотя способ, раскрытый в непредварительной заявке на патент США, серийный номер 13/012811, уменьшает вычислительную сложность за счет умеренного снижения производительности, желательно разработать способ и устройство, которые могут еще больше снизить вычислительную сложность с примерно такой же производительностью. Кроме того, желательно обеспечить гибкость, так чтобы можно было выбрать либо способ и устройство с большим снижением сложности, либо альтернативный способ и устройство.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Раскрыты способ и устройство для декодирования битового потока видео. Способ и устройство для декодирования битового потока видео в соответствии с настоящим изобретением содержит прием первого сигнала указания из битового потока видео, выбор процесса декодирования из группы, состоящей из первого процесса декодирования и второго процесса декодирования в соответствии с первым сигналом указания, и определение структуры CU для блока кодирования (CU), связанного с битовым потоком видео, с использованием выбранного процесса декодирования. Выбранный процесс декодирования используется для определения структуры CU для CU, равного наименьшему CU (SCU). В одном варианте осуществления структура CU содержит разделение 2N×2N, разделение 2N×N и разделение N×2N без разделения N×N для CU большего, чем наименьший CU, и в котором первый процесс декодирования не допускает разделение N×N и второй процесс декодирования допускает разделение N×N для CU, равного наименьшему CU. Кроме того, первый процесс декодирования связан с первой таблицей кодовых слов, второй процесс декодирования связан со второй таблицей кодовых слов, и выбранный процесс декодирования связан с первой таблицей кодовых слов или второй таблицей кодовых слов в соответствии с первым сигналом указания. Первая таблица кодовых слов содержит записи кода, соответствующие разделению 2N×2N, разделению 2N×N и разделению N×2N, а вторая таблица кодовых слов содержит записи кода, соответствующие разделению 2N×2N, разделению 2N×N, разделению N×2N и разделению N×N. Процесс декодирования применим к различным типам кодирования, таким как двоичные арифметические коды, а также коды с переменной длиной кода.
Один аспект изобретения относится к включению сигнала указания. В одном варианте осуществления сигнал указания включен в уровень последовательности. В другом варианте осуществления сигнал указания включен в уровень изображения. Еще в одном варианте осуществления первый сигнал указания включен в уровень последовательности, а второй сигнал указания может быть включен в уровень изображения. Если второй сигнал указания включен в уровень изображения, процесс декодирования происходит согласно второму сигналу указания. В противном случае процесс декодирования происходит согласно первому сигналу указания. В одном варианте осуществления в соответствии с настоящим изобретением сигнал указания указывает, допустимо ли разделение N×N для наименьшего CU. Когда первый сигнал указания указывает допустимость разделения N×N, второй сигнал указания включается в уровень изображения.
Раскрыты способ и устройство для обработки блоков кодирования данных видео. Способ и устройство для обработки блоков кодирования данных видео в соответствии с настоящим изобретением содержат выбор процесса кодирования из группы, состоящей из первого процесса кодирования и второго процесса кодирования для обработки блоков кодирования; включение первого сигнала указания, соответствующего выбранному процессу кодирования, в битовый поток видео, связанный с данными видео, прием блока кодирования (CU) блоков кодирования; и обработку CU в соответствии с выбранным процессом кодирования. В одном варианте осуществления упомянутая обработка CU разделяет блок кодирования в соответствии со структурой CU, содержит разделение 2N×2N, разделение 2N×N и разделение N×2N без разделения N×N для CU большего, чем наименьший CU, и в котором первый процесс кодирования не допускает разделение N×N и второй процесс кодирования допускает разделение N×N для CU, равного наименьшему CU. Кроме того, первый процесс кодирования связан с первой таблицей кодовых слов, второй процесс кодирования связан со второй таблицей кодовых слов, и выбранный процесс кодирования связан с первой таблицей кодовых слов или второй таблицей кодовых слов в соответствии с первым сигналом указания.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг.1 иллюстрирует примерное разделение блока кодирования на основе квадродерева.
Фиг.2 иллюстрирует допустимые размеры разделений блока предсказания для листового блока кодирования 2N×2N.
Фиг.3 иллюстрирует пример проблемы избыточности для блока предсказания на глубинах k и k+1.
Фиг.4 иллюстрирует пример ограниченного разделения установленного для листового блока кодирования 2N×2N, чтобы избежать избыточности для INTER (внешнего) предсказания.
Фиг.5A иллюстрирует пример разделения блока кодирования на различных глубинах в соответствии с вариантом осуществления настоящего изобретения, где INTER N×N не допустимо для глубины=3.
Фиг.5B иллюстрирует пример разделения блока кодирования на различных глубинах в соответствии с вариантом осуществления настоящего изобретения, где INTER N×N допускается для глубины=3.
Фиг.6 иллюстрирует пример синтаксиса уровня последовательности для поддержки выбора структуры блока кодирования и связанной обработки.
Фиг.7 иллюстрирует пример синтаксиса уровня изображения для поддержки выбора структуры блока кодирования и связанной обработки.
Фиг.8 иллюстрирует пример режима предсказания блока кодирования и спецификацию режима разделения для размера блока кодирования большего, чем размер наименьшего блока кодирования.
Фиг.9 иллюстрирует пример режима предсказания блока кодирования и спецификацию режима разделения для размера блока кодирования, равного размеру наименьшего блока кодирования, и разделение N×N допускается для режима INTER.
Фиг.10 иллюстрирует пример режима предсказания блока кодирования и спецификацию режима разделения для размера блока кодирования, равного размеру наименьшего блока кодирования, и разделение N×N не допускается для режима INTER.
ПОДРОБНОЕ ОПИСАНИЕ
Во время процесса кодирования, в целях достижения максимально возможной производительности, функция «скорость передачи - искажение» или другой критерий производительности обычно оценивается для различных разделений блока кодирования (CU) и разделений блока предсказания (PU). Структура блока предсказания в текущем развитии HEVC дает в результате некоторую избыточность, чтобы побудить функцию скорость передачи-искажение или другой критерий производительности повторно оцениваться для некоторой конфигурации PU. Например, избыточность может существовать между конфигурацией CU N×N INTER на глубине=k и конфигурацией CU 2N×2N INTER блока кодирования на глубине=k+1. Избыточность приводит к лишней обработке и расходует ценные системные ресурсы. Способ уменьшить избыточность раскрыт в непредварительной заявке на патент США, серийный номер 13/012811, поданной 25 января 2011 года, озаглавленной “Устройство и способ ограниченного размера разделения для высокоэффективного кодирования видео”, где было разработано ограниченное разделение CU, чтобы устранить или уменьшить избыточность при обработке. Тем не менее, желательно разработать способ сжатия блока кодирования для дальнейшего уменьшения вычислительной сложности. Также желательно обеспечить гибкость так, чтобы можно было бы выбрать либо способ и устройство с большим снижением сложности, либо можно было бы выбрать альтернативный способ и устройство. Кроме того, желательно разработать необходимый синтаксис, чтобы передавать информацию, относящуюся к эффективному и гибкому разделению между кодером и декодером.
В разрабатываемой системе высокоэффективного кодирования видео (HEVC) макроблок фиксированного размера по H.264/AVC заменяется гибким блоком, названным блоком кодирования (CU). Фиг.1 иллюстрирует примерное разделение блока кодирования на основе квадродерева. На глубине 0 начальный блок кодирования CUO, 112, состоящий из 64×64 пикселя, является наибольшим CU (LCU). Начальный блок кодирования CUO, 112 подлежит разбиению квадродерева, как показано в блоке 110. Флаг разбиения 0 указывает, что нижележащий CU не разбивается, и с другой стороны флаг 1 разбиения указывает, что нижележащий CU разбивается на четыре меньших блока кодирования CU1, 122 посредством квадродерева. В результате четыре блока кодирования помечаются как 0, 1, 2 и 3, и каждый полученный блок кодирования становится блоком кодирования для дальнейшего разбиения на следующей глубине. Блоки кодирования, полученные из блока кодирования CUO, 112, называют CU1, 122. После того как блок кодирования разбит посредством квадродерева, полученные блоки кодирования подвергают дальнейшему разбиению квадродерева до тех пор, пока блок кодирования не достигнет предварительно заданного размера наименьшего CU (SCU). Следовательно, на глубине 1 блок кодирования CU1, 122 подвергается разбиению квадродерева, как показано в блоке 120. Снова, флаг 0 разбиения указывает, что нижележащий CU не разбивается, и, с другой стороны, флаг 1 разбиения указывает, что нижележащий CU разбивается на четыре меньших блока кодирования CU2, 132 посредством квадродерева. Блок кодирования CU2, 132 имеет размер 16×16, и процесс разбиения квадродерева, как показано в блоке 130, может продолжаться до тех пор, пока не достигнут предварительно заданный наименьший блок кодирования. Например, если наименьший блок кодирования выбирается как 8×8, блок кодирования CU3, 142 на глубине 3 не будет подвергаться дальнейшему разбиению, как показано в блоке 140. Набор разделений квадродерева изображения для формирования блоков кодирования переменного размера составляет карту разделения для кодера для обработки области входного изображения соответственно. Карта разделения должна быть передана декодеру, с тем чтобы процесс декодирования мог быть выполнен соответствующим образом.
Кроме понятия блока кодирования, понятие блока предсказания (PU) также вводится в HEVC. После того как сделано разбиение иерархического дерева CU, каждый листовой CU подвергается дальнейшему разбиению на блоки предсказания (PUs) в соответствии с типом предсказания и разделением PU. Для временного предсказания типы PU состоят из режимов SKIP, MERGE и INTER. Для режимов пространственного предсказания тип PU состоит из INTRA режима. Для каждого листового CU 2N×2N выбран один размер разделения. Когда PredMode (режим предсказания) является SKIP(пропуском) или MERGE(слиянием), допустимым PartSize (размером разделения) является только {2N×2N}. Когда PredMode является INTER, допустимый PartSize выбирается из набора {2N×2N, 2N×N, N×2N, N×N}, как показано на фиг.2. Когда PredMode является INTRA, допустимый PartSize выбирается из набора {2N×2N, N×N}. Структура PU в текущем развитии HEVC дает в результате некоторую избыточность. Например, избыточность может существовать между конфигурацией "PU для CU с глубиной=k, Mode=INTER, PartSize=N×N" и конфигурацией "PU для CU с глубиной=k+1, Mode=INTER, PartSize=2N×2N", как показано на фиг.3. PU 310 на глубине k будет обработан снова на глубине (k+1) в качестве PU 320. PU 310 выбирается в режиме INTER с размером разделения N×N. С другой стороны, PU 320 выбирается в режиме INTER с размером разделения 2N'×2N ', где 2N'=N. Следовательно, тот же самый блок будет обработан дважды на глубине k и глубине (k+1). Избыточность приводит к лишней обработке и расходует ценные системные ресурсы.
Для устранения указанной выше избыточности допустимые размеры разделения ограничиваются согласно непредварительной заявке на патент США, номер 13/012811, как показано на фиг.4. Следовательно, для каждого листового CU большего, чем SCU (наименьший CU), допустимыми размерами разделения являются 2N×2N, 2N×N и N×2N. Другими словами, разделение N×N не допустимо для режима INTER, если листовой CU больше, чем SCU. Если размер листового CU такой же, как размер SCU, допускаются все размеры разделений: 2N×2N, 2N×N, N×2N и N×N. Когда размер CU такой же, как размер SCU, CU не подвергается дальнейшему разбиению и включение размера разделения N×N не приведет к избыточности. Типы разделений в соответствии с действующим HM3.0 HEVC (HEVC Тестовая Модель версии версия 3.0), описанным выше по тексту, суммированы в таблице 1. Таблица кодовых слов, связанная с различными типами разделения для HM3.0 HEVC, показана в таблице 2.
Таблица 1
Тип Разделения
INTERCU>SCU
INTERCU=SCU
INTRACU>SCU
INTRACU=SCU
2N×2N
Да
Да
Да
Да
N×2N
Да
Да
Нет
Нет
2N×N
Да
Да
Нет
Нет
N×N
Нет
Да
Нет
Да
Таблица 2
Тип разделения
CU>SCU
CU=SCU
INTER 2N×2N
1
1
INTER N×2N
01
01
INTER 2N×N
001
001
INTER N×N
0001
INTRA 2N×2N
000
00001
INTRA N×N
00000
Хотя способ, раскрытый в непредварительной заявке на патент США, номер 13/012811, использует ограниченное разделение PU для уменьшения избыточности кодирования, процесс может быть дополнительно улучшен. В соответствии с одним вариантом осуществления настоящего изобретения, N×N режим кодирования убирается для INTER-(внешнего) кодирования на всех глубинах. Фиг.5A иллюстрирует разрешенное INTER(внешнее) и INTRA(внутреннее) разделения на различных глубинах в соответствии с вариантом осуществления настоящего изобретения. Пример, показанный на фиг.5А, по-прежнему допускает разделение INTRA N×N, когда размер CU равен наименьшему размеру. Поскольку таблице кодовых слов нет необходимости содержать записи для INTER N×N, независимо от того, является ли CU больше, чем SCU, или CU имеет такой же размер, как и SCU, таблица кодовых слов может быть упрощена. Примерная таблица кодовых слов, включающая в себя вариант осуществления в соответствии с настоящим изобретением, показана в таблице 3. Кодовые слова для INTRA 2N×2N и INTRA N×N в таблице 3 короче, чем соответствующие кодовые слова в таблице 2.
Таблица 3
Тип разделения
CU>SCU
CU=SCU
INTER 2N×2N
1
1
INTER N×2N
01
01
INTER 2N×N
001
001
INTRA 2N×2N
000
0001
INTRA N×N
00000
В другом варианте осуществления в соответствии с настоящим изобретением система может адаптивно устранить INTER разделение N×N, и выбор может быть указан синтаксисом. Например, синтаксис набора параметров последовательности (SPS) и набора параметров изображения (PPS) может быть изменен, чтобы обеспечить большую гибкость кодирования. Фиг.5B иллюстрирует допустимые INTER и INTRA разделения на различных глубинах, где INTER разделение N×N допускается, когда размер CU равен наименьшему размеру. Примерные синтаксисы SPS и PPS, включающие в себя вариант осуществления в соответствии с настоящим изобретением, показаны на фиг.6 и на фиг.7 соответственно. Для того чтобы обеспечить большую гибкость кодирования, флаг "disable_inter_4×4_pu_flag" добавляется в SPS, как отмечено на фиг.6. Кроме того, флаг "disable_inter_4×4_pu_pic" может быть добавлен в PPS, как отмечено на фиг.7, чтобы позволить кодеру выборочно включать INTER N×N, когда INTER N×N является допустимым, как указано посредством "disable_inter_4×4_pu_flag” в SPS. Если "disable_inter_4×4_pu_flag" составляет 1 в SPS, то INTER N×N (N=4) отключено для всей последовательности. В этом случае "disable_inter_4×4_pu_pic" в PPS не будет отправлено. В противном случае, "disable_inter_4×4_pu_pic" в PPS будет отправлено, чтобы определить, следует ли допустить отключение для каждого изображения INTER N×N для CU=SCU. Поэтому, если "disable_inter_4×4_pu_flag" истинно, то таблица 3 будет использоваться для всех Inter(внешних) кадров в последовательности, в противном случае, если «disable_inter_4×4_pu_pic" истинно, то таблица 3 будет использоваться для текущего Inter кадра, если «disable_inter_4×4_pu_pic" ложно, будет использоваться таблица 2. Примерная схема синтаксиса на фиг.6 и на фиг.7 служит иллюстрацией одного из путей реализации на практике настоящего изобретения. Специалистами в этой области могут быть использованы другие конструкции синтаксиса для реализации на практике настоящего изобретения без отклонения от сущности настоящего изобретения. Например, в SPS вместо «disable_inter_4×4_pu_flag" может быть также использован флаг "enable_inter_4×4_pu_flag", "inter_4×4_enabled_flag" или любая другая эквивалентность. Подобным образом, в PPS вместо «disable_inter_4×4_pu_pic" также может быть использован флаг "enable_inter_4×4_pu_pic", "inter_4×4_enable_pic" или любая эквивалентность.
Семантика дерева кодирования, связанная с синтаксисом, описанным выше по тексту, показана на фиг.8-10. Фиг.8 иллюстрирует спецификацию cu_split_pred_part_mode, когда CU больше, чем SCU, где cu_split_pred_part_mode задает split_coding_unit_flag и, когда блок кодирования не разбит, skip_flag, merge_flag, PredMode и PartMode блока кодирования. Фиг.9 иллюстрирует спецификацию cu_split_pred_part_mode, когда CU равен SCU. На фиг.9 INTER N×N допускается. Фиг.10 иллюстрирует спецификацию cu_split_pred_part_mode, когда CU равен SCU и INTER N×N не допускается, то есть disable_inter_4×4_pu_flag=1 или disable_inter_4×4_pu_pic=1 в соответствии с примерным синтаксисом, описанным выше по тексту.
Когда включено асимметричное разделение движения (AMP), будут использоваться дополнительные разделения, включающие в себя INTER 2N×nU, INTER 2N×nD, INTER nL×2N и INTER nR×2N.
Таблицы кодовых слов в таблице 2 и таблице 3 могут быть модифицированы для вмещения дополнительных разделений, как показано в таблице 4, где отличия от Таблицы 2 и Таблицы 3 показаны курсивом.
Таблица 4
Тип разделения
CU>SCU
CU=SCUinter_4x4 disabled
CU=SCUinter_4x4 enabled
INTER 2N×2N
1
1
1
INTER 2N×N
011
011
011
INTER 2N×nU
0101
0101
0101
INTER 2N×nD
0100
0100
0100
INTER N×2N
0011
0011
0011
INTER nL×2N
00101
00101
00101
INTER nR×2N
00100
00100
00100
INTER N×N
0001
INTRA 2N×2N
000
0001
00001
INTRA N×N
0000
00000
В непредварительной заявке на патент США, номер 13/012811, поданной 25 января 2011 года, озаглавленной “Устройство и способ ограниченного размера разделения для высокоэффективного кодирования видео”, было показано, что способ, основанный на ограниченном размере разделения, может заметно уменьшить требуемые вычисления за счет очень небольшого увеличения соотношения скорость передачи-искажение. Способ, включающий в себя вариант осуществления согласно настоящему изобретению, дополнительно селективно удаляет INTER разделение N×N для всех размеров CU, чтобы уменьшить вычислительную сложность. Опять же, увеличение соотношений скорость передачи-искажение очень невелико. В другом варианте осуществления в соответствии с настоящим изобретением флаг в SPS и/или PPS используется для выбора, допустимо ли INTER 4×4. Если INTER 4×4 допустимо, для разделения CU/PU выбирается способ кодирования, аналогичный способу в непредварительной заявке на патент США, серийный номер 13/012811. Если INTER 4×4 не является допустимым, используется способ с дополнительно уменьшенной вычислительной сложностью, как раскрыто в данном описании.
В соответствии с настоящим изобретением вариант осуществления сжатия разделения CU с удаленным INTER 4×4, как описано выше по тексту, может быть реализован в различном аппаратном обеспечении, в программных кодах или в их комбинации. Например, вариант осуществления настоящего изобретения может быть интегрирован на уровне схемы в чип сжатия видео или программные коды, интегрированные в программное обеспечение сжатия видео для выполнения описанной в данном описании обработки. Вариантом осуществления настоящего изобретения также может быть программный код, который должен быть использован на процессоре цифровых сигналов (DSP) для выполнения описанной в данном описании обработки. Изобретение также может включать в себя ряд функций, которые должны быть выполнены компьютерным процессором, процессором цифровых сигналов, микропроцессором или программируемой пользователем вентильной матрицей (FPGA). Эти процессоры могут быть сконфигурированы для выполнения конкретных задач в соответствии с изобретением, выполнения машиночитаемого программного кода или кода программно-аппаратного обеспечения, который задает конкретные способы, реализуемые настоящим изобретением. Код программного обеспечения или код программно-аппаратного обеспечения могут быть разработаны на различных языках программирования и в различных форматах или стилях. Программный код также может быть скомпилирован для разных целевых платформ. Тем не менее, различные форматы кода, стили и языки программного кода и другие средства настройки кода для выполнения задач в соответствии с изобретением не отклоняются от сущности и объема изобретения.
Изобретение может быть воплощено в других конкретных формах без отхода от его сущности или существенных характеристик. Описанные примеры следует рассматривать во всех отношениях только как иллюстративные, а не ограничительные. Объем изобретения, следовательно, определяется прилагаемой формулой изобретения, а не вышеприведенным описанием. Все изменения, которые по смыслу и диапазону эквивалентности формулы изобретения, должны быть включены в сферу их применения.