IP Library Granted Patent US 12,198,294
Granted Patent B2
US 12,198,294 · App. 17/591,425 · Granted Jan 14, 2025

Neural network processing of reordered color filter array formatted image data

Inventor: Karsten Trott (Olching, DE)
Assignee: XLNX, INC.
G06T3/4015G06T3/4038H04N23/617H04N23/84H04N23/88G06T2207/10024G06T2207/20081
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,198,294
App. No.
17/591,425
Granted
Jan 14, 2025
Kind
B2
Abstract

A rearranger circuit rearranges data elements of each raw image of a plurality of raw images according to a plurality of raw color channel arrays. The data elements of each raw image are input to the rearranger circuit according to instances of a pattern of color channels of a color filter array (CFA). The data elements specify values of the color channels in the instances of the pattern, and each raw color channel array has the data elements of one color channel of the color channels in the instances of the pattern. The rearranger circuit can be used in neural network training or in generating raw color channel arrays for performing neural network inference.

Claims (81)

1. A method comprising:

converting a plurality of full color images into a plurality of raw images by raw image generation circuitry, respectively, wherein each full color image is represented by a plurality of pixels, and each pixel is defined by a plurality of color values;

rearranging, by a rearranger circuit, data elements of each raw image of the plurality of raw images into a plurality of raw color channel arrays, wherein: the data elements of each raw image are ordered according to instances of a pattern of color channels of a color filter array (CFA); the data elements of each raw image specify values of the color channels in the instances of the pattern; and each raw color channel array has data elements of one color channel of the color channels in the instances of the pattern; and

training a neural network on the plurality of raw color channel arrays generated from each raw image.

2. The method of claim 1 , wherein the converting includes:

reading the plurality of full color images from a database; and

mosaicing the plurality of pixels of each full color image into one of the plurality of raw images.

3. The method of claim 2 , wherein:

the plurality of color values includes a red color value, a green color value, and a blue color value; and

the mosaicing includes generating instances of a red-green-green-blue pattern.

4. The method of claim 1 , wherein the plurality of raw color channel arrays includes first, second, third, and fourth raw color channel arrays, and the rearranging includes:

arranging, in the first raw color channel array, data elements corresponding to a red color channel in the instances of the pattern;

arranging, in the second raw color channel array, data elements corresponding to a first green color channel in the instances of the pattern;

arranging, in the third raw color channel array, data elements corresponding to a second green color channel in the instances of the pattern; and

arranging, in the fourth raw color channel array, data elements corresponding to a blue color channel in the instances of the pattern.

5. The method of claim 1 , wherein:

the data elements of each raw image are organized by rows and columns of the CFA; and

the rearranging includes buffering data elements of rows i and i+1 in a line buffer memory and registers, making all data elements of each instance of the pattern concurrently available to be written to a memory as the plurality of raw color channel arrays.

6. The method of claim 5 , wherein the buffering includes buffering the data elements of each raw image in a dual-ported memory.

7. The method of claim 1 , wherein the plurality of raw color channel arrays includes first, second, third, and fourth raw color channel arrays, and the rearranging includes:

arranging, in the first raw color channel array, data elements corresponding to a red color channel in the instances of the pattern;

arranging, in the second raw color channel array, data elements corresponding to a blue color channel in the instances of the pattern;

arranging, in the third raw color channel array, data elements corresponding to a green color channel in the instances of the pattern; and

arranging, in the fourth raw color channel array, data elements corresponding to a near-infrared color channel in the instances of the pattern.

8. The method of claim 1 , wherein the plurality of raw color channel arrays includes first, second, third, and fourth raw color channel arrays, and the rearranging includes:

arranging, in the first raw color channel array, data elements corresponding to a red color channel in the instances of the pattern;

arranging, in the second raw color channel array, data elements corresponding to a blue color channel in the instances of the pattern;

arranging, in the third raw color channel array, data elements corresponding to a green color channel in the instances of the pattern; and

arranging, in the fourth raw color channel array, data elements corresponding to an emerald color channel in the instances of the pattern.

9. The method of claim 1 , wherein the plurality of raw color channel arrays includes first, second, third, and fourth raw color channel arrays, and the rearranging includes:

arranging, in the first raw color channel array, data elements corresponding to a red color channel in the instances of the pattern;

arranging, in the second raw color channel array, data elements corresponding to a first clear color channel in the instances of the pattern;

arranging, in the third raw color channel array, data elements corresponding to a second clear color channel in the instances of the pattern; and

arranging, in the fourth raw color channel array, data elements corresponding to a blue color channel in the instances of the pattern.

10. The method of claim 1 , wherein the plurality of raw color channel arrays includes first, second, third, and fourth raw color channel arrays, and the rearranging includes:

arranging, in the first raw color channel array, data elements corresponding to a red color channel in the instances of the pattern;

arranging, in the second raw color channel array, data elements corresponding to a first clear color channel in the instances of the pattern;

arranging, in the third raw color channel array, data elements corresponding to a second clear color channel in the instances of the pattern; and

arranging, in the fourth raw color channel array, data elements corresponding to a third clear color channel in the instances of the pattern.

11. A method comprising:

converting a full color image into a raw image, wherein the full color image is represented by a plurality of pixels, and each pixel is defined by a plurality of color values;

