CN102394088B - 一种多媒体数据源读取的方法 - Google Patents

一种多媒体数据源读取的方法 Download PDF

Info

Publication number
CN102394088B
CN102394088B CN201110179673.4A CN201110179673A CN102394088B CN 102394088 B CN102394088 B CN 102394088B CN 201110179673 A CN201110179673 A CN 201110179673A CN 102394088 B CN102394088 B CN 102394088B
Authority
CN
China
Prior art keywords
data
fifo
video
audio
reading
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.)
Expired - Fee Related
Application number
CN201110179673.4A
Other languages
English (en)
Other versions
CN102394088A (zh
Inventor
章志刚
徐艳圆
李兴仁
付伟
丁强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHANGHAI INFOTM MICROELECTRONICS CO Ltd
Original Assignee
SHANGHAI INFOTM MICROELECTRONICS CO Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SHANGHAI INFOTM MICROELECTRONICS CO Ltd filed Critical SHANGHAI INFOTM MICROELECTRONICS CO Ltd
Priority to CN201110179673.4A priority Critical patent/CN102394088B/zh
Publication of CN102394088A publication Critical patent/CN102394088A/zh
Application granted granted Critical
Publication of CN102394088B publication Critical patent/CN102394088B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明涉及一种用于播放高码率、高清视频时,其数据源读取方式的多媒体数据源读取的方法。本发明所要解决的问题是在读取音视频数据这一环节中,以何种方式读取数据源,即如何架构数据源读取模型来快速响应解码器的数据请求。解决的技术方案如下:架构多线程模型,将数据流入和流出分离;根据用户需求创建物理内存FIFO,物理内存的深度需要用户根据具体系统自行指定;音视频FIFO及其管理策略;数据流出操作。本发明使多媒体播放过程中数据源的读取时间分布更加合理,直接将FIFO中数据送交解码器,响应更加快速。在相同的系统下,利用本模型读取数据源效率更高,高码率高清视频播放更加流畅。

Description

一种多媒体数据源读取的方法
技术领域
本发明涉及到多媒体音视频播放领域,更具体的是,涉及一种用于播放高码率、高清视频时,其数据源读取方式的架构方法。
背景技术
当用户点击播放视频文件时,多媒体播放系统首先从视频文件中读取音视频数据,然后将其送交解码模块解码,解码输出的音频内容和视频内容经过同步措施将经过输出模块分别送交音频设备输出,视频设备显示,最终完成了整个播放流程。
在读取音视频数据这一环节中,以何种方式读取数据源非常重要,无论解码器解码如何迅速,数据不能及时送达解码器,视频播放效率依然无法提高。因此如何架构数据源读取模型来快速响应解码器的数据请求至关重要。
常规读取音视频数据的办法为,当解码器请求数据时,再从视频文件中读取数据。对于低码率,非高清视频,每次读取的数据量非常小,解码器等待数据到达的时间也比较短,可以满足解码器的需求。但是在播放高码率,高清视频时,解码器每次都要等待系统读取大量的数据,而这个时间则不容被忽视,这使得高清视频在此方式下很难做到流畅播放。
发明内容
本发明的目的是提供一种合理分布数据源读取时间,提高高码率、高清视频数据源读取效率的模型架构方法。本发明的具体技术方案是:
一种多媒体数据源读取的方法,包括数据流入和流出,方案如下:
第一步,架构多线程模型,将数据流入和流出分离;
所述第一步中,在架构多线程模型时,创建音视频FIFO,建立独立的线程用于数据流入操作,并将读取到的音视频数据放入FIFO中进行管理;而用户所居的线程仅有对FIFO访问的权限;
第二步,创建存储音视频数据的虚拟内存FIFO并根据用户需求创建物理内存FIFO;
所述第二步中,在创建物理内存FIFO时,物理内存的深度需要用户根据具体系统自行指定;存在物理内存FIFO时设置成两级FIFO缓冲,读取的数据先流入虚拟内存FIFO,然后再流入物理内存FIFO;这里数据流入虚拟内存FIFO过程中直接利用获得的虚拟内存地址形成新的FIFO成员,无需拷贝;而原本在解码器请求数据时发生的拷贝转移到数据流入流程,这更有利于数据流出的快速响应;
第三步,音视频FIFO及其管理策略;
所述第三步中,音视频FIFO及其管理策略包括:
(1)音视频队列存在物理内存FIFO和虚拟内存FIFO;如果存在物理内存FIFO,优先保证物理内存FIFO非空;如果物理内存满,则将数据存入虚拟内存FIFO;
(2)设定音视频FIFO各自的最大阈值;当音视频数据FIFO都达到最大阈值时,停止读取数据,数据流入线程处于等待状态;
(3)设定音视频数据FIFO各自的最小阈值;当音视频数据FIFO中某一FIFO中数据帧小于最小阈值时,数据流入线程处于读取状态,开始读取数据;
(4)当音视频FIFO中数据量介于最大阈值和最小阈值之间时,如果当前数据流入线程处于读取状态,则线程处于读取状态直到各FIFO数据量达到最大阈值时,停止线程;否则,线程将一直处于等待状态直到某一FIFO数据量小于最小阈值时,线程将变为读取状态;
(5)设定音视频数据队列的最大深度;当队列数据超过最大深度,停止读取数据,数据流入线程处于等待状态;设定此项用于对内存的保护,以防过分使用内存导致系统内存不足;
第四步,数据流出操作;
所述第四步中,数据流出操作时,用户只需要通过访问音视频数据FIFO就能获得解码器要请求的数据。
本模型包括数据流入和流出。数据流入是指从数据源中读取音视频数据;数据流出则是指用户从该模型中读取数据。
首先架构多线程模型,将数据流入和流出分离。创建音视频FIFO,建立独立的线程用于数据流入操作,并将读取到的音视频数据放入FIFO中进行管理。而用户所居的线程仅有对FIFO访问的权限。
其次,考虑到现今解码器大多为硬件解码器,需求物理内存,本发明可以根据用户需求创建物理内存FIFO,物理内存的深度需要用户根据具体系统自行指定。存在物理内存FIFO时设置成两级FIFO缓冲,读取的数据先流入虚拟内存FIFO,然后再流入物理内存FIFO。这里数据流入虚拟内存FIFO过程中直接利用获得的虚拟内存地址形成新的FIFO成员,无需拷贝。而原本在解码器请求数据时发生的拷贝转移到数据流入流程,这更有利于数据流出的快速响应。
再次,音视频FIFO及其管理策略主要有以下方面:
1,音视频队列存在物理内存FIFO和虚拟内存FIFO。如果存在物理内存FIFO,优先保证物理内存FIFO非空。如果物理内存满,则将数据存入虚拟内存FIFO。2,设定音视频FIFO各自的最大阈值。当音视频数据FIFO都达到最大阈值时,停止读取数据,数据流入线程处于等待状态。3,设定音视频数据FIFO各自的最小阈值。当音视频数据FIFO中某一FIFO中数据帧小于最小阈值时,数据流入线程处于读取状态,开始读取数据。4,当音视频FIFO中数据量介于最大阈值和最小阈值之间时,如果当前数据流入线程处于读取状态,则线程处于读取状态直到各FIFO数据量达到最大阈值时,停止线程。否则,线程将一直处于等待状态直到某-FIFO数据量小于最小阈值时,线程将变为读取状态。5,设定音视频数据队列的最大深度。当队列数据超过最大深度,停止读取数据,数据流入线程处于等待状态。设定此项主要用于对内存的保护,以防过分使用内存导致系统内存不足。
最后,数据流出操作。用户只需要通过访问音视频数据FIFO就能获得解码器要请求的数据。
附图说明
图1数据流入线程流程图。
图2数据流出流程。
具体实施方式
下面将结合附图进一步阐述本发明:
图1所示为数据流入线程工作流程。选取视频FIFO最大阈值为40,最小阈值为20,音频FIFO最大阈值80,最小阈值为40。当数据流入线程启动后,根据当前各级FIFO状态来确定是否需要数据在各级FIFO中流动,以及确定是否读取源文件中的音视频数据。假定视频FIFO中视频帧数量为N1,音频FIFO中音频帧数量为N2,当N1和N2满足FIFO管理策略所述条件时,则数据流入线程处于等待状态;否则进入数据流入操作。存在物理内存FIFO的情况下,要优先保证物理内存FIFO不空,然后再去读取数据源文件。
图2为数据流出操作流程。数据流出操作首先确定是否使用物理内存,然后启动数据流入线程才能确保数据的正常运转。如果存在物理内存FIFO,则只需从物理内存FIFO中读取数据,否则从虚拟内存FIFO中读取数据。在每次读取数据完毕后均要告知数据流入线程FIFO发生变化,以便数据流入线程能正确捕捉到各级FIFO状态。
上述操作过程是本发明所述方法的一种典型的实施方式,已经在基于盈方微芯片的1080P多媒体解决方案中经百万级出货量验证,可以很好地满足用户的多媒体体验。
对于本领域的一般技术人员,在上述实施例的基础上可以做多种变化,合理设定物理内存FIFO深度,合理控制各阈值的选取,更能满足更多系统对本发明的使用。但是,这种变化显然应该在本发明的权利要求书的保护范围内。

Claims (1)

1.一种多媒体数据源读取的方法,包括数据流入和流出,方案如下:
第一步,架构多线程模型,将数据流入和流出分离;
所述第一步中,在架构多线程模型时,创建音视频FIFO,建立独立的线程用于数据流入操作,并将读取到的音视频数据放入FIFO中进行管理;而用户所居的线程仅有对FIFO访问的权限;
第二步,创建存储音视频数据的虚拟内存FIFO并根据用户需求创建物理内存FIFO;
所述第二步中,在创建物理内存FIFO时,物理内存的深度需要用户根据具体系统自行指定;存在物理内存FIFO时设置成两级FIFO缓冲,读取的数据先流入虚拟内存FIFO,然后再流入物理内存FIFO;这里数据流入虚拟内存FIFO过程中直接利用获得的虚拟内存地址形成新的FIFO成员,无需拷贝;而原本在解码器请求数据时发生的拷贝转移到数据流入流程,这更有利于数据流出的快速响应;
第三步,音视频FIFO及其管理策略;
所述第三步中,音视频FIFO及其管理策略包括:
(1)音视频队列存在物理内存FIFO和虚拟内存FIFO;如果存在物理内存FIFO,优先保证物理内存FIFO非空;如果物理内存满,则将数据存入虚拟内存FIFO;
(2)设定音视频FIFO各自的最大阈值;当音视频数据FIFO都达到最大阈值时,停止读取数据,数据流入线程处于等待状态;
(3)设定音视频数据FIFO各自的最小阈值;当音视频数据FIFO中某一FIFO中数据帧小于最小阈值时,数据流入线程处于读取状态,开始读取数据;
(4)当音视频FIFO中数据量介于最大阈值和最小阈值之间时,如果当前数据流入线程处于读取状态,则线程处于读取状态直到各FIFO数据量达到最大阈值时,停止线程;否则,线程将一直处于等待状态直到某一FIFO数据量小于最小阈值时,线程将变为读取状态;
(5)设定音视频数据队列的最大深度;当队列数据超过最大深度,停止读取数据,数据流入线程处于等待状态;设定此项用于对内存的保护,以防过分使用内存导致系统内存不足;
第四步,数据流出操作;
所述第四步中,数据流出操作时,用户只需要通过访问音视频数据FIFO就能获得解码器要请求的数据。
CN201110179673.4A 2011-06-28 2011-06-28 一种多媒体数据源读取的方法 Expired - Fee Related CN102394088B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110179673.4A CN102394088B (zh) 2011-06-28 2011-06-28 一种多媒体数据源读取的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110179673.4A CN102394088B (zh) 2011-06-28 2011-06-28 一种多媒体数据源读取的方法

Publications (2)

Publication Number Publication Date
CN102394088A CN102394088A (zh) 2012-03-28
CN102394088B true CN102394088B (zh) 2015-01-07

Family

ID=45861365

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110179673.4A Expired - Fee Related CN102394088B (zh) 2011-06-28 2011-06-28 一种多媒体数据源读取的方法

Country Status (1)

Country Link
CN (1) CN102394088B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9489387B2 (en) 2014-01-15 2016-11-08 Avigilon Corporation Storage management of data streamed from a video source device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1678086A (zh) * 2005-03-16 2005-10-05 西安电子科技大学 一种基于pci的高速码流播放和接收装置
CN101009803A (zh) * 2006-12-31 2007-08-01 北京华纬讯电信技术有限公司 高清视频传输系统及方法
CN101900619A (zh) * 2010-05-13 2010-12-01 天津工业大学 基于多线程的聚酯网织机纬纱张力测量方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000293385A (ja) * 1999-04-07 2000-10-20 Nec Corp スレッド管理システム及び管理方法並びに管理プログラムを記録した記録媒体
JP2007179496A (ja) * 2005-12-28 2007-07-12 Tektronix Japan Ltd データ記録装置及びfifo機能実現プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1678086A (zh) * 2005-03-16 2005-10-05 西安电子科技大学 一种基于pci的高速码流播放和接收装置
CN101009803A (zh) * 2006-12-31 2007-08-01 北京华纬讯电信技术有限公司 高清视频传输系统及方法
CN101900619A (zh) * 2010-05-13 2010-12-01 天津工业大学 基于多线程的聚酯网织机纬纱张力测量方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JP特开2000-293385A 2000.10.20 *
JP特开2007-179496A 2007.07.12 *

Also Published As

Publication number Publication date
CN102394088A (zh) 2012-03-28

Similar Documents

Publication Publication Date Title
CN101710992B (zh) 一种预解码高清播放器及播放方法
US7584312B2 (en) Data processing apparatus having improved buffer management
CN102724585B (zh) 一种用于终端设备网络视频播放预加载的方法及装置
CN104780422B (zh) 流媒体播放方法及流媒体播放器
TWI399938B (zh) 媒體資料解碼方法和提供媒體的電路
CN103475927B (zh) 在线视频实时变速播放方法及系统
CN106034252B (zh) 一种流媒体处理方法及装置
CN101822052A (zh) 视频流处理设备及其控制方法、程序和记录介质
CN102568514B (zh) 一种3d高清多媒体播放装置
CN101119469B (zh) 一种嵌入式高清数字电视码流仪及播放器内存控制优化方法
CN104853132A (zh) 一种延时视频录制方法及系统
CN103841451A (zh) 多媒体播放方法、装置及终端
CN102394088B (zh) 一种多媒体数据源读取的方法
WO2015074380A1 (zh) 视频信息处理方法及设备
CN102609048A (zh) 一种音视频点播的电脑及方法
CN103841456A (zh) 一种网络播放数据缓冲方法
CN103369301A (zh) 数据管理设备和数据管理方法
TWI291835B (en) Data processor, data processing method and system, program, and storage medium
CN105812914A (zh) 一种视频的混合多路解码方法及装置
CN109151571A (zh) 数字电视中基于GStreamer框架的流媒体播放器提升画质的方法
CN104023260A (zh) 硬件解码实现方法、装置及播放器
CN103430558A (zh) 用于优化视频流的方法
CN101389033B (zh) 帧场自适应解码模式下解码器缓存控制方法
CN101472156A (zh) 家用播放器支持3gp媒体文件播放功能的方法
CN106254961A (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
C53 Correction of patent for invention or patent application
CB02 Change of applicant information

Address after: 201203, 11, Lane 572, Lane 115, blue wave road, Zhangjiang hi tech park, Shanghai, Pudong New Area

Applicant after: Shanghai InfoTM Microelectronics Co., Ltd.

Address before: 201203, 11, Lane 572, Lane 115, blue wave road, Zhangjiang hi tech park, Shanghai, Pudong New Area

Applicant before: Shanghai InfoTM Microelectronics Co., Ltd.

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: SHANGHAI INFOT MICROELECTRONICS CO., LTD. TO: SHANGHAI INFOTM MICROELECTRONICS CO., LTD.

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150107

Termination date: 20190628

CF01 Termination of patent right due to non-payment of annual fee