throbber
Open Prepress Interface—
`Version 2.0
`
`28 August 1995
`
`This is a draft proposal. It is not yet final, and may change significantly
`before final release.
`
`A PDF version of this specification can be found at:
`
`http://www.adobe.com/Support/TechNotes.htm|
`or
`
`ftp://ftp.adobe.com/pub/adobe/DeveloperSupport/TechNotes/PDFfiles
`
`Free Acrobat Readers (PDF viewing/printing) can be downloaded from:
`
`http://www.adobe.com/Software/Acrobat
`or
`
`ftp://ftp.adobe.com/pub/adobe/Applications/Acrobat
`
`If you have comments or suggestions regarding OPI, please send them
`to:
`
`devsup-person@adobe.com.
`
`OPI—Version 2.0
`
`1
`
`PETITIONERS Ex. 1019, p. 1
`
`PETITIONERS Ex. 1019, p. 1
`
`

`

`Copyright © 1986-1988, 1992, 1995 by Adobe Systems Incorporated.
`All rights reserved.
`
`No part of this publication may be reproduced, stored in a retrieval
`system, or transmitted,
`in any form or by any means, electronic,
`mechanical, photocopying, recording, or otherwise, without the prior
`written consent of the publisher.
`
`PostScript is a trademark of Adobe Systems Incorporated. All instances
`of the name PostScript in the text are references to the PostScript
`language as defined by Adobe Systems Incorporated unless otherwise
`stated. The name PostScript also is used as a product trademark for
`Adobe Systems’ implementation of the PostScript language interpreter.
`
`Any references to a ”PostScript printer,” a ”PostScript file,” or a
`“PostScript driver" refer to printers, files, and driver programs
`(respectively) which are written in or support the PostScript language.
`The sentences in this specification that use ”PostScript language” as an
`adjective phrase are so constructed to reinforce that the name refers to
`the standard language definition as set forth by Adobe Systems
`Incorporated.
`
`PostScript, the PostScript logo, Display PostScript, Adobe, the Adobe
`logo, Adobe Illustrator, Aldus,
`l’ageMaker, TIFF, OPI, TrapWise,
`TranScript, Carta, and Sonata are trademarks of Adobe Systems
`Incorporated or its subsidiaries, and may be registered in some
`jurisdictions.
`
`Apple, LaserWriter, and Macintosh are registered trademarks and
`Finder and System 7 are trademarks of Apple Computer, Inc. Microsoft,
`MS-DOS and Windows are registered trademarks of Microsoft
`Corporation. UNIX is a registered trademark of UNIX System
`Laboratories, Inc., a wholly owned subsidiary of Novell, Inc. All other
`trademarks are the property of their respective owners.
`
`CPI—Version 2.0
`
`PETITIONERS Ex. 1019, p. 2
`
`PETITIONERS Ex. 1019, p. 2
`
`

`

`Table of Contents
`
`1 Introduction .......
`
`................................................ 4
`
`1.1 Terminology ............................................................................................................ 4
`1.2 References ............................................................................................................... 5
`
`2 OPI 2.0 Comments, in Order of Appearance ............................... 6
`%%BeginOPl:
`2.0 ......................................................................................... 6
`%%Disti|led
`(no keywords) ........................................................................ 6
`%%ImageFileName:
`<fi|ename> ............................................................................. 6
`%%Mainlmage:
`<Main|mage|D> ..................................................................... 6
`%%TlFFASCIlTag:
`<tagnumber> <tagtext> ........................................................ 7
`%%ImageDimensions;
`<width> <height> .................................................................. 8
`%%ImageCropRect;
`<|eft> <top> <right> <bottom> .............................................. 8
`%%ImageOverprint:
`false | true .............................................................................. 9
`%%Imagelnks:
`<type> <numberiofiinks> <name_ofvink,1> <ink71ileve|>
`...<name_of_ink_n> <ink_n_|evel> ........................................ 10
`............................................................................................ 12
`<set the graphics state>
`(no keywords) ...................................................................... 13
`%%Beginlncludedlmage
`<pixelswide> <pixelshigh> ................................................... 13
`%%IncludedlmageDimensions:
`<qua|ity> .............................................................................. 14
`%%I ncludedlmageQuality:
`............................................................................................ 15
`<|mage Operands St Data>
`(no keywords) ...................................................................... 16
`%%Endlncludedlmage
`(no keywords) ..................................................................... 16
`%%EndOPl
`3 Requirements for OPI Producers .................
`..... . ...... 17
`4 Requirements for OPI Consumers .............................................. 21
`5 Examples ............
`.....
`...................................... 23
`5.1 Example 1 ............................................................................................................. 23
`5.2 Examplez ............................................................................................................. 24
`6 Design and Usage ...................................................................... 25
`6.1 Design Requirements ............................................................................................. 25
`6.2 Workflow Options .................................................................................................. 25
`7 Reading from a named file ......................................................... 27
`8 Change History ..............................
`.........
`28
`Changes from Version 1.3 to Version 2.0 ................................................................ 28
`Colophon ...................... . ............................................................. 29
`
`OPI—Version 2.0
`
`3
`
`PETITIONERS Ex. 1019, p. 3
`
`PETITIONERS Ex. 1019, p. 3
`
`

`

