throbber
United States Patent [191
`Galbi
`
`[54] MPEG AUDIO/VIDEO DECODER
`
`[76] Inventor: David E. Galbi, 1063 Morse Ave.,
`#19-301, Sunnyvale, Calif. 94089
`
`[21] Appl. No.: 311,659
`[22] Filed:
`Sep. 23, 1994
`
`Related US. Application Data
`
`[63] Continuation-impart of Ser. No. 288,652, Aug. 10, 1994,
`abandoned, which is a continuation of Ser. No. 890,732,
`May 28, 1992, abandoned, which is a continuation-in-part of
`Ser. No. 669,818, Mar. 15, 1991, abandoned.
`
`[51] Int. Cl.6 ..................................................... .. G06K 9/36
`[52] US. Cl.
`382/233
`[58] Field of Search ................................... .. 382/232, 250;
`348/403, 404, 416; 358/432
`
`[56]
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`4,302,775 11/1981 Widergren et al. ................... .. 382/232
`4,394,774
`7/1983 Widergnen et a1.
`382/250
`4,831,440
`5/1989 Borgers et al. . . . .
`. . . .. 348/403
`
`5,021,891
`
`6/1991 Lee . . . . . . . . . . . . . . . . . . . . .
`
`. . . .. 358/432
`
`5,148,292
`
`9/1992 Acampura et a1. . . . .
`
`. . . .. 358/133
`
`. . . .. 358/133
`5,196,930
`3/1993 Kadono et a]. . . . . . . . .
`348/416
`5,414,469 5/1995 Gonzales etal ..
`5,452,104
`9/1995 Lee ........................................ .. 348/404
`
`FOREIGN PATENT DOCUMENTS
`
`O 598 295 5/1994 European Pat. O?'. .
`
`USOO5649029A
`[11] Patent Number:
`[45] Date of Patent:
`
`5,649,029
`Jul. 15, 1997
`
`Primary Examiner-Jose L. Couso
`Attorney, Agent, or Firm-$kjerven, Morrill, MacPherson,
`Franklin & Friel; David T. Millers
`
`[57]
`
`ABSTRACT
`
`An MPEG audio/video decoder has memories, a signal
`processing unit (SPU) including a multiplier and a butter?y
`unit, a main CPU, and a memory controller which are time
`division multiplexed between decoding video and audio
`data. For audio decoding, the butter?y unit determines
`combinations of components of a frequency-domain vector
`to reduce the number of multiplies required to transform to
`the time domain (matrixing). Matrixing is interwoven with
`MPEG ?ltering to increases throughput of the decoder by
`increasing parallel use of the multiplier, the butter?y unit,
`and a memory controller. The decoder includes a degrouping
`circuit which performs two divisions in three clock cycles to
`degroup a subband code. Three cycles matches the write
`time of three components so that subband codes are
`degrouped and written to memory with a minimum delay.
`Performing two divides in three clock cycles allows the
`divider to be smaller. In response to an error signal from a
`source of an MPEG audio data stream, the decoder replaces
`data with an error code and temporarily enables error
`handling. The error code is a valid bit combination rarely
`found in MPEG audio data frames. During audio decoding
`with error handling enabled, the decoder checks for the error
`code and replaces the error code with reconstructed data.
`Typically, some subband data are replaced with zeros so that
`an error only changes some of the frequency components.
`
`5 Claims, 13 Drawing Sheets
`
`10o \
`115 \
`k
`118 \
`125 1
`Code FIFO 4
`Decoder FIFO 4 ‘L6
`Audio Error
`(64x16)
`‘
`Code Injector ‘“ (31x18)
`‘
`
`no \
`
`‘4°51
`Interface
`
`104
`,1
`Sm‘ Bus
`Host Bus
`
`VLC/FLC : r
`
`f
`
`Decoder
`
`‘ _ Memmy ‘ _
`7 ' Controller
`7 ' DRAM
`
`171 \
`?_ Y, CbCrFIFOs
`(56x16, 64x16)
`
`150 \
`CPU
`
`_ :
`
`TMEM
`(64 X 22)
`136 j
`
`v K134
`ZMEM
`(192x16)
`1
`135 \
`v K140
`QMEM
`172 \
`(64x16) < 7 Signal _
`F’rqcessmg ‘ = g Overlay FIFO
`7 Un"
`(64x16)
`4]
`137 \ v
`PMEM
`(128 x 18)
`11
`170 \ ‘y
`
`\rso
`
`173 \
`i Vert, Horz
`' Interpolation
`
`174 \ ]
`Overlay
`Blending
`
`175 \ 4
`Conversion
`to RGB
`
`176
`Video
`Output
`
`191 \
`
`192
`
`190 \
`
`4 g ; Audio FIFO
`Motion _
`Compensatron
`(4 x 16)
`
`:
`
`Audio
`Sen'alizer
`
`Audio
`Output
`
`Apple Inc. v. Parthenon
`Ex. 1015 / Page 1 of 39
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1015, p. 1
`
`

