MPEG1的码流层次与各层次的作用
1. 序列层(Sequence layer)
序列层主要用于为随机播放提供全局参数支持,这些参数包括图像宽高、像素高宽比、帧率、码率、VBV大小、帧内量化矩阵、帧间量化矩阵。
2. 图像组层(Group of pictures layer)
图像组层也是主要用于为随机播放、视频编辑、分数帧率提供支持,像直播类应用用户随时可能加入视频会话就要求尽可能短的时间内就可以将收到的码流用于解码渲染显示,这时就会有两个选择,要么选择比较短的序列(包括的图像组层要少,极端情况一下一个序列只 包括一个图像组),该方式会稍稍增大码流;要么图像组的closed_gop参数设为1从而向解码器表明某图像组的紧贴I帧后面的B帧不会参考该图像组前面的图像组中的I或P帧,这样能稍稍节省一些码率,同时也是该层存在的原因之一。
3. 图像层(Picture layer)
图像是主要的帧编码单元,以图像组为单位提供每帧的显示顺序编号,帧类型(I、P、B、D(属于帧内编码的一个类型,不过只编码直流系数,主要用于视频快速预览,只能包括于单独的图像序列,也就是说在包括D的图像序列中不能再包括其它帧类型))等信息。
4. 条带层(Slice layer)
条带是再重同步单元,主要用于误码时不至于全坏掉,主要参数是条带的第一个宏块在图像中的位置,第一个条件的位置值为0,位置值最大为175,对于存储类的可靠媒介,可以全部宏块共用一个条带,但对于直播类应用为了应对误码恢复,还是要跟据情况多分一些宏块为好,像MPEG2就会强制要求一个宏块行一个条带,虽然损失了少许灵活性,但是也可以看出标准制定者对直播或广播类应用从规范标准上给予的重视。
5. 宏块层(Macroblock layer)
宏块是运动估计与运动补偿的基本单位,主要提供宏块地扯号、运动信息等。
6. 子块层(Block layer)
子块是DCT、量化、编码的基本单元,编码采用变长游程编码量化后的残差信息,对于一个宏块来说,由于MPEG1只支持YUV 4:2:0色彩空间,所以有4个亮度子块,两个色度子块。
MPEG1的码流层次与各层次的作用的更多相关文章
- (转载)H.264码流的RTP封包说明
H.264的NALU,RTP封包说明(转自牛人) 2010-06-30 16:28 H.264 RTP payload 格式 H.264 视频 RTP 负载格式 1. 网络抽象层单元类型 (NALU) ...
- H.264分层结构与码流结构
H.264分层结构 H.264编码器输出的Bit流中,每个Bit都隶属于某个句法元素.句法元素被组织成有层次的结构,分别描述各个层次的信息. 在H.264 中,句法元素共被组织成 序列.图像.片.宏 ...
- 【知识点】H264, H265硬件编解码基础及码流分析
前言 音视频开发需要你懂得音视频中一些基本概念,针对编解码而言,我们必须提前懂得编解码器的一些特性,码流的结构,码流中一些重要信息如sps,pps,vps,start code以及基本的工作原理,而大 ...
- H264码流打包分析
转自:http://www.360doc.com/content/13/0124/08/9008018_262076786.shtml SODB 数据比特串-->最原始的编码数据 RBSP ...
- H264码流打包分析(精华)
H264码流打包分析 SODB 数据比特串-->最原始的编码数据 RBSP 原始字节序列载荷-->在SODB的后面填加了结尾比特(RBSP trailing bits 一个bit“1”)若 ...
- 关于对H264码流的PS的封装的相关代码实现
1.写在开始之前: 最近因为新工作要维护别人留下的GB模块代码,先熟悉了流程,然后也试着封装了下ps流,结果也能通过测试正常预览了,当然,其中开发读文档的头疼,预览花屏,卡帧的事情都有遇到,当时慢慢的 ...
- 从H264码流中获取视频宽高 (SPS帧) 升级篇
之前写过 <从H264码流中获取视频宽高 (SPS帧)> . 但发现很多局限性,而且有时解出来是错误的. 所以重新去研究了. 用了 官方提供的代码库来解析. 花了点时间,从代码库里单独把解 ...
- 从H264码流中获取视频宽高 (SPS帧)
获取.h264视频宽高的方法 花了2个通宵终于搞定.(后面附上完整代码) http://write.blog.csdn.net/postedit/7852406 图像的高和宽在H264的SPS帧中.在 ...
- 关于ES、PES、PS/TS 码流
一.基本概念 )ES ES--Elementary Streams (原始流)是直接从编码器出来的数据流,可以是编码过的视频数据流(H.264,MJPEG等),音频数据流(AAC),或其他编码 ...
随机推荐
- WPF关于“在“System.Windows.Markup.StaticResourceHolder”上提供值时引发了异常。”问题解决办法
在WPF中添加样式,在MainWindow.xaml使用自定义按钮FButton时报错,报错信息如下: "System.Windows.Markup.XamlParseException&q ...
- 12款免费与开源的NoSQL数据库
Naresh Kumar是位软件工程师与热情的博主,对于编程与新事物拥有极大的兴趣,非常乐于与其他开发者和程序员分享技术上的研究成果.近日,Naresh撰文谈到了12款知名的免费.开源NoSQL数据库 ...
- ACdream 1083 人民城管爱人民
拓扑排序,然后从终点开始递推. #pragma comment(linker, "/STACK:1024000000,1024000000") #include<cstdio ...
- scala 数组 基本类型
变量尽量用valvar 是不可变 final 常用的 Int̵ Double̵ Long̵ String没有基本类型.scala 任何对象都继承Any Int Double 继承AnyVal Stri ...
- java--方法重写与重载
方法重写 /*方法重写(一般多用在继承上) 定义:它是指子类和父类的关系,子类重写了父类的方法. 两个方法返回值.方法名.参数列表必须完全一致! 出现原因:在Java中,子类可继承父类中的方法,而不需 ...
- java web应用程序目录
WEB-INF是用来存储服务端配置文件信息和在服务端运行的类文件的,它下面的东西不允许客户端直接访问的.
- 0. Java开发中的23种设计模式详解(转)
设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...
- awk 中 FS的用法
在openwrt文件 ar71xx.sh中 查询设备类型时,有这么一句, machine=$(awk 'BEGIN{FS="[ \t]+:[ \t]"} /machine/ {pr ...
- kettle连接Hbase中数据导出(7)
http://wiki.pentaho.com/display/BAD/Extracting+Data+from+HBase+to+Load+an+RDBMS 1)新建转换——Big Data——Hb ...
- MySQL性能优化(来源于简书)
1.为查询优化你的查询 大多数的MySQL服务器都开启了查询缓存.这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的.当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存 ...