WO2010063184A1 - Method for performing parallel cabac processing with ordered entropy slices, and associated apparatus - Google Patents

Method for performing parallel cabac processing with ordered entropy slices, and associated apparatus Download PDF

Info

Publication number
WO2010063184A1
WO2010063184A1 PCT/CN2009/073635 CN2009073635W WO2010063184A1 WO 2010063184 A1 WO2010063184 A1 WO 2010063184A1 CN 2009073635 W CN2009073635 W CN 2009073635W WO 2010063184 A1 WO2010063184 A1 WO 2010063184A1
Authority
WO
WIPO (PCT)
Prior art keywords
entropy slice
processing
cabac
exists
entropy
Prior art date
Application number
PCT/CN2009/073635
Other languages
French (fr)
Inventor
Yu-Wen Huang
Xun Guo
Original Assignee
Mediatek Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US12/464,090 external-priority patent/US9467699B2/en
Application filed by Mediatek Inc. filed Critical Mediatek Inc.
Priority to CN200980000556.8A priority Critical patent/CN101836454B/en
Publication of WO2010063184A1 publication Critical patent/WO2010063184A1/en

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Definitions

  • the present invention relates to video encoding and decoding, and more particularly, to a method and an associated apparatus for performing parallel Context-based Adaptive Binary Arithmetic Coding (CABAC) processing with ordered entropy slices.
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • CABAC is a powerful entropy coding tool and has been adopted in compression standards.
  • conventional sequential CABAC is a bottleneck for parallel processing due to the nature of its serial order of bit-level processing.
  • parallelization of CABAC has been a topic under discussion since parallel CABAC processing can greatly accelerate the coding procedures when adopting a multi-core processor.
  • a decoding flow of a prior art for parallel CABAC referring to A. Segall and J. Zhao, "Entropy slices for parallel entropy decoding," ITU-T SGI 6/Q.6 Doc. COM16-C405, Geneva, CH, April 2008, and J. Zhao and A. Segall, "New results using entropy slices for parallel decoding," ITU-T SGI 6/Q.6 Doc.
  • both the buffer size and data access for transform coefficients and motion vector differences of a picture are exceedingly large.
  • the buffer when the buffer is too large to be implemented as an on-chip Static Random Access Memory (SRAM) or a cache, the buffer will be implemented as an off-chip Dynamic Random Access Memory (DRAM).
  • SRAM Static Random Access Memory
  • DRAM Dynamic Random Access Memory
  • An exemplary embodiment of a method for performing parallel CABAC with ordered entropy slices comprises: providing a plurality of entropy slices to a plurality of processing elements with a causal constraint on processing order, wherein each entropy slice comprises a plurality of macroblocks (MBs), and each entropy slice has an entropy slice height of at least one MB; and respectively performing CABAC processing for the plurality of entropy slices according to the causal constraint, so that at least a portion of the processing elements can work in parallel during at least a portion of CABAC processing time.
  • MBs macroblocks
  • An exemplary embodiment of an apparatus for performing parallel CABAC with ordered entropy slices comprises: a plurality of processing elements; and a controller.
  • the processing elements are arranged to process a plurality of entropy slices, wherein each entropy slice comprises a plurality of MBs, and each entropy slice has an entropy slice height of at least one MB.
  • the controller is arranged to make the plurality of entropy slices comply with a causal constraint on processing order.
  • the processing elements respectively start to perform CABAC processing for the plurality of entropy slices according to the causal constraint, so that at least a portion of the processing elements can work in parallel during at least a portion of CABAC processing time.
  • FIG l is a diagram of an apparatus for performing parallel CABAC processing with ordered entropy slices according to a first embodiment of the present invention.
  • FIG2 is a flowchart of a method for performing parallel CABAC processing with ordered entropy slices according to one embodiment of the present invention.
  • FIG.3 illustrates exemplary CABAC processing orders of macroblocks (MBs) corresponding to different values of an entropy slice height according to different special cases of the embodiment shown in FIG. 2.
  • MBs macroblocks
  • FIG.4 illustrates exemplary entropy slices according to a special case of the embodiment shown in FIG. 2.
  • FIG 5 illustrates an exemplary timing diagram of the CABAC processing performed by a decoder, where 64 processing elements are utilized for performing CABAC decoding on 64 entropy slices.
  • FIG 6 illustrates an exemplary timing diagram of the CABAC processing performed by an encoder, where 64 processing elements are utilized for performing CABAC encoding on 64 entropy slices.
  • FIG7 illustrates an exemplary timing diagram of the CABAC processing performed by a decoder, where 16 processing elements are utilized for performing CABAC decoding on 64 entropy slices.
  • FIG 8 illustrates an exemplary timing diagram of the CABAC processing performed by en encoder, where 16 processing elements are utilized for performing CABAC encoding on 64 entropy slices.
  • FIG9 illustrates an exemplary timing diagram of the CABAC processing performed by a decoder, where 64 processing elements are utilized for performing CABAC decoding on 64 entropy slices.
  • FIG lO illustrates an exemplary timing diagram of the CABAC processing performed by an encoder, where 64 processing elements are utilized for performing CABAC encoding on 64 entropy slices.
  • FIG 11 illustrates an exemplary timing diagram of the CABAC processing performed by a decoder, where 16 processing elements are utilized for performing CABAC decoding on 64 entropy slices.
  • FIG.12 illustrates an exemplary timing diagram of the CABAC processing performed by an encoder, where 16 processing elements are utilized for performing CABAC encoding on 64 entropy slices.
  • FIG. 1 illustrates a diagram of an apparatus 100 for performing parallel CABAC with ordered entropy slices according to a first embodiment of the present invention, where the CABAC processing can be CABAC decoding or CABAC encoding.
  • the apparatus 100 comprises a plurality of processing elements 112-1, 112-2, ..., and 112-Z (labeled "PE") and a controller 114, where a bus is in-between for communication between the controller 114 and the processing elements 112-1, 112-2, ..., and 112-Z.
  • PE processing elements 112-1, 112-2, ..., and 112-Z
  • the apparatus 100 of this embodiment can perform video processing such as video encoding and video decoding.
  • the processing elements 112-1, 112-2, ..., and 112-Z are arranged to be capable of processing a plurality of entropy slices in parallel, where each entropy slice comprises a plurality of macroblocks (MBs), and each entropy slice has an entropy slice height of at least one MB.
  • the controller 114 is arranged to control the operations of the processing elements 112-1, 112-2, ..., and 112-Z. Implementation details are further explained according to FIG. 2.
  • FIG. 2 is a flowchart of a method for performing parallel CABAC processing with ordered entropy slices according to one embodiment of the present invention. The embodiment shown in FIG. 2 can be applied to the apparatus 100 shown in FIG. 1. The method is described as follows.
  • the controller 114 is arranged to provide a plurality of entropy slices with a causal constraint on processing order.
  • Step 920 under control of the controller 114, the processing elements 112-1, 112-2, ..., and 112-Z respectively start to perform CABAC processing for the plurality of entropy slices according to the causal constraint, so that a number of the entropy slices are processed in parallel.
  • the processing elements 112-1, 112-2, ..., and 112-Z respectively start to perform CABAC processing for the entropy slices according to the causal constraint, so that a number of entropy slices are processed in parallel.
  • Z i.e. the number of processing elements
  • the number of parallel processed entropy slices can be extended to all of the entropy slices assuming that the last processing element starts processing before the first processing element finishes processing.
  • the apparatus 100 is capable of utilizing one or more predetermined delay amounts to control intervals between start time points of the CABAC processing of some or all of the entropy slices.
  • a picture comprises a first entropy slice and a second entropy slice, the second entropy slice is positioned below the first entropy slice.
  • the apparatus 100 of this embodiment control an interval between a start time point of the CABAC processing of the first entropy slice and a start time point of the CABAC processing of the second entropy slice based on a predetermined delay amount, where the predetermined delay amount corresponds to the causal constraint.
  • FIG. 3 illustrates exemplary CABAC processing orders of MBs corresponding to different entropy slice height according to different cases of the embodiment shown in FIG. 2, where the respective squares shown in FIG. 3 represent MBs.
  • the entropy slice height H is measured in terms of number of MB(s), and H is a positive integer.
  • an exemplary CABAC processing order of MBs within an entropy slice is then illustrated subsequently, where the left-most MB of the first MB row is the first MB to be processed within this entropy slice, then the second to left MB of the first MB row and the left-most MB of the second MB row are the second and third MBs to be processed, respectively.
  • the entropy slice height is equivalent to a height of a plurality of MBs, and during CABAC processing of each entropy slice, the apparatus 100 utilizes a serial of zigzag MB location transitions within the entropy slice to respectively perform CABAC processing of the MBs of the entropy slice.
  • the left-most MB MB [0, o ] of the first MB row of the same entropy slice is the first MB to be processed within the entropy slice.
  • the MB index [x n +i, y n +i] of the next MB can be expressed as follows:
  • the predetermined delay amount can be associated to various time dependencies, proposal A and proposal B are provided in the following description as two examples.
  • an embodiment of the predetermined delay amount associated to proposal A corresponds to a processing time of D A MB(s), where D A is obtained according to the following equation:
  • D A l + 2 + ... + (H - 1) + H. This equation determines the minimum amount of delay, so any amount of delay greater than or equal to the processing time of D A MB(s) can be used as the predetermined delay amount.
  • the predetermined delay amount associated to proposal B corresponds to a processing time of D B MBs, where D B is obtained according to the following equation:
  • FIG. 5 illustrates an exemplary timing diagram of video decoding including CABAC processing according to an embodiment, where 64 processing elements (e.g. PEOO, PEOl, PE02, PE03, ..., and PE63) are utilized for performing CABAC decoding on 64 entropy slices (e.g. the entropy slices 00, 01, 02, 03, ..., and 63).
  • 64 processing elements e.g. PEOO, PEOl, PE02, PE03, ..., and PE63
  • 64 entropy slices e.g. the entropy slices 00, 01, 02, 03, ..., and 63.
  • the operations labeled "REC MBO”, “REC MBl”, “REC MB2”, ..., etc. represent some non-CABAC decoding operations of MBO, MBl, MB2, ..., etc., respectively, where "REC" stands for reconstruction.
  • the predetermined delay amount corresponding to the processing time of D A MBs is applied to the control of the start time points.
  • the causal constraint of an embodiment in proposal A ensures that before processing each MB, its upper MB (if exists) and its left MB (if exists) have been parsed by CABAC.
  • a specific MB of entropy slice 03 has an upper MB positioned within entropy slice 02.
  • the specific MB is processed after its upper MB is parsed by CABAC.
  • the causal constraint of an embodiment in proposal B ensures that before processing each MB, its upper left MB (if exists), its upper MB (if exists), its upper right MB (if exists), and its left MB (if exists) have been fully reconstructed.
  • the specific MB of entropy slice 03 has an upper left MB, an upper MB, and an upper-right MB positioned within entropy slice 02, and a left MB positioned within entropy slice 03.
  • the specific MB is processed after the upper left MB, the upper MB, the upper right MB, and the left MB are reconstructed.
  • the apparatus 100 when decoding a specific MB, the apparatus 100 ensures that the upper MB (if exists) of the specific MB and the left MB (if exists) of the specific MB have already been parsed.
  • CABAC parsing of an MB requires its left MB and its upper MB.
  • intra prediction, motion vector prediction, and CABAC context formation are allowed across entropy slices. Only context initialization may cause compression efficiency loss.
  • CABAC processing duration for each MB in an entropy slice may be different, for example, although the timing diagram of FIG. 5 shows CABAC decoding for MBs in each entropy slice is consecutive in time, some MBs may still have to wait until corresponding upper MB in the above entropy slice has been parsed in order to comply with the causal constraint. It is also true for CABAC encoding.
  • the target of a high degree of parallelism can be approached.
  • a delay depending on shapes of pictures and entropy slices is introduced when the predetermined delay amount is applied, the present invention method and apparatus indeed alleviate the related art problem of losing compression efficiency in comparison with the conventional sequential CABAC.
  • it is preferred to set H 1 to decrease the delay.
  • FIG. 6 illustrates an exemplary timing diagram of video encoding including CABAC processing according to an embodiment, where 64 processing elements (e.g. PEOO, PEOl, PE02, PE03, ..., and PE63) are utilized for performing CABAC encoding on 64 entropy slices (e.g. the entropy slices 00, 01, 02, 03, ..., and 63).
  • 64 processing elements e.g. PEOO, PEOl, PE02, PE03, ..., and PE63
  • the operations labeled "MD & REC MBO”, “MD & REC MBl", “MD & REC MB2", ..., etc. represent some non-CABAC encoding operations of MBO, MBl, MB2, ..., etc., respectively, where "MD” stands for mode decision, and "REC” stands for reconstruction.
  • the predetermined delay amount corresponding to the processing time of D A MBs is applied to the control of the start time points.
  • FIG. 7 illustrates an exemplary timing diagram
  • CABAC processing according to another embodiment, where 16 processing elements (e.g. PE00, PEOl, PE02, PE03, ..., and PE15) are utilized for performing CABAC decoding on 64 entropy slices (e.g. the entropy slices ES00, ESOl, ES02, ES03, ..., and ES63).
  • Each processing element is responsible for a number of entropy slices, and it is not limited to assign the same amount of entropy slices to each processing element as shown in FIG. 7.
  • the predetermined delay amount corresponding to the processing time of D A MBs is applied to the control of the start time points. For example, before the apparatus 100 starts to parse a current entropy slice (e.g. entropy slice ES 03), D A MBs of the previous entropy slice thereof (e.g. entropy slice ES02) have been parsed.
  • FIG. 8 illustrates an exemplary timing diagram of video encoding including CABAC processing according to another embodiment, where 16 processing elements (e.g. PEOO, PEOl, PE02, PE03, ..., and PE15) are utilized for performing CABAC encoding on 64 entropy slices (e.g. the entropy slices ESOO, ESOl , ES02, ES03, ..., and ES63).
  • the predetermined delay amount corresponding to the processing time of D A MBs is applied to the control of the start time points.
  • D A MBs of the previous entropy slice thereof e.g. entropy slice ES02
  • the present invention method and apparatus can support intra prediction, motion vector prediction, and context formation across entropy slices to enhance compression ability.
  • a picture-level buffer still requires to store transform coefficients and motion vector differences.
  • each entropy slice can be initialized as CABAC states of a previous entropy slice after coding D A MBs.
  • each entropy slice can be initialized as predefined CABAC states.
  • each illustrated write operation e.g. those labeled "Write Entropy Slices ! or "Write ES"
  • proposal A can be started as long as a processing element is available without any delay of D A MBs because required information of neighboring MBs for each MB has been obtained during mode decision and reconstruction.
  • FIG. 9 illustrates an exemplary timing diagram of video decoding including CABAC processing according to a variation of proposal B, where 64 processing elements (e.g. PEOO, PEOl, PE02, PE03, ..., and PE63) are utilized for performing CABAC decoding on 64 entropy slices (e.g. entropy slices ESOO, ESOl, ES02, ES03, ..., and ES63).
  • each processing element parses and reconstructs an MB successively, and a predetermined delay amount corresponding to the processing time of D B MBs is applied to the control of the start time points.
  • the apparatus 100 when decoding a specific MB, the apparatus 100 complies with the causal constrain, which ensures that the upper left MB (if exists), the upper MB (if exists), the upper right MB (if exists), and the left MB (if exists) have already been parsed and reconstructed. Please note that full decoding of an MB requires its left, upper-left, upper, and upper-right MBs.
  • intra prediction, motion vector prediction, and CABAC context formation are allowed across entropy slices.
  • FIG. 10 illustrates an exemplary timing diagram of video encoding including
  • CABAC processing where 64 processing elements (e.g. PE00, PEOl, PE02, PE03, ..., and PE63) are utilized for performing CABAC encoding on 64 entropy slices (e.g. entropy slices ES00, ESOl, ES02, ES03, ..., and ES63).
  • 64 entropy slices e.g. entropy slices ES00, ESOl, ES02, ES03, ..., and ES63.
  • the predetermined delay amount corresponding to the processing time of D B MBs is applied to the control of the start time points.
  • FIG. 11 illustrates an exemplary timing diagram of video decoding including CABAC processing according to a variation of the embodiment shown in FIG. 9, where 16 processing elements (e.g. PEOO, PEOl, PE02, PE03, ..., and PE15) are utilized for performing CABAC decoding on 64 entropy slices (e.g. entropy slices ESOO, ESOl, ES02, ES03, ..., and ES63).
  • entropy slices ESOO, ESOl, ES02, ES03, ..., and ES63 e.g. entropy slices ESOO, ESOl, ES02, ES03, ..., and ES63.
  • the operations labeled "Proc. ES " stands for processing an entropy slice "ES ", for example including parsing and reconstructing each MB in the entropy slice MB by MB.
  • the predetermined delay amount corresponding to the processing time of D B MBs is applied to the control of the start
  • D B MBs of the previous entropy slice thereof e.g. entropy slice ES02
  • FIG. 12 illustrates an exemplary timing diagram of video encoding including CABAC processing according to a variation of the embodiment shown in FIG. 10, where 16 processing elements (e.g. PE00, PEOl, PE02, PE03, ..., and PE15) are utilized for performing CABAC encoding on 64 entropy slices (e.g. entropy slices ESOO, ESOl, ES02, ES03, ..., and ES63).
  • the operations labeled "Proc. ES " stands for processing an entropy slice "ES", for example including mode decision, reconstructing, and writing each MB in the entropy slice MB by MB.
  • the predetermined delay amount corresponding to the processing time of D B MBs is applied to the control of the start time points. For example, before the apparatus
  • entropy slice ES03 starts to process a current entropy slice (e.g. entropy slice ES03), D B MBs of the previous entropy slice thereof (e.g. entropy slice ES02) have been processed.
  • a current entropy slice e.g. entropy slice ES03
  • D B MBs of the previous entropy slice thereof e.g. entropy slice ES02
  • the present invention method and apparatus can support intra prediction, motion vector prediction, and context formation across entropy slices to enhance compression ability.
  • the overall latency may still be shorter than conventional methods because less DRAM accessing is required.
  • each entropy slice can be initialized after processing D B MBs of the previous entropy slice.
  • these entropy slice can be initialized as predefined CABAC states, or initialized as the CABAC states of the previous entropy slice after processing D B MBs of the previous entropy slice.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

