IP Library Granted Patent US 7,885,334
Granted Patent B2
US 7,885,334 · App. 10/555,498 · Granted Feb 8, 2011

Image coding or decoding device and method involving multithreading of processing operations over a plurality of processors, and corresponding computer program and synchronisation signal

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,885,334
App. No.
10/555,498
Granted
Feb 8, 2011
Kind
B2
Abstract

A method and apparatus are provided for coding or decoding an image comprising macro-blocks which are distributed in lines and columns. The processing of at least one given macro-block requires the pre-processing of at least one other macro-block on which said dependent macro-block depends. Moreover, the macro-blocks are processed sequentially line by line or column by column. Processing of the macro-blocks is multithreaded over N processors, N≧ 2 . The image is separated into N vertical bands each comprising a plurality of lines and at least one column of macro-blocks if the macro-block is processed sequentially line by line, or into N horizontal bands each comprising a plurality of columns and at least one line of macro-blocks if the macro-block is processed sequentially column by column. One of the N bands is processed by each processor, and the processing operations performed by the N processors is synchronized.

Claims (41)

1. Method for coding or decoding an image including macroblocks distributed in lines and columns, comprising:

processing of the macroblocks sequentially line by line or column by column, wherein the processing of at least one given macroblock, referred to as a dependent macroblock, requires prior processing of at least one other macroblock on which said dependent macroblock depends; and

multithreading the processing of the macroblocks over N processors, with N≧2, including the following steps:

separation of the image:

into N vertical bands each including a plurality of lines and at least one column of macroblocks, if the processing of macroblocks is performed sequentially line by line;

into N horizontal bands each including a plurality of columns and at least one line of macroblocks, if the processing of macroblocks is performed sequentially column by column;

processing by each processor of one of the N bands; and

synchronisation of the processing operations carried out by the N processors.

2. Method according to claim 1 , wherein the synchronisation of the processing operations carried out by the N processors comprises, for each processor of each pair of processors that process two adjacent bands:

informing the other processor of said pair about each completed processing of a macroblock on which a dependent macroblock included in the band processed by said other processor depends; and

verifying, before processing a dependent macroblock, that said at least one other macroblock on which the dependent macroblock depends has previously been processed by said processor or said other processor.

3. Method according to claim 1 , wherein said image belongs to the group including:

video sequence images formed by a series of images; and

fixed images.

4. Method according to claim 1 , wherein the processing of the macroblocks is carried out sequentially, line by line, from left to right over the same line and from top to bottom from one line to the next.

5. Method according to claim 4 , wherein the processing of each dependent macroblock requires the prior processing, when it exists, of at least the macroblock located to the left of said dependent macroblock, and wherein, in each pair of processors that process two adjacent vertical bands, the processor that processes the left vertical band informs the other processor of each completed processing of the macroblock of the right end of one of the lines of macroblocks of said left vertical band.

6. Method according to claim 4 , wherein the processing of each dependent macroblock requires the prior processing, when it exists, of at least the macroblock located above and to the right of said dependent macroblock, and wherein, in each pair of processors that process two adjacent vertical bands, the processor that processes the right vertical band informs the other processor of each completed processing of the macroblock of the left end of one of the lines of macroblocks of said right vertical band.

7. Method according to claim 1 , wherein the coding or decoding is consistent with a standard belonging to the group including: H.263, H.263+, H264 and MPEG-4 Video.

8. A non-transitory computer readable medium containing a computer program, comprising program code instructions to implement a method, when said program is run on a computer, for coding or decoding an image including macroblocks distributed in lines and columns, the method comprising:

processing the macroblocks sequentially line by line or column by column, wherein the processing of at least one given macroblock, referred to as a dependent macroblock, requires prior processing of at least one other macroblock on which said dependent macroblock depends; and

multithreading the processing of the macroblocks over N processors, with N≧2, including the following steps:

separation of the image:

into N vertical bands each including a plurality of lines and at least one column of macroblocks, if the processing of macroblocks is performed sequentially line by line;

into N horizontal bands each including a plurality of columns and at least one line of macroblocks, if the processing of macroblocks is performed sequentially column by column;

processing by each processor of one of the N bands; and

synchronisation of the processing operations carried out by the N processors.

