Convolutional neural network
First Claim
1. A convolutional neural network (CNN) for an image processing system comprising:
- an image cache comprising an input port and an output port, said image cache being responsive to a request to read a block of N×
M pixels extending from a specified location within an input map to provide said block of N×
M pixels at said output port;
a convolution engine being arranged to read at least one block of N×
M pixels from said image cache output port, to combine said at least one block of N×
M pixels with a corresponding set of weights to provide a product, and to subject said product to so an activation function to provide an output pixel value;
said image cache being configured to write output pixel values to a specified write address via said image cache input port;
said image cache comprising a plurality of interleaved memories, each memory storing a block of pixel values at a given memory address, the image cache being arranged to determine for a block of N×
M pixels to be read from said image cache;
a respective one address within each of said interleaved memories in which said pixels of said block of N×
M pixels are stored;
a respective memory of said plurality of interleaved memories within which each pixel of said block of N×
M pixels is stored; and
a respective offset for each pixel of said block of N×
M pixels within each memory address, so that said image cache can simultaneously provide said N×
M pixels at said output port in a single clock cycle; and
a controller arranged to provide a set of weights to said convolution engine before processing at least one input map, to cause said convolution engine to process said at least one input map by specifying locations for successive blocks of N×
M pixels and to generate an output map within said image cache by writing said output pixel values to successive locations within said image cache.
1 Assignment
0 Petitions
Accused Products
Abstract
A convolutional neural network (CNN) for an image processing system comprises an image cache responsive to a request to read a block of N×M pixels extending from a specified location within an input map to provide a block of N×M pixels at an output port. A convolution engine reads blocks of pixels from the output port, combines blocks of pixels with a corresponding set of weights to provide a product, and subjects the product to an activation function to provide an output pixel value. The image cache comprises a plurality of interleaved memories capable of simultaneously providing the N×M pixels at the output port in a single clock cycle. A controller provides a set of weights to the convolution engine before processing an input map, causes the convolution engine to scan across the input map by incrementing a specified location for successive blocks of pixels and generates an output map within the image cache by writing output pixel values to successive locations within the image cache.
-
Citations
26 Claims
-
1. A convolutional neural network (CNN) for an image processing system comprising:
-
an image cache comprising an input port and an output port, said image cache being responsive to a request to read a block of N×
M pixels extending from a specified location within an input map to provide said block of N×
M pixels at said output port;a convolution engine being arranged to read at least one block of N×
M pixels from said image cache output port, to combine said at least one block of N×
M pixels with a corresponding set of weights to provide a product, and to subject said product to so an activation function to provide an output pixel value;said image cache being configured to write output pixel values to a specified write address via said image cache input port; said image cache comprising a plurality of interleaved memories, each memory storing a block of pixel values at a given memory address, the image cache being arranged to determine for a block of N×
M pixels to be read from said image cache;
a respective one address within each of said interleaved memories in which said pixels of said block of N×
M pixels are stored;
a respective memory of said plurality of interleaved memories within which each pixel of said block of N×
M pixels is stored; and
a respective offset for each pixel of said block of N×
M pixels within each memory address, so that said image cache can simultaneously provide said N×
M pixels at said output port in a single clock cycle; anda controller arranged to provide a set of weights to said convolution engine before processing at least one input map, to cause said convolution engine to process said at least one input map by specifying locations for successive blocks of N×
M pixels and to generate an output map within said image cache by writing said output pixel values to successive locations within said image cache. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. An image processing system comprising:
-
an image cache comprising an input port and an output port, said image cache being responsive to a request to read a block of N×
M pixels extending from a specified location within an input map to provide said block of N×
M pixels at said output port;an image processor being arranged to read at least one block of N×
M pixels from said image cache output port, and to process said at least one block of N×
M pixels to provide at least one output pixel value;said image cache being configured to write output pixel values to a specified write address via said image cache input port; said image cache comprising a plurality of interleaved memories, each memory storing a block of pixel values at a given memory address, the image cache being arranged to determine for a block of N×
M pixels to be read from said image cache;
a respective one address within each of said interleaved memories in which said pixels of said block of N×
M pixels are stored;
a respective memory of said plurality of interleaved memories within which each pixel of said block of N×
M pixels is stored; and
a respective offset for each pixel of said block of N×
M pixels within each memory address, so that said image cache can simultaneously provide said N×
M pixels at said output port in a single clock cycle; anda controller arranged to cause said image processor to read from a specified location of said at least one input map a configurable block of N×
M pixels and to write output pixel values to specified locations within said image cache. - View Dependent Claims (22, 23, 24, 25, 26)
-
Specification