WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Digital video compression system utilizing vector adaptive transform    
United States Patent5367629   
Link to this pagehttp://www.wikipatents.com/5367629.html
Inventor(s)Chu; Frank J. (San Jose, CA); Yeh; C. Lung (Saratoga, CA)
AbstractA video compression system comprises a pre-processing section, an encoder, and a post-processing section. The pre-processing section employs a median decimation filter which combines median filtering and decimation process. The preprocessing section also employs adaptive temporal filtering and content adaptive noise reduction filtering to provide images with proper smoothness and sharpness to match the encoder characteristics. The encoder employs a two pass look-ahead allocation rate buffer control scheme where the numbers of bits allocated and subsequently generated for each block may differ. In the first pass, the means square error for each block is estimated to determine the number of bits assigned to each block in a frame, In the second pass, the degree of compression is controlled as a function of the total number of bits generated for all the preceding blocks and the sum of the bits allocated to such preceding blocks. The DCT coefficients are vector coded by scanning the coefficients using three different scan paths, and the one providing the most compact path is chosen. Each scan vector is divided into eight zones and coded using variable length coding. An all vector module is employed to take advantage of the low rate coding. Background information is employed in addition to the previous frame for prediction to achieve better coding gain. The post-processing section filters block boundaries to remove blocking artifacts. Depending on the image characteristic (average quantization applied), different kinds of filtering is applied to enhance the images.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5367629
Digital video compression system utilizing vector adaptive transform - US Patent 5367629 Drawing
Digital video compression system utilizing vector adaptive transform
Inventor     Chu; Frank J. (San Jose, CA); Yeh; C. Lung (Saratoga, CA)
Owner/Assignee     ShareVision Technology, Inc. (San Jose, CA)
Patent assignment
All assignments
Publication Date     November 22, 1994
Application Number     07/993,039
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     December 18, 1992
US Classification     382/253 375/240.12 375/240.18 382/245 382/250 382/251
Int'l Classification     G06F 015/62
Examiner     Richardson; Robert L.
Assistant Examiner    
Attorney/Law Firm     Majestic, Parsons, Siebert & Hsue
Address
Parent Case    
Priority Data    
USPTO Field of Search     358/426 358/133 358/433 358/470 358/432 358/427 358/160 358/166 345/189 345/202 395/162 395/163 395/164 395/165 395/166 382/56 348/384 348/403 348/405 348/406 348/409 348/415
Patent Tags     digital video compression utilizing vector adaptive transform
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5241372
Ohba
348/578
Aug,1993

[0 after 0 votes]
5227878
Puri
375/240.15
Jul,1993

[0 after 0 votes]
5164980
Bush
348/14.13
Nov,1992

[0 after 0 votes]
5005976
Tamm
356/312
Apr,1991

[0 after 0 votes]
4962521
Komatsu
348/14.14
Oct,1990

[0 after 0 votes]
4955048
Iwamura
348/14.13
Sep,1990

[0 after 0 votes]
4907276
Aldersberg
704/222
Mar,1990

[0 after 0 votes]
4821119
Gharavi
375/240.16
Apr,1989

[0 after 0 votes]
4704628
Chen
348/400.1
Nov,1987

[0 after 0 votes]
4698672
Chen
375/240.12
Oct,1987

[0 after 0 votes]
4302775
Widergren
375/240.06
Nov,1981

[0 after 0 votes]
4394774
Widergren
382/250
Dec,1969

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. A method for encoding frames of digitized video information, wherein the frames are divided into blocks, and wherein numbers of bits available for encoding video information change over time so that the number of bits available for encoding a frame may differ from the number of bits available for encoding a subsequent frame, said method comprising:

performing a spatial domain to transform domain transformation of video information related to each block of a frame to obtain a corresponding block of transform coefficients;

ascertaining the number of bits available for encoding said frame;

allocating a number of bits to the encoding of each block of transform coefficients for all the blocks in said frame; and

quantizing and coding each block of transform coefficients to generate variable length coding bits for each block, wherein the number of bits generated for each block is a function of the number of bits allocated to the encoding of a different block.