9. Device for coding or decoding an image including macroblocks distributed in lines and columns-wherein said device comprises:

N processors, with N≧2, which process the macroblocks, wherein processing of at least one given macroblock, referred to as a dependent macroblock, requires prior processing of at least one other macroblock on which said dependent macroblock depends, wherein the processing of the macroblocks is performed sequentially line by line or column by column; and

means for multithreading the processing of macroblocks over said N processors, which means for multithreading the processing include:

means for separating the image:

into N vertical bands each including a plurality of lines and at least one column of macroblocks, if the processing of macroblocks is performed sequentially line by line; and

into N horizontal bands each including a plurality of columns and at least one line of macroblocks, if the processing of macroblocks is performed sequentially column by column;

in each processor, means for processing one of the N bands; and

means for synchronising the processing operations performed by the N processors.

10. A method comprising:

generating a synchronisation signal to be transmitted from a first to a second processor of a pair of processors that process two adjacent bands of an image, wherein said image includes macroblocks distributed in lines and columns and is separated:

into N vertical bands each including a plurality of lines and at least one column of macroblocks, if the processing of macroblocks is performed sequentially line by line; or

into N horizontal bands each including a plurality of columns and at least one line of macroblocks, if the processing of macroblocks is performed sequentially column by column;

wherein processing of at least one given macroblock, referred to as a dependent macroblock, requires prior processing of at least one other macroblock on which said dependent macroblock depends, said first and second processors belonging to a set of N processors each simultaneously processing one of the bands of the image, in order to code or decode the image;

including into said synchronisation signal information by way of which said first processor informs the second processor of the completed processing by the first processor of a macroblock on which a dependent macroblock included in the band processed by the second processor depends, so that the second processor can verify, before processing said dependent macroblock, that said at least one other macroblock on which the dependent macroblock depends has previously been processed by the first processor; and

transmitting the synchronization signal from the first processor to the second processor.

Assignments (11)
RELEASE OF SECURITY INTEREST Recorded Oct 14, 2025
From: CITIBANK, N.A., AS AGENT
To: MK SYSTEMS USA INC.
Reel/Frame 073070/0114 →
SECURITY INTEREST Recorded Oct 10, 2025
From: MK SYSTEMS USA INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 073062/0487 →
SECURITY INTEREST Recorded May 20, 2022
From: MK SYSTEMS USA INC.
To: CITIBANK, N.A., AS AGENT
Reel/Frame 060134/0068 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 15, 2020
From: MK SYSTEMS US HOLDCO INC.
To: MK SYSTEMS US SUB-HOLDCO INC.
Reel/Frame 053774/0377 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 15, 2020
From: MK SYSTEMS US SUB-HOLDCO INC.
To: MK SYSTEMS USA INC.
Reel/Frame 053774/0639 →
MERGER AND CHANGE OF NAME Recorded Sep 15, 2020
From: ERICSSON IT SOLUTIONS & SERVICES SAS; ERICSSON FRANCE
To: ERICSSON FRANCE
Reel/Frame 053780/0945 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 15, 2020
From: LEONE MEDIA INC.
To: MK SYSTEMS US HOLDCO INC.
Reel/Frame 053772/0734 →
MERGER AND CHANGE OF NAME Recorded Sep 15, 2020
From: ENVIVIO FRANCE; ERICSSON IT SOLUTIONS & SERVICES SAS
To: ERICSSON IT SOLUTIONS & SERVICES SAS
Reel/Frame 053771/0453 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 15, 2020
From: ERICSSON FRANCE
To: LEONE MEDIA INC.
Reel/Frame 053772/0363 →
RE-RECORD TO CORRECT THE NAME OF THE FOURTH ASSIGNOR, PREVIOUSLY RECORDED ON REEL 017925 FRAME 0109. Recorded Sep 13, 2006
From: MULLER, MATTHIEU; ROPERT, MICKAEL; MACAULAY, ALEX; LE BRAS, ERWAN
To: ENVIVIO FRANCE
Reel/Frame 018264/0625 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 3, 2005
From: MULLER, MATTHIEU; ROPERT, MICKAEL; MACAULAY, ALEX; LEBRAS, ERWAN
To: ENVIVIO FRANCE
Reel/Frame 017925/0109 →