throbber
11~ Ill~ 111111111~ 1~111~ 111111~I~111~ II
`
`US005680482A
`[HJ Patent Number:
`[45J Date of Patent:
`
`5,680,482
`Oct. 21, 1997
`
`OTHER PUBLICATIONS
`
`Dr. Richard Baker, "Standards Dominate Videoconferencing
`Implementations", Computer Design, Dec. 1994, pp. 66-70 .
`Stephen Ohr, "Digital Video Spearheads TV and Videocon(cid:173)
`ferencing Applications'', Computer Design, Dec. 1994, pp.
`59-64.
`Lawrence A. Rowe, et al., "MPEG Video in Software:
`Representation, Transmission, and Playback'', High Speed
`Networking and Multimedia Computing, Syrup. on Blee.
`Imaging Sci. & Tech., San Jose, CA, Feb., 1994, pp. 1-11.
`Peng H. Ang, et al., "Video Compression Makes Big Gains",
`IEEE Spectrum, Oct 1991, pp. 16-19.
`Andy C. Hung, et al, "A Comparison of Fast Inverse
`Discrete Cosine Transform Algorithms", Multimedia Sys(cid:173)
`tems, ©1994, pp. 204-217.
`Pl 180/D 1, "Draft Standard Specification for the Implemen(cid:173)
`tations of 8x8 Inverse Discrete Cosine Transform", May 29,
`1990,pp. 1-9.
`ISO/lEC 11172-1, "Information Technology-Coding of
`Moving Pictures and Associated Audio for Digital Storage
`Media at up to about 1,5Mbit/s"-Part1: Systems, Aug. 1,
`1993, pp. i-vi, 1-53 ..
`
`(List continued on next page.)
`
`Primary Examiner-Leo Boudreau
`Assistant Examiner-Monica S. Davis
`Attorney, Agen~ or Finn-Skjerven, Morrill, MacPherson,
`Franklin & Friel; Ken J. Koestner
`
`[57]
`
`ABSTRACT
`
`A video decompression system utilizes multiple independent
`input buffers so that input/output operations and processing
`take place concurrently, nearly continuously and at a rate
`that is substantially equal to a selected maximum access rate
`of the storage device. Consequently, the data rate of the
`video decompression system is optimized with respect to the
`rate of data accessing. The video decompression system
`adaptively sets input buffer parameters as a function, for
`example, of processor capabilities, bitstream characteristics,
`drive latency and access time, and file YO overhead.
`
`15 Claims, 7 Drawing Sheets
`
`United States Patent [19]
`Liu et al.
`
`[54] METHOD AND APPARATUS FOR
`IMPROVED VIDEO DECOMPRESSION BY
`ADAYfIVE SELECTION OF VIDEO INPUT
`. BUFFER PARAMETERS
`
`[75]
`
`Inventors: Yi Liu; Michael R. Tucker; Geoffrey
`S. Strongin, all of Austin, Tex.
`
`[73] Assignee: Advanced Micro Devices, Inc.,
`Sunnyvale, Calif.
`
`[21] Appl. No.: 443,206
`
`[22] Filed:
`
`May 17, 1995
`
`Int. CL 6
`•••••••••••••••••••••••••••••••• G06K 9130; H04N 7/12
`[51]
`[52] U.S. Cl •.......................... 382/233; 382/235; 382/232;
`348/426
`[58] Field of Search ..................................... 382/233, 236,
`382/303, 304, 235; 348/402, 426; 358/427,
`433
`
`[56]
`
`References Cited
`
`5,144,424
`5;2.27,878
`5;2.47,363
`5;2.89,577
`5,315,670
`5,347,308
`5,353,062
`5,357;2.82
`5,371,547
`5,371,611
`5,386;2.32
`5,450,599
`5,452,104
`5,481,364
`5,489,944
`5,502,493
`5,510,840
`5,523,847
`5,543,846
`5,559,557
`
`U.S. PATENT DOCUMENTS
`
`9/1992 Savatier .................................. 358/133
`7 /1993 Puri et al. ......................•........ 358/136
`9/1993 Sun et al .•••••....•.•.•....••••....••.•.. 358/167
`2/1994 Gonzales et al ...••.••...•••••...••.•• 395/163
`5/1994 Shapiro ..................................... 382/56
`9/1994 Wai ......................................... 348/394
`10/1994 Maeda ...........................•......... 348/412
`10/1994 Lee ........••.......................•........ 348/403
`12/1994 Siracusa et al. ........................ 348/426
`12/1994 Kato et al ............................... 358/456
`1/1995 Golin et al ....•.••.....••••...••••.•.... 348/396
`911995 Horvath et al .•....•.••....•••....••••• 395/800
`9/1995 Lee ................................•......... 358/433
`1/1996 Ito . ............................. .......... 3581261.1
`2/1996 Jo ............................................ 348/405
`3/1996 Meyer ..................................... 348/426
`4/1996 Yonemitsu et al .....•••....••••....•• 348/402
`6119% Feig et al .••.•.....••••....••••....••• 3581261.3
`8/1996 Yagasaki .......................•......... 348/415
`9/1996 Kato ..•..................................... 348/405
`
`-70
`
`Video
`Storage
`Device
`
`w
`0 62
`
`Input
`Butter
`
`\
`60
`
`Input
`Butter
`
`Input
`Buffer
`
`I
`64
`
`66
`
`Oerompression
`Processing
`Pathway
`
`>- 72
`
`Apple Inc. v. Parthenon
`Ex. 1008 / Page 1 of 17
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1008, p. 1
`
`

`
`5,680,482
`Page 2
`
`OTHER PUBLICATIONS
`
`ISO/IEC 11172-2, "Information Technology-Coding of
`Moving Pictures and Associated Audio for Digital Storage
`Media at up to about 1,5 Mbit/s"-Part 1: Video, Aug. 1,
`1993, pp. i-ix, 1-112.
`
`ISO/IEC 11172-3, "Information Technology-Coding of
`Moving Pictures and Associated Audio for Digital Storage
`Media at up to about 1,5 Mbit/s"-Part 1: Audio, Aug. 1,
`1993, pp. i-vi, 1-150.
`Kevin L. Gong, et al., "Parallel MPEG-1 Video Encoding",
`Report, University of California, Berkeley, Computer Sci(cid:173)
`ence Division, 1994, pp. 1-14.
`
`Ex. 1008 / Page 2 of 17
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1008, p. 2
`
`

`
`U.S. Patent
`
`Oct. 21, 1997
`
`Sheet 1of7
`
`5,680,482
`
`352 Pixels
`
`-
`-
`
`44 Blocks
`
`~
`
`I
`
`'
`
`en
`~
`(.)
`0
`cc
`0
`C")
`
`''
`
`FIG. 1
`(PRIOR ART)
`
`Ex. 1008 / Page 3 of 17
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1008, p. 3
`
`

`
`(12
`
`(10
`
`Input
`Buffer
`20
`
`VLC
`Inverse
`f--+. Decode ~ z/z & quant. f-+
`22
`24
`
`Inverse
`OCT
`26
`(14
`
`.
`-
`
`Previous
`Picture Store
`30
`L
`
`Memory
`33
`
`I
`
`Future
`Picture Store
`32
`
`-
`
`p
`
`Forward
`MC
`34
`
`Backward
`MC
`38
`
`FIG. 2
`
`-"'
`
`- Adder
`...
`16
`
`~ v
`
`-
`...
`
`Display
`18
`
`~ •
`00 •
`
`~ ~ a
`
`0 p.
`
`N
`""""'
`"'
`
`""""' ~
`
`~
`~
`~
`N
`~
`
`-...)
`
`Ol
`
`'9 "" QC
`
`'9
`
`Q
`~
`QC
`N.
`
`Ex. 1008 / Page 4 of 17
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1008, p. 4
`
`

`
`U.S. Patent
`
`Oct. 21, 1997
`
`Sheet 3 of 7
`
`5,680,482
`
`Start
`
`' '
`VLC
`Decode
`50
`
`, w
`
`Inverse Zig Zag
`52
`
`, r
`
`Inverse OCT
`54
`
`, r
`
`Motion
`Compensation
`56
`
`, Ir
`
`End
`
`FIG. 3
`
`Ex. 1008 / Page 5 of 17
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1008, p. 5
`
`

`
`U.S. Patent
`
`Oct. 21, 1997
`
`Sheet 4 of 7
`
`5,680,482
`
`-70
`
`Video
`Storage
`Device
`
`Input
`Buffer
`
`Input
`Buffer
`
`Input
`Buffer
`
`Input
`Buffer
`
`\
`60
`
`\
`62
`
`\
`64
`
`, r
`
`66
`
`Decompression
`Processing
`Pathway
`
`r--- 72
`
`FIG. 4
`
`Ex. 1008 / Page 6 of 17
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1008, p. 6
`
`

`
`100
`
`1110
`
`105
`
`(
`
`I
`I
`[]iQJ
`.. I IT!QJ PROCESSOR
`[]iQJ ,-----44--_J
`[}iQJ COPROCESSOR
`
`115
`
`145
`
`'• ...,1 MEMORY
`CONTROLLER
`
`179 \ J
`FLOPPY
`DRIVE
`
`135
`
`GRAPHICS
`CONTROLLER
`
`sc~~~us C l - -1 -1-5~--o-·· I
`
`160
`
`BUS
`INTERFACE
`CONTROLLER
`
`180
`
`DISK
`CONTROLLER
`
`DISPLAY
`
`190
`
`PARALLEL 1/0
`CONTROLLER
`
`E
`X
`P
`A B
`N U
`s s
`
`FIG. 5
`
`d • rJ.l • ;p
`~
`
`0
`?-
`N
`"""'
`"'
`"""' ~
`
`"'-I
`
`g
`"' ~
`
`~
`
`"'-I
`
`Ot
`Q\
`
`00 = 'l;.
`
`00
`N
`
`Ex. 1008 / Page 7 of 17
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1008, p. 7
`
`

`
`U.S. Patent
`
`Oct. 21, 1997
`
`Sheet 6 of 7
`
`r
`
`r
`
`Jl
`
`5,680,482
`20z_ (
`)
`IFS 210
`-
`-~-}-------1--------}--
`220 r-
`~
`rNETWORK
`VFAT
`CDFS
`FS
`I
`222
`224
`226
`I
`...
`'-
`••
`--- ---------------------
`, .
`. '
`I
`108 230
`
`-,
`
`I
`I
`I
`
`·I _,
`
`,
`
`,.
`
`j .
`
`1'
`
`DISK
`TYPE
`TSO
`, ,
`
`j ~
`
`VSD
`
`'~
`1~
`
`PORT
`DRIVER
`
`j .
`
`,,
`
`ADAPTER
`
`I.
`
`1
`
`~
`
`....
`
`,
`
`j
`
`VTD 240
`, .
`CD TYPE
`TSD
`242
`,,
`
`j l
`
`"
`SCSllZER
`244
`
`~
`
`••
`SCSI
`MANAGER
`246
`
`MINI PORT
`DRIVER
`248
`
`~
`
`l
`
`SCSI
`ADAPTER
`250
`
`FIG. 6
`
`, Ir
`
`T
`
`.....
`
`MAPPER
`
`MINI PORT
`DRIVER
`248
`
`.._
`
`,
`
`ADAPTER
`
`Ex. 1008 / Page 8 of 17
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1008, p. 8
`
`

`
`......
`
`/
`
`t
`OPTIMIZE FOR
`DRIVE LATENCY,
`ACCESS TIME, BW
`350
`
`'\
`
`~
`
`\.
`
`~
`
`/
`
`•
`
`'
`OPTIMIZE FOR
`BITSTREAM
`CHARACTERISTICS
`310
`
`~
`
`'
`
`'
`
`~
`
`'
`
`\._
`
`•
`,--··-
`ACCUMULATE
`PICTURE
`TYPE DATA
`312
`
`/
`
`\..
`
`r
`
`..
`
`CLASSIFY
`AVERAGE
`PICTURE TYPE
`314
`
`•
`CONFIGURE
`BUFFER BY
`PICTURE TYPE
`316
`
`OPTIMIZE FOR
`FILE 1/0
`OVERHEAD
`330
`
`•
`MONITOR
`FILE 1/0
`OVERHEAD
`332
`
`•
`CLASSIFY
`110 OVERHEAD
`PERFORMANCE
`334
`
`r
`
`CONFIGURE
`BUFFER BY 1/0
`PERFORMANCE
`336
`
`/
`
`\.
`
`r
`
`/
`
`'-
`
`/
`
`'-
`
`""'
`
`'
`
`)
`
`"'\
`
`/
`
`\._
`
`r
`
`/
`
`•
`
`OPTIMIZE FOR
`PROCESSING
`POWER
`370
`
`*
`EVALUATE
`PROCESSOR
`372
`
`.....
`
`~
`
`""
`
`1
`SELECT
`PROCESSOR(cid:173)
`DEPENDENT
`BUFFER PARAM
`374
`
`.......
`
`)
`
`•
`
`FIG. 7
`
`~ • 00
`
`•
`
`~ = ..... a
`
`0
`
`~ .
`
`N
`~
`"'
`~
`
`~
`
`00.
`t:r'
`('!) a
`a,
`
`~
`
`~
`
`tit °' 00 = ~
`
`00
`~
`
`'
`
`-
`
`*
`, - - - -
`MONITOR VIDEO
`STORAGE DEVICE,
`PERFORMANCE
`352
`
`*
`,--
`-...,
`CLASSIFY VIDEO
`STORAGE DEVICE,
`PERFORMANCE
`354
`
`\.
`
`~
`
`\_
`
`*
`"'
`/
`CONFIGURE BUFFER
`BY VIDEO
`STORAGE DEVICE
`PERFORMANCE 356
`
`Ex. 1008 / Page 9 of 17
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1008, p. 9
`
`

`
`5,680,482
`
`1
`METHOD AND APPARATUS FOR
`IMPROVED VIDEO DECOMPRESSION BY
`ADAPTIVE SELECTION OF VIDEO INPUT
`BUFFER PARAMETERS
`
`FIELD OF THE INVENTION
`
`The present invention relates to decompression of video
`information and, more particularly, to improved perfor(cid:173)
`mance of video decompression by adaptive selection of
`input buffer characteristics.
`BACKGROUND OF THE INVENTION
`
`2
`picture), forward predicted pictures (P picture) and
`bi-predicted pictures (B picture).
`An I picture is encoded as a single image having no
`reference to any past or future picture. Each block of an I
`5 picture is encoded independently. Accordingly, when decod(cid:173)
`ing an I picture, no motion processing is necessary.
`However, for the reasons discussed below, it is necessary to
`store and access I pictures for use in decoding other types of
`pictures.
`10 AP picture is encoded relative to a past reference picture.
`A reference picture is a P or I picture. The past reference
`picture is the closest preceding reference picture. Each
`macroblock in a P picture can be encoded either as an I
`Video information requires a large amount of storage
`macroblock or as a P macroblock. A P macroblock is stored
`space, therefore video information is generally compressed
`before it is stored. Accordingly, to display compressed video 15 as a translated 16xl6 area of a past reference picture plus an
`error term. To specify the location of the P macroblock, a
`information which is stored, for example, on a compact disk
`read only memory (CD ROM), the compressed video infor-
`motion vector (i.e., an indication of the relative position of
`mation is decompressed to furnish decompressed video
`the macroblock in the current picture to the position of the
`translated area in the past reference picture) is also encoded.
`information. The decompressed video information is then
`communicated in a bit stream to a display. The bit stream of 20 When decoding a P macroblock, the 16xl6 area from the
`reference picture is offset according to a motion vector. The
`video information is generally stored in a plurality of
`memory storage locations corresponding to pixel locations
`decoding function accordingly includes motion
`on a display. The stored video information is generally
`compensation, which is performed on a macroblock, in
`referred to as a bit map. The video information representing
`combination with error (IDCT) terms, which are defined on
`a single screen of information on a display is called a picture. 25 a block by block basis.
`A goal of many video systems is to quickly and efficiently
`A B picture is encoded relative to the past reference
`decode compressed video information to enable a motion
`picture and a future reference picture. The future reference
`picture is the closest proceeding reference picture.
`video capability.
`Standardization of recording media, devices and various 30 Accordingly, the decoding of a B picture is similar to that of
`aspects of data handling, such as video compression, is
`an· P picture with the exception that a B picture motion
`highly desirable for continued growth of this technology and
`vector may refer to areas in the future of the reference
`its applications. One compression standard which has
`picture. For macroblocks that use both past and future
`reference pictures, the two 16x16 areas are averaged. The
`attained wide spread use for compressing and decompress-
`ing video information is the moving pictures expert group 35 macroblocks from the reference pictures are offset according
`(MPEG) standard for video encoding and decoding. The
`to motion vectors.
`MPEG standard is defined in International Standard ISO/
`Pictures are coded using a discrete cosine transform
`IEC 11172-1, "Information Technology-Coding of moving
`(DCT) coding scheme which transforms pixels (or error
`pictures and associated audio for digital storage media at up
`terms) into a set of coefficients corresponding to amplitudes
`to about 1.5 Mbit/s'', Parts 1, 2 and 3, First edition 1993- 40 of specific cosine basis functions. The discrete cosine trans-
`08-01 which is hereby incorporated by reference in its
`form is applied to image compression to decorrelate picture
`entirety.
`data prior to quantization. The DCT coefficients are further
`Pictures within the MPEG standard are divided into
`coded using variable length coding. Variable length coding
`(VLC) is a statistical coding technique that assigns code-
`16x16 pixel macroblocks. Each macroblock includes six
`8x8 blocks: four luminance (Y) blocks, one chrominance red 45 words to values to be encoded. Values of high frequency of
`(Cr) block and one chrominance blue (Cb) block. The
`occurrence are assigned short codewords, and those of
`luminance blocks correspond to sets of 8x8 pixels on a
`infrequent occurrence are assigned long codewords. On the
`display and control the brightness of respective pixels. The
`average, the more frequent shorter codewords dominate so
`chrominance blocks to a large extent control the colors for
`that the code string is shorter than the original data.
`sets of four pixels. For each set of four pixels on the display, 50
`For a video system to provide a motion video capability,
`there is a single Cr characteristic and a single Cb charac-
`compressed video information must be quickly and effi-
`teristic.
`ciently. decoded. One aspect of the decoding process is
`For example, referring to FIG. 1, labeled prior art, a
`inverse discrete cosine transformation (IDCT). A second
`picture presented by a typical display includes 240 lines of
`aspect is a motion compensation operation. Both the IDCT
`video information in which each line has 352 pixels. 55 operation and the motion compensation operation are com-
`Accordingly, a picture includes 240x352=84,480 pixel loca-
`putationally intensive operations. Over a wide range of
`tions. Under the MPEG standard, this picture of video
`processor capabilities and image characteristics, a condition
`includes 44 by 30 luminance blocks or 1320 blocks of
`sometimes arises in which the picture decoding operation
`luminance video information. Additionally, because each
`overburdens a video system. Under this condition, video
`macroblock of information also includes two corresponding 60 frames are commonly dropped or a lag in motion video
`chrominance blocks, each picture of video information also
`results.
`includes 330 Cr blocks and 330 Cb blocks. Accordingly,
`The above described scheme using I, P, and B frames and
`each picture of video information requires 126,720 pixels or
`motion vectors is often referred to as motion compensation.
`a total of 1,013,760 bits of bit mapped storage space for
`The pixel error terms are coded via the discrete cosine
`65 transform (DCT), quantization, and variable-length coding
`presentation on a display.
`There are three types of pictures of video information
`(VLC). Performing an inverse discrete cosine transform
`function (IDCT) is one of the most computationally inten-
`which are defined by the MPEG standard, intra-pictures (I
`
`Ex. 1008 / Page 10 of 17
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1008, p. 10
`
`

`
`5,680,482
`
`3
`sive operations in many common video decompression
`methods and which requires extensive processor resources.
`Furthermore, such an operation must be performed to
`decode every block in the compressed video information.
`The IDCT function severely burdens the system processor 5
`when implemented in a general pmpose processor system
`since this operation requires many additions and multipli(cid:173)
`cations for each term of the 64-term block.
`Systems unable to keep up with the computational
`demands of such a decompression burden frequently drop
`entire frames to resynchronize with a real time clock signal
`also encoded in the video stream. Otherwise, video signals
`would become out of synchronization with audio signals,
`and/or the video playback would "slow down" compared to
`the "real" speed otherwise intended. This is sometimes 15
`observable as a momentary freeze of the picture in the video
`playback, followed by sudden discontinuities or jerkiness in
`the picture.
`Handling the computational demands of decompression is
`only part of the task of a video display system. In addition,
`the system must gain access to the compressed data before
`the data can be processed for decompression. Data is read
`from a video storage device, typically a CD ROM device. A
`CD ROM is a slow device having single, double and
`quadruple speeds of 150, 300 and 600 KB/s, respectively,
`which are substantially slower than the processing speed of
`the system. Generally, a computer system does not utilize its
`processing capabilities to perform input/output operations
`on a bit-by-bit basis. Instead the processor of a computer
`system initiates an input/output operation and special input/
`output circuits perform data transfer operations. However,
`data is typically read into an input buffer and data from the
`input buffer is then decompressed. Reading of data from a
`video storage device into the input buffer and processing of
`data in the input buffer cannot be performed at the same time
`if only a single buffer is used to store the data bitstream read
`from a video storage device file. When only a single input
`buffer is used, data is read into the input buffer while video
`data decoding is blocked. After all bits in the buffer have
`been read, the decoder decompresses the video data. In this
`manner, input buffer is alternately filled then utilized for
`processing. Serial reading and processing operations slow
`down overall video data decoding.
`What is needed is a video decompression system that
`reads and processes data concurrently.
`
`SUMMARY OF THE INVENTION
`In accordance with the present invention, a video decom(cid:173)
`pression system utilizes multiple independent input buffers
`so that input/output operations and processing take place
`concurrently, nearly continuously and at a rate that is sub(cid:173)
`stantially equal to a selected maximum access rate of the
`storage device. Consequently, the data rate of the video
`decompression system is optimized with respect to the rate
`of data accessing.
`In accordance with one embodiment of the present
`invention, a method of reading compressed video data from
`a video data storage device in a video processing system
`includes the steps of allocating a plurality of input data
`buffers, transferring compressed video data from the video
`data storage device to a first input data buffer of the plurality
`of input data buffers and decompressing compressed video
`data from a second input data buffer of the plurality of input
`data buffers concurrently with the data transferring step.
`In accordance with a second embodiment of the present
`invention, a method of decompressing video data using a
`
`4
`computer system includes the steps of defining a plurality of
`input data buffers and operating the computer system using
`a foreground processing and a background processing. The
`background processing includes the steps of assigning a read
`input data buffer from the plurality of input data buffers,
`reading compressed video data from a video data storage
`device into the read input data buffer and reassigning the
`read input data buffer to a process input data buffer when the
`read input data buffer is full. The foreground processing
`10 includes the step of decompressing compressed video data
`from a process input data buffer concurrently with the
`reading step.
`Other embodiments of the present invention are similar to
`the first and second embodiments and also include the steps
`of selecting a number N of input data buffers for allocation
`by the allocating step and selecting a buffer length L of input
`data buffers for allocation by the allocating step. Some of
`these embodiments include the steps of determining a mea(cid:173)
`sure of processing performance of the computer and select-
`20 ing the number N and the buffer length L of input data
`buffers which are dependent on the measure of processing
`performance. Some of these embodiments also include the
`steps of determining a measure of the character of the
`bitstream the compressed video data and selecting the num-
`25 ber N and the buffer length L of input data buffers which are
`dependent on the measure of bitstream character. Some of
`these embodiments further include the steps of determining
`a measure of latency, access time and bandwidth of the video
`data storage device and selecting the number N and the
`30 buffer length L of input data buffers which are dependent on
`the measure of latency, access time and bandwidth. Some of
`these embodiments also include the steps of determining a
`measure of file input/output overhead for accessing data
`from the video data storage device and selecting the number
`35 N and the buffer length L of input data buffers which are
`dependent on the measure of file input/output overhead.
`Usage of adaptively controlled input buffering as
`described above has several advantages. One advantage is
`that the data decompression operation becomes more effi-
`40 cient with the data accessing operation taking place concur(cid:173)
`rently with the data processing operation, thereby increasing
`the overall data handling rate of the system. Another advan(cid:173)
`tage is that decoding processing becomes substantially asyn(cid:173)
`chronous with respect to data reading so that the rates of data
`45 transfer and processing become generally independent.
`Independence of the data transfer and processing operations
`is advantageous in a system which performs tasks other than
`data handling so that data is available without delay when
`the system returns to a task utilizing data handling. It is
`50 advantageous that the processor in the video decompression
`system executes generally independently of the data transfer
`operation. When data is available for decoding, the proces(cid:173)
`sor may decode the data but may also perform other tasks
`which occasionally have a higher priority. When the pro-
`55 cessor does perform these other tasks, data continues to fill
`the input buffers so that delays due to unavailable data are
`avoided when the processor returns to the decoding task.
`The above and other objects, features, and advantages of
`the present invention will become apparent from the fol(cid:173)
`lowing detailed description and drawings.
`
`60
`
`BRIEF DESCRIPTION OF THE DRAWJNGS
`FIG. 1, labeled prior art, shows an arrangement of blocks
`65 of pixels on a display screen.
`FIG. 2 shows a block diagram of a decoder video system
`in accordance with the present invention.
`
`Ex. 1008 / Page 11 of 17
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1008, p. 11
`
`

`
`5,680,482
`
`5
`FIG. 3 shows a flow chart of the decoding of video
`information which is encoded using the MPEG standard.
`FIG. 4 is a block diagram which illustrates an allocation
`of input data buffers in accordance with the disclosed
`method.
`FIG. 5 is a block diagram of a computer on which the
`disclosed method can be implemented.
`FIG. 6 is a block diagram of a filesystem architecture
`within which the disclosed method can be implemented.
`FIG. 7 illustrates a flow chart of a routine for adaptively
`setting the number of buffers allocated for decoding and the
`length of the data buffers.
`
`DEfAILED DESCRIPTION
`
`Referring to FIG. 2, a system for decompressing video
`information is shown. Video system 10 includes input
`stream decoding portion 12 incorporating an inverse discrete
`cosine transformation, motion decoding portion 14, adder 16
`and display device 18. Input stream decoding portion 12
`receives a stream of compressed video information and
`provides blocks of statically decompressed video informa(cid:173)
`tion to adder 16. Motion decoding portion 14 receives
`motion information and provides motion compensation
`information to adder 16. Adder 16 receives the statically
`decompressed video information and the motion compen(cid:173)
`sation information and provides decompressed video infor(cid:173)
`mation to display 18.
`Input stream decoding portion 12 includes input buffer 20,
`variable length coding (VLC) decoder 22, inverse zig-zag
`and quantizer circuit 24 and inverse digital cosine transform
`circuit 26. Motion decoding portion 14 includes previous
`picture store circuit 30, future picture store circuit 32,
`memory 33, forward motion compensation circuit 34 and
`backward motion compensation circuit 38. Display device
`18 includes a picture buffer (not shown) which allows
`information provided by adder 16 to be rasterized prior to
`display by display device 18.
`Input stream decoding portion 12 provides statically
`decompressed video signals to adder 16 on a block-by-block
`basis. Additionally, forward motion compensation circuit 34
`and backward motion compensation circuit 38 of motion
`decoding portion 14 provide motion compensation signals to
`adder 16 on a macroblock by macroblock basis. Adder 16 45
`provides a decompressed video signal to display 18 on a
`picture by picture basis. The decompressed video signal is
`also provided as a previous picture signal to previous picture
`store circuit 30 and future picture store circuit 32 (in the case
`of an I or P picture).
`Referring to FIGS. 2 and 3, in operation, input buffer 20
`receives a compressed video signal in the form of a bitstream
`from a video signal source such as a CD ROM (not shown);
`the compressed video signal is provided as a stream of
`compressed video information. Input buffer 20 buffers this 55
`compressed video signal to compensate for variations in the
`speed which the signal is provided by the video source.
`Multiple input buffers 20 are allocated in the video system
`10 so that video bitstream data is read from the video signal
`source into one buffer while another buffer is used to process 60
`the compressed video signal bitstream. Referring to FIG. 4,
`an example of an allocation of video input buffers is shown
`which includes four allocated input buffers 60, 62, 64 and
`66. Under one typical condition, the input buffer 60 is
`currently filled from a video storage device 70 while video 65
`bitstream data in input buffer 64 is processed by a decom(cid:173)
`pression processing pathway 72. In this example, the video
`
`6
`storage device 70 transfers data to the input buffers in the
`order of buffers 60, 62, 64, 66 and recycling to buffer 60 and
`the decompression processing pathway 72 also processes
`video bitstream data in the order of input buffers 60, 62, 64,
`5 66 and recycling to buffer 60. In this example, transferring
`data to the input buffers is one buffer ahead of the processing
`of input data with input buffer 62 being filled and awaiting
`processing and input buffer 66 being processed and awaiting
`filling. The number of input buffers under various conditions
`10 and circumstances is greater or lesser than the four buffers
`shown in this example. The minimum number of input
`buffers is two. The number of input buffers and the length of
`the buffers is set adaptively as a function, for example, of
`processor capabilities, available system memory, bitstream
`15 characteristics, drive latency and access time, and file J/O
`overhead.
`Referring again to FIGS. 2 and 3, the input bitstream is
`accumulated in the input buffer 20 until the bitstream data is
`to be utilized. This buffered compressed video signal is
`20 provided to VLC decoder 22 which decodes the variable
`length coded portion of the compressed signal at VLC
`decoding step 50 to provided a variable length decoded
`signal.
`The variable length decoded signal is provided to inverse
`25 zig-zag and quantizer circuit 24 which, at inverse zig-zag
`and quantization step 52, decodes the variable length coded
`signal to provide a zig-zag decoded signal. Inverse zig-zag
`and quantizer circuit 24 produces actual DCT coefficients
`using a preset quantization step size. When a signal is
`30 encoded, data is run-length encoded in zig-zag ordering
`across an image so that compression is optimized. In
`general, most of the energy in an image is concentrated at the
`low frequency coefficients, which are conventionally written
`in the upper left comer of the transformed matrix, Therefore,
`35 image data which has been converted to a frequency repre(cid:173)
`sentation typically has larger coefficients at lower spatial
`frequencies, clustered at the upper left corner of a frequency
`image block. Coefficients typically decrease along rays
`extending from the zero-frequency, or DC, term to higher
`40 spatial frequency terms. A block of data is compressed by
`discrete cosine transform (DCT) coefficient quantization.
`Most of the information in a block is contained in the lower
`frequency coefficients. Quantization serves to remove small
`coefficients-coefficients that are smaller than a quantiza(cid:173)
`tion step. Higher frequency coefficients have a larger quan(cid:173)
`tization step. Zig-zag ordering is used to reorder the quan-
`tized discrete cosine transform (DCT) block of coefficients
`so that non-zero coefficients are transmitted first, thereby
`increasing transmission efficiency. The inverse zig-zag and
`50 quantization step 52 compensates for the fact that, while a
`compressed video signal is compressed in a zig-zag run
`length code fashion, the zig-zag decoded signal is provided
`to inverse DCT circuit 26 as sequential blocks of video
`information. Accordingly, this zig-zag decoded signal pro(cid:173)
`vides blocks which are in a suitable order for raster scanning
`across display 18.
`When a signal is encoded, an image block is first trans-
`formed from the spatial domain to the frequency domain
`using the Discrete Cosine Transform (DCT), which sepa(cid:173)
`rates the signal into independent frequency bands. Most of
`the frequency information is in the upper left comer of the
`resulting block. The zig-zag decoded signal is applied to
`inverse DCT circuit 26 to convert the frequency domain
`image into the spatial domain. The inverse DCT circuit 26,
`at inverse DCT step 54, performs an inverse digital cosine
`transform on the zig-zag decoded video signal on a block-
`by-block basis to provide a decompressed video signal. This
`
`Ex. 1008 / Page 12 of 17
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1008, p. 12
`
`

`
`5,680,482
`
`7
`decompressed video signal corresponds to either error tenns
`for P or B-coded macroblocks or pixels for I-coded mac(cid:173)
`roblocks.
`The decompressed signal is provided to adder 16 which,
`if the signal does not include any motion information (i.e., 5
`I pictures) provides this signal to display 18. However, for
`video signals which include motion information (i.e., B
`pictures and P pictures), adder 16 uses the forward motion
`compensation and backward motion compensation outputs
`from motion decode portion 19 to generate the video infor- 10
`mation which is provided to display 18 at motion compen(cid:173)
`sation step 56. More specifically, forward motion vectors are
`used to locate information in previous picture store circuit
`30 and backward motion vectors are used to locate infor(cid:173)
`mation in future picture store circuit 32 and this information
`is added to the output provided by inverse DCT circuit 26. 15
`VLC decoder 22 decodes a sequence of pictures in the
`following manner. VLC decoder 22 first decodes the header
`of a first picture, called picture 0, and determines that it is an
`I-picture. VLC decoder 22 produces quantized coefficients
`corresponding to the quantized DCT coefficients. These are 20
`assembled for each 8 by 8 block of pixels in the image by
`inverse zig-zag scanning. VLC decoder 22 decodes the
`header of the next picture, picture 3, and determines that it
`is a P-picture. For each inter-coded macroblock, the VLC
`decoder 22

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