CN103310820A - 一种对多媒体播放器进行优化的方法 - Google Patents
一种对多媒体播放器进行优化的方法 Download PDFInfo
- Publication number
- CN103310820A CN103310820A CN2012100665025A CN201210066502A CN103310820A CN 103310820 A CN103310820 A CN 103310820A CN 2012100665025 A CN2012100665025 A CN 2012100665025A CN 201210066502 A CN201210066502 A CN 201210066502A CN 103310820 A CN103310820 A CN 103310820A
- Authority
- CN
- China
- Prior art keywords
- frame
- image
- video
- decoding
- loss rate
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/4302—Content synchronisation processes, e.g. decoder synchronisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/114—Adapting the group of pictures [GOP] structure, e.g. number of B-frames between two anchor frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/435—Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
- H04N21/4355—Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream involving reformatting operations of additional data, e.g. HTML pages on a television screen
- H04N21/4356—Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream involving reformatting operations of additional data, e.g. HTML pages on a television screen by altering the spatial resolution, e.g. to reformat additional data on a handheld device, attached to the STB
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N9/00—Details of colour television systems
- H04N9/64—Circuits for processing colour signals
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提供了一种对多媒体播放器进行优化的方法,该方法包括:根据解码速度进行自适应动态丢帧;在将图像从YCbCr格式转换为RGB格式时,采用算法级优化的方式,并采用降分辨率转换和并行转换的方式;将转换之后的图像输出到目标显示缓冲中。应用本发明能够提高视频播放的流畅性,不仅具有通用性,还能有效减少CPU和系统资源占用率。
Description
技术领域
本发明涉及多媒体播放技术,特别涉及一种对多媒体播放器进行优化的方法。
背景技术
现有的基于嵌入式设备或者Android平台的多媒体播放器可向用户提供视频硬件解码/显示、软件解码/显示的两种不同选择。当用户选择硬件解码/显示选项时,现有的播放器使用平台相关的接口进行硬件解码和显示的调用,其实现由各硬件商提供;当用户选择软件解码/显示选项时,现有的播放器使用软件解码器进行视频解码,并调用软件显示接口进行显示。
现有的基于嵌入式或者Android平台的多媒体软件播放器中所有模块与硬件系统无关,采用多线程的软件播放控制,由于CPU占用率和系统资源使用率较高且解码速度较慢,软件方案不能流畅播放MPEG-4、H.264等SD、720p、HD分辨率的视频。而使用硬件解码方案时,由于不同硬件的底层接口和实现有所不同,其硬件解码方案的通用性和可移植性较低;另外,硬件解码器对视频格式(如MPEG4、H.264)以及档次(profile)、级别(level)和分辨率等的支持有限,在不同硬件设备上会有不同表现。使用通用的软件解码方案可克服硬件解码方案的这个问题,但是其性能有很大局限。
为此,现有技术提出了一些优化方案。现有的对视频播放器的优化主要集中于解码器本身的优化和减少内存操作的优化,对视频解码器中的IDCT、反量化、熵解码、运动补偿、环路滤波等各模块、以及降分辨率解码、色彩转换、图像缩放等模块进行算法优化或者专门的硬件优化,但是,优化的通用性不强,优化程度有限。
发明内容
本发明提供了一种对多媒体播放器进行优化的方法,以提高视频播放的流畅性,并减少CPU和系统资源占用率。
本发明提供的一种对多媒体播放器进行优化的方法,包括:
A、根据解码速度进行自适应动态丢帧;
B、在将图像从YCbCr格式转换为红蓝绿(RGB)格式时,采用算法级优化的方式,并采用降分辨率转换和并行转换的方式;
C、将转换之后的图像输出到目标显示缓冲中。
较佳地,所述A包括:
A1、设置目标帧率,所述目标帧率小于视频帧的原始帧率;
A2、动态监测解码速度,根据解码速度和目标帧率确定实时丢帧率,根据所述实时丢帧率在时间上对视频帧进行自适应下采样。
较佳地,所述A2包括:
A21、根据目标帧率和原始帧率,计算目标丢帧率;
A22、根据图像组(GOP)的结构,按照以下优先级选择帧进行丢解码:普通B帧、分级B帧的最低一级B帧、分级P帧的最低一级P帧、闭环GOP的最后一帧P帧;对帧进行丢解码是指:不对帧进行任何处理,而直接丢弃;
A23、当可被丢解码的帧数不够目标丢帧率时,根据解码速度和目标帧率确定实时丢帧率,根据实时丢帧率选择帧进行丢显示;对帧进行丢显示是指:对帧进行解码,但不予显示输出。
较佳地,在按照优先级选择帧进行丢弃时,按照目标丢帧率均匀丢帧;或者,在可被丢弃的帧数不够目标丢帧率时,将所有丢解码的帧全部丢弃。
较佳地,所述A23包括:
在每个GOP内计算其中一帧视频的解码速度与文件中已解码的所有帧的平均解码速度的比值;
使用该比值与丢显示的目标丢帧率的乘积作为当前GOP内的实时丢帧率;
在一个GOP内使用该GOP的实时丢帧率对帧进行均匀丢显示。
较佳地,所述B包括:
B1、对YCbCr格式到RGB格式的转换运算进行定点化、移除乘法、多点同时运算、查表法移除加法及限幅运算实现算法级优化,使得转换运算中只包含移位、查表、逻辑操作和少量的加法;
B2、当播放质量要求是流畅播放优先时,根据显示区域的大小,采用隔点运算的方式降低分辨率;
B3、在使用多线程并行解码的解码器的每个解码线程内部,将YCbCr到RGB转换模块与解码模块级联,实现YCbCr格式到RGB格式的转换的并行操作。
较佳地,所述B2中,使用1/2~1/16的规则比例降低分辨率。
较佳地,所述C包括:
C1、根据缩放比例,确定是否进行缩放,并确定缩放的方式和显示方式;
C2、根据确定的缩放方式和显示方式对图像进行缩放和显示,其中包括对缩放方式进行优化,并且,缩放过程中不使用额外分配的内存;
C3、将缩放之后的图像或原始图像直接拷贝到目标显示缓冲中。
较佳地,所述C1包括:
若输入图像的宽、高均小于目标显示缓冲对应尺寸的1/2,对图像采用双线性插值法进行放大;放大过程中保持源图像的宽高比,并将不足全屏尺寸的一边置于显示区域对应边的中心位置,两侧不足尺寸的区域显示为黑边;
否则,若输入图像的宽、高均小于或等于目标显示缓冲对应尺寸,则不对图像进行缩放,直接将图像拷贝到显示区域的中心,剩余的显示区域显示为黑边;
否则,对图像使用最近邻域法缩小到屏幕尺寸;缩小过程中保持源图像的宽高比,并将不足全屏尺寸的一边置于显示区域对应边的中心位置,两侧不足尺寸的区域显示为黑边。
较佳地,对最近邻域法和双线性插值法进行优化的方式包括:
对坐标运算进行定点化;
对转换中需要用到的坐标在第一帧的运算时进行建表,之后所有帧的坐标不需要计算而可以通过查表和简单的加法运算得出;
最近邻域法的一次运算同时处理一个像素的3个色彩分量。
由上述技术方案可见,本发明对视频解码、色彩转换、图像缩放、解码速率控制、视频帧显示、系统内存使用以及帧缓存使用进行了结合优化,以提高视频播放流畅性为最终目的,不仅具有通用性,还能有效减少CPU和系统资源占用率,提高播放的流畅性。
并且,本发明技术方案优化后的多媒体软件播放器中的所有模块均使用与硬件无关的软件实现,是一种具有通用性的多媒体播放方法,并且可广泛支持各种视频格式。
本发明技术方案对基于嵌入式设备或者Android平台的多媒体软件播放器中的视频解码和显示进行若干优化之后,可支持常见视频格式(MPEG-1/2/4、H.264等)的SD(720x480p、720x576i)分辨率、720p(1280x720p)分辨率,以及部分HD(1920x1080)分辨率视频的流畅播放。其中,三种主要的优化步骤相对于未经优化的对应算法可分别减少平均30%(1/3丢帧率)、75%(RGB转换时未降分辨率、在双核CPU上使用6线程并行解码及转换)以及90%(HD到1024x562分辨率的缩小)以上的运算量。
附图说明
图1为基于Android平台的多媒体软件播放器框架示意图;
图2为图1中多线程播放器核的逻辑构成示意图,包括模块构成、基本流程和各部分的关系;
图3为RGB快速转换方法中限幅表中各区间的长度和数值示意;
图4为YCbCr 4:2:0子采样格式到RGB转换方法中一次转换计算同时处理4个亮度像素和2个色差分量的示意图;
图5为YCbCr 4:2:0子采样格式到RGB的1/2降分辨率转换示意图;
图6为从目标图像经过坐标变换,对应到原图像中像素的位置S以及原图像在S周围的4个临近像素A、B、C、D的示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步详细说明。
基于嵌入式设备或者Android平台的多媒体软件播放器结构类似,图1示例为Android平台上的多媒体软件播放器结构。其中最上层是Android应用层,通过JAVA和JNI本地函数实现播放器的调用。媒体播放器由媒体解析模块和播放器核组成:其中媒体解析模块负责解析文件传输协议和多媒体文件格式;播放器核是整个播放器的逻辑核心,由逻辑控制模块,视频解码模块、音频解码模块、视频显示模块和音频播放模块组成,每个模块启动一个线程。逻辑控制模块启动主线程,进行多媒体数据的解复用和整个播放器的逻辑控制;其它四个模块也分别启动一个线程进行视频解码、显示、音频解码、播放。其中音视频的解码模块分别调用开源的多媒体软件框架FFMPEG进行软件解码;通过Android适配模块的调用,视频的显示模块使用Android平台的Surface接口进行视频的显示,音频的播放模块使用Android系统的Audio Track接口进行音频的播放。其中,Android的Surface和Audio Track均为Android平台通用的软件接口。
其多线程播放器核的逻辑构成如图2。解复用线程通过输入缓冲,读取输入的多媒体数据并进行解复用,输出原始流的数据包(如MPEG-4,H.264的一帧压缩数据)分别存储于音频、视频包缓冲。音频、视频解码线程从各自的输入缓冲中读取数据包,调用FFMPEG软件解码器进行解码,输出解码后的YCbCr数据和PCM数据。对视频解码器输出的YCbCr数据进行RGB转换,转换后的RGB数据经过缩放,调整到与Surface帧缓冲相同的尺寸,并且直接写入Surface的帧缓冲。这样就省略了显示视频帧时需要分配和操作的系统内存。视频显示线程访问共享数据和逻辑控制信息,以控制每一帧缓冲中RGB数据的显示时机,并与音频播放线程进行相同的逻辑控制以完成音视频帧的同步播放。
基于对现有技术的分析,本申请主要从以下几方面对现有技术进行改善:
1)现有对视频解码器进行优化的技术方案中,通常是对各模块单独进行优化,而没有将各模块进行结合优化,因此,对整个视频播放器优化的针对性和通用性不强,优化程度有限。
2)现有的视频解码优化方法中,自适应丢帧的方法大都采用时间上的均匀重采样或者基于图像内容的复杂的自适应丢帧算法。
3)现有的色彩空间转换的优化算法中,采用了算法级的优化和基于硬件的特定优化操作,以提高转换速度。
本发明对基于嵌入式设备或者Android平台的多媒体软件播放器中视频解码、显示模块的优化方法包括几个方面:基于解码速度的动态自适应丢帧方法、YCbCr到RGB色彩空间的快速转换方法和任意比例的图像快速缩放方法。详细说明如下:
1)基于解码速度的动态自适应丢帧方法
该丢帧方法的作用是在时间轴上对视频帧进行下采样(如将30帧/秒的视频下采样为20帧/秒的视频,则采样率为3∶2),在不降低用户观感的情况下降低视频的帧率,以加快视频解码的平均速度。该算法是基于解码速度的动态自适应丢帧方法,包括丢解码和丢显示两个步骤,前者对选定丢弃的视频帧不进行处理而直接丢弃输入数据,后者需要对选定丢弃的视频帧先进行解码而不存储和显示解码输出的视频帧。本方法具体包括以下三部分:
i)丢解码和丢显示的选择机制
在视频序列中,由于帧间预测的存在,任意丢弃一帧数据不作解码,有可能使后续帧的解码缺少参考帧而造成解码不匹配以及预测链中的错误传播。本方法选择丢解码或丢显示方法的依据是:按照目标帧率,丢解码时,优先选择丢弃不会作为其它帧的参考帧的图像;若不存在这样的图像或者丢弃这些图像后还不能将帧率降到目标帧率,则再使用丢显示方法。
ii)丢解码方法
普通B帧、分级B帧的最低级B帧、分级P帧的最低级P帧、闭环GOP内的最后一帧P帧都不会作为其它帧的参考图像,因此本方法将这些帧选为可丢弃帧。根据目标帧率和原始帧率的计算结果,解码器在可丢弃帧中进行选择,选定全部或部分可丢弃帧进行丢弃。即解码器不处理这些帧的输入数据,不更新参考图像的缓冲和索引,直接丢弃输入数据包,并等待下一帧输入数据。本方法节省了若干帧的整帧解码、色彩空间转换、缩放以及显示的时间,能够显著提高视频的平均解码、显示速度。
iii)丢显示方法
若GOP结构中不存在B帧、分级P帧、闭环GOP,或者ii)中丢解码方法还不能将原始帧率降到目标帧率,本方法将进一步选择丢显示方法。该方法不改变解码过程,即所有视频帧均进行解码,但被选择的可丢弃帧将不会输出解码后的图像,以节省这些帧的色彩空间转换、缩放以及显示的时间。选取可丢弃帧的方法具体为:
计算本步骤所需的丢帧率f(目标丢帧率去除上一步骤的丢帧率),每隔N帧计算当前一帧的解码时间tc以及当前帧之前所有帧的平均解码时间ta,设定实时丢帧率为fr=f×tc÷ta。其中N帧为一个实时丢帧单位,在一个实时丢帧单位中采用均匀丢帧的策略,丢帧率为fr,在一个实时丢帧单位内按照该丢帧率选择可丢弃帧。使用实时丢帧率的目的是:在解码较慢的时间段内提高丢帧率,在解码较快的时间段内降低丢帧率,而在一个N帧的单位内采取均匀丢帧的策略,这样既可以提高视频播放的平均速度,又不会影响视频播放的平滑性和用户观感。
另外,与播放器丢弃迟到视频帧的方法无关,本方法选定丢弃的视频帧不会在解码器输出,其目的是在音视频同步逻辑中尽可能减少迟到的视频帧。
2)YCbCr到RGB色彩空间的快速转换方法
对解码器输出的YCbCr图像进行RGB色彩空间的转换中,由于浮点运算、内存操作、逐点计算需要消耗大量的系统资源和计算量,本发明对该转换方法进行了优化,主要包括以下步骤:
i)算法级优化
算法级优化包括对YCbCr到RGB转换运算的定点化、移除乘法、多点同时运算、查表法移除加法及限幅运算,以极大地减少消耗CPU资源的运算。
ii)降分辨率RGB转换
当YCbCr图像分辨率远大于目标显示缓冲的尺寸,并且用户选择“流畅播放优先”的播放选项时,本发明可对解码后的图像进行规则比例(即水平、垂直方向同比例缩小)的降分辨率RGB转换,以使转换后的RGB图像尺寸接近于目标显示缓冲尺寸。其中包括1/2、1/3、1/4...1/16的规则比例降分辨率RGB转换。该方法可极大地减少参与RGB转换运算的像素点数,提高转换速度。
iii)并行转换
对于支持多线程并行解码的软件解码器,YCbCr到RGB的转换模块在每个解码线程结束之前进行操作。这样,转换模块与各自解码线程内的解码模块级联,每一帧图像的转换操作也是并行的。该方法对于多核平台的优化效果非常显著,对于单核平台也能在一定程度上提高解码和转换的速度,且不会对整个播放器的性能造成影响。
3)任意比例的图像快速缩放方法
经过转换的RGB图像尺寸可能与目标显示缓冲的尺寸不同,本发明使用任意比例的图像快速缩放方法将输出图像缩放到目标显示缓冲的尺寸。具体包括:
i)直接写入目标显示缓冲的无内存操作
为避免多余的内存分配和内存操作,缩放模块在缩放每一帧视频图像之前通过适配层获得目标显示缓冲地址的指针,缩放模块不为目的图像分配内存而直接将目的图像写入该指针所指的地址中,随后视频显示模块会决定何时显示该地址中已写入的RGB图像。
ii)根据缩放比例选择缩放方法和显示方式
对于不同分辨率的图像,采用不同的缩放或者显示方式:
若图像分辨率小于屏幕尺寸的1/2(即横、纵尺寸均小于目标显示缓冲对应尺寸的1/2),对图像采用双线性插值法进行放大;放大过程中保持源图像的宽高比,并将不足全屏尺寸的一边置于显示区域对应边的中心位置,两侧不足尺寸的区域显示为黑边(RGB分量均为初始值0);这是由于小分辨率图像的解码速度足够快,因此可采用计算量较为复杂、图像放大质量较好的双线性插值法;
否则,若图像分辨率小于或等于屏幕尺寸(即横、纵尺寸均小于或等于目标显示缓冲对应尺寸),不对图像进行缩放,直接将图像拷贝到显示区域的中心,剩余的显示区域显示为黑边;这是由于图像分辨率接近于显示尺寸,因此直接使用原始大小进行显示,可省略图像放大运算,节省时间;
否则,对图像使用最近邻域法缩小到屏幕尺寸;缩小过程中保持源图像的宽高比,并将不足全屏尺寸的一边置于显示区域对应边的中心位置,两侧不足尺寸的区域显示为黑边;这是由于最近邻域法进行缩小的图像质量与双线性插值法接近,但运算量远小于双线性插值法。
iii)双线性插值法和最近邻域法的算法级优化
双线性插值法和最近邻域法都需要对像素坐标进行浮点运算,且计算坐标占据最大的计算量,因此本发明首先将两个方法进行定点化优化,其次,对坐标运算中需要用到的坐标在第一帧的运算时进行建表,之后所有帧的坐标不需要计算而可以通过查表和简单的加法运算得出。
最近邻域法由于不需要对像素值进行计算,因此一次运算可同时处理一个像素的3个色彩分量,如对RGB565格式,一次可进行2个字节的像素值操作,可进一步减少计算量。
本发明上述技术方案能够获得以下有益效果:对基于嵌入式设备或者Android平台的多媒体软件播放器中的视频解码和显示进行若干优化之后,可支持常见视频格式(MPEG-1/2/4、H.264等)的SD(720x480p、720x576i)分辨率、720p(1280x720p)分辨率,以及部分HD(1920x1080)分辨率视频的流畅播放。其中,三种主要的优化步骤相对于未经优化的对应算法可分别减少平均30%(1/3丢帧率)、75%(RGB转换时未降分辨率、在双核CPU上使用6线程并行解码及转换)以及90%(HD到1024x562分辨率的缩小)以上的运算量。
下面通过一个具体实施例对本发明进行进一步详细说明。
1)通用多媒体软件播放器的基本播放流程
多媒体软件播放器的基本播放流程如下:
步骤1:用户启动播放器的应用程序,选择输入文件,播放器启动。
步骤2:媒体解析模块解析文传输协议,调用相应协议的功能读取多媒体数据,解析文件格式以及编解码器信息,初始化FFMPEG的相应资源,初始化播放器核。
步骤3:播放器核根据媒体解析模块输出的媒体信息,启动相应资源,打开并配置音视频软件解码器、音视频播放器,启动主逻辑控制线程、视频解码线程、显示线程、音频解码线程和播放线程。
步骤4:主逻辑控制线程获得帧缓冲区的尺寸和地址,并将尺寸配置给视频解码线程,将尺寸和地址配置给视频帧缩放模块。
步骤5:视频解码线程配置FFMPEG软件解码器,启动其多线程解码模式,设置并行线程数TC,FFMPEG根据配置启动多解码线程,等待输入数据进行并行解码。
步骤6:主逻辑控制线程开始读取文件数据,并存入图2中的输入缓冲区,当该缓冲区的数据量大于设定的门限值TH1时,主线程开始使用FFMPEG对音视频数据进行解复用。
步骤7:解复用后输出的音视频数据分别存入图2中的音频包缓冲区和视频包缓冲区,当所有音视频数据在包缓冲中存储的总量超过设定的门限值TH2,且音频包的数量和视频包的数量均超过设定的门限值TH3时,音视频解码线程开始从缓冲区中分别读取音视频包进行解码;其中,多线程并行的视频解码过程中亦并行执行YCbCr到RGB的色彩空间转换。
步骤8:在音视频开始解码之后,由于解复用、音视频解码、播放的速度变化不均,主逻辑控制线程启动缓冲机制,防止内存使用量溢出,并相对平滑解复用输出数据的输入和消耗速度:开始正常播放时缓冲状态为Playing;当音视频包缓冲区内没有音频或视频数据时,通知音视频解码线程和播放线程暂停执行,此时音视频包缓冲区只有输入没有输出,此状态为Buffering状态;处于Buffering状态时,若音视频包缓冲区内的音频和视频数据总量超过设定的门限值TH4,且音频包的数量和视频包的数量均超过设定的门限值TH3时,通知音视频解码线程和播放线程继续执行,并更改缓冲状态为Playing;当处于Playing状态时,若音视频包缓冲区内的数据总量超过门限值TH2时,暂停解复用,此时音视频缓冲区内只有输出没有输入,以防内存使用溢出,并更改状态为Consuming;当处于Consuming状态时,若音视频包缓冲区内的音频和视频数据总量小于设定的门限值TH4,则恢复解复用,并更改状态回到正常播放的Playing状态,此时音视频包缓冲区中既有输入又有输出。
步骤9:音视频解码线程成功输出一帧解码后的音视频数据后,音频播放线程和视频显示线程分别读取该帧数据,获得当前系统时刻相对于第一帧视频开始播放时刻之间的时间作为系统时钟STC,并与当前解码输出的一帧音频或视频的显示时间戳PTS进行比较:若STC<PTS并且PTS-STC<TH5,或者STC>PTS并且STC-PTS<TH6,则将当前音频帧输入Audio Track进行播放或者输出当前视频帧的RGB图像给视频缩放模块;否则,若STC<PTS,则音频播放线程或者视频显示线程等待5毫秒,之后继续进行比较;否则,当前音视频帧被判定为迟到,仍然播放或显示该帧,但需要更新系统时钟STC=STC-(STC-PTS),其目的是保证当前音视频的平滑播放但允许放慢系统时钟。
步骤10:图像缩放模块在获得当前视频帧的RGB图像之后,将该图像快速缩放到Surface帧缓冲的尺寸,并直接写入目标显示缓冲区,进行显示。
上述步骤1~10为播放器在正常打开、播放媒体文件时的基本流程,其中的门限值和常数TC、TH1、TH2、TH3、TH4、TH5、TH6为预先设定的配置值(如TC=6,TH1=TH2=5M字节,TH3=30,TH4=3M字节,TH5=TH6=10毫秒)。
2)基于解码速度的动态自适应丢帧的具体实施方式
本发明中基于解码速度的动态自适应丢帧方法的作用是在时间轴上对视频帧进行下采样,在不降低用户观感的情况下降低视频的帧率,以优化解码视频的平均速度。其主要步骤为:
步骤1:解码器获得编解码器格式信息之后,根据编解码器的格式、比特率、原始帧率f(帧/秒)、档次、级别信息设定目标帧率ft。例如:在一个实施例中,对于H.264视频、1280x720分辨率、HP档次、4.0级别、8M比特率、30帧/秒帧率的视频,设定目标帧率为20帧/秒,则时间上的采样率为3∶2。计算丢帧率fd=f-ft,表示每秒需要丢弃的帧数。
步骤2:从编解码器格式信息中获得图像组(GOP)结构信息,进行判断并执行下述步骤:
a)若GOP中存在普通B帧、分级B帧的最低级B帧、分级P帧的最低级P帧、闭环GOP内的最后一帧P,将这些帧定义为可丢弃帧,记为D帧。若D帧的频率fD>fd,则对D帧进行均匀丢解码,即每秒均匀丢弃fd个D帧,被丢弃的D帧不进行解码,不输出解码数据,不更新参考帧缓冲或索引,释放解码器输入数据;并且本方法不再执行后续步骤。
b)若GOP中存在D帧,且D帧的频率fD≤fd,则将D帧全部丢弃,被丢弃的D帧不进行解码,不输出解码数据,不更新参考帧缓冲或索引,释放解码器输入数据;若fD=fd,则本方法不再执行后续步骤,否则将执行后续丢显示步骤。
c)若GOP中不存在D帧,记fD=0。
d)计算丢显示的目标频率为fR=fd-fD,表示每秒需要丢弃显示的帧数。
e)设定实时丢帧单位的长度N与GOP的长度相同。
f)每隔N-1帧,计算当前帧的解码时间tc以及当前帧之前所有帧的平均解码时间ta。
g)计算实时丢帧率fr=fR×tc÷ta。
h)在一个实时丢帧单位内,使用实时丢帧率fr进行均匀丢显示,即被选择的丢弃帧将不会输出解码后的图像,以节省这些帧的色彩空间转换、缩放以及显示的时间。
通过使用实时丢帧策略,可在解码较慢的时间段内提高丢帧率,在解码较快的时间段内降低丢帧率,并且在一个N帧的单位内采取均匀丢帧的策略,这样既可以提高视频播放的平均速度,又不会影响视频播放的平滑性和用户观感。
需要指出的是,本方法中的目标帧率ft仅是一个计算中的参考值,并非实际播放的帧率。实际播放可能是变帧率,其平均帧率接近目标帧率。由于解复用线程在对文件格式的解析中已提取了每一个音视频包的时间戳,因此放弃某些视频帧的解码或者显示都不会影响其它视频帧的显示以及与音频的同步。另外,与播放器丢弃迟到视频帧的方法无关,本方法选定丢弃的视频帧不会在解码器输出,其目的是在音视频同步逻辑中尽可能减少迟到的视频帧。
3)YCbCr到RGB色彩空间的快速转换的具体实施方式
当目标平台不支持YCbCr视频格式的显示,而仅支持RGB格式的图像输出时,播放器需要对解码器输出的YCbCr图像进行RGB色彩空间的转换。周知的YCbCr到RGB色彩转换的方法为:
R=1.164(Y-16)+1.596(Cr-128)
G=1.164(Y-16)-0.813(Cr-128)-0.391(Cb-128)
B=1.164(Y-16)+2.018(Cb-128)
由于浮点运算、内存操作、逐点计算消耗了大量的系统资源和计算量,本发明对YCbCr 4:2:0子采样格式转化到RGB565格式的优化的主要步骤如下:
步骤1:对转换运算进行算法级优化,包括以下步骤:
步骤1-1:对浮点运算进行定点化,使用比例因子K=1024对变换系数进行10比特放大后四舍五入取整,则上述变换公式定点化为:
R′=1192(Y-16)+1634(Cr-128)+512
G′=1192(Y-16)-832(Cr-128)-401(Cb-128)+512
B′=1192(Y-16)+2066(Cb-128)+512
其中R’、G’以及B’分别为R、G、B放大1024倍的值,即:
R=R′/1024
G=G′/1024
B=B′/1024
步骤1-2:设置并使用转化表,移除乘法运算:
A)定义3个32比特的转化表:表T3T1、表T4T2和表T5,其中各表的索引均为0~255的Y、Cb或Cr像素值,各表的涵义如下(其中“<<”表示左移位运算):
aa)表T3T1表示转换中以Cr为索引的部分,其中:
前16位为:
后16位为:
则有:
bb)表T4T2表示转换中以Cb为索引的部分,其中:
前16位为: 已包括后续步骤的限幅表中B分量起始位置的偏移量4608;
后16位为: 已包括后续步骤的限幅表中G分量起始位置的偏移量2304;
则有:
cc)表T5表示转换中以Y为索引的部分:
B)使用转化表计算RGB值,计算方法如下:
y_add=T5[Y]
r_add=(short)T3T1[Cr]
g_add=(short)T4T2[Cb]+(short)(T3T1[Cr]>>16)
b_add=(short)(T4T2[Cb]>>16)
R=y_add+r_add
G=y_add+g_add
B=y_add+b_add
其中“>>”表示右移位运算,(short)表示取运算值的低16位,则一个像素的RGB三个分量可以用16比特unsigned short类型的一个变量存储,其计算方法为:
rgb=(R>>3)<<11|(G>>2)<<5|B>>3
其中,“|”表示逻辑或运算。
步骤1-3:设置并使用限幅表,移除条件限幅运算。
步骤1-2中计算得到的RGB值可能超过[0,255]区间,因此,在计算rgb之前,需要对RGB值进行限幅,即:
R=R<0?0:(R>255?255:R)
G=G<0?0:(G>255?255:G)
B=B<0?0:(B>255?255:B)
但是,这样的一次计算会引入两次比较,本发明采用限幅表的方法进行优化。限幅表的定义如下:
static unsigned short crop_shift[(256+2*1024)*3]={0,}
数组crop_shift[]在播放器核初始化时进行赋值,如下:
由于目标格式为RGB565,且将16比特RGB数据表示一个像素时的移位运算也考虑在内,因此在该数组中,各段数据的长度和值如图3所示。
图3分为3个2304个数据长度的区间,其中,每个区间又分为1024+256+1024三个数据长度的子区间,则共有9个子区间。3个区间中的每个子区间从左至右分别表示:
1)1024个0值,即RGB565中R/G/B分量小于0时,限幅到0;
2)256个值,为0~255通过移位表示为RGB565中R/G/B分量的5/6/5个比特;
3)1024个R/G/B分量的最大值通过移位表示为RGB565中R/G/B分量的5/6/5个比特。
步骤1-4:多点同时运算。
对于输入格式是YCbCr 4:2:0子采样格式的图像,一个Cb或Cr像素对应于四个Y像素点,因此可以同时对四个像素点进行RGB转换,示意图如图4。
则经过步骤1的优化,转换一幅YCbCr 4:2:0子采样格式的图像到RGB565图像的算法的示例代码如下:
上述代码中,rgb0是指向目标RGB565图像地址的指针,rgb1是rgb0的下一行像素,width和height分别为图像的宽度和高度,y0为YCbCr图像的亮度像素地址,y1为y0的下一行像素,Cb和Cr为色度像素值。
步骤2:若用户在播放前选择了“流畅播放优先”的选项,则使用隔点运算实现降分辨率的RGB转换,减少参与计算的像素点数,以进一步加快RGB转换的速度。如图5所示为1/2降分辨率RGB转换示例。图5中,仅有1/4数目的像素(虚线框包围的像素点)参与运算;同理,1/3降分辨率RGB转换仅有1/9数目的像素参与运算,以此类推。
降分辨率RGB转换方法步骤如下:
步骤2-1:根据原始图像的宽度width和高度height,以及播放器核配置给RGB转换模块的目标显示缓冲的宽度surface_width和高度surface_height,计算降分辨率的比例1/R(R为正整数),使得width/R和height/R与surface_width和surface_height最为接近,即:
步骤2-2:隔点计算时,见图5,只需在步骤1的计算中,在水平和垂直方向上每隔(R-1)个像素选择一个像素点参与运算。因此,整幅图像仅有width×height/R2个像素点参与RGB转换;转换后,RGB图像宽度为width/R,高度为height/R,此宽度和高度输入下一模块进行后续处理。
步骤3:将以上YCbCr到RGB的转换模块在FFMPEG的每一个解码线程内与解码模块级联,实现并行的RGB转换。
4)任意比例的图像快速缩放的具体实施方式
经过转换的RGB图像尺寸为width×height或者(width/R)×(height/R),可能与目标显示缓冲的尺寸surface_width×surface_height不同,本发明使用任意比例的图像快速缩放方法将输出图像缩放到目标显示缓冲的尺寸。具体实现步骤为:
步骤1:直接写入目标显示缓冲的无内存操作。
为避免多余的内存分配和内存操作,缩放模块在缩放每一帧视频图像之前通过适配层获得目标显示缓冲地址的指针,缩放模块不为目的图像分配内存而直接将目的图像写入该指针所指的地址中,随后视频显示模块会决定何时显示该地址中已写入的RGB图像。
步骤2:根据缩放比例选择缩放方法和显示方式。
对于不同分辨率的图像,采用不同的缩放或者显示方式:
步骤2-1:若图像分辨率小于屏幕尺寸的1/2(即横、纵尺寸均小于目标显示缓冲对应尺寸的1/2),对图像采用双线性插值法进行放大;放大过程中保持源图像的宽高比,并将不足全屏尺寸的一边置于显示区域对应边的中心位置,两侧不足尺寸的区域显示为黑边(RGB分量均为初始值0);这是由于小分辨率图像的解码速度足够快,因此可采用计算量较为复杂、图像放大质量较好的双线性插值法;
步骤2-2:否则,若图像分辨率小于或等于屏幕尺寸(即横、纵尺寸均小于或等于目标显示缓冲对应尺寸),不对图像进行缩放,直接将图像拷贝到显示区域的中心,剩余的显示区域显示为黑边;这是由于图像分辨率接近于显示尺寸,因此直接使用原始大小进行显示,可省略图像放大运算,节省时间;
步骤2-3:否则,对图像使用最近邻域法缩小到屏幕尺寸;缩小过程中保持源图像的宽高比,并将不足全屏尺寸的一边置于显示区域对应边的中心位置,两侧不足尺寸的区域显示为黑边;这是由于最近邻域法进行缩小的图像质量与双线性插值法接近,但运算量远小于双线性插值法。
步骤3:双线性插值法和最近邻域法的算法级优化
A)双线性插值和最近邻域计算方法
记需要缩放的图像的宽度为W,高度为H,则W=width或width/R(使用了降分辨率RGB转换),H=height或height/R(使用了降分辨率RGB转换)。目的图像为目标显示缓冲,尺寸为surface_width和surface_height。计算缩放比例r:
其中,r为浮点数,min表示取最小值,r为水平和垂直方向上统一的缩放比例因子。如图6,目标图像中坐标为(x,y)的任意一点S通过比例r转换到原图像对应位置的坐标为该坐标值为浮点数,其在原图像中的临近像素为A、B、C、D。
aa)最近邻域法计算S点像素值的方法为:
S=A
即:将缩放后的图像坐标通过反向变换得到的一个浮点坐标,对其进行取整,得到一个整数型坐标,这个整数型坐标在原图像对应的像素值就是缩放后目的像素的像素值。该方法计算简单,运算速度快,但可能对缩放后的图像造成锯齿效应。
bb)双线性插值法计算S点像素值的方法为:
即:将缩放后的图像坐标通过反向变换得到的一个浮点坐标,将浮点坐标在原图像对应位置周围的4个像素根据某种权值进行加权运算得到的像素值就是缩放后目的像素的像素值。本发明采用4个1/4作为权值,即4抽头均值滤波器。这种滤波器具有低通滤波的平滑作用,可很大程度消除锯齿,但也可能造成景物轮廓的模糊。
两种方法相比,最近邻域法计算量小,但较大比例放大图像时的图像质量较低,锯齿较多,而较大比例图像缩小时,两种方法的图像质量相近。因此,本发明采用了步骤2中的缩放和显示的选择方法对图像质量和计算量进行折中。
B)双线性插值和最近邻域计算优化方法
在使用两种方法进行图像缩放时,最消耗时间的运算是计算浮点型的像素坐标,本发明采用以下步骤对两种方法进行优化:
aa)计算标志位useX:
若 则useX=1;反之,useX=0;
useX表示是否使用x轴的缩放比例作为统一的缩放比例,其值0表示使用y轴的缩放比例,值1表示使用x轴的缩放比例。
bb)计算目标显示缓冲中屏幕显示区域的左上角坐标和显示区域的尺寸,如下:
cc)定义四个全局数组,表示整数型坐标转化表,如下:
static int*T_yWyH;
static int*T_xWxH;
static int*T_corDst;
static int*T_corSrc;
在缩放第一帧视频图像时,对坐标转化表进行分配空间和赋值,如下:
dd)在每一帧的缩放过程中,向目标显示缓冲的地址(16比特无符号short型指针dest)写入最终图像的像素值。
使用以下方法进行最近邻域法的缩放:
使用以下方法进行双线性插值法的缩放:
如上,两种缩放方法经过定点化和坐标转化表的优化,都只包含整数加法、查表和简单的逻辑运算,其计算量得到极大的降低。另外,由上可见双线性插值法的计算量是最近邻域法的几十倍,而且最近邻域法可以同时对一个像素的16位RGB值同时处理,因此,本发明仅使用双线性插值法对解码速度足够快的极小分辨率图像进行放大,而使用最近邻域法对解码较慢的大图像进行缩小。
ee)在处理完最后一帧图像后,释放4个坐标转换表的空间,重置资源。
由上述实施例可见,采用本发明技术方案优化后的多媒体软件播放器中的所有模块均使用与硬件无关的软件实现,是一种具有通用性的多媒体播放方法,并且可广泛支持各种视频格式。
并且,本发明对视频解码、色彩转换、图像缩放、解码速率控制、视频帧显示、系统内存使用以及帧缓存使用进行了结合优化,以提高视频播放流畅性为最终目的,不仅具有通用性,还能有效减少CPU和系统资源占用率,提高播放的流畅性。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (10)
1.一种对多媒体播放器进行优化的方法,其特征在于,包括:
A、根据解码速度进行自适应动态丢帧;
B、在将图像从YCbCr格式转换为红蓝绿(RGB)格式时,采用算法级优化的方式,并采用降分辨率转换和并行转换的方式;
C、将转换之后的图像输出到目标显示缓冲中。
2.根据权利要求1所述的方法,其特征在于,所述A包括:
A1、设置目标帧率,所述目标帧率小于视频帧的原始帧率;
A2、动态监测解码速度,根据解码速度和目标帧率确定实时丢帧率,根据所述实时丢帧率在时间上对视频帧进行自适应下采样。
3.根据权利要求2所述的方法,其特征在于,所述A2包括:
A21、根据目标帧率和原始帧率,计算目标丢帧率;
A22、根据图像组(GOP)的结构,按照以下优先级选择帧进行丢解码:普通B帧、分级B帧的最低一级B帧、分级P帧的最低一级P帧、闭环GOP的最后一帧P帧;对帧进行丢解码是指:不对帧进行任何处理,而直接丢弃;
A23、当可被丢解码的帧数不够目标丢帧率时,根据解码速度和目标帧率确定实时丢帧率,根据实时丢帧率选择帧进行丢显示;对帧进行丢显示是指:对帧进行解码,但不予显示输出。
4.根据权利要求3所述的方法,其特征在于:
在按照优先级选择帧进行丢弃时,按照目标丢帧率均匀丢帧;或者,在可被丢弃的帧数不够目标丢帧率时,将所有丢解码的帧全部丢弃。
5.根据权利要求3所述的方法,其特征在于,所述A23包括:
在每个GOP内计算其中一帧视频的解码速度与文件中已解码的所有帧的平均解码速度的比值;
使用该比值与丢显示的目标丢帧率的乘积作为当前GOP内的实时丢帧率;
在一个GOP内使用该GOP的实时丢帧率对帧进行均匀丢显示。
6.根据权利要求1所述的方法,其特征在于,所述B包括:
B1、对YCbCr格式到RGB格式的转换运算进行定点化、移除乘法、多点同时运算、查表法移除加法及限幅运算实现算法级优化,使得转换运算中只包含移位、查表、逻辑操作和少量的加法;
B2、当播放质量要求是流畅播放优先时,根据显示区域的大小,采用隔点运算的方式降低分辨率;
B3、在使用多线程并行解码的解码器的每个解码线程内部,将YCbCr到RGB转换模块与解码模块级联,实现YCbCr格式到RGB格式的转换的并行操作。
7.根据权利要求6所述的方法,其特征在于:
所述B2中,使用1/2~1/16的规则比例降低分辨率。
8.根据权利要求1所述的方法,其特征在于,所述C包括:
C1、根据缩放比例,确定是否进行缩放,并确定缩放的方式和显示方式;
C2、根据确定的缩放方式和显示方式对图像进行缩放和显示,其中包括对缩放方式进行优化,并且,缩放过程中不使用额外分配的内存;
C3、将缩放之后的图像或原始图像直接拷贝到目标显示缓冲中。
9.根据权利要求8所述的方法,其特征在于,所述C1包括:
若输入图像的宽、高均小于目标显示缓冲对应尺寸的1/2,对图像采用双线性插值法进行放大;放大过程中保持源图像的宽高比,并将不足全屏尺寸的一边置于显示区域对应边的中心位置,两侧不足尺寸的区域显示为黑边;
否则,若输入图像的宽、高均小于或等于目标显示缓冲对应尺寸,则不对图像进行缩放,直接将图像拷贝到显示区域的中心,剩余的显示区域显示为黑边;
否则,对图像使用最近邻域法缩小到屏幕尺寸;缩小过程中保持源图像的宽高比,并将不足全屏尺寸的一边置于显示区域对应边的中心位置,两侧不足尺寸的区域显示为黑边。
10.根据权利要求9所述的方法,其特征在于,对最近邻域法和双线性插值法进行优化的方式包括:
对坐标运算进行定点化;
对转换中需要用到的坐标在第一帧的运算时进行建表,之后所有帧的坐标不需要计算而可以通过查表和简单的加法运算得出;
最近邻域法的一次运算同时处理一个像素的3个色彩分量。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210066502.5A CN103310820B (zh) | 2012-03-14 | 2012-03-14 | 一种对多媒体播放器进行优化的方法 |
KR1020130022301A KR20130105374A (ko) | 2012-03-14 | 2013-02-28 | 영상처리장치 및 그 제어방법 |
US13/828,157 US20130242186A1 (en) | 2012-03-14 | 2013-03-14 | Image processing apparatus and control method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210066502.5A CN103310820B (zh) | 2012-03-14 | 2012-03-14 | 一种对多媒体播放器进行优化的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103310820A true CN103310820A (zh) | 2013-09-18 |
CN103310820B CN103310820B (zh) | 2016-03-09 |
Family
ID=49135952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210066502.5A Active CN103310820B (zh) | 2012-03-14 | 2012-03-14 | 一种对多媒体播放器进行优化的方法 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR20130105374A (zh) |
CN (1) | CN103310820B (zh) |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103561252A (zh) * | 2013-11-21 | 2014-02-05 | 无锡硅奥科技有限公司 | 一种hsl到rgb色彩空间转换的方法 |
CN103686311A (zh) * | 2013-11-22 | 2014-03-26 | 乐视致新电子科技(天津)有限公司 | 一种音视频播放方法和装置 |
CN103856812A (zh) * | 2014-03-25 | 2014-06-11 | 北京奇艺世纪科技有限公司 | 一种视频播放方法及装置 |
CN104240739A (zh) * | 2014-09-04 | 2014-12-24 | 广东欧珀移动通信有限公司 | 一种移动终端的音乐播放方法及装置 |
CN104506882A (zh) * | 2014-12-29 | 2015-04-08 | 上海昌视网络科技有限公司 | 互联网流媒体转换成iptv格式的服务器及其转换方法 |
CN104822008A (zh) * | 2014-04-25 | 2015-08-05 | 腾讯科技(北京)有限公司 | 视频同步方法及装置 |
CN105898348A (zh) * | 2015-12-15 | 2016-08-24 | 乐视网信息技术(北京)股份有限公司 | 一种用于降低视频播放终端的cpu温度的方法及设备 |
CN106603543A (zh) * | 2016-12-22 | 2017-04-26 | 努比亚技术有限公司 | 校正流媒体音视频同步的方法及装置 |
CN106780336A (zh) * | 2016-12-19 | 2017-05-31 | 广东威创视讯科技股份有限公司 | 一种图像缩小方法及装置 |
CN106817614A (zh) * | 2017-01-20 | 2017-06-09 | 努比亚技术有限公司 | 音视频丢帧装置及方法 |
CN106856573A (zh) * | 2016-11-29 | 2017-06-16 | 福建天泉教育科技有限公司 | 一种视频播放耗电量的优化方法及系统 |
CN107291468A (zh) * | 2017-06-21 | 2017-10-24 | 深圳Tcl新技术有限公司 | 播放开/关机动画的方法、终端及计算机可读存储介质 |
CN109117813A (zh) * | 2018-08-24 | 2019-01-01 | 北京新界教育科技有限公司 | 视频处理方法及装置 |
CN109743628A (zh) * | 2019-01-10 | 2019-05-10 | 四川长虹电器股份有限公司 | 一种ip机顶盒促进视频实时播放流畅的方法 |
CN110572712A (zh) * | 2018-06-05 | 2019-12-13 | 杭州海康威视数字技术股份有限公司 | 一种解码方法和装置 |
CN110740383A (zh) * | 2018-07-20 | 2020-01-31 | 宏碁股份有限公司 | 多媒体文件管理方法、终端装置、服务装置及文件管理系统 |
CN111491207A (zh) * | 2020-04-17 | 2020-08-04 | 北京三体云联科技有限公司 | 直播中视频数据处理方法、装置和电子设备 |
CN111669599A (zh) * | 2020-06-18 | 2020-09-15 | Oppo广东移动通信有限公司 | 视频解码方法、视频解码装置及终端设备 |
CN112702649A (zh) * | 2019-10-22 | 2021-04-23 | 高新兴科技集团股份有限公司 | 一种移动端的直播视频播放流畅度优化方法、存储介质及电子设备 |
CN113301332A (zh) * | 2021-04-12 | 2021-08-24 | 阿里巴巴新加坡控股有限公司 | 视频解码方法、系统和介质 |
CN114153414A (zh) * | 2021-11-27 | 2022-03-08 | 深圳曦华科技有限公司 | 图像防撕裂方法及相关装置 |
CN114153408A (zh) * | 2021-11-27 | 2022-03-08 | 深圳曦华科技有限公司 | 图像显示控制方法及相关设备 |
WO2023015436A1 (zh) * | 2021-08-10 | 2023-02-16 | 深圳Tcl新技术有限公司 | 流媒体数据传输方法、装置及终端设备 |
CN113301332B (zh) * | 2021-04-12 | 2024-06-21 | 阿里巴巴创新公司 | 视频解码方法、系统和介质 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102213423B1 (ko) * | 2019-05-09 | 2021-02-08 | 주식회사 케이디미디어 | 스케일러를 이용한 uhd 영상 분배 장치 및 그 방법 |
KR102021441B1 (ko) * | 2019-05-17 | 2019-11-04 | 정태웅 | 인공지능을 이용한 영상 기반의 실시간 침입 감지 방법 및 감시카메라 |
CN113965813B (zh) * | 2021-10-21 | 2024-04-23 | 广州方硅信息技术有限公司 | 直播间内的视频播放方法、系统、设备及介质 |
CN114222182B (zh) * | 2021-12-15 | 2024-02-09 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种视频播放方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006211247A (ja) * | 2005-01-27 | 2006-08-10 | Canon Inc | 画像処理装置およびその方法 |
CN1953550A (zh) * | 2006-11-16 | 2007-04-25 | 无敌科技(西安)有限公司 | 一种影片播放的加速方法 |
CN101079993A (zh) * | 2006-05-23 | 2007-11-28 | 中国科学院声学研究所 | 视频播放中的静态丢帧方法 |
CN101330340A (zh) * | 2008-07-31 | 2008-12-24 | 中兴通讯股份有限公司 | 移动多媒体广播终端自适应调整接收速率缓冲播放的方法 |
CN101411198A (zh) * | 2006-04-04 | 2009-04-15 | 高通股份有限公司 | 接收器中的视频解码 |
-
2012
- 2012-03-14 CN CN201210066502.5A patent/CN103310820B/zh active Active
-
2013
- 2013-02-28 KR KR1020130022301A patent/KR20130105374A/ko not_active Application Discontinuation
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006211247A (ja) * | 2005-01-27 | 2006-08-10 | Canon Inc | 画像処理装置およびその方法 |
CN101411198A (zh) * | 2006-04-04 | 2009-04-15 | 高通股份有限公司 | 接收器中的视频解码 |
CN101079993A (zh) * | 2006-05-23 | 2007-11-28 | 中国科学院声学研究所 | 视频播放中的静态丢帧方法 |
CN1953550A (zh) * | 2006-11-16 | 2007-04-25 | 无敌科技(西安)有限公司 | 一种影片播放的加速方法 |
CN101330340A (zh) * | 2008-07-31 | 2008-12-24 | 中兴通讯股份有限公司 | 移动多媒体广播终端自适应调整接收速率缓冲播放的方法 |
Cited By (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103561252A (zh) * | 2013-11-21 | 2014-02-05 | 无锡硅奥科技有限公司 | 一种hsl到rgb色彩空间转换的方法 |
CN103686311A (zh) * | 2013-11-22 | 2014-03-26 | 乐视致新电子科技(天津)有限公司 | 一种音视频播放方法和装置 |
CN103686311B (zh) * | 2013-11-22 | 2017-02-15 | 乐视致新电子科技(天津)有限公司 | 一种音视频播放方法和装置 |
CN103856812A (zh) * | 2014-03-25 | 2014-06-11 | 北京奇艺世纪科技有限公司 | 一种视频播放方法及装置 |
CN103856812B (zh) * | 2014-03-25 | 2018-08-07 | 北京奇艺世纪科技有限公司 | 一种视频播放方法及装置 |
CN104822008A (zh) * | 2014-04-25 | 2015-08-05 | 腾讯科技(北京)有限公司 | 视频同步方法及装置 |
CN104240739A (zh) * | 2014-09-04 | 2014-12-24 | 广东欧珀移动通信有限公司 | 一种移动终端的音乐播放方法及装置 |
CN104240739B (zh) * | 2014-09-04 | 2017-05-24 | 广东欧珀移动通信有限公司 | 一种移动终端的音乐播放方法及装置 |
CN104506882B (zh) * | 2014-12-29 | 2017-11-10 | 上海昌视网络科技有限公司 | 互联网流媒体转换成iptv格式的服务器及其转换方法 |
CN104506882A (zh) * | 2014-12-29 | 2015-04-08 | 上海昌视网络科技有限公司 | 互联网流媒体转换成iptv格式的服务器及其转换方法 |
CN105898348A (zh) * | 2015-12-15 | 2016-08-24 | 乐视网信息技术(北京)股份有限公司 | 一种用于降低视频播放终端的cpu温度的方法及设备 |
CN106856573A (zh) * | 2016-11-29 | 2017-06-16 | 福建天泉教育科技有限公司 | 一种视频播放耗电量的优化方法及系统 |
CN106856573B (zh) * | 2016-11-29 | 2019-07-26 | 福建天泉教育科技有限公司 | 一种视频播放耗电量的优化方法及系统 |
CN106780336A (zh) * | 2016-12-19 | 2017-05-31 | 广东威创视讯科技股份有限公司 | 一种图像缩小方法及装置 |
CN106780336B (zh) * | 2016-12-19 | 2020-04-03 | 广东威创视讯科技股份有限公司 | 一种图像缩小方法及装置 |
CN106603543A (zh) * | 2016-12-22 | 2017-04-26 | 努比亚技术有限公司 | 校正流媒体音视频同步的方法及装置 |
CN106603543B (zh) * | 2016-12-22 | 2019-08-09 | 努比亚技术有限公司 | 校正流媒体音视频同步的方法及装置 |
CN106817614A (zh) * | 2017-01-20 | 2017-06-09 | 努比亚技术有限公司 | 音视频丢帧装置及方法 |
CN107291468B (zh) * | 2017-06-21 | 2021-03-19 | 深圳Tcl新技术有限公司 | 播放开/关机动画的方法、终端及计算机可读存储介质 |
CN107291468A (zh) * | 2017-06-21 | 2017-10-24 | 深圳Tcl新技术有限公司 | 播放开/关机动画的方法、终端及计算机可读存储介质 |
CN110572712B (zh) * | 2018-06-05 | 2021-11-02 | 杭州海康威视数字技术股份有限公司 | 一种解码方法和装置 |
CN110572712A (zh) * | 2018-06-05 | 2019-12-13 | 杭州海康威视数字技术股份有限公司 | 一种解码方法和装置 |
CN110740383A (zh) * | 2018-07-20 | 2020-01-31 | 宏碁股份有限公司 | 多媒体文件管理方法、终端装置、服务装置及文件管理系统 |
CN110740383B (zh) * | 2018-07-20 | 2021-10-08 | 宏碁股份有限公司 | 多媒体文件管理方法、终端装置、服务装置及文件管理系统 |
CN109117813A (zh) * | 2018-08-24 | 2019-01-01 | 北京新界教育科技有限公司 | 视频处理方法及装置 |
CN109743628A (zh) * | 2019-01-10 | 2019-05-10 | 四川长虹电器股份有限公司 | 一种ip机顶盒促进视频实时播放流畅的方法 |
CN112702649A (zh) * | 2019-10-22 | 2021-04-23 | 高新兴科技集团股份有限公司 | 一种移动端的直播视频播放流畅度优化方法、存储介质及电子设备 |
CN111491207A (zh) * | 2020-04-17 | 2020-08-04 | 北京三体云联科技有限公司 | 直播中视频数据处理方法、装置和电子设备 |
CN111669599A (zh) * | 2020-06-18 | 2020-09-15 | Oppo广东移动通信有限公司 | 视频解码方法、视频解码装置及终端设备 |
CN113301332A (zh) * | 2021-04-12 | 2021-08-24 | 阿里巴巴新加坡控股有限公司 | 视频解码方法、系统和介质 |
CN113301332B (zh) * | 2021-04-12 | 2024-06-21 | 阿里巴巴创新公司 | 视频解码方法、系统和介质 |
WO2023015436A1 (zh) * | 2021-08-10 | 2023-02-16 | 深圳Tcl新技术有限公司 | 流媒体数据传输方法、装置及终端设备 |
CN114153414A (zh) * | 2021-11-27 | 2022-03-08 | 深圳曦华科技有限公司 | 图像防撕裂方法及相关装置 |
CN114153408A (zh) * | 2021-11-27 | 2022-03-08 | 深圳曦华科技有限公司 | 图像显示控制方法及相关设备 |
CN114153408B (zh) * | 2021-11-27 | 2024-01-16 | 深圳曦华科技有限公司 | 图像显示控制方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
KR20130105374A (ko) | 2013-09-25 |
CN103310820B (zh) | 2016-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103310820B (zh) | 一种对多媒体播放器进行优化的方法 | |
CN103841389B (zh) | 一种视频播放方法及播放器 | |
CN109640167B (zh) | 视频处理方法、装置、电子设备及存储介质 | |
CN101094367A (zh) | 流式编码器及流式解码器 | |
CN102572360B (zh) | 共享存储器多视频通道显示装置和方法 | |
CN105072353B (zh) | 一种基于多gpu的图像解码拼控方法 | |
CN104717509A (zh) | 一种视频解码方法及装置 | |
EP3644614A1 (en) | Video data processing method and video data processing device | |
US20130242186A1 (en) | Image processing apparatus and control method thereof | |
US20100220781A1 (en) | Moving picture decoding apparatus | |
CN102364945A (zh) | 多画面图像解码显示的方法及其视频监控终端 | |
KR20230084153A (ko) | 복수의 프레임들을 사용한 히스토그램 기반 및 적응적 톤 매핑을 위한 방법들 및 장치 | |
CN104780374A (zh) | 一种基于亮度编码的帧缓存有损压缩方法及装置 | |
CN102696222A (zh) | 一种视频画面显示装置及方法 | |
CN101461232B (zh) | 共享存储器多视频通道显示装置和方法 | |
CN101188778B (zh) | 输出视频流的装置与方法 | |
CN101389033B (zh) | 帧场自适应解码模式下解码器缓存控制方法 | |
CN100428799C (zh) | 视频解码图像存储空间管理方法 | |
JPH11313339A (ja) | 表示制御装置および動画/グラフィクス合成表示方法 | |
TW317619B (zh) | ||
US11490049B2 (en) | Method for selecting reference frame, electronic device, and storage medium | |
JP6864757B2 (ja) | 映像処理装置、表示装置、映像処理方法、制御プログラム、および記録媒体 | |
CN102595193A (zh) | 视频处理装置与视频处理方法 | |
US20180288353A1 (en) | Low power video composition using a stream out buffer | |
CN101461233A (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 |