# US 8,542,748 B2 · Methods and systems for parallel video encoding and decoding

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,542,748 B2
- Document ID: US8542748B2
- Status: Granted
- Kind: B2
- Application number: 12/058,301
- Filed: 2008-03-28
- Published: 2009-10-01
- Granted: 2013-09-24
- Earliest claimed: 2008-03-28
- Assignees: Sharp Laboratories of America, Inc.
- Applicants: Jie Zhao; Christopher A. Segall; Louis J. Kerofsky
- Inventors: Jie Zhao; Christopher A. Segall; Louis J. Kerofsky
- Web page: https://patentgrep.com/patent/US8542748B2

## CPC

- H04N 19/91: Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
- H04N 19/119: Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
- H04N 19/15: by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
- H04N 19/159: Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
- H04N 19/17: the unit being an image region, e.g. an object
- H04N 19/174: the region being a slice, e.g. a line of blocks or a group of blocks
- H04N 19/192: the adaptation method, adaptation tool or adaptation type being iterative or recursive
- H04N 19/43: Hardware specially adapted for motion estimation or compensation
- H04N 19/436: using parallelised computational arrangements
- H04N 19/44: Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
- H04N 19/46: Embedding additional information in the video signal during the compression process (H04N19/517, H04N19/68, H04N19/70 take precedence)
- H04N 19/463: by compressing encoding parameters before transmission
- H04N 19/61: in combination with predictive coding
- H04N 19/70: characterised by syntax aspects related to video coding, e.g. related to compression standards
- H04N 19/136: Incoming video signal characteristics or properties
- H04N 19/172: the region being a picture, frame or field
- H04N 19/184: the unit being bits, e.g. of the compressed video stream
- H04N 19/40: using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
- H04N 19/80: Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation (H04N19/635, H04N19/86 take precedence)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Aspects of the present invention are related to systems and methods for parallel video encoding and decoding.

## Claims

### Claim 1

A method for decoding a video bitstream, said method comprising:
entropy decoding a first portion of a video bitstream, wherein said first portion of said video bitstream is associated with a video frame and, wherein said first portion is further associated with a reconstruction slice and a first entropy slice, wherein said first entropy slice comprises a first plurality of macroblocks in said reconstruction slice, thereby producing a first portion of decoded data;
entropy decoding a second portion of said video bitstream, wherein said second portion of said video bitstream is associated with said video frame and, wherein said second portion is further associated with said reconstruction slice and a second entropy slice, wherein said second entropy slice comprises a second plurality of macroblocks in said reconstruction slice, wherein said second plurality of macroblocks does not contain any macroblock from said first plurality of macroblocks, thereby producing a second portion of decoded data, wherein said entropy decoding said second portion of said video bitstream is independent of said entropy decoding said first portion of said video bitstream; and
reconstructing a first portion of said video frame associated with said reconstruction slice using said first portion of decoded data and said second portion of decoded data.

### Claim 2 (depends on 1)

A method as described in claim 1, wherein said first portion of decoded data and said second portion of decoded data are picture-level multiplexed data, said method further comprising:
de-multiplexing said first portion of decoded data; and
de-multiplexing said second portion of decoded data.

### Claim 3 (depends on 1)

A method as described in claim 1, wherein said video bitstream comprises a first flag for indicating whether or not said video bitstream comprises a plurality of entropy slices.

### Claim 4 (depends on 1)

A method as described in claim 1, wherein:
said entropy decoding said first portion of said video bitstream comprises:
initializing a first plurality of context models; and
updating said first plurality of context models during said entropy decoding said first portion of said video bitstream; and
said entropy decoding said second portion of said video bitstream comprises:
initializing a second plurality of context models; and
updating said second plurality of context models during said entropy decoding said second portion of said video bitstream.

### Claim 5 (depends on 1)

A method as described in claim 1 further comprising parsing said video bitstream to identify said first portion of said video bitstream and said second portion of said video bitstream.

### Claim 6 (depends on 5)

A method as described in claim 5, wherein said first portion of said video bitstream is identified by a first header.

### Claim 7 (depends on 1)

A method as described in claim 1, wherein said reconstructing said first portion of said video frame comprises:
generating a first reconstructed macroblock using said first portion of decoded data; and
generating a second reconstructed macroblock using said first reconstructed macroblock and said second portion of decoded data.

### Claim 8

A method for decoding a video frame in a video sequence, said method comprising:
receiving a bitstream;
identifying a reconstruction slice in said bitstream;
identifying a plurality of entropy slices associated with said reconstruction slice in said bitstream, wherein each entropy slice, in said plurality of entropy slices, comprises a plurality of macroblocks in said reconstruction slice, wherein no macroblock in said reconstruction slice is in two entropy slices in said plurality of entropy slices and wherein entropy decoding a first entropy slice in said plurality of entropy slices does not depend on any of said remaining entropy slices in said plurality of entropy slices;
entropy decoding each of said plurality of entropy slices associated with said reconstruction slice, thereby producing a plurality of entropy-decoded entropy slices; and
reconstructing a portion of a video frame associated with said reconstruction slice using said plurality of entropy-decoded entropy slices.

### Claim 9 (depends on 8)

A method as described in claim 8, wherein said reconstruction slice corresponds to the entirety of said video frame.

### Claim 10 (depends on 8)

A method as described in claim 8, wherein entropy decoding a first entropy slice in said plurality of entropy slices associated with said reconstruction slice comprises:
initializing a plurality of context models; and
updating said plurality of context models during said entropy decoding said first entropy slice in said plurality of entropy slices associated with said reconstruction slice.

### Claim 11 (depends on 10)

A method as described in claim 10, wherein said first entropy slice is identified by a first header.

### Claim 12 (depends on 8)

A method as described in claim 8 wherein said identifying said plurality of entropy slices associated with said reconstruction slice comprises parsing said bitstream to identify each entropy slice in said plurality of entropy slices associated with said reconstruction slice.

### Claim 13 (depends on 8)

A method as described in claim 8, wherein said reconstructing said portion of said video frame associated with said reconstruction slice comprises:
generating a first reconstructed macroblock using a first entropy-decoded entropy slice from said plurality of entropy-decoded entropy slices; and
generating a second reconstructed macroblock using said first reconstructed macroblock and a second entropy-decoded entropy slice from said plurality of entropy-decoded entropy slices.

### Claim 14

A method for encoding a video frame in a video sequence, said method comprising:
partitioning a first frame in a video sequence into at least one reconstruction slice, thereby producing a first reconstruction slice associated with a first area of said first frame, wherein reconstruction of said first area does not require any reconstruction slice other than said first reconstruction slice; and
partitioning said first reconstruction slice into a plurality of entropy slices, wherein each entropy slice, in said plurality of entropy slices, comprises a plurality of macroblocks in said first reconstruction slice, wherein no macroblock in said first reconstruction slice is in two entropy slices in said plurality of entropy slices and wherein entropy coding of a first entropy slice, in said plurality of entropy slices, is independent of entropy coding of any other entropy slice, in said plurality of entropy slices.

### Claim 15 (depends on 14)

A method as described in claim 14, wherein:
said first entropy slice in said plurality of entropy slices is associated with a luma-component residual data for said first frame;
a second entropy slice in said plurality of entropy slices is associated with a first-chroma-component residual data for said first frame; and
a third entropy slice in said plurality of entropy slices is associated with a second-chroma-component residual data for said first frame.

### Claim 16 (depends on 14)

A method as described in claim 14, wherein:
said first plurality of entropy slices in said plurality of entropy slices is associated with a luma-component residual data for said first frame;
a second plurality of entropy slices in said plurality of entropy slices is associated with a first-chroma-component residual data for said first frame; and
a third plurality of entropy slices in said plurality of entropy slices is associated with a second-chroma-component residual data for said first frame.

### Claim 17 (depends on 14)

A method as described in claim 14 further comprising, for said first entropy slice in said plurality of entropy slices and a remaining plurality of entropy slices comprising all entropy slices in said plurality of entropy slices other than said first entropy slice, marking all data in said remaining plurality of entropy slices as unavailable for neighborhood availability for entropy decoding a block in said first entropy slice.

### Claim 18 (depends on 14)

A method as described in claim 14 further comprising associating an entropy-slice header with each of said plurality of entropy slices.

### Claim 19 (depends on 14)

A method as described in claim 14 further comprising associating an entropy-slice flag with a bitstream generated using said plurality of entropy slices.

### Claim 20

A method for generating a video bitstream for parallel decoding, said method comprising:
receiving a first video bitstream;
identifying a reconstruction slice in said video bitstream;
entropy decoding a plurality of symbols from said reconstruction slice, thereby producing entropy-decoded data associated with said reconstruction slice;
partitioning said entropy-decoded data associated with said reconstruction slice into a plurality of entropy slices associated with said reconstruction slice, wherein each entropy slice, in said plurality of entropy slices, comprises a plurality of macroblocks in said reconstruction slice, wherein no macroblock in said reconstruction slice is in two entropy slices in said plurality of entropy slices;
independently entropy encoding the entropy-decoded data of each entropy slice of said plurality of entropy slices, thereby producing a plurality of entropy-encoded entropy slices; and
generating a second video bitstream comprising said plurality of entropy-encoded entropy slices.

### Claim 21 (depends on 20)

A method as described in claim 20 further comprising associating a header with each entropy-encoded entropy slice in said plurality of entropy-encoded entropy slices.

### Claim 22 (depends on 20)

A method as described in claim 20 further comprising associating an entropy-slice flag with said second video bitstream.

### Claim 23 (depends on 20)

A method as described in claim 20 further comprising de-multiplexing said entropy-decoded data associated with said reconstruction slice, wherein said entropy-decoded data associated with said reconstruction slice is picture-level multiplexed data.

### Claim 24 (depends on 20)

A method as described in claim 20, wherein independently entropy encoding the entropy-decoded data of each of said plurality of entropy slices comprises for each entropy slice:
initializing a plurality of context models; and
updating said plurality of context models during said entropy encoding.
