CN105100803A - 视频解码优化方法 - Google Patents
视频解码优化方法 Download PDFInfo
- Publication number
- CN105100803A CN105100803A CN201410179194.6A CN201410179194A CN105100803A CN 105100803 A CN105100803 A CN 105100803A CN 201410179194 A CN201410179194 A CN 201410179194A CN 105100803 A CN105100803 A CN 105100803A
- Authority
- CN
- China
- Prior art keywords
- decoding
- thread
- video
- state
- component
- 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
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
提供了一种视频解码优化方法,所述方法包括:创建和初始化多个解码线程;在主线程中将视频负载包分别发送给多个解码线程;由多个解码线程并行地对视频负载包的视频数据进行解码;在对所有视频负载包的视频数据完成解码时,由主线程将对所有视频负载包的视频数据完成解码的解码线程释放。
Description
技术领域
本申请涉及视频编解码领域,更具体地,涉及一种视频解码优化方法。
背景技术
首先,现有的多媒体播放器通常使用硬件解码器来流畅播放高清(HD)及以上分辨率的视频文件,但是硬件解码器的兼容性和扩展性都较差,而目前的软件解码器通常无法支持高清(HD)及以上分辨率视频文件的实时解码和流畅播放。此外,现有的软件解码器的并行优化方法多是针对解码器的特定算法并行,即使有些并行优化方法涉及整个解码流程也未能充分发挥多核平台的硬件优势。
其次,现有的解码算法为提高解码的准确度从而使用复杂度较高的算法,在不降低解码准确度的情况下,需要降低解码算法本身的时间复杂度,使数字信号处理器(DSP)的计算能力和图像质量之间的矛盾不断增加。
再次,现有的显示引擎通常要求输入图像是YUV420半平面(Semi-planar)格式,而软件解码器的输出通常是YUV420平面(Planar)格式。YUV420Planar格式的存储方式是将YUV三个分量分开存储,而YUV420Semi-planar格式的存储方式是将Y分量单独存储,再将UV分量交叉打包存储。现有的YUV420Planar到YUV420Semi-planar色彩格式转换的实现方法是在C语言级别上实现的,对UV分量的处理是通过从源端依次取一个U分量和一个V分量,再将这一对UV分量打包存储在目的端来实现的,因此未能有效利用CPU内部总线带宽,并且也未能有效利用多核平台的并行处理能力,导致转换速度很慢,严重影响高清视频甚至是标清视频的流畅播放。
发明内容
本发明的目的在于提供一种视频解码优化方法,包括:创建和初始化多个解码线程;在主线程中将视频负载包分别发送给多个解码线程;由多个解码线程并行地对视频负载包的视频数据进行解码;在对所有视频负载包的视频数据完成解码时,由主线程将对所有视频负载包的视频数据完成解码的解码线程释放。
创建和初始化多个解码线程的步骤可包括:创建第一个解码线程,并对第一个解码线程进行上下文信息的初始化操作和上下文内存分配操作;创建所述多个解码线程中其余的解码线程,对其余的解码线程分别分配上下文内存并拷贝第一个解码线程的初始化的上下文信息,并且状态机进入等待输入负载包状态。
在主线程中将视频负载包分别发送给多个解码线程的步骤可包括针对每个解码线程进行以下步骤:(a)确定当前解码线程是否是接收视频负载包的第一个解码线程;(b)如果当前解码线程不是第一个解码线程,则等待前一个解码线程的状态改变为解码准备完成状态,随后执行步骤(c),如果当前解码线程是第一个解码线程,则直接执行步骤(c);(c)将视频负载包发送给当前解码线程,将当前解码线程的状态设置为视频负载包准备完成状态,并为当前解码线程分配输出帧存储内存。
为当前解码线程分配输出帧存储内存的步骤可包括:如果获取帧存储内存的操作是线程安全的,则不将当前解码线程的状态设置为获取帧内存状态,而直接获取主线程分配的帧存储内存;如果获取帧存储内存的操作是非线程安全的,则将当前解码线程的状态设置为获取帧内存状态,并返回主线程,等待当前解码线程完成解码后,再获取主线程分配的帧存储内存。
由多个解码线程并行地对视频负载包的视频数据进行解码的步骤可包括针对每个解码线程并行地进行以下步骤:(d)确定当前解码线程的状态是否为等待输入负载包状态,如果当前解码线程的状态是等待输入负载包状态,则等待直到当前解码线程的状态变成非等待输入负载包状态,随后执行步骤(e),如果当前解码线程的状态不是等待输入负载包状态,则直接执行步骤(e);(e)对当前解码线程的上下文信息进行更新,并将当前解码线程的状态设置为解码准备完成状态;(f)由当前解码线程对视频负载包进行解码;(g)将视频负载包完成解码的当前解码线程的状态恢复为等待输入负载包状态,重复执行步骤(e)、(f),并在所有视频负载包完成解码时由主线程将所有视频负载包完成解码的当前解码线程释放。
由多个解码线程并行地对视频负载包的视频数据进行解码的步骤可包括:如果视频数据的当前帧的宏块行n未完成解码且需要参考其它帧,则可对当前帧的宏块行n进行加锁并等待参考帧的完成解码,如果宏块行n已经解锁并完成解码,则宏块行n前面的宏块行均已完成解码;如果视频数据的当前帧的宏块行k的宏块l参考了参考帧的宏块行j的宏块m,并且参考帧的宏块行j还未完成解码,则使用互斥锁使当前帧的宏块行k的解码处于等待状态,直到参考帧的宏块行j完成解码,其中,n、k、l、j、m均为正整数。
对视频数据进行相同类型的操作的标量运算可被转换为能够进行并行处理的矢量运算。
所述视频解码优化方法还可包括:将解码后的视频数据从YUV420平面格式转换为YUV420半平面格式。
可基于Neon协处理器将解码后的视频数据从YUV420平面格式转换为YUV420半平面格式,所述转换步骤可包括:如果Neon协处理器的源端的未转换的U分量和V分量均不小于第一预定数量,则从源端的U分量提取第一预定数量的U分量并存储到第一寄存器,从源端的V分量提取第一预定数量的V分量并存储到第二寄存器,并使用交叉存储指令将第一寄存器中的U分量和第二寄存器中的V分量交叉存储到目的端,重复执行上述步骤,直到Neon协处理器的源端的未转换的U分量和V分量均小于第一预定数量;如果Neon协处理器的源端的未转换的U分量和V分量均小于第一预定数量,则从源端的U分量提取第二预定数量的U分量并存储到第一寄存器,从源端的V分量提取第二预定数量的V分量并存储到第一寄存器,并使用交叉存储指令将第一寄存器中的U分量和V分量交叉存储到目的端,重复执行上述步骤,直到所有U分量和V分量的转换完成,其中,第二预定数量小于第一预定数量。
可基于多核平台将解码后的视频数据从YUV420平面格式转换为YUV420半平面格式,所述转换步骤可包括:将宽度为width、高度为height的YUV数据块分割成N个YUV子数据块,每个YUV子数据块的宽度为width,高度为height/N;创建N个子线程,并初始化每个子线程对应的数据结构体,在所述数据结构体中包含子线程所要处理的YUV子数据块的起始地址;针对每个子线程,创建数据更新条件变量和转换完成条件变量用于子线程之间以及子线程和主线程之间的同步,并放到相应的数据结构体中;当更新条件变量被触发时,每个子线程根据YUV子数据块的起始地址将解码后的视频数据从YUV420平面格式转换为YUV420半平面格式,转换完成后设置相应的完成条件变量;当获得所有子线程的完成条件变量时,释放所有子线程,其中,当解码线程完成一帧视频数据的解码时,分别触发每个子线程的更新条件变量一次。
将在接下来的描述中部分阐述本发明另外的方面和/或优点,还有一部分通过描述将是清楚的,或者可以经过本发明的实施而得知。
附图说明
通过下面结合附图进行的描述,本发明的上述和其它目的和特点将会变得更加清楚,其中:
图1是示出根据本发明示例性实施例的基于流水线的多线程并行视频解码方法的流程图;
图2是示出根据本发明示例性实施例的基于Neon协处理器的YUV420Planar到YUV420Semi-planar色彩格式转换方法的流程图;
图3是示出根据本发明示例性实施例的基于多核平台的YUV420Planar到YUV420Semi-planar色彩格式转换方法的流程图。
具体实施方式
现在,详细描述本发明的示例性实施例,其示例在附图中表示,其中,相同的标号始终表示相同的部件。
图1是示出根据本发明示例性实施例的基于多核平台的基于流水线的多线程并行视频解码方法的流程图。
如图1所示,在步骤S110,开启状态机,创建和初始化多个解码线程。
更具体地,根据预定线程数N对多个解码线程中的每一个分配上下文内存,该上下文内存由各自的解码线程本身维护。即,在创建第一个解码线程之后,对第一个解码线程进行上下文信息的初始化操作和上下文内存分配操作,初始化具体内容由当前视频格式决定,在第一个解码线程初始化之后,创建所述多个解码线程中其余的N-1个解码线程并对其余的N-1个解码线程分别分配上下文内存并拷贝第一个解码线程的初始化的上下文信息。这里,可由用户预先设置预定线程数N,仅作为示例,可将预定线程数N设置为处理器的核数。在解码线程被创建之后,进入状态机的第一个状态,即等待输入负载包状态(INPUT_READY)。
在步骤S120,在主线程中,将视频负载包分别发送给多个解码线程,分配输出视频帧所需的帧存储内存。
更具体地,步骤S120可包括针对每个解码线程进行以下步骤。在步骤S121,确定当前解码线程是否是接收视频负载包的第一个解码线程。如果当前解码线程不是第一个解码线程,则等待前一个解码线程的状态改变为解码准备完成状态(SETUP_FINISHED),随后进行步骤S122;如果当前解码线程是第一个解码线程,则直接进行步骤S122。
在步骤S122,将视频负载包发送给当前解码线程,将当前解码线程的状态设置为视频负载包准备完成状态(SETTING_UP),并为当前解码线程分配输出帧存储内存。更具体地,为当前解码线程分配输出帧存储内存的步骤可包括:如果获取帧存储内存的操作是线程安全的,则不将当前解码线程的状态设置为获取帧内存状态(GET_BUFFER),并直接获取主线程分配的帧存储内存;如果获取帧存储内存的操作是非线程安全的,则将当前解码线程的状态设置为获取帧内存状态(GET_BUFFER),并返回主线程,等待此线程完成解码后,再获取主线程分配的帧存储内存。
在步骤S130,由多个解码线程并行地对视频负载包的视频数据进行解码。
更具体地,步骤S130可包括针对每个解码线程并行地进行以下步骤。在步骤S131,确定当前解码线程的状态是否为INPUT_READY,如果当前解码线程的状态是INPUT_READY,则等待直到当前解码线程的状态变成非INPUT_READY,随后进行步骤S132;如果当前解码线程的状态不是INPUT_READY,则直接进行步骤S132。
在步骤S132,对当前解码线程的上下文信息进行更新,并将当前解码线程的状态设置为解码准备完成状态(SETUP_FINISHED)。
在步骤S133,由当前解码线程对视频负载包进行解码。应该注意,在此过程中需要不断更新当前解码线程已完成解码的宏块行位置并不断获取参考帧解码线程已完成解码的宏块行位置。
更具体地,步骤S133可包括以下步骤。在步骤S133-1,针对当前宏块行的所有宏块,确定宏块的参考类型是否为帧间参考,如果宏块的参考类型是帧间参考,则根据宏块的运动矢量计算出参考宏块在参考帧内的宏块行n,根据当前视频格式的分数精度插值算法和环路滤波算法修正宏块行n,等待参考帧的解码线程完成宏块行n的解码,从而对宏块进行解码。此外,在当前宏块行的所有宏块完成解码后,可更新当前解码线程已完成解码的宏块行位置。
在步骤S133-2,针对视频负载包的所有帧的所有宏块行进行步骤S133-1,直到当前视频负载包完成解码。
在步骤S140,将当前视频负载包完成解码的当前解码线程的状态恢复为INPUT_READY,重复步骤S120、S130,并在所有视频负载包完成解码时由主线程将所有视频负载包完成解码的当前解码线程释放。
根据本发明的示例性实施例,为了确保上述并行视频解码的准确度,还可在整个并行视频解码流程中加入等待保护机制。更具体地,如果当前帧的宏块行n未完成解码且需要参考其它帧,则可对当前帧的宏块行n进行加锁并等待参考帧的完成解码,如果宏块行n已经解锁并完成解码,则宏块行n前面的宏块行均已完成解码。此外,如果当前帧的宏块行k的宏块l参考了参考帧的宏块行j的宏块m,并且参考帧的宏块行j还未完成解码,则使用互斥锁使当前帧的宏块行k的解码处于等待状态,直到参考帧的宏块行j完成解码,这里,n、k、l、j、m均为正整数。
此外,根据本发明的示例性实施例,还可将视频解码算法中对视频数据进行相同类型的操作的标量运算转换为能够进行并行处理的矢量运算,以便于对视频解码算法进行Neon协处理器实现。
仅作为示例,针对如下表1所示的运动补偿中的四分之一精度插值算法的函数原型(其中,src为源数据,dst为目标数据),可以看出,内层循环中存在大量数据进行相同操作的情况,诸如,对src开始的8个数据和src+1开始的8个数据分别进行加法操作。
表1
考虑到内层循环中相同的操作会进行8次,而源数据和目的数据的位宽都是8位且Neon协处理器的Double寄存器位宽为64位,可将源数据和目的数据排列成8分量矢量,对于常整型数32、4和6,可将其排列成具有8个相同分量的矢量,具体的矢量表示如下表2所示。
表2
考虑到多次操作中会有中间结果,可使用8分量矢量来存储中间计算结果,并且为防止溢出,每个分量的位宽为16位,具体的矢量计算如下表3所示。
表3
随后,可在汇编级用Neon协处理器指令实现上述矢量计算。下表4所示是一个循环内的Neon并行计算,其中,r0是目标数据dst的开始地址,r1是源数据src的开始地址,r2是源数据src的步幅。
表4
图2是示出根据本发明示例性实施例的基于Neon协处理器的YUV420Planar到YUV420Semi-planar色彩格式转换方法的流程图。
如图2所示,在步骤S210,确定Neon协处理器的源端的未转换的U分量和V分量是否均小于第一预定数量。这里,仅作为示例,第一预定数量可以是16。
如果Neon协处理器的源端的未转换的U分量和V分量均不小于第一预定数量,则在步骤S220,从源端的U分量提取第一预定数量的U分量并存储到第一寄存器,从源端的V分量提取第一预定数量的V分量并存储到第二寄存器,并使用交叉存储指令将第一寄存器中的U分量和第二寄存器中的V分量交叉存储到目的端,随后,重复执行上述步骤,直到Neon协处理器的源端的未转换的U分量和V分量均小于第一预定数量。这里,仅作为示例,所述交叉存储指令可以是vst2.8交叉存储指令。
如果Neon协处理器的源端的未转换的U分量和V分量均小于第一预定数量,则在步骤S230,从源端的U分量提取第二预定数量的U分量并存储到第一寄存器,从源端的V分量提取第二预定数量的V分量并存储到第一寄存器,并使用交叉存储指令将第一寄存器中的U分量和V分量交叉存储到目的端,随后,重复执行上述步骤,直到所有U分量和V分量的转换完成。这里,第二预定数量小于第一预定数量,仅作为示例,第一预定数量可以是1。
图3是示出根据本发明示例性实施例的基于多核平台的YUV420Planar到YUV420Semi-planar色彩格式转换方法的流程图。
如图3所示,在步骤S310,将宽度为width、高度为height的YUV数据块分割成N个YUV子数据块,其中,每个YUV子数据块的宽度为width,高度为height/N,width、height、N均为正整数。
在步骤S320,创建N个子线程,并初始化每个子线程对应的数据结构体,在所述数据结构体中包含子线程所要处理的YUV子数据块的起始地址,如下面等式组1所示,其中,start_X表示YUV子数据块开始的横坐标,start_Y表示YUV子数据块开始的纵坐标,id表示YUV子数据块的序列号,id的范围是从0到N-1。
start_X=0,start_Y=height/N*id等式组1
在步骤S330,针对每个子线程,创建相应的条件变量用于子线程之间以及子线程和主线程之间的同步,并放到相应的数据结构体中。这里,仅作为示例,所述条件变量可包括数据更新(update)条件变量和转换完成(finish)条件变量。
在步骤S340,当数据更新(update)条件变量被触发时,每个子线程根据YUV子数据块的起始地址,使用传统的YUV420Planar到YUV420Semi-planar色彩格式转换方法进行转换,转换完成后设置相应的转换完成finish条件变量。具体转换公式如下等式组2所示。
yPtr=data0+width*start_Y
uPtr=data1+width*start_Y/2
vPtr=data2+width*start_Y/2
out_Y=data3+width*start_Y
out_UV=data3+width*height+width*start_Y/2等式组2
其中,yPtr、uPtr、vPtr分别表示子线程所要处理的Y、U、V子数据块的起始地址,data0、data1、data2分别表示原始Y、U、V数据的起始地址,out_Y、out_UV分别表示子线程处理后的Y、UV数据的起始地址,data3表示处理后的Y、UV数据的起始地址。
这里,在解码线程中,当完成一帧视频数据的解码时,会分别触发每个子线程的数据更新(update)条件变量一次,然后等待每个子线程的转换完成(finish)条件变量。当获得所有子线程的转换完成(finish)条件变量时,YUV420Planar到YUV420Semi-planar色彩格式转换过程结束,并释放所有子线程及相应的资源。
根据本发明的示例性实施例,通过基于多核平台的基于流水线的多线程并行视频解码以及基于Neon协处理器和多核平台的YUV420Planar到YUV420Semi-planar色彩格式转换,提高了视频解码速度,WMV、VP-x和MPEG-x等标准的视频解码速率相对于未经优化的原始解码方法提高了60%以上,在多核平台以及Neon协处理器上真正实现了支持高清及以上分辨率的无延迟播放的软件解码器,并具有扩展性好、兼容性强的优点。
虽然已经参照特定示例性实施例示出和描述了本发明,但是本领域的技术人员将理解,在不脱离范围由权利要求及其等同物限定的本发明的精神和范围的情况下可作出形式和细节上的各种改变。
Claims (10)
1.一种视频解码优化方法,包括:
创建和初始化多个解码线程;
在主线程中将视频负载包分别发送给多个解码线程;
由多个解码线程并行地对视频负载包的视频数据进行解码;
在对所有视频负载包的视频数据完成解码时,由主线程将对所有视频负载包的视频数据完成解码的解码线程释放。
2.如权利要求1所述的视频解码优化方法,其中,创建和初始化多个解码线程的步骤包括:
创建第一个解码线程,并对第一个解码线程进行上下文信息的初始化操作和上下文内存分配操作;
创建所述多个解码线程中其余的解码线程,对其余的解码线程分别分配上下文内存并拷贝第一个解码线程的初始化的上下文信息,并且状态机进入等待输入负载包状态。
3.如权利要求2所述的视频解码优化方法,其中,在主线程中将视频负载包分别发送给多个解码线程的步骤包括针对每个解码线程进行以下步骤:
(a)确定当前解码线程是否是接收视频负载包的第一个解码线程;
(b)如果当前解码线程不是第一个解码线程,则等待前一个解码线程的状态改变为解码准备完成状态,随后执行步骤(c),如果当前解码线程是第一个解码线程,则直接执行步骤(c);
(c)将视频负载包发送给当前解码线程,将当前解码线程的状态设置为视频负载包准备完成状态,并为当前解码线程分配输出帧存储内存。
4.如权利要求3所述的视频解码优化方法,其中,为当前解码线程分配输出帧存储内存的步骤包括:
如果获取帧存储内存的操作是线程安全的,则不将当前解码线程的状态设置为获取帧内存状态,而直接获取主线程分配的帧存储内存;
如果获取帧存储内存的操作是非线程安全的,则将当前解码线程的状态设置为获取帧内存状态,并返回主线程,等待当前解码线程完成解码后,再获取主线程分配的帧存储内存。
5.如权利要求4所述的视频解码优化方法,其中,由多个解码线程并行地对视频负载包的视频数据进行解码的步骤包括针对每个解码线程并行地进行以下步骤:
(d)确定当前解码线程的状态是否为等待输入负载包状态,如果当前解码线程的状态是等待输入负载包状态,则等待直到当前解码线程的状态变成非等待输入负载包状态,随后执行步骤(e),如果当前解码线程的状态不是等待输入负载包状态,则直接执行步骤(e);
(e)对当前解码线程的上下文信息进行更新,并将当前解码线程的状态设置为解码准备完成状态;
(f)由当前解码线程对视频负载包进行解码;
(g)将视频负载包完成解码的当前解码线程的状态恢复为等待输入负载包状态,重复执行步骤(e)、(f),并在所有视频负载包完成解码时由主线程将所有视频负载包完成解码的当前解码线程释放。
6.如权利要求1所述的视频解码优化方法,其中,由多个解码线程并行地对视频负载包的视频数据进行解码的步骤包括:
如果视频数据的当前帧的宏块行n未完成解码且需要参考其它帧,则可对当前帧的宏块行n进行加锁并等待参考帧的完成解码,如果宏块行n已经解锁并完成解码,则宏块行n前面的宏块行均已完成解码;
如果视频数据的当前帧的宏块行k的宏块l参考了参考帧的宏块行j的宏块m,并且参考帧的宏块行j还未完成解码,则使用互斥锁使当前帧的宏块行k的解码处于等待状态,直到参考帧的宏块行j完成解码,
其中,n、k、l、j、m均为正整数。
7.如权利要求1所述的视频解码优化方法,其中,对视频数据进行相同类型的操作的标量运算被转换为能够进行并行处理的矢量运算。
8.如权利要求1所述的视频解码优化方法,还包括:
将解码后的视频数据从YUV420平面格式转换为YUV420半平面格式。
9.如权利要求8所述的视频解码优化方法,其中,基于Neon协处理器将解码后的视频数据从YUV420平面格式转换为YUV420半平面格式,所述转换步骤包括:
如果Neon协处理器的源端的未转换的U分量和V分量均不小于第一预定数量,则从源端的U分量提取第一预定数量的U分量并存储到第一寄存器,从源端的V分量提取第一预定数量的V分量并存储到第二寄存器,并使用交叉存储指令将第一寄存器中的U分量和第二寄存器中的V分量交叉存储到目的端,重复执行上述步骤,直到Neon协处理器的源端的未转换的U分量和V分量均小于第一预定数量;
如果Neon协处理器的源端的未转换的U分量和V分量均小于第一预定数量,则从源端的U分量提取第二预定数量的U分量并存储到第一寄存器,从源端的V分量提取第二预定数量的V分量并存储到第一寄存器,并使用交叉存储指令将第一寄存器中的U分量和V分量交叉存储到目的端,重复执行上述步骤,直到所有U分量和V分量的转换完成,
其中,第二预定数量小于第一预定数量。
10.如权利要求8所述的视频解码优化方法,其中,基于多核平台将解码后的视频数据从YUV420平面格式转换为YUV420半平面格式,所述转换步骤包括:
将宽度为width、高度为height的YUV数据块分割成N个YUV子数据块,每个YUV子数据块的宽度为width,高度为height/N;
创建N个子线程,并初始化每个子线程对应的数据结构体,在所述数据结构体中包含子线程所要处理的YUV子数据块的起始地址;
针对每个子线程,创建数据更新条件变量和转换完成条件变量用于子线程之间以及子线程和主线程之间的同步,并放到相应的数据结构体中;
当更新条件变量被触发时,每个子线程根据YUV子数据块的起始地址将解码后的视频数据从YUV420平面格式转换为YUV420半平面格式,转换完成后设置相应的完成条件变量;
当获得所有子线程的完成条件变量时,释放所有子线程,
其中,当解码线程完成一帧视频数据的解码时,分别触发每个子线程的更新条件变量一次。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410179194.6A CN105100803B (zh) | 2014-04-29 | 2014-04-29 | 视频解码优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410179194.6A CN105100803B (zh) | 2014-04-29 | 2014-04-29 | 视频解码优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105100803A true CN105100803A (zh) | 2015-11-25 |
CN105100803B CN105100803B (zh) | 2018-12-18 |
Family
ID=54580211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410179194.6A Active CN105100803B (zh) | 2014-04-29 | 2014-04-29 | 视频解码优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105100803B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528456A (zh) * | 2016-11-16 | 2017-03-22 | 湖南国科微电子股份有限公司 | 一种提高视频解码显示中系统总线效率的方法及系统 |
CN108419125A (zh) * | 2018-03-08 | 2018-08-17 | 弘成科技发展有限公司 | 多媒体课堂移动端的远程控制方法 |
CN111432262A (zh) * | 2020-02-24 | 2020-07-17 | 杭州海康威视数字技术股份有限公司 | 页面视频渲染方法及装置 |
CN112487976A (zh) * | 2020-11-30 | 2021-03-12 | 中科院计算所西部高等技术研究院 | 基于图像识别的监测方法、装置和存储介质 |
CN112488906A (zh) * | 2020-11-30 | 2021-03-12 | 中科院计算所西部高等技术研究院 | 基于多线程的图像处理方法、计算机设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101170707A (zh) * | 2007-11-08 | 2008-04-30 | 华为技术有限公司 | 图像格式的转换和恢复方法及装置 |
CN101461247A (zh) * | 2006-06-08 | 2009-06-17 | 高通股份有限公司 | 视频块的并行批量解码 |
CN101710986A (zh) * | 2009-11-18 | 2010-05-19 | 中兴通讯股份有限公司 | 基于同构多核处理器的h.264并行解码方法和系统 |
CN101867833A (zh) * | 2010-06-12 | 2010-10-20 | 北京东方艾迪普科技发展有限公司 | 一种视频图像格式转换方法和装置 |
CN102150425A (zh) * | 2008-09-11 | 2011-08-10 | 谷歌公司 | 用于使用并行处理来进行解码的系统和方法 |
US8401084B2 (en) * | 2002-04-01 | 2013-03-19 | Broadcom Corporation | System and method for multi-row decoding of video with dependent rows |
-
2014
- 2014-04-29 CN CN201410179194.6A patent/CN105100803B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8401084B2 (en) * | 2002-04-01 | 2013-03-19 | Broadcom Corporation | System and method for multi-row decoding of video with dependent rows |
CN101461247A (zh) * | 2006-06-08 | 2009-06-17 | 高通股份有限公司 | 视频块的并行批量解码 |
CN101170707A (zh) * | 2007-11-08 | 2008-04-30 | 华为技术有限公司 | 图像格式的转换和恢复方法及装置 |
CN102150425A (zh) * | 2008-09-11 | 2011-08-10 | 谷歌公司 | 用于使用并行处理来进行解码的系统和方法 |
CN101710986A (zh) * | 2009-11-18 | 2010-05-19 | 中兴通讯股份有限公司 | 基于同构多核处理器的h.264并行解码方法和系统 |
CN101867833A (zh) * | 2010-06-12 | 2010-10-20 | 北京东方艾迪普科技发展有限公司 | 一种视频图像格式转换方法和装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528456A (zh) * | 2016-11-16 | 2017-03-22 | 湖南国科微电子股份有限公司 | 一种提高视频解码显示中系统总线效率的方法及系统 |
CN106528456B (zh) * | 2016-11-16 | 2020-02-21 | 湖南国科微电子股份有限公司 | 一种提高视频解码显示中系统总线效率的方法及系统 |
CN108419125A (zh) * | 2018-03-08 | 2018-08-17 | 弘成科技发展有限公司 | 多媒体课堂移动端的远程控制方法 |
CN111432262A (zh) * | 2020-02-24 | 2020-07-17 | 杭州海康威视数字技术股份有限公司 | 页面视频渲染方法及装置 |
CN111432262B (zh) * | 2020-02-24 | 2022-05-24 | 杭州海康威视数字技术股份有限公司 | 页面视频渲染方法及装置 |
CN112487976A (zh) * | 2020-11-30 | 2021-03-12 | 中科院计算所西部高等技术研究院 | 基于图像识别的监测方法、装置和存储介质 |
CN112488906A (zh) * | 2020-11-30 | 2021-03-12 | 中科院计算所西部高等技术研究院 | 基于多线程的图像处理方法、计算机设备和存储介质 |
CN112487976B (zh) * | 2020-11-30 | 2023-10-24 | 中科院计算所西部高等技术研究院 | 基于图像识别的监测方法、装置和存储介质 |
CN112488906B (zh) * | 2020-11-30 | 2023-10-31 | 中科院计算所西部高等技术研究院 | 基于多线程的图像处理方法、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105100803B (zh) | 2018-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108206937B (zh) | 一种提升智能分析性能的方法和装置 | |
EP2593862B1 (en) | Out-of-order command execution in a multimedia processor | |
US9392292B2 (en) | Parallel encoding of bypass binary symbols in CABAC encoder | |
CN105100803A (zh) | 视频解码优化方法 | |
KR100418437B1 (ko) | 멀티미디어 신호처리를 위한 영상복원 프로세서 | |
US20150092834A1 (en) | Context re-mapping in cabac encoder | |
CN105187845A (zh) | 视频数据解码装置及解码方法 | |
US9460489B2 (en) | Image processing apparatus and image processing method for performing pixel alignment | |
Park et al. | Programmable multimedia platform based on reconfigurable processor for 8K UHD TV | |
JP4865662B2 (ja) | エントロピー符号化装置、エントロピー符号化方法およびコンピュータプログラム | |
CN105163128A (zh) | 一种利用gpu并行加速图像转换的屏幕图像获取方法 | |
US9241142B2 (en) | Descriptor-based stream processor for image processing and method associated therewith | |
US20230185873A1 (en) | Method and apparatus for separable convolution filter operations on matrix multiplication arrays | |
US20220109838A1 (en) | Methods and apparatus to process video frame pixel data using artificial intelligence video frame segmentation | |
CN105578194A (zh) | Jpeg图像解码方法和解码器 | |
KR102247741B1 (ko) | 이미지 프로세서, 상기 이미지 프로세서의 동작 방법, 및 상기 이미지 프로세서를 포함하는 애플리케이션 프로세서 | |
US20230195388A1 (en) | Register file virtualization : applications and methods | |
CN102833541B (zh) | 用于mpeg-2视频解码的sdram控制系统 | |
WO2010113340A1 (en) | Single instruction multiple data (simd) processor having a plurality of processing elements interconnected by a ring bus | |
CN114374848A (zh) | 一种视频编码优化方法和系统 | |
CN110038301B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
Wang et al. | Design and implementation of a flexible DMA controller in video codec system | |
CN109831670A (zh) | 一种反量化方法、系统、设备及计算机可读介质 | |
CN112437308A (zh) | 一种WebP编码方法及装置 | |
CN109788289A (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 |