我试图在没有实际进行任何解码的情况下确定 hevc 图片的每个切片中包含的编码树块的数量——除了 sps pps 和切片头解析。
是否可以从切片头计算切片结束地址?
您始终可以对编码器进行一些更改,以便它在日志文件中为您提供分区信息。这可以成为您的选择吗?
据我所知,参数集和切片标头都不包含此信息,我可以向您保证,因为我正在解码器端处理 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";
在函数的第一行。您将进入日志屏幕(文件):
*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)]