CN1514344A - 用于补偿γ修正缺乏的α修正 - Google Patents

用于补偿γ修正缺乏的α修正 Download PDF

Info

Publication number
CN1514344A
CN1514344A CNA200310120767XA CN200310120767A CN1514344A CN 1514344 A CN1514344 A CN 1514344A CN A200310120767X A CNA200310120767X A CN A200310120767XA CN 200310120767 A CN200310120767 A CN 200310120767A CN 1514344 A CN1514344 A CN 1514344A
Authority
CN
China
Prior art keywords
value
correction
action
display device
group
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.)
Granted
Application number
CNA200310120767XA
Other languages
English (en)
Other versions
CN100336011C (zh
Inventor
J・C・普拉特
J·C·普拉特
里亚普诺夫
M·M·里亚普诺夫
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN1514344A publication Critical patent/CN1514344A/zh
Application granted granted Critical
Publication of CN100336011C publication Critical patent/CN100336011C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/503Blending, e.g. for anti-aliasing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Picture Signal Circuits (AREA)
  • Processing Of Color Television Signals (AREA)
  • Image Processing (AREA)
  • Transforming Electric Information Into Light Information (AREA)

Abstract

字体图示符的混合系数(α值)采取α修正,以补偿文本呈现过程中的γ修正修正的缺乏。该α修正包括:选择与显示设备的预定γ值相对应的一组修正系数,并根据已知的α值、前景颜色和那组组修正系数来计算修正的α值。然后,可以使用这些修正的α值来混合对应的显示像素的前景颜色和背景颜色,而不需要进行γ修正。相应地,该α修正可以由GPU(没有被配置成执行γ修正)来执行,从而提高可行的文本呈现速度。

Description

用于补偿γ修正缺乏的α修正
技术领域
本发明涉及显示呈现过程,更特别地,涉及包括α值修正的字体图示符呈现过程。
背景技术
在标准软件文本呈现中,一个或多个字体图示符表示在显示设备处所显示的每个文本图像。同样,每个字体图示符由一个或多个混合系数表示,这些混合系数表示:应该为被用来显示字体图示符的每个像素的背景加入多少字体图示符的前景颜色。这些混合系数通常被称作“α值”。其他图像也可以由前景与背景之间的混合来表示。
一旦确定α值,就可以使用它们来混合每个像素的前景颜色和背景颜色。合乎理想的是,在线性颜色空间中实行混合,在那里,例如,将使用表示无光子的最小值来呈现像素,并且,在那里,将使用表示最多数量的光子的最大值。但是,从混合中得到的像素颜色在呈现之前必须进行γ修正过程,以补偿显示设备呈现颜色的方式中的非线性。γ修正本质上补偿显示设备的γ值。显示设备的γ值在各个设备之间可能会有所不同。被用来在显示设备处呈现图像的混合与γ修正过程是该技术领域中众所周知的呈现过程。
混合与γ修正通常通过软件应用程序来加以实行。但是,已认识到,如果文本呈现过程将由专用硬件部件(例如,图形处理单元(GPU))来执行,而不需要中央处理器(CPU)的资源,则这些文本呈现过程的执行速度可以快得多。但是,利用GPU来执行混合的一个问题是:现有的GPU未被配置成执行γ修正。在没有γ修正的情况下,如果经由“ClearType”方法来过滤α值,那么,由于显示设备的非线性(γ值),所呈现的文本在被显示的文本字符的边缘周围将会有不需要的彩色散乱边纹。由于背景值被存储在GPU中并且只能由CPU缓慢地存取,因此,该问题被进一步复杂化。
在微软(Microsoft)NT4操作系统中,在混合之后不执行γ修正,以便节省CPU周期。作为近似值,通过在混合之前对α值本身执行γ修正,来调整α值。但是,这个近似值是不精确的,因为它没有考虑前景颜色是黑暗的还是明亮的。通过在忽略前景颜色的同时调整α,会使一半可能的前景颜色的近似值误差增加。
相应地,当前,在该技术领域中需要改进的方法,可用于加速文本呈现,无须使用背景颜色,无须要求γ修正,但同时利用关于前景颜色的知识。
发明内容
本发明针对用于修正对应于字体图示符的过滤的α值以便补偿γ修正的缺乏的方法、系统和对应的计算机程序产品。
根据本发明的一个方面,执行α修正包括这些动作:选择与显示设备的预定γ值相对应的一组修正系数;并且,计算修正的α值,可以使用这些α值来混合对应的显示像素的前景颜色和背景颜色,而无须进行γ修正。由于本发明消除了对γ修正的需要,并且α修正不需要使用背景颜色,因此,呈现字体图示符的过程可以主要由GPU来执行,从而提高可行的文本呈现总速度。
在一个实施例中,经由公式(αcorrected=α+α(1-α)(c1αf+c2α+c3f+c1),在GPU上计算修正的α值,其中,αcorrected是修正的α,α是α,f是γ修正前景亮度,且(c1、c2、c3和c4)是一组修正系数。每个α值应用这个公式一次。
其后,当获得每个显示像素的修正的α值时,对这些显示像素的前景颜色和背景颜色进行混合,从而生成合适的像素显示值,用于允许显示字体图示符,而不会有颜色散乱边纹,也无须进行γ修正。
通过最小化α修正的误差,可以一次计算出一组最优修正系数(c1、c2、c3和c4),这组修正系数被用来帮助得到修正的α值。其后,可以实行混合,而无须进行γ修正。α修正的误差的这种最小化可以在软件设计时加以实行,并且由约束优化算法或其他类似的程序来执行。
下文将陈述本发明的额外的特点和优点,这些特点和优点部分地将从该描述中显而易见,或者可以通过本发明的实践来加以了解。可以通过所附权利要求书中所特别指出的各种仪器和组合,来实现并获得本发明的这些特点和优点。从下文和所附权利要求书中,将会更加明白本发明的这些和其他的特点,或者,这些和其他的特点可以通过下文中所陈述的本发明的实践来加以了解。
附图说明
为了描述可以获得本发明的上述和其他的优点和特点的方式,将通过参考在附图中有所展示的各个特殊实施例,来对以上被简述的本发明进行更加详细的描述。应理解这些附图只描绘本发明的典型实施例并且因此不应被认为限制本发明的范围,这样,将通过使用附图来额外确切、详细地描述和解释本发明。在这些附图中:
图1是流程图,展示了用于修正过滤的α值以便补偿γ修正的缺乏的方法;
图2是优化例行程序的流程图,该优化例行程序包括在计算与预定的γ值相对应的那组修正系数的同时可以执行的某些动作;
图3是流程图,展示了在计算一组最优修正系数的过程中可能涉及的约束优化的一个实施例;
图4展示了图表和对应的公式,用于根据已知的α值、前景和修正系数来计算修正的α值;以及,
图5展示了部件和元件的功能性框图,在不包括γ修正的呈现过程期间,GPU可以利用这些部件和元件;以及,
图6展示了操作系统的一个实施例,该操作系统提供用于实现本发明的元件的合适的操作环境。
具体实施方式
本发明针对用于在图像呈现过程期间执行α修正以便补偿γ修正的缺乏的方法、系统和对应的计算机程序产品。本发明的实施例可以包括包括各种计算机硬件的专用或通用计算机,或者,利用该专用或通用的计算机来加以执行,以下将对此进行更加详细的讨论。特别地,可以利用图形处理单元(GPU)来实现本发明的实施例。
本发明的范围以内的实施例也包括用于携带或其上存储有计算机可执行指令或数据结构的计算机可读介质。这种计算机可读介质可以是可由通用或专用的计算机进行存取的任何可用的介质。举例来讲(不作限制),这种计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其他物理存储介质(例如,光盘存储、磁盘存储或其他磁性存储设备)、或可以用来携带或存储采取计算机可执行指令或数据结构形式的所需程序代码方法并且可以由通用或专用的计算机来进行存取的其他任何介质。当在网络或另一个通信连接(有线、无线,或者有线或无线的组合)上将信息传送或提供给计算机时,计算机适当地将此连接视作计算机可读介质。这样,任何这类的连接都可以被适当地称作“计算机可读介质”。以上内容的组合也应该被包括在计算机可读介质的范围以内。例如,计算机可执行指令包括使通用计算机、专用计算机或专用处理设备(例如,GPU)执行某种功能或某组功能的指令和数据。
α修正
图1展示了一种方法的流程图100,该方法用于修正过滤的α值,以便补偿γ修正的缺乏。在字体图示符呈现过程中,为用来显示字体图示符的每个像素导出过滤的α值(也被称作“混合系数”)。在某些实施例中,只为每个显示像素计算单一α值。在其他实施例中,利用微软的ClearType_技术,为每个像素子分量(例如,“红色”子分量、“绿色”子分量和“蓝色”子分量)计算单独的α值。相应地,应理解,本发明扩展到各种实施例,因此,并不局限于其中只为每个显示像素导出一定数量的α值的实施例。
如图1所示,一种用于修正过滤的α值以便补偿γ修正的缺乏的方法包括各种动作(动作110、120、140、150和160)和一个步骤(步骤130),现在将特别参照图2-5来更加详细地描述每个动作和步骤。
第一个所展示的动作包括:接收可以用于图形混合过程的过滤的α值(动作110)。在混合期间和在γ修正之前,这些过滤的α值通常用于现存的字体图示符呈现过程中。但是,根据本发明,使用这些过滤的α值,来导出可用于混合显示像素的前景颜色和背景颜色的被调整或修正的α值,利用这种方法,不需要进行混合后γ修正。过滤的α值(可以从任何来源获得)通常描述将被显示的字体图示符的形状。
所展示的这种方法也包括接收显示像素前景颜色的动作(动作115)。如以下特别参照图2-5所描述的,通过接收显示像素前景颜色,本发明可以根据已知的前景颜色和最优修正系数来执行所需的α修正。
根据图1,为一个或多个γ值中的每个γ值计算一组修正系数(动作120)。注意,这套修正系数不需要从计算中导出,而是可以在可选实施例中手工调整。也可以在软件设计时执行动作120,而图1中所有其他的动作可以在呈现图像时加以执行。
在本实施例中,每个γ值与四个修正系数(包括c1、c2、c3和c4)关联。可以为γ值的任何所选择的范围计算这些修正系数。将被用来呈现字体图示符的显示设备的γ值最好被包括在内,作为所选择的那组γ值中的一个。在一个实施例中,所选择的那组γ值包括范围在1.0与2.2之间、步长为0.1的γ值,尽管这个范围可能会发生变化。
根据一个实施例,通过在软件设计时执行图2中的流程图200所展示的各个动作,来实现计算与各种γ值相对应的那组修正系数的动作。第一个所展示的动作包括:将γ设置为所选择的γ值范围内的最低的γ值(例如,根据以上所提供的范围,是1.0)(动作210)。接下来,使用该γ值来执行约束优化(动作220),以确定与该γ值相对应的那组最优修正系数。根据一个实施例,通过将约束优化例行程序与图3中的流程图300所展示的各个动作进行组合,来实现这一点。
图3中的流程图300包括多个动作,可以执行这些动作,以便最小化所混合的前景颜色和背景颜色的真实输出与修正的输出之间的计算误差。特别是,通过使用α、前景、背景和修正系数c1、c2、c3和c4的各种预定的值,来计算亮度的真实输出与修正的输出之间的差。这样做可以帮助约束优化例行程序确定与预定的γ值(例如,显示设备的γ值)有关联的最优修正系数。
最初,将前景、背景和α值设置为零(动作310-316)。接下来,使用满足一组预定约束的第一组修正系数,来计算修正的α(动作320)。根据一个实施例,从公式(αcorrected=α+α(1-α)(c1αf+c2α+c3f+c4))中导出修正的α,其中,αcorrected是修正的α,α是α,f是γ修正前景亮度。修正的α公式被示作功能性图表400,并且在图4中采取其基本形式410。
在一个实施例中,在此约束优化(动作220)期间所利用的那组预定的约束包括:(c4≥-1);(c3+c4≥-1);(c1+c2+c3+c4≤1);(c4≥-4);(c3+c4≥-4)。选择这些约束,以确保:图4中的修正是单调的,并且不会产生[0,1]以外的值。但是,这套约束只说明一组合适的约束,这套合适的约束可以被加以利用,因此不应该被解释为限制本发明的范围。在约束优化期间,将在约束范围内递增地调整修正系数的值,以计算每个可能的值f、α和B(背景)的真实输出与修正的输出之间的误差,在大约0.02的递增步长中,f、α和B的范围在大约0与大约1之间。
通常通过使用来自动作320的修正的α值,来计算所计算的输出。特别是,所计算的输出包括γ修正前景f=F(1/γ)和γ修正背景b=B(1/γ)的混合值,其中,f是γ修正前景,F是预定的前景值,γ是γ值,b是γ修正背景,B是预定的背景值。根据动作330来计算修正的输出。
也通过将预定前景(F)和具有α(α)的预定背景(B)进行混合,来计算真实输出(动作340)。其后,修正的输出与真实输出之间的平方差进行自乘(动作342),并乘以重要性权数(346)。最后,将权数的平方差加入误差值(动作346)。然后,如动作(348、350、352、354、356和358)所确定的,重复这些动作,直到已使用F、B和α的所有的值来计算误差为止。然后,利用c1、c2、c3和c4的各种组合来反复重新计算该误差,直到为F、B和α的每个组合处的预定γ值确定最小的误差为止。然后,将该误差返回到图3所示的优化例行程序(动作360)。
图3中所展示的动作包括一种用于计算适合约束优化的费用函数的合适的方法。约束优化例行程序需要利用这类费用函数来找到最小的误差。一种合适的约束优化例行程序是Matlab的fmincon函数,它实现“连续二次规划”。Matlab的fmincon函数和“连续二次规划”在该技术领域中众所周知。但是,应理解,前述例子只是起说明性的作用,所以,不应该被解释为限制本发明的范围。特别是,也可以使用其他技术和算法来获得在预定的一组约束以内并对应于预定的那套γ值的最优修正系数。例如,如果在γ修正的空间(与线性空间相对)中计算误差,那么,图3中所计算的费用函数是修正系数c1、c2、c3、c4中的二次方程式。所以,可以用分析方法(解释线性系统)来执行优化,并且,优化不需要约束优化例行程序。
如图2所示,然后,从约束优化中获得的最优修正系数c1、c2、c3、c4与曾被用来获得最优系数c1、c2、c3、c4的γ值关联(动作230)。例如,在表格或其他数据结构中,可以在最优修正系数与对应的γ值之间进行关联。曾被用来获得最小误差的值F、B和α也可以与这些最优系数有关联,供以后参考。如动作240和250所示,反复执行优化例行程序200,直到已为预定的γ值范围内的每个γ值确定最优修正系数为止。
将最优系数和γ值关联的数据结构可以被存储在一个或多个计算机可读介质中,(例如)作为软件包的一部分。当需要对图像进行光栅化时,将修正系数提交给GPU,在字体图示符呈现过程中使用。在一个实施例中,关联数据结构被直接存储在GPU中。在另一个实施例中,关联数据结构初步在被存储在GPU中之前跟前景颜色值和/或一些约束组合,以便配合特殊的硬件要求。
在图像呈现期间,使用关联数据结构,对GPU所接收的过滤的α值执行α修正(步骤130)。应理解,步骤130可以包括用于执行α修正的任何数量的对应的动作。在一个实施例中,执行α修正的步骤(步骤130)包括选择与显示器的预定γ值相对应的那组修正系数(动作140)的各个对应的动作。例如,通过使用以上所描述的关联数据结构并选择已与显示器的γ值有关联的修正系数,可以实现这一点。根据一个首选实施例,在显示呈现时执行选择或接收修正系数的动作(动作140),而在设计时执行计算那组所选择的修正系数的动作(动作120)。
接下来,使用修正系数和前景颜色来计算修正的α值,这些修正的α值将被用来混合显示像素的前景和背景(动作150)。在一个实施例中,通过使用以上根据图4所展示和描述的公式410,来实现这一点。特别是,αcorrected=α+α(1-α)(c1α+c2α+c3f+c4),其中的c1、c2、c3和c4包括修正系数,其中的f是显示像素的已知前景颜色,其中的α是显示像素的已知α值。如上所述,对于每个显示像素而言,可以计算修正的α值任何次数。举例来讲(不作限制),可以为显示像素的每个像素子分量计算修正的α。特别是,包括“红色”像素子分量、“绿色”像素子分量和“蓝色”像素子分量的显示像素可以包括三个过滤的α值,使用这三个过滤的α值来计算三个修正的α值。应理解,对于利用Microsoft ClearType_呈现技术来呈现字体图示符而言,这一点会特别有用。
一旦计算出修正的α值(动作150),就可以使用它们来执行图形混合过程(动作160),以便将对应的显示像素的前景颜色和背景颜色混合起来。
根据一个实施例,在GPU内执行两个步骤,即,执行α修正的步骤和执行混合操作(动作160)的步骤(步骤130),这有助于提高可行的字体图示符呈现速率。
图5展示了以上所描述的呈现过程的一项实施。但是,应理解,前述实施只是起说明性的作用,所以不应该被解释为限制本发明的范围。精通计算机编程实践技术领域的人可以仿造前述的各个例子。图5中所示的实施例展示:可以在现存的硬件的基础上实行本发明的呈现过程,并可以并行地计算多个颜色通道。
本实施例可以利用基于微软的DirectX_程序包的程序模块来执行本发明,该DirectX_程序包提供各种硬件类型的统一应用程序接口(API)。根据一个实施例,就本项实施假定硬件支持像素着色器版本1.1和混合因素机制(这里和以下使用Microsoft DirectX_术语)而言,它并不是完全独立于设备的。
在图5中,图表500表示硬件块与软件块之间的数据流。输入数据被显示为“γ级别”(512)块、“前景颜色”(514)块和“α质地”(520)块。γ级别是反映显示设备的物理显示特征的数字。使用该γ级别,从预先计算的表格或其他关联数据结构中选择适当的修正系数c1、c2、c3和c4。在“多项式系数计算器”510处选择修正系数。该多项式系数计算器也获得前景颜色,计算对应的比值,并将它们存入像素着色器(540)的恒定寄存器。
将要显示的形状(文本片段)准备成被示作“α质地”块520的二维阵列的α值。对每个像素而言,使用所提供的“取样器1”(530)、“取样器2”(532)和“取样器3”(534)这三个取样器,从α质地中三次取出这些α值。这些取样器为像素着色器540提供红色子分量、绿色子分量和蓝色子分量的α值。
像素着色器540为红色子分量、绿色子分量和蓝色子分量执行非线性计算并生成修正的α值的矢量,将这些颜色子分量提供给输出光栅器550。输出光栅器550通过使用从像素着色器540获得的α值,来提供背景颜色(从呈现靶面560中取得)与前景颜色(作为一个混合因素)之间的线性混合。所产生的颜色值被存储在呈现靶面560处。
像素着色器540处理浮点值的四维矢量。使用后缀.a、.r、.g和.b来引用矢量分量,这些后缀与α分量、红色分量、绿色分量和蓝色分量相对应。能够保存这些矢量的实体被称作“寄存器”(未示出)。像素着色器540运用输入寄存器(tn,即t0、t1、t2等)、恒定寄存器(cn)和临时寄存器(rn),来执行以上所描述的α修正。在以下所提供的例子中,临时寄存器r0用作输出寄存器。
根据本实施例,像素着色器540是可调整的硬件块,它利用用专用汇编语言或其他合适的编程语言所写的计算机可执行指令来加以控制,以执行本发明的某些动作。以下的例子是像素着色器程序的一个实施例,该像素着色器程序包括用于执行每分量线性立方α修正的计算机可执行指令。限据本实施例,为每个像素执行这个程序。如上所述,以下的程序接受最好预先准备好的恒定寄存器c0..c5中的多项式系数。当改变γ级别或前景颜色时,对这些多项式系数进行计算。以下针对像素着色器程序,来解释每个恒定寄存器的含义。
ps.1.1//declare pixel shader version
        <!-- SIPO <DP n="8"> -->
        <dp n="d8"/>
  // fetch alpha values from samplers to input registers t0,t1 and t2

  tex t0   // fetch red alpha

  tex t1   // fetch green alpha

  tex t2   // fetch blue alpha

  // combine the alpha values into single vector,

  // along the way multiplying these values by

  // alpha value of foreground color. This requires

  // constant registers c0..c2 to be prepared following way:

  // c0.rgba=f.a,0,0,0

  // c1.rgba=0,f.a,0,0

  // c2.rgba=0,0,f.a,0

  // where f.a is foreground alpha.

  mad r0,t0.a,c0,c0.a  // set red (c0.a replicates 0)

  mad r0,t1.a,c1,r0    // set green

  mad r0,t2.a,c2,r0    // set blue

  // Now r0 contains the alpha vector, referred below as ″x″.

  // Calculate the formula r0=x+x*(1-x)*(A*x+B),

  // where vectors A and B are prepared in constant

  // registers c3 and c4 respectively. Due to typical hardware

  // limitation (any value in cn should be in {-1,1} diapason)

  // the registers really contain decreased values: c3=A/4 and c4=
B/4.

  mad r1,c3,r0,c4  // r1=(A/4)*x+(B/4)

  mul_x4 r1,r1,1-r0 // r1=(1-x)*(A*x+B)

  mad r0,r0,r1,r0  // r0=x+x*(1-x)*(A*x+B)

  // end of pixel shader program.
以下的例子包括用于在多项式系数计算器520处实现过程的C++语言计算机可执行指令。
#include <d3d9.h>

  // The definition of the structure used to keep cubic-linear

  // gamma correction table.

  struct GammaTableRow {float c1,float c2,float c3,float c4};

  // Separate instance of GammaTableRow needed for each particular gamma
level;

  // it defines following non-linear transformation:

  // alpha_corrected=

  // alpha+alpha*(1-alpha)*(c1*alpha*f+c2*alpha+c3*f+c4),

  // where f is foreground color component.

  // The definition of the 4-dimensional vector structure:
struct Vector4d {float r,float g,float b,float a;};

  HRESULT PolynomialRatiosCalculator(

      const GammaTable* pTable,

      int gammaLevel,

      const Vector4f& f,//fore color

      IDirect3DDeviceg* pD3DDevice

      )
        <!-- SIPO <DP n="10"> -->
        <dp n="d10"/>
  // fetch the coefficients row for given gamma level:
const GammaTableRow& coefs=pTable[gammaLevel];

  // declare the array of constant registers values:
Vector4d c[5];

  // calculate the values of constant registers c0..c2:

  c[0].r=f.a;c[0].g=  0;c[0].b=  0;c[0].a=0;

  c[1].r=  0;c[1].g=f.a;c[1].b=  0;c[1].a=0;

  c[2].r=  0;c[2].g=  0;c[2].b=f.a;c[2].a=0;

  // calculate values A and B (see comments to pixel shader program)

  // in constant registers c3 and c4:

  c[3].r=(coefs.c1*f.r+coefs.c2)/4;

  c[3].g=(coefs.c1*f.g+coefs.c2)/4;

  c[3].b=(coefs.c1*f.b+coefs.c2)/4;

  c[3].a=0;

  c[4].r=(coefs.c3*f.r+coefs.c4)/4;

  c[4].g=(coefs.c3*f.g+coefs.c4)/4;

  c[4].b=(coefs.c3*f.b+coefs.c4)/4;

  c[4].a=0;

  // now submit prepared data to pixel shader constant registers:
HRESULT hr=pD3DDevice->SetPixelShaderConstantF(0,c,5);
return hr;
应理解,前述例子不包括关于在呈现期间可能被执行的其他操作的描述。特别是,前文没有描述质地准备、输出光栅器调整、关于顶点缓冲器的操作以及在呈现期间可以被执行的其他动作。没有描述这些操作,这是因为它们是以上所提到的Microsoft DirectX_的使用过程中的标准操作。相应地,应理解,本发明的方法、系统和计算机程序产品也可以包括其他呈现操作,这些呈现操作包括(但不局限于)质地准备、输出光栅器调整和顶点缓冲器操作。
总之,本发明在GPU处提供α修正,以补偿γ修正的缺乏。应理解,这可以大大提高呈现字体图示符和其他图像的总速度。虽然为以上所描述的许多例子提供对呈现字体图示符的特殊参考,但是,应理解,本发明也扩展到呈现除字体图示符以外的其他图像。相应地,本发明通过执行α修正以便补偿γ修正的缺乏,可以广泛地扩展到无须γ修正并用所需的方式来呈现任何图像。
操作环境
图6和下文意在简要、概括地描述一种用于执行本发明的某些元件的合适的计算环境。但是,应该强调的是:本发明并不一定局限于任何特定的计算机化系统,并可以在广阔的计算机化系统范围内加以实践。
根据一个实施例,本发明包括存储可以由计算设备来执行的计算机可执行指令(例如,程序模块)的一个或多个计算机可读介质。通常,程序模块包括执行特殊任务或实施特殊的抽象数据类型的例行程序、程序、对象、部件、数据结构等。计算机可执行指令、关联数据结构和程序模块表示用于执行这里所揭示的各种方法的步骤的程序代码方法的例子。这类可执行指令或关联数据结构的特定序列表示用于执行这些步骤中所描述的各项功能的对应的动作的例子。
精通该技术领域的人应理解,除单独的计算设备以外,还可以在具有许多类型的计算机系统配置的网络计算环境(包括个人计算机、手持设备、多处理器系统、基于微处理器的或可编程的消费电子设备、网络PC、小型计算机、大型计算机、它们的部件和类似的环境)中实践本发明。本发明也可以在分布式计算环境中加以实践,在这些分布式计算环境中,由本地处理设备和远程处理设备来执行任务,这些本地处理设备和远程处理设备通过通信网络被连接起来(要么通过硬连线链路、无线链路,要么通过硬连线链路或无线链路的组合)。在分布式计算环境中,程序模块可以位于本地记忆存储器设备和远程记忆存储设备中。
特别参照图6,用于执行本发明的某些元件的示范系统包括采用常规计算机620形式的通用计算系统(包括处理单元621、包含计算机可读介质的系统存储器622,以及将包括系统存储器622的各种系统部件耦合到处理单元621的系统总线623)。系统总线623可以是几种类型的总线结构(包括存储总线或存储控制器、外围总线和使用各种总线构造中的任何总线构造的局域总线)中的任何总线结构。该系统存储器包括只读存储器(ROM)624和随机存取存储器(RAM)625。基本输入/输出系统(BIOS)626可以被存储在ROM 624中,该基本输入/输出系统包含有助于在计算机620内的各个元件之间传送信息(例如,在启动期间)的基本例行程序。
计算机620也可以包括用于从磁性硬盘639读取并对其写入的磁性硬盘驱动器627、用于从可移动磁盘629读取或对其写入的磁盘驱动器628,以及用于从可移动光盘631(例如,CD-ROM或其他光学介质)读取或对其写入的光盘驱动器630。磁性硬盘驱动器627、磁盘驱动器628和光盘驱动器630分别通过硬盘驱动器接口632、磁盘驱动器接口633和光驱接口634被连接到系统总线623。这些驱动器及其关联的计算机可读介质为计算机620提供计算机可执行指令、数据结构、程序模块和其他数据的非易失存储。如上所述,也可以使用这些存储介质来存储使修正系数和γ值相关联的数据结构。虽然这里所描述的示范环境使用磁性硬盘639、可移动磁盘629和可移动光盘631,但是,也可以使用用于存储数据的其他类型的计算机可读介质(包括盒式磁带、快闪存储卡、数字通用盘、伯努里式磁带匣、RAM、ROM和类似的介质)。
包括一个或多个程序模块的程序代码方法可以被存储在硬盘639、磁盘629、光盘631、ROM 624或RAM 625上,包括操作系统635、一个或多个应用程序636、其他程序模块637和程序数据638。用户可以通过键盘640、定点设备642或其他输入设备(未示出)(例如,话筒、操纵杆、游戏垫、圆盘式卫星电视天线、扫描仪或类似的输入设备),将命令和信息输入计算机620。这些和其他的输入设备经常通过被耦合到系统总线623的串行端口接口646而被连接到处理单元621。作为选择,这些输入设备可以由其他接口(例如,并行端口、游戏端口或通用串行总线(USB))来加以连接。监视器647或另一个显示设备也经由诸如视频适配器648的接口被连接到系统总线623。在此上下文中,如上所述,视频适配器648被认为包括GPU。除该监视器以外,个人计算机通常还包括其他外围输出设备(未示出)(例如,扬声器和打印机)。
计算机620可以在使用与一台或多台远程计算机(例如,远程计算机649a和649b)的逻辑连接的联网环境中进行操作。远程计算机649a和649b都可以是另一台个人计算机、服务器、路由器、网络PC、对等设备或其他普通的网络节点,它们通常包括以上相对于计算机620所描述的许多或全部元件,尽管图6中只展示了记忆存储设备650a和650b及其关联的应用程序636a和636b。图6中所描绘的逻辑连接包括局域网(LAN)651和广域网(WAN)652,局域网651和广域网652在这里被举例示出,而不作限制。这类联网环境在办公室范围或企业范围的计算机网络、内联网和因特网中很普遍。
当用于LAN联网环境中时,计算机620通过网络接口或适配器653被连接到局域网651。当用于WAN联网环境中时,计算机20可以包括调制解调器654、无线链路或用于在广域网652(例如,因特网)上建立通信的其他装置。调制解调器654(可能是内置的,也可能是外置的)经由串行端口接口646被连接到系统总线623。在联网环境中,相对于计算机620所描绘的程序模块或其各个部分可以被存储在远程记忆存储设备中。应理解,所示的各种网络连接起示范的作用,可以使用在广域网652上建立通信的其他方法。
应理解,在不脱离本发明的精神或本质特征的前提下,本发明也可以在其他特殊的形式中得到具体表现。无论从哪方面来看,所描述的各个实施例都将被认为只起说明性的作用,而没有限制的作用。所以,本发明的范围由所附权利要求书(而不是由前文)来指明。权利要求书的相等物的含义和范围之内的所有变化都将被包含在该权利要求书的范围以内。

Claims (26)

1.在一种与显示设备连接的计算系统中,该显示设备具有被配置成显示图像的多个像素,该计算系统包括一个图形处理单元,该图形处理单元被配置成利用α值来执行混合过程,以控制显示图像的像素的前景颜色和背景颜色,一种方法用于修正由该图形处理单元接收的α值,以便允许在该显示设备处显示图像,并且无须进行γ修正,该方法的特征在于包括:
为一个或多个预定的γ值接收一组修正系数的动作,这些预定的γ值中的至少一个包括该显示设备的γ值;
接收过滤的α值的动作,该图形处理单元可以使用这些过滤的α值来执行图形混合过程,以确定在该显示设备处显示图像的像素的前景颜色和背景颜色;
接收这些像素的一种或多种前景颜色的动作;
用于对过滤的α值执行α修正以便获得修正的α值的步骤,所述α修正利用修正系数和这些前景颜色;以及,
一个动作:利用修正的α值来执行图形混合过程,作用于这些像素的前景颜色和背景颜色,以确定被用来在该显示设备处显示图像的像素值。
2.如权利要求1所述的方法,其特征在于;其中,用于执行α修正的步骤包括:
选择与显示设备的γ值相对应的那组修正系数的动作;以及,
利用过滤的α值、前景颜色和所选择的那组修正系数来计算修正的α值的动作。
3.如权利要求1所述的方法,其特征在于:还包括无须进行γ修正而在显示设备处显示图像的动作。
4.如权利要求1所述的方法,其特征在于:其中,过滤的α值包括每个像素的一组三个过滤的α值,该像素被用来在显示设备处显示图像。
5.如权利要求4所述的方法,其特征在于:其中,修正的α值包括与每个过滤的α值相对应的一组三个修正的α值,这些修正的α值从过滤的α值中被导出。
6.如权利要求1所述的方法,其特征在于:还包括一个动作:通过为一个或多个γ值中的每个γ值执行优化,来为这一个或多个γ值中的每个γ值计算那组修正系数;所述优化最小化α修正的误差。
7.如权利要求6所述的方法,其特征在于:其中,这一个或多个γ值包括范围从约1.0到约2.2、增量为0.1的γ值。
8.如权利要求6所述的方法,其特征在于:其中,所述优化由一组约束来加以限制,选择的所述那组约束用于确保:修正的α值在0与1之间的范围内。
9.如权利要求1所述的方法,其特征在于:其中,这一个或多个γ值中的每个γ值的那组修正系数包括第一个修正系数、第二个修正系数、第三个修正系数和第四个修正系数;其中,执行α修正的动作包括计算α修正值;其中,每个α修正值采取(α修正值)=(α+α(1-α)(c1αf+c2α+c3f+c4))的形式,其中,α是对应的过滤的α值,f是与该α值相对应的像素的前景,其中的c1是第一个修正系数,其中的c2是第二个修正系数,其中的c3是第三个修正系数,其中的c4是第四个修正系数。
10.在一种与显示设备连接的计算系统中,该显示设备具有被配置成显示图像的多个像素,该计算系统包括一个图形处理单元,该图形处理单元被配置成利用α值来执行混合过程,以控制显示图像的像素的前景颜色和背景颜色,一种方法用于修正由该图形处理单元接收的α值,以便允许在该显示设备处显示图像,并且无须进行γ修正,该方法的特征在于包括:
为一个或多个预定的γ值接收一组修正系数的动作,这些预定的γ值中的至少一个γ值包括该显示设备的γ值;
接收过滤的α值的动作,该图形处理单元可以将这些过滤的α值用于图形混合过程,以确定在该显示设备处显示图像的像素的前景颜色和背景颜色;
接收一种或多种前景颜色的动作;
选择与该显示设备的γ值相对应的那组修正系数的动作;
利用过滤的α值、前景颜色和所选择的那组修正系数来计算修正的α值的动作;以及,
一个动作:利用修正的α值来执行图形混合过程,作用于这些像素的前景颜色和背景颜色,以确定被用来在该显示设备处显示图像的像素值。
11.如权利要求10所述的方法,其特征在于:还包括无须进行γ修正而在显示设备处显示图像的动作。
12.如权利要求10所述的方法,其特征在于:其中,过滤的α值包括每个像素的一组三个过滤的α值,该像素被用来在显示设备处显示图像。
13.如权利要求12所述的方法,其特征在于:其中,修正的α值包括与显示图像的每个像素相对应的一组三个修正的α值,这些修正的α值从过滤的α值中被导出。
14.如权利要求10所述的方法,其特征在于:其中,为这一个或多个γ值计算那组修正系数的动作包括:为这一个或多个γ值中的每个γ值执行优化。
15.如权利要求14所述的方法,其特征在于:其中,这一个或多个γ值包括范围从约1.0到约2.2、增量为0.1的γ值。
16.如权利要求14所述的方法,其特征在于:其中,所述优化由一组约束来加以限制,选择的所述那组约束用于确保:修正的α值在0与1之间的范围内。
17.如权利要求10所述的方法,其特征在于:其中,这一个或多个γ值中的每个γ值的那组修正系数包括第一个修正系数、第二个修正系数、第三个修正系数和第四个修正系数;其中,执行α修正的动作包括计算α修正值;其中,每个α修正值采取(α修正值)=(α+α(1-α)(c1αf+c2α+c3f+c4))的形式,其中,α是对应的过滤的α值,f是与该α值相对应的像素的前景,其中的c1是第一个修正系数,其中的c2是第二个修正系数,其中的c3是第三个修正系数,其中的c4是第四个修正系数。
18.一种用于计算系统中的计算机程序产品,该计算系统与显示设备连接,该显示设备具有被配置成显示图像的多个像素,该计算系统包括一个图形处理单元,该图形处理单元被配置成利用α值来执行混合过程,以控制显示图像的像素的前景颜色和背景颜色,该计算机程序产品包括一个或多个计算机可读介质,这些计算机可读介质具有用于执行一种方法的计算机可执行指令,该方法用于修正由该图形处理单元接收的α值,以便允许在该显示设备处显示图像,并且无须进行γ修正,该方法的特征在于包括:
为一个或多个预定的γ值接收一组修正系数的动作,这些预定的γ值中的至少一个γ值包括该显示设备的γ值;
接收一个或多个过滤的α值的动作,该图形处理单元可以将这些过滤的α值用于图形混合过程,以确定在该显示设备处显示图像的像素的前景颜色和背景颜色;
接收一种或多种前景颜色的动作;
选择与该显示设备的γ值相对应的那组修正系数的动作;
利用过滤的α值和所选择的那组修正系数来计算修正的α值的动作,所述的计算动作利用这些修正系数和前景颜色;以及,
一个动作:利用修正的α值来执行图形混合过程,作用于这些像素的前景颜色和背景颜色,以确定被用来在该显示设备处显示图像的像素值。
19.如权利要求18所述的计算机程序产品,其特征在于:其中,这一个或多个计算机可读介质包括物理存储介质。
20.如权利要求18所述的计算机程序产品,其特征在于:还包括无须进行γ修正而在显示设备处显示图像的动作。
21.如权利要求18所述的计算机程序产品,其特征在于:其中,过滤的α值包括每个像素的一组三个过滤的α值,该像素被用来在显示设备处显示图像。
22.如权利要求21所述的计算机程序产品,其特征在于:其中,修正的α值包括与显示图像的每个像素相对应的一组三个修正的α值,这些修正的α值从过滤的α值中被导出。
23.如权利要求18所述的计算机程序产品,其特征在于:还包括一个动作:通过为这一个或多个γ值中的每个γ值执行优化,来为这一个或多个γ值中的每个γ值计算那组修正系数;所述优化最优化α修正的误差。
24.如权利要求23所述的计算机程序产品,其特征在于:其中,这一个或多个γ值包括范围从约1.0到约2.2、增量为0.1的γ值。
25.如权利要求23所述的计算机程序产品,其特征在于:其中,所述优化由一组约束来加以限制,选择的所述那组约束用于确保:修正的α值在0与1之间的范围内。
26.如权利要求18所述的计算机程序产品,其特征在于:其中,这一个或多个γ值中的每个γ值的那组修正系数包括第一个修正系数、第二个修正系数、第三个修正系数和第四个修正系数;其中,执行α修正的动作包括计算α修正值;其中,每个α修正值采取(α修正值)=(α+α(1-α)(c1αf+c2α+c3f+c4))的形式,其中,α是对应的过滤的α值,f是与该α值相对应的像素的前景,其中的c1是第一个修正系数,其中的c2是第二个修正系数,其中的c3是第三个修正系数,其中的c4是第四个修正系数。
CNB200310120767XA 2002-12-03 2003-12-03 一种用于补偿γ修正缺乏的α修正的方法 Expired - Fee Related CN100336011C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/308,510 2002-12-03
US10/308,510 US6933947B2 (en) 2002-12-03 2002-12-03 Alpha correction to compensate for lack of gamma correction

Publications (2)

Publication Number Publication Date
CN1514344A true CN1514344A (zh) 2004-07-21
CN100336011C CN100336011C (zh) 2007-09-05

Family

ID=32325857

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB200310120767XA Expired - Fee Related CN100336011C (zh) 2002-12-03 2003-12-03 一种用于补偿γ修正缺乏的α修正的方法

Country Status (6)

Country Link
US (3) US6933947B2 (zh)
EP (1) EP1429293B1 (zh)
JP (1) JP3955562B2 (zh)
KR (1) KR100887462B1 (zh)
CN (1) CN100336011C (zh)
BR (1) BR0306750A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101631189B (zh) * 2008-07-15 2012-08-29 鸿富锦精密工业(深圳)有限公司 图像合成系统及方法
CN102930572A (zh) * 2011-10-11 2013-02-13 微软公司 高速缓存使用抗锯齿技术再现文本的覆盖值

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6828975B2 (en) * 2001-03-01 2004-12-07 Microsoft Corporation Method and system for managing graphics objects in a graphics display system
US6933947B2 (en) * 2002-12-03 2005-08-23 Microsoft Corporation Alpha correction to compensate for lack of gamma correction
US7289126B1 (en) * 2003-05-23 2007-10-30 Nvidia Corporation Gamma-corrected texel storage in a graphics memory
US8274517B2 (en) * 2003-11-14 2012-09-25 Microsoft Corporation Systems and methods for downloading algorithmic elements to a coprocessor and corresponding techniques
JP2005151282A (ja) * 2003-11-18 2005-06-09 Fuji Xerox Co Ltd 画像処理装置、画像処理方法、およびプログラム
US7312801B2 (en) * 2005-02-25 2007-12-25 Microsoft Corporation Hardware accelerated blend modes
US7978204B2 (en) * 2005-04-29 2011-07-12 Nvidia Corporation Transparency-conserving system, method and computer program product to generate and blend images
US7522173B1 (en) 2006-02-23 2009-04-21 Nvidia Corporation Conversion of data in an sRGB format to a compact floating point format
US8139075B2 (en) * 2008-12-10 2012-03-20 Microsoft Corp. Color packing glyph textures with a processor
US8325177B2 (en) * 2008-12-29 2012-12-04 Microsoft Corporation Leveraging graphics processors to optimize rendering 2-D objects
CN102122323A (zh) * 2011-02-21 2011-07-13 四川大学 基于GPU的Gamma分析方法的快速实现
KR20140122539A (ko) * 2013-04-10 2014-10-20 삼성디스플레이 주식회사 표시 장치 및 그 구동 방법
US9779528B2 (en) * 2014-09-12 2017-10-03 Microsoft Technology Licensing, Llc Text realization
KR102472131B1 (ko) * 2015-09-03 2022-11-29 삼성전자주식회사 쉐이더 프로그램을 생성하는 방법 및 장치
KR102328054B1 (ko) * 2020-05-13 2021-11-17 주식회사 한글과컴퓨터 전자 문서에 삽입되어 있는 개체의 원본 데이터 유지를 위한 개체 보호 기능을 제공하는 전자 장치 및 그 동작 방법
KR102328047B1 (ko) * 2020-05-13 2021-11-17 주식회사 한글과컴퓨터 워터마크용 이미지를 통해 문서 상에 문서 보안 등급에 대한 정보를 삽입할 수 있는 전자 장치 및 그 동작 방법
CN114286163B (zh) * 2021-12-24 2024-02-13 苏州亿歌网络科技有限公司 一种序列图的录制方法、装置、设备及存储介质

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5128658A (en) * 1988-06-27 1992-07-07 Digital Equipment Corporation Pixel data formatting
JP3332404B2 (ja) * 1992-02-27 2002-10-07 キヤノン株式会社 画像モニタ装置及びその制御装置
JPH0775633A (ja) * 1993-06-30 1995-03-20 Shimadzu Corp 画像処理装置
US5473737A (en) * 1993-10-12 1995-12-05 International Business Machines Corporation Method and apparatus for displaying a composite image made up of a foreground image and a background image
JPH07282274A (ja) * 1994-04-04 1995-10-27 Mitsubishi Electric Corp グラフィック表示装置
KR960003448A (ko) 1994-06-09 1996-01-26 김광호 텔레비젼 화면 조정용 테스트 패턴 디스플레이 방법 및 그 장치
US5990903A (en) * 1997-02-03 1999-11-23 Micron Technologies, Inc. Method and apparatus for performing chroma key, transparency and fog operations
US6459428B1 (en) * 1998-02-17 2002-10-01 Sun Microsystems, Inc. Programmable sample filtering for image rendering
US6393145B2 (en) * 1999-01-12 2002-05-21 Microsoft Corporation Methods apparatus and data structures for enhancing the resolution of images to be rendered on patterned display devices
US6738526B1 (en) * 1999-07-30 2004-05-18 Microsoft Corporation Method and apparatus for filtering and caching data representing images
AU2001264640A1 (en) 2000-05-16 2001-11-26 Sun Microsystems, Inc. Graphics system using a blur filter
CN1338662A (zh) * 2000-08-15 2002-03-06 二一零零科技股份有限公司 改进的影像处理技术
US7034828B1 (en) * 2000-08-23 2006-04-25 Nintendo Co., Ltd. Recirculating shade tree blender for a graphics system
US6879717B2 (en) * 2001-02-13 2005-04-12 International Business Machines Corporation Automatic coloring of pixels exposed during manipulation of image regions
US6831645B2 (en) * 2002-03-05 2004-12-14 Sun Microsystems, Inc. System and method for performing font operations when background color is transparent
US6897879B2 (en) * 2002-03-14 2005-05-24 Microsoft Corporation Hardware-enhanced graphics acceleration of pixel sub-component-oriented images
US6933947B2 (en) * 2002-12-03 2005-08-23 Microsoft Corporation Alpha correction to compensate for lack of gamma correction
US7369139B2 (en) * 2003-11-20 2008-05-06 Honeywell International, Inc. Background rendering of images

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101631189B (zh) * 2008-07-15 2012-08-29 鸿富锦精密工业(深圳)有限公司 图像合成系统及方法
CN102930572A (zh) * 2011-10-11 2013-02-13 微软公司 高速缓存使用抗锯齿技术再现文本的覆盖值
US9171386B2 (en) 2011-10-11 2015-10-27 Microsoft Technology Licensing, Llc Caching coverage values for rendering text using anti-aliasing techniques

Also Published As

Publication number Publication date
EP1429293A3 (en) 2005-11-09
EP1429293A2 (en) 2004-06-16
JP3955562B2 (ja) 2007-08-08
CN100336011C (zh) 2007-09-05
US7142220B2 (en) 2006-11-28
KR100887462B1 (ko) 2009-03-10
US20040104917A1 (en) 2004-06-03
BR0306750A (pt) 2004-12-28
KR20040048839A (ko) 2004-06-10
US20050237339A1 (en) 2005-10-27
US6985157B2 (en) 2006-01-10
EP1429293B1 (en) 2013-05-29
JP2004185008A (ja) 2004-07-02
US6933947B2 (en) 2005-08-23
US20050151753A1 (en) 2005-07-14

Similar Documents

Publication Publication Date Title
CN100336011C (zh) 一种用于补偿γ修正缺乏的α修正的方法
EP1735748B1 (en) System and method for processing graphics operations with graphics processing unit
US7532222B2 (en) Anti-aliasing content using opacity blending
US7614041B2 (en) System for reducing the number of programs necessary to render an image
TWI430112B (zh) 資料處理硬體
JP5294313B2 (ja) ベジェ曲線描画装置、ベジェ曲線描画方法およびプログラム
EP1775680A2 (en) High-level program interface for graphics operations
US7190366B2 (en) Method and system for a general instruction raster stage that generates programmable pixel packets
US20140184634A1 (en) System for Optimizing Graphics Operations
MXPA02009997A (es) Metodos y sistemas para la colocacion en trama de supermuestreo asimetrico de datos de imagen..
CN1825353A (zh) 硬件加速混合模式
CN1219256A (zh) 利用混合逻辑完成彩色空间转换的方法和装置
JP2001052190A (ja) 直接マルチ−レベルフィリングによるラスタ形状合成方法
CN101266773A (zh) 用于图像处理的抖动系统和方法
US8411105B1 (en) Method and system for computing pixel parameters
EP0485833A2 (en) A method for executing graphics color saturating arithmetic instructions in a data processor
EP0485776A2 (en) A method for executing graphics pixel packing instructions in a data processor
JPH10269370A (ja) データ変換装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150428

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150428

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070905

Termination date: 20191203

CF01 Termination of patent right due to non-payment of annual fee