CN114339430A - 一种基于硬解码的视频重定位播放方法及系统 - Google Patents
一种基于硬解码的视频重定位播放方法及系统 Download PDFInfo
- Publication number
- CN114339430A CN114339430A CN202111510244.0A CN202111510244A CN114339430A CN 114339430 A CN114339430 A CN 114339430A CN 202111510244 A CN202111510244 A CN 202111510244A CN 114339430 A CN114339430 A CN 114339430A
- Authority
- CN
- China
- Prior art keywords
- video
- memory
- data
- frame
- hard decoder
- 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.)
- Granted
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
本发明提供一种基于硬解码的视频重定位播放方法及系统,视频播放进度发生改变后;判断播放进度是否到视频底端;如果播放进度未到底端,清空硬解码器内部数据,但保留与视频信息相关的设置,保留初始化申请的显存空间,并将显存信息重新传递给解码器;清空内存中剩余的视频流数据和显存中的帧缓存数据;根据重定位的播放时刻找到距离最近的IDR帧,将该IDR帧数据传入内存;硬解码器根据保留的配置,继续从原先内存位置读取数据,进行解码操作;将解码出的帧信息与保留的帧信息进行对比,确认一致后传入上层应用行显示,并进入正常播放流程。本发明避免了硬解码器初始化、显存重新申请等冗余操作,提高了重定位播放的效率,极大减少了硬件开销。
Description
技术领域
本发明属于视频处理技术领域,更具体地,涉及一种基于硬解码的视频重定位播放方法及系统。
背景技术
高清视频播放目前已普遍应用于个人电脑、移动端以及各类嵌入式平台中,以往由中央处理器(CentralProcessing Unit,CPU)来承担视频处理不仅效率较低,而且占用大量CPU资源,在多任务模式下容易引起系统卡顿。采用专用解码芯片如图形处理器(Graphics Processing Unit,GPU)、视频处理单元(VideoProcessing Unit,VPU)进行视频解码渲染处理已成为一种有效的解决方案,并被广泛使用。
为了使播放器能成功调用硬解码资源,主流操作系统均提供了相应的硬解码注册接口,如windows下的视频硬件加速(DirectX Video Acceleration,DXVA)或linux下ffmpeg硬解码接口等。播放器播放视频时就会通过这些硬解码接口来调用硬件资源完成视频帧的处理。拖动播放器的进度条来改变视频播放的位置是常见操作之一,当引入硬解码后,每次拖动进度条会引起解码器重置,接着重新初始化,显存释放后重新申请等操作,这是由于当改变视频播放进度时,会固定去调用相应的应用程序接口(ApplicationProgramming Interface,API)初始化硬解码器。频繁地拖动进度条会引起大量显存和底层硬件的读写操作,造成较大的硬件开销,极大影响硬件使用寿命,同时还会造成显存的资源浪费,影响其他操作对显存的使用。
发明内容
针对现有技术的缺陷,本发明的目的在于提供一种基于硬解码的视频重定位播放方法及系统,旨在解决现有视频重定位播放方法会引起大量显存和底层硬件的读写操作,造成较大的硬件开销,极大影响硬件使用寿命,同时还会造成显存的资源浪费,影响其他操作对显存的使用的问题。
为实现上述目的,第一方面,本发明提供一种基于硬解码的视频重定位播放方法,包括如下步骤:
判断视频当前播放进度是否发生重定位;
若视频当前播放进度发生重定位,且重定位后的播放进度未达到视频底端,则将预先为视频分配的硬解码器中与之前播放进度处相关的视频数据清空,并保留所述硬解码器中能够使硬解码器直接对所述视频进行解码的相关设置数据;
保留初始播放所述视频时为其分配的显存,并将所述显存的信息发送给所述硬解码器;所述显存包括第一区域和第二区域,所述第一区域用于存储帧缓存数据,所述第二区域用于显示所需显示的图像;
清空预先为所述视频分配的内存中剩余的图像帧的压缩数据,并清空所述显存中的帧缓存数据;
根据视频当前的播放进度找到处于当前播放进度之前,且距离当前播放进度最近的立即刷新图像(Instantaneous Decoding Refresh,IDR)帧,并将从所述IDR帧开始的第一个待解码图像帧的压缩数据传入内存;
所述硬解码器根据保留的所述相关设置数据从所述内存中读取数据并进行解码,每解码出一个图像帧后,将该解码后的图像帧存入显存的第一区域作为帧缓存,同时将该解码后图像帧的显示时间戳信息与当前播放进度的显示时间戳信息进行对比,若不一致则继续将下一个待解码图像帧的压缩数据传入内存,以便硬解码器对下一个待解码图像帧进行解码,并将解码后的图像帧存入显存的第一区域,直至时间戳一致后,将时间戳一致的解码后的图像帧从第一区域传入显存的第二区域进行显示,并进入正常视频播放流程。
在一个可选的实施例中,若视频当前的播放进度发生重定位,且重定位后的播放进度达到视频底端,则释放为所述视频分配的显存,关闭所述硬解码器。
在一个可选的实施例中,所述将预先为视频分配的硬解码器中与之前播放进度处相关的视频数据清空,并保留所述硬解码器中能够使硬解码器直接对所述视频进行解码的相关设置数据,具体为:
向所述硬解码器中传入空的数据包,直至消耗完硬解码器中的数据,将硬解码器冲刷成初始状态,以便清空与之前播放进度处相关的视频数据;
将所述相关设置数据传入硬解码器,所述相关设置数据包括:视频的信息、为待解码图像帧的压缩数据分配的内存信息以及为解码后图像帧分配的显存信息;所述视频的信息包括:视频的编码格式、分辨率以及帧率。
在一个可选的实施例中,所述保留初始播放所述视频时为其分配的显存,将所述显存的信息发送给所述硬解码器,具体为:
将视频的帧缓存的指针指向所述显存的起始位置,并清空显存中的数据;
将所述显存的起始位置地址、空间大小以及读写权限信息发送给所述硬解码器。
在一个可选的实施例中,所述根据视频当前的播放进度找到处于当前播放进度之前,且距离当前播放进度最近的立即刷新图像IDR帧,具体为:
根据视频当前播放进度的显示时间找到当前图像帧对应的画面组(Group ofPictures,GOP),再从GOP中搜寻到所述IDR帧。
第二方面,本发明提供了一种基于硬解码的视频重定位播放系统,包括:
重定位判断单元,用于判断视频当前播放进度是否发生重定位;
重定位处理单元,用于若视频当前播放进度发生重定位,且重定位后的播放进度未达到视频底端,则将预先为视频分配的硬解码器中与之前播放进度处相关的视频数据清空,并保留所述硬解码器中能够使硬解码器直接对所述视频进行解码的相关设置数据;
显存处理单元,用于保留初始播放所述视频时为其分配的显存,并将所述显存的信息发送给所述硬解码器;所述显存包括第一区域和第二区域,所述第一区域用于存储帧缓存数据,所述第二区域用于显示所需显示的图像;
数据清空单元,用于清空预先为所述视频分配的内存中剩余的图像帧的压缩数据,并清空所述显存中的帧缓存数据;
IDR帧确认单元,用于根据视频当前的播放进度找到处于当前播放进度之前,且距离当前播放进度最近的IDR帧,并将从所述IDR帧开始的第一个待解码图像帧的压缩数据传入内存;
解码播放单元,用于指示硬解码器根据保留的所述相关设置数据从所述内存中读取数据并进行解码,每解码出一个图像帧后,将该解码后的图像帧存入显存的第一区域作为帧缓存,同时将该解码后图像帧的显示时间戳信息与当前播放进度的显示时间戳信息进行对比,若不一致则继续将下一个待解码图像帧的压缩数据传入内存,以便硬解码器对下一个待解码图像帧进行解码,并将解码后的图像帧存入显存的第一区域,直至时间戳一致后,将时间戳一致的解码后的图像帧从第一区域传入显存的第二区域进行显示,并进入正常视频播放流程。
在一个可选的实施例中,重定位处理单元,还用于若视频当前的播放进度发生重定位,且重定位后的播放进度达到视频底端,则释放为所述视频分配的显存,关闭所述硬解码器。
在一个可选的实施例中,所述重定位处理单元向所述硬解码器中传入空的数据包,直至消耗完硬解码器中的数据,将硬解码器冲刷成初始状态,以便清空与之前播放进度处相关的视频数据;以及将所述相关设置数据传入硬解码器,所述相关设置数据包括:视频的信息、为待解码图像帧的压缩数据分配的内存信息以及为解码后图像帧分配的显存信息;所述视频的信息包括:视频的编码格式、分辨率以及帧率。
在一个可选的实施例中,所述显存处理单元保留初始播放所述视频时为其分配的显存,将所述显存的信息发送给所述硬解码器,具体为:将视频的帧缓存的指针指向所述显存的起始位置,并清空显存中的数据;将所述显存的起始位置地址、空间大小以及读写权限信息发送给所述硬解码器。
在一个可选的实施例中,所述IDR帧确认单元根据视频当前播放进度的显示时间找到当前图像帧对应的GOP,再从GOP中搜寻到所述IDR帧。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
本发明提供一种基于硬解码的视频重定位播放方法及系统,在视频流硬解码时,当视频改变进度播放时,视频的基本信息并未改变,硬解码器和相应的显存资源并不需要释放后重新申请,只需要清空解码器的状态,保留视频信息的设置,重新传入IDR帧,仍然可以正常解码。因此,本发明中改变视频播放进度无需重复进行硬解码资源的释放和重新申请显存,就能够保证视频的正常播放,且播放位置精准,有助于提高视频播放的稳定性,避免冗余操作,提高了硬件资源的利用率。
附图说明
图1是相关技术中的一种基于硬解码的视频重定位播放方法的流程示意图;
图2是本发明实施例提供的基于硬解码的视频重定位播放方法的流程图;
图3是本发明一示例性实施例中基于硬解码的视频重定位播放方法流程图;
图4是本发明图3中步骤S2的子流程图;
图5是本发明图3中步骤S5的子流程图;
图6是本发明图3中步骤S6的子流程图;
图7是本发明实施例提供的基于硬解码的视频重定位播放系统架构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明涉及视频处理技术,具体涉及一种基于硬解码的视频重定位播放方法及系统。当视频硬解码且播放进度发生改变时,通常需要对硬解码器重新释放再初始化,并重新进行显存申请,因此,频繁地改变视频播放进度会对硬件和显存进行大量操作,造成较大负荷,且播放时一般从I帧进行播放,难以准确定位;本发明对该过程进行了改进,当播放进度改变时,保留该播放时刻的帧信息,清空硬解码器内部数据,但保留与视频信息相关的设置,保留原来申请的显存空间,并将显存空间信息重新传递给解码器;在播放视频时,将解码出的图像帧与播放时刻的帧信息进行对比,确保播放的是正确的图像帧;该方法不仅保证了视频重定位后仍可正常播放,且播放的位置精准,还避免了硬解码器初始化、显存重新申请等冗余操作,提高了重定位播放的效率,极大减少了硬件开销。
为了避免视频硬解码时播放进度改变引起的冗余操作,本发明提出了一种基于硬解码的视频重定位播放的方法。实现了当播放器改变视频播放进度时,不需要重复释放申请硬解码资源,视频就能正常播放,提高了视频播放的稳定性和硬解码资源的利用效率。
为实现上述目的,本发明提供的技术方案如下:
视频正常播放时,播放进度发生改变;
判断播放进度是否到视频底端,如果已经到达,释放显存,关闭解码器,如果播放进度未到底端,清空硬解码器内部数据,但保留与视频信息相关的设置,保留初始化申请的显存空间,并将显存空间信息重新传递给解码器;
清空内存中剩余的视频流数据和显存中的帧缓存数据;
根据重定位的播放时刻找到距离最近的IDR帧,将该IDR帧数据传入内存;
硬解码器根据保留的配置,继续从原先内存位置读取数据,进行解码操作;
将解码出的帧信息与保留的帧信息进行对比,确认一致后传入上层应用进行显示,并进入正常播放流程。
具体地,图1是相关技术中的一种基于硬解码的视频重定位播放方法的流程示意图,从图1所示,当视频正常播放时,改变播放进度,会首先去判断播放进度是否已经到底,若已经到底播放会结束,若还有视频需要播放会进行后续步骤。接着播放器会释放显存,关闭解码器,再重新读取视频帧信息,进行硬解码器的初始化流程,重新申请显存,最后进行正常的解码动作,进入视频播放的正常流程。
然而从图1所示的技术方案中,每次改变播放进度,硬解码资源都会被重新释放再申请,势必会造成过于频繁的硬件读写操作,这样会带来以下弊端:1.频繁的硬件操作会影响视频播放的稳定性,尤其是快速拖动进度条时,容易导致宕机;2.给解码芯片带来很大负担,影响使用寿命;3.为显存管理带来难度,使显存空间过于碎片化。
实际上,当视频改变进度播放时,视频的基本信息并未改变,硬解码器和相应的显存资源并不需要释放后重新申请,只需要清空解码器的状态,保留视频信息的设置,重新传入IDR帧,仍然可以正常解码。基于此,本发明通过对硬解码重定位播放流程进行改进,避免了视频改变播放进度时频繁进行硬解码资源的释放申请操作,解决了相关技术中存在的上述问题。
为对本发明进行进一步说明,提供下列实施例:
图2是本发明实施例提供的基于硬解码的视频重定位播放方法的流程图;如图2所示,包括如下步骤:
S101,判断视频当前播放进度是否发生重定位;
S102,若视频当前播放进度发生重定位,且重定位后的播放进度未达到视频底端,则将预先为视频分配的硬解码器中与之前播放进度处相关的视频数据清空,并保留所述硬解码器中能够使硬解码器直接对所述视频进行解码的相关设置数据;
S103,保留初始播放所述视频时为其分配的显存,并将所述显存的信息发送给所述硬解码器;所述显存包括第一区域和第二区域,所述第一区域用于存储帧缓存数据,所述第二区域用于显示所需显示的图像;
S104,清空预先为所述视频分配的内存中剩余的图像帧的压缩数据,并清空所述显存中的帧缓存数据;
S105,根据视频当前的播放进度找到处于当前播放进度之前,且距离当前播放进度最近的IDR帧,并将从所述IDR帧开始的第一个待解码图像帧的压缩数据传入内存;
S106,所述硬解码器根据保留的所述相关设置数据从所述内存中读取数据并进行解码,每解码出一个图像帧后,将该解码后的图像帧存入显存的第一区域作为帧缓存,同时将该解码后图像帧的显示时间戳信息与当前播放进度的显示时间戳信息进行对比,若不一致则继续将下一个待解码图像帧的压缩数据传入内存,以便硬解码器对下一个待解码图像帧进行解码,并将解码后的图像帧存入显存的第一区域,直至时间戳一致后,将时间戳一致的解码后的图像帧从第一区域传入显存的第二区域进行显示,并进入正常视频播放流程。
在一个可选的实施例中,若视频当前的播放进度发生重定位,且重定位后的播放进度达到视频底端,则释放为所述视频分配的显存,关闭所述硬解码器。
在一个可选的实施例中,所述将预先为视频分配的硬解码器中与之前播放进度处相关的视频数据清空,并保留所述硬解码器中能够使硬解码器直接对所述视频进行解码的相关设置数据,具体为:
向所述硬解码器中传入空的数据包,直至消耗完硬解码器中的数据,将硬解码器冲刷成初始状态,以便清空与之前播放进度处相关的视频数据;
将所述相关设置数据传入硬解码器,所述相关设置数据包括:视频的信息、为待解码图像帧的压缩数据分配的内存信息以及为解码后图像帧分配的显存信息;所述视频的信息包括:视频的编码格式、分辨率以及帧率。
在一个可选的实施例中,所述保留初始播放所述视频时为其分配的显存,将所述显存的信息发送给所述硬解码器,具体为:
将视频的帧缓存的指针指向所述显存的起始位置,并清空显存中的数据;
将所述显存的起始位置地址、空间大小以及读写权限信息发送给所述硬解码器。
在一个可选的实施例中,所述根据视频当前的播放进度找到处于当前播放进度之前,且距离当前播放进度最近的立即刷新图像IDR帧,具体为:
根据视频当前播放进度的显示时间找到当前图像帧对应的GOP,再从GOP中搜寻到所述IDR帧。
图3是本发明一示例性实施例中的一种硬解码视频重定位播放方法流程图,该方法可以包括以下步骤:
S1、操作播放器,引起视频播放进度改变,包括:
在视频播放窗口拖动进度条,滑动鼠标滚轮,按动上下方向键等方式改变视频当前的播放进度。
S2、判断播放进度是否到视频底端,如果已经到达底端,释放显存,关闭解码器,如果没有,将该播放时刻对应的帧信息进行存储,保留硬解码器相关设置,保留原来申请的显存空间,并将显存空间信息重新传递给解码器。
可选地,如图4所示,所述步骤S2包括如下子步骤:
S21:根据视频重定位的显示时间戳判断视频播放进度;
S22:若视频进度为尾端,释放用于存储视频流数据的内存和用于存储视频图像帧数据的显存,关闭硬解码器;
S23:若视频进度不为尾端,保留该播放时刻的帧信息,如帧的显示时间、解码时间等;
S24:清空硬解码器内部数据,保留视频信息相关设置,视频信息包括:视频的编码格式、分辨率、帧率等;
S25:保留原来申请的显存空间,并将显存空间信息重新传递给解码器,显存空间信息包括:显存的起始地址、空间大小、读写权限等;
S26:将帧缓存的指针指向显存的起始位置,并清空显存中的数据;
S3、清空内存中剩余的视频流数据和显存中的帧缓存数据;
S4、根据重定位的播放时刻找到距离最近的IDR帧,将该IDR帧数据传入内存,包括:
根据视频的播放时刻的显示时间找到该帧对应的GOP,再从GOP中搜寻到相应的IDR帧;
S5、硬解码器根据保留的初始化配置,继续从原先内存位置读取数据,进行解码操作;
可选地,如图5所示,所述步骤S5包括如下子步骤:
S51:将IDR帧数据传入硬解码器;
S52:硬解码器根据保留的配置,对流数据进行解码操作;
S53:硬解码器解码出图像数据,并将该数据传入显存区;
S6、将解码得到的图像数据放入初始化时申请的显存空间中,上层应用从该显存位置读取数据,完成图像显示。
可选的,如图6所示,所述的步骤S6包括如下子步骤:
S61:硬解码器根据显存空间信息,将解码出的图像帧数据传递给显存;
S62:将解码出的帧与需要播放的帧信息进行对比,若不是对应帧,继续解码,直到解码帧与播放帧一致;
S63:将解码出的播放帧从该显存位置通过直接存储器访问(Direct MemoryAccess,DMA)传输至内存;
S64:上层应用从内存读取数据,完成格式转化和渲染,与窗口进行融合显示。
图7是本发明实施例提供的基于硬解码的视频重定位播放系统架构图,如图7所示,包括:
重定位判断单元710,用于判断视频当前播放进度是否发生重定位;
重定位处理单元720,用于若视频当前播放进度发生重定位,且重定位后的播放进度未达到视频底端,则将预先为视频分配的硬解码器中与之前播放进度处相关的视频数据清空,并保留所述硬解码器中能够使硬解码器直接对所述视频进行解码的相关设置数据;
显存处理单元730,用于保留初始播放所述视频时为其分配的显存,并将所述显存的信息发送给所述硬解码器;所述显存包括第一区域和第二区域,所述第一区域用于存储帧缓存数据,所述第二区域用于显示所需显示的图像;
数据清空单元740,用于清空预先为所述视频分配的内存中剩余的图像帧的压缩数据,并清空所述显存中的帧缓存数据;
IDR帧确认单元750,用于根据视频当前的播放进度找到处于当前播放进度之前,且距离当前播放进度最近的IDR帧,并将从所述IDR帧开始的第一个待解码图像帧的压缩数据传入内存;
解码播放单元760,用于指示硬解码器根据保留的所述相关设置数据从所述内存中读取数据并进行解码,每解码出一个图像帧后,将该解码后的图像帧存入显存的第一区域作为帧缓存,同时将该解码后图像帧的显示时间戳信息与当前播放进度的显示时间戳信息进行对比,若不一致则继续将下一个待解码图像帧的压缩数据传入内存,以便硬解码器对下一个待解码图像帧进行解码,并将解码后的图像帧存入显存的第一区域,直至时间戳一致后,将时间戳一致的解码后的图像帧从第一区域传入显存的第二区域进行显示,并进入正常视频播放流程。
可以理解的是,图7中各个单元的详细功能实现可参见前述方法实施例中的详细介绍,在此不做赘述。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于硬解码的视频重定位播放方法,其特征在于,包括如下步骤:
判断视频当前播放进度是否发生重定位;
若视频当前播放进度发生重定位,且重定位后的播放进度未达到视频底端,则将预先为视频分配的硬解码器中与之前播放进度处相关的视频数据清空,并保留所述硬解码器中能够使硬解码器直接对所述视频进行解码的相关设置数据;
保留初始播放所述视频时为其分配的显存,并将所述显存的信息发送给所述硬解码器;所述显存包括第一区域和第二区域,所述第一区域用于存储帧缓存数据,所述第二区域用于显示所需显示的图像;
清空预先为所述视频分配的内存中剩余的图像帧的压缩数据,并清空所述显存中的帧缓存数据;
根据视频当前的播放进度找到处于当前播放进度之前,且距离当前播放进度最近的立即刷新图像IDR帧,并将从所述IDR帧开始的第一个待解码图像帧的压缩数据传入内存;
所述硬解码器根据保留的所述相关设置数据从所述内存中读取数据并进行解码,每解码出一个图像帧后,将该解码后的图像帧存入显存的第一区域作为帧缓存,同时将该解码后图像帧的显示时间戳信息与当前播放进度的显示时间戳信息进行对比,若不一致则继续将下一个待解码图像帧的压缩数据传入内存,以便硬解码器对下一个待解码图像帧进行解码,并将解码后的图像帧存入显存的第一区域,直至时间戳一致后,将时间戳一致的解码后的图像帧从第一区域传入显存的第二区域进行显示,并进入正常视频播放流程。
2.根据权利要求1所述的视频重定位播放方法,其特征在于,若视频当前的播放进度发生重定位,且重定位后的播放进度达到视频底端,则释放为所述视频分配的显存,关闭所述硬解码器。
3.根据权利要求1所述的视频重定位播放方法,其特征在于,所述将预先为视频分配的硬解码器中与之前播放进度处相关的视频数据清空,并保留所述硬解码器中能够使硬解码器直接对所述视频进行解码的相关设置数据,具体为:
向所述硬解码器中传入空的数据包,直至消耗完硬解码器中的数据,将硬解码器冲刷成初始状态,以便清空与之前播放进度处相关的视频数据;
将所述相关设置数据传入硬解码器,所述相关设置数据包括:视频的信息、为待解码图像帧的压缩数据分配的内存信息以及为解码后图像帧分配的显存信息;所述视频的信息包括:视频的编码格式、分辨率以及帧率。
4.根据权利要求1所述的视频重定位播放方法,其特征在于,所述保留初始播放所述视频时为其分配的显存,将所述显存的信息发送给所述硬解码器,具体为:
将视频的帧缓存的指针指向所述显存的起始位置,并清空显存中的数据;
将所述显存的起始位置地址、空间大小以及读写权限信息发送给所述硬解码器。
5.根据权利要求1至4任一项所述的视频重定位播放方法,其特征在于,所述根据视频当前的播放进度找到处于当前播放进度之前,且距离当前播放进度最近的立即刷新图像IDR帧,具体为:
根据视频当前播放进度的显示时间找到当前图像帧对应的画面组GOP,再从GOP中搜寻到所述IDR帧。
6.一种基于硬解码的视频重定位播放系统,其特征在于,包括:
重定位判断单元,用于判断视频当前播放进度是否发生重定位;
重定位处理单元,用于若视频当前播放进度发生重定位,且重定位后的播放进度未达到视频底端,则将预先为视频分配的硬解码器中与之前播放进度处相关的视频数据清空,并保留所述硬解码器中能够使硬解码器直接对所述视频进行解码的相关设置数据;
显存处理单元,用于保留初始播放所述视频时为其分配的显存,并将所述显存的信息发送给所述硬解码器;所述显存包括第一区域和第二区域,所述第一区域用于存储帧缓存数据,所述第二区域用于显示所需显示的图像;
数据清空单元,用于清空预先为所述视频分配的内存中剩余的图像帧的压缩数据,并清空所述显存中的帧缓存数据;
IDR帧确认单元,用于根据视频当前的播放进度找到处于当前播放进度之前,且距离当前播放进度最近的立即刷新图像IDR帧,并将从所述IDR帧开始的第一个待解码图像帧的压缩数据传入内存;
解码播放单元,用于指示硬解码器根据保留的所述相关设置数据从所述内存中读取数据并进行解码,每解码出一个图像帧后,将该解码后的图像帧存入显存的第一区域作为帧缓存,同时将该解码后图像帧的显示时间戳信息与当前播放进度的显示时间戳信息进行对比,若不一致则继续将下一个待解码图像帧的压缩数据传入内存,以便硬解码器对下一个待解码图像帧进行解码,并将解码后的图像帧存入显存的第一区域,直至时间戳一致后,将时间戳一致的解码后的图像帧从第一区域传入显存的第二区域进行显示,并进入正常视频播放流程。
7.根据权利要求6所述的视频重定位播放系统,其特征在于,所述重定位处理单元,还用于若视频当前的播放进度发生重定位,且重定位后的播放进度达到视频底端,则释放为所述视频分配的显存,关闭所述硬解码器。
8.根据权利要求6所述的视频重定位播放系统,其特征在于,所述重定位处理单元向所述硬解码器中传入空的数据包,直至消耗完硬解码器中的数据,将硬解码器冲刷成初始状态,以便清空与之前播放进度处相关的视频数据;以及将所述相关设置数据传入硬解码器,所述相关设置数据包括:视频的信息、为待解码图像帧的压缩数据分配的内存信息以及为解码后图像帧分配的显存信息;所述视频的信息包括:视频的编码格式、分辨率以及帧率。
9.根据权利要求6所述的视频重定位播放系统,其特征在于,所述显存处理单元保留初始播放所述视频时为其分配的显存,将所述显存的信息发送给所述硬解码器,具体为:将视频的帧缓存的指针指向所述显存的起始位置,并清空显存中的数据;将所述显存的起始位置地址、空间大小以及读写权限信息发送给所述硬解码器。
10.根据权利要求6至9任一项所述的视频重定位播放系统,其特征在于,所述IDR帧确认单元根据视频当前播放进度的显示时间找到当前图像帧对应的画面组GOP,再从GOP中搜寻到所述IDR帧。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111510244.0A CN114339430B (zh) | 2021-12-10 | 2021-12-10 | 一种基于硬解码的视频重定位播放方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111510244.0A CN114339430B (zh) | 2021-12-10 | 2021-12-10 | 一种基于硬解码的视频重定位播放方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114339430A true CN114339430A (zh) | 2022-04-12 |
CN114339430B CN114339430B (zh) | 2023-04-28 |
Family
ID=81050824
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111510244.0A Active CN114339430B (zh) | 2021-12-10 | 2021-12-10 | 一种基于硬解码的视频重定位播放方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114339430B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116737248A (zh) * | 2023-08-09 | 2023-09-12 | 武汉凌久微电子有限公司 | 一种硬解码器的休眠和唤醒方法 |
CN117241043A (zh) * | 2023-11-10 | 2023-12-15 | 深圳中微电科技有限公司 | 视频硬件解码错误恢复的方法、系统及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190272088A1 (en) * | 2018-03-05 | 2019-09-05 | Qingdao Hisense Media Network Technology Co., Ltd. | Playing media |
CN110418186A (zh) * | 2019-02-01 | 2019-11-05 | 腾讯科技(深圳)有限公司 | 音视频播放方法、装置、计算机设备和存储介质 |
WO2020151397A1 (zh) * | 2019-01-23 | 2020-07-30 | 上海哔哩哔哩科技有限公司 | 软硬件解码分辨率无缝切换方法、装置及存储介质 |
CN113709574A (zh) * | 2021-03-17 | 2021-11-26 | 腾讯科技(北京)有限公司 | 视频截图方法、装置、电子设备及计算机可读存储介质 |
-
2021
- 2021-12-10 CN CN202111510244.0A patent/CN114339430B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190272088A1 (en) * | 2018-03-05 | 2019-09-05 | Qingdao Hisense Media Network Technology Co., Ltd. | Playing media |
WO2020151397A1 (zh) * | 2019-01-23 | 2020-07-30 | 上海哔哩哔哩科技有限公司 | 软硬件解码分辨率无缝切换方法、装置及存储介质 |
CN110418186A (zh) * | 2019-02-01 | 2019-11-05 | 腾讯科技(深圳)有限公司 | 音视频播放方法、装置、计算机设备和存储介质 |
CN113709574A (zh) * | 2021-03-17 | 2021-11-26 | 腾讯科技(北京)有限公司 | 视频截图方法、装置、电子设备及计算机可读存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116737248A (zh) * | 2023-08-09 | 2023-09-12 | 武汉凌久微电子有限公司 | 一种硬解码器的休眠和唤醒方法 |
CN116737248B (zh) * | 2023-08-09 | 2023-11-14 | 武汉凌久微电子有限公司 | 一种硬解码器的休眠和唤醒方法 |
CN117241043A (zh) * | 2023-11-10 | 2023-12-15 | 深圳中微电科技有限公司 | 视频硬件解码错误恢复的方法、系统及存储介质 |
CN117241043B (zh) * | 2023-11-10 | 2024-03-19 | 深圳中微电科技有限公司 | 视频硬件解码错误恢复的方法、系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114339430B (zh) | 2023-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114339430A (zh) | 一种基于硬解码的视频重定位播放方法及系统 | |
US9317892B2 (en) | Method and device to augment volatile memory in a graphics subsystem with non-volatile memory | |
US7568057B2 (en) | Method and apparatus for maintaining synchronization of audio in a computing system | |
CN101951517B (zh) | 一种视频解码和播放的方法、系统、终端设备 | |
JP5914148B2 (ja) | Ssd(ソリッドステートドライブ)装置 | |
US20050123046A1 (en) | Method and device for sharing MPEG frame buffers | |
US20120278544A1 (en) | Flash memory controller | |
CN114189732B (zh) | 图像数据读写控制的方法及相关装置 | |
US7680992B1 (en) | Read-modify-write memory with low latency for critical requests | |
CN116737248B (zh) | 一种硬解码器的休眠和唤醒方法 | |
JP2010146084A (ja) | キャッシュメモリ制御部を備えるデータ処理装置 | |
JP4982354B2 (ja) | 情報処理装置 | |
US8285932B2 (en) | Mass storage system with improved usage of buffer capacity | |
US7613867B2 (en) | Information recording apparatus, information recording method and recording medium recording program | |
US7581072B2 (en) | Method and device for data buffering | |
CN111757034A (zh) | 一种基于fpga的视频同步显示方法、装置和存储介质 | |
JP4264582B2 (ja) | 情報処理装置および情報処理方法、プログラム、並びに記録媒体 | |
JP2000078526A (ja) | 画像再生装置 | |
JPH10229341A (ja) | データストリーム圧縮解除方法 | |
JP3619079B2 (ja) | Dvdオーディオ復号システムのビットストリーム緩衝および多重分離装置 | |
US6766415B1 (en) | Data caching method | |
JPH09261647A (ja) | 動画再生制御方法および動画再生制御装置 | |
JPH10191257A (ja) | ディジタル動画像復号化装置、及びディジタル動画像復号化方法 | |
JP2016154031A (ja) | Ssd(ソリッドステートドライブ)装置 | |
US20090092376A1 (en) | Video reproduction apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |