A video decoder architecture for processing out-of-order macro-blocks of a video stream. A microcode engine receives compressed data representing macro-blocks of a frame of a video stream, wherein at least one macro-block is received out-of-order. The microcode engine is for buffering the compressed data and for ordering the macro-blocks of the frame in raster scan order. A digital video decoder receives the macro-blocks in raster scan order and is for decoding the macro-blocks.
Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.
1. A video decoder architecture for processing out-of-order macro-blocks of a video stream, said video decoder architecture comprising: a microcode engine for receiving compressed data representing macro-blocks of a frame of a video stream, wherein at least one macro-block is received out-of-order, wherein said microcode engine is operable to detect said at least one macro-block is received out-of-order, to buffer said compressed data in response to detecting said macro-block is out-of-order, to reorder said macro-blocks of said frame into raster scan order, and to send reordered macro-blocks in said raster scan order to a digital video decoder; and said digital video decoder for receiving said re-ordered macro-blocks in raster scan order and for decoding said macro-blocks, wherein said digital video decoder comprises circuity that requires said macro-blocks to be received in said raster scan order in order to process said macro-blocks of said video stream.
A video decoder handles out-of-order macroblocks in a video stream. It includes a microcode engine that receives compressed video data. If a macroblock arrives out of sequence, the microcode engine buffers the data, reorders the macroblocks into the correct raster scan order (left-to-right, top-to-bottom), and then sends the reordered macroblocks to a digital video decoder. The digital video decoder needs macroblocks in raster scan order to correctly decode the video stream. The microcode engine detects when a macroblock is received out-of-order.
2. The video decoder architecture of claim 1 , wherein said digital video decoder comprises: a command parser for accessing said video stream and for identifying a video encoding standard used for encoding said video stream; and a plurality of hardware decoding blocks for performing operations associated with decoding said video stream, wherein different subsets of said plurality of hardware decoding blocks are for decoding video streams encoded using different video encoding standards.
The video decoder from the previous description includes a digital video decoder with a command parser and multiple hardware decoding blocks. The command parser analyzes the video stream to identify the video encoding standard used (e.g., H.264, MPEG). Based on the identified standard, a specific subset of the hardware decoding blocks is activated to handle the decoding process. Different video standards use different combinations of these hardware blocks.
3. The video decoder architecture of claim 2 , wherein said hardware multi-standard video decoder device further comprises an in-the-loop deblocking filter for performing a macro-block-level deblocking operation on a decoded macro-block.
The video decoder from the previous description includes a digital video decoder with a command parser that identifies the video encoding standard, hardware decoding blocks specific to each standard, and an in-the-loop deblocking filter. This filter operates at the macroblock level, reducing blocking artifacts within the decoded video. It's integrated into the main decoding loop for real-time processing.
4. The video decoder architecture of claim 3 , wherein said microcode engine is operable to forward out-of-order macro-blocks to said digital video decoder if said video stream does not utilize said in-the-loop deblocking filter.
The video decoder from the previous description includes a digital video decoder with a command parser that identifies the video encoding standard, hardware decoding blocks specific to each standard, an in-the-loop deblocking filter and a microcode engine. If the video stream being decoded does *not* use the in-the-loop deblocking filter, the microcode engine bypasses the reordering process and forwards out-of-order macroblocks directly to the digital video decoder. This optimizes processing when deblocking isn't needed.
5. The video decoder architecture of claim 4 , wherein said hardware multi-standard video decoder device further comprises an out-of-loop filter for performing a frame-level post-processing operation on a decoded frame.
The video decoder from the previous description includes a digital video decoder with a command parser that identifies the video encoding standard, hardware decoding blocks specific to each standard, an in-the-loop deblocking filter and a microcode engine. If the video stream being decoded does *not* use the in-the-loop deblocking filter, the microcode engine bypasses the reordering process and forwards out-of-order macroblocks directly to the digital video decoder. Additionally, it includes an out-of-loop filter that performs a frame-level post-processing operation on the decoded frame to further enhance the video quality after decoding and deblocking.
6. The video decoder architecture of claim 1 , wherein said video stream is encoded using H.264 video standard.
The video decoder that handles out-of-order macroblocks includes a microcode engine that buffers and reorders macroblocks and a digital video decoder which needs macroblocks in raster scan order to decode the video stream. The video stream is encoded using the H.264 video standard.
7. The video decoder architecture of claim 1 , wherein said microcode engine is operable to parse said video stream and to perform Variable Length Decoding (VLD) on said video stream.
The video decoder that handles out-of-order macroblocks includes a microcode engine that buffers and reorders macroblocks and a digital video decoder which needs macroblocks in raster scan order to decode the video stream. The microcode engine also parses the video stream and performs Variable Length Decoding (VLD) on the data. VLD is a technique to decode compressed video data.
8. A method for processing out-of-order macro-blocks of a video stream, said method comprising: receiving compressed data representing macro-blocks of a frame of a video stream, wherein at least one macro-block is received out-of-order; detecting said at least one macro-block is received out-of-order; buffering said compressed data in response to detecting said macro-block is out-of-order; ordering said macro-blocks of said frame in raster scan order, wherein said macro-blocks are compressed, said ordering performed by a microcode unit; sending reordered macro-blocks in said raster scan order to a decoder unit; and decoding using said decoder unit said compressed data representing said macro-blocks reordered in said raster scan order, wherein said decoder unit is a separate component from said microcode unit.
A method for decoding video with out-of-order macroblocks involves receiving compressed video data. If a macroblock is out of order, the method detects this, buffers the compressed data using a microcode unit, and reorders the macroblocks into raster scan order (left-to-right, top-to-bottom) using that same microcode unit. Then, the reordered macroblocks are sent to a separate decoder unit which decodes the compressed data.
9. The method as recited in claim 8 wherein said decoding said compressed data representing said macro-blocks in said raster scan order comprises: identifying a video standard used for encoding said video stream; determining a subset of hardware decoding blocks of a plurality of hardware decoding blocks of said hardware multi-standard video decoder device used for decoding said video stream, wherein different subsets of said plurality of hardware decoding blocks are operable for decoding video streams encoded using different video encoding standards; and decoding said video stream using said subset of hardware decoding blocks.
The video decoding method from the previous description, which involves buffering and reordering out-of-order macroblocks, includes the decoding step wherein the video standard used for encoding the stream is identified (e.g., H.264, MPEG). Based on the detected standard, a specific subset of hardware decoding blocks from a larger set are chosen to decode the video stream. Different video standards require different hardware decoding blocks.
10. The method as recited in claim 9 further comprising performing a macro-block-level in-the-loop deblocking operation on a decoded macro-block.
The video decoding method from the previous description, which involves identifying the video standard and selecting appropriate hardware decoding blocks, also includes performing a macro-block level in-the-loop deblocking operation on each decoded macroblock. This reduces visual artifacts in the decoded video.
11. The method as recited in claim 8 further comprising performing a frame-level out-of-loop post-processing operation on a decoded frame.
The video decoding method from the previous description, which involves buffering and reordering out-of-order macroblocks, also includes performing a frame-level out-of-loop post-processing operation on a decoded frame. This improves the visual quality of the fully decoded frame after all macroblocks have been processed.
12. The method as recited in claim 8 wherein said video stream is encoded using H.264 video standard.
The video decoding method that handles out-of-order macroblocks involves receiving, buffering, reordering using a microcode unit, and decoding video data using a separate decoder unit. The video stream is encoded using the H.264 video standard.
13. The method as recited in claim 8 further comprising: parsing said video stream; and performing Variable Length Decoding (VLD) on said video stream.
The video decoding method that handles out-of-order macroblocks involves receiving, buffering, reordering using a microcode unit, and decoding video data using a separate decoder unit. The method also includes parsing the video stream and performing Variable Length Decoding (VLD).
14. A video stream decoder comprising: a printed circuit board; a connector coupled to said printed circuit board, said connector for removably coupling said video stream decoder to a computer system; and an integrated circuit coupled to said printed circuit board and coupled to said connector, said integrated circuit comprising: a microcode engine for receiving compressed data representing macro-blocks of a frame of a video stream, wherein at least one macro-block is received out-of-order, wherein said microcode engine is operable to detect said at least one macro-block is received out-of-order, to buffer said compressed data in response to detecting said macro-block is out-of-order, and to reorder said macro-blocks of said frame into raster scan order and to send reordered macro-blocks in said raster scan order to a digital video decoder, said digital video decoder for receiving said macro-blocks in raster scan order and for decoding said macro-blocks, wherein said digital video decoder comprises circuity that requires said macro-blocks to be received in said raster scan order in order to process said macro-blocks of said video stream.
A video stream decoder is built on a printed circuit board and connectable to a computer. It features an integrated circuit with a microcode engine which receives compressed video data with potentially out-of-order macroblocks. The microcode engine detects and buffers out-of-order macroblocks, reorders them into raster scan order (left-to-right, top-to-bottom), and sends them to a digital video decoder. The digital video decoder requires the macroblocks to be in raster scan order for processing.
15. The video stream decoder of claim 14 , wherein said digital video decoder comprises: a command parser for accessing said video stream and for identifying a video encoding standard used for encoding said video stream; and a plurality of hardware decoding blocks for performing operations associated with decoding said video stream, wherein different subsets of said plurality of hardware decoding blocks are for decoding video streams encoded using different video encoding standards.
The video stream decoder from the previous description includes a digital video decoder with a command parser and multiple hardware decoding blocks. The command parser analyzes the video stream to identify the video encoding standard used (e.g., H.264, MPEG). Based on the identified standard, a specific subset of the hardware decoding blocks is activated to handle the decoding process. Different video standards use different combinations of these hardware blocks.
16. The video stream decoder of claim 15 , wherein said hardware multi-standard video decoder device further comprises an in-the-loop deblocking filter for performing a macro-block-level deblocking operation on a decoded macro-block.
The video stream decoder from the previous description, which includes a digital video decoder with standard-specific decoding blocks, also contains an in-the-loop deblocking filter. This filter operates at the macroblock level, reducing blocking artifacts within the decoded video, and is integrated into the main decoding loop for real-time processing.
17. The video stream decoder of claim 16 , wherein said microcode engine is operable to forward out-of-order macro-blocks to said digital video decoder if said video stream does not utilize said in-the-loop deblocking filter.
The video stream decoder from the previous description includes a digital video decoder with a command parser that identifies the video encoding standard, hardware decoding blocks specific to each standard, an in-the-loop deblocking filter and a microcode engine. If the video stream being decoded does *not* use the in-the-loop deblocking filter, the microcode engine bypasses the reordering process and forwards out-of-order macroblocks directly to the digital video decoder. This optimizes processing when deblocking isn't needed.
18. The video stream decoder of claim 17 , wherein said hardware multi-standard video decoder device further comprises an out-of-loop filter for performing a frame-level post-processing operation on a decoded frame.
The video stream decoder from the previous description includes a digital video decoder with a command parser that identifies the video encoding standard, hardware decoding blocks specific to each standard, an in-the-loop deblocking filter and a microcode engine. If the video stream being decoded does *not* use the in-the-loop deblocking filter, the microcode engine bypasses the reordering process and forwards out-of-order macroblocks directly to the digital video decoder. Additionally, it includes an out-of-loop filter that performs a frame-level post-processing operation on the decoded frame to further enhance the video quality after decoding and deblocking.
19. The video stream decoder of claim 14 , wherein said video stream is encoded using H.264 video standard.
The video stream decoder that handles out-of-order macroblocks includes a microcode engine that buffers and reorders macroblocks and a digital video decoder which needs macroblocks in raster scan order to decode the video stream. The video stream is encoded using the H.264 video standard.
20. The video stream decoder of claim 14 , wherein said microcode engine is operable to parse said video stream and to perform Variable Length Decoding (VLD) on said video stream.
The video stream decoder that handles out-of-order macroblocks includes a microcode engine that buffers and reorders macroblocks and a digital video decoder which needs macroblocks in raster scan order to decode the video stream. The microcode engine also parses the video stream and performs Variable Length Decoding (VLD) on the data. VLD is a technique to decode compressed video data.
21. The video stream decoder of claim 14 , wherein said microcode engine is configured to reorder said macro-blocks of said frame into raster scan order upon buffering each of said macro-blocks of said frame.
The video stream decoder that handles out-of-order macroblocks includes a microcode engine that buffers and reorders macroblocks and a digital video decoder which needs macroblocks in raster scan order to decode the video stream. The microcode engine reorders the macroblocks into raster scan order as each macroblock of a frame is buffered.
22. The video decoder architecture of claim 1 , wherein said digital video decoder is a hardware multi-standard video decoder device.
The video decoder architecture that handles out-of-order macroblocks includes a microcode engine that buffers and reorders macroblocks and a digital video decoder which needs macroblocks in raster scan order to decode the video stream. The digital video decoder is a hardware multi-standard video decoder device.
23. The method as recited in claim 8 , wherein said decoder unit comprises a hardware multi-standard video decoder device.
The video decoding method that handles out-of-order macroblocks involves receiving, buffering, reordering using a microcode unit, and decoding video data using a separate decoder unit. The decoder unit is a hardware multi-standard video decoder device.
24. The video stream decoder of claim 14 , wherein said digital video decoder is a hardware multi-standard video decoder device.
The video stream decoder that handles out-of-order macroblocks includes a microcode engine that buffers and reorders macroblocks and a digital video decoder which needs macroblocks in raster scan order to decode the video stream. The digital video decoder is a hardware multi-standard video decoder device.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
December 9, 2005
October 17, 2017
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.