系列文章目录
HEVC视频编解码标准简介
【x264编码器】章节1——x264编码流程及基于x264的编码器demo
【x264编码器】章节2——x264的lookahead流程分析
【x264编码器】章节3——x264的码率控制
【x264编码器】章节4——x264的帧内预测流程
【x264编码器】章节5——x264的帧间预测流程
【x264编码器】章节6——x264的变换量化
【x265编码器】章节1——lookahead模块分析
【x265编码器】章节2——编码流程及基于x265的编码器demo
【x265编码器】章节3——帧内预测流程
【x265编码器】章节4——帧间预测流程
【x265编码器】章节5——x265帧间运动估计流程
【x265编码器】章节6——x265的码率控制
【x265编码器】章节7——滤波模块
【x265编码器】章节8——变换量化模块
目录
系列文章目录
一、模块功能
1.场景检测切换
2.帧结构确定
3.CU tree
4.VBV
5.lookahead大体流程
二、lookahead模块分析
1.调用流程
2.代码分析
1.用于向前向预测模块添加图片Lookahead::addPicture()
2.检查前向预测队列Lookahead::checkLookaheadQueue()
3.获取已决定的图片Lookahead::getDecidedPicture()
4.查找并执行工作任务Lookahead::findJob()
5.进行类型分析Lookahead::slicetypeDecide()
6.任务分配模块PreLookaheadGroup::processTasks
7.低分辨率帧的帧内估计LookaheadTLD::lowresIntraEstimate()
8.进行类型分析Lookahead::slicetypeAnalyse
9.低分辨率帧间估计CostEstimateGroup::estimateFrameCost
10.低分辨率单个CU帧间估计CostEstimateGroup::estimateCUCost
11.VBV码率和缓冲区Lookahead::vbvLookahead
12.场景切换检测Lookahead::scenecut
13.帧结构路径成本计算Lookahead::slicetypePathCost
14.CU tree的构建和处理Lookahead::cuTree
点赞、收藏,会是我继续写作的动力!赠人玫瑰,手有余香。
前言
x265完整的流程框架如下(可放大):
一、模块功能
在x265中,前向预测(lookahead)是一种技术,用于改善视频编码的效率和质量。x265的前向预测功能涉及分析未来的视频帧,以在当前帧的编码过程中做出更好的决策。同时也会进行帧内预测和帧间预测,不同点有两点:
1.在1/4的低分辨率情况下(宽高各是原始视频的一半),lookahead的cu块大小8x8,跟x264一样,进行帧内和帧间预测;
2.帧间预测时,遍历CU的顺序是从下到上,从右到左,具体可以看estimateFrameCost();
主要的功能有以下四项:场景检测、帧结构确定、CU tree和VBV;
1.场景检测切换
基本流程与x264的scenecut类似,细节有不同,第一轮搜索过滤与x264方案一致,之后的处理与x264的不同,x265场景切换检测的大体流程如下,详细代码分析见Lookahead::scenecut: