US9271012B2ActiveUtilityA1

Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto

96
Assignee: DOLBY INT ABPriority: Mar 7, 2011Filed: Sep 22, 2014Granted: Feb 23, 2016
Est. expiryMar 7, 2031(~4.7 yrs left)· nominal 20-yr term from priority
H04N 19/176H04N 19/13H04N 19/124H04N 19/593H04N 19/174H04N 19/436H04N 19/61H04N 19/25H04N 19/184H04N 19/91H04N 19/51H04N 19/50
96
PatentIndex Score
14
Cited by
54
References
20
Claims

Abstract

A method of coding at least one image comprising the steps of splitting the image into a plurality of blocks, of grouping said blocks into a predetermined number of subsets of blocks, of coding each of said subsets of blocks in parallel, the blocks of a subset considered being coded according to a predetermined sequential order of traversal. The coding step comprises, for a current block of a subset considered, the sub-step of predictive coding of said current block with respect to at least one previously coded and decoded block, and the sub-step of entropy coding of said current block on the basis of at least one probability of appearance of a symbol.

Claims

exact text as granted — not AI-modified
The invention claimed is: 
     
       1. A computer-implemented method comprising:
 receiving a stream representative of at least one coded image; 
 identifying, from the stream, a predetermined plurality of groups of blocks; 
 providing each group of blocks to a first decoding unit; and 
 processing, by the first decoding unit, a first block in a given group of blocks, wherein the processing of the first block comprises:
 determining that the first block is first in an order of blocks in the given group of blocks; 
 in response to determining that the first block is first in the order of blocks in the given group of blocks, retrieving a first set of probability data from a buffer, wherein the first set of probability data comprises a first set of probabilities of occurrence of symbols associated with a block that is situated immediately adjacent to the first block and that belongs to another group of blocks that is different from the given group of blocks in the predetermined plurality of groups of blocks; 
 entropy decoding the first block based on the first set of probability data; and 
 
 processing, by the first decoding unit, a second block in the given group of blocks, wherein the processing of the second block comprises:
 determining that the second block is not first in the order of blocks in the given group of blocks; 
 in response to determining that the second block is not first in the order of blocks in the given group of blocks, retrieving a second set of probability data from a memory unit, wherein the second set of probability data comprises a second set of probabilities of occurrence of symbols associated with at least one other already decoded block belonging to the given group of blocks in the predetermined plurality of groups of blocks, wherein the second set of probabilities of occurrence of symbols are not associated with blocks that do not belong to the given subset of blocks; and 
 entropy decoding the second block based on the second set of probability data. 
 
 
     
     
       2. The computer-implemented method of  claim 1  comprising:
 generating a third set of probability data based on the second set of probability data and data about the second block; and 
 replacing the second set of probability data in the memory unit with the third set of probability data. 
 
     
     
       3. The computer-implemented method of  claim 1  wherein:
 entropy decoding the first block based on the first set of probability data comprises entropy decoding the first block based on the first set of probability data using a context-adaptive binary arithmetic coding (CABAC) algorithm; and 
 entropy decoding the second block based on the second set of probability data comprises entropy decoding the second block based on the second set of probability data using the CABAC algorithm. 
 
     
     
       4. The computer-implemented method of  claim 1  comprising:
 generating a third set of probability data based on the first set of probability data and data about the first block; 
 storing the third set of probability data to the memory unit and 
 using at least the third set of probability data to generate the second set of probability data. 
 
     
     
       5. The computer-implemented method of  claim 1  comprising:
 predictive decoding of each of the plurality of blocks with respect to at least one previously decoded block. 
 
     
     
       6. The computer-implemented method of  claim 1  comprising:
 processing, by the first decoding unit, a third block in the given group of blocks, wherein the processing of the third block comprises:
 retrieving a third set of probability data from the memory unit, wherein the third set of probability data comprises a third set of probabilities of occurrence of symbols associated with blocks in the predetermined plurality of groups of blocks, and wherein the third set of probability data is determined based at least on the second set of probability data; and 
 entropy decoding the third block based on the third set of probability data. 
 
 
     
     
       7. The method of  claim 1 ,
 wherein the processing of the second block comprises: 
 after entropy decoding the second block:
 determining a third set of probability data; 
 determining whether the second block is ordered as a particular number in the order of blocks in the given group of blocks; 
 in response to determining that the second block is ordered as the particular number in the order of blocks in the given group of blocks, storing the third set of probability data in the buffer, the stored third set of probability data for entropy decoding another block that is first in an order of blocks in another group of blocks; and 
 in response to determining that the second block is not ordered as the particular number in the order of blocks in the given group of blocks, storing the third set of probability data in the memory unit the stored third set of probability data for entropy decoding, by the first decoding unit, another block that is next to the particular number in the order of blocks in the given group of blocks. 
 
 
     
     
       8. The method of  claim 7 , wherein the particular number is first in the order of blocks in the given group of blocks. 
     
     
       9. The method of  claim 7 , wherein the particular number is second in the order of blocks in the given group of blocks. 
     
     
       10. A system comprising:
 one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising: 
 receiving a stream representative of at least one coded image; 
 identifying, from the stream, a predetermined plurality of groups of blocks; 
 providing each group of blocks to a first decoding unit; and 
 processing, by the first decoding unit, a first block in a given group of blocks, wherein the processing of the first block comprises:
 determining that the first block is first in an order of blocks in the given group of blocks; 
 in response to determining that the first block is first in the order of blocks in the given group of blocks, retrieving a first set of probability data from a buffer, wherein the first set of probability data comprises a first set of probabilities of occurrence of symbols associated with a block that is situated immediately adjacent to the first block and that belongs to another group of blocks that is different from the given group of blocks in the predetermined plurality of groups of blocks; 
 entropy decoding the first block based on the first set of probability data; and 
 
 processing, by the first decoding unit, a second block in the given group of blocks, wherein the processing of the second block comprises:
 determining that the second block is not first in the order of blocks in the given group of blocks; 
 in response to determining that the second block is not first in the order of blocks in the given group of blocks, retrieving a second set of probability data from a memory unit, wherein the second set of probability data comprises a second set of probabilities of occurrence of symbols associated with at least one other already decoded block belonging to the given group of blocks in the predetermined plurality of groups of blocks, wherein the second set of probabilities of occurrence of symbols are not associated with blocks that do not belong to the given subset of blocks; and 
 entropy decoding the second block based on the second set of probability data. 
 
 
     
     
       11. The system of  claim 10 , wherein the operations further comprise:
 generating a third set of probability data based on the second set of probability data and data about the second block; and 
 replacing the second set of probability data in the memory unit with the third set of probability data. 
 
     
     
       12. The system of  claim 10 , wherein:
 entropy decoding the first block based on the first set of probability data comprises entropy decoding the first block based on the first set of probability data using a context-adaptive binary arithmetic coding (CABAC) algorithm; and 
 entropy decoding the second block based on the second set of probability data comprises entropy decoding the second block based on the second set of probability data using the CABAC algorithm. 
 
     
     
       13. The system of  claim 10 , wherein the operations further comprise:
 generating a third set of probability data based on the first set of probability data and data about the first block; 
 storing the third set of probability data to the memory unit and 
 using at least the third set of probability data to generate the second set of probability data. 
 
     
     
       14. The system of  claim 10 , wherein the operations further comprise:
 predictive decoding of each of the plurality of blocks with respect to at least one previously decoded block. 
 
     
     
       15. The system of  claim 10 , wherein the operations further comprise:
 processing, by the first decoding unit, a third block in the given group of blocks, wherein the processing of the third block comprises:
 retrieving a third set of probability data from the memory unit wherein the third set of probability data comprises a third set of probabilities of occurrence of symbols associated with blocks in the predetermined plurality of groups of blocks, and wherein the third set of probability data is determined based at least on the second set of probability data; and 
 entropy decoding the third block based on the third set of probability data. 
 
 
     
     
       16. A non-transitory computer-readable medium storing software comprising instructions executable by one or more computers which, upon such execution, cause the one or more computers to perform operations comprising:
 receiving a stream representative of at least one coded image; 
 identifying, from the stream, a predetermined plurality of groups of blocks; 
 providing each group of blocks to a first decoding unit; and 
 processing, by the first decoding unit, a first block in a given group of blocks, wherein the processing of the first block comprises:
 determining that the first block is first in an order of blocks in the given group of blocks; 
 in response to determining that the first block is first in the order of blocks in the given group of blocks, retrieving a first set of probability data from a buffer, wherein the first set of probability data comprises a first set of probabilities of occurrence of symbols associated with a block that is situated immediately adjacent to the first block and that belongs to another group of blocks that is different from the given group of blocks in the predetermined plurality of groups of blocks; 
 entropy decoding the first block based on the first set of probability data; and 
 
 processing, by the first decoding unit, a second block in the given group of blocks, wherein the processing of the second block comprises:
 determining that the second block is not first in the order of blocks in the given group of blocks; 
 in response to determining that the second block is not first in the order of blocks in the given group of blocks, retrieving a second set of probability data from a memory unit, wherein the second set of probability data comprises a second set of probabilities of occurrence of symbols associated with at least one other already decoded block belonging to the given group of blocks in the predetermined plurality of groups of blocks, wherein the second set of probabilities of occurrence of symbols are not associated with blocks that do not belong to the given subset of blocks; and 
 entropy decoding the second block based on the second set of probability data. 
 
 
     
     
       17. The non-transitory computer-readable medium of  claim 16 , wherein the operations further comprise:
 generating a third set of probability data based on the second set of probability data and data about the second block; and 
 replacing the second set of probability data in the memory unit with the third set of probability data. 
 
     
     
       18. The non-transitory computer-readable medium of  claim 16 , wherein the operations further comprise:
 generating a third set of probability data based on the first set of probability data and data about the first block; and 
 replacing the first set of probability data in the buffer with the third set of probability data. 
 
     
     
       19. The non-transitory computer-readable medium of  claim 16 , wherein:
 entropy decoding the first block based on the first set of probability data comprises entropy decoding the first block based on the first set of probability data using a context-adaptive binary arithmetic coding (CABAC) algorithm; and 
 entropy decoding the second block based on the second set of probability data comprises entropy decoding the second block based on the second set of probability data using the CABAC algorithm. 
 
     
     
       20. The non-transitory computer-readable medium of  claim 16 , wherein the operations further comprise:
 processing, by the first decoding unit, a third block in the given group of blocks, wherein the processing of the third block comprises:
 retrieving a third set of probability data from the memory unit, wherein the third set of probability data comprises a third set of probabilities of occurrence of symbols associated with blocks in the predetermined plurality of groups of blocks, and wherein the third set of probability data is determined based at least on the second set of probability data; and 
 entropy decoding the third block based on the third set of probability data.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.