A method for performing parallel CABAC with ordered entropy slices includes: providing a plurality of entropy slices to a plurality of processing elements with a causal constraint on processing order, wherein each entropy slice includes a plurality of macroblocks, and each entropy slice has an entropy slice height of at least one MB; and respectively starting to perform CABAC processing for the plurality of entropy slices according to the causal constraint, so that at least a portion of the processing elements are processed in parallel during at least a portion of CABAC processing time. An associated apparatus for performing parallel CABAC processing with ordered entropy slices includes: a plurality of processing elements; and a controller. The processing elements are arranged to process the entropy slices. In addition, the controller is arranged to provide the plurality of entropy slices with the causal constraint, and controls the operations of the processing elements.

Description

METHOD FOR PERFORMING PARALLEL CABAC PROCESSING WITH ORDERED ENTROPY SLICES, AND ASSOCIATED
APPARATUS
Cross Reference To Related Applications
This application claims the benefit of U.S. Provisional Application No. 61/119,394, which was filed on 12/3/2008, and is entitled "Ordered Entropy Slices for Parallel CABAC." This application also claims the benefit of U.S. Application No. 61/207,888, which was filed on 4/14/2009, and is entitled "METHOD FOR PERFORMING PARALLEL CABAC PROCESSING WITH ORDERED ENTROPY SLICES, AND ASSOCIATED APPARATUS." This application further claims the benefit of U.S. Application No. 12/464,090, which was filed on 5/11/2009, and is entitled "METHOD FOR PERFORMING PARALLEL CODING WITH ORDERED ENTROPY SLICES, AND ASSOCIATED APPARATUS."
FIELD OF INVENTION
The present invention relates to video encoding and decoding, and more particularly, to a method and an associated apparatus for performing parallel Context-based Adaptive Binary Arithmetic Coding (CABAC) processing with ordered entropy slices.
BACKGROUND OF THE INVENTION
CABAC is a powerful entropy coding tool and has been adopted in compression standards. However, conventional sequential CABAC is a bottleneck for parallel processing due to the nature of its serial order of bit-level processing. Recently, parallelization of CABAC has been a topic under discussion since parallel CABAC processing can greatly accelerate the coding procedures when adopting a multi-core processor. According to a decoding flow of a prior art for parallel CABAC, referring to A. Segall and J. Zhao, "Entropy slices for parallel entropy decoding," ITU-T SGI 6/Q.6 Doc. COM16-C405, Geneva, CH, April 2008, and J. Zhao and A. Segall, "New results using entropy slices for parallel decoding," ITU-T SGI 6/Q.6 Doc. VCEG-AI32, Berlin, Germany, July, 2008, context formation cannot be applied across entropy slices, which results in loss of compression efficiency in comparison with the conventional sequential CABAC. Moreover, during CABAC parsing of all macroblocks, transform coefficients and motion vector differences of the entire picture have to be stored and accessed for further decoding. As a result, parsing may be accelerated by parallel processing; however, unacceptable side effects are introduced, as stated in X. Guo, Y-W. Huang, and S. Lei, "Ordered entropy slices for parallel CABAC," ITU-T SGI 6/Q.6 Doc. VCEG- AK25, Yokohama, Japan, April, 2009.
More particularly, for either software or hardware implementations, both the buffer size and data access for transform coefficients and motion vector differences of a picture are exceedingly large. In addition, when the buffer is too large to be implemented as an on-chip Static Random Access Memory (SRAM) or a cache, the buffer will be implemented as an off-chip Dynamic Random Access Memory (DRAM). As a result, the processing speed will be severely decreased due to that the off-chip memory access speed is typically 10 times slower than the on-chip memory.
SUMMARY OF THE INVENTION
It is therefore an objective of the claimed invention to provide a method for performing parallel CABAC processing with ordered entropy slices, and to provide an associated apparatus, in order to solve the above-mentioned problems.
An exemplary embodiment of a method for performing parallel CABAC with ordered entropy slices comprises: providing a plurality of entropy slices to a plurality of processing elements with a causal constraint on processing order, wherein each entropy slice comprises a plurality of macroblocks (MBs), and each entropy slice has an entropy slice height of at least one MB; and respectively performing CABAC processing for the plurality of entropy slices according to the causal constraint, so that at least a portion of the processing elements can work in parallel during at least a portion of CABAC processing time.
An exemplary embodiment of an apparatus for performing parallel CABAC with ordered entropy slices comprises: a plurality of processing elements; and a controller. The processing elements are arranged to process a plurality of entropy slices, wherein each entropy slice comprises a plurality of MBs, and each entropy slice has an entropy slice height of at least one MB. In addition, the controller is arranged to make the plurality of entropy slices comply with a causal constraint on processing order. Additionally, under control of the controller, the processing elements respectively start to perform CABAC processing for the plurality of entropy slices according to the causal constraint, so that at least a portion of the processing elements can work in parallel during at least a portion of CABAC processing time.
These and other objectives of the present invention will no doubt become obvious to those of ordinary skill in the art after reading the following detailed description of the preferred embodiment that is illustrated in the various figures and drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG l is a diagram of an apparatus for performing parallel CABAC processing with ordered entropy slices according to a first embodiment of the present invention.
FIG2 is a flowchart of a method for performing parallel CABAC processing with ordered entropy slices according to one embodiment of the present invention. FIG.3 illustrates exemplary CABAC processing orders of macroblocks (MBs) corresponding to different values of an entropy slice height according to different special cases of the embodiment shown in FIG. 2.
FIG.4 illustrates exemplary entropy slices according to a special case of the embodiment shown in FIG. 2.
FIG 5 illustrates an exemplary timing diagram of the CABAC processing performed by a decoder, where 64 processing elements are utilized for performing CABAC decoding on 64 entropy slices.
FIG 6 illustrates an exemplary timing diagram of the CABAC processing performed by an encoder, where 64 processing elements are utilized for performing CABAC encoding on 64 entropy slices.
FIG7 illustrates an exemplary timing diagram of the CABAC processing performed by a decoder, where 16 processing elements are utilized for performing CABAC decoding on 64 entropy slices. FIG 8 illustrates an exemplary timing diagram of the CABAC processing performed by en encoder, where 16 processing elements are utilized for performing CABAC encoding on 64 entropy slices.
FIG9 illustrates an exemplary timing diagram of the CABAC processing performed by a decoder, where 64 processing elements are utilized for performing CABAC decoding on 64 entropy slices.
FIG lO illustrates an exemplary timing diagram of the CABAC processing performed by an encoder, where 64 processing elements are utilized for performing CABAC encoding on 64 entropy slices.
FIG 11 illustrates an exemplary timing diagram of the CABAC processing performed by a decoder, where 16 processing elements are utilized for performing CABAC decoding on 64 entropy slices.
FIG.12 illustrates an exemplary timing diagram of the CABAC processing performed by an encoder, where 16 processing elements are utilized for performing CABAC encoding on 64 entropy slices. DETAILED DESCRIPTION
Certain terms are used throughout the following description and claims, which refer to particular components. As one skilled in the art will appreciate, electronic equipment manufacturers may refer to a component by different names. This document does not intend to distinguish between components that differ in name but not in function. In the following description and in the claims, the terms "include" and "comprise" are used in an open-ended fashion, and thus should be interpreted to mean "include, but not limited to ...". Also, the term "couple" is intended to mean either an indirect or direct electrical connection. Accordingly, if one device is coupled to another device, that connection may be through a direct electrical connection, or through an indirect electrical connection via other devices and connections.
Please refer to FIG. 1, which illustrates a diagram of an apparatus 100 for performing parallel CABAC with ordered entropy slices according to a first embodiment of the present invention, where the CABAC processing can be CABAC decoding or CABAC encoding. As shown in FIG. 1, the apparatus 100 comprises a plurality of processing elements 112-1, 112-2, ..., and 112-Z (labeled "PE") and a controller 114, where a bus is in-between for communication between the controller 114 and the processing elements 112-1, 112-2, ..., and 112-Z.
In general, the apparatus 100 of this embodiment can perform video processing such as video encoding and video decoding. In particular, the processing elements 112-1, 112-2, ..., and 112-Z are arranged to be capable of processing a plurality of entropy slices in parallel, where each entropy slice comprises a plurality of macroblocks (MBs), and each entropy slice has an entropy slice height of at least one MB. In addition, the controller 114 is arranged to control the operations of the processing elements 112-1, 112-2, ..., and 112-Z. Implementation details are further explained according to FIG. 2. FIG. 2 is a flowchart of a method for performing parallel CABAC processing with ordered entropy slices according to one embodiment of the present invention. The embodiment shown in FIG. 2 can be applied to the apparatus 100 shown in FIG. 1. The method is described as follows. In Step 910, the controller 114 is arranged to provide a plurality of entropy slices with a causal constraint on processing order.
In Step 920, under control of the controller 114, the processing elements 112-1, 112-2, ..., and 112-Z respectively start to perform CABAC processing for the plurality of entropy slices according to the causal constraint, so that a number of the entropy slices are processed in parallel.
More specifically, under control of the controller 114, the processing elements 112-1, 112-2, ..., and 112-Z respectively start to perform CABAC processing for the entropy slices according to the causal constraint, so that a number of entropy slices are processed in parallel. In particular, when Z (i.e. the number of processing elements) is equal to or greater than the number of entropy slices, the number of parallel processed entropy slices can be extended to all of the entropy slices assuming that the last processing element starts processing before the first processing element finishes processing.
According to this embodiment, the apparatus 100 is capable of utilizing one or more predetermined delay amounts to control intervals between start time points of the CABAC processing of some or all of the entropy slices. For example, a picture comprises a first entropy slice and a second entropy slice, the second entropy slice is positioned below the first entropy slice. The apparatus 100 of this embodiment control an interval between a start time point of the CABAC processing of the first entropy slice and a start time point of the CABAC processing of the second entropy slice based on a predetermined delay amount, where the predetermined delay amount corresponds to the causal constraint.
FIG. 3 illustrates exemplary CABAC processing orders of MBs corresponding to different entropy slice height according to different cases of the embodiment shown in FIG. 2, where the respective squares shown in FIG. 3 represent MBs. For example, the entropy slice height H is measured in terms of number of MB(s), and H is a positive integer. According to a first case, given that H = 1, an exemplary CABAC processing order of MBs within an entropy slice is illustrated on the top of FIG. 3, where the left- most MB is the first MB to be processed within this entropy slice and the processing order is from left to right. According to a second case, given that H = 2, an exemplary CABAC processing order of MBs within an entropy slice is then illustrated subsequently, where the left-most MB of the first MB row is the first MB to be processed within this entropy slice, then the second to left MB of the first MB row and the left-most MB of the second MB row are the second and third MBs to be processed, respectively. According to a third case, given that H = 3, an exemplary CABAC processing order of MBs within an entropy slice is also illustrated, where the left-most MB of the first MB row is the first MB to be processed within this entropy slice.
In some cases of the embodiment shown in FIG. 2 (e.g. the second and the third cases mentioned above), the entropy slice height is equivalent to a height of a plurality of MBs, and during CABAC processing of each entropy slice, the apparatus 100 utilizes a serial of zigzag MB location transitions within the entropy slice to respectively perform CABAC processing of the MBs of the entropy slice.
In general, in this embodiment, the left-most MB MB[0, o] of the first MB row of the same entropy slice is the first MB to be processed within the entropy slice. Given that a current MB, MB[xn, yn] is under processing, the MB index [xn+i, yn+i] of the next MB can be expressed as follows:
[Xn+I, yn+i] = [(Yn == (H - I)) ? (xn + H) : (xn - 1), (yn == (H - I)) ? (0) : (yn + 1)]; where when the MB location indicated by the MB index [xn+i, yn+i] represents an MB location outside the entropy slice, this MB location is bypassed and next iterations are performed until [xn+1, yn+1] is inside the entropy slice. As a result, a proper MB location within the entropy slice border can be obtained during the subsequent iteration(s).
According to different variations of this embodiment, the predetermined delay amount can be associated to various time dependencies, proposal A and proposal B are provided in the following description as two examples. Here, an embodiment of the predetermined delay amount associated to proposal A corresponds to a processing time of DA MB(s), where DA is obtained according to the following equation:
DA = l + 2 + ... + (H - 1) + H. This equation determines the minimum amount of delay, so any amount of delay greater than or equal to the processing time of DA MB(s) can be used as the predetermined delay amount.
In addition, the predetermined delay amount associated to proposal B corresponds to a processing time of DB MBs, where DB is obtained according to the following equation:
DB = (I + 2 + ... + (H - 1) + H) + H.
Please note that, for the first case mentioned above, given that H = I, DA = 1 and DB = 2. For the second case mentioned above, given that H = 2, DA = 3 and DB = 5. For the third case mentioned above, given that H = 3, DA = 6 and DB = 9. FIG. 4 illustrates exemplary entropy slices in a video picture, where MBs shaded with the same density of dotted patterns are within the same entropy slice, and H = 2.
FIG. 5 illustrates an exemplary timing diagram of video decoding including CABAC processing according to an embodiment, where 64 processing elements (e.g. PEOO, PEOl, PE02, PE03, ..., and PE63) are utilized for performing CABAC decoding on 64 entropy slices (e.g. the entropy slices 00, 01, 02, 03, ..., and 63). The operations labeled "REC MBO", "REC MBl", "REC MB2", ..., etc. represent some non-CABAC decoding operations of MBO, MBl, MB2, ..., etc., respectively, where "REC" stands for reconstruction. The predetermined delay amount corresponding to the processing time of DA MBs is applied to the control of the start time points.
The causal constraint of an embodiment in proposal A ensures that before processing each MB, its upper MB (if exists) and its left MB (if exists) have been parsed by CABAC. For example, a specific MB of entropy slice 03 has an upper MB positioned within entropy slice 02. As a result of utilizing the predetermined delay amount corresponding to the processing time of DA MBs, under the control of the controller 1 14, the specific MB is processed after its upper MB is parsed by CABAC. The causal constraint of an embodiment in proposal B ensures that before processing each MB, its upper left MB (if exists), its upper MB (if exists), its upper right MB (if exists), and its left MB (if exists) have been fully reconstructed. For example, suppose that the specific MB of entropy slice 03 has an upper left MB, an upper MB, and an upper-right MB positioned within entropy slice 02, and a left MB positioned within entropy slice 03. As a result of utilizing the predetermined delay amount corresponding to the processing time of DB MBs, under the control of the controller 114, the specific MB is processed after the upper left MB, the upper MB, the upper right MB, and the left MB are reconstructed. According to timing diagram shown in FIG. 5, when decoding a specific MB, the apparatus 100 ensures that the upper MB (if exists) of the specific MB and the left MB (if exists) of the specific MB have already been parsed. Please note that CABAC parsing of an MB requires its left MB and its upper MB. In this embodiment, intra prediction, motion vector prediction, and CABAC context formation are allowed across entropy slices. Only context initialization may cause compression efficiency loss.
Note that the CABAC processing duration for each MB in an entropy slice may be different, for example, although the timing diagram of FIG. 5 shows CABAC decoding for MBs in each entropy slice is consecutive in time, some MBs may still have to wait until corresponding upper MB in the above entropy slice has been parsed in order to comply with the causal constraint. It is also true for CABAC encoding.
According to this embodiment, the target of a high degree of parallelism can be approached. Although a delay depending on shapes of pictures and entropy slices is introduced when the predetermined delay amount is applied, the present invention method and apparatus indeed alleviate the related art problem of losing compression efficiency in comparison with the conventional sequential CABAC. In the case when latency is considered as a major concern, it is preferred to set H = 1 to decrease the delay.
FIG. 6 illustrates an exemplary timing diagram of video encoding including CABAC processing according to an embodiment, where 64 processing elements (e.g. PEOO, PEOl, PE02, PE03, ..., and PE63) are utilized for performing CABAC encoding on 64 entropy slices (e.g. the entropy slices 00, 01, 02, 03, ..., and 63). The operations labeled "MD & REC MBO", "MD & REC MBl", "MD & REC MB2", ..., etc. represent some non-CABAC encoding operations of MBO, MBl, MB2, ..., etc., respectively, where "MD" stands for mode decision, and "REC" stands for reconstruction. The predetermined delay amount corresponding to the processing time of DA MBs is applied to the control of the start time points. FIG. 7 illustrates an exemplary timing diagram of video deoding including
CABAC processing according to another embodiment, where 16 processing elements (e.g. PE00, PEOl, PE02, PE03, ..., and PE15) are utilized for performing CABAC decoding on 64 entropy slices (e.g. the entropy slices ES00, ESOl, ES02, ES03, ..., and ES63). Each processing element is responsible for a number of entropy slices, and it is not limited to assign the same amount of entropy slices to each processing element as shown in FIG. 7. The predetermined delay amount corresponding to the processing time of DA MBs is applied to the control of the start time points. For example, before the apparatus 100 starts to parse a current entropy slice (e.g. entropy slice ES 03), DA MBs of the previous entropy slice thereof (e.g. entropy slice ES02) have been parsed.
FIG. 8 illustrates an exemplary timing diagram of video encoding including CABAC processing according to another embodiment, where 16 processing elements (e.g. PEOO, PEOl, PE02, PE03, ..., and PE15) are utilized for performing CABAC encoding on 64 entropy slices (e.g. the entropy slices ESOO, ESOl , ES02, ES03, ..., and ES63). The predetermined delay amount corresponding to the processing time of DA MBs is applied to the control of the start time points. As a result, before the apparatus 100 starts to write a current entropy slice (e.g. entropy slice ES03), DA MBs of the previous entropy slice thereof (e.g. entropy slice ES02) have been written.
According to the embodiments/variations corresponding to the proposal A, the present invention method and apparatus can support intra prediction, motion vector prediction, and context formation across entropy slices to enhance compression ability. Although a longer decoding/encoding latency is introduced, the latency overhead is a small percentage of the overall latency when the number of processing elements (i.e. the processing element count Z) is smaller than the entropy slice count n(ES) (e.g. Z =16 and n(ES) = 64). However, a picture-level buffer still requires to store transform coefficients and motion vector differences. According to a variation of the embodiments disclosed above, each entropy slice can be initialized as CABAC states of a previous entropy slice after coding DA MBs. In another variation, each entropy slice can be initialized as predefined CABAC states. In some embodiments, each illustrated write operation (e.g. those labeled "Write Entropy Slices ..." or "Write ES...") corresponding to proposal A can be started as long as a processing element is available without any delay of DA MBs because required information of neighboring MBs for each MB has been obtained during mode decision and reconstruction.
FIG. 9 illustrates an exemplary timing diagram of video decoding including CABAC processing according to a variation of proposal B, where 64 processing elements (e.g. PEOO, PEOl, PE02, PE03, ..., and PE63) are utilized for performing CABAC decoding on 64 entropy slices (e.g. entropy slices ESOO, ESOl, ES02, ES03, ..., and ES63). In this embodiment, each processing element parses and reconstructs an MB successively, and a predetermined delay amount corresponding to the processing time of DB MBs is applied to the control of the start time points.
According to the timing diagram shown in FIG. 9, when decoding a specific MB, the apparatus 100 complies with the causal constrain, which ensures that the upper left MB (if exists), the upper MB (if exists), the upper right MB (if exists), and the left MB (if exists) have already been parsed and reconstructed. Please note that full decoding of an MB requires its left, upper-left, upper, and upper-right MBs. In this embodiment, intra prediction, motion vector prediction, and CABAC context formation are allowed across entropy slices.
Similarly, the target of a high degree of parallelism can be achieved. Although a delay depending on shapes of pictures and entropy slices is introduced, the present invention method and apparatus indeed solve the related art problems such as high buffer cost, the DRAM access bottleneck regarding CABAC processing, and the loss of compression efficiency. For shorter latency, it is preferred to set H = 1 to decrease the delay. FIG. 10 illustrates an exemplary timing diagram of video encoding including
CABAC processing, where 64 processing elements (e.g. PE00, PEOl, PE02, PE03, ..., and PE63) are utilized for performing CABAC encoding on 64 entropy slices (e.g. entropy slices ES00, ESOl, ES02, ES03, ..., and ES63). The predetermined delay amount corresponding to the processing time of DB MBs is applied to the control of the start time points.
FIG. 11 illustrates an exemplary timing diagram of video decoding including CABAC processing according to a variation of the embodiment shown in FIG. 9, where 16 processing elements (e.g. PEOO, PEOl, PE02, PE03, ..., and PE15) are utilized for performing CABAC decoding on 64 entropy slices (e.g. entropy slices ESOO, ESOl, ES02, ES03, ..., and ES63). The operations labeled "Proc. ES ..." stands for processing an entropy slice "ES ...", for example including parsing and reconstructing each MB in the entropy slice MB by MB. The predetermined delay amount corresponding to the processing time of DB MBs is applied to the control of the start time points. For example, before the apparatus 100 starts to process a current entropy slice (e.g. entropy slice ES03), DB MBs of the previous entropy slice thereof (e.g. entropy slice ES02) have been processed.
FIG. 12 illustrates an exemplary timing diagram of video encoding including CABAC processing according to a variation of the embodiment shown in FIG. 10, where 16 processing elements (e.g. PE00, PEOl, PE02, PE03, ..., and PE15) are utilized for performing CABAC encoding on 64 entropy slices (e.g. entropy slices ESOO, ESOl, ES02, ES03, ..., and ES63). The operations labeled "Proc. ES ..." stands for processing an entropy slice "ES...", for example including mode decision, reconstructing, and writing each MB in the entropy slice MB by MB. The predetermined delay amount corresponding to the processing time of DB MBs is applied to the control of the start time points. For example, before the apparatus
100 starts to process a current entropy slice (e.g. entropy slice ES03), DB MBs of the previous entropy slice thereof (e.g. entropy slice ES02) have been processed.
According to the embodiments of proposal B, the present invention method and apparatus can support intra prediction, motion vector prediction, and context formation across entropy slices to enhance compression ability. Although a longer decoding/encoding latency is introduced, the overall latency may still be shorter than conventional methods because less DRAM accessing is required. The latency overhead is a small percentage of the overall latency when the number of processing elements (i.e. the processing element count Z) is smaller than the entropy slice count n(ES) (e.g. Z =16 and n(ES) = 64).
In the embodiments corresponding to proposal B, when the number of processing elements is equal to or greater than the number of entropy slices (e.g. Z = n(ES), only MB-level buffers are required for storing MB information including transform coefficients and motion vector differences. In addition, when Z < n(ES), only MB-row-level buffers are required for storing MB information.
According to some variations of the embodiments disclosed above, each entropy slice can be initialized after processing DB MBs of the previous entropy slice. For example, these entropy slice can be initialized as predefined CABAC states, or initialized as the CABAC states of the previous entropy slice after processing DB MBs of the previous entropy slice.
Those skilled in the art will readily observe that numerous modifications and alterations of the device and method may be made while retaining the teachings of the invention. Accordingly, the above disclosure should be construed as limited only by the metes and bounds of the appended claims.

Claims

1. A method for performing parallel CABAC with ordered entropy slices, the method comprising: providing a plurality of entropy slices within a picture with a causal constraint on processing order to a plurality of processing elements, wherein each entropy slice comprises a plurality of macroblocks (MBs), and each entropy slice has an entropy slice height of at least one MB; and respectively starting each of the processing elements to perform CABAC processing for a corresponding entropy slice according to the causal constraint, thereby at least a portion of the processing elements performs CABAC in parallel during at least a portion of CABAC processing time.
2. The method of claim 1, wherein the picture comprises a first entropy slice and a second entropy slice, and the second entropy slice is positioned below the first entropy slice; the method further comprises: utilizing a predetermined delay amount to control an interval between a start time point of CABAC processing of the first entropy slice and a start time point of CABAC processing of the second entropy slice, wherein the predetermined delay amount corresponds to the causal constraint.
3. The method of claim 2, wherein the entropy slice height is equivalent to a height of H macroblock(s) MB(s), H is a positive integer; and the predetermined delay amount corresponds to a processing time of at least DA MBs of the first entropy slice, where DA is obtained according to the following equation: DA = 1 + 2 + ... + (H - 1) + H.
4. The method of claim 2, wherein the entropy slice height is equivalent to a height of H macroblock(s) MB(s), H is a positive integer; and the predetermined delay amount corresponds to a processing time of at least DB MBs of the first entropy slice, where DB is obtained according to the following equation: DB = (I + 2 + ... + (H - 1) + H) + H.
5. The method of claim 1, wherein the entropy slice height is equivalent to a height of a plurality of MBs; and the method further comprises: during CABAC processing of each entropy slice, utilizing a serial of zigzag MB location transitions within the entropy slice to respectively perform CABAC processing of the MBs of the entropy slice.
6. The method of claim 1, wherein the causal constraint ensures that each MB is parsed after an upper MB if exists and a left MB if exists are parsed during decoding.
7. The method of claim 1, wherein the causal constraint ensures that each MB is written after an upper MB if exists and a left MB if exists are written during encoding.
8. The method of claim 1, wherein the causal constraint ensures that each MB is parsed after an upper left MB if exists, an upper MB if exists, an upper right MB if exists, and a left MB if exists are parsed and reconstructed during decoding.
9. The method of claim 1, wherein the causal constraint ensures that each MB is written after an upper left MB if exists, an upper MB if exists, an upper right MB if exists, and a left MB if exists are processed by mode decision, reconstructed, and written during encoding.
10. The method of claim 1, wherein the CABAC processing is CABAC decoding or CABAC encoding.
11. An apparatus for performing parallel CABAC processing with ordered entropy slices, the apparatus comprising: a plurality of processing elements arranged to process a plurality of entropy slices within a picture, wherein each entropy slice comprises a plurality of macroblocks (MBs), and each entropy slice has an entropy slice height of at least one MB; and a controller arranged to provide the entropy slices with a causal constraint on processing order to the processing elements; wherein under control of the controller, the processing elements respectively start to perform CABAC processing for the entropy slices according to the causal constraint, thereby at least a portion of the processing elements performs CABAC processing in parallel during at least a portion of CABAC processing time.
12. The apparatus of claim 11, wherein the picture comprises a first entropy slice and a second entropy slice, the second entropy slice is positioned below the first entropy slice, and the apparatus utilizes a predetermined delay amount to control an interval between a start time point of CABAC processing of the first entropy slice and a start time point of CABAC processing of the second entropy slice, and the predetermined delay amount corresponds to the causal constraint.
13. The apparatus of claim 12, wherein the entropy slice height is equivalent to a height of H macroblock(s) MB(s), and H is a positive integer; and the predetermined delay amount corresponds to a processing time of DA MB(s) of the first entropy slice, where DA is obtained according to the following equation: DA = 1 + 2 + ... + (H - 1) + H.
14. The apparatus of claim 12, wherein the entropy slice height is equivalent to a height of H macroblock(s) MB(s), and H is a positive integer; and the predetermined delay amount corresponds to a processing time of DB MBS of the first entropy slice, where DB is obtained according to the following equation: DB = (1 + 2 + ... + (H - I) + H) + H.
15. The apparatus of claim 11, wherein the entropy slice height is equivalent to a height of a plurality of MBs; and during CABAC-processing of each entropy slice, the apparatus utilizes a serial of zigzag MB location transitions within the entropy slice to respectively perform CABAC processing of the MBs of the entropy slice.
16. The apparatus of claim 11, wherein the causal constraint ensures that each MB is parsed after an upper MB if exists and a left MB if exists are parsed during decoding.
17. The apparatus of claim 11, wherein the causal constraint ensures that each MB is written after an upper MB if exists and a left MB if exists are written during encoding.
18. The apparatus of claim 11, wherein the causal constraint ensures that each MB is parsed after an upper left MB if exists, an upper MB if exists, an upper right MB if exists, and a left MB if exists are parsed and reconstructed during decoding.
19. The apparatus of claim 11, wherein the causal constraint ensures that each MB is written after an upper left MB if exists, an upper MB if exists, an upper right MB if exists, and a left MB if exists are processed by mode decision, reconstructed, and written during encoding.
20. The apparatus of claim 11, wherein the CABAC processing is CABAC decoding or CABAC encoding.
PCT/CN2009/073635 2008-12-03 2009-08-31 Method for performing parallel cabac processing with ordered entropy slices, and associated apparatus WO2010063184A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200980000556.8A CN101836454B (en) 2008-12-03 2009-08-31 Method for performing parallel cabac processing with ordered entropy slices, and associated apparatus

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US11939408P 2008-12-03 2008-12-03
US61/119,394 2008-12-03
US20788809P 2009-04-14 2009-04-14
US61/207,888 2009-04-14
US12/464,090 US9467699B2 (en) 2008-12-03 2009-05-11 Method for performing parallel coding with ordered entropy slices, and associated apparatus
US12/464,090 2009-05-11

Publications (1)

Publication Number Publication Date
WO2010063184A1 true WO2010063184A1 (en) 2010-06-10

Family

ID=42232876

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2009/073635 WO2010063184A1 (en) 2008-12-03 2009-08-31 Method for performing parallel cabac processing with ordered entropy slices, and associated apparatus

Country Status (4)

Country Link
US (1) US10033406B2 (en)
CN (1) CN101836454B (en)
TW (1) TWI396447B (en)
WO (1) WO2010063184A1 (en)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2312854A1 (en) * 2009-10-15 2011-04-20 Siemens Aktiengesellschaft Method for coding symbols from a digital image sequence
EP2324639A2 (en) * 2008-09-11 2011-05-25 Google, Inc. System and method for decoding using parallel processing
WO2012120217A1 (en) * 2011-03-07 2012-09-13 France Telecom Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
WO2012167103A1 (en) * 2011-06-03 2012-12-06 Qualcomm Incorporated Context-adaptive coding video data
WO2012167097A1 (en) * 2011-06-03 2012-12-06 Qualcomm Incorporated Memory efficient context modeling
WO2013109914A1 (en) * 2012-01-22 2013-07-25 Qualcomm Incorporated Coding of coefficients in video coding
WO2013109903A1 (en) * 2012-01-19 2013-07-25 Qualcomm Incorporated Coefficient level coding
EP2716046A1 (en) * 2011-05-27 2014-04-09 MediaTek Inc. Method and apparatus for line buffer reduction for video processing
US9319693B2 (en) 2011-06-24 2016-04-19 Dolby International Ab Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
EP3039868A1 (en) * 2013-08-27 2016-07-06 Magnum Semiconductor, Inc. Apparatuses and methods for cabac initialization
US9762931B2 (en) 2011-12-07 2017-09-12 Google Inc. Encoding time management in parallel real-time video encoding
US9794574B2 (en) 2016-01-11 2017-10-17 Google Inc. Adaptive tile data size coding for video and image compression
US9936201B2 (en) 2015-01-27 2018-04-03 Qualcomm Incorporated Contexts for large coding tree units
CN108769698A (en) * 2012-09-26 2018-11-06 威勒斯媒体国际有限公司 Picture decoding method, image encoding method, picture decoding apparatus, picture coding device and arrangement for encoding
US10542258B2 (en) 2016-01-25 2020-01-21 Google Llc Tile copying for video compression
US11425395B2 (en) 2013-08-20 2022-08-23 Google Llc Encoding and decoding using tiling

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105007486B (en) * 2011-03-07 2018-06-05 杜比国际公司 Code and decode method, the coding and decoding equipment of image
US20120230398A1 (en) * 2011-03-10 2012-09-13 Christopher Andrew Segall Video decoder parallelization including slices
MX2020003540A (en) 2011-07-15 2022-03-25 Ge Video Compression Llc Sample array coding for low-delay.
US10284690B2 (en) * 2014-01-08 2019-05-07 Cavium, Llc Methods and systems for distribution of packets among parsing clusters
JP6308449B2 (en) * 2014-06-26 2018-04-11 ホアウェイ・テクノロジーズ・カンパニー・リミテッド Method and apparatus for reducing computational load in high efficiency video coding
US9432668B1 (en) * 2016-03-15 2016-08-30 NGCodec Inc. Apparatus and method for inter and intra mode selection and block partitioning
CN108024075B (en) * 2016-10-28 2019-10-11 原相科技股份有限公司 Global shutter high dynamic range pixel and image sensor
KR102414164B1 (en) * 2017-03-31 2022-06-29 한국전자통신연구원 A method of video processing providing high-throughput arithmetic coding and a method and appratus for decoding and encoding video using the processing.
JP6798951B2 (en) * 2017-08-31 2020-12-09 オリンパス株式会社 Measuring device and operating method of measuring device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008036237A2 (en) * 2006-09-21 2008-03-27 Analog Devices, Inc. Multiprocessor decoder system and method
CN101198051A (en) * 2006-12-07 2008-06-11 深圳艾科创新微电子有限公司 Method and device for implementing entropy decoder based on H.264
US20080183738A1 (en) * 2007-01-30 2008-07-31 Beyond Innovation Technology Co., Ltd. Apparatus and method for compressing data

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8401084B2 (en) * 2002-04-01 2013-03-19 Broadcom Corporation System and method for multi-row decoding of video with dependent rows
US7881546B2 (en) * 2004-09-08 2011-02-01 Inlet Technologies, Inc. Slab-based processing engine for motion video
US20060098735A1 (en) * 2004-11-10 2006-05-11 Yu-Chung Chang Apparatus for motion estimation using a two-dimensional processing element array and method therefor
KR100703773B1 (en) 2005-04-13 2007-04-06 삼성전자주식회사 Method and apparatus for entropy coding and decoding, with improved coding efficiency, and method and apparatus for video coding and decoding including the same
EP2080379B1 (en) * 2006-10-16 2018-08-22 Nokia Technologies Oy System and method for using parallelly decodable slices for multi-view video coding
US20080137726A1 (en) * 2006-12-12 2008-06-12 General Instrument Corporation Method and Apparatus for Real-Time Video Encoding
CN101212676B (en) * 2006-12-29 2010-06-02 北京展讯高科通信技术有限公司 Efficient and parallel CABAC decoding method and device
TWI341657B (en) * 2007-04-03 2011-05-01 Nat Univ Tsing Hua Cabac decoding method
US8582656B2 (en) * 2007-04-13 2013-11-12 Apple Inc. Method and system for video encoding and decoding
US8542748B2 (en) * 2008-03-28 2013-09-24 Sharp Laboratories Of America, Inc. Methods and systems for parallel video encoding and decoding
US7932843B2 (en) 2008-10-17 2011-04-26 Texas Instruments Incorporated Parallel CABAC decoding for video decompression

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008036237A2 (en) * 2006-09-21 2008-03-27 Analog Devices, Inc. Multiprocessor decoder system and method
CN101198051A (en) * 2006-12-07 2008-06-11 深圳艾科创新微电子有限公司 Method and device for implementing entropy decoder based on H.264
US20080183738A1 (en) * 2007-01-30 2008-07-31 Beyond Innovation Technology Co., Ltd. Apparatus and method for compressing data

Cited By (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2324639A2 (en) * 2008-09-11 2011-05-25 Google, Inc. System and method for decoding using parallel processing
EP2324639A4 (en) * 2008-09-11 2012-08-29 Google Inc System and method for decoding using parallel processing
US9357223B2 (en) 2008-09-11 2016-05-31 Google Inc. System and method for decoding using parallel processing
US8311111B2 (en) 2008-09-11 2012-11-13 Google Inc. System and method for decoding using parallel processing
USRE49727E1 (en) 2008-09-11 2023-11-14 Google Llc System and method for decoding using parallel processing
EP2312854A1 (en) * 2009-10-15 2011-04-20 Siemens Aktiengesellschaft Method for coding symbols from a digital image sequence
WO2011045339A1 (en) * 2009-10-15 2011-04-21 Siemens Aktiengesellschaft Method for encoding symbols from a sequence of digitized images
US9338469B2 (en) 2009-10-15 2016-05-10 Siemens Aktiengesellschaft Method for encoding symbols from a sequence of digitized images
US9271012B2 (en) 2011-03-07 2016-02-23 Dolby International Ab Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
FR2972588A1 (en) * 2011-03-07 2012-09-14 France Telecom METHOD FOR ENCODING AND DECODING IMAGES, CORRESPONDING ENCODING AND DECODING DEVICE AND COMPUTER PROGRAMS
US11343535B2 (en) 2011-03-07 2022-05-24 Dolby International Ab Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
RU2766445C2 (en) * 2011-03-07 2022-03-15 Долби Интернэшнл Аб Method for image encoding and decoding, encoding and decoding device and corresponding computer programs
KR20210131439A (en) * 2011-03-07 2021-11-02 돌비 인터네셔널 에이비 Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
KR20140015449A (en) * 2011-03-07 2014-02-06 오렌지 Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
KR20180015278A (en) * 2011-03-07 2018-02-12 돌비 인터네셔널 에이비 Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
KR101956314B1 (en) 2011-03-07 2019-03-08 돌비 인터네셔널 에이비 Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
US20150010088A1 (en) * 2011-03-07 2015-01-08 Dolby International Ab Method of Coding and Decoding Images, Coding and Decoding Device and Computer Programs Corresponding Thereto
US11736723B2 (en) 2011-03-07 2023-08-22 Dolby International Ab Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
KR101826294B1 (en) 2011-03-07 2018-02-06 돌비 인터네셔널 에이비 Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
KR102317760B1 (en) 2011-03-07 2021-10-27 돌비 인터네셔널 에이비 Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
KR20200115667A (en) * 2011-03-07 2020-10-07 돌비 인터네셔널 에이비 Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
KR102161761B1 (en) 2011-03-07 2020-10-05 돌비 인터네셔널 에이비 Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
EP3716623A1 (en) * 2011-03-07 2020-09-30 Dolby International AB Method of decoding images
KR102465264B1 (en) 2011-03-07 2022-11-09 돌비 인터네셔널 에이비 Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
WO2012120217A1 (en) * 2011-03-07 2012-09-13 France Telecom Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
US10681376B2 (en) 2011-03-07 2020-06-09 Dolby International Ab Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
KR20200022520A (en) * 2011-03-07 2020-03-03 돌비 인터네셔널 에이비 Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
KR102081922B1 (en) 2011-03-07 2020-02-26 돌비 인터네셔널 에이비 Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
US9560380B2 (en) 2011-03-07 2017-01-31 Dolby International Ab Coding and decoding images using probability data
KR101705940B1 (en) 2011-03-07 2017-02-10 돌비 인터네셔널 에이비 Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
CN106454346A (en) * 2011-03-07 2017-02-22 杜比国际公司 Method of coding and decoding images, coding and decoding device
KR102027741B1 (en) 2011-03-07 2019-10-01 돌비 인터네셔널 에이비 Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
US9628818B2 (en) 2011-03-07 2017-04-18 Dolby International Ab Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
KR20190110652A (en) * 2011-03-07 2019-09-30 돌비 인터네셔널 에이비 Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
US10382784B2 (en) 2011-03-07 2019-08-13 Dolby International Ab Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
CN106454346B (en) * 2011-03-07 2019-05-03 杜比国际公司 Code and decode method, the coding and decoding equipment of image
KR20190026062A (en) * 2011-03-07 2019-03-12 돌비 인터네셔널 에이비 Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
EP2716046A4 (en) * 2011-05-27 2014-09-03 Mediatek Inc Method and apparatus for line buffer reduction for video processing
EP2716046A1 (en) * 2011-05-27 2014-04-09 MediaTek Inc. Method and apparatus for line buffer reduction for video processing
US8995523B2 (en) 2011-06-03 2015-03-31 Qualcomm Incorporated Memory efficient context modeling
US9379736B2 (en) 2011-06-03 2016-06-28 Qualcomm Incorporated Context-adaptive coding video data
WO2012167103A1 (en) * 2011-06-03 2012-12-06 Qualcomm Incorporated Context-adaptive coding video data
WO2012167097A1 (en) * 2011-06-03 2012-12-06 Qualcomm Incorporated Memory efficient context modeling
EP4007279A1 (en) * 2011-06-03 2022-06-01 QUALCOMM Incorporated Memory efficient context modeling
CN103563381A (en) * 2011-06-03 2014-02-05 高通股份有限公司 Context-adaptive coding video data
CN103563378A (en) * 2011-06-03 2014-02-05 高通股份有限公司 Memory efficient context modeling
RU2580066C2 (en) * 2011-06-03 2016-04-10 Квэлкомм Инкорпорейтед Memory efficient context modelling
US10362311B2 (en) 2011-06-24 2019-07-23 Dolby International Ab Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
EP3700207A1 (en) * 2011-06-24 2020-08-26 Dolby International AB Method and device for encoding and decoding images
US9661335B2 (en) 2011-06-24 2017-05-23 Dolby International Ab Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
US9654783B2 (en) 2011-06-24 2017-05-16 Dolby International Ab Method for encoding and decoding images, encoding and decoding device, and corresponding computer programs
US10033999B2 (en) 2011-06-24 2018-07-24 Dolby International Ab Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
US9848196B2 (en) 2011-06-24 2017-12-19 Dolby International Ab Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
US9319693B2 (en) 2011-06-24 2016-04-19 Dolby International Ab Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
US9319692B2 (en) 2011-06-24 2016-04-19 Dolby International Ab Method for encoding and decoding images, encoding and decoding device, and corresponding computer programs
US9380308B2 (en) 2011-06-24 2016-06-28 Dolby International Ab Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
US10694186B2 (en) 2011-06-24 2020-06-23 Dolby International Ab Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
US9319694B2 (en) 2011-06-24 2016-04-19 Dolby International Ab Method for encoding and decoding images, encoding and decoding device, and corresponding computer programs
US9762931B2 (en) 2011-12-07 2017-09-12 Google Inc. Encoding time management in parallel real-time video encoding
WO2013109903A1 (en) * 2012-01-19 2013-07-25 Qualcomm Incorporated Coefficient level coding
US9866829B2 (en) 2012-01-22 2018-01-09 Qualcomm Incorporated Coding of syntax elements that correspond to coefficients of a coefficient block in video coding
WO2013109914A1 (en) * 2012-01-22 2013-07-25 Qualcomm Incorporated Coding of coefficients in video coding
CN108769698A (en) * 2012-09-26 2018-11-06 威勒斯媒体国际有限公司 Picture decoding method, image encoding method, picture decoding apparatus, picture coding device and arrangement for encoding
CN108769698B (en) * 2012-09-26 2021-07-02 威勒斯媒体国际有限公司 Image decoding method, image encoding method, image decoding device, image encoding device, and image encoding/decoding device
US11425395B2 (en) 2013-08-20 2022-08-23 Google Llc Encoding and decoding using tiling
US11722676B2 (en) 2013-08-20 2023-08-08 Google Llc Encoding and decoding using tiling
EP3039868A1 (en) * 2013-08-27 2016-07-06 Magnum Semiconductor, Inc. Apparatuses and methods for cabac initialization
EP3039868A4 (en) * 2013-08-27 2017-03-29 Magnum Semiconductor, Inc. Apparatuses and methods for cabac initialization
US10298930B2 (en) 2015-01-27 2019-05-21 Qualcomm Incorporated Contexts for large coding tree units
US9936201B2 (en) 2015-01-27 2018-04-03 Qualcomm Incorporated Contexts for large coding tree units
US9794574B2 (en) 2016-01-11 2017-10-17 Google Inc. Adaptive tile data size coding for video and image compression
US10542258B2 (en) 2016-01-25 2020-01-21 Google Llc Tile copying for video compression

Also Published As

Publication number Publication date
US10033406B2 (en) 2018-07-24
CN101836454B (en) 2012-08-22
US20130044806A1 (en) 2013-02-21
CN101836454A (en) 2010-09-15
TWI396447B (en) 2013-05-11
TW201023650A (en) 2010-06-16

Similar Documents

Publication Publication Date Title
US9467699B2 (en) Method for performing parallel coding with ordered entropy slices, and associated apparatus
US10033406B2 (en) Method for performing parallel coding with ordered entropy slices, and associated apparatus
US8175157B2 (en) Apparatus and method for controlling data write/read in image processing system
KR101105531B1 (en) Mechanism for a parallel processing in-loop deblock filter
US9538177B2 (en) Apparatus and method for buffering context arrays referenced for performing entropy decoding upon multi-tile encoded picture and related entropy decoder
US8897583B2 (en) Image decoding apparatus for decoding a target block by referencing information of an already decoded block in a neighborhood of the target block
US20170019679A1 (en) Hybrid video decoding apparatus for performing hardware entropy decoding and subsequent software decoding and associated hybrid video decoding method
US20050169378A1 (en) Memory access method and memory access device
KR20060042732A (en) Neighbor information processing apparatus and method in the video decoder and recording medium storing a program to implement thereof
US7250878B2 (en) Decoding device with multi-buffers and decoding method thereof
JP4755624B2 (en) Motion compensation device
US9118891B2 (en) Video encoding system and method
US20170006299A1 (en) Residual up-sampling apparatus for performing transform block up-sampling and residual down-sampling apparatus for performing transform block down-sampling
US9973748B1 (en) Multi-core video decoder system for decoding multiple coding rows by using multiple video decoder cores and related multi-core video decoding method
JP2007259323A (en) Image decoding apparatus
CN114697675B (en) Decoding display system and memory access method thereof
US20170353738A1 (en) Method for determining storage position of coefficient according to transpose flag before coefficient is stored into inverse scan storage device and associated apparatus and machine readable medium
US20080273595A1 (en) Apparatus and related method for processing macroblock units by utilizing buffer devices having different data accessing speeds
US9807417B2 (en) Image processor
WO2000044179A1 (en) Method of memory utilization in a predictive video decoder
US9538174B2 (en) Method and apparatus for inverse scan of transform coefficients in HEVC
US10244248B2 (en) Residual processing circuit using single-path pipeline or multi-path pipeline and associated residual processing method
US10075722B1 (en) Multi-core video decoder system having at least one shared storage space accessed by different video decoder cores and related video decoding method
KR20140075370A (en) Multi-core processor having hierarchical cache architecture
CN114125464B (en) Video decoding method and video decoding device

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200980000556.8

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09829968

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09829968

Country of ref document: EP

Kind code of ref document: A1