`1
`
`Introduction
`
`The Open Prepress Interface (OPI) is a collection of PostScript®
`language conventions that allow low—resolution proxy images to be
`used for page layout. The high—resolution versions of the images are
`automatically stripped in later. Both desktop prepress software and
`non-desktop prepress systems can use OPI to minimize network traffic
`and image storage requirements.
`
`1.1 Terminology
`
`OPI Producer: An application that writes OPI comments—typically, a
`page layout program.
`
`OPI Consumer: An application that reads OPI comments and (usually)
`inserts high-resolution image data into the PostScript language stream.
`This is typically an OPI server, but other prepress applications can also
`be OPI Consumers.
`
`An application can be both an OPI Producer and an OPI Consumer. In
`fact, all OPI Consumers must also be valid OPI Producers if they wish
`to write out an altered PostScript language stream, since some other
`OPI Consumer may need to do things to the stream,
`too. An
`application should never assume that there is no other application
`between it and the imagesetter.
`
`Bitmap: A 1-bit deep image, typically imaged using the PostScript
`operator imagemask.
`
`Grayscale image: A monochrome image that is deeper than 1 bit per
`pixel (typically 8 bits).
`
`0P] context: Everything between "%%BeginOP|: 2.0” and the
`matching %%EndOP| comment, inclusive. Ol’l contexts may be
`included in EPS files that may be incorporated into other PostScript
`language streams.
`
`Proxy image: The lower—resolution version of the image that is
`imported into a page layout program or other OPI Producer.
`
`OPI—Version 2.0
`
`PETITIONERS Ex. 1019, p. 4
`
`PETITIONERS Ex. 1019, p. 4
`
`

`

`Main image: The high-resolution version of the image, as it was
`scanned or otherwise acquired, from which the proxy image is created.
`
`1.2
`
`References
`
`l. EQsLSgipt Language Reference Manual, Second Edition, Adobe
`Systems Incorporated. In this specification, we use the terms ”Red
`Book” or ”PSLRM" to refer to the l’ostScript Language Reference
`
`m 2
`
`. Adobe Technical Note #5001, “Document Structuring
`Conventions—Version 3.0," also found as Appendix G in the PSLRM.
`The name "Document Structuring Conventions” is sometimes
`abbreviated to "DSC."
`
`3. ”Proposal for Color Separation Conventions for PostScript Language
`Programs," Adobe Systems Technical Note #5044, dated 12/14/89.
`
`4. TIFF Revision 6.0, Aldus Corporation, June 3, 1992. As of June 1995,
`the TIFF specification is available in Adobe Acrobat PDF format at:
`
`http://www.adobe.com/Support/TechNotes.htm|
`or
`
`ftp://ftp.adobe.com/pub/adobe/DeveloperSupport/TechNotes/PDFfiles
`
`Free Acrobat Readers (PDF viewing/printing) can be downloaded from:
`
`http://www.adobe.com/Software/Acrobat
`or
`
`ftp://ftp.adobe.com/pub/adobe/Applications/Acrobat
`
`5. OPI White Paper, 1995, Apple Computer, Inc.,
`Cupertino, CA 95014-6299.
`(408) 996-1010.
`
`1 Infinite Loop
`
`OPI—Version 2.0
`
`5
`
`PETITIONERS Ex. 1019, p. 5
`
`PETITIONERS Ex. 1019, p. 5
`
`

