# US 10,375,395 B2 · Video processing apparatus for generating count table in external storage device of hardware entropy engine and associated video processing method

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,375,395 B2
- Document ID: US10375395B2
- Status: Granted
- Kind: B2
- Application number: 15/439,964
- Filed: 2017-02-23
- Published: 2017-08-24
- Granted: 2019-08-06
- Earliest claimed: 2016-02-24
- Assignees: Mediatek Inc.
- Applicants: Mediatek Inc.
- Inventors: Sheng-Jen Wang; Yung-Chang Chang; Chia-Yun Cheng
- Web page: https://patentgrep.com/patent/US10375395B2

## CPC

- H04N 19/13: Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
- G06F 13/28: using burst mode transfer, e.g. direct memory access {DMA}, cycle steal (G06F13/32 takes precedence)
- H04N 19/42: characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation (H04N19/635 takes precedence)
- H04N 19/70: characterised by syntax aspects related to video coding, e.g. related to compression standards
- H04N 19/91: Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A video processing apparatus includes an external storage device, a hardware entropy engine, and a software execution engine. The hardware entropy engine performs entropy processing of a current picture, and further outputs count information to the external storage device during the entropy processing of the current picture. When loaded and executed by the software execution engine, a software program instructs the software execution engine to convert the count information into count table contents, and generate a count table in the external storage device according to at least the count table contents. The count table is referenced to apply a backward adaptation to a probability table that is selectively used by the hardware entropy engine to perform entropy processing of a next picture.

## Claims

### Claim 1

A video processing apparatus comprising:
an external storage device;
a hardware entropy engine, external to the external storage device, wherein the hardware entropy engine is arranged to perform entropy processing of a current picture, and further arranged to output count information to the external storage device during the entropy processing of the current picture; and
a software execution engine, external to the external storage device, wherein when loaded and executed by the software execution engine, a software program instructs the software execution engine to convert the count information into count table contents, and generate a count table in the external storage device according to at least the count table contents, wherein the count table is referenced to apply a backward adaptation to a probability table that is selectively used by the hardware entropy engine to perform entropy processing of a next picture;
wherein the hardware entropy engine has an internal storage device arranged to store the probability table; and the software execution engine directly reads the probability table from the internal storage device to the external storage device, and performs the backward adaptation upon the probability table in the external storage device according to the count table.

### Claim 2 (depends on 1)

The video processing apparatus of claim 1, wherein the software execution engine does not start converting the count information into the count table contents until the current picture is completely processed by the entropy processing; and the count information is full count information of the current picture.

### Claim 3 (depends on 1)

The video processing apparatus of claim 1, wherein the software execution engine starts converting the count information into the count table contents before the current picture is completely processed by the entropy processing; and the count information is partial count information of the current picture.

### Claim 4 (depends on 3)

The video processing apparatus of claim 3, wherein the software program further instructs the software execution engine to get a hardware status from the hardware entropy engine, where the hardware status is indicative of an amount of the count information; and the software execution engine converts the count information into the count table contents according to the hardware status.

### Claim 5 (depends on 4)

The video processing apparatus of claim 4, wherein the software execution engine performs a plurality of conversion iterations during the entropy processing of the current picture; the software execution engine checks the hardware status to determine if the amount of the count information reaches a predetermined value; and the software execution engine performs one of the conversion iterations to convert the count information into the count table contents when the amount of the count information reaches the predetermined value.

### Claim 6 (depends on 4)

The video processing apparatus of claim 4, wherein the software execution engine performs a plurality of conversion iterations during the entropy processing of the current picture; and during each of the conversion iterations, the software execution engine converts the count information into the count table contents regardless an amount of the count information available to the conversion iteration.

### Claim 7 (depends on 1)

The video processing apparatus of claim 1, wherein the count table records a plurality of count values that correspond to different contexts and associated different syntax settings for different syntax types, respectively, where each count value records a number of occurrence times of one corresponding context and one corresponding associated syntax setting for one corresponding syntax type; and the count information comprises indication values each indicative of one context and one associated syntax setting for one syntax type.

### Claim 8 (depends on 7)

The video processing apparatus of claim 7, wherein the hardware entropy engine assigns different identifiers to the different contexts and the associated different syntax settings for the different syntax types, respectively; and each of the indication values is one identifier.

