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

相关文章

Spring Boot 与微服务入门实战详细总结

《SpringBoot与微服务入门实战详细总结》本文讲解SpringBoot框架的核心特性如快速构建、自动配置、零XML与微服务架构的定义、演进及优缺点,涵盖开发环境准备和HelloWorld实战... 目录一、Spring Boot 核心概述二、微服务架构详解1. 微服务的定义与演进2. 微服务的优缺点三

MySQL 多列 IN 查询之语法、性能与实战技巧(最新整理)

《MySQL多列IN查询之语法、性能与实战技巧(最新整理)》本文详解MySQL多列IN查询,对比传统OR写法,强调其简洁高效,适合批量匹配复合键,通过联合索引、分批次优化提升性能,兼容多种数据库... 目录一、基础语法:多列 IN 的两种写法1. 直接值列表2. 子查询二、对比传统 OR 的写法三、性能分析

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

JavaSE正则表达式用法总结大全

《JavaSE正则表达式用法总结大全》正则表达式就是由一些特定的字符组成,代表的是一个规则,:本文主要介绍JavaSE正则表达式用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录常用的正则表达式匹配符正则表China编程达式常用的类Pattern类Matcher类PatternSynta

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

Nginx Location映射规则总结归纳与最佳实践

《NginxLocation映射规则总结归纳与最佳实践》Nginx的location指令是配置请求路由的核心机制,其匹配规则直接影响请求的处理流程,下面给大家介绍NginxLocation映射规则... 目录一、Location匹配规则与优先级1. 匹配模式2. 优先级顺序3. 匹配示例二、Proxy_pa

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

MySQL基本查询示例总结

《MySQL基本查询示例总结》:本文主要介绍MySQL基本查询示例总结,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Create插入替换Retrieve(读取)select(确定列)where条件(确定行)null查询order by语句li

mysql递归查询语法WITH RECURSIVE的使用

《mysql递归查询语法WITHRECURSIVE的使用》本文主要介绍了mysql递归查询语法WITHRECURSIVE的使用,WITHRECURSIVE用于执行递归查询,特别适合处理层级结构或递归... 目录基本语法结构:关键部分解析:递归查询的工作流程:示例:员工与经理的层级关系解释:示例:树形结构的数

Linux区分SSD和机械硬盘的方法总结

《Linux区分SSD和机械硬盘的方法总结》在Linux系统管理中,了解存储设备的类型和特性是至关重要的,不同的存储介质(如固态硬盘SSD和机械硬盘HDD)在性能、可靠性和适用场景上有着显著差异,本文... 目录一、lsblk 命令简介基本用法二、识别磁盘类型的关键参数:ROTA查询 ROTA 参数ROTA