throbber

`
`Ulllted States Patent
`
`
`Stearns et al.
`
`
`
`[19]
`
`
`
`[11] Patent Number:
`
`
`
`
`
`
`[45] Date of Patent:
`
`5,774,676
`
`
`*Jun. 30, 1998
`
`
`
`
`US005774676A
`
`
`
`[54] METHOD AND APPARATUS FOR
`
`
`
`
`
`DECOMPRESSION OF MPEG COMPRESSED
`
`
`DATA IN A COMPUTER SYSTEM
`
`
`
`
`
`
`
`95 32578
`
`
`
`
`11/1995 WIPO .
`
`
`
`OTHER PUBLICATIONS
`
`
`
`
`
`[75]
`
`
`
`
`
`
`Inventors; Charles C_ Stearns, San Jose;
`
`
`
`Stephanie w_ T], Mi]pi[aS,be[h of
`Cahf.
`
`
`
`
`[
`
`.
`.
`
`
`
`
`
`A551gT1ee3 S3: I11C01‘P01‘3ted> Santa Clara, Ca11f~
`[73]
`.
`.
`*
`
`
`
`
`
`
`
`
`
`] Nedeei
`The term of due peter” Shall not extend
`
`
`
`
`
`
`
`beyond the explraden date of Pat‘ No‘
`5,774,676.
`
`
`
`
`
`
`
`
`[21] Appl' No‘: 5383887
`
`
`
`
`[22]
`Filed.
`()et_ 3, 1995
`
`[51]
`Int. Cl.5 .................................................... .. G06F 17/00
`
`
`
`
`
`[52]
`"""""""" " 395/200377
`_
`
`
`
`
`
`
`
`
`
`
`
`[58] Fleld of Search .......................... .. 364/514 R, 514 A,
`
`
`
`
`
`
`364/71502; 395/200~77> 412> 439; 382/233>
`246> 234
`
`
`
`
`
`[56]
`
`
`
`
`
`
`5,212,742
`
`5,335,321
`5’379’356
`5,394,534
`5,493,339
`
`5,557,538
`
`5,642,139
`
`
`
`
`_
`
`References Clted
`
`
`
`
`
`Us. PATENT DOCUMENTS
`
`..................... .. 382/233
`5/1993 Normille et al.
`
`
`
`
`
`........................ .. 395/162
`8/1994 Harney et al.
`
`
`1/1995 Purcelletal‘
`382/233
`
`
`
`
`2/1995 Kulakowski et al.
`395/425
`. . . .. 348/461
`2/1996 Birch et al.
`. . . . . . . . .
`
`
`
`
`
`9/1996 Retter et al.
`. 364/514 R
`
`
`
`
`
`6/1997 Eglit et al.
`382/233
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`FOREIGN PATENT DOCUMENTS
`9/1992 European Pat. Off.
`.
`0 503 956
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Foley, P.:. “The MPACT Media Processor Redefines the
`
`
`
`
`
`
`
`Multimedia PC”,
`IEEE Comput. Soc. Press, USA, pp.
`311-318, XP000577494, proceedings of Compcon ’96.
`
`
`
`
`
`
`
`
`
`
`
`
`
`Gruger, K., et al.: MPEG-1 Low Cost Encoder Solution,
`
`
`
`
`
`
`
`Proceedings of the SPIE—The International Society for
`
`
`
`
`
`
`Optical Engineering, 1995, USA, pp. 41-51, XP000577418,
`
`
`
`
`
`
`
`Advanced Image and Video Communications and Storage
`
`
`
`
`
`
`Technologies, Amsterdam, Netherlands, 20-23 Mar. 1995.
`
`
`
`
`Primary Examiner—Ellis B. Ramirez
`
`
`
`
`
`
`
`
`Attorney, Agent, or Firm—SkjerVen, Morrill, MacPherson,
`
`
`
`
`
`Franklin & Friel LLP; Norman R. Klivans
`
`
`
`ABSTRACT
`[57]
`
`
`MPEG compressed data is decompressed in a computer
`
`
`
`
`
`
`
`
`
`
`
`System by Sharing Computational decompression tasks
`
`
`
`
`
`
`
`the
`between the computer system host microprocessor,
`graphics accelerator, and a dedicated MPEG processor in
`
`
`
`
`
`
`order to make best use of resources in the computer system.
`
`
`
`
`
`
`
`
`Thus the dedicated MPEG processor is of minimum capa-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`bility and hence advantageously minimum cost. The host
`microprocessor is used to decompress the MPEG upper data
`
`
`
`
`
`
`
`layers. The more powerful the host microprocessor, the more
`
`
`
`
`
`
`
`
`
`upper data layers it deeempreeeee The remainder ef the
`
`
`
`
`
`
`
`decom ression (lower data la ers)
`erformed b
`the
`is
`
`
`
`
`
`
`
`t d
`MPEGPd d.
`d5/’
`th
`P h.
`15’
`t
`e lea e process“ an 0r
`e g”? leg aeee era 0“
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`26 Claims, 14 Drawing Sheets
`
`
`
`
`
`
`
`
`Microfiche Appendix Included
`(1 Microfiche, 51 Pages)
`
`
`
`
`
`
`
`
`
`System
`
`Memory
`
`36
`
`
`
`C54
`
`
`
`30
`
`
`
`
`
`
`
`
`
` Micro
`
`Processor
`
`
`
`
`
`
`I4
`
`2
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Graphics Acc.
`
`
`MPEG Acc.
`
`
`
`
`
`
`
`1
`
`Peripheral Bus
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Lower ioyer
`
`decompression
`
`3
`3
`
`
`
`UPPGT '°Y9_I
`d6C0mPie33'°”
`
`
`
`
`
`
`Page 1 of 24
`
`Samsung Exhibit 1007
`
`Samsung Exhibit 1007
`
`Page 1 of 24
`
`