`
`U.S. Patent
`
`Jul. 15, 1997
`
`Sheet 1 of 13
`
`5,649,029
`
`mam_m_$m
`
`mammo:
`
`E:
`
`N9
`
`mo:
`
`8mt2:_
`
`o:
`
`m:
`
`Samo_u:<
`
`
`
`§8.E_250
`
`8;xE8:5889
`
`3
`
`8.
`
`o9
`
`at
`
`E;
`
`
`
`N5:.:m>
`
`:o_§oe9c_
`
`mou__.._58.>
`
`32%.263
`
`saso
`
`82>
`
`mt
`
`.350
`
`o__8<
`
`N2
`
`mom2:o_m.m>:oo
`
`2mm
`
`8.
`
`8_
`
`3.xs9.:%_2
`
`>m_§o
`
`a:_u:.a._m
`
`EmEgo
`§xV9
`
`o:§>
`
`auooma
`
`§Xmm5smzw
`
`9__$8o¢
`
`_§_m
`
`E:
`
`_>ms_n_
`
`§xmm:
`
`:o_§2
`
`cozmmcmaeoo
`
`E
`
`me
`
`3.Xismzo
`
`55
`
`amXwe
`
`3
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1015, p. 2
`
`Ex. 1015/ Page 2 of 39
`
`Ex. 1015 / Page 2 of 39
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1015, p. 2
`
`
`
`
`
`
`
`
`
`
`
`
`

