HEVC代码追踪(三):encode->compressGOP

本文详细探讨了HEVC编码中的compressGOP过程,包括应用如何使用带有GOP大小加1的图片缓冲区,图片缓冲区作为环形缓冲区运作,以及在flush条件下编码部分GOP的逻辑。同时,讲解了从原始YUV图片到重建YUV图片的转换,以及在自适应QP模式下计算图像特性的重要性。压缩GOP时,涉及了Rate Control的初始化和销毁,以及编码图片的数量和编码状态的管理。
摘要由CSDN通过智能技术生成
/**
 - 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 ) );
		}
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值