![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
HM
mimishalang
这个作者很懒,什么都没留下…
展开
-
c++中“箭头(->)”和“点号(.)”操作符的区别(HM解析)
首先介绍一下C++中的结构。对于一个结构:[cpp] view plain copystruct MyStruct { int member_a; }; 如果有个变量MyStruct s,那么使用其中的成员元素时可以用:[cpp] view plain copy转载 2017-11-20 10:57:52 · 536 阅读 · 0 评论 -
SAD,SAE,SATD,SSD,SSE,MAD,MAE,MSD,MSE理解
SAD(Sum of Absolute Difference)、SAE(Sum of Absolute Error)即绝对误差和SATD(Sum of Absolute Transformed Difference)即hadamard变换后再绝对值求和SSD(Sum of Squared Difference)、SSE(Sum of Squared Error)即差值的平方和 MAD(Mean A...转载 2018-04-11 19:44:42 · 4979 阅读 · 0 评论 -
HM编码器的基本结构
int main(int argc, char* argv[]) { TAppEncTop cTAppEncTop; // print information fprintf( stdout, "\n" ); fprintf( stdout, "HM software: Encoder Version [%s]", NV_VERSION转载 2018-05-10 01:09:28 · 3470 阅读 · 0 评论 -
量化(三)
为了更好地与draft进行对应,看HM中的反量化部分代码:Void TComTrQuant::xDeQuant(Int bitDepth, const TCoeff* pSrc, Int* pDes, Int iWidth, Int iHeight, Int scalingListType ) { const TCoeff* piQCoef = pSrc; Int...转载 2018-04-28 11:01:24 · 513 阅读 · 0 评论 -
HM中int xSign (int x) 的分析
inline Int xSign(Int x) //!< 取出x的符号,x大于0返回+1,x小于0返回-1 {//! 当x等于0时,返回0;当x小于0时,由于x是int型,x>>31(算术右移)后结果为0xffffffff,即-1,而-x为0x00000001,右移31位后结果为0, //! 因此此时返回值为-1;当x大于0时,x>>31后结果为0x000...转载 2018-04-28 11:01:57 · 496 阅读 · 0 评论 -
HM10.0使用
在正式讨论HEVC的技术细节之前,有必要先建立好符合标准的实验平台,这对理解编解码的技术具有很大帮助。最方便,最有效,认可程度也最高的自然是JCT-VC工作组公布的参考代码HM系列了。这里,我们用最新版的参考代码HM10.0为例,详细阐述如何用参考软件成功编码一个视频码流。参考代码的下载请到我的网盘: http://pan.baidu.com/s/1kT3l78b 下载。(1)下载完成后解压,文件...转载 2018-04-28 11:02:21 · 958 阅读 · 0 评论 -
H.265帧间预测_SSC
H.265帧间预测帧分为:低延时P帧、低延时B帧,随机接入B帧,P帧为单向预测帧--前向预测,但是P帧中的编码单元可以为帧间预测块(前向预测)也可以为帧内预测快,对于H.265 P帧一般有四个参考帧,编码器根据率失真代价准则,在四个参考帧中搜索当前块的匹配块;B帧采用双向预测,B帧中的编码单元可以采用帧间预测(前向预测,后向预测,双向预测都可以)也可以是帧内预测,B帧一般会有两个参考帧列表(Lis...转载 2018-05-10 01:09:48 · 447 阅读 · 0 评论 -
H.266
H.266的探索是从2016-02-24 开始提上日程,这是第一次会议,在Geneva召开的,至今已开过7次会议,性能上有较大的进展,相比上一代RA结构下应该有30%的性能提升,但是并没有很多的新技术,大部分加入技术都是以前在264或者265制定中提过的技术,比如CCLM,ALF,affine等等,H.266的制定方JVET(joint video explore team)是由MPEG和ITU联...转载 2018-05-10 01:09:37 · 635 阅读 · 0 评论 -
Performance Comparison of H.265_MPEG-HEVC, VP9, and H.264/MPEG-AVC Encoders
本文主要依据论文和提案比较现有的H.266参考软件相比于HEVC的性能提升,以及HEVC相比于AVC和VP9的性能比较: 1.HEVC VS AVC and VP9 论文:Performance Comparison of H.265/MPEG-HEVC, VP9, and H.264/MPEG-AVC Encoders对比了现有的各种编码器的性能差别,数据如下:上面这个...转载 2018-05-10 01:07:40 · 409 阅读 · 0 评论 -
H.266的块划分(QTBT)
H.265的预测单元(PU)有八种的划分方式,CU和TU均采用四叉树划分,三个概念不一样,但是对于H.266三个概念将完全一样,不存在划分上的区分,在此我们统称为编码单元,CU=PU=TU,因此代码更加容易理解,H.266中编码单元采用四叉树二叉树(QTBT)划分,二叉树划分有所限制,具体见技术提案,并且帧内Y分量和UV分量的划分是独立的,不再继承Y的划分情况,这是一个较大的改变,CU可以四叉树划...转载 2018-05-10 01:07:29 · 1265 阅读 · 1 评论 -
HEVC intra MPM
编码帧内预测模式大量增加可选择的预测模式可以提供更高的编码效率,同时要求编码预测模式有更加高效的方法降低更多模式带来的负担。与H.264采用一个最可能模式不同的是,对于亮度分量,三个最可能模式用于预测实际的帧内预测模式。同时,也考虑了三个最可能模式中的冗余信息,重复的模式会使用其他模式进行替换。对于亮度分量,HEVC采用了同亮度分量相同的预测模式。在编码亮度和色度帧内预测模式时,各个语法元素的...转载 2018-08-06 09:15:54 · 1764 阅读 · 1 评论 -
GOP
原文地址:http://bbs.chinavideo.org/viewthread.php?tid=14356&extra=page%3D1GOP 两个IDR帧之间的距离,x264中和GOP中相关的参数有两个,其一是-keyint,控制的是GOP中最大可能距离,另一个是-min-keyint,控制的是允许最小的GOP距离IDR 和IDR有关的参数除了上面的GOP设定的两个基本参数之转载 2018-05-10 01:09:14 · 4362 阅读 · 0 评论 -
H.264的CABAC原理
【开始学习HEVC的算数编码之前,先修补一下知识漏洞,回去学一下H.264的CABAC为好。参考文献为: D. Marpe, H. Schwarz, and T. Wiegand, “Context-based adaptive binary arithmetic coding in the H.264/AVC video compression standard,” IEEE Trans.转载 2018-05-10 01:08:59 · 1000 阅读 · 0 评论 -
HM码流整理
HM学习TAppEncoder的函数调用关系图函数背景色函数在图中以方框的形式表现出来。不同的背景色标志了该函数不同的作用:白色背景的函数:不加区分的普通内部函数。黄色背景函数:滤波函数(Filter)。用于环路滤波,半像素插值,SSIM/PSNR的计算。绿色背景的函数:CU编码函数(Encode)。通过对残差的DCT变换、量化等方式对CU进行编码。紫色背景的函数:原创 2017-11-22 16:42:05 · 2275 阅读 · 2 评论 -
帧内预测:xPredIntraPlanar函数
xPredIntraPlanar/** Function for deriving planar intra prediction. * \param pSrc pointer to reconstructed sample array * \param srcStride the stride of the reconstructed sample array * \param rp转载 2017-11-24 14:52:52 · 455 阅读 · 0 评论 -
帧间预测:运动估计和运动补偿
运动补偿是通过先前的局部图像来预测、补偿当前的局部图像,它是减少帧序列冗余信息的有效方法。运动估计是从视频序列中抽取运动信息的一整套技术。运动估计与运动补偿技术 MPEG-4采用I-VOP、P-VOP、B-VOP三种帧格式来表征不同的运动补偿类型。它采用了H.263中的半像素搜索(half pixel searching)技术和重叠运动补偿(overlapped motion compens...转载 2018-04-27 19:52:21 · 21734 阅读 · 3 评论 -
变换:系数的编码(一)
系数扫描模式的初始化:// scanning order table UInt* g_auiSigLastScan[ 3 ][ MAX_CU_DEPTH ]; //!< [pattern][depth] const UInt g_sigLastScan8x8[ 3 ][ 4 ] = { {0, 2, 1, 3}, //!< right-up diagonal ...转载 2018-04-27 19:53:29 · 647 阅读 · 0 评论 -
量化(一)
HM中与draft对应的几个表格:enum ScalingListSize { SCALING_LIST_4x4 = 0, SCALING_LIST_8x8, SCALING_LIST_16x16, SCALING_LIST_32x32, SCALING_LIST_SIZE_NUM }; //!< Table 7-2 (Specificatio...转载 2018-04-27 19:53:53 · 455 阅读 · 0 评论 -
变换编码(二)
//! 用于significant_coeff_flag的上下文推导过程的模式选择 draft 9.3.3.1.4 Int TComTrQuant::calcPatternSigCtx( const UInt* sigCoeffGroupFlag, UInt posXCG, UInt posYCG, Int width, Int height ) { if( width == 4...转载 2018-04-27 19:54:36 · 436 阅读 · 0 评论 -
量化(二)
Void TComTrQuant::transformNxN( TComDataCU* pcCU, Pel* pcResidual, //!< 残差 UInt uiStride, ...转载 2018-04-27 19:55:01 · 348 阅读 · 0 评论 -
CU 级别的分析:TComDataCU
class TComDataCU { private: // ------------------------------------------------------------------------------------------------------------------- // class pointers // -----------...转载 2018-04-27 19:54:22 · 1271 阅读 · 6 评论 -
NAL unit 解码(二)
实际完成NAL解析工作的函数:/** * Parse an AVC AnnexB Bytestream bs to extract a single nalUnit * while accumulating bytestream statistics into stats. * * If EOF occurs while trying to extract a NALunit, a...转载 2018-04-28 11:02:34 · 525 阅读 · 0 评论 -
NAL unit 解码(三)
前面两篇已经将NAL的解析过程的核心部分介绍完了,本篇主要讨论如何将NAL的payload部分转化为原始数据,即从EBSP到RBSP的过程。该过程由TAppDecTop::decode()的子函数read(nalu, nalUnit)调用convertPayloadToRBSP(nalUnitBuf, pcBitstream, (nalUnitBuf[0] & 64) == 0)实现。re...转载 2018-04-28 11:03:15 · 537 阅读 · 0 评论 -
HEVC解码中的SPS解析
一段HEVC码流可能包含一个或者多个编码视频序列CVS,每个CVS由一个随机接入点开始,即IDR/BLA/CRA。在H.264和HEVC中,序列参数集SPS包含该CVS中所有slice需要的信息。SPS的内容大致可以分为几个部分:1、自引ID;2、解码相关信息,如档次级别、分辨率、子层数等;3、某档次中的功能开关标识及该功能的参数;4、对结构和变换系数编码灵活性的限制信息;5、时域可分级信息;6、...转载 2018-04-28 11:03:44 · 3451 阅读 · 0 评论 -
HEVC中的PPS解析
HEVC的图像参数集PPS包含每一帧可能不同的设置信息,其内容同H.264中的大致类似,主要包括:1、自引信息;2、初始图像控制信息,如初始QP等;3、分块信息。在解码开始的时候,所有的PPS全部是非活动状态,而且在解码的任意时刻,最多只能有一个PPS处于激活状态。当某部分码流引用了某个PPS的时候,这个PPS便被激活,称为活动PPS,一直到另一个PPS被激活。1、 pps_pic_paramet...转载 2018-04-28 11:03:55 · 968 阅读 · 0 评论