WO1997016814A1 - Yuv video backend filter - Google Patents

Yuv video backend filter Download PDF

Info

Publication number
WO1997016814A1
WO1997016814A1 PCT/US1996/017547 US9617547W WO9716814A1 WO 1997016814 A1 WO1997016814 A1 WO 1997016814A1 US 9617547 W US9617547 W US 9617547W WO 9716814 A1 WO9716814 A1 WO 9716814A1
Authority
WO
WIPO (PCT)
Prior art keywords
values
video data
format
data
die
Prior art date
Application number
PCT/US1996/017547
Other languages
French (fr)
Inventor
Donald Robert Parnell
Original Assignee
Sierra Semiconductor Corporation
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 Sierra Semiconductor Corporation filed Critical Sierra Semiconductor Corporation
Publication of WO1997016814A1 publication Critical patent/WO1997016814A1/en

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/02Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed

Definitions

  • the present invention relates generally to color video display circuitry. More particularly, the present invention provides a method and apparatus for converting color video data from a first format into a second format to enable full color, live motion video to be displayed.
  • Video display devices such as computer monitors or television receivers, receive and display video pixel data in RGB (Red-Green-Blue) format, in which each pixel is defined by a set of RGB data.
  • Computer graphics software has been developed to process video information in the RGB format.
  • full motion video is typically transmitted and stored in a format known as YUV, YCrCb, or composite video. In this format, the video information contains luminance
  • Each value Y, U, and V contains 8 bits of video information.
  • YUV data may be transmitted or stored in various formats, including a format known as 24-bit 4:4:4, in which the YUV data is arranged in sets as YnUnVn, YoUoVo, etc.
  • each 24-bit set (comprising three 8-bit values) of YUV data defmes a video pixel, and may be converted into RGB data for display on a monitor.
  • YUV data may also be transmitted or stored in an 16-bit 4:2:2 format, in which the YUV data is arranged in sets as UnYnVnYo, UpYpVpYq, etc.
  • each 32-bit set of UYVY data is used to defme two video pixels where the chroma is sub-sampled.
  • the UYVY data For a 32-bit set of UYVY data to define multiple pixels, the UYVY data must be converted to YUV or RGB data.
  • YUV video info ⁇ nation In order to display YUV video info ⁇ nation on a RGB monitor or screen, it is known to provide separate memory buffers or separate areas of a shared frame buffer. The YUV data is then merged with RGB data in the video "backend".
  • the video backend of a display system retrieves video data stored in a frame buffer or memory and sends the video data to a display device at the device's frame refresh rate.
  • This video backend method typically requires a large capacity off-screen memory buffer to store the video data, which is not always available in all modes of operation, and is typically capable of supporting only one video window. Further, the video backend method requires a very large memory bandwidth, since video data is read at the monitor's refresh frame rate. When scaling down, the peak memory bandwidth rate can be even higher.
  • the video frontend receives raw video data representing frames of video information, and manipulates or formats the raw data for storage in the frame buffer to support the display of one or more video windows on the display device. Converting YUV data to RGB data at the frontend enables a display system to support multiple video windows, but results in poor video quality for 8-bit or 16-bit desktop graphics monitors. This is because YUV data stored in an 8-bit format does not provide sufficient information for conversion to each of the 256 possible RGB color values, because YUV data stored in a 16-bit format does not supply full color range without visible banding effects, due to only 5-bits of data for each RGB digital-to-analog convertor (DAC). Since full color is not available, dithering hardware is implemented to dither or mix the available RGB color values to imitate the appearance of full color.
  • DAC digital-to-analog convertor
  • Typical YUV/RGB converters require YUV data in the 24-bit 4:4:4 format as an input to convert to RGB video data.
  • the 24-bit 4:4:4 data consisting of 8 bits of Y (luminance data), 8 bits of U (hue data), and 8 bits of V (saturation data) into 8 bits of R (red data), 8 bits of G (green data), and 8 bits of B (blue data). Because there is a one-to-one correspondence between 24-bit YUV data and the 24-bits of desired RGB data, all RGB color values may be specified by YUV video data. However, where the YUV data is in an 8-bit or 16-bit format, there is not a one-to-one correspondence between the YUV data and the desired RGB data.
  • Live motion video can be displayed using 16-bit formats, but requires either the UV data to be repeated twice or interpolated from the next UV pair.
  • an apparatus which includes means, such as one or more buffers, for receiving first and second sets of video data.
  • Each set of video data includes luminance values and chrominance values.
  • Exemplary embodiments of the apparatus further include means, such as an adder/shift register combination, for generating average luminance and chrominance values from the luminance values of the first and second sets of video data.
  • Exemplary embodiments of the apparatus further include means, such as one or more multiplexers, for selectively outputting a combination value including one luminance value or average luminance value and one chrominance value or average chrominance value.
  • an apparatus of the present invention can further include means for selectively causing the combination value to include one luminance value and one chrominance value (no average values) when the second set of data is an empty set.
  • An apparatus of the present invention can further include means for selecting an 8-bit mode of operation or a 16-bit mode of operation, in which a reduced number of combination values are output.
  • an apparatus of the present invention can also include means for identifying the type of data received from the frame buffer.
  • the video data is RGB data
  • no conversion is required and the data is supplied to the display unit
  • the video data is 24-bit YUV data
  • no format conversion is required and the video data is supplied to a YUV/RGB converter
  • the video data is 8-bit or 16-bit YUV data, format conversion is required and the video data is processed in an exemplary apparatus according to the present invention.
  • first and second sets of video data including luminance and chrominance values, are received in means such as one or more buffers.
  • Average luminance and chrominance values are calculated by, for example, an adder/shift register combination, and a combination value including one luminance value or average luminance value and one chrominance value or average chrominance value is generated.
  • Exemplary embodiments of the method of the present invention may further include the step of selectively bypassing the averaging fimction when the second set of data is an empty set.
  • the method of the present invention may further include the step of selecting between an 8-bit mode of operation and a 16-bit mode of operation.
  • the method of the present invention may further include the step of identifying the data stored in the frame buffer, and if the video data is RGB data, the data is sent to a display device; if the video data is 24-bit YUV data, the format conversion process according to exemplary embodiments of the method of the present invention is bypassed; if the video data is 8-bit or 16-bit YUV data, the video data is converted to 24-bit YUV data according to exemplary embodiments of die method of the present invention.
  • YUV data stored in an 8-bit or 16-bit format may be converted to a 24-bit YUV format for input to a YUV/RGB converter. This conversion enables live motion, full color video to be displayed on an 8-bit or 16-bit desktop monitor in a cost-effective manner in multiple video windows in all graphic modes without requiring an increased memory capacity.
  • FIG. 1 is a block diagram showing a video filter according to an exemplary embodiment of the present invention
  • FIG. 2 is a block diagram of an adder/shift register combination which may be used in the filter of FIG. 1; and FIG. 3 is a block diagram of an exemplary alternate embodiment of a video filter in accordance with the present invention.
  • Video filter 10 for converting YUV video data stored in an 8-bit or 16-bit 4:2:2 format to a 24-bit 4:4:4 format is shown.
  • Video filter 10 may be implemented in a PC video architecture such as that described in a copending application entitled "Split Video Architecture for PC's", assigned to the assignee of the present invention, and which is herein incorporated by reference.
  • the filter 10 will be described first using the 8-bit 4:2:2 YUV video data as an example. That is, each 32-bit set of UYVY data (e.g.
  • UnYnVnYo, UpYpVpYq, etc. is used to define four video pixels.
  • the UYVY set of data In order for a 32-bit set of UYVY data to define four unique video pixels, the UYVY set of data must be converted to four unique YUV sets of data. Filter 10 accomplishes this conversion in a manner which will now be described.
  • Filter 10 includes first and second buffers 12 and 14 for receiving and storing a next quad of UYVY data and a current quad of UYVY data, respectively from a memory (not shown).
  • the current quad consists of the four 8-bit values Un, Yn, Vn, and Yo and die next quad consists of the four 8-bit values Up, Yp, Vp, and Yq.
  • Each quad of UYVY video data thus includes 32 bits of information. In the 8-bit case, each quad of data is used to define four pixels.
  • Filter 10 converts the current quad of UYVY data, UnYnVnYo, into four unique YUV sets of video data. The conversion is accomplished by averaging or interpolating the current UYVY quad widi the next UYVY quad to generate four YUV sets of video data, as will be described in more detail below.
  • Filter 10 further includes luminance averaging circuits 16A and 16B, and chrominance averaging circuits 18A-C and 20A-C.
  • Liiniinance averaging circuit 16A receives pixel values Yn and Yo as inputs, and generates a value Yno which is, for example, a 50% average of Yn and Yo.
  • Luminance averaging circuit 16B receives pixel values Yo and Yp as inputs, and generates a value Yop which is, for example, a 50% average of Yo and Yp.
  • Pixel values Yn, Yno, Yo, and Yp are provided as inputs to multiplexer 22.
  • Chrominance averaging is performed by hue averaging circuits 18 A-C and saturation averaging circuits 20A-C.
  • Hue averaging circuit 18B receives hue values Un and Up as inputs, and generates hue value Unnpp which is, for example, a 50% average of Un and Up.
  • Hue averaging circuit 18 A receives hue values Un and Up as inputs, and generates a hue value Unppp which is, for example, a 25/75 weighted average of pixel values Un and Up.
  • Hue averaging circuit 18C receives hue values Un and Up as inputs, and generates a hue value Unnnp which is, for example, a 75/25 weighted average of hue values Un and Up. It will be appreciated that other weighings may be used.
  • Saturation averaging circuits 20A-C operate in substantially the same manner as hue averaging circuits 18 A-C, and generate average saturation values Vnnnp, Vnnpp, and Vnppp. Saturation values Vn, Vnnnp, Vnnpp, and Vnppp are supplied as inputs to multiplexer 26.
  • Averaging circuits 16 A-B, 18 A-C, and 20 A-C function to generate average luminance and chrominance values by linear interpolation.
  • the current luminance and chrominance values from the current UYVY quad, together with the average luminance and chrominance values generated by averaging circuits 16 A-B, 18 A-C, and 20A-C, enable four sets of YUV data to be generated from each set of UYVY data.
  • the luminance and chrominance pixel values from the current quad and the average luminance and chrominance values generated by averaging circuit 16A-B, 18A-C, and 20A-C include four luminance values (Yn, Yno, Yo, and Yop), four hue values (Un, Unnnp, Unnpp, and Unppp), and four saturation values (Vn, Vnnnp, Vnnpp, and Vnppp). These values are provided to multiplexers 22, 24, and 26, which output four YUV sets of data YnUnVn, YnoUnnnp Vnnnp, YoUnnpp Vnnpp, and YopUnppp Vnppp.
  • the YUV data is loaded into output buffer 28 and input to YUV RGB converter 30, where it is converted to RGB data for display on a monitor (not shown).
  • This conversion of YUV data in an 8-bit 4:2:2 data format to YUV data in a 24-bit 4:4:4 data format enables converter 30 to provide high quality, live motion, full color video in an RGB format for display on a monitor.
  • control signals S0-S3 which are generated by byte counter 32.
  • Byte counter 32 which may include a flip-flop 33 and multiplexers 35 and 37, or other suitable elements, generates a cycle of logic signals 00, 01, 10, and 11 on lines 34 and 36.
  • the control signals S0-S3 are all logic 0, and multiplexers 22, 24, and 26 output values Yn, Un and Vn, respectively, to output buffer 28.
  • control signals S0-S3 are all at logic 1, and multiplexers 22, 24, and 26 output values Yop, Unppp, and Vnppp, respectively to output buffer 28. It will be appreciated diat after converting a number of UYVY quads of video data to YUV data, the video application requiring the conversion may be interrupted or terminated. At die termination of me video application, there will be only a current UYVY quad, and diere will not be a next UYVY quad of video data.
  • video filter 10 further includes means for selectively reducing d e number of combination values which may be output by multiplexers 22, 24 and 26 to output buffer 28 when the next quad of video data is an empty set.
  • a LAST_QUAD# signal is provided for indicating when the current quad of video data stored in current buffer 14 is the last quad.
  • the LAST_QUAD# signal will change from logic 1 to logic 0 to disable some of ie averaging function of filter 10.
  • the LAST_QUAD# signal is provided as one input to AND gates 40, 42, and 44.
  • Line 34 is provided as a second input to AND gates 40 and 42, and line 36 is provided as a second input to AND gate 44.
  • a gate 46 has been added in conjunction widi gate 40 to control multiplexer 22 to create YnUnVn for the first pixel, YnoUnVn for the second pixel, and YoUnVn for me last two pixels of a four pixel set.
  • LAST_QUAD# an alternate logic convention for the LAST_QUAD# signal can be used.
  • the LAST-QUAD signal can be used to cause the filter to eliminate any filtering of data stored in die buffers 12 and 14.
  • the filter paths can be configured such uiat video data stored in uie current buffer 14 is multiplexed directly to the outputs of multiplexers 22, 24 and 26, or to provide a limited averaging capability (e.g., provide only the averaging of averaging circuit 16A). It will be further appreciated that other suitable means may be used to selectively bypass d e averaging function of die filter 10 under appropriate circumstances, and diat die invention is not limited to die exemplary embodiment illustrated.
  • Video filter 10 further includes a mode selection means for selectively operating in an 8-bit or 16-bit mode.
  • a mode select signal MODE is provided to byte counter 32.
  • the MODE signal state indicates whedier the YUV data is in the 8-bit 4:2:2 format and die filter 10 is operating in an 8-bit mode, or whether the data is in me 16-bit 4:2:2 format and me filter 10 is operating in the 16-bit mode.
  • die MODE signal causes byte counter 32 to output logic values 00 (d at is, the logic values on lines 34 and 36 are both 0) and 10 (that is, the logic value on line 34 is 1 and die logic value on line 36 is 0) only.
  • multiplexers 22, 24, and 26 output values Yn, Un, and Vn (for logic value 00) or Yo, Unnpp, and Vnnpp (for logic value 10) only when die filter 10 is operating in die 16- bit mode.
  • each 32-bit set of UYVY data is used to define 2 video pixels. That is, each cu ⁇ ent UYVY quad is converted into two YUV sets of video data by interpolating or averaging the individual U, Y and V values of the current UYVY quad with die U, Y and V values of die next UYVY quad.
  • YUV values YnUnVn and YoUnnpp Vnnpp may be generated from a current quad UnYnVnYo and a next quad UpYpVpYq.
  • each quad in die 16-bit mode provides more info ⁇ nation and it is therefore not necessary to perform as much interpolation or averaging as in the 8-bit mode.
  • a routing circuit, tag map, addressing data, or other suitable means may be implemented to cause de data to be routed directly to die display device, direcdy to die YUV/RGB converter, or to die buffers 12 and 14 of filter 10. That is, if data retrieved from die frame buffer is RGB data, die data does not require conversion and dierefore is sent directly to the display device. If die data retrieved from the frame buffer is 24-bit YUV video data, die video data only requires conversion to die RGB format and dierefore is sent directly to YUV/RGB converter 30.
  • the video data is supplied to buffers 12 and 14, and die data is converted to die 24-bit 4:4:4 format for input to YUV/RGB converter 30.
  • the means for identifying and routing data may be implemented by an off-screen tag map which may be fetched when YUV data (24-bit, 16-bit, or 8-bit) data is retrieved from the frame buffer, or other suitable means.
  • the adder/shift register circuit 50 includes an adder 52 for adding two or more binary addends of n bits each to generate a sum of n+ 1 bits.
  • the adder/shift register circuit 50 further includes a shift register 54 for storing the sum and shifting the sum of n+l bits to u e right by one bit to effectively divide the sum by 2 to generate an average.
  • two 8-bit addends such a Un and Up are added to generate an 8-bit or 9-bit sum.
  • This 8-bit or 9-bit sum is shifted to the right by one bit to generate an 8-bit value Unnpp which is a 50% average of Un and Up.
  • Unnpp which is a 50% average of Un and Up.
  • diat o ier suitable circuits or methods may be used to implement die averaging function of averaging circuits 16 A-B, 18 A-C, and 20A-C.
  • averaging circuits such as averaging circuits 18A and 18C in FIG. 1 can obtain input terms from 18B to form a term of, for example, a 75 %/25% value.
  • diat d e filter according to the exemplary embodiments of me present invention described above may be readily modified to accommodate other input or output data formats, and diat me number and weighing of interpolated values may be adjusted to allow format conversion to and from a wide variety of formats.
  • alternate 4:2:2 formats such as UYVY, VYUY, YUYV, YVYU or any other formats can be supported in accordance widi the present invention.
  • d at the present invention may also be readily applied to me format conversion of many types of data, and is not limited to video data applications. Further, in accordance widi exemplary embodiments, one pixel clipping can be used to change boundary conditions.

Abstract

A video filter (10) for converting color video data (12, 14) stored in a format suitable for use in an 8-bit or 16-bit desktop environment to a 24-bit format suitable for conversion to RGB video data (30) for the display of full color, live motion video. At very high pixel rates, the filter (10) includes one or more buffers (12, 14) for storing sets of video data in UYVY format, averaging circuits (16, 18, 20) for generating average Y, U, and V values based on successive sets of video data in the UYVY format, and one or more multiplexers (22, 24, 26) for conversion to RGB data. The filter (10) further includes means for selectively bypassing the averaging function when there is no successive set of UYVY data, and means for selecting between an 8-bit mode of operation and a 16-bit mode of operation. The filter (10) may be bypassed if no conversion is necessary.

Description

YUV VIDEO BACKEND FILTER BACKGROUND OF THE INVENTION Field of the Invention The present invention relates generally to color video display circuitry. More particularly, the present invention provides a method and apparatus for converting color video data from a first format into a second format to enable full color, live motion video to be displayed. Description of Related Art Video display devices, such as computer monitors or television receivers, receive and display video pixel data in RGB (Red-Green-Blue) format, in which each pixel is defined by a set of RGB data. Computer graphics software has been developed to process video information in the RGB format. However, full motion video is typically transmitted and stored in a format known as YUV, YCrCb, or composite video. In this format, the video information contains luminance
(brightness) information bits Y, and chrominance (hue and saturation) information bits U and V. Each value Y, U, and V contains 8 bits of video information.
YUV data may be transmitted or stored in various formats, including a format known as 24-bit 4:4:4, in which the YUV data is arranged in sets as YnUnVn, YoUoVo, etc. In this format, each 24-bit set (comprising three 8-bit values) of YUV data defmes a video pixel, and may be converted into RGB data for display on a monitor. YUV data may also be transmitted or stored in an 16-bit 4:2:2 format, in which the YUV data is arranged in sets as UnYnVnYo, UpYpVpYq, etc. In a 16-bit 4:2:2 format, each 32-bit set of UYVY data is used to defme two video pixels where the chroma is sub-sampled. For a 32-bit set of UYVY data to define multiple pixels, the UYVY data must be converted to YUV or RGB data.
In order to display YUV video infoπnation on a RGB monitor or screen, it is known to provide separate memory buffers or separate areas of a shared frame buffer. The YUV data is then merged with RGB data in the video "backend". The video backend of a display system retrieves video data stored in a frame buffer or memory and sends the video data to a display device at the device's frame refresh rate. This video backend method typically requires a large capacity off-screen memory buffer to store the video data, which is not always available in all modes of operation, and is typically capable of supporting only one video window. Further, the video backend method requires a very large memory bandwidth, since video data is read at the monitor's refresh frame rate. When scaling down, the peak memory bandwidth rate can be even higher.
It is also known to convert the YUV data to RGB data at the video "frontend". The video frontend receives raw video data representing frames of video information, and manipulates or formats the raw data for storage in the frame buffer to support the display of one or more video windows on the display device. Converting YUV data to RGB data at the frontend enables a display system to support multiple video windows, but results in poor video quality for 8-bit or 16-bit desktop graphics monitors. This is because YUV data stored in an 8-bit format does not provide sufficient information for conversion to each of the 256 possible RGB color values, because YUV data stored in a 16-bit format does not supply full color range without visible banding effects, due to only 5-bits of data for each RGB digital-to-analog convertor (DAC). Since full color is not available, dithering hardware is implemented to dither or mix the available RGB color values to imitate the appearance of full color.
Typical YUV/RGB converters require YUV data in the 24-bit 4:4:4 format as an input to convert to RGB video data. The 24-bit 4:4:4 data, consisting of 8 bits of Y (luminance data), 8 bits of U (hue data), and 8 bits of V (saturation data) into 8 bits of R (red data), 8 bits of G (green data), and 8 bits of B (blue data). Because there is a one-to-one correspondence between 24-bit YUV data and the 24-bits of desired RGB data, all RGB color values may be specified by YUV video data. However, where the YUV data is in an 8-bit or 16-bit format, there is not a one-to-one correspondence between the YUV data and the desired RGB data. Because of me insufficient YUV infoπnation in the 8-bit formats, high quality live motion color video cannot be displayed on an 8-bit desktop monitor using known methods. Live motion video can be displayed using 16-bit formats, but requires either the UV data to be repeated twice or interpolated from the next UV pair.
It would be desirable to support the display of live motion, full color video in an 8-bit desktop momtor. It would further be desirable to support the display of live motion, full color video in all graphics modes without requiring increased memory capacity. It would further be desirable to support the display of live motion, full color video in multiple video windows. It would also be desirable to support the display of live motion, full color video in a cost-effective manner and at pixel rates which will provide high quality video (such as rates on the order of 135-170 MHz or higher).
SUMMARY OF THE INVENTION To address the foregoing problems, and provide other advantages, the present invention provides a method and apparatus for converting video data from a first format, such as 8-bit or 16-bit YUV data to a second format, such as 24-bit YUV data. In accordance with exemplary embodiments, an apparatus is provided which includes means, such as one or more buffers, for receiving first and second sets of video data. Each set of video data includes luminance values and chrominance values. Exemplary embodiments of the apparatus further include means, such as an adder/shift register combination, for generating average luminance and chrominance values from the luminance values of the first and second sets of video data.
Exemplary embodiments of the apparatus further include means, such as one or more multiplexers, for selectively outputting a combination value including one luminance value or average luminance value and one chrominance value or average chrominance value. According to exemplary embodiments, an apparatus of the present invention can further include means for selectively causing the combination value to include one luminance value and one chrominance value (no average values) when the second set of data is an empty set. An apparatus of the present invention can further include means for selecting an 8-bit mode of operation or a 16-bit mode of operation, in which a reduced number of combination values are output. In addition, an apparatus of the present invention can also include means for identifying the type of data received from the frame buffer. Based on this identification, if the video data is RGB data, no conversion is required and the data is supplied to the display unit; if the video data is 24-bit YUV data, no format conversion is required and the video data is supplied to a YUV/RGB converter; if the video data is 8-bit or 16-bit YUV data, format conversion is required and the video data is processed in an exemplary apparatus according to the present invention.
According to exemplary embodiments of the method of the present invention, first and second sets of video data, including luminance and chrominance values, are received in means such as one or more buffers. Average luminance and chrominance values are calculated by, for example, an adder/shift register combination, and a combination value including one luminance value or average luminance value and one chrominance value or average chrominance value is generated. Exemplary embodiments of the method of the present invention may further include the step of selectively bypassing the averaging fimction when the second set of data is an empty set. The method of the present invention may further include the step of selecting between an 8-bit mode of operation and a 16-bit mode of operation. The method of the present invention may further include the step of identifying the data stored in the frame buffer, and if the video data is RGB data, the data is sent to a display device; if the video data is 24-bit YUV data, the format conversion process according to exemplary embodiments of the method of the present invention is bypassed; if the video data is 8-bit or 16-bit YUV data, the video data is converted to 24-bit YUV data according to exemplary embodiments of die method of the present invention. According to exemplary embodiments of me present invention, YUV data stored in an 8-bit or 16-bit format may be converted to a 24-bit YUV format for input to a YUV/RGB converter. This conversion enables live motion, full color video to be displayed on an 8-bit or 16-bit desktop monitor in a cost-effective manner in multiple video windows in all graphic modes without requiring an increased memory capacity. BRIEF DESCRIPTION OF THE DRAWINGS
A more complete understanding of the present invention will result upon reading the following Detailed Description of the Preferred Embodiments in conjunction with the accompanying drawings, in which like reference numerals indicate like elements, and in which:
FIG. 1 is a block diagram showing a video filter according to an exemplary embodiment of the present invention;
FIG. 2 is a block diagram of an adder/shift register combination which may be used in the filter of FIG. 1; and FIG. 3 is a block diagram of an exemplary alternate embodiment of a video filter in accordance with the present invention.
DETAILED DESCRD7TION OF PREFERRED EMBODIMENTS Referring now to FIG. 1, a video filter 10 for converting YUV video data stored in an 8-bit or 16-bit 4:2:2 format to a 24-bit 4:4:4 format is shown. Video filter 10 may be implemented in a PC video architecture such as that described in a copending application entitled "Split Video Architecture for PC's", assigned to the assignee of the present invention, and which is herein incorporated by reference. The filter 10 will be described first using the 8-bit 4:2:2 YUV video data as an example. That is, each 32-bit set of UYVY data (e.g. , UnYnVnYo, UpYpVpYq, etc.) is used to define four video pixels. In order for a 32-bit set of UYVY data to define four unique video pixels, the UYVY set of data must be converted to four unique YUV sets of data. Filter 10 accomplishes this conversion in a manner which will now be described.
Filter 10 includes first and second buffers 12 and 14 for receiving and storing a next quad of UYVY data and a current quad of UYVY data, respectively from a memory (not shown). In this example, the current quad consists of the four 8-bit values Un, Yn, Vn, and Yo and die next quad consists of the four 8-bit values Up, Yp, Vp, and Yq. Each quad of UYVY video data thus includes 32 bits of information. In the 8-bit case, each quad of data is used to define four pixels. Filter 10 converts the current quad of UYVY data, UnYnVnYo, into four unique YUV sets of video data. The conversion is accomplished by averaging or interpolating the current UYVY quad widi the next UYVY quad to generate four YUV sets of video data, as will be described in more detail below.
Filter 10 further includes luminance averaging circuits 16A and 16B, and chrominance averaging circuits 18A-C and 20A-C. Liiniinance averaging circuit 16A receives pixel values Yn and Yo as inputs, and generates a value Yno which is, for example, a 50% average of Yn and Yo. Luminance averaging circuit 16B receives pixel values Yo and Yp as inputs, and generates a value Yop which is, for example, a 50% average of Yo and Yp. Pixel values Yn, Yno, Yo, and Yp are provided as inputs to multiplexer 22.
Chrominance averaging is performed by hue averaging circuits 18 A-C and saturation averaging circuits 20A-C. Hue averaging circuit 18B receives hue values Un and Up as inputs, and generates hue value Unnpp which is, for example, a 50% average of Un and Up. Hue averaging circuit 18 A receives hue values Un and Up as inputs, and generates a hue value Unppp which is, for example, a 25/75 weighted average of pixel values Un and Up. Hue averaging circuit 18C receives hue values Un and Up as inputs, and generates a hue value Unnnp which is, for example, a 75/25 weighted average of hue values Un and Up. It will be appreciated that other weighings may be used. It will be further appreciated that rather than generating the weighted averages from values Un and Up, it is also possible to generate 50% averages of hue values Un and Unnpp, and of Up and Unnpp. Hue values Un, Unnnp, Unnpp, and Unppp are supplied as inputs to multiplexer 24.
Saturation averaging circuits 20A-C operate in substantially the same manner as hue averaging circuits 18 A-C, and generate average saturation values Vnnnp, Vnnpp, and Vnppp. Saturation values Vn, Vnnnp, Vnnpp, and Vnppp are supplied as inputs to multiplexer 26.
Averaging circuits 16 A-B, 18 A-C, and 20 A-C function to generate average luminance and chrominance values by linear interpolation. The current luminance and chrominance values from the current UYVY quad, together with the average luminance and chrominance values generated by averaging circuits 16 A-B, 18 A-C, and 20A-C, enable four sets of YUV data to be generated from each set of UYVY data. That is, the luminance and chrominance pixel values from the current quad and the average luminance and chrominance values generated by averaging circuit 16A-B, 18A-C, and 20A-C include four luminance values (Yn, Yno, Yo, and Yop), four hue values (Un, Unnnp, Unnpp, and Unppp), and four saturation values (Vn, Vnnnp, Vnnpp, and Vnppp). These values are provided to multiplexers 22, 24, and 26, which output four YUV sets of data YnUnVn, YnoUnnnp Vnnnp, YoUnnpp Vnnpp, and YopUnppp Vnppp. The YUV data is loaded into output buffer 28 and input to YUV RGB converter 30, where it is converted to RGB data for display on a monitor (not shown). This conversion of YUV data in an 8-bit 4:2:2 data format to YUV data in a 24-bit 4:4:4 data format enables converter 30 to provide high quality, live motion, full color video in an RGB format for display on a monitor.
The outputs of luminance multiplexer 22, hue multiplexer 24, and saturation multiplexer 26 are determined by control signals S0-S3, which are generated by byte counter 32. Byte counter 32, which may include a flip-flop 33 and multiplexers 35 and 37, or other suitable elements, generates a cycle of logic signals 00, 01, 10, and 11 on lines 34 and 36. When counter 32 generates logic value 00 (that is, lines 34 and 36 are both at logic 0), the control signals S0-S3 are all logic 0, and multiplexers 22, 24, and 26 output values Yn, Un and Vn, respectively, to output buffer 28. When counter 32 generates logic value 01 (that is, line 34 is at logic 0 and line 36 is at logic 1), the control signals SO and S2 are both at logic 0, control signals SI and S3 are both at logic 1, and multiplexers 22, 24, and 26 output values Yno, Unnnp, and Vnnnp, respectively, to output buffer 28. When counter 32 generates logic value 10 (that is, line 34 is logic 1 and line 36 is logic 0), the control signals SO and S2 are both at logic 1, control signals SI and S3 are boui at logic 0, and multiplexers 22, 24, and 26 output values Yo, Unnpp, and Vnnpp, respectively, to output buffer 28. When counter 32 generates logic value 11 (uiat is, lines 34 and 36 are both at logic 1), control signals S0-S3 are all at logic 1, and multiplexers 22, 24, and 26 output values Yop, Unppp, and Vnppp, respectively to output buffer 28. It will be appreciated diat after converting a number of UYVY quads of video data to YUV data, the video application requiring the conversion may be interrupted or terminated. At die termination of me video application, there will be only a current UYVY quad, and diere will not be a next UYVY quad of video data. Because averaging may not be perfoπned under such a condition, video filter 10 further includes means for selectively reducing d e number of combination values which may be output by multiplexers 22, 24 and 26 to output buffer 28 when the next quad of video data is an empty set.
According to an exemplary embodiment, a LAST_QUAD# signal is provided for indicating when the current quad of video data stored in current buffer 14 is the last quad. In other words, when the last UYVY set of video data required for a particular application has been retrieved from die memory, the current quad will be present in current buffer 14 and there will be no data (i.e., an empty set) present in the next buffer 12. Under this condition, the LAST_QUAD# signal will change from logic 1 to logic 0 to disable some of ie averaging function of filter 10. Specifically, the LAST_QUAD# signal is provided as one input to AND gates 40, 42, and 44. Line 34 is provided as a second input to AND gates 40 and 42, and line 36 is provided as a second input to AND gate 44. When the LAST_QUAD# signal is at logic 0, the outputs of each of the AND gates 40, 42, and 44, and dius control signals SO, S2 and S3 are all logic 0. In this condition, regardless of d e logic levels on lines 34 and 36, only values Yn, Yo, Un and Vn may be output by multiplexers 22, 24, and 26. Accordingly, die YUV data which can be provided to output buffer 28 is YnUnVn for two pixels, and YoYnVn for two pixels. In diis manner, me LAST_QUAD# signal causes the averaging function of the video filter 10 to be selectively reduced when the cuπent quad is the last quad of video data in a particular application, or when no next quad of video data is present. In an alternate embodiment, as illustrated in FIG. 3, a gate 46 has been added in conjunction widi gate 40 to control multiplexer 22 to create YnUnVn for the first pixel, YnoUnVn for the second pixel, and YoUnVn for me last two pixels of a four pixel set. Thus, it will be appreciated d at alternate logic elements and/or an alternate logic convention for the LAST_QUAD# signal can be used. The LAST-QUAD signal can be used to cause the filter to eliminate any filtering of data stored in die buffers 12 and 14. For example, the filter paths can be configured such uiat video data stored in uie current buffer 14 is multiplexed directly to the outputs of multiplexers 22, 24 and 26, or to provide a limited averaging capability (e.g., provide only the averaging of averaging circuit 16A). It will be further appreciated that other suitable means may be used to selectively bypass d e averaging function of die filter 10 under appropriate circumstances, and diat die invention is not limited to die exemplary embodiment illustrated.
Video filter 10 further includes a mode selection means for selectively operating in an 8-bit or 16-bit mode. According to an exemplary embodiment, a mode select signal MODE is provided to byte counter 32. The MODE signal state indicates whedier the YUV data is in the 8-bit 4:2:2 format and die filter 10 is operating in an 8-bit mode, or whether the data is in me 16-bit 4:2:2 format and me filter 10 is operating in the 16-bit mode. In die 16-bit mode, die MODE signal causes byte counter 32 to output logic values 00 (d at is, the logic values on lines 34 and 36 are both 0) and 10 (that is, the logic value on line 34 is 1 and die logic value on line 36 is 0) only. As a result of byte counter 32 generating only logic values 00 and 10, multiplexers 22, 24, and 26 output values Yn, Un, and Vn (for logic value 00) or Yo, Unnpp, and Vnnpp (for logic value 10) only when die filter 10 is operating in die 16- bit mode.
In the 16-bit mode, each 32-bit set of UYVY data is used to define 2 video pixels. That is, each cuπent UYVY quad is converted into two YUV sets of video data by interpolating or averaging the individual U, Y and V values of the current UYVY quad with die U, Y and V values of die next UYVY quad. Using die examples shown in FIG. 1, YUV values YnUnVn and YoUnnpp Vnnpp may be generated from a current quad UnYnVnYo and a next quad UpYpVpYq. Since the same amount of data is used to define fewer pixels in die 16-bit mode man in d e 8-bit mode (two pixels/quad versus four pixels/quad), each quad in die 16-bit mode provides more infoπnation and it is therefore not necessary to perform as much interpolation or averaging as in the 8-bit mode.
It will be appreciated that means may be provided to appropriately route the video data retrieved from the memory. For example, a routing circuit, tag map, addressing data, or other suitable means may be implemented to cause de data to be routed directly to die display device, direcdy to die YUV/RGB converter, or to die buffers 12 and 14 of filter 10. That is, if data retrieved from die frame buffer is RGB data, die data does not require conversion and dierefore is sent directly to the display device. If die data retrieved from the frame buffer is 24-bit YUV video data, die video data only requires conversion to die RGB format and dierefore is sent directly to YUV/RGB converter 30. If the data retrieved from the frame buffer is 8-bit or 16- bit 4:2:2 YUV video data, the video data is supplied to buffers 12 and 14, and die data is converted to die 24-bit 4:4:4 format for input to YUV/RGB converter 30. According to an exemplary embodiment of die present invention, the means for identifying and routing data may be implemented by an off-screen tag map which may be fetched when YUV data (24-bit, 16-bit, or 8-bit) data is retrieved from the frame buffer, or other suitable means.
Referring now to FIG. 2, an exemplary averaging circuit in the form of an adder/shift register is shown. The adder/shift register circuit 50 includes an adder 52 for adding two or more binary addends of n bits each to generate a sum of n+ 1 bits. The adder/shift register circuit 50 further includes a shift register 54 for storing the sum and shifting the sum of n+l bits to u e right by one bit to effectively divide the sum by 2 to generate an average. In die 8-bit mode, for example, two 8-bit addends such a Un and Up are added to generate an 8-bit or 9-bit sum. This 8-bit or 9-bit sum is shifted to the right by one bit to generate an 8-bit value Unnpp which is a 50% average of Un and Up. It will be appreciated diat o ier suitable circuits or methods may be used to implement die averaging function of averaging circuits 16 A-B, 18 A-C, and 20A-C. For example, averaging circuits such as averaging circuits 18A and 18C in FIG. 1 can obtain input terms from 18B to form a term of, for example, a 75 %/25% value. It will be appreciated diat d e filter according to the exemplary embodiments of me present invention described above may be readily modified to accommodate other input or output data formats, and diat me number and weighing of interpolated values may be adjusted to allow format conversion to and from a wide variety of formats. For example, alternate 4:2:2 formats such as UYVY, VYUY, YUYV, YVYU or any other formats can be supported in accordance widi the present invention. It will be further appreciated d at the present invention may also be readily applied to me format conversion of many types of data, and is not limited to video data applications. Further, in accordance widi exemplary embodiments, one pixel clipping can be used to change boundary conditions.
While the foregoing description has included many specificities, it is to be understood d at these details are for me purpose of illustrating exemplary embodiments of e present invention only, and are not to be construed as limitations of die present invention. Many modifications will be readily apparent to tiiose of ordinary skill in die art from the foregoing description which do not depart from the spirit and scope of d e invention, as defined by d e appended claims and their legal equivalents.

Claims

WHAT IS CLAIMED IS:
1. An apparatus for converting video data from a first format to a second format, comprising: means for retrieving first and second sets of video data from a storage buffer, each set of video data including luminance values and chrominance values; means for generating one or more average luminance values from die luminance values of d e first and second sets of video data; means for generating one or more average chrominance values from the chrominance values of the first and second sets of video data; and means for selectively outputting one or more combination values, each combination value including one luminance value or average luminance value and one chrominance value or average chrominance value.
2. The apparatus of claim 1, wherein die first and second sets of video data are YUV color video data.
3. The apparatus of claim 2, wherein die means for receiving includes one or more buffers.
4. The apparatus of claim 2, wherein the means for generating one or more average luminance values and die means for generating one or more chrominance values are each comprised of one or more averaging circuits, each averaging circuit including an adder and a shift register.
5. The apparams of claim 2, wherein die means for selectively outputting a combination value comprises one or more multiplexers and a counter for outputting one or more control signal values to control die output of the one or more multiplexers.
6. The apparatus of claim 2, further comprising means for selectively causing die means for selectively outputting one or more combination values to output a reduced number of combination values.
7. The apparatus of claim 6, wherein the reduced number of combination values include one luminance value and one chrominance value when die second set of video data is an empty set.
8. The apparatus of claim 5, further comprising mode selection means for selecting between a first mode and a second mode.
9. The apparatus of claim 8, wherein the mode selection means causes d e counter to output a reduced number of control signal values in the second mode.
10. A mediod for converting video data from a first format to a second format, comprising the steps of: retrieving first and second sets of video data from a storage buffer, each set of video data including a luminance value and a chrominance value; storing die first and second sets of video data in first and second buffers, respectively; supplying luminance values from die first and second sets of video data to one or more luminance averaging circuits to generate one or more average luminance values; supplying chrominance values from the first and second sets of video data to one or more chrominance averaging circuits to generate one or more average chrominance values; and selectively outputting one or more combination values to an output buffer, each combination value including one luminance value or average luminance value and one chrominance value or average chrominance value.
11. The method of claim 10, wherein the first and second sets of video data are YUV color video data in an 8-bit format.
12. The method of claim 11, wherein the one or more luminance averaging circuits and die one or more chrominance averaging circuits each include an adder and a shift register.
13. The apparatus of claim 11, wherein the step of selectively outputting a combination value is performed by one or more multiplexers and a counter for outputting one or more control signals to control the output of die one or more multiplexers.
14. The method of claim 11, further comprising the step of selectively bypassing die steps for generating one or more average luminance values and generating one or more chrominance values when d e second set of video data is an empty set.
15. The method of claim 13, further comprising die step of selecting between a first mode and a second mode before die step of supplying luminance values or die step of supplying chrominance values.
16. The mediod of claim 15, wherein the step of selecting is performed by causing die counter to output a reduced number of control signals in the second mode.
17. An apparatus for converting data from a first format to a second format, comprising: means for receiving first and second sets of data values in the first format; means for generating one or more average data values from the first and second sets of video data; and means for selectively outputting a combination value including one or more data values and one or more average data values.
18. The apparatus of claim 17, wherein the means for receiving includes one or more buffers.
19. The apparatus of claim 17, wherein the means for generating one or more average data values comprise one or more averaging circuits, each averaging circuit including an adder and a shift register.
20. The apparatus of claim 17, wherein die means for selectively outputting a combination value comprises one or more multiplexers and a counter for outputting one or more control signals to control the output of die one or more multiplexers.
21. The apparatus of claim 17, further comprising means for selectively causing the means for selectively outputting one or more combination values to output a reduced number of combination values.
22. The apparatus of claim 21, wherein the reduced number of combination values includes only data values and not average data values when d e second set of data is an empty set.
23. The apparatus of claim 20, further comprising mode selection means for selecting between a first mode in which a first number of average data values is generated, and a second mode in which a second number of average data values is generated.
24. The apparams of claim 23, wherein die mode selection means causes d e counter to output a reduced number of control signals in the second mode.
25. A method for converting data from a first format to a second format, comprising the steps of: storing first and second sets of data values in me first format in first and second buffers; supplying data values from the first set and d e second set to an averaging circuit to generate one or more average data values; and selectively outputting one or more combination values, each combination value including one or more data values and one or more average data values, to an output buffer.
26. The method of claim 25, wherein me step of supplying is performed by supplymg a first data value from die first set and a second data value from the second set to an adder circuit to generate a sum, supplying die sum to a shift register, and shifting die sum to generate an average data value.
27. An apparatus for processing video data, comprising: means for identifying video data retrieved from a memory as having a first, second, or third data format; means for supplying video data identified as having the first format to a video display device; means for supplying video data identified as having the second format to a display converter for converting the video data having die second format to converted video data having the first format; and means for supplying video data identified as having the third format to a format converter for converting the video data having the third format to converted video data having the second format, and for supplying the converted video data having the second format to the display converter.
28. The apparatus of claim 27, wherein the means for identifying includes a tag map.
29. A method for processing video data, comprising the steps of: identifying video data retrieved from a memory as having a first, second, or third data format; supplying video data identified as having the first format to a video display device; supplying video data identified as having d e second format to a display converter for converting die video data having die second format to converted video data having die first format; and supplying video data identified as having the third format to a format converter for converting the video data having the diird format to converted video data having die second format, and for supplying the converted video data having die second format to the display converter.
30. The method of claim 29, wherein the step of identifying is performed by fetching a tag map.
PCT/US1996/017547 1995-11-03 1996-11-01 Yuv video backend filter WO1997016814A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US55277495A 1995-11-03 1995-11-03
US08/552,774 1995-11-03

Publications (1)

Publication Number Publication Date
WO1997016814A1 true WO1997016814A1 (en) 1997-05-09

Family

ID=24206753

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1996/017547 WO1997016814A1 (en) 1995-11-03 1996-11-01 Yuv video backend filter

Country Status (1)

Country Link
WO (1) WO1997016814A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8241667B2 (en) 2001-11-06 2012-08-14 Osmotica Kereskedelmi és Szolgáltató KFT Dual controlled release osmotic device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4897799A (en) * 1987-09-15 1990-01-30 Bell Communications Research, Inc. Format independent visual communications
US5086295A (en) * 1988-01-12 1992-02-04 Boettcher Eric R Apparatus for increasing color and spatial resolutions of a raster graphics system
US5122784A (en) * 1988-09-14 1992-06-16 International Business Machines Corporation Method and apparatus for color conversion
US5384582A (en) * 1993-06-16 1995-01-24 Intel Corporation Conversion of image data from subsampled format to clut format

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4897799A (en) * 1987-09-15 1990-01-30 Bell Communications Research, Inc. Format independent visual communications
US5086295A (en) * 1988-01-12 1992-02-04 Boettcher Eric R Apparatus for increasing color and spatial resolutions of a raster graphics system
US5122784A (en) * 1988-09-14 1992-06-16 International Business Machines Corporation Method and apparatus for color conversion
US5384582A (en) * 1993-06-16 1995-01-24 Intel Corporation Conversion of image data from subsampled format to clut format

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8241667B2 (en) 2001-11-06 2012-08-14 Osmotica Kereskedelmi és Szolgáltató KFT Dual controlled release osmotic device

Similar Documents

Publication Publication Date Title
US5097257A (en) Apparatus for providing output filtering from a frame buffer storing both video and graphics signals
US5124688A (en) Method and apparatus for converting digital YUV video signals to RGB video signals
US5896140A (en) Method and apparatus for simultaneously displaying graphics and video data on a computer display
US6466224B1 (en) Image data composition and display apparatus
US5473342A (en) Method and apparatus for on-the-fly multiple display mode switching in high-resolution bitmapped graphics system
CA1229441A (en) Color-signal converting circuit
US4772881A (en) Pixel mapping apparatus for color graphics display
US6828982B2 (en) Apparatus and method for converting of pixels from YUV format to RGB format using color look-up tables
US5784050A (en) System and method for converting video data between the RGB and YUV color spaces
EP0457297B1 (en) Display apparatus
US5446866A (en) Architecture for transferring pixel streams, without control information, in a plurality of formats utilizing addressable source and destination channels associated with the source and destination components
US5384582A (en) Conversion of image data from subsampled format to clut format
US4771275A (en) Method and apparatus for assigning color values to bit map memory display locations
JPH0651752A (en) Visual data processor
US6154195A (en) System and method for performing dithering with a graphics unit having an oversampling buffer
US5943097A (en) Image processing means for processing image signals of different signal formats
US6259439B1 (en) Color lookup table blending
US5231385A (en) Blending/comparing digital images from different display window on a per-pixel basis
JP3016016B2 (en) Color LCD drive
JP3062068B2 (en) Method for identifying the format of video pixel data, circuit in a video graphics device, and computer system
US6020921A (en) Simple gamma correction circuit for multimedia
JP4672821B2 (en) Method and apparatus using line buffer for interpolation as pixel lookup table
US5140312A (en) Display apparatus
US20070109314A1 (en) Adaptive pixel-based blending method and system
US5900861A (en) Table-driven color conversion using interleaved indices

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CA JP KR

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH 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
122 Ep: pct application non-entry in european phase