Изменение эталонного кодека HEVC HM

Я очень новичок в области кодека HEVC. Я использую эталонный код HM версии 10.1. Моя задача сделать размер блока до 128х128. Итак, что я пробовал, так это то, что в файле конфигурации я установил параметры MaxCUWidth, MaxCUHeight как 128 и 128 соответственно.

Это гарантирует, что максимальный размер CU ограничен 128 x 128. Однако код вылетает с ошибками:

Ошибка: минимальная ширина CU должна быть больше минимального размера преобразования
Ошибка: минимальная высота CU должна быть больше минимального размера преобразования

Моя проблема в том, что я не могу понять, где и как нужно изменить код, чтобы он не влиял на другие параметры. Любая помощь относительно того же будет очень ценна для меня.


person Malik Asfandyar    schedule 23.11.2015    source источник


Ответы (2)


Минимальная ширина/высота CU определяется параметрами MaxCUWidth/MaxCUHeight и MaxPartitionDepth. MaxPartitionDepth запрещает, как часто ГТЕ может быть разделена. Поэтому, если вы также увеличите MaxPartitionDepth на 1, это должно сработать.

В качестве альтернативы вы можете увеличить параметр QuadtreeTULog2MinSize на 1, чтобы увеличить минимальный размер преобразования, но я бы рекомендовал первый подход, так как это только увеличивает размер CTU, не изменяя остальную часть конфигурации.

person Bastian35022    schedule 23.11.2015
comment
Я внес соответствующие изменения, но не получил ответа, потому что мне нужно получить больший размер блока (размеры) 128x128, но это дает мне ошибку при внесении изменений для вышеупомянутых подходов. - person Malik Asfandyar; 24.11.2015
comment
ошибка QuadtreeTULog2MinSize должна быть равна или больше 2 - person Malik Asfandyar; 24.11.2015
comment
Что вы тогда вводили для QuadtreeTULog2MinSize? По умолчанию должно быть 2 для TU 4x4. - person Bastian35022; 24.11.2015
comment
я ввожу QuadtreeTULog2MinSize = 2, а QuadtreeTULog2MaxSize = 6, поэтому после получения ошибки я меняю следующим образом QuadtreeTULog2MinSize = 1 и QuadtreeTULog2MaxSize = 5, но все равно получаю ошибку - person Malik Asfandyar; 24.11.2015
comment
Хм, это странно. С MaxCUWidth и MaxCUHeight = 128, MaxPartitionDepth = 5 и QuadtreeTULog2MinSize = 2 все должно быть в порядке. QuadtreeTULog2MaxSize не должно быть больше 5, поэтому вы должны оставить его на уровне 5. Если это не работает, вы должны выполнить отладку через функцию-член xCheckParameter из TAppEncCfg, где параметры проверяются на допустимость. - person Bastian35022; 24.11.2015

Спасибо за помощь, это сделано сейчас. Для версии HEVC HM (10.1) необходимо изменить только приращение глубины, равное 1, в то время как CusizeWidth и CuSizeheight должны быть равны 128. Для этой цели я внес изменения в log2Bliksize<=7, содержащие

TComPattern.cpp

и внес изменения в MAX_CU_DEPTH в

TComRom.h

После этого я получил размеры блока / CU (размеры) 128x128.

person Malik Asfandyar    schedule 25.11.2015