2. The method of claim 1, wherein said blocks of the frame are encoded sequentially in a time sequence, wherein the number of bits generated in the quantizing and coding of a block of transform coefficients is a function of the number of bits allocated to the encoding of a subsequent block in the time sequence in a look-ahead bit allocation scheme.

3. The method of claim 2, said method further comprising:

prior to quantizing and coding a block of transform coefficients, determining the sum total number of bits generated in quantizing and coding all blocks of transform coefficients that precede such block in the time sequence, if any;

wherein said step of quantizing such block of transform coefficients uses information regarding the sum total number of bits allocated to all the blocks of the frame that have been quantized and coded up to such quantizing step, and the sum total number of bits generated in quantizing and coding all the preceding blocks of transform coefficients, to control at such quantizing step the number of variable length coding bits generated for such block.

4. An apparatus for encoding frames of digitized video information, wherein the frames are divided into blocks, and wherein numbers of bits available for encoding video information change over time so that the number of bits available for encoding a frame may differ from the number of bits available for encoding a subsequent frame, said apparatus comprising:

means for performing a spatial domain to transform domain transformation of video information related to each block of a frame to obtain a corresponding block of transform coefficients;

means for ascertaining the number of bits available for encoding said frame;

means for allocating a number of bits to the encoding of each block of transform coefficients for all the blocks in said frame; and

means for quantizing and coding each block of transform coefficients to generate variable length coding bits for each block, wherein the number of bits generated is a function of the number of bits allocated to the encoding of a different block of transform coefficients.

5. A method for encoding frames of pixel values of video information, wherein the frames are divided into blocks, said method comprising:

performing a spatial domain to transform domain transformation of video information related to each block of a frame to obtain a corresponding block of transform coefficients;

quantizing and coding each block of transform coefficients to generate variable length coding bits for each block, wherein the quantizing step is performed by reference to one index within a set of numerical indices indicating number of bits resulting from the quantizing step, and wherein said indices have values that vary directly with the number of bits resulting from the quantizing step;

computing an average value of the indices by reference to which the blocks of a frame have been quantized and coded in the quantizing and coding step;

comparing said average value to predetermined range values; and

multiplying each pixel value by a selected matrix element when the average value is within predetermined range values.

6. A method for encoding frames of digitized video information, wherein the frames are divided into blocks, said method comprising:

performing a spatial domain to transform domain transformation of video information related to each block of a frame to obtain a corresponding block of transform coefficients;

quantizing and coding each block of transform coefficients to generate variable length coding bits for each block, wherein said coding step includes:

first scanning at least some of the coefficients of each block along at least two different paths and counting the number of nonzero scanned coefficients along each path to obtain at least two numbers;

comparing the numbers obtained to find the largest of the numbers; and

scanning the coefficients of each block along the path that results in the largest number before coding each block of transform coefficients.

7. The method of claim 6, further comprising:

dividing each block into two or more sets of zones each corresponding to a scan path, wherein said first scanning step scans only the coefficients in one of the zones along said different paths.

8. A method for encoding frames of digitized video information, wherein the frames are divided into blocks, said method comprising:

performing a spatial domain to transform domain transformation of video information related to each block of a frame to obtain a corresponding block of transform coefficients;

quantizing and coding each block of transform coefficients to generate variable length coding bits for each block;

dividing each block into two or more sets of zones; and

forming a scan vector of at least one zone and variable length coding of coefficients of said at least one zone.

9. The method of claim 8, further comprising;

detecting whether the remaining coefficients are zero after said forming step; and

sending end of block when the remaining coefficients are detected to be zero after said forming step.

10. The method of claim 8, wherein said forming step also detects whether the vector formed contains all 1's or 0's.

11. A method for encoding frames of video information, said frames divided into blocks, wherein the frames are encoded sequentially in a time sequence, so that each block in a frame has a corresponding block in a different frame, said method comprising:

performing a spatial domain to transform domain transformation of video information related to each block of a frame to obtain a corresponding block of transform coefficients;

quantizing and coding each block of transform coefficients to generate variable length coding bits for each block;

reconstructing each block from its variable length coding bits;

storing said reconstructed block;

storing a predetermined frame of video information as the background frame, said frame containing a background block corresponding to said reconstructed block;

comparing a current block to be quantized and coded to said reconstructed block and to the background block to determine a prediction block; and

using the prediction block to derive said video information related to each block that is transformed in said performing step.
 Description Submit all comments and votes
 


RELATED APPLICATION

This application is related to the application entitled "SYSTEM AND METHOD FOR AUDIO, VIDEO AND DATA CONFERENCING," Ser. No. 923,329 filed Jul. 31, 1992, hereinafter referred to as the "Related Application," which is incorporated herein in its entirety by reference.

BACKGROUND OF THE INVENTION

This invention relates in general to encoding and decoding of video information, and in particular, to a video compression system employing vector adaptive transform techniques that enables full-duplex transmission of video over ordinary analog telephone (POTS) lines.

Presently, commercially available modems readily allow a maximum of 14.4 Kbps (Kilobits per second) of data to be transmitted over a regular telephone (POTS) line. Existing video compression systems employed for encoding and transmitting video over digital channels (such as T1 or ISDN) require much higher bandwidth (i.e., 56 Kbps or higher). Therefore, conventional compression systems cannot be used for encoding and transmitting video over POTS lines. For this reason, dedicated and special channels must be used for existing video compression systems. The use of special and dedicated channels is expensive. It is therefore desirable to provide an improved video compression system for encoding and transmitting video information which can transmit full-duplex full-motion color video information over ordinary telephone lines.

In the Related Application, a system and method for audio, video and data conferencing is proposed which enables audio, video and computer data to be transmitted over a POTS line. In such system, bandwidth allocation for each type of data is dynamically and adaptively dependent on the amount of data present, pre-assigned priority and predetermined bandwidth requirements. In the preferred embodiment of the Related Application, audio, computer and video data conferencing between interlinked computer systems favor assigning top priority to audio followed by computer and then video data. Concurrent audio, computer and video data conferencing can be communicated over a regular POTS link. The video compression system and method of this invention will work in the context of the concept of the Related Application for transmitting video data over a POTS line.

In many of the existing video compression systems, a fixed bandwidth is allocated to video information. One of the key concerns in such existing systems is to apply video compression so that the video information transmitted can fit within such fixed bandwidth. A spatial domain to transform domain transformation is first performed and the transform video information is stored in a rate buffer in such video compression system. In order to ensure that appropriate video compression is applied, such system employs rate buffer capacity control feedback to control the compression so that the data is transferred out from the rate buffer at a synchronous rate.

In the preferred embodiment of the Related Application, however, video information is assigned the lowest priority so that the bandwidth allocated to video information may vary from the entire bandwidth available to none at all. Therefore, the above-described conventional video compression system cannot be used in the context of this system described in the Related Application. Therefore, it is desirable to provide an improved video compression system that can accommodate variable bandwidth allocated to video.

SUMMARY OF THE INVENTION

As indicated above, in the preferred embodiment of the Related Application, audio information has the highest priority, computer data the second priority, and video information the last priority. Therefore, the transmission of video information can be stopped completely when necessary. Such system design calls for video compression which is different from the above-described conventional video compression scheme. The video compression system of this invention employs look-ahead bit allocation rate buffer control where the data is transferred out of the rate buffer at an asynchronous rate so that the numbers of bits allocated and subsequently generated for coding a block may be and are usually different from those for coding another block.

The video compression system of this invention comprises three sections. The first preprocessing section employs a median decimation filter which combines median filtering and a decimation process. An adaptive temporal filter and a content adaptive noise reduction filter are employed to provide images with proper smoothness and sharpness to match the coder/decoder ("codec") characteristics.

The second section employs a two pass look-ahead bit allocation rate buffer control scheme. Since the bandwidth available may differ from frame to frame, the video compression system of this application first checks the number of bits available for a particular frame, and allocates a number of bits to the encoding of video information in each block within the frame in the first pass. In the second pass, the actual number of bits generated for each block is made to depend on the number of bits allocated to the encoding of one or more blocks different from the one being encoded, such as the number of bits allocated to the subsequent encoding of another block in a look-ahead scheme. In the preferred embodiment, the number of bits generated for each block is made to depend on the difference between the number of bits allocated to all of the preceding blocks of the same frame and the number of bits actually generated for all such blocks. This system also makes the best use of the bandwidth available so that satisfactory video images may be encoded and transmitted despite the limited bandwidth of the POTS line.

