Patent US5990958A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5990958A Expired / Lapsed US ⏱️ 0.0 years remaining

Apparatus and method for MPEG video decompression

Assignee: National Semiconductor Corp
•
Filing: 1997-06-17
•
Granted: 1999-11-23
•
Expires: 2017-06-17
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A novel apparatus and method is disclosed to decode an encoded MPEG video stream in an efficient manner making optimal use of available system memory and computational resources. The present invention partitions the MPEG video decode task into software tasks which are executed by a CPU and hardware tasks which are implemented in dedicated video hardware. Software tasks represent those tasks which do not require extensive memory or computational resources. On the other hand, tasks implemented in dedicated video hardware represent those tasks which involve computational and memory mintensive operations. Synchronization between software tasks executed by the CPU and hardware tasks implemented in dedicated video hardware is achieved by means of various data structures, control structures and device drivers.

Inventors

  • 👤 Hemant Bheda
  • 👤 Sanjay Gongalore
  • 👤 Partha Srinivasan

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-27 18:16
CPC Classifications
H; H04; H04N; H04N21/00; H04N21/40; H04N21/43; H04N21/433; H04N19/00; H04N19/42; H04N19/423; H04N19/60; H04N19/61

Claims Analysis

Total Claims: 14
Claim 1
Independent Claim 196 words
A method to decode an encoded MPEG video data stream, said method comprising the steps of: partitioning said decode of said encoded MPEG video data stream into memory-compute intensive tasks which require extensive memory and computational resources and non memory-compute intensive tasks which do not require extensive memory or computational resources; performing said non memory-compute intensive tasks through software modules executing on a processor to produce preprocessed symbol stream datastructure for each video frame, comprising the steps of: parsing said encoded MPEG video data stream using variable length decoding to produce parsed video data stream; performing inverse quantization on said parsed video data stream to produce said quantized video data stream; formatting said quantized video data stream as said preprocessed symbol stream datastructure; and writing said preprocessed symbol stream datastructure to said memory buffer; storing said preprocessed symbol stream data structure in a memory buffer; performing said memory-compute intensive tasks in dedicated video hardware to produce a decoded video frame; synchronizing said non memory-compute intensive tasks performed through said software modules executed by said processor and said memory-compute intensive tasks performed by said dedicated video hardware; and displaying said decoded video frame on a display device.
Claim 2
Independent Claim 196 words
A method to decode an encoded MPEG video data stream, said method comprising the steps of: partitioning said decode of said encoded MPEG video data stream into memory-compute intensive tasks which require extensive memory and computational resources and non memory-compute intensive tasks which do not require extensive memory or computational resources; performing said non memory-compute intensive tasks through software modules executing on a processor to produce preprocessed symbol stream datastructure for each video frame, comprising the steps of: parsing said encoded MPEG video data stream using variable length decoding to produce parsed video data stream; performing inverse quantization on said parsed video data stream to produce said quantized video data stream; formatting said quantized video data stream as said preprocessed symbol stream datastructure; and writing said preprocessed symbol stream datastructure to said memory buffer; storing said preprocessed symbol stream data structure in a memory buffer; performing said memory-compute intensive tasks in dedicated video hardware to produce a decoded video frame; synchronizing said non memory-compute intensive tasks performed through said software modules executed by said processor and said memory-compute intensive tasks performed by said dedicated video hardware; and displaying said decoded video frame on a display device.
Claim 3
Independent Claim 215 words
A method to decode an encoded MPEG video data stream, said method comprising the steps of: portioning said decode of said encoded MPEG video data stream into memocompute intensive tasks which require extensive memory and computational resources and non memory-compute intensive tasks which do not require extensive memory or computational resources; performing said non memory-compute intensive tasks through software modules executing on a processor to produce preprocessed symbol stream datastructure for each video frame, comprising the steps of: parsing said encoded MPEG video data stream using variable length decoding to produce parsed video data stream; performing inverse quantization on said parsed video data stream to produce said quantized video data stream; performing inverse discrete cosine transformation on said quantized video data stream to produce cosine transformed video data stream; formatting said cosine transformed video data stream as said preprocessed symbol stream datastructure; and writing said preprocessed symbol stream datastructure to said memory buffer; storing said preprocessed symbol stream data structure in a memory buffer; performing said memory-compute intensive tasks in dedicated video hardware to produce a decoded video frame; synchronizing said non memory-compute intensive tasks performed through said software modules executed by said processor and said memory-compute intensive tasks performed by said dedicated video hardware; and displaying said decoded video frame on a display device.
Claim 4
Independent Claim 215 words
A method to decode an encoded MPEG video data stream, said method comprising the steps of: portioning said decode of said encoded MPEG video data stream into memocompute intensive tasks which require extensive memory and computational resources and non memory-compute intensive tasks which do not require extensive memory or computational resources; performing said non memory-compute intensive tasks through software modules executing on a processor to produce preprocessed symbol stream datastructure for each video frame, comprising the steps of: parsing said encoded MPEG video data stream using variable length decoding to produce parsed video data stream; performing inverse quantization on said parsed video data stream to produce said quantized video data stream; performing inverse discrete cosine transformation on said quantized video data stream to produce cosine transformed video data stream; formatting said cosine transformed video data stream as said preprocessed symbol stream datastructure; and writing said preprocessed symbol stream datastructure to said memory buffer; storing said preprocessed symbol stream data structure in a memory buffer; performing said memory-compute intensive tasks in dedicated video hardware to produce a decoded video frame; synchronizing said non memory-compute intensive tasks performed through said software modules executed by said processor and said memory-compute intensive tasks performed by said dedicated video hardware; and displaying said decoded video frame on a display device.
Claim 5
Independent Claim 75 words
The method of claims 1 or 2, wherein said step of performing said memory-compute intensive tasks in said dedicated video hardware to produce said decoded video frame comprises the steps of: accessing said preprocessed symbol stream datastructure stored in said memory buffer; performing motion compensation operation on said preprocessed symbol stream datastructure to produce compensated video data stream; and performing block reconstruction operation on said compensated video data stream to produce said decoded video frame.
Claim 6
Independent Claim 95 words
The method of claims 1 or 2, wherein said step of performing said memory-compute intensive tasks in said dedicated video hardware to produce said decoded video frame comprises the steps of: accessing said preprocessed symbol stream datastructure stored in said memory buffer; performing inverse discrete cosine transformation operation on said preprocessed symbol stream datastructure to produce cosine transformed video data stream; performing motion compensation operation on said cosine transformed video data stream to produce compensated video data stream; and performing block reconstruction operation on said compensated video data stream to produce said decoded video frame.
Claim 7
Independent Claim 241 words
The method of claims 1 or 2, wherein said step of synchronizing said non-memory intensive tasks performed through said software modules executed by said processor and said memory-compute intensive tasks performed by said dedicated video hardware comprises the steps of: allocating said memory buffer to store said preprocessed symbol stream datastructure; maintaining a task pointer queue of software task control datastructures, each one of said software task control datastructures storing control information corresponding to each said non memory-compute intensive task processed by said software modules which is ready to be scheduled as said memory-compute intensive task to be executed by said dedicated video hardware; maintaining a count of completed said non memory-compute intensive tasks; converting said software control datastructures to hardware task control datastructures, said hardware task control datastructures storing information corresponding to said memory-compute intensive task to be executed by said dedicated video hardware; maintaining a task FIFO queue of said hardware task control datastructures in said dedicated video hardware, each of said hardware task control datastructure in said task FIFO queue storing information regarding said memory-compute intensive task to be executed by said dedicated video hardware; issuing an interrupt to signal completion of said memory-compute intensive task by said dedicated video hardware; and said software modules popping said hardware task control datastructure from said task FIFO queue on receiving said interrupt, said popped hardware task control datastructure corresponding to said memory-compute intensive task completed by said dedicated video hardware.
Claim 8
Independent Claim 204 words
An apparatus for decoding an encoded MPEG video data stream by partitioning said decoding into non memory-compute intensive tasks and memory-compute intensive tasks, said apparatus comprising: a bus interace; a processor coupled to said bus interface, said processor configured to execute one or more software modules of said plurality of software modules stored in said system memory to: parse said encoded MPEG video stream using variable length decoding to produce parsed video data stream; perform inverse quantization on said parsed video data stream to produce said quantized video data stream; format said quantized video data stream as said preprocessed symbol stream datastructure; and store said preprocessed symbol stream datastructure in said system memory; a system memory coupled to said bus interface, said system memory configured to store a plurality of software modules which can he executed on said processor, one or more software modules of said plurality of software modules configured to perform said non memory-compute intensive tasks to produce preprocessed symbol stream datastructure; dedicated video hardware coupled to said bus interface, said dedicated video hardware configured to execute said memory-compute intensive tasks to produce decoded video data to be display on a display device; and dedicated memory coupled to said dedicated video hardware.
Claim 9
Independent Claim 204 words
An apparatus for decoding an encoded MPEG video data stream by partitioning said decoding into non memory-compute intensive tasks and memory-compute intensive tasks, said apparatus comprising: a bus interace; a processor coupled to said bus interface, said processor configured to execute one or more software modules of said plurality of software modules stored in said system memory to: parse said encoded MPEG video stream using variable length decoding to produce parsed video data stream; perform inverse quantization on said parsed video data stream to produce said quantized video data stream; format said quantized video data stream as said preprocessed symbol stream datastructure; and store said preprocessed symbol stream datastructure in said system memory; a system memory coupled to said bus interface, said system memory configured to store a plurality of software modules which can he executed on said processor, one or more software modules of said plurality of software modules configured to perform said non memory-compute intensive tasks to produce preprocessed symbol stream datastructure; dedicated video hardware coupled to said bus interface, said dedicated video hardware configured to execute said memory-compute intensive tasks to produce decoded video data to be display on a display device; and dedicated memory coupled to said dedicated video hardware.
Claim 10
Independent Claim 223 words
An apparatus for decoding an encoded MPEG video data stream by partitioning said decoding into non memory-compute intensive tasks and memory-compute intensive tasks, said apparatus comprising: a bus interface; a processor coupled to said bus interface, said processor configured to execute one or more software modules of said plurality of software modules stored in said system memory to: parse said encoded MPEG video stream using variable length decoding to produce parsed video data stream; perform inverse quantization on said parsed video data stream to produce said quantized video data stream; perform inverse discrete cosine transformation on said quantized video data stream to produce cosine transformed video data stream; format said cosine transformed video data stream as said preprocessed symbol stream datastructure; and store said preprocessed symbol stream datastructure in said system memory; a system memory coupled to said bus interface, said system memory configured to store a plurality of software modules which can be executed on said processor, one or more software modules of said plurality of software modules configured to perform said non memory-compute intensive tasks to produce preprocessed symbol stream datastructure; dedicated video hardware coupled to said bus interface, said dedicated video hardware configured to execute said memory-compute intensive tasks to produce decoded video data to be display on a display device; and dedicated memory coupled to said dedicated video hardware.
Claim 11
Independent Claim 223 words
An apparatus for decoding an encoded MPEG video data stream by partitioning said decoding into non memory-compute intensive tasks and memory-compute intensive tasks, said apparatus comprising: a bus interface; a processor coupled to said bus interface, said processor configured to execute one or more software modules of said plurality of software modules stored in said system memory to: parse said encoded MPEG video stream using variable length decoding to produce parsed video data stream; perform inverse quantization on said parsed video data stream to produce said quantized video data stream; perform inverse discrete cosine transformation on said quantized video data stream to produce cosine transformed video data stream; format said cosine transformed video data stream as said preprocessed symbol stream datastructure; and store said preprocessed symbol stream datastructure in said system memory; a system memory coupled to said bus interface, said system memory configured to store a plurality of software modules which can be executed on said processor, one or more software modules of said plurality of software modules configured to perform said non memory-compute intensive tasks to produce preprocessed symbol stream datastructure; dedicated video hardware coupled to said bus interface, said dedicated video hardware configured to execute said memory-compute intensive tasks to produce decoded video data to be display on a display device; and dedicated memory coupled to said dedicated video hardware.
Claim 12
Independent Claim 59 words
The apparatus of claims 6 or 7, wherein said dedicated video hardware is further configured to: read said preprocessed symbol stream datastructure stored in said system memory; perform motion compensation on said preprocessed symbol stream data to produce compensated video data stream; and perform block reconstruction operation on said compensated video data stream to produce said decoded video data.
Claim 13
Independent Claim 79 words
The apparatus of claims 6 or 7, wherein said dedicated video hardware is further configured to: read said preprocessed symbol stream datastructure stored in said system memory; perform inverse discrete cosine transformation operation on said preprocessed symbol stream datastructure to produce cosine transformed video data stream; perform motion compensation on said cosine transformed video data stream to produce compensated video data stream; and perform block reconstruction operation on said compensated video data stream to produce said decoded video data.
Claim 14
Independent Claim 245 words
The apparatus of claims 6 or 7, wherein one or more software modules of said plurality of software modules stored in said system memory are further configured to: allocate a memory buffer for said preprocessed symbol stream datastructure in said system memory; maintain a task pointer queue of software task control datastructures, each one of said software task control datastructures storing control information corresponding to each said non memory-compute intensive task processed by said software module which is ready to be scheduled as said memory-compute intensive task to be executed by said dedicated video hardware; maintain a count of completed said non memory-compute intensive tasks; convert said software control datastructures to hardware task control datastructures, said hardware task control datastructures to store information corresponding to said memory-compute intensive task to be executed by said dedicated video hardware; and said dedicated video hardware is further configured to: maintain a task FIFO queue of said hardware task control datastructures in said dedicated memory, each of said hardware task control data packet in said task FIFO queue to store information regarding said memory-compute intensive task to be executed by said dedicated video hardware; and issue an interrupt to signal completion of said memory-compute intensive task by said dedicated video hardware, said software module configured to pop said hardware task control datastructure from said task FIFO queue on receiving said interrupt, said popped hardware task control datastructure corresponding to said memory-compute intensive task completed by said dedicated video hardware.

References Cited (Backward Citations)

US5801775A Cited
US5881244A Cited
US5768536A Cited
US5815206A Cited
US5818532A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-11-22 2003-05-24 2003-11-23 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-11-22 2007-05-24 2007-11-23 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-11-22 2011-05-24 2011-11-23 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag