HEVC代码追踪(十五):解码之decompressSlice
代码 解码 追踪 十五 HEVC
2023-09-14 08:57:58 时间
Void TDecGop::decompressSlice(TComInputBitstream* pcBitstream, TComPic* rpcPic) TComSlice* pcSlice = rpcPic- getSlice(rpcPic- getCurrSliceIdx()); // Table of extracted substreams. // These must be deallocated AND their internal fifos, too. TComInputBitstream **ppcSubstreams = NULL; //-- For time output for each slice long iBeforeTime = clock(); m_pcSbacDecoder- init( (TDecBinIf*)m_pcBinCABAC ); m_pcEntropyDecoder- setEntropyDecoder (m_pcSbacDecoder); UInt uiNumSubstreams = pcSlice- getPPS()- getEntropyCodingSyncEnabledFlag() ? pcSlice- getNumEntryPointOffsets()+1 : pcSlice- getPPS()- getNumSubstreams(); // init each couple {EntropyDecoder, Substream} UInt *puiSubstreamSizes = pcSlice- getSubstreamSizes(); ppcSubstreams = new TComInputBitstream*[uiNumSubstreams]; m_pcSbacDecoders = new TDecSbac[uiNumSubstreams]; m_pcBinCABACs = new TDecBinCABAC[uiNumSubstreams]; for ( UInt ui = 0 ; ui uiNumSubstreams ; ui++ ) m_pcSbacDecoders[ui].init( m_pcBinCABACs[ui]); ppcSubstreams[ui] = pcBitstream- extractSubstream(ui+1 uiNumSubstreams ? puiSubstreamSizes[ui] : pcBitstream- getNumBitsLeft()); for ( UInt ui = 0 ; ui+1 uiNumSubstreams; ui++ ) m_pcEntropyDecoder- setEntropyDecoder ( m_pcSbacDecoders[uiNumSubstreams - 1 - ui] ); m_pcEntropyDecoder- setBitstream ( ppcSubstreams [uiNumSubstreams - 1 - ui] ); m_pcEntropyDecoder- resetEntropy (pcSlice); m_pcEntropyDecoder- setEntropyDecoder ( m_pcSbacDecoder ); m_pcEntropyDecoder- setBitstream ( ppcSubstreams[0] ); m_pcEntropyDecoder- resetEntropy (pcSlice); m_pcSbacDecoders[0].load(m_pcSbacDecoder); m_pcSliceDecoder- decompressSlice( ppcSubstreams, rpcPic, m_pcSbacDecoder, m_pcSbacDecoders); m_pcEntropyDecoder- setBitstream( ppcSubstreams[uiNumSubstreams-1] ); // deallocate all created substreams, including internal buffers. for (UInt ui = 0; ui uiNumSubstreams; ui++) ppcSubstreams[ui]- deleteFifo(); delete ppcSubstreams[ui]; delete[] ppcSubstreams; delete[] m_pcSbacDecoders; m_pcSbacDecoders = NULL; delete[] m_pcBinCABACs; m_pcBinCABACs = NULL; m_dDecTime += (Double)(clock()-iBeforeTime) / CLOCKS_PER_SEC;
p /p pre name= code "feed-item-img" target="_blank" href="https://developer.aliyun.com/article/31166">
p /p pre name= code "feed-item-img" target="_blank" href="https://developer.aliyun.com/article/31168">
p /p pre code_snippet_id= 539592 snippet_file_name= blog_20141202_1_5458888 name= code "feed-item-img" target="_blank" href="https://developer.aliyun.com/article/31169">
p /p pre code_snippet_id= 539588 snippet_file_name= blog_20141202_1_7201235 name= code "feed-item-img" target="_blank" href="https://developer.aliyun.com/article/31170">
p xTZSearch调用了2个最为主要的函数:xTZ8PointDiamondSearch和xTZ2PointSearch,值得一提的是,HM中还提供了另外一个搜索函数xTZ8PointSquareSearch,但由于实际并没有使用这个函数,且它其实跟钻石搜索只是搜索点的选择略有不同,分析起来基本上也是一样的。 /p p br /p p /p pre code_s
p /p pre name= code "feed-item-img" target="_blank" href="https://developer.aliyun.com/article/31181">
p /p pre code_snippet_id= 537345 snippet_file_name= blog_20141130_1_6232807 name= code "feed-item-img" target="_blank" href="https://developer.aliyun.com/article/31180">
p /p pre name= code "feed-item-img" target="_blank" href="https://developer.aliyun.com/article/31184">
p /p pre name= code "feed-item-img" target="_blank" href="https://developer.aliyun.com/article/31185">
p /p pre code_snippet_id= 537266 snippet_file_name= blog_20141130_1_961923 name= code "author-img" src="https://ucc.alicdn.com/avatar/img_b52c3e366f5980ae86989f8a252e3c5f.jpg?x-oss-process=image/resize,h_150,m_lfit" />
相关文章
- HEVC代码追踪(十四):解码之xDecodeSlice
- HEVC代码追踪(十二):解码之int main
- php 给图片增加背景平铺水印代码
- paip.输入法英文词库的处理 python 代码 o4
- DL:基于keras和tensorflow 框架保存网络结构/网络拓扑图/网络模型(json、yaml、h5等文件)注意事项及代码实现(保存和加载.h5模型文件案例)之详细攻略
- 【最优潮流】基于分布式交变方向乘法器(ADMM)方法来求解带碳排放交易的直流动态最优潮流(Matlab代码实现)
- 基于LSTM神经网络的电力负荷预测(Python代码实现)
- 【BA-FNN】基于蝙蝠优化的模糊神经网络FNN研究(Matlab代码实现)
- 博弈论在电动车和电网系统中分布式模型预测控制研究(Matlab代码实现)
- 智能优化算法:沙猫群算法—附代码
- 智能优化算法:飞蛾扑火优化算法-附代码
- 智能优化算法:旗鱼优化算法-附代码
- 556. 下一个更大元素 III-非递归双百代码
- 【C++】代码实现:base64 编码与解码
- 微信公众平台java开发具体解释(project代码+解析)
- 代码的黑盒测试(上)| 目标文件测试Object File Testing
- Google Guava常用的代码示例
- 3.4 随机梯度下降【斯坦福21秋季:实用机器学习中文版】代码实现