In the preferred embodiment, vector coding is employed which takes advantage of low-bit rate coding by fully exploiting their characteristics of quantized discrete cosine transform ("DCT") coefficients. In such embodiment, first quantized DCT coefficients are scanned using three different modules, and the one providing the most compact path is chosen. Then each scan vector is divided into eight zones and variable length coding provides a much better way than conventional straight run-length coding. Finally, in such embodiment, the all one vector module takes advantage of the low-rate coding. The second section also employs background and foreground estimation that provides much better prediction in the low bit rate environment. In addition to the motion estimation prediction provided by the H.261 standard, additional information for prediction is provided to achieve better coding gain.

The third section is a post-processing filter which reduces artifacts and enhances images. In the preferred embodiment, it first only applies filtering to the block boundary to remove blocking artifacts. Then, subject to the image characteristic (the average quantization index), different kinds of filtering are applied to enhance the images.

One aspect of the invention is directed towards a method for encoding a time sequence of frames of digitized video information, where the frames are divided into blocks and where number of bits available for encoding video information change over time so that the number of bits available for encoding a frame may differ from the number of bits available for encoding a subsequent frame in the time sequence. The method comprises performing a spatial domain to transform domain transformation of video information related to each block of a frame to obtain a corresponding block of transform coefficients. The method also includes ascertaining the number of bits available for encoding the frame, allocating a number of bits to the encoding of each block of transform coefficients for all the blocks in said frame, and quantizing and coding each block of transform coefficients to generate variable length coding bits for each block. The number of bits generated for each block is a function of the number of bits allocated to the encoding of a different block. In the preferred method, prior to quantizing and coding a block of transform coefficients, the number of bits generated in quantizing and coding all of the blocks of transform coefficients that precedes such block in the time sequence is first determined. The step of quantizing such block of transform coefficients then uses information regarding the sum total number of bits allocated to all the blocks of the frame that have been quantized and coded up to such quantizing step, and the number of bits generated in quantizing and coding all of the preceding blocks of transform coefficients. These two quantities are used at such quantizing step to generate the number of variable length coding bits for such block.

To further improve the efficiency of coding and the quality of the video transmitted, a number of coding techniques is used. Another aspect of the invention is directed towards a method for encoding frames of digitized video information, where the frames are divided into blocks. The method comprises performing a spatial domain to transform domain transformation of video information related to each block of a frame to obtain a corresponding block of transform coefficients, and quantizing and coding each block of transform coefficients to generate variable length coding bits for each block. The coding step includes first scanning at least some of the coefficients of each block along at least two different paths and counting the number of nonzero coefficients along each path to obtain at least two numbers. The numbers are then compared to obtain the largest of the numbers and the coefficients of each block are then scanned along the path that results in the largest number before each block is coded. In the preferred embodiment, three scan paths are used: horizontal, zigzag and vertical scan paths.

Yet another aspect of the invention concerning coding is directed towards a method for encoding frames of digitized video information, where the frames are divided into blocks. The method includes performing a spatial domain to transform domain transformation of video information related to each block of a frame to obtain a corresponding block of transform coefficients, and quantizing and coding each block of transform coefficients to generate variable length coding bits for each block. Each block is then divided into two or more different sets of zones. A scan vector is then formed from coefficients in at least one zone and variable length coding is then performed on the coefficients of said at least one zone.

To improve the smoothness and sharpness of the video images, pre-processing is performed. Thus, another aspect of the invention is directed towards a method for decimating and filtering video information in a two-dimensional array of pixel values forming a frame, said array being arranged in horizontal rows and vertical columns. The method comprises multiplying each pixel value in a group of three adjacent pixel values in each row or column of said array by a predetermined factor to obtain three products. The three products are then summed to obtain a new pixel value to replace the group of three adjacent pixel values, thereby filtering and decimating the frame by three in the horizontal or vertical direction. In the preferred embodiment, the median one of the three pixel values is multiplied by a factor that is about twice that for multiplying the other two pixel values.

