JM与h264标准中的关键字说明

有些乱,先存着,留着看

如何结合H.264标准看JM代码》这个web文件,大家都应该有了吧。不过,那个web文档是“H.264乐园”群中聊天的内容

1、一个sps后,有若干个pps吗?
      这主要又编码器决定,但JM代码中只有一个

 

2、标准中第二栏的C是什么意思?
    请看标准7.2--分类(在表中以C标记)表明了片数据被划分为三类片数据分割的情况。片数据A类分割包含所有的2类语法元素。片数据B类分割包含所有的3 类语法元素。片数据C类分割包含所有的4类语法元素。其他类语法元素取值的含义未做规定。对于某些语法元素,使用一个垂直竖线表示其包含两类语法元素。在这种情况下,该语法元素将使用的分类值将在文本中进一步确定。

3、一个NALU对应一个片吗?
    这种说法不太准确,NALU 包括一个片、SPS、PPS、SEI等等

 

4、decode_one_frame()包括I、P、B

 

5、 case NALU_TYPE_SLICE:
      case NALU_TYPE_IDR:
      case NALU_TYPE_DPA
      case NALU_TYPE_DPB:
      case NALU_TYPE_DPC
      case NALU_TYPE_SEI:
      case NALU_TYPE_PPS
      case NALU_TYPE_SPS
      case NALU_TYPE_AUD:
      case NALU_TYPE_EOSEQ:
      case NALU_TYPE_EOSTREAM:
      case NALU_TYPE_FILL
     问题:什么时候进入哪个,有什么说明的文章或书么?
       答 :进入哪个 case 是由从 NALU 头里解码出来的 nalu_type 决定的

 

6、解码器中的误码隐藏只对丢包有用,丢包之后,包的序号不连续,解码器一旦检测到包序号不连续就会将不连续地方的 ei_flag  置 1

 

7、字节流格式和RTP格式码流,具体的不同点有哪些?相关的资料哪里有?
      字节流格式主要用于文件存储,因此在该格式码流中 NALU 前面只有一个开始前缀,RTP格式码流因为需要进行网络传输, 因此 NALU 前面还有很多辅助信息

 

8、rtp格式就是在字节流前加包头吗?
      不是,字节流=开始前缀+NALU,而 RTP 中没有 开始前缀

 

9、RTP中没有开始前缀,为什么还是要插03?
       防止伪起始码、、RTP完全可以不用起始码,或许是为了与字节流格式统一吧

 

10、NALU是对RBSP的封装。而RTP之类的是对NALU的封装。

 

11、为什么要分ABC片?
        ——分ABC片主要目的是为了对重要程度不同的数据进行不同程度的保护

 

12、baseline没有数据分割吧?
      baseline只是如何产生RBSP,如何封装NALU。具体如何传输,RTP之类只是一种方式,文件copy也是一种方式,那一般 baseline最多有多少参考帧?任意个。

 

13、解码profile_idc之后解码器要做什么工作?比如baseline不支持CABAC那么后面相应的位entropy_coding_mode_flag是不是就不存在了,如果存在,相抵触怎么办?
      当然不会执行 CABAC 的代码,编码器如果是编码 baseline ,那么码流中自然就不存在与 CABAC 相关的语法元素,例如  entropy_coding_mode_flag ,解码器解码 SPS ,得知码流是 baseline 后,自然也就不会去调用与 CABAC 相关的解码程 序,也就不会出错了。profile_idc 为 baseline ,active_pps->entropy_coding_mode_flag 就不会为 CABAC,,码流是 否是 baseline 并不是由多少个参考帧决定的

 

14、JM 进行 CAVLC 编码时候,对于 level = 8 的情况是采用 escape suffix 处理的,我修改代码将 level = 8 的情况采用无符号数表示,结果编码出来的码流与未修改完全一样

附:RBSP、SODB、EBSP三者的区别和联系!
        SODB:最原始的编码数据,没有任何附加数据
        RBSP:在 SODB 的基础上加了rbsp_stop_ont_bit(bit 值为 1)并用 0 按字节补位对齐
        EBSP:在 RBSP 的基础上增加了防止伪起始码字节(0X03)

       1、1 frame的数据可以分为多个slice.
       2、每个slice中的数据,在帧内预测只用到自己slice的数据, 与其他slice 数据没有依赖关系。
       3、NAL 是用来将编码的数据进行大包的。 比如,每一个slice 数据可以放在NAL 包中。
       4、I frame. 是自己独立编码,不依赖于其他frame. 数据。
            P frame. 依赖 I frame. 数据。
            B frame. 依赖 I frame, P frame. 或其他 B frame. 数据。

     一个frame是可以分割成多个Slice来编码的,而一个Slice编码之后被打包进一个NAL单元,不过NAL单元除了容纳Slice编码的码流外,还可以容纳其他数据,比如序列参数集SPS。

 

