Patentable/Patents/US-9756351
US-9756351

HEVC video encoder and decoder for multi-core

PublishedSeptember 5, 2017
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

The disclosure provides a video encoder. The video encoder receives a frame and divides the frame into a plurality of tiles. The video encoder includes a plurality of video processing engines communicatively coupled with each other. Each video processing engine receives a tile of the plurality of tiles. A height of each tile is equal to a height of the frame and each tile comprises a plurality of rows. The plurality of video processing engines includes a first and a second video processing engine. The second video processing engine being initiated after the first video processing engines processes M rows of the plurality of rows of the tile, where M is an integer.

Patent Claims
7 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A video encoder configured to receive a frame and configured to divide the frame into a plurality of tiles, the video encoder comprising: a plurality of video processing engines communicatively coupled with each other, each video processing engine configured to receive a tile of the plurality of tiles, wherein a height of each tile is equal to a height of the frame, and each tile comprises a plurality of rows, each video processing engine including a loop filter and a work memory, the work memory configured to store a set of parameters and partially filtered pixels from the loop filter corresponding to a set of LCUs (largest coding units); a shared memory coupled to the work memory of each video processing engine; a first and a second video processing engine of the plurality of video processing engines, the second video processing engine being initiated after the first video processing engines processes M rows of the plurality of rows of the tile, where M is an integer; and wherein the first video processing engine, on processing M rows of the first tile, generates a set of parameters and partially filtered pixels corresponding to a set of LCUs in the M rows of the first tile, the set of parameters and the partially filtered pixels are stored in a work memory associated with the first video processing engine, the set of parameters and the partially filtered pixels are provided from the work memory to the shared memory, and the set of parameters and the partially filtered pixels are provided from the shared memory to the second video processing engine for processing the second tile.

2

2. The video encoder of claim 1 , wherein a width of each tile is equal to a width of the frame divided by a number of video processing engines of the plurality of video processing engines.

3

3. The video encoder of claim 1 , wherein in a steady state of the video encoder, the first video processing engine is configured to process a first tile and the second video processing engine processes a second tile in parallel, the first tile and the second tile are adjacent tiles of the plurality of tiles.

4

4. The video encoder of claim 3 , wherein the first video processing engine is configured to process M rows of the first tile before the second video processing engine is initiated to process the second tile.

5

5. A method of video encoding comprising: receiving a plurality of frames; dividing each frame of the plurality of frames into a plurality of tiles such that a frame comprises a plurality of tiles and a height of each tile is equal to a height of the frame, and wherein each tile comprises a plurality of rows; and processing M rows of a first tile including loop filtering and generating a set of parameters and partially filtered pixels corresponding to a set of LCUs (largest coding units) in the M rows of the first tile, storing the set of parameters and the partially filtered pixels, processing M rows of a second tile following said processing M rows of the first tile including loop filtering employing the stored set of parameters and partially filtered pixels corresponding to a set of LCUs (largest coding units) in the M rows of the first tile.

6

6. A video decoder configured to receive a compressed bit-stream corresponding to a frame, the frame includes a plurality of tiles, the video decoder comprising: a plurality of video processing engines communicatively coupled with each other, each video processing engine configured to receive a compressed bit-stream corresponding to a tile of the plurality of tiles, wherein each tile comprises a plurality of rows, and wherein, a height of each tile is equal to a height of the frame and a width of each tile is equal to a width of the frame divided by a number of video processing engines in the video decoder, each video processing engine including a loop filter and a work memory, the work memory configured to store a set of parameters and partially filtered pixels from the loop filter corresponding to a set of LCUs (largest coding units); a shared memory coupled to the work memory of each video processing engine; a first and a second video processing engine of the plurality of video processing engines, the second video processing engine being initiated after the first video processing engines processes compressed bit-stream corresponding to M rows of the plurality of rows of the tile, where M is an integer; and wherein the first video processing engine, on processing M rows of the first tile, generates a set of parameters and partially filtered pixels corresponding to a set of LCUs in the M rows of the first tile, the set of parameters and the partially filtered pixels are stored in a work memory associated with the first video processing engine, the set of parameters and the partially filtered pixels are provided from the work memory to the shared memory, and the set of parameters and the partially filtered pixels are provided from the shared memory to the second video processing engine for processing the second tile.

7

7. A computing device comprising: a processing unit; a memory module coupled to the processing unit; and a video encoder coupled to the processing unit and the memory module, the video encoder configured to receive a frame and configured to divide the frame into a plurality of tiles, the video encoder comprising: a plurality of video processing engines communicatively coupled with each other, each video processing engine configured to receive a tile of the plurality of tiles, wherein a height of each tile is equal to a height of the frame, and each tile comprises a plurality of rows; a first and a second video processing engine of the plurality of video processing engines, the second video processing engine being initiated after the first video processing engines processes M rows of the plurality of rows of the tile, where M is an integer; processing M rows of the first tile in the first video processing engine generates a set of parameters and partially filtered pixels corresponding to a set of LCUs (largest coding unit) in the M rows of the first tile, wherein each row comprises a plurality of LCUs; and the second video processing engine is initiated on receiving the set of parameters and the partially filtered pixels from the first video processing engine.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

September 6, 2016

Publication Date

September 5, 2017

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “HEVC video encoder and decoder for multi-core” (US-9756351). https://patentable.app/patents/US-9756351

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.