A single-chip video compression/decompression (video codec) chip is connected to receive a video input from a NTSC-compatible or PAL-compatible camera and a transmit channel. Video information from the camera or other video input source is compressed by the video codec and transmitted out in compressed form on a transmit channel. Concurrently, compressed video information is input to the video codec from a receive channel, decompressed and output to the monitor or other video output device, e.g., a television set. Only a separate single module of dynamic random access memory (DRAM) is needed to provide storage for incoming and outgoing video data, compressed bit streams and reconstructed pictures for both compression and decompression procedures. The compression of video information is by spatial decorrelation of the intraframe information, and temporal decorrelation of the interframe information. The communication channel bit rate is further... |
Citations|
| US5367629 | Dec 18, 1992 | Nov 22, 1994 | ShareVision Technology, Inc. | Digital video compression system utilizing vector adaptive transform | | US5379351 | Feb 19, 1992 | Jan 3, 1995 | Integrated Information Technology, Inc. | Video compression/decompression processing and processors | | US5457780 | Jul 6, 1992 | Oct 10, 1995 | | System for producing a video-instruction set utilizing a real-time frame differential bit map and microblock subimages | | US5541640 | Apr 19, 1995 | Jul 30, 1996 | | Videophone for simultaneous audio and video communication via a standard telephone line | | US5543939 | Sep 2, 1994 | Aug 6, 1996 | Massachusetts Institute of Technology | Video telephone systems |
Referenced by|
| US5995513 | Sep 8, 1995 | Nov 30, 1999 | SGS-Thomson Microelectronics S.A. | Multitask processing system | | US6035349 | Dec 9, 1997 | Mar 7, 2000 | Electrolnics and Telecommunications Research Institute | Structure of portable multimedia data input/output processor and method for driving the same | | US6040861 | Oct 10, 1997 | Mar 21, 2000 | International Business Machines Corporation | Adaptive real-time encoding of video sequence employing image statistics | | US6072548 | Jul 28, 1997 | Jun 6, 2000 | LSI Logic Corporation | Video decoder dynamic memory allocation system and method allowing variable decoded image size | | US6097757 | Jan 16, 1998 | Aug 1, 2000 | International Business Machines Corporation | Real-time variable bit rate encoding of video sequence employing statistics | | US6121998 | Jan 9, 1998 | Sep 19, 2000 | 8.times.8, Inc. | Apparatus and method for videocommunicating having programmable architecture permitting data revisions | | US6456335 | Oct 6, 1998 | Sep 24, 2002 | Fujitsu Limited | Multiple picture composing method and multiple picture composing apparatus | | US6539001 | Jul 16, 1998 | Mar 25, 2003 | NEC Corporation | Visual telephone apparatus and data compression multiplexing method therefor as well as recording medium on which data compression multiplexing control program is recorded | | US6738424 | Jul 3, 2000 | May 18, 2004 | ObjectVideo, Inc. | Scene model generation from video for use in video processing | | US6914908 | Oct 19, 1999 | Jul 5, 2005 | SGS-Thomson Microelectronics S.A. | Multitask processing system | | US7039817 | Jan 7, 2003 | May 2, 2006 | Sun Microsystems, Inc. | Method and apparatus for supplying power to a processor at a controlled voltage | | US7154948 | Jan 30, 2001 | Dec 26, 2006 | Samsung Electronics Co., Ltd. | Video codec system, method for processing data between system and host system, and encoding/decoding control method in the system | | US7158571 | Dec 11, 2001 | Jan 2, 2007 | Sony Corporation Sony Electronics Inc. | System and method for balancing video encoding tasks between multiple processors | | US7376185 | Dec 22, 2003 | May 20, 2008 | | Video encoding and video/audio/data multiplexing device | | US7376186 | Apr 9, 2003 | May 20, 2008 | Thomson Licensing | Motion estimation with weighting prediction | | US7477691 | Jan 22, 1999 | Jan 13, 2009 | Snell & Wilcox Limited | Video signal compression | | US7606427 | Dec 21, 2004 | Oct 20, 2009 | QUALCOMM Incorporated | Efficient rate control techniques for video encoding | | US7634148 | Dec 27, 2005 | Dec 15, 2009 | NTT DoCoMo, Inc. | Image signal transforming and inverse-transforming method and computer program product with pre-encoding filtering features | | US7672372 | Feb 24, 2003 | Mar 2, 2010 | Intel Corporation | Method and system for data management in a video decoder | | US7751480 | May 13, 2008 | Jul 6, 2010 | | Video encoding and video/audio/data multiplexing device | | US7769274 | May 6, 2005 | Aug 3, 2010 | MediaTek, Inc. | Video processing and optical recording using a shared memory | | US7778476 | Oct 21, 2005 | Aug 17, 2010 | Maxim Integrated Products, Inc. | System and method for transform coding randomization | | US7801383 | May 15, 2004 | Sep 21, 2010 | Microsoft Corporation | Embedded scalar quantizers with arbitrary dead-zone ratios | | US7903742 | Apr 9, 2003 | Mar 8, 2011 | Thomson Licensing | Adaptive weighting of reference pictures in video decoding | | US7974340 | Apr 7, 2006 | Jul 5, 2011 | Microsoft Corporation | Adaptive B-picture quantization control | | US7995649 | Apr 7, 2006 | Aug 9, 2011 | Microsoft Corporation | Quantization adjustment based on texture level | | US8059721 | Apr 7, 2006 | Nov 15, 2011 | Microsoft Corporation | Estimating sample-domain distortion in the transform domain with rounding compensation | | US8130828 | Apr 7, 2006 | Mar 6, 2012 | Microsoft Corporation | Adjusting quantization to preserve non-zero AC coefficients | | US8144785 | Oct 1, 2010 | Mar 27, 2012 | Thomson Licensing | Adaptive weighting of reference pictures in video decoding | | US8144786 | Oct 1, 2010 | Mar 27, 2012 | Thomson Licensing | Adaptive weighting of reference pictures in video decoding | | US8144787 | Oct 1, 2010 | Mar 27, 2012 | Thomson Licensing | Adaptive weighting of reference pictures in video decoding | | US8149924 | Oct 1, 2010 | Apr 3, 2012 | Thomson Licensing | Adaptive weighting of reference pictures in video decoding | | US8155208 | Oct 1, 2010 | Apr 10, 2012 | Thomson Licensing | Adaptive weighting of reference pictures in video decoding | | US8184694 | Feb 16, 2007 | May 22, 2012 | Microsoft Corporation | Harmonic quantizer scale | | US8189933 | Mar 31, 2008 | May 29, 2012 | Microsoft Corporation | Classifying and controlling encoding quality for textured, dark smooth and smooth video content | | US8238424 | Feb 9, 2007 | Aug 7, 2012 | Microsoft Corporation | Complexity-based adaptive preprocessing for multiple-pass video compression | | US8243797 | Mar 30, 2007 | Aug 14, 2012 | Microsoft Corporation | Regions of interest for quality adjustments |
Claims1. A video codec, comprising: - a single semiconductor chip providing for a video input connection from a camera and a video output connection to a monitor of decompressed data, and a transmit channel and a receive channel of compressed data;
- an interface connected to the chip for external connection to a separate frame memory dynamic random access memory (DRAM) and that provides for interim storage of incoming and outgoing video data; and
- a video compressor/decompressor disposed fully within the chip and connected to compress video information received from said video input connection for output on said transmit channel, and connected to decompress video information received from said receive channel for output on said video output connection;
- wherein, said compression of video information is by spatial de-correlation of intraframe information and temporal decorrelation of interframe information, and said transmit and receive channels have communication channel bit rates reduced by quantization and variable length coding.
2. The video codec of claim 1, wherein: - the video compressor/decompressor includes intraframe coding based on single frame information redundancy, with processing done on blocks of eight-by-eight pixels, and both the luminance and chrominance pixel blocks are transform coded by a discrete cosine transform that changes the pixels from spatial domain to frequency domain.
3. The video codec of claim 2, wherein: - the video compressor/decompressor includes processors for transform coefficients that are arranged in the order of increasing frequency to prepare for run-length coding, a quantizer with adjustable threshold used to increase the zero run to enhance the coding efficiency;
- wherein said threshold is determined by a stepsize which can only be changed every n-number of macroblocks; and
- wherein, each of a series of frames is reconstructed using an inverse quantization, inverse zigzag operation, inverse discrete cosine transform.
4. The video codec of claim 3, wherein: - the video compressor/decompressor includes an interframe compression process that exploits the high correlations of temporally adjacent frames, and motion estimation of two sequential frames with motion vectors that are then included in an encoded bit stream of said transmit and receive channels.
5. The video codec of claim 1, wherein: - the video compressor/decompressor includes a process for comparing the macroblocks for the current frame at a time "t" with the macroblocks of a previous frame "t-1", and a displacement vector within a defined search window that provides a minimum cost function, which can be as simple as an absolute difference, is the motion vector and is encoded by variable length coding;
- wherein, motion estimation is provided for luminance data only, and motion vectors for chrominance data is about one-half of that for luminance data, for a particular macroblock of four luminance blocks and two chrominance blocks, such that a frame at "t-1" is motion-compensated using newly-computed motion vectors for both luminance and chrominance, and a motion-compensated frame "t-1" passed through an optional loop filter, is compared with a current frame "t";
- wherein, the difference between a current frame "t" and a reconstructed frame "t-1" is discrete-cosine-transform encoded, processed for zigzag and quantizer, and decoded with the inverse functions, and the decoded differences are added to motion-compensation to form a reconstructed current frame that is used for a motion estimation of the next frame "t+1".
6. The video codec of claim 1, wherein: - the video compressor/decompressor includes decoding that is the opposite of encoding;
- wherein a bit stream received on said receive channel is variable-length coded, and the length of each code-word is determined, segmented and decoded;
- wherein, a frame start, a group-of-block start and a macroblock start are used for triggers wherein, intra-type macroblocks are decoded using inverse zigzag, inverse quantizer and inverse discrete cosine transform and sent out and stored in said frame memory DRAM;
- wherein, inter-type macroblocks include a decoded motion vector used for motion-compensation of a macroblock in a previous frame "t-1", and simultaneously the differences between "t" and "t-1" are decoded using inverse quantizer, zigzag and discrete cosine transform; and
- wherein, said decoded differences are added to a motion-compensated macroblock, to reconstruct a macroblock for a current frame "t" and stored in said frame memory DRAM for reconstructing a next frame "t+1".
7. The video codec of claim 1, further comprising: - a framing processor connected between the video compressor/decompressor and each of said transmit channel and receive channel;
- wherein the framing processor includes an encoder to generate a forward-error-correction code within an outgoing error-correction-framing pattern in a transmitted bit stream directed to said transmit channel, and further includes a decoder to relock timing when timing lock is lost for an incoming error-correction-framing pattern in a received bit stream from said receive channel.
8. A single-chip video codec for full-duplex communication of thirty frame per second video, comprising: - a single semiconductor integrated circuit (IC) with external connections provided for a dynamic random access memory (DRAM), a video source input, a video output, a transmit communications channel, a receive communications channel and a host buss for initialization and chip status communication;
- a memory controller fully disposed on the IC and having a connection to control an external memory module;
- resource sharing means fully disposed on the IC and connected to both an encoding bit stream and a decoding bit stream that flow through said external memory module for simultaneous video compression and decompression;
- said external memory module provides for segment storage of video compression and decompression frames, a transmit buffer and a receive buffer, and the memory controller includes means for user-programmable segment-storage sizes in said external memory module;
- a pipelined discrete cosine transform and quantization (DCTQ) means fully disposed on the IC and for producing one coefficient every two clock cycles in said video bitstreams and including matrix decomposition means for reducing a required number of multiplications and additions, wherein said DCTQ means performs both forward and inverse discrete cosine transform;
- motion-prediction means fully disposed on the IC and connected to said bitstreams and having an array of parallel-processing elements and multiport memories providing for full search of motion vectors, and means for accepting user-programmable weights input for motion estimation smoothing, wherein motion-compensated prediction is provided for both compression and decompression, for a type-inter or a type-intra compression decision, and for whether a loop filter should be on, and storage for a user-programmable bias;
- an on-chip microcomputer (CPU) fully disposed on the IC and for concurrent processing of said compression and decompression bitstreams with on-chip parameter busses for both address and data which allow addressing and parameter passing;
- direct communication channel connection means fully disposed on the IC and connected to said bitstreams and means for assigning different bit rates to said channels wherein spatial and temporal resolutions are automatically adjusted;
- host-programmable means in the DCTQ means for adaptive quantization and rate buffer control providing for the optimization of a variety of applications with individual environments, wherein problematic portions of each frame are favored with a disproportionate share of said compressed bitstreams to reduce compression artifact generation;
- an on-chip register file fully disposed on the IC and providing for real-time monitoring and control of the compression and decompression of said bitstreams; and
- video input and output means for pipelined encoding and decoding of macroblocks of video information providing for a minimization of throughput delays.
9. A video codec, comprising: - a single semiconductor chip providing for a video input connection from a camera and a video output connection to a monitor of decompressed data, and a transmit channel and a receive channel of compressed data;
- an interface connected to the chip for external connection to a separate frame memory dynamic random access memory (DRAM) and provides for interim storage of incoming and outgoing video data;
- a video compressor/decompressor disposed fully within the chip and connected to compress video information received from said video input connection to be output on said transmit channel, and connected to decompress video information received from said receive channel to be output on said video output connection;
- wherein, said compression of video information is by spatial de-correlation of intraframe information, and temporal decorrelation of interframe information, and said transmit and receive channels have communication channel bit rates reduced by quantization and variable length coding;
- wherein, the video compressor/decompressor includes intraframe coding that uses the redundancy of information within a single frame, the processing is done on blocks of eight-by-eight pixels, and both the luminance and chrominance pixel blocks are transform coded by a discrete cosine transform that changes the pixels from spatial domain to frequency domain;
- wherein, the video compressor/decompressor includes transform coefficients that are arranged in the order of increasing frequency to prepare for run-length coding, a quantizer with adjustable threshold used to increase the zero run to enhance the coding efficiency;
- wherein, said threshold is determined by a stepsize which can only be changed every n-number of macroblocks; and
- wherein, each of a series of frames is reconstructed using an inverse quantization, an inverse zigzag operation, and an inverse discrete cosine transform.
10. The video codec of claim 9, wherein: - the video compressor/decompressor includes interframe compression that exploits the high correlations of temporally adjacent frames, and motion estimation of two sequential frames with motion vectors that are then included in an encoded bit stream of said transmit and receive channels.
11. A video codec, comprising: - a single semiconductor chip providing for a video input connection from a camera and a video output connection to a monitor of decompressed data, and a transmit channel and a receive channel of compressed data;
- an interface connected to the chip for external connection to a separate frame memory dynamic random access memory (DRAM) and provides for interim storage of incoming and outgoing video data;
- a video compressor/decompressor disposed fully within the chip and connected to compress video information received from said video input connection to be output on said transmit channel, and connected to decompress video information received from said receive channel to be output on said video output connection;
- wherein, said compression of video information is by spatial de-correlation of intraframe information, and temporal decorrelation of interframe information, and said transmit and receive channels have communication channel bit rates reduced by quantization and variable length coding;
- wherein, the video compressor/decompressor compares the macroblocks for the current frame at a time "t" with the macroblocks of a previous frame "t-1", and a displacement vector within a defined search window that provides a minimum cost function, which can be as simple as an absolute difference, is the motion vector and is encoded by variable length coding;
- wherein, motion estimation is provided for luminance data only, and motion vectors for chrominance data is about one-half of that for luminance data, for a particular macroblock of four luminance blocks and two chrominance blocks, such that a frame at "t-1" is motion-compensated using newly-computed motion vectors for both luminance and chrominance, and a motion-compensated frame "t-1" passed through an optional loop filter, is compared with a current frame "t"; and
- wherein, the difference between a current frame "t" and a reconstructed frame "t-1" is discrete-cosine-transform encoded, processed for zigzag and quantizer, and decoded with the inverse functions, and the decoded differences are added to motion-compensation to form a reconstructed current frame that is used for a motion estimation of the next frame "t+1".
12. A video codec, comprising: - a single semiconductor chip providing for a video input connection from a camera and a video output connection to a monitor of decompressed data, and a transmit channel and a receive channel of compressed data;
- an interface connected to the chip for external connection to a separate frame memory dynamic random access memory (DRAM) and provides for interim storage of incoming and outgoing video data;
- a video compressor/decompressor disposed fully within the chip and connected to compress video information received from said video input connection to be output on said transmit channel, and connected to decompress video information received from said receive channel to be output on said video output connection;
- wherein, said compression of video information is by spatial de-correlation of intraframe information, and temporal decorrelation of interframe information, and said transmit and receive channels have communication channel bit rates reduced by quantization and variable length coding;
- wherein, the video compressor/decompressor includes decoding that is the opposite of encoding;
- wherein a bit stream received on said receive channel is variable-length coded, and the length of each code-word is determined, segmented and decoded;
- wherein, a frame start, a group-of-block start and a macroblock start are used for triggers;
- wherein, intra-type macroblocks are decoded using inverse zigzag, inverse quantizer and inverse discrete cosine transform and sent out and stored in said frame memory DRAM;
- wherein, inter-type macroblocks include a decoded motion vector used for motion-compensation of a macroblock in a previous frame "t-1", and simultaneously the differences between "t" and "t-1" are decoded using inverse quantizer, zigzag and discrete cosine transform; and
- wherein, said decoded differences are added to a motion-compensated macroblock, to reconstruct a macroblock for a current frame "t" and stored in said frame memory DRAM for reconstructing a next frame "t+1".
|