15、NAL、Slice与frame意思及相互关系

NAL指网络提取层,里面放一些与网络相关的信息
Slice是片的意思,264中把图像分成一帧(frame)或两场(field),而帧又可以分成一个或几个片(Slilce);片由宏块(MB)组成。宏块是编码处理的基本单元。

 

16、NAL nal_unit_type中的1(非IDR图像的编码条带)、2(编码条带数据分割块A)、3(编码条带数据分割块B)、4(编码条带数据分割块C)、 5(IDR图像的编码条带)种类型与 Slice种的三种编码模式:I_slice、P_slice、B_slice NAL nal_unit_type 里的五种类型,代表接下来数据是表示啥信息的和具体如何分块。I_slice、P_slice、B_slice 表示I类型的片、P类型的片,B类型的片.其中I_slice为帧内预测模式编码;P_slice为单向预测编码或帧内模式;B_slice 中为双向预测或帧内模式。

 

17、还有frame的3种类型:I frame、P frame、 B frame之间有什么映射关系么?
I frame、P frame、 B frame关系同 I_slice、P_slice、B_slice,slice和frame区别在问题1中已经讲明白。

 

18、最后,NAL nal_unit_type中的6(SEI)、7(SPS)、8(PPS)属于什么帧呢?
NAL nal_unit_type 为序列参数集(SPS)、图像参数集(PPS)、增强信息(SEI)不属于啥帧的概念。表示后面的数据信息为序列参数集(SPS)、图像参数集(PPS)、增强信息(SEI)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/455091.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云计算(cloud computing)十大问答

本文讲的是云计算(cloud computing)十大问答,【IT168 资讯】云计算这个新名词最近甚嚣尘上,最近周围不少朋友都在谈,有必要写一个关于云计算的科普了。  一般的业界比较喜欢用一些新名词来体现 自己的战略眼光和与对…

3150cdn打印机清零 hl_兄弟HL-3150/3140彩色打印机粉盒清零方法,我们提前了解一下...

原标题:兄弟HL-3150/3140彩色打印机粉盒清零方法,我们提前了解一下对于兄弟品牌的打印机,相信各位经销商朋友都遇到过,更换新的粉盒或者加粉后还会提示墨粉不足、更换碳粉盒、更换硒鼓。这个情况需要在机器上操作清零!…

Python 关于bytes类方法对数字转换的误区, Json的重要性

本文起源于一次犯错, 在发觉bytes()里面可以填数字, 转出来的也是bytes类型, 就心急把里面的东西decode出来. 结果为空.搞来搞去以为是命令不熟练事实上错在逻辑.a1 bytes(11, encodingutf-8) print(a1)b1 a1.decode()print(b1)a2 bytes(11) print(a2)b2 a2.decode() print…

前缀中缀后缀表达式的计算求值

原文在这里 表达式 前缀表达式(波兰表达式) 前缀表达式又称波兰式,前缀表达式的运算符位于操作数之前举例说明: (34)5-6 对应的前缀表达式就是 - 3 4 5 6 前缀表达式求值 前缀表达式的计算机求值 从右至左扫描表达式,遇到数字时,将数…

psnr 计算

PSNR是“Peak Signal to Noise Ratio”的缩写,峰值信噪比。psnr一般是用于最大值信号和背景噪音之间的一个工程项目。 PSNR计算公式如下: 8bits表示法中,peak的最大值为255;MSE指Mean Square Error(均方误差&#xff0…

光源时间_缩短背光源的使用寿命的原因

许多场所都会使用到led这种产品,这种产品经常用于背光的照亮中。但是由于使用led的局限性较大,所以led逐渐被背光源这种产品所代替,常常用于背景的照亮让宣传图可以展现出更好的视觉,这也是许多人选择背光源的原因。那么&#xff…

《结对-贪吃蛇-需求分析》

结对编程:贪吃蛇项目 准备阶段:安装Python、pygame 编写阶段:1. 设置游戏窗口 2. 设置游戏必要功能: a)开始、暂停、退出按钮 b)贪吃蛇身体 c)食物 d)移动贪吃蛇所需按键 3. 完善游戏:添加游戏时间、贪吃蛇失败次数…

