第二类似对的优点在于文件小,利于控制。缺点在于往往只能表现简单的画面或者音乐,丰富度不够。
2.2.3转化思路
这里我们提出两种音频文件与图像文件转化的思路:
由第一类似对看到,二者的重大区别仅在于文件头,数据块部分二者都是将文件划分为相应的二维小块再进行存取。因此考虑将文件头进行硬性改写,改写成为另外一种格式的文件头标准格式,数据部分保持不变,就有可能实现音频与图像格式文件之间的转化。
由第二类似对看到,二者的共通之处在于将整个文件划分为一个个基本单元的基本事件,并仅对事件特征进行存储。因此考虑将二者所存储的事件中的信息进行一一对应,将一种文件所记录的事件特征转化为另一种文件所记录的事件特征,可以实现音频与图像格式的文件的转化。
这里需要注意的是,思路二中的文件头还是要改变的。文件头是标志一个文件格式的最根本依据,所以要实现文件格式转化,文件头必须要改动。
2.2.4其他
此外,我们研究的六种格式中还有两种,图像格式JPEG和音频格式MP3。这两种格式可以算是普通计算机用户最最熟悉的两种格式了。它们不但像第一类似对那样有良好的表现效果,而且像第二类似对那样保持较为合适的文件大小。这得益于它们成熟的压缩技术。可是正是由于这种成熟的压缩技术,使它们之间不能像前两对那样实现简单的相互转化。
JPEG和MP3所采用的都是有损压缩技术,有损压缩后被丢弃的信息是无法恢复的。而对于音频和图像来说,由于它们本身性质的不同,在压缩时考虑丢弃的方面也是不同的。
对于图像文件来说,如果将图像中的信息以波形来表现时,处理时我们着重要考虑的是相位关系,因为人眼对于相位关系比频率关系要敏感。而对于音频文件,处理波形时往往比较重视频率关系,相位只要不要有大的差错就没有关系,而频率有波动时则会导致声音失真严重。因为人耳对于频率关系要比相位关系敏感。有损压缩的基本思想就在于丢弃人感官中不敏感的信息细节,这样无可避免地造成了信息缺失。
所以,我们不能保证在JPEG压缩算法中丢弃的那些细节中是否含有对于MP3十分重要的信息,反之也一样。因此我们在现阶段认为二者转化可能存在一些问题,不把它们作为第三类似对。
2.4问题的解决
2.4.1头文件的更改
由于播放器(音频播放器和图像查看软件)都是通过文件头识别文件格式的。为了实现格式转化,考虑更改文件的头文件(即文件对象数据以前的部分),让播放器识别。不同格式的文件在计算机中都是以二进制数的形式存储的,所以即使文件头后的数据原本表示的信息不一样,最终只是表现的不同,并不影响文件格式。二进制码的含义是由编程人员定的,与文件格式无关。真正决定文件格式的是文件头数据。
转化前必须首先明确一个问题,即后缀名和文件格式之间的关系。后缀名是文件格式的一个标识符,但只对后缀名进行修改并没有改变文件的实质格式。后缀名的功能仅限于方便计算机识别文件,寻找对应的软件打开或者进行处理。各种后缀名与软件之间存在对应关系。找到对应的软件后,软件会读入文件存储的二进制码,再根据二进制码中头文件所提供的信息对该文件进行相应的操作。
之所以要对这个问题进行阐述是因为现在的播放软件大都支持多种格式。所以当你将BMP文件的后缀名改为JPG时,图片浏览软件仍然可以打开并且正常显示。由此有一种错误观点认为文件格式已经被改变了。其实对于图片浏览软件而言,它还是按照打开BMP文件的方法打开该文件的,调用软件内部针对BMP文件的包的依据是文件头中标示出这是一个BMP文件。证明以上结论的方法非常简单:暴风影音播放器同时支持多种视频和音频格式。把一个视频格式AVI或者RMVB文件的后缀名改成音频格式MP3或者WMA后用暴风影音打开,画面照常显示,证明软件是把它做为一个视频,而不是音频打开的。用编辑器直接查看文件代码也可以看到,后缀名的改变完全不影响文件的内部编码。
我们根据前面所讲的第一种转化思路,对文件头进行硬性改写。
事实上根据前面的说明,对文件头硬性改写实现转化的方法适用于任何格式之间。通过一个可以查看并且更改文件内部二进制码的编辑软件UltraEdit,我们采用手动的方法,将一个MP3格式的音频文件的头文件,按照BMP图像格式的头文件的形式更改。
步骤如下:
1、我们将一个MP3文件的前三行做如下置换,
原文件头(符合MP3文件标准):
494433F76544954320000;
0005000000D1A7BBE0000;
270000574D2F4D65646961436C617373;
修改后的文件头(符合BMP文件标准):
424D36003C0000002800;
18000000;
000000003C0000000000;
2、将修改后的文件另存为后缀名是BMP的文件,之后利用ACDSee打开得到:

图1经过头文件修改之后的mp3图像
我们同时对文件的后缀名和文件头进行了改写。 3/4 首页 上一页 1 2 3 4 下一页 尾页 |