A system and method for providing high throughput entropy coding contains the steps of: dividing syntax elements of video into one or more group of syntax elements; placing each group into a separate partition, resulting in more than one partition; and processing more than one of the more than one partition in parallel using entropy coding.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method for execution in hardware, providing high throughput entropy coding, comprising the steps of: dividing syntax elements of video into one or more group of syntax elements; placing each group into a separate partition, resulting in more than one partition; processing more than one of the more than one partition in parallel using entropy coding, and using a quantization parameter to combine a number of partitions into fewer partitions.
2. The method of claim 1 , further comprising the step of using first-in-first-out queuing to manage dependencies between engines processing the one or more partitions.
3. The method of claim 1 , wherein the high throughput entropy coding is provided by a context-based adaptive binary arithmetic coding engine.
4. The method of claim 1 , wherein the entropy coding is performed using more than one entropy coding engine that works in parallel.
5. The method of claim 4 , wherein the entropy coding engine is a context-based adaptive binary arithmetic coding engine.
6. The method of claim 4 , wherein each syntax element is placed into a different group of syntax elements and wherein each group of syntax elements is provided to a different entropy coding engine.
7. A method for execution in hardware, providing high throughput entropy coding, comprising the steps of: dividing syntax elements of video into one or more group of syntax elements; placing each group into a separate partition, resulting in more than one partition; and processing more than one of the more than one partition in parallel using entropy coding, wherein the step of dividing syntax elements of video into one or more group of syntax elements is further defined by the steps of: running video processing simulations on multiple video streams of the video using entropy coding to determine an average number of bins per syntax element; and grouping together syntax elements with a low number of bins so as to distribute syntax elements into the one or more groups of syntax elements.
8. A method for execution in hardware, providing high throughput entropy coding, comprising the steps of: dividing syntax elements of video into one or more group of syntax elements; placing each group into a separate partition, resulting in more than one partition; and processing more than one of the more than one partition in parallel using entropy coding, wherein the entropy coding is performed using more than one entropy coding engine that works in parallel, wherein the step of processing more than one of the more than one partition in parallel further comprises using at least one first-in-first-out buffer located between entropy coding engines to address dependencies between syntax element groups.
9. A method for execution in hardware, providing high throughput entropy coding, comprising the steps of: dividing-syntax elements of video into one or more group of syntax elements; placing each group into a separate partition, resulting in more than one partition; and processing more than one of the more than one partition in parallel using entropy coding, wherein the entropy coding is performed using more than one entropy coding engine that works in parallel, and, wherein the step of dividing syntax elements of video into one or more groups of syntax elements is further defined by the steps of receiving a predefined average number of bins per syntax element for a video standard associated with the video; pre-grouping categories of syntax elements into pre-grouped syntax element groups so as to provide similar workload for each entropy coding engine; receiving the syntax elements of the video; sorting and grouping the received syntax elements of the video into the pre-grouped syntax element groups; and providing each different category of syntax elements to a different entropy coding engine for parallel processing.
10. A system for providing high throughput entropy coding, comprising: at least two entropy coding engines; and a computer having: a memory; and a processor configured by the memory to perform the steps of: dividing syntax elements of video into one or more group of syntax elements; placing each group into a separate partition, resulting in more than one partition; and providing each separate partition to a separate one of the at least two entropy coding engines, wherein the at least two entropy coding engines process the separate partitions in parallel using entropy coding, and wherein the processor is configured by the memory to perform the step of using a quantization parameter to combine a number of partitions into fewer partitions.
11. The system of claim 10 , wherein the system further comprises at least one first-in-first-out queuing buffer to manage dependencies between syntax element groups between engines processing the one or more partitions.
12. The system of claim 10 , wherein the entropy coding engines are context-based adaptive binary arithmetic coding engines.
13. A system for providing high throughput entropy coding, comprising: at least two entropy coding engines; and a computer having: a memory; and a processor configured by the memory to perform the steps of: dividing syntax elements of video into one or more group of syntax elements; placing each group into a separate partition, resulting in more than one partition; and providing each separate partition to a separate one of the at least two entropy coding engines, wherein the at least two entropy coding engines process the separate partitions in parallel using entropy coding, and wherein the step of dividing syntax elements of video into one or more group of syntax elements is further defined by the steps of: running video processing simulations on multiple video streams of the video using entropy coding to determine an average number of bins per syntax element; and grouping together syntax elements with a low number of bins so as to distribute syntax elements into the one or more groups of syntax elements.
14. A system for providing high throughput entropy coding, comprising: at least two entropy coding engines; and a computer having: a memory; and a processor configured by the memory to perform the steps of: dividing syntax elements of video into one or more group of syntax elements; placing each group into a separate partition, resulting in more than one partition; and providing each separate partition to a separate one of the at least two entropy coding engines, wherein the at least two entropy coding engines process the separate partitions in parallel using entropy coding, wherein the step of dividing syntax elements of video into one or more groups of syntax elements is further defined by the steps of: receiving a predefined average number of bins per syntax element for a video standard associated with the video; pre-grouping categories of syntax elements into pre-grouped syntax element groups so as to provide similar workload for each entropy coding engine; receiving the syntax elements of the video; sorting and grouping the receiving syntax elements of the video into the pre-grouped syntax element groups; and providing each different category of syntax elements to a different entropy coding engine for parallel processing.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
June 30, 2010
October 23, 2012
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.