/**
- Application has picture buffer list with size of GOP + 1
- Picture buffer list acts like as ring buffer
- End of the list has the latest picture
.
\param flush cause encoder to encode a partial GOP
\param pcPicYuvOrg original YUV picture
\retval rcListPicYuvRecOut list of reconstruction YUV pictures
\retval rcListBitstreamOut list of output bitstreams
\retval iNumEncoded number of encoded pictures
*/
Void TEncTop::encode(Bool flush, TComPicYuv* pcPicYuvOrg, TComList<TComPicYuv*>& rcListPicYuvRecOut, std::list<AccessUnit>& accessUnitsOut, Int& iNumEncoded )
{
if (pcPicYuvOrg)
{
// get original YUV
TComPic* pcPicCurr = NULL;
xGetNewPicBuffer( pcPicCurr );
pcPicYuvOrg->copyToPic( pcPicCurr->getPicYuvOrg() );
// compute image characteristics
if ( getUseAdaptiveQP() )
{
m_cPreanalyzer.xPreanalyze( dynamic_cast<TEncPic*>( pcPicCurr ) );
}
HEVC代码追踪(三):encode->compressGOP
最新推荐文章于 2022-04-09 21:54:59 发布
本文详细探讨了HEVC编码中的compressGOP过程,包括应用如何使用带有GOP大小加1的图片缓冲区,图片缓冲区作为环形缓冲区运作,以及在flush条件下编码部分GOP的逻辑。同时,讲解了从原始YUV图片到重建YUV图片的转换,以及在自适应QP模式下计算图像特性的重要性。压缩GOP时,涉及了Rate Control的初始化和销毁,以及编码图片的数量和编码状态的管理。
摘要由CSDN通过智能技术生成