throbber
(12) United States Patent
`Dattani et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 7,010,044 B2
`Mar. 7, 2006
`
`USOO701 004.4B2
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`2003/0223495 A1 12/2003 Sun et al. .............. 375/240.12
`
`* cited b
`cited by examiner
`
`(54) INTRA 4x4 MODES3, 7 AND 8
`AVAILABILITY DETERMINATION INTRA
`ESTMATION AND COMPENSATION
`(75) Inventors: Doni S. Dattani, Waterloo (CA);
`Lowell L. Winger, Waterloo (CA);
`Simon Booth, Kitchener (CA)
`(73) Assignee: LSI Logic Corporation, Milpitas, CA
`Primary Examiner Young Lee
`(US)
`Subject to any disclaimer, the term of this Sp Attorney, Agent, or Firm-Christopher P. Maiorana,
`patent is extended or adjusted under 35
`--
`U.S.C. 154(b) by 268 days.
`(21) Appl. No.: 10/623,329
`(22) Filed:
`Jul. 18, 2003
`
`(*) Notice:
`
`(65)
`
`Prior Publication Data
`US 2005/0013376 A1 Jan. 20, 2005
`(51) Int. Cl.
`(2006.01)
`H04N 7/12
`(52) U.S. Cl. ................................................. 375,240.24
`(58) Field of Classification Search ........... 375/24001,
`375/240.08, 240.12, 240.24; H04N 7/12
`See application file for complete Search history.
`
`ABSTRACT
`
`57
`(57)
`An apparatus including a first processing circuit and a
`Second precessing circuit. The first processing circuit may be
`configured to generate a plurality of reconstructed Samples
`in response to one or more macroblocks of an input signal.
`The Second processing circuit may be configured to deter
`mine availability of intra 4x4 prediction modes for each
`luma Sub-block of a current macroblock in response to
`available reconstructed Samples adjacent to the current mac
`roblock.
`
`22 Claims, 10 Drawing Sheets
`
`NT1
`--- 1992).------------------------------- -
`
`OFFSET
`
`PCTURE MEMORY ACCESS
`
`
`
`
`
`A B C D E F G H
`
`J K L M
`
`NPU
`
`BLOCK
`LOCATION
`
`
`
`MODES
`
`ENABLE
`MODES
`3 AND 7
`
`ENABLE
`MODE 8
`
`MODES
`
`Unified Patents, LLC v. Elects. & Telecomm. Res. Inst., et al.
`
`Ex. 1020, p. 1
`
`

`

`U.S. Patent
`
`Mar. 7, 2006
`
`Sheet 1 of 10
`
`US 7,010,044 B2
`
`
`
`
`
`SE&Jºn LOId (CJELOrmae LSNOOH ? HO) BOHnOS
`
`
`
`
`
`
`
`>HEGIOONE
`
`
`
`>HECIO OECD
`
`Unified Patents, LLC v. Elects. & Telecomm. Res. Inst., et al.
`
`Ex. 1020, p. 2
`
`

`

`U.S. Patent
`
`Mar. 7, 2006
`
`Sheet 2 of 10
`
`US 7,010,044 B2
`
`
`
`SXAOOTE 8X8
`
`9 ECJOW
`
`Z EICJOW
`
`A ECJOW
`
`9 ECJOW
`
`9 ECJOW
`
`
`
`
`
`
`
`10/
`
`SXAOOTBOX-HOV/W
`
`Unified Patents, LLC v. Elects. & Telecomm. Res. Inst., et al.
`
`Ex. 1020, p. 3
`
`

`

`U.S. Patent
`
`Mar. 7
`9
`
`2006
`
`Sheet 3 of 10
`
`010,044 B2
`US 7
`9
`
`
`
`96
`
`Unified Patents, LLC v. Elects. & Telecomm. Res. Inst., et al.
`
`Ex. 1020, p. 4
`
`

`

`U.S. Patent
`
`Mar. 7, 2006
`
`Sheet 4 of 10
`
`US 7,010,044 B2
`
`
`
`
`
`(dn-TVLNOZINJOH) 8
`
`
`
`
`
`Unified Patents, LLC v. Elects. & Telecomm. Res. Inst., et al.
`
`Ex. 1020, p. 5
`
`

`

