Method and apparatus for tightly coupled, low power image processing
First Claim
Patent Images
1. A method of processing an image, comprising:
- receiving the image at a camera core; and
transferring the image on a block basis from the camera core to a downstream processing engine, wherein the transferring includessending the image from the camera core over a local interconnect to a local memory coupled to the local interconnect,transferring the image from the local memory, over the local interconnect, to the downstream processing engine, andin association with transferring the image from the local memory, over the local interconnect, to the downstream processing engine, communicating a handshaking signal between the camera core and the downstream processing engine,wherein the communicating a handshaking signal between the camera core and the downstream processing engine is over a direct handshaking path outside of the local interconnect and coupled to the camera core and to the downstream processing engine.
1 Assignment
0 Petitions
Accused Products
Abstract
An image divided into N pixel blocks, stored block wise in a camera core and transferred block wise from the camera core to a downstream processing engine local to the local memory. A direct handshaking is communicated, between the camera core and the downstream processing engine, in the block wise transfers. Optionally an optical sensor scanner divides the image with a scan rate N times a frame rate, each scan providing a block of the frame. Optionally, the block wise transfer includes a transfer through a local memory, local to the camera core, controlled by the direct handshaking.
9 Citations
43 Claims
-
1. A method of processing an image, comprising:
-
receiving the image at a camera core; and transferring the image on a block basis from the camera core to a downstream processing engine, wherein the transferring includes sending the image from the camera core over a local interconnect to a local memory coupled to the local interconnect, transferring the image from the local memory, over the local interconnect, to the downstream processing engine, and in association with transferring the image from the local memory, over the local interconnect, to the downstream processing engine, communicating a handshaking signal between the camera core and the downstream processing engine, wherein the communicating a handshaking signal between the camera core and the downstream processing engine is over a direct handshaking path outside of the local interconnect and coupled to the camera core and to the downstream processing engine. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method of transferring an image to a processing engine, comprising:
-
scanning an optical sensor to obtain one scan of the image; extracting an image block of a given N-block division of the one scan of the image, wherein N is at least two; storing the extracted image block in a camera core; transferring the extracted image block from the camera core, over a local interconnect to a local memory connected to the local interconnect; transferring the extracted image block from the local memory, over the local interconnect, to a downstream processing engine connected to the local interconnect; and repeating, N times, the scanning, the extracting, the storing, and the transferring to provide the image to the downstream processing engine, wherein the transferring the extracted image block from the local memory to the downstream processing engine includes communicating a handshaking signal directly between the camera core and the downstream processing engine, over a direct handshaking path outside of the local interconnect and coupled to the camera core and to the downstream processing engine. - View Dependent Claims (17)
-
-
18. A method of transferring an image to a processing engine, comprising:
-
scanning an optical sensor to obtain one scan of the image; extracting an image block of a given N-block division of the one scan of the image; storing the extracted image block in at least one of a camera core or a local memory associated with the camera core; transferring the extracted image block from at least one of the camera core or the local memory, to a downstream processing engine; and repeating, N times, the scanning, the extracting, the storing, and the transferring to provide the image to the downstream processing engine, wherein the image is a video frame, and wherein the method further comprises providing a sequence of the video frames to the processing engine by the scanning being at a scan rate of N times FS and, for each of the video frames, performing the repeating N times of the scanning, the extracting, the storing, and the transferring, at rate to provide the sequence of the video frames at a frame rate of FS.
-
-
19. An image processor, comprising:
-
a local data interconnect; a camera core coupled to the local data interconnect; a downstream processor coupled to the local data interconnect; a local memory coupled to the data interconnect; and a direct handshaking path coupled to the camera core and to the downstream processor, wherein the camera core is configured to receive a video frame, transfer the video frame, over the local data interconnect to the local memory, and to control transfer of the video frame from the local memory to the downstream processor by block transfers over the local data interconnect and to control the block transfers by communicating handshaking signals with the downstream processor over the direct handshaking path. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. An image processor, comprising:
-
a local interconnect; a camera core connected to the local interconnect; a local memory coupled to the local interconnect; a direct handshaking path coupled at one end to the camera core, and configured at another end to couple to a downstream processing engine; means for scanning an optical sensor to obtain one scan of the image, means for extracting a block of a given N-block division of the one scan of the image, wherein N is at least two; means for storing an extracted block, resulting from the extracting, in the camera core; means for transferring the extracted block, through the local interconnect, from the camera core to the local memory; and means for transferring the extracted block from the local memory, through the local interconnect, to the downstream processing engine, wherein means for transferring the extracted block from the local memory to the downstream processing engine is configured to control the transferring by communicating handshaking signals over the direct handshaking path between the camera core and the downstream processing engine. - View Dependent Claims (30, 31)
-
-
32. A computer program product, having a computer-readable medium comprising:
-
code for causing at least one computer to receive at a camera core an image; and code for causing at least one computer to transfer the image on a block basis, to a downstream processing engine, and to communicate, in association with the transfer on a block basis, a handshaking signal between the camera core and the downstream processing engine, over a direct handshaking path coupled to the camera core and to the downstream processing engine, wherein the code for causing at least one computer to transfer the image on a block basis causes the at least one computer to transfer the image to a local memory over a local interconnect coupled to the camera core and coupled to the local memory and to the downstream processing engine, and to transfer the image from the local memory to the downstream processing engine over the local interconnect, wherein transfer of the image blocks from the local memory to the downstream processing engine includes communicating direct handshake signals between the camera core and the downstream processing engine over said direct handshaking path coupled to the camera core and to the downstream processing engine, wherein communicating the direct handshake signals between the camera core and the downstream processing engine is based on preventing an overflow in a buffer associated with the camera core. - View Dependent Claims (33)
-
-
34. A computer program product, having a computer-readable medium comprising:
-
code for causing at least one computer to scan an optical sensor to obtain one scan of an image; code for causing at least one computer to extract an image block of the one scan of the image, according to a given N-block division, wherein N is at least two; code for causing at least one computer to store the extracted image block in a camera core; code for causing at least one computer to transfer the extracted image block from the camera core, over a local interconnect, to a local memory connected to the local interconnect; code for causing at least one computer to transfer the extracted image block from the local memory, over the local interconnect, to a downstream processing engine connected to the local interconnect; and code for causing at least one computer to repeat the scan, extract, store, and transfer N times to provide the image to the downstream processing engine, wherein the code for causing at least one computer to transfer the extracted image block from the local memory to the downstream processing engine includes code for causing at least one computer to communicate a handshaking signal directly between the camera core and the downstream processing engine, over a direct handshaking path outside of the local interconnect and coupled to the camera core and the downstream processing engine.
-
-
35. A method of image processing, comprising:
-
step of receiving an image at a camera core; and step of transferring the image on a block basis from the camera core to a downstream processing engine, wherein the transferring includes communicating a handshaking signal between the camera core and the downstream processing engine over a direct handshaking path coupled to the camera core and to the downstream processing engine and, in association with the communicating a handshaking signal, sending the image from the camera core over a local interconnect to a local memory, and transferring the image from the local memory, over the local interconnect, to the downstream processing engine.
-
-
36. A method of transferring an image to a processing engine, comprising:
-
step of scanning an optical sensor to obtain one scan of the image, step of extracting an image block of the one scan of the image according to a given N-block division of the one scan; step of storing the extracted image block in a camera core; step of transferring the extracted image block from the camera core, over a local interconnect to a local memory connected to the local interconnect; step of transferring the extracted image block from the local memory, over the local interconnect, to a downstream processing engine; and repeating, N times, wherein N is at least two, the step of scanning, the step of extracting, the step of storing, and the step of transferring to provide the image to the downstream processing engine, wherein the step of transferring the extracted image block from the local memory to the downstream processing engine includes communicating a handshaking signal over a direct handshaking path coupled directly between the camera core and the downstream processing engine.
-
-
37. A method of processing an image, comprising:
-
receiving the image at a camera core; and transferring the image on a block basis from the camera core to a downstream processing engine, over a local interconnect coupled to the camera core and to the downstream processing engine, wherein the transferring includes communicating a handshaking signal between the camera core and the downstream processing engine, over a direct handshaking path between the camera core and the downstream processing engine, wherein receiving the image at the camera core comprises; generating the image at an optical sensor; dividing the image into N image blocks, wherein N is at least two; transferring the N image blocks sequentially to the camera core; and concurrently storing a number of the N image blocks in the camera core, and wherein the number of the image blocks in the camera core is less than N.
-
-
38. An image processor, comprising:
-
a camera core; a downstream processor coupled over a data interconnect to the camera core; and a direct handshaking path coupled to the camera core and to the downstream processor, wherein the camera core is configured to receive a video frame, and to transfer the video frame by N block transfers over the data interconnect to the downstream processor, each of the block transfers transferring a corresponding one of N pixel blocks of the video frame, and to control the N block transfers over the direct handshaking path, wherein the camera core includes a buffer to store at least a portion of the video frame, and wherein the camera core is configured to detect a fill level of the buffer and to control the block transfers to the downstream processor based at least in part on the detected fill level. - View Dependent Claims (39, 40, 41, 42, 43)
-
Specification