对编码纹理元素块进行操作的解码系统和方法

文档序号:6351206阅读:130来源:国知局
专利名称:对编码纹理元素块进行操作的解码系统和方法
技术领域
本发明大体上涉及解码,更具体地,涉及可对编码纹理元素块进行操作的解码系统和方法。
背景技术
当试图提高图形处理单元(GPU)的性能时,一种解决方案是应用各种技术来降低存储器带宽消耗。由于针对处理能力的性能增长率远大于针对带宽的性能增长率、以及针对随机访问存储器(RAM)的延迟,带宽降低的重要性也正日益増加。纹理压缩是降低带宽需求的ー种流行方式。通过在存储器中存储压缩形式的纹理,并在总线上传递压缩数据块,实质上减小纹理带宽。目前,使用最多的纹理压缩系统是针对基于Windows的系统和Xbox的DXTC[I]、以及针对移动手机的ETC[2]。这些系统均将图像、解码纹理划分为4X4纹素的纹理元素(纹·素)块,然后将纹素的红、緑、蓝(RGB)数据从(8+8+8) X 16 = 384比特压缩到64比持。因而,向每个纹素块赋予相同数量的比持。这很重要,因为用于解压的光栅化会需要访问纹理的任意部分,并需要能够容易地计算期望纹素块的存储器地址。換言之,非常期望固定速率的编解码(即,每个纹素块占据相同存储空间量的编解码),这是当前纹理压缩算法中的典范。ETC解码器的开发产生了所谓ETC2解码器[3],它具有处理所谓T模式、H模式和PLANAR模式的额外功能。T模式和H模式分别被设计为处理具有非均匀分布顔色的纹素块、以及被分为两组的顔色。可以很大程度地再用ETC解码器的硬件电路,以包括另外的T模式和H模式。PLANAR模式与ETC和T模式和H模式非常不同,并且被设计为处理具有平滑颜色变换的纹素块。PLANAR模式的复杂硬件电路将意味着,ETC2解码器的复杂度与ETC解码器相比显著增加。因此,需要提供PLANAR模式的有效实施方式,具体地,这种实施方式可以被提供为使用成本有效电路的硬件实施方式。尤其在PLANAR模式要与ETC解码器和T模式和H模式一起使用以形成ETC2解码器的情况下,特别期望这种成本有效电路本领域中通常也会出现类似的问题,S卩,存在对为了降低实施方式复杂度而应用于解码系统的技术的一般性需求。

发明内容
本发明的总体目的是提供对编码纹理块的有效解码。本发明的特定目的是提供一种可以有效地以硬件实现的解码结构。通过这里所公开的实施例来实现这些和其他目的。简言之,本发明的实施例涉及ー种用于基于至少一个编码纹素块来产生解码像素的解码系统。所述解码系统包括N个并行解码器,每个并行解码器被配置为对编码纹素块进行解码,以产生ー个或多个纹素值。根据该实施例,N个解码器的电路彼此不同,从而N个解码器中的每个解码器具有与其他N-I个解码器的电路不同的独特电路。这使得解码器电路能够具有不同的复杂度级别,因为解码器在所处理的纹素块内的纹素位置方面具有不同能力。所述解码器系统还包括与N个解码器连接的值选择器,并被配置为选择性地输出N个纹素值。进ー步,从N个解码器中的一个或多个解码器输出这N个纹素值。特定纹素值从哪个(哪些)解码器输出取决于具有N个纹素值的N个纹素的片的位置,所述位置与包括N个纹素中的至少ー个的纹素块相关。换言之,纹理的N个纹素相关纹素块边界的位置指示通过值选择器选择并被进ー步转发到像素计算器的解码器输出。像素计算器被配置为基于值选择器选择性输出的N个纹素值来计算解码像素值。值选择器的仔细选择实现了所述解码器的设计,使得N个解码器中的至少ー些与其他解码器相比可以具有不太复杂的电路。这可以通过将ー些解码器限制为仅能够对纹素块内特定纹素位置的纹素值进行解码和输出来实现。因而,N个解码器不需要具有相同的电路,而是需要在每个电路的硬件结构方面具有不同复杂度级别的不同电路。 本发明的实施例定义了一种用于通过对至少ー个编码纹素块进行解码来产生像素的方法。所述方法包括从N个不同解码器中的至少ー个选择性地输出N个纹素值,每个解码器具有独特且与其他N-I个解码器的电路不同的电路。每个解码器还基于输入的编码纹素块来输出至少ー个纹素值。基干与N个纹素值相关联的N个纹素的位置来执行从N个解码器对纹素值的选择,以用于计算像素的像素值来解码,N个纹素值的位置与纹素块的边界相关。然后,使用所选的N个纹素值来计算像素值。本发明的实施例能够通过降低并行至少ー些解码器所需的复杂度来有效地实现像素解码结构。从而,与现有技术中的具有N个相同的并行解码器相比,降低了解码结构的总見杂度。


可以通过结合附图来參照以下具体描述来最佳地理解本发明及其其他目的和优点,其中图IA至ID示出了双线性片相关纹素块边界的不同位置;图2是包括根据实施例的解码系统的解码设置的示意图;图3是根据实施例的解码系统的图示; 图4示意性地示出根据实施例的解码纹素块;图5示出了采用纹素块中纹素特性的平面逼近的概念;图6是图3中第四解码器的硬件实施方式示例;图7是图3中第三解码器的硬件实施方式示例;图8是图3中第二解码器的硬件实施方式示例;图9是图3中第一解码器的硬件实施方式示例;图10是七到八比特扩展器的硬件实施方式示例;图11是箝位器的ー种硬件实施方式;图12是箝位器的另ー种硬件实施方式;图13是图3的值选择器的硬件实施方式示例;以及
图14是示出了根据本发明实施例的解码方法的流程图。
具体实施例方式
在全部附图中,相同的參考数字用于表示类似或对应的元件。实施例大体涉及以产生解码像素值为目的的编码或压缩纹理元素(纹素)块的解码或解压。解码非常适于与三维(3D)图形一起使用,如,游戏、3D地图和场景、3D消息(例如,动画消息)、屏幕保护、人机接ロ(MMI)等,但不限于此。因此,实施例也可以用于对其他 类型的图像或图形进行解码,如,ー维(ID)、ニ维(2D)或3D图像。3D图形呈现过程典型包括三个子阶段。简言之,第一阶段(应用阶段),创建多个三角形。在第二阶段(几何阶段),将这些三角形的角变形、投影并点亮。在第三阶段(光栅化阶段),通常表示纹理的图像可以被“粘”在三角形上,増加了所呈现的图像的真实性。第三阶段还使用z缓冲器执行分类。然而,纹理(尤其是3D图像和图形)的呈现在图形系统所需的存储器带宽和处理能力方面是计算上昂贵的任务。例如,纹理在存储器方面(纹理必须被放置在快速芯片上存储器上)和存储器带宽方面(纹理可以被多次访问以绘出单个像素)都是昂贵的。有吋,为了绘出像素,可能需要多个纹理。为了降低带宽和处理能力需求,典型地采用纹理编码方法或系统。这种编码系统应导致在呈现期间昂贵芯片上存储器的更有效使用和较低存储器带宽,因而导致较低功耗和/或较快呈现。带宽和处理能力需求对于诸如移动单元和电话之类的具有小存储量、小存储带宽和有限能量(即,电池供电)的瘦客户端来说尤其重要。在本领域,纹理被分为所谓纹素块,每个纹素块包括多个纹素。这种纹素块典型为矩形或方形,如MKXM。纹素大小,其中Μκ、M。是不同时为I的正整数。优选地,Mk = 2mK及Mc = 2m。,其中ηικ、ηι。是正整数。在典型的实施方式中Mk = Μ。,优选块实施例可以是4X4纹素。在本领域,有时采用像素或图像元素来表示纹理的纹理元素。但是在以下描述中,采用纹素来表示纹理的纹理元素,像素用于表示结合光栅化,根据这样的纹素产生的画面元素。纹素与纹素值相关联,像素与像素值相关联。有利地,纹素和像素值可以是颜色值。颜色值可以以各种颜色格式表示,如红、緑、蓝(RGB)顔色或如亮度和色度。此外,纹素值可以表示纹素的其他特性,如标准值或Z值。在以下描述中,以颜色值作为纹素值的非限制性示例。典型的光栅化并不以每次单个纹素的方式访问纹理。而是采用小的相邻纹素,如2X2纹素。例如,在双线性过滤期间,读取四个这种相邻纹素,以产生双线性过滤值,即,像素值。在本领域,这种被协同处理以产生像素值的相邻纹素组典型被表示为片。因而,在双线性过滤中使用的2 X 2纹素组被表示为双线性片。例如,该概念可以被进一步扩展为三线性过滤。三线性过滤使用来自两个不同mipmap的两个双线性片。处理纹素的片所产生的问题在于,片中的纹素可以跨越多于ー个纹素块。这在图IA到ID中示意性示出。图IA示出了在单个纹素块10中找到四个纹素30-36的双线性片20的情況。图IB和IC示出了另ー情况,其中双线性片20跨越并排(图1B)出现或上下(图1C)出现的两个像素块10、12、14。图ID中描述了极端情况,其中双线性片20的ー个纹素30-36在相应的纹素块10-16中。解决该问题的传统方式是使用四个相同的解码器,每个解码器对双线性片中的预定纹素进行解码。例如,在图IA的情况下,将表示纹素块10的编码纹素块输入四个解码器。第一解码器输出纹素(1,2)30,纹素(2,2)从第二解码器中获得,第三和第四解码器分别产生双线性片的纹素(1,3)和(2,3)36。假设如下坐标系统,其中原点在纹素块10的左上纹素中。在图ID中,将纹素块10的编码纹素块输入第一解码器,以产生纹素(3,3) 10,通过第ニ解码器对纹素块12的编码纹素块进行处理,以得到纹素(0,3)32。基于纹素块14的编码纹素块,从第三解码器获得纹素(3,0)34,第四解码器从纹素块16的编码纹素块输出纹素(0,0)36。以这种方式,因而可以在每个时钟周期产生2X2双线性片,而不考虑所遇到的配 置的类型(图1A-1D)。高性能光栅化硬件在每个时钟周期生成两个这种双线性片。然而根据现有技术,在这种情况下需要八个相同的解码器。然而,在并行解码器中协同处理纹素的概念极大地増加了解码系统的复杂度,这针对瘦客户端是个问题。例如,向ETC解码系统添加先前提及的PLANAR模式将会导致由加法器(每个解码器从6个加法器増加到21个加法器[3])定义的复杂度増加。因此,PLANAR使用比ETC多3. 5个的加法器,具有四个ETC解码器和四个PLANAR解码器的解码系统的复杂度将会随3. 5増加。这里所公开的实施例通过不使用相同的并行解码器来降低解码系统的复杂度。截然相反,如果解码器被设计为处理片中不同数量的纹素和不同的纹素位置,则不同的解码器电路可以用于解码器。在一般性实施例中,解码系统包括N个不同的解码器。这种解码系统在图3中示出,N的示例为4。在该一般性实施例中,N是等于或大于2的整数,优选等于4。每个解码器100、200、300、400具有与其他N-I个解码器的电路不同的电路。因此,解码系统I不包括现有技术中的相同解码器,而是包括具有不同的独特电路的不同解码器100、200、300、400。N个解码器100、200、300、400的电路中的不同意味着,解码器之一的电路元件的组合不同于其他解码器中电路元件的组合。因此,解码器100、200、300、400具有不同的实施方式成本和复杂度。每个解码器100、200、300、400还被配置为对编码纹素块进行解码,以产生至少ー个纹素值。解码系统I还包括与N个解码器100、200、300、400连接的值选择器500,并被配置为选择性地输出至少N个纹素值,优选N个纹素值。这至少N个纹素值从N个解码器100、200、300、400中的至少ー个输出。因此,值选择器500基于与至少N个纹素值相关联的至少N个纹素的位置,选择应输出哪些(至少N个)纹素值,以及应从哪个(哪些)解码器中输出这至少N个纹素值,其中至少N个纹素值与包括N个纹素中的至少ー个的纹素块的边界相关。因此,与纹素块相关的N个纹素的位置(其纹素值应当通过解码系统I产生)确定应从N个解码器100、200、300、400中的哪个解码器或哪些解码器中获取纹素值。解码系统I的像素计算器600与值选择器500连接,并被配置为基于通过值选择器500选择性输出的至少N个纹素值来计算解码像素的解码像素值。
一般性实施例通过将解码器中的一些限制为仅能够处理纹素块内特定纹素位置处的纹素来实现解码器100、200、300、400的复杂度降低。因此,与在解码器上不具有这种限制的现有技术情况相比,可以显著减少这些解码器100、200、300、400的电路。在优选实施例中,N个解码器100、200、300、400的第一解码器100被配置为对输入编码纹素块进行解码,以产生N个纹素值。然后,值选择器500被配置为如果N个纹素值位于纹素块的边界内,则从第一解码器100输出这N个纹素值,并进一步输出到像素计算器500。图IA示出了 N = 4的这种情況。因此,如果双线性片20的四个纹素30-36全部位于单个纹素块10内,则通过第一解码器100产生全部四个纹素值。这意味着,值选择器500不选择来自其他解码器200、300、400的输出,像素计算器600也不使用来自其他解码器200、300、400的输出来计算解码像素值。如果N个纹素中的一半30、34(30,32)位于纹素块10的边界内,N个纹素中的另一半32、36(34,36)位于相邻像素块12(14)的边界内(见图IB(图1C)),则值选择器500优选被配置为从第一解码器100选择性地输出N个纹素值中的一半,从第二解码器200输出N个纹素值中的另一半。 在N = 4的优选实施例中,第一解码器100具有第一电路,被配置为对输入编码纹素块进行解码,以产生四个纹素值。第二解码器200具有第二电路,并基于输入编码纹素块来输出两个纹素值。第三解码器300和第四解码器400分别包括第三电路和第四电路。给定输入编码纹素块,第三解码器300和第四解码器400各输出单个纹素值。在图ID所示的情况下,全部优选四个解码器100、200、300、400输出通过值选择器500选择的纹素值。因此,然后值选择器500被配置为从第一解码器100选择性地输出第ー纹素值,从第二解码器200选择性地输出第二纹素值,从第三解码器300选择性地输出第三纹素值,以及最后从第四解码器400选择性地输出第四纹素值。在这种情况下,四个纹素30-36中的每ー个位于各个纹素块10-16中。图2示意性地示出了具有根据实施例的解码系统I的实施方式的结构。该结构包括具有包括编码纹素块40的存储器位置的存储器5,典型为RAM。图形处理单元(GPU) 4通过存储器总线与存储器5连接。GPU 4包括用于标识纹素块的纹素块标识器2,应从存储器5中获取纹素块的编码块40。纹素块标识器2基本上计算编码纹素块40在存储器5中的地址,并通过总线向存储器5发送存储器访问请求。从存储器5中读取在分配给或专用于纹素块的存储器位置上出现的编码纹素块40,并通过总线传递给解码系统I或GPU 4的高速缓存器3。解码系统I包括或连接至少ー个高速缓存器3,该高速缓存器3具有用于存储解码纹素块或解码纹素值的高速缓存位置或区域。在可选实施例中,GPU 4可以包括多个高速缓存器3,如纹理高速缓存器和顔色缓冲高速缓存器。GPU 4典型地与在其上显示解码图像的显示器屏幕6连接。例如,可以在图形卡、视频卡或主板的一个或多个芯片中提供GPU4及其所包括的单元1、2、3。可以在包括例如计算机、游戏控制台、如移动电话或媒体处理设备之类的便携式设备的任何图像或纹理处理单元或设备中实现图2的实施方式的结构。以下,将结合不同的实施方式示例,更加详细地描述解码系统的实施例。这些示例还被设计为适于处理根据[3],[4]中描述的PLANAR编码的纹素块。简言之,PLANAR被设计为以平滑改变的色度来处理纹素块。PLANAR利用平面逼近来逼近纹素块中的顔色分量(红、绿、蓝)。为了指定平面,指定纹素块中三个位置中的顔色便足够。图5以与纹素块10相关的特定位置处的三个红色分量RO、Rh和Rv示出了该概念。利用三个红色分量的定位,使用下式,可以计算在纹素块10中任何地方的红色分量。
Γ II、Λ(χ,.V) = round R0 +-(Rh - )^ +j(rv _Ro).v以与红色分量相同的方式计算蓝色和緑色分量。因此,图4所示的编码纹素块40包括每个颜色分量三个颜色码字41-49,即,X0,Xh和Xv,其中X针对红色分量为R,针对绿色分量为G,以及针对蓝色分量为B。在优选实施方式中,优选在红色码字41-43和蓝色码字 47-49中的每ー个码字上花费六个比持,以及针对绿色码字44-46中的每ー个花费七个比特,因为人眼对绿色分量比对红色和蓝色分量更加敏感。编码纹素块的总大小将会是57比特,恰好适合ETC2[3]的57比特模式。如果单独使用PLANAR,且并不用作ETC的特定模式,则有利地,编码纹素块40针对颜色码字41-47中除ー个颜色码字(如八个比特的Gtl)之外的全部颜色码字花费七个比持。则,总大小是64比持。在PLANAR实施方式中,图3的第一解码器100可以对任何2X2双线性片进行解码,该双线性片在纹素块内具有全部四个纹素,參见图1A。第二解码器200不太高级,产生针对纹素块的第一行或第一列的纹素的纹素值,參见图IB中的纹素32、36和图IC中的纹素34、36。第二解码器200因而优选一次输出两个纹素值,2X1片或1X2片。第三解码器300对编码纹素块进行解码,以产生单个纹素值,优选为坐标(3,O)处的右上纹素值,參见图ID中的纹素34。第四解码器400还优选示出原点纹素(0,0)的单个纹素值,參见图ID中的纹素36。这意味着,如果如图IA所示,双线性片20的全部纹素30-36在纹素块10的边界内,则通过值选择器500选择来自第一解码器100的输出。如果如图IB和IC中所示,两个纹素30、34(30,32)在ー个纹素块10中,以及两个32、36 (34,36)在相邻纹素块12(14)中,则从第一解码器100获得左两个纹素30、34或上两个纹素30、32的纹素值,以及两个右纹素32、36或下纹素34、36的纹素值来自第二解码器200。最后,如果如图ID所示,全部四个纹素30-36在不同的纹素块10-16中,则值选择器500从第一解码器100选择左上纹素30的纹素值、从第二解码器200选择右上纹素32的纹素值、从第三解码器300选择右下纹素34的纹素值、以及从第四解码器400选择左下纹素36的纹素值。这样,可以在单个时钟周期中获得双线性片20的全部四个纹素30-36,其优点在于,可以使用非常少的硬件实现第ニ至第四解码器200、300、400。根据等式T(x,.v)= ro ;K^Yf, +去(Λ& -Xn)x + i-(AV -X0).vj,原点(0,0)中的纹素对于
计算X(0,0) = ro <XQ +j(XH-X0)o + i(AV -X0)oj =み丨来说尤其简単。如上所述,第四解码器
优选被配置为仅对原点处的纹素进行解码。这意味着,第四解码器的电路可以非常简单。图6示出了针对颜色分量之一的第四解码器400的电路。如图6所示,独特的结构是可选但优选的扩展器480,它被配置为将输入第一颜色码字Xtj扩展为定义的比特长度,优选为8个比持。如在此结合图10进ー步公开的,这种扩展器480的实现可以没有任何硬件结构、而仅使用线,各个颜色分量可以存储在线中到达第四解码器400输出。因此,可以在没有任何门的情况下实现第四解码器400。根据以上的讨论,第三解码器300优选处理位置(3,0)处的纹素X(3,0) =謂,ベΛ-〔丨-X0)x3 + ^-(Xr -X0)xoj。最后ー项并不起作用,可以删除。为了删除
round O运算器,可以在(1/4)单元中计算结构,加上2并向右移位2次,由>> 2指示X(3,0) = ((X0 << 2) + (Xh-X0) X3+2) >>2。可以通过向一数字加上其自身的移位版本来代替与3相乘3t = 2t+t = (tくく l)+t 其中 t = XH-X。。因而该等式被写作 X(3,O) = ((X0 << 2) + (t << l)+t+2) >> 2。在每个加法器中,可以通过设置进位=I而非O来加I。因此,可以通过这样改变两个加法器来替换加上2。在下式中,+ !用于指示进位被设置为I的加法器X(3,0) = ((X0 < < 2)+ ! (t < < I)+ ! t) > > 2。不同地表示为
Λ (3,θ) = roimd^A 0 + — (-I h -X0)x3 + —(.\r -X0)xoj = round\ 了 Λπ+了Λ 灯 |。与以上类似,该等式可以被写作X(3,0) = (X0+ ! ((Xh << I)+ ! Xh)) >> 2。与以上表达相比,该表达更易于在硬件中实现。可以通过不同地连接线来实现移位运算。计算Χ(3,0)仅需的剰余运算是三个加法。图7示出了第三解码器300的电路的实施例。第三解码器300包括左移位运算器310,用于将第二颜色码字Xh向左移位ー比特位置,以获得左移位的比特序列。左移位运算器310与进位被设置为I的第一加法器320。该第一加法器320将左移位比特序列与第二颜色码字Xh相加。将所产生的输出与第二加法器322中的第一颜色码字Xtj相加,第二加法器322的进位被设置为I,并与第一加法器320连接。最后,第二加法器322与右移位运算器330连接,右移位运算器330被配置为将与第二加法器322的输出相对应的比特序列向右移位,以形成第三解码器300的最终输出,即纹素值X(3,O)。在可选但优选的实施例中,第一颜色码字\和第二颜色码字Xh优选为第一扩展的,或者从六个比特或七个比特扩展到八个比特。結果,第一扩展器380优选被设置为与第ニ加法器322连接,并被配置为将第一颜色码字\扩展到预定义比特大小,优选为8个比持。第二扩展器382优选被设置为与左移位运算器310和第一加法器320连接,并被配置为将第二颜色码字Xh扩展为预定义比特大小,即,优选为8个比持。可以通过简单的连线来实现扩展器,从而将I比特序列中的k个最高有效比特(k< D复制到k个最低有效比持,以得到Ι+k比特序列。图10是适于绿色颜色分量的第一和第_■扩展器380、382的实施方式的不意图。如图10所不,输入7比特序列中的最闻有效比特被复制到最低有效比特位置,以得到输出8比特序列。针对红色和蓝色分量,两个最高有效比特被复制到两个最低有效比特位置,以从6比特序列变为8比特序列。利用编码纹素块先前提及的比特大小(即,针对红色和蓝色分量为每个码字六个比持,以及针对绿色分量为每个码字七个比特),并使用两个扩展器,如果每个加法器每比 特需要4. 4个门,则可以利用总共250. 8个门实现第三解码器300的硬件电路
R/G/B I 个 9 比特加法器一9 X 4. 4 = 39. 6 个门I个10比特加法器一10X4. 4 = 44个门总共3X83.6 = 250. 8 个门如第一和第二解码器的优选实施方式,针对第三解码器300不需要箝位器,这将在此进ー步讨论。图8示出了第二解码器200的硬件实施方式的实施例。第二解码器200包括第一多路复用器250,被配置为输出第二颜色码字Xh和第三颜色码字Xv之一。颜色码字的选择取决于四个纹素中的一半是位于纹素块边界内的第一行还是第一列,其编码纹素块被输入第二解码器200。如果两个像素位于第一行,则从第一多路复用器250输出第二颜色码字XH,否则输出第三码字Xv。非运算器240被配置为对第一颜色码字Xtj求逻辑非。第一加法器220与第一多路复用器250和非运算器240连接,并加上来自这些单元240、250的输出以形成差Xh-L或Xv-Xm在可选实施方式中,用非运算器替换非运算器240,第一加法器 220是进位被设置为I的加法器。非运算器和进位被设置为I的加法器的使用在硬件复杂度方面通常优于非运算器与常规加法器的使用。左移位运算器210与第一加法器220连接,并被配置为将与加法器输出相对应的比特序列向左移位一个比特位置。第二多路复用器252被配置为输出纹素的行坐标和列坐标之一。该纹素是在纹素块中出现的两个纹素中的第一纹素,其编码纹素块被输入第二解码器200。在图中,Sx表示该纹素的列坐标,以及Sy表示该纹素的行坐标。如果两个纹素位于第一行,则从第二多路复用器252输出列坐标Sx,否则输出行坐标SY。第三多路复用器254与左移位运算器210和第一加法器220连接。第三多路复用器254在2X (Xh7v-X0) = 2d( S卩,左移位运算器210的输出)和(XH/V-XQ) = d(即,第一加法器220的输出)之间进行选择。基于从第二多路复用器252输出的行或列坐标的最高有效比特值来做出该选择。或运算器360与第二多路复用器352连接,并被配置为针对来自第二多路复用器352的行或列坐标的最高有效比特和最低有效比特执行“或”运算。或运算器360和第三多路复用器254进ー步与与运算器270连接。与运算器270逐比特地执行多路复用器的输出与来自或运算器360的单个比特的与运算。其结果为,如果或输出为I ニ进制,则保存多路复用器输出,如果或输出为O ニ进制,则来自与运算器270的输出为O。这里,来自与运算器270的输出为2d、d或O。第二加法器222与与运算器270连接,并被配置为将与运算器270的输出与以10ニ作为第一颜色码字Xtj之后的最低两个有效比特的比特序列相加。该比特序列对应于f=4XXJ2,这可以通过将第一颜色码字\的比特序列向左移位两个比特位置、并插入2 =10ニ作为最后两个比特来实现,否则在移位之后为O。因此,来自第二加法器222的输出是 2d+f、d+f 或 f。第三加法器222与第一加法器220和第二加法器222连接,并被配置为将来自这些加法器220、222的输出相加。因而,该第三加法器224给出了结果3d+f、2d+f或d+f。第一右移位运算器230与第三加法器224连接,并被配置为将来自第三加法器224的比特序列右移位两个比特位置,以得到双线性片中第一列或第一行中两个纹素的下或右纹素的纹素值。第二右移位运算器232与第二加法器222连接,并将加法器输出向右移位两个比特位置,以形成第一列或第一行中两个左纹素或两个上纹素的纹素值。与图7中的第三解码器相类似,优选将输入颜色码字X。、XH、Xv从六个比特或七个比特扩展到八个比持。因而,可选但优选地,将扩展器280、282、284设置在输入端,从而将第一扩展器280配置为在作为最低有效比特加上10ニ_(以形成10比特序列之前,扩展第一颜色码字ん。第一扩展器280也与非运算器240连接。第二扩展器282和第三扩展器284与第一多路复用器250连接,井分别扩展第二颜色码字Xh和第三颜色码字Xv。在可选实施方式中,优选将右移位运算器230、232与相应的箝位器或箝位运算器290、292连接。这些箝位器290、292被配置为将来自右移位运算器230、232的输出箝位于最小纹素值与最大纹素值之间。因此,箝位器290、292确保来自第二解码器200的输出比特序列在所允许的值间隔内。如果来自第二解码器200的输出序列应具有8比持,则这种所允许的值间隔的示例是从O到255。
图11示出了在例如图8的第二解码器和图9的第一解码器中采用的箝位器190至196、290、292的硬件实现的示例。该箝位器实施例被设计为将可能表示在[-1024,1023]区间中的值的11比特序列箝位为表示在
区间中的值的8比特序列。箝位器190至196、290、292包括8个或运算器701至708,它们各自接收输入比特序列的8个最低有效位之一。将或运算器701-708的另ー相应输入连接到另ー或运算器700的输出。该或运算器700接收输入比特序列的两个最高有效位。将八个或运算器701-708的输出各自连接到相应的与运算器711至718。与运算器711至718的另ー相应输入接收输入比特序列的符号比特。在图12中示出了箝位器190至196、290、292的备选实现实施例。在该实施例中,用8个或非运算器721至724来替换8个或运算器。对应地,还用8个或非运算器731至738来替换图11的8个与运算器。此外,在8个或非运算器731至738和用于输入比特序列的符号比特的输入之间连接非运算器740。用于实现图12所示的硬件实施例的成本是16个或非门一16X1 = 16个门I 个或门一1X1. 5 = I. 5 个门I 个非门一1X0. 5 = O. 5 个门总共16+1.5+0. 5 = 18 个门
图8中第二解码器200的实现示例的门的数目(除了箝位器之外)是R/G/B : I 个 8-比特加法器一8 X 4. 4 = 35. 2 个门I个11-比特加法器一11X4. 4 = 48. 4个门I个12-比特加法器一12X4. 4 = 52. 8个门I个8-比特多路复用器一8X2. 2 = 17.6个门I个10-比特多路复用器一10X2. 2 = 22个门I个2-比特多路复用器一2X2. 2 = 4.4个门I个I-比特或门一1X1. 5 = I. 5个门I个10-比特与门一10X1. 5 = 15个门I个8-比特非门一8X0. 5 = 4个门
总共3Χ200·9 = 602. 7 个门最后,图9是第一解码器100的硬件实现的示例。第一解码器100包括被配置为将第一颜色码字\求逻辑非的非运算器140。第一加法器120连接到非运算器140,并将逻辑非第一颜色码字与第二颜色码字Xh相加以获得g = Xh-Xm第二加法器122也连接到非运算器140,并将逻辑非第一颜色码字与第三颜色码字Xv相加以获得h = Xv-Xm在备选实现中,用非运算器(NOT operator)来替换非运算器(negation operator) 140。然后,第一加法器120和第二加法器122的进位都设置为I。第一左移位运算器110连接到第一加法器120,并将加法器输出向左移位ー个比特位置,获得与2g相对应的左移比特序列。第二左移位运算器112连接到第二加法器122,并将加法器输出向左移位一个比特位置,获得2h的比特序列。第一多路复用器150连接到第一左移位运算器110和第一加法器120,且被配置为基于列坐标Sx的最高有效位在g和2g之间选择。第二多路复用器152对应连接到第二左移位运算器112和第二加法器122, 且基于行坐标Sy的最高有效位在h和2h之间选择。列坐标和行坐标是在2X 2双线性片的左上纹素的坐标,即图IA至ID中的纹素30。第一或运算器160对列坐标Sx的最高有效位和最低有效位执行或运算。第二或运算器162对行坐标Sy的最高有效位和最低有效位执行或运算。第一或运算器160和第一多路复用器150连接到第一与运算器170,第一与运算器170对多路复用器输出以及来自第一或运算器160的単一比特执行逐比特与运算。因此来自第一与运算器170的输出是2g、g或O。第二与运算器172对多路复用器输出以及来自第二或运算器162的比特执行逐比特与运算,以获得输出2h、h或O。第三加法器124连接到第一与运算器124,并将加法器的输出与以10 ニ进制作为所述第一颜色码字之后的两个最低有效比特的比特序列相加。该比特序列对应于(如之前已经描述的)f = 4Xq+2。因此,加法器输出是2g+f、g+f或f。第四加法器126连接到第一加法器120和第三加法器124,且被配置为将来自这些加法器120、124的输出相加,以获得3g+f、2g+f或g+f。第五加法器128连接到第二加法器122和第二与运算器172,并将来自这两个单元122、172的输出相加,以获得3h、2h或h。第六加法器121连接到第三加法器124和第二与运算器172,并被配置为将来自这些单元124、172的输出相加。第一右移位运算器130连接到第六加法器121,并被配置为将加法器输出的比特序列向右移位两个比特位置,以获得图IA中纹素30的纹素值。第七加法器123连接到第四加法器126和第二与运算器172,并被配置为将来自这些单元126、172的输出相加。第二右移位运算器132连接到第七加法器123,并被配置为将加法器输出的比特序列向右移位两个比特位置,以获得图IA中纹素32的纹素值。第八加法器125连接到第三加法器124和第五加法器128,并被配置为将来自这些加法器124、128的输出相加。第三右移位运算器134连接到第八加法器125,并被配置为将加法器输出的比特序列向右移位两个比特位置,以获得图IA中纹素34的纹素值。第九加法器127连接到第四加法器126和第五加法器128,并被配置为将来自这些加法器126、128的输出相加。第四右移位运算器136连接到第四加法器127,并被配置为将加法器输出的比特序列向右移位两个比特位置,以获得图IA中纹素36的纹素值。在可选的(但优选的)实现中,将输入颜色码字Χ()、Xh> Xv首先从6或7个比特扩展或扩张为8个比持。因此,第一比特扩展器180优选地被设置为连接到否定运算器140,且还被配置为在作为最低有效位加上10 ニ以获得10比特序列之前,将第一颜色码字X。扩展或扩充为预定义的比特序列(优选地,8个比特)。第二扩展器182对应地被设置为连接到第一加法器120,并被配置为扩展第二颜色码字XH。最后,第三扩展器184连接到第二加法器122,并被配置为扩展第三颜色码字Xv。在可选实现中,每个右移位运算器130至136优选地连接到相应的箝位器或箝位运算器190至196。这些箝位器190至196被配置为将来自右移位运算器130至136的输出箝位为在最小纹素值和最大纹素值之间。因此,箝位器190至196确保来自第一解码器100的输出比特序列在允许的值区间中。如果来自第一解码器100的输出序列应当具有8个比持,则这种允许的值区间的示例是从O至255。不包括可选箝位器190至196在内的图8的实现示例的门的数目是R/G/B :2 个 8-比特加法器一16X4. 4 = 70. 4 个门
I个10-比特加法器一10X4. 4 = 44个门I个11-比特加法器一11X4. 4 = 48. 4个门5个12-比特加法器一60X4.4 = 264个门2个10-比特多路复用器一20X2. 2 = 44个门2个I-比特或门一2X1. 5 = 3个门2个10-比特与门一20X 1. 5 = 30个门I个8-比特非门一8X0. 5 = 4个门总共3Χ507·8 = 1523. 4 个门因此,除了箝位器之外,可以仅使用0+250. 8+602. 7+1523. 4 = 2376. 9个门来实现
解码系统的4个解码器。如在现有技术[3]中建议的具有4个解码器的传统实现将看起来非常像图9中的第一解码器。唯一的区别将是在输出中将仅需要I个纹素,而不是如图中所示的4个。因此,4个加法器121、123、125、127将由加法器之后的2个四路多路复用器来替代。这样,需要针对每个颜色通道的6个加法器、4个多路复用器以及2个与运算器。这意味着在4个解码器和3种不同顔色分量的情况下,根据现有技术的硬件成本或复杂度将是6X3X4 = 72 个加法器4X3X4 = 48个多路复用器2X3X4 = 24个与运算器将其与图6至8中所公开的实现实施例进行比较,本公开的实现实施例需要(9+3+2+0) X 3 = 42 个加法器(2+3+0+0) X3 = 15 个多路复用器
(2+1+0+0) X 3 = 9 个与运算器因此,将加法器的数目从72个减少到42个,即减少了 42%。相对而言,将多路复用器从48个降低至IJ 15个,即降低69%。图13示出了值选择器500的硬件实现的实施例。在该实施例中,值选择器500包括4个多路复用器510,每个多路复用器510输出双线性片的纹素30至36的纹素值。第一多路复用器510连接到第一解码器100的4个输出,并选择4个比特序列之一作为双线性片中第一纹素30的纹素值。第二多路复用器520连接到第一解码器100的第二和第四输出以及第二解码器200的2个输出。该第二多路复用器520输出双线性片中第二纹素32的纹素值。第三多路复用器530连接到第一解码器100的第三和第四输出、第二解码器200的第一输出以及第三解码器300的单ー输出。第三多路复用器530输出双线性片中第三纹素34的纹素值。最后,第四多路复用器540连接到第一解码器100的第四输出、第二解码器200的第二输出、以及第四解码器400的单ー输出。该第四多路复用器540选择并输出双线性片中第四纹素36的纹素值。双线性片相对于纹素块边界的位置指定了从多路复用器510至540中输出哪个(哪些)比特序列。从而,在图IA所示的情况中,通过多路复用器510至540来选择来自第一解码器100的4个输出的比特序列。更具体地,第一多路复用器510输出来自第一解码器100的第一输出的比特序列,第二多路复用器520输出来自第二输出的比特序列,且第三多路复用器530和第四多路复用器540分别输出来自第三解码器输出和第四解码器输出的比特序列。如图IB所示的双线性片暗示了第一多路复用器510选择第一解码器100的第 ニ输出的比特序列。第二多路复用器520选择第二解码器200的第一输出的比特序列。第三解码器300选择来自第一解码器100的第四输出的比特序列且第四解码器400选择来自第二解码器200的第二输出的比特序列。然后可以用类似方式将该概念应用于图IC和ID所示的2种其他片位置。实现如图13所示的值选择器500的实施例的成本(门数目)是3个8-比特4-路多路复用器一24X6.6 = 158. 4个门I个8-比特3-路多路复用器一8X4. 4 = 35.2个门总共158.4+35. 2 = 193. 6 个门包括箝位器在内的解码器和值选择器的总成本是2376. 9+6X 18+193. 6 = 2678. 5个门。如果省略如图8和9中所示的第一和第二解码器的箝位器,并取而代之地用4个箝位器来替换,每个箝位器连接到值选择器500的多路复用器510至540之一,则由于需要3个11比特4路多路复用器和I个11比特3路多路复用器而导致成本为266. 2个门,而不是193. 6个门,则实现值选择器500的成本将增加。可以根据本领域中众所周知的技术以硬件方式实现解码系统的像素计算器。更具体地,假定在双线性滤波的情况下,用A、B、C和D来表示来自值选择器的4个纹素值。贝1J,像素计算器如下计算像素值像素值=A(l_dx)(1-dy) +Bdx (l~dy) +C(l~dx) dy+Ddxdy其中,dx是在纹素A的中点和像素的采样点之间在X轴上的距离,且dy是在纹素A的中点和该像素的采样点之间在y轴上的距离。针对红、绿和蓝颜色分量,并行执行上述公式。则可以基于该公式来定义硬件实现。例如,假定可以用3个ニ进制小数来表达采样点的位置,例如可以假定dx位置是如下值[O. 000,O. 125,O. 250,O. 375,O. 500,O. 625,O. 750,O. 875]。在该情况下,可以将位置定义为8的倍数,使得可以用
来表示这些值。则可以将上述公式重写为像素值=(A(8-DX)(8-DY)+BDX(8-DY)+C(8-DX)DY+DDXDY) > > 6 其中,DX =8Xdx且DY = 8Xdy,且DX、DY是在O和7之间的整数。
调查第二项8DX (8-DY),本领域技术人员意识到DX和(8-DY)都是在O和8之间的整数。为了表示8,需要4个比持。可以使用处理每个输入中的4个比特并输出8比特序列的乘法运算器。然而,乘法运算器可以输出的最大数目是7X8 = 56,使得仅需要来自输出的6个最低有效位。应当将来自乘法运算器的输出乘以纹素值B,优选地,在O和255之间的数。该乘法可以由乘法运算器来处理,该乘法运算器获取2个8比特输入,并输出16比特的比特序列。然而,由于最大可能数目是56 X 255 < 214,因此,仅需要来自乘法运算器的14个最低有效位。然后,针对公式中的其他项来执行对应实现,且将来自相应最终乘法运算器的输出相加,并向右移位6次,以获得最終的8比特像素值。应当将上述实现示例仅视为可以如何用硬件方式来实现解码系统的単元的优选 (但是非限制性)的实施例。其各种变型是可能的,且在本发明的范围中。然而重要的特征是包括解码器的电路在増加复杂度的方面是不同,以及每个解码器被配置为处理并输出在片中预定位置处的ー个或多个纹素的纹素值。图14是示出了通过对至少ー个编码纹素块进行解码来产生解码像素的方法的流程图。该方法开始于步骤SI,其中,确定至少N个纹素值(即片)相对于纹素块边界的位置。根据所确定的相对片位置,将相应的编码纹素块(或者相同的编码纹素块,或者不同的编码纹素块)输入N个解码器,以获得解码的纹素值。下一个步骤S2选择性地从N个解码器中的至少ー个解码器输出至少N个纹素值。基于在步骤SI中获得的相对片位置,确定在步骤S2中要选择的特定至少N个纹素值以及从哪个或哪些解码器取回这些纹素值。此外,N个解码器中的每个解码器的相应电路均不同于其他N-I个解码器的电路。最終步骤S3基于在步骤S2中所选的至少N个纹素值,计算解码的像素值,优选地作为这至少N个纹素值的线性组合。然后,该方法结束,或为了产生新的解码像素的目的,在步骤SI中重新开始。
如果N个纹素位于纹素块的边界内,则步骤S2优选地涉及选择性地输出来自N个解码器中的第一解码器的所有N个纹素值。然而,如果N个纹素中的一半位于ー个纹素块内,且N个纹素中的另一半位于相邻纹素块内,则优选地从第一解码器的输出中选择N个纹素值中的一半,且从第二解码器选择N个纹素值中的另一半。在优选实施例中,N = 4。如果4个纹素的位置是在不同的纹素块中发现每个纹素,则步骤S2优选地涉及从4个解码器中的每个解码器选择I个相应纹素值。应当将上述实施例理解为本发明的一些说明性示例。本领域技术人员将理解,可以在不脱离本发明的范围的情况下,进行各种修改、组合和改变。具体地,在技术可能的情况下,可以在其他配置下将不同实施例的不同部分解决方案加以结合。然而,本发明的范围由所附权利要求来限定。參考文献[I]美国专利 US 5,956,431 ;[2] SI roin 与 Μ M er, “iPACKMAN :High-Quality, Low-Complexity TextureCompression for Mobile Phones”,Graphics Hardware, 2005, ACM Press, pp.63-70 ;[3] SIroill 与 Pettersson, “ETC2 :Texture Compression using InvalidCombinations,,,Graphics Hardware, 2007, ACM Press, pp. 49-54 ;
[4]国际申请WO 2006/126949。
权利要求
1.一种用于基于至少一个编码纹素块(40)来产生解码像素的解码系统(I),包括 N个不同的解码器(100、200、300、400),每个解码器具有与其他N-I个解码器的电路不同的电路,且被配置为对编码纹素块(40)进行解码,以产生至少ー个相应的纹素值; 与所述N个解码器(100、200、300、400)连接的值选择器(500),被配置为基于与至少N个纹素值相关联的至少N个纹素(30-36)的位置,从所述N个解码器(100、200、300、400)中的至少ー个选择性地输出所述至少N个纹素值,所述至少N个纹素的所述位置与包括所述至少N个纹素(30-36)中的至少ー个的纹素块(10)的边界相关;以及 像素计算器¢00),被配置为基于所述值选择器(500)选择性输出的所述至少N个纹素值来计算所述解码像素的解码像素值。
2.根据权利要求I所述的解码系统,其中所述值选择器(500)被配置为如果与所述N个纹素值相关联的N个纹素(30-36)位于纹素块(10)的所述边界内,则从所述N个解码器(100、200、300、400)中的第一解码器(100)选择性地输出N个纹素值。
3.根据权利要求I或2所述的解码系统,其中所述值选择器(500)被配置为如果与所述N个纹素值相关联的N个纹素(30-36)中的一半位于所述纹素块(10)的所述边界内,以及所述N个纹素(30-36)的一半位于相邻纹素块(12、14)的边界内,则从所述N个解码器(100、200、300、400)中的第一解码器(100)选择性地输出所述N个纹素值中的一半,并从所述N个解码器(100、200、300、400)中的第二解码器(200)选择性地输出所述N个纹素值中的另一半。
4.根据权利要求I至3之一所述的解码系统,其中N等于4,以及所述值选择器(500)被配置为如果所述4个纹素(30-36)之一位于所述纹素块(10)的所述边界内,以及其他3个纹素中的每ー个位于相应的相邻纹素块(12、14、16)的边界内,则从所述4个解码器(100、200、300、400)中的第一解码器(100)选择性地输出所述4个纹素值中的第一纹素值,从所述4个解码器(100、200、300、400)中的第二解码器(200)选择性地输出所述4个纹素值中的第二纹素值,从所述4个解码器(100、200、300、400)中的第三解码器(300)选择性地输出所述4个纹素值中的第三纹素值,以及从所述4个解码器(100、200、300、400)中的第四解码器(400)选择性地输出所述4个纹素值中的第四纹素值。
5.根据权利要求I到4之一所述的解码系统,其中N等于4,以及 所述4个解码器(100、200、300、400)中的第一解码器(100)具有第一电路,并被配置为对编码纹素块(40)进行解码以产生四个纹素值; 所述4个解码器(100、200、300、400)中的第二解码器(200)具有第二电路,并被配置为对编码纹素块(40)进行解码以产生两个纹素值; 所述4个解码器(100、200、300、400)中的第三解码器(300)具有第三电路,并被配置为对编码纹素块(40)进行解码以产生ー个纹素值;以及 所述4个解码器(100、200、300、400)中的第四解码器(400)具有第四电路,并被配置为对编码纹素块(40)进行解码以产生ー个纹素值。
6.根据权利要求I到5之一所述的解码系统,其中所述编码纹素块(40)包括第一顔色码字(41、44、47)、第二颜色码字(42、45、48)、以及第三颜色码字(43、46、49)。
7.根据权利要求5或6所述的解码系统,其中所述第四解码器(400)包括至少一条线,用于输出所述第一颜色码字(41、44、47)。
8.根据权利要求6或7所述的解码系统,其中所述第三解码器(300)包括 左移位运算器(310),被配置为将与所述第二颜色码字(42、45、48)相对应的比特序列向左移位一个比特位置,以形成左移位比特序列; 进位被设置为I的第一加法器(320),与所述左移位运算器(310)连接,并被配置为将所述第二颜色码字(42、45、48)和所述左移位比特序列相加; 进位被设置为I的第二加法器(322),与所述第一加法器(320)连接,并被配置为将所述第一加法器(320)的输出与所述第一颜色码字(41、44、47)相加;以及 与所述第二加法器(322)连接的右移位运算器(330),被配置为将与所述第二加法器(322)的输出相对应的比特序列向右移位两个比特位置,以形成右移位比特序列。
9.根据权利要求6到8之一所述的解码系统,其中所述第二解码器(200)包括 第一多路复用器(250),被配置为基于四个纹素(30-36)中的一半是位于所述纹素块(10)的所述边界内的一行还是一列中,输出所述第二颜色码字(42、45、48)和所述第三颜色码字(43、46、49)之一; 非运算器(240),被配置为对所述第一颜色码字(41、44、47)求逻辑非; 与所述第一多路复用器(250)和所述非运算器(240)连接的第一加法器(220),被配置为将所述第一多路复用器(250)的输出与所述逻辑非第一颜色码字相加; 与所述第一加法器(220)连接的左移位运算器(210),被配置为将与所述第一加法器(220)的输出相对应的比特序列向左移位一个比特位置,以形成左移位比特序列; 第二多路复用器(252),被配置为基于四个纹素(30-36)中的所述一半是位于所述纹素块(10)的所述边界内的一行还是一列中,输出纹素(32、24)的行坐标和列坐标之一; 与所述左移位运算器(210)和所述第一加法器(220)连接的第三多路复用器(254),被配置为基于所述第二多路复用器(252)的输出的最高有效比特,输出所述第一加法器(220)的输出和所述左移位比特序列之一; 与所述第二多路复用器(252)连接的或运算器(260),被配置为接收所述第二多路复用器(252)的所述输出的所述最高有效比特和所述第二多路复用器的所述输出的最低有效比特; 与所述第三多路复用器(254)和所述或运算器(260)连接的与运算器(270),被配置为接收所述第三多路复用器(254)的输出和所述或运算器(260)的输出; 与所述与运算器(270)连接的第二加法器(222),被配置为将所述与运算器(270)的输出与以10ニ作为所述第一颜色码字(41、44、47)之后的两个最低有效比特的比特序列相加; 与所述第一加法器(220)和所述第二加法器(222)连接的第三加法器(224),被配置为将所述第一加法器(220)的所述输出与所述第二加法器(222)的输出相加; 与所述第三加法器(224)连接的第一右移位运算器(230),被配置为将与所述第三加法器(224)的输出相对应的比特序列向右移位两个比特位置,以形成第一右移位序列;与所述第二加法器(222)连接的第二右移位运算器(232),被配置为将与所述第二加法器(222)的所述输出相对应的比特序列向右移位两个比特位置,以形成第二右移位序列。
10.根据权利要求6到8之一所述的解码系统,其中所述第二解码器(200)包括第一多路复用器(250),被配置为基于四个纹素(30-36)中的一半是位于所述纹素块(10)的所述边界内的一行还是一列中,输出所述第二颜色码字(42、45、48)和所述第三颜色码字(43、46、49)之一; 非运算器,被配置为对所述第一颜色码字(41、44、47)求逻辑非; 与所述第一多路复用器(250)和所述非运算器连接的、进位被设置为I的第一加法器(220),被配置为将所述第一多路复用器(250)的输出与所述逻辑非第一颜色码字相加;与所述第一加法器(220)连接的左移位运算器(210),被配置为将与所述第一加法器(220)的输出相对应的比特序列向左移位一个比特位置,以形成左移位比特序列; 第二多路复用器(252),被配置为基于四个纹素(30-36)中的所述一半是位于所述纹素块(10)的所述边界内的一行还是一列中,输出纹素(32、24)的行坐标和列坐标之ー; 与所述左移位运算器(210)和所述第一加法器(220)连接的第三多路复用器(254),被配置为基于所述第二多路复用器(252)的输出的最高有效比特,输出所述第一加法器(220)的所述输出和所述左移位比特序列之一; 与所述第二多路复用器(252)连接的或运算器(260),被配置为接收所述第二多路复用器(252)的所述输出的所述最高有效比特和所述第二多路复用器的所述输出的最低有效比特; 与所述第三多路复用器(254)和所述或运算器(260)连接的与运算器(270),被配置为接收所述第三多路复用器(254)的输出和所述或运算器(260)的输出; 与所述与运算器(270)连接的第二加法器(222),被配置为将所述与运算器(270)的输出与以10ニ作为所述第一颜色码字(41、44、47)之后的两个最低有效比特的比特序列相加; 与所述第一加法器(220)和所述第二加法器(222)连接的第三加法器(224),被配置为将所述第一加法器(220)的所述输出与所述第二加法器(222)的输出相加; 与所述第三加法器(224)连接的第一右移位运算器(230),被配置为将与所述第三加法器(224)的输出相对应的比特序列向右移位两个比特位置,以形成第一右移位序列;与所述第二加法器(222)连接的第二右移位运算器(232),被配置为将与所述第二加法器(222)的所述输出相对应的比特序列向右移位两个比特位置,以形成第二右移位序列。
11.根据权利要求6到10之一所述的解码系统,其中所述第一解码器(100)包括 非运算器(140),被配置为对所述第一颜色码字(41、44、47)求逻辑非; 与所述非运算器(140)连接的第一加法器(120),被配置为将所述第二颜色码字(42、·45.48)与所述逻辑非第一颜色码字相加; 与所述非运算器(140)连接的第二加法器(122),被配置为将所述第三颜色码字(43、·46.49)与所述逻辑非第一颜色码字相加; 与所述第一加法器(120)连接的第一左移位运算器(110),被配置为将与所述第一加法器(120)的输出相对应的比特序列向左移位一个比特位置,以形成第一左移位比特序列; 与所述第二加法器(122)连接的第二左移位运算器(112),被配置为将与所述第二加法器(122)的输出相对应的比特序列向左移位一个比特位置,以形成第二左移位比特序列; 与所述第一加法器(120)和所述第一左移位运算器(110)连接的第一多路复用器(150),被配置为基于纹素(30)的列坐标的最高有效比特,输出所述第一加法器(120)的所述输出和所述第一左移位比特序列之一; 与所述第二加法器(122)和所述第二左移位运算器(112)连接的第二多路复用器(152),被配置为基于所述纹素(30)的行坐标的最高有效比特,输出所述第二加法器(122)的所述输出和所述第二左移位比特序列之一; 第一或运算器(160),被配置为接收所述列坐标的所述最高有效比特和所述列坐标的所述最低有效比特; 第二或运算器(162),被配置为接收所述行坐标的所述最高有效比特和所述行坐标的 所述最低有效比特; 与所述第一多路复用器(150)和所述第一或运算器(160)连接的第一与运算器(170),被配置为接收所述第一多路复用器(150)的输出和所述第一或运算器(160)的输出;与所述第二多路复用器(152)和所述第二或运算器(162)连接的第二与运算器(172),被配置为接收所述第二多路复用器(152)的输出和所述第二或运算器(162)的输出;与所述第一与运算器(170)连接的第三加法器(124),被配置为将所述第一与运算器(170)的输出与以10ニ进制作为所述第一颜色码字(41、44、47)之后的两个最低有效比特的比特序列相加; 与所述第一加法器(120)和所述第三加法器(124)连接的第四加法器(126),被配置为将所述第一加法器(120)的所述输出与所述第三加法器(124)的输出相加; 与所述第二加法器(122)和所述第二与运算器(172)连接的第五加法器(128),被配置为将所述第二加法器(122)的所述输出与所述第二与运算器(172)的输出相加; 与所述第三加法器(124)和所述第二与运算器(172)连接的第六加法器(121),被配置为将所述第三加法器(124)的所述输出与所述第二与运算器(172)的所述输出相加; 与所述第四加法器(126)和所述第二与运算器(172)连接的第七加法器(123),被配置为将所述第四加法器(126)的所述输出与所述第二与运算器(172)的输出相加; 与所述第三加法器(124)和所述第五加法器(128)连接的第八加法器(125),被配置为将所述第三加法器(124)的所述输出与所述第五加法器(128)的输出相加; 与所述第四加法器(126)和所述第五加法器(128)连接的第九加法器(127),被配置为将所述第四加法器(126)的所述输出与所述第五加法器(128)的输出相加; 与所述第六加法器(121)连接的第一右移位运算器(130),被配置为将与所述第六加法器(121)的输出相对应的比特序列向右移位两个比特位置,以形成第一右移位序列; 与所述第七加法器(123)连接的第二右移位运算器(132),被配置为将与所述第七加法器(123)的所述输出相对应的比特序列向右移位两个比特位置,以形成第二右移位序列; 与所述第八加法器(125)连接的第三右移位运算器(134),被配置为将与所述第八加法器(125)的输出相对应的比特序列向右移位两个比特位置,以形成第三右移位序列;以及 与所述第九加法器(127)连接的第四右移位运算器(136),被配置为将与所述第九加法器(127)的所述输出相对应的比特序列向右移位两个比特位置,以形成第四右移位序列。
12.根据权利要求6到10之一所述的解码系统,其中所述第一解码器(100)包括 非运算器,被配置为对所述第一颜色码字(41、44、47)求逻辑非; 与所述非运算器连接的、进位被设置为I的第一加法器(120),被配置为将所述第二颜色码字(42、45、48)与所述逻辑非第一颜色码字相加; 与所述非运算器连接的、进位被设置为I的第二加法器(122),被配置为将所述第三颜色码字(43、46、49)与所述逻辑非第一颜色码字相加; 与所述第一加法器(120)连接的第一左移位运算器(110),被配置为将与所述第一加法器(120)的输出相对应的比特序列向左移位一个比特位置,以形成第一左移位比特序列; 与所述第二加法器(122)连接的第二左移位运算器(112),被配置为将与所述第二加法器(122)的输出相对应的比特序列向左移位一个比特位置,以形成第二左移位比特序列; 与所述第一加法器(120)和所述第一左移位运算器(110)连接的第一多路复用器(150),被配置为基于纹素(30)的列坐标的最高有效比特,输出所述第一加法器(120)的所述输出和所述第一左移位比特序列之一; 与所述第二加法器(122)和所述第二左移位运算器(112)连接的第二多路复用器(152),被配置为基于所述纹素(30)的行坐标的最高有效比特,输出所述第二加法器(122)的所述输出和所述第二左移位比特序列之一; 第一或运算器(160),被配置为接收所述列坐标的所述最高有效比特和所述列坐标的所述最低有效比特; 第二或运算器(162),被配置为接收所述行坐标的所述最高有效比特和所述行坐标的所述最低有效比特; 与所述第一多路复用器(150)和所述第一或运算器(160)连接的第一与运算器(170),被配置为接收所述第一多路复用器(150)的输出和所述第一或运算器(160)的输出;与所述第二多路复用器(152)和所述第二或运算器(162)连接的第二与运算器(172),被配置为接收所述第二多路复用器(152)的输出和所述第二或运算器(162)的输出;与所述第一与运算器(170)连接的第三加法器(124),被配置为将所述第一与运算器(170)的输出与以10ニ进制作为所述第一颜色码字(41、44、47)之后的两个最低有效比特的比特序列相加; 与所述第一加法器(120)和所述第三加法器(124)连接的第四加法器(126),被配置为将所述第一加法器(120)的所述输出与所述第三加法器(124)的输出相加; 与所述第二加法器(122)和所述第二与运算器(172)连接的第五加法器(128),被配置为将所述第二加法器(122)的所述输出与所述第二与运算器(172)的输出相加; 与所述第三加法器(124)和所述第二与运算器(172)连接的第六加法器(121),被配置为将所述第三加法器(124)的所述输出与所述第二与运算器(172)的所述输出相加; 与所述第四加法器(126)和所述第二与运算器(172)连接的第七加法器(123),被配置为将所述第四加法器(126)的所述输出与所述第二与运算器(172)的输出相加;与所述第三加法器(124)和所述第五加法器(128)连接的第八加法器(125),被配置为将所述第三加法器(124)的所述输出与所述第五加法器(128)的输出相加; 与所述第四加法器(126)和所述第五加法器(128)连接的第九加法器(127),被配置为将所述第四加法器(126)的所述输出与所述第五加法器(128)的所述输出相加; 与所述第六加法器(121)连接的第一右移位运算器(130),被配置为将与所述第六加法器(121)的输出相对应的比特序列向右移位两个比特位置,以形成第一右移位序列; 与所述第七加法器(123)连接的第二右移位运算器(132),被配置为将与所述第七加法器(123)的所述输出相对应的比特序列向右移位两个比特位置,以形成第二右移位序列; 与所述第八加法器(125)连接的第三右移位运算器(134),被配置为将与所述第八加法器(125)的输出相对应的比特序列向右移位两个比特位置,以形成第三右移位序列;以及 与所述第九加法器(127)连接的第四右移位运算器(136),被配置为将与所述第九加法器(127)的所述输出相对应的比特序列向右移位两个比特位置,以形成第四右移位序列。
13.根据权利要求6到12之一所述的解码系统,其中所述值选择器(500)包括 与所述第一解码器(100)连接的第一多路复用器(510),被配置为输出第一纹素值; 与所述第一解码器(100)和所述第二解码器(200)连接的第二多路复用器(520),被配置为输出第二纹素值; 与所述第一解码器(100)、所述第二解码器(200)和所述第三解码器(300)连接的第三多路复用器(530),被配置为输出第三纹素值;以及 与所述第一解码器(100)、所述第二解码器(200)和所述第四解码器(400)连接的第四多路复用器(540),被配置为输出第四纹素值。
14.一种用于通过对至少ー个编码纹素块(40)进行解码来产生像素的方法,所述方法包括 从N个不同的解码器(100、200、300、400)中的至少ー个选择性地输出至少N个纹素值;每个解码器具有与其他N-I个解码器的电路不同的电路,且被配置为基干与至少N个纹素值相关联的至少N个纹素(30-36)的位置,对编码纹素块(40)进行解码,以产生至少ー个相应的纹素值,所述至少N个纹素(30-36)的所述位置与包括所述至少N个纹素(30-36)中的至少ー个的纹素块(10)的边界相关;以及 基于所述至少N个纹素值来计算所述解码像素的解码像素值。
15.根据权利要求14所述的方法,其中如果与所述N个纹素值相关联的N个纹素(30-36)位于纹素块(10)的所述边界内,则从所述N个解码器(100、200、300、400)中的第一解码器(100)选择性地输出N个纹素值。
16.根据权利要求14或15所述的方法,其中所述选择性地输出包括如果与所述N个纹素值相关联的N个纹素(30-36)中的一半位于所述纹素块(10)的所述边界内,以及所述N个纹素(30-36)中的一半位于相邻纹素块(12、14)的边界内,则从所述N个解码器(100、200,300,400)中的第一解码器(100)选择性地输出所述N个纹素值中的一半,并从所述N个解码器(100、200、300、400)中的第二解码器(200)选择性地输出所述N个纹素值中的另一半。
17.根据权利要求14到16之一所述的方法,其中N等于4,以及所述选择性地输出包括如果所述4个纹素(30-36)之一位于所述纹素块(10)的所述边界内,以及其他3个纹素中的每ー个位于相应的相邻纹素块(12、14、16)的边界内,则从所述4个解码器(100、200、300,400)中的第一解码器(100)选择性地输出所述4个纹素值中的第一纹素值,从所述4个解码器(100、200、300、400)中的第二解码器(200)选择性地输出所述4个纹素值中的第ニ纹素值,从所述4个解码器(100、200、300、400)中的第三解码器(300)选择性地输出所述4个纹素值中的第三纹素值,以及从所述4个解码器(100、200、300、400)中的第四解码器(400)选择性地输出所述4个纹素值中的第四纹素值。
全文摘要
一种解码系统(1),包括N个不同的解码器(100、200、300、400),每个解码器具有与其他N-1个解码器的电路不同的电路。每个解码器(100、200、300、400)基于输入编码纹素块(40)产生至少一个纹素值。值选择器(500)被配置为基于至少N个纹素值(30-36)的位置,从解码器(100、200、300、400)中的至少一个选择性地输出所述至少N个纹素值,所述至少N个纹素值(30-36)的所述位置与包括所述至少N个纹素(30-36)中的至少一个的纹素块(10)的边界相关。像素计算器(600)基于来自值选择器(500)的所述至少N个纹素值来计算解码像素的像素值。
文档编号G06T11/00GK102687175SQ201080053340
公开日2012年9月19日 申请日期2010年2月24日 优先权日2009年11月24日
发明者雅各布·斯特罗姆 申请人:瑞典爱立信有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1