11.6 多媒体存储器的分配方法

本文探讨了多媒体服务器中不同存储分配方法,如交叉连续存放、帧索引存放和块索引存放,以及近似视频点播的文件存放策略,以提高数据传输效率和实时性。同时,文章也讨论了单磁盘和多磁盘情况下存储多部电影的优化技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

11.6 多媒体存储器的分配方法

在媒体服务器中,存储空间的分配对于确保多媒体数据能够快速传送至输出设备、保证软实时(SRT)任务的实时性至关重要。这一目标的实现要求采用与传统文件服务器不同的文件分配方法,特别是考虑到多媒体文件存放的特殊需求。

11.6.1 交叉连续存放方式

多媒体文件存放中的问题

多媒体文件存放的主要挑战是如何快速地将硬盘上的数据传送到输出设备,避免播放时画面的颤动。传统的离散分配方式在磁盘传输速率足够高的情况下,仍可能因为多次寻道而导致数据传输不够及时。因此,多媒体文件通常采用连续文件存储方式。

然而,即便是每种媒体文件都以连续文件的形式存储,如果这些文件之间的存储不连续,传输一帧信息时仍需要进行多次寻道,从视频文件跳到音频文件,然后再到文本文件,这样依然无法满足多媒体播放的实时性要求。

交叉连续存放方式的实现

交叉连续存放方式既要求多媒体中的每个文件是连续存储的,也要求不同文件之间按帧交叉存放。具体来说,是首先存放第一帧的视频数据,接着存放第一帧的音频数据,然后是第一帧的文字数据,依此类推,如图11-7所示。这样在从磁盘读取数据时,可以将每一帧中的所有数据一次性读出到内存的缓冲区中,再将用户所需的部分传送给用户。

优缺点
  • 优点:每一帧信息只需读取一次,不会发生多次寻道,从而能保证硬盘上的数据能够快速传送到输出设备,避免了图像颤动的问题。
  • 缺点:每次读出的数据中包含了用户不需要的部分,如额外的音频轨道和文字字幕,这不仅增加了磁盘I/O的负担,也占用了更多的内存缓冲区。此外,交叉连续存放方式不支持随机访问、快进和快退等功能,因此只适用于不要求这些功能的简单播放模式。

综上所述,交叉连续存放方式提供了一种有效的方法来优化多媒体数据的存储和播放,尤其适合于线性播放场景。然而,对于需要随机访问或快速导航的应用场景,可能需要探索其他存储和分配方法来满足这些更高级的需求。

 

 

11.6.2 帧索引存放方式

为了克服交叉连续存放方式的缺点,特别是在处理数字电影等多媒体文件时需要将视频、音频及文本文件连续存储的局限性,引入了索引存放方式。这种方式主要分为帧索引存放方式和块索引存放方式,其中帧索引存放方式又称为小盘块法。

基本原理

帧索引存放方式采用的盘块大小远小于帧的大小,通常为1KB或2KB,远低于MPEG-II视频每帧平均16KB的大小。这种方法要求电影中的每一帧信息被存储在一系列连续的盘块中,其中不仅包含视频数据,还包括多个音频和文本文件的数据。

系统为每部电影建立一个帧索引表,每个表项至少包含地址字段和帧长字段。地址字段指向相应帧所在盘块的始址,而帧长字段则记录该帧占用的盘块数量。在播放时,系统首先根据帧索引表找到每一帧的盘块始址,然后一次性读出该帧的所有内容。

性能分析

  1. 支持随机访问:帧索引表的使用使得该方法能够很好地支持随机访问。需要播放某一特定帧时,可以直接通过帧索引表定位到该帧的存储位置,并将其读出。

  2. 快进、快退问题:帧索引存放方式可以支持快进功能,尽管效果可能有限。通过制作专用的快进文件,可以在不压缩文件的情况下实现10倍或更高倍率的快进。

  3. 磁盘碎片较小:由于采用连续存储每一帧,产生的磁盘碎片相对较小,尤其是在小盘块的情况下。

  4. 帧索引表的大小:帧索引存放方式需要为每一帧设置一个表项,对于长时间的电影,这意味着需要非常大的索引表,占用相当的存储空间和内存。

  5. 缓冲管理简单:采用双缓冲方式可以提高磁盘输出速度,一个缓冲用于存放当前帧,另一个缓冲用于预读下一帧,从而实现无缝播放。

  6. 存储管理复杂:每一帧都需要分配连串的连续盘块,这要求磁盘空间的管理采用比传统操作系统中的位图或链表法更为复杂的方法。

总的来说,帧索引存放方式提供了一种有效的多媒体数据管理策略,特别是对于需要随机访问和高效播放的应用场景。然而,它也带来了索引表大小和存储管理复杂度的增加,需要在实际应用中根据具体需求进行权衡。

 

 

11.6.3 块索引存放方式

块索引存放方式,也称为大盘块法,是针对多媒体数据存储提出的一种方法,旨在优化存储效率和支持高效的数据访问。此方法选用的盘块大小远大于一帧数据的大小,通常为256KB,使得一个盘块能够存储多帧数据。这种方式采用恒定数据长度组织,通过块索引而非帧索引进行数据访问,提供了一种不同于小盘块法(帧索引存放方式)的数据管理策略。

基本原理

在块索引存放方式中,每个数据块的大小相同,组织方式称为恒定数据长度。索引表基于盘块号,每个索引表项包含帧号字段和该块中存放的帧数。此外,还包含若干地址字段,用于存放本盘块中每一帧的盘块始址。通过查询盘块号,可以快速定位到包含指定帧的大盘块,进而从相应的地址项中找到特定帧的盘块始址。

性能分析

  1. 支持随机访问:虽然块索引存放方式可以实现随机访问,但其实现相对于帧索引存放方式更为复杂。需要先定位到包含目标帧的大盘块,再从该块中找到帧的具体位置。

  2. 处理内部碎片:当盘块中剩余空间不足以存放另一帧时,可选择跨越两个盘块存储或让剩余部分空闲,后者虽简单但会造成内部碎片,尤其在大盘块法中,这种碎片可能比小盘块法产生的更多。

  3. 块索引表较小:由于每个大盘块可以存放多帧数据,块索引表相对于帧索引表大幅减小,减少了所需的存储空间和播放时占用的内存空间。

  4. 缓冲管理复杂:虽然可以使用双缓冲策略,但大盘块法中每个缓冲需要更多内存。由于每个大盘块包含多帧,而播放时通常只需一帧,可能需要循环缓冲策略来高效管理缓冲区。

结论

块索引存放方式通过使用较大的盘块和优化的索引表项设计,有效减小了索引表的大小,并提高了随机访问的效率。然而,这种方法也带来了缓冲管理的复杂性和内部碎片的问题。在选择适合的存储方式时,需综合考虑多媒体应用的具体需求,包括访问模式、存储效率和播放性能等因素。相比帧索引存放方式,块索引法在处理大量数据时可能更为高效,特别是在需要减少索引表空间占用和支持快速数据检索的场景中。

 

 

11.6.4 近似视频点播的文件存放

近似视频点播(Near Video On Demand, NVOD)是视频点播(VOD)的一个变体,旨在通过减少所需的系统资源来优化服务的提供。NVOD通过定时启动新的播放流来减少对系统资源的需求,这与为每个用户单独启动一个独立的视频流相比,可以大幅度减少所需的服务器资源和带宽。

近似视频点播的基本原理

NVOD服务通过每隔一定时间开始播放电影或电视节目的新流来实现。例如,如果一个新的电影流在晚上8点开始,接下来的流可能在8:05、8:10等开始,这样,用户若在8:08想看该电影,则只需等待2分钟即可从下一个流(8:10)开始观看。

这种方法的主要好处是,对于一部两小时的电影,只需24个数据流(每5分钟一个)即可满足所有用户的需求,而用户的数量基本上不受限制。这与每个用户都需要一个独立数据流的传统VOD相比,显著降低了对系统资源的需求。

近似视频点播的文件存放

在NVOD中,即使电影文件以连续文件的形式存储,由于每两个相邻的数据流间隔固定帧数(例如,9000帧),在从一个数据流切换到另一个数据流时依然需要进行寻道操作。为了解决这一问题,可以采用一种特殊的文件存放方法,即将同一时间点要播放的所有数据流的帧依次连续存放,作为一个记录写入磁盘。播放时,这些帧被一起读出,从而避免了寻道操作。

例如,如果在某一时刻,第一个数据流需要播放第0帧,第二个数据流需要播放第9000帧,以此类推,直到第24个数据流需要播放第207000帧,这24帧数据如果已经连续存放,那么在播放时就可以一次性读入内存,消除了寻道问题。

优势与考虑因素

  • 间隔时间选择:数据流之间的间隔时间是一个关键因素,间隔时间越短,用户等待时间越少,但需要的数据流数量越多。选择合适的间隔时间需要在用户等待时间和系统资源之间做出平衡。

  • 用户数量:近似视频点播服务的开通类似于公交车服务的开通,只有当观看某部电影的用户数量达到一定数量时,才经济上划算。用户数量越多,可能支持的间隔时间越短。

近似视频点播通过有效管理数据流和存储策略,使得VOD服务在资源有限的情况下能够满足更多用户的需求,提供了一种高效的多媒体内容分发模式。

 

 

11.6.5 多部电影的存储方法

在视频服务器中存储多部电影时,需要考虑如何在磁盘上有效地组织这些电影,以优化存取效率并减少磁头移动,进而提升系统的整体性能。这一节探讨了单个磁盘和多个磁盘情况下的存储方法。

单个磁盘的情况

流行度考虑

当服务器上存储了多部电影时,考虑到每部电影的流行度不同,可以利用Zipf定律来预测电影的点击率,并据此优化存储布局。Zipf定律表明,流行度最高的电影被观看的概率要远高于其他电影。基于这一原理,可以采用管风琴算法来存储电影,即将最流行的电影放在磁盘的中心,次流行的电影分布在两侧,以此类推。这种方法试图将磁头保持在磁盘的中央,从而减少磁头移动,提高访问效率。

多个磁盘情况

不同的存储方式
  1. 无条带方式:每部电影完整地存储在一个磁盘上。这种方式简单,故障恢复容易,但可能导致磁盘负载不均衡,特别是当某些电影比其他电影更受欢迎时。

  2. 相同条带模式:将每部电影分为几部分,每部分存储在不同的磁盘上。这种方式试图均衡各个磁盘的负载,但可能增加某些磁盘的负荷,特别是存储了起始部分的磁盘。

  3. 交错条带:每部电影的起始部分分布在不同的磁盘上,尝试更均匀地分布访问压力。

  4. 随机条带:随机地将电影数据分布在各个磁盘上,进一步尝试均衡负载。

存储方法的选择

选择最佳的存储方法时,需要考虑多个因素,包括电影的流行度、服务器的磁盘数量、故障恢复需求以及性能优化目标等。在实践中,可能需要根据具体的应用场景和性能需求来灵活选择和调整存储策略。

  • 流行度考虑:采用基于流行度的存储策略(如管风琴算法)可以有效减少因磁头移动导致的延迟,特别适用于单磁盘系统。

  • 负载均衡:在多磁盘系统中,通过条带化或随机分配电影数据可以实现更好的负载均衡,提高系统的并行处理能力。

  • 故障恢复:不同的存储方法对故障恢复的影响也不同,无条带方式在某些情况下可能更易于恢复,而条带化方法则需要更复杂的数据重建过程。

综合考虑这些因素,可以设计出适合特定需求的多媒体数据存储方案,以优化视频服务器的性能和可靠性。

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏驰和徐策

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值