CN105657540B - 一种适配安卓***的视频解码方法及其装置 - Google Patents

一种适配安卓***的视频解码方法及其装置 Download PDF

Info

Publication number
CN105657540B
CN105657540B CN201610010332.7A CN201610010332A CN105657540B CN 105657540 B CN105657540 B CN 105657540B CN 201610010332 A CN201610010332 A CN 201610010332A CN 105657540 B CN105657540 B CN 105657540B
Authority
CN
China
Prior art keywords
module
cache
decoder
video
information
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
Application number
CN201610010332.7A
Other languages
English (en)
Other versions
CN105657540A (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.)
Allwinner Technology Co Ltd
Original Assignee
Allwinner Technology 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 Allwinner Technology Co Ltd filed Critical Allwinner Technology Co Ltd
Priority to CN201610010332.7A priority Critical patent/CN105657540B/zh
Publication of CN105657540A publication Critical patent/CN105657540A/zh
Application granted granted Critical
Publication of CN105657540B publication Critical patent/CN105657540B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440218Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明提供一种适配安卓***的视频解码方法及其装置,视频解码方法包括:将视频信息传递至解码模块的步骤;从解码模块获取缓存信息的步骤;显示模块根据缓存信息创建缓存模块的步骤;解码模块对缓存模块内的码流数据进行解码的步骤;在缓存模块保存解码后的视频数据的步骤;显示模块对视频数据进行显示的步骤。以及使用该视频解码方法的视频解码装置。通过由显示模块对缓存模块进行申请,使解码和显示共缓存的设置有利于减少拷贝次数的同时也减少了缓存模块个数的申请使用,以及通过获取视频信息对应的缓存信息来对缓存模块进行申请,有效地降低缓存模块的申请大小和个数,继而提高视频解码的性能与解码效率。

Description

