自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 HEVC中类,对象和指向对象的指针

HEVC代码中定义了几十种类,这些类的对象一般只实例化一次,在编码过程中都是通过指针来访问实例化的对象。 唯一以类名实例化的对象:cTAppEncTopmain (){ TAppEncTop cTAppEncTop;}这个对象被建立时,它的所有数据成员也被建立,并实例化(占据存储空间)class TAppEncTop{ TEncTop m_cTEncTop}而m_cTEnc

2017-10-12 14:51:32 595

原创 HEVC函数解析-TEncEntropyIf的子类

在TEncEntropy.hpp中,TEncEntropy被定义为抽样类,包含了各种code函数,申明为纯虚函数,这些函数具体的功能实现,由不同的派生子类定义。 首先是TEncCavlc子类class TEncCavlc: public syntaxElementWriter, public TEncEntropyIf{ codeVPS(); codeSPS(); cod

2017-10-08 19:35:16 451

原创 HEVC函数解析

熵编码函数

2017-10-08 08:11:47 942

原创 HEVC中编码每个CTU的码流跟踪

熵编码的重要类:TEncEntropy和TEncEntropyIfTEncEntropyIf是纯熵编码的类,只有纯虚成员函数,没有数据成员。因此TEncEntropyIf是一个抽象类,等待被继承,纯虚函数在继承类中被定义。 **纯虚函数只有函数的名字而不具备函数的作用,留待派生中被定义。... virtual Void codeVPS ( const TCom

2017-07-07 15:38:18 1509

原创 HEVC print out summary中 BitRate组成部分

整个序列的BitRate信息在哪里输出? TAppEncTop中,编完整个序列,输出R和D信息Void TAppEncTop::encode(){ fstream bitstreamFile(m_bitstreamFileName.c_str(), fstream::binary | fstream::out); //定义文件流指向编码输出码流文件 if (!bitstreamFi

2017-04-13 11:02:17 653

原创 HEVC intra和inter码率控制的不同

在compressGOP()函数中compressGOP(){ ... for (Int iGOPid=0;iGOPid<m_iGopSize;iGOPid++) { m_pcSliceEncoder->initEncSlice ( pcPic, iPOCLast, pocCurr, iGOPid, pcSlice, isField );//设置当前Sli

2017-03-27 09:48:18 1611 1

原创 HEVC YUV数据的获取

HM代码中有两个类用来保存YUV数据。分别在TComPicYuv.h和TComYuv.h中TComYuvclass TComYuv{ Pel* m_apiBuf[MAX_NUM_COMPONENT]; UInt m_iWidth; UInt m_iHeight; Pel* getAddr(const ComponentID id)

2017-03-26 22:46:26 1496 1

原创 HEVC码率控制(三):picture level的比特分配

使用二分法求解GOP级别的lambdaDouble TEncRCGOP::xSolveEqua( Double targetBpp, Double* equaCoeffA, Double* equaCoeffB, Int GOPSize ){ Double solution = 100.0; Double minNumber = 0.1; Double maxNumber = 1000

2017-03-08 17:51:52 615

原创 HEVC码率控制(三):picture level的比特分配

每个picture的比特分配权重,跟GOP级别的Lagrangian multiplier lambda有关。已知GOP内每个picture的alpha和beta,在保证所有Picture的target bit加起来等于GOP的target bit的前提下,通过二分法,迭代求出GOP的拉格朗日乘子。在 TEncTop:encode()函数中,执行compress GOP( )之前,还执行了一句对每个

2017-03-08 17:12:50 1726

原创 HEVC码率控制(二):从compressGOP()到compressSlice()

compressGOP()函数要点:根据iGOPid逐次递增,对一个GOP内的picture依次编码根据picture level对当前picture进行码率分配实际中一个Pic就是一个Slice,因此关于slice的循环只执行一次(默认)根据已经编过的picture,来得到当前picture的lambda得到当前picture的lambda后,对该picture下每一个CTU进行码率分配

2016-12-16 22:26:25 1491

原创 HEVC码率控制

HEVC码率控制从encodemain.cpp开始进入码率控制码率分配Picture level 的码率控制主要函数调用encmain.cppint main(int argc, char* argv[]){ TAPPEncTop cTAppEncTop; ... cTAppEncTop.create(); ... cTAppEncTop.parse

2016-12-15 20:37:21 1159

原创 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2016-12-15 18:41:13 209

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除