# US 2026/0065663 A1 · Apparatus for performing filter processing using convolution operation, method of performing filter processing, and medium

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

- Number: US 2026/0065663 A1
- Document ID: US20260065663A1
- Status: Published application
- Kind: A1
- Application number: 19/380,458
- Filed: 2025-11-05
- Published: 2026-03-05
- Earliest claimed: 2021-11-16
- Assignees: Canon Kabushiki Kaisha
- Applicants: Canon Kabushiki Kaisha
- Inventors: Tsewei Chen; Masami Kato
- Web page: https://patentgrep.com/patent/US20260065663A1

## CPC

- G06V 10/82: using neural networks
- G06F 7/5443: {Sum of products (for applications thereof, see the relevant places, e.g. G06F17/10, H03H17/00)}
- G06V: IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

An apparatus for performing filter processing on a data array in a processing target block of a predetermined size is provided. A data memory holds the data array in the processing target block. A coefficient memory holds weight coefficients of a filter used for the filter processing. A controller determines, in a determination, whether data in a reference region in the processing target block, set in correspondence with the processing target block, are zero values. A processor generates a convolution operation result of the weight coefficients and data at a plurality of positions in the processing target block. The controller controls, based on a result of the determination, whether to perform at least some of multiply-accumulate operations of the data and the weight coefficients when the processor generates the convolution operation result.

## Claims

### Claim 1

An apparatus for performing filter processing on a data array in a processing target block of a predetermined size, comprising:
a data memory configured to hold the data array in the processing target block;
a coefficient memory configured to hold weight coefficients of a filter used for the filter processing;
a controller configured to determine, in a determination, whether data in a reference region in the processing target block, set in correspondence with the processing target block, are zero values; and
a processor configured to generate a convolution operation result of the weight coefficients and data at a plurality of positions in the processing target block,
wherein the controller controls, based on a result of the determination, whether to perform at least some of multiply-accumulate operations of the data and the weight coefficients when the processor generates the convolution operation result.

### Claim 2 (depends on 1)

The apparatus according to claim 1, wherein in a case where the controller determines that the data in the reference region are zero values, the processor omits at least some of the multiply-accumulate operations of the data at the plurality of positions in the processing target block and the weight coefficients.

### Claim 3 (depends on 1)

The apparatus according to claim 1, wherein at least one reference region is set, and at least one of the at least one reference region is smaller than the processing target block.

### Claim 4 (depends on 1)

The apparatus according to claim 1, wherein
in a case where the controller determines that the data in the reference region are zero values, the processor acquires the convolution operation result by first processing with respect to a position in the processing target block, and
in a case where the controller does not determine that the data in the reference region are zero values, the processor acquires the convolution operation result by second processing with respect to a position in the processing target block.

### Claim 5 (depends on 1)

The apparatus according to claim 1, wherein
in a case where the controller determines that the data in the reference region are zero values, the processor acquires the convolution operation result by common first processing with respect to all the plurality of positions in the processing target block, and
in a case where the controller does not determine that the data in the reference region are zero values, the processor acquires the convolution operation result by common second processing with respect to all the plurality of positions in the processing target block.

### Claim 6 (depends on 4)

The apparatus according to claim 4, wherein the first processing and the second processing are processes of acquiring the convolution operation results respectively by multiply-accumulate operations the numbers of which are different from each other.

### Claim 7 (depends on 4)

The apparatus according to claim 4, wherein
the first processing is processing of acquiring the convolution operation result by multiply-accumulate operations the number of which is smaller than the number of weight coefficients, and
the second processing is processing of acquiring the convolution operation result by multiply-accumulate operations the number of which is equal to the number of weight coefficients.

### Claim 8 (depends on 1)

The apparatus according to claim 1, wherein
the controller determines, for each of a plurality of reference regions, whether data in the reference region are zero values, and
in a case where the controller determines that data in a specific reference region are zero values, the processor acquires, with respect to a position in the processing target block, the convolution operation result by multiply-accumulate operations the number of which corresponds to the specific reference region.

### Claim 9 (depends on 8)

The apparatus according to claim 8, wherein
the controller determines, for a reference region with the same size as the processing target block, whether data in the reference region are zero values, and
in a case where the controller determines that the data in the reference region with the same size as the processing target block are zero values, the processor acquires a zero value as the convolution operation result without performing any multiply-accumulate operations.

### Claim 10 (depends on 1)

The apparatus according to claim 1, wherein the controller controls supply of the data from the data memory to the processor based on a result of the determination.

### Claim 11 (depends on 1)

The apparatus according to claim 1, wherein
the processor includes a plurality of multiply-accumulate operators, and
the plurality of multiply-accumulate operators are configured to perform multiply-accumulate operations in parallel with respect to the plurality of positions in the processing target block.

### Claim 12 (depends on 11)

The apparatus according to claim 11, wherein the plurality of multiply-accumulate operators perform multiply-accumulate operations of respectively input data and a common weight coefficient in parallel.

### Claim 13 (depends on 12)

The apparatus according to claim 12, wherein
in a case where the controller does not determine that the data in the reference region are zero values, the plurality of multiply-accumulate operators use a plurality of weight coefficients to sequentially perform multiply-accumulate operations of the data and the weight coefficients, and
in a case where the controller determines that the data in the reference region are zero values, the plurality of multiply-accumulate operators use not all but some of the plurality of weight coefficients to sequentially perform multiply-accumulate operations of the data and the weight coefficients.

### Claim 14 (depends on 1)

The apparatus according to claim 1, wherein the controller is configured to set the reference region based on the size of the processing target block and a size of the filter.

### Claim 15 (depends on 1)

The apparatus according to claim 1, wherein the processor is further configured to perform activation processing on a result of the filter processing.

### Claim 16 (depends on 1)

The apparatus according to claim 1, wherein the controller is further configured to, in response to the data array in the processing target block being stored in the data memory, determine whether the data in the reference region are zero values.

### Claim 17 (depends on 1)

The apparatus according to claim 1, wherein
the filter processing performs processing using a convolutional neural network,
the data array is a feature image processed using the convolutional neural network, and
the weight coefficients are some of weight coefficients of the convolutional neural network.

### Claim 18

A method of performing filter processing on a data array in a processing target block of a predetermined size, comprising:
determining, in a determination, whether data in a reference region in the processing target block, set in correspondence with the processing target block, are zero values;
controlling, based on a result of the determination, whether to perform at least some of multiply-accumulate operations of the data and weight coefficients of a filter used for the filter processing in generating a convolution operation result; and
generating a convolution operation result of the data and the weight coefficients at a plurality of positions in the processing target block in accordance with the control.

### Claim 19

A non-transitory computer-readable medium storing one or more programs which, when executed by a computer comprising one or more processors and one or more memories, cause the computer to:
determine, in a determination, whether data in a reference region in the processing target block, set in correspondence with the processing target block, are zero values;
control, based on a result of the determination, whether to perform at least some of multiply-accumulate operations of the data and weight coefficients of a filter used for the filter processing in generating a convolution operation result; and
generate a convolution operation result of the data and the weight coefficients at a plurality of positions in the processing target block in accordance with the control.