视频中场的问题2009-04-03 19:38(一)

视频中场的问题2009-04-03 19:38(一) 场的用途: 让25帧/秒的电视画面帧速率,变为50帧/秒。使观众感受到更加流畅的画面。 (二) 场的由来: 在电视制作的时候,电视扫描一副画面的时间根据当地交流电源的频率来确定。比如中国交流电源…

递归应用场景和调用机制

原文链接:传送门 递归 迷宫问题(回溯) 概念 简单呐的说: 递归就是方法自己调用自己,每次调用时传入不同的变量,递归有助于编程者解决复杂的问题,同时让代码变得简洁. 案例-递归调用机制 打印问题 public static void test(int n){if(n>2){test(n-1);}System.out.print…

在vivado里用rtl描述_如何利用Vivado HLS处理许多位准确或任意精度数据类型

我们在设计硬件时,它往往是要求更精确的位宽。例如,一个filter的输入是12位和一个累加器的结果只需要一个最大范围为27位。然而对于硬件设计来说,使用标准的C数据类型会造成硬件成本的浪费。这就会造成我们要使用更多的LUT和寄存器&#xff0…

Spring4.0之四:Meta Annotation(元注解)

Spring框架自2.0开始添加注解的支持,之后的每个版本都增加了更多的注解支持。注解为依赖注入,AOP(如事务)提供了更强大和简便的方式。这也导致你要是用一个相同的注解到许多不同的类中去。这篇文章介绍meta annotation来解决这个问…

八皇后问题分析与Java实现

原文链接:传送门 八皇后问题 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯贝瑟尔于1848年提出:在88格的国际象棋上摆放八个皇后,使其不能互相攻击,即:任意两个…

各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式

编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间。尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析、应用开发、释放license收费等等。最…

shell 脚本比较字符串相等_shell脚本--逻辑判断与字符串比较

涉及到比较和判断的时候,要注意整数比较使用-lt,-gt,ge等比较运算符,详情参考:整数比较文件测试使用 -d, -f, -x等运算发,详情参考:文件测试逻辑判断使用 &&(且)、||(或)、&#xff…

单例模式之恶汉模式(详解)

一.设计模式 概念:设计模式是一套被反复使用、多人知晓的、经过分类编目的、代码设计经验的总结。 目的:是用设计模式可以重用代码,让代码更容易被他人理解,保证代码的可靠性。 二.为什么要使用单例模式? 如果创造出多…

JSP中的:request.getScheme()+://+request.getServerName()+:+request.getServer

String path request.getContextPath(); String basePath request.getScheme()"://"request.getServerName()":"request.getServerPort()path"/"; <base href" <%basePath%>"> 这个语句是用来拼装当前网页的相对…

迷宫回溯问题分析和实现

原文链接:传送门 迷宫问题 说明: 小球得到的路径&#xff0c;和程序员设置的找路策略有关即&#xff1a;找路的上下左右的顺序相关再得到小球路径时&#xff0c;可以先使用(下右上左)&#xff0c;再改成(上右下左)&#xff0c;看看路径是不是有变化测试回溯现象思考: 如何求出…

canvas clear 指定属性的元素_好程序员web前端分享CSS属性组成及作用

好程序员web前端分享CSS属性组成及作用学习目标1、css属性和属性值的定义2、css文本属性3、css列表属性4、css背景属性5、css边框属性6、css浮动属性一、css属性和属性值的定义属性&#xff1a;属性是指定选择符所具有的属性&#xff0c;它是css的核心&#xff0c;css2共有150多…

mybatis大于小于等于

大于&#xff1a;<![CDATA[>]]> 小于&#xff1a;<![CDATA[<]]> 等于&#xff1a;<![CDATA[]]> 大于等于&#xff1a;<![CDATA[>]]> 小于等于&#xff1a;<![CDATA[<]]>转载于:https://www.cnblogs.com/YuanFan123/p/7234530.html

2017年秋招-广联达面试及思考

面试官提问&#xff1a; 自我介绍&#xff08;没有做充分的准备&#xff0c;总感觉说的不好&#xff09;为什么选择做前端&#xff1f;在前端方向&#xff0c;你认为自身有哪些优点&#xff1f;前端需要掌握哪些技术知识点&#xff1f;看过哪些比较好的网站&#xff1f;会不会使…