Количество блоков кодирующего дерева на срез
Я пытался определить количество блоков дерева кодирования, содержащихся в каждом срезе hevc-изображения, фактически не выполняя никакого декодирования - кроме sps pps и парсинга заголовка среза.
Можно ли рассчитать адрес конечного среза из заголовка среза?
2 ответа
Вы всегда можете внести несколько изменений в кодировщик, чтобы он предоставил вам информацию о разделениях в файле журнала. Это может быть вариант для вас?
Насколько я знаю, ни наборы параметров, ни заголовки слайсов не содержат эту информацию, я могу вас заверить, потому что я работаю над HM-кодеком на стороне декодера.
простой способ найти кусок CTU в текущем кадре - просто добавить эту строку в TDecGop::filterPicture
(внутри TLibDecoder/TDecGop.cpp):
std::cout << "*Slice Cur End Ctu Ts Addr :\t" << pcSlice->getSliceCurEndCtuTsAddr() << "\n";
после восстановления указателя фрагмента.
или лучше:
std::cout << "numCtusInFrame :\t" << pcPic->getNumberOfCtusInFrame() << "\n";
в 1-й строке функции. Вы попадете на экран журнала (файл):
*Slice Cur End Ctu Ts Addr : 30
POC 0 TId: 0 ( I-SLICE, QP 21 ) [DT 0.087] [L0 ] [L1 ] [:,(unk)]
или же
numCtusInFrame : 30
POC 0 TId: 0 ( I-SLICE, QP 21 ) [DT 0.087] [L0 ] [L1 ] [:,(unk)]