如何在嵌入式电子设备中建立多媒体文件系统
发布时间:2008/5/27 0:00:00 访问次数:499
    
    
    作者:mike fic… 文章来源:电子工程专辑
    
    很多消费类产品需要录制和播放数字视频和音频数据,要实现类似的功能就必须采用一种文件系统将这些数据组织起来,以便于进行存储、删除等各种操作。本文介绍建立多媒体文件系统的一些设计原则,可为中国工程师在设计嵌入式设备时提供参考。
    
    设计并实现一个可行的数字多媒体文件系统是一项极具挑战性的工作,因为它通常是用在一个低成本消费类产品中,如数字视频录像机或mp3播放器,为了能够录制和回放多媒体数据,设备平台必须要有操作系统、设备驱动程序、多媒体数字信号编***、用于选择播放数据的用户界面以及其它复杂及开发费用昂贵的组件。
    
    这种文件系统通常应具有下列功能:
    
    1. 暂停和恢复播放当前节目(要求同时录制和回放)
    
    2. 同时录制两个不同的节目(如果有两个调谐器可以使用)
    
    3. 播放节目实现快进和快退(带有来自实际内容的可视或可听提示)
    
    4. 跳过数字多媒体数据流(前进跳过广告或后退即时重放)
    
    5. 将多个录制的节目保存到磁盘并进行组织,以便单独选择回放
    
    现在市面上有很多产品可以录制和回放数字多媒体节目,你可能希望通过某些快速研究就能了解将多媒体文件系统嵌入到产品中的相关信息,然而却会发现市场上没有一个视频或音频产品提供了有关其文件系统格式的更多信息。你还会发现dvd文件格式的保密性非常好,而要合法地了解其格式则需要很大一笔费用以及公司高层签署的协议书。虽然在黑客网站有一些格式说明文件,但并不能确切知道其中哪些部分可以让人相信。通常用于网站和pc浏览器的流文件格式也难以找到相关信息,并且很复杂,一般采用远低于节目录制的数据传输速率。
    
    流量控制也有很大的问题。离线视频以一个大致连续的流进行传输,经过数字化和压缩后,视频数据传输速率要大大低于硬盘传输速率,这意味着以前录制的数据可能以远大于正常速度的速率从硬盘上播放,多媒体文件要稳定播放其速率必须进行人工限制或数据流量控制。
    
    与离线视频连续流不同,硬盘数据分为需隔一定时间读取的数据块(chunk),结果导致较大的流量控制、缓存和延时问题。如果磁盘寻道时间太长或者处理器在关键时刻处理的事务太多,缓存将显得太小,且视频处理可能出现下溢;如果缓存过大,通道改变时间会增加,这样要占用更多的ram,产品成本因而又会相应上升。为了避免在播放到暂停再到快退等转换期间出现上溢和下溢,需要进行仔细的系统分析和设计。
    
    磁盘布局
    
    和任何文件一样,多媒体数据也存储在磁盘上的“数据块”中,不过这些数据块通常是磁盘驱动器原始扇区大小一个很大的倍数。例如通常磁盘扇区大小为512字节,而我们可以找到一个512kb的数据块(1,024个连续扇区),足够用于存储高数据传输率(2至4mbps)的mpeg-2视频流。因为磁盘寻道时间占据了磁盘存取总时间的绝大部分,所以在连续磁盘扇区进行读写比在磁盘上跳转具有更高的带宽效率。
    
    虽然如此,播放录制的多媒体文件仍需要一种快速方式,在输出数据块n的同时找到数据块n+1的位置。在两个数据块之间可能仍然需要磁盘寻道,但我们还需要一种方式让软件来确定下一个数据块的开始位置。存储和读取多媒体节目的一种方法是在某个磁盘数据块开始写入数据,并且使用连续数据块,直到整个节目结束为止。尽管这种方法是有效的,但显然不是最优,因为它会在节目删除时产生碎片。
    
    
    
    一个更加可靠的设计可以让组成文件的数据块分散在磁盘各处,这种设计必须要有一种按希望的顺序找出所有数据块的方法,此时一种称为文件分配表(fat)的方法即能起到这种作用。
    
 &nb
    
    
    作者:mike fic… 文章来源:电子工程专辑
    
    很多消费类产品需要录制和播放数字视频和音频数据,要实现类似的功能就必须采用一种文件系统将这些数据组织起来,以便于进行存储、删除等各种操作。本文介绍建立多媒体文件系统的一些设计原则,可为中国工程师在设计嵌入式设备时提供参考。
    
    设计并实现一个可行的数字多媒体文件系统是一项极具挑战性的工作,因为它通常是用在一个低成本消费类产品中,如数字视频录像机或mp3播放器,为了能够录制和回放多媒体数据,设备平台必须要有操作系统、设备驱动程序、多媒体数字信号编***、用于选择播放数据的用户界面以及其它复杂及开发费用昂贵的组件。
    
    这种文件系统通常应具有下列功能:
    
    1. 暂停和恢复播放当前节目(要求同时录制和回放)
    
    2. 同时录制两个不同的节目(如果有两个调谐器可以使用)
    
    3. 播放节目实现快进和快退(带有来自实际内容的可视或可听提示)
    
    4. 跳过数字多媒体数据流(前进跳过广告或后退即时重放)
    
    5. 将多个录制的节目保存到磁盘并进行组织,以便单独选择回放
    
    现在市面上有很多产品可以录制和回放数字多媒体节目,你可能希望通过某些快速研究就能了解将多媒体文件系统嵌入到产品中的相关信息,然而却会发现市场上没有一个视频或音频产品提供了有关其文件系统格式的更多信息。你还会发现dvd文件格式的保密性非常好,而要合法地了解其格式则需要很大一笔费用以及公司高层签署的协议书。虽然在黑客网站有一些格式说明文件,但并不能确切知道其中哪些部分可以让人相信。通常用于网站和pc浏览器的流文件格式也难以找到相关信息,并且很复杂,一般采用远低于节目录制的数据传输速率。
    
    流量控制也有很大的问题。离线视频以一个大致连续的流进行传输,经过数字化和压缩后,视频数据传输速率要大大低于硬盘传输速率,这意味着以前录制的数据可能以远大于正常速度的速率从硬盘上播放,多媒体文件要稳定播放其速率必须进行人工限制或数据流量控制。
    
    与离线视频连续流不同,硬盘数据分为需隔一定时间读取的数据块(chunk),结果导致较大的流量控制、缓存和延时问题。如果磁盘寻道时间太长或者处理器在关键时刻处理的事务太多,缓存将显得太小,且视频处理可能出现下溢;如果缓存过大,通道改变时间会增加,这样要占用更多的ram,产品成本因而又会相应上升。为了避免在播放到暂停再到快退等转换期间出现上溢和下溢,需要进行仔细的系统分析和设计。
    
    磁盘布局
    
    和任何文件一样,多媒体数据也存储在磁盘上的“数据块”中,不过这些数据块通常是磁盘驱动器原始扇区大小一个很大的倍数。例如通常磁盘扇区大小为512字节,而我们可以找到一个512kb的数据块(1,024个连续扇区),足够用于存储高数据传输率(2至4mbps)的mpeg-2视频流。因为磁盘寻道时间占据了磁盘存取总时间的绝大部分,所以在连续磁盘扇区进行读写比在磁盘上跳转具有更高的带宽效率。
    
    虽然如此,播放录制的多媒体文件仍需要一种快速方式,在输出数据块n的同时找到数据块n+1的位置。在两个数据块之间可能仍然需要磁盘寻道,但我们还需要一种方式让软件来确定下一个数据块的开始位置。存储和读取多媒体节目的一种方法是在某个磁盘数据块开始写入数据,并且使用连续数据块,直到整个节目结束为止。尽管这种方法是有效的,但显然不是最优,因为它会在节目删除时产生碎片。
    
    
    
    一个更加可靠的设计可以让组成文件的数据块分散在磁盘各处,这种设计必须要有一种按希望的顺序找出所有数据块的方法,此时一种称为文件分配表(fat)的方法即能起到这种作用。
    
 &nb