rearranging, by a rearranger circuit, data elements of the raw image into a plurality of raw color channel arrays, wherein; the data elements of the raw image are ordered according to instances of a pattern of color channels of a color filter array (CFA); the data elements of the raw image specify values of the color channels in the instances of the pattern; and each raw color channel array has data elements of one color channel of the color channels in the instances of the pattern; and

running inference on the plurality of raw color channel arrays by a neural network.

12. The method of claim 11 , wherein the converting includes

mosaicing the plurality of pixels of the full color image into the raw image by a mosaicing circuit.

13. The method of claim 12 , wherein:

the plurality of color values includes a red color value, a green color value, and a blue color value; and

the mosaicing includes generating instances of a red-green-green-blue pattern.

14. The method of claim 11 , wherein the plurality of raw color channel arrays includes first, second, third, and fourth raw color channel arrays, and the rearranging includes:

arranging, in the first raw color channel array, data elements corresponding to a red color channel in the instances of the pattern;

arranging, in the second raw color channel array, data elements corresponding to a first green color channel in the instances of the pattern;

arranging, in the third raw color channel array, data elements corresponding to a second green color channel in the instances of the pattern; and

arranging, in the fourth raw color channel array, data elements corresponding to a blue color channel in the instances of the pattern.

15. The method of claim 11 , wherein:

the data elements of the raw image are organized by rows and columns of the CFA;

the rearranging includes buffering data elements of rows i and i+1 in a line buffer memory and registers, making all data elements of each instance of the pattern concurrently available to be written to a memory as the plurality of raw color channel arrays; and

the buffering includes buffering the data elements of the raw image in a dual-ported memory.

16. The method of claim 11 , wherein the plurality of raw color channel arrays includes first, second, third, and fourth raw color channel arrays, and the rearranging includes:

arranging, in the first raw color channel array, data elements corresponding to a red color channel in the instances of the pattern;

arranging, in the second raw color channel array, data elements corresponding to a blue color channel in the instances of the pattern;

arranging, in the third raw color channel array, data elements corresponding to a green color channel in the instances of the pattern; and

arranging, in the fourth raw color channel array, data elements corresponding to a near-infrared color channel in the instances of the pattern.

17. The method of claim 11 , wherein the plurality of raw color channel arrays includes first, second, third, and fourth raw color channel arrays, and the rearranging includes:

arranging, in the first raw color channel array, data elements corresponding to a red color channel in the instances of the pattern;

arranging, in the second raw color channel array, data elements corresponding to a first clear color channel in the instances of the pattern;

arranging, in the third raw color channel array, data elements corresponding to a second clear color channel in the instances of the pattern; and

arranging, in the fourth raw color channel array, data elements corresponding to a blue color channel in the instances of the pattern.

18. The method of claim 11 , wherein the plurality of raw color channel arrays includes first, second, third, and fourth raw color channel arrays, and the rearranging includes:

arranging, in the first raw color channel array, data elements corresponding to a red color channel in the instances of the pattern;

arranging, in the second raw color channel array, data elements corresponding to a first clear color channel in the instances of the pattern;

arranging, in the third raw color channel array, data elements corresponding to a second clear color channel in the instances of the pattern; and

arranging, in the fourth raw color channel array, data elements corresponding to a third clear color channel in the instances of the pattern.

19. A circuit arrangement comprising:

a raw-image-conversion circuit configured to convert a full color image into a raw image, wherein the full color image is represented by a plurality of pixels, and each pixel is defined by a plurality of color values;

a rearranger circuit configured to rearrange data elements of the raw image into a plurality of raw color channel arrays, wherein: the data elements of the raw image are ordered according to instances of a pattern of color channels of a color filter array (CFA); the data elements of the raw image specify values of the color channels in the instances of the pattern; and each raw color channel array has data elements of one color channel of the color channels in the instances of the pattern; and

one or more processor circuits configured to perform neural network inference on the plurality of raw color channel arrays.

20. The circuit arrangement of claim 19 , wherein the plurality of raw color channel arrays includes first, second, third, and fourth raw color channel arrays, and the rearranger circuit is configured to:

arrange, in the first raw color channel array, data elements corresponding to a red color channel in the instances of the pattern;

arrange, in the second raw color channel array, data elements corresponding to a first green color channel in the instances of the pattern;

arrange, in the third raw color channel array, data elements corresponding to a second green color channel in the instances of the pattern; and

arrange, in the fourth raw color channel array, data elements corresponding to a blue color channel in the instances of the pattern.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 16, 2022
From: TROTT, KARSTEN
To: XILINX GMBH
Reel/Frame 059126/0887 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 16, 2022
From: XILINX GMBH
To: XILINX, INC.
Reel/Frame 059127/0514 →
Continuity (1)
Related Publication 20230245269A1 · Aug 3, 2023
References Cited (5)
US 7057654B2 · Roddy · 2006 [cited by examiner]
US 20190082185A1 · Satavalekar · 2019 [cited by examiner]
US 20210158096A1 · Sinha · 2021 [cited by examiner]
US 20220084159A1 · Kim · 2022 [cited by examiner]
US 20220392182A1 · Tu · 2022 [cited by examiner]
Cited By (1)
US 12,615,342