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),或其他编码 ...
随机推荐
- 简单的interface显式和隐式的实现
一,新建接口 using System; using System.Collections.Generic; using System.Linq; using System.Web; /// < ...
- 设置radio的选中状态
$("#s7").click(function () { var a = document.getElementById("s7"); if (a.checke ...
- 谈一谈第九届移动互联网开发者大会( MDCon 2016 )
4G时代的开启以及移动终端设备的凸显必将为移动互联网的发展注入巨大的能量,2016年移动互联网产业必将带来前所未有的飞跃.第九届移动互联网开发者大会以"DT时代的移动开发技术创新" ...
- win10桌面和手机的扩展API,判断是否有实体后退键API
喜大普奔的win10 uap开发预览版终于出了,这次更新跟8.1的变化不是很大,但是将原本win8.1和wp8.1uap的分项目的形式,改为了整合成一个项目,经过一次编译打包成一个appx包,实现了无 ...
- PAT 团体程序设计天梯赛-练习集L1-011. A-B
本题要求你计算A-B.不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A-B. 输入格式: 输入在2行中先后给出字符串A和B.两字符串的长度 ...
- PHP常用代码大全(新手入门必备)
PHP常用代码大全(新手入门必备),都是一些开发中常用的基础.需要的朋友可以参考下. 1.连接MYSQL数据库代码 <?php $connec=mysql_connect("loc ...
- PostgreSQL ----- No relations found.
本篇文章可能有错,尚未细细研究 运行\d出错: No relations found. \d只显示可见的表,也就是该数据库的schema在search_path中. SHOW search_path; ...
- hdu 1022 Train Problem I(栈)
#include<iostream> #include<vector> #include<cstring> #include<string> #incl ...
- OMCS ——卓尔不群的网络语音视频框架
作为.NET平台上的开发人员,要开发出一个像样视频聊天系统或视频会议系统,非常艰难,这不仅仅是因为.NET对多媒体的支持比较有限,还因为网络语音视频这块涉及到了很多专业方面的技术,而.NET在这些方面 ...
- C# using
我们知道 using 语句只不过是提供能确保正确使用 IDisposable 对象的方便语法. 1: using (IDisposable reader1 = new StreamReader(inp ...