Post-processing is also performed to further improve the quality of the video. Another aspect of the invention is directed towards a method for filtering a frame of video information, where the frame includes a two-dimensional array of pixel values. The array is grouped in blocks of pixel values, each block having a boundary and boundary pixel values at its boundary, said boundary pixel values being adjacent to the boundary pixel values of adjacent blocks in the array. The method comprises detecting at least one boundary pixel value and at least two pixel values that are adjacent to such pixel value and that are not boundary pixel values of the same block, said each boundary pixel value and said at least two pixel values forming a group. Such boundary pixel value and at least two pixel values that are adjacent to such boundary pixel value and that are not boundary pixel values of the same block as such boundary pixel value are multiplied by predetermined factors to obtain products. The products are then summed to obtain a new pixel value corresponding to such boundary pixel value and said at least one boundary pixel value is replaced by its corresponding new pixel value.

Yet another aspect of the invention concerning post-processing is directed towards a method for encoding frames of pixel values of video information, where the frames are divided into blocks. The method comprises performing a spatial domain to transform domain transformation of video information related to each block of a frame to obtain a corresponding block of transform coefficients. Each block of transformed coefficients is then quantized and coded to generate variable length coding bits for each block. The quantizing step is performed by reference to one index within a set of numerical indices indicating number of bits resulting from the quantizing step. The indices have values that vary directly with the number of bits resulting from the quantizing step. The method further comprises computing an average value of the indices by reference to which the blocks of a frame have been quantized and coded in the quantizing and coding step, comparing said average value to predetermined range values and multiplying each pixel value by a selected matrix element when the average value is within predetermined range values.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of the overall video encoding and decoding system.

FIG. 2 is a block diagram of the pre-processing section of FIG. 1.

FIG. 3 is a block diagram of a median decimation filter in the pre-processor section of FIG. 2.

FIG. 4 is a schematic circuit diagram of a horizontal decimation filter in the pre-processing section of FIG. 2.

FIG. 5 is a block diagram of an adaptive temporal filter in the pre-processing section of FIG. 2.

FIG. 6 is a block diagram of a content adaptive noise-reduction filter in the pre-processing section of FIG. 2.

FIG. 7 is a block diagram of an encoder to illustrate the invention.

FIG. 8 is a block diagram of an inner spatial and temporal filter in the encoder of FIG. 7.

FIG. 9 is a block diagram to illustrate the vector adaptive transform quantization (VATQ) function of the encoder of FIG. 7.

FIG. 10A is a block diagram of the frequency weighted quantization circuit of FIG. 9.

FIG. 10B is a graphical illustration of a matrix index transfer function used in the quantization circuit of FIG. 10A.

FIG. 11A is a block diagram of a system for determining coefficient scan path in the system of FIG. 9.

FIGS. 11B, 11C, 11D are schematic views of an 8 by 8 block of DCT coefficients to illustrate three different scan paths.

FIG. 12 is a functional block diagram of a circuit for implementing the system of FIG. 11A.

FIG. 13 is a functional block diagram of a circuit for implementing the vector mapping function of FIG. 9.

FIG. 14 is a functional block diagram of a system for implementing the inverse vector mapping function of FIG. 7.

FIG. 15 is a block diagram of a circuit for implementing the background/foreground and motion estimation function of FIG. 7.

FIG. 16 is a functional block diagram of a decoder to illustrate one implementation of the invention in FIG. 1.

FIG. 17 is a functional block diagram of a post-processing system to illustrate the invention.

FIG. 18 is a schematic illustration of a portion of a video frame to illustrate the operation of a horizontal block boundary filter of FIG. 17.

FIG. 19 is a schematic illustration of a portion of a video frame to illustrate the operation of a vertical block boundary filter of FIG. 17.

FIG. 20 is a block diagram of a system illustrating the adaptive edge enhancement function of FIG. 17.

FIG. 21 illustrates two adaptive edge enhancement matrices that may be used in the adaptive edge enhancement function of FIG. 20.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

FIG. 1 is a block diagram illustrating an overall video system suitable for compressing the video information, transmitting the compressed video information over a communication link such as a POTS line, and then expanding the compressed information in the decoder. Typically, the video information originates from a source such as a video camera (not shown) and is pre-processed in pre-processing module 102, which filters, smooths, and enhances the video sequences to prepare images of proper size and characteristics to match the encoder. The pre-processed video sequences are stored in encode reference memory 104.