`U.S. Patent
`
`US 7,010,044 B2
`
`
`
`
`
`
`
`
`
`~ 00||
`
`Unified Patents, LLC v. Elects. & Telecomm. Res. Inst., et al.
`
`Ex. 1020, p. 6
`
`

`

`U.S. Patent
`
`Mar. 7, 2006
`
`Sheet 6 of 10
`
`US 7,010,044 B2
`
`106 132
`
`136
`
`INPUT
`
`GENERAL
`1402 PROCESSING
`
`
`
`ENCODING
`
`COMPRESSED
`
`146
`
`INT2
`
`
`
`
`
`
`
`
`
`
`
`158 -
`
`160/T 150 / 156
`PRED INT1
`152 -
`154
`INTRA
`PREDICTION
`LUMA
`PROCESSING
`134
`
`126
`190
`
`192
`
`COMPRESSED
`196
`
`
`
`
`
`DECODING
`
`
`
`GENERAL
`PROCESSING
`
`UNCOMPRESSED
`204
`
`
`
`
`
`INTRA
`PREDICTION
`LUMA
`PROCESSING
`194
`
`Unified Patents, LLC v. Elects. & Telecomm. Res. Inst., et al.
`
`Ex. 1020, p. 7
`
`

`

`U.S. Patent
`
`Mar. 7, 2006
`
`Sheet 7 of 10
`
`US 7,010,044 B2
`
`80
`
`ENCOOING
`
`146
`
`COMPRESSED
`
`
`
`PICTURE
`ELEMENT
`LUMA
`PROCESSING
`
`PREDICTION
`PROCESSING
`
`FILTER
`
`
`
`
`
`
`
`
`
`
`
`
`
`162
`
`Unified Patents, LLC v. Elects. & Telecomm. Res. Inst., et al.
`
`Ex. 1020, p. 8
`
`

`

`U.S. Patent
`
`Mar. 7, 2006
`
`Sheet 8 of 10
`
`US 7,010,044 B2
`
`190
`
`DECODING
`
`
`
`
`
`
`
`
`
`
`
`INTER
`PREDICTION
`PROCESSING
`
`
`
`PICTURE
`ELEMENT
`LUMA
`PROCESSING
`
`Unified Patents, LLC v. Elects. & Telecomm. Res. Inst., et al.
`
`Ex. 1020, p. 9
`
`

`

`Unified Patents, LLC v. Elects. & Telecomm. Res. Inst., et al.
`
`Ex. 1020, p. 10
`
`

`

`U.S. Patent
`
`Mar. 7, 2006
`
`Of 10
`Sheet 10
`
`US 7,010,044 B2
`
`300
`V
`
`302
`NTRA PREDICTION SELECTED
`
`
`
`
`
`
`
`
`
`IS INTRA 4x4
`PREDICTION
`SELECTED?
`
`YES
`
`NO
`
`30
`6
`PERFORM 16x16
`INTRA PREDICTION
`
`
`
`
`
`
`
`ARE SAMPLES ADJACENT TO
`TOP AND LEFT EDGE OF
`CURRENT SUB-BLOCK (E.G.,
`P(X,-1);X=0-7 AND P(-1,Y);
`Y=0-3) AVAILABLE?
`
`310
`YES MODES 3, 7 AND
`8 ARE VALID
`
`
`
`
`
`
`
`
`
`
`
`NO
`
`ARE SAMPLES
`ADJACENT TO TOP
`EDGE OF CURRENT
`SUB-BLOCKAVAILABLE
`
`
`
`4 31
`
`YES
`
`MENP7
`
`NO
`
`ARE SAMPLES
`ADJACENT TO LEFT
`EDGE OF CURRENT
`SUB-ELOCKAVAILABLE
`
`318
`YES
`
`MODE 8 SWALID
`
`NO
`
`320
`MODES 3, 7, AND 8
`ARE NOT AVAILABLE
`
`F.G. 11
`
`Unified Patents, LLC v. Elects. & Telecomm. Res. Inst., et al.
`
`Ex. 1020, p. 11
`
`

