CN115190307A - 在视频编码装置中进行图像处理的方法、装置及系统 - Google Patents

在视频编码装置中进行图像处理的方法、装置及系统 Download PDF

Info

Publication number
CN115190307A
CN115190307A CN202110358171.1A CN202110358171A CN115190307A CN 115190307 A CN115190307 A CN 115190307A CN 202110358171 A CN202110358171 A CN 202110358171A CN 115190307 A CN115190307 A CN 115190307A
Authority
CN
China
Prior art keywords
block
memory
image data
coded
reading
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
Application number
CN202110358171.1A
Other languages
English (en)
Inventor
赵娟萍
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202110358171.1A priority Critical patent/CN115190307A/zh
Priority to PCT/CN2022/074533 priority patent/WO2022206166A1/zh
Publication of CN115190307A publication Critical patent/CN115190307A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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/423Methods 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 characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请公开了一种在视频编码装置中进行图像处理的方法、装置、存储介质、电子设备及系统。该方法包括:从当前帧图像中确定出待编码块;从历史帧图像的重构帧图像中确定出需要多次重复读取的第一区域,并将所述第一区域的图像数据存储在预设存储器中,所述预设存储器的功耗小于预设功耗阈值;从所述预设存储器中读取所述第一区域的图像数据;根据读取的所述第一区域的图像数据从所述第一区域中确定出与所述待编码块相匹配的匹配块;根据所述匹配块与所述待编码块的相对关系,对所述待编码块进行编码。本申请可以降低视频编码装置的功耗。

Description