The pre-processed video sequences are then further processed by the encoder 106 which removes most of the redundance and compresses the video for transmission over a modem through a communication link such as a POTS line 108 to a decoder 110. The decoder performs the inverse operation of the encoder to reconstruct the image from a compressed bit stream and stores the decoded image from a compressed bit stream and stores the decoded image in decode reference memory 112. The decoded image is then processed by the post-processing module 114 which removes compression artifacts and enhances the image. The image is then ready to be displayed by a display device. Both the encode and decode reference memories 104, 112 store the current and previous video frames for encoding and decoding.

FIG. 2 is a functional block diagram of system for implementing a pre-processing function of FIG. 1. As shown in FIG. 2, the video frames are first filtered and decimated by horizontal median decimation filter 122, further decimated by horizontal decimation filter 124, and filtered by adaptive temporal filter 126 and by content adaptive noise-reduction filter 130. Both the adaptive temporal filter and the content adaptive noise-reduction filter require information from previous frames which are stored in frame store 128. The output of filter 130 is then filtered by windowed background noise-reduction filter 132, and further decimated by vertical decimation filter 134 and stored in encode reference memory 104.

FIG. 3 is a block diagram of one embodiment of the median decimation filter of FIG. 2. In the description below, it is assumed that the video frame input has 640 columns and 240 rows of pixels, although obviously the invention is not limited to such frame size. The horizontal median decimation filter decimates the video frame by three horizontally to reduce the frame size to 213 columns by 240 rows approximately. Filter 122 decimates the video frame horizontally using a 1-2-1 filter. In operation, if the video frames are in the raster format, three pixel values on the same row are shifted through the three delay elements 152, 154, 156 in three clock cycles. The outputs of the three delay elements are applied to a logic circuit 160 to find, from the three pixel values at the outputs of delay elements 152, 154, 156, the pixel value that is the median value (less than one pixel value but greater than the other pixel value). Logic circuit 160 may be implemented using comparators in a manner known to those skilled in the art.

As shown in FIG. 3, the median value output from block 160 is multiplied by two by multiplier 162 and the product is summed with the outputs of delay elements 152, 156 by adder 164 and the sum is shifted two places to the right to divide the sum by four in shifter 166 to provide an output 168. Mathematically, the output pixel O(i) at 168 can be computed in equation (1) as:

O(i)=[I(i-1)+2*median(I(i-1), I(i), I(i+1))+I(i+1)]/4 (1)

where i is the pixel index, I(i-1), I(i), I(i+1) are the three input pixels, and the function median (x, y, z) returns the median value of x, y, z.

Output 168 is clocked at a clock rate which is one third of the raster clock for the video frame at the input of filter 122. FIG. 4 is a schematic circuit diagram illustrating a conventional horizontal decimation filter 124 used in the pre-processing circuit of FIG. 2. Instead of horizontal decimation as in filter 122, it is also possible to implement a similar vertical decimation. If the video is processed in the raster format, two line buffers will be needed for storing two prior rows of pixel values to implement vertical decimation.

FIG. 5 is a block diagram of a circuit illustrating the adaptive temporal filter 126 of FIG. 2. Filter 126 smooths out rapid transitions between the frames by applying infinite impulse response filtering in the temporal dimension. The coefficients of this filter are fixed and derived from experimental results. The constants Tf-Factor, Tf-Thresh-Lo and Tf-Thresh-Hi are derived from experiments and have the following values in the preferred embodiment: 0.8, 3 and 8 respectively.

In the preferred embodiment, the pre-processing section described herein is implemented in a pipeline design where the video information is processed on a frame-by-frame basis. The pixels in each frame are labeled sequentially by a pixel index i. Thus, the ith pixel in the new or current frame, NF(i), and the ith pixel in the old frame, OFS(i), both refer to the same pixel location in the new and old frames. Filter 126 derives the temporal difference of the ith pixel, TD(i), as given by NF(i)-OFS(i). In order to filter such temporal difference, it is multiplied by a factor to obtain a low-pass filtered signal LPF(i) given by TD(i)*TF-Factor where Tf-Factor is the multiplier.

