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),或其他编码 ...
随机推荐
- iOS开发The Operation couldn't be completed.(LaunchServicesError error 0.)的解决方法
显示错误:The Operation couldn't be completed.(LaunchServicesError error 0.)解决办法:第1种方法.点击当前的模拟器,点击IOS Sim ...
- HDU 1008 u Calculate e
Problem Description A simple mathematical formula for e is where n is allowed to go to infinity. Thi ...
- Node.js:常用工具util
概要:本篇博客的主要内容是介绍node.js的常用工具util. 1.util.inherits util.inherits(constructor,superConstructor)是一个实现对象间 ...
- boostrap插件
第一章:模态弹出框 一.导入JavaScript插件 Bootstrap的JavaScript插件可以单独导入到页面中,也可以一次性导入到页面中.因为在Bootstrap中的JavaScript插件都 ...
- git上传代码到github
git上传代码到github [root@bigdata-hadoop- ~]# git init [root@bigdata-hadoop- ~]# git add zeppelin [root@b ...
- 使用Apache + mod_jk + tomcat来实现tomcat集群的负载均衡出现的无法加载mod_jk.conf文件的问题
用Apache + mod_jk + tomcat来实现tomcat集群的负载均衡的 如果出现了问题,可以用cmd cd到Apache安装文件的bin下,运行httpd文件,错误信息就会打印出来. ...
- photoshop的页面制作练习1
- nginx: 响应体太大
如果做proxy,可以将proxy配置修改buffer长度,或者直接关闭buffer.http { proxy_buffer_size 128k; proxy_buffers 4 256k; prox ...
- mysql教程
mysql教程 2016年5月14日 0:09 1.查看mysql帮助信息 C:\Users\zhangcunli>mysql --help mysql Ver 14.14 Distrib 5 ...
- 711B - Chris and Magic Square 模拟
题目大意:在num[i][j]==0处填一个数使每行,每列,对角线的和相同,若果有多种答案输出一种. 题目思路:模拟 #include<iostream> #include<algo ...