HEVC帧内编码一个CU
来源:互联网 发布:sql导入sybase数据 编辑:程序博客网 时间:2024/05/01 08:02
HEVC帧内编码一个CU
1. CU编码开始于函数TEncCu::xCompressCU();
2. 然后由函数xCheckRDCostIntra()调用函数estIntraPredQT(),estIntraPredChromaQT()进行色度和亮度预测;
3. estIntraPredQT()函数根据uiNumPU(前一篇博客已讲),遍历每一个subpart;
4. 对于每一个子划分做35种模式进行初步预测,并进行hadamard变换。通过xUpdateCandList()更新CandCostList,这样就得到一个按uiCost由小到大排列的帧内编码模式CandModeList;
UInt TEncSearch::xUpdateCandList( UIntuiMode, Double uiCost, UInt uiFastCandNum, UInt * CandModeList, Double *CandCostList ){ UInt i; UInt shift=0; //=====找到当前uiCost的位置,本身CandCostList是按由小到大排列。类似冒泡排序 while ( shift<uiFastCandNum && uiCost<CandCostList[uiFastCandNum-1-shift ] ) shift++; if(shift!=0 ) { //=====数组中所有数据从当前位置往后顶,空出uiCost的位置 for(i=1; i<shift; i++) { CandModeList[ uiFastCandNum-i ] = CandModeList[ uiFastCandNum-1-i ]; CandCostList[ uiFastCandNum-i ] = CandCostList[ uiFastCandNum-1-i ]; } //=====更新当前位置的模式和cost CandModeList[ uiFastCandNum-shift ] = uiMode; CandCostList[ uiFastCandNum-shift ] = uiCost; return 1; } return 0;}
5. 接下来就是宏FAST_UDI_USE_MPM来进行MPM预测,然后进行遍历numModesForFullRD进行帧内预测,其实有个问题:不是MPM增加了numModesForFullRD吗?但是这里他并没有把MPM算进去,不知道为什么,接下来再仔细想想。有想法再说。
Jyno 2013/09/09
- HEVC帧内编码一个CU
- HEVC函数入门(2)——帧内编码一个CU
- 【HEVC学习与研究】33、编码一个CU(帧内部分)2:帧内预测各种模式的实现
- 【HEVC学习与研究】32、编码一个CU(帧内部分)1
- 【HEVC学习与研究】32、编码一个CU(帧内部分)1
- HEVC函数入门(17)——编码一个CU
- 33、编码一个CU(帧内部分)2、帧内预测各种模式的实现
- 32、编码一个CU(帧内部分)1
- HEVC帧内预测编码之LCU四叉树结构分块
- HEVC核心编码技术之二.帧内预测
- HEVC核心编码技术之二.帧内预测
- 3D-HEVC 框图+帧内深度编码简介
- HEVC帧内预测编码之LCU四叉树结构分块
- HEVC算法和体系结构:预测编码之帧内预测
- HEVC算法和体系结构:预测编码之帧内预测
- HEVC中的CU结构
- HEVC CU 广度优先
- Duanxx的HEVC学习(三)HEVC编码框架(二)帧内预测
- PHP array_chunk() 函数
- Struts Tiles框架使用
- 黑马程序员------面向对象(No.1)(面向对象的理解、成员变量、局部变量、匿名对象)
- Hibernate+oracle 报错could not get next sequence value
- 【面试攻略】5大错误用辞让你面试完败
- HEVC帧内编码一个CU
- bean write 标签
- chakanStore.js
- 单链表的创建、遍历、插入、删除、查找、逆转
- Oracle表的常用查询实验(二)
- 数据库常用语句
- The magic of LD_PRELOAD for Userland Rootkits
- Longest Substring Without Repeating Characters
- WebKit for android