CN111355962A - 适用于多参考帧的视频解码高速缓存方法、计算机装置及计算机可读存储介质 - Google Patents
适用于多参考帧的视频解码高速缓存方法、计算机装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111355962A CN111355962A CN202010163487.0A CN202010163487A CN111355962A CN 111355962 A CN111355962 A CN 111355962A CN 202010163487 A CN202010163487 A CN 202010163487A CN 111355962 A CN111355962 A CN 111355962A
- Authority
- CN
- China
- Prior art keywords
- data
- sub
- memory
- storage
- block
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 230000015654 memory Effects 0.000 claims abstract description 275
- 238000004590 computer program Methods 0.000 claims description 20
- 230000008569 process Effects 0.000 description 18
- 238000012545 processing Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 230000006835 compression Effects 0.000 description 7
- 238000007906 compression Methods 0.000 description 7
- 238000013507 mapping Methods 0.000 description 5
- 230000005055 memory storage Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000008713 feedback mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/56—Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
-
- 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/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/43—Hardware specially adapted for motion estimation or compensation
-
- 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/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/43—Hardware specially adapted for motion estimation or compensation
- H04N19/433—Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
-
- 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/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
-
- 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/44—Processing 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/44004—Processing 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
-
- 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/44—Processing 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/4402—Processing 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提供一种适用于多参考帧的视频解码高速缓存方法、计算机装置及计算机可读存储介质,该方法包括将高速缓存存储器划分为多个子存储块,每一子存储块用于存储至少一个参考帧的数据;获取解码上一帧数据时,每一子存储块所读取的相应参考帧的参考数据量;解码当前帧数据时,根据各子存储块所读取的参考数据量动态的调节各子存储块的存储空间大小。本发明还提供实现上述方法的计算机装置及计算机可读存储介质。本发明可以适应不同码流、不同类型的DDR存储器来调节各个子存储块的存储空间大小,达到减少从DDR存储器读取数据量的目的,从而降低视频解码芯片与DDR存储器之间的带宽需求。
Description
技术领域
本发明涉及视频图像解码的技术领域,具体地,是一种在适用于多参考帧的视频解码高速缓存方法以及实现这种方法的计算机装置、计算机可读存储介质。
背景技术
现在的智能电子设备大多具备视频播放的功能,由于视频是由多帧连续的图像构成,为了减少视频数据的存储量以及传送量,往往需要对视频数据进行压缩编码,因此,视频播放前通常需要对视频数据进行解码。目前主流的视频压缩、编解码的技术包括H.264、H.265、VP9等。为了播放视频,智能电子设备内需要设置中央处理器(CPU)、存储器以及视频解码芯片,存储器用于存储经过压缩的视频数据,而视频解码芯片用于对压缩的视频数据进行解码,解码后的数据才能够输出至显示器。
通常,经过压缩的视频数据被存储在一个DDR存储器(DDR SDRAM,Double DataRate Synchronous Dynamic Random Access Memory)中,DDR存储器通常独立于视频解码芯片,因此,视频解码芯片需要不断的从DDR存储器中读取数据。但是,视频解码芯片与DDR存储器之间用于数据传输的带宽往往是有限的,如果短时间内视频解码芯片需要从DDR存储器内读取大量的数据,将会因为带宽的限制导致视频解码芯片从DDR存储器所读取的数据不满足解码的需求。
由于视频的连续多帧图像中,当前帧图像前后的连续几帧图像之间的相关性较高,目前主流的视频压缩技术如H.264、H.265、VP9等均利用这一特性来提高视频的压缩率,利用帧间冗余进行视频编码这一过程称为运动估计。
下面结合图1对目前视频编码技术进行说明。对原始的视频数据进行压缩编码时,当前帧10是指正在压缩的一帧图像,其使用了位于当前帧之前的n个参考帧的数据进行压缩编码,例如使用参考帧21、24、27的数据进行压缩编码。通常,所使用的参考帧是位于当前帧前连续的若干帧,对于不同的编码技术,所使用的参考帧的数量、从每一参考帧获取的数据量是不尽相同的。
编码器对当前帧进行编码时,通常将当前帧划分为多个块,并且以块为单位进行编码,通常编码器在每个参考帧限定一定大小的运动估计搜索区域。例如,参考帧21内限定的搜索区域22,参考帧24内限定的搜索区域25,参考帧27内限定的搜索区域28。
对当前帧10的当前块11进行编码时,编码器对每个参考帧的搜索区域进行搜索,找出与当前块11最匹配的参考块,例如从搜索区域22内搜索获取参考块23,从搜索区域25内搜索获取参考块26,从搜索区域28内搜索获取参考块29,并且使用参考块23、26、29的数据对当前块11进行编码。
为了提高压缩率,编码器不仅对整数像素进行搜索,也会通过插值滤波的方式对分像素进行搜索。如H.265标准规定,亮度分量的1/2像素值使用8抽头滤波器生成;1/4像素和3/4像素使用7抽头滤波器生成。参考块与当前块的空间距离称为运动矢量(mv)。因此,运动估计得到的运动矢量可能会包括小数分量。
如图2所示,假设应用H.265标准进行编码,当前块11的大小为16×8,如果运动矢量的x分量(即水平距离)和y分量(即垂直距离)都包含了小数,说明当前块11的预测值是通过插值滤波计算得到,为了得到16×8个亮度分量数据预测结果,则需要读取23×15个亮度分量的预测数据,即水平方向左侧多读3个参考亮度数据,右侧多读4个参考亮度数据,垂直分量的上侧需要多读3个参考亮度数据,下侧多读4个亮度数据,需要读取的亮度数据块的大小如图2中标号32所示。可以看出,对16×8个像素点进行亮度预测可能需要23×15个像素点的参考数据,读取的数据大小约为当前块11大小的2.69倍。若当前块11为双向预测的亮度块,则需要从两个的参考帧各读取一个参考块的数据,即读取的数据大小可能达到2×23×15,读取的数据大小约为当前块11大小的5.38倍。对于更小的分块,所需要读取的参考数据大小的倍数更高。图2中,数据块33、34分别是不同大小的两种数据块。
由此可见,对于视频解码芯片来说,解码一帧图像读取参考帧数据的数据量为当前帧大小的好几倍。随着视频尺寸的增大,解码芯片与DDR存储器之间用于数据传输的带宽大小则可能成为制约解码性能提升的瓶颈。
在常规的视频解码***中,参考帧数据一般保存在视频解码器芯片外部的DDR存储器中。目前主流的DDR存储器类型为DDR3存储器和DDR4存储器。目前的DDR3存储器都是使用8位预取(8-bit prefetch)的方式进行数据读取,因此DDR3存储器的突发长度(burstlength)为8,即对DDR3存储器操作一次的最小数据单位为32字节。在图2中,如果需要读取大小为23×15的参考块的亮度数据起始地址不是32对齐,那么实际从DDR3存储器中读取的亮度参考数据块的实际大小为64×15(假设亮度数据按光栅扫描格式保存),为当前块亮度大小的7.5倍。DDR3存储器的特点使得运动补偿过程读取的数据进一步变大,带宽资源也变得更加紧张。另外,从DDR3存储器中读取数据具有一定的延迟时间,当视频解码芯片过于频繁地从DDR3存储器读取数据,那么数据处理过程中等待数据的时间比例就会有所提升,成为制约编解码性能提升的又一关键因素。
由于视频的编解码过程是按块进行连续处理,因此编码的运动估计或解码的运动补偿过程中,读取回来的多余的数据有极大的概率可以给下一个块使用,利用这一特点,视频解码芯片一般会设计一块片内高速缓存存储器(cache),从DDR3存储器读取的数据将保存在高速缓存存储器中。对下一块数据进行解码时,首先从高速缓存存储器中查找是否有用于下一块数据进行解码所使用的参考块的数据,也就是是否cache命中,如果在高速缓存存储器中查找到所需的参考块的数据,则不需要再从外部的DDR3存储器读取数据,节省了带宽,同时也减少了处理器等待数据的时间。
视频解码***所使用的中央处理器,比如ARM CPU,其高速缓存存储器是将片内的SRMA划分为一定大小的存储单元(cache line),如每个存储单元的大小为64字节。通常,中央处理器将这些存储单元的地址映射到片外的DDR3存储器的相应地址。这种做法对于一般的连续数据处理的场景,其cache命中率是比较高的,能有效节省带宽。但对于按块进行解码的视频处理场景,直接使用这种机制不是最优的解决方案。因此根据视频处理的特点,尤其是多参考帧情况下,有必要设计一套专用高速缓存***才能做到在有限的片内SRAM大小下实现命中率的提升。
现有的一些技术针对图像解码的过程进行了优化,例如中国发明专利申请CN200580037541.0、美国专利US8225043、US9363542都公开了针对图像解码处理的优化技术,但其中的一些技术将高速缓存存储器映射到DDR3存储器的参考帧数据设置为固定的矩形窗口,不能很好处理超出矩形窗口范围的数据,无法通过参数配置调整每一个存储单元的大小以适应不同DDR存储器类型的突发长度,即不能适应不同类型的DDR存储器的最小操作数据单位,如DDR3存储器的突发长度为8,每次读取或写入DDR3存储器的最小数据单位为32字节。另外,现有的方案并没有针对基于多个参考帧解码的方案进行优化,不能够很好适应基于多参考帧的视频解码的需求。
发明内容
本发明的主要目的是提供一种能够灵活适用不同编码标准并且适应不同突发长度的DDR存储器的适用于多参考帧的视频解码高速缓存方法。
本发明的另一目的是提供一种实现上述适用于多参考帧的视频解码高速缓存方法的计算机装置。
本发明的再一目的是提供一种实现上述适用于多参考帧的视频解码高速缓存方法的计算机可读存储介质。
为实现本发明的主要目的,本发明提供的适用于多参考帧的视频解码高速缓存方法包括将高速缓存存储器划分为多个子存储块,每一子存储块用于存储至少一个参考帧的数据;获取解码上一帧数据时,每一子存储块所读取的相应参考帧的参考数据量;解码当前帧数据时,根据各子存储块所读取的参考数据量动态的调节各子存储块的存储空间大小。
由上述方案可见,对当前帧进行解码时,通过获取解码上一帧的时候,各子存储块所读取的参考帧的参考数据量来调节各个子存储块的大小,这样,解码上一帧时读取参考数据量较多的子存储块将被分配较大的存储空间,而解码上一帧时读取参考数据量较少的子存储块将被分配较小的存储空间,从而实现各子存储块的存储空间的灵活调节,可以减少视频解码芯片从DDR存储器读取数据的量,从而节省带宽资源,并且能够提高解码的性能。
一方面,针对不同的编解码标准,每解码一帧图像所获取的参考帧的数量、从各参考帧获取的数据量是不相同的,应用上述方法可以灵活调节各子存储块的大小,很好的满足不同编解码标准的要求。另一方面,针对不同突发长度的DDR存储器,通过在解码过程中通过自适应调节各个子存储块的大小,可以有效减少从DDR存储器读取数据的次数,节约带宽资源。
一个优选的方案是,根据各子存储块所读取的参考数据量调节各子存储块的存储空间大小包括:每一子存储块的存储空间大小的调节正关系于解码上一帧数据时该子存储块所读取的相应参考帧的参考数据量。
由此可见,通过灵活、动态的分配个子存储块的存储空间大小,使得更多有效的冗余数据存储在高速缓存存储器中,避免反复的从DDR存储器中读取数据,减少从DDR存储器中读取的数据量,减少处理器的数据等待时间。
进一步的方案是,根据各子存储块所读取的参考数据量调节各子存储块的存储空间大小包括:获取解码上一帧数据时,各子存储块所读取的相应参考帧的参考数据量占所有子存储块所读取的相应参考帧的参考数据量总和的比例;根据比例调节各子存储块的存储空间大小。
可见,根据解码上一帧数据时各个子存储块读取的数据量的比例来调节各存储器的存储空间大小,可以最大限度的满足数据存储的要求,减少从DDR存储器读取数据的数据量。
更进一步的方案是,每一子存储块包括多个存储单元;更新子存储块数据时,每次更新一个存储单元的数据。
可见,对存储单元逐个更新,可以充分利用每一个存储单元,提高高速缓存存储器的每一个存储单元的利用率。
一个优选的方案是,更新子存储块数据时,计算该子存储块中多个存储单元的更新优先等级,用于更新数据的存储单元为更新优先等级最高的存储单元。
由此可见,更新存储存储单元的数据时,通过计算每一个存储单元的更新优先等级来确定对哪一个存储单元的数据进行更新,可以确保存储单元的数据能够最长时间的存储,避免存储单元所存储的数据过短而频繁从DDR存储器读取数据。
更进一步的方案是,每一存储单元具有对应的标签信息;计算存储单元的更新优先等级包括:根据该存储单元对应的标签信息计算存储单元的更新优先等级。
可见,通过设置存储单元的标签信息并通过对标签信息进行计算来确定每一个存储单元的更新优先等级,可以快速、精确的计算出每一个存储单元的更新优先等级。
更进一步的方案是,标签信息至少包括以下的一个:该存储单元上一次数据更新的时间值、与当前行最后更新的存储单元在参考帧图像上的空间距离。
由此可见,每一个存储单元数据更新的优先等级与该存储单元上一次数据更新的时间值、与最后更新的存储单元在参考帧上的空间距离相关,使更新时间最久、与最后更新的存储单元在参考帧上的空间距离最远的存储单元最先被更新,使得存储单元的数据能够得到最充分的利用,提高数据的利用率。
更进一步的方案是,更新一个存储单元的数据时,更新该存储单元所在的一行所有存储单元对应的标签信息。
这样,可以确保每一个存储单元的标签信息都是根据最新更新的存储单元的状态来更新的,有利于准确计算每一个存储单元的更新优先等级,从而确保每一个存储单元的数据被最充分的利用。
为实现上述的另一目的,本发明提供的计算机装置包括处理器以及存储器,存储器存储有计算机程序,计算机程序被处理器执行时实现上述适用于多参考帧的视频解码高速缓存方法的各个步骤。
为实现上述的再一目的,本发明提供计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述适用于多参考帧的视频解码高速缓存方法的各个步骤。
附图说明
图1是现有视频压缩技术中视频压缩参考帧使用的示意图。
图2是现有视频压缩技术中一个待计算的数据块与参考块的大小示意图。
图3是本发明适用于多参考帧的视频解码高速缓存方法实施例的流程图。
图4是应用本发明适用于多参考帧的视频解码高速缓存方法实施例的***结构框图。
图5是应用本发明适用于多参考帧的视频解码高速缓存方法实施例的高速缓存存储器结构框图。
图6是应用本发明适用于多参考帧的视频解码高速缓存方法实施例的子存储块与其对应的标签的结构框图。
图7是应用本发明适用于多参考帧的视频解码高速缓存方法实施例中子存储块与参考帧数据之间的映射示意图。
图8是应用本发明适用于多参考帧的视频解码高速缓存方法实施例一个子存储块对应的标签信息的存储示意图。
图9是本发明适用于多参考帧的视频解码高速缓存方法实施例中处理参考数据块请求的流程图。
图10是应用本发明适用于多参考帧的视频解码高速缓存方法实施例中参考数据块与存储单元对齐的示意图。
图11是本发明适用于多参考帧的视频解码高速缓存方法实施例中参考数据块的搜索流程图。
以下结合附图及实施例对本发明作进一步说明。
具体实施方式
本发明的适用于多参考帧的视频解码高速缓存方法应用在智能电子设备上,优选的,智能电子设备具有视频播放功能,例如智能电子设备设置有显示器以及视频解码芯片。此外,智能电子设备还设置有处理器以及存储器,存储器上存储有计算机程序,处理器通过执行该计算机程序实现适用于多参考帧的视频解码高速缓存方法。
适用于多参考帧的视频解码高速缓存方法实施例:
本实施例应用于具有视频播放功能的智能电子设备,智能电子设备设置有视频解码***,视频解码***具有诸如DDR存储器以及视频解码芯片等,其中,经过压缩的视频数据存储在DDR存储器中,视频解码芯片从DDR存储器读取待解码的数据并且将待解码的数据进行解码。优选的,视频解码芯片内设置有高速缓存存储器,且高速缓存存储器被划分为多个子存储块,每一个子存储块包括有若干个存储单元。
本实施例主要针对视频解码过程中,对当前帧解码需要使用与当前帧相邻的多个参考帧的情况,设计一种可以自适应调节高速缓存存储器内各个子存储块的方法。设置高速缓存存储器的核心思想是实现从DDR存储器读取数的连续性和提前性,并尽可能减少数据的冗余读取以降低对带宽的需求。本实施例通过对高速缓存存储器的参数的配置,将高速缓存存储器划分为多个不同的子存储块,每个子存储块可以映射一个参考帧或多个参考帧。子存储块中的存储单元可以根据DDR存储器的突发长度进行配置,灵活适应多种DDR存储器的使用需求。
此外,本实施例还是设置了存储单元的数据更新规则,该规则综合考虑的参考块在高速缓存存储器中保存的时间以及各存储单元之间的距离,提高cache命中率。最后通过高速缓存存储器的统计模块统计分析各个子存储块以及各个参考帧的数据读取量,根据分析结果对高速缓存存储器参数进行配置,使高速缓存存储器在解码不同码流过程中都达到最优的利用率。
下面结合图3介绍本实施例的工作流程。首先,执行步骤S1,将高速缓存存储器划分为多个子存储块。参见图4,视频解码芯片40可以从DDR存储器45读取数据,视频解码芯片40内设置有视频解码处理模块41、运动补偿参考数据请求队列42、高速缓存存储器43以及DDR控制器44。其中,视频解码处理模块41用于对视频数据进行熵解码、帧内预测、帧间预测、反量化反变换、去块滤波等运算。由于在帧间预测过程中需要读取参考帧数据进行运动补偿运算,运动补偿模块发出的读取参考数据命令首先在运动补偿参考帧数据请求队列42中排队,依次在高速缓存存储器43中进行处理。高速缓存存储器43通过DDR控制器44向片外的DDR存储器45读取参考数据。
高速缓存存储器43的设计是本发明的核心,参见图5,高速缓存存储器43内设置有存储器控制模块51、存储器统计模块52以及地址转换模块53,并且,高速缓存存储器43被划分为多个子存储块,每一个子存储块对应于一个子标签。本实施例中,高速缓存存储器43包括四个子存储块,分别是子存储块0、子存储块1、子存储块2以及子存储块3,子标签0为子存储块0的标签,子标签1为子存储块1的标签,子标签2为子存储块2的标签,子标签3为子存储块3的标签。
每一个子存储块是一个用于存储参考数据的存储模块,并且,多个子存储块以及多个子标签的总大小是固定的,存储器控制模块51可以通过对高速缓存存储器43的参数配置控制划分的子存储块的数量以及每一个子存储块的存储空间的大小。图5是以划分为四个子存储块以及四个子标签进行举例说明,本发明在实际使用过程中可以根据参考帧个数以及码流的具体情况进行灵活的划分。
每一个子存储块可以映射一个参考帧或多个参考帧,这通过存储器控制模块51的配置实现。存储器统计模块52用于统计各个子存储块的运行情况,如各个子存储块的命中率、各子存储块访问DDR存储器45的情况,为存储器控制模块51的参数配置提供反馈数据。当所需的参考数据不在高速缓存存储器43中,需要向DDR存储器45读取数据时,由地址转换模块53根据参考块的信息找到这些数据存储在DDR存储器45的地址,并向DDR控制器44发出读取数据的命令。
参见图6,一个子存储块61包括有多个存储单元(cache line)以及多个标签,并且,每一个存储单元与子标签62中相应位置的标签是一一对应的。图6所示的子存储块61具有有m×n个存储单元,即共有m行,每行有n列。相应的,子标签62内也设置有m×n个标签,例如标签00对应于存储单元00,例如标签01对应于存储单元01,例如标签0n对应于存储单元0n,例如标签mn对应于存储单元mn,以此类推。
针对视频解码过程是按块处理的特点,本实施例每一个的存储单元为一个矩形的数据块,该数据块的大小可以根据DDR存储器的突发长度以及图像数据存放格式灵活配置。假设某个子存储块的SRAM能够存储256×32个像素数据(包括亮度数据与色度数据),若图像存储格式为光栅扫描的yuv格式且为DDR存储器的突发长度为4,即最小DDR操作单元为16字节,则可将该子存储块每一个的存储单元大小配置为16×4,此时该子存储块共有16×8个存储单元;若DDR存储器的突发长度为8,即最小DDR操作单元为32字节,则可将该子存储块的每一个存储单元大小配置为32×4,此时该子存储块共有8×8个存储单元。
子标签中标签的个数按尺寸最小的存储单元(即此时存储单元个数最多)的情况进行设置,确保每个存储单元都有一个对应的标签。假设最小的存储单元尺寸为16×4,那么将存储单元的大小配置为32×4,则会有一半标签数量是空闲的。
当存储器控制模块51的参数配置了子存储块的大小之后,该子存储块与参考帧数据之间的映射关系也就确立了,主要受子存储块的高度影响。如将某个子存储块的高度配置为64个像素且存储单元为16×4的参考数据块,那么y坐标为64×a(a为整数,且0<=64×a<=图像高度)的16×4参考数据块将会映射到该子存储块的第0行存储单元中;同理y坐标为64×a+4的参考数据块将映射到该子存储块的第1行存储单元中,以此类推。而同一行中的各个存储单元的数据在空间位置没有固定关系,各存储单元中的数据受高速缓存存储器43的数据更新机制的影响。
参见图7,图中左侧的是一个参考帧的一个参考块的多个矩形参考数据块的示意图,参考块由多个大小为16×4的参考数据块构成,如参考数据块A1、A2、A3、A4、A5等。图7的右侧是一个子存储块的多个存储单元示意图,假设子存储块的总高度为16个像素,共有4行存储单元,每个存储单元可以映射到参考块中一个16×4的参考数据块。例如参考帧的参考块第一行的参考数据块A1映射到子存储块的第一行的存储单元B1,参考数据块A2、A3分别被映射到第一行的存储单元B3、B4,而参考块中间隔了16行像素的参考数据块A4、A5也会被映射到子存储块的第一行的存储单元中,例如被映射到存储单元B2、B5中。图7所示的例子中,参考帧的参考块中第一行、第五行的参考数据块将被映射至子存储块的第一行的存储单元中,而不会映射至其他行的存储单元,相应的,参考帧的参考块中第二行、第六行的参考数据块将被映射至子存储块的第二行的存储单元中,以此类推。因此,子存储块的同一行的存储单元只会存储参考块中特定行的参考数据块。
返回图3,在配置了多个子存储块之后,将对视频进行解码。首先,视频解码芯片执行步骤S2,判断当前解码的图像是否为视频的第一帧图像,如是,则执行步骤S5,接收解码当前帧所需要的参考帧的数据。由于当前解码的是第一帧图像,高速缓存存储器的多个子存储块的配置可以按照默认的配置设置,例如根据DDR存储器的类型来设置,一种情况是,多个子存储块的大小相等,另一种情况是,各个子存储块的大小按照默认的比例分配,例如四个子存储块的大小按照4:3:2:1的比例分配。
由于存储器控制模块51设定了每一个子存储块所对应的参考帧,因此各个参考帧的数据将存储至相应的子存储块中,具体的,就是存储至相应子存储块的各个存储单元中,每一个子存储块的各个存储单元的数据更新方法将在后面详细描述。
在获取多个参考帧的数据以后,将执行步骤S6,应用所获取的参考帧的数据对当前帧进行解码,例如应用已知的编解码算法对当前帧的数据进行解码,在此不再赘述。然后,执行步骤S7,判断当前解码的一帧图像是否为最后当前视频的最后一帧,如是,则结束当前视频的解码,否则,执行步骤S3,获取解码上一帧图像时,各子存储块所获取的参考数据量。
由于视频解码过程中,高速缓存存储器43需要不断的从DDR存储器45中读取参考帧的数据,在不同的编解码标准下,从各个参考帧读取的数据量是不相同的。本实施例中,存储器统计模块52将统计解码一帧图像时,各个子存储块从DDR存储器45中读取的相应的参考帧的参考数据量。例如,高速缓存存储器43具有四个子存储块,解码当前帧时需要使用五个参考帧的数据,分别参考帧0、参考帧1、参考帧2、参考帧3、参考帧4,这五个参考帧通常是依次相邻的图像。
此时,可以设置子存储块0用于存储参考帧0的数据,子存储块1用于存储参考帧1的数据,子存储块2用于存储参考帧2的数据,而子存储块3用于存储参考帧3以及参考帧4的数据。假设解码当前帧时,子存储块0从DDR存储器中读取的参考帧0的参考数据量为500kB(千字节,下同),子存储块1从DDR存储器中读取的参考帧1的参考数据量为200kB,子存储块2从DDR存储器中读取的参考帧2的参考数据量为200kB,子存储块3从DDR存储器中读取的参考帧3、参考帧4的参考数据量为100kB。可以看出,各子存储块从DDR存储器所读取的参考数据量是不相同的,如果将各个子存储块的大小设置完全相等,则子存储块0需要频繁的从DDR存储器中读取数据并更新存储单元所存储的数据,因此,在当前帧解码完毕后,子存储块0所存储的数据有限,能够用于下一帧解码所使用的数据也是有限的,这样就导致解码下一帧时,子存储块0还是需要频繁的从DDR存储器中读取数据,并且所读取的数据很可能是解码当前帧曾经读取过的数据,这样就导致了带宽的浪费。
因此,步骤S3中,通过存储器统计模块52将统计解码上一帧图像时,各个子存储块从DDR存储器45中读取的相应的参考帧的参考数据量,作为调节各个子存储块大小的依据。执行步骤S4时,将根据步骤S3所获取的参考数据量来动态的调节解码当前帧时各个子存储块的存储空间的大小。
例如,在初始状态下,各个子存储块的存储空间大小是相等的,例如每一个子存储块的存储空间大小都是占四个存储块的总存储空间的25%。但是,在上一帧图像解码的过程中,各个子存储块从DDR存储器读取的数据量是不相同的,因此步骤S4需要根据解码上一帧图像时各个子存储块所读取的参考数据量大小调节各个子存储块的存储空间大小。
在上述的例子中,子存储块0所读取的参考数据量最多,因此,可以将子存储块0的存储空间增加,而子存储块3所读取的参考数据量最少,因此,可以将子存储块3的存储空间减少。也就是说,解码上一帧图像时,子存储块所读取的参考数据量越多,解码当前帧时该子存储块被分配的存储空间越大,而解码上一帧图像时子存储块所读取的参考数据量越少,解码当前帧时该子存储块被分配的存储空间越小。
进一步的,可以根据解码上一帧图像时,各个子存储块从DDR存储器读取的参考数据量占所有子存储块读取的参考数据量总和的比例来确定各个子存储块的存储空间的大小,例如,子存储块0读取的参考数据量是四个子存储块读取的参考数据量总和的50%,则解码当前帧时,可以将子存储块0的存储空间设置为四个子存储块存储空间总和的50%,以此类推,子存储块1、子存储块2、子存储块3的存储空间分别设置为四个子存储块存储空间总和的20%、20%、10%。
这样,解码当前帧时,将有更多的数据存储在子存储块0中,在当前帧解码完毕后,子存储块0所存储的大量数据很可能将在解码下一帧时使用,这样就可以避免反复从DDR存储器43中读取相同的数据,从而节省带宽。
调节各个子存储块的存储空间大小可以由存储器控制模块51设置的参数决定,即存储器控制模块51改变各个子存储块的存储空间的参数设置来调节各个子存储块的存储空间大小。
调节各个子存储块的存储空间大小后,执行步骤S5,各个子存储块接收更新的数据,然后利用所接收的数据对当前帧进行解码,直到所有的图像解码完毕。
需要说明的是,步骤S4并不限于仅参考解码上一帧图像时各个子存储块所读取的参考数据量来调节各个自存储的存储空间大小,实际应用时,存储器统计模块52可以统计一段时间内,例如过去的三帧或者四帧图像的解码过程中,各个子存储块从DDR存储器读取的参考数据量总和来调节各个子存储块的存储空间大小,这样对子存储块的存储空间大小的调节更加合理,更能有效的节省带宽。
图像解码过程中,高速缓存存储器需要不断的从DDR存储器中读取数据,每一个子存储块存储一个或者多个指定的参考帧的数据,由于每一个子存储块的存储空间是有限的,因此,需要不断的从子存储块中删除旧的数据,并写入新的数据,将旧的数据删除并写入新数据的过程称为数据的刷新。
子存储块具有多个存储单元,每次进行数据更新时,只会更新一个存储单元的数据。但是,由于每个存储单元所存储的数据分别对应于参考数据块的不同位置,如何选择用于数据更新的存储单元,将影响高速缓存存储器从DDR存储器读取数据的数据量。例如,某一存储单元存储的数据是很可能还需要继续使用的数据,如果进行数据更新时,将该存储单元的数据删除,并且写入新的数据,则下次再需要使用该存储单元原先存储的数据时,就只能再次从DDR存储器中读取数据,这样就造成带宽的浪费。因此,本实施例设置了每一个存储单元的更新优先等级,在子存储块每次需要更新数据时,计算每一个存储单元的更新优先等级,选择更新优先等级最高的存储单元进行数据更新,以避免高速存储存储器频繁的从DDR存储器读取相同的数据。
下面介绍针对每一个子存储块的数据刷新的过程。参见图8,为了计算每一个存储单元的更新优先等级,每一个存储单元对应的标签设置有该存储单元映射的参考数据块在图像中的坐标信息,坐标信息包括水平方向的坐标x和垂直方向的坐标y,标签的信息还包括参考帧序号以及权重值,参考帧序号用于表示该存储单元映射的是哪个参考帧的数据。存储器控制模块51可以限定某个子存储块只映射特定的一个参考帧或多个参考帧,因此参考帧序号是确定的。
权重值用于计算该存储单元的更新优先等级,从图8可见,权重值包含时间值t、水平距离h以及垂直距离v三个分量。时间值t用于表示该存储单元数据在高速缓存存储器中保留的时间长短,时间值t是一个可以自增的变量,例如,当某一个存储单元进行数据更新后,该存储单元的时间值t将被初始化为0,如果该存储单元所在的一行中,其他任意一个存储单元进行数据更新,则该行的所有存储单元的时间值t都自增一次,即自加一。水平距离h和垂直距离v存储的数据是该行存储单元任意一个进行数据更新时,当前存储单元与进行数据更新的那个存储单元在参考帧的空间位置上的距离的绝对值。因此,当一个存储单元进行数据更新,同一行的其他存储单元的权重值都会被更新,且进行数据更新的存储单元的权重值都被初始化为0,即时间值t、水平距离h以及垂直距离v都初始化为0。
在进行帧间预测时,视频解码处理模41发出读取参考数据块请求命令并形成命令队列,高速缓存存储器43按照先进先出的原则依次对这些请求命令进行处理。参见图9,在解码一帧图像开始前,存储器控制模块51根据所配置参数,初始化子存储块的个数、各个子存储块的大小、各个子存储块映射的参考帧、每一个存储单元的大小,并且将每一个存储单元的坐标置为无效,即执行步骤S11。
然后,执行步骤S12,高速缓存存储器43从运动补偿参考数据块请求队列42中读入一个参考数据的请求命令,该命令包含所需参考数据块的坐标、大小、所在参考帧等信息。运动补偿计算过程所需的参考数据块坐标以及大小并不固定,因此存储器控制模块51首先将参考数据块进行存储单元对齐,即确定该参考数据块落在那些坐标的存储单元中。如图10所示,假设当前正在解码的当前块71的大小为16×8,其所需的参考数据块大小为23×15,存储单元大小为16×4。假设参考数据在图像中的位置落入15个16×4的参考数据块的范围中,即高速缓存存储器43需要搜索映射这15个16×4的参考数据块对应的存储单元即可得到完整23×15参考数据块。
参考数据块对齐到存储单元之后,执行步骤S13,高速缓存存储器将对这些参考数据块进行搜索,图10中所示的搜索区域72中包含了完整参考数据的15个大小为16×4的参考数据块。接着,执行步骤S14,将所查找到的参考数据块的数据返回值运动补充模块。然后,执行步骤S15,判断当前的参考数据块是否为最后一个参考数据块,如果不是,则返回执行步骤S13,继续搜索参考数据块,如果已经是最后一个参考数据块,则执行步骤S16,判断当前请求是否为最后一个参考块的数据请求命令,如果不是,表示运动补偿参考数据块请求队列中还有未处理的请求命令,则返回执行步骤S12,从该队列中读取一个新的命令。如果当前请求命令是该队列中最后一个请求命令,则执行步骤S17,等待新的请求命令。
下面结合图11介绍高速缓存存储器搜索一个参考数据块的过程。首先,执行步骤S21,存储器控制模块51根据参考数据块的参考帧序号(ref_idx)找到映射该参考数据块的子存储块,然后执行步骤S22,再根据参考数据块的y坐标,定位到映射该参考数据块的存储单元所在的一行存储单元。接着,遍历该行的每一个存储单元,并执行步骤S23,判断是否查找到所需要的参考数据块,具体的,若某个存储单元的坐标以及参考帧序号与该参考数据块一致,即可认为该参考数据块在高速缓存存储器中,即cache命中。
如果在高速缓存存储器中查找到所需要的参考数据块,则执行步骤S28,如果没有在高速缓存存储器中查找到所需要的参考数据块,即步骤S23的判断结果为否,则执行步骤S24,根据该参考块的坐标、参考帧数据起始地址计算出该参考数据块数据在DDR存储器中的位置,然后向DDR控制器44发出读取数据的命令,将该参考数据块的数据读取到高速缓存存储器中。
在该参考数据块数据从DDR存储器中读取回来后,需要从当前一行的存储单元中找出一个存储单元对所读取的数据进行存储。因此,涉及如何选取存储单元的问题。本实施例通过计算各个存储单元的更新优先等级来确定选取哪一个存储单元作为数据更新的存储单元。因此,需要执行步骤S25,根据各个存储单元的权重值计算各个存储单元的更新优先等级。具体的,如果某一个存储单元的时间值t越大,表示该存储单元上一次更新的时间越长,该存储单元的更新优先等级越高;如果某一存储单元的水平距离h、垂直距离v的数值越大,表示该存储单元与该行存储单元中上一次更新的存储单元对应在图像中的坐标距离越远,该存储单元的更新优先等级越高。根据上述原则计算一行存储单元中各个存储单元的更新优先等级。
然后,执行步骤S26,选用该行中更新优先等级最高的一个存储单元用作数据更新的存储单元,即将该存储单元中旧的数据丢弃,并且将读取的新数据写入到选定的存储单元中。接着,执行步骤S27,更新该存储单元所在的一行的其他存储单元的权重值,例如其他存储单元的时间值t自增一次,且计算其他每一个存储单元在图像中的实际坐标与当前更新数据的存储单元在图像中实际坐标的距离值,即更新水平距离h与垂直距离v。最后,执行步骤S28,返回所需要的参考数据块的数据,即将所查找到的参考数据块的数据发送至视频解码处理模块41进行解码。
由于本实施例通过存储器统计模块52记录每一次高速缓存存储器43向DDR存储器45读取数据的情况,例如每一个子存储块在解码一帧图像的过程中向DDR存储器所读取的参考数据量。对于一个子存储块映射多个参考帧的情况,还会统计向各个参考帧读取的参考数据量。当一帧图像解码完成后,通过对这些统计信息进行分析并配置下一帧图像解码时高速缓存存储器的参数。若高速缓存存储器向某个位置(比如当前帧的上一帧)的参考读取的参考数据量占比很大,则适当将映射该位置参考帧的子存储块设置大一些;向某些位置的参考帧读取的参考数据量占比较小,则可以减小相应子存储块的存储空间大小,或将参考数据量占比较小的几个参考帧由一个子存储块进行映射。通过这样的反馈机制,本实施例可以适应不同码流的情况,使高速缓存存储器利用率以及命中率更加优化。
计算机装置实施例:
本实施例的计算机装置可以是智能电子设备,例如具有视频解码功能的电子设备等,该计算机装置包括有处理器、存储器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述适用于多参考帧的视频解码高速缓存方法的各个步骤。
例如,计算机程序可以被分割成一个或多个模块,一个或者多个模块被存储在存储器中,并由处理器执行,以完成本发明的各个模块。一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在终端设备中的执行过程。
本发明所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是终端设备的控制中心,利用各种接口和线路连接整个终端设备的各个部分。
存储器可用于存储计算机程序和/或模块,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现终端设备的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
计算机可读存储介质:
上述计算机装置所存储的计算机程序如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述适用于多参考帧的视频解码高速缓存方法的各个步骤。
其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
最后需要强调的是,本发明不限于上述实施方式,例如各个存储单元更新优先等级计算方式的变化,或者对各个子存储块存储空间调节的具体方式的改变等,这些改变也应该包括在本发明权利要求的保护范围内。
Claims (10)
1.适用于多参考帧的视频解码高速缓存方法,其特征在于,包括:
将高速缓存存储器划分为多个子存储块,每一所述子存储块用于存储至少一个参考帧的数据;
获取解码上一帧数据时,每一所述子存储块所读取的相应参考帧的参考数据量;
解码当前帧数据时,根据各子存储块所读取的所述参考数据量调节各子存储块的存储空间大小。
2.根据权利要求1所述的适用于多参考帧的视频解码高速缓存方法,其特征在于:
根据各子存储块所读取的所述参考数据量调节各子存储块的存储空间大小包括:每一所述子存储块的存储空间大小的调节正关系于解码上一帧数据时该子存储块所读取的相应参考帧的参考数据量。
3.根据权利要求1所述的适用于多参考帧的视频解码高速缓存方法,其特征在于:
根据各子存储块所读取的所述参考数据量调节各子存储块的存储空间大小包括:
获取解码上一帧数据时,各所述子存储块所读取的相应参考帧的参考数据量占所有所述子存储块所读取的相应参考帧的参考数据量总和的比例;
根据所述比例调节各子存储块的存储空间大小。
4.根据权利要求1至3任一项所述的适用于多参考帧的视频解码高速缓存方法,其特征在于:
每一所述子存储块包括多个存储单元;
更新所述子存储块数据时,每次更新一个所述存储单元的数据。
5.根据权利要求4所述的适用于多参考帧的视频解码高速缓存方法,其特征在于:
更新所述子存储块数据时,计算该子存储块中多个所述存储单元的更新优先等级,用于更新数据的存储单元为更新优先等级最高的存储单元。
6.根据权利要求5述的适用于多参考帧的视频解码高速缓存方法,其特征在于:
每一所述存储单元具有对应的标签信息;
计算所述存储单元的更新优先等级包括:根据该存储单元对应的标签信息计算所述存储单元的更新优先等级。
7.根据权利要求6所述的适用于多参考帧的视频解码高速缓存方法,其特征在于:
所述标签信息至少包括以下的一个:该存储单元上一次数据更新的时间值、与当前行最后更新的存储单元在参考帧图像上的空间距离。
8.根据权利要求6所述的适用于多参考帧的视频解码高速缓存方法,其特征在于,该方法还包括:
更新一个存储单元的数据时,更新该存储单元所在的一行所有存储单元对应的标签信息。
9.计算机装置,其特征在于,包括处理器以及存储器,所述存储器存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8中任意一项所述适用于多参考帧的视频解码高速缓存方法的各个步骤。
10.计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1至8中任意一项所述适用于多参考帧的视频解码高速缓存方法的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010163487.0A CN111355962A (zh) | 2020-03-10 | 2020-03-10 | 适用于多参考帧的视频解码高速缓存方法、计算机装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010163487.0A CN111355962A (zh) | 2020-03-10 | 2020-03-10 | 适用于多参考帧的视频解码高速缓存方法、计算机装置及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111355962A true CN111355962A (zh) | 2020-06-30 |
Family
ID=71198054
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010163487.0A Pending CN111355962A (zh) | 2020-03-10 | 2020-03-10 | 适用于多参考帧的视频解码高速缓存方法、计算机装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111355962A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114466196A (zh) * | 2022-04-11 | 2022-05-10 | 苏州浪潮智能科技有限公司 | 视频数据处理方法、***、装置及计算机可读存储介质 |
CN115190302A (zh) * | 2021-04-01 | 2022-10-14 | Oppo广东移动通信有限公司 | 在视频解码装置中进行图像处理的方法、装置及*** |
CN116634089A (zh) * | 2023-07-24 | 2023-08-22 | 苏州浪潮智能科技有限公司 | 视频传输方法、装置、设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1767050A (zh) * | 2005-09-23 | 2006-05-03 | 北京中星微电子有限公司 | 可编程的存储装置和方法 |
CN101360237A (zh) * | 2008-08-13 | 2009-02-04 | 北京中星微电子有限公司 | 一种参考帧处理方法、视频解码方法及装置 |
CN101395586A (zh) * | 2006-03-02 | 2009-03-25 | Nxp股份有限公司 | 基于任务的执行阶段动态调整高速缓存分区大小的方法和设备 |
CN102340662A (zh) * | 2010-07-22 | 2012-02-01 | 炬才微电子(深圳)有限公司 | 一种视频处理设备和方法 |
US8225043B1 (en) * | 2010-01-15 | 2012-07-17 | Ambarella, Inc. | High performance caching for motion compensated video decoder |
CN103916674A (zh) * | 2012-12-31 | 2014-07-09 | 富士通株式会社 | 存储装置及方法、映射方法、编解码装置和图像处理设备 |
US20170031822A1 (en) * | 2015-07-27 | 2017-02-02 | Lenovo (Beijing) Limited | Control method and electronic device |
US20170160975A1 (en) * | 2015-12-02 | 2017-06-08 | Apacer Technology Inc. | Data buffer adjustment and control method thereof |
CN107231559A (zh) * | 2017-06-01 | 2017-10-03 | 珠海亿智电子科技有限公司 | 一种视频解码数据的存储方法 |
-
2020
- 2020-03-10 CN CN202010163487.0A patent/CN111355962A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1767050A (zh) * | 2005-09-23 | 2006-05-03 | 北京中星微电子有限公司 | 可编程的存储装置和方法 |
CN101395586A (zh) * | 2006-03-02 | 2009-03-25 | Nxp股份有限公司 | 基于任务的执行阶段动态调整高速缓存分区大小的方法和设备 |
CN101360237A (zh) * | 2008-08-13 | 2009-02-04 | 北京中星微电子有限公司 | 一种参考帧处理方法、视频解码方法及装置 |
US8225043B1 (en) * | 2010-01-15 | 2012-07-17 | Ambarella, Inc. | High performance caching for motion compensated video decoder |
CN102340662A (zh) * | 2010-07-22 | 2012-02-01 | 炬才微电子(深圳)有限公司 | 一种视频处理设备和方法 |
CN103916674A (zh) * | 2012-12-31 | 2014-07-09 | 富士通株式会社 | 存储装置及方法、映射方法、编解码装置和图像处理设备 |
US20170031822A1 (en) * | 2015-07-27 | 2017-02-02 | Lenovo (Beijing) Limited | Control method and electronic device |
US20170160975A1 (en) * | 2015-12-02 | 2017-06-08 | Apacer Technology Inc. | Data buffer adjustment and control method thereof |
CN107231559A (zh) * | 2017-06-01 | 2017-10-03 | 珠海亿智电子科技有限公司 | 一种视频解码数据的存储方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115190302A (zh) * | 2021-04-01 | 2022-10-14 | Oppo广东移动通信有限公司 | 在视频解码装置中进行图像处理的方法、装置及*** |
CN114466196A (zh) * | 2022-04-11 | 2022-05-10 | 苏州浪潮智能科技有限公司 | 视频数据处理方法、***、装置及计算机可读存储介质 |
WO2023197507A1 (zh) * | 2022-04-11 | 2023-10-19 | 苏州浪潮智能科技有限公司 | 视频数据处理方法、***、装置及计算机可读存储介质 |
CN116634089A (zh) * | 2023-07-24 | 2023-08-22 | 苏州浪潮智能科技有限公司 | 视频传输方法、装置、设备及存储介质 |
CN116634089B (zh) * | 2023-07-24 | 2023-11-03 | 苏州浪潮智能科技有限公司 | 视频传输方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111355962A (zh) | 适用于多参考帧的视频解码高速缓存方法、计算机装置及计算机可读存储介质 | |
US5982936A (en) | Performance of video decompression by using block oriented data structures | |
US8395634B2 (en) | Method and apparatus for processing information | |
US9509992B2 (en) | Video image compression/decompression device | |
EP2184924A2 (en) | Caching method and apparatus for video motion compensation | |
US20140086309A1 (en) | Method and device for encoding and decoding an image | |
US7447266B2 (en) | Decoding device and decoding program for video image data | |
JP2005510981A (ja) | 複数チャネル・ビデオトランスコーディング・システムおよび方法 | |
CN109348234B (zh) | 一种高效亚像素运动估计方法及*** | |
US20060152394A1 (en) | Decoding device with multi-buffers and decoding method thereof | |
US8963809B1 (en) | High performance caching for motion compensated video decoder | |
CN101783958B (zh) | Avs视频标准中时域直接模式运动矢量的计算方法和装置 | |
US7401177B2 (en) | Data storage device, data storage control apparatus, data storage control method, and data storage control program | |
US20120147023A1 (en) | Caching apparatus and method for video motion estimation and compensation | |
CN109727187B (zh) | 用于调整多个感兴趣区域数据的存储位置的方法和装置 | |
CN1163079C (zh) | 用于视频解码的方法和设备 | |
US20050047510A1 (en) | Data processing device for MPEG | |
JP4675383B2 (ja) | 画像復号化装置および方法、画像符号化装置 | |
CN110012292B (zh) | 用于压缩视频数据的方法和装置 | |
US20040264565A1 (en) | Video data cache | |
CN104113759A (zh) | 视频***、视频帧缓存再压缩/解压缩方法与装置 | |
US20130127887A1 (en) | Method for storing interpolation data | |
CN101729903B (zh) | 一种读取参考帧数据的方法、***和多媒体处理器 | |
CN113709494A (zh) | 用于超分重建的图像解压缩方法及装置 | |
JP5556082B2 (ja) | メモリコントローラ、画像処理システムおよびメモリアクセスの制御方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200630 |
|
RJ01 | Rejection of invention patent application after publication |