H.264句法和语法总结(十四)CAVLC 残差句法

2024-03-16 00:38

本文主要是介绍H.264句法和语法总结(十四)CAVLC 残差句法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

residual_block_cavlc( coeffLevel, maxNumCoeff ) {  C      Descriptor 
    for( i = 0; i < maxNumCoeff; i++ )           
        coeffLevel[ i ] = 0      
     // coeff_token      指明了非零系数的个数,拖尾系数的个数。       
     coeff_token   
    if( TotalCoeff( coeff_token ) > 0 ) {           
        if( TotalCoeff( coeff_token ) > 10    &&    TrailingOnes( coeff_token ) < 
3 ) 
            suffixLength = 1           
        else           
            suffixLength = 0           
        for( i = 0; i < TotalCoeff( coeff_token ); i++ )           
            if( i < TrailingOnes( coeff_token ) ) {            
                 // trailing_ones_sign_flag  拖尾系数的符号 
                    -     如果trailing_ones_sign_flag = 0,  相应的拖尾系数是+1。 
                    -     否则,trailing_ones_sign_flag =1,相应的拖尾系数是-1。
  
                 trailing_ones_sign_flag    
                level[ i ] = 1 – 2 * trailing_ones_sign_flag           
            } else {           
                 // level_prefix and level_suffix  非零系数值的前缀和后缀。  
                 level_prefix   
                levelCode = ( level_prefix << suffixLength )           
                if( suffixLength > 0    | |    level_prefix >= 14 ) {           
                     level_suffix    
                    levelCode += level_suffix           
                }           
                if( level_prefix    = =    15    &&    suffixLength    = =    0 )           
                    levelCode += 15           
                if( i    = =    TrailingOnes( coeff_token )    &&     
                      TrailingOnes( coeff_token ) < 3 ) 
                    levelCode += 2           
                if( levelCode % 2    = =    0 )           
                    level[ i ] = ( levelCode + 2 ) >> 1           
                else           
                    level[ i ] = ( –levelCode – 1 ) >> 1           
                if( suffixLength    = =    0 )           
                    suffixLength = 1           
                if( Abs( level[ i ] )    >    ( 3 << ( suffixLength – 1 ) )    &&     
                      suffixLength < 6 ) 
                    suffixLength++           
            }           
        if( TotalCoeff( coeff_token ) < maxNumCoeff ) {           
             // total_zeros    系数中 0 的总个数。  
             total_zeros     
            zerosLeft = total_zeros           
        } else           
            zerosLeft = 0           
        for( i = 0; i < TotalCoeff( coeff_token ) – 1; i++ ) {           
            if( zerosLeft > 0 ) {           
                
                 run_before     
                run[ i ] = run_before           
            } else           
                run[ i ] = 0           
            zerosLeft = zerosLeft – run[ i ]           
        }           
        run[ TotalCoeff( coeff_token ) – 1 ] = zerosLeft           
        coeffNum = -1           
        for( i = TotalCoeff( coeff_token ) – 1; i >= 0; i-- ) {           
            coeffNum += run[ i ] + 1           
            coeffLevel[ coeffNum ] = level[ i ]             
        }           
    }           
}

这篇关于H.264句法和语法总结(十四)CAVLC 残差句法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/813786

相关文章

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

Python正则表达式语法及re模块中的常用函数详解

《Python正则表达式语法及re模块中的常用函数详解》这篇文章主要给大家介绍了关于Python正则表达式语法及re模块中常用函数的相关资料,正则表达式是一种强大的字符串处理工具,可以用于匹配、切分、... 目录概念、作用和步骤语法re模块中的常用函数总结 概念、作用和步骤概念: 本身也是一个字符串,其中

Python实现图片分割的多种方法总结

《Python实现图片分割的多种方法总结》图片分割是图像处理中的一个重要任务,它的目标是将图像划分为多个区域或者对象,本文为大家整理了一些常用的分割方法,大家可以根据需求自行选择... 目录1. 基于传统图像处理的分割方法(1) 使用固定阈值分割图片(2) 自适应阈值分割(3) 使用图像边缘检测分割(4)

Mysql用户授权(GRANT)语法及示例解读

《Mysql用户授权(GRANT)语法及示例解读》:本文主要介绍Mysql用户授权(GRANT)语法及示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql用户授权(GRANT)语法授予用户权限语法GRANT语句中的<权限类型>的使用WITH GRANT

HTML5表格语法格式详解

《HTML5表格语法格式详解》在HTML语法中,表格主要通过table、tr和td3个标签构成,本文通过实例代码讲解HTML5表格语法格式,感兴趣的朋友一起看看吧... 目录一、表格1.表格语法格式2.表格属性 3.例子二、不规则表格1.跨行2.跨列3.例子一、表格在html语法中,表格主要通过< tab

Windows Docker端口占用错误及解决方案总结

《WindowsDocker端口占用错误及解决方案总结》在Windows环境下使用Docker容器时,端口占用错误是开发和运维中常见且棘手的问题,本文将深入剖析该问题的成因,介绍如何通过查看端口分配... 目录引言Windows docker 端口占用错误及解决方案汇总端口冲突形成原因解析诊断当前端口情况解

Java使用ANTLR4对Lua脚本语法校验详解

《Java使用ANTLR4对Lua脚本语法校验详解》ANTLR是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件,下面就跟随小编一起看看Java如何使用ANTLR4对Lua脚本... 目录什么是ANTLR?第一个例子ANTLR4 的工作流程Lua脚本语法校验准备一个Lua Gramm

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

Python基础语法中defaultdict的使用小结

《Python基础语法中defaultdict的使用小结》Python的defaultdict是collections模块中提供的一种特殊的字典类型,它与普通的字典(dict)有着相似的功能,本文主要... 目录示例1示例2python的defaultdict是collections模块中提供的一种特殊的字

C++ 中的 if-constexpr语法和作用

《C++中的if-constexpr语法和作用》if-constexpr语法是C++17引入的新语法特性,也被称为常量if表达式或静态if(staticif),:本文主要介绍C++中的if-c... 目录1 if-constexpr 语法1.1 基本语法1.2 扩展说明1.2.1 条件表达式1.2.2 fa