Interleaved processing of template data and search data according to a search window

US12573171B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12573171-B2
Application numberUS-202418431565-A
CountryUS
Kind codeB2
Filing dateFeb 2, 2024
Priority dateFeb 2, 2024
Publication dateMar 10, 2026
Grant dateMar 10, 2026

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A processor, method, and non-transitory computer-readable storage medium for processing template data and search data according to a search window applied to the search data. The search window comprising a set of offset positions. The processing is performed by a block matching engine (BME) that produces a tensor with difference values, and a convolutional engine (CE) that performs a convolutional operation on the tensor. The processing is performed in an iterative interleaved fashion, by dividing the set of offset positions into a plurality of subsets of offset positions. In parallel with processing of the first X offset positions by the CE, the BME generates the next X channels of the tensor, and which are subsequently pipelined through to the CE via an internal storage, etc.

First claim

Opening claim text (preview).

What is claimed is: 1 . A processor for processing template data and search data according to a search window applied to the search data, the search window comprising a set of offset positions, the processor comprising an internal memory, a handling unit, a convolutional engine, CE, and a block matching engine, BME, wherein the BME being configured to indicate a measure of similarity between template data and search data, the BME configured for: receiving first invocation data indicating a plurality of offset positions, and an output storage element; and determining a tensor having a plurality of channels, by, for each offset position, offsetting the search data according to the offset position, determining difference values between the template data and the offset search data, writing the difference values in a channel of the tensor; and storing the tensor in the output storage element; the CE configured for: receiving second invocation data, the second invocation data identifying an input storage element, reading a tensor having a plurality of channels from the input storage element, and performing a convolutional operation on the tensor; the handling unit configured for: accessing a plurality of subsets of offset positions from the set of offset positions; performing interleaved iterative processing of the plurality of subsets of offset positions, using the CE and the BME, comprising, for each iteration: dispatching first invocation data to the BME identifying a subset of offset positions among the plurality of subsets of offset positions; and an output storage element in the internal memory; and dispatching second invocation data to the CE identifying, as input storage element, the output storage element as identified in first invocation data dispatched to the BME in a previous iteration; wherein the processor is configured for storing a result from the convolutional operation performed by the CE in internal memory. 2 . The processor of claim 1 , wherein the internal memory comprises a first and a second storage element, wherein the handling unit is configured for performing the interleaved iterative processing of the plurality of subsets of offset position by: for a first subset of offsets positions, dispatching first invocation data to the BME, the invocation data defining the first subset of offsets positions and the first storage element as output storage element; for each subset of offsets positions excluding the first sub-set of offsets positions: alternating between using the first and the second storage element as output storage element for the BME, and using the other one of the first and second storage element as the input storage element of the CE; dispatching second invocation data to the CE identifying the input storage element according to the alternating; dispatching first invocation data to the BME indicating the subset of offsets positions and the output storage element according to the alternating. 3 . The processor of claim 1 , wherein each subset of offset positions comprises a predetermined number of offset positions. 4 . The processor of claim 3 , wherein the predetermined number of offset positions is a multiple of 8. 5 . The processor of claim 3 , wherein one or more of the offset positions in the set of offset positions are skipped in the plurality of subset of offset positions, such that each subset comprises the predetermined number of offset positions. 6 . The processor of claim 5 , wherein the set of offset positions is ordered according to a predefined search pattern, wherein the skipping one or more of the offset positions comprises skipping one or more offset positions ordered last in the ordered set of offset positions. 7 . The processor of claim 1 , wherein each subset comprises continuous offset positions from the search window in one of a: vertical direction or horizontal direction. 8 . The processor of claim 1 , further comprises a motion vector determining unit configured to read the stored output from the CE, and process the output to determine the plurality of motion vectors defining data movements between the template data and search data. 9 . The processor of claim 1 , wherein search window is one of: rectangular, elliptical, or circular. 10 . The processor of claim 1 , wherein the BME is configured for, prior to storing the tensor in the output storage element, downscaling each difference value by applying a predefined scaling equation to the difference value. 11 . The processor of claim 10 , wherein the BME is configured for applying the predefined scaling equation to the difference value by computing the square root of the difference value. 12 . The processor of claim 1 , wherein the template data and the search data each comprises a 2D tensor. 13 . A method performed by a processor when processing template data and search data according to a search window applied to the search data, the search window comprising a set of offset positions, the processor comprising an internal memory; the method comprising: accessing a plurality of subsets of offset positions from the set of offset positions; performing interleaved iterative processing of the plurality of subsets of offset positions, comprising, for each iteration: dispatching first invocation data identifying a subset of offset positions among the plurality of subsets of offset positions; and an output storage element in the internal memory; determining a tensor having a plurality of channels, by, for each offset position of the subset of offset positions identified in the first invocation data, offset the search data according to the offset position, determining difference values between the template data and the offset search data, writing the difference values in a channel of the tensor; and storing the tensor in the output storage element identified in the first invocation data; dispatching second invocation data identifying, as an input storage element, the output storage element as identified in first invocation data dispatched in a previous iteration; reading a tensor having a plurality of channels from the input storage element identified in the second invocation data, performing a convolutional operation on the tensor; and storing a result from the convolutional operation in internal memory. 14 . The method of claim 13 , wherein the internal memory comprises a first and a second storage element, wherein performing the interleaved iterative processing of the plurality of subsets of offset position comprises: for a first subset of offsets positions, dispatching first invocation data the invocation data defining the first subset of offsets positions and the first storage element as output storage element; for each subset of offsets positions excluding the first sub-set of offsets positions: alternating between using the first and the second storage element as output storage element of first invocation data, and using the other one of the first and second storage element as the input storage element second invocation data; dispatching second invocation identifying the input storage element according to the alternating; dispatching first invocation data indicating the subset of offsets positions and the output storage element according to the alternating. 15 . The method of claim 13 , wherein each subset of offset positions comprises a predetermined number of offset positions. 16 . The method of claim 15 , wherein one or more of the offset positions in the set of offset positions are skipped in the plurality of offset positions,

Assignees

Inventors

Classifications

  • G06V10/82Primary

    using neural networks · CPC title

  • Target detection · CPC title

  • Image or video pattern matching; Proximity measures in feature spaces · CPC title

  • using block-matching · CPC title

  • G06V10/469Primary

    Contour-based spatial representations, e.g. vector-coding · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US12573171B2 cover?
A processor, method, and non-transitory computer-readable storage medium for processing template data and search data according to a search window applied to the search data. The search window comprising a set of offset positions. The processing is performed by a block matching engine (BME) that produces a tensor with difference values, and a convolutional engine (CE) that performs a convolutio…
Who is the assignee on this patent?
Advanced Risc Mach Ltd
What technology area does this patent fall under?
Primary CPC classification G06V10/82. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 10 2026 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).