`

`US 7,010,044 B2
`
`1
`INTRA 4x4 MODES 3, 7 AND 8
`AVAILABILITY DETERMINATION INTRA
`ESTIMATION AND COMPENSATION
`
`FIELD OF THE INVENTION
`
`The present invention relates to processing digital Video
`generally and, more particularly, to a method and/or circuit
`for determining availability of intra estimation and/or intra
`compensation of intra 4x4 Sample prediction modes 3, 7 and
`8 as specified in subclause 8.3.1.2 of ISO/IEC 14496-10
`AVC and ITU-T Rec. H.264.
`
`BACKGROUND OF THE INVENTION
`
`When a current block (or macroblock) is encoded/de
`coded in intra mode, a prediction block is formed based on
`adjacent Samples from previously encoded/decoded and
`reconstructed blocks. The prediction block is subtracted
`from the current block prior to encoding. When the current
`block is decoded in intra mode, a prediction block is formed
`based upon Samples from previously decoded and recon
`structed blocks. The prediction block is added to the current
`block following decoding.
`A prediction block for encoding/decoding luminance can
`be formed for each 4x4 Sub-block of a macroblock or for the
`entire 16x16 macroblock. Conventional approaches restrict
`the availability of Some modes when encoding 4x4 Sub
`blockS. Having alternative modes available for comparison
`when making an estimation decision can improve compres
`Sion accuracy and efficiency.
`It would be desirable to have a Solution that would allow
`as many modes for intra prediction as possible for the
`number of Samples available.
`
`SUMMARY OF THE INVENTION
`
`15
`
`25
`
`35
`
`40
`
`The present invention concerns an apparatus comprising
`a first processing circuit and a Second precessing circuit. The
`first processing circuit may be configured to generate a
`plurality of reconstructed Samples in response to one or
`more macroblocks of an input Signal. The Second processing
`circuit may be configured to determine availability of intra
`4x4 prediction modes for each luma Sub-block of a current
`macroblock in response to available reconstructed Samples
`adjacent to the current macroblock.
`The objects, features and advantages of the present inven
`tion include providing a method and/or circuit for determin
`ing availability of intra estimation and/or intra compensation
`of intra 4x4 Sample prediction modes 3, 7 and 8 that may (i)
`allow modes 3, 7 and 8 to be valid more frequently than in
`conventional approaches, (ii) provide alternative modes for
`comparison when making estimation decisions, (iii) obtain
`more accurate compression, (iv) obtain more efficient com
`pression and/or (v) base mode validation on Samples used by
`55
`each mode.
`
`45
`
`50
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`These and other objects, features and advantages of the
`present invention will be apparent from the following
`detailed description and the appended claims and drawings
`in which:
`FIG. 1 is a block diagram illustrating encoding and
`decoding operations,
`FIG. 2 is a block diagram illustrating partitions or Seg
`ments of pictures,
`
`60
`
`65
`
`2
`FIG. 3 is a diagram generally illustrating an example intra
`4x4 prediction operation;
`FIG. 4 is a diagram illustrating various intra 4x4 predic
`tion modes;
`FIG. 5 is a block diagram illustrating various components
`of a compressed Video System;
`FIG. 6 is a block diagram illustrating an encoder in
`accordance with a preferred embodiment of the present
`invention;
`FIG. 7 is a more detailed diagram of the encoder of FIG.
`6;
`FIG. 8 is a block diagram illustrating a decoder in
`accordance with a preferred embodiment of the present
`invention;
`FIG. 9 is a more detailed diagram of the decoder of FIG.
`8;
`FIG. 10 is a more detailed block diagram illustrating an
`example control circuit of FIGS. 7 and 9; and
`FIG. 11 is a flow diagram illustrating a mode enablement
`process in accordance with a preferred embodiment of the
`present invention.
`
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENTS
`
`Referring to FIG. 1, a block diagram is shown illustrating
`encoding and decoding operations. In general, a data Stream
`(e.g., a video stream) may comprise a series of Source
`pictures 70a-n. The source pictures may also be referred to
`as images, frames, a group-of-pictures (GOP) or a sequence.
`The pictures generally comprise contiguous rectangular
`arrays of pixels (i.e., picture elements). Compression of
`digital Video without significant quality degradation is usu
`ally possible because video Sequences contain a high degree
`of: 1) spatial redundancy, due to the correlation between
`neighboring pixels, 2) spectral redundancy, due to correla
`tion among the color components, 3) temporal redundancy,
`due to correlation between Video frames, and 4) psycho
`Visual redundancy, due to properties of the human visual
`system (HVS). Video frames generally comprise three rect
`angular matrices of pixel data representing a luminance
`Signal (e.g., luma Y) and two chrominance signals (e.g.,
`chroma Cb and Cr) that correspond to a decomposed rep
`resentation of the three primary colors (e.g., Red, Green and
`Blue) associated with each picture element. The most com
`mon format used in Video compression Standards is eight
`bits and 4:2:0 Sub-Sampling (e.g., the two chroma compo
`nents are reduced to one-half the vertical and horizontal
`resolution of the luma component). However, other formats
`may be implemented to meet the design criteria of a par
`ticular application.
`Each picture may comprise a complete frame of Video
`(e.g., a frame picture) or one of two interlaced fields from an
`interlaced Source (e.g., a field picture). The field picture
`generally does not have any blank lines between the active
`lines of pixels. For example, if the field picture is viewed on
`a normal display, the field picture would appear short and
`fat. For interlaced Sequences, the two fields may be encoded
`together as a frame picture. Alternatively, the two fields may
`be encoded Separately as two field pictures. Both frame
`pictures and field pictures may be used together in a single
`interlaced Sequence. High detail and limited motion gener
`ally favors frame picture encoding. In general, field pictures
`occur in pairs (e.g., top/bottom, odd/even, field1/field2). The
`output of a decoding process for an interlaced Sequence is
`generally a Series of reconstructed fields. For progressive
`Scanned Sequences, all pictures in the Sequence are frame
`
`Unified Patents, LLC v. Elects. & Telecomm. Res. Inst., et al.
`
`Ex. 1020, p. 12
`
`