`

`2 OPI 2.0 Comments, in Order of
`
`Appearance
`
`%%BeginOPl:
`
`2.0
`
`Marks the beginning of an OF] 2.0 context.
`
`%%Disti|led
`
`(no keywords)
`
`%%Disti|led is included in the stream at this point if and only if the
`original PostScript language stream was converted into an Adobe
`Portable Document Format (PDF) file, and then back to a PostScript
`language stream.
`
`An OPI Consumer should use this information to reapply color to a
`colorized grayscale image, based on the CPI color comments, since the
`normal automatic color application environment created by the
`original OPI Producer is disabled in a PostScript->PDF—>PostScript
`transformation.
`
`%%lmageFileName: <fi|ename>
`
`%%ImageFileName: must be written by an OPI 2 Producer for every
`image in the stream that may be the target of OPI image substitution.
`
`This comment records the full pathname of the low—resolution proxy
`image. filename is an elementary DSC type.
`
`The low-resolution proxy image is typically a TIFF or EPS file. (Some
`applications require low-resolution proxy images to be TIFF files.)
`
`%%Mainlmage:
`
`<Main|magelD>
`<Main|magelD> ::= <textline>
`
`An OPI 2.0 Producer must write this comment if the low-resolution
`
`proxy image is a TIFF file and the lmageID TIFF tag (#32781) exists.
`
`Main/mageID is the full pathname of the original, high—resolution file,
`or any other identifying string that uniquely identifies the main image.
`The Main/magelD string is a textline, an elementary DSC type.
`
`OPl—Version 2.0
`
`PETITIONERS EX. 1019, p. 6
`
`PETITIONERS Ex. 1019, p. 6
`
`

`