在视频编码装置中进行图像处理的方法、装置及系统
技术领域
本申请属于电子设备技术领域,尤其涉及一种在视频编码装置中进行图像处理的方法、装置、存储介质、电子设备及系统。
背景技术
随着技术的不断发展,视频编码装置的功能越来越强大。视频编码装置可以对视频图像进行编码。在对一帧视频图像进行编码时,通常会需要多帧已编码视频图像数据量的读取。然而,相关技术中,在对已编码视频图像的数据进行读取时,视频编码装置的功耗较大。
发明内容
本申请实施例提供一种在视频编码装置中进行图像处理的方法、装置、存储介质、电子设备及系统,可以降低视频编码装置的功耗。
第一方面,本申请实施例提供一种在视频编码装置中进行图像处理的方法,所述方法包括:
从当前帧图像中确定出待编码块(encoded block);
从历史帧图像的重构帧图像中确定出需要多次重复读取的第一区域,并将所述第一区域的图像数据存储在预设存储器中,所述预设存储器的功耗小于预设功耗阈值;
从所述预设存储器中读取所述第一区域的图像数据;
根据读取的所述第一区域的图像数据从所述第一区域中确定出与所述待编码块相匹配的匹配块;
根据所述匹配块与所述待编码块的相对关系,对所述待编码块进行编码。
第二方面,本申请实施例提供一种在视频编码装置中进行图像处理的装置,所述装置包括:
第一确定模块,用于从当前帧图像中确定出待编码块;
第二确定模块,用于从历史帧图像的重构帧图像中确定出需要多次重复读取的第一区域,并将所述第一区域的图像数据存储在预设存储器中,所述预设存储器的功耗小于预设功耗阈值;
读取模块,用于从所述预设存储器中读取所述第一区域的图像数据;
第三确定模块,用于根据读取的所述第一区域的图像数据从所述第一区域中确定出与所述待编码块相匹配的匹配块;
编码模块,用于根据所述匹配块与所述待编码块的相对关系,对所述待编码块进行编码。
第三方面,本申请实施例提供一种存储介质,其上存储有计算机程序,当所述计算机程序在计算机上执行时,使得所述计算机执行本申请实施例提供的在视频编码装置中进行图像处理的方法。
第四方面,本申请实施例还提供一种电子设备,包括存储器,处理器以及视频编码装置,所述处理器通过调用所述存储器中存储的计算机程序,用于执行本申请实施例提供的在视频编码装置中进行图像处理的方法。
第五方面,本申请实施例还提供一种图像处理系统,包括视频编码装置、第一存储器和第二存储器,所述第二存储器的功耗大于所述第一存储器的功耗的第一预设倍数,所述视频编码装置包括第三存储器,所述第三存储器的读取速度大于所述第一存储器的读取速度的第二预设倍数,所述第一存储器和第二存储器分别存储历史帧图像的重构帧图像中多次重复读取的图像数据,所述视频编码装置在编码时,按照预设次数分别从所述第一存储器和第二存储器读取所述多次重复读取的图像数据,并从中确定出搜索窗(SearchWindow,SWin)内的图像数据,将所述搜索窗内的图像数据存储在所述第三存储器中,所述视频编码装置从所述第三存储器中读取所述搜索窗内的图像数据,并确定出与待编码块相匹配的匹配块,根据所述匹配块与待编码块的运动矢量和残差进行编码。
在本申请实施例中,视频编码装置可以从当前帧图像中确定出待编码块,从历史帧图像的重构帧图像中确定出需要重复读取的第一区域,并将第一区域的图像数据存储在预设存储器中,该预设存储器的功耗小于预设功耗阈值。然后,从预设存储器中读取第一区域的图像数据,根据读取的第一区域的图像数据从第一区域中确定出与待编码块相匹配的匹配块。之后,根据匹配块与待编码块的相对关系,对待编码块进行编码。即,本申请实施例中,通过将第一区域的图像数据存放在功耗较小的预设存储器中,以达到降低视频编码装置功耗的目的。因此,本申请实施例可以降低视频编码装置的功耗。
附图说明
下面结合附图,通过对本申请的具体实施方式详细描述,将使本申请的技术方案及其有益效果显而易见。
图1是本申请实施例提供的在视频编码装置中进行图像处理的方法的第一种流程示意图。
图2是相关技术中视频压缩系统的结构示意图。
图3是相关技术中视频编码装置中数据存储的示意图。
图4是相关技术中增加动态随机存取内存(Dynamic Random Access Memory,DRAM)的通道(channel)数量进行数据存取的示意图。
图5是本申请实施例提供的正方形块的比对示意图。
图6是本申请实施例提供的阶层式搜索的示意图。
图7是本申请实施例提供的非阶层式搜索的示意图。
图8是本申请实施例提供的在视频编码装置中进行图像处理的方法的第二种流程示意图。
图9是本申请实施例提供的在历史帧图像的重构帧图像中进行搜索的场景示意图。
图10是本申请实施例提供的静态随机存取存储器(Static Random-AccessMemory,SRAM)与动态随机存取内存在读取数据时所消耗的能量的对比示意图。
图11是本申请实施例提供的使用系统高速缓存(system cache,Sys$)的视频压缩系统的一种架构示意图。
图12是本申请实施例提供的使用系统高速缓存的视频压缩系统的另一种架构示意图。
图13是本申请实施例提供的使用系统缓冲存储器(System Buffer,SysBuf)的视频压缩系统的架构示意图。
图14是本申请实施例提供的历史帧图像的重构帧图像下移一个块行时的场景示意图。
图15是本申请实施例提供的从多通道DRAM读写数据时的功耗曲线示意图。
图16是本申请实施例提供的分别从Sys$或SysBuf以及DRAM读写数据时的功耗曲线示意图。
图17为本申请实施例提供的历史帧图像的重构帧图像中搜索窗的搜索范围的场景示意图。
图18是本申请实施例提供的视频编码装置编码的场景示意图。
图19是本申请实施例提供的在视频编码装置中进行图像处理的方法的第三种流程示意图。
图20是本申请实施例提供的在视频编码装置中进行图像处理的装置的结构示意图。
图21是本申请实施例提供的电子设备的结构示意图。
图22是本申请实施例提供的电子设备的另一结构示意图。
图23是本申请实施例提供的图像处理系统的结构示意图。
图24是本申请实施例提供的图像处理系统的另一结构示意图。
具体实施方式
请参照图示,其中相同的组件符号代表相同的组件,本申请的原理是以实施在一适当的运算环境中来举例说明。以下的说明是基于所例示的本申请具体实施例,其不应被视为限制本申请未在此详述的其它具体实施例。
请参阅图1,图1是本申请实施例提供的在视频编码装置中进行图像处理的方法的第一种流程示意图。该在视频编码装置中进行图像处理的方法可以应用于视频编码装置中。该在视频编码装置中进行图像处理的方法的流程可以包括:
101、从当前帧图像中确定出待编码块。
随着技术的不断发展,视频编码装置的功能越来越强大。视频编码装置可以对视频图像进行编码。在对一帧视频图像进行编码时,通常会需要多帧已编码视频图像数据量的读取。然而,相关技术中,在对已编码视频图像的数据进行读取时,视频编码装置的功耗较大。
请参阅图2,图2为相关技术中视频压缩系统的结构示意图。该视频压缩系统中,中央处理器(Central Processing Unit/Processor,CPU)、视频编码装置、图像处理器(ImageSignal Processor,ISP)和神经网络处理器(Neural Network Processing Unit,NPU)通过总线和动态随机存取内存控制器(Dynamic Random Access Memory Controller,DRAMC)从DRAM读写数据,中央处理器、视频编码装置、图像处理器和神经网络处理器分时共用带宽,中央处理器、图像处理器和神经网络处理器的优先级高于视频编码装置的优先级。视频编码装置在进行编码时需要进行搜索动作,会占用较大的带宽。
视频编码装置非常重视成本的高低,在帧缓冲时,为了达到最低成本与最高生产良率,通常都是以DRAM作为主要的存放空间。请参阅图3,图3是相关技术中视频编码装置中数据存储的示意图。其中,当前帧(Current Frame)图像、参考帧(Reference Frame)图像、重构帧(Reconstructed Frame)图像、比特流(Bitstreams)以及临时数据(Temporarydata)都存储在视频编码装置中的DRAM中。然而,DRAM提供的带宽较小。
需要说明的是,对当前帧图像进行编码后变成重构帧图像,该当前帧图像的重构帧图像可以作为下一帧图像的参考帧图像,同理,对前一帧图像进行编码后变成前一帧图像的重构帧图像,前一帧图像的重构帧图像可以作为当前帧图像的参考帧图像。临时数据可以是时域运动矢量(Temporal Motion Vector,TMV)、缩放帧(scaled frames)或其它数据。
随着新型视频标准的出现,如高效率视讯编码(High Efficiency Video Coding,H.265/HEVC)、多功能影像编码(Versatile Video Coding,H.266/VVC),开放媒体联盟影像编码1代标准(Alliance for Open Media Video 1,AV1),必要影像编码(Essential VideoCoding,MPEG-5/EVC)等,其针对越来越大画面尺寸且越来越高帧率。基于此,通常使用增加DRAM的带宽或提高DRAM频率的方式以达到加速吞吐数据量。
即使是阶层式搜索(hierarchical search)的运动估计(Motion Estimation,ME)减轻了多倍参考帧的读取问题,在大尺寸高帧率的情况下,需要DRAM较高的吞吐量。通常会通过增加DRAM的通道数量来实现吞吐量的上升,这样会造成功耗过高的问题。
请参阅图4,图4是相关技术中增加DRAM的通道数量进行数据存取的示意图。通过增加DRAM的通道数量,可以增大带宽,提高频率,以增加DRAM吞吐数据的速度,但会造成较大的功耗。如,为了满足视频编码装置达到读取速度的需求,系统DRAM的带宽消耗较大的能量。但不论视频编码装置是执行即时操作还是非即时操作,维持最高效率是非常重要的。相关技术中的方法,当视频编码装置在预期时间完成编码的情况下,会造成DRAM极大的功耗。
视频编码装置普遍使用块(可以认为是像素块)为基本单位,该块可以是长方形,正方形,或梯形,三角形拼凑出来的,这样的情况下就出现了以块为单位的比较算法。请参阅图5,图5是本申请实施例提供的正方形块的比对示意图。使用正方形块的形式将当前帧图像将要压缩的块与参考帧图像的块进行比对,该参考帧图像为历史帧图像的重构图像,即历史帧图像的已编码图像。其中,将要压缩的块与参考帧图像的块为N×N的块,N为大于或等于4的整数,通过块的比对,可以最大化减少时域上的信息冗余,达到压缩视频数据的效果。图5是以正方形块为基础的比对示例,但长方形、梯形或三角形拼凑出的块也可以使用同样的比对方法。
本申请实施例中,在进行运动估计时,将图像划分为多个不互相重叠的块,这些块构成矩形阵列,其中每个块是N×N像素大小的块,比如,可以是4×4的块,32×32的块,128×128的块等等,其中,4×4、32×32、128×128指的是像素数量。对于每个待编码块,再到历史帧图像的重构帧图像中同一位置的周围寻找与其最匹配的块,即匹配块,该匹配块相对于待编码块的移动量,称为运动矢量(Motion Vector,MV)。
本申请实施例中,从当前帧图像中确定出待编码块,该待编码块为当前帧图像中将要压缩的块,即当前帧图像中将要编码的块。该待编码块可以是N×N大小的块。在对待编码块进行编码时,通常需要将其与参考帧图像中的块进行比对,因此需要对参考帧图像中需要比对的块进行搜索。该参考帧图像为历史帧图像的重构帧图像,即历史帧图像的已编码图像。
102、从历史帧图像的重构帧图像中确定出需要多次重复读取的第一区域,并将第一区域的图像数据存储在预设存储器中,预设存储器的功耗小于预设功耗阈值。
比如,只有从历史帧图像的重构帧图像中搜索需要比对的块后,才能将该块与待编码块进行比对,该历史帧图像的重构帧图像可以是多个历史帧图像的重构帧图像中编码代价最小的。因此在对块进行搜索之前,需要预先知道搜索的区域。由此,当对历史帧图像的重构帧图像中的块进行搜索时,需要知道历史帧图像的重构帧图像中的搜索范围(search range,SRng),即需要确定出多次重复读取的第一区域,当在该第一区域中搜索块时,需要多次重复读取该第一区域的数据。因此,本申请实施例中从历史帧图像的重构帧图像中确定出需要重复读取的第一区域后,将该第一区域的图像数据存储在预设存储器中,便于后续搜索时从预设存储器中读取第一区域的图像数据。另外,该预设存储器的功耗小于预设功耗阈值。通过采用功耗小的预设存储器读写数据,可以降低视频编码装置的功耗。
103、从预设存储器中读取第一区域的图像数据。
比如,在将第一区域的图像数据存储在预设存储器后,当对第一区域中的块进行搜索时,需要从预设存储器中读取第一区域的图像数据,以从中找到与待编码块最匹配的块。
104、根据读取的第一区域的图像数据从第一区域中确定出与待编码块相匹配的匹配块。
比如,通过读取预设存储器中存储的第一区域的图像数据,可以实现对第一区域的搜索,在搜索过程中,将第一区域中每个块分别与当前帧图像中待编码块进行比对,从第一区域中找到与待编码块最匹配的块,该最匹配的块就是匹配块。
常见的块搜索比对(block matching)算法,可以采用阶层式搜索(hierarchicalsearch)也可以采用非阶层式搜索(not hierarchical search),经由搜索以后得到运动矢量与像素残余量(pixel value residues),以进行后续进一步的压缩编码。其中,像素的实际值减去预测值即可得到像素残余量。
请参阅图6,图6是本申请实施例提供的阶层式搜索的示意图。阶层式搜索就是将要搜索的块与被搜索的区域都缩小相同的倍率,例如1/2,1/4或1/8等,在缩小的图像(即被搜索的区域)上,先决定将要搜索的块的大致范围后,再回到未缩小的图像进行更精细的块搜索。在阶层式搜索中,每个阶层的缩小倍率可以相同,也可以不同,例如每个阶层的缩小倍率可以是1/2、1/4、1/8和1/16。
图6是以3个阶层的运动搜索作为示例,先搜索1/4缩小的图像,然后,由1/4缩小图像范围得到的运动矢量,在1/2缩小的图像范围进行更精细范围更小的搜索,之后,由1/2缩小图像范围得到的运动矢量再搜索原始大小图像的范围,得到最终的运动矢量。
请参阅图7,图7是本申请实施例提供的非阶层式搜索的示意图。非阶层式搜索指的是直接在未缩小的图像中进行块比对任务,常见的有全搜索(full search),n步搜索(n-step search)等方法。图7是在原始大小的图像上直接进行运动搜索,即在前一帧图像的重构帧图像中的搜索窗中,使用全搜索方式找寻当前块(current block)与前一帧图像的重构帧图像中哪一个块具有最小的编码代价。其中,最小的编码代价可以采用多种形式,如最小的编码代价可以是搜索的某个块与当前块的每个像素的残差的绝对值的总和最小。图7中的p为横向搜索范围。
需要说明的是,动作估计是指基于块的运动估计,基本思想是将图像序列的每一帧分成许多互不重叠的块,并认为块内所有像素的位移量都相同,然后对每个块到参考帧某一给定特定搜索范围内根据一定的块匹配准则找出与当前块最相似的块,即匹配块,匹配块与当前块的相对位移即为运动矢量。运动估计搜索的是前面不同时间点编码过后的重建像素,即历史帧图像的重构帧图像中的重建像素。
在帧间预测模式下,可以从历史帧图像中随意选择预设数量的历史帧图像,对选择的历史帧图像的重构帧图像进行搜索,搜索的结果是运动矢量,即匹配块与待编码块之间的位移,然后从中选择最优的运动矢量作为最终的搜索结果。可以理解的是,根据运动矢量可以确定出匹配块在历史帧图像的重构帧图像中的位置。
105、根据匹配块与待编码块的相对关系,对待编码块进行编码。
比如,根据匹配块与待编码块的相对位移关系和相对误差关系,如将待编码块的二维像素减去匹配块对应位置的二维像素,得到匹配块与待编码块之间的相对误差关系,可以根据匹配块与待编码块的相对位移关系和相对误差关系对待编码块进行编码。
可以理解的是,在本申请实施例中,视频编码装置可以从当前帧图像中确定出待编码块,从历史帧图像的重构帧图像中确定出需要重复读取的第一区域,并将第一区域的图像数据存储在预设存储器中,该预设存储器的功耗小于预设功耗阈值。然后,从预设存储器中读取第一区域的图像数据,根据读取的第一区域的图像数据从第一区域中确定出与待编码块相匹配的匹配块。之后,根据匹配块与待编码块的相对关系,对待编码块进行编码。即,本申请实施例中,通过将第一区域的图像数据存放在功耗较小的预设存储器中,以达到降低视频编码装置功耗的目的。因此,本申请实施例可以降低视频编码装置的功耗。
请参阅图8,图8为本申请实施例提供的在视频编码装置中进行图像处理的方法的第二种流程示意图。该在视频编码装置中进行图像处理的方法可以应用于视频编码装置中。该在视频编码装置中进行图像处理的方法的流程可以包括:
201、从当前帧图像中确定出待编码块。
比如,每一帧图像都可以划分为多个块行(block line),每个块行可以划分为多个块。在确定当前帧图像的待编码块之前,需要从当前帧图像中确定出待编码的块行。待编码的块行指的是待编码块所在的块行。在当前帧图像中位于待编码的块行之前的块行均是已编码的块行。
在确定出待编码的块行后,需要从待编码的块行中确定出待编码块。在该待编码的块行中,位于该待编码块左侧的块均是已编码块。请参阅图9,图9是本申请实施例提供的在历史帧图像的重构帧图像中进行搜索的场景示意图。从图9中可以看出,待编码块在垂直投影方向上位于搜索窗的范围内。
202、从存储在第二存储器中的历史帧图像的重构帧图像中确定出需要多次重复读取的第一区域。
比如,第一区域可以包括多个块行。当确定出待编码块后,需要从历史帧图像(可以认为是与当前帧图像相关性最强的一帧历史帧图像)的重构帧图像中确定出需要重复读取的多个块行,需要重复读取的多个块行即是位于第一区域中的块行。其中,每个块行都包括多个块,该多个块排成一行。
预设存储器包括第一存储器和第二存储器,需要说明的是,可以事先将历史帧图像的重构帧图像存储在第二存储器中,然后从存储在第二存储器中的历史帧图像的重构帧图像中确定出需要多次重复读取的第一区域。
203、从第二存储器中读取第一区域的图像数据并将其存储到第一存储器中。
比如,当从第二存储器中存储的历史帧图像的重构帧图像中确定出需要多次重复读取的第一区域后,可以从第二存储器中读取第一区域的图像数据,并将读取的第一区域的图像数据存储到第一存储器中,等待视频编码装置进行编码时进行读取。
需要说明的是,本申请实施例中,第二存储器的功耗大于第一存储器的功耗的第一预设倍数,且第一存储器的功耗和第二存储器的功耗的总和小于预设功耗阈值,这样可以降低读写数据时的功耗。其中,预设功耗阈值可以认为是将第一区域的图像数据全部由第二存储器进行读写时的功耗。
比如,第一存储和第二存储器均为视频编码装置外部的存储器,例如,第一存储器可以包括设置在视频编码装置外部的系统高速缓存或系统缓冲存储器,即第一存储器可以包括设置在视频编码装置外部的Sys$或SysBuf,第二存储器可以包括设置在视频编码装置外部的动态随机存取内存,即第二存储器可以包括设置在设置在视频编码装置外部的DRAM。当然第一存储器还可以是其它低功耗存储器等,本申请实施例以Sys$或SysBuf为例进行说明,Sys$或SysBuf由多个SRAM组成,第二存储器可以为DRAM,DRAM的功耗大于视频编码装置外部的Sys$或SysBuf的功耗的第一预设倍数,且视频编码装置外部的Sys$或SysBuf的功耗与DRAM的功耗的总和小于预设功耗阈值,这样可以降低读写数据时的功耗,该预设功耗阈值可以认为是将第一区域的图像数据全部由DRAM进行读写时的功耗。
请参阅图10,图10是本申请实施例提供的静态随机存取存储器与动态随机存取内存在读取数据时所消耗的能量的对比示意图。读取SRAM中的数据与读取DRAM中的数据的所消耗的能量相差约为100倍,即读取SRAM中数据的功耗远远小于读取DRAM中数据的功耗。通过将多个块行的图像数据分别存放在Sys$或SysBuf,以及DRAM,当读取Sys$或SysBuf中的图像数据时,可以降低读取数据时的功耗。
视频编码装置的运动估计步骤需要DRAM提供较大的带宽,因为在搜索过程中会读取历史帧图像的重构帧图像中某些关联的区域(即第一区域)来做块搜索比对。因成本考虑,通常不会将搜索范围涵盖到的块行(即第一区域)涵盖到的块行都完整的存于视频编码装置的内部,通常只会储存搜索范围内所需要的大小(如搜索窗范围内的),来满足运动估计时的高速数据存取要求。
若将第一区域的图像数据都存放在视频编码装置的硬件内部,即缓存(cache)或缓冲(buffer),cache或buffer包括多个SRAM,若将第一区域的图像数据都存放在视频编码装置的硬件内部,则需要将视频编码装置内部的SRAM切分成更多的单元,每个单元就是一个区域(bank),这样会导致单个bank的面积变大。由于单个bank的面积变大,则SRAM的面积也随之变大,而SRAM的存储容量保持不变,这样造成成本较高。比如,以宽度为8192个像素且垂直搜索范围为±64为例,8位(bit)亮度(luma)部分至少需要1兆字节(MB)存储空间。另外,由于使用运动估计算法,需要SRAM切分成更多的单元来满足数据进出需求,造成SRAM的面积变大。
需要说明的是,用搜索窗的形式存储数据的运动估计设计,处理一个块行的压缩,会需要多条的历史帧图像的重构帧图像中块行的数据,这意味着处理一帧数据会需要多帧数据量的读取。
比如,视频编码装置在进行运动矢量搜索时,请参见图9,通常因搜索窗内的需求带宽很大,而会让搜索窗的图像数据存储于视频编码装置内部的cache或buffer,该cache或buffer包括切分较细的SRAM群,切分的细代表同存储单位的面积变大,例如1个bit在bank中的平均面积占比就比SRAM中的平均面积占比大,这样可以提供足够的数据带宽给运动估计电路。这样不仅造成SRAM面积大,且因为切分成较多bank使得版图绕线较困难,因此不会将整个第一区域的块行都使用这种存储单位(例如1bit)面积高的方法实现。
也就是说第一区域涵盖到的块行在每次编码过程中下移一个块行时,第一区域会重新又被抓取一次。通常垂直搜索范围会是待编码块高度的多倍,也就造成了读取第一区域的图像数据的带宽会是多倍于写第一区域的图像数据的带宽。且该情况在要编码的画面到达4K或是8K时更加的严重。4K画面的分辨率为3840×2160像素,4K画面的分辨率为7680×4320像素,4K与8K画面编码时,垂直搜索范围必须要比1080P分辨率大一定程度,否则画面压缩程度会大打折扣。
本申请实施例中,203中的从第二存储器中读取第一区域的图像数据并将其存储在第一存储器中,可以包括:
若所述第一区域在所述历史帧图像的重构帧图像中下移一个块行,则从所述第二存储器中读取下移块行的图像数据并将其存储在所述第一存储器中;
将所述第一存储器中下一个待编码块行编码时用不到的块行进行移除。
比如,若把需要重复读取的历史帧图像的重构帧图像中的块行区域(即第一区域)事先存放在视频编码装置外部的Sys$或SysBuf中,请一并参阅图11至图13,图11是本申请实施例提供的使用系统高速缓存的视频压缩系统的一种架构示意图。图12是本申请实施例提供的使用系统高速缓存的视频压缩系统的另一种架构示意图。图13是本申请实施例提供的使用系统缓冲存储器的视频压缩系统的架构示意图。在Sys$或SysBuf中存储的是第一区域的图像数据,视频编码装置内部的cache或buffer存储的是搜索窗的图像数据。图11至图13中的n为数字,表示存储容量的大小。比如,在一个实施例中,DRAM读写数据的速度为0.5GB/s~2GB/s,Sys$或SysBuf读写数据的速度为3GB/s~8GB/s,cache或buffer读写数据的速度为10GB/s~50GB/s。
需要说明的是,在其他实施例中,DRAM读写数据的速度、Sys$或SysBuf读写数据的速度、cache或buffer读写数据的速度也可以为其他值,但要满足cache或buffer读写数据的速度大于Sys$或SysBuf读写数据的速度以及DRAM读写数据的速度,且Sys$或SysBuf读写数据的速度大于DRAM读写数据的速度。
以图11为例,Sys$可以通过DramC从DRAM中读取数据,且Sys$通过DramC从DRAM读取的数据可以被中央处理器、视频编码装置、图像处理器和神经网络处理器读取。当第一区域在历史帧图像的重构帧图像中下移一个块行时,Sys$和DRAM均存入新的块行,Sys$同时将用不到的块行移除出去,当视频编码装置需要进行编码时,可以直接读取Sys$中存储的第一区域的数据,另外,Sys$中还通过DramC从DRAM中读取第一区域的图像数据,之后被视频编码装置读取。
在存储时,视频编码装置外部的Sys$或SysBuf会移除下一行待编码块行编码时不会用到的块行,则可以让视频编码装置内部的cache或buffer从DRAM读取第一区域的图像数据的次数从多倍变成1倍,同时由于DRAM比SRAM的存取消耗的能量高100倍,因此这样可以大幅降低功耗。
比如,由于历史帧图像的重构帧图像被读取的位置(即第一区域)与行为(重复读取)是可预测的,且读取历史帧图像的重构帧图像会是读取当前帧图像所需带宽的多倍。若将被读取多次的第一区域的图像数据存储于Sys$或SysBuf等低功耗的存储空间,在有效维持视频编码装置运算的同时,还能大大降低整个系统的功耗,从而可以改善使用者体验。可根据视频编码装置压缩的历史帧图像的重构帧图像的结构,决定要存多少历史帧图像的重构帧图像的相关块行到这类低功耗的存储空间。每当要编码的块行(待编码块行)下移一行,就移除存储在Sys$或SysBuf中最上面的一个块行,然后重新读取第一区域中下移时的新增块行,并存储新增块行的图像数据。
请参阅图14,图14是本申请实施例提供的历史帧图像的重构帧图像下移一个块行时的场景示意图。视频编码装置每往下编码一个块行,就驱逐原本存储在Sys$或SysBuf的上方无关的块行,然后把新需要的块行的图像数据送进Sys$或SysBuf。即当搜索范围涵盖到的第一区域能够跟着待编码块下移的时候,将用不到的区域驱逐出Sys$或SysBuf,且将即将用到的待编码的块行存放在Sys$或SysBuf中。即,视频编码装置每往下编码一个块行,就将Sys$或SysBuf中存储的第一区域上方无关的块行移除,然后把编码时新需要的块行存放在视频编码装置外部的Sys$或SysBuf中。
204、从第一存储器中逐块行读取第一区域的图像数据。
比如,当视频编码装置需要进行编码时,可以从第一存储器中逐块行读取第一区域的图像数据,如从Sys$或SysBuf读取第一区域的图像数据。在进行读取时,是逐块行进行读取的,即按照从上向下的顺序进行读取。
以进阶视讯编码(Advanced Video Coding,H.264/AVC)为例,假设图14中的宏块(Macro block)的大小为16×16像素,即横向16个像素乘以纵向16个像素,当然,宏块的大小还可以是32×32像素,64×64像素等。该宏块为当前帧图像中的待编码块。垂直搜索范围为±64,该情况下,历史帧图像的当前帧图像被读取的次数是当前帧图像的9(=(64+16+64)/16)倍。
205、若从第一存储器中读取的次数大于或等于预设次数阈值,则从第二存储器中逐块行读取第一区域中未被读取块行的图像数据。
比如,在对第一区域的图像数据进行读取时,可以将原来全部从第二存储器读取的次数分为前几次从第一存储器读取,剩余几次从第二存储器读取。如在满足Sys$或SysBuf最低需求量的条件下,将对DRAM读取的9份数据量拆解成1次从DRAM读取与8次从Sys$或SysBuf读取。在Sys$或SysBuf的辅助下读取数据的功耗降低到没有辅助时的11.81%,即(1×640+8×5)(9×640)=11.81%,该情况下的功耗较低。比如,还可以根据具体的需求,将对DRAM读取的9份数据量拆解成2次从DRAM读取与7次从Sys$或SysBuf读取,等等,当对功耗要求苛刻的条件下,还可以将对DRAM读取的9份数据量全部从Sys$或SysBuf读取,此时功耗最低,但成本会上升。
由于SRAM成本较高,DRAM成本较低,在考虑成本的情况下,SRAM一般不会做的太大,而DRAM可以做的比较大,因此本申请实施例为了降低读取数据时的功耗,可以将原来从DRAM读取的次数,拆分成几次从SRAM读取,另外几次从DRAM读取,从整体上可以降低读取数据的功耗。而且从SRAM读取的次数与从DRAM读取的次数是可以调整的,以适应对不同功耗的需求。
比如,在读取第一区域的图像数据时,可以先从Sys$或SysBuf中读取,当读取的次数大于或等于预设次数阈值时,则切换到从DRAM中读取第一区域中未被读取块行的图像数据。当读取同样的图像数据时,DRAM消耗的能量大于SRAM消耗的能量的100倍。因此,通过将第一区域中图像数据的一部分从Sys$或SysBuf中读取,另一部分数据从DRAM中读取,可以降低读取数据的功耗。
请参阅图15,图15是本申请实施例提供的从多通道DRAM读写数据时的功耗曲线示意图。图15中,横坐标是历史帧图像的重构帧图像的位置,比如,图像的顶端位置,图像的中间位置,图像的底端位置,纵坐标是视频编码时读写数据的功耗。在视频编码装置过度依赖DRAM或其它便宜但耗电的存储以及高带宽的情况下,因视频压缩系统提供的功耗上限是有限的,会使视频编码装置无法满足速度要求,或者会使视频压缩系统过热。如果考虑功耗上限,则读写数据的速度受限,不能达到未考虑功耗上限时的读写速度。
请参阅图16,图16是本申请实施例提供的分别从Sys$或SysBuf以及DRAM读写数据时的功耗曲线示意图。视频编码装置将大量的DRAM功耗改由Sys$或SysBuf的功耗来取代,大大降低功耗。
206、从读取的第一区域的图像数据中确定出搜索窗的图像数据,搜索窗位于第一区域内。
比如,为了进一步缩小搜索范围,可以从第一区域中确定出搜索窗,这样就可以将搜索范围缩小,从中可以搜索出匹配块,从而可以进一步降低功耗。对于运动估计,采用非阶层式搜索时为非缩小的历史帧图像的重构帧图像,采用阶层式搜索时为缩小或非缩小的历史帧图像的重构帧图像,只要是可以预测垂直方向位置的搜索窗都可以适用。
请参阅图17,图17为本申请实施例提供的历史帧图像的重构帧图像中搜索窗的搜索范围的场景示意图。从图17中可以看出搜索窗位于第一区域内,第一区域中相邻虚线之间的区域即为块行,搜索的运动矢量可以指向搜索窗内的任何地方。其中,L、R、T和B分别为搜索窗中位于待编码块左侧的搜索范围、右侧的搜索范围和上方的搜索范围和下方的搜索范围。其中,R和B为正数,L和T为负数。且L不一定等于R,T不一定等于B。
207、将搜索窗的图像数据存储在第三存储器中,第三存储器的读写速度大于第一存储器的读写速度的第二预设倍数。
比如,当确定出搜索窗的图像数据后,将搜索窗的图像数据存储在第三存储器中,该第三存储器可以是视频编码装置内部的存储器,第三存储器可以包括设置在视频编码装置内部的缓存或缓冲。由于进行运动估计时,是对搜索窗范围内的块进行搜索,进行块搜索时对带宽的需求较高,因此第三存储器的读写速度均大于第一存储器的读写速度以及第二存储器的读写速度。以满足搜索速度和高带宽的需求。其中,第三存储器的读写速度大于第一存储器的读写速度的第二预设倍数。
208、从第三存储器中读取搜索窗的图像数据,并根据搜索窗的图像数据,从搜索窗中确定出与待编码块的编码代价最小的块。
比如,在进行搜索时,从第三存储器中读取搜索窗的图像数据,可以采用阶层式或非阶层式方式进行搜索,根据搜索窗的图像数据,将读取的搜索窗中的块与待编码块进行比对,可以确定出与待编码块的编码代价最小的块。比如,在一种实施方式中,编码代价可以包括残差,比如,在另外一种实施方式中,编码代价可以包括块矢量和残差,等等。可知,编码代价最小的块可以是与待编码块的残差最小的块,还可以是综合考虑与待编码块的块矢量和残差后编码代价最小的块。
例如,对于运动估计,在搜索窗中逐块行扫描,将搜索的块与待编码块进行比对,从而可以从搜索窗中找到与待编码块的残差最小的块。其中,运动矢量可以是搜索出的块与待编码块之间的相对位移。残差可以是待编码块的二维像素减去搜索出的块对应位置的二维像素后得到的差值。
比如,在一种实施方式中,208中的从第三存储器中读取搜索窗的图像数据,并根据搜索窗的图像数据,从搜索窗中确定出与待编码块的编码代价最小的块,可以包括:
从所述第三存储器中读取所述搜索窗的图像数据;
将所述搜索窗按照预设阶层数进行缩小,得到缩小后的搜索窗;
根据所述缩小后的搜索窗的图像数据,从所述缩小后的搜索窗中确定出与所述待编码块的编码代价最小的缩小后的块;
根据所述缩小后的块在所述缩小后的搜索窗中的位置,从所述搜索窗中确定出与所述待编码块的编码代价最小的块。
比如,在进行搜索时,可以采用阶层式搜索方式,根据阶层数的不同,搜索的层级也不同。比如,若采用2个阶层的搜索,则进行2个层级的搜索,若采用采用3个阶层的搜索,则进行3个层级的搜索。当然,阶层数越多,则搜索的结果越准确,但同时也会增加系统计算资源的消耗。在实际应用中,可以根据具体需求设置合适的阶层数。需要说明的是,每个阶层的缩小倍率可以相同,也可以不同。
例如,从第三存储器中读取搜索窗的图像数据后,将搜索窗按照预设阶层数进行缩小,如按照2个阶层数将搜索窗进行缩小,得到缩小后的搜索窗,该缩小后的搜索窗为原来搜索窗大小的1/2。然后,根据该缩小后的搜索窗的图像数据,从该缩小后的搜索窗中确定出与待编码块的编码代价最小的缩小后的块,该缩小后的块与缩小后的搜索窗的缩小倍率是相同的。在缩小的搜索窗的图像上,先决定将要搜索的缩小后的块的大致范围后,再回到未缩小的搜索窗的图像进行更精细的块搜索,即根据该缩小后的块在缩小后的搜索窗中的大致范围,对原始搜索窗进行更精细的搜索,可以从未缩小的搜索窗中确定出与待编码块的编码代价最小的块。
再例如,从第三存储器中读取搜索窗的图像数据后,将搜索窗按照预设阶层数进行缩小,如按照3个阶层数将搜索窗进行缩小,得到缩小后的搜索窗,该缩小后的搜索窗为原来搜索窗大小的1/4。然后,根据该1/4缩小范围的搜索窗的图像数据,从该1/4缩小范围的搜索窗中确定出与待编码块的编码代价最小的缩小后的块,得到该1/4缩小范围的搜索窗下对应的块矢量。之后,在1/2缩小范围的搜索窗进行更精细范围更小的搜索,最后,根据1/2缩小范围的搜索窗得到的块矢量再搜索原始大小的搜索窗的范围,得到最终的块矢量,从而可以确定出与待编码块的编码代价最小的块。
又如,从第三存储器中读取搜索窗的图像数据后,将搜索窗按照预设阶层数进行缩小,如按照3个阶层数将搜索窗进行缩小,得到缩小后的搜索窗,该缩小后的搜索窗为原来搜索窗大小的1/6。然后,根据该1/6缩小范围的搜索窗的图像数据,从该1/6缩小范围的搜索窗中确定出与待编码块的编码代价最小的缩小后的块,得到该1/6缩小范围的搜索窗下对应的块矢量。之后,在1/3缩小范围的搜索窗进行更精细范围更小的搜索,最后,根据1/3缩小范围的搜索窗得到的块矢量再搜索原始大小的搜索窗的范围,得到最终的块矢量,从而可以确定出与待编码块的编码代价最小的块。
由此可知,在缩小的搜索窗的图像上,先决定将要搜索的缩小后的块的大致范围后,再回到未缩小的搜索窗的图像进行更精细的块搜索,即根据该缩小后的块在缩小后的搜索窗中的大致范围,对原始搜索窗进行更精细的搜索,可以从未缩小的搜索窗中确定出与待编码块的编码代价最小的块。
209、将与待编码块的编码代价最小的块作为匹配块。
比如,当从搜索窗中找到与待编码块之间编码代价最小(例如残差最小)的块后,将与待编码块之间编码代价最小的块作为匹配块。
210、根据匹配块与待编码块的运动矢量和残差,对待编码块进行编码。
比如,匹配块与待编码块的相对关系可以是运动矢量和残差,在找到匹配块后,可以根据匹配块与待编码块的运动矢量和残差,对待编码块进行编码。
在一种实施方式中,210中的根据匹配块与待编码块的运动矢量和残差,对待编码块进行编码,可以包括:
将所述匹配块与所述待编码块的残差进行正向变换和量化(Forward Transform&Quantization,FTQ);
将所述匹配块与所述待编码块的运动矢量以及正向变换和量化后的第一残差数据进行熵编码(Entropy Coding,EC),得到视频流编码数据;或者
将所述正向变换和量化后的第一残差数据进行反向量化与变换,得到第二残差数据;
根据所述第二残差数据对所述待编码块进行重构。
请参阅图18,图18是本申请实施例提供的视频编码装置编码的场景示意图。从图18中可以看出运动估计位于视频编码装置中与其它模块之间的数据流关系。比如,运动估计(可以采用阶层式搜索或非阶层式搜索)对多个历史帧图像的重构帧图像进行搜索,会搜到到匹配块,匹配块与当前块(即待编码块)的相对位移即是运动矢量,根据当前块与匹配块的误差得到残差。将该残差进行正向变换与量化,其中,正向变换采用快速傅氏变换(Fast Fourier Transformation,FFT)变换得到频谱,频谱曲线上横坐标为频率,纵坐标为能量,经过正向变换,将空间中的像素转换成不相关而且能量集中的频谱系数,正向变换后数据只是转换到频域,数据量并没有变化,其可以减少失真。正向变换后的矩阵除以量化矩阵中对应位置的值,即可实现量化。频谱系数再用量化与熵编码进一步压缩,得到压缩的视频流。其中,量化过程去掉了一些不重要的高频信息,这样可以压缩图像数据量,所以量化是压缩的关键。经过正向变换和量化后得到第一残差数据。
将经过正向变换和量化后得到第一残差数据经过反向量化与变换(De-Quantization&Inv.Transform,DQIT)到空域,即得到匹配块与待编码块的第二残差数据,将当前帧图像的待编码块经过画面块区域重构(Block Reconstruction,BlkRec),作为下一个待编码块的邻居。环路内滤波器(In-loop Filter,InF)用于处理块之间的连续性问题,使其更加平滑。常用的环路滤波器是一个线性低通滤波器,可以滤除高频分量和噪声。用正向变换与量化可以消除视频图像空间上的冗余,用熵编码可以消除编码冗余。
可以理解的是,本申请实施例基于视频编码时可预测数据存取行为(即重复读取的行为),从而实现智能选择数据存储方式,以降低视频编码装置的功耗。可以根据编码时帧参考读取策略改变将要读取的数据是否该先存储到低功耗的Sys$或SysBuf,使存入Sys$或SysBuf中的部分或全部历史帧图像的重构帧图像重复读取的次数最高,以最大程度降低功耗,保证视频编码装置进出数据时能一直维持在最低功耗状态。若该Sys$或SysBuf同时具有高速带宽,由于该Sys$或SysBuf可以满足重复读取数据时所需带宽,这样可以进一步降低DRAM的带宽。
本申请实施例可以保证视频编码装置的功耗可控,且能让视频编码装置的硬件或软件尽快完成编码工作,充分利用视频编码装置会有多次重复读取第一区域的图像数据的可预期行为来改变所读取数据的存储特性,因为存取数据省电,而使视频编码装置可以维持其运行速度,同时又降低功耗。读取数据的速度不会受功耗的限制,因此视频编码装置不会过热。另外,Sys$或SysBuf中SRAM在读写时本身的时延就低,这样可以提高处理帧率,降低反应时延。由于可以大幅降低功耗,则可以提高视频编码装置中电池的使用时间,提升用户体验。
请参阅图19,图19是本申请实施例提供的在视频编码装置中进行图像处理的方法的第三种流程示意图。该在视频编码装置中进行图像处理的方法可以应用于视频编码装置等中。该在视频编码装置中进行图像处理的方法的流程可以包括:
301、从当前帧图像中确定出待编码块。
步骤301的具体实施可参见步骤201的实施例,在此不再赘述。
302、从存储在第二存储器中的多个历史帧图像的重构帧图像中确定出需要多次重复读取的多个第一区域。
比如,当确定出待编码块后,需要从多个历史帧图像的重构帧图像中确定出需要重复读取的多个第一区域,即在每个历史帧图像的重构帧图像中均确定出需要重复读取的第一区域。其中,第一区域可以包括多个块行,每个块行都包括多个块,该多个块排成一行。
预设存储器包括第一存储器和第二存储器,需要说明的是,可以事先将多个历史帧图像的重构帧图像存储在第二存储器中,然后从存储在第二存储器中的多个历史帧图像的重构帧图像中确定出需要多次重复读取的多个第一区域。
303、从第一存储器中读取多个第一区域的图像数据并将其存储在第一存储器中。
比如,当从第二存储器中存储的多个历史帧图像的重构帧图像中确定出需要多次重复读取的多个第一区域后,可以从第二存储器中读取多个第一区域的图像数据,并将读取的第一区域的图像数据存储到第一存储器中,等待视频编码装置进行编码时进行读取。
需要说明的是,本申请实施例中,比如,第二存储器的功耗大于第一存储器的功耗的第一预设倍数。当从第二存储器中存储的多个历史帧图像的重构帧图像中确定出需要重复读取的多个第一区域后,从第二存储器中读取该多个第一区域的图像数据,并将读取的多个第一区域的图像数据存储在第一存储器中,从第一存储器和第二存储器读写数据的功耗总和小于预设功耗阈值,这样可以降低读取数据时的功耗。
比如,第一存储器可以为Sys$或SysBuf,第二存储器可以为DRAM,DRAM的能耗大于Sys$或SysBuf的能耗的第一预设倍数。请参阅图10,读取SRAM与读取DRAM的能量差异约相差100倍,即读取SRAM的能量远远小于读取DRAM的能量。通过将多个第一区域的图像数据分别存放在Sys$或SysBuf(Sys$或SysBuf由多个SRAM构成)以及DRAM,当分别从Sys$或SysBuf以及DRAM读取第一区域的图像数据时,整体上可以降低读取数据时的功耗。
304、从第一存储器中逐块行读取多个第一区域的图像数据。
比如,可以从第一存储器中读取多个第一区域的图像数据,例如从第一存储器中读取的次数可以大于从第二存储器中读取的次数,从第一存储器中读取的次数可以小于从第二存储器中读取的次数,或者从第一存储器中读取的次数可以等于从第二存储器中读取的次数,具体从第一存储器和第二存储器中分别读取几次,要根据具体场景进行相应设置,本申请实施例对此不做具体限制。
比如,在一种实施方式中,在读取多个第一区域的图像数据时,可以先从Sys$或SysBuf(ys$或SysBuf由多个SRAM构成)中读取,在进行读取时,是逐块行进行读取的,即按照从上向下的顺序对第一区域中的块行进行读取。当从Sys$或SysBuf读取的次数大于或等于预设次数阈值时,则切换到从DRAM中读取剩余的数据。当存取同样的数据时,DRAM消耗的能量大于SRAM消耗的能量的100倍。因此,通过将多个第一区域的图像数据的一部分从Sys$或SysBuf中读取,另一部分数据从DRAM中读取,可以降低读取数据的功耗。从图16中可以看出,视频编码装置将大量的DRAM功耗改由Sys$或SysBuf的功耗取代,大大降低功耗。
305、若从第一存储器中读取的次数大于或等于预设次数阈值,则从第二存储器中逐块行读取多个第一区域中未被读取块行的图像数据。
步骤305的具体实施可参见步骤205的实施例,在此不再赘述。
306、从读取的多个第一区域的图像数据中确定出多个搜索窗的图像数据,每个搜索窗位于对应的第一区域内。
比如,当视频编码装置从第一存储器和第二存储器中读取多个第一区域的图像数据后,可以从每个第一区域的图像数据中分别确定出搜索窗的图像数据,即每个历史帧图像的重构帧图像的第一区域中均可以确定出一个搜索窗,这样就可以确定出多个搜索窗,每个搜索窗位于对应的第一区域内。当从每个历史帧图像的重构帧图像的第一区域中确定出搜索窗时,其具体实施可参见步骤206中的实施例,在此不再赘述。
307、将多个搜索窗的图像数据存储在第三存储器中,第三存储器的读写速度大于第一存储器的读写速度的第二预设倍数。
比如,当确定出多个搜索窗的图像数据后,可以将其存储在第三存储器中,第三存储器的读写速度大于第一存储器的读写速度的第二预设倍数。比如,该第三存储器可以为cache或buffer,该cache或buffer的读写速度大于Sys$或SysBuf的读写速度的第二预设倍数。
308、从第三存储器中读取多个搜索窗的图像数据,并根据多个搜索窗的图像数据,从多个搜索窗中分别确定出与待编码块的编码代价最小的一个或多个块。
比如,根据读取的多个搜索窗的图像数据,针对每个搜索窗的图像数据,将搜索窗中每个块行中的块与待编码块进行比对,从而可以得到每个块与待编码块的编码代价,按照编码代价从小到大的顺序可以从中确定出一个或多个块,即从每个搜索窗中确定出与待编码块的编码代价最小的一个或多个块。例如,对于运动估计,在当前搜索窗中逐块行扫描,对当前搜索窗中的块进行搜索,将搜索的块与待编码块进行比对,从当前搜索窗中找到与待编码块的编码代价最小的一个或多个块。
比如,在一种实施方式中,308中的从第三存储器中读取多个搜索窗的图像数据,并根据多个搜索窗的图像数据,从多个搜索窗中分别确定出与待编码块的编码代价最小的一个或多个块,可以包括:
从所述第三存储器中读取所述多个搜索窗的图像数据;
将所述多个搜索窗按照预设阶层数进行缩小,得到多个缩小后的搜索窗;
根据所述多个缩小后的搜索窗的图像数据,从所述多个缩小后的搜索窗中分别确定出与所述待编码块的编码代价最小的一个或多个缩小后的块;
根据所述一个或多个缩小后的块在所述缩小后的搜索窗中的位置,从所述多个搜索窗中分别确定出与所述待编码块的编码代价最小的一个或多个块。
比如,在进行搜索时,可以采用阶层式搜索方式,根据阶层数的不同,搜索的层级也不同。比如,若采用2个阶层的搜索,则进行2个层级的搜索,若采用采用3个阶层的搜索,则进行3个层级的搜索。当然,阶层数越多,则搜索的结果越准确,但同时也会增加系统计算资源的消耗。在实际应用中,可以根据具体需求设置合适的阶层数。需要说明的是,每个阶层的缩小倍率可以相同,也可以不同。
例如,从第三存储器中读取多个搜索窗的图像数据后,将多个搜索窗按照预设阶层数进行缩小,如按照2个阶层数将多个搜索窗进行缩小,得到多个缩小后的搜索窗,该多个缩小后的搜索窗分别为原来搜索窗大小的1/2。然后,根据该多个缩小后的搜索窗的图像数据,从该多个缩小后的搜索窗中分别确定出与待编码块的编码代价最小的一个或多个缩小后的块,该一个或多个缩小后的块与缩小后的搜索窗的缩小倍率是相同的。在每个缩小的搜索窗的图像上,先决定将要搜索的一个或多个缩小后的块的大致范围后,再回到未缩小的搜索窗的图像进行更精细的块搜索,即根据该缩小后的块在缩小后的搜索窗中的大致范围,对原始搜索窗进行更精细的搜索,可以从未缩小的搜索窗中确定出与待编码块的编码代价最小的一个或多个块。
再例如,从第三存储器中读取多个搜索窗的图像数据后,将多个搜索窗按照预设阶层数进行缩小,如按照3个阶层数将搜索窗进行缩小,得到多个缩小后的搜索窗,该多个缩小后的搜索窗分别为原来搜索窗大小的1/4。然后,根据多个1/4缩小范围的搜索窗的图像数据,从多个1/4缩小范围的搜索窗中分别确定出与待编码块的编码代价最小的一个或多个缩小后的块,得到多个1/4缩小范围的搜索窗下分别对应的一个或多个块矢量。之后,在多个1/2缩小范围的搜索窗进行更精细范围更小的搜索,最后,根据多个1/2缩小范围的搜索窗得到的一个或多个块矢量再搜索多个原始大小的搜索窗的范围,得到最终的一个或多个块矢量,从而可以确定出与待编码块的编码代价最小的一个或多个块。
由此可知,在多个缩小的搜索窗的图像上,先决定将要搜索的缩小后的块的大致范围后,再回到多个未缩小的搜索窗的图像进行更精细的块搜索,即根据缩小后的块在缩小后的搜索窗中的大致范围,对原始搜索窗进行更精细的搜索,可以从多个未缩小的搜索窗中确定出与待编码块的编码代价最小的一个或多个块。
309、从与待编码块的编码代价最小的多个块中确定出匹配块。
当从每个搜索窗中确定出与待编码块的编码代价最小的一个或多个块后,将这些块与待编码块的编码代价再次进行比较,按照编码代价从小到大的顺序从中确定出一个或多个块,以进一步优化搜索结果。需要书说明的是,可以将与待编码块的编码代价最小的一个或多个块与待编码块的相对位移作为运动矢量,将待编码块与编码代价最小的一个或多个块的差值作为残差。
比如,当从多个搜索窗中分别找到与待编码块的编码代价最小的一个或多个块后,由于每个搜索窗中至少能找到一个与待编码块的编码代价最小的块,则多个搜索窗中至少可以找到多个与待编码块的编码代价最小的块,从这些块中可以按照编码代价从小到大的顺序选择一个或多个块,通常会选择一个或两个编码代价最小的块,将其作为匹配块。可知,匹配块的数量可以是一个,可以是两个,也可以是多个,取决于所要求的参考块的数量。如当要考参考块的数量为两个,则需要确定出两个匹配块。
310、根据匹配块与待编码块的相对关系,对待编码块进行编码。
步骤310的具体实施可参见步骤210的实施例,在此不再赘述。
可以理解的是,本申请实施例可以根据摄影装置长时间拍摄需求,以及低散热成本需求和可预测行为造成的较大功耗,可以选择数据读取的目标位置或属性。比如,将需要重复读取的数据分别从Sys$或SysBuf以及DRAM进行读取,而不是全部都是从DRAM读取,由于读取相同的数据,SRAM的功耗远远小于DRAM的功耗,因此本申请实施例可以大大降低读取数据时的功耗。
本申请实施例以运动估计为示例详细说明了如何降低读取数据的功耗。在其它实施方式中,还可以适用于所有需要高带宽但存取数据行为可预测的模块与应用,如视频译码器,帧频提升(frame rate up conversion)装置等。这些模块与应用的行为通常是可以预测的,如重复读取的次数,通过这些可以预测的行为,可以预先分配相应的存储特性,即将重复读取的数据存放在低功耗的存储器中,例如根据全部帧或部分帧的图像数据的存取次数需求,来对应不同等级存储器的能量消耗,即根据全部帧或部分帧的图像数据的存取次数需求,来选择对应不同等级的能量消耗,当能量消耗不同时,可以合理分配从Sys$或SysBuf以及DRAM读取数据的次数。
如,视频译码器事先解析码流也可以确定存取数据的行为,帧频提升装置可以通过简单分析得知哪些区域在处理时会被用到多次,等等。还可以适用于固定的人工智能(Artificial Intelligence,AI)网络行为,AI网络行为重复读取的部分是特征图(featuremap)部分,该AI网络行是可预期的。
请参阅图20,图20为本申请实施例提供的在视频编码装置中进行图像处理的装置的结构示意图。该在视频编码装置中进行图像处理的装置400可以包括:第一确定模块401,第二确定模块402,读取模块403,第三确定模块404,编码模块405。
第一确定模块401,用于从当前帧图像中确定出待编码块;
第二确定模块402,用于从历史帧图像的重构帧图像中确定出需要多次重复读取的第一区域,并将所述第一区域的图像数据存储在预设存储器中,所述预设存储器的功耗小于预设功耗阈值;
读取模块403,用于从所述预设存储器中读取所述第一区域的图像数据;
第三确定模块404,用于根据读取的所述第一区域的图像数据从所述第一区域中确定出与所述待编码块相匹配的匹配块;
编码模块405,用于根据所述匹配块与所述待编码块的相对关系,对所述待编码块进行编码。
在一种实施方式中,所述预设存储器包括第一存储器和第二存储器,所述第二存储器的功耗大于所述第一存储器的功耗的第一预设倍数,所述第一区域包括多个块行,所述第二确定模块402可以用于:
从存储在所述第二存储器中的所述历史帧图像的重构帧图像中确定出需要多次重复读取的第一区域;
从所述第二存储器中读取所述第一区域的图像数据并将其存储到所述第一存储器中;
所述读取模块403可以用于:
从所述第一存储器中逐块行读取所述第一区域的图像数据;
若从所述第一存储器中读取的次数大于或等于预设次数阈值,则从第二存储器中逐块行读取第一区域中未被读取块行的图像数据。
在一种实施方式中,所述第二确定模块402可以用于:
若所述第一区域在所述历史帧图像的重构帧图像中下移一个块行,则从所述第二存储器中读取下移块行的图像数据并将其存储到所述第一存储器中;
将所述第一存储器中下一个待编码块行编码时用不到的块行进行移除。
在一种实施方式中,所述第三确定模块404可以用于:
从读取的所述第一区域的图像数据中确定出搜索窗的图像数据,所述搜索窗位于所述第一区域内;
将所述搜索窗的图像数据存储在第三存储器中,所述第三存储器的读写速度大于所述第一存储器的读写速度的第二预设倍数;
从所述第三存储器中读取所述搜索窗的图像数据,并根据所述搜索窗的图像数据,从所述搜索窗中确定出与所述待编码块的编码代价最小的块;
将与所述待编码块的编码代价最小的块作为所述匹配块。
在一种实施方式中,所述第三确定模块404可以用于:
从所述第三存储器中读取所述搜索窗的图像数据;
将所述搜索窗按照预设阶层数进行缩小,得到缩小后的搜索窗;
根据所述缩小后的搜索窗的图像数据,从所述缩小后的搜索窗中确定出与所述待编码块的编码代价最小的缩小后的块;
根据所述缩小后的块在所述缩小后的搜索窗中的位置,从所述搜索窗中确定出与所述待编码块的编码代价最小的块。
在一种实施方式中,所述相对关系为运动矢量和残差,所述编码模块405可以用于:
根据所述匹配块与所述待编码块的运动矢量和残差,对所述待编码块进行编码。
在一种实施方式中,所述第三确定模块404可以用于:
将所述匹配块与所述待编码块的残差进行正向变换和量化;
将所述匹配块与所述待编码块的运动矢量以及正向变换和量化后的第一残差数据进行熵编码,得到视频流编码数据;或者
将所述正向变换和量化后的第一残差数据进行反向量化与变换,得到第二残差数据;
根据所述第二残差数据对所述待编码块进行重构。
在一种实施方式中,所述预设存储器包括第一存储器和第二存储器,所述第二存储器的功耗大于所述第一存储器的功耗的第一预设倍数,所述第一区域包括多个块行,所述第二确定模块402可以用于:
从存储在所述第二存储器中多个历史帧图像的重构帧图像中确定出需要多次重复读取的多个第一区域;
将所述第二存储器中读取所述多个第一区域的图像数据并将其存储在所述第一存储器中。
所述读取模块403可以用于:
从所述第一存储器中逐块行读取所述多个第一区域的图像数据;
若从所述第一存储器中读取的次数大于或等于预设次数阈值,则从第二存储器中逐块行读取所述多个第一区域中未被读取块行的图像数据。
在一种实施方式中,所述第三确定模块404可以用于:
从读取的所述多个第一区域的图像数据中确定出多个搜索窗的图像数据,每个所述搜索窗位于对应的所述第一区域内;
将所述多个搜索窗的图像数据存储在第三存储器中,所述第三存储器的读写速度大于所述第一存储器的读写速度的第二预设倍数;
从所述第三存储器中读取所述多个搜索窗的图像数据,并根据所述多个搜索窗的图像数据,从所述多个搜索窗中分别确定出与所述待编码块的编码代价最小的一个或多个块;
从与所述待编码块的编码代价最小的多个块中确定出所述匹配块。
在一种实施方式中,所述第三确定模块404可以用于:
从所述第三存储器中读取所述多个搜索窗的图像数据;
将所述多个搜索窗按照预设阶层数进行缩小,得到多个缩小后的搜索窗;
根据所述多个缩小后的搜索窗的图像数据,从所述多个缩小后的搜索窗中分别确定出与所述待编码块的编码代价最小的一个或多个缩小后的块;
根据所述一个或多个缩小后的块在所述缩小后的搜索窗中的位置,从所述多个搜索窗中分别确定出与所述待编码块的编码代价最小的一个或多个块。
在一种实施方式中,所述第一存储器包括设置在视频编码装置外部的系统高速缓存或系统缓冲存储器,所述第二存储器包括设置在视频编码装置外部的动态随机存取内存。
在一种实施方式中,所述第三存储器包括设置在视频编码装置内部的缓存或缓冲。
本申请实施例提供一种计算机可读的存储介质,其上存储有计算机程序,当所述计算机程序在计算机上执行时,使得所述计算机执行如本实施例提供的在视频编码装置中进行图像处理的方法中的流程。
本申请实施例还提供一种电子设备,包括存储器,处理器以及视频编码装置,所述处理器通过调用所述存储器中存储的计算机程序,用于执行本实施例提供的在视频编码装置中进行图像处理的方法中的流程。
例如,上述电子设备可以是诸如平板电脑或者智能手机等移动终端。请参阅图21,图21为本申请实施例提供的电子设备的结构示意图。
该电子设备500可以包括视频编码装置501、存储器502、处理器503等部件。本领域技术人员可以理解,图21中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
视频编码装置501可以用于对视频图像进行编码,以对视频图像的内容进行压缩。
存储器502可用于存储应用程序和数据。存储器502存储的应用程序中包含有可执行代码。应用程序可以组成各种功能模块。处理器503通过运行存储在存储器502的应用程序,从而执行各种功能应用以及数据处理。
处理器503是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器502内的应用程序,以及调用存储在存储器502内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。
在本实施例中,电子设备中的处理器503会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行代码加载到存储器502中,并由处理器503来运行存储在存储器502中的应用程序,从而执行:
从当前帧图像中确定出待编码块;
从历史帧图像的重构帧图像中确定出需要多次重复读取的第一区域,并将所述第一区域的图像数据存储在预设存储器中,所述预设存储器的功耗小于预设功耗阈值;
从所述预设存储器中读取所述第一区域的图像数据;
根据读取的所述第一区域的图像数据从所述第一区域中确定出与所述待编码块相匹配的匹配块;
根据所述匹配块与所述待编码块的相对关系,对所述待编码块进行编码。
请参阅图22,电子设备500可以包括视频编码模器501、存储器502、处理器503、电池504、输入单元505、输出单元506等部件。
视频编码模器501可以用于对视频图像进行编码,以对视频图像的内容进行压缩。
存储器502可用于存储应用程序和数据。存储器502存储的应用程序中包含有可执行代码。应用程序可以组成各种功能模块。处理器503通过运行存储在存储器502的应用程序,从而执行各种功能应用以及数据处理。
处理器503是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器502内的应用程序,以及调用存储在存储器502内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。
电池504可用于为电子设备的各个部件提供电力支持,从而保障各个部件的正常运行。
输入单元505可用于接收视频图像的输入视频流,例如可以用于接收需要进行视频压缩的视频流。
输出单元506可以用于输出已压缩的视频流。
在本实施例中,电子设备中的处理器503会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行代码加载到存储器502中,并由处理器503来运行存储在存储器502中的应用程序,从而执行:
从当前帧图像中确定出待编码块;
从历史帧图像的重构帧图像中确定出需要多次重复读取的第一区域,并将所述第一区域的图像数据存储在预设存储器中,所述预设存储器的功耗小于预设功耗阈值;
从所述预设存储器中读取所述第一区域的图像数据;
根据读取的所述第一区域的图像数据从所述第一区域中确定出与所述待编码块相匹配的匹配块;
根据所述匹配块与所述待编码块的相对关系,对所述待编码块进行编码。
在一种实施方式中,所述预设存储器包括第一存储器和第二存储器,所述第二存储器的功耗大于所述第一存储器的功耗的第一预设倍数,所述第一区域包括多个块行,所述处理器503执行所述从历史帧图像的重构帧图像中确定出需要多次重复读取的第一区域,并将所述第一区域的图像数据存储在预设存储器中时,还可以执行:从存储在所述第二存储器中的所述历史帧图像的重构帧图像中确定出需要多次重复读取的第一区域;从所述第二存储器中读取所述第一区域的图像数据并将其存储到所述第一存储器中。
所述处理器503执行所述从所述预设存储器中读取所述第一区域的图像数据时,还可以执行:从所述第一存储器中逐块行读取所述第一区域的图像数据;若从所述第一存储器中读取的次数大于或等于预设次数阈值,则从第二存储器中逐块行读取第一区域中未被读取块行的图像数据。
在一种实施方式中,所述处理器503执行所述从所述第二存储器中读取所述第一区域的图像数据并将其存储到所述第一存储器中时,还可以执行:若所述第一区域在所述历史帧图像的重构帧图像中下移一个块行,则从所述第二存储器中读取下移块行的图像数据并将其存储到所述第一存储器中;将所述第一存储器中下一个待编码块行编码时用不到的块行进行移除。
在一种实施方式中,所述处理器503执行所述根据读取的所述第一区域的图像数据从所述第一区域中确定出与所述待编码块相匹配的匹配块时,还可以执行:从读取的所述第一区域的图像数据中确定出搜索窗的图像数据,所述搜索窗位于所述第一区域内;将所述搜索窗的图像数据存储在第三存储器中,所述第三存储器的读写速度大于所述第一存储器的读写速度的第二预设倍数;从所述第三存储器中读取所述搜索窗的图像数据,并根据所述搜索窗的图像数据,从所述搜索窗中确定出与所述待编码块的编码代价最小的块;将所述与所述待编码块的编码代价最小的块作为所述匹配块。
在一种实施方式中,所述处理器503执行所述从所述第三存储器中读取所述搜索窗的图像数据,并根据所述搜索窗的图像数据,从所述搜索窗中确定出与所述待编码块的编码代价最小的块时,还可以执行:从所述第三存储器中读取所述搜索窗的图像数据;将所述搜索窗按照预设阶层数进行缩小,得到缩小后的搜索窗;根据所述缩小后的搜索窗的图像数据,从所述缩小后的搜索窗中确定出与所述待编码块的编码代价最小的缩小后的块;根据所述缩小后的块在所述缩小后的搜索窗中的位置,从所述搜索窗中确定出与所述待编码块的编码代价最小的块。
在一种实施方式中,所述相对关系为运动矢量和残差,所述处理器503执行所述根据所述匹配块与所述待编码块的相对关系,对所述待编码块进行编码时,还可以执行:根据所述匹配块与所述待编码块的运动矢量和残差,对所述待编码块进行编码。
在一种实施方式中,所述处理器503执行所述根据所述匹配块与所述待编码块的运动矢量和残差,对所述待编码块进行编码时,还可以执行:将所述匹配块与所述待编码块的残差进行正向变换和量化;将所述匹配块与所述待编码块的运动矢量以及正向变换和量化后的第一残差数据进行熵编码,得到视频流编码数据;或者将所述正向变换和量化后的第一残差数据进行反向量化与变换,得到第二残差数据;根据所述第二残差数据对所述待编码块进行重构。
在一种实施方式中,所述预设存储器包括第一存储器和第二存储器,所述第二存储器的功耗大于所述第一存储器的功耗的第一预设倍数,所述第一区域包括多个块行,所述处理器503执行所述从历史帧图像的重构帧图像中确定出需要多次重复读取的第一区域,并将所述第一区域的图像数据存储在预设存储器中时,还可以执行:从存储在所述第二存储器中的多个历史帧图像的重构帧图像中确定出需要多次重复读取的多个第一区域;从所述第二存储器中读取所述多个第一区域的图像数据并将其存储在所述第一存储器中。
所述处理器503执行所述从所述预设存储器中读取所述第一区域的图像数据时,还可以执行:从所述第一存储器中逐块行读取所述多个第一区域的图像数据;若从所述第一存储器中读取的次数大于或等于预设次数阈值,则从第二存储器中逐块行读取所述多个第一区域中未被读取块行的图像数据。
在一种实施方式中,所述处理器503执行所述根据读取的所述第一区域的图像数据从所述第一区域中确定出与所述待编码块相匹配的匹配块时,还可以执行:从读取的所述多个第一区域的图像数据中确定出多个搜索窗的图像数据,每个所述搜索窗位于对应的所述第一区域内;将所述多个搜索窗的图像数据存储在第三存储器中,所述第三存储器的读写速度大于所述第一存储器的读写速度的第二预设倍数;从所述第三存储器中读取所述多个搜索窗的图像数据,并根据所述多个搜索窗的图像数据,从所述多个搜索窗中分别确定出与所述待编码块的编码代价最小的一个或多个块;从与所述待编码块的编码代价最小的多个块中确定出所述匹配块。
在一种实施方式中,所述处理器503执行所述从所述第三存储器中读取所述多个搜索窗的图像数据,并根据所述多个搜索窗的图像数据,从所述多个搜索窗中分别确定出与所述待编码块的编码代价最小的一个或多个块时,可以执行:从所述第三存储器中读取所述多个搜索窗的图像数据;将所述多个搜索窗按照预设阶层数进行缩小,得到多个缩小后的搜索窗;根据所述多个缩小后的搜索窗的图像数据,从所述多个缩小后的搜索窗中分别确定出与所述待编码块的编码代价最小的一个或多个缩小后的块;根据所述一个或多个缩小后的块在所述缩小后的搜索窗中的位置,从所述多个搜索窗中分别确定出与所述待编码块的编码代价最小的一个或多个块。
在一种实施方式中,所述第一存储器包括设置在视频编码装置外部的系统高速缓存或系统缓冲存储器,所述第二存储器包括设置在视频编码装置外部的动态随机存取内存。
在一种实施方式中,所述第三存储器包括设置在视频编码装置内部的缓存或缓冲。
本申请实施例还提供一种图像处理系统,请参阅图23和图24,图23是本申请实施例提供的图像处理系统的结构示意图。图24是本申请实施例提供的图像处理系统的另一结构示意图。该图像处理系统600包括视频编码装置601、第一存储器602和第二存储器603,其中,第二存储器603的功耗大于第一存储器602的功耗的第一预设倍数,视频编码装置601可以包括第三存储器,第三存储器的读取速度大于第一存储器的读取速度的第二预设倍数,第一存储器602和第二存储器603分别存储历史帧图像的重构帧图像中需要多次重复读取的图像数据,视频编码装置601在进行编码时,按照预设次数分别从第一存储器602和第二存储器603读取多次重复读取的图像数据,并从中确定出搜索窗内的图像数据,将搜索窗内的图像数据存储在第三存储器中。
比如,当第二存储器603中存储历史帧图像的重构帧图像后,可以从存储在第二存储器603中的历史帧图像的重构帧图像中确定出需要多次重复读取的第一区域,然后从第二存储器603中读取第一区域的图像数据,并读取的第一区域的图像数据存储到第一存储器602中,在编码时,视频编码装置601可以从第一存储器602中逐块行读取第一区域的图像数据。若从第一存储器602中读取的次数大于或等于预设次数阈值,则从第二存储器603中逐块行读取第一区域中未被读取块行的图像数据。
需要说明的是,当从第二存储器603读取图像数据时,视频编码装置601可以直接从第二存储器603读取图像数据,或者是由第一存储器602从第二存储器603读取图像数据后进行存储,该部分图像数据由视频编码装置601直接从第一存储器602中读取。
视频编码装置601可以从第三存储器读取搜索窗内的图像数据,根据从第三存储器中读取的搜索窗内的图像数据,从搜索窗中确定出与待编码模块相匹配的匹配块,并根据匹配块与待编码块的运动矢量和残差进行编码。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文针对在视频编码装置中进行图像处理的方法的详细描述,此处不再赘述。
本申请实施例提供的所述在视频编码装置中进行图像处理的装置与上文实施例中的在视频编码装置中进行图像处理的方法属于同一构思,在所述在视频编码装置中进行图像处理的装置上可以运行所述在视频编码装置中进行图像处理的方法实施例中提供的任一方法,其具体实现过程详见所述在视频编码装置中进行图像处理的方法实施例,此处不再赘述。
需要说明的是,对本申请实施例所述在视频编码装置中进行图像处理的方法而言,本领域普通技术人员可以理解实现本申请实施例所述在视频编码装置中进行图像处理的方法的全部或部分流程,是可以通过计算机程序来控制相关的硬件来完成,所述计算机程序可存储于一计算机可读取存储介质中,如存储在存储器中,并被至少一个处理器执行,在执行过程中可包括如所述在视频编码装置中进行图像处理的方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)等。
对本申请实施例的所述在视频编码装置中进行图像处理的装置而言,其各功能模块可以集成在一个处理芯片中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中,所述存储介质譬如为只读存储器,磁盘或光盘等。
以上对本申请实施例所提供的一种在视频编码装置中进行图像处理的方法、装置、存储介质、电子设备及系统进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (17)