`
`U.S. Patent
`
`Jul. 15, 1997
`
`Sheet 2 of 13
`
`5,649,029
`
`/ 200
`
`I
`
`1
`
`.
`
`C'L
`
`CiH
`
`
`‘A ? CIM ' 1\ /a
`
`221
`
`220
`
`4mm
`
`Rin
`
`Rout
`
`illbits
`
`{210
`
`@230
`
`231
`\~
`
`4bits
`
`Din
`
`Q
`
`{debits
`
`R
`
`QL
`
`3,4
`
`5
`
`240
`
`TO ZMEM
`
`232
`\_
`
`'
`
`QH
`
`FIG. 2
`
`Ex. 1015 / Page 3 of 39
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1015, p. 3
`
`

`
`US. Patent
`
`Jul. 15, 1997
`
`Sheet 3 of 13
`
`5,649,029
`
`s11
`321
`300 \
`\jvh r320
`Ti‘ r310
`dividend
`dividend
`312
`1Z¢->Rin
`Rout —2"—H Rin
`Rout
`
`2
`
`324
`
`Q
`
`i1 313
`FIG. 3A
`
`Q
`
`{7L 323
`
`
`
`.m D...
`
`A
`
`B
`
`ividend
`H C
`
`000011111 Wd
`00110011
`01010101
`
`hm ROOTOOTXX
`
`.m S_O._IOO4IOXX
`\iivvlj
`
`_A B
`
`C 520
`CC
`AA
`
`QOOO111XX
`
`FIG. 3B
`
`8 TRANSISTORS
`
`1O TRANSISTORS
`
`12 TRANSISTORS
`__
`s OH Q
`
`FIG. 3C
`
`Ex. 1015 / Page 4 of 39
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1015, p. 4
`
`

`
`U.S. Patent
`
`Jul. 15, 1997
`
`Sheet 4 of 13
`
`5,649,029
`
`400 f
`411
`421
`431
`\i‘ /410
`\i‘ [420
`i1 r430
`dividend
`dividend
`dividend
`412
`1%» Rin
`Rout —@'——> Rin
`Rout —@~> Rin
`Rout
`
`434
`
`1L 413
`
`1L 423
`FIG. 4A
`
`Q 433
`
`u q
`
`m
`
`m @0000011111
`
`mnm 80000111100
`
`
`0001100111100
`
`A0000000011
`
`~Wm0101010101.
`
`w_l_o4lo1nuo1o4lo
`
`0011000110
`
`0000100001
`
`FIG. 4B
`
`Ex. 1015 / Page 5 of 39
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1015, p. 5
`
`

`
`US. Patent
`
`Jul. 15, 1997
`
`Sheet 5 0f 13
`
`5,649,029
`
`D
`
`B ___.___...._
`
`DID
`‘’ 3D
`A
`‘
`
`12 TRANSISTORS
`
`DEKJ
`T
`Q
`
`D”
`10 TRANSISTORS
`
`g ...__..T
`_Q—-—-
`D ------~
`A ——‘
`
`12 TRANSlSTORS
`D‘ R
`
`A
`9
`D
`o
`D
`E
`9.
`0
`
`24 TRANSISTORS
`
`E
`S
`
`FIG. 4C
`
`Ex. 1015 / Page 6 of 39
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1015, p. 6
`
`

`
`U.S. Patent
`
`Jul. 15, 1997
`
`Sheet 6 of 13
`
`5,649,029
`
`220
`
`221
`
`l
`
`->
`
`‘
`
`[21_°1_____‘ -_----- "zé'g'o‘
`_
`R{3:0]
`M3111
`l
`1 + Address Generator
`:
`i W
`A[7:0]
`l
`i
`{8
`[550 i
`g
`200 X 8 ROM
`!
`L
`Rout
`Quotient J
`y
`i
`
`/4 H _ — 1'4 — —
`
`230/
`———————¢
`
`231/ £___
`
`232 J
`
`240
`
`FIG. 5A
`
`Ex. 1015 / Page 7 of 39
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1015, p. 7
`
`

`
`U.S. Patent
`
`Jul. 15, 1997
`
`Sheet 7 of 13
`
`5,649,029
`
`2
`
`2
`
`%
`
`2
`
`
`
`
`
`S
`
`:2
`
`CO
`.2.
`‘‘ E
`'
`
`0 =
`
`2
`
`F5
`
`8
`
`8
`
`an
`LO
`
`0'
`
`5
`
`553
`
`E I
`R2R1 V
`Y A6A5
`DIV3DIV3
`
`
`Q °
`
`‘
`
`550\
`
`-.">3“2’
`an
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1015, p. 8
`
`Ex. 1015/ Page 8 of 39
`
`Ex. 1015 / Page 8 of 39
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1015, p. 8
`
`

`
`U.S. Patent
`
`Jul. 15, 1997
`
`Sheet 8 of 13
`
`5,649,029
`
`/610
`V0 0
`o oo
`
`V0 V0 31
`000 I
`V
`—__
`We
`
`V4
`
`V-1 32
`0 0 o
`V4
`
`__
`V-2 0
`
`V_2 V-2 31
`0 0 0
`V-2
`
`
`V-3
`
`V'3 0
`
`V-3 32
`0 0 0
`V-3
`
`______
`
`
`
`/620
`V0 33
`o00
`
`V0 31
`. . .
`V0 O
`
`
`.2
`
`V-1 63
`
`V-1 32
`0 0 a
`V4 O
`
`
`V-2 63
`
`V-2 31
`0 0 0
`V'2 0
`
`
`V-3 63
`
`V-3 32
`0 0 0
`V''3 0
`
`
`/630
`o
`V..4;8
`
`V0 33
`V0
`0 0 0
`V0 17
`V-1 48
`
`V-1 33
`V-1
`o 0 0
`
`V-1 17
`V-2 48
`
`V-2 33
`V-2
`0 0 0
`
`V'2 17
`V-3 48
`
`V'3 33
`V-3
`0 0 0
`
`M-3
`
`631
`
`632
`
`V-4 to \/-14
`
`I
`
`I
`
`Z
`
`
`
`V-15 0
`' ' '
`
`0 0 0
`V4564
`
`
`
`
`
`
`V-15 33
`0 I O
`
`628 V-15 48
`‘J
`0 0 0
`
`638
`
`o o o
`V450
`
`
`V-15 32
`000
`
`M45
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1015, p. 9
`
`Ex. 1015/ Page 9 of 39
`
`Ex. 1015 / Page 9 of 39
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1015, p. 9
`
`

`
`U.S. Patent
`
`Jul. 15,1997
`
`Sheet 9 of 13
`
`5,649,029
`
`mm.&9
`
`20:".
`
`=:E:~_IIII.u_I_ENE%o3+o_$88;
`mt.=:EI>IanFIII.NQH32205NE_.u88oEtr.m.9.28%+,m,_x_§n_+a_m:2m2%
`<mmL.205___¢mI=_:EI>QVOANm_uu.o.nEn_nE
`.205opt.
`
`
`
`Em&<+.m.._x_§n_+a§_8I._mmA4_8.§eaNo_peaE,....&<+.max_§n:S£2m_omxmfi_4X.55xm.o__m
`
`axma_sé:o%asIE4mtn!58%;
`
`2..w_....EOE_¢3_=exV4Nsizmzs./oio—.E.2".
`
`
`
`
`
`afiwommSaromm
`
`
`
`_$.z.x_o§E<E
`
`oOE
`_3m__2m_E%I ofl
`
`
`
`siflmoa;m_sm_EgNEI8_§_2m2%VLyn:soo__2§m:mo
`
`
`
`om:>._n_mmE:m
`
`_oz_%_Sox
`
`
`
`«EV95§._-Em
`
`.3“?s_&:.5o
`
`RNsfizzfifi
`
`.Iul.IIl|Il.lal||‘.I..I.lIIII..l.IIIN|.lI-l.lll.lIl|I-II
`
`
`
`
`
`ms.lmu“I_oEIHEEEI_>5wC.8“&_m§._:.m
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1015, p. 10
`
`Ex. 1015/Page1O of39
`
`Ex. 1015 / Page 10 of 39
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1015, p. 10
`
`
`

`
`U.S. Patent
`
`Jul. 15, 1997
`
`Sheet 10 of 13
`
`5,649,029
`
`an
`
`_o”,m_moM
`
`fiifima
`
`agmfma
`
`I..In|:.I.nI.l‘IllIIl|u|||Il..II.IlIIIIIIlI|I|I'.lIlI|III.|..
`
`ea9,.._s_<._o
`
`
`
`“.250oa=<
`
`Enasememrw2%_<._ou=_fi
`
`2:250Eémmmq
`
`zqEm_ua2ms:
`
`8w__2w_2n_
`
`
`
`N<n.O_u_
`
`OH>5.
`
`
`
`<.\..0_u_
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1015, p. 11
`
`Ex. 1015/Page 11 of39
`
`Ex. 1015 / Page 11 of 39
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1015, p. 11
`
`
`
`
`
`
`

`
`US. Patent
`
`Jul. 15, 1997
`
`Sheet 11 of 13
`
`5,649,029
`
`520335
`
`E a... veg :t
`
`ON.
`0E
`
`EmEOU
`
`NE. x22 2.
`
`v vv a 2:623
`22 2 82 w
`
`
`
`r528": 6258250
`
`\l lhol
`
`m8. agwiomi
`@250
`
`66 3506mm
`
`358%565
`522E250
`
`:mEwmE
`
`7 m0 mwazsom
`/ 5
`
`ooh x22 2.
`
`mi. .GE
`
`@Qxg
`
`smzo
`mm;
`
`52520
`
`536 A 803250 r 5.
`
`5%
`3 $6
`
`Ex. 1015 / Page 12 of 39
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1015, p. 12
`
`

`
`US. Patent
`
`Jul. 15, 1997
`
`Sheet 12 0f 13
`
`5,649,029
`
`[805
`HHANSFEH BIT ALLOCATION AND SCALEFACTORS TO QMEM]
`l
`[810
`ITRANSFER 33 COMPONENTS TO PMEM]
`820
`
`[825
`IwAIT uNTIL VLC/FLC IS IDLE]
`835
`
`840
`
`_
`
`IWAIT uNTIL TRANSFER OF SOUND AMPLITUDE VALUES IS coMPLETEI
`I
`[855
`+[wAIT uNTIL TRANSFER OF 33 COMPONENTS IS ooMPLETEl
`860
`
`[865
`| IF NOTTHE 8TH rrERATToN FoR THE LAST vEcToR, ISSUE TRANSFER 0m COMPONENTS j
`870
`mm
`I875
`[ISSUE TRANSFER OF 4 MATRIX RESULTS]
`880
`
`[885
`[TRANSFER 32 DECODER SOUND AMPLITUDE VALUES 1
`890
`‘ mm
`
`895
`I mm
`
`FIG. 8A
`
`Ex. 1015 / Page 13 of 39
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1015, p. 13
`
`

`
`US. Patent
`
`Jul. 15, 1997
`
`Sheet 13 of 13
`
`5,649,029
`
`SPU
`
`I I I l l I IJ
`
`FIG. 8B
`
`Ex. 1015 / Page 14 of 39
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1015, p. 14
`
`

`
`1
`MPEG AUDIO/VIDEO DECODER
`
`CROSSREFFERENCE TO RELATED
`APPLICATION
`This is a continuation-in-part of US. patent application
`Ser. No. 08/288,652 entitled “A Variable Length Code
`Decoder for Video Decompression Operations,” ?led Aug.
`10, 1994 now abandoned, which is a continuation of US.
`patent application Ser. No. 07/890,732, ?led May 28. 1992
`(now abandoned) which was a continuation-in-part of US.
`patent application Ser. No. 07/669,8l8, entitled “Decom
`pression Processor for Video Applications,” ?led Mar. 15,
`1991 (now abandoned), all of which are incorporated by
`reference in their entirety.
`
`10
`
`COPYRIGHT NOTICE
`A portion of the disclosure of this patent document
`contains material which is subject to copyright protection.
`The copyright owner has no objection to the facsimile
`reproduction by anyone of the patent document or the patent
`disclosure. as it appears in the Patent and Trademark O?ice
`patent ?les or records, but otherwise reserves all copyright
`rights whatsoever.
`
`BACKGROUND OF THE INVENTION
`1. Field of the Invention
`This invention relates to decoders for generating audio
`signals from digital data, and in particular to combined audio
`and video decoding according to the MPEG standard.
`
`25
`
`DESCRIPTION OF RELATED ARI‘
`The Motion Picture Experts Group (MPEG) developed an
`international standard (sometimes referred to herein as the
`“MPEG standard”) for representation, compression, and
`decompression of motion pictures and associated audio on
`digital media. The International Standards Organization
`(ISO) publication, No. ISO/IEC 1117211993 (E), entitled
`“Coding for Moving Pictures and Associated Audio-for
`digital storage media at up to about 1.5 Mbit/s,” describes
`the MPEG standard and is incorporated by reference herein
`in its entirety. The MPEG standard speci?es coded digital
`representations of audio and video and is intended for
`continuous data transfer from equipment such as compact
`disks, digital audio tapes, or magnetic hard disks, at rates up
`to 1.5 Mbits per second.
`Under the MPEG standard, parallel data streams or time
`multiplexed data streams provide video data frames and
`audio data frames. Methods and systems for decompressing
`video data frames are described in U.S. patent applications
`Ser. Nos. 07/890,732 and 07/669,818 which were incorpo
`rated by reference above. Audio data frames contain a
`header, side information, and subband data. Subband data
`indicate ?equency-domain vectors that are converted to
`time-domain output sound amplitudes by a transformation
`(matrixing) and a smoothing ?lter (windowing).
`Typically, MPEG audio/video decoding systems for
`decoding digital data include, two decoders, one for audio
`decoding and one for video decoding. on two separate
`integrated circuit chips. The audio decoder and video
`decoder are separated because of the diiferences between
`MPEG audio coding techniques and MPEG video coding
`techniques, but separate audio and video decoders increase
`the amount of circuitry in and the cost of an audio/video
`decoding system. A decoding architecture is needed that
`reduces the amount of circuitry and the cost of decoding
`MPEG audio and video data.
`
`35
`
`45
`
`50
`
`55
`
`65
`
`5,649,029
`
`2
`SUMMARY OF THE INVENTION
`In accordance with this invention, an MPEG audio/video
`decoder integrated on a single chip uses components such as
`memories, a main CPU, a memory controller, and a signal
`processing unit (SPU) for both audio and video decoding.
`The SPU contains a multiplier (or multiply-and-accumulate
`unit) and a butter?y unit which together alternately decode
`video data and audio data. The combination of a multiplier
`and a butter?y unit is efficient for both audio and video
`decoding. In particular, for audio decoding, determining
`particular sums and differences of the components of a
`frequency-domain vector with a butter?y unit reduces the
`number of multiplies required for matrixing (i.e. determin
`ing a component of a time-domain vector from a frequency
`domain sample vector). Determining combinations of the
`components can be performed in series with dequantizing
`and descaling of the components combined Additionally,
`matrixing and windowing (i.e. combining a present time
`domain vectors with previous time-domain vectors) are
`combined in a single instruction to increase throughput of a
`decoder by increasing parallel use of the multiplier, the
`butter?y unit, and a memory controller which reads and
`writes to an external memory.
`Also in accordance with this invention, a degrouping
`circuit for decoding MPEG standard subband codes includes
`a divider which uses three clock cycles to perform two
`divisions which convert a MPEG subband code into three
`vector components. Performing two divides in three clock
`cycles instead of two allows the divider to be smaller and
`less costly, but does not slow decoding because three clock
`cycles is the time required to write three vector components
`into a single-port memory. Accordingly, the smaller divider
`does not signi?cantly increase the time required to degroup
`subband codes and write the resulting components into
`memory. Using the known limits on input dividends of the
`divider, the size and cost of the divider can be further
`reduced from that of a general purpose divider.
`Also in accordance with this invention, in response to an
`error signal from an external source of an MPEG audio data
`stream, an MPEG audio decoder replaces errors in the audio
`data stream with an error code which is a bit combination
`rarely found in MPEG audio data frames, and then tempo
`rarily enables error handling. The audio data stream con
`taining error codes can be saved or buttered in the decoder.
`During audio decoding with error handling enabled, the
`decoder checks the audio data for the bit combination
`equaling the error code and replaces the bit combination
`with reconstructed data. The replacement attempts to mini
`mize the audible e?ects of an error. Typically, some subband
`data is replaced with zeros so that an error causes some of
`the frequency components to be lost.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`FIG. 1 shows a block diagram of an MPEG audio/video
`decoder in accordance with an embodiment of this inven
`tion.
`FIG. 2 shows a block diagram of a degrouping circuit in
`accordance with an embodiment of this invention.
`FIGS. 3A, 3B, and 3C show a block diagram. a logic
`table, and a gate level diagram of a divide-by-three circuit in
`accordance with this invention.
`FIGS. 4A, 4B, and 4C show a block diagram, a logic
`table, and a gate level diagram of a divide-by-?ve circuit in
`accordance with this invention.
`FIGS. 5A and 5B show a block diagram of another
`embodiment of the degrouping circuit and a gate level
`
`Ex. 1015 / Page 15 of 39
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1015, p. 15
`
`

`
`5,649,029
`
`3
`diagram of an address generator for dividing by three, ?ve,
`or nine in accordance with this invention.
`FIG. 6 shows memory maps of previous vector compo
`nents used during a windowing process in
`FIGS. 7A, 7B, and 7C show a block diagram of an
`embodiment of a signal processing unit in accordance with
`an embodiment of this invention.
`FIG. 8A shows a ?ow diagram of an audio decoding
`process in accordance with this invention.
`FIG. 8B shows a timing diagram for the process of FIG.
`8A.
`Use of the same reference symbols in di?‘erent ?gures
`indicates similar or identical elements.
`
`10
`
`20
`
`4
`frame is a digital description of a ?xed number of ?equency
`domain sound samples in up to two sound channels. The
`MPEG standard for video data ?ames and decoding of video
`data ?ames to produce a video signal are described in US.
`patent applications Ser. Nos. 07/890,732 and 07/669,818
`which were incorporated by reference above. The MPEG
`standard currently de?nes three types of audio data frames
`referred to as layer 1, layer 2, and layer 3 data ?ames.
`Decoder 100 in FIG. 1 decodes layer 1 and layer 2 audio data
`frames. Layer 1 and layer 2 audio data frames contain a
`header, side information, and subband data. The header
`indicates: the bitrate of the data stream providing the audio
`data frames; the sample frequency of the decoded sound;
`whether the subband data contains one or two sound chan
`nels; and a mode extension describing whether the sound
`channels in the subband data are independent, stereo, or
`intensity stereo. The side information indicates the number
`of bits allocated per subband in the subband data and an
`index to scalefactors F for dequantizing and descaling
`subband data as described below.
`CPU 150 controls the percentage of time SPU 140 spends
`decoding audio data. For audio decoding, CPU 150 directs
`memory controller 180 to move audio data from DRAM 160
`to decoder FIFO 125 and directs SPU 140 perform the
`calculations necessary for decoding audio data. SPU 140
`operates in parallel with CPU 150 and executes commands
`according to software stored in an instruction memory in
`SPU 140.
`When decoding an audio data frame, SPU 140 ?rst
`executes a “get bits” command which loads the header and
`side information of the audio data frame, ?om decoder FlFO
`buffer 125, through a VLC/FLC decoder 120, into CPU 150.
`The CPU 150 writes bit allocations and scalefactors ?om the
`side information through SPU 140, into QMEM 135. Header
`and side information pass through VLC/FLC decoder 120
`unchanged. Subband data follows the side information in the
`data stream from decoder FIFO bu?er 125. VLC/FLC
`decoder 120 contains circuits for decoding variable length
`codes (VLC) in video data and ?xed length codes (FLC) in
`audio and video data. VLC/FLC decoder 120 also contains
`degrouping circuits for audio data as described below.
`A “get subbands” command executed by SPU 140 causes
`VLC/FLC decoder 120 to parse and convert subband codes
`Ci ?om decoder FIFO buffer 125 into 192 scaled and
`quantized components Si". VLC/FLC decoder 120 preforms
`degrouping as required and writes the scaled and quantized
`components Si" into ZMEM 134. Each frequency-domain
`vector S” has 32 components Si" in 32 ?equency ranges
`(subbands i). The “get subbands” command writes compo
`nents Si" for three frequency-domain vector S” in each
`channel (six vectors S" total for two channels) to ZMEM
`134. For intensity stereo, some of the ?equency components
`Si" are used by both channels. VLC/FLC decoder 120 writes
`two copies of components that are shared by the channels so
`that each vector S" in ZMEM 134 has 32 components Si".
`For monophonic sound, VLC/FLC decoder 120 can write
`two copies of all components Si" so that both channels of a
`stereo output signal are the same. The number of vectors S"
`in an audio data ?ame depends on the number of channels
`and whether the audio data frame follows layer 1 or layer 2
`of the MPEG standard. Under layer 1, there are 12 vectors
`S" (384 samples) per channel. Under layer 2, there are 36
`vectors S" (1152 samples) per channel.
`SPU 140 executes a “dequant/descale” command to gen
`erate components Si of frequency-domain vectors S by
`descaling and dequantizing values Si" ?om ZMEM 134.
`SPU 140 writes a representation of a vector S to a portion of
`
`25
`
`30
`
`35
`
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENTS
`In accordance with this invention, an audio/video decoder
`decodes MPEG standard data streams to provide an audio
`signal and a video signal. The audio/video decoder alternates
`between decoding video data frames and decoding audio
`data frames and employs the same memories and signal
`processing unit (SPU) for both audio and video decoding.
`FIG. 1 shows a block diagram of an audio/video decoder
`100 for decoding MPEG standard audio and video data
`frames. Decoder 100 receives MPEG standard coded audio
`and video data via a serial bus 104, decodes the audio and
`video data, and provides the decoded data over a video bus
`176 and an audio bus 192. Decoder 100 includes static
`random access memories (SRAMs) 134 to 137 (also referred
`to herein as ZMEM 134, QMEM 135, TMEM 136, and
`PMEM 137) which alternate between holding video data for
`video decoding and holding audio data for audio decoding,
`and a signal processing unit (SPU) 140 which includes an
`instruction memory, a register ?le, a multiplier or a multiply
`and-aocumulate unit (MAC), and a butter?y unit for decod
`ing and decompressing video data or audio data depending
`on whether decoder 100 is currently decoding video or
`audio.
`Audio/video decoder 100 interfaces with a source of
`audio and video signals such as a host computer and a
`compact disk digital signal processor (CD-DSP) over a host
`bus 102 and serial bus 104. Serial bus 104 carries a stream
`of compressed audio and video data following the MPEG
`standard, which decoder 100 receives through a ?rst-in
`45
`?rst-out (FlFO) buffer 115 (“code FIFO 115”). A memory
`controller 180 reads the compressed data ?om code FlFO
`115 via a main bus 155 and Writes the compressed data to an
`external memory 160 (also referred herein as DRAM 160).
`As disclosed below, an audio error code injector 118 can
`50
`inject error codes into audio data written to DRAM 160. A
`central processing unit (CPU) 150, which is a microcoded
`processor having its own instruction memory controls access
`to main bus 155 and in particular, sends commands to
`memory controller 180 which cause the data transfer ?om
`55
`code FIFO 115 to DRAM 160.
`In this embodiment, DRAM 160 contains dynamic ran
`dom access memory (DRAM) components. Other suitable
`memory technologies can also be used. DRAM 160 holds
`compressed data from serial bus 104 and decompressed data
`for output to an audio bus 192 or a video bus 176. Under the
`direction of CPU 150, memory controller 180 transfers
`compressed audio or video data to a decoder FIFO 125 for
`decoding of an audio data frame or a video data ?ame by
`SPU 140.
`According to the MPEG standard, a video data frame is a
`compressed digital description of a picture and an audio data
`
`65
`
`Ex. 1015 / Page 16 of 39
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1015, p. 16
`
`

`
`5
`TMEM 136. Mauixing as described below transforms a
`frequency-domain vector S to a time-domain vector V. SPU
`140 stores components Vi of a time-domain vector V in
`PMEM 137, and memory controller 180 writes components
`V1 from PMEM 137 to DRAM 160. Components from 16
`consecutive time-domain vectors V0 to V16 from DRAM
`160 are combined in a windowing process described below,
`and the combination is accumulated in TMEM 136 to
`provide 32 time-domain output sound amplitudes Ai. Time
`domain output sound amplitudes Ai are typically written to
`an audio output FIFO buffer in DRAM 160, and written as
`required from DRAM 160 through main bus 155, an output
`audio FIFO 190, and an audio serializer 191 to audio output
`bus 192. Output audio FIFO buffer 190 holds enough output
`sound amplitude values so that at the fastest sampling rate
`expected delayed access to main bus 155 does not interrupt
`sound. Audio serializer 191 converts the output audio data to
`a serial data stream, and a digital-to-analog converter (DAC)
`and ampli?er (not shown) generate a sound from the audio
`data.
`The side information indicates the number of possible
`values for each quantized component Si" (and each subband
`code Ci) in a subband i. For example, if subband codes Ci
`in subband i have 0, 2, 4, . . . , or 2” possible values, then
`0, 1, 2, . . . , or N bits are used for each code Ci. If no bits
`are used for a subband i, VLC/FLC decoder 120 writes zero
`into ZMEM 134 for components Si", and vector S has less
`than 32 non-zero components. For a bit allocation repre
`senting 2" possible values for a subband i, VLC/FLC
`decoder 120 uses the bit allocations from the side informa
`tion in QMEM 135 to identify the start and end of a
`component Si" in the data stream and writes component Si"
`to a word aligned location in ZMEM 134.
`The MPEG standard allows components Si" to have 3, 5,
`or 9 possible values and encodes three components Sli",
`S2i", and S3i" from subbandi of three dilferent vectors S1,
`S2, and S3 into a single code Ci. For example, there are 27
`possible combinations of three quantized and scaled com
`ponents Sli", S2i", and S3i", if each has three possible
`values 0, 1, or 2. A 5-bit subband code Ci given by eq. 1
`represents the 27 possible combinations.
`
`25
`
`Similarly, a 7-bit code Ci given by eq. 2 represents three
`components Sli", S2i", and S3i" having ?ve possible values
`0 to 4 each.
`
`45
`
`Eq. 3 gives a 10-bits code Ci representing three components
`Sli“, S2i", and S3i" which each have 9 possible values, 0 to
`8.
`
`VLC/FLC decoder 120 degroups a code Ci into three
`components S3i", S2i", and Sli" given by eqs. 1 to 3 before
`writing the scaled and quantized components S3i", S2i" and
`Sli" to ZMEM 134. Two divisions are su?icient to degroup
`a code Ci given by eqs. 1 to 3. For example, if Ci=x2-S3i"+
`x-S2i"+S1i” and components S3i". S2i" and Sli" are less
`than x, dividing Ci by x provides a quotient Q1 and a
`remainder R1 given by eq. 4.
`
`Dividing by x again provides a quotient Q2 and a remainder
`R2 given by eq. 5.
`
`55
`
`65
`
`5,649,029
`
`6
`(eq. 5)
`(Q1/x)=Q2=S3i" with remainder m=s2i"
`IfZMEM 134 has a single port connected to VLC/FLC 120,
`three clock cycles are required to write components S31",
`S2i", and Sli". Accordingly, VLC/FLC decoder 120 can use
`three clock cycles for two divides which degroup a code Ci,
`and not cause a pipeline delay in writing components S3i",
`S2i", and Sli".
`FIG. 2 shows decoding circuit 200 which performs two
`divides for degrouping a code Ci in three clock cycles. The
`?rst divide is an extended divide that takes two clock cycles.
`The second divide takes one clock cycle. Using two clock
`cycles for the ?rst divide permits use of a smaller divider and
`reduces the cost of VLC/FLC decoder 120. In the embodi
`ment of FIG. 2, a divider 210 receives dividend values from
`multiplexers 220 and 221 and divides the dividend values by
`a divisor x equal to 3, 5, or 9 to produce a quotient Q and
`a remainder Rout. Side information gives the bit allocation
`for each subband and determines the value of divisor x for
`each subband which requires degrouping.
`Code Ci is partitioned into three parts CiH, CiM, and CiL
`for the ?rst divide of degrouping. CiL contains the 2, 3, or
`4 least signi?cant bits of code Ci for divisor x equal to 3, 5,
`or 9 respectively. CiM contains the next 2, 3, or 4 more
`signi?cant bits of code Ci, and CiH contains the most
`signi?cant 1, 1, or 2 bits of Ci for divisor x equal to 3, 5, or
`9 respectively. CiH is padded on the left with zeros to 2, 3,
`or 4 bits;
`Degrouping proceeds as follows. During a ?rst clock
`cycle, multiplexers 220 and 221 assert signals CiH and CM
`to divider 210, and divider 210 produces a quotient Q1H and
`a remainder R1‘ which are written to registers 231 and 230
`at the end of the ?rst clock cycle. Registers 230 and 231 in
`the embodiment of FIG. 2 are edge triggered devices, but in
`alternative embodiments, registers 230 and 231 may be
`latches, memory locations, or any devices capable of hold
`ing and asserting digital data signals. During a second clock
`cycle, multiplexers 220 and 221 assert respectively remain
`der R1‘ from register 230 and signal CiL to divider 210, and
`divider 210 produces a quotient Q1L and remainder R1. At
`the end of the second clock cycle, quotient Q1L and remain
`der R1 are written to registers 231 and 230 respectively, and
`quotient Q1H is written from register 231 to a register 232.
`Quotients Q1H and Q1L are respectively the most signi?
`cant and least signi?cant bits of the quotient Q1 given in eq.
`4. Remainder R1 is value Sli" as in eq. 1, 2, or 3.
`During a third clock cycle, multiplexers 220 and 221
`assert respectively signals Q1H and Q1L from registers 230
`and 231 to divider 210, divider 210 produces quotient Q2
`and remainder R2 that are given in eq. 5, and a multiplexer
`240 selects value R1 from register 230 for writing to a
`memory such as ZMEM 134 of FIG. 1. At the end of the
`third clock cycle, quotient Q2 remainder and R2 are written
`to registers 231 and 230, and the quotient QlL is written
`from register 231 to register 232.
`During a fourth clock cycle, remainder R2 which equals
`S2i" passes through multiplexer 240 and is written to the
`memory. Quotient Q2 is written to register 232 at the end of
`the fourth clock cycle. Quotient Q2 which equals S3i" is
`written to memory during the ?fth clock cycle. A ?rst divide
`for a second code Ci’ can be performed during the fourth and
`?fth clock cycles and can proceed as disclosed above.
`Accordingly, if a series of codes C are degrouped, degroup
`ing proceeds with a pipeline delay only for the ?rst code in
`the series.
`Any known or yet to be developed digital divider circuit
`may be employed for divider 210 providing the divider
`circuit handles the correct size dividend, quotient. and
`
`Ex. 1015 / Page 17 of 39
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1015, p. 17
`
`

`
`7
`remainder. FIG. 3A shows a block diagram of a divide-by
`three circuit 300 which uses the limits on the values of codes
`C to reduce the number of gates and transistors required.
`Divide-by-three circuit 300 contains two identical circuit
`blocks 310 and 320. Each block 310 and 320 has input
`terminals for a 1-bit dividend signal C and a 2-bit remainder
`signal Rin and output terminals for a 1-bit quotient signal Q
`and a 2-bit remainder signal Rout Output remainder signal
`Rout from block 310 is asserted as input remainder signal
`Rin of block 320. When used in divider 210 of FIG. 2,
`divide-by-three circuit 300 has a remainder bus 312 con
`nected to multiplexer 220 (FIG. 2), dividend buses 311 and
`321 connected to multiplexer 221, remainder output bus 324
`connected to register 230, and quotient output busses con
`nected to register 231. Multiplexers (not shown) may pro
`vide the connections which select divide-by-three circuit
`300 in response to the corresponding bit allocation of a
`subband.
`FIG. 3B shows a logic table relating the input signals Rin
`and C to output signals Rout and Q for each of circuit blocks
`310 and 320. During the ?rst clock cycle, the maximum
`input signal Rin applied to bus 312 equals the maximum
`signal CiH which is 01 because code Ci Contains only ?ve
`bits. The maximum remainder for any divide-by-three is 10
`binary, a

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