关于mp3文件数据的问题

baibai0080 2007-03-12 10:26:53
用十六进制编辑器(如ue)打开一个mp3文件。
可以看到分为三部分:ID3V2,FRAME,ID3V1
其中关于FRAME有如下问题:
FRAME分为FRAMEHEADER,(CRC),MAIA_DATE三部分
FRAMEHEADER存放了祯的基本信息,MAIA_DATE存放的是祯的实体数据。
我对于其中的MAIN_DATE 部分有如下问题请教:
在UE中中看到MAIA_DATE的数据如下
比如1b 71 c6 db 44 (随便选的一段)。
这些代码具体表示什么呢?

我的理解是可能是音阶。比如 1b 对应某个发音,71对应某个发音,然后连续就是mp3的音乐了。。。。

但是在网上找不到相关资料。全是解释FRAMEHEADER的,没有对实体数据进行解释的,而且我想知道对应音阶的具体关系。

求大家帮帮忙,能不能提供相关解释?
...全文
479 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
heshiquanwin 2009-01-19
  • 打赏
  • 举报
回复
了解一下!
JackyNone 2008-11-25
  • 打赏
  • 举报
回复
施主,小僧是来接分的
mumu_007 2008-11-23
  • 打赏
  • 举报
回复
续问:在读文件时怎么确定ID3V2的长度,也就是怎样确定第一帧FRAME开始的位置?
yubinjilin 2008-05-26
  • 打赏
  • 举报
回复
请问哪里有mp3 的标准文档啊?
要非常详细的那种
knowledge_Is_Life 2008-05-01
  • 打赏
  • 举报
回复
我也想知道,正在找這方面的資料~~~~~
zhshgao 2007-04-23
  • 打赏
  • 举报
回复
mp3 压缩算法比较麻烦。分析你说的数据,简单说就是:

E9 00 86 12这4个字节是side information.不同的格式这个side information的长度也不同(见标准文档)。 这些信息包含了在解析后面的数据时要从哪里开始解析,到哪里结束(解析一桢经常要用到前面几桢的数据), 还包含编码表的选择。

比如E9 00 86 12中前9位表示需要上一桢数据的长度main data begin。

UE是UltraEdit的缩写,该软件可对文件进行二进制察看,编辑,比较~
Maybess 2007-04-21
  • 打赏
  • 举报
回复
有一个很低级的问题,UE 是什么啊?
joneqq 2007-04-17
  • 打赏
  • 举报
回复
用UE打开一个mp3文件,可以查看文件的数据信息。
比如FF F2 82 64 E9 00 86 12 AD……
对于前4位可以分析得知道为FRAME头,存储的是帧的基本信息,后面跟的是帧的实体数据了(如无CRC效验的话)。
就如上:E9 00 86 12 AD……具体怎么对应mp3的音频数据呢?
是不是与平衡线的偏移量?按照采样原则,正旋波应该取一个点在平衡线上,一个在平衡线下。具体mp3是怎么实现的,然后得到上面的那一串十六进制数(E9 00 86 12 AD)?
------------\
根据你所描述的,脑中有一个模糊的概念了..

共同学习~~
zhshgao 2007-04-04
  • 打赏
  • 举报
回复
mp3是经过编码的。所以你看到的数据和采样数据中间隔着一层关系的。

mp3文件frame部分正确形式:FrameHeader,(CRC), SideInfo, MainData.

根据SideInfo的数据,去读取MainData中的数据。保存在一个专有结构中,经过运算得到一组编码,再由这些编码,去查询Huffman编码表得到最后采样数据。其中专有结构,Huffman编码表都在MPEG标准文档中给出。

有兴趣可以去下个标准文档看看,里面讲的很详细。

采样数据,经过由人耳听觉特点得出的有损压缩算法进行第一次压缩。把得到的数据在经过Huffman编码压缩,得到你在文件中看到的数据。这些数据的意义不能孤立解释了,要看FrameHeader和SideInfo共同计算得到的索引。
baibai0080 2007-03-16
  • 打赏
  • 举报
回复
可能是我表达得不够清楚。


用UE打开一个mp3文件,可以查看文件的数据信息。
比如FF F2 82 64 E9 00 86 12 AD……
对于前4位可以分析得知道为FRAME头,存储的是帧的基本信息,后面跟的是帧的实体数据了(如无CRC效验的话)。
就如上:E9 00 86 12 AD……具体怎么对应mp3的音频数据呢?
是不是与平衡线的偏移量?按照采样原则,正旋波应该取一个点在平衡线上,一个在平衡线下。具体mp3是怎么实现的,然后得到上面的那一串十六进制数(E9 00 86 12 AD)?
baibai0080 2007-03-15
  • 打赏
  • 举报
回复
恩,谢谢fnx198276() ,luoyingbao(哈哈哈^_^)
根据我和另一个同事讨论已经知道了实体数据不是用音阶表示的。
而是根据数据在坐标系上描点,然后解码器根据这些点来连成线,就是我们看到的波形了。

不过这些点具体怎么对应,还希望能有高手指点一下。
比如1b 71 c6 db 44 ,1b 71是表示坐标平衡线上描点,那下一个应该在坐标平衡下描点。不过db 44是怎么回事情呢?是不是0XFF FF-DB 44就是这个平衡线下的点与平衡线的相对位置啊?

以上是个人猜测,并没找到相关资料证实,希望大家都来讨论一下。
谢谢!!!!
fnx198276 2007-03-14
  • 打赏
  • 举报
回复
不懂,帮顶
baibai0080 2007-03-14
  • 打赏
  • 举报
回复
up!!!
没人能帮忙吗?
luoyingbao 2007-03-14
  • 打赏
  • 举报
回复
up

1,450

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计/Flash/Silverlight 开发 图象工具使用
社区管理员
  • 图象工具使用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