1.一种在视频编码装置中进行图像处理的方法,其特征在于,所述方法包括:
从当前帧图像中确定出待编码块;
从历史帧图像的重构帧图像中确定出需要多次重复读取的第一区域,并将所述第一区域的图像数据存储在预设存储器中,所述预设存储器的功耗小于预设功耗阈值;
从所述预设存储器中读取所述第一区域的图像数据;
根据读取的所述第一区域的图像数据从所述第一区域中确定出与所述待编码块相匹配的匹配块;
根据所述匹配块与所述待编码块的相对关系,对所述待编码块进行编码。
2.根据权利要求1所述的在视频编码装置中进行图像处理的方法,其特征在于,所述预设存储器包括第一存储器和第二存储器,所述第二存储器的功耗大于所述第一存储器的功耗的第一预设倍数,所述第一区域包括多个块行,所述从历史帧图像的重构帧图像中确定出需要多次重复读取的第一区域,并将所述第一区域的图像数据存储在预设存储器中,包括:
从存储在所述第二存储器中的所述历史帧图像的重构帧图像中确定出需要多次重复读取的第一区域;
从所述第二存储器中读取所述第一区域的图像数据并将其存储到所述第一存储器中;
所述从所述预设存储器中读取所述第一区域的图像数据,包括:
从所述第一存储器中逐块行读取所述第一区域的图像数据;
若从所述第一存储器中读取的次数大于或等于预设次数阈值,则从第二存储器中逐块行读取第一区域中未被读取块行的图像数据。
3.根据权利要求2所述的在视频编码装置中进行图像处理的方法,其特征在于,所述从所述第二存储器中读取所述第一区域的图像数据并将其存储到所述第一存储器中,包括:
若所述第一区域在所述历史帧图像的重构帧图像中下移一个块行,则从所述第二存储器中读取下移块行的图像数据并将其存储到所述第一存储器中;
将所述第一存储器中下一个待编码块行编码时用不到的块行进行移除。
4.根据权利要求3所述的在视频编码装置中进行图像处理的方法,其特征在于,所述根据读取的所述第一区域的图像数据从所述第一区域中确定出与所述待编码块相匹配的匹配块,包括:
从读取的所述第一区域的图像数据中确定出搜索窗的图像数据,所述搜索窗位于所述第一区域内;
将所述搜索窗的图像数据存储在第三存储器中,所述第三存储器的读写速度大于所述第一存储器的读写速度的第二预设倍数;
从所述第三存储器中读取所述搜索窗的图像数据,并根据所述搜索窗的图像数据,从所述搜索窗中确定出与所述待编码块的编码代价最小的块;
将与所述待编码块的编码代价最小的块作为所述匹配块。
5.根据权利要求4所述的在视频编码装置中进行图像处理的方法,其特征在于,所述从所述第三存储器中读取所述搜索窗的图像数据,并根据所述搜索窗的图像数据,从所述搜索窗中确定出与所述待编码块的编码代价最小的块,包括:
从所述第三存储器中读取所述搜索窗的图像数据;
将所述搜索窗按照预设阶层数进行缩小,得到缩小后的搜索窗;
根据所述缩小后的搜索窗的图像数据,从所述缩小后的搜索窗中确定出与所述待编码块的编码代价最小的缩小后的块;
根据所述缩小后的块在所述缩小后的搜索窗中的位置,从所述搜索窗中确定出与所述待编码块的编码代价最小的块。
6.根据权利要求1所述的在视频编码装置中进行图像处理的方法,其特征在于,所述相对关系为运动矢量和残差,所述根据所述匹配块与所述待编码块的相对关系,对所述待编码块进行编码,包括:
根据所述匹配块与所述待编码块的运动矢量和残差,对所述待编码块进行编码。
7.根据权利要求6所述的在视频编码装置中进行图像处理的方法,其特征在于,所述根据所述匹配块与所述待编码块的运动矢量和残差,对所述待编码块进行编码,包括:
将所述匹配块与所述待编码块的残差进行正向变换和量化;
将所述匹配块与所述待编码块的运动矢量以及正向变换和量化后的第一残差数据进行熵编码,得到视频流编码数据;或者
将所述正向变换和量化后的第一残差数据进行反向量化与变换,得到第二残差数据;
根据所述第二残差数据对所述待编码块进行重构。
8.根据权利要求1所述的在视频编码装置中进行图像处理的方法,其特征在于,所述预设存储器包括第一存储器和第二存储器,所述第二存储器的功耗大于所述第一存储器的功耗的第一预设倍数,所述第一区域包括多个块行,所述从历史帧图像的重构帧图像中确定出需要多次重复读取的第一区域,并将所述第一区域的图像数据存储在预设存储器中,包括:
从存储在所述第二存储器中的多个历史帧图像的重构帧图像中确定出需要多次重复读取的多个第一区域;
从所述第二存储器中读取所述多个第一区域的图像数据并将其存储在所述第一存储器中;
所述从所述预设存储器中读取所述第一区域的图像数据,包括:
从所述第一存储器中逐块行读取所述多个第一区域的图像数据;
若从所述第一存储器中读取的次数大于或等于预设次数阈值,则从第二存储器中逐块行读取所述多个第一区域中未被读取块行的图像数据。
9.根据权利要求8所述的在视频编码装置中进行图像处理的方法,其特征在于,所述根据读取的所述第一区域的图像数据从所述第一区域中确定出与所述待编码块相匹配的匹配块,包括:
从读取的所述多个第一区域的图像数据中确定出多个搜索窗的图像数据,每个所述搜索窗位于对应的所述第一区域内;
将所述多个搜索窗的图像数据存储在第三存储器中,所述第三存储器的读写速度大于所述第一存储器的读写速度的第二预设倍数;
从所述第三存储器中读取所述多个搜索窗的图像数据,并根据所述多个搜索窗的图像数据,从所述多个搜索窗中分别确定出与所述待编码块的编码代价最小的一个或多个块;
从与所述待编码块的编码代价最小的多个块中确定出所述匹配块。
10.根据权利要求9所述的在视频编码装置中进行图像处理的方法,其特征在于,所述从所述第三存储器中读取所述多个搜索窗的图像数据,并根据所述多个搜索窗的图像数据,从所述多个搜索窗中分别确定出与所述待编码块的编码代价最小的一个或多个块,包括:
从所述第三存储器中读取所述多个搜索窗的图像数据;
将所述多个搜索窗按照预设阶层数进行缩小,得到多个缩小后的搜索窗;
根据所述多个缩小后的搜索窗的图像数据,从所述多个缩小后的搜索窗中分别确定出与所述待编码块的编码代价最小的一个或多个缩小后的块;
根据所述一个或多个缩小后的块在所述缩小后的搜索窗中的位置,从所述多个搜索窗中分别确定出与所述待编码块的编码代价最小的一个或多个块。
11.根据权利要求2所述的在视频编码装置中进行图像处理的方法,其特征在于,所述第一存储器包括设置在视频编码装置外部的系统高速缓存或系统缓冲存储器,所述第二存储器包括设置在视频编码装置外部的动态随机存取内存。
12.根据权利要求4所述的在视频编码装置中进行图像处理的方法,其特征在于,所述第三存储器包括设置在视频编码装置内部的缓存或缓冲。
13.一种在视频编码装置中进行图像处理的装置,其特征在于,所述装置包括:
第一确定模块,用于从当前帧图像中确定出待编码块;
第二确定模块,用于从历史帧图像的重构帧图像中确定出需要多次重复读取的第一区域,并将所述第一区域的图像数据存储在预设存储器中,所述预设存储器的功耗小于预设功耗阈值;
读取模块,用于从所述预设存储器中读取所述第一区域的图像数据;
第三确定模块,用于根据读取的所述第一区域的图像数据从所述第一区域中确定出与所述待编码块相匹配的匹配块;
编码模块,用于根据所述匹配块与所述待编码块的相对关系,对所述待编码块进行编码。
14.一种计算机可读的存储介质,其上存储有计算机程序,其特征在于,当所述计算机程序在计算机上执行时,使得所述计算机执行如权利要求1至12中任一项所述的方法。
15.一种电子设备,包括存储器,处理器以及视频编码装置,其特征在于,所述处理器通过调用所述存储器中存储的计算机程序,以执行如权利要求1至12中任一项所述的方法。
16.一种图像处理系统,其特征在于,包括视频编码装置、第一存储器和第二存储器,所述第二存储器的功耗大于所述第一存储器的功耗的第一预设倍数,所述视频编码装置包括第三存储器,所述第三存储器的读取速度大于所述第一存储器的读取速度的第二预设倍数,所述第一存储器和第二存储器分别存储历史帧图像的重构帧图像中多次重复读取的图像数据,所述视频编码装置在编码时,按照预设次数分别从所述第一存储器和第二存储器读取所述多次重复读取的图像数据,并从中确定出搜索窗内的图像数据,将所述搜索窗内的图像数据存储在所述第三存储器中,所述视频编码装置从所述第三存储器中读取所述搜索窗内的图像数据,并确定出与待编码块相匹配的匹配块,根据所述匹配块与待编码块的运动矢量和残差进行编码。
17.根据权利要求16所述的图像处理系统,其特征在于,从存储在所述第二存储器中的所述历史帧图像的重构帧图像中确定出需要多次重复读取的第一区域,从所述第二存储器中读取所述第一区域的图像数据并将其存储到所述第一存储器中,在编码时,所述视频编码装置从所述第一存储器中逐块行读取所述第一区域的图像数据,若从所述第一存储器中读取的次数大于或等于预设次数阈值,则从所述第二存储器中逐块行读取所述第一区域中未被读取块行的图像数据。
CN202110358171.1A 2021-04-01 2021-04-01 在视频编码装置中进行图像处理的方法、装置及系统 Pending CN115190307A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110358171.1A CN115190307A (zh) 2021-04-01 2021-04-01 在视频编码装置中进行图像处理的方法、装置及系统
PCT/CN2022/074533 WO2022206166A1 (zh) 2021-04-01 2022-01-28 在视频编码装置中进行图像处理的方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110358171.1A CN115190307A (zh) 2021-04-01 2021-04-01 在视频编码装置中进行图像处理的方法、装置及系统