Thus, in reference to FIG. 5, adder 180 derives the temporal difference and applies this quantity to multiplexer 182. The temporal difference is multiplied by Tf-Factor by multiplier 184 to obtain the low-pass filtered signal LPF(i) and the product also applied to multiplexer 182. The temporal difference and the low-pass filtered signal LPF(i) are summed by adder 186 and divided by two by means of shifter 188, and the output applied also to multiplexer 182. One of the three inputs to multiplexer 182 is selected as the output, Delta, in accordance with a command from decision block 190 which may be implemented in ASIC or other programmable logic circuits such as programmable array logic (PAL). Absolute value circuit 192 derives the absolute value of the temporal difference, ABSTD(i), where such absolute value is also applied as an output of filter 126 to the decision block 210 of filter 130 of FIG. 6. The decision block 190 derives a command signal to be sent to multiplexer 182 with the aid of comparators 194, 196 in accordance with the following equations (2): ##EQU1## In equations 2 above, the two thresholds Tf-Thresh-Lo and Tf-Thresh-Hi are constants applied to one of the inputs of comparators 194, 196 as shown in FIG. 5.

The output of filter 126 is obtained by adding Delta to the old frame pixel OFS(i) using adder 198. This output is then supplied (not shown) to frame store 128 to replace NF(i) as the new frame for the next stage in the pre-processing system. After the entire new or current frame has been processed by the pre-processing section of FIG. 2, the new frame then replaces the old frame as the old frame during the processing of the next frame.

Content adaptive noise-reduction filter 130 filters the new frame output from filter 126 in a manner that smooths out high frequency spatial noise in the image by examining the high frequency difference between each pixel and its low-pass filtered results. It also smooths out rapid transition between frames by applying a spatial filter to each pixel that differs from the same pixel of the last frame by using a non-linear transfer function. The absolute value of the temporal difference ABSTD(i) is supplied to filter 130 by the temporal filter 126.

A spatial filter 200 is employed. Since the frame is still processed in the raster format, the pixel immediately adjacent to pixel i in the row of pixels scanned before the row for pixel i has the index (i-width), where width is the number of pixels in a row of the frame. Similarly, the immediately adjacent pixel in the subsequent row to the row containing the i pixel is indexed (i+width). Therefore, when the spatial filter 200 is applied to pixel i, the low-pass filtered signal SLPF(i) is computed as:

SLPF(i)=[NF(i-width-1)+2*NF(i-width)+NF(i-width+1)+2*NF(i-1)+4*NF(i)+2*NF(i +1)+NF(i+width-1)+2*NF(i+width)+NF(i+width+1)]/16 (3)

Let the spatial difference ABSSD(i)=ABS(NF(i)-SLPF(i)). The output of the Content Adaptive Noise-Reduction Filter, Output(i), is based on the following decision logic: ##EQU2## The values Hi-T-Threshold, Hi-S-Threshold, Lo-T-Threshold and Lo-S-Threshold are constants derived from experiments and have the following values in the preferred embodiment: 10, 30, 3, 15.

In equations 4 above, spatial filter 200 may be implemented in a manner known to those skilled in the art employing at least two line buffers for storing two additional rows of pixel values for deriving the low-pass filtered signal SLPF(i) from three lines or rows of inputs in accordance with equation 3 above. Adder 202 and absolute value circuit 204 cooperate to derive the spatial difference ABSSD(i). Adder 206 and one bit shifter 208 cooperate to derive the average of the input and the low-pass filtered result indicated in equation 4 above. Decision block 210 implements equations 4 above to derive a command signal applied to multiplexer 212 which selects one of the three inputs to be its outputs. Decision block 210 may be implemented in ASIC such as field programmable gate arrays (FPGA) or other programmable logic circuits such as PAL.

The output of filter 130 is further processed by windowed background noise-reduction filter 132. This filter first segments the image into two regions. The user defined region can be any shape or size; it can cover the entire image or none of the image. For those pixel outside of the user defined region in the image, each pixel will be low-pass filtered by a spatial filter if the high-frequency energy y of that pixel is high.

The decisio