
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 · 2309 阅读 · 0 评论 -
HEVC学习之琐事(五):pcPicYuvOrg与getPicYuvOrg()的对应关系
这两天一直纠结于pcPicYuvOrg与getPicYuvOrg()的对应关系,这是因为我自定义了一个pcPicYuvBgf与getPicYuvBgf(),初衷是实现类似于pcPicYuvOrg与getPicYuvOrg()的对应关系,以便于我后面的处理。调试了两天,最后才发现败给了自己的“想太多”。其实这个超简单~~~碰到这种自己想扇自己一巴掌的东西,真心想哭!!!原创 2015-01-07 09:28:01 · 1665 阅读 · 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 · 4044 阅读 · 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 · 1148 阅读 · 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 · 2418 阅读 · 0 评论 -
HEVC代码追踪(十三):解码之decode
// ====================================================================================================================// Public member functions// ==================================================原创 2014-12-05 11:09:50 · 2015 阅读 · 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 · 1554 阅读 · 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 · 1453 阅读 · 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 · 1519 阅读 · 0 评论 -
HEVC代码追踪(十一。七):运动估计/补偿之xTZ8PointDiamondSearch
xTZSearch调用了2个最为主要的函数:xTZ8PointDiamondSearch和xTZ2PointSearch,值得一提的是,HM中还提供了另外一个搜索函数xTZ8PointSquareSearch,但由于实际并没有使用这个函数,且它其实跟钻石搜索只是搜索点的选择略有不同,分析起来基本上也是一样的。__inline Void TEncSearch::xTZ8PointDiam原创 2014-12-02 15:09:31 · 1782 阅读 · 0 评论 -
HEVC代码追踪(十一。六):运动估计/补偿之xTZSearchHelp
/*分析xTZSearch这个函数,xTZSearchHelp是当中最为重要的子函数之一。它实现最基本的功能:根据输入的搜索点坐标,参考图像首地址,原始图像首地址,以及当前PU大小等相关信息,计算出SAD,并与之前保存的最佳值进行比较,更新到目前为止的最佳值相关参数,如uiBestSad,搜索点坐标,搜索步长等。其他的函数如xTZ8PointSearch等搜索函数,最终都是调用xTZSea原创 2014-12-02 14:55:19 · 1816 阅读 · 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 · 1767 阅读 · 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 · 2059 阅读 · 0 评论 -
HEVC代码追踪(十一。三):运动估计/补偿之xMotionEstimation
//!< 运动估计(基本思想就是用TZSearch算法先进行整像素搜索,确定一个局部的最佳值,然后以这个最佳点为中心再进行精度更高的分像素搜索。)Void TEncSearch::xMotionEstimation( TComDataCU* pcCU, TComYuv* pcYuvOrg, Int iPart原创 2014-12-02 11:12:55 · 2889 阅读 · 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 · 3229 阅读 · 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 · 2108 阅读 · 0 评论 -
HEVC代码追踪(十一):运动估计/补偿之理论知识
运动估计的英文名称是Motion Estimation. 是视频编码和视频处理(例如去交织)中广泛使用的一种技术。运动估计的基本思想是将图像序列的每一帧分成许多互不重叠的宏块,并认为宏块内所有象素的位移量都相同,然后对每个宏块到参考帧某一给定特定搜索范围内根据一定的匹配准则找出与当前块最相似的块,即匹配块,匹配块与当前块的相对位移即为运动矢量。视频压缩的时候,只需保存运动矢量和残差数据就可以完原创 2014-12-01 16:23:38 · 3255 阅读 · 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 · 1529 阅读 · 0 评论 -
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 · 1970 阅读 · 0 评论 -
HEVC代码追踪(八。三):encodeCoeff
// texture/** encode coefficients * \param pcCU * \param uiAbsPartIdx * \param uiDepth * \param uiWidth * \param uiHeight */Void TEncEntropy::encodeCoeff( TComDataCU* pcCU, UInt uiAbsPartIdx,原创 2014-11-30 16:23:24 · 2202 阅读 · 2 评论 -
HEVC代码追踪(八。二):estIntraPredChromaQT
Void TEncSearch::estIntraPredChromaQT( TComDataCU* pcCU, TComYuv* pcOrgYuv, TComYuv* pcPredYuv,原创 2014-11-30 16:18:42 · 1541 阅读 · 0 评论 -
HEVC代码追踪(八。一):estIntraPredQT
Void TEncSearch::estIntraPredQT( TComDataCU* pcCU, TComYuv* pcOrgYuv, TComYuv* pcPredYuv, TComYuv* pcResiY原创 2014-11-30 16:09:45 · 1968 阅读 · 1 评论 -
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 · 2362 阅读 · 0 评论 -
HEVC代码追踪(七):xCompressCu
// ====================================================================================================================// Protected member functions// ===============================================原创 2014-11-30 15:19:29 · 2170 阅读 · 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 · 1254 阅读 · 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 · 1689 阅读 · 0 评论 -
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 · 1238 阅读 · 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 · 1663 阅读 · 1 评论 -
HEVC代码追踪(四。二)
/////////////////////////////////////////////////////////////////////////////////////////////////// Compress a slice // Slice compression if (m_pcCfg->getUseASR()) { m_pcSliceEncode原创 2014-11-26 11:11:24 · 1949 阅读 · 0 评论 -
HEVC代码追踪(四。一)
Bool IRAPtoReorder = false;#if EFFICIENT_FIELD_IRAP if(IRAPtoReorder) { if(swapIRAPForward) { if(iGOPid == IRAPGOPid) { iGOPid = IRAPGOPid +1;原创 2014-11-26 10:57:36 · 2324 阅读 · 6 评论 -
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 · 2786 阅读 · 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 · 1653 阅读 · 0 评论 -
HEVC代码追踪(二):encode
// ====================================================================================================================// Public member functions// ==================================================原创 2014-11-24 22:41:45 · 1799 阅读 · 0 评论 -
HEVC代码追踪(一):int main
int main(int argc, char* argv[]){ TAppEncTop cTAppEncTop; // print information fprintf( stdout, "\n" ); fprintf( stdout, "HM software: Encoder Version [%s]", NV_VERSION ); fprintf( stdout原创 2014-11-24 22:37:01 · 1063 阅读 · 0 评论 -
HEVC学习之琐事(三):TEncCu::compressCU
TEncCu::compressCU对应的代码如下:原创 2014-11-07 09:29:10 · 2876 阅读 · 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 · 1933 阅读 · 0 评论 -
HEVC——疑难杂症(一)
QP=37时测试完全正确,但QP=32时,在编码过程中出现如下问题:原创 2014-10-28 22:04:12 · 2040 阅读 · 0 评论 -
HEVC Study Three(基于HM14.0平台)--GOP研究之大揭秘
啊原创 2014-10-10 16:48:39 · 2956 阅读 · 8 评论 -
HEVC学习之琐事(二):HEVC常见名词
HEVC标准的m原创 2014-10-08 21:24:04 · 1772 阅读 · 0 评论 -
HEVC学习之琐事(一):HEVC编码结构分析
在H.原创 2014-10-04 09:31:25 · 2834 阅读 · 0 评论