EP1741282A1 - Method and apparatus for vertically scaling pixel data - Google Patents
Method and apparatus for vertically scaling pixel dataInfo
- Publication number
- EP1741282A1 EP1741282A1 EP05740206A EP05740206A EP1741282A1 EP 1741282 A1 EP1741282 A1 EP 1741282A1 EP 05740206 A EP05740206 A EP 05740206A EP 05740206 A EP05740206 A EP 05740206A EP 1741282 A1 EP1741282 A1 EP 1741282A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- line
- pixels
- component
- color
- color space
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
- 238000000034 method Methods 0.000 title claims description 29
- 238000005070 sampling Methods 0.000 claims abstract description 46
- 230000015654 memory Effects 0.000 claims abstract description 41
- 238000012545 processing Methods 0.000 claims abstract description 33
- 238000010586 diagram Methods 0.000 description 26
- 238000004891 communication Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000013341 scale-up Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/40—Picture signal circuits
- H04N1/40068—Modification of image resolution, i.e. determining the values of picture elements at new relative positions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4007—Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4015—Image demosaicing, e.g. colour filter arrays [CFA] or Bayer patterns
Definitions
- Embodiments of the present invention generally relate to a method and apparatus for vertically scaling pixel data.
- a vertical sealer is generally designed to change the number of input lines to a different number of output lines in the output video signal.
- a vertical sealer can either scale up or down.
- a line generally refers to a video horizontal scan line.
- the process of vertical scaling can be complicated, particularly because the incoming pixel data is in line format.
- Vertical scaling typically requires comparison and calculations between many adjacent lines of pixel data. Because of the nature of the incoming pixel data in rasterized format, the previous and current line must be stored until the next line becomes available.
- These lines are typically stored in a line store memory, which consists of one or more random access memories (RAM's).
- the size of each RAM is determined by the number of lines to be stored and the length of each line. Since every line corresponding to the full width of the image may need to be stored in the line store memory in preparation for vertical scaling, the size of the line store memory can become quite large, thereby making the vertical scaling operation an expensive process.
- An objective of various embodiments of the invention is to reduce the amount of pixel data that needs to be stored in a line store memory in connection with scaling the pixel data vertically.
- Various embodiments of the present invention are generally directed to an image processing apparatus, which includes a red, green and blue (RGB) color space to luminance color, blue color difference and red color difference (YCbCr) color space converter module for converting a line of pixels from the RGB color space to the YCbCr color space.
- the line of pixels has a first sampling rate.
- the image processing apparatus further comprises a chrominance decimator module coupled to the RGB to YCbCr color space converter module.
- the chrominance decimator module is configured to generate an intermediate representation of the line of pixels having a second sampling rate that is less than the first sampling rate.
- the amount of data representing the intermediate representation is less than the amount of data representing the line of pixels.
- the image processing apparatus further comprises a line store memory coupled to the chrominance decimator module.
- the line store memory is configured to store the intermediate representation.
- the image processing apparatus further comprises a vertical sealer module coupled to the line store memory. The vertical sealer module is configured to generate a scaled version of the intermediate representation.
- the image processing apparatus further comprises a chrominance interpolator module coupled to the vertical sealer module.
- the chrominance interpolator module is configured to convert the scaled version of the intermediate representation having the second sampling rate to a scaled version of the line of pixels having the first sampling rate.
- the image processing apparatus further comprises a YCbCr to RGB color space converter module coupled to the chrominance interpolator module.
- the YCbCr to RGB color space converter module is configured to convert the scaled version of the line of pixels from the YCbCr color space to the RGB color space.
- the RGB to YCbCr color space converter module determines a luminance color component (Y) of the pixel data by adding VS of a red color (R) component of the pixel data to ⁇ of a green color (G) component of the pixel data and of a blue color (B) component of the pixel data.
- the RGB to YCbCr color space converter module further determines a blue color difference component (Cb) of the pixel data by subtracting the luminance color component (Y) of the pixel data from the blue color (B) component, and dividing the result by two.
- the RGB to YCbCr color space converter module further determines a red color difference component (Cr) of the pixel data by subtracting the luminance color component (Y) of the pixel data from the red color (R) component of the pixel data and dividing the result by two.
- the YCbCr to RGB color space converter module determines the red color (R) component of the pixel data by adding the luminance color component (Y) to twice the red color difference component (Cr) of the pixel data.
- the YCbCr to RGB color space converter module further determines the green color (G) component of the pixel data by subtracting the red color difference component (Cr) and the blue color difference component (Cb) of the pixel data from the luminance color component (Y) of the pixel data.
- the YCbCr to RGB color space converter module further determines the blue color (B) component of the pixel data by adding the luminance color component (Y) of the pixel data to twice the blue color difference component (Cb) of the pixel data.
- Figure 1 illustrates a simplified block diagram of a computer system according to an embodiment of the present invention.
- Figure 2 is a flow diagram of a method for converting pixel data from an RGB space to a YCbCr space in accordance with one embodiment of the invention.
- Figure 3A illustrates a logic diagram for determining the luminance color component (Y) of the pixel data in accordance with one embodiment of the invention.
- Figure 3B illustrates a logic diagram for determining the blue color difference component (Cb) of the pixel data in accordance with one embodiment of the invention.
- Figure 3C illustrates a logic diagram for determining the red color difference component (Cr) of the pixel data in accordance with one embodiment of the invention.
- Figure 4 illustrates a flow diagram of a method for vertically scaling pixel data in accordance with one embodiment of the invention.
- Figure 5 illustrates a flow diagram of a method for converting pixel data from the YCbCr space to the RGB space in accordance with one embodiment of the invention.
- Figure 6A illustrates a logic diagram for determining the red color component (R) of the pixel data in accordance with one embodiment of the invention.
- Figure 6B illustrates a logic diagram for determining the green color component (G) of the pixel data in accordance with one embodiment of the invention.
- Figure 6C illustrates a logic diagram for determining the blue color component (B) of the pixel data in accordance with one embodiment of the invention.
- FIG. 1 illustrates a simplified block diagram of a computer system 100 according to an embodiment of the present invention.
- the computer system 100 includes a central processing unit (CPU) 102 and a system (main) memory 104 communicating via a system bus 106.
- User input is received from one or more user input devices 108 (e.g., keyboard, mouse) coupled to the system bus 106.
- Visual output is provided on a pixel based display device 1 10 (e.g., a conventional CRT, TV or LCD based monitor, projector, etc.) operating under control of a graphics processing unit (GPU) 112 coupled to the bus 106.
- GPU graphics processing unit
- the computer system 100 operates in a red, green and blue (RGB) color space.
- RGB red, green and blue
- the system memory 104 stores various programs or applications, such as operating system programs for generating the pixel data to be processed by the GPU
- Examples of operating system programs 130 include Graphical Device Interface
- 104 may further store a graphics driver program for enabling communication with the
- the graphics driver program may implement one or more standard application program interfaces (APIs), such as Open GL and Microsoft DirectX, for communication with the GPU 112.
- APIs application program interfaces
- the operating system programs are able to instruct the graphics driver program to transfer the pixel data to the GPU 112 via the system bus 106 and invoke various rendering functions of the GPU 112.
- pixel data are typically stored and represented in binary form. Data transfer operations may be performed using conventional DMA
- system memory (direct memory access) or other operations.
- system memory (direct memory access) or other operations.
- system memory (direct memory access) or other operations.
- 104 may store pixel data in the RGB color space.
- the computer system 100 further includes a local memory or frame buffer 114 in communication with the GPU 112.
- the frame buffer 114 stores the pixel data to be read by a scanout control logic and transmitted to the display device 1 10 for display as an image.
- the frame buffer 114 stores the pixel data in the RGB color space.
- the frame buffer 114 is shown as distinct and apart from the system memory 104, in some implementations, such as in a Unified Memory Architecture, the frame buffer 114 and the system memory 104 would share the same physical memory devices.
- the GPU 112 includes various components for receiving and processing graphics system commands received via the bus 106.
- the GPU 112 includes a memory management unit 120 and a display pipeline 130.
- the memory management unit 120 reads the pixel data from the frame buffer 114 or the memory 104, places the pixel data in order and transmits the pixel data to the display pipeline 130 for processing.
- the display pipeline 130 is generally used for image processing.
- the display pipeline 130 may contain various processing modules configured to convert the pixel data into pixel data suitable for displaying on the display device.
- the display pipeline 130 may include a module 142 that processes the pixel data in the red green blue (RGB) color space. Examples of processing modules that operate in the RGB color space include brightness control, contrast control and gamma correction.
- the display pipeline 130 further includes an RGB to YCbCr color space converter module 144, which is configured to convert the pixel data from the RGB color space to the YCbCr space.
- RGB to YCbCr color space converter module 144 A detailed description of the operations of the RGB to YCbCr color space converter module 144 is provided in the paragraphs below with reference to Figures 2-3.
- the display pipeline 130 may further include a chrominance decimator 145, a vertical sealer 146 and a chrominance interpolator 147.
- the chrominance decimator 145 is configured to reduce the sampling rate of the blue color difference component (Cb) and the red color difference component (Cr) of the pixel data.
- the chrominance decimator 145 may also be referred to as the chrominance down sampler.
- the chrominance decimator 145 may also include components commonly known by persons of ordinary skill in the art.
- the chrominance decimator 145 may include a low pass filter configured to reduce the bandwidth of the blue color difference component (Cb) and the red color difference component (Cr) of the pixel data.
- the vertical sealer 146 is configured to vertically scale the pixel data stored in the line store memory 170.
- the vertical sealer 146 may be any vertical sealer that is commonly known by persons of ordinary skill in the art.
- the chrominance interpolator 147 is configured to increase the sampling rate of the blue color difference component (Cb) and the red color difference component (Cr) of the pixel data.
- the chrominance interpolator 147 may also be referred to as the chrominance up sampler.
- the chrominance interpolator 147 may also include components commonly known by persons of ordinary skill in the art.
- the chrominance interpolator 147 may include a finite impulse response (FIR) filter.
- FIR finite impulse response
- the display pipeline 130 may further include a line store memory 170, which is in communication with the vertical sealer 146.
- the line store memory 170 stores the pixel data configured to be vertically scaled by the vertical sealer 146.
- the line store memory 170 may include one or more random access memories (RAM's). Although the line store memory 170 is shown as distinct and apart from the system memory 104 and the frame buffer 114, in some implementations, the line store memory 170, the system memory 104 and the frame buffer 114 may share the same physical memory devices.
- the display pipeline 130 further includes a YCbCr to RGB color space converter module 148, which is configured to convert the pixel data from the YCbCr space to the RGB space. In this manner, the pixel data may be converted back to the RGB space once the processing of the pixel data in the YCbCr space is completed.
- the YCbCr to RGB color space converter module 148 converts the pixel data to the RGB space once the pixel data has been vertically scaled. A detailed description of the operations of the YCbCr to RGB color space converter module 148 is provided in the paragraphs below with reference to Figures 5-6.
- the display pipeline 130 has been described with reference to include one RGB to YCbCr color space converter module 144 followed by one YCbCr to RGB color space converter module 148, various embodiments of the invention may contemplate the display pipeline 130 having one YCbCr to RGB color space converter module 148 followed by one RGB to YCbCr color space converter module 144 in a computer system that operates in the YCbCr color space. Various embodiments of the invention may also contemplate the display pipeline 130 having any number of RGB to YCbCr color space converter modules 144 and any number of YCbCr to RGB color space converter modules 148.
- the display pipeline 130 further includes an industry standard RGB to YCbCr color space converter module 150 to convert the pixel data to the YCbCr space.
- the industry standard RGB to YCbCr color space converter module 150 operates in connection with a digital to analog converter (DAC) 162 to display the pixel data on the television screen.
- DAC digital to analog converter
- the display pipeline 130 further includes a digital to analog converter (DAC) 161 to convert the pixel data from digital to analog prior to being displayed on the CRT.
- DAC digital to analog converter
- the computer system 100 is illustrative and that variations and modifications are possible.
- the computer system 100 may be a desktop computer, server, laptop computer, palm-sized computer, tablet computer, game console, set-top box, personal digital appliance, tethered Internet appliance, portable gaming system, cellular/mobile telephone, computer based simulator, or the like.
- the display device 110 can be any pixel-based display, e.g., a CRT or LCD monitor, projector, printer, etc. In some instances, multiple display devices (e.g., an array of projectors or CRT monitors) may be supported, with each device displaying a portion of the image data.
- the display pipeline 130 and the GPU 112 may be on separate chips.
- the GPU 112 or any of its components may be implemented using one or more programmable processors programmed with appropriate software, application specific integrated circuits (ASICs), other integrated circuit technologies, or any combination of these.
- ASICs application specific integrated circuits
- persons of ordinary skill in the art will recognize that the present invention can be embodied in a wide variety of system configurations.
- FIG. 2 is a flow diagram of a method 200 for converting pixel data from an RGB space to a YCbCr space in accordance with one embodiment of the invention.
- the color space coefficient for the red color component is % or 0.25, which is an approximation of 0.299, the color space coefficient for the red color component according to the industry standard color space converter.
- the color space coefficient for the green color component is VT.
- the selected color space coefficients used to calculate the luminance color component (Y) according to equation (1 ) are in binary form. Since the color space coefficients are in binary form, the luminance color component (Y) may be calculated using binary arithmetic and avoid the use of multiplication. In this manner, the luminance color component (Y) of the pixel data may be determined in a more relatively inexpensive manner.
- the luminance color component (Y) of the pixel data may be determined according to a logic diagram 310 illustrated in Figure 3A.
- the luminance color component (Y) of the pixel data is determined by left shifting the green color component by one bit (which is equivalent to a multiplication by two), adding the result to the red color component and the blue color component, and right shifting the entire sum by two bits (which is equivalent to a division by four).
- the logical diagram 310 may be refined by performing a numerical rounding operation prior to right shifting the entire sum by two bits.
- Such numerical rounding may be performed using conventional techniques, such as adding a value equal to 2 raised to the power of the number of shifted bits minus 1 (i.e., 2 (s"1) , where s is the number of shifts) to the entire sum prior to right shifting the entire sum.
- s the number of shifts
- Left shifting and right shifting operations are free to implement from a cost and computational resource perspectives. Accordingly, the luminance color component (Y) of the pixel data may be determined in a relatively inexpensive manner using the left and right shifting operations described in logic diagram 310.
- the color space coefficients used to determine the blue color difference component (Cb) in equation (2) are an approximation of the color space coefficients used to determine the blue color difference component (Cb) according to the industry standard color space converter. In this manner, the color space coefficients used to determine the blue color difference component (Cb) according to equation (2) may be put in binary form.
- the blue color difference component (Cb) of the pixel data may be calculated using binary arithmetic and avoid the use of multiplication. In this manner, the blue color difference component (Cb) of the pixel data may be determined in a more relatively inexpensive manner.
- the blue color difference component (Cb) of the pixel data may be determined according to a logic diagram 320 illustrated in Figure 3B.
- the blue color difference component (Cb) of the pixel data is determined by subtracting the luminance color component (Y) of the pixel data determined at step 210 from the blue color component of the pixel data and right shifting the sum by one bit (which is equivalent to a division by two).
- a numerical rounding operation may be performed prior to right shifting the sum by one bit.
- the blue color difference component (Cb) of the pixel data may be determined in a relatively inexpensive manner using the right shifting operation described in logic diagram 320.
- the color space coefficients used to determine the red color difference component (Cr) according to equation (3) are also an approximation of the industry standard color coefficients so that they may be put in binary form. Since the color coefficients are in binary form, the red color difference component (Cr) of the pixel data may be calculated using binary arithmetic and avoid the use of multiplication.
- the red color difference component (Cr) of the pixel data may be determined in a more relatively inexpensive manner.
- the red color difference component (Cr) of the pixel data may be determined according to a logic diagram 330 illustrated in Figure 3C.
- the red color difference component (Cr) of the pixel data is determined by subtracting the luminance color component (Y) of the pixel data from the red color component of the pixel data and right shifting the result by one bit (which is equivalent to a division by two).
- a numerical rounding operation may be performed prior to right shifting the result by one bit.
- the red color difference component (Cr) of the pixel data may be determined in a relatively inexpensive manner using the right shifting operation described in logic diagram 330.
- FIG. 4 is a flow diagram of a method 400 for vertically scaling pixel data in accordance with one embodiment of the invention.
- the chrominance decimator 145 reduces the sampling rate of the blue color difference component (Cb) and the red color difference component (Cr) of the pixel data by a factor of two.
- the chrominance decimator 145 reduces the sampling rate from a 4:4:4 sampling rate to a 4:2:2 sampling rate. In this manner, the memory requirement for storing the pixel data is reduced by one third, and thereby reducing the size requirements for line store memory 170.
- the sampling rate has been reduced by a factor of two, various embodiments of the invention contemplate that the sampling rate may be reduced by any factor.
- the pixel data is stored in the line store memory 170 (step 420).
- the vertical sealer 146 vertically scales the pixel data that are stored in the line store memory 170.
- the pixel data may be vertically scaled by any vertical scaling techniques known by persons of ordinary skill in the art. For example, a new output line can be generated by interpolating between the stored previous lines using a Finite Impulse Response (FIR) interpolator. By changing the interpolated position relative to the input lines, a new image can be formed having a different number of lines than the input image.
- FIR Finite Impulse Response
- the chrominance interpolator 147 increases the sampling rate of the blue color difference component (Cb) and the red color difference component (Cr) of the pixel data by a factor of two. In one embodiment, the chrominance decimator 147 increases the sampling rate from a 4:2:2 sampling rate to a 4:4:4 sampling rate. In this manner, the chrominance interpolator 147 restores the original sampling rate of the blue color difference component (Cb) and the red color difference component (Cr) of the pixel data. In one embodiment, method 400 may be programmable in that method 400 may be invoked only if the size of the line store memory 170 divided by the number of lines in the vertical sealer 146 is less than the line length.
- the pixel data may be converted from the YCbCr space to the RGB space.
- Figure 5 illustrates a flow diagram of a method 500 for converting pixel data from the YCbCr space to the RGB space in accordance with one embodiment of the invention.
- the color space coefficients used to determine the red color component (R) according to equation (4) are also an approximation of the industry standard color coefficients so that they may be put in a binary form. Since the color coefficients are in a binary form, the red color component (R) of the pixel data may be calculated using binary arithmetic and avoid the use of multiplication. In this manner, the red color component (R) of the pixel data to be determined in a more relatively inexpensive manner.
- the red color component (R) of the pixel data may be determined according to a logic diagram 610 illustrated in Figure 6A.
- the red color component (R) of the pixel data is determined by left shifting the red color difference component (Cr) of the pixel data by one bit (which is equivalent to a multiplication by two) and adding the result to the luminance color component (Y) of the pixel data.
- the red color component (R) of the pixel data may be determined in a relatively inexpensive manner using the left shifting operation described in logic diagram 610.
- the color space coefficients used to determine the green color component (G) according to equation (5) are also an approximation of the industry standard color coefficients so that they may be put in a binary form. Since the color coefficients are in a binary form, the green color component (G) of the pixel data may be calculated using binary arithmetic and avoid the use of multiplication. In this manner, the green color component (G) of the pixel data to be determined in a relatively inexpensive manner.
- the green color component (G) of the pixel data may be determined according to a logic diagram 620 illustrated in Figure 6B.
- the green color component (G) of the pixel data is determined by subtracting the blue color difference component (Cb) of the pixel data from the luminance color component Y of the pixel data and further subtracting the red color difference component Cr from the result.
- the color space coefficients used to determine the blue color component (B) according to equation (6) are also in a binary form. Accordingly, the blue color component (B) of the pixel data may be calculated using binary arithmetic and avoid the use of multiplication, which allows the blue color component (B) of the pixel data to be determined in a relatively inexpensive manner.
- the blue color component (B) of the pixel data may be determined according to a logic diagram 630 illustrated in Figure 6C.
- the blue color component (B) of the pixel data is determined by left shifting the blue color difference component Cr of the pixel data by one bit (which is equivalent to a multiplication by two) and adding the result to the luminance color component Y of the pixel data.
- the blue color component (B) of the pixel data may be determined in a relatively inexpensive manner using the left shifting operation described in logic diagram 630.
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Image Processing (AREA)
- Color Image Communication Systems (AREA)
- Facsimile Image Signal Circuits (AREA)
- Controls And Circuits For Display Device (AREA)
- Transforming Electric Information Into Light Information (AREA)
- Liquid Crystal Display Device Control (AREA)
- Control Of Indicators Other Than Cathode Ray Tubes (AREA)
Abstract
An image processing apparatus that includes a red, green and blue (RGB) color space to luminance color, blue color difference and red color difference (YCbCr) color space converter module for converting a line of pixels from the RGB color space to the YCbCr color space. The line of pixels has a first sampling rate. The image processing apparatus further comprises a chrominance decimator module coupled to the RGB to YCbCr color space converter module. The chrominance decimator module is configured to generate an intermediate representation of the line of pixels having a second sampling rate that is less than the first sampling rate. The amount of data representing the intermediate representation is less than the amount of data representing the line of pixels. The image processing apparatus further comprises a line store memory coupled to the chrominance decimator module. The line store memory is configured to store the intermediate representation. The image processing apparatus further comprises a vertical scaler module coupled to the line store memory. The vertical scaler module is configured to generate a scaled version of the intermediate representation. The image processing apparatus further comprises a chrominance interpolator module coupled to the vertical scaler module. The chrominance interpolator module is configured to convert the scaled version of the intermediate representation having the second sampling rate to a scaled version of the line of pixels having the first sampling rate. The image processing apparatus further comprises a YCbCr to RGB color space converter module coupled to the chrominance interpolator module. The YCbCr to RGB color space converter module is configured to convert the scaled version of the line of pixels from the YCbCr color space to the RGB color space.
Description
METHOD AND APPARATUS FOR VERTICALLY SCALING PIXEL DATA
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation-in-part of co-pending U.S. patent application Serial No. 10/825,259, Attorney Docket No. NVDA/P000715, entitled MINIMALIST COLOR SPACE CONVERTERS FOR OPTIMIZING IMAGE PROCESSING OPERATIONS by W. Young, filed April 15, 2004, which is incorporated herein by reference.
BACKGROUND OF THE INVENTION
Field of the Invention [0002] Embodiments of the present invention generally relate to a method and apparatus for vertically scaling pixel data.
Description of the Related Art
[0003] A vertical sealer is generally designed to change the number of input lines to a different number of output lines in the output video signal. A vertical sealer can either scale up or down. A line generally refers to a video horizontal scan line. The process of vertical scaling can be complicated, particularly because the incoming pixel data is in line format. Vertical scaling typically requires comparison and calculations between many adjacent lines of pixel data. Because of the nature of the incoming pixel data in rasterized format, the previous and current line must be stored until the next line becomes available. These lines are typically stored in a line store memory, which consists of one or more random access memories (RAM's). The size of each RAM is determined by the number of lines to be stored and the length of each line. Since every line corresponding to the full width of the image may need to be stored in the line store memory in preparation for vertical scaling, the size of the line store memory can become quite large, thereby making the vertical scaling operation an expensive process.
[0004] Therefore, a need exists in the art for a more cost effective method and apparatus for vertically scaling pixel data.
SUMMARY OF THE INVENTION
[0005] An objective of various embodiments of the invention is to reduce the amount of pixel data that needs to be stored in a line store memory in connection with scaling the pixel data vertically.
[0006] Various embodiments of the present invention are generally directed to an image processing apparatus, which includes a red, green and blue (RGB) color space to luminance color, blue color difference and red color difference (YCbCr) color space converter module for converting a line of pixels from the RGB color space to the YCbCr color space. The line of pixels has a first sampling rate. The image processing apparatus further comprises a chrominance decimator module coupled to the RGB to YCbCr color space converter module. The chrominance decimator module is configured to generate an intermediate representation of the line of pixels having a second sampling rate that is less than the first sampling rate. The amount of data representing the intermediate representation is less than the amount of data representing the line of pixels. The image processing apparatus further comprises a line store memory coupled to the chrominance decimator module. The line store memory is configured to store the intermediate representation. The image processing apparatus further comprises a vertical sealer module coupled to the line store memory. The vertical sealer module is configured to generate a scaled version of the intermediate representation.
[0007] In one embodiment, the image processing apparatus further comprises a chrominance interpolator module coupled to the vertical sealer module. The chrominance interpolator module is configured to convert the scaled version of the intermediate representation having the second sampling rate to a scaled version of the line of pixels having the first sampling rate.
[0008] In another embodiment, the image processing apparatus further comprises a YCbCr to RGB color space converter module coupled to the chrominance interpolator module. The YCbCr to RGB color space converter module is configured to convert the scaled version of the line of pixels from the YCbCr color space to the RGB color space.
[0009] In yet another embodiment, the RGB to YCbCr color space converter module determines a luminance color component (Y) of the pixel data by adding VS of a red color (R) component of the pixel data to Λ of a green color (G) component of the pixel data and of a blue color (B) component of the pixel data. The RGB to YCbCr color space converter module further determines a blue color difference component (Cb) of the pixel data by subtracting the luminance color component (Y) of the pixel data from the blue color (B) component, and dividing the result by two. The RGB to YCbCr color space converter module further determines a red color difference component (Cr) of the pixel data by subtracting the luminance color component (Y) of the pixel data from the red color (R) component of the pixel data and dividing the result by two.
[0010] In still another embodiment, the YCbCr to RGB color space converter module determines the red color (R) component of the pixel data by adding the luminance color component (Y) to twice the red color difference component (Cr) of the pixel data. The YCbCr to RGB color space converter module further determines the green color (G) component of the pixel data by subtracting the red color difference component (Cr) and the blue color difference component (Cb) of the pixel data from the luminance color component (Y) of the pixel data. The YCbCr to RGB color space converter module further determines the blue color (B) component of the pixel data by adding the luminance color component (Y) of the pixel data to twice the blue color difference component (Cb) of the pixel data.
BRIEF DESCRIPTION OF THE DRAWINGS
[0011] So that the manner in which the above recited features of the present invention can be understood in detail, a more particular description of the invention, briefly summarized above, may be had by reference to embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical embodiments of this invention and are therefore not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments.
[0012] Figure 1 illustrates a simplified block diagram of a computer system according to an embodiment of the present invention.
[0013] Figure 2 is a flow diagram of a method for converting pixel data from an RGB space to a YCbCr space in accordance with one embodiment of the invention.
[0014] Figure 3A illustrates a logic diagram for determining the luminance color component (Y) of the pixel data in accordance with one embodiment of the invention.
[0015] Figure 3B illustrates a logic diagram for determining the blue color difference component (Cb) of the pixel data in accordance with one embodiment of the invention.
[0016] Figure 3C illustrates a logic diagram for determining the red color difference component (Cr) of the pixel data in accordance with one embodiment of the invention.
[0017] Figure 4 illustrates a flow diagram of a method for vertically scaling pixel data in accordance with one embodiment of the invention.
[0018] Figure 5 illustrates a flow diagram of a method for converting pixel data from the YCbCr space to the RGB space in accordance with one embodiment of the invention.
[0019] Figure 6A illustrates a logic diagram for determining the red color component (R) of the pixel data in accordance with one embodiment of the invention.
[0020] Figure 6B illustrates a logic diagram for determining the green color component (G) of the pixel data in accordance with one embodiment of the invention.
[0021] Figure 6C illustrates a logic diagram for determining the blue color component (B) of the pixel data in accordance with one embodiment of the invention.
DETAILED DESCRIPTION
[0022] Figure 1 illustrates a simplified block diagram of a computer system 100 according to an embodiment of the present invention. The computer system 100 includes a central processing unit (CPU) 102 and a system (main) memory 104 communicating via a system bus 106. User input is received from one or more user input devices 108 (e.g., keyboard, mouse) coupled to the system bus 106. Visual output is provided on a pixel based display device 1 10 (e.g., a conventional CRT, TV or LCD based monitor, projector, etc.) operating under control of a graphics
processing unit (GPU) 112 coupled to the bus 106. Other components, such as one or more storage devices 128 (e.g., a fixed or removable magnetic disk drive, compact disk (CD) drive, and/or DVD drive), may also be coupled to the system bus 106. In one embodiment, the computer system 100 operates in a red, green and blue (RGB) color space. Although various embodiments of the invention are described herein with reference to the computer system 100 operating in the RGB color space, the invention contemplates the computer system 100 operating in other color spaces, such as YCbCr.
[0023] The system memory 104 stores various programs or applications, such as operating system programs for generating the pixel data to be processed by the GPU
112. Examples of operating system programs 130 include Graphical Device Interface
(GDI) component of the Microsoft Windows operating system. The system memory
104 may further store a graphics driver program for enabling communication with the
GPU 112. The graphics driver program may implement one or more standard application program interfaces (APIs), such as Open GL and Microsoft DirectX, for communication with the GPU 112. By invoking appropriate API function calls, the operating system programs are able to instruct the graphics driver program to transfer the pixel data to the GPU 112 via the system bus 106 and invoke various rendering functions of the GPU 112. Such pixel data are typically stored and represented in binary form. Data transfer operations may be performed using conventional DMA
(direct memory access) or other operations. In one embodiment, the system memory
104 may store pixel data in the RGB color space.
[0024] The computer system 100 further includes a local memory or frame buffer 114 in communication with the GPU 112. The frame buffer 114 stores the pixel data to be read by a scanout control logic and transmitted to the display device 1 10 for display as an image. In one embodiment, the frame buffer 114 stores the pixel data in the RGB color space. Although the frame buffer 114 is shown as distinct and apart from the system memory 104, in some implementations, such as in a Unified Memory Architecture, the frame buffer 114 and the system memory 104 would share the same physical memory devices.
[0025] The GPU 112 includes various components for receiving and processing graphics system commands received via the bus 106. The GPU 112 includes a
memory management unit 120 and a display pipeline 130. The memory management unit 120 reads the pixel data from the frame buffer 114 or the memory 104, places the pixel data in order and transmits the pixel data to the display pipeline 130 for processing.
[0026] The display pipeline 130 is generally used for image processing. The display pipeline 130 may contain various processing modules configured to convert the pixel data into pixel data suitable for displaying on the display device. In an embodiment in which the computer system 100 operates in the RGB color space, the display pipeline 130 may include a module 142 that processes the pixel data in the red green blue (RGB) color space. Examples of processing modules that operate in the RGB color space include brightness control, contrast control and gamma correction.
[0027] In one embodiment, the display pipeline 130 further includes an RGB to YCbCr color space converter module 144, which is configured to convert the pixel data from the RGB color space to the YCbCr space. A detailed description of the operations of the RGB to YCbCr color space converter module 144 is provided in the paragraphs below with reference to Figures 2-3.
[0028] Once the pixel data has been converted to the YCbCr color space, the pixel data may be processed in the YCbCr color space. Accordingly, the display pipeline 130 may further include a chrominance decimator 145, a vertical sealer 146 and a chrominance interpolator 147. The chrominance decimator 145 is configured to reduce the sampling rate of the blue color difference component (Cb) and the red color difference component (Cr) of the pixel data. The chrominance decimator 145 may also be referred to as the chrominance down sampler. The chrominance decimator 145 may also include components commonly known by persons of ordinary skill in the art. For instance, the chrominance decimator 145 may include a low pass filter configured to reduce the bandwidth of the blue color difference component (Cb) and the red color difference component (Cr) of the pixel data. The vertical sealer 146 is configured to vertically scale the pixel data stored in the line store memory 170. The vertical sealer 146 may be any vertical sealer that is commonly known by persons of ordinary skill in the art. The chrominance interpolator 147 is configured to increase the sampling rate of the blue color difference component (Cb) and the red color difference component (Cr) of the pixel data. The chrominance interpolator 147 may
also be referred to as the chrominance up sampler. The chrominance interpolator 147 may also include components commonly known by persons of ordinary skill in the art. For instance, the chrominance interpolator 147 may include a finite impulse response (FIR) filter. The chrominance decimator 145, the vertical sealer 146 and the chrominance interpolator 147 will be described in more detail in the paragraphs below with reference to Figure 4.
[0029] The display pipeline 130 may further include a line store memory 170, which is in communication with the vertical sealer 146. The line store memory 170 stores the pixel data configured to be vertically scaled by the vertical sealer 146. The line store memory 170 may include one or more random access memories (RAM's). Although the line store memory 170 is shown as distinct and apart from the system memory 104 and the frame buffer 114, in some implementations, the line store memory 170, the system memory 104 and the frame buffer 114 may share the same physical memory devices.
[0030] In accordance with one embodiment of the invention, the display pipeline 130 further includes a YCbCr to RGB color space converter module 148, which is configured to convert the pixel data from the YCbCr space to the RGB space. In this manner, the pixel data may be converted back to the RGB space once the processing of the pixel data in the YCbCr space is completed. In one embodiment, the YCbCr to RGB color space converter module 148 converts the pixel data to the RGB space once the pixel data has been vertically scaled. A detailed description of the operations of the YCbCr to RGB color space converter module 148 is provided in the paragraphs below with reference to Figures 5-6.
[0031] Although the display pipeline 130 has been described with reference to include one RGB to YCbCr color space converter module 144 followed by one YCbCr to RGB color space converter module 148, various embodiments of the invention may contemplate the display pipeline 130 having one YCbCr to RGB color space converter module 148 followed by one RGB to YCbCr color space converter module 144 in a computer system that operates in the YCbCr color space. Various embodiments of the invention may also contemplate the display pipeline 130 having any number of RGB to YCbCr color space converter modules 144 and any number of YCbCr to RGB color space converter modules 148.
[0032] In an embodiment in which the pixel data is displayed on a television screen, the display pipeline 130 further includes an industry standard RGB to YCbCr color space converter module 150 to convert the pixel data to the YCbCr space. The industry standard RGB to YCbCr color space converter module 150 operates in connection with a digital to analog converter (DAC) 162 to display the pixel data on the television screen.
[0033] In an embodiment in which the pixel data is displayed on a CRT, the display pipeline 130 further includes a digital to analog converter (DAC) 161 to convert the pixel data from digital to analog prior to being displayed on the CRT.
[0034] It will be appreciated that the computer system 100 is illustrative and that variations and modifications are possible. The computer system 100 may be a desktop computer, server, laptop computer, palm-sized computer, tablet computer, game console, set-top box, personal digital appliance, tethered Internet appliance, portable gaming system, cellular/mobile telephone, computer based simulator, or the like. The display device 110 can be any pixel-based display, e.g., a CRT or LCD monitor, projector, printer, etc. In some instances, multiple display devices (e.g., an array of projectors or CRT monitors) may be supported, with each device displaying a portion of the image data. The display pipeline 130 and the GPU 112 may be on separate chips. The GPU 112 or any of its components may be implemented using one or more programmable processors programmed with appropriate software, application specific integrated circuits (ASICs), other integrated circuit technologies, or any combination of these. In view of the present disclosure, persons of ordinary skill in the art will recognize that the present invention can be embodied in a wide variety of system configurations.
[0035] Figure 2 is a flow diagram of a method 200 for converting pixel data from an RGB space to a YCbCr space in accordance with one embodiment of the invention. At step 210, a luminance color component (Y) of the pixel data is determined using the equation: Y = R/4 + G/2 + B/4, (1 ) where R is the red color component of the pixel data, G is the green color component of the pixel data, and B is the blue color component of the pixel data. The color space coefficient for the red color component is % or 0.25, which is an approximation of
0.299, the color space coefficient for the red color component according to the industry standard color space converter. The color space coefficient for the green color component is VT. or 0.5, which is also an approximation of 0.587, the color space coefficient for the green color component according to the industry standard color space converter. The color space coefficient for the blue color component is % or 0.25, which is also an approximation of 0.114, the color space coefficient for the blue color component according to the industry standard color space converter. Accordingly, the selected color space coefficients used to calculate the luminance color component (Y) according to equation (1 ) are in binary form. Since the color space coefficients are in binary form, the luminance color component (Y) may be calculated using binary arithmetic and avoid the use of multiplication. In this manner, the luminance color component (Y) of the pixel data may be determined in a more relatively inexpensive manner.
[0036] In accordance with one embodiment of the invention, the luminance color component (Y) of the pixel data may be determined according to a logic diagram 310 illustrated in Figure 3A. As such, the luminance color component (Y) of the pixel data is determined by left shifting the green color component by one bit (which is equivalent to a multiplication by two), adding the result to the red color component and the blue color component, and right shifting the entire sum by two bits (which is equivalent to a division by four). In one embodiment, the logical diagram 310 may be refined by performing a numerical rounding operation prior to right shifting the entire sum by two bits. Such numerical rounding may be performed using conventional techniques, such as adding a value equal to 2 raised to the power of the number of shifted bits minus 1 (i.e., 2(s"1), where s is the number of shifts) to the entire sum prior to right shifting the entire sum. Left shifting and right shifting operations are free to implement from a cost and computational resource perspectives. Accordingly, the luminance color component (Y) of the pixel data may be determined in a relatively inexpensive manner using the left and right shifting operations described in logic diagram 310.
[0037] At step 220, a blue color difference component (Cb) of the pixel data is determined using the equation: Cb = (B-Y)/2, (2) where B is the blue color component of the pixel data and Y is the luminance color component (Y) of the pixel data determined at step 210. Like the color coefficients
used in equation (1 ), the color space coefficients used to determine the blue color difference component (Cb) in equation (2) are an approximation of the color space coefficients used to determine the blue color difference component (Cb) according to the industry standard color space converter. In this manner, the color space coefficients used to determine the blue color difference component (Cb) according to equation (2) may be put in binary form. Since the color space coefficients are in binary form, the blue color difference component (Cb) of the pixel data may be calculated using binary arithmetic and avoid the use of multiplication. In this manner, the blue color difference component (Cb) of the pixel data may be determined in a more relatively inexpensive manner.
[0038] In accordance with one embodiment of the invention, the blue color difference component (Cb) of the pixel data may be determined according to a logic diagram 320 illustrated in Figure 3B. As such, the blue color difference component (Cb) of the pixel data is determined by subtracting the luminance color component (Y) of the pixel data determined at step 210 from the blue color component of the pixel data and right shifting the sum by one bit (which is equivalent to a division by two). In one embodiment, a numerical rounding operation may be performed prior to right shifting the sum by one bit. As mentioned above, since right shifting operations are free to implement, the blue color difference component (Cb) of the pixel data may be determined in a relatively inexpensive manner using the right shifting operation described in logic diagram 320.
[0039] At step 230, a red color difference component (Cr) of the pixel data is determined using the equation: Cr = (R-YV2, (3) where R is the red color component of the pixel data and Y is the luminance color component of the pixel data determined at step 210. As in steps 210 and 220, the color space coefficients used to determine the red color difference component (Cr) according to equation (3) are also an approximation of the industry standard color coefficients so that they may be put in binary form. Since the color coefficients are in binary form, the red color difference component (Cr) of the pixel data may be calculated using binary arithmetic and avoid the use of multiplication. In this manner, the red color difference component (Cr) of the pixel data may be determined in a more relatively inexpensive manner.
[0040] In accordance with one embodiment of the invention, the red color difference component (Cr) of the pixel data may be determined according to a logic diagram 330 illustrated in Figure 3C. Referring to Figure 3C, the red color difference component (Cr) of the pixel data is determined by subtracting the luminance color component (Y) of the pixel data from the red color component of the pixel data and right shifting the result by one bit (which is equivalent to a division by two). In one embodiment, a numerical rounding operation may be performed prior to right shifting the result by one bit. As mentioned above, since right shifting operations are free to implement, the red color difference component (Cr) of the pixel data may be determined in a relatively inexpensive manner using the right shifting operation described in logic diagram 330.
[0041] Figure 4 is a flow diagram of a method 400 for vertically scaling pixel data in accordance with one embodiment of the invention. At step 410, the chrominance decimator 145 reduces the sampling rate of the blue color difference component (Cb) and the red color difference component (Cr) of the pixel data by a factor of two. In one embodiment, the chrominance decimator 145 reduces the sampling rate from a 4:4:4 sampling rate to a 4:2:2 sampling rate. In this manner, the memory requirement for storing the pixel data is reduced by one third, and thereby reducing the size requirements for line store memory 170. Although the sampling rate has been reduced by a factor of two, various embodiments of the invention contemplate that the sampling rate may be reduced by any factor.
[0042] Once the sampling rate of the blue color difference component (Cb) and the red color difference component (Cr) of the pixel data has been reduced by a factor of two, the pixel data is stored in the line store memory 170 (step 420). At step 430, the vertical sealer 146 vertically scales the pixel data that are stored in the line store memory 170. The pixel data may be vertically scaled by any vertical scaling techniques known by persons of ordinary skill in the art. For example, a new output line can be generated by interpolating between the stored previous lines using a Finite Impulse Response (FIR) interpolator. By changing the interpolated position relative to the input lines, a new image can be formed having a different number of lines than the input image.
[0043] Once the pixel data has been vertically scaled, the chrominance interpolator 147 increases the sampling rate of the blue color difference component (Cb) and the red color difference component (Cr) of the pixel data by a factor of two. In one embodiment, the chrominance decimator 147 increases the sampling rate from a 4:2:2 sampling rate to a 4:4:4 sampling rate. In this manner, the chrominance interpolator 147 restores the original sampling rate of the blue color difference component (Cb) and the red color difference component (Cr) of the pixel data. In one embodiment, method 400 may be programmable in that method 400 may be invoked only if the size of the line store memory 170 divided by the number of lines in the vertical sealer 146 is less than the line length.
[0044] Once the pixel data has been vertically scaled according to method 400, the pixel data may be converted from the YCbCr space to the RGB space. To that end, Figure 5 illustrates a flow diagram of a method 500 for converting pixel data from the YCbCr space to the RGB space in accordance with one embodiment of the invention. At step 510, a red color component (R) of the pixel data is determined using the equation: R = Y + 2Cr, (4) where Y is the luminance color component of the pixel data and Cr is the red color difference component of the pixel data. As in the steps described with reference to Figure 2, the color space coefficients used to determine the red color component (R) according to equation (4) are also an approximation of the industry standard color coefficients so that they may be put in a binary form. Since the color coefficients are in a binary form, the red color component (R) of the pixel data may be calculated using binary arithmetic and avoid the use of multiplication. In this manner, the red color component (R) of the pixel data to be determined in a more relatively inexpensive manner.
[0045] In accordance with one embodiment of the invention, the red color component (R) of the pixel data may be determined according to a logic diagram 610 illustrated in Figure 6A. Referring now to Figure 6A, the red color component (R) of the pixel data is determined by left shifting the red color difference component (Cr) of the pixel data by one bit (which is equivalent to a multiplication by two) and adding the result to the luminance color component (Y) of the pixel data. As mentioned above, since left shifting operations are free to implement, the red color component (R) of the
pixel data may be determined in a relatively inexpensive manner using the left shifting operation described in logic diagram 610.
[0046] At step 520, a green color component (G) of the pixel data is determined using the equation: G = Y - Cb - Cr, (5) where Y is the luminance color component of the pixel data, Cb is the blue color difference component of the pixel data and Cr is the red color difference component of the pixel data. As in step 510, the color space coefficients used to determine the green color component (G) according to equation (5) are also an approximation of the industry standard color coefficients so that they may be put in a binary form. Since the color coefficients are in a binary form, the green color component (G) of the pixel data may be calculated using binary arithmetic and avoid the use of multiplication. In this manner, the green color component (G) of the pixel data to be determined in a relatively inexpensive manner.
[0047] In accordance with one embodiment of the invention, the green color component (G) of the pixel data may be determined according to a logic diagram 620 illustrated in Figure 6B. Referring now to Figure 6B, the green color component (G) of the pixel data is determined by subtracting the blue color difference component (Cb) of the pixel data from the luminance color component Y of the pixel data and further subtracting the red color difference component Cr from the result.
[0048] At step 530, a blue color component (B) of the pixel data is determined using the equation: B = Y + 2Cb, (6) where Y is the luminance color component of the pixel data and Cb is the blue color difference component of the pixel data. As in steps 510 and 520, the color space coefficients used to determine the blue color component (B) according to equation (6) are also in a binary form. Accordingly, the blue color component (B) of the pixel data may be calculated using binary arithmetic and avoid the use of multiplication, which allows the blue color component (B) of the pixel data to be determined in a relatively inexpensive manner.
[0049] In accordance with one embodiment of the invention, the blue color component (B) of the pixel data may be determined according to a logic diagram 630
illustrated in Figure 6C. Referring now to Figure 6C, the blue color component (B) of the pixel data is determined by left shifting the blue color difference component Cr of the pixel data by one bit (which is equivalent to a multiplication by two) and adding the result to the luminance color component Y of the pixel data. As mentioned above, since left shifting operations are free to implement, the blue color component (B) of the pixel data may be determined in a relatively inexpensive manner using the left shifting operation described in logic diagram 630.
[0050] While the foregoing is directed to embodiments of the present invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow.
Claims
1. An image processing apparatus, comprising: a red, green and blue (RGB) color space to luminance color, blue color difference and red color difference (YCbCr) color space converter module for converting a line of pixels from the RGB color space to the YCbCr color space, wherein the line of pixels has a first sampling rate; a chrominance decimator module coupled to the RGB to YCbCr color space converter module, wherein the chrominance decimator module is configured to generate an intermediate representation of the line of pixels having a second sampling rate that is less than the first sampling rate, wherein the amount of data representing the intermediate representation is less than the amount of data representing the line of pixels; a line store memory coupled to the chrominance decimator module, wherein the line store memory is configured to store the intermediate representation; and a vertical sealer module coupled to the line store memory, wherein the vertical sealer module is configured to generate a scaled version of the intermediate representation.
2. The image processing apparatus of claim 1 , further comprising a chrominance interpolator module coupled to the vertical sealer module, wherein the chrominance interpolator module is configured to convert the scaled version of the intermediate representation having the second sampling rate to a scaled version of the line of pixels having the first sampling rate.
3. The image processing apparatus of claim 2, further comprising a YCbCr to RGB color space converter module coupled to the chrominance interpolator module, wherein the YCbCr to RGB color space converter module is configured to convert the scaled version of the line of pixels from the YCbCr color space to the RGB color space.
4. The image processing apparatus of claim 1, wherein the second sampling rate is one half the first sampling rate.
5. The image processing apparatus of claim 1 , wherein the first sampling rate is a 4:4:4 sampling rate and the second sampling rate is a 4:2:2 sampling rate.
6. The image processing apparatus of claim 1 , wherein the RGB to YCbCr color space converter module converts the line of pixels using binary arithmetic.
7. The image processing apparatus of claim 1 , wherein the RGB to YCbCr color space converter module determines a luminance color component (Y) of the line of pixels by adding % of a red color (R) component of the line of pixels to V* of a green color (G) component of the line of pixels and % of a blue color (B) component of the line of pixels.
8. The image processing apparatus of claim 1 , wherein the RGB to YCbCr color space converter module determines a blue color difference component (Cb) of the line of pixels by subtracting the luminance color component (Y) of the line of pixels from the blue color (B) component; and dividing the result by two.
9. The image processing apparatus of claim 1 , wherein the RGB to YCbCr color space converter module determines a red color difference component (Cr) of the line of pixels by subtracting the luminance color component (Y) of the line of pixels from the red color (R) component of the line of pixels; and dividing the result by two.
10. The image processing apparatus of claim 3, wherein the YCbCr to RGB color space converter module determines the red color (R) component of the line of pixels by adding the luminance color component (Y) to twice the red color difference component (Cr) of the line of pixels.
11. The image processing apparatus of claim 3, wherein the YCbCr to RGB color space converter module determines the green color (G) component of the line of pixels by subtracting the red color difference component (Cr) and the blue color difference component (Cb) of the line of pixels from the luminance color component (Y) of the line of pixels.
12. The image processing apparatus of claim 3, wherein the YCbCr to RGB color space converter module determines the blue color (B) component of the line of pixels by adding the luminance color component (Y) of the line of pixels to twice the blue color difference component (Cb) of the line of pixels.
13. A method for vertically scaling a line of pixels, comprising: receiving the line of pixels in a red, blue and green (RGB) color space, wherein the line of pixels comprises a first sampling rate; converting the line of pixels from the RGB color space to a luminance, blue color difference and red color difference (YCbCr) color space; generating an intermediate representation of the line of pixels having a second sampling rate that is less than the first sampling rate; generating a scaled version of the intermediate representation; and converting the scaled version of the intermediate representation having the second sampling rate to a scaled version of the line of pixels having the first sampling rate.
14. The method of claim 13, further comprising, prior to generating the scaled version of the intermediate representation, storing the intermediate representation to a line store memory.
15. The method of claim 13, further comprising converting the scaled version of the line of pixels from the YCbCr color space to the RGB color space.
16. The method of claim 13, wherein the second sampling rate is one half the first sampling rate.
17. The method of claim 13, wherein the first sampling rate is a 4:4:4 sampling rate and the second sampling rate is a 4:2:2 sampling rate.
18. The method of claim 13, wherein converting the line of pixels from the RGB color space to the YCbCr color space comprises converting the line of pixels using binary arithmetic.
19. The method of claim 13, wherein converting the line of pixels from the RGB color space to the YCbCr color space comprises generating a luminance color component (Y) by adding i of a red color (R) component of the line of pixels to Vz of a green color (G) component of the line of pixels and of a blue color (B) component of the line of pixels.
20. The method of claim 13, wherein converting the line of pixels from the RGB color space to the YCbCr color space comprises generating the blue color difference component (Cb) of the line of pixels by subtracting the luminance color component (Y) of the line of pixels from the blue color (B) component; and dividing the result by two.
21. The method of claim 13, wherein converting the line of pixels from the RGB color space to the YCbCr color space comprises generating the red color difference component (Cr) of the line of pixels by subtracting the luminance color component (Y) of the line of pixels from the red color (R) component of the line of pixels; and dividing the result by two.
22. The method of claim 15, wherein converting the scaled version of the line of pixels from the YCbCr color space to the RGB color space comprises generating the red color (R) component of the line of pixels by adding the luminance color component (Y) of the line of pixels to twice the red color difference component (Cr) of the line of pixels.
23. The method of claim 15, wherein converting the scaled version of the line of pixels from the YCbCr color space to the RGB color space comprises generating the green color (G) component of the line of pixels by subtracting the red color difference component (Cr) of the line of pixels and the blue color difference component (Cb) of the line of pixels from the luminance color component (Y) of the line of pixels.
24. The method of claim 15, wherein converting the scaled version of the line of pixels from the YCbCr color space to the RGB color space comprises generating the blue color (B) component of the line of pixels by adding the luminance color component (Y) of the line of pixels to twice the blue color difference component (Cb) of the line of pixels.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US83747404A | 2004-04-30 | 2004-04-30 | |
PCT/US2005/014175 WO2005112425A1 (en) | 2004-04-30 | 2005-04-25 | Method and apparatus for vertically scaling pixel data |
Publications (1)
Publication Number | Publication Date |
---|---|
EP1741282A1 true EP1741282A1 (en) | 2007-01-10 |
Family
ID=34967112
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP05740206A Ceased EP1741282A1 (en) | 2004-04-30 | 2005-04-25 | Method and apparatus for vertically scaling pixel data |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP1741282A1 (en) |
JP (2) | JP2007535869A (en) |
CN (1) | CN100521728C (en) |
TW (1) | TWI413900B (en) |
WO (1) | WO2005112425A1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007251723A (en) * | 2006-03-17 | 2007-09-27 | Sanyo Electric Co Ltd | Projection type video display apparatus |
US8107724B2 (en) | 2008-08-02 | 2012-01-31 | Vantrix Corporation | Method and system for predictive scaling of colour mapped images |
US9350899B2 (en) * | 2012-09-14 | 2016-05-24 | Qualcomm Incorporated | Methods and device for efficient resampling and resizing of digital images |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7050065B1 (en) * | 2004-04-15 | 2006-05-23 | Nvidia Corporation | Minimalist color space converters for optimizing image processing operations |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5613084A (en) * | 1994-10-04 | 1997-03-18 | Panasonic Technologies, Inc. | Interpolation filter selection circuit for sample rate conversion using phase quantization |
JP3188135B2 (en) * | 1995-05-19 | 2001-07-16 | 三洋電機株式会社 | Video signal processing circuit |
JPH10136316A (en) * | 1996-10-25 | 1998-05-22 | Fuji Film Micro Device Kk | Image data processing unit and image data processing method |
JPH10191392A (en) * | 1996-10-29 | 1998-07-21 | Sony Corp | Image signal processor |
US5781241A (en) * | 1996-11-08 | 1998-07-14 | Chrontel, Inc. | Apparatus and method to convert computer graphics signals to television video signals with vertical and horizontal scaling requiring no frame buffers |
JPH10285611A (en) * | 1997-03-31 | 1998-10-23 | Sony Corp | Image data processor and method therefor |
US6556311B1 (en) * | 1997-05-28 | 2003-04-29 | Hewlett-Packard Development Co., L.P. | Luminance-based color resolution enhancement |
EP0969674A3 (en) * | 1998-07-03 | 2004-01-02 | Canon Kabushiki Kaisha | Image sensing device processing image signals in blocks |
JP2000069502A (en) * | 1998-08-24 | 2000-03-03 | Sony Corp | Video signal processing circuit and image pickup device using it |
JP4006908B2 (en) * | 1999-11-26 | 2007-11-14 | セイコーエプソン株式会社 | Single plate solid-state image sensor color interpolation method and recording medium recording single-chip solid-state image sensor color interpolation processing program |
JP2002141805A (en) * | 2000-03-30 | 2002-05-17 | Matsushita Electric Ind Co Ltd | Encoder and communication device |
GB2369924A (en) * | 2000-12-07 | 2002-06-12 | Sony Uk Ltd | Selecting representative video images using image properties |
JP2004516718A (en) * | 2000-12-11 | 2004-06-03 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | Motion compensated deinterlacing in video signal processing |
JP2003005723A (en) * | 2001-06-22 | 2003-01-08 | Hitachi Ltd | Liquid crystal display device and electronic equipment |
JP4267848B2 (en) * | 2001-09-25 | 2009-05-27 | 株式会社リコー | Image encoding device, image decoding device, image encoding method, and image decoding method |
JP2003244714A (en) * | 2002-02-19 | 2003-08-29 | Mega Chips Corp | Image processing apparatus and digital still camera |
JP2003304505A (en) * | 2002-04-11 | 2003-10-24 | Matsushita Electric Ind Co Ltd | Video signal output apparatus and video signal output method |
JP2003348446A (en) * | 2002-05-27 | 2003-12-05 | Matsushita Electric Ind Co Ltd | Video signal processing apparatus |
JP4798747B2 (en) * | 2004-01-26 | 2011-10-19 | シャープ株式会社 | Character display device, character display method, and recording medium |
-
2005
- 2005-04-25 JP JP2007510867A patent/JP2007535869A/en active Pending
- 2005-04-25 EP EP05740206A patent/EP1741282A1/en not_active Ceased
- 2005-04-25 CN CNB2005800187271A patent/CN100521728C/en not_active Expired - Fee Related
- 2005-04-25 WO PCT/US2005/014175 patent/WO2005112425A1/en active Application Filing
- 2005-04-27 TW TW94113514A patent/TWI413900B/en active
-
2009
- 2009-06-08 JP JP2009137589A patent/JP5106483B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7050065B1 (en) * | 2004-04-15 | 2006-05-23 | Nvidia Corporation | Minimalist color space converters for optimizing image processing operations |
Non-Patent Citations (1)
Title |
---|
See also references of WO2005112425A1 * |
Also Published As
Publication number | Publication date |
---|---|
CN100521728C (en) | 2009-07-29 |
CN1965568A (en) | 2007-05-16 |
JP5106483B2 (en) | 2012-12-26 |
TW200538933A (en) | 2005-12-01 |
WO2005112425A1 (en) | 2005-11-24 |
JP2009282527A (en) | 2009-12-03 |
JP2007535869A (en) | 2007-12-06 |
TWI413900B (en) | 2013-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7199837B2 (en) | System for improved ratiometric expansion and method thereof | |
US7545388B2 (en) | Apparatus, method, and product for downscaling an image | |
KR100547812B1 (en) | Apparatus and method for converting color model of pixel data using color reference table | |
JP4989470B2 (en) | Image processing using linear light intensity values and other image processing improvements | |
KR100932805B1 (en) | Apparatus and Method for Edge Handling in Image Processing | |
US20080284793A1 (en) | Hue and saturation control module | |
US7050065B1 (en) | Minimalist color space converters for optimizing image processing operations | |
EP1872358A2 (en) | Display specific image processing in an integrated circuit | |
US8717391B2 (en) | User interface pipe scalers with active regions | |
US6587117B1 (en) | Apparatus and method for adaptive transformation of fractional pixel coordinates for calculating color values | |
US6989837B2 (en) | System and method for processing memory with YCbCr 4:2:0 planar video data format | |
US20160307540A1 (en) | Linear scaling in a display pipeline | |
US6115507A (en) | Method and apparatus for upscaling video images in a graphics controller chip | |
US5844567A (en) | Computer graphics system and method for texture mapping using triangular interpolation | |
US6765578B2 (en) | Graphics resampling system and method for use thereof | |
JP5106483B2 (en) | Method and apparatus for vertically scaling pixel data | |
JP4672821B2 (en) | Method and apparatus using line buffer for interpolation as pixel lookup table | |
JP2008116812A (en) | Display apparatus, projector, and display method | |
US5768507A (en) | Method and apparatus for overcoming a slope overload condition while using differential pulse code modulation scheme | |
US8681167B2 (en) | Processing pixel planes representing visual information | |
US9747658B2 (en) | Arbitration method for multi-request display pipeline | |
JP2005311886A (en) | Video signal processing circuit and video display apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20061030 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): DE GB |
|
RBV | Designated contracting states (corrected) |
Designated state(s): DE GB |
|
DAX | Request for extension of the european patent (deleted) | ||
17Q | First examination report despatched |
Effective date: 20080819 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED |
|
18R | Application refused |
Effective date: 20100325 |