System and method for high-throughput image processing
An image processing method including allocating a plurality of memory banks. Each memory bank includes a plurality of memory bank rows. The image is divided into a plurality of tags, wherein each tag has tag rows, each tag row has a plurality of pixels, and each tag row is consecutively distributed over different memory banks such that each tag row of the tag is accessible to be read out from the memory banks simultaneously. The consecutive distribution of the tag rows is performed by distributing the tag rows (r) in order starting from a first tag row (r) and to the memory banks (b) in order starting at the first memory bank (b), until all tag rows (r) have been distributed.
1 . An image processing method, the method comprising:
allocating (S 1010 ) a plurality of memory banks (b), wherein each memory bank (b) comprises a plurality of memory bank rows (d);
dividing (S 1020 ) an image into a plurality of tags (t), such that a width of the image is divided into several of the tags (t), wherein each tag (t) comprises tag rows (r), and each tag row (r) comprises a plurality of pixels (p);
consecutively distributing (S 1030 ) each tag row (r) over different memory banks (b) such that each tag row (r) of the tag (t) is accessible to be read out from the memory banks (b) simultaneously;
wherein the consecutive distribution of the tag rows is performed by distributing the tag rows (r) in order starting from a first tag row (r) and to the memory banks (b) in order starting at a first memory bank (b), until all tag rows (r) have been distributed; and
performing a readout (S 2010 ) of the image 100 by sorting out specified pixel information in a requested reading pattern ( 201 ) of the tag (t) stored in the different memory banks (b), wherein the requested reading pattern comprises a geometric arrangement of a subset of the pixels.
2 . The image processing method according to claim 1 , wherein each memory bank row (d) comprises a tag index T(t,r), tag row offset, and a byte offset.
3 . The image processing method according to claim 1 , wherein the step of performing a readout (S 2010 ) comprises accessing the memory banks (b) by at least one port (q) connected to the memory banks (b) such that at least one memory bank row (d) can be read out simultaneously.
4 . The image processing method according to claim 1 , wherein the geometric arrangement comprises a binary robust independent elementary features (BRIEF) access pattern.
5 . The image processing method according to claim 1 , wherein the geometric arrangement comprises a Bresenham circle.
6 . A system for processing an image ( 300 ), comprising:
a plurality of memory banks (b), wherein each memory bank (b) comprises memory bank rows (d);
an image controller ( 400 ) configured to divide an image into a plurality of tags (t), such that a width of the image is divided into several of the tags (t), wherein each tag (t) comprises tag rows (r), and each tag row (r) comprises a plurality of pixels (p), and consecutively distributing each tag row (r) over different memory banks (b) such that each tag row (r) of the tag (t) is accessible to be read out from the memory banks (b) simultaneously;
wherein the image controller ( 400 ) is further configured to distribute the tag rows (r) in order starting from a first tag row (r) and to the memory banks (b) in order starting at a first memory bank (b), until all tag rows (r) have been distributed; and
a shuffling network ( 320 ) configured to readout specified pixel information in a requested reading pattern ( 201 ) of the tag (t) stored in the different memory banks (b), wherein the requested reading pattern comprises a geometric arrangement of a subset of the pixels.
7 . The system according to claim 6 , the system further comprising an address generation unit ( 310 ) configured to assign each memory bank row (d) a tag index T(t,r), a tag row offset and a byte offset.
8 . The system according to claim 6 , the system further comprising at least one port connected to each memory bank such that at least one memory bank row (d) can be read out simultaneously.
9 . The system according to claim 6 , wherein the geometric arrangement comprises a binary robust independent elementary features (BRIEF) access pattern.
10 . The system according to claim 6 , wherein the geometric arrangement comprises a Bresenham circle.