`

`US 7,010,044 B2
`
`15
`
`3
`pictures. The output of a decoding process for a progressive
`Sequence is generally a Series of reconstructed frames.
`The source pictures 70a-n may be presented to an
`encoder 72. The encoder 72 may be configured to generate
`a Series of encoded pictures 74a–n in response to the Source
`pictures 70a-n, respectively. For example, the encoder 72
`may be configured to generate the encoded pictures 74a–n
`using a compression standard (e.g., MPEG-2, MPEG-4,
`H.264, etc.). In general, encoded pictures may be classified
`as intra coded pictures (I), predicted pictures (P) and bi
`predictive pictures (B). Intra coded pictures are generally
`coded without temporal prediction. Rather, intra coded pic
`tures use Spatial prediction within the same picture. For
`example, an intra coded picture is generally coded using
`information within the corresponding Source picture (e.g.,
`compression using spatial redundancy). An intra coded
`picture is generally used to provide a receiver with a starting
`point or reference for prediction. In one example, intra
`coded pictures may be used after a channel change and to
`recover from errors.
`Predicted pictures (e.g., P-pictures or P-frames) and bi
`predictive pictures (e.g., B-pictures or B-frames) may be
`referred to as inter coded. Inter coding techniques are
`generally applied for motion estimation and/or motion com
`pensation (e.g., compression using temporal redundancy).
`25
`P-pictures and B-pictures may be coded with forward pre
`diction from references comprising previous I and P pic
`tures. For example, the B-picture 74b and the P-picture 74c
`may be predicted using the I-picture 74a (e.g., as indicated
`by the arrows 76 and 78, respectively). The B-pictures may
`also be coded with (i) backward prediction from a next I or
`P-reference picture (e.g., the arrow 80) or (ii) interpolated
`prediction from both past and future I or P-references (e.g.,
`the arrows 82a and 82b, respectively). However, portions of
`P and B-pictures may also be intra coded or skipped (e.g.,
`not sent at all). When a portion of a picture is skipped, the
`decoder generally uses the associated reference picture to
`reconstruct the Skipped portion with no error.
`However, the concept of what particular pictures may
`reference what other particular pictures may be generalized
`in a particular compression Standard (e.g., H.264). For
`example, P-pictures may reference temporally forward or
`backward. B-pictures may have similar forward or backward
`references. The restriction is generally not time, but rather
`how many frames are stored in a buffer so that the frames
`may be decoded in a different order than the frames are
`displayed. In one example, the frames may be referenced
`forward in time. In another example, the frames may be
`referenced backward in time (e.g., re-ordering the frames).
`In one example, a B-frame may differ from a P-frame in
`that a B-frame may do interpolated prediction from any two
`reference frames. Both reference frames may be (i) forward
`in time, (ii) backward in time, or (iii) one in each direction.
`B-pictures can be, and are expected to often be, used as
`prediction references in H.264. In many cases an important
`distinction is between reference and non-reference frames.
`The encoded pictures 74a-n may be presented to a
`decoder 84. The decoder 84 is generally configured to
`generate a Series of reconstructed pictures corresponding to
`the Source pictures 70a-n (e.g., images, frames, fields, etc.)
`in response to the encoded pictures. In one example, the
`decoder 84 may be implemented within the encoder 72 and
`the reconstructed pictures may be used in the prediction
`operations of the encoding process.
`Referring to FIG. 2, a block diagram is shown generally
`illustrating partitions or Segments of pictures. In general, a
`picture (e.g., an image, a frame, a field, etc.) 70i may be
`
`35
`
`4
`divided (e.g., Segmented, partitioned, etc.) into a number of
`macroblockS 86. The macroblockS generally comprise an
`array of pixels having vertical and horizontal dimensions of
`equal size (e.g., 32x32, 16 x 16, etc). The macroblocks
`generally comprise luminance data (e.g., luma Y) and
`chrominance data (e.g., blue chroma Cb and red chroma Cr).
`In one example, the luminance data may have a resolution
`that is twice that of the chrominance data (e.g., a 4:2:0
`format).
`The macroblocks 86 may be grouped in a number of slices
`90. The slices 90 may comprise an arbitrary number of
`macroblocks 86. The slices 90 generally run from left to
`right and may comprise an entire row of the picture 70i.
`However, a slice 90 may comprise less than or more than an
`entire row of macroblocks 86 (e.g., H.264 compliant). In one
`example, a Slice 90 may be defined as a particular number
`of macroblockS 86 grouped together. For broadcast profiles,
`the macroblocks 86 in a slice 90 are generally consecutive
`macroblocks in raster Scan order. However, for Streaming
`and/or Video-conferencing applications, a map may be sent
`identifying which Scattered macroblocks are grouped
`together in a slice. A compression Standard (e.g., H.264) may
`also provide an option of using macroblockS or macroblock
`pairs. A macroblock pair comprises two macroblockS
`located one above the other. When macroblock pairs are
`used, a slice or row generally comprises macroblock pairs
`rather than macroblockS.
`In one example, the macroblock 86 may be implemented
`as a 16x16 block. The macroblock 86 may be encoded in an
`inter prediction mode (e.g., compression based upon tem
`poral redundancy) or an intra prediction mode (e.g., com
`pression based upon spatial redundancy). In the inter pre
`diction mode, each 16x16 macroblock 86 may be predicted
`with a single 16x16 vector (e.g., mode 1). Alternatively, the
`macroblock 86 may be segmented into two 16x8 blocks
`(e.g., mode 2) or two 8x16 blocks (e.g., mode 3), in which
`case two motion vectors may be generated for predicting the
`macroblock 86. The macroblock 86 may also be segmented
`into four 8x8 blocks (e.g., mode 4), in which case four
`motion vectors may be generated for the macroblock 86.
`When the macroblock 86 is segmented into the four 8x8
`blocks (e.g., mode 4), each 8x8 block may be optionally
`further segmented into two 4x8 Sub-blocks (e.g., mode 5),
`two 8x4 sub-blocks (e.g., mode 6) or four 4x4 sub-blocks
`(e.g., mode 7). An encoder generally decides which “mode”
`to use for encoding each macroblock 86. For example, an
`error Score may be computed based on a closeness of match
`determination for each mode, with the modes that use more
`vectors being penalized (e.g., by increasing the respective
`error score) because of the additional bits that it will take to
`encode the motion vectors.
`When a block or macroblock is to be encoded in the intra
`prediction mode, a prediction block is generally formed
`based upon previously decoded and reconstructed blockS. In
`an encoder, the prediction block is generally Subtracted from
`the current block prior to encoding. In a decoder, the
`prediction block is generally added to the current block prior
`to filtering. For luminance (or luma) Samples, the prediction
`block may be formed for either each 4x4 Sub-block in the
`macroblock or for the entire 16x16 macroblock. When each
`4x4 luma block is to be predicted, any available one of nine
`prediction modes may be used for each 4x4 luma block.
`When the entire macroblock (e.g., a 16x16 luma block) is to
`be encoded, any of four available prediction modes may be
`used.
`Referring to FIG. 3, a diagram illustrating an intra pre
`diction operation for a 4x4 luma block is shown. For each
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`Unified Patents, LLC v. Elects. & Telecomm. Res. Inst., et al.
`
`Ex. 1020, p. 13
`
`

`

`US 7,010,044 B2
`
`15
`
`25
`
`35
`
`40
`
`S
`4x4 luma block 91 to be predicted in a current (or source)
`slice 92, a top edge 93 and a left edge 94 are generally
`determined. The top edge 93 and the left edge 94 of the 4x4
`luma block are used to determine whether reconstructed
`samples in a reconstructed slice 95 that are above and to the
`left of the 4x4 luma block (e.g., samples A-M) have been
`encoded and reconstructed. If the reconstructed Samples
`A-M are available in the encoder and decoder, a prediction
`block 96 may be generated using the reconstructed Samples
`A-M. However, not all of the reconstructed samples A-M
`may be available within the current Slice. In general, only
`previously encoded/decoded Samples within a current Slice
`are considered available for intra prediction in order for
`Slices to be independently decoded.
`Specifically, not all of the samples A-M may be available
`within the current reconstructed slice 95. In general, only
`previously encoded/decoded Samples within a current recon
`Structed Slice are considered available for intra prediction in
`order for Slices to be independently decoded. In addition,
`Some modes of operation (e.g., a constrained intra mode)
`may consider only macroblockS coded in an intra prediction
`mode within a slice to be available (e.g., for the constrained
`intra mode only other intra macroblocks within the Slice are
`considered available, inter coded macroblocks are consid
`ered unavailable). Also, in H.264, a slice may not always be
`independently decoded from other slices. For example, a
`loop (or deblocking) filter may operate between slices.
`However, the decoding proceSS for pixels, up to but not
`including the deblocking filter portion of the decoding
`process, may be independently decoded in the various slices.
`In general, intra prediction is performed on the decoded
`samples prior to the deblocking filter process.
`In general, adjacent (or neighboring) samples refers to
`reconstructed Samples in a line directly above or to the left
`of the current block. For field coded pictures and frame
`coded pictures the meaning of neighboring/adjacent is very
`Simple: Vertically adjacent Samples are in the line above in
`the picture (which may be either a frame or a field), and
`horizontally adjacent Samples are the line to the left in the
`picture (which may be either a frame or a field). However,
`with macroblock adaptive field/frame (MB-AFF) coded
`pictures (e.g., particularly when using constrained intra
`prediction), the samples considered to be adjacent for intra
`prediction may depend on the mode of the current macrob
`lock. For example, when processing a frame macroblock,
`the adjacent Samples generally comprise Samples that are
`adjacent to the current block with the picture Samples
`arranged as a frame. When processing a field macroblock,
`the adjacent Samples generally comprise the Samples that are
`adjacent to the current block with the picture Samples
`arranged as the same parity field as the current macroblock.
`In one example, with MB-AFF coding and constrained
`intra prediction, if a left adjacent macroblock pair are coded
`with one FRAME macroblock intra predicted and the other
`FRAME macroblock not intra predicted (e.g., inter pre
`dicted), the neighboring samples I-L may or may not be
`available for prediction for the FIELD macroblocks in the
`current macroblock pair. In another example, when a field
`macroblock pair is to the left of a current frame macroblock
`pair, if one of the left macroblocks is not available (e.g., due
`to being non-intra predicted), all of the samples I-L are
`generally not available for both macroblocks in the current
`macroblock pair. In general, the present invention provides
`for separately determining the availability of the individual
`adjacent samples (e.g., A-L).
`Referring to FIG. 4, a diagram illustrating various intra
`4x4 prediction modes is shown. When intra 4x4 prediction
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`is available, the prediction block for each 4x4 sub-block
`may be formed using one of the nine prediction modes
`depending upon which previously encoded blocks are avail
`able. In a conventional process, the particular modes used
`for generating the prediction blocks are determined based
`upon all Samples from adjacent encoded blocks being avail
`able. In general, nine optional intra 4x4 prediction modes
`(e.g., modes 0-8) may be used to form the luma 4x4
`prediction block 96. The prediction block 96 is generally
`formed by copying particular ones of the Samples A-M into
`positions in the prediction block (e.g., a-p) based upon each
`particular intra prediction mode. The arrows generally indi
`cate the direction in which the Samples A-M are copied in
`each prediction mode.
`The encoder generally Selects the prediction mode for
`each 4x4 luma block that produces a prediction block 96 that
`most closely resembles the current block 91. For example,
`the encoder may select the mode that minimizes a difference
`(or residual) between the predicted block 96 and the block
`91 to be encoded. In one example, a measurement (e.g., Sum
`of absolute differences (SAD)) may be determined to indi
`cate the prediction error.
`Referring to FIG. 5, a block diagram of a system 100 is
`shown. In general, a content provider 102 presents video
`image, audio or other data 104 to be compressed and
`transmitted to an input of an encoder 106. The compressed
`data 108 from the encoder 106 may be presented to an
`encoder transport System 110. An output of the encoder
`transport System 110 generally presents a signal 112 to a
`transmitter 114. The transmitter 114 transmits the com
`pressed data via a transmission medium 116. The content
`provider 102 may comprise a video broadcast, DVD, or any
`other Source of Video data Stream. The transmission medium
`116 may comprise a broadcast, cable, Satellite, network,
`DVD, hard drive, or any other medium implemented to
`carry, transfer, and/or Store a compressed bitstream.
`On a receiving side of the system 100, a receiver 118
`generally receives the compressed data bitstream from the
`transmission medium 116. The receiver 118 presents a
`bitstream 120 to a decoder transport system 122. The
`decoder transport System 122 generally presents the bit
`stream via a link 124 to a decoder 126. The decoder 126
`generally decompresses the data bitstream and presents the
`data via a link 128 to an end user 130. The end user 130 may
`comprise a television, monitor, computer, projector, hard
`drive, or any other medium implemented to carry, transfer,
`present, display and/or Store an uncompressed bitstream.
`Referring to FIG. 6, a block diagram illustrating an
`encoder 106 in accordance with a preferred embodiment of
`the present invention is shown. The encoder 106 may be
`implemented, in one example, as an H.264 compliant
`encoder. The encoder 106 generally comprises a processing
`block 132 and a processing block 134. The encoder 106 may
`also comprise an encoding block 136. The processing block
`132 may be implemented as a general processing block. The
`processing block 134 may be implemented as an intra
`prediction luma processing block.
`The general processing block 132 may have an input 140
`that may receive a signal (e.g., INPUT). The signal INPUT
`generally comprises an uncompressed digital video signal
`comprising a series of pictures (e.g., frames, fields, etc.).
`Each picture generally comprises a representation of a
`digital Video Signal at a particular time. The general pro
`cessing block 132 may be configured to generate a plurality
`of macroblocks from each picture. The general processing
`
`Unified Patents, LLC v. Elects. & Telecomm. Res. Inst., et al.
`
`Ex. 1020, p. 14
`
`

`

`7
`block 132 may also have an output 142 that may present one
`or more signals (e.g., CTR1) to an input 144 of the encoding
`circuit 136.
`The encoding circuit 136 may have an output 146 that
`may present a signal (e.g., COMPRESSED). The signal
`COMPRESSED may be a compressed and/or encoded bit
`Stream, Such as an H.264 compliant digital Video bitstream.
`In one example, the encoding circuit 136 may be configured
`to perform entropy coding. The circuit 136 may be further
`configured to provide Serialization (e.g., Zig-Zag Scan) and
`re-ordering of the transformed and quantized pictures.
`The general processing circuit 132 may have an output
`150 that may present one or more signals (e.g., INT1) to an
`input 152 of the intra prediction luma processing block 134.
`Similarly, the intra prediction luma processing block 134
`may have an output 154 that may present a signal (e.g.,
`INT2) to an input 156 of the general processing block 132,
`an output 158 that may present a signal (e.g., PRED) to an
`input 160 of the general processing block 132 and an input
`162 that may receive the signal INPUT. The signal INT1
`may comprise, in one example, previously encoded/decoded
`and reconstructed Samples of the pictures in the Signal
`INPUT. The signal INT2 may comprises, in one example,
`mode information regarding prediction Samples generated
`by the block 134. The signal PRED generally comprises one
`or more prediction Samples related to each picture.
`Referring to FIG. 7, a more detailed diagram of the
`encoder 106 of FIG. 6 is shown. The intra prediction
`processing block 134 generally comprises a block (or cir
`cuit) 164 and a block (or circuit) 166. The circuit 164 may
`be implemented, in one example, as a control circuit. The
`circuit 166 may be implemented as a picture element luma
`processing block. The circuit 164 may be configured to
`determine available intra prediction modes in response to the
`signals INPUT and INT1. In particular, the circuit 164 may
`be configured to determine availability of reconstructed
`samples A-M for each 4x4 luma block to be intra predicted.
`The circuit 164 may be configured to generate a signal (e.g.,
`MODES) in response to the signals INPUT and INT1. In one
`example, the signal MODES may be implemented as one or
`more individual control signals. Alternatively, the Signal
`MODES may be implemented as a multibit signal, where
`each bit may be used as a control Signal. In one example, the
`signal MODES may be configured to indicate availability of
`intra 4x4 prediction Sample modes 3, 7 and 8.
`The circuit 166 may be configured to generate prediction
`blocks for each 4x4 luma block to be encoded. The circuit
`166 may be configured to receive the signals INPUT, INT1
`and MODES. The circuit 166 may be configured to generate
`the signals INT2 and PRED in response to the signals
`INPUT, MODES and INT1.
`The circuit 132 generally comprises a block (or circuit)
`170, a block (or circuit) 172, a block (or circuit) 173, a block
`(or circuit) 174, a block (or circuit) 176, a block (or circuit)
`177, a block (or circuit) 178, a block (or circuit) 180, a block
`(or circuit) 182, a block (or circuit) 184, a block (or circuit)
`186 and a block (or circuit) 188. The circuit 170 may be
`implemented as an inter prediction processing circuit. The
`circuit 172 may be implemented as a motion estimation
`circuit. The circuit 173 may be implemented as a deblocking
`(or loop) filter. The circuit 174 may be implemented as a
`picture memory circuit. The circuit 176 may be implemented
`as a Selection circuit, Such as a 2:1 multiplexer. The circuit
`177 may be implemented as a summing circuit. The circuit
`178 may be implemented as a transform circuit. In one
`example, the circuit 178 may be configured to perform an
`4x4 integer transform or a discrete cosine transform (DCT).
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 7,010,044 B2
`
`8
`The circuit 180 may be implemented as a control circuit. The
`circuit 182 may be implemented as a quantization circuit.
`The circuit 184 may be implemented as an inverse quanti
`zation circuit. The circuit 186 may be implemented as an
`inverse transform circuit. The circuit 188 may be imple
`mented as a Summing circuit.
`An output of the quantization circuit 182, an output of the
`motion estimation circuit 172, an output of the inter pro
`cessing circuit 170 and the signal INT2 may be presented as
`the signal CTR1 at the output 142. The inverse quantization
`circuit 184 is generally configured to reverse the quantiza
`tion process performed by the quantization circuit 182. The
`inverse transform circuit 186 is generally configured to
`reverse the transformation process (e.g., DCT or 4x4 inte
`ger) performed by the circuit 178. The inverse transform
`circuit 186 may also be referred to as an inverse DCT block
`or an IDCT block.
`The signal INPUT may be presented to the inter predic
`tion processing block 170, the motion estimation block 172
`and the Summing block 177. The summing block 177 may
`mathematically combine the signal INPUT with either (i) an
`output of the interprediction processing block 170 or (ii) the
`signal PRED from the block 134. The selection may respond
`to a signal provided by the control circuit 180. The signal
`INPUT may be compressed with the transform circuit 178.
`The transform circuit 178 may translate the macroblocks in
`the signal INPUT from time domain frames to frequency
`domain frames. The quantization block 182 may reduce the
`number of bits in a number of coefficients representing the
`signal INPUT. The encoding block 136 may provide entropy
`coding (e.g., Huffman coding, binary arithmetic coding,
`context adaptive binary arithmetic coding or CABAC, etc.)
`to implement a loSSleSS compression having frequent values
`represented in fewer bits.
`The inverse quantization circuit 184 and the inverse
`transform circuit

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