快速过滤的yuv到rgb转换的制作方法

文档序号:7936422阅读:142来源:国知局
专利名称:快速过滤的yuv到rgb转换的制作方法
快速过滤的YUV到RGB转换
些旦 冃豕
该背景旨在提供本专利申请的基本上下文,而非旨在描述要解决的具体问题。 计算机监视器发出包括RGB (红、绿、蓝)光的色彩空间中的色彩。虽然可 以通过混合红、绿和蓝光来生成可见光谱的所有色彩,但是监视器仅能够显示有限 色域(即范围)的可见光谱。以RGB格式呈现的每个像素将包括R、 G和B中的 每一个范围在0到255内的分开的值以生成像素。然而,计算机也可以发出各种其 它色彩空间中的色彩。例如,另一色彩空间可以包括有亮度(Y)、蓝到黄色彩分 量的色度(U或Cb)以及红到青色彩分量的色度(V或Cr)。如RGB—样,YUV 格式的像素也包括Y、 U和V中的每一个的分开的值。然而,R、 G和B中的每一 个值的范围不直接对应于Y、 U和V的范围。例如,在一个YUV格式中,Y值的 范围是16到235,而U和V的范围都是16到239。因此,要使计算机用RGB来 适当地显示YUV视频内容,每个像素的YUV值必须被转换成相应的RGB值。
用于从一种视频格式转换成另一种的当前方法在计算上是昂贵的,并且可能 需要通过矩阵变换来处理输入数据以生成输出。为了从YUV转换成RGB,必须通 过具有7次乘和11次加/减运算的矩阵变换来处理来自每个像素的数据。实践中, 编译器可以减少矩阵变换的公用子表达式。例如,将YUV转换成RGB的矩阵变 换可以被容易地减少为5次乘和7次加/减运算。然而,即便是已经编译器减少的 矩阵变换在计算上也是昂贵的。由于像素转换的复杂性,处理通常需要大量的支持 以包括单指令、多数据(SIMD)并行处理扩展以便在有用的时间内执行。此外, 不能实现SIMD扩展的计算机不能容易地执行像素转换。
概述
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些 概念。本概述并不旨在标识所要求保护的主题的关键特征或必要特征,它也不旨在 用于限定所要求保护的主题的范围。
对于每个可能的分量输入Y、 U和V的所有的值可以预先计算每个可能的分 量输出R、 G和B的值。Y、 U和V输入的每一贡献接着可以被加载到寄存器中并且被并行地相加,在没有溢出的情况下,产生来自YUV输入的在计算上不昂贵的
RGB输出。在一个实施例中,从预先计算的表格中检索Y、 U和V对R、 G和B 中的每一个的贡献。YUV对R、 G和B中的每一个值的贡献被封装到三个数据元 素中,并且被并行地相加在一起,得出RGB输出的值。
附图简述


图1是实现将YUV格式的数据转换成RGB格式的数据的方法的计算机的图
示;
图2是将YUV视频数据转换成RGB数据以供计算机显示的方法的图示; 图3是用于将YUV视频数据转换成RGB数据以供计算机显示的方法的预先 计算的表格的图示;
图4是用于将YUV视频数据转换成RGB数据以供计算机显示的方法的存储 器元件的图示;以及
图5是并行相加存储器元素以从YUV输入确定RGB输出的图示。
说明书
尽管下文阐明了众多不同实施例的详细描述,但是应当理解,本说明书的法 律范围是由本专利所附的权利要求书的言辞来限定。该详细描述应被解释为仅是示 例性的,且不描述每一可能的实施例,因为描述每一可能的实施例即使不是不可能 的也是不切实际的。可使用现有技术或在本专利的提交日之后开发的技术来实现众 多替换实施例,而这仍落入权利要求书的范围之内。
还应当理解,在本专利中,除非使用句子"如此处所使用的,术语'—'特 此被定义为意指……"或类似句子来明确地定义一个术语,否则不管是明确地还是 含蓄地,都没有限制该术语意义超出在平常或普通意义的意图,且这一术语不应当 被解释为被限制在基于本专利的任何部分中(权利要求书的语言除外)所做出的任 何陈述的范围中。就本专利所附的权利要求书中引用的任何术语在本专利中以与单 数意义相一致的方式来引用而言,这是为清楚起见而如此做的,仅仅是为了不使读 者感到混淆,且这类权利要求术语并不旨在隐含地或以其它方式限于该单数意义。 最后,除非一权利要求要素是通过叙述单词"装置"和功能而没有叙述任何结构来 定义的,否则任何权利要求要素的范围并不旨在基于35 U.S.C. § 112第6段的应用 来解释。图1示出了可操作来提供本说明书所描述的方法的合适的计算系统环境100 的示例。应该注意,计算系统环境100仅为合适的计算环境的一个示例,并非对权
利要求的方法和装置的使用范围或功能提出任何局限。也不应将计算环境100解释 为对示例性操作环境100中示出的任一组件或组件的组合具有任何依赖或要求。
参考图1,用于实现所要求保护的方法的框的示例性系统包括计算机110形式 的通用计算设备。计算机110的组件可包括但不限于,处理单元120、系统存储器 130以及将包括系统存储器130和视频接口 190在内的各种系统组件耦合至处理单 元120的系统总线121。
计算机110可以经由调制解调器172或其它网络接口 170经由局域网(LAN) 171和/或广域网(WAN) 173使用到一个或多个远程计算机,如远程计算机180 的逻辑连接在网络化环境中操作。
计算机110通常包括各种计算机可读介质,其可以是可由计算机110访问的 任一可用介质,包括易失性和非易失性介质、可移动和不可移动介质。系统存储器 130包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器 (ROM) 131和随机存取存储器(RAM) 132。 ROM可以包括基本输入/输出系统 133 (BIOS) 。 RAM 132通常包含包括操作系统134、应用程序135、其它程序模 块136和程序数据137的数据和/或程序模块。计算机100也可以包括其它可移动/ 不可移动、易失性/非易失性计算机存储介质,诸如硬盘驱动器141,对磁盘152 进行读写的磁盘驱动器151,以及对光盘156进行读写的光盘驱动器155。硬盘驱 动器141、 151和155可以经由接口 140、 150与系统总线121相连。
用户可以通过输入设备,如键盘162和定点设备161 (通常指鼠标、跟踪球或 触摸垫)向计算机20输入命令和信息。其它输入设备(未示出)可包括话筒、操 纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。这些和其它输入设备通常通过耦合 至系统总线的用户输入接口 160连接至处理单元120,但是也可以通过其它接口和 总线结构连接,如并行端口、游戏端口或通用串行总线(USB)。监视器191或其 它类型的显示设备也通过接口,如视频接口 190连接至系统总线121。视频转换模 块102可以被连接到系统总线121。视频转换模块192可以根据以下所描述的方法 来转换或修改像素。在其它实施例中,视频转换模块192是计算机110的另一元件 的组件。例如,视频转换模块192可以是处理单元120和/或视频接口 190的组件。 除监视器191之外,计算机也可包括其它外围输出设备,如扬声器197和打印机 196,它们通过输出外围接口 190连接。此处所描述的许多发明性功能和许多发明性原理最佳地使用或利用软件程序 或指令以及诸如专用集成电路(IC)等IC来实现。期望本领域的普通技术人员虽 然可能要进行大量的工作和由例如可用时间、现有技术以及经济问题促动的许多设 计选择,但是当受到此处所公开的概念和原理的指引时仍能够容易地以最小的实验 来生成这些软件指令、程序以及IC。因此,为了简明以及最小化使根据本发明的 原理和概念晦涩的任何风险,对这些软件和IC (如果有的话)的进一步讨论将限 于对于优选实施例的原理和概念所必需的那些讨论。
图2是可以转换YUV (YCbC》格式的像素以供在RGB色彩空间中显示的方 法200的图示。该方法可以在计算机110的多个组件上执行。在一个实施例中,方 法200在视频转换模块192上执行。在另一实施例中,方法200在视频接口 190 上执行。在又一实施例中,使用处理单元120来执行该方法。RGB、 YUV和YCbCr 可以概括地描述RBG和YUV族的所有视频格式,分别包括但不限于RGB16、 RGB24、 RGB32、 YUV、 YUY2、 YV12、 YV20以及1420。然而,如本领域的技 术人员所理解的,该方法可以作为可包括每数据单元计算成本的任何转换或修改的 一部分来执行,。在一个实施例中,该方法可用于将视频从YUV转换成RBG,其 中转换要求每像素计算成本。
参考图2,在框205处,可以简化矩阵变换。例如,该变换可用于将视频图像 从一种像素格式转换成另一种或修改视频图像的像素。在一个实施例中,简化了将 YUV格式的视频图像转换成RGB图像的矩阵变换。例如,可以简化表1的矩阵变 换来计算Y、 U和V的每一个对所得R、 G和B的值的贡献。
红二(Y陽16) x 1.164+ (V-128) x 1.596
绿二(Y-16) x 1.164+ (V-128) x 0,831 -(U-128) x 0.400
蓝二(Y-16) x 1.164+ (V-128) x 2.018
表l
从表l可以看出,在从YUV到RGB的转换中,RGB色彩空间中红的值可包 括某种程度的亮度(Y)和某种程度的红到青范围中的色度(V或C》。同样地, 绿可包括某种程度的亮度(Y)、某种程度的红到青范围中的色度(V或C》以及 某种程度的蓝到黄范围中的色度(U或Cb)。同样,蓝可包括某种程度的亮度(Y) 和某种程度的蓝到黄范围中的色度(U或Cb)。因此,如表2所示,用于将YUV 像素转换成RGB像素的公式可以被简化,以强调Y、 U和V分量的贡献。红 绿 蓝
(I7-16)xU64 (y-歸)x 1,164 (F—純)xU64 + (F-128) x 1.5% (F-128) x-0.831 + (1/ —12, x —(K邻O (£/ —128) x 2,018
= 红输出 绿输出 蓝输出
表2
如表2所示,输入Y、 U和V的每一个都在某种程度上对所得的红、绿和蓝的 输出有所贡献。Y、 U和V的每个值的总的贡献能以平面的形式被加到一起以 生成相应的红、绿和蓝的输出值。当然,存在可强调分量贡献的其它矩阵变换 的其它简化。
在框210处,可以计算表格以确定对应于所有可能的输入值的所有可能的 输出值。该表可以包括等于目标格式的范围的多个值。例如,在目标格式是RGB 而每一分量的范围是0到255的情况下,可能有三个256个值的表格,每一表 格表示来自于输入的可能的输出值的整个集合。这些表格可以被存储在相对图 1所描述的任何形式的计算机存储器中。在一个实施例中,对于任何可能的Y、 U和V (Y、 Cb和C。输入值计算R、 G和B输出值。例如,如图3a-c所示, 对于Y 305、 Cb310和Cr315中的每一个的可能的输入值分别可以是16-235、 16-239以及16-239。虽然图3a-c的贡献值包含最多三个有效数字,但是可以用 任何有用的精度来表示。每一输入值对R、 G和B的贡献可以使用表2的公式 来计算并且可以被插入到一组表格300的相应的位置中。在一个实施例中,Y 为17的输入305被通过公式(Y-16) x 1.164转换以生成1.164的表格值320, 来作为对R 325、 G 330和B 335中每一个的亮度贡献。参考图3b, U(Cb)的输 入310可以分别用公式(CV128) x -0.400和(CV128) x 2.018来转换,以生成 对G 345和B 350的每个贡献的表格值340。参考图3c, V(C》的输入315可以 分别用公式(CV128) x 1.596和(CV128) x -0.831来转换,以生成对R360和 G365的每个贡献的表格值355。也可以有生成包含对应于一输入范围的一输出 范围的许多不同的视频格式的预先计算的表格的许多其它的方法。
在框215处,方法200可以接收用于转换的输入值。在一个实施例中,响
应于导致每像素计算成本的对图像的任何修改,以平面模式接收像素值。可能 要求每像素计算成本的操作的某些示例是从一种视频格式到另一种(即YUV
10到RGB)的转换、着色器变换、明度或亮度修正、饱和度改变或色彩修正。例 如,响应于所请求的从YUV格式到另一格式(即YUV到/从RGB)的转换, YUV像素的元组可以由方法200作为Y数据平面、U数据平面以及V数据平 面来接收。在又一实施例中,方法200接收非平面或"块"数据。例如,YUV 数据可被作为包含所有三个Y、 U和V值的单个存储器单元来接收。方法200 可以认为每片块数据是lxl的像素平面。每片块数据可以在逐像素的基础上被 转换成分开的数据平面。也存在用于接收和解释输入值的许多其它实施例。
在框220处,方法200可使用框210的査找表来找出输入对输出值的贡献。 在一个实施例中,来自YUV元组的值被用于査找其对所需输出的贡献。例如, 参考图3a-c,值为17的Y输入305可以向R、 G和B中的每一个的所需输出 的总值贡献1.164。同样,值为17的U(Cb)输入310可以分别向R、 G和B的 所需输出的总值贡献0、 44.400以及-224.998,而值为17的V(Cr)输入315可以 分别向R、 G和B的所需输出的总值贡献-177.156、 92.241和0。
在框225处,方法200可以存储框220的输入贡献。在一个实施例中,每 个分量的贡献被以特定的顺序存储在单个存储位置中。例如,可以存储数据以 防止在后续相加处理期间的溢出错误。参考图4,方法200可以将贡献存储在 可以被分成相等的部分以容纳每个贡献的存储器空间中。例如,存储器空间可 以是驻留在计算机110的处理单元120上的寄存器。如此处所使用的,寄存器 可以是RAM 132中的任何存储器位置,或者可使用处理单元120对其执行算 术函数的任何其它分立的存储器单元。此外,存储器空间可以是由计算机110 一起处理的任何固定大小的位组。同样,在x86平台中,存储器空间可以是16 位字,且双字(dword)可以是32位长度。
在一个实施例中,存储器空间可以是32位dword,其中每个贡献被分配了 该dword中的10个位405,各值之间具有"缓冲区"或"间隔"410。缓冲区 可以是适用于防止后续的加法运算期间的溢出错误的任何大小。例如,缓冲区 在大小上可以是l位。在又一实施例中,存储器空间可以是可分配足够的存储 器来存储上述每个经排序的贡献的任何结构,其中存储器空间的数目等于目标 格式的元素的数目。例如,格式RGB是由三个元素组成的;因此,方法200 可以使用三个存储器空间415, 420, 425。同样,贡献元组的每个元素可以用 相同的顺序来存储在多个空间上。例如,三个存储器空间415、 420、 425中的 每一个可以具有表示存储在第一个IO位中的Y值、第二个IO位中的U值以及存储在第三个IO位中的V值的数据,其中每个值之间有l位的缓冲区。因此,
Y、U(Cb)和V(C》对分量R、G和B的贡献可以被存储在不同的存储器空间415、 420、 425中,并且按照对R的贡献、对G的贡献和对B的贡献的顺序排列。 例如,将YUV数据转换成RGB的实施例,空间415顺序地存储Y对R、 G和 B中每一个的贡献,空间420顺序地存储U(Cb)对R、 G和B中每一个的贡献, 而空间425顺序地存储V(C》对R、 G和B中每一个的贡献。当然,可以有以 特定顺序存储分量以及存储许多大小的分量的存储器空间的许多实施例。
在框230处,参考图5a,方法200可以计算输出像素值。在一个实施例中, 方法200执行使用三个存储器空间415、420和425的两个并行的加法运算502、 504。例如,对于每个输入值505,存储器空间415、 420和425可以分别顺序 地存储Y、 U(Cb)和V(Cr)对R、 G和B的贡献。三个值可以被并行地(502、 504) 加在一起,以便计算506 R、 G和B的所得值。例如,这些值可以作为32位字 并行地相加,从而导致两个加法操作502、 504。在又一实施例中,"间隔"410 防止R、 G和B的分量值通过与二进制加法运算相关联的溢出和进位规则来互 相影响。每个贡献的总值510可以从并行的加法处理得出,以生成来自YUV 输入的RGB的输出值。并行加法的结果可以按照R、 G和B的顺序保存在单 个32位的存储器空间中。
在另一实施例中,所得的总值被修剪以确保它们保持在目标格式的可接受 范围内。例如,参考图5a和5b,当输入YUV像素值是17、 17、 17时,R的 总值是负数515。因为RGB格式中允许的分量值在0和255之间,所以负数的 结果是不可接受的。因此,方法200可以确定在转换成RGB格式时,负数可 以被修剪成零517,以对应于可接受的RGB值的范围。此外,小数值520可以 被四舍五入成对应于可接受输出范围内的值的整数值525。同样地,在可接受 范围以上的总数510被修剪成该格式最大可允许的值。也存在计算输出值的许 多其它实施例。
在框235处,方法200可以确定是否需要转换更多的值。在一个实施例中, 方法200检查所有预先转换的像素值被解压到其中的缓冲区以确定是否剩余任 何值。例如,该缓冲区可以是YUV像素值被方法200加载到其中以供处理的 FIFO队列。如果方法200确定有更多的值需要转换,则方法可以返回到框220。 如果没有剩余的值,则方法可以前进到框240。
在框240处,方法200可以存储经转换或经修改的图像。在一个实施例中,方法200在逐像素的基础上将图像直接存储到诸如后台缓冲区等存储器中。例
如,在视频显示中,合成层可以将经压縮的视频解码到YUV平面、将YUV平 面转换到中间的RGB缓冲区、并且将RGB缓冲区合并/合成到后台缓冲区以供 稍后显示。当在以不同速率显示图像的各视频格式之间转换时,合并中间缓冲 区的合成器会是有用的。例如,视频回放能以比典型的数字动画序列慢的每秒 帧频率来运作。由于视频回放较慢,所以在以较快的格式回放期间,该较慢的 格式的某些帧可以被重复地显示以解决不同的频率。可以将经转换的 YUV/RGB数据保存到中间缓冲区中以便实现对先前显示的帧的更快调用,而 非每次显示相同的帧时重新转换它。此外,当转换步骤消耗显著量的计算机处 理时(如当步骤对每个像素使用表l矩阵变换来转换时),将重复的帧仅转换 一次并高速缓存所得的数据会是更有效的。因此,对每个像素转换采用该变换 可以为每个经处理的像素生成附加的读/修改/写命令。
然而,如上相对于框220到235所述,转换的处理成本可以是非常低的。 例如,从YUV到RGB的转换可以仅涉及每个目标格式分量的表査找以及并行 加法。因此,由于转换成本可以非常低,所以可以在逐像素的基础上来在解压 每个像素时执行,并且所得的数据可以被直接保存到后台缓冲区中。直接保存 到后台缓冲区中可以消除转换过程中的中间(RGB)缓冲区以及读/修改/写命 令,并且也可以改进高速缓存的一致性。此外,某些处理器的写/组合能力可以 充分地改进转换和输出性能。当然,有存储和使用经转换的数据以消除读/修改 /写命令、中间缓冲区或采用这些结构的硬件组件的许多其它实施例。
权利要求
1.一种修改输入数据元素的方法,包括接收包括多个输入值305、310、315的所述输入数据元素215;从多个数据表300检索多个分量数据元素325、330、335、345、350、360、365,其中每一数据表对应于所述多个输入值305、310、315中的一个,并且其中每一分量数据元素包括一组输出值贡献320、340、355,每个输出值贡献对应于多个输入值中的一个;将每一分量数据元素存储在存储器空间415、420、425中,其中所述一组输出值贡献中的每一元素以相同的顺序被存储在每一存储器空间中;将所述存储器空间相加,其中所述存储器空间的和构成包含多个输出值515、520的输出数据元素510,所述多个输出值中的每一个包括对应于所述多个输出值中的一个的所有输出值贡献的和。
2. 如权利要求l所述的方法,其特征在于,将所述存储器空间相加包括并行 地将所述存储器空间相加。
3. 如权利要求l所述的方法,其特征在于,所述输入数据元素包括YUV视 频像素值,而所述输出数据元素包括RGB像素值。
4. 如权利要求1所述的方法,其特征在于,所述多个输入值顺序地包括亮度 值Y、蓝到黄色度值Cb以及红到青色度值Cr。
5. 如权利要求l所述的方法,其特征在于,所述多个输出值顺序地包括红值 R、绿值G和蓝值B。
6. 如权利要求1所述的方法,其特征在于,每组输出值贡献包括一组亮度贡 献或一组色度贡献。
7. 如权利要求l所述的方法,其特征在于,所述存储器空间是双字的,以及 所述多个输出值贡献中的每一个占据不超过双字的IO个位。
8. 如权利要求l所述的方法,其特征在于,所述多个存储器空间中的每一个 包括缓冲区,所述缓冲区防止所述存储器空间相加期间的溢出错误。
9. 如权利要求1所述的方法,其特征在于,还包括在所述一组输出值贡献的 每个元素之间放置第一缓冲区和第二缓冲区。
10. 如权利要求1所述的方法,其特征在于,所述多个存储器空间中的每一 个包括32位,其中所述存储器空间的前十位构成所述一组输出值贡献的第一元素,所述存储器空间的第十一位构成第一缓冲区,所述存储器空间的第十二到第二十一 位构成所述一组输出值贡献的第二元素,所述存储器空间的第二十二位构成第二缓 冲区,以及所述存储器空间的第二十三到第三十二位构成所述一组输出值贡献的第 三元素。
11. 如权利要求1所述的方法,其特征在于,多个输出值贡献中的每一个包 括对红、绿和蓝中的每一个的亮度和色度贡献。
12. 如权利要求1所述的方法,其特征在于,数据表的数目对应于所述多个 输入值的输入值数目。
13. 如权利要求1所述的方法,其特征在于,将所述存储器空间相加包括将 每一输出数据元素并行地加在一起,其中并行加法运算的数目不大于2。
14. 一种计算机系统,所述计算机系统包括用于执行计算机可执行代码的处 理器、用于存储数据和计算机可执行代码的存储器以及输入/输出电路,所述处理 器物理上被配置成执行计算机可执行代码,所述计算机可执行代码用于接收第一格式的输入像素215,所述输入像素包括第一和第二输入值305、310、s15;从第一数据表300检索第一组输出值贡献325、 330、 335、 345、 350、 360、s65,其中所述第一组输出值贡献的第一元素对应于所述第一输入值和第一输出值, 并且其中所述第一组输出值贡献的第二元素对应于第一输入值和第二输出值;从第二数据表300检索第二组输出值贡献325、 330、 335、 345、 350、 360、 365,其中所述第二组输出值贡献的第一元素对应于所述第二输入值和所述第一输 出值,并且其中所述第二组输出值贡献的第二元素对应于所述第二输入值和所述第 二输出值;将所述第一和第二组输出值贡献分别存储在第一和第二寄存器415、 420、 425 中,其中所述第一和第二组输出值贡献中的每一元素以相同的顺序存储在所述第一和第二寄存器中;将所述第一和第二寄存器的和存储到输出寄存器510中,其中所述第一和第 二寄存器的和构成第二格式的输出像素510,所述输出像素包括所述第一和第二输 出值,所述第一输出值包括所述第一和第二组输出值贡献的第一元素的和,并且所 述第二输出值包括所述第一和第二组输出值贡献的第二元素的和。
15. 如权利要求14所述的计算机系统,其特征在于,所述第一格式包括YUV, 而所述第二格式包括RGB。
16. 如权利要求14所述的计算机系统,其特征在于,还包括将所述第一格式 的输入像素修改成所述第二格式的输出像素,所述修改包括明度修正、亮度修正、 对比度修改、饱和度改变、每像素修改或着色器变换中的至少一个。
17. —种将YUV像素值转换成RGB像素值的方法,包括 接收包括亮度值Y 305、蓝到黄色度值Cb 310以及红到青色度值Cr 315的YUV像素值215;将Y索引到包括多个亮度贡献值320的亮度査找表的亮度贡献值,所述多个 亮度贡献值对应于Y的可能范围,并且每个值包括对红325、绿330和蓝335中的 至少一个的亮度贡献;将Cb索引到包括多个第一色度贡献值340的第一色度査找表的第一色度贡献 值,所述多个第一色度贡献值对应于Cb的可能范围,并且每个第一色度贡献值包 括对绿345和蓝350中的至少一个的第一色度贡献;将Cr索引到包括多个第二色度贡献值355的第二色度査找表的第二色度贡献 值,所述多个第二色度贡献值对应于Cr的可能范围,并且每个第二色度贡献值包 括对红360和绿365中的至少一个的第二色度贡献;将所述亮度贡献值320、所述第一色度贡献值340和所述第二色度贡献值355 分别存储到第一 415、第二 420和第三425寄存器中,其中每个寄存器包括多个位, 其中所述第一寄存器包含包括对红的亮度贡献325的第一亮度位组、包括 对绿的亮度贡献330的第二亮度位组、包括对蓝的亮度贡献335的第三亮度位组、 以及至少一个亮度缓冲区410,其中所述第二寄存器包含包括对绿的第一色度贡献345的第一色度位组、 包括对蓝的第一色度贡献350的第二色度位组、以及至少一个第一色度缓冲区410, 其中所述第三寄存器包含包括对红的第二色度贡献360的第三色度位组、 包括对绿的第二色度贡献365的第四色度位组、以及至少一个第二色度缓冲区410,将所述第一、第二和第三寄存器并行地相加在一起,其中所述第一、第二和 第三寄存器的和构成所述RGB像素值510;以及所述第一和第二亮度缓冲区、所述至少一个第一色度缓冲区和所述至少一个 第二色度缓冲区防止在将所述第一、第二和第三寄存器并行地相加在一起时的溢出 错误。
18. 如权利要求17所述的方法,其特征在于,所述第一和第二亮度位组、所 述第一和第二色度位组以及所述第三和第四色度位组以相同的顺序存储在相应的第一、第二和第三寄存器中,所述相同的顺序包括在每一寄存器中对于对红、绿和 蓝的相应的亮度、第一色度和第二色度贡献的任何相同的排列。
19. 如权利要求17所述的方法,其特征在于,Y的可能范围包括大于等于16 并小于等于235的Y值。
20. 如权利要求17所述的方法,其特征在于,Cb或Cr的可能范围包括大于 等于16并小于等于239的值。
全文摘要
可以对每个可能的分量输入Y、U和V的所有的值预先计算每个可能的分量输出R、G和B的值。Y、U和V输入的每一贡献接着可以被加载到寄存器中并且被并行地相加,在没有溢出的情况下,产生来自YUV输入的在计算上不昂贵的RGB输出。在一个实施例中,从预先计算的表格中检索Y、U和V对R、G和B中每一个的贡献。YUV对R、G和B中每一个值的贡献被封装到三个数据元素中,并且被并行地相加在一起,得出RGB输出的值。
文档编号H04N1/60GK101589609SQ200880003220
公开日2009年11月25日 申请日期2008年1月23日 优先权日2007年1月26日
发明者D·卡尔洛夫, G·科扎姆 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1