一种视频图像高速缓存处理方法及装置转让专利

申请号 : CN201410334839.9

文献号 : CN104168485B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 周妮乔飞江树浩杨华中

申请人 : 清华大学

摘要 :

本发明公开了一种视频图像高速缓存处理方法和装置。该方法包括:预处理步骤,对视频图像划分为若干二维像素块,并将视频图像中各个像素点的亮度信息和色度信息分离;地址转换步骤,将二维像素块内各个像素点的色度信息在主存储单元中的第一地址均转换为第二地址;色度读取步骤,读取色度缓存单元中第二地址对应的色度信息,将二维像素块作为一个像素点进行非精确处理。本发明充分利用了人眼对于视频图像的亮度和色度敏感程度不同的特点,对视频图像中的色度信息采用非精确处理方法,并把这种方法运用在处理器的高速缓存中,降低高速缓存的缺失率。

权利要求 :

1.一种视频图像高速缓存处理方法,其特征在于,包括以下步骤:预处理步骤,对视频图像划分为若干二维像素块,并将视频图像中各个像素点的亮度信息和色度信息分离;

地址转换步骤,将二维像素块内各个像素点的色度信息在主存储单元中的第一地址转换为第二地址;

色度读取步骤,读取色度缓存单元中第二地址对应的色度信息,将二维像素块作为一个像素点进行非精确处理;

亮度读取步骤,将视频图像中各个像素点亮度信息加载至亮度缓存单元,读取亮度缓存单元中的亮度信息;

其中,地址转换步骤包括:

获取二维像素块内各个像素点的色度信息在主存储单元中的第一地址;

将第一地址中的一个设定为第二地址;

将二维像素块内各个像素点的色度信息在主存储单元中的不同于第二地址的第一地址均转换为第二地址。

2.根据权利要求1所述的方法,其特征在于,色度读取步骤包括:根据第二地址访问色度缓存单元并判断是否命中;若命中,则读取色度缓存单元中第二地址对应的色度信息;否则,将第二地址对应的色度信息从主存储单元加载至色度缓存单元。

3.根据权利要求1所述的方法,其特征在于,所述将第一地址中的一个设定为第二地址为:将二维像素块内第一行第一列的像素点的色度信息在主存储单元中的第一地址设定为第二地址。

4.根据权利要求3所述的方法,其特征在于,所述将二维像素块内各个像素点的色度信息在主存储单元中的不同于第二地址的第一地址均转换为第二地址包括:将二维像素块内第一行第一列之外的像素点的色度信息在主存储单元中的第一地址减去相邻行像素点的地址差值,以及/或者减去相邻列像素点的地址差值,得到第二地址。

5.一种视频图像高速缓存处理装置,其特征在于,包括:预处理单元,用于对视频图像划分为若干二维像素块,并将视频图像中各个像素点的亮度信息和色度信息分离;

地址转换单元,将二维像素块内各个像素点的色度信息在主存储单元中的第一地址均转换为第二地址;

色度读取单元,用于读取色度缓存单元中第二地址对应的色度信息,将二维像素块作为一个像素点进行非精确处理;

亮度读取单元,用于将视频图像中各个像素点亮度信息加载至亮度缓存单元,读取亮度缓存单元中的亮度信息;

其中,地址转换单元进一步用于:

获取二维像素块内各个像素点的色度信息在主存储单元中的第一地址;

将第一地址中的一个设定为第二地址;

将二维像素块内各个像素点的色度信息在主存储单元中的不同于第二地址的第一地址均转换为第二地址。

6.根据权利要求5所述的装置,其特征在于,所述色度读取单元还用于根据第二地址访问色度缓存单元并判断是否命中;若命中,则读取色度缓存单元中第二地址对应的色度信息;否则,将第二地址对应的色度信息从主存储单元加载至色度缓存单元。

7.根据权利要求6所述的装置,其特征在于,所述地址转换单元进一步用于:获取二维像素块内各个像素点的色度信息在主存储单元中的第一地址;

将二维像素块内第一行第一列的像素点的色度信息在主存储单元中的第一地址设定为第二地址;

将二维像素块内第一行第一列的之外的像素点的色度信息在主存储单元中的第一地址减去相邻行像素点的地址差值,以及/或者减去相邻列像素点的地址差值,得到所述第二地址。

说明书 :

一种视频图像高速缓存处理方法及装置

技术领域

[0001] 本发明涉及视频图像处理技术领域,具体地说,涉及一种视频图像高速缓存的处理方法及装置。

背景技术