Publications (1)

Publication Number Publication Date
CN115190307A true CN115190307A (zh) 2022-10-14

Family

ID=83455572

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110358171.1A Pending CN115190307A (zh) 2021-04-01 2021-04-01 在视频编码装置中进行图像处理的方法、装置及系统

Country Status (2)

Country Link
CN (1) CN115190307A (zh)
WO (1) WO2022206166A1 (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4346573B2 (ja) * 2005-03-25 2009-10-21 三洋電機株式会社 符号化装置と方法
JP6490896B2 (ja) * 2013-12-17 2019-03-27 株式会社メガチップス 画像処理装置
CN104935933B (zh) * 2015-06-05 2019-11-26 广东中星微电子有限公司 一种视频编解码方法
CN110800301A (zh) * 2018-09-30 2020-02-14 深圳市大疆创新科技有限公司 编码设备的控制方法、装置及存储介质

Also Published As

Publication number Publication date
WO2022206166A1 (zh) 2022-10-06

Similar Documents

Publication Publication Date Title
US10375401B2 (en) Moving picture coding method, moving picture decoding method, and apparatuses of the same
US9591326B2 (en) Power efficient motion estimation techniques for video encoding
EP1629437A2 (en) Hybrid digital video compression
CN113557730A (zh) 用于利用基于子块的局部光照补偿的视频编码和解码方法和装置
JP2007142907A (ja) 画像符号化装置および画像符号化方法
WO2020143585A1 (zh) 视频编码器、视频解码器及相应方法
US7881367B2 (en) Method of video coding for handheld apparatus
CN114257810B (zh) 上下文模型的选择方法、装置、设备及存储介质
WO2022206217A1 (zh) 在视频编码装置中进行图像处理的方法、装置、介质及系统
US20220417550A1 (en) Method and apparatus for constructing motion information list in video encoding and decoding and device
CN115190307A (zh) 在视频编码装置中进行图像处理的方法、装置及系统
WO2018205781A1 (zh) 一种实现运动估计的方法及电子设备
EP4178201A1 (en) Video processing method and apparatus, device, and storage medium
CN115190302A (zh) 在视频解码装置中进行图像处理的方法、装置及系统
KR101819138B1 (ko) Hevc 부호화기를 위한 병합 모드의 연산량 감소 방법
US20220408084A1 (en) Method and apparatus for constructing motion information list in video encoding and decoding and device
CN111770338B (zh) 编码单元的索引值确定方法、装置、设备及存储介质
Amaral et al. A memory energy consumption analysis of motion estimation algorithms using data reuse in video coding systems
Silveira et al. Low-energy motion estimation memory system with dynamic management
KR20240030922A (ko) Mpeg-vcm에 기반하여 인공신경망을 분산 처리하는 npu 및 방법
KR20230162988A (ko) 멀티미디어 데이터 프로세싱 방법 및 장치, 컴퓨터 디바이스, 및 컴퓨터-판독가능 저장 매체
KR20220157765A (ko) 영상 부호화 장치 및 이의 동작 방법
KR20220088888A (ko) 인트라 예측을 위한 신경망의 반복 트레이닝
JP2018166306A (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