# US 12,225,219 B2 · Enhanced video decoder using tile-to-raster reordering

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

- Number: US 12,225,219 B2
- Document ID: US12225219B2
- Status: Granted
- Kind: B2
- Application number: 18/066,986
- Filed: 2022-12-15
- Published: 2024-06-20
- Granted: 2025-02-11
- Earliest claimed: 2022-12-15
- Assignees: QUALCOMM Incorporated
- Applicants: QUALCOMM Incorporated
- Inventors: Tomoyuki Naito; Yasutomo Matsuba
- Web page: https://patentgrep.com/patent/US12225219B2

## CPC

- H04N 19/42: characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation (H04N19/635 takes precedence)
- H04N 19/423: characterised by memory arrangements (H04N19/433 takes precedence)
- H04N 19/129: Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
- H04N 19/156: Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
- H04N 19/172: the region being a picture, frame or field
- H04N 19/174: the region being a slice, e.g. a line of blocks or a group of blocks
- H04N 19/184: the unit being bits, e.g. of the compressed video stream
- 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/70: characterised by syntax aspects related to video coding, e.g. related to compression standards
- H04N 19/436: using parallelised computational arrangements
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Systems and techniques are described herein for processing video data. For instance, a process can include obtaining first encoded data for a first portion of an image, the image encoded in a plurality of independently decodable portions. The process can further include generating first intermediate data for the first portion of the image, storing the first intermediate data in a bitstream order, obtaining second encoded data for a second portion of the image, generating second intermediate data for the second portion of the image, storing the second intermediate data in the bitstream order, wherein the first intermediate data is stored separate from the second intermediate data, processing the first intermediate data and the second intermediate data in a raster scan order across the first portion of the image and the second portion of the image to generate a part of the image.

## Claims

### Claim 1

An apparatus for processing video data, comprising:
at least one memory;
at least one processor coupled to the at least one memory, the at least one processor being configured to:
obtain first encoded data for a first portion of an image, wherein the image is encoded in a plurality of independently decodable portions;
generate first intermediate data for the first portion of the image, wherein the first intermediate data includes first syntax information that is separate from the first encoded data;
store the first intermediate data in the at least one memory in a bitstream order;
obtain second encoded data for a second portion of the image;
generate second intermediate data for the second portion of the image, wherein the second intermediate data includes second syntax information that is separate from the second encoded data;
store the second intermediate data in the at least one memory in the bitstream order, wherein the first intermediate data is stored separate from the second intermediate data;
generate control data indicating an access order for accessing the first intermediate data and the second intermediate data from the at least one memory in a raster scan order across the first portion of the image and the second portion of the image; and
store the control data in the at least one memory; and
a plurality of processing pipelines coupled to the at least one processor and the at least one memory, the plurality of processing pipelines configured to process, based on the control data, the first encoded data using the first intermediate data and to process the second encoded data using the second intermediate data in the raster scan order across the first portion of the image and the second portion of the image to generate a part of the image.

### Claim 2 (depends on 1)

The apparatus of claim 1, wherein a bitstream including the first encoded data and the second encoded data is encoded tile by tile and in a raster scan order per tile.

### Claim 3 (depends on 2)

The apparatus of claim 2, wherein the first portion of the image comprises a first tile of the image and wherein the second portion of the image comprise a second tile of the image.

### Claim 4 (depends on 3)

The apparatus of claim 3, wherein the first syntax information of the first intermediate data comprises syntax information associated with blocks of the first tile, and wherein the second syntax information of the second intermediate data comprises syntax information associated with blocks of the second tile.

### Claim 5 (depends on 1)

The apparatus of claim 1, wherein the first and second intermediate data and the control data are stored in separate parts of the at least one memory.

### Claim 6 (depends on 1)

The apparatus of claim 1, wherein the control data comprises memory addresses for the first intermediate data and the second intermediate data.

### Claim 7 (depends on 1)

The apparatus of claim 1, wherein the first portion of the image comprises a first plurality of rows of blocks and wherein the second portion of the image comprises a second plurality of rows of blocks.

### Claim 8 (depends on 1)

The apparatus of claim 1, wherein, to process the first intermediate data and the second intermediate data in the raster scan order, a first processing pipeline, of the plurality of processing pipelines, is configured to process a first row of the first portion of the image and a corresponding first row of the second portion of the image before the first processing pipeline begins processing a second row of the first portion of the image.

### Claim 9 (depends on 1)

The apparatus of claim 1, wherein the at least one processor is configured to process a part of a bitstream including the first encoded data for the first portion of the image before processing a part the bitstream including the second encoded data for the second portion of the image.

### Claim 10 (depends on 1)

The apparatus of claim 1, wherein the apparatus comprises a decoder.

### Claim 11 (depends on 1)

The apparatus of claim 1, further comprising a display configured to display the generated part of the image.

### Claim 12 (depends on 1)

The apparatus of claim 1, wherein the apparatus is a mobile device.

### Claim 13 (depends on 2)

The apparatus of claim 2, wherein the bitstream order is a tile order.

### Claim 14

A method for processing video, comprising:
obtaining first encoded data for a first portion of an image, wherein the image is encoded in a plurality of independently decodable portions;
generating first intermediate data for the first portion of the image, wherein the first intermediate data includes first syntax information that is separate from the first encoded data;
storing the first intermediate data in at least one memory in a bitstream order;
obtaining second encoded data for a second portion of the image;
generating second intermediate data for the second portion of the image, wherein the second intermediate data includes second syntax information that is separate from the second encoded data;
storing the second intermediate data in the at least one memory in the bitstream order, wherein the first intermediate data is stored separate from the second intermediate data;
generating control data indicating an access order for accessing the first intermediate data and the second intermediate data from the at least one memory in a raster scan order across the first portion of the image and the second portion of the image;
storing the control data in the at least one memory; and
processing, based on the control data, the first encoded data using the first intermediate data and the second encoded data using the second intermediate data in the raster scan order across the first portion of the image and the second portion of the image to generate a part of the image.

### Claim 15 (depends on 14)

The method of claim 14, wherein a bitstream including the first encoded data and the second encoded data is encoded tile by tile and in a raster scan order per tile.

### Claim 16 (depends on 15)

The method of claim 15, wherein the first portion of the image comprises a first tile of the image and wherein the second portion of the image comprise a second tile of the image.

### Claim 17 (depends on 16)

The method of claim 16, wherein the first syntax information of the first intermediate data comprises syntax information associated with blocks of the first tile, and wherein the second syntax information of the second intermediate data comprises syntax information associated with blocks of the second tile.

### Claim 18 (depends on 14)

The method of claim 14, wherein the first and second intermediate data and control data are stored in separate parts of the at least one memory.

### Claim 19 (depends on 14)

The method of claim 14, wherein the control data comprises memory addresses for the first intermediate data and the second intermediate data.

### Claim 20 (depends on 14)

The method of claim 14, wherein the first portion of the image comprises a first plurality of rows of blocks and wherein the second portion of the image comprises a second plurality of rows of blocks.

### Claim 21 (depends on 14)

The method of claim 14, wherein processing the first intermediate data and the second intermediate data in the raster scan order comprises:
processing a first row of the first portion of the image in a first processing pipeline; and
processing a corresponding first row of the second portion of the image before the first processing pipeline begins processing a second row of the first portion of the image.

### Claim 22 (depends on 14)

The method of claim 14, further comprising processing a part of a bitstream including the first encoded data for the first portion of the image before processing a part the bitstream including the second encoded data for the second portion of the image.

### Claim 23 (depends on 15)

The method of claim 15, wherein the bitstream order is a tile order.