[0002] 现有技术中,视频图像被广泛应用于通信、交通、医学、教育等领域,例如视频会议、视频监控和远程教学等。随着视频图像应用领域的不断拓宽,视频处理的数据量也在急剧增加,导致在计算机处理系统中普遍出现“存储墙”问题,即存储器的存取速度远低于处理器的处理速度,这在视频图像处理中更加严重。
[0003] 在计算机工程领域,根据局部性原理而提出的高速缓存(cache)结构是解决“存储墙”问题的主要手段之一,并已被广泛地应用在处理器架构中。高速缓存性能对整个处理器的处理性能有着重要影响,一般采用存储器的平均访问时间来衡量。其计算方法如下:
[0004] 存储器的平均访问时间=命中时间+缺失率*缺失代价
[0005] 通过上述公式可以看出,高速缓存的性能主要取决于缺失率、命中时间和缺失代价这三个参数。其中,命中时间是指高速缓存命中的时间,缺失代价是指由于访问目标不在缓存中而从存储器中加载数据块所需要的时间。这两个参数在一定的组织结构下是基本上保持一定的量级,而缺失率是一个比较不确定的参数。降低高速缓存的缺失率是优化缓存性能的手段之一。
[0006] 现有技术中对高速缓存的缺失率进行优化的方法及其弊端如下。
[0007] 可以通过增加块容量降低缺失率,但是会增加缺失代价。可以增大高速缓存的大小来降低缺失率,但会导致命中时间较长,并且价格开销和功耗都较大。还可以增加相联度来降低缺失率,但是较大的相联度也会增加命中时间。也可以使用多级高速缓存来降低缺失率,但是会导致增大集成电路的面积,并且使得多级的缓存一致性维护增加。
[0008] 可以看出,上述优化方法均属于通用方法,并非针对视频图像的特性,用于视频图像处理方面得到的优化效果并不明显。
[0009] 基于上述情况,亟需一种能够降低视频图像的高速缓存缺失率的处理方法和装置。

发明内容

[0010] 为解决上述问题,本发明提供了一种视频图像高速缓存处理方法,包括以下步骤:
[0011] 预处理步骤,对视频图像划分为若干二维像素块,并将视频图像中各个像素点的亮度信息和色度信息分离;
[0012] 地址转换步骤,将二维像素块内各个像素点的色度信息在主存储单元中的第一地址转换为第二地址;
[0013] 色度读取步骤,读取色度缓存单元中第二地址对应的色度信息,将二维像素块作为一个像素点进行非精确处理。
[0014] 根据本发明的一个实施例,地址转换步骤包括:
[0015] 获取二维像素块内各个像素点的色度信息在主存储单元中的第一地址;
[0016] 将第一地址中的一个设定为第二地址;
[0017] 将二维像素块内各个像素点的色度信息在主存储单元中的不同于第二地址的第一地址均转换为第二地址。
[0018] 根据本发明的一个实施例,色度读取步骤包括:
[0019] 根据第二地址访问色度缓存单元并判断是否命中;若命中,则读取色度缓存单元中第二地址对应的色度信息;否则,将第二地址对应的色度信息从主存储单元加载至色度缓存单元。
[0020] 根据本发明的一个实施例,所述将第一地址中的一个设定为第二地址为:
[0021] 将二维像素块内第一行第一列的像素点的色度信息在主存储单元中的第一地址设定为第二地址。
[0022] 根据本发明的一个实施例,所述将二维像素块内各个像素点的色度信息在主存储单元中的不同于第二地址的第一地址均转换为第二地址包括:
[0023] 将二维像素块内第一行第一列的之外的像素点的色度信息在主存储单元中的第一地址减去相邻行像素点的地址差值,以及/或者减去相邻列像素点的地址差值,得到第二地址。
[0024] 根据本发明的一个实施例,还包括亮度读取步骤:
[0025] 将视频图像中各个像素点亮度信息加载至亮度缓存单元,读取亮度缓存单元中的亮度信息。
[0026] 根据本发明的另一方面,还提供一种视频图像高速缓存处理装置,包括:
[0027] 预处理单元,用于对视频图像划分为若干二维像素块,并将视频图像中各个像素点的亮度信息和色度信息分离;
[0028] 地址转换单元,将二维像素块内各个像素点的色度信息在主存储单元中的第一地址均转换为第二地址;
[0029] 色度读取单元,用于读取色度缓存单元中第二地址对应的色度信息,将二维像素块作为一个像素点进行非精确处理。
[0030] 根据本发明的一个实施例,所述色度读取单元还用于根据第二地址访问色度缓存单元并判断是否命中;若命中,则读取色度缓存单元中第二地址对应的色度信息;否则,将第二地址对应的色度信息从主存储单元加载至色度缓存单元。
[0031] 根据本发明的一个实施例,所述地址转换单元进一步用于:
[0032] 获取二维像素块内各个像素点的色度信息在主存储单元中的第一地址;
[0033] 将二维像素块内第一行第一列的像素点的色度信息在主存储单元中的第一地址设定为第二地址;
[0034] 将二维像素块内第一行第一列的之外的像素点的色度信息在主存储单元中的第一地址减去相邻行像素点的地址差值,以及/或者减去相邻列像素点的地址差值,得到所述第二地址。
[0035] 根据本发明的一个实施例,还包括亮度读取单元,用于将视频图像中各个像素点亮度信息加载至亮度缓存单元,读取亮度缓存单元中的亮度信息。
[0036] 本发明的有益效果在于,充分利用了人眼对于视频图像的亮度和色度敏感程度不同的特点,对视频图像中的色度信息采用非精确处理方法,并把这种方法运用在处理器的高速缓存中,降低高速缓存的缺失率,提高处理器整体性能。
[0037] 本发明针对视频图像的高速缓存,提出一种简单、高效的降低高速缓存缺失率的方法和装置。可以使色度信息的缓存缺失率降低,且对视频图像主要和客观质量基本无影响。本方法简单高效,能高效集成到视频图像处理系统中,特别是可应用到针对视频图像处理的混合cache架构中。
[0038] 本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

[0039] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要的附图做简单的介绍:
[0040] 图1是根据本发明实施例的视频图像高速缓存处理方法的步骤流程图;
[0041] 图2是根据本发明实施例的对视频图像划分为二维像素块的示例图;
[0042] 图3是根据本发明实施例的视频图像高速缓存处理装置的结构示意图;
[0043] 图4是根据本发明实施例的混合片上缓存的结构示意图;
[0044] 图5a是根据本发明实施例的原视频图像;
[0045] 图5b是根据本发明实施例的方法进行非精确处理之后的视频图像;
[0046] 图6a是根据本发明实施例的H.264编解码原图像;
[0047] 图6b是根据本发明实施例的方法进行非精确处理之后的H.264编解码原图像;
[0048] 图7是H.264编解码原图像与非精确处理H.264编解码后图像的PSNR对比图。

具体实施方式

[0049] 为使本发明的目的、技术方案和优点更加清楚,以下结合附图对本发明作进一步地详细说明。
[0050] 视频图像处理系统因视频图像的特点而可以采用非精确处理方法。具体的,可以把视频图像数据分为两个部分:对图像质量影响较大的显著比特(bit)和对图像质量影响较小的非显著比特。对非显著比特的适当的近似处理对图像视频的质量影响甚小,而图像的色度就属于非显著比特部分。而且图像视频的相邻像素点的信息有一定的相似性,95%的相邻像素色度信息差值小于5。
[0051] 基于这样的事实,本发明通过视频图像cache中对色度的非精确处理来降低视频图像高速缓存(cache)的缺失率。
[0052] 实施例一
[0053] 图1为本实施例的视频图像高速缓存处理方法的步骤流程图。以下结合图1做详细说明。
[0054] 步骤S101为预处理步骤,对视频图像划分为若干二维像素块,并将视频图像中各个像素点的亮度信息和色度信息分离。
[0055] 由于人眼对视频图像中的亮度敏感,而对色度部分不敏感,可以将视频图像中各个像素点的亮度信息和色度信息分离。其中的色度信息经过后续的处理步骤进行非精确处理。
[0056] 图2为本实施例中对视频图像划分为二维像素块的示例图。将包括多个像素点的视频图像201依次划分为多个像素块202,其中像素块202包括4个像素点,分布在2行2列中,称为2*2方式。如上所述,这里的视频图像201仅包括分离之后的色度信息,同样,像素块202中仅包括色度信息。在本示例中,像素块202中四个像素点的色度值分别为A11=111,A12=108,A21=108,A22=109。
[0057] 步骤S102为地址转换步骤,将二维像素块内各个像素点的色度信息在主存储单元中的第一地址均转换为第二地址。
[0058] 具体的,首先获取二维像素块内各个像素点的色度信息在主存储单元中的第一地址,也就是获取像素块202中A11、A12、A21和A22四个像素点在主存储单元的地址。
[0059] 然后,将第一地址中的一个设定为第二地址。在本实施例中是将二维像素块内第一行第一列的像素点的色度信息在主存储单元中的第一地址设定为第二地址,即将像素点A11的在主存储单元的地址设定为第二地址。
[0060] 最后,将二维像素块内各个像素点的色度信息在主存储单元中的不同于第二地址的第一地址均转换为第二地址。即将像素点A12、A21和A22在主存储单元中的地址均转换为像素点A11在主存储单元的地址。如图2所示,当访问cache时,像素块202中所有的像素点均为同一个地址,相应的像素点A11、A12、A21和A22的色度值均为111。这样使得二维像素块202作为一个像素点进行处理,A12、A21和A22的色度值近似认为是111。
[0061] 本领域技术人员容易理解,本实施例中2*2方式的二维像素块也可以为3*3、2*3、3*2等类似的实施方式。可以根据具体的视频图像的用途和性质来设置像素块的大小。
[0062] 以下提供地址转换的具体方法。
[0063] 第一种转化算法如公式(1)所示,其中ImageWidth和ImageHeight代表图像的尺寸,BlockWidth和BlockHeight代表二维像素块的尺寸,Address和Translated_Address分别代表像素点的原地址和转换后的地址,XAddress,YAddress和Translated_XAddress,Translated_YAddress分别代表像素点的原地址坐标和转换后的地址坐标,mode为取余函数,floor为取整函数。
[0064] YAddress=mode(Address,ImageWidth)
[0065] XAddress=floor(Address/ImageWidth)
[0066] Translated_YAddress=floor(YAddress/BoxWidth)×BoxWidth
[0067] Translated_XAddress=floor(XAddress/BoxHeight)×BoxHeight[0068] Translated_Address=Translated_XAddress×ImageWidth)+Translated_YAddress
[0069]                                                        (1)[0070] 但是,按照上述公式(1)方式实现地址转换需要进行除法运算,在硬件设计中除法实现代价过高。为了减小地址转换的硬件代价,第二种地址转换方法。
[0071] 如表1所示,对于本实施例中采用的2*2的像素块,则有左上A11、右上A12、左下A21和右下A22四个位置,其中Address为未转换的原地址,BytesofPixels是相邻列像素点的地址差值,OffsetBetweenRows是相邻行像素点的地址差值。该算法可以只需要32位减法器实现就能实现,硬件代价小。
[0072] 表1
[0073]
[0074] 经过表1转化后的地址可以使得:
[0075] A11.Address
[0076] =A12.Address-BytesofPixels
[0077] =A21.Address-OffsetBetweenRows
[0078] =A22.Address-BytesofPixels-OffsetBetweenRows
[0079] 也就是说,在本实施例中,将二维像素块内第一行第一列的之外的像素点的色度信息在主存储单元中的第一地址减去相邻行像素点的地址差值,以及/或者减去相邻列像素点的地址差值,得到第二地址。
[0080] 经过以上操作,可以使得二维像素块202作为一个像素点进行处理。
[0081] 步骤S103为色度读取步骤,读取色度缓存单元中第二地址对应的色度信息,将二维像素块作为一个像素点进行非精确处理。
[0082] 实际应用中,根据第二地址访问色度缓存单元并判断是否命中;若命中,则读取色度缓存单元中第二地址对应的色度信息;否则,将第二地址对应的色度信息从主存储单元加载至色度缓存单元。
[0083] 也就是说当像素块202中A11命中时,认为像素点A12、A21和A22也命中。将A12、A21和A22的色度值非精确处理为A11的色度值,这样就能将二维像素块202作为一个像素点进行非精确处理。
[0084] 最后,步骤S104为亮度读取步骤,将视频图像中各个像素点亮度信息加载至亮度缓存单元,读取亮度缓存单元中的亮度信息。将来自亮度缓存的亮度信息与来自色度缓存的色度信息合并显示得到非精确处理的视频图像。可以使色度信息的缓存缺失率降低75%,且对视频图像主要和客观质量基本无影响。
[0085] 实施例二
[0086] 图3显示了根据本实施例的视频图像高速缓存处理装置300的结构示意图。视频图像高速缓存处理装置300包括预处理单元301,地址转换单元302,色度读取单元303以及亮度读取单元304。其中,预处理单元301用于对视频图像划分为若干二维像素块,并将视频图像中各个像素点的亮度信息和色度信息分离;地址转换单元302用于将二维像素块内各个像素点的色度信息在主存储单元中的第一地址均转换为第二地址;色度读取单元303用于读取色度缓存单元中第二地址对应的色度信息,将二维像素块作为一个像素点进行非精确处理;亮度读取单元304用于将视频图像中各个像素点亮度信息加载至亮度缓存单元,读取亮度缓存单元中的亮度信息。
[0087] 具体而言,预处理单元301,地址转换单元302,色度读取单元303以及亮度读取单元304分别执行实施例一中步骤S101,步骤S102,步骤S103和步骤S104中描述的操作。从而使得视频图像高速缓存处理装置300能够充分利用了人眼对于视频图像的亮度和色度敏感程度不同的特点,对视频图像中的色度信息采用非精确处理。
[0088] 进一步而言,视频图像高速缓存处理装置300能够安装在针对视频图像处理的混合cache架构中,以降低高速缓存的缺失率,提高处理器整体性能。
[0089] 图4显示了采用视频图像高速缓存处理装置的混合片上缓存400的结构示意图。混合片上缓存400用于提供CPU和主存储单元500之间的高速缓存功能。在本示例中吗,混合片上缓存400中包括了前述视频图像高速缓存处理装置300中的各个功能单元。
[0090] 数据类型区分单元401用于将来自于CPU的视频数据和其他标准数据分开,并分别存储在主存储单元500中。标准缓存402用于为标准数据提供缓存功能。视频图像缓存403用于处理视频数据。
[0091] 视频图像缓存403中设置色度缓存4031和亮度缓存4032,分别用于对视频图像的色度信息和亮度信息提供缓存功能。视频图像缓存403中还包括预处理单元301,用于对视频图像划分为若干二维像素块,并将视频图像中各个像素点的亮度信息和色度信息分离,并存储在主存储单元500中。
[0092] 当中央处理器CPU访问主存储单元500中的色度信息时,地址转换单元302将二维像素块内各个像素点的色度信息在主存储单元500中的第一地址均转换为第二地址。具体而言,地址转换单元302执行实施例一中步骤S202中所述的操作。色度读取单元303读取色度缓存4031中第二地址对应的色度信息,将二维像素块作为一个像素点进行非精确处理。
[0093] 色度读取单元303根据第二地址访问色度缓存4031并判断是否命中;若命中,则读取色度缓存4031中第二地址对应的色度信息,实现只要像素块中的一个像素点命中时,像素块中所有像素点都命中;否则,将第二地址对应的色度信息从主存储单元500加载至色度缓存4031。
[0094] 进一步,当中央处理器CPU访问主存储单元500中的亮度信息时,亮度读取单元304将主存储单元500中各个像素点亮度信息加载至亮度缓存4032,读取亮度缓存4032中的亮度信息。
[0095] 综上所述,本实施例提供的视频图像高速缓存处理装置可以对视频图像中的色度部分进行非精确处理,针对视频图像中一个大小合适的二维像素块为基本处理单元,当该块的其中任意一个像素的色度已经存储在色度缓存中(即其中一个命中)时,就判定该块的其余像素点的色度也命中,从而能够大大减少色度高速缓存的缺失率,从而降低了整体高速缓存的缺失率。
[0096] 实施例三
[0097] 本实施例中描述采用本发明的方法对视频图像的处理结果。选取图像样本为5幅QCIF和5幅CIF图像,图像格式是4:2:0的YUV色差格式。采用本发明实施例一中的方法,其中二维像素块大小为2x2像素点,测试结果如表2所示。
[0098] 表2为非精确处理后图像的PSNR(db),图像的平均峰值信噪比(PSNR)均在35dB以上,满足人眼的要求。以QCIF图像akiyo_qcif_ch.yuv为例给出了非精确处理后的图像与原图像主观效果图,如图5a和图5b所示。
[0099] 同时为了验证该方法使用于视频处理中,选将该方法应用于H.264系统中,把非精确处理与H.264编解码结合,测试的主观效果如图6a和图6b所示,人眼的视觉效果并无明显差别。客观效果PSNR结果如图7所示。虽然有一定的降低,但是PSNR能在35.db以上,图像质量可接受,证明该方法能保证图像质量。
[0100] 表2
[0101]
[0102]
[0103] 为了验证非精确处理对缺失率的影响,采用了一个小的测试程序进行验证,程序是对一个32x32的色度图像块进行2x2块为像素块的数据读取。表3为色度的非精确处理高速缓存的访问测试结果。本示例中的非精确处理采用的基本单元是2x2的二维像素块,通过实验可以发现缺失率有75%的提升,证明本方法能大大降低视频图像缓存的缺失率。
[0104] 表3
[0105]参数 未采用非精确处理 采用非精确处理
访问次数 1024 1024
缺失次数 1024 256
缺失率 100% 25%
[0106] 综上所述,在视频图像处理中,本发明实施例提供的方法和装置能够对视频图像cache结构中的色度部分进行非精确处理,同时图像质量PSNR满足基本要求,图像质量主观基本保持不变。本发明的技术方案实现简单,能大大降低视频处理系统中cache的缺失率,有效提升视频图像处理系统的存储性能。
[0107] 虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所公开的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。