HEVC Study One(基于HM14.0平台)

HM14.0下载地址:http://download.csdn.net/detail/frd2009041510/7707363

一、程序从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、编码时间等)。

待续。。。。。。

时间: 2024-09-16 12:24:16

HEVC Study One(基于HM14.0平台)的相关文章

HEVC Study Two(基于HM14.0平台)--如何在HEVC中加入背景建模技术(一)

随着AVS的逐步发展,AVS中的一些创新也得到国际上越来越多学者的关注.尤其是AVS中针对监控视频编码的背景建模技术和感兴趣区域提取技术.对于国际同行来说,如何在HEVC的参考软件平台HM上加入这两项技术是一个工作量甚大的事情.本文就本人做的一些工作做简单介绍. 软件平台HM14.0,IDE:VS2010(英文版) 废话了这么多,下面开始真正的内容: 在<HEVC framework before starting encoding(基于HM14.0平台)>中(网址:点击打开链接)讲述了进入编

HEVC Study Three(基于HM14.0平台)--GOP研究之大揭秘

关于GOP的基本知识这里就不唠叨了.直接对GOP大揭秘~~~ (一).HM14.0 Software Manual中的GOP structure table分析 GOP结构表 定义循环的GOP结构,可以在整个视频序列重复使用.此结构表应该包含GOP大小.帧命名等.帧被列出解码的顺序,因此,Frame1是解码的第1帧,Frame2是解码的第2帧等等.除此之外,表中还指定了每一帧解码所需的参考帧,包括用于当前帧和将来帧所需的参考帧.编码器不会自动计算为将来帧参考所保留的是哪一帧.注意在之前GOP的指

HEVC framework before starting encoding(基于HM14.0平台)

HEVC参考软件平台HM中,在进入正式编码之前需要做一些初始化的工作.这些工作主要在encmain.cpp.TAppEncTop.cpp和TEncTop.cpp中. 1.encmain.cpp int main(int argc, char* argv[]) { TAppEncTop cTAppEncTop; // print information fprintf( stdout, "\n" ); fprintf( stdout, "HM software: Encoder

涂鸦智能3.0平台成智能硬件出海“神器”

OFweek智能家居网讯 几年前,智能硬件还戴着朦胧的面纱处于一片混沌之中,那时还没有人会拿着一个idea就去找厂商嚷嚷着要做一个智能硬件产品. 但现在不同了,想要走在智能硬件的最前沿,到深圳来就对了,这里有着"全国智能硬件新首都"之称,每到深夜,聚集了大量智能硬件创业公司的南山区创业园区依旧灯火通明,用他们的话说:在深圳,做什么都需要快和准. 9月22日,深圳前海,在"东成西就|2016智能硬件全球化交流大会暨涂鸦智能3.0发布会"上,全球化&一站式智能硬

php实现基于微信公众平台开发SDK(demo)扩展的方法_php技巧

本文实例讲述了php实现基于微信公众平台开发SDK(demo)扩展的方法.分享给大家供大家参考.具体分析如下: 该扩展基于官方的微信公众平台SDK,这里只做了简单地封装,实现了一些基本的功能(如天气查询,翻译,自动聊天机器人,自定义菜单接口)仅供学习之用.代码如下: 复制代码 代码如下: define("TOKEN", "xingans"); $wechatObj = new wechatCallbackapiTest(); $wechatObj->respo

C#开发微信门户及应用(41)--基于微信开放平台的扫码登录处理

在现今很多网站里面,都使用了微信开放平台的扫码登录认证处理,这样做相当于把身份认证交给较为权威的第三方进行认证,在应用网站里面可以不需要存储用户的密码了.本篇介绍如何基于微信开放平台的扫码进行网站的登陆处理. 1.开放平台的认证 要使用网站的扫码登录处理,就需要先进行微信开放平台帐号的开发者资质认证,提交相关的资料,以及交付每年300元的认证费用. 认证后,建立相关的网站应用后,就有相关的APPID和APPSecret了,这些关键的参数就可以用来获取相关的用户信息了. 网站应用的应用详情界面如下

Android 4.0平台设计:简洁、美观和更为智能

文章描述:Android 4.0平台交互简析. Android4.0继承了3.0的设计多任务.丰富的通知.可定制的主界面.可调整大小的控件.用于交互和分享的互动性元素.应用程序的结构日趋成熟,几乎没有发生变化,看看系统主要界面是如何体现其设计目标:简洁.美观和更为智能. 从解锁界面可以看出,4.0使用视觉化元素引导用户进行简单直观的手势操作,精致的动画和反馈增加了系统的互动参与感和趣味性,全新的字体提高了高分辨率界面的可读性,显得更为优雅和现代. 用户可以直接从解锁界面直接进入程序,或者下拉通知

c++-C++如何开发基于web2.0的在线会议白板程序?

问题描述 C++如何开发基于web2.0的在线会议白板程序? C++如何开发基于web2.0的在线会议白板程序?需要用mfc编程技术么?socket是什么意思? 解决方案 http://wenku.baidu.com/link?url=O42MGvnXzbNlEH36ATCSqwbmmFYBFv0eXiOG7SjgIguLrVbQNltK_MJCUhJonvHKTEzvAH7ZpGZKaQk2PtGedufYDcXfwBmqdhQwY0HWT83

vs2012-VS2012新建MFC项目时可以选择framework版本,但是无论选什么新建完成后依旧是基于4.0

问题描述 VS2012新建MFC项目时可以选择framework版本,但是无论选什么新建完成后依旧是基于4.0 VS2012新建MFC项目时可以选择framework版本,但是无论选什么新建完成后依旧是基于4.0 另外,我的电脑是win8的 解决方案 Mfc没什么选择的,framework针对的是c#工程