Claims
- 1. An encoding system, comprising:
a pre-processor, for receiving and processing a plurality of information frames to produce a plurality of pre-processed information frames, said pre-processor identifying and generating an indicium of an inter-frame information discontinuity within said plurality of information frames; an encoder, for encoding each of said plurality of pre-processed information frames substantially in accordance with a group of frames (GOF) information structure; and a controller, for adapting said GOF information structure in response to said indicium of said inter-frame information discontinuity within said plurality of information frames.
- 2. The encoding system of claim 1, wherein:
said controller, in response to redundant information within said plurality of information frames, adapts a bit allocation level associated with said GOF information structure; and said pre-processor identifies and generates an indicium of redundant information within said plurality of information frames.
- 3. The encoding system of claim 2, wherein said pre-processor removes said redundant information from said plurality of information frames.
- 4. The encoding system of claim 1, wherein:
said pre-processor measures at least one of a spatial noise parameter and a temporal noise parameter of said plurality of information frames; said pre-processor, in response to said spatial noise parameter exceeding a spatial noise threshold level, imparts a spatial smoothing function to one or more of said plurality of information frames; and said pre-processor, in response to said temporal noise parameter exceeding a temporal noise threshold level, imparts a temporal smoothing function to one or more of said plurality of information frames.
- 5. The encoding system of claim 1, wherein:
said pre-processor spatially decomposes each information frame to form a respective detail pyramid; and said encoder comprises a motion estimation module for estimating, using said detail pyramids, motion of information regions of non-anchor information frames of said plurality of pre-processed information frames.
- 6. The encoding system of claim 5, wherein:
said pre-processor packs each of said detail pyramids into respective compressed data detail pyramid representations; and said motion estimation module utilizes said compressed data detail pyramid representations to estimate motion.
- 7. The encoding system of claim 6, wherein said encoder further comprises:
an anchor frame decoder, for decoding each anchor frame produced by said encoder; a data packer, for packing each decoded anchor frame into a respective compressed data representation; and a memory, for storing each compressed data anchor frame representation.
- 8. The encoding system of claim 1, wherein:
said controller adapts a bit allocation level associated with said GOF information structure according to a quadratic rate-distortion model.
- 9. The encoding system of claim 1, wherein:
said encoder comprises a plurality of processing elements, each processing element being adapted to encode a respective portion of a processed information frame being encoded.
- 10. The encoding system of claim 9, wherein said respective portion comprises one of slice, macroblock or block of an information frame being encoded.
- 11. The encoding system of claim 9, wherein each of said processing elements utilizes utilizing half pel motion estimation data for both a motion estimation function and an encoding mode decision function, said half pel motion estimation data being stored in a cache memory.
- 12. The encoding system of claim 9, wherein said processing elements are arranged in one of a single instruction multiple data (SIMD) arrangement and a multiple instruction multiple data (MIMD) arrangement.
- 13. The encoding system of claim 9, wherein each processing element comprises:
a motion estimation module, for generating a half pel motion vector relating said portion of said processed information frame being encoded to a corresponding portion of a reference information frame; and a mode decision module, for selecting a coding mode of said portion of said processed information frame being encoded, said mode decision module utilizing said half pel motion vector to select said coding mode.
- 14. The encoding system of claim 13, wherein each processing element further comprises:
a series coupling of a discrete cosine transform (DCT) module, a quantization (Q) module and a variable length coding (VLC) module, for coding said portion of said processed information frame being encoded.
- 15. The encoding system of claim 14, wherein each processing element further comprises:
a series coupling of an inverse quantization (Q−1) module and an inverse discrete cosine transform (IDCT) module, for producing portions of said reference information frame in response to a quantized information stream produced by said quantization (Q) module; and a motion compensation module, for predicting said portion of said processed information frame being encoded according to information produced by said motion estimation module and said reference information frame.
- 16. The encoding system of claim 13, wherein:
said motion estimation module generates a half pel distortion signal indicative of dissimilarities between said portion of said processed information frame being encoded and said corresponding portion of said reference information frame; and said mode decision module utilizing said half pel distortion signal to select said coding mode.
- 17. The encoding system of claim 11, wherein:
said pre-processor includes a data packer for producing a packed data representation of each of a plurality of detail pyramids that are associated with each respective processed information frame being encoded; and each of said processing elements includes a respective data packer for producing a respective packed data representation of each of a plurality of detail pyramids that are associated with said reference information frame.
- 18. The encoding system of claim 17, wherein: said motion estimation module utilizes said compressed data detail pyramid representations to estimate motion.
- 19. An encoding system, comprising:
a pre-processor, for receiving and processing a plurality of information frames to produce a plurality of pre-processed information frames, said pre-processor identifying and generating an indicium of an inter-frame information discontinuity within said plurality of information frames; a plurality of encoders, for encoding each of a respective plurality of pre-processed information frame portions forming each of said plurality of pre-processed information frames substantially in accordance with a group of frames (GOF) information structure; and a controller, for adapting said GOF information structure in response to said indicium of said inter-frame information discontinuity within said plurality of information frames.
- 20. The encoding system of claim 19, wherein said respective portion comprises one of slice, macroblock or block of an information frame being encoded.
- 21. The encoding system of claim 19, wherein each of said processing elements utilizes utilizing half pel motion estimation data for both a motion estimation function and an encoding mode decision function, said half pel motion estimation data being stored in a cache memory.
- 22. The encoding system of claim 19, wherein said processing elements are arranged in one of a single instruction multiple data (SIMD) arrangement and a multiple instruction multiple data (MIMD) arrangement.
- 23. The encoding system of claim 19, wherein:
said pre-processor includes a data packer for producing a packed data representation of each of a plurality of detail pyramids that are associated with each respective processed information frame being encoded; and each of said processing elements includes a respective data packer for producing a respective packed data representation of each of a plurality of detail pyramids that are associated with said reference information frame.
- 24. The encoding system of claim 17, wherein each of said processing elements comprises:
a motion estimation module, for generating a half pel motion vector relating said portion of said processed information frame being encoded to a corresponding portion of a reference information frame, said motion estimation module operating in a hierarchical manner using said packed data representations of detail pyramids associated with said processed information frame being encoded and said reference information frame.
- 25. A method for encoding a sequence of image frames comprising the steps of:
processing a portion of said sequence of information frames to produce a processed sequence of information frames and respective indicia of an inter-frame information discontinuity and redundant information within said processed sequence of information frames; encoding, substantially in accordance with a group of frames (GOF) information structure and a bit budget, said processed sequence of information frames to produce an encoded sequence of information frames including an anchor frame of a type determined by said GOF information structure; adapting said GOF information structure in response to said indicium of an inter-frame information discontinuity within said processed sequence of information frames; and adapting said bit budget in response to said indicium of redundant information within said processed sequence of information frames.
- 26. The method of claim 25, wherein said step of adapting said GOF information structure comprises the steps of:
defining, as an intra-coded anchor frame, the anchor frame temporally following said information discontinuity; and defining, as a predictively coded anchor frame, the anchor frame temporally preceding said information discontinuity.
- 27. The method of claim 25, wherein said step of adapting said bit budget comprises the steps of:
removing said redundant information within said processed sequence of information frames; and increasing said bit budget in accordance with a bit allocation level associated with said removed redundant information.
- 28. The method of claim 25, wherein said step of processing further comprises the steps of:
measuring at least one of a spatial noise parameter and a temporal noise parameter of said plurality of information frames; imparting, in response to said spatial noise parameter exceeding a spatial noise threshold level, a spatial smoothing function to one or more of said information frames forming said processed sequence of information frames; and imparting, in response to said temporal noise parameter exceeding a temporal noise threshold level, a temporal smoothing function to one or more of said information frames forming said processed sequence of information frames.
- 29. The method of claim 25, further comprising the step of:
decomposing, into respective detail pyramids, each of said information frames forming said processed sequence of information frames; wherein said step of encoding said processed sequence of information frames comprises the steps of:
estimating, for each of a plurality of information frame regions forming each non-anchor frame, a respective inter-frame motion parameter using said respective detail pyramids; determining, for each of said plurality of information frame regions forming each non-anchor frame, a respective coding mode; and encoding, according to said respective coding mode, each of said plurality of information frame regions.
- 30. The method of claim 29, wherein at least two of said information frame regions forming each non-anchor frame are processed substantially contemporaneously using respective processing elements operating in a pipelined manner.
- 31. The method of claim 29, wherein said step of estimating comprises the step of:
comparing said information frame region to each of a plurality of correspondingly sized portions of an anchor frame reference pixel area to produce a respective plurality of sum of absolute difference (SAD) values, said anchor frame pixel area being larger than said information frame region; selecting, as a match, the correspondingly sized portion of said anchor frame reference pixel area having associated with it the lowest SAD value below a threshold SAD value level; and repeating, until a match is determined, said steps of comparing and selecting for each of the remaining anchor frame reference pixel areas forming said anchor frame.
- 32. The method of claim 31, wherein said step of comparing comprises the steps of:
loading, into a first portion of a memory, at least one row of pixels of said information frame region; loading, into a second portion of said memory, at least one row of pixels of said anchor frame reference pixel area; computing, for each of a plurality of data alignment positions, SAD values for said pixel row information in said first and second portions of memory; preferentially loading, in response to said computed SAD values being relatively low, additional portions of said information frame region and said anchor frame reference pixel area into, respectively, said first and second portions of said memory; repeating said steps of computing and preferentially loading until a SAD value associated with each of a plurality of corresponding portions of said information frame region and said anchor frame reference pixel area is determined.
Parent Case Info
[0001] This application claims the benefit of U.S. Provisional Application No. 60/080,536, filed Apr. 3, 1998 (Attorney Docket No. 12414P) and incorporated herein by reference in its entirety.
[0002] This application is a continuation-in-part of U.S. patent application Ser. No. 09/105,730, filed Jun. 26, 1998 (Attorney Docket No. 12411), Ser. No. 09/151,425, filed Sep. 11, 1998 (Attorney Docket No. 12414), and Ser. No. 09/196,072, filed Nov. 19, 1998 (Attorney Docket No. 12626A), all of which are incorporated herein be reference in their entireties.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60080536 |
Apr 1998 |
US |
Continuation in Parts (3)
|
Number |
Date |
Country |
| Parent |
09105730 |
Jun 1998 |
US |
| Child |
09285582 |
Apr 1999 |
US |
| Parent |
09151425 |
Sep 1998 |
US |
| Child |
09285582 |
Apr 1999 |
US |
| Parent |
09196072 |
Nov 1998 |
US |
| Child |
09285582 |
Apr 1999 |
US |