在TDecSlice.cpp文件中,在TDecSlice.h文件中,
接下来,将decompressSlice函数中的m_pcCuDecoder->decompressCU ( pcCU );修改成如下代码:
当然,也有修改相应的函数头和函数声明:
在TDecCu.cpp文件中,
在TDecCu.h文件中,
2.4 保存CU划分和mode选择结果
在xDecompressCU函数中,保存每一帧的CU划分结果及mode结果,在if( ( ( uiDepth < pcCU->getDepth( uiAbsPartIdx ) ) && ( uiDepth < g_uiMaxCUDepth – g_uiAddCUDepth ) ) || bBoundary )结束后,添加如下代码保存结果:
接着,修改xDecompressCU函数中的xDecompressCU函数递归调用,
到目前为止,数据保存完成。接下来,就是怎样把CU划分显示出来。
2.5 PU划分结果显示
在decode()函数中修改xFlushOutput和xWriteOutput函数调用,
接着,修改xFlushOutput和xWriteOutput函数头和声明,
现在到了最后关头,也是最重要的一部分,贴出xWriteOutput和xFlushOutput函数全部代码,不想具体说了,对照代码修改吧!2.6 解码看结果
将先编码过后的文件,,用解码器解码,就会看到最终结果。有的可能不知道怎样使用解码器,贴出命令行供参考
TAppDecoder -b 2Dmodes.bin -o 2Dmodes.yuv (TAppDecoder解码器应用程序,2Dmodes.bin编码器输出的压缩文件,2Dmodes.yuv 为重建文件名,2Dmodes.yuv 总的2Dmodes可以任意取名)。
3.
如果不想自己修改代码,我这有编译好的解码器,解码过后,就会看到像我们展示出的样例结果,是不是很直观吧!该解码器在以下QQ群:101118126
如果心在远方,只需勇敢前行,梦想自会引路,