编辑: lqwzrs 2019-07-04

else t->imgUV[block8x8-4][t->mb.pix_c_y+yy][t->mb.pix_c_x+xx]= (uint8_t)curr_blk[yy][xx];

} } 程序中,将亮度和色度块的判别放在了解码子块循环内,解码一个亮度8x8块样本值需要进行64次是否为亮度块的判断,而实际上只需一次,这样的重复判断是没有必要的;

二维的数据存储方式增加了位置索引复杂度;

对于系数全零的8x8块显然无必要参与重构.针对这些缺陷,本文解决方法:将亮度和色度块判断提前到循环体外,分开解码;

将二维的数据存储结构改进为一维存储;

对于全零残差系数8x8块,在系数熵解码时参考CBP值用一个比特位加以标记,判断为全零则跳过反变换函数,以及重构时直接将预测数据作为最终样本值.以亮度块为例,改进后代码实现片段如下所示: if (t->coeff[block8x8] == 0) for(i=0;

i

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题