Adapting one type of encoder to another type of encoder

Abstract
Described are methods and systems for processing data. A motion estimator uses a block of an input frame of video data and a block of a reference frame of video data to generate motion vectors according to a first encoding scheme. A motion compensator produces half pel motion vectors from the motion vectors according to a second encoding scheme that is different from the first encoding scheme.
Description

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and form a part of this specification, illustrate embodiments of the present invention and, together with the description, serve to explain the principles of the invention.



FIG. 1 is a block diagram of one embodiment of a system for encoding data in accordance with the present invention.



FIG. 2 is a block diagram showing data flow through elements of a process for encoding data according to one embodiment of the present invention.



FIG. 3 is a block diagram of a system for encoding data according to one embodiment of the present invention.



FIG. 4 is a block diagram showing additional details of the system of FIG. 3 according to one embodiment of the present invention.



FIG. 5 illustrates a state diagram according to one embodiment of the present invention.



FIG. 6 illustrates a circular buffer to store frame information according to one embodiment of the present invention.



FIG. 7 illustrates a signal protocol according to one embodiment of the present invention.



FIG. 8 is a flowchart of a computer-implemented method for processing data according to one embodiment of the present invention.


Claims
  • 1. A system for processing video data, said system comprising: a motion estimator operable for using a block of an input frame of video data and a block of a reference frame of video data to generate motion vectors according to a first encoding scheme;a first encoder coupled to said motion estimator, said first encoder operable for using said motion vectors to produce a reconstructed first version of said block of said input frame according to said first encoding scheme; anda second encoder coupled to said motion estimator, said second encoder operable for using said motion vectors to produce a reconstructed second version of said block of said input frame according to a second encoding scheme that is different from said first encoding scheme.
  • 2. The system of claim 1 wherein said motion vectors are generated using a two-tap finite impulse response (FIR) filter and wherein said second encoder comprises a plurality of six-tap FIR filters for generating half pel interpolated pixels.
  • 3. The system of claim 1 wherein said second encoder further comprises a circular buffer operable for concurrently storing both said block of said reference frame and said reconstructed second version of said block of said input frame.
  • 4. The system of claim 1 wherein said second encoder further comprises a data packer operable for interleaving blocks of video data for said input frame and blocks of video data for said reference frame.
  • 5. The system of claim 1 wherein said second encoder further comprises a digital signal processor operable for executing a plurality of software-based instructions that implement encoding operations, said encoding operations comprising transformation and quantization of a residual comprising a difference between said input frame and said reference frame, said encoding operations further comprising inverse quantization and inverse transformation of said residual.
  • 6. The system of claim 1 wherein said second encoder comprises a plurality of luma row filters for operating on the x-component of a luma channel of said video data.
  • 7. The system of claim 6 wherein said second encoder further comprises a cache that is coupled to said plurality of luma row filters, wherein for each clock cycle in which said cache is enabled a result from said plurality of luma row filters is loaded into a first row of said cache and a result already residing in said first row is shifted to a second row of said cache.
  • 8. The system of claim 7 wherein said second encoder further comprises: a plurality of chroma row filters for operating on the x-component of a chroma channel of said video data;a plurality of chroma column filters for operating on the y-component of said chroma channel; anda plurality of luma column filters for operating on the y-component of said luma channel;wherein both said plurality of chroma row filters and said plurality of chroma column filters are coupled to both said first row and said second row of said cache and wherein each luma column filter of said plurality of luma column filters is coupled to each row of said cache.
  • 9. The system of claim 1 wherein said first encoding scheme comprises an encoding scheme substantially compliant with MPEG-4 and said second encoding scheme comprises an encoding scheme substantially compliant with H.264.
  • 10. A method for processing video data, said method comprising: selecting motion vectors using a two-tap finite impulse response (FIR) filter, wherein said motion vectors are generated according to a first encoding scheme using a block of an input frame of video data and a block of a reference frame of video data; andapplying six-tap FIR filters to said motion vectors to calculate half pel interpolated pixels according to a second encoding scheme that is different from said first encoding scheme.
  • 11. The method of claim 10 further comprising concurrently storing both said block of said reference frame and a reconstructed version of said block of said input frame in a circular buffer.
  • 12. The method of claim 10 further comprising interleaving blocks of video data for said input frame and blocks of video data for said reference frame.
  • 13. The method of claim 10 further comprising: operating on the x-component of a luma channel of said video data using a plurality of luma row six-tap FIR filters;loading a result from said plurality of luma row filters into a first row of a cache; andshifting a result already residing in said first row to a second row of said cache.
  • 14. The method of claim 13 further comprising: operating on the x-component of a chroma channel of said video data using a plurality of chroma row six-tap FIR filters;operating on the y-component of said chroma channel using a plurality of chroma column six-tap FIR filters; andoperating on the y-component of said luma channel using a plurality of luma column six-tap FIR filters.
  • 15. The method of claim 10 wherein said first encoding scheme comprises an encoding scheme substantially compliant with MPEG-4 and said second encoding scheme comprises an encoding scheme substantially compliant with H.264.
  • 16. A system for processing video data, said system comprising: a motion estimator operable for using a block of an input frame of video data and a block of a reference frame of video data to generate motion vectors according to a first encoding scheme;a motion compensator coupled to said motion estimator, said motion compensator operable for producing half pel interpolated pixels from said motion vectors according to a second encoding scheme that is different from said first encoding scheme; anda data packer coupled to motion compensator, said data packer operable for interleaving blocks of video data for said input frame with blocks of video data for said reference frame.
  • 17. The system of claim 16 wherein said motion vectors are generated using a two-tap finite impulse response (FIR) filter and wherein said half pel interpolated pixels are generated using a plurality of six-tap FIR filters.
  • 18. The system of claim 16 wherein said motion compensator further comprises a circular buffer operable for concurrently storing both said block of said reference frame and a reconstructed version of said block of said input frame.
  • 19. The system of claim 16 further comprising a digital signal processor coupled to said data packer and operable for executing a plurality of software-based instructions that implement encoding operations, said encoding operations comprising transformation and quantization of a residual comprising a difference between said input frame and said reference frame, said encoding operations further comprising inverse quantization and inverse transformation of said residual.
  • 20. The system of claim 16 further comprising: a plurality of luma row filters for operating on the x-component of a luma channel of said video data;a cache coupled to said plurality of luma row filters, wherein for each clock cycle in which said cache is enabled a result from said plurality of luma row filters is loaded into a first row of said cache and a result already residing in said first row is shifted to a second row of said cache;a plurality of chroma row filters for operating on the x-component of a chroma channel of said video data;a plurality of chroma column filters for operating on the y-component of said chroma channel; anda plurality of luma column filters for operating on the y-component of said luma channel, wherein both said plurality of chroma row filters and said plurality of chroma column filters are coupled to both said first row and said second row of said cache and wherein each luma column filter of said plurality of luma column filters is coupled to each row of said cache.
Provisional Applications (1)
Number Date Country
60772440 Feb 2006 US