赞
踩
- 定义两个查找表,ctz_index[8]用于计算拖尾系数、count_cat[14]用于根据块类别获取特定计数上限;
- 调用量化模块中
coeff_level_run
函数,根据块类别,计算出非零系数总数i_total和非零系数的幅值 level;- 将 runlevel.level 数组的最后两个元素设置为2。这样做的目的是为了在计算尾部非零系数时,确保至少有三个非零系数(因为 i_total 是非零系数的总数,所以 i_total+0 和 i_total+1 实际上是数组的末尾位置)。
- 使用位运算来计算尾部非零系数的数量,即拖尾系数i_trailing;
- 使用 ctz_index 查找表将尾部非零系数的数量转换为对应的索引值,作为最终的拖尾系数i_trailing的个数;
- 计算尾部非零系数的符号位i_sign;
- 根据i_total、i_trailing、nC,在多维数组x264_coeff_token中找到对应数值,调用
bs_write_vlc
函数将coff_token 写入码流中;- 根据i_total、i_trailing的值计算非零系数的幅值的后缀长度i_suffix_length初始值;
- 调用
bs_write
函数将拖尾系数i_trailing的符号位i_sign写入码流中ÿ
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。