`

`
`
`U.S. Patent
`
`
`
`Jun. 30, 1998
`
`
`
`
`
`Sheet 1 of 14
`
`5,774,676
`
`
`
`
`
`
`White/ Green Book Layer
`
`
`
`MPEG System Layer
`
`r“d"*i
`
`
`
`
`Video Layer
`Audio Layer
`
`Sequence
`
`
`Group of Pictures
`
`Picture
`
`Slice
`MacroBiock
`
`
`
`
`
`1 P
`
`
`
`
`
`
`
`
`
`36
`
`
`
`FIG.
`
`Frame
`
`
`Buffer
`
`
`38:
`
`
`
`
`
`
`
`
`3
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`FIG. 2
`
`Peripheral Bus -
`
`E
`
`
`
`
`
`Chip Set
`
`
`
`
`
`34
`
`
`
`Upper layer
`decompression
`
`Micro
`
`
`
`
`
`30
`
`
`
`
`
`rivate
`
`
`Memory
`
`
`
`
`
`
`
`
`
`
`
`
`
`Lower layer
`
`
`
`
`decompression
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`f
`
`
`
`E
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Page 2 of 24
`
`Page 2 of 24
`
`

`

`
`
`U.S. Patent
`
`
`
`Jun. 30, 1998
`
`
`
`
`Sheet 2 of 14
`
`5,774,676
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Peripheral Bus
`
`
`3
`
`42
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`layer
`Lower
`
`
`decompression
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`.
`
`
`
`
`
`
`
`
`
`Micro
`Processor
`
`
`
`Upper 10)/er
`
`
`decompression
`
`
`
`
`
`
`
`I
`
`
`
`
`
`
`.
`
`. n
`
`
`__ _ _ _
`
`
`
`
`
`Sound
`System
`
`
`
`. ,
`
`- -
`
`l
`
`
`
`52
`
`
`\
`
`CD—ROM
`
`
`
`Page 3 of 24
`
`Upper layer
`Lower layer
`
`
`
`
`
`
`3
`decompression
`decompression
`
`
`FIG. 4
`
` 50
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Micro
`
`
`Processor
`
`
`
`
`
`
`
`
`
`Graphics Acc.
`
`
`
`
`
`MPEG Ace.
`
`
`
`
`408
`
`ll
`l
`Peripheral Bus
`
`
`
`
`Y
`
`42
`
`
`
`Page 3 of 24
`
`

`

`
`
`U.S. Patent
`
`
`
`Jun. 30, 1998
`
`
`
`
`Sheet 3 of 14
`
`5,774,676
`
`
`
`
`
`
`
`
`
`DE
`
`
`mas
`
`
`
`
`
`
`co_m$aEo$o
`
`
`
`225:
`
`
`
`Fr25En.
`
`
`
`Nm
`
`
`
`
`
`
`
`co_mmoaEo8Q
`
`
`mace:
`
`
`
`
`
`cosoucozoim
`
`
`
`
`.382
`
`
`25
`
`eém
`
`
`
`Page 4 of 24
`
`Page 4 of 24
`
`
`
`
`
`

`