### Claim 9

A video processing apparatus comprising:
an external storage device;
a hardware entropy engine, external to the external storage device, wherein the hardware entropy engine is arranged to perform entropy processing of a current picture, and further arranged to output count information to the external storage device during the entropy processing of the current picture; and
a software execution engine, external to the external storage device, wherein when loaded and executed by the software execution engine, a software program instructs the software execution engine to convert the count information into count table contents, and generate a count table in the external storage device according to at least the count table contents, wherein the count table is referenced to apply a backward adaptation to a probability table that is selectively used by the hardware entropy engine to perform entropy processing of a next picture;
wherein the hardware entropy engine has an internal storage device arranged to store the probability table; the video processing apparatus further comprises:
a direct memory access (DMA) circuit, arranged to transmit the probability table from the internal storage device to the external storage device; and
the software execution engine performs the backward adaptation upon the probability table in the external storage device according to the count table.

### Claim 10 (depends on 1)

The video processing apparatus of claim 1, wherein the hardware entropy engine is further arranged to generate and store a first partial count table in the internal storage device accessible to the hardware entropy engine; and the software program further instructs the software execution engine to generate the count table by combining the first partial count table and a second partial count table, where the second partial count table is generated based on the count table contents converted from the count information.

### Claim 11

A video processing method comprising:
performing, by a hardware entropy engine, entropy processing of a current picture and outputting count information to an external storage device of the hardware entropy engine during the entropy processing of the current picture; and
executing a software program to convert the count information into count table contents and generate a count table in the external storage device according to at least the count table contents, wherein the count table is referenced to apply a backward adaptation to a probability table that is selectively used by the hardware entropy engine to perform entropy processing of a next picture;
wherein the hardware entropy engine has an internal storage device arranged to store the probability table; and the video processing method further comprises:
executing the software program to directly read the probability table from the internal storage device to the external storage device, and perform the backward adaptation upon the probability table in the external storage device according to the count table.

### Claim 12 (depends on 11)

The video processing method of claim 11, wherein execution of the software program does not start converting the count information into the count table contents until the current picture is completely processed by the entropy processing; and the count information is full count information of the current picture.

### Claim 13 (depends on 11)

The video processing method of claim 11, wherein execution of the software program starts converting the count information into the count table contents before the current picture is completely processed by the entropy processing; and the count information is partial count information of the current picture.

### Claim 14 (depends on 13)

The video processing method of claim 13, wherein the execution of the software program further gets a hardware status from the hardware entropy engine, where the hardware status is indicative of an amount of the count information; and the execution of the software program converts the count information into the count table contents according to the hardware status.

### Claim 15 (depends on 14)

The video processing method of claim 14, wherein the execution of the software program performs a plurality of conversion iterations during the entropy processing of the current picture, checks the hardware status to determine if the amount of the count information reaches a predetermined value, and performs one of the conversion iterations to convert the count information into the count table contents when the amount of the count information reaches the predetermined value.

### Claim 16 (depends on 14)

The video processing method of claim 14, wherein the execution of the software program performs a plurality of conversion iterations during the entropy processing of the current picture; and during each of the conversion iterations, the execution of the software program converts the count information into the count table contents regardless an amount of the count information available to the conversion iteration.

### Claim 17 (depends on 11)

The video processing method of claim 11, wherein the count table records a plurality of count values that correspond to different contexts and associated different syntax settings for different syntax types, respectively, where each count value records a number of occurrence times of one corresponding context and one corresponding associated syntax setting for one corresponding syntax type; and the count information comprises indication values each indicative of one context and one associated syntax setting for one syntax type.

### Claim 18 (depends on 17)

The video processing method of claim 17, wherein the hardware entropy engine assigns different identifiers to the different contexts and the associated different syntax settings for the different syntax types, respectively; and each of the indication values is one identifier.

### Claim 19 (depends on 11)

The video processing method of claim 11, further comprising:
generating and storing, by the hardware entropy engine, a first partial count table in the internal storage device accessible to the hardware entropy engine;
wherein the software program generates the count table by combining the first partial count table and a second partial count table, and the second partial count table is generated based on the count table contents converted from the count information.
