WO2000064189A2 - Safe color limiting of a color on a digital nonlinear editing system - Google Patents

Safe color limiting of a color on a digital nonlinear editing system Download PDF

Info

Publication number
WO2000064189A2
WO2000064189A2 PCT/US2000/010082 US0010082W WO0064189A2 WO 2000064189 A2 WO2000064189 A2 WO 2000064189A2 US 0010082 W US0010082 W US 0010082W WO 0064189 A2 WO0064189 A2 WO 0064189A2
Authority
WO
WIPO (PCT)
Prior art keywords
luma
color
value
chroma
component
Prior art date
Application number
PCT/US2000/010082
Other languages
French (fr)
Other versions
WO2000064189A3 (en
WO2000064189A9 (en
Inventor
Raymond D. Cacciatore
Michael D. Laird
Original Assignee
Avid Technology, Inc.
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 Avid Technology, Inc. filed Critical Avid Technology, Inc.
Priority to AU42429/00A priority Critical patent/AU4242900A/en
Publication of WO2000064189A2 publication Critical patent/WO2000064189A2/en
Publication of WO2000064189A3 publication Critical patent/WO2000064189A3/en
Publication of WO2000064189A9 publication Critical patent/WO2000064189A9/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • H04N9/646Circuits for processing colour signals for image enhancement, e.g. vertical detail restoration, cross-colour elimination, contour correction, chrominance trapping filters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • H04N9/67Circuits for processing colour signals for matrixing

Definitions

  • DNLE Digital non-linear editing
  • the digital media may be a digitized version of a film or videotape or digital media produced through live capture onto a disk of a graphics or animation software application.
  • Example commercial DNLE systems include the Media Composer® or the Avid® SymphonyTM video production system or NewsCutter® news editing system available from Avid Technology, Inc.
  • DNLE Digital Nonlinear Editing, New Approaches to Editing Film and Video, 1993 , by Thomas Ohanian.
  • Digital video is a form of digital media typically processed on a DNLE.
  • Digital video is comprised of a sequence of digital images. Digital images are comprised of an array of picture cells called pixels.
  • DNLE systems often process digital video at multiple rates.
  • the video may correspond to a playback rate of 30 (more precisely 29.97) frames per second (fps) in accordance with the NTSC (National Television Standards Committee) standards, or 25 fps in accordance with PAL (phase alternate line) standards.
  • the digital video may be captured from film which typically has a rate of 24 frames per second.
  • the United States of America and Japan have generally adopted the NTSC standards and European countries have generally adopted the PAL standards. There are multiple other formats for high definition and digital television signals.
  • One frame defines a complete video image that can be displayed on a television screen.
  • Frames include a series of odd and even lines of pixels. Frames are divided into two fields of information, where a first field includes all the odd lines of pixels, and a second field includes all the even lines of pixels.
  • a first field includes pixels of lines 1, 3, 5, . . ., 525
  • the second field includes pixels of lines 2, 4, 6, . . ., 524.
  • the fields are alternatively scanned and drawn to the television screen. This alternate scanning is called interlacing. Formats using images that are not interlaced are called progressive.
  • a variety of data formats can be used to represent the color of pixels within a digital image. Formats may be classified into two major categories: composite signals and component signals. Component formats represent a color as multiple components, each component defining a value along a dimension of the color space in which the color being represented is defined.
  • a composite video is an analog signal that uses a high frequency subcarrier to encode color information with a signal that encodes luminance information. The subcarrier is a sinewave of which the amplitude is modulated by the saturation of the color represented by the signal, and the hue of the color is encoded as a phase difference from a color burst.
  • Analog composite signals are generally used to broadcast television video signals.
  • RGB Red, Green, Blue
  • CMYK Cyan, Magenta, Yellow, Black
  • CMYK is a format commonly used by printers.
  • the CMYK components are color opposites of RGB components. In a three-dimensional coordinate system, each component of either the RGB or the CMYK format represents a value along an axis, the combination of the values defining a cubic color space.
  • HSL Human, Saturation, Lightness or Luminance
  • HSV Human, Saturation, Value
  • the luma component represents a value along a luma axis
  • the hue component represents the angle of a chroma vector with respect to the luminance axis
  • the saturation component represents the magnitude of the chroma vector.
  • the combination of the values defines a hexagonal cone-shaped color space.
  • YCrCb, YUV, and YIQ are three formats that represent a color with a luma component Y, and two chroma components, Cr and Cb, U and V, or I and Q, respectively, that define a chroma vector.
  • each component of either the YCrCb, YUV, and YIQ format represents a value along an axis, the combination of the values defining a cylindrical color space around the luma axis.
  • the chroma components define the chroma vector.
  • the luma component can be used independently to represent a pixel in a black and white image to be displayed, for example, with a black and white monitor.
  • YCrCb is a format used for digital video signals; YUV and YIQ are formats used for analog video signals.
  • a standard YcrCb format is the 4:2:2 Y 6 o ⁇ CrCb format (CCIR 601 format), where the luma component, Y 6 o ⁇ , of the pixels of the component signal are transmitted at twice the frequency of the chroma components, Cr and Cb (hence the notation 4:2:2). Only every other pixel (even pixel) is represented with chroma components.
  • the components of the pixels, PO, PI, P2, P3, etc., of a 601 format signal are transmitted as follows: Cr0N0,Cb0, Yl, Cr2, Y2, Cb2, Y3, etc.
  • the chroma components of the odd pixels are determined by averaging, combining, interpolating, etc., the chroma components of the preceding even pixel and the next even pixel.
  • the 4:2:2 sampling rate is used to save bandwidth on the broadcast medium, and also saves storage space when storing the signal.
  • the analog component YUV format is the format from which an analog composite signal may be constructed.
  • artifacts may be seen in a portion of an image. These artifacts may be reduced by modifying the luminance component. By modifying an unsafe color such that both the luma component and the chroma components are modified, the unsafe color is mapped to the closest safe color in the color space and such artifacts are further reduced.
  • unsymmetrical relationships between the components of a component color may involve complex operations to be perfomed on the components to determine if the color is safe, and to determine the modifications to be applied to an unsafe color to make it a safe color.
  • Safe color modification provides a method of transforming a component color into a safe color space. A component color of a first color space is received. The component color is transformed into a safe color space by applying conversion terms to each component of the component color. The transformation into a safe color space creates symmetrical relationships between the color components, which permits simplified operations to be performed on the components.
  • a method is provided of generating components for a pixel to provide safe color from components of the pixel according to a threshold defining safe color.
  • the components include a luma component, a first chroma component, and a second chroma component. It is determined whether a combination of a first luma value associated with the luma component and a first chroma value associated with the first and second chroma components of the pixel exceeds the threshold defining safe color. If the combination exceeds the threshold defining safe color, the luma component of the pixel is modified to generate safe components.
  • the first and second chroma components of the pixel are modified to generate components within the threshold defining safe color.
  • a method of generating correction values for modifying components of a pixel to provide a safe color according to a threshold defining safe color The color components are transformed into safe space. It is determined whether a combination of the transformed color components exceeds the threshold defining safe color. If the combination exceeds the threshold defining safe color, component correction values are generated to be applied to the components and produce safe components.
  • Fig. 1 is a data flow diagram illustrating an embodiment of a system for safe color modification
  • Fig. 2 is a data flow diagram illustrating an embodiment of the system of Fig. 1 in more detail;
  • Fig. 3 is a data flow diagram illustrating an embodiment of the operation of a luma threshold converter
  • Fig. 4 is a flow chart illustrating an embodiment of a process performed by a luma clipper
  • Fig. 5 is a flow chart illustrating an embodiment of a process performed by the system of Fig. 1 ;
  • Fig. 6 is a data flow diagram illustrating an embodiment of the operation of the safe color limiter of Fig. 2;
  • Fig. 7 is a flow chart illustrating an embodiment of a process performed by the conversion term generator of Fig. 6;
  • Fig. 8 is a flow chart illustrating an embodiment of a process performed by the luma converter of Fig. 6;
  • Fig. 9 is a flow chart illustrating an embodiment of a process performed by the chroma converter of Fig. 6;
  • Fig. 10 is a flow chart illustrating an embodiment of a process performed by the chroma clipper of Fig. 6;
  • Fig. 11 is a flow chart illustrating an embodiment of a process performed by the safe color limiter of Fig. 6;
  • Fig. 12 is a flow chart illustrating an embodiment of a process performed by the correction generator of Fig. 6;
  • Fig. 13 is a flow chart illustrating an embodiment of a process performed by the safe color generator of Fig. 6;
  • Fig. 14 is a block diagram illustrating a known format for a color component signal
  • Fig. 15 is a data flow diagram illustrating an embodiment of a safe odd luma generator
  • Fig. 16 is a flow chart illustrating an embodiment of a process performed by the safe odd luma generator of Fig. 15;
  • Fig. 17A is an illustration of the double cone space color space of a Y 6 o ⁇ C b C r component color;
  • Fig. 17B is a cross-sectional view of the double cone of Fig. 17A;
  • Fig. 18 A is a diagram illustrating the double cone representing safe colors of a YUV IRE , component color;
  • Fig. 18B is a cross-sectional view of the double cone of Fig. 18 A;
  • Fig. 19 is an illustration of a double triangle representing the double cone of Fig. 18A collapsed into two-dimensional space
  • Fig. 20 is the double triangle of Fig. 19 in safe space
  • Fig. 21 is a diagram illustrating how space color modification is applied to unsafe pixels.
  • Fig. 22 is a diagram illustrating how the safe color modification applied in Fig. 21 affect the two chroma components of the component color.
  • Safe color modification modifies a luma component and chroma components of a color to produce the closest safe color of a three-dimensional color space.
  • Safe color modification simplifies the process of modifying the color components by transforming each component of a pixel into a coordinate system, referred to herein as safe color space or safe space. After the pixel values are transformed into safe space, safe color modification checks whether a combination of the transformed values is unsafe. If the combination is unsafe, the correction values that are applied to the original color components are determined, and then applied to the original color components.
  • the transformation into safe space allows simpler mathematical operations to be performed in determining the correction values and applying these values to the components. The simpler operations allow the color corrections to be applied to the luma and chroma components at a faster rate, thus increasing the rate at which safe color modification of a color can be performed.
  • the safe color transformation creates symmetrical relationships between the components of a component color that simplify the mathematical operations and provide a few common formulas capable of being applied to determine all correction values, regardless of the value of unsafe color to be corrected.
  • the symmetrical relationships are realized by incorporating three general steps into the transformation: a) converting the elliptical cross-section of a three-dimensional safe color double-cone of a three- dimensional space into a circular cross-section, b) collapsing the three-dimensional double-cone into a two-dimensional double-triangle in two-dimensional color space, and c) centering a luma axis defined by the double-triangle about the luma origin such that the double triangle is collapsed into a triangle defined by only positive values.
  • Described below is a system and method of safe color modification including a transformation into safe space that incorporates the three general steps. Following the description of system and method is a detailed description of the principles from which the system and method are derived.
  • FIG. 1 is a data flow diagram illustrating an embodiment of a safe color modification system 1.
  • a color limiter 4 has an input for receiving a component signal 2 and an input for receiving color limiting parameters 8. Applying the color limiting parameters 8 to the component signal 2, the color limiter 4 generates a safe component signal 6 through its output.
  • FIG. 2 is a data flow diagram showing an embodiment of the safe color modification system 1 of FIG. 1 in more detail.
  • the component signal 2 includes a first chroma component 10, a second chroma component 12, and a luma component 14.
  • the color limiter 4 includes a luma clipper 16 and a safe color limiter 24.
  • the safe component signal 6 includes a safe first chroma component 26, a safe second chroma component 28, and safe luma component 30.
  • the color limiting parameters 8 include luma threshold values 20 and safe color parameters 22.
  • the luma clipper 16 receives through its inputs a luma component 14 and luma threshold values 20. The luma clipper 16 then generates a checked luma component 18 that is sent through its output to the safe color limiter 24 in a manner described in more detail below in connection with Fig. 4.
  • the safe color limiter 24 receives through its inputs components 92 and the safe color parameters 22.
  • the components 92 include the first chroma component 10, the second chroma component 12, and the checked luma component 18.
  • the safe color limiter 24 generates the safe first chroma component 26, the safe second chroma component 28, and the safe luma component 30, in a manner to be described below in connection with Fig. 5.
  • the luma threshold values are converted from IRE units as defined by NTSC into Y' 60 ⁇ C r C b (601 units).
  • This embodiment may be used, for example, if the luma threshold values are received from a user interface (not shown) that operates with IRE units, and the received component signal 2 is in 601 units.
  • a user interface (not shown) that operates with IRE units, and the received component signal 2 is in 601 units.
  • An example of such a user interface is described in U.S. Patent Application "Source Color Modification on a Digital Nonlinear Editing System" by Robert Gonsalvez, filed on even date herewith, and in "Apparatus and Method for Generating and Displaying Histograms of Color Images for Color Correction," by Robert Gonsalvez, filed on even date herewith.
  • FIG. 3 is a data flow diagram illustrating an embodiment of luma threshold conversion.
  • a luma threshold converter 36 receives through its inputs a luma high threshold value 32 in IRE units, a luma low threshold value 34 in IRE units, and a black level setup value 45.
  • the black level setup value is a value representing an offset that is applied to a luma value in IRE units before converting to a luma component Y of a component signal in 601 units.
  • the luma threshold converter 45 applies the black level setup value 45 to the IRE threshold values 32 and 34 to generate a luma high threshold value 40 in 601 units and a luma low threshold value 38 in 601 units at its output.
  • Equation la and lb are described in detail below.
  • FIG. 4 is a flow chart illustrating the operation of the luma clipper (16 in Fig. 2, 42 in Fig. 3).
  • a luma high threshold value 40 is compared to the value of the luma component 14. If it is determined that the value of the luma component 14 is greater than the luma high threshold value 40, then the value of the luma component is clipped to the luma high threshold value 40, i.e., the checked luma component 18 is set equal to the luma high threshold value 40 in step 112. In an embodiment, an interrupt or event may be generated in step 113 to indicate that a luma value is too high.
  • This interrupt or event may be used to interrupt the safe color modification process in order to inform a user that a luma component with a value outside of the range defined by the threshold values has been received.
  • the interrupt or event may be addressed after all the pixels of a display field have been processed by the color limiter 4.
  • no interrupt or event is generated in step 113, and the luma clipper 16 automatically clips the luma component 14.
  • step 114 the luma component is not clipped, i.e., the checked luma component 18 remains equal to the value of the luma component 14.
  • step 116 the checked luma component 18 is then compared to the luma low threshold value 38. If the checked luma component 18 is less than the luma threshold value 38, then the luma component 14 is clipped to the luma low threshold value, i.e., the checked luma component 18 is set equal to the low threshold value in step 118.
  • step 119 an interrupt or event may be generated, similar to step 113.
  • step 1 16 If in step 1 16 it is determined that the checked luma component 18 is not less than the luma threshold value, then the luma component is not clipped, i.e., in step 120 the checked luma component remains equal to the luma component 14. Comparisons of the luma component to the high and low thresholds may be performed in any order or in parallel.
  • FIG. 5 is a flow chart illustrating the operation of the safe color limiter 24 of FIG. 2.
  • step 122 conversion terms are generated from the safe color parameters 22.
  • step 124 the conversion terms are applied to the safe color limiter inputs 92 to generate converted color components, which include a converted luma component, a converted first luma component, and a converted second chroma component.
  • step 1208 it is determined whether a combination of the converted luma and chroma components exceeds a threshold value. If the combination of components does not exceed the predetermined threshold value in step 128, the components are output as the safe color components in step 130. Otherwise, if the combination does exceed a threshold value in step 128, then in step 132 color correction terms are generated.
  • step 134 the color correction terms are applied to the safe color limiter inputs.
  • the safe color components of the components 6 Fig. 1 then may be combined to form a safe composite signal that can be used for broadcast or transmission.
  • FIG. 6 is a data flow diagram illustrating the operation of the safe color limiter 24 of FIG. 2 in more detail.
  • the safe color limiter 24 includes a conversion term generator 44, a color converter 58, a safe color checker 74, a correction generator 80, and a safe color generator 90.
  • the color converter 58 includes a luma converter 60, a chroma clipper 62, and a chroma converter 64.
  • the safe color parameters 22 include a color high threshold value 49, a color low threshold value 47, and the black level setup value 45.
  • the color threshold values 49 and 47 define a high and low threshold value, respectively, for a combination of the checked luma component 18, the first chroma component 10, and the second chroma component 12.
  • the conversion term generator 44 receives the color high threshold value 49, the color low threshold value 47, and the black level setup value 45.
  • the conversion term generator 44 generates conversion terms 46, which include a luma scale value 48, a luma offset value 50, a first chroma scale value 52, a second chroma scale value 54, and an inverse luma scale value 56.
  • the inverse luma scale value 56 is an inverse of the luma scale value 48.
  • the color converter 58 receives the conversion terms 46 and safe color limiter inputs 92, which include the checked luma component 18, the first chroma component 10, and the second chroma component 12.
  • the color converter applies the conversion terms 46 to the color limiter inputs 92 to generate converted color values 66.
  • the converted color values 66 include a converted luma value 68 and a converted chroma value 70.
  • the luma converter 60 receives the luma scale value 48, the luma offset value 50, and the checked luma component 18 as inputs and generates the converted luma value 68 at an output.
  • the chroma converter 64 receives the first chroma scale value 52, the second chroma scale value 54, the first chroma component 10, and the second chroma component 12 as inputs and generates a combined chroma value 72 at its output.
  • the chroma clipper 62 receives the combined chroma value 72 and the converted luma value 68 and generates the converted chroma value 70.
  • the safe color checker 74 receives the converted color values 66, generates correction flags 76, and may generate an interrupt 75. In some embodiments, an event may be generated. In an embodiment, the correction flags 76 are stored in an odd luma register 78, which is described in more detail below.
  • the correction generator 80 receives correction flags 76, the inverse luma scale value 56, the combined chroma values 72 and the converted color values 66.
  • the correction generator 80 generates color correction values 82, which include a luma correction value 88 and a chroma correction value 84, to be applied to the safe color limiter inputs 92.
  • the safe color generator 90 receives the safe color limiter inputs 92 and the color correction values 82, and generates the safe component signal 6, which includes the safe luma component 26, the safe first chroma component 28, and the safe second chroma component 30. If no modification is to be made to inputs 92, the inputs 92 simply pass through the generator 90 as the output components 6.
  • FIG. 7 is a flow chart illustrating an embodiment of the operation of the conversion term generator 44.
  • steps 132-136 the color high threshold value 49, the color low threshold value 47, and the black level setup value 45, respectively, are received. These steps and other steps in this flowchart may be performed in any order or in parallel.
  • step 138 a luma scale factor 48 is generated.
  • the luma scale factor 48 is generated by the execution of the following equation:
  • Equation 2 where setup is the black level setup value 45 , Color High is the color high threshold value 49, and Color_Low is the color low threshold value 47.
  • the derivation of Equation 2 is described in detail below.
  • the luma offset 50 is generated.
  • the luma offset 50 is generated by execution of the following equation: . , v ⁇ _. 2569 (235 setup - 1600 - 109.5 • (Color High + Color Low)
  • Equation 3 where setup is the black level setup value 45, Color High is the color high threshold value 49, and Color_Low is the color low threshold value 47.
  • the first chroma scale value 54 is generated.
  • the first chroma scale value is generated by the following equation:
  • the second chroma scale value 54 is generated.
  • the second chroma scale value is defined by the equation:
  • Equation 5 where setup is the black level setup value 45, Color_High is the color high threshold value 49, and Color_Low is the color low threshold value 47.
  • step 146 an inverse luma scale factor is generated.
  • the inverse luma scale factor is simply the inverse of Equation 2 above:
  • FIG. 8 is a flow chart illustrating an embodiment a process performed by the luma converter 60.
  • steps 148 through 150 the luma scale value 48, the luma offset value 50, and the checked luma component 18 are received.
  • the order of steps 148 through 150 may be performed in any order or in parallel.
  • step 152 the converted luma value 68 is generated.
  • the converted luma value may be defined by the following equation:
  • Fig. 9 is a flow chart illustrating an embodiment of a process performed by the chroma converter 64. In steps 153 and 155, the first and second chroma scale values 52 and 54, and the first and second chroma components 10 and 12 are received.
  • a converted first chroma component is generated.
  • the converted first chroma component may be defined by the following equation:
  • a converted second chroma component is also generated.
  • the converted second chroma component is defined by equation 9 as follows:
  • Vss is the converted second chroma component
  • C r is the second chroma component 12
  • C r _Scale is the second chroma scale value 54.
  • the combined chroma value 72 is generated by combining the converted first and second chroma components.
  • the combined chroma value 72 is defined by equation 10 as follows: Equation 10 : .-ss " : ⁇ £ + vl SS » where Css is the combined chroma value 72, Uss is the converted first chroma component, and Vss is the converted second component. The derivation of equation 10 is described in detail below.
  • equations 7-10 implement the transformation into a safe color space that permit simpler operations to be performed on color components. Such operations may include checking whether the color is safe and if the color is not safe, and determining the corrections to be applied to the components, as described in detail below.
  • Fig. 10 is a flow chart illustrating an embodiment of a process performed by the chroma clipper 62.
  • steps 160 and 161 the converted luma value 68 and a combined chroma value 72 are received.
  • the steps 160 and 161 may be performed in any order or in parallel.
  • step 162 the converted luma value 68 is combined with a predetermined threshold value to produce a chroma threshold value.
  • the chroma threshold value is defined by equation 11 as follows:
  • Equation l l
  • step 163 the combined chroma value 72 is compared to the chroma threshold value. If it is determined in step 163 that the combined chroma value 72 is greater than the chroma threshold value, then at step 165, the combined chroma value 72 is clipped to the chroma threshold value to produce the converted chroma value 70. If it is determined in step 163 that the combined chroma value 70 is not greater than the chroma threshold value, then in step 164 the converted chroma value 70 is set equal to the combined chroma value.
  • FIG. 11 is a flow chart illustrating an embodiment of a process performed by the safe color checker 74 of Fig. 6.
  • step 166 the converted luma value 68 and the converted chroma value 70 are received.
  • step 168 the magnitude of the converted luma value 68 and the converted chroma value 70 are combined to generate a combined value.
  • step 170 the combined value is compared to a predetermined threshold value. If it is determined in step 172 that the combined value is not greater than the predetermined threshold value, then a correction flag is cleared in step 174. In an alternative embodiment, the correction flag is initialized between steps 170 and 172, and in the event that the combined value is not greater than the predetermined threshold value, the correction flag remains cleared.
  • step 172 it is determined whether the converted luma value 68 is a positive or negative value. If it is determined that the converted luma value 68 is a positive value, then in step 177 a "color too high” correction flag is set and in step 178 a "color too high” interrupt is generated. In an alternative embodiment, a "color too high” event is generated in step 178. If the converted luma value is a negative value, then in step 179 a "color too low” correction flag is set and in step 180 a "color too low” interrupt is generated. In an alternative embodiment, a "color too low” event is generated on step 180.
  • the correction flags are used in order to determine the color correction values to be generated by the color correction generator 80.
  • the interrupts or alternatively the events, are used to inform the system that an unsafe color has been detected. In an embodiment, after the entire field of which the current pixel belongs has been processed, the color too high and color too low interrupt or events either may be ignored or may be used to generate a warning for a system user. In an alternative embodiment, interrupts or events are generated after each pixel or each line of a video field has been processed. In yet another alternative embodiment, no interrupt or event is generated, and the safe color modification is automatically executed.
  • FIG. 12 is a flow chart illustrating an embodiment of a process performed by the correction generator 80.
  • steps 182-188 the combined chroma value 72, the converted luma value 68, the converted chroma value 70, the color correction flags 76, and the inverse luma scale value 56 are received.
  • the steps 182-188 may be performed in any order or in parallel.
  • the color correction generator 80 determines whether either of the correction flags 76, the "color too high” flag or the "color too low” flag, are set. If neither of the correction flags 76 are set, a luma correction offset 88 is set to zero in step 192 and a chroma correction scalar 84 is set to one in step 194.
  • the values for the luma correction offset 88 and the chroma correction scalar are called "passthrough” values because these "passthrough” values allow the original luma and chroma components, 18, 10, and 12, respectively, to pass through the safe color generator 90 unmodified.
  • a luma correction offset is generated in step 196.
  • the luma correction offset is defined by the following equation:
  • Y c is the luma correction offset 88
  • Yss is the converted luma value 68
  • C CH is the converted chroma value 70
  • inverse_Y_scale is the inverse luma scale value 56. If the color too high correction flag is set, then the luma correction offset 88 will have a positive value. If the color too low correction flag was not set or cleared, then the luma correction offset 88 has a negative value.
  • the chroma correction scalar 84 is generated.
  • the chroma correction sealer 84 is defined by the following equation:
  • FIG. 13 is a flow chart illustrating an embodiment of a process performed by the safe color generator 90 of Fig. 6.
  • the safe color generator 90 receives the luma correction offset 88 and the chroma correction sealer 84.
  • the steps 202 and 204 may be performed in any order or in parallel.
  • the luma correction offset 88 is added to the checked luma component 18 to generate the safe luma component 26.
  • the first chroma component 10 is offset by a chroma offset value, multiplied by the first chroma correction scalar 84, and offset again by an opposite value of the chroma offset value to generate the first safe chroma component 28.
  • C cor r is the safe first chroma component
  • C B is the first chroma component
  • Cc is the chroma correction scalar value 84
  • 128 is the chroma offset value
  • the second chroma component is offset by the chroma offset value, multiplied by the chroma correction scalar 84, and then offset by the opposite value of the chroma offset value to generate the second safe chroma component 30.
  • the safe second chroma component 30 is defined by following equation:
  • C RCO ⁇ - is the second safe chroma component 30
  • C R is the second chroma component 12
  • Cc is the chroma correction value 84
  • 128 is the chroma offset value.
  • the color limiting parameters 8 are constrained.
  • the luma high threshold value 40 is less than or equal to the color high threshold value 49
  • the luma low threshold value 38 is greater than or equal to the color low threshold value 47.
  • the black level setup value 45 also ranges from 0 to 7.5 IRE.
  • the color low threshold value also ranges from -40-10 IRE
  • the color high threshold value ranges from 90-133 IRE.
  • the luma high threshold value is 255 and the luma low threshold value is 0, because the luma component for a 601 is within that range.
  • the conversion terms are defined as follows: the luma scale offset 48 ranges from 0.625-1.461; the luma offset value 50 ranges from -183.379-47.770; the first chroma scale value 52 ranges from 0.5329-1.2457; the second chroma scale value 54 ranges from 0.7516-1.7571; and the inverse luma scale value 56 ranges from 0.684-1.600.
  • FIG. 14 is a data flow diagram illustrating a 4:2:2 Y 60 ⁇ C B C R component signal.
  • CBO, Yo and CRo represent an even pixel 214, having a luma component Yo and two chroma components Co and CRo.
  • Yi represents an odd pixel 216 represented only by a luma component, and pixel 218 represents another even pixel.
  • FIG. 15 is a data flow diagram illustrating safe color modification of an odd luma component.
  • the luma clipper 16 receives an odd luma component 16 and generates a checked odd luma component 228. This operation is analogous to how a checked luma component 18 is generated from a luma component 14, as described above with respect to Figs. 2-4.
  • the safe odd luma generator 230 receives the checked odd luma component 228, a preceding safe luma component 220, a preceding color correction flags 222, a next safe luma component 224, and a next color correction flags 226, and generates a safe odd luma component 232.
  • the preceding safe luma component would be the safe luma component resulting from applying safe color modification to the preceding as described in FIGS. 1, 2 and 5.
  • the preceding color correction flags are the resulting flag 76 of Fig. 5 resulting from applying safe color modification to the even pixel 214.
  • the next safe luma component 224 is the safe luma component 26 in Fig. 5 resulting from applying safe color modification to the even pixel 218.
  • the next color correction flags 226 are the color correction flags 76 in FIG. 6 resulting from applying safe color modification to the even pixel 218.
  • FIG. 16 is a flow chart illustrating safe color limiting of an odd luma component.
  • the luma clipper 16 receives the odd luma component 216, and in step 236, the odd luma component may be clipped in accordance with the process described in FIG. 4.
  • the preceding color correction flags are accessed from the odd luma register of FIG. 6.
  • the safe odd luma generated 230 accesses the next color correction flags 226 from the odd luma register 78. Next, the safe odd luma generator 230 determines whether either of the next color correction flags are set. If either of the next color correction flags are set, then in step 248 the preceding safe luma component is accessed, and in step 250 the next safe luma component is accessed. Next, in step 252, the safe odd luma component is set equal to the average of the preceding safe luma component and the next safe luma component.
  • step 244 it is determined whether neither of the next color correction flags are set. If either of the preceding color correction flags are set, then in step 248 the preceding safe luma component is accessed, and in step 250 the next safe luma component is accessed. Finally, in step 252, the safe odd luma component 232 is set equal to the average of the preceding safe luma component in the next safe luma component.
  • the steps of 244 may be performed in any order or in parallel. 0 If in step 246 it is determined that neither of the preceding color correction flags is set, then in step 256, the safe odd luma component 232 is set equal to the odd luma component 216.
  • step 254 it is determined whether either of the preceding color correction flags are set. If either of the preceding color correction flags are set, then in step 258, the preceding safe luma component is accessed, and in step 260, the safe odd luma component 232 is set equal to the preceding safe luma component.
  • step 254 If in step 254 it is determined that neither of the preceding color correction flags are set, then in step 256, safe odd luma component 232 is set equal to the odd luma component 216.
  • the preceding color correction flags and the next color correction flags also may be the result of an OR operation on the preceding color correction flags and the next color correction flags, respectively.
  • equations 7-10 transform the color components into safe space, where it is determined whether the color is safe. If it determined that the color is unsafe, equations 12 and 13 may be applied to determine the corrections to be applied to the color components to generate a safe color. The corrections then may be applied the color components.
  • Generally checking for a safe color of a pixel includes determining that the luma is within range of values, and determining that the sum of the luma and the chroma is within range of values.
  • Luma_high is less than or equal to chroma high, and luma low is greater than or equal to chroma_low, as discussed in more detail below.
  • safe color modification is described with respect to a 4:2:2 Y 6 oiC C r video format (601 format). The principles of safe color modification may be applied to other video formats as well.
  • the 601 components are converted to YUV space. This format is commonly used to convert video components of a component signal into a composite signal.
  • the luma_high and luma_low values, and the colorjhigh and color low values may be expressed in IRE units.
  • the components are converted to IRE units.
  • the YUVT RE components are then transformed into a "safe space" coordinate system.
  • the mathematical operations for converting from 601 format to YUV format to YUV IRE format to safe space are described below. These operations are then combined for transforming from 601 format directly to safe space.
  • the resulting transformations are embodied in three equations, each equation specific to a color component. Each equation is applied to its corresponding component to convert the component from 601 format directly to safe space.
  • modifications determined in safe space can be converted from safe space to 601 format by applying inverse transformations to the modifications. These modifications can then be applied to the original color components in 601 format.
  • the following description considers the even pixels of a 4:2:2 signal. As discussed above, the odd luma components of a 4:2:2 signal are handled differently and in the manner shown in Figs. 14-16. To convert from YC B C R to IRE, it is easier to first convert to YUV space where Y has a range from 0 to 1, and Y 6 o ⁇ has a range of 16 - 235, leading to the conversion equation:
  • Y 6 o ⁇ represents the luma component or Y component in the 601 format
  • Y is the luma component of the YUV format.
  • the C B and the C R components have a range from 16 - 240 with an offset of 128.
  • the U chroma component has a range of ⁇ 0.436010346 and the V chroma component has a range of ⁇ 0.614975383.
  • These ranges may be derived from the definitions of the YUV and YC B C R formats described herein. For a more detailed description of the color video and color science describing the derivation of these conversion values, see Charles Poynton's Color FAQ: http://www.inforamp.net/-poynton.
  • equations 17 and 18, for converting the chroma components in 601 format to YUV format are derived:
  • setup and 100 define the values black and white, respectively, of a composite signal.
  • Equation 22, 23 and 24 are defined as follows:
  • Vi - • (100 - setup) • (C R - 128)
  • Equation 22 the formula to convert from Y IRE back to Y o ⁇ is derived, which is used for converting luma threshold values from IRE units to 601 units as described above with reference to Fig. 3.
  • the equation for converting for Y IRE back to Y 6 o ⁇ is defined in equation 25 below: c + - 7 v 219 _ ( ⁇ 1RE -setup)
  • FIG. 17A illustrates a view looking down the axis of the double cone from point A of FIG. 17A.
  • FIG. 17B illustrates that the cross-section 272 of the valid color region for Y C B C R has an elliptical shape.
  • Equation 18A illustrates the valid color region 274 in YUV IRE color space. Applying Equations 22, 23 and 24 to the double-cone valid color region 270 of FIG. 17A produces the double cone 274 of FIG. 18A centered around the Y IRE axis.
  • FIG. 18B is a view of the double cone looking down the Y IRE axis and shows that after applying Equations 22, 23 and 24, the cross-section of the double cone 276 of the YUV I E color space is a circle. Because the three components of the YC B C R color space have been normalized by Equations 22, 23, 24 into the YUV IRE color space, a unit excursion in any dimension of the YUV IRE color space of FIG. 18A is of equal significance. The slope of the cone edges is exactly 45°. Thus, the application of equations 22-24 to the 601 format to produce components in the YUV IRE format implements the first general step of the transformation. The significance of the symmetrical properties of the double cone of YUV IRE space is described in more detail below.
  • the double cone 274 is circular, the magnitude of the combined chroma components, U I E and V I E , can be calculated, and the 3D cone can be collapsed into a 2D triangle.
  • FIG. 19 illustrates the collapsing color space. This collapse or conversion is achieved by converting the U IRE and V IRE components into a RE component defined by
  • lines 282 and 284 represent the safe color limits in the two-dimensional YC IRE space.
  • the next step is to shift the double triangle 280 downward along the Y IRE axis so that it is centered about the RE axis, and scaling the safe color limit 282 to a predetermined threshold value in safe color space.
  • Figure 20 illustrates the safe color double-triangle 281 in safe color space.
  • the number 128 is used as the predetermined threshold value.
  • the number 128 is used because it is a convenient number for performing mathematical operations. 8 bits, e.g., 7 magnitude bits and a sign bit, can be used to represent values ranging from -128 to 128, which is the same number of bits used to represent a color component in 601 format. In a hardware implementation of safe color modification, this symmetry between the number of bits leads to simpler and consequently faster circuitry.
  • the shifting and scaling involves converting coordinates of the Y RE two- dimensional coordinate space into the Y Css safe color space.
  • the three original components of the color component signal, Y 6 o ⁇ , C B and C R are scaled by an additional factor.
  • An offset also is applied to the original luma component Y 6 o ⁇ . Equations 26, 27 and 28 define the conversion from the 601 components to safe color component space:
  • Equation 30 offset 128 - Color High '
  • Equations 32, 33 and 34 From Equations 32, 33 and 34, Equations 2 - 6 are derived.
  • the luma and chroma are adjusted to bring the pixel to the safe limit 286.
  • Simply reducing either the luma or the chroma individually may generates visually undesirable results.
  • Better results can be obtained by changing both luma and chroma equally, providing the closest safe color to the original color of a pixel.
  • the adjustment is performed by mapping the color of the unsafe pixel to the limiting line 286 in a direction perpendicular to the limiting line 286. This is illustrated in FIG. 21 for point D which represents the color of a pixel in safe color space.
  • the luma and chroma components of the pixel are adjusted along the line 296.
  • the Css value of a pixel may be greater than 128, but Yss of the pixel is less than 128 so long as the luma high threshold value is less than or equal to the color iigh threshold value and the luma low threshold value is greater than or equal to the color low threshold value. These conditions are satisfied because the original Y 6 o ⁇ value has been clipped as described above with reference to FIGS. 2 and 4, before entering the safe color limiter.
  • Points A and B in FIG. 21 illustrate two situations where the Css component of the color of a pixel in safe space is greater than 128.
  • point A the same method of color modification discussed above with respect to point D may be applied to reduce the luma and chroma of the pixel by the same amount, thus mapping the point A down to point C 2 on the limit line 286 along the line 298.
  • point B is mapped to the nearest point on the limit line 286, the resulting point is C 4 , which is still an invalid color.
  • both points A and B are mapped to the same point Cl . This mapping results in A and B having the same chroma value, although original point B had a greater chroma value than point B.
  • any points, such as B, that are to the right of line 288, having a chroma greater than the sum of the luma value and the threshold value may be mapped along path 312 and 310, and map points on the left of line 288 perpendicularly to the limit line 286.
  • the chroma of point B is less than the chroma of point A, and the luma of point B is higher than point A.
  • the line 288 which defines Css
  • +128 may be used.
  • point A is to the left of the line 288 and point B is to the right of the line 288.
  • this mapping corrects all points to the left of line 288 in the manner described with respect to point D, by mapping the point perpendicularly to the line 286.
  • safe color limiting maps each point to the line 288, and then perpendicularly along the line 288 to the point C3.
  • the chroma clipper 62 of FIG. 6 implements this type of chroma clipping as described in FIG. 18, steps 160 -166.
  • the value of the converted chroma value 70 can be described by the following equation 35:
  • C CH is converted chroma value 70
  • Yss is the converted luma value 68
  • Css equals the combined chroma value 72.
  • the point D in FIG. 21 is defined by coordinates (
  • the results of changing just one of the components individually can be seen at points (
  • the luma intercepts the limit line 286 at Yp, where: Equatt •on36 r : ⁇ P
  • Equation 37 Cp After Yp has been calculated, the correction factor Yc to be applied to the original Y 60 ⁇ data to generate a safe luma component can be determined. This correction factor is scaled by the inverse of the scale factor that was originally applied to the Y « JI data. Accordingly, Y can be defined by the following equation 38:
  • Equation 12 can be derived by combining Equations 36 and 38.
  • the Yc of Equation 38 is the luma correction value 88 of FIG. 6.
  • the luma correction value 88 is then added to the checked luma component 18 to generate the safe luma component 26.
  • round-off errors are ⁇ iinimized and pass-through, where no modifications are made is simplified by simply adding 0 to the checked luma component L8. Because the modification perfo ⁇ ned on the luma components is additive, the sign of the correction is pertinent, as described above with reference to FIG. 11, steps 176 - 180.
  • FIG. 22 illustrates safe color space expanded into three-dimensional space to show the chroma components or vectors Vss, Uss. Vp, and Up corresponding to chroma components Css and Cp, respectively.
  • FIG.22 is a view looking down the Yss axis at the circular chroma cross-section 314 of the safe color cone defining the safe color limit.
  • the safe chroma components may be defined by the following equations:
  • Equations 41 and 42 can be combined with equations 32-35 and 37 to derive equations 13-15, which define the chroma correction scalar and how it is applied to the original chroma components to produce safe chroma components.
  • Safe color modification may be implemented using a computer system. It should be understood that safe color modification is not limited by the specific computer described herein. Many other different machines may be used to implement the invention.
  • a suitable computer system includes a processing unit which performs a variety of functions and a manner well-known in the art in response to instructions provided from an application program.
  • the processing unit functions according to a program known as the operating system, of which many types are known in the art.
  • the steps of an application program are typically provided in random access memory (RAM) in machine-readable form because programs are typically stored on a non-volatile memory, such as a hard disk or floppy disk.
  • RAM random access memory
  • the computer system also includes a user input/output (I/O) interface.
  • the user interface typically includes a display apparatus (not shown), such as a cathode-ray-tube (CRT) display in an input device (not shown), such as a keyboard or mouse.
  • a display apparatus such as a cathode-ray-tube (CRT) display
  • an input device such as a keyboard or mouse.
  • CTR cathode-ray-tube
  • a variety of other known input and output devices may be used, such as speech generation and recognition units, audio output devices, etc.
  • the computer system also includes a video and audio data I/O subsystem.
  • a video and audio data I/O subsystem Such a subsystem is well-known in the art and the present invention is not limited to the specific subsystem described herein.
  • the audio portion of subsystem includes an analog- to-digital (A/D) converter (not shown), which receives analog audio information and converts it to digital information.
  • the digital information may be compressed using known compression systems, for storage on the hard disk to use at another time.
  • a typical video portion of subsystem includes a video image compressor/decompressor (not shown) of which many are known in the art. Such compressor/decompressors convert analog video information into compressed digital information.
  • the compressed digital information may be stored on hard disk for use at a later time. An example of such a compressor/decompressor is described in U.S. Patent No. 5,355,450.
  • Example output devices include a cathode ray tube (CRT) display, liquid crystal displays (LCD) and other video output devices, printers, communication devices such as a modem, storage devices such as disk or tape, and audio output.
  • One or more input devices may be connected to the editing or playback system.
  • Example input devices include a keyboard, keypad, track ball, mouse, pen and tablet, communication device, and data input devices such as audio and video capture devices and sensors. Source and color modification are not limited to the particular input or output devices used in combination with the computer system or to those described herein.
  • the computer system may be a general purpose computer system which is programmable using a computer programming language, such as "C++," JAVA or other language, such as a scripting language or even assembly language.
  • the computer system may also be specially programmed, special purpose hardware such as an application specific integrated circuit (ASIC).
  • ASIC application specific integrated circuit
  • the processor is typically a commercially available processor, such as the series x86 and Pentium processors, available from Intel, similar devices from AMD and Cyrix, the 680X0 series microprocessors available from Motorola, and the PowerPC microprocessor from IBM. Many other processors are available.
  • Such a microprocessor executes a program called an operating system, of which WindowsNT, Windows95 or 98, UNIX, Linux, DOS, VMS, MacOS and OS8 are examples, which controls the execution of other computer programs and provides scheduling, debugging, input/output control, accounting, compilation, storage assignment, data management and memory management, and communication control and related services.
  • the processor and operating system define a computer platform for which application programs in high-level programming languages are written.
  • a memory system typically includes a computer readable and writeable nonvolatile recording medium, of which a magnetic disk, a flash memory and tape are examples.
  • the disk may be removable, known as a floppy disk, or permanent, known as a hard drive.
  • a disk has a number of tracks in which signals are stored, typically in binary form, i.e., a form interpreted as a sequence of one and zeros. Such signals may define an application program to be executed by the microprocessor, or information stored on the disk to be processed by the application program.
  • the processor causes data to be read from the nonvolatile recording medium into an integrated circuit memory element, which is typically a volatile, random access memory such as a dynamic random access memory (DRAM) or static memory (SRAM).
  • DRAM dynamic random access memory
  • SRAM static memory
  • the integrated circuit memory element allows for faster access to the information by the processor than does the disk.
  • the processor generally manipulates the data within the integrated circuit memory and then copies the data to the disk after processing is completed.
  • a variety of mechanisms are known for managing data movement between the disk and the integrated circuit memory element, and the invention is not limited thereto. It should also be understood that the invention is not limited to a particular memory system.
  • Such a system may be implemented in software or hardware or firmware, or a combination of the three.
  • the various elements of the system either individually or in combination may be implemented as a computer program product tangibly embodied in a machine-readable storage device for execution by a computer processor.
  • Various steps of the process may be performed by a computer processor executing a program tangibly embodied on a computer-readable medium to perform functions by operating on input and generating output.
  • Computer programming languages suitable for implementing such a system include procedural programming languages, object-oriented programming languages, and combinations of the two.
  • the computer system used to implement safe color modification is not limited to a particular computer platform, particular processor, or particular programming language. Additionally, the computer system may be a multi processor computer system or may include multiple computers connected over a computer network. Each step of FIGS. 4, 5, 7-13, and 16 may be separate modules of a computer program, or may be separate computer programs. Such modules may be operable on separate computers.

Abstract

A system and method of transforming a component color into safe color space. A color component of a first color space is received. The component color is transformed into safe color space by applying conversion terms to each component of the component color. The transformation into safe color space creates symmetrical relationships between the color components. These symmetrical relationships permit simplified operations to be performed on the component. The transformation may be used to generate safe color from components of a pixel according to a threshold defining safe color, where components include a luma component, a first chroma component, and a second chroma component. It is determined whether a combination of a first luma value associated with the luma component and a first chroma value associated with the first and second chroma components of the pixel exceeds the threshold defining safe color. If the combination exceeds the threshold defining safe color, one or more components of the pixel is modified to generate safe components.

Description

SAFE COLOR LIMITING OF A COLOR ON A DIGITAL NONLINEAR EDITING SYSTEM
BACKGROUND Digital non-linear editing (DNLE) is a process by which digital media may be edited. DNLE, as the name implies, is performed on digital media stored as data in digital media files on a digital random access medium. DNLE may be conducted in a non-linear fashion because the digital media files in which the digital media is stored can be randomly accessed. Thus an editor may access a piece of the digital media without having to proceed sequentially through other pieces of the digital media stored in the same or other digital media files. More than one editor also may be able to access different pieces of the same digital media contemporaneously. The digital media may be a digitized version of a film or videotape or digital media produced through live capture onto a disk of a graphics or animation software application. Example commercial DNLE systems include the Media Composer® or the Avid® Symphony™ video production system or NewsCutter® news editing system available from Avid Technology, Inc. For a more detailed description of DNLE, see Digital Nonlinear Editing, New Approaches to Editing Film and Video, 1993 , by Thomas Ohanian.
Digital video is a form of digital media typically processed on a DNLE. Digital video is comprised of a sequence of digital images. Digital images are comprised of an array of picture cells called pixels. DNLE systems often process digital video at multiple rates. For example, the video may correspond to a playback rate of 30 (more precisely 29.97) frames per second (fps) in accordance with the NTSC (National Television Standards Committee) standards, or 25 fps in accordance with PAL (phase alternate line) standards. The digital video may be captured from film which typically has a rate of 24 frames per second. The United States of America and Japan have generally adopted the NTSC standards and European nations have generally adopted the PAL standards. There are multiple other formats for high definition and digital television signals.
One frame defines a complete video image that can be displayed on a television screen. Frames include a series of odd and even lines of pixels. Frames are divided into two fields of information, where a first field includes all the odd lines of pixels, and a second field includes all the even lines of pixels. For example, for an NTSC frame typically including 525 lines, a first field includes pixels of lines 1, 3, 5, . . ., 525, and the second field includes pixels of lines 2, 4, 6, . . ., 524. When the analog video signal is broadcast to a television, the fields are alternatively scanned and drawn to the television screen. This alternate scanning is called interlacing. Formats using images that are not interlaced are called progressive.
A variety of data formats can be used to represent the color of pixels within a digital image. Formats may be classified into two major categories: composite signals and component signals. Component formats represent a color as multiple components, each component defining a value along a dimension of the color space in which the color being represented is defined. A composite video is an analog signal that uses a high frequency subcarrier to encode color information with a signal that encodes luminance information. The subcarrier is a sinewave of which the amplitude is modulated by the saturation of the color represented by the signal, and the hue of the color is encoded as a phase difference from a color burst. Analog composite signals are generally used to broadcast television video signals.
There are a variety of component formats used to represent color. RGB (Red, Green, Blue) format represents a color with a red component, a green component and a blue component. CMYK (Cyan, Magenta, Yellow, Black) format represents a color with a cyan component, a magenta component, and a yellow component. CMYK is a format commonly used by printers. The CMYK components are color opposites of RGB components. In a three-dimensional coordinate system, each component of either the RGB or the CMYK format represents a value along an axis, the combination of the values defining a cubic color space.
The data formats HSL (Hue, Saturation, Lightness or Luminance) and HSV (Hue, Saturation, Value) represent a color with a hue component, a saturation component, and a luminance component. In a three-dimensional coordinate system, the luma component represents a value along a luma axis, the hue component represents the angle of a chroma vector with respect to the luminance axis and the saturation component represents the magnitude of the chroma vector. The combination of the values defines a hexagonal cone-shaped color space.
YCrCb, YUV, and YIQ are three formats that represent a color with a luma component Y, and two chroma components, Cr and Cb, U and V, or I and Q, respectively, that define a chroma vector. In a three-dimensional coordinate system, each component of either the YCrCb, YUV, and YIQ format represents a value along an axis, the combination of the values defining a cylindrical color space around the luma axis. The chroma components define the chroma vector. In data formats with a luminance component, the luma component can be used independently to represent a pixel in a black and white image to be displayed, for example, with a black and white monitor. YCrCb is a format used for digital video signals; YUV and YIQ are formats used for analog video signals. A standard YcrCb format is the 4:2:2 Y6oιCrCb format (CCIR 601 format), where the luma component, Y6oι, of the pixels of the component signal are transmitted at twice the frequency of the chroma components, Cr and Cb (hence the notation 4:2:2). Only every other pixel (even pixel) is represented with chroma components. For example, the components of the pixels, PO, PI, P2, P3, etc., of a 601 format signal are transmitted as follows: Cr0N0,Cb0, Yl, Cr2, Y2, Cb2, Y3, etc. When the video image is displayed, the chroma components of the odd pixels are determined by averaging, combining, interpolating, etc., the chroma components of the preceding even pixel and the next even pixel. The 4:2:2 sampling rate is used to save bandwidth on the broadcast medium, and also saves storage space when storing the signal.
The analog component YUV format is the format from which an analog composite signal may be constructed. The relationship between the YUV components and the values of the NTSC analog composite sine wave are as follows: Amplitude = [0.0925 • (Y+C) + 0.075], where C = V • sin (ωt + 0.576) + U • cos(ωt + 0.576), and ω = 3.579545 MHz.
When components of a component signal are combined into a composite signal, it is possible for some component combinations to push the signal amplitude above or below some threshold value. When the frequency band of the signal is too wide, the color is considered "unsafe", because it may cause interference with a television signal having a different carrier frequency. The component signal is corrected such that the resulting composite signal is within a "safe region." Various methods have been developed to correct a component signal such that a composite signal constructed from the component signal is within a safe region.
SUMMARY One problem with current techniques for safe color correction of a pixel is that the resulting corrected color may not be the closest color in the three-dimensional color space to the original unsafe color. This problem may occur if the three components of the signal are not reduced proportionately. Typically less than all three components are corrected or clipped. In particular, the luminance component often is not changed.
When a corrected pixel is displayed along with proximate pixels that were not corrected, or other pixels which were corrected, artifacts may be seen in a portion of an image. These artifacts may be reduced by modifying the luminance component. By modifying an unsafe color such that both the luma component and the chroma components are modified, the unsafe color is mapped to the closest safe color in the color space and such artifacts are further reduced.
Also, unsymmetrical relationships between the components of a component color may involve complex operations to be perfomed on the components to determine if the color is safe, and to determine the modifications to be applied to an unsafe color to make it a safe color. Safe color modification provides a method of transforming a component color into a safe color space. A component color of a first color space is received. The component color is transformed into a safe color space by applying conversion terms to each component of the component color. The transformation into a safe color space creates symmetrical relationships between the color components, which permits simplified operations to be performed on the components.
In one aspect, a method is provided of generating components for a pixel to provide safe color from components of the pixel according to a threshold defining safe color. The components include a luma component, a first chroma component, and a second chroma component. It is determined whether a combination of a first luma value associated with the luma component and a first chroma value associated with the first and second chroma components of the pixel exceeds the threshold defining safe color. If the combination exceeds the threshold defining safe color, the luma component of the pixel is modified to generate safe components.
In an embodiment, if the combination exceeds the threshold defining safe color, the first and second chroma components of the pixel are modified to generate components within the threshold defining safe color.
In another aspect, provided is a method of generating correction values for modifying components of a pixel to provide a safe color according to a threshold defining safe color. The color components are transformed into safe space. It is determined whether a combination of the transformed color components exceeds the threshold defining safe color. If the combination exceeds the threshold defining safe color, component correction values are generated to be applied to the components and produce safe components.
BRIEF DESCRIPTION OF THE DRAWINGS In the drawings, Fig. 1 is a data flow diagram illustrating an embodiment of a system for safe color modification;
Fig. 2 is a data flow diagram illustrating an embodiment of the system of Fig. 1 in more detail;
Fig. 3 is a data flow diagram illustrating an embodiment of the operation of a luma threshold converter;
Fig. 4 is a flow chart illustrating an embodiment of a process performed by a luma clipper;
Fig. 5 is a flow chart illustrating an embodiment of a process performed by the system of Fig. 1 ; Fig. 6 is a data flow diagram illustrating an embodiment of the operation of the safe color limiter of Fig. 2;
Fig. 7 is a flow chart illustrating an embodiment of a process performed by the conversion term generator of Fig. 6;
Fig. 8 is a flow chart illustrating an embodiment of a process performed by the luma converter of Fig. 6;
Fig. 9 is a flow chart illustrating an embodiment of a process performed by the chroma converter of Fig. 6;
Fig. 10 is a flow chart illustrating an embodiment of a process performed by the chroma clipper of Fig. 6; Fig. 11 is a flow chart illustrating an embodiment of a process performed by the safe color limiter of Fig. 6;
Fig. 12 is a flow chart illustrating an embodiment of a process performed by the correction generator of Fig. 6;
Fig. 13 is a flow chart illustrating an embodiment of a process performed by the safe color generator of Fig. 6;
Fig. 14 is a block diagram illustrating a known format for a color component signal; Fig. 15 is a data flow diagram illustrating an embodiment of a safe odd luma generator;
Fig. 16 is a flow chart illustrating an embodiment of a process performed by the safe odd luma generator of Fig. 15; Fig. 17A is an illustration of the double cone space color space of a Y6oι Cb Cr component color;
Fig. 17B is a cross-sectional view of the double cone of Fig. 17A;
Fig. 18 A is a diagram illustrating the double cone representing safe colors of a YUVIRE , component color; Fig. 18B is a cross-sectional view of the double cone of Fig. 18 A;
Fig. 19 is an illustration of a double triangle representing the double cone of Fig. 18A collapsed into two-dimensional space;
Fig. 20 is the double triangle of Fig. 19 in safe space;
Fig. 21 is a diagram illustrating how space color modification is applied to unsafe pixels; and
Fig. 22 is a diagram illustrating how the safe color modification applied in Fig. 21 affect the two chroma components of the component color.
DETAILED DESCRIPTION The following detailed description should be read in conjunction with the attached drawing in which similar reference numbers indicate similar structures. All references cited herein are hereby expressly incorporated by reference.
Safe color modification modifies a luma component and chroma components of a color to produce the closest safe color of a three-dimensional color space. Safe color modification simplifies the process of modifying the color components by transforming each component of a pixel into a coordinate system, referred to herein as safe color space or safe space. After the pixel values are transformed into safe space, safe color modification checks whether a combination of the transformed values is unsafe. If the combination is unsafe, the correction values that are applied to the original color components are determined, and then applied to the original color components. The transformation into safe space allows simpler mathematical operations to be performed in determining the correction values and applying these values to the components. The simpler operations allow the color corrections to be applied to the luma and chroma components at a faster rate, thus increasing the rate at which safe color modification of a color can be performed.
The safe color transformation creates symmetrical relationships between the components of a component color that simplify the mathematical operations and provide a few common formulas capable of being applied to determine all correction values, regardless of the value of unsafe color to be corrected. The symmetrical relationships are realized by incorporating three general steps into the transformation: a) converting the elliptical cross-section of a three-dimensional safe color double-cone of a three- dimensional space into a circular cross-section, b) collapsing the three-dimensional double-cone into a two-dimensional double-triangle in two-dimensional color space, and c) centering a luma axis defined by the double-triangle about the luma origin such that the double triangle is collapsed into a triangle defined by only positive values. Described below is a system and method of safe color modification including a transformation into safe space that incorporates the three general steps. Following the description of system and method is a detailed description of the principles from which the system and method are derived.
FIG. 1 is a data flow diagram illustrating an embodiment of a safe color modification system 1. A color limiter 4 has an input for receiving a component signal 2 and an input for receiving color limiting parameters 8. Applying the color limiting parameters 8 to the component signal 2, the color limiter 4 generates a safe component signal 6 through its output.
FIG. 2 is a data flow diagram showing an embodiment of the safe color modification system 1 of FIG. 1 in more detail. The component signal 2 includes a first chroma component 10, a second chroma component 12, and a luma component 14. The color limiter 4 includes a luma clipper 16 and a safe color limiter 24. The safe component signal 6 includes a safe first chroma component 26, a safe second chroma component 28, and safe luma component 30. The color limiting parameters 8 include luma threshold values 20 and safe color parameters 22.
The luma clipper 16 receives through its inputs a luma component 14 and luma threshold values 20. The luma clipper 16 then generates a checked luma component 18 that is sent through its output to the safe color limiter 24 in a manner described in more detail below in connection with Fig. 4. The safe color limiter 24 receives through its inputs components 92 and the safe color parameters 22. The components 92 include the first chroma component 10, the second chroma component 12, and the checked luma component 18. The safe color limiter 24 generates the safe first chroma component 26, the safe second chroma component 28, and the safe luma component 30, in a manner to be described below in connection with Fig. 5. In an embodiment of safe color modification, the luma threshold values are converted from IRE units as defined by NTSC into Y'60ιCrCb (601 units). This embodiment may be used, for example, if the luma threshold values are received from a user interface (not shown) that operates with IRE units, and the received component signal 2 is in 601 units. An example of such a user interface is described in U.S. Patent Application "Source Color Modification on a Digital Nonlinear Editing System" by Robert Gonsalvez, filed on even date herewith, and in "Apparatus and Method for Generating and Displaying Histograms of Color Images for Color Correction," by Robert Gonsalvez, filed on even date herewith.
FIG. 3 is a data flow diagram illustrating an embodiment of luma threshold conversion. A luma threshold converter 36 receives through its inputs a luma high threshold value 32 in IRE units, a luma low threshold value 34 in IRE units, and a black level setup value 45. The black level setup value is a value representing an offset that is applied to a luma value in IRE units before converting to a luma component Y of a component signal in 601 units. The luma threshold converter 45 applies the black level setup value 45 to the IRE threshold values 32 and 34 to generate a luma high threshold value 40 in 601 units and a luma low threshold value 38 in 601 units at its output. The luma high and luma low threshold values 40 and 38, respectively, which are the luma threshold values 20 of FIG. 2, may be generated by the execution of the following equations. - ^, -- . 2X9 • (Y Clip High, ,,,. - setup) - ^ Equation Xa : Y_Clip _ Highm = ' - y ~ — ≤-S£ ^- + X 6,
(100 - setup)
. . „ „,. , 2X9 • (¥ Clip Low mr - setup) Λ .
Equation Xa : YjClψ _ Lowm = —^ — — — — + 16,
(100 - setup)
where Y_Clip_High oι is the luma high threshold value 40 in 601 units, Y_Clip_HighiRE is the luma high threshold value 32 in IRE units, setup is the black level setup value 45, Y_Clip_Low6oι is the luma low threshold value 38 in 601 units, and Y_Clip_LowIRE is the luma low threshold value 34 in IRE units. The derivation of Equations la and lb is described in detail below.
FIG. 4 is a flow chart illustrating the operation of the luma clipper (16 in Fig. 2, 42 in Fig. 3). In step 110, a luma high threshold value 40 is compared to the value of the luma component 14. If it is determined that the value of the luma component 14 is greater than the luma high threshold value 40, then the value of the luma component is clipped to the luma high threshold value 40, i.e., the checked luma component 18 is set equal to the luma high threshold value 40 in step 112. In an embodiment, an interrupt or event may be generated in step 113 to indicate that a luma value is too high. This interrupt or event may be used to interrupt the safe color modification process in order to inform a user that a luma component with a value outside of the range defined by the threshold values has been received. In one embodiment, the interrupt or event may be addressed after all the pixels of a display field have been processed by the color limiter 4. In an alternative embodiment, no interrupt or event is generated in step 113, and the luma clipper 16 automatically clips the luma component 14.
If the value of the luma component 14 is not greater than the luma high threshold value, then in step 114 the luma component is not clipped, i.e., the checked luma component 18 remains equal to the value of the luma component 14. In step 116, the checked luma component 18 is then compared to the luma low threshold value 38. If the checked luma component 18 is less than the luma threshold value 38, then the luma component 14 is clipped to the luma low threshold value, i.e., the checked luma component 18 is set equal to the low threshold value in step 118. In step 119, an interrupt or event may be generated, similar to step 113. If in step 1 16 it is determined that the checked luma component 18 is not less than the luma threshold value, then the luma component is not clipped, i.e., in step 120 the checked luma component remains equal to the luma component 14. Comparisons of the luma component to the high and low thresholds may be performed in any order or in parallel.
FIG. 5 is a flow chart illustrating the operation of the safe color limiter 24 of FIG. 2. In step 122, conversion terms are generated from the safe color parameters 22. In step 124, the conversion terms are applied to the safe color limiter inputs 92 to generate converted color components, which include a converted luma component, a converted first luma component, and a converted second chroma component. In step 128, it is determined whether a combination of the converted luma and chroma components exceeds a threshold value. If the combination of components does not exceed the predetermined threshold value in step 128, the components are output as the safe color components in step 130. Otherwise, if the combination does exceed a threshold value in step 128, then in step 132 color correction terms are generated. In step 134, the color correction terms are applied to the safe color limiter inputs. After the color correction terms are applied to the color component signal in step 134, the safe color components of the components 6 (Fig. 1) then may be combined to form a safe composite signal that can be used for broadcast or transmission.
FIG. 6 is a data flow diagram illustrating the operation of the safe color limiter 24 of FIG. 2 in more detail. The safe color limiter 24 includes a conversion term generator 44, a color converter 58, a safe color checker 74, a correction generator 80, and a safe color generator 90. The color converter 58 includes a luma converter 60, a chroma clipper 62, and a chroma converter 64. The safe color parameters 22 include a color high threshold value 49, a color low threshold value 47, and the black level setup value 45. The color threshold values 49 and 47 define a high and low threshold value, respectively, for a combination of the checked luma component 18, the first chroma component 10, and the second chroma component 12.
The conversion term generator 44 receives the color high threshold value 49, the color low threshold value 47, and the black level setup value 45. The conversion term generator 44 generates conversion terms 46, which include a luma scale value 48, a luma offset value 50, a first chroma scale value 52, a second chroma scale value 54, and an inverse luma scale value 56. The inverse luma scale value 56 is an inverse of the luma scale value 48.
The color converter 58 receives the conversion terms 46 and safe color limiter inputs 92, which include the checked luma component 18, the first chroma component 10, and the second chroma component 12. The color converter applies the conversion terms 46 to the color limiter inputs 92 to generate converted color values 66. The converted color values 66 include a converted luma value 68 and a converted chroma value 70. The luma converter 60 receives the luma scale value 48, the luma offset value 50, and the checked luma component 18 as inputs and generates the converted luma value 68 at an output. The chroma converter 64 receives the first chroma scale value 52, the second chroma scale value 54, the first chroma component 10, and the second chroma component 12 as inputs and generates a combined chroma value 72 at its output. The chroma clipper 62 receives the combined chroma value 72 and the converted luma value 68 and generates the converted chroma value 70.
The safe color checker 74 receives the converted color values 66, generates correction flags 76, and may generate an interrupt 75. In some embodiments, an event may be generated. In an embodiment, the correction flags 76 are stored in an odd luma register 78, which is described in more detail below.
The correction generator 80 receives correction flags 76, the inverse luma scale value 56, the combined chroma values 72 and the converted color values 66. The correction generator 80 generates color correction values 82, which include a luma correction value 88 and a chroma correction value 84, to be applied to the safe color limiter inputs 92.
The safe color generator 90 receives the safe color limiter inputs 92 and the color correction values 82, and generates the safe component signal 6, which includes the safe luma component 26, the safe first chroma component 28, and the safe second chroma component 30. If no modification is to be made to inputs 92, the inputs 92 simply pass through the generator 90 as the output components 6.
FIG. 7 is a flow chart illustrating an embodiment of the operation of the conversion term generator 44. In steps 132-136, the color high threshold value 49, the color low threshold value 47, and the black level setup value 45, respectively, are received. These steps and other steps in this flowchart may be performed in any order or in parallel. In step 138, a luma scale factor 48 is generated. In an example embodiment where the component signal is a 601 signal, the luma scale factor 48 is generated by the execution of the following equation:
256 • (100 - setup)
Equation 2 : YJScale =
219 * (Color XHigh - Color Low)
where setup is the black level setup value 45 , Color High is the color high threshold value 49, and Color_Low is the color low threshold value 47. The derivation of Equation 2 is described in detail below.
In step 140, the luma offset 50 is generated. In the example embodiment where the color component signal is a 601 signal, the luma offset 50 is generated by execution of the following equation: . , v ^ _. 2569 (235 setup - 1600 - 109.5 • (Color High + Color Low)
Equation 3 : Y Offset = ! = - = — - = ,
219 * (Color High - Color Low)
where setup is the black level setup value 45, Color High is the color high threshold value 49, and Color_Low is the color low threshold value 47. The derivation of Equation 3 is described in detail below.
In step 142, the first chroma scale value 54 is generated. In the example embodiment where the color component signal is a 601 signal, the first chroma scale value is generated by the following equation:
. , 16 • 0.436010346 • (WO - setup) Equation 4 : Cn Scale = - — ,
7 • (Color High - Color _Low)
where setup is the black level setup value 45, Color_High is the color high threshold value 49, and Color Low is the color low threshold value 47. The derivation of Equation 4 is described in detail below. In step 144, the second chroma scale value 54 is generated. In the example embodiment where the color component signal is a 601 signal, the second chroma scale value is defined by the equation:
16 * 0.614975383 • (100 - setup)
Equation 5 : Cn Scale :
7 • (Color High - Color Low)
where setup is the black level setup value 45, Color_High is the color high threshold value 49, and Color_Low is the color low threshold value 47. The derivation of Equation 5 is described in detail below.
In step 146, an inverse luma scale factor is generated. In the example embodiment where the color component signal is a 601 signal, the inverse luma scale factor is simply the inverse of Equation 2 above:
1 _ 219 • (Color High - Color Low)
Equation 6
Y Scale 256 • (100 - setup)
FIG. 8 is a flow chart illustrating an embodiment a process performed by the luma converter 60. In steps 148 through 150, the luma scale value 48, the luma offset value 50, and the checked luma component 18 are received. The order of steps 148 through 150 may be performed in any order or in parallel. In step 152, the converted luma value 68 is generated. In the example embodiment where the color component signal is a 601 signal, the converted luma value may be defined by the following equation:
Equation 7 : γss = γCH * Y ' Scale + Y ' Offset,
where Yss is the converted luma value 68 and YCH is the checked luma component 18, Y_Scale is the luma scale value 48, and Y_Offset is the luma offset value 50. The derivation of Equation 7 is described in detail below. Fig. 9 is a flow chart illustrating an embodiment of a process performed by the chroma converter 64. In steps 153 and 155, the first and second chroma scale values 52 and 54, and the first and second chroma components 10 and 12 are received.
In step 157, a converted first chroma component is generated. In the example embodiment where the color component signal is a 601 signal, the converted first chroma component may be defined by the following equation:
Equation 8 : Uss = (Cn - 128) » Cn Scale ,
where Uss is the converted first chroma component, CB is the first chroma component 10, and Cβ_scale is the first chroma scale value 52. The derivation of Equation 8 is described in detail below. In step 159, a converted second chroma component is also generated. In the example embodiment, if a color component signal is a 601 signal, the converted second chroma component is defined by equation 9 as follows:
Equation 9 : VSs = (Cn - 128) • CR Scale , where Vss is the converted second chroma component, Cr is the second chroma component 12, and Cr_Scale is the second chroma scale value 54. The derivation of equation 9 is described in detail below.
In step 156, the combined chroma value 72 is generated by combining the converted first and second chroma components. In the example embodiment where the color component signals a 601 signal, the combined chroma value 72 is defined by equation 10 as follows: Equation 10 : .-ss " : ϋ£ + vl SS » where Css is the combined chroma value 72, Uss is the converted first chroma component, and Vss is the converted second component. The derivation of equation 10 is described in detail below.
Thus, equations 7-10 implement the transformation into a safe color space that permit simpler operations to be performed on color components. Such operations may include checking whether the color is safe and if the color is not safe, and determining the corrections to be applied to the components, as described in detail below. Fig. 10 is a flow chart illustrating an embodiment of a process performed by the chroma clipper 62. In steps 160 and 161, the converted luma value 68 and a combined chroma value 72 are received. The steps 160 and 161 may be performed in any order or in parallel. In step 162, the converted luma value 68 is combined with a predetermined threshold value to produce a chroma threshold value. In the example embodiment, where the color component signal is a 601 signal, the chroma threshold value is defined by equation 11 as follows:
Equation l l : | γss | + 128 ,
where Yss is the converted luma value 68. The derivation of equation 1 1 is described in detail below.
In step 163, the combined chroma value 72 is compared to the chroma threshold value. If it is determined in step 163 that the combined chroma value 72 is greater than the chroma threshold value, then at step 165, the combined chroma value 72 is clipped to the chroma threshold value to produce the converted chroma value 70. If it is determined in step 163 that the combined chroma value 70 is not greater than the chroma threshold value, then in step 164 the converted chroma value 70 is set equal to the combined chroma value.
FIG. 11 is a flow chart illustrating an embodiment of a process performed by the safe color checker 74 of Fig. 6. In step 166, the converted luma value 68 and the converted chroma value 70 are received. In step 168, the magnitude of the converted luma value 68 and the converted chroma value 70 are combined to generate a combined value. In step 170, the combined value is compared to a predetermined threshold value. If it is determined in step 172 that the combined value is not greater than the predetermined threshold value, then a correction flag is cleared in step 174. In an alternative embodiment, the correction flag is initialized between steps 170 and 172, and in the event that the combined value is not greater than the predetermined threshold value, the correction flag remains cleared. If in step 172 it is determined that the combined value is greater than the predetermined threshold value, then in step 176 it is determined whether the converted luma value 68 is a positive or negative value. If it is determined that the converted luma value 68 is a positive value, then in step 177 a "color too high" correction flag is set and in step 178 a "color too high" interrupt is generated. In an alternative embodiment, a "color too high" event is generated in step 178. If the converted luma value is a negative value, then in step 179 a "color too low" correction flag is set and in step 180 a "color too low" interrupt is generated. In an alternative embodiment, a "color too low" event is generated on step 180.
The correction flags are used in order to determine the color correction values to be generated by the color correction generator 80. The interrupts, or alternatively the events, are used to inform the system that an unsafe color has been detected. In an embodiment, after the entire field of which the current pixel belongs has been processed, the color too high and color too low interrupt or events either may be ignored or may be used to generate a warning for a system user. In an alternative embodiment, interrupts or events are generated after each pixel or each line of a video field has been processed. In yet another alternative embodiment, no interrupt or event is generated, and the safe color modification is automatically executed.
FIG. 12 is a flow chart illustrating an embodiment of a process performed by the correction generator 80. In steps 182-188, the combined chroma value 72, the converted luma value 68, the converted chroma value 70, the color correction flags 76, and the inverse luma scale value 56 are received. The steps 182-188 may be performed in any order or in parallel. In step 190, the color correction generator 80 determines whether either of the correction flags 76, the "color too high" flag or the "color too low" flag, are set. If neither of the correction flags 76 are set, a luma correction offset 88 is set to zero in step 192 and a chroma correction scalar 84 is set to one in step 194. The values for the luma correction offset 88 and the chroma correction scalar are called "passthrough" values because these "passthrough" values allow the original luma and chroma components, 18, 10, and 12, respectively, to pass through the safe color generator 90 unmodified.
If either of the correction flags are set, a luma correction offset is generated in step 196. In the example embodiment where the color component signal is a 601 signal, the luma correction offset is defined by the following equation:
I v . 1 - 728 + c Equation 12 : γc = - — — — • Inverse _Y Scale ,
where Yc is the luma correction offset 88, Yss is the converted luma value 68, CCH is the converted chroma value 70, and inverse_Y_scale is the inverse luma scale value 56. If the color too high correction flag is set, then the luma correction offset 88 will have a positive value. If the color too low correction flag was not set or cleared, then the luma correction offset 88 has a negative value. The derivation of Equation 12 is described in more detail below. In step 198, the chroma correction scalar 84 is generated. In the example embodiment where the color component signal is a 601 signal, the chroma correction sealer 84 is defined by the following equation:
Equation 13 : C = 128 Yss ^ C(" ,
2 Css where Cc is the chroma correction scalar 84, Yss is the converted luma value 68, CCH is the converted chroma value 70, and Css is the combined chroma value 72.
FIG. 13 is a flow chart illustrating an embodiment of a process performed by the safe color generator 90 of Fig. 6. In steps 202 and 204, the safe color generator 90 receives the luma correction offset 88 and the chroma correction sealer 84. The steps 202 and 204 may be performed in any order or in parallel. In step 208, the luma correction offset 88 is added to the checked luma component 18 to generate the safe luma component 26.
In steps 209-211, the first chroma component 10 is offset by a chroma offset value, multiplied by the first chroma correction scalar 84, and offset again by an opposite value of the chroma offset value to generate the first safe chroma component 28. In the example embodiment where the component color signal is a 601 signal, the safe first chroma component 28 is defined by the following equation: Equation 14 : CBcorr = [ ( CB - 128 ) * CC ] + 128 ,
where Ccorr is the safe first chroma component, CB is the first chroma component 10, Cc is the chroma correction scalar value 84, and 128 is the chroma offset value.
In steps 212, 213, and 215, the second chroma component is offset by the chroma offset value, multiplied by the chroma correction scalar 84, and then offset by the opposite value of the chroma offset value to generate the second safe chroma component 30. In the example embodiment where the color component signal is a 601 signal, the safe second chroma component 30 is defined by following equation:
Equation 15 : CΛ∞,, = f ( CK - 128 ) » Cc J + 128 ,
where CRCOΠ- is the second safe chroma component 30, CR is the second chroma component 12, Cc is the chroma correction value 84, and 128 is the chroma offset value. In one embodiment, the color limiting parameters 8 are constrained. In particular, the luma high threshold value 40 is less than or equal to the color high threshold value 49, and the luma low threshold value 38 is greater than or equal to the color low threshold value 47. The black level setup value 45 also ranges from 0 to 7.5 IRE. The color low threshold value also ranges from -40-10 IRE, and the color high threshold value ranges from 90-133 IRE.
In the example embodiment, if the color component signal is a 601 signal, the luma high threshold value is 255 and the luma low threshold value is 0, because the luma component for a 601 is within that range. Using the luma high threshold and luma low threshold values 40 and 38 in combination with the assumed values above, for a 601 signal, the conversion terms are defined as follows: the luma scale offset 48 ranges from 0.625-1.461; the luma offset value 50 ranges from -183.379-47.770; the first chroma scale value 52 ranges from 0.5329-1.2457; the second chroma scale value 54 ranges from 0.7516-1.7571; and the inverse luma scale value 56 ranges from 0.684-1.600.
Some component color formats, such as the 601 format do not include chroma components to represent every pixel of a digital image, because a 601 signal samples the luma component at twice the frequency that it samples the chroma components. Thus, some pixels are represented by a luma component and chroma components, and other pixels are represented by only a luma component. FIG. 14 is a data flow diagram illustrating a 4:2:2 Y60ι CBCR component signal. CBO, Yo and CRo represent an even pixel 214, having a luma component Yo and two chroma components Co and CRo. Yi represents an odd pixel 216 represented only by a luma component, and pixel 218 represents another even pixel. In one embodiment of safe color modification, the chroma components of even pixels 214 and 218 are interpolated to generate the chroma components of the odd pixel 216, and then safe color modification is applied to those values. Since this embodiment may use significant processing resources, an alternative embodiment of safe color modification for odd luma components that requires fewer resources is illustrated in Fig. 15 and Fig. 16. FIG. 15 is a data flow diagram illustrating safe color modification of an odd luma component. The luma clipper 16 receives an odd luma component 16 and generates a checked odd luma component 228. This operation is analogous to how a checked luma component 18 is generated from a luma component 14, as described above with respect to Figs. 2-4. The safe odd luma generator 230 receives the checked odd luma component 228, a preceding safe luma component 220, a preceding color correction flags 222, a next safe luma component 224, and a next color correction flags 226, and generates a safe odd luma component 232.
Referring to FIG. 14, for the odd luma component 216, the preceding safe luma component would be the safe luma component resulting from applying safe color modification to the preceding as described in FIGS. 1, 2 and 5. The preceding color correction flags are the resulting flag 76 of Fig. 5 resulting from applying safe color modification to the even pixel 214. The next safe luma component 224 is the safe luma component 26 in Fig. 5 resulting from applying safe color modification to the even pixel 218. The next color correction flags 226 are the color correction flags 76 in FIG. 6 resulting from applying safe color modification to the even pixel 218.
FIG. 16 is a flow chart illustrating safe color limiting of an odd luma component. In step 234, the luma clipper 16 receives the odd luma component 216, and in step 236, the odd luma component may be clipped in accordance with the process described in FIG. 4. In step 238, the preceding color correction flags are accessed from the odd luma register of FIG. 6. In step 240, it is determined whether the odd luma component is the last luma component of the display field. If the odd luma component is the last component of the display field, then the safe odd luma component 232 will be derived only from a previous even pixel. For example, in FIG. 14, if odd luma component 216 is the last luma component of the display field, then the odd luma component 216 would only be concerned with the even pixel 214.
If the odd luma component is not the last component of the display field, the safe odd luma generated 230 accesses the next color correction flags 226 from the odd luma register 78. Next, the safe odd luma generator 230 determines whether either of the next color correction flags are set. If either of the next color correction flags are set, then in step 248 the preceding safe luma component is accessed, and in step 250 the next safe luma component is accessed. Next, in step 252, the safe odd luma component is set equal to the average of the preceding safe luma component and the next safe luma component.
If in step 244 it is determined that neither of the next color correction flags are set, then in step 246 it is determined whether either of the preceding color correction flags are set. If either of the preceding color correction flags are set, then in step 248 the preceding safe luma component is accessed, and in step 250 the next safe luma component is accessed. Finally, in step 252, the safe odd luma component 232 is set equal to the average of the preceding safe luma component in the next safe luma component. The steps of 244 may be performed in any order or in parallel. 0 If in step 246 it is determined that neither of the preceding color correction flags is set, then in step 256, the safe odd luma component 232 is set equal to the odd luma component 216.
If in step 240 it is determined that the odd luma component is the last luma component of the display field, then in step 254 it is determined whether either of the preceding color correction flags are set. If either of the preceding color correction flags are set, then in step 258, the preceding safe luma component is accessed, and in step 260, the safe odd luma component 232 is set equal to the preceding safe luma component.
If in step 254 it is determined that neither of the preceding color correction flags are set, then in step 256, safe odd luma component 232 is set equal to the odd luma component 216.
In one embodiment, the preceding color correction flags and the next color correction flags also may be the result of an OR operation on the preceding color correction flags and the next color correction flags, respectively.
Thus equations 7-10 transform the color components into safe space, where it is determined whether the color is safe. If it determined that the color is unsafe, equations 12 and 13 may be applied to determine the corrections to be applied to the color components to generate a safe color. The corrections then may be applied the color components.
Having described the system and method of safe color modification, the principles from which the system and method are derived will now be discussed.
Generally checking for a safe color of a pixel includes determining that the luma is within range of values, and determining that the sum of the luma and the chroma is within range of values. This checking may be summarized by the following equations: Y < luma_high; Y > luma_low; Y + C < color value _high; and Y - C > color low, where the variable C is defined by C = ^/U2 + V2 , Y is the luma and U and V are chroma components, color_high is a color high threshold value, color_low is a color low threshold value, luma_high is a luma high threshold value, and luma_low is a luma low threshold value. Luma_high is less than or equal to chroma high, and luma low is greater than or equal to chroma_low, as discussed in more detail below. Throughout the description that follows, safe color modification is described with respect to a 4:2:2 Y6oiC Cr video format (601 format). The principles of safe color modification may be applied to other video formats as well.
In order to test for the color limits, the 601 components are converted to YUV space. This format is commonly used to convert video components of a component signal into a composite signal.
However, the luma_high and luma_low values, and the colorjhigh and color low values may be expressed in IRE units. Thus, after converting into YUV format, the components are converted to IRE units. To simplify the analysis, and the calculation of modifications to be applied to components, the YUVTRE components are then transformed into a "safe space" coordinate system. The mathematical operations for converting from 601 format to YUV format to YUVIRE format to safe space are described below. These operations are then combined for transforming from 601 format directly to safe space. The resulting transformations are embodied in three equations, each equation specific to a color component. Each equation is applied to its corresponding component to convert the component from 601 format directly to safe space. After determining the transformations from 601 format to safe space, modifications determined in safe space can be converted from safe space to 601 format by applying inverse transformations to the modifications. These modifications can then be applied to the original color components in 601 format. The following description considers the even pixels of a 4:2:2 signal. As discussed above, the odd luma components of a 4:2:2 signal are handled differently and in the manner shown in Figs. 14-16. To convert from YCBCR to IRE, it is easier to first convert to YUV space where Y has a range from 0 to 1, and Y6oι has a range of 16 - 235, leading to the conversion equation:
Equation 16 : Y = • (Y m - 16)
where, Y6oι represents the luma component or Y component in the 601 format, and Y is the luma component of the YUV format. The CB and the CR components have a range from 16 - 240 with an offset of 128.
After the offset is removed, they cover a range of plus or minus 112. The U chroma component has a range of ± 0.436010346 and the V chroma component has a range of ± 0.614975383. These ranges may be derived from the definitions of the YUV and YCBCR formats described herein. For a more detailed description of the color video and color science describing the derivation of these conversion values, see Charles Poynton's Color FAQ: http://www.inforamp.net/-poynton. Thus, the following equations 17 and 18, for converting the chroma components in 601 format to YUV format are derived:
■ i n r r 0.436010346 . Equation 17 : U = • (CB - 128)
r o T 0.614975383 . Equation 18 : V = • (CR - 128)
Converting to YUV space creates the correct ratios between Y, U and V for encoding to a composite signal. To actually convert to an IRE scale for a real composite signal, the black level set up as defined for NTSC also is used. Thus, for converting from YUV to YUVIRE the following equations 19 , 20 and 21 are used: Equation 19 : YIRE =Y m (100 - setup) + setup
Equation 20 : U/ = U • (100 - setup)
Equation 21 : Vm= V • (100 - setup)
where setup and 100 define the values black and white, respectively, of a composite signal.
Combining equations 16 through 21 results in the following equations 22, 23, and 24 to convert directly from Y CBCR to YUViRE. Equation 22, 23 and 24 are defined as follows:
Equation 22 : γmr = • (100- setup) • (Ym - 16) + setup
219
Equation 23 : U mi. = — • (100 - setup) • (Cn - 128)
Equation 24 : Vi = - • (100 - setup) • (CR - 128)
Using Equation 22, the formula to convert from YIRE back to Y oι is derived, which is used for converting luma threshold values from IRE units to 601 units as described above with reference to Fig. 3. The equation for converting for YIRE back to Y6oι is defined in equation 25 below: c +- 7 v 219 _ (γ1RE -setup)
Equation 25 : γ601 = + 16
(100 - setup)
For three-component color formats such as the 601 format, where one component is a luma component and the two other components are chroma components, the 3D representation of the valid color region looks like a double cone centered on the luma axis as illustrated in FIG. 17A for the 601 format. It should be noted that because the 601 format has an offset of 128 for both the CB and the CR component, the double cone 270 is offset from the luma axis Y oι . FIG. 17B illustrates a view looking down the axis of the double cone from point A of FIG. 17A. FIG. 17B illustrates that the cross-section 272 of the valid color region for Y CBCR has an elliptical shape. FIG. 18A illustrates the valid color region 274 in YUVIRE color space. Applying Equations 22, 23 and 24 to the double-cone valid color region 270 of FIG. 17A produces the double cone 274 of FIG. 18A centered around the YIRE axis.
FIG. 18B is a view of the double cone looking down the YIRE axis and shows that after applying Equations 22, 23 and 24, the cross-section of the double cone 276 of the YUVI E color space is a circle. Because the three components of the YCBCR color space have been normalized by Equations 22, 23, 24 into the YUVIRE color space, a unit excursion in any dimension of the YUVIRE color space of FIG. 18A is of equal significance. The slope of the cone edges is exactly 45°. Thus, the application of equations 22-24 to the 601 format to produce components in the YUVIRE format implements the first general step of the transformation. The significance of the symmetrical properties of the double cone of YUVIRE space is described in more detail below.
First, since the double cone 274 is circular, the magnitude of the combined chroma components, UI E and VI E, can be calculated, and the 3D cone can be collapsed into a 2D triangle.
FIG. 19 illustrates the collapsing color space. This collapse or conversion is achieved by converting the UIRE and VIRE components into a RE component defined by
.-IRE " J u 2
IRE + v IRE >
In FIG. 19, lines 282 and 284 represent the safe color limits in the two-dimensional YCIRE space.
In order implement the third general step of the transformation so that the equations for safe color modification are simpler, the next step is to shift the double triangle 280 downward along the YIRE axis so that it is centered about the RE axis, and scaling the safe color limit 282 to a predetermined threshold value in safe color space. Figure 20 illustrates the safe color double-triangle 281 in safe color space. In an embodiment of safe color modification, the number 128 is used as the predetermined threshold value. The number 128 is used because it is a convenient number for performing mathematical operations. 8 bits, e.g., 7 magnitude bits and a sign bit, can be used to represent values ranging from -128 to 128, which is the same number of bits used to represent a color component in 601 format. In a hardware implementation of safe color modification, this symmetry between the number of bits leads to simpler and consequently faster circuitry.
The shifting and scaling involves converting coordinates of the Y RE two- dimensional coordinate space into the Y Css safe color space. In order to make this 5 conversion from Y CIRE color space to safe color space, the three original components of the color component signal, Y6oι, CB and CR, are scaled by an additional factor. An offset also is applied to the original luma component Y6oι. Equations 26, 27 and 28 define the conversion from the 601 components to safe color component space:
10 Equation 26 yss = γ1RI • sealer + offset
Known values of points 900, 902, 904, 900', 902', and 904' from FIG. 19 are applied to provide
Equation 27 [/ss = Umi • scalec
15
Equation 28 V = Vim • scalec
In FIG. 20, the following equations 29, 30 and 31 defining scaley, offset, and scalec are obtained:
256 0 Equation 29 scale) =
Color High - Color Low
-s C
Equation 30 offset = 128 - Color High '
Color _Hιgh - Color Low
r^ 256
Equation 31 scalec = — : :
Color _ High - Color Low
25
Substituting equations 29, 30 and 31 back into Equations 26 through 28, the following equations for converting the components of a Y CBCR signal into safe color space are defined:
Equation 32:
, _ _ 256 _ (10 - setup) 256 _ (235 _ setup - 1600 - 109 5 _ (Color_Hιgh - Coloi _LowJ) 0 Y K / cm ~*
219 _ (Color_Hιgh - Color Low) ' 219 _ (Color High - Color Low)
16 * 0 436010346 • (100 - setup) .
Equation 33 U SS = 7 7 • ( ,Col ,or H „igh - C 'ol ,or Lo~wV) * (CB - 128> Z7 ,• ,, r 16 * 0.614975383 • (100 - setup) ,
Equation 34 : Vss = — • (CR - 128)
7 • (Color High - Color XLow)
From Equations 32, 33 and 34, Equations 2 - 6 are derived.
FIG. 21 is a graph illustrating the next step of the conversion process of taking the magnitude of the safe space luma component Y ss, and using the limit line 286 that defines the line the magnitude of Y + C = 128 to determine whether a color is safe. If the sum of the magnitude of luma of a pixel in safe space, Yss, and the chroma of the pixel in safe space, Css is greater than 128, then the color of the pixel is not safe. If the sum of the magnitude of Yss, lYssL and Css is less than or equal to 128, then the color of the pixel is safe.
Referring to FIG. 21, if a pixel is outside the safe area 294, the luma and chroma are adjusted to bring the pixel to the safe limit 286. Simply reducing either the luma or the chroma individually may generates visually undesirable results. Better results can be obtained by changing both luma and chroma equally, providing the closest safe color to the original color of a pixel. Thus, the adjustment is performed by mapping the color of the unsafe pixel to the limiting line 286 in a direction perpendicular to the limiting line 286. This is illustrated in FIG. 21 for point D which represents the color of a pixel in safe color space. In order to correct the color of the pixel, the luma and chroma components of the pixel are adjusted along the line 296. It is possible that the Css value of a pixel may be greater than 128, but Yss of the pixel is less than 128 so long as the luma high threshold value is less than or equal to the color iigh threshold value and the luma low threshold value is greater than or equal to the color low threshold value. These conditions are satisfied because the original Y6oι value has been clipped as described above with reference to FIGS. 2 and 4, before entering the safe color limiter.
Points A and B in FIG. 21 illustrate two situations where the Css component of the color of a pixel in safe space is greater than 128. With regard to point A, the same method of color modification discussed above with respect to point D may be applied to reduce the luma and chroma of the pixel by the same amount, thus mapping the point A down to point C2 on the limit line 286 along the line 298.
However, if point B is mapped to the nearest point on the limit line 286, the resulting point is C4, which is still an invalid color. One solution to the problem posed by point B is to map all points that have a Css component greater than 128 back to the line 290, which defines Css =128, and then from line 290 perpendicularly to the nearest point on limit line 286. However, both points A and B are mapped to the same point Cl . This mapping results in A and B having the same chroma value, although original point B had a greater chroma value than point B. Alternatively, any points, such as B, that are to the right of line 288, having a chroma greater than the sum of the luma value and the threshold value may be mapped along path 312 and 310, and map points on the left of line 288 perpendicularly to the limit line 286. However, after this mapping, the chroma of point B is less than the chroma of point A, and the luma of point B is higher than point A.
Alternatively, the line 288 which defines Css =|Yss|+128 may be used. For points to the left of this dashed line, Css<Yss +128 and for points to the right of this dashed line, Css>|Yss|+ 28. For example, point A is to the left of the line 288 and point B is to the right of the line 288. Using this mapping corrects all points to the left of line 288 in the manner described with respect to point D, by mapping the point perpendicularly to the line 286. In contrast, for points to the right of the line 288, using point B as an example, safe color limiting maps each point to the line 288, and then perpendicularly along the line 288 to the point C3. Point C3 represents a color in safe color space jYssl = 0 and Css = 128. The chroma clipper 62 of FIG. 6 implements this type of chroma clipping as described in FIG. 18, steps 160 -166. The value of the converted chroma value 70 can be described by the following equation 35:
| YSS | + 128 if Css > | Yss l + 128 Equation 35 : C CH = {
Css if Css ≤l Yss I + 128
where CCH is converted chroma value 70, Yss is the converted luma value 68, and Css equals the combined chroma value 72.
The point D in FIG. 21 is defined by coordinates (|Yss|, CCH) and the new value to which pixels are limited is defined by the coordinates (Yp, Cp). The results of changing just one of the components individually can be seen at points (|Y ssl, ) and (Y, CCH)- Because the slope of the limit line 286 is -1, = 128 «Yss«- Consequently, Z = CCH - Cj = CCH - 128 + |Y ssl, where Z is the modification that is applied to a color to map it to closest safe color. The luma intercepts the limit line 286 at Yp, where: Equatt •on36r : γP
Solving for C-,:
Equation 37 : Cp
Figure imgf000029_0001
After Yp has been calculated, the correction factor Yc to be applied to the original Y60ι data to generate a safe luma component can be determined. This correction factor is scaled by the inverse of the scale factor that was originally applied to the Y«JI data. Accordingly, Y can be defined by the following equation 38:
Equation 38 : Yc ={\ Yss\-Yt )*
Yxale
Equation 12 can be derived by combining Equations 36 and 38. The Yc of Equation 38 is the luma correction value 88 of FIG. 6. As described above with reference to FIG. 6, the luma correction value 88 is then added to the checked luma component 18 to generate the safe luma component 26. By adding the luma correction offset 88, as opposed to applying a scalar, to the checked luma component 18, round-off errors are πiinimized and pass-through, where no modifications are made is simplified by simply adding 0 to the checked luma component L8. Because the modification perfoπned on the luma components is additive, the sign of the correction is pertinent, as described above with reference to FIG. 11, steps 176 - 180. Unlike the checked luma component 18 which is modified with a luma onset value, the first chroma component 10 and the second chroma component 12 are modified using scale factors based on Cp . Figure 22 illustrates safe color space expanded into three-dimensional space to show the chroma components or vectors Vss, Uss. Vp, and Up corresponding to chroma components Css and Cp, respectively. FIG.22 is a view looking down the Yss axis at the circular chroma cross-section 314 of the safe color cone defining the safe color limit. Although the CP vector representing the modified chroma component has the same angle as the Css vector, presenting the original chroma component, the magnitude of Q» is less than the magnitude of Css. Hie ratio of C? to Css is the same as the ratio of Up and Vp to Uss and Vss, respectively. Up and Vp thus can be defined by the following equations:
Equation 40 : VP = VSS
Figure imgf000029_0002
RECTIFIED SHEET (RULE 91) ISA/EP Equation 39 :
Figure imgf000030_0001
Applying this same ratio to the original chroma components, CR and CB, and accounting for the 128 offset for chroma components of the 601 format, the safe chroma components may be defined by the following equations:
Equation 41 : CBmrr = [ ( CB - 128 ) • —J + 128
Css
9
Equation 42 : CKcrr = [ ( CR - 128 ) • —] + 128
Css
Equations 41 and 42 can be combined with equations 32-35 and 37 to derive equations 13-15, which define the chroma correction scalar and how it is applied to the original chroma components to produce safe chroma components.
Safe color modification may be implemented using a computer system. It should be understood that safe color modification is not limited by the specific computer described herein. Many other different machines may be used to implement the invention. Such a suitable computer system includes a processing unit which performs a variety of functions and a manner well-known in the art in response to instructions provided from an application program. The processing unit functions according to a program known as the operating system, of which many types are known in the art. The steps of an application program are typically provided in random access memory (RAM) in machine-readable form because programs are typically stored on a non-volatile memory, such as a hard disk or floppy disk. When a user selects an application program, it is loaded from the hard disk to the RAM, and the processing unit proceeds through the sequence of instructions of the application program.
The computer system also includes a user input/output (I/O) interface. The user interface typically includes a display apparatus (not shown), such as a cathode-ray-tube (CRT) display in an input device (not shown), such as a keyboard or mouse. A variety of other known input and output devices may be used, such as speech generation and recognition units, audio output devices, etc.
The computer system also includes a video and audio data I/O subsystem. Such a subsystem is well-known in the art and the present invention is not limited to the specific subsystem described herein. The audio portion of subsystem includes an analog- to-digital (A/D) converter (not shown), which receives analog audio information and converts it to digital information. The digital information may be compressed using known compression systems, for storage on the hard disk to use at another time. A typical video portion of subsystem includes a video image compressor/decompressor (not shown) of which many are known in the art. Such compressor/decompressors convert analog video information into compressed digital information. The compressed digital information may be stored on hard disk for use at a later time. An example of such a compressor/decompressor is described in U.S. Patent No. 5,355,450.
One or more output devices may be connected to the computer system. Example output devices include a cathode ray tube (CRT) display, liquid crystal displays (LCD) and other video output devices, printers, communication devices such as a modem, storage devices such as disk or tape, and audio output. One or more input devices may be connected to the editing or playback system. Example input devices include a keyboard, keypad, track ball, mouse, pen and tablet, communication device, and data input devices such as audio and video capture devices and sensors. Source and color modification are not limited to the particular input or output devices used in combination with the computer system or to those described herein.
The computer system may be a general purpose computer system which is programmable using a computer programming language, such as "C++," JAVA or other language, such as a scripting language or even assembly language. The computer system may also be specially programmed, special purpose hardware such as an application specific integrated circuit (ASIC). In a general purpose computer system, the processor is typically a commercially available processor, such as the series x86 and Pentium processors, available from Intel, similar devices from AMD and Cyrix, the 680X0 series microprocessors available from Motorola, and the PowerPC microprocessor from IBM. Many other processors are available. Such a microprocessor executes a program called an operating system, of which WindowsNT, Windows95 or 98, UNIX, Linux, DOS, VMS, MacOS and OS8 are examples, which controls the execution of other computer programs and provides scheduling, debugging, input/output control, accounting, compilation, storage assignment, data management and memory management, and communication control and related services. The processor and operating system define a computer platform for which application programs in high-level programming languages are written. A memory system typically includes a computer readable and writeable nonvolatile recording medium, of which a magnetic disk, a flash memory and tape are examples. The disk may be removable, known as a floppy disk, or permanent, known as a hard drive. A disk has a number of tracks in which signals are stored, typically in binary form, i.e., a form interpreted as a sequence of one and zeros. Such signals may define an application program to be executed by the microprocessor, or information stored on the disk to be processed by the application program. Typically, in operation, the processor causes data to be read from the nonvolatile recording medium into an integrated circuit memory element, which is typically a volatile, random access memory such as a dynamic random access memory (DRAM) or static memory (SRAM). The integrated circuit memory element allows for faster access to the information by the processor than does the disk. The processor generally manipulates the data within the integrated circuit memory and then copies the data to the disk after processing is completed. A variety of mechanisms are known for managing data movement between the disk and the integrated circuit memory element, and the invention is not limited thereto. It should also be understood that the invention is not limited to a particular memory system.
Such a system may be implemented in software or hardware or firmware, or a combination of the three. The various elements of the system, either individually or in combination may be implemented as a computer program product tangibly embodied in a machine-readable storage device for execution by a computer processor. Various steps of the process may be performed by a computer processor executing a program tangibly embodied on a computer-readable medium to perform functions by operating on input and generating output. Computer programming languages suitable for implementing such a system include procedural programming languages, object-oriented programming languages, and combinations of the two.
The computer system used to implement safe color modification is not limited to a particular computer platform, particular processor, or particular programming language. Additionally, the computer system may be a multi processor computer system or may include multiple computers connected over a computer network. Each step of FIGS. 4, 5, 7-13, and 16 may be separate modules of a computer program, or may be separate computer programs. Such modules may be operable on separate computers. Having now described some embodiments, it should be apparent to those skilled in the art that the foregoing is merely illustrative and not limiting, having been presented by way of example only. Numerous modifications and other embodiments are within the scope of one of ordinary skill in the art and are contemplated as falling within the scope of the invention.

Claims

1. A method of generating components for a pixel to provide safe color from components of the pixel according to a threshold defining safe color, wherein the components include a luma component, a first chroma component, and a second chroma component, the method comprising: determining whether a combination of a first luma value associated with the luma component and a first chroma value associated with the first and second chroma components of the pixel exceeds the threshold defining safe color; and if the combination exceeds the threshold defining safe color, modifying the luma component of the pixel so as to generate safe components.
2. The method of claim 1, further comprising: if the combination exceeds the threshold defining safe color, modifying the first and second chroma components of the pixel so as to generate components within the threshold defining safe color.
3. The method of claim 2, further comprising: if the combination exceeds the threshold defining safe color, generating a chroma correction scalar value, wherein the step of modifying the first and second chroma components includes: combining the first chroma component and the chroma correction scalar value; and combining the second chroma component and the chroma correction scalar value.
4. The method of claim 3, wherein if the combination of the first luma value and the first chroma value is less than the threshold defining safe color, the chroma correction scalar is equal to numerical one.
5. The method of claim 1, further comprising: if the combination exceeds the threshold defining safe color, generating a luma correction offset value, wherein the luma component is modified by combining the luma component and the luma correction offset value.
6. The method of claim 5, wherein, the first luma value is a magnitude of a second luma value, and wherein if the second luma value is a positive value the luma correction offset value is a positive value, and if the second luma value has a negative value, the luma correction offset value is negative.
7. The method of claim 5, wherein, if the combination of the first luma value and the first chroma value is less than the threshold defining safe color, the luma correction offset value is numerical zero.
8. The method of claim 5, further comprising: if the combination exceeds the threshold defining safe color, generating a chroma correction scalar value; and modifying the first and second chroma components, including: combining the first chroma component and the chroma correction scalar value; and combining the second chroma component and the chroma correction scalar value.
9. The method of claim 1 , further comprising: receiving safe color parameters defining parameters for the components to be generated; generating luma conversion terms from the safe color parameters; and generating the first luma value by applying the luma conversion terms to the luma component.
10. The method of claim 9, wherein the luma conversion terms include a luma scalar value and a luma offset value.
11 The method of claim 1 , further comprising: combining the first luma value and the threshold defining safe color to produce a chroma threshold value; and generating the first chroma value, including: comparing a combination of the first and second chroma components to the chroma threshold value; and if the combined chroma components is greater than the chroma threshold value, clipping the combined component value to the chroma threshold value.
12. The method of claim 11, further comprising: generating chroma conversion terms from the safe color parameters; generating a first chroma conversion value and a second chroma conversion value by applying the chroma conversion terms to the first and second chroma components, respectively; and generating a combined chroma value by combining the first and second chroma conversion values, wherein the combined chroma value is the combination of the first and second chroma components that is compared to the chroma threshold value.
13. The method of claim 1 , further comprising : receiving a luma high threshold value that defines a high threshold for the luma component; receiving a luma low threshold value that defines a low threshold value for the luma component; generating a checked luma value, including: comparing the luma component and to the high luma threshold value and the low threshold value; and if the luma component is greater than the luma high threshold value or less than the luma low threshold value, clipping the luma component to the luma high or luma low threshold value, respectively; and if the luma threshold value is not greater than the luma high threshold value or less than the luma low threshold value, setting the checked luma component equal to the luma component, wherein the step of modifying the luma component modifies the checked luma component.
14. The method of claim 1, wherein the step of determining includes: combining the first chroma value and a magnitude of the first luma value to generate the combination.
15. The method of claim 1 , wherein if the combination of the first luma value and the first chroma value of the pixel exceeds the threshold defining safe color, the method further comprises : generating an interrupt to warn a system user that an unsafe color has been detected.
16. The method of claim 1, wherein if the combination of the first luma value and the first chroma value of the pixel exceeds the threshold defining safe color, the method further comprises: generating an event indicating that an unsafe color has been detected.
17. A method of generating corrections for modifying components of a pixel to produce a safe color, according to a threshold defining safe color, the method comprising: transforming the color components into safe space; determining whether a combination of transformed color components exceeds the threshold defining safe color; and if the combination exceeds the threshold defining safe color, generating component correction values to be applied to the components and produce safe components.
18. A method of transforming a component color into safe color space, comprising: receiving a component color of a first color space; and transforming the component color into safe space by applying by applying conversion terms to each component of the component color, wherein the transformation into safe color space creates symmetrical relationships between the color components, the symmetrical relationships permitting simplified operations to be performed on the components.
PCT/US2000/010082 1999-04-16 2000-04-14 Safe color limiting of a color on a digital nonlinear editing system WO2000064189A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU42429/00A AU4242900A (en) 1999-04-16 2000-04-14 Safe color limiting of a color on a digital nonlinear editing system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US29359099A 1999-04-16 1999-04-16
US09/293,590 1999-04-16

Publications (3)

Publication Number Publication Date
WO2000064189A2 true WO2000064189A2 (en) 2000-10-26
WO2000064189A3 WO2000064189A3 (en) 2001-02-15
WO2000064189A9 WO2000064189A9 (en) 2002-03-14

Family

ID=23129693

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/010082 WO2000064189A2 (en) 1999-04-16 2000-04-14 Safe color limiting of a color on a digital nonlinear editing system

Country Status (2)

Country Link
AU (1) AU4242900A (en)
WO (1) WO2000064189A2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7394469B1 (en) 2003-10-01 2008-07-01 Microsoft Corporation Picking TV safe colors
US9736335B2 (en) 2015-04-15 2017-08-15 Apple Inc. Techniques for advanced chroma processing
EP3297282A1 (en) * 2016-09-15 2018-03-21 Thomson Licensing Method and apparatus for video coding with adaptive clipping
US10397586B2 (en) 2016-03-30 2019-08-27 Dolby Laboratories Licensing Corporation Chroma reshaping
US10735774B2 (en) 2016-05-13 2020-08-04 Interdigital Vc Holdings, Inc. Method and apparatus for video coding with adaptive clipping

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5657094A (en) * 1994-08-31 1997-08-12 Sony Corporation Video signal processing method and apparatus employing luminance and chroma estimates
WO1998011510A1 (en) * 1996-09-12 1998-03-19 Discreet Logic Inc. Processing image data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5657094A (en) * 1994-08-31 1997-08-12 Sony Corporation Video signal processing method and apparatus employing luminance and chroma estimates
WO1998011510A1 (en) * 1996-09-12 1998-03-19 Discreet Logic Inc. Processing image data

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7394469B1 (en) 2003-10-01 2008-07-01 Microsoft Corporation Picking TV safe colors
US9736335B2 (en) 2015-04-15 2017-08-15 Apple Inc. Techniques for advanced chroma processing
US10136033B2 (en) 2015-04-15 2018-11-20 Apple Inc. Techniques for advanced chroma processing
US10602025B2 (en) 2015-04-15 2020-03-24 Apple Inc. Techniques for advanced chroma processing
US10397586B2 (en) 2016-03-30 2019-08-27 Dolby Laboratories Licensing Corporation Chroma reshaping
US10735774B2 (en) 2016-05-13 2020-08-04 Interdigital Vc Holdings, Inc. Method and apparatus for video coding with adaptive clipping
EP3297282A1 (en) * 2016-09-15 2018-03-21 Thomson Licensing Method and apparatus for video coding with adaptive clipping
WO2018050601A1 (en) * 2016-09-15 2018-03-22 Thomson Licensing Method and apparatus for video coding with adaptive clipping
US10999603B2 (en) 2016-09-15 2021-05-04 Interdigital Vc Holdings, Inc. Method and apparatus for video coding with adaptive clipping

Also Published As

Publication number Publication date
AU4242900A (en) 2000-11-02
WO2000064189A3 (en) 2001-02-15
WO2000064189A9 (en) 2002-03-14

Similar Documents

Publication Publication Date Title
US6583824B2 (en) Color modification on a digital nonlinear editing system
US9767544B2 (en) Scene adaptive brightness/contrast enhancement
US5418574A (en) Video signal correction apparatus which detects leading and trailing edges to define boundaries between colors and corrects for bleeding
JP2994153B2 (en) Color signal converter
JP3219180B2 (en) Color correction method and apparatus
US6552731B1 (en) Multi-tone representation of a digital image on a digital nonlinear editing system
US20060251323A1 (en) Detection, correction fading and processing in hue, saturation and luminance directions
JP3830747B2 (en) Color reproduction range compression method and color reproduction range compression apparatus
US20030016866A1 (en) Secondary color modification of a digital image
JPH02301295A (en) Video printer device
JPH0974494A (en) Color reproduction area correction method, color reproduction area correction device and recording medium
WO2006115784A2 (en) Method and system for automatic color hue and color saturation adjustment of a pixel from a video source
US5155586A (en) Method and apparatus for flare correction
CN1655626B (en) System and method for clipping values of pixels
WO2000064189A2 (en) Safe color limiting of a color on a digital nonlinear editing system
JPH11191861A (en) Image processing unit and image processing system
JP4028615B2 (en) Signal processing system, image processing apparatus, and circuit for converting signal
US20210104016A1 (en) Device for interpolating colors and method thereof
JP4139672B2 (en) Interpolation apparatus and interpolation method of captured image by single-plate color digital camera
JP4139587B2 (en) Interpolation apparatus and method for captured image in single-plate color digital camera
WO2000064141A1 (en) Apparatus and method for generating and displaying histograms of color images for color correction
JP2000138949A (en) Image information conversion device and conversion method
JP3262834B2 (en) Color image processing equipment
JP3777831B2 (en) Image information conversion apparatus and conversion method
CN113242424A (en) Image coding and decoding method and device

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AU CA JP

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
AK Designated states

Kind code of ref document: A3

Designated state(s): AU CA JP

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

AK Designated states

Kind code of ref document: C2

Designated state(s): AU CA JP

AL Designated countries for regional patents

Kind code of ref document: C2

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

COP Corrected version of pamphlet

Free format text: PAGES 1/17-17/17, DRAWINGS, REPLACED BY NEW PAGES 1/21-21/21; DUE TO LATE TRANSMITTAL BY THE RECEIVING OFFICE

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase in:

Ref country code: JP