SourceForge

PNG and MNG tools
Alpha Composition Patent

PNG Web Site

NEW information!


Resent-Date: Wed, 9 Jan 2002 23:52:32 -0500 (EST)
Date: Thu, 10 Jan 2002 15:50:32 +1100
From: Dean Jackson 
To: www-svg@w3.org, svg-developers@yahoogroups.com
User-Agent: Mutt/1.3.22i
Subject: updated IPR statements for SVG 1.0
Resent-From: www-svg@w3.org
X-Mailing-List:  archive/latest/2008
X-Loop: www-svg@w3.org
Sender: www-svg-request@w3.org
Resent-Sender: www-svg-request@w3.org
List-Id: 
List-Help: 
List-Unsubscribe: 

There have been some updates to the IPR licenses made
for SVG 1.0 (all positive!).

Apple have announced a royalty-free license for the
patent they named early in the SVG 1.0 process. 
Before this annoucement, the best the W3C could say was
that the SVG Working Group made a concerted effort to
avoid the patent. Apple have recently made public
statements that they support Web standards, such as
SVG, being royalty free.

Canon also ammended their royalty free statement to
refer to the latest version of the W3C Patent Policy.

Details can be found on the SVG 1.0 Patent page
http://www.w3.org/2001/07/SVG10-IPR-statements.html

Dean
The Apple announcement is dated December 17, 2001, and applies only to SVG 1.0 implementations.

