HEVC Study One(基于HM14.0平台)
一、程序从TAppEncoder中的encmain.cpp开始,在主程序中按顺序做了以下几件事情:
①、创建类cTAppEncTop,为TAppEncTop.cpp做准备,同时在TAppEncTop.cpp中初始化m_iFrameRcvd(number of received frames)、m_totalBytes和m_essentialBytes(其实,利用Step Into调试可以发现里面涉及众多的初始化工作,不详)。
②、打印相关信息,如软件版本等,见下图。
③、解析配置文件
④、调用编码函数cTAppEncTop.encode()(这里有个小插曲,即编码时间从此刻开始计时)。
TAppEncoder的encmain.cpp中剩余部分都无关紧要,也就是结束编码时间和破坏类等琐事。
二、接着程序进入TAppEncTop.cpp中的TAppEncTop::encode(),主要按顺序完成了以下几件事情:
①、利用fstream构造命名文件并指定模式(这里涉及一坨C文件,不详)。
②、图像YUV缓冲区类创建:
TComPicYuv* pcPicYuvOrg = new TComPicYuv;
TComPicYuv* pcPicYuvRec = NULL;
具体细节在TComPicYuv.cpp和TComPicYuv.h中,very important.
③、初始化内部类和成员变量:
xInitLibCfg();( initialize internal variables )
xCreateLib();( create files encoder class )
xInitLib(m_isField);( initialize encoder class )
④、初始化编码循环变量iNumEncoded和bEos;
⑤、分配原始YUV缓冲区;
⑥、进入编码循环,利用bEos控制(最关键部分);
⑦、释放原始YUV缓冲区;
⑧、释放在编码类中使用的缓冲区;
⑨、释放缓冲区和类;
⑩、打印总结信息(Bitrate、PSNR、编码时间等)。
待续。。。。。。
相关文章
- 全平台正向tcp端口转发工具rinetd的使用
- 基于华为云对话机器人技能平台的规则模板概述
- 华为云一站式AI开发平台ModelArts获2019全球智博会金奖
- MGR复制架构+自动化运维平台,汽车之家MySQL高可用建设实践
- 基于X86平台的PC机通过网络发送一个int(32位)整数的字节顺序
- BizWorks 应用平台基于 KubeVela 的实践
- centos8平台使用vmstat监控系统
- EasyNVR对接EasyCloud视频云平台进行云端录像
- 基于EasyDarwin云平台实现的EasyClient客户端与EasyCamera摄像机之间的对讲与云台控制功能
- 基于EasyDarwin云视频平台的幼儿园视频直播(手机直播/微信直播)解决方案
- 【学习总结】游戏知识总结-游戏类型及典型游戏、游戏公司、游戏平台
- uni-app:使用全局函数和全局变量判断当前平台(hbuilderx 3.6.18)
- 【译】使用Apache Kafka构建流式数据平台(1)
- SAP 云平台 (Cloud Platform) 架构概述
- 基于 SAP BTP 平台的 AI 项目经验分享
- PyODPS:基于DataWorks平台利用PyODPS实现案例集合之odps.models.project格式表的基本操作(输出表的基本信息/增删改查/表分区/数据上传下载)
- 手把手教你基于luatos的4G(LTE Cat.1)模组接入华为云物联网平台
- AI大有可为:NAIE平台助力垃圾分类
- 基于 HttpRunner 的接口自动化测试平台框架
- josandbox 沙箱,类似any run 我太喜欢他的行为图分析了!!!还有其他的沙箱平台 到时候搜集样本都可以用
- 达观数据分析平台架构和Hive实践——TODO
- 操作指南|零基础快速入门麦聪DaaS平台 - 系统配置数据API开发
- 基于简搭(jabdp)低代码平台的OA系统分享
- 【Zabbix实战之部署篇】docker部署Zabbix+grafana监控平台
- 实现基于EFK日志平台收集Kubernetes集群日志信息