![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
HEVC之HM
文章平均质量分 72
成长Bar
人生為棋,我願為卒,行動雖慢,可誰見我後退過一步!
展开
-
监控视频编码研究进展摘要汇总
为了熟悉监控视频编码研究进展,本文将上世纪九十年代至今的相关论文做了总结,并且提取出每篇论文的主要研究内容,以便个人写论文使用。REFERENCES[1] P. Gorur, B. Amrutur, “Skip decision and reference frame selection for low-complexity H.264/AVC surveillance video cod原创 2015-03-16 22:27:46 · 2210 阅读 · 0 评论 -
HEVC代码追踪(十一。八):运动估计/补偿之xTZ8PointSquareSearch
__inline Void TEncSearch::xTZ8PointSquareSearch( TComPattern* pcPatternKey, IntTZSearchStruct& rcStruct, TComMv* pcMvSrchRngLT, TComMv* pcMvSrchRngRB, const Int iStartX, const Int iStartY, const Int i原创 2014-12-02 15:12:01 · 1488 阅读 · 0 评论 -
HEVC代码追踪(十一。六):运动估计/补偿之xTZSearchHelp
/*分析xTZSearch这个函数,xTZSearchHelp是当中最为重要的子函数之一。它实现最基本的功能:根据输入的搜索点坐标,参考图像首地址,原始图像首地址,以及当前PU大小等相关信息,计算出SAD,并与之前保存的最佳值进行比较,更新到目前为止的最佳值相关参数,如uiBestSad,搜索点坐标,搜索步长等。其他的函数如xTZ8PointSearch等搜索函数,最终都是调用xTZSea原创 2014-12-02 14:55:19 · 1751 阅读 · 0 评论 -
HEVC代码追踪(十一。四):运动估计/补偿之xPatternSearch和xPatternSearchFast
Void TEncSearch::xPatternSearch( TComPattern* pcPatternKey, Pel* piRefY, Int iRefStride, TComMv* pcMvSrchRngLT, TComMv* pcMvSrchRngRB, TComMv& rcMv, UInt& ruiSAD ){ Int iSrchRngHorLeft = pcMvSr原创 2014-12-02 11:18:56 · 2017 阅读 · 0 评论 -
HEVC代码追踪(十一):运动估计/补偿之理论知识
运动估计的英文名称是Motion Estimation. 是视频编码和视频处理(例如去交织)中广泛使用的一种技术。运动估计的基本思想是将图像序列的每一帧分成许多互不重叠的宏块,并认为宏块内所有象素的位移量都相同,然后对每个宏块到参考帧某一给定特定搜索范围内根据一定的匹配准则找出与当前块最相似的块,即匹配块,匹配块与当前块的相对位移即为运动矢量。视频压缩的时候,只需保存运动矢量和残差数据就可以完原创 2014-12-01 16:23:38 · 3136 阅读 · 0 评论 -
HEVC代码追踪(十一。三):运动估计/补偿之xMotionEstimation
//!< 运动估计(基本思想就是用TZSearch算法先进行整像素搜索,确定一个局部的最佳值,然后以这个最佳点为中心再进行精度更高的分像素搜索。)Void TEncSearch::xMotionEstimation( TComDataCU* pcCU, TComYuv* pcYuvOrg, Int iPart原创 2014-12-02 11:12:55 · 2827 阅读 · 0 评论 -
HEVC代码追踪(十一。五):运动估计/补偿之xTZSearch
Void TEncSearch::xTZSearch( TComDataCU* pcCU, TComPattern* pcPatternKey, Pel* piRefY, Int iRefStride, TComMv* pcMvSrchRngLT, TComMv* pcMvSrchRngRB, TComMv& rcMv, UInt& ruiSAD ){//!< 确定运动估计搜索范围的边界 I原创 2014-12-02 11:27:43 · 1715 阅读 · 0 评论 -
HEVC学习之琐事(五):pcPicYuvOrg与getPicYuvOrg()的对应关系
这两天一直纠结于pcPicYuvOrg与getPicYuvOrg()的对应关系,这是因为我自定义了一个pcPicYuvBgf与getPicYuvBgf(),初衷是实现类似于pcPicYuvOrg与getPicYuvOrg()的对应关系,以便于我后面的处理。调试了两天,最后才发现败给了自己的“想太多”。其实这个超简单~~~碰到这种自己想扇自己一巴掌的东西,真心想哭!!!原创 2015-01-07 09:28:01 · 1634 阅读 · 0 评论 -
HEVC代码追踪(十一。二):运动估计/补偿之predInterSearch
/** search of the best candidate for inter prediction * \param pcCU * \param pcOrgYuv * \param rpcPredYuv * \param rpcResiYuv * \param rpcRecoYuv * \param bUseRes * \returns Void */#if AMP_MR原创 2014-12-02 10:55:08 · 3173 阅读 · 0 评论 -
HEVC代码追踪(十一。一):运动估计/补偿之xCheckRDCostInter
#if AMP_MRGVoid TEncCu::xCheckRDCostInter( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize, Bool bUseMRG)#elseVoid TEncCu::xCheckRDCostInter( TComDataCU*& rpcBestCU, TComDataCU*&原创 2014-12-02 10:49:26 · 2071 阅读 · 0 评论 -
HEVC framework before starting encoding(基于HM14.0平台)
HEVC中,在进入编码原创 2014-09-19 17:20:36 · 1794 阅读 · 0 评论 -
HEVC代码追踪(十二):解码之int main
int main(int argc, char* argv[]){ TAppDecTop cTAppDecTop; // print information fprintf( stdout, "\n" ); fprintf( stdout, "HM software: Decoder Version [%s]", NV_VERSION ); fprintf( stdout原创 2014-12-05 11:08:04 · 1505 阅读 · 0 评论 -
HEVC学习之琐事(四):如何计算PSNR
Void TEncGOP::xCalculateAddPSNR( TComPic* pcPic, TComPicYuv* pcPicD, const AccessUnit& accessUnit, Double dEncTime ){ Int x, y; UInt64 uiSSDY = 0; UInt64 uiSSDU = 0; UInt64 uiSSDV = 0;原创 2014-12-07 16:33:58 · 3929 阅读 · 0 评论 -
HEVC学习之琐事(二):HEVC常见名词
HEVC标准的m原创 2014-10-08 21:24:04 · 1714 阅读 · 0 评论 -
HEVC学习之琐事(一):HEVC编码结构分析
在H.原创 2014-10-04 09:31:25 · 2764 阅读 · 0 评论 -
HEVC代码追踪(十五):解码之decompressSlice
Void TDecGop::decompressSlice(TComInputBitstream* pcBitstream, TComPic*& rpcPic){ TComSlice* pcSlice = rpcPic->getSlice(rpcPic->getCurrSliceIdx()); // Table of extracted substreams. // These m原创 2014-12-05 11:15:19 · 1107 阅读 · 0 评论 -
HEVC代码追踪(十三):解码之decode
// ====================================================================================================================// Public member functions// ==================================================原创 2014-12-05 11:09:50 · 1955 阅读 · 0 评论 -
HEVC Study Two(基于HM14.0平台)--如何在HEVC中加入背景建模技术(一)
随着AVS的逐步发展,AVS中的一些创新也得到国际上越来越多学者的关注。尤其是AVS中针对监控视频编码的背景建模技术和感兴趣区域提取技术。对于国际同行来说,如何在HEVC的参考软件平台HM上加入这两项技术是一个工作量甚大的事情。本文就本人做的一些工作做简单介绍。软件平台HM14.0,IDE:VS2010(英文版)废话了这么多,下面开始真正的内容:在《HEVC fra原创 2014-09-04 16:08:31 · 2155 阅读 · 6 评论 -
HEVC Study Two(基于HM14.0平台)--如何在HEVC中加入背景建模技术(二)
为了采用背景建模技术,必须知道当前帧和前一帧或者前几帧的像素值从而进行背景建模。当前帧的像素值在《HEVC Study Two(基于HM14.0平台)--如何在HEVC中加入背景建模技术(一)》中已经详细地说明了。下面讲述如何获得前一帧或者前几帧图像的像素值,从HM14.0的框架上看(如下图),IPPP编码结构中的P帧运动估计必须参考前一帧的像素值进行估计,因此我们应该从运动估计这一模块下手找原创 2014-09-21 19:34:57 · 7338 阅读 · 0 评论 -
HEVC代码追踪(十四):解码之xDecodeSlice
Bool TDecTop::decode(InputNALUnit& nalu, Int& iSkipFrame, Int& iPOCLastDisplay){ // Initialize entropy decoder m_cEntropyDecoder.setEntropyDecoder (&m_cCavlcDecoder); m_cEntropyDecoder.setBitst原创 2014-12-05 11:11:29 · 2348 阅读 · 0 评论 -
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调试可以发现里面原创 2014-09-03 09:49:13 · 2079 阅读 · 0 评论 -
HEVC代码追踪(十一。九):运动估计/补偿之xTZ2PointSearch
__inline Void TEncSearch::xTZ2PointSearch( TComPattern* pcPatternKey, IntTZSearchStruct& rcStruct, TComMv* pcMvSrchRngLT, TComMv* pcMvSrchRngRB ){ Int iSrchRngHorLeft = pcMvSrchRngLT->getHor();原创 2014-12-02 15:15:15 · 1420 阅读 · 0 评论 -
HEVC代码追踪(十一。七):运动估计/补偿之xTZ8PointDiamondSearch
xTZSearch调用了2个最为主要的函数:xTZ8PointDiamondSearch和xTZ2PointSearch,值得一提的是,HM中还提供了另外一个搜索函数xTZ8PointSquareSearch,但由于实际并没有使用这个函数,且它其实跟钻石搜索只是搜索点的选择略有不同,分析起来基本上也是一样的。__inline Void TEncSearch::xTZ8PointDiam原创 2014-12-02 15:09:31 · 1728 阅读 · 0 评论 -
HEVC Study Three(基于HM14.0平台)--GOP研究之大揭秘
啊原创 2014-10-10 16:48:39 · 2903 阅读 · 8 评论 -
HEVC代码追踪(九):帧间->xCheckRDCostInter
#if AMP_MRGVoid TEncCu::xCheckRDCostInter( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize, Bool bUseMRG)#elseVoid TEncCu::xCheckRDCostInter( TComDataCU*& rpcBestCU, TComDataCU*&原创 2014-11-30 16:27:03 · 1934 阅读 · 0 评论 -
HEVC代码追踪(三):encode->compressGOP
/** - Application has picture buffer list with size of GOP + 1 - Picture buffer list acts like as ring buffer - End of the list has the latest picture . \param flush cause encoder原创 2014-11-24 22:43:58 · 1613 阅读 · 0 评论 -
HEVC代码追踪(四。二)
/////////////////////////////////////////////////////////////////////////////////////////////////// Compress a slice // Slice compression if (m_pcCfg->getUseASR()) { m_pcSliceEncode原创 2014-11-26 11:11:24 · 1869 阅读 · 0 评论 -
HEVC代码追踪(四。三)
/* use the main bitstream buffer for storing the marshalled picture */ m_pcEntropyCoder->setBitstream(NULL); startCUAddrSliceIdx = 0; startCUAddrSlice = 0; startCUAddrSlic原创 2014-11-26 11:21:20 · 1601 阅读 · 1 评论 -
HEVC代码追踪(四。一)
Bool IRAPtoReorder = false;#if EFFICIENT_FIELD_IRAP if(IRAPtoReorder) { if(swapIRAPForward) { if(iGOPid == IRAPGOPid) { iGOPid = IRAPGOPid +1;原创 2014-11-26 10:57:36 · 2285 阅读 · 6 评论 -
HEVC代码追踪(四。四)
//In case of field coding, compute the interlaced PSNR for both fields if (isField && ((!pcPic->isTopField() && isTff) || (pcPic->isTopField() && !isTff)) && (pcPic->getPOC()%m_iGopSize != 1))原创 2014-11-26 11:32:20 · 1200 阅读 · 0 评论 -
HEVC——疑难杂症(一)
QP=37时测试完全正确,但QP=32时,在编码过程中出现如下问题:原创 2014-10-28 22:04:12 · 1920 阅读 · 0 评论 -
HEVC学习之琐事(三):TEncCu::compressCU
TEncCu::compressCU对应的代码如下:原创 2014-11-07 09:29:10 · 2785 阅读 · 1 评论 -
HEVC之缩写词含义大全
B Bi-predictiveBLA Broken Link AccessCABAC Context-based Adaptive Binary Arithmetic CodingCB Coding BlockCBR Constant Bit RateCRA Clean Random AccessCPB Coded Picture BufferCTB Coding Tr原创 2014-11-02 17:18:29 · 1849 阅读 · 0 评论 -
HEVC代码追踪(四):compressGOP框架
Void TEncGOP::compressGOP( Int iPOCLast, Int iNumPicRcvd, TComList& rcListPic, TComList& rcListPicYuvRecOut, std::list& accessUnitsInGOP, bool isField, bool isTff){ /*compressGOP的一些初始设定或者说是初始参原创 2014-11-26 10:56:31 · 2740 阅读 · 0 评论 -
HEVC代码追踪(八):帧内->xCheckRDCostIntra
Void TEncCu::xCheckRDCostIntra( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize eSize ){ UInt uiDepth = rpcTempCU->getDepth( 0 ); rpcTempCU->setSkipFlagSubParts( false, 0, uiDepth );原创 2014-11-30 15:36:44 · 2327 阅读 · 0 评论 -
HEVC代码追踪(七):xCompressCu
// ====================================================================================================================// Protected member functions// ===============================================原创 2014-11-30 15:19:29 · 2134 阅读 · 1 评论 -
HEVC代码追踪(六):compressCU
Void TEncCu::compressCU( TComDataCU*& rpcCU ){ // initialize CU data m_ppcBestCU[0]->initCU( rpcCU->getPic(), rpcCU->getAddr() ); m_ppcTempCU[0]->initCU( rpcCU->getPic(), rpcCU->getAddr() );原创 2014-11-30 15:17:11 · 1212 阅读 · 0 评论 -
HEVC代码追踪(五):compressSlice
Void TEncSlice::compressSlice( TComPic*& rpcPic ){ UInt uiCUAddr; UInt uiStartCUAddr; UInt uiBoundingCUAddr; rpcPic->getSlice(getSliceIdx())->setSliceSegmentBits(0); TEncBinCABAC* pppc原创 2014-11-26 20:37:08 · 1654 阅读 · 0 评论 -
HEVC代码追踪(八。二):estIntraPredChromaQT
Void TEncSearch::estIntraPredChromaQT( TComDataCU* pcCU, TComYuv* pcOrgYuv, TComYuv* pcPredYuv,原创 2014-11-30 16:18:42 · 1504 阅读 · 0 评论 -
HEVC代码追踪(十):量化->xCheckIntraPCM
/** Check R-D costs for a CU with PCM mode. * \param rpcBestCU pointer to best mode CU data structure * \param rpcTempCU pointer to testing mode CU data structure * \returns Void * * \note Curr原创 2014-11-30 16:28:50 · 1481 阅读 · 0 评论