一种适配安卓***的视频解码方法及其装置
技术领域
本发明涉及视频解码领域,尤其涉及一种适配安卓***的视频解码方法和使用该方法的视频解码装置。
背景技术
安卓(Android)***是一种由谷歌公司开发的基于Linux的自由及开发源代码的操作***,主要用于智能手机、平板电脑等移动设备,如今,Android平台在手机领域里占据了全球最大的市场份额。Android***的成功在一定程度上得益于其开发源代码的做法,将***的众多权限与接口都开放出来,使得各硬件厂商可以根据自身的硬件特性与android***进行适配。在多媒体方面,android定义了mediaplayer和mediacodec两套接口,***自带的nuplayer和stagefrightplayer继承于mediaplayer,softomx 则与mediacodec进行对接,硬件厂商可以将自身的编解码资源(包括硬件和软件资源)与这两套接口进行对接,从而发挥厂商各自的资源优势,Android***也得以兼容不同硬件厂商之间的差异。
在实现接口的过程中,实现的机制与策略决定了接口的性能与效率,从而影响整个android***的优劣性。所以如何更好地适配android***的接口、提升接口的性能,对各个硬件厂商而言,都变得至关重要。
Mediaplayer是一套完整的多媒体播放接口,此接口的实现类必须包含流媒体协议处理、解文件封装、播控、音视频解码、字幕解码等模块,上层调用者只需将媒体资源访问路径或url(网络资源标示符)传递到mediaplayer,mediaplayer则调用各个模块对媒体内容进行播放。而mediacodec则是一套编解码接口其与解码器连接工作,编码接口负责将输入的编码源编码成目标码流,解码接口负责将输入的码流数据解码成音频帧或视频帧,简而言之就是将输入的数据进行处理,最终将处理后的数据输出到上层调用者。Android采用openmaxIL与mediacodec进行对接,而各厂商实际上采用的是驱动器(openmaxIL),继而实现驱动器与解码器相互交互使用。实现在openmaxIL使用中,如何管理用于存放输入和输出数据的缓存器(buffer),将直接影响到接口的效率。就目前而言,buffer管理存在着申请的buffer空间过大、buffer的拷贝效率低下等缺点。申请的buffer空间太大,将会占用更多的***内存,影响***的流畅性,buffer拷贝效率底下则会降低整体的编解码性能,并导致设备的功耗增大。
发明内容
本发明的第一目的是提供一种高效率的且适配安卓***的视频解码方法。
本发明的第二目的是提供一种高效率的且适配安卓***的视频解码装置。
为了实现本发明的第一目的,本发明提供一种适配安卓***的视频解码方法,其中,包括:将视频信息传递至解码模块的步骤;从解码模块获取缓存信息的步骤;显示模块根据缓存信息创建缓存模块的步骤;解码模块对缓存模块内的码流数据进行解码的步骤;在缓存模块保存解码后的视频数据的步骤;显示模块对视频数据进行显示的步骤。
由上述方案可见,解码模块内部不进行申请用于存放视频数据的缓存模块,而是通过由显示模块进行申请,解码时通过在显示模块的缓存模块进行读取解码,显示时通过显示模块读取缓存模块内解码后的视频数据进行显示,实现解码模块和显示模块共享缓存模块,共享缓存的设置有利于减少拷贝次数的同时也减少了缓存模块个数的申请使用,以及通过获取视频信息对应的缓存信息来对缓存模块进行申请,有效地降低缓存模块的申请大小和个数,继而实现提高缓存模块的拷贝效率或者减少拷贝的次数,从而提高视频解码的性能与解码效率。
更进一步的方案是,在视频信息传递至解码模块的步骤之前,视频解码方法还包括:创建驱动模块并初始化驱动模块的步骤;驱动模块创建解码模块的步骤。
更进一步的方案是,在从解码模块获取缓存信息的步骤之后,视频解码方法还包括:判断是否成功获取缓存信息的步骤;如成功获取缓存信息,则执行将缓存信息输出至显示模块。
更进一步的方案是,在显示模块根据缓存信息创建缓存模块之后,视频解码方法还包括:将缓存模块的地址传递至解码模块的步骤。
更进一步的方案是,解码模块对缓存模块内的码流数据进行解码的步骤之前,视频解码方法还包括管理模块对缓存模块进行监控的步骤。
更进一步的方案是,缓存信息包括缓存容量和缓存个数。
由上可见,通过首先将视频的视频信息传递给解码模块,继而能够反馈获取解码所需要的缓存信息,再通过显示模块根据缓存信息对缓存模块进行针对性的申请,使得用最少缓存模块的容量和个数在保证正常运作顺畅,同时利用管理模块的设置对缓存模块的状态进行监控,以及通过驱动模块进行协调处理,避免缓存模块读写数据时出现混乱,从而有利于提高视频解码的效率和稳定性。
为了实现本发明的第一目的,本发明提供一种适配安卓***的视频解码装置,包括显示模块和解码模块,其中,解码模块接收视频信息,解码模块向显示模块输出缓存信息,显示模块根据缓存信息创建缓存模块,解码模块对缓存模块内的码流数据进行解码,缓存模块保存解码后的视频数据,显示模块对视频数据进行显示。
由上述方案可见,解码模块内部不进行申请用于存放视频数据的缓存模块,而是通过由显示模块进行申请,解码时通过在显示模块的缓存模块进行读取解码,显示时通过显示模块读取缓存模块内解码后的视频数据进行显示,实现解码模块和显示模块共享缓存模块,共享缓存的设置有利于减少拷贝次数的同时也减少了缓存模块个数的申请使用,以及通过获取视频信息对应的缓存信息来对缓存模块进行申请,有效地降低缓存模块的申请大小和个数,继而实现提高缓存模块的拷贝效率或者减少拷贝的次数,从而提高视频解码的性能与解码效率。
附图说明
图1是本发明视频解码装置实施例的***框图。
图2是本发明视频解码方法实施例的流程图。
以下结合附图及实施例对本发明作进一步说明。
具体实施方式
视频解码装置实施例:
参照图1,图1是适配安卓***的视频解码装置的***框图,视频解码装置包括驱动模块2、显示模块3、解码模块4、缓存模块5和管理模块6,解码模块4接收视频信息,解码模块4向显示模块3输出缓存信息,显示模块3根据缓存信息创建缓存模块5,解码模块4对缓存模块5内的码流数据进行解码,缓存模块5保存解码后的视频数据,显示模块3对视频数据进行显示,驱动模块2用于创建解码模块4,管理模块6用于对缓存模块5进行监控并获得状态信号,管理模块6向驱动模块反馈状态信号。
视频解码方法实施例:
参照图2并结合图1,图2是适配安卓***的视频解码方法的流程图。首先执行步骤S11,程序开始,安卓***接口层1创建驱动模块2,将相应的初始化信息传递到驱动模块2以初始化驱动模块2,随后执行步骤S12,驱动模块2创建解码模块4,并将视频信息以结构体的形式传递给解码模块4,解码模块4初始化内部变量与状态,驱动模块2进入主线程处理相关的消息与任务。
然后执行步骤S13,从解码模块4获取缓存信息,缓存信息包括缓存的个数和缓存的容量大小。随后执行步骤S14,判断是否获取成功,如不成功获取,则返回步骤S13,直到获取缓存信息,如成功获取缓存信息,则执行步骤S15,将缓存信息输出至显示模块3,且将驱动模块2置成暂停状态,等待显示模块3将申请到的缓存模块传递下来。由于驱动模块2无法得知解码模块4解析出缓存信息的时间点,故采用这种不断查询的方法进行获取。
随后执行步骤S16,显示模块3根据缓存信息申请出相应容量大小和相应个数的缓存模块5。以一播放分辨率为1080*720、具有3个参考帧的H264视频为例对缓存模块5的申请进行举例说明,创建解码模块4时,将1080*720的分辨率信息和h264的视频格式信息设置到解码模块中,解码器根据这些视频信息初始化对应的资源,解码模块从视频信息里解析出参考帧的数目为3时,则可根据缓存模块个数等于参考帧个数、缓冲个数和显示模块占用个数的和,缓冲个数一般为4个,显示模块占用个数一般为2个,故缓存模块的个数为9个。且当视频格式为YV12时,每个像素点由Y、U、V三个分量表示,比例为4:1:1,故缓存模块的容量大小为分辨率*3/2,即缓存模块的容量大小为1080*720*3/2。
随后执行步骤S17,将缓存模块5的地址传递至驱动模块2,随后执行步骤S18,驱动模块2将缓存模块5的地址传递至解码模块4,然后执行步骤S19,创建管理模块6,管理模块6对缓存模块5进行监控,每个缓存模块5有三个状态:解码模块占用、显示模块占用和空闲,缓存模块状态转换依次为:解码模块占用-显示模块占用-空闲,通过管理模块6对缓存模块5的监控并获取状态信号,管理模块6向驱动模块2反馈状态信号,使得驱动模块2通过缓存模块状态的转换以达到解码模块与显示模块的交互使用。
然后执行步骤S20,从缓存模块5拷贝码流数据到解码模块4进行解码,解码后的视频数据保存在缓存模块5保存,最后执行步骤S21,显示模块3从缓存模块5获取解码后的视频进行显示。在视频播放时,不选循环执行步骤S20和步骤S21,不断将视频进行解码和播放,直至视频播放完毕。
由上可见,解码模块内部不进行申请用于存放视频数据的缓存模块,而是通过由显示模块进行申请,解码时通过在显示模块的缓存模块进行读取解码,显示时通过显示模块读取缓存模块内解码后的视频数据进行显示,实现解码模块和显示模块共享缓存模块,共享缓存的设置有利于减少拷贝次数的同时也减少了缓存模块个数的申请使用,以及通过获取视频信息对应的缓存信息来对缓存模块进行申请,有效地降低缓存模块的申请大小和个数,继而实现提高缓存模块的拷贝效率或者减少拷贝的次数,从而提高视频解码的性能与解码效率。

Claims (5)

1.一种适配安卓***的视频解码方法,其特征在于,包括:
创建驱动模块并初始化所述驱动模块的步骤;
所述驱动模块创建解码模块的步骤;
将视频信息传递至解码模块的步骤;
从所述解码模块获取缓存信息的步骤;
显示模块根据所述缓存信息创建缓存模块的步骤;
所述解码模块对所述缓存模块内的码流数据进行解码的步骤;
管理模块对所述缓存模块进行监控的步骤,所述缓存模块具有解码模块占用状态、显示模块占用状态和空闲状态,所述缓存模块的状态转换依次为解码模块占用状态、显示模块占用状态、空闲状态,所述管理模块对所述缓存模块监控并获取状态信号,所述管理模块向所述驱动模块反馈状态信号,所述驱动模块根据所述缓存模块的状态的转换控制所述解码模块与所述显示模块的交互使用;
在所述解码模块占用状态下在所述缓存模块保存解码后的视频数据的步骤;
在所述显示模块占用状态下所述显示模块对所述视频数据进行显示的步骤。
2.根据权利要求1所述的视频解码方法,其特征在于:
在从所述解码模块获取所述缓存信息的步骤之后,所述视频解码方法还包括:
判断是否成功获取所述缓存信息的步骤;
如成功获取所述缓存信息,则执行将所述缓存信息输出至所述显示模块。
3.根据权利要求1所述的视频解码方法,其特征在于:
在所述显示模块根据所述缓存信息创建所述缓存模块之后,所述视频解码方法还包括:
将所述缓存模块的地址传递至所述解码模块的步骤。
4.根据权利要求1至3任一项所述的视频解码方法,其特征在于:
所述缓存信息包括缓存容量和缓存个数。
5.一种适配安卓***的视频解码装置,其特征在于,包括显示模块和解码模块,其特征在于:
所述解码模块接收视频信息,所述解码模块向所述显示模块输出缓存信息,所述显示模块根据所述缓存信息创建缓存模块,所述解码模块对所述缓存模块内的码流数据进行解码,所述缓存模块保存解码后的视频数据,所述显示模块对所述视频数据进行显示;
所述视频解码装置还包括驱动模块,所述驱动模块用于创建所述解码模块;
所述视频解码装置还包括管理模块,所述管理模块用于对所述缓存模块进行监控并获得状态信号,所述管理模块向所述驱动模块反馈所述状态信号;
所述视频解码装置用于执行上述权利要求1至4任一项所述的视频解码方法。
CN201610010332.7A 2016-01-05 2016-01-05 一种适配安卓***的视频解码方法及其装置 Active CN105657540B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610010332.7A CN105657540B (zh) 2016-01-05 2016-01-05 一种适配安卓***的视频解码方法及其装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610010332.7A CN105657540B (zh) 2016-01-05 2016-01-05 一种适配安卓***的视频解码方法及其装置

Publications (2)

Publication Number Publication Date
CN105657540A CN105657540A (zh) 2016-06-08
CN105657540B true CN105657540B (zh) 2019-02-22

Family

ID=56490636

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610010332.7A Active CN105657540B (zh) 2016-01-05 2016-01-05 一种适配安卓***的视频解码方法及其装置

Country Status (1)

Country Link
CN (1) CN105657540B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113015003B (zh) * 2021-03-08 2022-11-25 展讯通信(上海)有限公司 视频帧缓存方法和设备
CN113596495B (zh) * 2021-07-28 2023-11-24 广州方硅信息技术有限公司 直播推流处理方法及其装置、设备与介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101282467A (zh) * 2008-05-15 2008-10-08 中兴通讯股份有限公司 一种慢速播放媒体时缓存数据的方法及装置
CN102868908A (zh) * 2011-07-04 2013-01-09 哈尔滨融智达网络科技有限公司 高效流媒体播放方法和装置
CN102984576A (zh) * 2012-12-21 2013-03-20 四川九洲电器集团有限责任公司 一种ts传输流媒体音视频剥离的方法及***
CN103067774A (zh) * 2012-12-28 2013-04-24 四川九洲电器集团有限责任公司 一种机顶盒显示外挂字幕的方法及***
CN103281528A (zh) * 2013-04-10 2013-09-04 深圳康佳通信科技有限公司 一种流媒体解码方法、***及移动终端
CN104182355A (zh) * 2014-08-29 2014-12-03 广州华多网络科技有限公司 一种内存分配方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130279877A1 (en) * 2012-04-19 2013-10-24 Qnx Software Systems Limited System and Method Of Video Decoder Resource Sharing

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101282467A (zh) * 2008-05-15 2008-10-08 中兴通讯股份有限公司 一种慢速播放媒体时缓存数据的方法及装置
CN102868908A (zh) * 2011-07-04 2013-01-09 哈尔滨融智达网络科技有限公司 高效流媒体播放方法和装置
CN102984576A (zh) * 2012-12-21 2013-03-20 四川九洲电器集团有限责任公司 一种ts传输流媒体音视频剥离的方法及***
CN103067774A (zh) * 2012-12-28 2013-04-24 四川九洲电器集团有限责任公司 一种机顶盒显示外挂字幕的方法及***
CN103281528A (zh) * 2013-04-10 2013-09-04 深圳康佳通信科技有限公司 一种流媒体解码方法、***及移动终端
CN104182355A (zh) * 2014-08-29 2014-12-03 广州华多网络科技有限公司 一种内存分配方法及装置

Also Published As

Publication number Publication date
CN105657540A (zh) 2016-06-08

Similar Documents

Publication Publication Date Title
WO2016146078A1 (zh) 一种多媒体重定向的方法、设备和***
US11128879B2 (en) Hybrid decoding
CN104159150B (zh) 云终端、云服务器、媒体数据流播放***及方法
US20160353160A1 (en) Smart terminal as well as fast channel switching method and device thereof
CN104780378A (zh) 一种用于解码视频的方法、装置和播放器
JP7386990B2 (ja) ビデオ再生方法、装置、機器及びコンピュータプログラム
CN108881916A (zh) 远程桌面的视频优化处理方法及装置
US8681861B2 (en) Multistandard hardware video encoder
WO2018119955A1 (zh) 跨***多媒体数据编解码方法、装置、电子设备和计算机程序产品
CN104685873B (zh) 编码控制设备以及编码控制方法
US20070266168A1 (en) Prioritization of audio streams for platform adaptive audio decoding
CN104837052A (zh) 播放多媒体数据的方法及装置
WO2016137989A1 (en) A system and method for playing a video on mobile web environments
WO2018119611A1 (zh) 多操作***多媒体数据编解码方法、装置、电子设备和计算机程序产品
WO2018119711A1 (zh) 多操作***多媒体编解码方法、装置及电子设备
CN109325145A (zh) 视频缩略图的获取方法、终端及计算机可读存储介质
CN109151966A (zh) 终端控制方法、装置、终端设备及存储介质
CN102981887A (zh) 数据处理方法及电子设备
CN105657540B (zh) 一种适配安卓***的视频解码方法及其装置
CN110933495A (zh) 基于嵌入式***的视频播放方法及装置
EP1747513A1 (en) Hierarchical processor architecture for video processing
CN107613302B (zh) 解码方法及装置、存储介质、处理器
CN103686195A (zh) 视频信息处理方法及设备
CN105577781A (zh) 虚拟化桌面中音频重定向的方法及***
CN101009836B (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
GR01 Patent grant
GR01 Patent grant