![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
HEVC
文章平均质量分 63
xhyan523
这个作者很懒,什么都没留下…
展开
-
Void TAppEncTop::encode()
//main函数里的主要几个部分,包括初始化,编码encod,计算编码时间等等。 //接下来是encode这个函数,里面囊括了HEVC技术的所有重要内容。 //在main函数里,选定encode函数右击转到定义(或者F12),就能跳到这个函数的定义部分。 Void TAppEncTop::encode() { fstream bitstreamFile(m_pchBi...原创 2018-03-19 10:42:06 · 543 阅读 · 1 评论 -
HM之基于哈达玛变换的SATD计算
// 函数功能是计算8×8块的哈达玛变换,并计算其SAD值,m2[8][8]存放最终的变换结果 转载https://blog.csdn.net/king20168/article/details/52759843[cpp] view plain copyInt xCalcHADs8x8_ISlice(Pel *piOrg, Int iStrideOrg) { Int k, i, j, jj;...转载 2018-05-09 19:19:35 · 977 阅读 · 0 评论 -
HEVC MarginX MarginY getBuf() getAddr()
转载https://blog.csdn.net/rankling315/article/details/54707841如上图所示,以亮度信号为例,解释了内存中扩展图像和原始图像之间的存储关系,以及计算关系,图像存储一份,色度信号与之类似。[cpp] view plain copyVoid TComPicYuv::create( Int iPicWidth, Int iPicHeight, UIn...转载 2018-05-10 16:18:15 · 412 阅读 · 1 评论 -
率失真优化
转载https://blog.csdn.net/nb_vol_1/article/details/53288937一、率失真优化的目标就是:1、在一定的码率(码率也表现为数据压缩的程度,码率越低,数据压缩的越厉害)限制下,减少视频的失真(减少失真就会提高视频的主观质量,看的人就会喜欢o(*≧▽≦)ツ)!2、在允许一定的失真下,把视频压缩到最小!二、编码器的率失真优化的工作主要是按照某种策略选取最优...转载 2018-05-20 13:39:09 · 4864 阅读 · 0 评论 -
率失真优化——代码
转载https://blog.csdn.net/nb_vol_1/article/details/56036991代码实现某个模式下的率失真代价,是通过该模式下编码的失真和占用的比特比特数来计算的TComDataCU中有三个成员以及函数和率失真相关:[cpp] view plain copyUInt& getTotalDistortion() { re...转载 2018-05-20 13:41:06 · 1537 阅读 · 0 评论 -
HEVC码率控制介绍(R-Lamda)
转载https://blog.csdn.net/listener51/article/details/50810050 R-lamda模型提出到优化已有2年,从近几年的文章来看,大体归为以下几类:一类是帧内的码率控制算法,一类是模型参数更新,一类是考虑感知。 第一类:K0103码率控制算法主要是在P/B帧上提出的,I帧没有做,体现在I帧中LCU编码时用的还是帧层的QP,而帧层的QP是由配置文件(即...转载 2018-07-10 21:28:49 · 2488 阅读 · 3 评论 -
LMS算法(Least mean square)
转载:https://blog.csdn.net/caimouse/article/details/60322886LMS算法可认为是机器学习里面最基本也比较有用的算法,神经网络中对参数的学习使用的就是LMS的思想,在通信信号处理领域LMS也非常常见,比如自适应滤波器。其它就是利用梯度下降的算法来实现的,具体推导如下:最后这条公式,就是LMS算法的实现基础,可以使用python代码...转载 2018-08-16 22:51:14 · 7205 阅读 · 1 评论 -
HEVC测序序列特点介绍
转载:https://blog.csdn.net/u010485442/article/details/39030463在进行HEVC快速算法研究中,经常要做测试。拿哪 个序列做测试是一个问题,总不能每次都对所有的序列测试,这样的话工作量太大了。经过阅读文献与经验的总结,个人认为做测试的序列应满足如下条件:第一:每种类别(Class)的序列都应该涉及;在“Common HM test co...转载 2018-08-30 21:25:17 · 496 阅读 · 0 评论 -
matlab实现视频运动向量搜索
转载https://blog.csdn.net/RachelKong/article/details/54376979实验四 运动向量的预测一、问题描述利用matlab,导入YUV格式的视频,选择第一帧的某一位置为目标宏块,第2、3、5、10、20、50、100帧为参考帧,实现顺序搜索算法(采用绝对误差测量)对目标宏块进行运动向量的预测,再实现2D对数搜索算法(采用绝对误差测量)对目标...转载 2018-09-05 10:00:14 · 1375 阅读 · 0 评论 -
读yuv420文件
FILE *pFileSaliency;//MISS LIU 打开文件 char *pSaliency; unsigned char saliency[832][480]; int sal_i = 0, sal_j = 0; bool init_flag=false;void opensaliency(){ fopen_s(&pFileSaliency,"...原创 2018-11-12 23:09:09 · 754 阅读 · 0 评论 -
UInt64 TEncGOP::xFindDistortionFrame
//计算失真ruiDist = xFindDistortionFrame(pcPic->getPicYuvOrg(), pcPic->getPicYuvRec(), pcPic->getPicSym()->getSPS().getBitDepths());UInt64 TEncGOP::xFindDistortionFrame (TComPicYuv* pcPic...翻译 2018-11-13 10:48:03 · 244 阅读 · 0 评论 -
HM编码器代码阅读-率失真优化
原文:https://blog.csdn.net/nb_vol_1/article/details/56036991率失真优化原理一、率失真优化的目标就是:1、在一定的码率(码率也表现为数据压缩的程度,码率越低,数据压缩的越厉害)限制下,减少视频的失真(减少失真就会提高视频的主观质量,看的人就会喜欢o(*≧▽≦)ツ)!2、在允许一定的失真下,把视频压缩到最小!二、编码器...转载 2019-04-07 14:07:08 · 576 阅读 · 0 评论 -
率失真优化-理论知识
原文:https://blog.csdn.net/NB_vol_1/article/details/53288937一、率失真优化的目标就是:1、在一定的码率(码率也表现为数据压缩的程度,码率越低,数据压缩的越厉害)限制下,减少视频的失真(减少失真就会提高视频的主观质量,看的人就会喜欢o(*≧▽≦)ツ)!2、在允许一定的失真下,把视频压缩到最小!二、编码器的率失真优化的工作主要是按照...转载 2019-04-07 14:21:29 · 4313 阅读 · 1 评论 -
TComPicYuv、TComPic、TComPicSym、TComDataCU以及TComYuv的关系
TComPicYuv、TComPic、TComPicSym、TComDataCU以及TComYuv的关系转载https://blog.csdn.net/nb_vol_1/article/details/71173023 首先用一张图来描述它们之间的关系 1、HM首先使用TComPicYuv保存从文件中读取出来的YUV数据 2、利用TComPicYuv构造TComPic,并把YUV...转载 2018-05-09 17:10:43 · 1270 阅读 · 0 评论 -
HM变量命名规则
转载https://blog.csdn.net/ranghanqiao5058/article/details/796257401)类的命名:一般来说,一个头文件只包含一个类的定义,文件名即为类名,且该类是属于哪个工程的,它的名字就以该工程的前几个字母开头,如类TAppEncTop,它就是以工程TAppEncoder的前7个字母开头,因此,从该类的名字,就能够看出该类是属于哪个工程的。(2)变量的...转载 2018-05-09 11:33:17 · 563 阅读 · 0 评论 -
HM的代码流程
转自http://blog.csdn.net/hq2902108007/article/details/89650901. 环境配置这个文档描述的版本是HM6.0运行的方法如下可参考之前的文章:2. 编码端主函数的调用主函数中会调用create函数,但是这里面是空函数,所以不做任何操作encode是非常重要的函数,负责了实际的编码工作,在里面调用m_cTEncTop的encode函数对每个GOP进...转载 2018-05-09 09:57:52 · 1621 阅读 · 0 评论 -
if (m_isField){Void TEncTop::encode}
转载:http://blog.csdn.net/Villa_7/article/details/70139266Void TEncTop::encode(Bool flush, TComPicYuv* pcPicYuvOrg, TComPicYuv* pcPicYuvTrueOrg, const InputColourSpaceConversion snrCSC, TComList<TCo...转载 2018-03-19 11:13:13 · 320 阅读 · 0 评论 -
if(!m_isField){Void TEncTop::encode}
Void TEncTop::encode( Bool flush, TComPicYuv* pcPicYuvOrg, TComPicYuv* pcPicYuvTrueOrg, const InputColourSpaceConversion snrCSC, TComList<TComPicYuv*>& rcListPicYuvRecOut, std::list<Acces...原创 2018-03-19 11:17:11 · 844 阅读 · 0 评论 -
xCalcHADs8x8_ISlice
转载https://blog.csdn.net/king20168/article/details/52759843// 函数功能是计算8×8块的哈达玛变换,并计算其SAD值,m2[8][8]存放最终的变换结果Int xCalcHADs8x8_ISlice(Pel *piOrg, Int iStrideOrg) { Int k, i, j, jj; Int diff[64], m1[8...转载 2018-03-22 23:07:06 · 389 阅读 · 0 评论 -
CTU的复杂度计算(SATD)calCostSliceI和updataCtuDataISlice
转载https://blog.csdn.net/xidianliye/article/details/66968233在compressGOP()函数中compressGOP(){ ... for (Int iGOPid=0;iGOPid<m_iGopSize;iGOPid++) { m_pcSliceEncoder->initEncSlice...转载 2018-03-23 02:15:15 · 819 阅读 · 0 评论 -
Void TEncGOP::compressGOP和Void TEncGOP::printOutSummary
Void TEncGOP::compressGOP( Int iPOCLast, Int iNumPicRcvd, TComList<TComPic*>& rcListPic, TComList<TComPicYuv*>& rcListPicYuvRecOut, std::list<Access...原创 2018-03-19 21:26:32 · 686 阅读 · 0 评论 -
Void TEncSlice::compressSlice
Void TEncSlice::compressSlice( TComPic* pcPic, const Bool bCompressEntireSlice, const Bool bFastDeltaQP ){ // if bCompressEntireSlice is true, then the entire slice (not slice segment) is compresse...原创 2018-03-19 23:24:18 · 475 阅读 · 0 评论 -
compressCtu和encodeCtu
Void TEncCu::compressCtu( TComDataCU* pCtu ){ // initialize CU data m_ppcBestCU[0]->initCtu( pCtu->getPic(), pCtu->getCtuRsAddr() ); m_ppcTempCU[0]->initCtu( pCtu->getPic(), pCtu...原创 2018-03-19 23:43:47 · 548 阅读 · 0 评论 -
码率控制算法分类
码率控制算法根据视频应用要求与目的的不同可分为以下两种, 第一种是恒定比特率 CBR(constant bitrate)的码率控制算法, CBR 的输入不仅要有视频源, 还要另外设置一个目标比特率。它能够动态地调节量化参数,主要依据是不同视频的内容复杂度差异、网络带宽的不同和解码缓冲区的大小等, 使得在给定的码率限制下, 图像的质量最佳。编码过程中, CBR 的码率围绕着目标码率基本不变。第二种是...原创 2018-03-20 09:34:40 · 1092 阅读 · 0 评论 -
关于HM配置文件的TEncCfg类
http://blog.csdn.net/u012539514/article/details/17952873class TEncCfg { protected: //==== File I/O ======== Int m_iFrameRate;//帧率 Int m_FrameSkip;//跳帧 Int m_iSou...转载 2018-03-20 14:45:18 · 644 阅读 · 0 评论 -
Void TComPicYuv::create
Void TComPicYuv::create ( const Int picWidth, ///< picture width const Int picHeight, ///< picture height const...原创 2018-03-26 12:59:25 · 272 阅读 · 0 评论 -
HM变量和数据结构
转载https://blog.csdn.net/nb_vol_1/article/details/511450061、TComDataCU。TComDataCU:LCU 及其子 CU 的数据结构,存储了一个 LCU 所有的相关信息,里面重要的数据结构包括:m_uiCUAddr:一个 LCU 在 slice 中的位置m_uiAbsIdxInLCU:当前 CU 在 LCU 中的位置,位置用 Z 扫描顺...转载 2018-05-09 09:42:08 · 476 阅读 · 0 评论 -
光栅扫描和z型扫描
转载原文:https://blog.csdn.net/linweieran/article/details/49465547光栅扫描(RasterScan)是指从左往右,由上往下,先扫描完一行,再移至下一行起始位置继续扫描,H.264使用的主要就是光栅扫描顺序。Z字形扫描(Z-Scan)中Z是形象的表示方式,图像如下,在HEVC中CU采用的是递归划分的方式,Z...转载 2019-04-09 14:09:22 · 6827 阅读 · 0 评论