`
`
`U.S. Patent
`
`
`
`Jun. 30, 1998
`
`
`
`
`Sheet 4 of 14
`
`5,774,676
`
`
`
`
`Start
`
`Frame
`
`
`Start
`
`Frame
`
`
`Start
`
`Frame
`
`
`Start
`
`Frame
`
`
`Start
`
`Frame
`
`
`Start
`
`Frame
`
`l
`
`l
`3
`
`
`display
`
`
`IO frame
`
`-
`3
`
`.
`
`r
`
`
`display
`
`B1 frame
`1
`
`
`l
`
`
`
`
`display
`
`82 frame
`-
`
`
`
`l
`
`
`display
`
`
`P3 frame
`
`l
`
`
`
`
`decode
`decode
`decode
`
`
`
`
`
`
`IO_frame{ L P3 framefil
`I
`3. B1 fram_e_l
`
`
`
`V
`3
`l
`
`'
`
`_B.l_f
`B2
`P6
`Program
`Program
`t Program
`
`
`
`
`
`
`
`l
`decode
`decode
`
`
`
`
`l 82 frame‘ FP6 frame_{
`
`
`S
`
`fig
`Program
`
`
`
`
`
`
`decode
`
`
`B4 framey
`
`
`:
`
`if
`Program
`
`
`_
`Drsplay
`
`
`
`
`VDE
`
`E
`
`*
`
`*
`
`Host
`
`
`
`
`(Software)
`Driller
`
`
`W
`
`
`
`
`
`P‘)
`I Program
`
`
`Start
`
`Frame
`
`
`Start
`
`Frame
`
`
`Start
`
`Frame
`
`
`Start
`
`Frame
`
`
`Start
`
`Frame
`
`
`Start
`
`Frame
`
`
`1
`
`_
`Display
`
`
`
`1
`
`
`
`W5
`
`
`decode
`
`
`10 frarr_1_e_{
`
`
`
`
`I display
`
`
`10 frame
`
`-l
`
`V
`
`
`
`no display
`
`
`Bl frame
`
`
`
`display
`display
`
`
`
`
`P3 frame
`B2 frame
`
`
`y—-—~~l —-——l
`
`
`
`decode
`
`
`P3 frame_,
`
`
`
`r
`
`
`
`decode
`
`
`
`
`81 frame/
`
`
`
`decode
`
`
`
`
`
`
`decode
`
`
`B2 frame‘ F P6 frame_.
`
`
`
`
`
`decode
`
`
`B4 frome_{
`
`
`
`abandon
`
`
`
`
`frame
`
`B1
`
`Host
`
`
`/Software)
`l D’lV9F
`
`
`
`
`
`Program
`
`
`
`Program
`
`
`
`Program
`
`
`
`
`Program
`
`
`
`
`Program
`
`
`
`
`FIG. 7
`
`Page 5 of 24
`
`Page 5 of 24
`
`

`

`
`U.S. Patent
`
`
`
`
`
`
`Jun. 30, 1998
`
`
`Sheet 5 of 14
`
`5,774,676
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Muster Controller
`
`82
`
`
`
`
`FIG. 8
`
`Snwflmwwmw
`
`
`
`
`
`
`Awmmmmmm“HmuMW
`
`
`
`
`
`
`swmwwwmm
`
`
`
`
`19W%_,w..mwW
`
`
`
`
`
`
`
`36
`
`zmmwmwww
`
`
`
`
`
`48
`
`
`
`Oooafilun/_..JA.A._.D
`
`42086
`
`
`
`
`
`
`
`35
`
`Page 6 of 24
`
`
`
`
`
`emmmmwmw
`
`
`
`
`
`
`7wwmmnww
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`FIG. 9
`
`Page 6 of 24
`
`
`

`

`
`
`U.S. Patent
`
`
`
`Jun. 30, 1998
`
`
`
`
`Sheet 6 of 14
`
`5,774,676
`
`
`
`/
`
`/”*’\
`ENE
`
`(B
`‘
`O
`
`l
`
`B
`1
`
`\
`
`B
`7
`
`P
`8
`
`,4’ \ / \_/ \\_4/ \ / L// \\4’ \ \/
`____,__.M._,-
`__,v..__///
`\\.M.
`,...._._..?//
`\_.._.... 4
`
`
`FIG. 10
`
`
`
`1 begin
`
`
`
`
`
`end 2
`
`
`3 begin
`
`
`
`
`end 1
`
`
`2 begin
`
`end 3
`
`
`
`
`4 begin
`
`
`
`*1
`
`-4
`
`-
`
`end 4E begin
`
`
`
`
`
`
`
`6 begin
`
`end 7
`
`7
`
`8
`
`
`W
`8
`
`
`
`9 begin
`
`
`
`G 6
`
`
`an
`7 be In
`end 9 i 10 begin
`
`
`
`97
`
`
`
`
`end 5
`
`
`
`.1
`__J
`
`end 10 .
`
`
`
`
`FIG.
`
`11
`
`
`
`tu
`
`F
`
`;
`
`Page 7 of 24
`
`Page 7 of 24
`
`

`

`
`
`U.S. Patent
`
`
`
`Jun. 30, 1998
`
`
`
`
`Sheet 7 of 14
`
`5,774,676
`
`
`
`
`DATA_|N
`
`
`
`
`
`
`
`Page 8 of 24
`
`Page 8 of 24
`
`

`

`
`
`U.S. Patent
`
`
`
`Jun. 30, 1998
`
`
`
`
`Sheet 8 of 14
`
`5,774,676
`
`
`
`
`
`FORWARD REF. FRAME
`
`
`
`
`
`BACKWARD REF. FRAME
`
`
`
`
` HORIZ. INTERP.
`
`
`
`
`
`
`HORIZ.
`
`
`
`INTERP.
`
`
`
`HBA
`
`
`
`122A
`
`
`
`
`
`
`VERRCAL INTERP.
`
`
`
`
`
` VERTICAL INTERP.
`
`
`
`
`
`POST PROC SSING
`E
`
`
`
`
`
`124
`
`
`WR_DATA
`
`
`
`
`FIG. 13A
`
`
`
`
`DATAJN
`
`
`HORIZ.
`
`INTERP.
`
`
`
`118
`
`
`
`178
`
`
`
`
`
`
`
`VERTICAL INTERP.
`
`
`
`122
`
`
`
`
`
`POST PROCESSING
`
`124
`
`
`
`mm MEMORY
`
`
`
`180
`
`
`
`
`
`WR_DATA
`
`FIG. 13B
`
`
`
`Page 9 of 24
`
`Page 9 of 24
`
`

`

`
`U.S. Patent
`
`
`
`
`
`
`Jun. 30, 1998
`
`Sheet 9 of 14
`
`
`5,774,676
`
`
`
`
`
`MPEG Driver
`
`
`
`
`VDE_|nit
`MPG_lnit
`
`
`
`
`
`
`Allocate system memory buffers.
`initialize drivers.
`
`
`
`
`
`
`
`VDE_Open
`
`
`
`Initialize painters and variables.
`
`
`
`
`
`
`MPG_Open
`
`
`
`
`Open MPEG file, prepare
`
`
`
`
`to read and parse.
`
`
`
`
`
`
`
`
`
`
`
`
`
`VDE_AddPacket
`
`
`
`
`
`
`
`
`
`
`
`
`Parse video packet data into
`Send Video packets to VDE driver.
`
`
`
`
`
`
`
`
`
`
`
`
`
`Header buffer and Picture buffer.
`Send Audio packets to ADE driver.
`
` Read MPEG file data during initialization.
`
`
`
`
`
`
`MPG_Decode
`
`
`
`
`
`Start audio and video
`
`
`
`decode and playback.
`
`
`
`
`
`
`
`
`VDE_Decode
`
`
`
`
`Program CP2 to start VDE decoding.
`
`
`
`7
`
`Read MPEG file data as needed to keep
`
`
`
`
`
`
`audio buffers filled. Send any video
`
`
`
`
`
`
`
`
`
`
`
`packets encountered to VDE driver.
`
`
`
`
`
`
`VDE_AddPacket
`
`
`
`
`
`Parse video packet data into
`
`
`
`
`Header buffer and Picture buffer.
`
`
`
`
`MPG_Close
`
`
`
`
`
`terminate decode.
`Close MPEG file,
`
`
`VDE_Ciose
`
`
`
`Make sure VDE is stopped.
`
`
`
`
`
`
`MPG_Exit
`
`Deinitialize drivers.
`
`
`
`
`VDE_Exit
`
`
`
`Free system memory buffers.
`
`
`
`End
`
`
`
`
`FIG. 14A
`
`
`
`Page 10 of 24
`
`Page 10 of 24
`
`

`

`
`
`U.S. Patent
`
`
`
`Jun. 30, 1998
`
`
`
`
`Sheet 10 of 14
`
`5,774,676
`
`
`
`
`VDE_lnit
`
`
`
`
`
`
`Allocate system memory buffers.
`
`
`
`
`
`.
`
`Raw Buffer
`
`
`
`
`
`
`
`
`is used to hold raw video packet
`
`
`
`
`
`
`data until
`it can be parsed.
`
`
`
`
` {
`
`
`
`
`
`
`
`Header Buffer
`
`
`
`
`
`
`is used to hold parameters extracted from
`
`
`
`
`
`Sequence, Group, and Picture headers.
`
`
`
`
`
`Used to program CP2 registers.
`
`
`
`
`
`
`Picture Buffer
`
`
`
`
`
`
`
`to be
`is used to hold picture layer data,
`
`
`
`
`
`
`copied later into CP2 private memory.
`
`
`
`
`
`
`
`
`
`
`Target Buffers
`
`
`
`
`
`
`
`transfer
`are two buffers where CP2 will
`
`
`
`
`
`decompressed frames using PCI bus master.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Initialize variables for new MPEG file.
`
`
`
`
`
`Prepare to receive video packets.
`
`
`
`
`
`
`
`
`FIG. MB
`
`
`
`Page 11 of 24
`
`Page 11 of 24
`
`

`

`
`
`U.S. Patent
`
`
`
`Jun. 30, 1998
`
`
`
`
`Sheet 11 of 14
`
`5,774,676
`
`
`
`
`VDE__AddPacket
`
`
`
`Extract video PTS,
`
`
`
`if any.
`
`
`
`
`
`
`
`
`
`
`
`
`into Raw
`Copy rest of video packet
`
`
`
`
`
`to any
`buffer temporarily, appending it
`
`
`
`
`
`leftover data from previous packet.
`
`
`
`
`
`
`
`Parse packet data in Raw buffer.
`
`
`
`
`
`
`
`
`if Sequence header found, extract
`
`
`
`
`
`image size, quantizer matrices, etc.
`
`
`
`
`
`Copy into Header buffer.
`
`
`
`
`
`
`If Group header found,
`
`
`
`
`extract
`time code, etc.
`
`
`Copy into Header buffer.
`
`
`
`
`
`
`
`
`
`
`
`Copy into Header buffer.
`
`
`
`
`
`Copy into Picture buffer.
`
`
`
`
`
`
`
`
`
`Copy into Header buffer.
`
`
`
`
`
`
`
`
`
`
`If Picture header found, extract
`
`
`
`
`
`temporal reference, picture type, etc.
`
`
`
`
`
`Calcuiate PTS if none was given.
`
`
`
`
`
`
`
`Locate end of picture,
`
`
`
`
`
`
`and pad with picture end code.
`
`
`
`
`
`
`if End of Sequence found,
`
`
`
`
`mark end of video sequence.
`
`
`
`
`
`
`FIG. 140
`
`
`
`Page 12 of 24
`
`Page 12 of 24
`
`

`

`
`
`U.S. Patent
`
`
`
`
`Jun. 30, 1998
`
`
`Sheet 12 of 14
`
`5,774,676
`
`
`
`VDE,Decode
`
`
`
`
`
`
`
`
`
`Program CP2 to partition private memory:
`
`
`
`
`
`
`VDE Input buffers Ping and Pong,
`
`
`
`
`
`I5 VDE Reference Frame buffers.
`
`
`
`
`
`
`
`
`
`
`
`
`
`buffers with picture data.
`
` Fill VDE Input Ping and Pong
`
`
`
`Get from Picture buffer.
`
`
`
`
`
`
`
`
`
`Get from Header buffer.
`
`
`
`
`
`
`
`
`
`
`Program CP2 with Sequence information:
`
`
`
`
`image size, quantization matrices.
`
`
`
`
`i
`
`
`
`
`
`Initialize STC to a reasonable value.
`
`
`
`
`
`
`
`
`
`
`
`Program CP2 to decode first picture:
`
`
`
`
`
`VPTS, Picture Offset, Picture Type, etc.
`
`
`
`
`
`
`
`
`Get from Header buffer.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Program CP2 to decode second picture:
`
`
`
`
`
`
`
`Get from Header buffer.
`
`
`
`
`
`
`
`VPTS, Picture Offset, Picture Type, etc.
`
`
`
`
`
`
`
`
`FIG. 14D
`
`
`
`Page 13 of 24
`
`Page 13 of 24
`
`

`

`
`
`U.S. Patent
`
`
`
`Jun. 30, 1998
`
`
`
`
`Sheet 13 of 14
`
`5,774,676
`
`
`
`
`
`
`
`and start of decoding of picture PNH.
`
`
`
`
`
`
`indicates start
`Called when SCR=VPTS.
`
`
`
`
`
`
`
`of PCi master transfer of picture PN.
`
`
`
`
`
`
`
`
`
`
`
`
`
`Check next entry in Header buffer.
`
`
`
`
`
`
`if next entry is End of Sequence, stop.
`
`
`
`
`Get from Header buffer.
`
`
`
`
`
`
`
`
`If next entry is Sequence Header, program
`
`
`
`
`
`CP2 with new quantization matrices.
`
`
`
`
`
`
`get from Header buffet
`
`
`
`
`
`
`
`
`
`if next entry is Group Header, reset
`
`
`
`
`
`
`some counters to start the next group.
`
`
`
`
`
`
`Get from Header buffer.
`
`
`
`_L_.__
` Get from Header buffer.
`
`
`
`
`
`
`
`
`
`
`If next entry is Picture Header, program
`
`
`
`
`
`CP2 for next picture PN+2:
`
`
`
`
`
`VPTS, Picture Offset, Picture Type, etc.
`
`
`
`
`
`
`
`
`
`
`
`
`Send finished picture PN_1 from system
`
`
`
`
`
`
`memory buffer to 868 pixel formatter.
`
`
`
`
`
`
`
`
`
`
`FIG. 14E
`
`
`
`Page 14 of 24
`
`Page 14 of 24
`
`

`

`
`
`U.S. Patent
`
`
`
`
`Jun. 30, 1998
`
`
`Sheet 14 of 14
`
`5,774,676
`
`
`
`
`
`
`CV_lRQ Handler
`
`
`
`
`
`
`
`
`
`
`Called when CP2 detects that one of
`
`
`
`
`
`
`
`the VDE lnput Ping or Pong buffer
`
`
`
`
`has been consumed.
`
`
`
`
`Get from Picture buffer.
`
`
`
`
`
`
`
`block of picture data.
`
`
`
`
`
`
`
`Fill Ping or Pong buffer with next
`
`
`
`
`
`
`
`
`End
`
`
`
`
`
`
`
`
`
`
`
`Make sure VDE and timers are stopped.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Free system memory buffers
`
`
`
`allocated by VDE_lnit.
`
`
`
`
`
`Page 15 of 24
`
`
`FIG. 14F
`
`
`
`Page 15 of 24
`
`

`

`1
`
`METHOD AND APPARATUS FOR
`
`
`
`
`DECOMPRESSION OF MPEG COMPRESSED
`
`
`DATA IN A COMPUTER SYSTEM
`
`
`CROSS-REFERENCE TO RELATED
`
`
`APPLICATIONS
`
`
`
`
`
`
`This application is related to copending and commonly
`
`
`
`
`
`
`
`owned U.S. patent applications Ser. No. 08/489,488, filed
`
`
`
`
`
`
`
`
`Jun. 12, 1995, entitled “Decompression of MPEG Com-
`
`
`
`
`
`
`
`pressed Data in a Computer System”, Charles C. Stearns,
`
`
`
`
`
`
`Ser. No. 08/490,322, filed Jun. 12, 1995, entitled “Video
`
`
`
`
`
`
`
`
`
`Decoder Engine”, Soma Bhattacharjee et al., Ser. No.
`
`
`
`
`
`
`
`
`08/489,489, filed Jun. 12, 1995, entitled “Audio Decoder
`
`
`
`
`
`
`
`
`Engine,” Charlene S. Ku et al., and Ser. No. 08/508,636,
`
`
`
`
`
`
`
`
`filed Jul. 28, 1995, entitled “Frame Reconstruction For
`
`
`
`
`
`
`
`
`Video Data Compression”, Stephanie W. Ti et al., all incor-
`
`
`
`
`
`
`
`
`
`porated by reference.
`MICROFICHE APPENDIX
`
`
`
`Amicrofiche appendix including 1 fiche and a total of 51
`
`
`
`
`
`
`frames is a part of this disclosure.
`
`
`
`
`BACKGROUND OF THE INVENTION
`
`
`
`1. Field of the Invention
`
`
`
`
`This invention relates to data decompression, and specifi-
`
`
`
`
`
`
`
`cally to decompression of MPEG compressed data in a
`
`
`
`
`
`
`
`
`computer system.
`
`
`2. Description of Prior Art
`
`
`
`
`
`
`
`
`
`
`
`The well-known MPEG (Motion Picture Experts Group)
`data standard defines two compression/decompression
`
`
`
`
`
`processes, called conventionally MPEG 1 and MPEG 2. For
`
`
`
`
`
`
`
`purposes of this disclosure, MPEG 1 and MPEG 2 are
`
`
`
`
`
`
`
`
`similar. The MPEG 1 standard is described in the ISO
`
`
`
`
`
`
`
`
`publication No. ISO/IEC 11172: 1993(E), “Coding for mov-
`
`
`
`
`
`
`
`ing pictures and associated audio .
`. ”, and the MPEG 2
`.
`
`
`
`
`
`
`
`
`
`
`
`standard is defined in the ISO publication No. ISO/IEC
`
`
`
`
`
`
`
`13818-2, both incorporated by reference herein in their
`
`
`
`
`
`
`
`
`entirety. The MPEG standard defines the format of com-
`
`
`
`
`
`
`
`
`pressed audio and video data especially adapted for e.g.,
`
`
`
`
`
`
`
`
`
`motion pictures or other live video. MPEG compression is
`
`
`
`
`
`
`
`also suitable for other types of data including still pictures,
`
`
`
`
`
`
`
`
`
`text, etc. The MPEG standard in brief (the above-mentioned
`
`
`
`
`
`
`
`
`publications are more complete) defines the data format
`
`
`
`
`
`
`
`
`structure shown in FIG. 1 for CD-ROM content. The top
`
`
`
`
`
`
`
`
`required layer is the MPEG system layer having underneath
`
`
`
`
`
`
`
`
`it, in parallel, the video layer and audio layer. The MPEG
`
`
`
`
`
`
`
`
`
`
`
`system layer contains control data describing the video and
`
`
`
`
`
`
`
`
`
`audio layers.
`
`
`Above (wrapped around) the MPEG system layer is
`
`
`
`
`
`
`
`
`another (optional) layer called the White book (“video CD”)
`
`
`
`
`
`
`
`
`
`or the Green book (“CDI”) that includes more information
`
`
`
`
`
`
`
`
`
`about the particular program (movie). For instance, the book
`
`
`
`
`
`
`
`
`
`layer could include Karaoke type information, high resolu-
`
`
`
`
`
`
`
`
`tion still
`images, or other data about how the program
`
`
`
`
`
`
`
`
`
`
`content should appear on the screen. The video layer
`
`
`
`
`
`
`
`
`
`includes sequence (video), picture (frame), slice (horizontal
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`portions of a frame), macroblock (64 pixels by 64 pixels)
`
`
`
`
`
`
`
`
`and block (8 pixels by 8 pixels) layers, the format of each of
`which is described in detail by the MPEG standard.
`
`
`
`
`
`
`There are commercially available integrated circuits
`
`
`
`
`
`
`(chips) for MPEG decompression. Examples are those sold
`
`
`
`
`
`
`
`
`by C-Cube Microsystems and called the CL-450 and
`
`
`
`
`
`
`
`
`CL-480 products. In these products the MPEG audio and
`
`
`
`
`
`
`
`
`
`visual decompression (of all layers) is accomplished com-
`
`
`
`
`
`
`
`pletely in dedicated circuitry in an internally programmable
`
`
`
`
`
`
`60
`
`
`
`65
`
`
`
`Page 16 of 24
`
`10
`
`
`
`15
`
`
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`5,774,676
`
`
`
`2
`
`microcontroller. The book layer and entire MPEG system
`
`
`
`
`
`
`
`
`layer parsed to the last pixel of the compressed data are
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`decompressed using the C-Cube Microsystems products.
`Thus these chips accomplish the entire decompression on
`
`
`
`
`
`
`
`their own, because these chips are intended for use in
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`consumer type devices (not computers). Thus these chips
`include a system memory, a CD-ROM controller and any
`
`
`
`
`
`
`
`necessary processing power to perform complete MPEG
`
`
`
`
`
`
`
`decompression.
`Similar products are commercially available from a vari-
`
`
`
`
`
`
`
`ety of companies. While these products perform the decom-
`
`
`
`
`
`
`
`
`pression task fully in a functional manner, they are relatively
`
`
`
`
`
`
`
`
`expensive due to their inclusion of the large number of
`
`
`
`
`
`
`
`
`functions dedicated to MPEG decompression. Thus their
`
`
`
`
`
`
`commercial success has been limited by high cost.
`
`
`
`
`
`
`
`SUMMARY
`
`
`It has been recognized by the present inventors that in a
`
`
`
`
`
`
`
`
`computer (i.e., personal computer or workstation)
`
`
`
`
`
`
`environment, that already available elements are capable of
`
`
`
`
`
`
`
`performing a large portion of the MPEG decompression
`
`
`
`
`
`
`
`task. Thus in this environment use of a dedicated fully
`
`
`
`
`
`
`
`
`functional MPEG decompression integrated circuit is not
`
`
`
`
`
`
`
`necessary, and instead a substantial portion of the decom-
`
`
`
`
`
`
`
`
`pression can be off-loaded onto other conventional computer
`
`
`
`
`
`
`
`system elements. Thus only a relatively small portion of the
`
`
`
`
`
`
`
`
`actual data decompression must be performed by dedicated
`
`
`
`
`
`
`circuitry, if any. In accordance with the invention, the MPEG
`
`
`
`
`
`
`
`
`decompression task is allocated amongst various already
`
`
`
`
`
`
`existing elements of a typical computer system and if
`
`
`
`
`
`
`
`necessary, depending on the capabilities of these other
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`elements, an additional relatively small (hence inexpensive)
`dedicated MPEG decompression circuit is provided.
`
`
`
`
`
`Thus advantageously in accordance with the present
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`invention the MPEG (compressed using layers) content of
`data is decompressed in a computer system typically already
`
`
`
`
`
`
`frame
`including a microprocessor, graphics accelerator,
`
`
`
`
`
`buffer, peripheral bus and system memory. A shared com-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`putational approach between the microprocessor (host
`processor), graphics accelerator and a dedicated device
`
`
`
`
`
`
`makes best use of the computer system existing resources.
`
`
`
`
`
`
`
`
`This is a significant advantage over the prior art where the
`
`
`
`
`
`
`
`
`
`MPEG decompression is performed entirely by a dedicated
`
`
`
`
`
`processor. Thus in accordance with the invention by parti-
`
`
`
`
`
`
`
`tioning of the decompression process amongst the major
`
`
`
`
`
`
`
`
`available elements in a personal computer, decompression is
`
`
`
`
`
`
`
`provided inexpensively.
`Further, in accordance with the present invention frame
`
`
`
`
`
`
`
`
`reconstruction is carried out by logic circuitry including
`
`
`
`
`
`
`
`three main elements which are a horizontal interpolation
`
`
`
`
`
`
`
`element, a vertical interpolation element, and a post pro-
`
`
`
`
`
`
`
`cessing element. The horizontal interpolation element inter-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`polates two adjacent (horizontally adjacent) pixels in one
`particular MPEG block of pixels. That is, this is a digital
`
`
`
`
`
`
`
`averaging filter. The output of the horizontal interpolation
`
`
`
`
`
`
`
`
`element is then provided to the vertical interpolation element
`
`
`
`
`
`
`
`which similarly interpolates (averages) two pixels which are
`
`
`
`
`
`
`
`vertically adjacent in that same MPEG block. (In another
`
`
`
`
`
`
`
`
`embodiment, the vertical interpolation is before the hori-
`
`
`
`
`
`
`
`
`
`
`
`
`
`zontal interpolation.) In the post-processing element (which
`is a selector) the vertically and horizontally interpolated data
`
`
`
`
`
`
`
`
`is processed in conjunction with externally provided IDCT
`
`
`
`
`
`
`
`MPEG decompressed data to generate the final output data.
`
`
`
`
`
`
`
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`
`
`
`FIG. 1 shows conventional content layering for MPEG
`
`
`
`
`
`
`
`compression.
`
`
`
`Page 16 of 24
`
`

`

`
`
`4
`
`in the video data stream, the information resembles a pro-
`
`
`
`
`
`
`
`
`
`gram data/code data stream and in fact may contain execut-
`
`
`
`
`
`
`
`
`
`able code (software). The information at that level is thus
`
`
`
`
`
`
`
`
`like a program code stream containing control
`flow
`
`
`
`
`
`
`
`information, variable assignments and data structures.
`
`
`
`
`
`
`Hence it has been recognized that the microprocessor is
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`suited for parsing such information. (The term “parsing”
`herein indicates the steps necessary to decompress data each
`
`
`
`
`
`
`
`
`layer of the type defined by the MPEG standard.)
`
`
`
`
`
`
`
`The video layer, under the system layer,
`includes the
`
`
`
`
`
`
`
`
`
`compressed video content. There are as described above an
`
`
`
`
`
`
`
`
`additional six layers under the video layer as shown in FIG.
`
`
`
`
`
`
`
`
`
`1. These layers are the sequence layer, group of pictures
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`layer, picture layer, slice layer, macroblock layer, and block
`layer. All but
`the macroblock and block layers contain
`
`
`
`
`
`
`
`
`
`additional control and variable information similar to the
`
`
`
`
`
`
`
`type of information in the system layer. Thus again the
`
`
`
`
`
`
`
`
`
`microprocessor is best suited for parsing the information
`
`
`
`
`
`
`
`down to but not including the macroblock layer.
`
`
`
`
`
`
`
`Within the macroblock and block layers are compressed
`
`
`
`
`
`
`
`
`pixel data that requires, according to MPEG decompression,
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`steps including 1) variable length decoding (VLD), 2)
`
`
`
`
`
`
`
`inverse zig-zagging (IZZ), 3) inverse quantization (IQ), 4)
`inverse discrete cosine transformation (IDCT), and 5)
`
`
`
`
`
`
`
`motion vector compensation (MVC),
`in that order. The
`
`
`
`
`
`
`
`VLD, IZZ, IQ, and especially IDCT are computationally
`
`
`
`
`
`
`
`intensive operations, and suitable for a peripheral processor
`
`
`
`
`
`
`
`or the microprocessor capabilities, assuming adequate pro-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`cessing capability being available in the microprocessor.
`However, in some cases depending on the microprocessor
`
`
`
`
`
`
`capabilities, the microprocessor itself may be insufficient in
`
`
`
`
`
`
`power or completely utilized already for parsing the upper
`
`
`
`
`
`
`
`
`layers.
`The remaining task for video decompression is motion
`
`
`
`
`
`
`vector compensation (MVC) also referred to as frame recon-
`
`
`
`
`
`
`
`
`
`
`
`
`
`struction
`MVC requires retrieving large quantities of
`data from previously decompressed frames to reconstruct
`
`
`
`
`
`
`new frames. This process requires transferring large
`
`
`
`
`
`
`
`amounts of video data and hence is suited for the graphics
`
`
`
`
`
`
`
`
`
`accelerator conventionally present in a computer system. An
`
`
`
`
`
`example of such a graphics accelerator is the Trident
`
`
`
`
`
`
`
`
`TVP9512, or S3 Inc. Trio 64V.
`
`
`
`
`The audio stream layer under the system layer includes
`
`
`
`
`
`
`
`
`
`the compressed audio content. Audio decompression
`
`
`
`
`
`
`
`
`
`
`
`
`requires 1) variable length decoding, 2) windowing, and 3)
`filtering. Since audio sampling rates are lower than pixel
`
`
`
`
`
`
`
`
`
`(video) sampling rates, computational power and data band-
`
`
`
`
`
`
`
`
`width requirements for audio decompression are relatively
`
`
`
`
`
`
`
`low. Therefore, a microprocessor may be capable of accom-
`
`
`
`
`
`
`plishing this task completely, assuming it has sufficient
`
`
`
`
`
`
`
`computational power available.
`
`
`
`Thus in accordance with the invention the MPEG decom-
`
`
`
`
`
`
`
`
`pression process is partitioned between the various hardware
`
`
`
`
`
`
`components in a computer system according to the compu-
`
`
`
`
`
`
`tational and data bandwidth requirements of the MPEG
`
`
`
`
`
`
`
`
`decompression. Thus the system partitioning depends on the
`
`
`
`
`
`processing power of the microprocessor.
`
`
`
`
`Therefore, while the present invention is applicable to
`
`
`
`
`
`
`computers including various microprocessors of the types
`
`
`
`
`
`
`now commercially and to be available,
`the following
`
`
`
`
`
`
`
`description is of a computer systems having a particular
`
`
`
`
`
`
`
`
`
`
`
`
`class of microprocessor (the 486DX2 class microprocessors
`commercially available from e.g., Intel and Advanced Micro
`
`
`
`
`
`
`
`
`Devices.) Thus this description is illustrative and the prin-
`
`
`
`
`
`
`
`
`ciples disclosed herein are applicable to other types of
`
`
`
`
`
`
`
`
`
`computer systems including other microprocessors of all
`
`
`
`
`
`
`
`
`
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`
`
`
`
`
`
`
`
`
`
`60
`
`65
`
`
`
`Page 17 of 24
`
`5,774,676
`
`10
`
`
`
`15
`
`
`
`
`3
`FIG. 2 shows one embodiment of the invention with
`
`
`
`
`
`
`
`partitioning of decompression including a dedicated MPEG
`
`
`
`
`
`processor with associated private memory, in a computer.
`
`
`
`
`
`
`FIG. 3 shows a second embodiment of the invention also
`
`
`
`
`
`
`
`with a dedicated MPEG processor in a computer.
`
`
`
`
`
`FIG. 4 shows a third embodiment of the invention with
`
`
`
`
`
`
`
`partitioning of MPEG compression in a computer system
`
`
`
`
`
`
`using a high performance graphics accelerator.
`
`
`
`
`
`FIG. 5 shows a block diagram of a chip including MPEG
`
`
`
`
`
`
`
`video and audio decompression in accordance with the
`
`
`
`
`
`
`
`invention.
`
`FIG. 6 shows host processor/VDE partitioning of video
`
`
`
`
`
`
`
`
`decompression.
`FIG. 7 shows graceful degradation of video decompres-
`
`
`
`
`
`
`
`
`
`sion by abandoning frames.
`FIG. 8 shows in a block diagram three stage pipelining in
`
`
`
`
`
`
`
`the VDE.
`
`
`FIG. 9 shows a transparent IZZ process.
`
`
`
`
`
`FIG. 10 shows a group of pictures in display order in
`
`
`
`
`
`
`
`
`accordance with MPEG compression for frame reconstruc-
`
`
`
`
`
`
`
`tion.
`
`FIG. 11 shows an arrangement of slices in a picture in
`
`
`
`
`
`
`
`
`accordance with MPEG compression.
`
`
`
`
`FIG. 12 shows a frame reconstruction circuit in accor-
`
`
`
`
`
`
`
`
`dance with the present invention.
`
`
`
`
`
`FIGS. 13A and 13B show respectively parallel and serial
`
`
`
`
`
`
`
`
`processing in a frame reconstruction circuit as used for
`
`
`
`
`
`
`
`
`reconstruction of a B-type frame in accordance with the
`
`
`
`
`
`
`
`present invention.
`
`
`FIGS. 14A to 14F show a flowchart for a computer
`
`
`
`
`
`
`
`program for performing higher level video decompression in
`
`
`
`
`
`
`a host processor.
`
`
`
`Identical reference numbers in different figures refer to
`
`
`
`
`
`
`
`similar or identical structures.
`
`
`
`DETAILED DESCRIPTION OF THE
`
`
`
`PREFERRED EMBODIMENTS
`
`
`As well known, each element in a computer system (e.g.,
`
`
`
`
`
`
`
`
`personal computer or workstation) has particular strength
`
`
`
`
`
`
`and weaknesses. For instance,
`the microprocessor (host
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`processor) is typically the single most capable and expensive
`circuit in a computer system. It is intended to execute a
`
`
`
`
`
`
`
`single instruction stream with control flow and conditional
`
`
`
`
`
`
`
`branching in minimum time. Due to its internal arithmetic
`
`
`
`
`
`
`
`units, the microprocessor has high capability for data pars-
`
`
`
`
`
`
`
`
`
`ing and data dependent program execution. However, the
`
`
`
`
`
`
`
`
`microprocessor is less capable at transferring large quanti-
`
`
`
`
`
`
`ties of data, especially data originating from peripheral
`
`
`
`
`
`
`
`
`elements of the computer.
`
`
`
`The core logic chip set of a computer interfaces the
`
`
`
`
`
`
`
`
`
`microprocessor to the peripherals, manages the memory
`
`
`
`
`
`
`subsystem, arbitrates usage and maintains coherency.
`
`
`
`
`
`
`However, it has no computational capabilities of its own.
`
`
`
`
`
`
`
`
`The graphics subsystem manages and generates the data
`
`
`
`
`
`
`
`
`which is local to the frame buffer for storing video and
`
`
`
`
`
`
`
`
`
`
`graphics data. The graphics subsystem has a capability to
`
`
`
`
`
`
`
`transfer large amounts of data but
`is not optimized for
`
`
`
`
`
`
`
`
`control flow conditional branching operation.
`
`
`
`
`
`The present inventors have recognized that in MPEG
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`compressed content (video data) having the various layers,
`each layer has certain characteristics requiring particular
`
`
`
`
`
`
`
`hardware (circuit) properties to parse that level of informa-
`
`
`
`
`
`
`
`tion. For example, it has been determined that in the book
`
`
`
`
`
`
`
`
`
`
`and system layers of MPEG, which are the top most layers
`
`
`
`
`
`
`
`
`
`
`
`Page 17 of 24
`
`

`

`5,774,676
`
`5
`
`10
`
`
`
`15
`
`5
`
`types. As a general rule, it has been found empirically that
`
`
`
`
`
`
`
`
`no more than 30% of the microprocessor’s computing
`
`
`
`
`
`
`
`capability should be used for MPEG decompression in order
`
`
`
`
`
`
`
`to preserve the remaining portion for other tasks. It has to be
`
`
`
`
`
`
`
`
`
`understood that this rule of thumb subjective and somewhat
`
`
`
`
`
`
`
`
`arbitrary; it is not to be is construed as limiting.
`
`
`
`
`
`
`Moreover, the actual steps of MPEG decompression and
`
`
`
`
`
`
`
`apparatus to perform same are well known; see e.g. U.S. Pat.
`
`
`
`
`
`
`
`
`No. 5,196,946 issued Mar. 23, 1993 to Balkanski et al.; U.S.
`
`
`
`
`
`
`
`
`
`Pat. No. 5,379,356 issued Jan. 3, 1995 to Purcell et al., and
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`European Patent Application publication 93304152-7, pub-
`lished Jan. 12, 1993, applicant C-Cube Microsystems, Inc.
`
`
`
`
`
`
`
`
`Therefore one skilled in the art will understand how to
`
`
`
`
`
`
`
`
`
`implement these well-known functions, which may be car-
`
`
`
`
`
`
`
`ried out in a variety of ways, all of which are contemplated
`
`
`
`
`
`
`
`
`in accordance with the invention.
`
`
`
`
`
`In accordance with the first embodiment of the present
`
`
`
`
`
`
`
`
`invention shown in FIG. 2, microprocessor 30 (the host
`
`
`
`
`
`
`
`processor) has been found only to have computational power
`
`
`
`
`
`
`
`
`sufficient to decompress the MPEG book layer and system
`
`
`
`
`
`
`
`
`layer. Also, in this computer system the graphics accelerator
`
`
`
`
`
`
`
`
`40 e.g.,
`the Trio 64V chip from S3 Inc. has insufficient
`
`
`
`
`
`
`
`
`
`
`
`comput

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket