CN102243615B - 一种支持音视频帧存储的内存缓冲管理方法 - Google Patents
一种支持音视频帧存储的内存缓冲管理方法 Download PDFInfo
- Publication number
- CN102243615B CN102243615B CN201110067103.6A CN201110067103A CN102243615B CN 102243615 B CN102243615 B CN 102243615B CN 201110067103 A CN201110067103 A CN 201110067103A CN 102243615 B CN102243615 B CN 102243615B
- Authority
- CN
- China
- Prior art keywords
- block
- data
- write
- audio
- video
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明属于音视频采集、压缩编码和存储领域,具体为一种支持音视频帧存储的内存缓冲管理方法,内存由N个普通数据块和一个扩展数据块组成,数据帧处理的流程为采集、编码、存储三个过程;在所述的采集过程中输出的是固定长度的音视频数据,在所述的编码过程中输出的是可变长的压缩音视频数据,在所述的存储过程中输出的是32K块数据。本发明的优点在于编码器输出的压缩数据,在未确定长度前,直接写入块缓冲中;每帧音视频帧数据完整连续,并不因32K块分割而出现碎片;降低系统对数据的拷贝次数,提高系统的处理效率;反向过程则可用于从磁盘把块媒体数据还原为音视频帧数据,也起到降低拷贝数据的作用。
Description
技术领域
本发明属于音视频采集、压缩编码及存储领域,具体为一种支持音视频帧存储的内存缓冲管理方法。
背景技术
由于数字硬盘系统采集的原始视频帧数据经过MPEG4或H.264压缩后,每个视频帧数据长度不是固定的而是可变的,并且音视频数据是以帧来表示的。而一般的数字硬盘存储系统的存储设备是为块存储设备,比如按512B或32KB存储,是按块的方式来表示数据。因而数字硬盘存储系统在存储音视频数据时,需要根据块存储的固定长度对帧队列进行裁剪或重新拷贝到特定长度的缓冲上,方可进行块数据写入。
目前的数字硬盘录像机一般为4,8,16路实时音视频录像系统,如果每路视频按2Mb/秒的固定码率编码,则16路数字硬盘录像机音视频录像系统固定码率编码为32Mb/秒。由于视频采集和编码所形成的以帧的形式表现数据到存储设备以块形式表现数据,这需要做一次数据拷贝转换。因此16路系统的数据总线需要产生2 X 32Mb/秒的吞吐能力。
因此,如果按普通的帧数据到块数据转换,使用简单两类数据缓存之间的拷贝,数字硬盘录像机音视频录像系统数据通讯负载将增加一倍,数据处理压力较大。
发明内容
本发明的目的在于解决现有技术的不足,针对现有数字硬盘录像机音视频录像系统数据处理方式的缺陷,提供一种新的音视频帧存储的内存缓冲管理方法,能够有效的提高音视频存储的转换效率。
一种支持音视频帧存储的内存缓冲管理方法,音视频帧存储的内存缓冲管理方法的数据帧处理流程为采集、编码、存储三个过程;内存由N个普通数据块和一个扩展数据块组成,普通数据块和扩展数据块为连续内存块;在所述的数据采集过程中输出的是固定长度的音视频数据,在所述的编码过程中输出的是可变长的压缩音视频数据,在所述的存储过程中输出的是32K块数据;音视频帧存储的内存缓冲管理方法的存储过程中数据处理流为块循环缓冲初始化流程、帧数据写入处理流程、块数据写盘处理流程。
进一步的,所述的帧数据写入流程和快数据写盘处理流程是并发执行的。
所述的支持音视频帧存储的内存缓冲管理方法的应用前提是:如果视频编码分辨率为Dl清晰度,设定编码帧最大数据长度不超过32K;如果在其它分辨率下,根据实际编码数据最大长度调整块的大小,但数据帧的长度为32K的倍数。
所述的支持音视频帧存储的内存缓冲管理方法中,块循环缓冲初始化流程步骤为:
步骤1:向数字硬盘录像机音视频录像系统申请块循环缓冲使用的连续内存块;
步骤2:填写块信息数组,为每个块填写必要的信息和指定使用的内存,首地址为指向连续内存块,且是以32K为分界的块首地址;
步骤3:初始化块写索引和块读索引值,初始化均为0,同时判断当前指向的块是否已经写满。
所述的支持音视频帧存储的内存缓冲管理方法中,帧数据写入处理流程步骤为:
步骤1:依据采集系统提供的空帧信息结构,设置可用的输出编码帧缓冲,所述的缓冲由块循环缓冲提供;
步骤2:确保块缓冲为可用缓冲,产生第一系统有条件等待,即等待第0块缓冲可以写入;
步骤3:调用音频或视频编码器,编码器写入压缩音视频数据;
步骤4:更新当前写块信息结构和调整当前写块信息索引,调整当前块的写偏移值,如果大于或等于块总长度,则需要调整写信息块索引值;
具体调整方法如下:当当前块已经填满或超出则进入下一块,如进入的下一块是扩展数据块,则需要作数据折叠处理,此时系统处于第一系统有条件等待状态,即等待第0块缓冲可以写入,在系统满足第一系统有条件等待时,把所有进入扩展块的数据全部拷贝到第0块上,同时把写索引移到第0块上。
步骤5:将编码帧,提交到系统队列,供网络模块或其他模块做读操作;
步骤6:编码帧数据写入过程完成,返回步骤1。
所述的支持音视频帧存储的内存缓冲管理方法中,块数据写盘处理流程为:
步骤1:产生第二系统有条件等待,等待当前块读位置索引指向的块缓冲已经写满32K数据;
步骤2:完成当前块缓冲的写入后,移动当前块读位置索引到下一块或回到步骤1;
步骤3:标记此块数据已经写入。
对于帧数据写入处理流程和块数据写盘处理流程在多任务操作系统和单任务操作系统上均可实现。
与现有技术相比,本发明优点如下:编码器输出的压缩数据,在未确定长度前,直接写入块缓冲中;每帧音视频帧数据完整连续,并不因32K块分割而出现碎片;降低系统对数据的拷贝次数,提高系统的处理效率;反向过程则可用于从磁盘把块媒体数据还原为音视频帧数据,也起到降低拷贝数据的作用。
附图说明
图1为音视频帧存储的内存缓冲管理方法组成示意图。
图2为音视频帧存储的内存缓冲管理方法流程图。
图3为音视频帧存储的内存缓冲管理方法数据处理流程图。
图4为音视频帖数据折叠处理示意图。
具体实施方式
如图1、图2所示,数据帧处理的流程为采集、编码、存储;在所述的数据采集过程中输出的是固定长度的音视频数据,在所述的编码过程中输出的是可变长的压缩音视频数据,在所述的存储过程中输出的是32K块数据。
本机制应用的前提条件是:如果视频编码分辨率为Dl清晰度,设定编码帧最大数据长度不超过32K;如果在其它分辨率下,根据实际编码数据最大长度调整块的大小,但为32K的倍数。
图3为音视频帧存储的内存缓冲管理方法数据处理流程图,其步骤如下:首先是块循环缓冲初始化流程;其次是帧数据写入处理流程;最后是块数据写盘处理流程,帧数据写入流程和快数据写盘处理流程是并发执行的,分别在不同的操作系统任务上执行;
图4为音视频帖数据折叠处理示意图,本发明可以从编码模块输出数据到块数据缓冲中。
所述的支持音视频帧存储的内存缓冲管理方法中,块循环缓冲初始化流程步骤为:
步骤1:向系统申请块循环缓冲使用的连续内存块;
步骤2:填写块信息数组,为每个块填写必要的信息和指定使用的内存,首地址为指向连续内存块,且是以32K为分界的块首地址;
步骤3:初始化块写索引和块读索引值,初始化都为0,同时判断当前指向的块是否已经写满;
所述的支持音视频帧存储的内存缓冲管理方法中,帧数据写入处理流程步骤为:
步骤1:采集系统提供的空帧信息结构,并设置可用的输出编码帧缓冲,此缓冲由块循环缓冲提供;
步骤2:确保块缓冲为可用缓冲,产生第一系统有条件等待;
步骤3:调用音频或视频编码器,编码器写入音视频数据;
步骤4:更新当前写块信息结构和调整当前写块信息索引,调整当前块的写偏移值,如果大于或等于块总长度,则需要调整;如图4所示,当当前块已经填满或超出则进入下一块,如进入的下一块是扩展数据块,则需要作数据折叠处理,此时系统处于第一系统有条件等待状态,即等待第0块缓冲可以写入,在系统满足第一系统有条件等待时,把所有进入扩展块的数据提取后全部拷贝到第0块上,同时把写索引移到第0块上。
步骤5:将编码帧,提交到系统队列,供网络模块或其他模块做读操作;
步骤6:编码帧数据进入下一个过程完成;
所述的支持音视频帧存储的内存缓冲管理方法中,块数据写盘处理流程为:
步骤1:产生第二系统有条件等待,等待当前块读位置索引指向的块缓冲已经填满32K数据;
步骤2:完成当前块缓冲的写入后,移动当前块读位置索引到下一块或回到第一块;
步骤3:标记此块数据已经写入。
Claims (3)
1.一种支持音视频帧存储的内存缓冲管理方法,音视频帧存储的内存缓冲管理方法的数据帧处理流程为数据采集、编码、存储三个过程;其特征在于:
内存由N个普通数据块和一个扩展数据块组成,普通数据块和扩展数据块为连续内存块;
在所述的数据采集过程中输出的是固定长度的音视频帧数据,在所述的编码过程中输出的是可变长的压缩音视频数据,在所述的存储过程中输出的是32K块数据;音视频帧存储的内存缓冲管理方法的存储过程中数据处理流程为块循环缓冲初始化流程、编码帧数据写入处理流程、块数据写盘处理流程;
所述的块循环缓冲初始化流程步骤为:步骤1、向数字硬盘录像机音视频录像系统申请块循环缓冲使用的连续内存块;步骤2、填写块信息数组,为每个块填写信息和指定使用的内存,首地址为指向连续内存块,且是以32K为分界的块首地址;步骤3:初始化块写索引和块读索引值,初始化均为0,同时判断当前指向的块是否已经写满;
所述的编码帧数据写入处理流程步骤为:步骤1:依据采集系统提供的空帧信息结构,设置可用的输出编码帧缓冲,所述的缓冲由块循环缓冲提供;步骤2:确保块缓冲为可用缓冲,产生第一系统有条件等待,即等待第0块缓冲可写入;步骤3:调用音频和视频编码器,编码器写入压缩音视频数据;步骤4:更新当前写块信息结构和调整当前写块信息索引,调整当前块的写偏移值,如果大于或等于块总长度,则需要调整写信息块索引值;步骤5:将编码帧,提交到系统队列,供网络模块或其他模块做读操作;步骤6:编码帧数据写入过程完成,返回步骤1;
进一步的,所述帧数据写入处理流程步骤4中所述的当前写块信息索引调整具体为:当当前块已经填满或超出则进入下一块,当进入的下一块缓冲是扩展数据块,则需要作数据折叠处理,此时系统处于第一系统有条件等待状态,即等待第0块缓冲可以写入,在系统满足第一系统有条件等待时,把所有进入扩展块的压缩帧数据全部拷贝到第0块上,同时把写索引移到第0块上;
所述的块数据写盘处理流程为:步骤1:产生第二系统有条件等待,等待当前块读位置索引指向的块缓冲已经写满32K数据;步骤2:完成当前块缓冲的写入后,移动当前块读位置索引到下一块或回到步骤1;步骤3:标记此块缓冲数据已经写入;
如果视频编码分辨率为Dl清晰度,设定编码帧最大数据长度不超过32K;如果在其它分辨率下,根据实际编码数据最大长度调整块的大小,但数据帧的长度为32K的倍数。
2.如权利要求1所述的一种支持音视频帧存储的内存缓冲管理方法,其特征在于:所述的帧数据写入流程和块数据写盘处理流程为并发执行。
3.如权利要求1所述的一种支持音视频帧存储的内存缓冲管理方法,其特征在于,对于帧数据写入处理流程和块数据写盘处理流程在多任务操作系统和单任务操作系统上均可实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110067103.6A CN102243615B (zh) | 2011-03-21 | 2011-03-21 | 一种支持音视频帧存储的内存缓冲管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110067103.6A CN102243615B (zh) | 2011-03-21 | 2011-03-21 | 一种支持音视频帧存储的内存缓冲管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102243615A CN102243615A (zh) | 2011-11-16 |
CN102243615B true CN102243615B (zh) | 2015-05-13 |
Family
ID=44961680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110067103.6A Active CN102243615B (zh) | 2011-03-21 | 2011-03-21 | 一种支持音视频帧存储的内存缓冲管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102243615B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102682794B (zh) * | 2012-05-15 | 2014-09-24 | 杭州海康威视数字技术股份有限公司 | 一种多码流混合直刻的控制方法及系统 |
CN105553878A (zh) * | 2015-12-11 | 2016-05-04 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于fc-av协议的提高ddr2带宽利用率的接收视频数据存储方法 |
CN106227583B (zh) * | 2016-07-18 | 2019-08-27 | 青岛科信安全技术有限公司 | 一种多线程视频数据实时处理方法和装置 |
CN107957861B (zh) * | 2017-12-11 | 2021-02-09 | 中标软件有限公司 | 即时播放声卡信号输入通道中音频数据的方法及装置 |
CN110659225A (zh) * | 2018-06-28 | 2020-01-07 | 华为技术有限公司 | 内存管理方法以及相关装置 |
CN112995746B (zh) * | 2019-12-18 | 2022-09-09 | 华为技术有限公司 | 视频处理方法、装置与终端设备 |
CN112702550B (zh) * | 2020-12-21 | 2023-08-04 | 上海商米科技集团股份有限公司 | 一种nvr多进程共享音视频流系统及实现方法 |
CN115714879A (zh) * | 2022-11-17 | 2023-02-24 | 展讯通信(上海)有限公司 | 数据解码方法、装置、设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2605711Y (zh) * | 2003-01-22 | 2004-03-03 | 张健 | 视讯终端装置 |
CN2812444Y (zh) * | 2005-04-19 | 2006-08-30 | 广州金鹏集团有限公司 | 大容量嵌入式数字硬盘录像机 |
CN101742303A (zh) * | 2008-11-04 | 2010-06-16 | 林岚 | 一种图像编码系统 |
CN101673246A (zh) * | 2009-08-06 | 2010-03-17 | 深圳市融创天下科技发展有限公司 | 一种高效的先进先出数据池读写方法 |
CN101739354B (zh) * | 2009-12-14 | 2011-07-06 | 浙江大学 | 基于内存池技术的brew手机h.264解码优化方法 |
-
2011
- 2011-03-21 CN CN201110067103.6A patent/CN102243615B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN102243615A (zh) | 2011-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102243615B (zh) | 一种支持音视频帧存储的内存缓冲管理方法 | |
US7917687B2 (en) | Flash memory apparatus and access method to flash memory | |
US8370544B2 (en) | Data storage system with compression/decompression | |
CN100578470C (zh) | 基于裸设备的音视频数据存取方法和装置 | |
CN104349100A (zh) | 支持单个通道双码流录像的dvr监控系统及方法 | |
CN107329694B (zh) | 数据存储控制方法、控制装置及存储设备 | |
CN101968796B (zh) | 一种双向并发执行的文件级可变长数据分块方法 | |
US20100153347A1 (en) | Method and system for preventing corruption of hard disk drive file system | |
CN100418071C (zh) | 一种媒体文件系统的建立方法 | |
CN105488108A (zh) | 一种多个视频文件高速并行存储的方法及装置 | |
CN201797568U (zh) | 一种基于节能磁盘阵列的视频监控系统 | |
CN104811646B (zh) | 基于连续存储模型的多视频流数据并发调制及缓冲的存储方法 | |
CN104298697A (zh) | 一种fat32格式的数据文件管理系统 | |
CN101425310B (zh) | 在音频视频交织记录期间保留索引存储空间的方法 | |
CN109375868B (zh) | 一种数据存储方法、调度装置、系统、设备及存储介质 | |
CN108650481B (zh) | 一种视频流数据的存储方法及装置 | |
CN101365088A (zh) | 一种硬盘录像方法 | |
CN101677384B (zh) | 数据存储管理系统及方法 | |
CN114374687B (zh) | 热磁存储与蓝光存储之间的文件传输方法及装置 | |
CN104394453A (zh) | 视频预录方法及装置 | |
CN102157175B (zh) | 一种音视频数据的数字化转储方法及系统 | |
JP2008310889A (ja) | 記録再生装置 | |
JP2015088171A (ja) | 内部ディスクドライブデータ圧縮のためのシステム及び方法 | |
CN101261605A (zh) | 融合存储器设备及方法 | |
WO2015055020A1 (zh) | 写入数据的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |