`
weiyinchao88
  • 浏览: 1188046 次
文章分类
社区版块
存档分类
最新评论

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)。

分享到:
评论

相关推荐

    jm19.0 H264源码

    jm19.0 H264源码 h264编解码器

    h264标准程序, JM经典

    h264标准程序,JM最新版本,里面是标准的H264规范,超级经典,是学习h.264语法的经典教程

    h264_JM源码

    h264_JM源码

    如何结合H.264标准看JM代码

    针对H.264的开源代码JM标准,详细解释了代码中的疑问,值得一看。

    H264论文资料及JM模型测试代码

    举个例子,原始文件的大小如果为88GB,采用MPEG-2压缩标准压缩后变成3.5GB,压缩比为25∶1,而采用H.264压缩标准压缩后变为879MB,从88GB到879MB,H.264的压缩比达到惊人的102∶1。低码率(Low Bit Rate)对H.264的...

    JM-H264参考手册

    JM:JM通常被认为是H.264标准制定团队所认可的官方参考软件,基本实现了H.264标准的全部特征。JM在运行时的运算过程较为复杂,而且没有采用汇编优化等加速方法,因此运行速度较慢,很难达到实时编解码。通常主要用于...

    JM H264解码程序

    提供H264解码源代码 使用VS2005打开 test文件为H264源文件

    H264 JM18.43

    H264 JM18.4 视频编解码学习必备

    JM10.1_h264

    JM10.1_h264 官方测试源码 不嫌麻烦的可以去这里下载,历史版本都有 http://ip.hhi.de/index.htm

    JM86,H.264编码经典版本

    学习H.264的必备软件,86版是较经典版本,供初学者学习

    H264 JM8.6 注释版代码

    1、下载并解压 JM 源代码 2、在源代码根目录下的 bin 文件夹中新建 backup 文件夹,将 bin 文件夹中所有文件移入该文件夹做备份 3、在源代码根目录下新建 encodtest 文件夹,作为编码使用。将编码过程所需要的文件,...

    H264 JM

    H264 JM测试模型文档

    H.264 JM14.2

    H.264源代码JM14.2和文档说明.

    H.264 JM测试模型

    这是H.264标准的官方测试模型的最新版本JM18.0,包括了代码和软件说明文档,分享给大家!

    h.264官方源码JM17.0

    h.264官方源码JM17.0,学习264用

    JM阅读笔记(学习H264)

    JM阅读笔记,网上收集JM阅读笔记,对学习H264有一定得帮助,谢谢!!

    H.264JM12.4

    H.264, JM12.4 的代码,包括配置信息

    h264 JM 所有代码和工具

    h264 JM 所有代码和工具,是264编解码最好的工具,帮助你理解编解码的发展和改进

    H264JM和H265HM参考软件说明.zip

    资源包括JVT-O079(JM算法细节描述)、JCTVC-G1102_d1(HM算法细节描述)以及思维导图版的JM运动估计和模式决策算法框架梳理。

    h264 JM9.0

    H264 JM9.0 source code

Global site tag (gtag.js) - Google Analytics