WO2000059205A2 - Method and apparatus for down conversion of video data - Google Patents

Method and apparatus for down conversion of video data Download PDF

Info

Publication number
WO2000059205A2
WO2000059205A2 PCT/US2000/008685 US0008685W WO0059205A2 WO 2000059205 A2 WO2000059205 A2 WO 2000059205A2 US 0008685 W US0008685 W US 0008685W WO 0059205 A2 WO0059205 A2 WO 0059205A2
Authority
WO
WIPO (PCT)
Prior art keywords
video data
buffer
encoded according
format
threshold value
Prior art date
Application number
PCT/US2000/008685
Other languages
French (fr)
Other versions
WO2000059205A3 (en
Inventor
Gerard K. Yeh
Hsiang O-Yang
David Auld
Original Assignee
Teralogic, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Teralogic, Inc. filed Critical Teralogic, Inc.
Priority to DE60042219T priority Critical patent/DE60042219D1/en
Priority to AU40616/00A priority patent/AU4061600A/en
Priority to EP00920015A priority patent/EP1374553B1/en
Priority to JP2000608591A priority patent/JP4712195B2/en
Priority to AT00920015T priority patent/ATE431674T1/en
Publication of WO2000059205A2 publication Critical patent/WO2000059205A2/en
Publication of WO2000059205A3 publication Critical patent/WO2000059205A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/01Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
    • H04N7/0105Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level using a storage device with different write and read speed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/01Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
    • H04N7/0125Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level one of the standards being a high definition standard

Definitions

  • the invention relates to video data processing. More particularly, the invention relates to real time conversion of video data.
  • Video data encoded according to National Television Standards Committee (NTSC) standard in the United States has a frame size of 720 pixels wide by 480 pixels high and a frame rate of 30 interlaced frames per second.
  • Other video data encoding formats exist, for example, Phase Alternation Line (PAL) and Sequentiel Couliv a Memoire (SECAM). These formats are sometimes referred to as standard definition (SD) formats.
  • High definition (HD) television video data is encoded in a format that provides higher resolution than standard format video.
  • HD formats include 1280 pixel by 720 pixel progressive frames, 1920 pixel by 1080 pixel interlaced frames, or 720 pixel by 480 pixel progressive frames.
  • HD formats are described in greater detail in "ATSC Digital Television Standard” available from Advanced Television Systems Committee (September 1995).
  • Video decoding hardware such as televisions, video cassette recorders (VCRs) and other devices designed to operate with SD video data generally cannot decode HD video data. Because a large base of SD devices are currently in use and many users are unable or unwilling to upgrade SD devices to HD devices, conversion devices have been developed.
  • Figure 1 is a block diagram of one conversion of high definition video data to standard definition video data. In general, conversion according to Figure 1 is performed on frames stored in memory and the converted frames are returned to memory prior to output.
  • High definition video frame 110 is stored in memory 100. High definition video frame 110 can be decoded and transferred to memory 100 in any manner. Conversion circuitry and/or software 150 reads high definition video frame 110 from memory and converts the high definition frame to a standard definition frame. Conversion circuitry and/or software 150 returns standard definition video frame 120 to memory 100. Video driver 170 reads standard definition video frame 120 from memory 100 to generate output to a display device (not shown in Figure
  • a method and apparatus for conversion of video data is described.
  • a stream of video data encoded according to a source format is converted to a stream of video data encoded according to a destination format.
  • the video data encoded according to the destination format is stored in a buffer.
  • An output stream of video data is generated from data stored in the buffer, wherein access to the data in the buffer is triggered when the data stored in the buffer reaches a threshold value.
  • the threshold value is determined based, at least in part, on a horizontal scaling factor and a vertical scaling factor from the source format to the destination. In one embodiment, the threshold value is determined based, at least in part, on a vertical region of interest within the video data encoded according to the source format.
  • Figure 1 is a block diagram of one conversion of high definition video data to standard definition video data.
  • Figure 2 is a block diagram of video stream format conversion according to one embodiment of the invention.
  • Figure 3 is a block diagram of a vertical sealer according to one embodiment of the invention.
  • Figure 4 illustrates a relationship between a high definition video frame and a standard definition video frame.
  • FIG. 5 is a block diagram of a video system suitable for use with the invention.
  • the invention is described herein as converting from video data from high definition format to standard definition format. However, the invention is equally applicable to conversion between high definition formats as well as between other formats. Thus, the specification should not be interpreted to limit conversion between high definition video to standard definition video.
  • the invention provides a method and apparatus for conversion of video data from a high definition (HD) format to a standard definition (SD) format. Conversion is performed in real time and intermediate data is stored in a buffer. Converted video data is written into the buffer at a first clock rate and read out of the buffer at a second clock rate. In order to avoid overflow and underflow conditions, a threshold value is determined based, at least in part, on the video format being converted. The threshold value indicates a point in frame conversion at which converted data is read out of the buffer. The HD frame rate is also matched to the SD frame rate.
  • FIG. 2 is a block diagram of video stream format conversion according to one embodiment of the invention. Conversion according to the invention is accomplished without storing the complete HD format frames in memory, converting the frame and returning the corresponding SD format frame to memory. Conversion is thereby more efficient than if complete frames are stored in memory and accessed for conversion purposes.
  • Horizontal sealer 200 receives a high definition formatted video data stream and performs horizontal scaling operations. For example, when converting from 1080 line interlaced (1080i) video frames to standard definition 480 line interlaced (480i), horizontal sealer 200 converts a high definition line represented by 1920 pixels to a corresponding standard definition line represented by 720 pixels.
  • HFS int(256 * 720/hsize)
  • HFN hsize * (HFS + 1) - 256 * 720
  • HFM HFS - 256 * 720 where hsize is the horizontal size of the source image. In alternative embodiments other methods can be used to provide horizontal scaling.
  • the filter coefficients used for chroma values are different than the coefficients used for luminance values described above because the number of chroma inputs is different than luma inputs. In one embodiment, the following are used for chroma coefficients:
  • Chroma_HFN ⁇ 0, HFN[ 11:1] ⁇
  • Chroma_HFM ⁇ 1 , HFN[ 11 : 1 ] ⁇ .
  • Other chroma coefficients can also be used.
  • the "ace" value used to store intermediate results is a 10-bit value. The greater the number of bits used to represent ace the more accurate and the more expensive a hardware implementation becomes because memory requirements are greater. If ace is represented with fewer bits, the hardware implementation becomes less expensive and the conversion becomes less accurate.
  • the horizontally scaled lines output by horizontal sealer 200 are input to vertical sealer 210.
  • Vertical sealer 210 operates with line buffer 220 to vertically scale lines for vertical conversion from HD format to SD format.
  • vertical sealer 210 receives lines from horizontal sealer 200 and stores the lines in line buffer 220 until a sufficient number of lines are stored to complete the vertical scaling operation.
  • line buffer is a 720 x 20 bit memory accessed in a first in/first out (FIFO) manner; however, other memory sizes and access schemes can also be used. Vertical scaling is described in greater detail below with respect to Figure 3.
  • buffer 230 is a first in/first out (FIFO) buffer. Other types of buffers or memory can be used to store the data output by vertical sealer 210.
  • Buffer 230 stores pixel data that is accessed by standard definition video driver 240 to supply video data to display device 250. In one embodiment, buffer 230 is implemented with a 1445 x 16 bit memory; however, other memory sizes can also be used.
  • the HD format from which video data is converted is used as a factor to determine a threshold value that is used to control buffer 230.
  • the threshold value is used to trigger SD video driver 240 to start requesting data from buffer 230.
  • the threshold value is chosen to provide a minimal buffer size while avoiding underflow or overflow of data for conversion of a frame of data.
  • Other factors that can affect the threshold value include a region of interest in the HD frame and scaling factors applied by horizontal sealer 200 and vertical sealer 210.
  • the threshold value is software programmable. Threshold programability allows the threshold value to be changed, for example, when the format of the input video changes.
  • FIG. 3 is a block diagram of a vertical sealer according to one embodiment of the invention.
  • vertical sealer 300 includes two identical data paths; one for luma processing and one for chroma processing.
  • Luma filter 310 and chroma filter 320 receive data from horizontal sealer 200 (not shown in Figure 3). In one embodiment, both luma filter 310 and chroma filter 320 provide a 2-tap polyphase resampling filtering as described below. Digital differential analyzer 330 tracks the ratio of input to output sample rates and provides filter coefficient information to luma filter 310 and chroma filter 320.
  • vertical sealer 300 operates according to the following: if(initialization required)
  • VFS int(256 * 601 vsize / vsize)
  • VFN vsize * (VFS + 1) - 256 * 601 vsize
  • VFM vsize * VFS - 256 * 601 vsize
  • 601 vsize is 243 for NTSC output and 288 for PAL output; however, other values for vsize can also be used. In one embodiment the following values are used to initialize vertical sealer 300. Other values can also be used.
  • the variable "vdda_ph" is described in greater detail below.
  • Table 1 One embodiment of vertical filter phase initialization for progressive video input
  • line buffer 340 is a 720 x 20 bit memory, where 10 bits are used to store luminance data and 10 bits are used to store chrominance data.
  • Other memory sizes for example, a 16 bit wide memory with 8 bits for luminance data and 8 bits for chrominance data, can be used.
  • the buffer size is chosen to be a minimal value while providing sufficient accuracy.
  • data output by luma filter 310 and chroma filter 320 provides input to a buffer.
  • the buffer is used between the video streams.
  • Typical HD video streams operate at a nominal pixel rate of 74.125 MHz and typical SD video streams operate at a pixel rate of 13.5 MHz.
  • Other input and/or output pixel rates can also be supported.
  • HD video frames/fields have a different number of pixels per line and a different number of lines as compared to SD frames/fields.
  • the buffer size is chosen to be a minimal while preventing both underflow and overflow in the buffer.
  • a threshold value is used to trigger the SD video driver to start reading data out of the buffer.
  • the threshold value is also affected by the size of the region of interest within the HD video stream as well as horizontal and/or vertical scaling factors.
  • FIG. 4 illustrates a relationship between a high definition video frame and a standard definition video frame.
  • Starting position 420 represents a starting position for region of interest 410 of HD frame 400. As described herein, starting position 420 includes a horizontal starting position (XPOS) and a vertical starting position (YPOS); however, starting position 420 can be defined in another manner.
  • XPOS horizontal starting position
  • YPOS vertical starting position
  • starting position 420 can vary from frame to frame in order to capture the most important portion of HD frame 400. In an alternative embodiment starting position 420 can be fixed for a series of HD frames. Horizontal scaling factor 430 and vertical scaling factor 440 in combination with starting point 420 define region of interest 410. In one embodiment, region of interest 410 corresponds to the portion of HD frame 400 that is converted to a SD frame.
  • NTSC 720 x 480 interlaced
  • Table 2 NTSC conversion parameters according to one embodiment of the invention. In an alternative embodiment, other parameters can be used. Also, the parameters of Table 2 can be developed for a PAL output as the SD output format.
  • four 32-bit registers are used to provide values used for conversion.
  • the four registers are described below; however, other configurations as well as other register values can also be used.
  • the configuration register indicates an initialization value for the vertical digital differential analyzer (referred to as vdda_ph in Table 1). In one embodiment the initialization value is equivalent to the appropriate VFS value; however, other values can also be used.
  • the configuration register also stores the threshold value for accessing the circular buffer.
  • the position register provides the starting position of the region of interest and defines the area of the HD video frame that is converted to a SD video frame.
  • the position buffer includes a horizontal starting position (XPOS) for the region of interest as well as a vertical starting position (YPOS) of the region of interest.
  • the horizontal scaling register provides the HFS, HFN and HFM values described above with respect to horizontal scaling.
  • the HFS value indicates the fractional step size between input and output samples.
  • the HFN value is a positive parameter used by the horizontal digital differential analyzer to control overshoot.
  • the HFM value is a two's complement value used by the horizontal digital differential analyzer to control under- shoot. In one embodiment, the HFS, HFN and HFM values are used as described in greater detail above.
  • the vertical scaling register provides the VFS, VFN and VFM values described above with respect to vertical scaling.
  • the VFS value indicates the fractional step size between input and output samples.
  • the VFN value is a positive parameter used by the vertical digital differential analyzer to control overshoot.
  • the VFM value is a two's complement value used by the vertical digital differential analyzer to control undershoot.
  • the VFS, VFN and VFM values are used as described in greater detail above.
  • the following method can be used to determine an optimal threshold value for the buffer. The method is based on a binary search to search for the optimal threshold value.
  • the simulations of the scaling operations discussed above are used to predict the behavior of inputs and outputs to the buffer. From this simulation, the maximum and minimum number of entries in the buffer can be determined for any particular frame conversion. From the maximum and minimum determined, an optimal threshold value and optimal buffer size can be determined.
  • the threshold value is determined according to the following: main() initialize values
  • FIG. 5 is a block diagram of a video system suitable for use with the invention.
  • Video system 500 receives HD video data and outputs both HD video and SD video in real time. In other words, the SD output of system 500 is approximately synchronized with the HD output of system 500.
  • Memory controller 520 accesses memory 510 to retrieve video data.
  • memory controller outputs three types of data.
  • Graphics processor 540 receives graphics data from memory controller 540.
  • Video processor 530 receives video data from memory controller 520.
  • Output processor receives video data from video processor 530 and graphics data from graphics processor 540 and cursor data from memory controller 520.
  • Output processor 550 layers the video data, the graphics data and the cursor data to generate a high definition video output image. It is not necessary to have multiple layers of video data to practice the invention.
  • Output processor 550 provides a HD output to HD output driver 560, which in turn drives a display or other output device (not shown in Figure 5).
  • Output processor 550 also provides a HD output to HD-to-SD converter 570.
  • HD-to-SD converter 570 performs real time conversion on the HD video data to generate SD video data.
  • the SD video data is input to SD output driver that drives an output device (not shown in Figure 5), for example a VCR.
  • video system 500 provides both HD and SD outputs from a single HD input.
  • Video system 500 is useful for example, to drive a digital television with the HD output and an analog VCR with the SD output.
  • the outputs can be used for other purposes and a different number of outputs can be provided.

Abstract

The invention provides a method and apparatus for conversion of video data from a source format to a second destination. Conversion can be performed in real time and intermediate data is stored in a buffer (230). Converted video data is written into the buffer (230) at a first rate and read out of the buffer at a second rate. In order to avoid overflow and underflow conditions, a threshold value is determined based, at least in part, on the video format being converted. The threshold value indicates a point in frame conversion at which converted data is read out of the buffer.

Description

METHOD AND APPARATUS FOR DOWN CONVERSION OF VIDEO DATA
FIELD OF THE INVENTION
The invention relates to video data processing. More particularly, the invention relates to real time conversion of video data.
BACKGROUND OF THE INVENTION
Video data encoded according to National Television Standards Committee (NTSC) standard in the United States has a frame size of 720 pixels wide by 480 pixels high and a frame rate of 30 interlaced frames per second. Other video data encoding formats exist, for example, Phase Alternation Line (PAL) and Sequentiel Couleurs a Memoire (SECAM). These formats are sometimes referred to as standard definition (SD) formats.
High definition (HD) television video data is encoded in a format that provides higher resolution than standard format video. For example, HD formats include 1280 pixel by 720 pixel progressive frames, 1920 pixel by 1080 pixel interlaced frames, or 720 pixel by 480 pixel progressive frames. HD formats are described in greater detail in "ATSC Digital Television Standard" available from Advanced Television Systems Committee (September 1995).
Video decoding hardware such as televisions, video cassette recorders (VCRs) and other devices designed to operate with SD video data generally cannot decode HD video data. Because a large base of SD devices are currently in use and many users are unable or unwilling to upgrade SD devices to HD devices, conversion devices have been developed.
Figure 1 is a block diagram of one conversion of high definition video data to standard definition video data. In general, conversion according to Figure 1 is performed on frames stored in memory and the converted frames are returned to memory prior to output.
High definition video frame 110 is stored in memory 100. High definition video frame 110 can be decoded and transferred to memory 100 in any manner. Conversion circuitry and/or software 150 reads high definition video frame 110 from memory and converts the high definition frame to a standard definition frame. Conversion circuitry and/or software 150 returns standard definition video frame 120 to memory 100. Video driver 170 reads standard definition video frame 120 from memory 100 to generate output to a display device (not shown in Figure
1).
However, the conversion of Figure 1 requires storage of a complete HD frame in memory. If the memory is external to the conversion circuitry, each conversion incurs additional latency to access memory twice (one read and one write). If the memory and the conversion circuitry are included on the same integrated circuit chip, the cost of the integrated circuit is increased. What is needed is an improved method and apparatus for conversion of video data. SUMMARY OF THE INVENTION
A method and apparatus for conversion of video data is described. A stream of video data encoded according to a source format is converted to a stream of video data encoded according to a destination format. The video data encoded according to the destination format is stored in a buffer. An output stream of video data is generated from data stored in the buffer, wherein access to the data in the buffer is triggered when the data stored in the buffer reaches a threshold value.
In one embodiment, the threshold value is determined based, at least in part, on a horizontal scaling factor and a vertical scaling factor from the source format to the destination. In one embodiment, the threshold value is determined based, at least in part, on a vertical region of interest within the video data encoded according to the source format. BRIEF DESCRIPTION OF THE DRAWINGS
The invention is illustrated by way of example, and not by way of limitation in the figures of the accompanying drawings in which like reference numerals refer to similar elements.
Figure 1 is a block diagram of one conversion of high definition video data to standard definition video data. Figure 2 is a block diagram of video stream format conversion according to one embodiment of the invention.
Figure 3 is a block diagram of a vertical sealer according to one embodiment of the invention.
Figure 4 illustrates a relationship between a high definition video frame and a standard definition video frame.
Figure 5 is a block diagram of a video system suitable for use with the invention. DETAILED DESCRIPTION
A method and apparatus for real time video data conversion is described. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the invention. It will be apparent, however, to one skilled in the art that the invention can be practiced without these specific details. In other instances, structures and devices are shown in block diagram form in order to avoid obscuring the invention.
Reference in the specification to "one embodiment" or "an embodiment" means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. The appearances of the phrase "in one embodiment" in various places in the specification are not necessarily all referring to the same embodiment.
The invention is described herein as converting from video data from high definition format to standard definition format. However, the invention is equally applicable to conversion between high definition formats as well as between other formats. Thus, the specification should not be interpreted to limit conversion between high definition video to standard definition video.
In one embodiment, the invention provides a method and apparatus for conversion of video data from a high definition (HD) format to a standard definition (SD) format. Conversion is performed in real time and intermediate data is stored in a buffer. Converted video data is written into the buffer at a first clock rate and read out of the buffer at a second clock rate. In order to avoid overflow and underflow conditions, a threshold value is determined based, at least in part, on the video format being converted. The threshold value indicates a point in frame conversion at which converted data is read out of the buffer. The HD frame rate is also matched to the SD frame rate.
Figure 2 is a block diagram of video stream format conversion according to one embodiment of the invention. Conversion according to the invention is accomplished without storing the complete HD format frames in memory, converting the frame and returning the corresponding SD format frame to memory. Conversion is thereby more efficient than if complete frames are stored in memory and accessed for conversion purposes.
Horizontal sealer 200 receives a high definition formatted video data stream and performs horizontal scaling operations. For example, when converting from 1080 line interlaced (1080i) video frames to standard definition 480 line interlaced (480i), horizontal sealer 200 converts a high definition line represented by 1920 pixels to a corresponding standard definition line represented by 720 pixels.
In one embodiment, horizontal sealer 200 provides a 2-tap resampling digital filter according to the following: phase = HFS; ace = 0; newHFS = HFS; w = HFM; for(i = XPOS; i < XPOS+hsize; i++)
{ sample = inSample(); if(phase < 256) ace += round(newHFS * sample); else
{ phase &= OxFF; outSample(acc + round((newHFS - phase) * sample)); ace = round (phase * sample); } if( <0)
{ newHFS = HFS + 1; w += HFN;
} else
{ w +=HFM; newHFS = HFS;
} phase += newHFS;
} In one embodiment the following values are used:
HFS = int(256 * 720/hsize)
HFN = hsize * (HFS + 1) - 256 * 720
HFM = HFS - 256 * 720 where hsize is the horizontal size of the source image. In alternative embodiments other methods can be used to provide horizontal scaling.
In one embodiment, the filter coefficients used for chroma values are different than the coefficients used for luminance values described above because the number of chroma inputs is different than luma inputs. In one embodiment, the following are used for chroma coefficients:
Chroma_HFS = HFS
Chroma_HFN = { 0, HFN[ 11:1]}
Chroma_HFM = { 1 , HFN[ 11 : 1 ] } . Other chroma coefficients can also be used.
In one embodiment the "ace" value used to store intermediate results is a 10-bit value. The greater the number of bits used to represent ace the more accurate and the more expensive a hardware implementation becomes because memory requirements are greater. If ace is represented with fewer bits, the hardware implementation becomes less expensive and the conversion becomes less accurate.
The horizontally scaled lines output by horizontal sealer 200 are input to vertical sealer 210. Vertical sealer 210 operates with line buffer 220 to vertically scale lines for vertical conversion from HD format to SD format. In one embodiment, vertical sealer 210 receives lines from horizontal sealer 200 and stores the lines in line buffer 220 until a sufficient number of lines are stored to complete the vertical scaling operation. In one embodiment, line buffer is a 720 x 20 bit memory accessed in a first in/first out (FIFO) manner; however, other memory sizes and access schemes can also be used. Vertical scaling is described in greater detail below with respect to Figure 3.
Data output by vertical sealer 210 is stored in buffer 230. In one embodiment buffer 230 is a first in/first out (FIFO) buffer. Other types of buffers or memory can be used to store the data output by vertical sealer 210. Buffer 230 stores pixel data that is accessed by standard definition video driver 240 to supply video data to display device 250. In one embodiment, buffer 230 is implemented with a 1445 x 16 bit memory; however, other memory sizes can also be used.
In one embodiment, the HD format from which video data is converted is used as a factor to determine a threshold value that is used to control buffer 230. The threshold value is used to trigger SD video driver 240 to start requesting data from buffer 230. As described in greater detail below, the threshold value is chosen to provide a minimal buffer size while avoiding underflow or overflow of data for conversion of a frame of data. Other factors that can affect the threshold value include a region of interest in the HD frame and scaling factors applied by horizontal sealer 200 and vertical sealer 210. In one embodiment the threshold value is software programmable. Threshold programability allows the threshold value to be changed, for example, when the format of the input video changes.
Figure 3 is a block diagram of a vertical sealer according to one embodiment of the invention. In one embodiment vertical sealer 300 includes two identical data paths; one for luma processing and one for chroma processing.
Luma filter 310 and chroma filter 320 receive data from horizontal sealer 200 (not shown in Figure 3). In one embodiment, both luma filter 310 and chroma filter 320 provide a 2-tap polyphase resampling filtering as described below. Digital differential analyzer 330 tracks the ratio of input to output sample rates and provides filter coefficient information to luma filter 310 and chroma filter 320.
In one embodiment, vertical sealer 300 operates according to the following: if(initialization required)
{ phase = value from Table 1 below; bypass = value from Table 1 below;
} else
{ phase = vdda_ph; if(VFS == 0) bypass = 1 ; else bypass = 0;
} ace = 0; newVFS = phase; // Initialze to VFS in normal case w = VFM; for(i = XPOS; i < XPOS+vsize; i++)
{ sample = inSample(); if(phase<256) ace += round(newVFS* sample); else
{ phase &= OxFF; if(bypass == 1 ) outSample(sample); else outSample(acc + round((newVFS - phase) * sample)); ace =round(phase * sample);
} if(VFS == 0) bypass = 1 ; else bypass = 0; if(w<0)
{ newVFS = VFS = l; w += VFN;
} else
{ w += VFM; new VFS = VFS; phase += new VFS;
}
In one embodiment, the following values are used:
VFS = int(256 * 601 vsize / vsize)
VFN = vsize * (VFS + 1) - 256 * 601 vsize
VFM = vsize * VFS - 256 * 601 vsize In one embodiment, 601 vsize is 243 for NTSC output and 288 for PAL output; however, other values for vsize can also be used. In one embodiment the following values are used to initialize vertical sealer 300. Other values can also be used. The variable "vdda_ph" is described in greater detail below.
Figure imgf000010_0001
Table 1 : One embodiment of vertical filter phase initialization for progressive video input
Intermediate filter results are stored in line buffer 340. In one embodiment, line buffer 340 is a 720 x 20 bit memory, where 10 bits are used to store luminance data and 10 bits are used to store chrominance data. Other memory sizes, for example, a 16 bit wide memory with 8 bits for luminance data and 8 bits for chrominance data, can be used. In one embodiment, the buffer size is chosen to be a minimal value while providing sufficient accuracy.
In one embodiment, data output by luma filter 310 and chroma filter 320 provides input to a buffer. In order to convert between HD video and SD video in real time, the buffer is used between the video streams. Typical HD video streams operate at a nominal pixel rate of 74.125 MHz and typical SD video streams operate at a pixel rate of 13.5 MHz. Other input and/or output pixel rates can also be supported. In addition to different pixel rates, HD video frames/fields have a different number of pixels per line and a different number of lines as compared to SD frames/fields.
In one embodiment the buffer size is chosen to be a minimal while preventing both underflow and overflow in the buffer. A threshold value is used to trigger the SD video driver to start reading data out of the buffer. The threshold value is also affected by the size of the region of interest within the HD video stream as well as horizontal and/or vertical scaling factors.
Figure 4 illustrates a relationship between a high definition video frame and a standard definition video frame. Starting position 420 represents a starting position for region of interest 410 of HD frame 400. As described herein, starting position 420 includes a horizontal starting position (XPOS) and a vertical starting position (YPOS); however, starting position 420 can be defined in another manner.
In one embodiment, starting position 420 can vary from frame to frame in order to capture the most important portion of HD frame 400. In an alternative embodiment starting position 420 can be fixed for a series of HD frames. Horizontal scaling factor 430 and vertical scaling factor 440 in combination with starting point 420 define region of interest 410. In one embodiment, region of interest 410 corresponds to the portion of HD frame 400 that is converted to a SD frame.
In one embodiment, the following values are used for NTSC (720 x 480 interlaced) output:
Figure imgf000011_0001
Table 2: NTSC conversion parameters according to one embodiment of the invention. In an alternative embodiment, other parameters can be used. Also, the parameters of Table 2 can be developed for a PAL output as the SD output format.
In one embodiment, four 32-bit registers are used to provide values used for conversion. The four registers are described below; however, other configurations as well as other register values can also be used.
The configuration register indicates an initialization value for the vertical digital differential analyzer (referred to as vdda_ph in Table 1). In one embodiment the initialization value is equivalent to the appropriate VFS value; however, other values can also be used. The configuration register also stores the threshold value for accessing the circular buffer.
The position register provides the starting position of the region of interest and defines the area of the HD video frame that is converted to a SD video frame. The position buffer includes a horizontal starting position (XPOS) for the region of interest as well as a vertical starting position (YPOS) of the region of interest.
The horizontal scaling register provides the HFS, HFN and HFM values described above with respect to horizontal scaling. The HFS value indicates the fractional step size between input and output samples. The HFN value is a positive parameter used by the horizontal digital differential analyzer to control overshoot. The HFM value is a two's complement value used by the horizontal digital differential analyzer to control under- shoot. In one embodiment, the HFS, HFN and HFM values are used as described in greater detail above.
The vertical scaling register provides the VFS, VFN and VFM values described above with respect to vertical scaling. The VFS value indicates the fractional step size between input and output samples. The VFN value is a positive parameter used by the vertical digital differential analyzer to control overshoot. The VFM value is a two's complement value used by the vertical digital differential analyzer to control undershoot. In one embodiment, the VFS, VFN and VFM values are used as described in greater detail above. The following method can be used to determine an optimal threshold value for the buffer. The method is based on a binary search to search for the optimal threshold value. In one embodiment, the simulations of the scaling operations discussed above are used to predict the behavior of inputs and outputs to the buffer. From this simulation, the maximum and minimum number of entries in the buffer can be determined for any particular frame conversion. From the maximum and minimum determined, an optimal threshold value and optimal buffer size can be determined.
In one embodiment, the threshold value is determined according to the following: main() initialize values;
//DO loop begin
Do each (threshold value = (top-bottom)/2) for each vertical line if(primary input is active range and in region of interest) calculate new vphse and vw; reset hphase and hw; else if both HD and SD are in the blanking period then reset FIFOcount
//process SD output data for each pixel if(FIFO watermark has been reached) set output enable = 1 ; reset output position (initialize v601 count, h601 count, phase 601 and w601) if(output enable = 1) call out601() function
//process HD input data if(primary input is active range and in region of interest) if( vphase>255 and current pixel is an active pixel) calculate new hphase and hw; if hphase > 255 then if input is interlaced
FTFOcount++ and update the max value of the FIFO count; else input is progressive for(every other line)
FIFOcount++ and update the max value of the FIFO count hphase &= OxFF if(primary input is active and in region of interest) if (vphase>255) vphase &= OxFF //DO loop end check whether (top = bottom) or (top = bottom+1) if so, then exit program check whether min FIFO count < 0, if so, set bottom = current threshold value repeat DO loop else set top = current threshold value repeat DO loop out601() if v601 count not more than the end of the vertical field calculate new hphaseOl, hw601 if an output pixel needed if pixel in active range of output frame
FTFOcount— and update the min value of the FIFO count H601++ if end of horizontal line v601count++ hphaseόOl &= OxFF
Figure 5 is a block diagram of a video system suitable for use with the invention. Video system 500 receives HD video data and outputs both HD video and SD video in real time. In other words, the SD output of system 500 is approximately synchronized with the HD output of system 500. Memory controller 520 accesses memory 510 to retrieve video data.
In one embodiment, memory controller outputs three types of data. Graphics processor 540 receives graphics data from memory controller 540. Video processor 530 receives video data from memory controller 520. Output processor receives video data from video processor 530 and graphics data from graphics processor 540 and cursor data from memory controller 520. Output processor 550 layers the video data, the graphics data and the cursor data to generate a high definition video output image. It is not necessary to have multiple layers of video data to practice the invention.
Output processor 550 provides a HD output to HD output driver 560, which in turn drives a display or other output device (not shown in Figure 5). Output processor 550 also provides a HD output to HD-to-SD converter 570. HD-to-SD converter 570 performs real time conversion on the HD video data to generate SD video data. The SD video data is input to SD output driver that drives an output device (not shown in Figure 5), for example a VCR.
Thus, video system 500 provides both HD and SD outputs from a single HD input. Video system 500 is useful for example, to drive a digital television with the HD output and an analog VCR with the SD output. Of course, the outputs can be used for other purposes and a different number of outputs can be provided.
In the foregoing specification, the invention has been described with reference to specific embodiments thereof. It will, however, be evident that various modifications and changes can be made thereto without departing from the broader spirit and scope of the invention. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.

Claims

CLAIMSWhat is claimed is:
1. A method of converting video data, the method comprising: converting a stream of video data encoded according to a source format to a stream of video data encoded according to a destination format; storing the stream of video data encoded according to the destination format in a buffer; and generating an output stream of video data from data stored in the buffer, wherein access to the data in the buffer is triggered when the data stored in the buffer reaches a threshold value.
2. The method of claim 1 wherein converting video data encoded according to a source format to video data encoded according to a destination format comprises: horizontally scaling the video data encoded according to the source format based, at least in part, on a horizontal scaling factor to generated horizontally scaled video data; and vertically scaling the horizontally scaled video data based, at least in part, on a vertical scaling factor to generate video data encoded according to the destination format.
3. The method of claim 2 wherein vertically scaling the horizontally scaled video data comprises temporarily storing horizontally scaled data in a line buffer.
4. The method of claim 1 wherein the buffer is maintained as a first in/first out (FIFO) buffer.
5. The method of claim 1 wherein the threshold value is determined based, at least in part, on a horizontal scaling factor and a vertical scaling factor corresponding to the source format and the destination.
6. The method of claim 1 wherein the threshold value is determined based, at least in part, on a region of interest within the video data encoded according to the source format and the destination format.
7. The method of claim 1 wherein the converting the video data encoded according to the source format to the video data encoded according to the destination format comprises a substantially real time conversion.
8. The method of claim 1 further comprising generating a video output signal corresponding to the destination format.
9. An apparatus for converting video data, the apparatus comprising: means for converting a stream of video data encoded according to a source format to a stream of video data encoded according to a destination format; means for storing the stream of video data encoded according to the destination format in a buffer; and means for generating an output stream of video data from data stored in the buffer, wherein access to the data in the buffer is triggered when the data stored in the buffer reaches a threshold value.
10. The apparatus of claim 9 wherein the means for converting video data encoded according to the source format to video data encoded according to the destination format comprises: means for horizontally scaling the video data encoded according to the source format based, at least in part, on a horizontal scaling factor to generated horizontally scaled video data; and means for vertically scaling the horizontally scaled video data based, at least in part, on a vertical scaling factor to generate video data encoded according to the destination format.
11. The apparatus of claim 10 wherein the means for vertically scaling the horizontally scaled video data comprises means for temporarily storing horizontally scaled data in a line buffer.
12. The apparatus of claim 9 wherein the threshold value is determined based, at least in part, on a horizontal scaling factor and a vertical scaling factor corresponding to the source format and the destination format.
13. The apparatus of claim 9 wherein the threshold value is determined based, at least in part, on a region of interest within the video data encoded according to the source format and the destination format.
14. The apparatus of claim 9 wherein the means for converting the video data encoded according to the source format to the video data encoded according to the destination format comprises a substantially real time conversion.
15. The apparatus of claim 9 further comprising means for generating a video output signal corresponding to the destination format.
16. A system comprising: a high definition video data processor to receive a stream of high definition video data; and a down converter coupled to the high definition video data processor to convert the a stream of high definition video data to a stream of standard definition video data, wherein the down converter temporarily stores portions of the stream of standard definition video data in a buffer until a threshold value is reached and outputs standard definition video data in response to the threshold value being reached.
17. The system of claim 16 wherein the down converter comprises: a horizontal sealer to receive high definition video data and horizontally scale the high definition to generate horizontally scaled video data; and a vertical sealer coupled to the horizontal sealer, the vertical sealer to generate standard definition video data.
18. The system of claim 17 further comprising a first in/first out (FIFO) buffer coupled to the vertical sealer, the buffer to store standard definition video data generated by the vertical sealer , wherein standard definition video data is read out of the buffer when a threshold value amount of standard definition video data is stored in the buffer.
19. The system of claim 18 further comprising a standard definition video driver coupled to the buffer, the standard definition video driver to output standard definition video signals.
20. The system of claim 16 wherein the threshold value is based, at least in part, on a horizontal scaling factor and a vertical scaling factor for the high definition video data.
21. The system of claim 16 wherein the threshold value is based, at least in part, on a region of interest within the high definition video data.
PCT/US2000/008685 1999-03-31 2000-03-30 Method and apparatus for down conversion of video data WO2000059205A2 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
DE60042219T DE60042219D1 (en) 1999-03-31 2000-03-30 VIDEO DATA
AU40616/00A AU4061600A (en) 1999-03-31 2000-03-30 Method and apparatus for down conversion of video data
EP00920015A EP1374553B1 (en) 1999-03-31 2000-03-30 Method and apparatus for down conversion of video data
JP2000608591A JP4712195B2 (en) 1999-03-31 2000-03-30 Method and apparatus for down conversion of video data
AT00920015T ATE431674T1 (en) 1999-03-31 2000-03-30 METHOD AND DEVICE FOR DOWNWARD CONVERSION OF VIDEO DATA

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/283,823 1999-03-31
US09/283,823 US6353459B1 (en) 1999-03-31 1999-03-31 Method and apparatus for down conversion of video data

Publications (2)

Publication Number Publication Date
WO2000059205A2 true WO2000059205A2 (en) 2000-10-05
WO2000059205A3 WO2000059205A3 (en) 2003-10-23

Family

ID=23087716

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/008685 WO2000059205A2 (en) 1999-03-31 2000-03-30 Method and apparatus for down conversion of video data

Country Status (7)

Country Link
US (1) US6353459B1 (en)
EP (1) EP1374553B1 (en)
JP (1) JP4712195B2 (en)
AT (1) ATE431674T1 (en)
AU (1) AU4061600A (en)
DE (1) DE60042219D1 (en)
WO (1) WO2000059205A2 (en)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6813251B1 (en) 1999-07-27 2004-11-02 Intel Corporation Split Transaction protocol for a bus system
KR100311480B1 (en) * 1999-10-12 2001-10-18 구자홍 Apparatus for conversing image format
US6724948B1 (en) * 1999-12-27 2004-04-20 Intel Corporation Scaling images for display
US20020175991A1 (en) * 2001-02-14 2002-11-28 Anystream, Inc. GPI trigger over TCP/IP for video acquisition
US20040117427A1 (en) * 2001-03-16 2004-06-17 Anystream, Inc. System and method for distributing streaming media
US7009655B2 (en) * 2002-07-23 2006-03-07 Mediostream, Inc. Method and system for direct recording of video information onto a disk medium
US6747630B2 (en) 2002-07-31 2004-06-08 Texas Instruments Incorporated Method to up-sample frequency rich images without significant loss of image sharpness
US7852405B1 (en) * 2003-06-27 2010-12-14 Zoran Corporation Method and apparatus for high definition capture
KR100574038B1 (en) * 2004-01-13 2006-04-26 삼성전자주식회사 Video muting device for digital video signal and a method muting thereof
TWI249359B (en) * 2004-12-22 2006-02-11 Realtek Semiconductor Corp Method and apparatus for simultaneous progressive and interlaced display
WO2007034372A2 (en) * 2005-09-20 2007-03-29 Nxp B.V. Apparatus and method for frame rate preserving re-sampling or re-formatting of a video stream
US20100226437A1 (en) * 2009-03-06 2010-09-09 Sony Corporation, A Japanese Corporation Reduced-resolution decoding of avc bit streams for transcoding or display at lower resolution
JP7350620B2 (en) 2019-10-28 2023-09-26 アルパイン株式会社 Video converter and display device with touch panel

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5327235A (en) * 1992-02-17 1994-07-05 Sony United Kingdom Limited Video conversions of video signal formats
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

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4519041A (en) 1982-05-03 1985-05-21 Honeywell Inc. Real time automated inspection
US4835532A (en) 1982-07-30 1989-05-30 Honeywell Inc. Nonaliasing real-time spatial transform image processing system
US4645459A (en) 1982-07-30 1987-02-24 Honeywell Inc. Computer generated synthesized imagery
US5373375A (en) * 1990-12-21 1994-12-13 Eastman Kodak Company Metric conversion mechanism for digital images in a hierarchical, multi-resolution, multi-use environment
KR950012664B1 (en) * 1993-08-18 1995-10-19 엘지전자주식회사 Hdtv receiver having 1050line interlaced scanning display format
JPH0767141A (en) * 1993-08-23 1995-03-10 Mitsubishi Electric Corp Muse-ntsc converter
JPH07177476A (en) * 1993-10-28 1995-07-14 Matsushita Electric Ind Co Ltd Video signal processing unit
US6870886B2 (en) * 1993-12-15 2005-03-22 Koninklijke Philips Electronics N.V. Method and apparatus for transcoding a digitally compressed high definition television bitstream to a standard definition television bitstream
GB9401897D0 (en) * 1994-02-01 1994-03-30 Snell & Wilcox Ltd Video processing
US5587742A (en) * 1995-08-25 1996-12-24 Panasonic Technologies, Inc. Flexible parallel processing architecture for video resizing
GB2312118B (en) * 1996-04-11 2000-03-01 Sony Uk Ltd Dual standard video signal processor
US5835636A (en) * 1996-05-28 1998-11-10 Lsi Logic Corporation Method and apparatus for reducing the memory required for decoding bidirectionally predictive-coded frames during pull-down
JPH1075429A (en) * 1996-08-30 1998-03-17 Sega Enterp Ltd Video signal converter and video signal conversion method
JP3953561B2 (en) * 1996-10-15 2007-08-08 株式会社日立製作所 Image signal format conversion signal processing method and circuit
US6177922B1 (en) * 1997-04-15 2001-01-23 Genesis Microship, Inc. Multi-scan video timing generator for format conversion
GB2325105A (en) * 1997-05-07 1998-11-11 Umax Data Systems Inc Converting and scaling non-interlaced VGA signals to interlaced TV signals
US5905536A (en) * 1997-06-05 1999-05-18 Focus Enhancements, Inc. Video signal converter utilizing a subcarrier-based encoder
US5963262A (en) * 1997-06-30 1999-10-05 Cirrus Logic, Inc. System and method for scaling images and reducing flicker in interlaced television images converted from non-interlaced computer graphics data
KR100435257B1 (en) * 1997-08-07 2004-07-16 삼성전자주식회사 Image format converting device and method in video signal processing system, particularly concerned with obtaining a high-quality converted image
US6259479B1 (en) * 1997-09-17 2001-07-10 Sony Corporation Letterbox filter apparatus and method
US6118486A (en) * 1997-09-26 2000-09-12 Sarnoff Corporation Synchronized multiple format video processing method and apparatus

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5327235A (en) * 1992-02-17 1994-07-05 Sony United Kingdom Limited Video conversions of video signal formats
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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP1374553A2 *

Also Published As

Publication number Publication date
WO2000059205A3 (en) 2003-10-23
DE60042219D1 (en) 2009-06-25
EP1374553A2 (en) 2004-01-02
JP2003536285A (en) 2003-12-02
EP1374553A4 (en) 2004-03-17
EP1374553B1 (en) 2009-05-13
ATE431674T1 (en) 2009-05-15
JP4712195B2 (en) 2011-06-29
US6353459B1 (en) 2002-03-05
AU4061600A (en) 2000-10-16

Similar Documents

Publication Publication Date Title
US6317165B1 (en) System and method for selective capture of video frames
AU755005B2 (en) Receiver for simultaneously displaying signals having different display formats and/or different frame rates and method thereof
US5633687A (en) Method and system for providing an interlaced image on an display
US6670996B2 (en) Apparatus and method for display of progressive and interland video content
US20020196853A1 (en) Reduced resolution video decompression
JPH09307861A (en) Signal processing method and signal process
KR100246088B1 (en) The conversion device of pixel number
US7880808B2 (en) Video signal processing apparatus to generate both progressive and interlace video signals
US20060012714A1 (en) Dual-scaler architecture for reducing video processing requirements
EP1374553B1 (en) Method and apparatus for down conversion of video data
US7411617B2 (en) Image processing apparatus, image processing method, recording medium, and program
JPH11220701A (en) Scanning line conversion device and flicker removing device
KR100912560B1 (en) Television reception apparatus
US6243140B1 (en) Methods and apparatus for reducing the amount of buffer memory required for decoding MPEG data and for performing scan conversion
US20070122045A1 (en) System for scaling a picture unit from a first video resolution format to a second video resolution format
Li et al. A flexible display module for DVD and set-top box applications
US7345709B2 (en) Method and apparatus for displaying component video signals
JP4515607B2 (en) Memory management method and buffering system in progressive scan video signal processing of digital TV receiver
EP1848203B1 (en) Method and system for video image aspect ratio conversion
JP3115013B2 (en) Image display device
Kinugasa et al. A video pre/post-processing LSI for video capture
US9082199B1 (en) Video processing architecture
JP3702469B2 (en) Signal processing apparatus and color television camera
JP3142708B2 (en) Image display device
JP2001268527A (en) Picture signal processor

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

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

Ref country code: JP

Ref document number: 2000 608591

Kind code of ref document: A

Format of ref document f/p: F

WWE Wipo information: entry into national phase

Ref document number: 2000920015

Country of ref document: EP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

WWP Wipo information: published in national office

Ref document number: 2000920015

Country of ref document: EP