The following information may be useful in overturning Apple's patent no. 5,379,129, January 3, 1995, "Method for compositing a source and destination image using a mask image", application dated May 8, 1992, or in persuading Apple, Inc., to disclaim it.


  • The patent: Search for "5,379,129" at patft.uspto.gov/netahtml/srchnum.htm
  • The claims:
    1. A method for compositing a source image and a destination image using a mask image to produce a result image in a digital image processing system comprising: on a pixel-by-pixel basis, using the mask image to select between the source and destination images, where a black color value for a mask pixel selects the color value of the corresponding pixel of the source image, and a white color value for a mask pixel selects the color value of the corresponding pixel of the destination image, and where an intermediate color value for a mask pixel selects a weighted average between source and destination pixel color values, and writing said selected color values to corresponding pixels of the result image.
    2. A method as in claim 1 wherein for each pixel, the selections are done in color space on a color component by color component basis.
    3. A method as in claim 1 further comprising displaying the result image.
    4. A method as in claim 1 wherein said method is applied during an operation of a copy procedure for copying pixels from said source image to said destination image.
    5. A method as in claim 4 wherein said copy procedure also includes changing the pixel depth, image size, and visible regions of said destination image.
    6. A method as in claim 1 wherein said method produces patterned text in said destination image by performing the method with the source image being a pattern and the mask image being text.
    7. A method as in claim 1 wherein said method produces anti-aliased text in said destination image by performing the method with the source image being a pattern and the mask image being anti-aliased text.
    8. A method for compositing a source image and a destination image using a mask image to produce a result image in a digital image processing system comprising: on a pixel-by-pixel basis, combining images using boolean expression according to the formula;
            result=((1-mask)*source)+(mask*destination);
      
      wherein for each said pixel, said combining is done in a color space on a color component by color component basis; and displaying the result image.

  • Prior art for Claim 1 (using a separate "image" file to contain the alpha channel)
    1. Smith, Alvy Ray, "Alpha and the History of Digital Compositing, Tech Memo 7, Aug 15, 1995. He claims to have invented the "integral alpha channel" which was an improvement over a simple digital "matte", in the 1970's. Simple digital matte technology existed before then. A simple digital matte is the essence of Claim 1 of the Apple patent. The article is available at http://www.alvyray.com. Select "memos", then the little red square next to the abstract of the "Alpha and the History" memo. The memo itself is in PDF format.
    2. Wallace, Bruce A., "Merging and Transformation of Raster Images for Cartoon Animation", Proc. ACM SIGGRAPH '81 Vol 15, No. 3, August, 1981, pp. 253-262. Available at http://graphics.stanford.edu/papers/merging-sig81
    3. HiRes QFX
    4. EBU technical standard N16-1998 (PDF), first issued 1989, describes a separate "key" signal which is used to combine two video signals. Available at "http://www.ebu.ch/pmc_n16-1998.pdf.
    5. Jackson, et. al, "Apparatus for combining video signals", filed July 18, 1988, awarded July 25, 1989. Search for "4,851,912" at patft.uspto.gov/netahtml/srchnum.htm
    6. The 944 (1984 hardware implementation of alpha processing with separate frame buffers for two images and an alpha channel)
    7. All prior art for Claim 2, below, is also prior art for Claim 1.

  • Prior art for Claim 2 (multiple-channel alpha)
    1. SGI IrisGL:
    2. OpenGL Programming Guide, Copyright 1993. The blendfunction from IrisGL became glBlendFunc(), the BF_DC mode became GL_DST_COLOR, and the other modes are also present with different names.
    3. The IrisGL blendfunction was also documented in an IBM manual, March 1990.
    4. PbmPlus "pnmarith" function, Copyright 1991

      This is a function that combines two images, channel by channel. It is trivial to use this function to do alpha composition of two images using a third image as a triple-alpha-channel, using a script similar to the following:

      # 3-way blending (infringes on claims 1, 2, and 8 of Apple patent 5,379,129)
      # Copyright 2001, Glenn Randers-Pehrson
      # blend3 alpha.ppm file1.ppm file2.ppm
      # blended file is on standard output
      
      ppmmake "#ffffff" $1 $2 > ffffff.ppm
      pnmarith -mult $3 $4 > alpha-times-a.ppm
      pnmarith -subtract ffffff.ppm $3 > 1-minus-alpha.ppm
      pnmarith -mult 1-minus-alpha.ppm $5 > alpha-minus-1-times-b.ppm
      pnmarith -add alpha-times-a.ppm alpha-minus-1-times-b.ppm
      rm alpha-times-a.ppm 1-minus-alpha.ppm alpha-minus-1-times-b.ppm ffffff.ppm
      
    5. "A Physically Based Colour Model", by Robert J. Oddy and Philip J. Willis, on three-channel alpha blending, which was presented to Eurographics 1991.

  • Prior art for Claims 3, 4, and 5

    These claims depend on Claims 1 and 2 and simply extend them to include displaying or copying the result of the operation. These ideas are included in the IRISGL and OpenGL references cited above.


  • Prior art for Claims 6 and 7 (Using an image of text as alpha)
    1. "PostScript(R) Language Reference Manual", Adobe Systems Incorporated, Copyright 1986 (4th Printing, November 1987):

      Page 182: Imagemask is most useful for printing characters represented as bitmaps. Such bitmaps represent masks through which a color is to be transferred; the bitmaps themselves do not have a color.


  • Prior art for Claim 8
    • See prior art for Claim 2, above.
  • Additional background information
    1. T. Porter, T. Duff, SIGGRAPH '84, "Compositing Digital Images", Conference Proceedings, Association for Computing Machinery, Volume 18, Number 3, July 1984.
    2. Foley, Van Dam, Feiner, and Hughes "Computer Graphics: Principles and Practices", copyright 1990, 1996, describes various forms of alpha composition, in the chapter on Illumination and Shading/Transparency. In particular, the paragraph on Filtered Transparency discusses different alpha values for different colors.

  • If you know of additional references that describe prior art for the patent, send it to randeg@alum.rpi.edu

This matter is of interest to PNG and MNG Development because they use alpha channels. In particular, MNG can express an alpha channel as a separate grayscale image, which would appear to infringe on Claim 1 of this patent. The PNG format itself does not seem to infringe on any claim, but PNG-supporting applications that can combine a grayscale image and an RGB image into an RGBA image appear to infringe on Claim 1.


[HOME] | [UP]