Video and graphics system with an MPEG video decoder for concurrent multi-row decoding
First Claim
1. A video decoding system for decoding video data, said system comprising:
- at least one decode path for decoding the video data, said at least one decode path comprising a first processing element and a second processing element, wherein the video data is organized into a plurality of rows, each row comprising a plurality of macroblocks, each macroblock comprising a first portion and a second portion, and said at least one decode path concurrently decodes at least two rows of the video data, wherein the first processing element decodes the first portion of each macroblock and the second processing element decodes the second portion of each macroblock, and wherein the first portion comprises a macroblock header and the second portion comprises block layer data.
6 Assignments
0 Petitions
Accused Products
Abstract
A video and graphics system processes video data including both analog video, e.g., NTSC/PAL/SECAM/S-video, and digital video, e.g., MPEG-2 video in SDTV or HDTV format. The video and graphics system includes a video decoder, which is capable of concurrently decoding multiple SLICEs of MPEG-2 video data. The video decoder includes multiple row decoding engines for decoding the MPEG-2 video data. Each row decoding engine concurrently decodes two or more rows of the MPEG-2 video data. The row decoding engines have a pipelined architecture for concurrently decoding multiple rows of MPEG-2 video data. The video decoder may be integrated on an integrated circuit chip with other video and graphics system components such as transport processors for receiving one or more compressed data streams and for extracting video data, and a video compositor for blending processed video data with graphics.
319 Citations
27 Claims
-
1. A video decoding system for decoding video data, said system comprising:
-
at least one decode path for decoding the video data, said at least one decode path comprising a first processing element and a second processing element, wherein the video data is organized into a plurality of rows, each row comprising a plurality of macroblocks, each macroblock comprising a first portion and a second portion, and said at least one decode path concurrently decodes at least two rows of the video data, wherein the first processing element decodes the first portion of each macroblock and the second processing element decodes the second portion of each macroblock, and wherein the first portion comprises a macroblock header and the second portion comprises block layer data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A video decoding system for decoding video data, said system comprising:
-
at least one decode path for decoding the video data, said at least one decode path comprising a first processing element and a second processing element, wherein the video data is organized into a plurality of rows, each row comprising a plurality of macroblocks, each macroblock comprising a first portion and a second portion, and said at least one decode path concurrently decodes at least two rows of the video data, and wherein the first processing element decodes the first portion of each macroblock and the second processing element decodes the second portion of each macroblock, the system further comprising a switch wherein the first processing element decodes the first portion of a first macroblock and the switch provides the second portion of the first macroblock to the second processing element for decoding. - View Dependent Claims (10)
-
-
11. A video decoding system for decoding video data, said system comprising:
-
at least one decode path for decoding the video data, said at least one decode path comprising a first processing element and a second processing element, wherein the video data is organized into a plurality of rows, each row comprising a plurality of macroblocks, each macroblock comprising a first portion and a second portion, and said at least one decode path concurrently decodes at least two rows of the video data, wherein the first processing element decodes the first portion of each macroblock and the second processing element decodes the second portion of each macroblock, wherein the video data comprises MPEG-2 video data and each row comprises at least one SLICE comprising the macroblocks, and wherein said at least one decode path comprises first and second decode paths, wherein the first decode path comprises the first processing element and the second processing element for concurrently decoding the macroblocks of first and second SLICEs, and the second decode path comprises a third processing element and a fourth processing element for concurrently decoding the macroblocks of third and fourth SLICEs, and wherein the first and second SLICEs are decoded in parallel with the third and fourth SLICEs.
-
-
12. A method of decoding video data comprising the steps of:
-
receiving a plurality of rows of the video data, each row comprising a plurality of macroblocks, each macroblock comprising a first portion and a second portion; and
concurrently decoding at least two rows of the video data, wherein a first processing element decodes the first portion of each macroblock and the second processing element decodes the second portion of each macroblock, and wherein the first portion comprises a macroblock header and the second portion comprises block layer data. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
-
19. A method of decoding video data comprising the steps of:
-
receiving a plurality of rows of the video data, each row comprising a plurality of macroblocks, each macroblock comprising a first portion and a second portion; and
concurrently decoding at least two rows of the video data, wherein a first processing element decodes the first portion of each macroblock and the second processing element decodes the second portion of each macroblock, wherein the video data comprises MPEG-2 video data and each row comprises at least one SLICE comprising the macroblocks, wherein the step of concurrently decoding at least two rows of the video data comprises the steps of decoding a first portion of a first macroblock using the first processing element and providing a second portion of the first macroblock to the second processing element for decoding, and wherein the step of concurrently decoding at least two rows of the video data further comprises the steps of decoding the first portion of a second macroblock using the first processing element while concurrently decoding the second portion of the first macroblock using the second processing element. - View Dependent Claims (20, 21)
-
-
22. A method of decoding video data comprising the steps of:
-
receiving a plurality of rows of the video data, each row comprising a plurality of macroblocks, each macroblock comprising a first portion and a second portion; and
concurrently decoding at least two rows of the video data, wherein a first processing element decodes the first portion of each macroblock and the second processing element decodes the second portion of each macroblock, wherein the video data comprises MPEG-2 video data and each row comprises at least one SLICE comprising the macroblocks, and wherein the step of concurrently decoding at least two rows of the video data comprises the steps of concurrently decoding the macroblocks of first and second SLICEs, and concurrently decoding the macroblocks of third and fourth SLICEs, wherein the first and second SLICES are decoded in parallel with the third and fourth SLICEs.
-
-
23. A video and graphics system comprising:
-
a transport processor for receiving one or more compressed data streams and for extracting video data;
a video decoder including at least one decode path for decoding the video data to generate decoded video data, said at least one decode path comprising a first processing element and a second processing element; and
a video compositor for blending the decoded video data with graphics, wherein the video data is organized into a plurality of rows, each row comprising a plurality of macroblocks, each macroblock comprising a first portion and a second portion, and said at least one decode path concurrently decodes at least two rows of the video data, wherein the first processing element decodes the first portion of each macroblock and the second processing element decodes the second portion of each macroblock, and wherein the first portion comprises a macroblock header and the second portion comprises block layer data. - View Dependent Claims (24, 25, 26)
-
-
27. A video decoding system for decoding video data, said system comprising:
-
at least one decode path for decoding the video data, said at least one decode path comprising a first processing element and a second processing element, wherein the video data is organized into a plurality of rows, each row comprising a plurality of macroblocks, each macroblock comprising a first portion and a second portion, and said at least one decode path concurrently decodes at least two rows of the video data, wherein the first processing element decodes the first portion of each macroblock and the second processing element decodes the second portion of each macroblock, wherein the video data comprises MPEG-2 video data and each row comprises at least one SLICE comprising the macroblocks, wherein the first processing element decodes the first portion of a first macroblock while the second processing element concurrently decodes the second portion of a second macroblock, wherein the first macroblock is from a first SLICE and the second macroblock is from a second SLICE, and wherein the first and second SLICEs are from different rows.
-
Specification