mpeg文件格式分析
MPEG-1流比特层次结构分析总结 MPEG-1流比特层次结构分析总结 当中的Mpeg-1处理的是标准图像交换格式(standard interchange format,SIF)或者称为源输入格式(Source Input Format,SIF)的电视,将模拟的图像信息,通过编码成为数字图像信息,原始输入能够是NTSC制式352pixels * 240lines * 30frames/second, PAL制352pixels * 288lines*25frames/second。压缩后的数字图像信息的速率为1.5Mb/s.这个标注是1992年正是的公布的,是针对当时具有这样的传输数据速率的CD-ROM和网络而开发的,用于在CD-ROM上存储数字影视和在网络上传输数字影视。 ISO/IEC 11172-2 2.Mpeg-1数据流分析 视频序列层-画面组层-画面层-片层-宏块层-块层 2.1视频序列层(VideoStream) 最后以Sequence_end_code结束。紧挨着每个画面组之前能够有一个序列标题。也就是说每个画面组,都能够有一个自己的序列标题。 当中定义了量化矩阵(load_intra_quantizer_matrix和 load_non_intra_quantizer_matrix以及可选的intra_quantizer_matrix和non_intra_quantizer_ matrix)以及其他的一些重要的数据元素,当中量化矩阵是能够在视频流中反复的量化矩阵中变化的,而且在每次变化后。量化矩阵又一次定义。 其他的元素必须与第一个序列标题中的值同样。 整个视频序列的结构能够用以下的代码表示: 当load_non_intra_quant_matrix的值为真的时候须要定义。 */ 由上面的分析。能够看出来的是: { { { 正是因为视频序列中存在非常多開始码,或者称之为定位码、同步码。用来告诉解码器眼下数据的区域信息,所以解码器才干够正确的处理各个数据区的数据。以下就是视频序列中的開始码的罗列: 当然每一个画面组层都是開始与标志码:GOP_START_CODE { { { { { { Mpeg流终于显示出来是一系列的画面,而画面组是mpeg流中能够独立编码的最小的单位,每一个画面组由一个标题和一系列画面组成。 GOP标题包括了时间和编辑的信息。 Mpeg画面组中必须至少有一个I帧画面。能够有数目可变的B帧和P帧画面,也能够没有P和B帧。画面组的第一幅编码画面是I画面,该画面之后尾随着随意数目的I或P画面,每对I、P画面之间能够插入随意数目的B画面。 画面组是画面的集合。每幅画面依照显示的顺序相邻。 画面组中的画面有两种排列顺序: 2.按显示顺序必须以I或B画面打头。且以I或P画面结束。最小的画面组由一个I画面组成。 从编码角度。能够精确的陈述的是,画面组以一个画面组标题開始,以最先出现的下一个画面组标题或者下一个序列标题或者序列结束码结束。 2.3画面层(Pictures) 一幅画面相同始于画面的标题。标题以画面開始码(PICTURE_START_CODE 0x00000100)打头。 解析画面单元的语法结构: { { { { if(nextbits()==extension_start_code) { { { { { 整个画面单元结构是这种: 能够看出整个pictures层的bit流结构中由标题和pictures数据组成。 2.4片层(Slice) 片层的解析语法: { { { typedef struct slice { 每一个片由一个開始码開始,開始后DC系数和矢量解码的预測值都被复位,片開始部位的位置的水平位置由片中第一个宏块的宏块地址决定。 这些措施使得在一幅画面内不论什么一片都能够单独编码而不须要前一片的信息。 当解码是出现错误。即能够从后继的片又一次開始。 表2 256×192画面内的片划分(每行宏块作为一个片,每一个片的高度都是16pixels) 片中第一个宏块的水平位置,能够由该宏块的地址偏移计算出来,所以不须要依赖画面内的不论什么其它的宏块的信息。 宏块中块的顺序例如以下: 01 4 5 Y分量Cb分量Cr分量 宏块的数据分析语法描写叙述: macroblock() { { { } 最大值为33,当前两者差大于33时用macroblock_escape补充。 Macroblock_address表示的是宏块在画面中的绝对位置,最左上角的宏块的macroblock_address为0,previous_macroblock_address指示片中最后一个非跳空宏块的位置。 */ macroblock_type { { 标题之后是该宏块的6个块的数据。 在Xmplay代码中给出的macrblock的定义: 8*8单位象素的源画面数据经过DCT变换后的成为了对应的DCT系数块。 块的详细结构为(xmplay源代码中的结构定义): { 解析块的语法结构是: { { { { { { { 附录 xmplay-1.1这个播放器的源代码,对帮助理解mpeg1结构非常有帮助。同一时候这也是一个编码和解码器。以及数据分析器,在internet上面能够搜所到 |
标签: Mpeg,数据格式 |
不知道这个东西怎么搞
该怎样的提取以下的结构(不知道这样描写叙述是不是正确) 请高手帮忙
要是北京的话 有时间请他吃水煮鱼 呵呵
Sector description
Offset Size Description
0x26 4 0x00, 0x00, 0x01, 0xbf – private stream header
0x2a 2 0x08, 0xe8 – data length
0x2c 2280 User data block
User data block
Offset Size Description
0x00 1 Block ID, from 0x11 to 0xf0
0x01 1 Block size in bytes
0x02 Block size Block data
1. Record time block (0x11)
Offset Size Description
0x00 1 0x11 – Block ID
0x01 1 0x06 – block length
0x02 1 year, offset from year 2000
0x03 1 month
0x04 1 date
0x05 1 hour
0x06 1 minute
0x07 1 second
2. User ID block (0x12)
Offset Size Description
0x00 1 0x12 – Block ID
0x01 1 0x40 – block length
0x02 64 User ID
3. Vehicle ID block (0x13)
Offset Size Description
0x00 1 0x13 – Block ID
0x01 1 0x40 – block length
0x02 64 Vehicle ID
4. Event information block(0x14)
Offset Size Description
0x00 1 0x14 – Block ID
0x01 1 0x44 – block length
0x02 4 Event status
0x06 40 Event information
5. Data block index block
Offset Size Description
0x00 1 0x15 – Block ID
0x01 1 N*5 – block length
0x02 1 Block1 type
0x03 4 Block1 offset
0x07 1 Block2 type
0x08 4 Block2 offset
… … …
2+N*5 1 Block N type
3+N*5 4 Block N offset
6. Route ID block (0x16)
Offset Size Description
0x00 1 0x16 – Block ID
0x01 1 0x40 – block length
0x02 64 Vehicle ID
7. Speed information block (0x17)
Offset Size Description
0x00 1 0x17 – Block ID
0x01 1 0x03 – block length
0x02 1 Speed low byte
0x03 1 Speed hi byte
0x04 1 0: KM/H 1: MPH
8. Display Information block (0x18)
Offset Size Description
0x00 1 0x18 – Block ID
0x01 1 0x45 – block length
0x02 1 Information ID, 0~31
0x03 2 X position
0x05 2 Y position
0x07 64 Information
9. GPS data information (0x19)
Offset Size Description
0x00 1 0x19 – Block ID
0x01 1 0x80 – block length
0x02 1 Information data length
0x03 128 Information
10. Route ID block (0x1a)
Offset Size Description
0x00 1 0x1a – Block ID
0x01 1 0x40 – block length
0x02 64 Vehicle ID
跟我一起学习 权当是 学习记录了
sequence header
this contains information related to one or more "group-of-pictures "
byte# data details
===================================================================
1-4 sequence header in hex 000001b3
code
12 bits horizontal size in pixels
12 bits vertical size in pixels
4 bits pel aspect ratio see below
18 bits picture rate see below
1 bit marker bit always 1
10 bits vbv buffer size minimum buffer needed to decode this
sequence of pictures; in 16kb units
1 bit constrained
parameter flag
1 bit load intra 0: false; 1: true (matrix follows)
quantizer matrix
64 bytes intra quantizer optional
matrix
1 bit load nonintra 0: false; 1: true (matrix follows)
quantizer matrix
64 bytes nonintra quantizer optional
matrix
- squence extension optional
data
- user data optional application-dependent data
===================================================================
aspect raios are defined by a code which represents the height and
width of the video image.
picture rates are also defined by a code that represents the number
of pictures that may be displayed each second.
each group of pictures has a header that contains one "i picture "
and zero or more b and p pictures. the header is concerned with
the time synchronisation for the first picture in this group, and
the closeness of the previous group to this one.
/*****************************************************************/
for picture rate:
1 = 23.976 frames/sec
2 = 24
3 = 25
4 = 29.97
5 = 30
6 = 50
7 = 59.94
8 = 60
here gives an example. below is hex dump of first 256 bytes of
the first video frame of test.mpg from xingmpeg.
00 00 01 b3 16 00 f0 c4 02 a3 20 a5 10 12 12 14
14 14 16 16 16 16 18 18 19 18 18 1a 1b 1b 1b 1b
1a 1c 1d 1e 1e 1e 1d 1c 1e 1f 20 21 21 20 1f 1e
21 23 23 24 23 23 21 25 26 27 27 26 25 29 2a 2a
2a 29 2d 2d 2d 2d 30 31 30 34 34 38 16 00 f0 c4
00 00 01 b8 00 08 00 00 00 00 01 00 00 0a 72 00
00 00 01 01 13 f9 50 02 bc b2 b8 be 68 8b a4 9f
c5 b5 ca 00 56 76 39 65 f2 30 8b a6 9d 50 69 e7
da fe 13 cf b7 ff 8f f4 ce 7b fa 0e f0 66 ae 1c
5d e7 00 c8 0a 92 b9 29 3c 21 23 f1 d6 40 13 06
f0 10 10 c6 27 80 a0 34 e1 c8 e4 0f 74 91 da c4
03 a0 dc 03 12 60 18 49 27 1d d4 bc 67 0e 54 8c
96 fc 5d c0 06 e0 1a 72 11 7c 9a 8d c9 45 89 6d
cd c4 0b 63 dc 90 18 24 00 ec 84 90 18 10 c9 3b
1e a7 60 3c 9d 74 80 76 05 0b 02 81 a9 29 39 68
53 8f 59 f1 bf 93 fb a0 04 01 bc b0 ce 18 e1 25
sequence header = (hex) 00 00 01 b3
horizontal size = 0x160 = 352
vertical size = 0x0f0 = 240
pel aspect ratio = [i don 't know]
picture rate = 4 = 29.97 frames/sec
marker bit = 1
mpeg文件格式分析相关推荐
- 位图(bmp)文件格式分析
from:https://blog.csdn.net/qingchuwudi/article/details/25785307 位图(bmp)文件格式分析 作者:深蓝(由博主分享) 一.什么是位图 计 ...
- 【常见视频文件格式分析】
常见视频文件格式分析 先说大家目前常常在电脑上看的电影,其主要来源有两大类: A.从网络下载的视频文件.由于目前市面上所看到的视频,即电影,电视剧,MV等,有很多种不同格式,8 v9 Q2 J( v( ...
- PE文件和COFF文件格式分析——导出表的应用——一种摘掉Inline钩子(Unhook)的方法
在日常应用中,某些程序往往会被第三方程序下钩子(hook).如果被下钩子的进程是我们的进程,并且第三方钩子严重影响了我们的逻辑和流程,我们就需要把这些钩子摘掉(Unhook).本件讲述一种在32位系统 ...
- PE文件和COFF文件格式分析——导出表的应用——通过导出表隐性加载DLL
通过导出表隐性加载DLL?导出表?加载DLL?还隐性?是的.如果觉得不可思议,可以先看<PE文件和COFF文件格式分析--导出表>中关于"导出地址表"的详细介绍.(转载 ...
- PE文件和COFF文件格式分析——导出表的应用——一种插件模型
可能在很多人想想中,只有DLL才有导出表,而Exe不应该有导出表.而在<PE文件和COFF文件格式分析--导出表>中,我却避开了这个话题.我就是想在本文中讨论下载Exe中存在导出表的场景. ...
- PE文件和COFF文件格式分析——导出表
在之前的<PE可选文件头>相关博文中我们介绍了可选文件头中很多重要的属性,而其中一个非常重要的属性是(转载请指明来源于breaksoftware的CSDN博客) IMAGE_DATA_DI ...
- PE文件和COFF文件格式分析——RVA和RA相互计算
之前几节一直是理论性质的东西非常多.本文将会讲到利用之前的知识得出一个一个非常有用的一个应用.(转载请指明来源于breaksoftware的csdn博客) 首先我们说下磁盘上A.exe文件和正在内存中 ...
- PE文件和COFF文件格式分析——节信息
在<PE文件和COFF文件格式分析--签名.COFF文件头和可选文件头3>中,我们看到一些区块的信息都有偏移指向.而我们本文讨论的节信息是没有任何偏移指向的,所以它是紧跟在可选文件头后面的 ...
- PE文件和COFF文件格式分析--概述
刚工作的时候,我听说某某大牛在做病毒分析时,只是用notepad打开病毒文件,就能大致猜到病毒的工作原理.当时我是佩服的很啊,同时我也在心中埋下了一个种子:我也得有这天.随着后来的工作进行,一些任务的 ...
- Linux内核文件vmlinux 和压缩后的bzImage文件格式分析
Linux内核文件vmlinux 和压缩后的bzImage文件格式分析 ================= 1. 需要使用的命令 ================ readelf -- 显示el ...
最新文章
- ASP.NET中级学习2
- (私人收藏)[开发必备]HTML5最全快速查找离线手册(可查询可学习,带实例)...
- POSIX 线程编程(二)线程建立与终止
- Tomcat内部结构
- 书评:Just the Computer Essentials(Vista)
- python安装jupyterlab_JupyterLab的安装及使用
- [电影]十七岁的单车
- ORACLE纯SQL实现多行合并一行【转】
- 分布式场景下redis已经逐渐取代了memcached,那么各有什么使用场景和优缺点呢?
- 与大数据同行—学习和教育的未来 - 电子书下载(高清版PDF格式+EPUB格式)
- 2022年网络规划设计师最新考纲变化
- SIP信令跟踪工具HOMER
- RAC知识更新之-RAC节点删除添加服务+维护RAC ocr表(摘自文平书)
- 社会经济学中的因果分析思想初探
- 利用空间分析进行学校选址
- C语言编译过程分析及实验验证
- 2021年3月12日 星期五 植树节 霾
- ubuntu20.04 开启休眠(hibernate)功能的成功解决以及各种尝试的过程全记录
- [luogu#2019/03/10模拟赛][LnOI2019]长脖子鹿省选模拟赛赛后总结
- linux软链接命令,linux ln 命令使用参数详解(ln -s 软链接)