`Note
`
`The high-resolution image is NOT required to he in TIFF format. It can be
`in any format that the CPI Consumer wishes to support, including Scitex
`CT, EPS, and Quark DCS files.
`
`If the low-resolution proxy image is an EPS file instead of a TIFF file,
`the ID of the main image should be stored in a %%Mainlmage:
`comment in the EPS file, typically as part of an OPI context in the EPS
`file.
`
`If the %%Mainlmage: comment does not exist, an OPI Consumer must
`do the best it can to find and link to the correct high-resolution image,
`using the name given in the %%lmageFileName: comment. If the image
`does not exist at the indicated location, the OPI Consumer can ask the
`operator to help re-link the image or use search path rules that have
`been set up ahead of time.
`
`%°/oT|FFASC|ITag:
`
`<tagnumber> <tagtext>
`<tagnumber> :2 <uint>
`(TIFF tag number, in decimal)
`<tagtext> ::= <textline>
`(contents of TIFF field)
`
`An OPIZ Producer must write this comment if the low—resolution proxy
`image is a TIFF file and if there are ASCII fields in the file. The Producer
`writes a separate comment for each TIFF ASCII field.
`
`An OPIZ Producer uses this comment convention to pass TIFF ASCII
`field values from the proxy image to an OPI Consumer.
`
`tagnumber is the TIFF tag number. It is a S-digit or less decimal number,
`and is not padded with zeros or spaces.
`
`Examples:
`
`%%TIFFASCIITag: 270 (Sunrise from Waikiki)
`%%TIFFASCIITag: 306 (1995:02:14 13:55:59)
`%%TIFFASCIITag: 316 (Apple PowerMac\250 8100)
`%%TIFFASCIITag: 33432 (Copyright\251, Carl Stevensen, 1995. All rights
`reserved.)
`%%TIFFASCHTag: 65535 (First substring.)
`%%+ (Second substring.)
`
`is the value of the corresponding TIFF
`The value of %%TIFFASCIITag:
`ASCII field. The OPI Producer must translate tagtext into textlines, an
`elementary DSC data type. 50, for example, the Producer must check
`for special characters such as carriage return and line feed and translate
`them into the correct PostScript language escape sequences (see
`sections G.4.6 and 3.2.2 in the Red Book.) The Producer must break
`
`OPI—Version 2.0
`
`7
`
`PETITIONERS Ex. 1019, p. 7
`
`PETITIONERS Ex. 1019, p. 7
`
`

`

`comment lines longer than 255 characters into multiple lines using
`the ‘%%+’ continuation convention.
`
`Note that there may be more than one substring in a TIFF ASCII field.
`In the TIFF file, each substring is terminated with a null (zero) byte.
`When written out by the Producer, each substring after the first must
`start with a separate ’%%+’ comment line.
`
`%°/olmageDimensions:
`
`<width> <height>
`<width> ::= <real>
`
`<height> ::= <real>
`
`%%ImageCropRect:
`
`<left> <top> <right> <bottom>
`<|eft>
`::= <real>
`
`<top>
`<right>
`<bottom>
`
`::= <real>
`::= <real>
`:2 <real>
`
`%%ImageDimensions: and %%|mageCropRect: together specify the
`rectangular subset of the source image that is to be mapped onto the
`unit square (and thence onto the page), where (0,0) represents the
`upper left corner of the source image.
`
`If the image has not been cropped or placed inside of a frame by the
`OPI Producer, then these comments are optional, and the entire source
`image will be mapped onto the page.
`
`0 1
`
`2
`3
`
`4 5 6 7
`
`8
`
`9 .
`10 {
`
`
`
`;
`'-—~ Image
`%%lmageDimensions: 7 10
`
`Cropping rectangle
`%%lmageCropRect: 2 3 6 9
`
`PETITIONERS Ex. 1019, p. 8
`
`OPI—Version 2.0
`
`PETITIONERS Ex. 1019, p. 8
`
`

`

`width and height give the dimensions of the proxy image, in pixels or
`any other convenient units. The values of width and height do not
`matter; the only requirement is that
`
`0 <= left < right <= width, and
`
`0 <= top < bottom <= height
`
`This information allows the CPI Consumer to improve printing
`
`performance by including only the part of the image data that is
`actually Visible after the user of a page layout application has cropped
`it or placed it inside a frame, thereby reducing print time.
`
`If sending less data is not possible, then the OPT Consumer must send
`the whole image, scale and translate the image such that only the
`cropped part of the image is mapped to the unit square.
`
`In OPI Z the Producer is responsible for setting up a rectangular
`clipping path based on the destination rectangle (actually, it could be a
`parallelogram if the image is skewed) for the image.
`
`Note 1: Any clipping from a TIFF clipping path must come after the rectangular
`clip path setting. Reversing the order greatly increases probability of
`limitcheck errors due to path complexity.
`
`Note 2: An OPI 2 Consumer must not do its own clipping, or it will run a risk of
`causing limitcheck errors due to a complex TIFF clipping path that may be
`in effect at the time.
`
`See Figure 1.
`
`%%|mage0verprint:
`
`false | true
`
`Optional. The assumed default is false.
`
`Set to true if the image is to overprint underlying objects, and false if
`the image is to knock out underlying objects.
`
`”Overprinting” means that any separations not included in the
`%%lmagelnks: list (see below) are not to be erased in the area of the
`image. This could allow, for example, a Black image to be printed on
`top of a light blue background, without erasing the inks that make up
`the light blue color. In the area of the image, you would have, say,
`
`CPI—Version 2.0
`
`9
`
`PETITIONERS Ex. 1019, p. 9
`
`PETITIONERS Ex. 1019, p. 9
`
`

`

`cyan and magenta ink as well as black ink. Overprinting can be useful
`for avoiding trapping problems, but can introduce unwanted colors if
`used indiscriminately.
`
`”Knock out” means that any separations not included in the
`%%|magelnks: list are to be erased in the area of the image. In the
`example in the previous paragraph, imaging the black image would
`erase any inks that make up the light blue background, so that only
`black ink remains in the area of the image.
`
`%%|mageOverprint: is applicable to bitmap and grayscale images only.
`
`%%|magelnks:
`
`<type> <number_ofwinks> <name_of_ink_1> <ink_1_level>
`...<namefiof,ink_n> <ink_n_level>
`
`<type>
`<number of inks>
`<name of ink n>
`<ink n |eve|>
`
`::=
`::=
`::=
`::=
`
`<monochrome | registration i fu||_co|or>
`<uint>
`<text>
`<real>
`
`Optional. The assumed default is:
`
`%%|magelnks: monochrome 1
`
`(Black) 1.0
`
`for black and white and grayscale images, and
`
`%%lmagelnks: fu||_co|or
`
`for RGB, CMYK, and CIE Lab images.
`
`%%|magelnks: lists the inks that have been applied to the image, so
`that an OPI Consumer that can perform color separations knows
`whether or not data for this image should be included on a particular
`separation.
`
`type can be monochrome, registration, or fu||_co|or (explained in detail
`below).
`
`number_of_inks is the number of inks that make up the color that has
`been applied to the image.
`
`nameiofginkm is the name of the ink.
`
`ink_n_level is the amount of that ink to be applied to black (e.g., deep
`shadow) areas of the image. 1.0 represents full (100% dot) ink coverage,
`0.0 represents none of that ink.
`
`'|0
`
`CPI—Version 2.0
`
`PETITIONERS EX. 1019, p. 10
`
`PETITIONERS Ex. 1019, p. 10
`
`

`

`monochrome
`
`For bitmap and grayscale images, use the type monochrome or
`registration.
`
`If a “spot” (i.e. "custom”) ink is applied to a monochrome image, just
`that ink will be in the ink list, so that the comment would be written
`as:
`
`%%|magelnks: monochrome 1
`
`(Rose Red) 1.0
`
`If a process color is applied to a monochrome image, then four inks
`make up the color, so the comment would be written as:
`
`%%|mage|nks: monochrome4 (Cyan) .23 (Magenta) .45 (Yellow) .10
`(Black) .02
`
`If the image uses a single process ink, such as Black, the %%|mage|nks:
`comment would list just Black:
`
`%%|mage|nks: monochromel
`
`(Black) 1.0
`
`If this Black image is to be overprinted, so that ink layers other than
`Black are unaffected, be sure to write out %%|mage0verprint: true
`before the %%|mage|nks: comment.
`
`If a “hifi” (multi-ink) color is applied to a monochrome image, then
`there can be any number of inks. For example, we might have:
`
`%%|mage|nks: monochrome 5 (Cyan) .10 (Magenta) .35 (Yellow) .50
`(Black) .05 (Red) .60
`
`A duotone can be created by applying 2 inks to a monochrome image.
`For example, we might have:
`
`%%|mage|nks: monochrome 2 (Black) .50 (Sepia) .80
`
`However, it is also generally desirable to adjust the transfer curves
`differently for each in k; such manipulations are not prohibited, but are
`beyond the scope of this specification.
`
`Alternatively, a duotone, tritone, or quadtone can be specified as a
`multi-channel image,
`in which case the appropriate %%|mage|nks:
`keyword would be fucholor.
`
`Generally, an Ol’IZ Consumer does not need to worry about applying
`colors to monochrome images, since OPIZ Producers must create the
`appropriate color environment by defining appropriate procedures and
`operators. All the OPIZ Consumer needs to do is decide whether to
`
`OPl—Version 2.0
`
`11
`
`PETITIONERS EX. 1019, p. 11
`
`PETITIONERS Ex. 1019, p. 11
`
`

`

`insert image data or not, based on whether it is doing separations or
`composite printing, which separation is currently being printed, and
`which separations are affected by this image.
`
`In particular, the OPIZ Consumer should use the OPlimage operator
`for grayscale images.) The OPIZ Producer must define the OPlimage
`operator so that the correct color is automatically applied to the image.
`
`The OPlimage Operator uses the same arguments as the standard
`PostScript language image operator.
`
`The inks listed in this comment must also be listed in the DSC
`comments %%DocumentCustomColors: or %%DocumentProcessColors:.
`
`registration
`
`If a monochrome image is to be printed on every separation, the
`comment would be written as:
`
`%%|magelnks:
`
`registration
`
`ful|_co|or
`
`For RGB, CMYK, and CIE Lab 3- or 4—component color images, or any
`image containing more than 1 component, the %%|magelnks:
`comment would be:
`
`%%|magelnks:
`
`full_co|or
`
`Note We do not directly specify a list ofinks for multicomponent, ”fucholor”
`images, since the CPI Consumer typically wants to control the process of
`converting deep RGB and Lab images into the appropriate CMYK or hifl
`output color space for the currentjob.
`
`<set the graphics state>
`
`Before %%Beginlncludedlmage, an OPI 2 Producer must set up the
`graphics state in such a way as to allow an OPI 2 Consumer to not have
`to deal with color, position, or clipping paths.
`
`An OPI 2 Producer must first invoke the PostScript operator save or
`gsave, to allow the graphics state to be restored at the end of the OH
`context.
`
`Note Using save/restore has the advantage of allowing all VM used by the
`imaging process to be recovered. In particular, the string used for buffering
`image data may be quite large for wide images, and if there are multiple
`images on a page, this can start consuming a significant amount of VM.
`On the other hand, using save/restore increases the likelihood of hitting
`
`12
`
`OP|——Version 2.0
`
`PETITIONERS EX. 1019, p. 12
`
`PETITIONERS Ex. 1019, p. 12
`
`

`

`the PostScript interpreter limit on the number of save/restore contexts that
`can be nested. gsave/grestore has a higher limit than save/restore in most
`implementations, and is faster, but VM consumption could be a significant
`issue if there are many large images on a single page.
`
`In OPI 2, the responsibility for image placement shifts from the
`Consumer to the Producer. After the save or gsave, an OPI 2 Producer
`must include PostScript language code that maps a unit square to the
`desired position, size, and rotation on the page. The Consumer is no
`longer responsible for positioning the image. This coordinate mapping
`technique is a major difference between OPI 2 and previous versions of
`the CPI specification.
`
`PostScript language code to set the color of bitmaps and grayscale
`images also goes here, as well as code to set up any clipping path that
`may be associated with the image.
`
`°/o°/oBegin|nc|uded|mage
`
`(no keywords)
`
`Required (must be written by GP] 2 Producers), whether proxy data is
`present or not.
`
`%%Begin|ncluded|mage and %%Endlncludedlmage bracket the actual
`image data and the call to the appropriate image procedure.
`
`There must be no executable code between %%Begin|ncluded|mage and
`the last %%lncludedlmageXXXX comment, %%lncludedlmageQuality:.
`
`<pixe|swide> <pixe|shigh>
`%%IncludedlmageDimensions:
`<pixe|swide>
`::=
`<uint>
`<pixe|shigh>
`:2
`<uint>
`
`Must be written by OPI 2 compliant Producers if image data is included
`between %%Begin|ncluded|mage and %%Endlncludedlmage.
`
`Do not write the %%lncludedlmageDimensions: comment if no image
`data is included. Do not write the %%IncludedImageDimensions:
`comment if the Producer does not know what the pixel dimensions
`are, which will generally be the case when the proxy image is an EPS
`file.
`
`pixelswide and pixelshigh give the width and height of the included
`image, in pixels, before cropping.
`
`OPI—Version 2.0
`
`13
`
`PETITIONERS EX. 1019, p. 13
`
`PETITIONERS Ex. 1019, p. 13
`
`

`

`These values are used by an OPl Consumer to determine if the image
`data that is present in the PostScript language file is low—resolutionv
`and hence needs to be replaced with a high-resolution version—or is
`already high-resolution and does not need to be replaced. This can
`easily be determined by comparing the %%lnc|udedlmageDimensions:
`values with the dimensions of the high-resolution image that is about
`to be placed into the PostScript language stream.
`
`The %%lnc|udedlmageDimensions: values may well not be the same as
`the %%|mageDimensions: values. For example, if a user chooses a "for
`position only” print setting, the Producer may send only a subset of
`the placed image data to the printer.
`
`°/o°/o|nc|uded|mageQuality:
`
`<qua|ity>
`<qua|ity>
`
`2::
`
`<real>
`
`Must be written by OPI Z compliant Producers if image data is included
`between %%Begin|ncludedlmage and %%End|ncludedlmage.
`
`This is the last of the %%lnc|uded|mageXXX comments. OPl 2
`Consumers can expect to find image operands and image data after
`this comment.
`
`Do not write the %%|nc|uded|mageQuality: comment if no image data
`is included.
`
`Quality can be 1.0, 2.0, or 3.0.
`
`A quality of 10 means that the included image data has definitely been
`subsampled, so that an OPI Consumer should make every attempt to
`substitute higher—resolution image data.
`
`There are at least two conditions that should cause an OPI Producer to
`
`set a quality value of 1.0:
`
`(1) The 0P1 Producer has subsampled the version of the image that
`was imported into it.
`
`(2) The image imported by the OPI Producer is a TIFF file, the
`OPIProxy tag (#351) was present in the TIFF file, and the value of
`the OPIProxy tag is 1. This marks the image as a low-resolution
`proxy image.
`
`A quality of 2.0 means that the included image data was the highest
`resolution that could be found by the CPI Producer, but a higher
`
`14
`
`OPI—Version 2.0
`
`PETITIONERS EX. 1019, p. 14
`
`PETITIONERS Ex. 1019, p. 14
`
`

`

`<|mage Operands 8t Data>
`
`resolution version may exist elsewhere. An OPI Consumer should
`attempt to replace it with a higher—resolution version if possible, but
`not finding a higher—resolution version may not be a fatal error.
`
`A quality of 3.0 means that the included image data is certain to be
`sufficient for final printing. An OPI Consumer should not replace the
`included image data with new image data.
`
`An Ol’l Consumer should be prepared to do something reasonable even
`if the value for quality is something other than 1.0, 2.0, or 3.0.
`
`If image data is included, it goes here, along with a call to the desired
`form of the image operator and its operands.
`
`The image matrix must be set to [w 0 0 h neg 0 h], where wand h are the
`width and height of the image, in pixels. (This assumes that the visual
`top of the image is the first scan line. If the visual top of the image is
`the last scan line, use [w 0 O h 0 h].) This causes the image to map itself
`onto the unit square. As mentioned above, the Ol’l Producer must have
`previously set up the appropriate transformation to map the unit
`square onto the correct place on the page. In contrast to the 0P1 1.3
`conventions, this OH 2 convention allows an OPI Consumer to not
`have to know or care where the image goes on the page.
`
`If the low-resolution proxy image is an EPS file, PostScript language
`code to map the EPS file to the unit square goes here, before the EPS
`data. Code to map an EPS file onto the unit square might look
`something like:
`
`[A O O D E F] concat
`
`where A : 1/(urx-IIX), D = l/(ury—lly), E = -||x/(urx-|lx), F = —||y/(ury-lly),
`
`and (llx,|ly),(urx,ury) are the %%BoundingBox: coordinates of the EPS
`file.
`
`if you prefer to think about it in 2 separate operations, and
`Or,
`remembering that the concat operator tare-multiplies the new matrix
`with the CTM, so that we must do the operations in right-to-left order:
`
`l/(urx-le) l/(ury—lly) scale
`-||x -||y translate
`
`Producers must not put anything between %%lnc|udedlmageQua|ity:
`and %%End|nc|udedlmage that is intended to apply to 3 replaced high-
`
`OPl—Version 2.0
`
`15
`
`PETITIONERS EX. 1019, p. 15
`
`PETITIONERS Ex. 1019, p. 15
`
`

`

`resolution image, since everything between these two comments is
`stripped out by an OP] Consumer.
`
`If image data is included in the file, the data and the call to the image
`operator must be surrounded by the %%Begin(End)Data comments; see
`the DSC document. These comments allow the OPI Consumer to scan
`
`quickly to the end of the image data, and not get confused by trying to
`scan binary data. These comments must not be written if no data is
`included.
`
`%%End|nc|udedlmage
`
`(no keywords)
`
`Required, whether proxy data is present or not.
`
`This marks the end of the OP] 2 included image data.
`
`See 0/o%Begin|nc|uded|mage.
`
`%%EndOP|
`
`(no keywords)
`
`%%EndOP| must be written by OPI 2 Producers.
`
`This marks the end of the OPI 2 context.
`
`See %%BeginOPI:.
`
`Following %%EndOPl, the CPI Producer must call the PostScript
`operator restore, 0r grestore, to restore the interpreter state to its
`condition prior to the %%BeginOPI: comment.
`
`16
`
`OPl—Version 2.0
`
`PETITIONERS EX. 1019, p. 16
`
`PETITIONERS Ex. 1019, p. 16
`
`

`

`3 Requirements for OPI Producers
`
`An 0P1 Producer can be any program that either creates a PostScript
`language stream containing OPI comments, or adds or changes OPI
`comments in an existing stream. The initial OPI Producer is typically a
`page layout or illustration program, but it could also be an OPI server
`that wishes to create EPS proxy images using OPI 2 comments.
`
`The requirements for OH 2 Producers have changed significantly from
`OPI 1.x requirements, to reduce the effort required to design and
`implement an OPl Consumer.
`
`The PostScript language file created by an OPl 2 Producer must
`conform to the following requirements:
`
`Document Structuring Conventions. PostScript-language files
`containing OP] 2 comments must adhere to the Document Structuring
`Conventions, version 3.0 or later. See Appendix G, "Document
`Structuring Conventions—Version 3.0,” in the PostScript Language
`Reference Manual, Second Edition, or Adobe Technical Note #5001,
`“Document Structuring Conventions, Version 3.0.” In this
`specification, we use the abbreviation “DSC” to refer to the Document
`Structuring Conventions.
`
`The Backus-Naur form (BNF) used in the DSC 3.0 document is also
`used in this specification.
`
`Color Separation Conventions. The color separation conventions
`provide guidelines for structure and content of PostScript language files
`for use in color separation environments. The current version does not
`require the use of PostScript Level 2 separation facilities. See Adobe
`Systems' “Proposal for Color Separation Conventions for PostScript
`Language Programs, ” Technical Note #5044, for further information.
`
`Prepare the graphics state. An OPI 2 Producer must set up a number
`of aspects of the graphics state before the %%Beginlncludedlmage
`comment, so that the OPI Consumer does not have to deal with them.
`In particular, the OPI 2 Producer must:
`
`0
`
`set up a rectangular clipping path around the image. (The rect-
`angle becomes a parallelogram if the image is skewed.)
`
`CPI—Version 2.0
`
`17
`
`PETITIONERS EX. 1019, p. 17
`
`PETITIONERS Ex. 1019, p. 17
`
`

`

`-
`
`-
`
`-
`
`-
`
`-
`
`set up the coordinate system (CTM) so that a unit square gets
`mapped to the correct position, scale factor, skew, and rotation of
`the image on the page.
`
`create PostScript language instructions that will apply the correct
`color to a monochrome image, following the standard color
`separation conventions for findcmykcustomcolor, setcustomcolor,
`customcolorimage, and so on.
`
`In particular a procedure named OPlimage must be defined by an
`OPI 2 Producer. The OPlimage procedure is used by both Producer
`and Consumer for all grayscale images. The parameters for
`OPlimage are the same as for the Level 1 image operator, but it
`should call customcolorimage, using previously set color informa-
`tion.
`
`create PostScript language instructions to set up a clipping path
`for a TIFF file that contains a clipping path. Use
`%ADBBegin|mageC|ipPath and %ADBEnd|mageClipPath (no argu—
`ments) to encapsulate the clipping path, since an OPI Consumer
`may want to replace it with a higher-resolution version.
`
`create PostScript language instructions to effect any changes made
`to the lightness or contrast of a monochrome image, typically by
`setting up the appropriate transfer function. Be careful to prepend
`to the current transfer function.
`
`create PostScript language instructions to effect any changes made
`to the screen frequency or spot function of an image.
`
`The OPI 2 Consumer does not have to worry about any of these things.
`The only things an OPI Consumer must do are find the high—resolution
`image, decide whether the image is of a higher resolution than any
`image data already in the PostScript language stream, and, if so, insert
`the high resolution image data into the PostScript language stream,
`replacing any lower—resolution data.
`
`OPI 2.0 vs OPI 1.x. It is up to the OPI Producer whether or not to write
`out both OPI 1.x and OPI 2 comments. it is possible to create a
`PostScript language stream that is readable by both OPI 1.x and OP] 2
`Consumers. See Example 2 below in the Examples section.
`
`We anticipate that Adobe applications will discontinue support for OPI
`1.x comments as soon as the major Producers and Consumers have
`switched over to OPI 2.
`
`18
`
`OPI—Version 2.0
`
`PETITIONERS EX. 1019, p. 18
`
`PETITIONERS Ex. 1019, p. 18
`
`

`

`Composite vs separated PostScript language streams. OPI was
`originally designed for use with composite color files. However some
`prepress applications now use 01’] with separated PostScript language
`streams, so that they can avoid dealing with the intricacies of
`p

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket