Field of the Invention
[0001] The present invention relates in general to digital image processing and more particularly
to an apparatus and method for storing and retrieving digital image data in a memory
for use in further processing.
Background of the Invention
[0002] Electronic storage of digital image data prior to subsequent processing has been
used for many years.
[0003] One prior art image storage method for use in systems which process multiple digital
images involves using multiple image delays connected in series. Input data is fed
into the first delay element, the output of the first delay element is fed into a
second delay element, and so on. The outputs of all the delay elements along with
the input data are then available for subsequent processing such as filtering.
[0004] Another prior art method for multiple image storage uses a large memory device (i.e.
memory array) with enough storage locations (addresses) for two or more images. Image
data is stored sequentially in the memory array, and retrieved at a later time for
downstream processing. This method requires multiple read operations to retrieve all
of the desired data from each of the individual images stored in the memory array.
Multiple read operations require a very high speed and costly memory array and additional
logic circuits to control the reading from multiple addresses.
[0005] As discussed above, prior art methods have been used in downstream image processing
applications. One such application involves converting a series of film frames to
video. To convert a 24 Hz film to 60 Hz interlaced video, the individual film frames
are first scanned and separated into two video fields (A and B). Unlike live video,
these two fields are not temporally displaced; fields A and B can be displayed in
either order as they both contain material captured at the same time. Following this
step, the film fields are displayed one after the other, alternating between A and
B with an extra field inserted every four fields. This process is called 3:2 pulldown,
so named for the number of video fields "pulled down" from each film frame (three
fields from Frame 1, two fields from Frame 2, etc.). The resulting field rate becomes
60 Hz which can be easily transferred to videotape.
[0006] The prior art techniques discussed above do not allow for variations in the input
data rate without affecting the output image processing rate. It is well understood
that variations in data rates are common in video and graphics sources, especially
if the original source is in an analog format (such as a VCR) or communicated over
a bus. In addition, the prior art techniques result in a delay between input and output
which is an integral number of image delays. In some cases it is desirable to have
a non-integral or variable amount of delay between input and output, such as in temporal
filtering between multiple images or in frame rate conversion, as discussed above.
Furthermore, in some circumstances minimum latency from input to output may be required.
[0007] The following prior art is considered pertinent to the present disclosure:
U.S. Patent Documents
[0008]
| 4,876,596 - Faroudja |
Oct 24/89 |
Film-to-video converter with scan line doubling |
| 4,987,551 - Garrett, Jr. |
Jan 22/91 |
Apparatus for creating a cursor pattern by strips related to individual scan lines |
| 5,008,838 - Kelleher, et al. |
Apr 16/91 |
Method for simultaneous initialization of a double buffer and a frame buffer |
| 5,257,348 - Roskowski, et al |
Oct 26/93 |
Apparatus for storing data both video and graphics signals in a single frame buffer |
| 5,321,809 - Aranda |
Jun 14/94 |
Categorized pixel variable buffering and processing for a graphics system |
| 5,550,592 - Markandey, et al. |
Aug 27/96 |
Film mode progressive scan conversion |
| 5,598,525 - Nally, et al. |
Jan 28/97 |
Apparatus, systems and methods for controlling graphics and video data in multimedia
data processing and display systems |
| 5,604,514 - Hancock |
Feb 18/97 |
Personal computer with combined graphics/image display system having pixel mode frame
buffer interpretation |
Summary of the Invention
[0009] According to the present invention, a more flexible solution is provided to image
processing than is provided in the prior art where the output image is a function
of one or more input images, such as in video de-interlacing, frame rate conversion,
temporal filtering and interpolation, and image motion analysis. A storage technique
is provided for multi-image processing where it is desired to have a non-integral
number of image delays between input and output, or where the amount of delay between
input and output is required to be variable over time; and where the image data is
not required to be transferred serially along the sequence of image delays.
[0010] According to another aspect of the present invention, an improvement is provided
in digital image storage for downstream processing of a 3:2 pulldown sequence of video.
The invention provides techniques for storing the images in such a way as to allow
processing of images originating only from a specific film frame while storing incoming
data from a different film frame for future processing. The aforementioned benefits
of the present invention, namely a non-integral or variable amount of delay between
input and output, also apply in the storage of a 3:2 pulldown sequence of video.
[0011] Therefore, in accordance with the present invention there is provided an image data
storage and retrieval device using a memory array which is partitioned into at least
two sections. A write pointer is used to generate addresses of the memory (including
all sections of the memory) where image data is to be stored. A write mask generator
is used to mask predetermined sections of the memory addressed by the pointer where
it is desired to prevent overwriting of data. A read pointer generates addresses in
the memory array from which data is to be retrieved for further processing.
[0012] The method of operation for storing the input data according to the present invention
comprises in its most general aspect the steps of:
- 1) Generating a write pointer to indicate the location in the memory array where new
input data is to be stored;
- 2) Generating a write mask which inhibits writing to sections of the memory array,
so that stored data from other images is not overwritten;
- 3) Enabling the writing of the input data into the array.
- 4) Following completion of the input image data, the write pointer may be reset if
old data is to be overwritten, or unmodified if new data is to be stored in a separate
address space within the memory array.
[0013] Concurrently with the storage of input data, the method of operation for retrieving
the output data comprises the steps of:
- 1) Generating a read pointer to indicate the location in the memory array where the
desired image data to process is located;
- 2) Enabling the reading of the stored data from the array, with the ability to access
all corresponding image data in all stored images simultaneously.
- 3) Following completion of the output image data, the read pointer is reset to the
location where the next image data is stored. This may be the same location as the
data previously read or a new location where newer data is stored.
[0014] In one more aspect of the present invention, the storage for image data is comprised
of multiple memory arrays wherein writing to each individual array can be selectively
controlled through use of array enable signals, in lieu of a write mask with a single
memory array.
[0015] In a further aspect of the present invention, the storage for image data may be contained
on the same device as the image processing circuits.
[0016] In a still further aspect of the present invention, the memory array utilizes a single
bi-directional data bus for both writing data to the memory array and also reading
data from the memory array. This aspect is shown in Fig. 8A.
[0017] In yet one more aspect of the present invention, the memory array utilizes a single
unified address input to indicate both reading and writing locations along with an
additional input indicating whether the address indicates a write location or a read
location, and a unified address generator which supplies both write and read address
locations.
[0018] In yet another aspect of the present invention, additional read operations from the
memory array are performed during periods when the memory array is idle to allow additional
image data analysis separate from the primary processing effort.
[0019] In a further aspect of the present invention, the apparatus is used to perform image
processing with image material originating from both video and film sources and other
sources such as computer graphics in applications such as temporal filtering or frame
rate conversion.
[0020] These and other objects, aspects, advantages, and features of the present invention
will be more fully understood and appreciated by consideration of the following detailed
description of a preferred embodiment, presented in conjunction with the accompanying
drawings.
Brief Description of the Drawings
[0021] A description of the prior art and of the preferred embodiment of the present invention
is provided hereinbelow with reference to the following drawings in which:
Fig. 1A is a block diagram showing a memory array for digital image storage using
unit field delays according to the prior art;
Fig. 1B shows a typical content of the field delays during multiple image processing
according to the prior art system for Fig. 1A;
Fig. 1C shows a sequence of video fields originating from a film source using techniques
according to the prior art;
Fig. 2 is a block diagram showing a memory array and supporting control circuits for
digital image storage, according to the preferred embodiment of the invention;
Fig. 3 is a schematic representation of the memory array of Figure 2, according to
the preferred embodiment;
Fig. 4 shows the relationship between input data and output data, according to a first
mode of operation of the preferred embodiment;
Fig. 5A shows the contents of the memory array at a time interval T1 as identified
in Fig 4, according to the first mode of operation of the preferred embodiment;
Fig. 5B shows the contents of the memory array at a time interval T2 as identified
in Fig 4, according to the first mode of operation of the preferred embodiment;
Fig. 5C shows the contents of the memory array at a time interval T3 as identified
in Fig 4, according to the first mode of operation of the preferred embodiment;
Fig. 5D shows the contents of the memory array at a time interval T4 as identified
in Fig 4, according to the first mode of operation of the preferred embodiment;
Fig. 5E shows the contents of the memory array at a time interval T5 as identified
in Fig 4, according to the first mode of operation of the preferred embodiment;
Fig. 5F shows the contents of the memory array at a time interval T6 as identified
in Fig 4, according to the first mode of operation of the preferred embodiment;
Fig. 5G shows the contents of the memory array at a time interval T7 as identified
in Fig 4, according to the first mode of operation of the preferred embodiment;
Fig. 6 shows the relationship between the input data and the output data, according
to a second mode of operation of the preferred embodiment;
Fig. 7A shows the contents of the memory array at a time interval T1 as identified
in Fig 6, according to the second mode of operation of the preferred embodiment;
Fig. 7B shows the contents of the memory array at a time interval T2 as identified
in Fig 6, according to the second mode of operation of the preferred embodiment;
Fig. 7C shows the contents of the memory array at a time interval T3 as identified
in Fig 6, according to the second mode of operation of the preferred embodiment;
Fig. 7D shows the contents of the memory array at a time interval T4 as identified
in Fig 6, according to the second mode of operation of the preferred embodiment;
Fig. 7E shows the contents of the memory array at a time interval T5 as identified
in Fig 6, according to the second mode of operation of the preferred embodiment;
Fig. 7F shows the contents of the memory array at a time interval T6 as identified
in Fig 6, according to the second mode of operation of the preferred embodiment;
Fig. 7G shows the contents of the memory array at a time interval T7 as identified
in Fig 6, according to the second mode of operation of the preferred embodiment.
Fig. 7H shows the contents of the memory array at a time interval T8 as identified
in Fig 6, according to the second mode of operation of the preferred embodiment;
Fig. 7I shows the contents of the memory array at a time interval T9 as identified
in Fig 6, according to the second mode of operation of the preferred embodiment;
Fig. 7J shows the contents of the memory array at a time interval T10 as identified
in Fig 6, according to the second mode of operation of the preferred embodiment;
Fig. 7K shows the contents of the memory array at a time interval T11 as identified
in Fig 6, according to the second mode of operation of the preferred embodiment;
Fig. 7L shows the contents of the memory array at a time interval T12 as identified
in Fig 6, according to the second mode of operation of the preferred embodiment;
Fig. 8A is a block diagram showing an alternative embodiment of the present invention
where the memory array utilizes a single bi-directional data bus for both writing
and reading data; and.
Fig. 8B is a block diagram showing a further alternative embodiment of the present
invention where the memory array utilizes a single unified address input to indicate
both reading and writing locations.
Detailed Description of the Preferred Embodiment
[0022] Fig. 1A illustrates a conventional prior art approach to storing multiple digital
images in multiple image delays. The input data is provided by an image source
1 and fed to a field delay
3 and to a first input of a downstream image processor
5. The delayed image data from field delay
3 is fed to the input of field delay
7 and to a second input of images processor
5, and so on.
[0023] Figure 1B schematically represents the transfer of images (input image 1, input image
2 and input image 3) through field delays
3 and
7.
[0024] Figure 1C shows a sequence of video fields being converted from film frame rate to
video rate, according to the prior art 3:2 pulldown technique. As shown in Figure
1C, the fields of video which are created from film Frame 1 are labeled Field 1A,
1B, and 1A*. Field 1A contains all the even scan lines of the film Frame 1, and Field
1B contains all the odd scan lines of film Frame 1. The extra field Field 1A* is identical
to Field 1A except possibly for a difference in the noise content.
[0025] Figure 2 illustrates a block diagram according to the preferred embodiment, comprising
digital image source
40, write address generator
41, read address generator
42, memory array
43, write mask generator
44, and downstream digital image processor
47.
[0026] Figure 3 illustrates the structure and organization of the memory array
43 with M address locations labeled 0 to M-1, and with 2N bits of storage per address
location divided into two sections A and B represented by bits 0 to N-1 and by bits
N to 2N-1 respectively, according to the preferred embodiment.
[0027] The digital image source
40 provides digital image data to both sections of the memory array
43. The Write Mask Generator
44 provides masking signals to the memory array
43 to control writing of data into the array. The Write Address Generator
41 and Read Address Generator
42 provide memory array address locations where data is written to and read from, respectively.
The memory array
43 output data stream is connected to a downstream processor
47 for image processing and manipulation.
[0028] In one mode of operation of the preferred embodiment, digital image data is transmitted
by source device
40 as illustrated in Figure 4. The input sequence comprises a number of digital images
separated by an amount of blanking time in which no image data is transmitted.
[0029] The Write Address Generator
41 and Read Address Generator
42 are initialized to a start address. The first input image (Input Image 1) is written
into section A of the memory array
43, starting at the address indicated by Write Address Generator
41. The Write Mask Generator
44 controls the array so that no writing of data occurs to memory array section B. No
valid processing can be done since memory array section B is empty, so there is no
read operation. This is shown as time T1 in Figure 4 with memory array contents as
shown in Figure 5A.
[0030] At the start of Input Image 2, the Write Address Generator
41 is reset to the initial address. As Input Image 2 data arrives from data source
40 it is written to memory array section B, starting at the address indicated by Write
Address Generator
41. The Write Mask Generator
44 controls the array so that no writing of data occurs to memory array section A, and
the data in memory array section A is unaffected by this second write to the same
addresses. This is shown as time T2 in Figure 4 with memory array contents as shown
in Figure 5B.
[0031] Shortly after time T2, the stored data (Input Images 1 and 2) is read out of the
memory array, starting at the initial address indicated by Read Address Generator
42. Since some data from Input Image 2 has already been written, it is now available
along with Input Image 1 data for downstream processing by processor
47. A read from the initial addresses fetches the first lines of both Input Images 1
and 2. Subsequent reads to subsequent addresses as indicated by Read Address Generator
42 fetch complementary lines from both images. Since writing is always ahead of reading,
there is no risk of memory array underflow such as a read from memory before the data
has been written there. This read operation is shown as time T3 in Figure 4 with memory
contents as shown in Figure 5C.
[0032] After Input Image 2 has been written completely, the input source
40 is now in blanking and no further data is supplied. However, reading of data may
still be ongoing as output data is processed by processor
47. This read operation is shown as time T4 in Figure 4 with memory contents as shown
in Figure 5D.
[0033] At the start of Input Image 3, the Write Address Generator
41 is reset to the initial address. The Write Mask Generator 44 controls the array so
that no writing of data occurs to memory array section B. As Input Image 3 image data
arrives from data source
40 it is written to memory array section A. By this time, output processing has finished
using the first lines of Input Image 1 and they are no longer needed. Section B contains
Input Image 2 information which is protected from overwrite by the Write Mask. This
event is shown as time T5 in Figure 4 with memory contents as shown in Figure 5E.
[0034] At some time after time T5, output processing using data from Input Images 1 and
2 has completed and no further read operations take place. However, writing of Input
Image 3 input data into memory array section A continues. This event is shown as time
T6 in Figure 4 with memory contents as shown in Figure 5F. At some time after time
T6, the Read Address Generator
42 is reset to the initial address and the stored data (Input Images 2 and 3) is read
out of the memory array
43. In a similar manner as described for time T3, a read operation from the initial
address fetches the first lines of both Input Images 2 and 3. Subsequent read operations
fetch the remaining data. Write operations of Input Image 3 data continue to addresses
indicated by the Write Address Generator
41. This event is shown as time T7 in Figure 4 with memory contents as shown in Figure
5G.
[0035] The cycle continues with each subsequent incoming image being stored alternately
in memory section A or B by controlling the Write Mask Generator
44. Read operations retrieve the stored data from both sections of memory array
43.
[0036] In a second mode of operation of the preferred embodiment, digital image data is
transmitted by source device
40 as illustrated in Figure 6. The input sequence comprises a number of digital images
separated by an amount of blanking time in which no image data is transmitted as discussed
above in connection with the first mode of operation. However, in this mode the series
of images have been captured from film such that each film frame is successively transferred
into either three or two video image fields in an alternating pattern as discussed
above in connection with the prior art illustrated in Figure 1C.
[0037] The Write Address Generator
41 and Read Address Generator
42 are initialized to a start address. The first input image (Input Image 1A) is written
into section A of the memory array
43, starting at the address indicated by Write Address Generator
41. The Write Mask Generator
44 controls the array so that no writing of data occurs to memory array section B. No
valid processing can be done since memory array section B is empty, so there is no
read operation. This is shown as time T1 in Figure 6 with memory array contents as
shown in Figure 7A.
[0038] At the start of Input Image 1B, the Write Address Generator
41 is reset to the initial address. As Input Image 1B data arrives from data source
40 it is written to memory array section B, starting at the address indicated by Write
Address Generator
41. The Write Mask Generator
44 controls the array so that no writing of data occurs to memory array section A, and
the data in memory array section A is unaffected by this second write to the addresses.
This is shown as time T2 in Figure 6 with memory array contents as shown in Figure
7B.
[0039] At some future time shortly after time T2, the stored data (Input Images 1A and 1B)
is read out of the memory array
43, starting at the initial address indicated by Read Address Generator
42. Since some data from Input Image 1B has already been written, it is now available
along with Input Image 1A data for downstream processing by processor
47. A read from the initial addresses fetches the first lines of both Input Images 1A
and 1B. Subsequent reads to subsequent addresses as indicated by Read Address Generator
42 fetch complementary lines from both images. Since writing is always ahead of reading,
there is no risk of memory array underflow such as a read from memory before the data
has been written there.
[0040] This read operation is shown as time T3 in Figure 6 with memory contents as shown
in Figure 7C. After Input Image 1B has been written completely, the input source
40 is now in blanking and no further data is supplied. However, reading of data may
still be ongoing as output data is processed by processor
47. This read operation is shown as time T4 in Figure 6 with memory contents as shown
in Figure 7D.
[0041] At the start of Input Image 1A*, the Write Address Generator
41 is reset to the initial address. Input Image 1A* contains the same data as Input
Image 1A (except for a small amount of system noise) because both Input Images 1A
and 1A* originate from the same film material. For this reason, Input Image 1A is
overwritten by Input Image 1A*. In a variation to this embodiment, Input Image 1A*
may be discarded in favour of the previously stored Input Image 1A. The Write Mask
Generator
44 controls the array so that no writing of data occurs to memory array section B. As
Input Image 1A* image data arrives from data source
40 it is written to memory array section A. By this time, output processing has finished
using the first lines of Input Image 1A and they are no longer needed. Section B contains
Input Image 1B information which is protected from overwrite by the Write Mask. This
event is shown as time T5 in Figure 6 with memory contents as shown in Figure 7E.
[0042] At some time after time T5, output processing using data from Input Images 1A and
1B has completed and no further read operations take place. However, writing of Input
Image 1A* input data into memory array section A continues. This event is shown as
time T6 in Figure 6 with memory contents as shown in Figure 7F.
[0043] At some time after time T6, the Read Address Generator
42 is reset to the initial address and the stored data (Input Images 1A* and 1B) is
read out of the memory array
43. In a similar manner as described for time T3, a read operation from the initial
address fetches the first lines of both Input Images 1A* and 1B. Subsequent read operations
fetch the remaining data. Write operations of Input Image 1A* data continue to addresses
indicated by the Write Address Generator
41. This event is shown as time T7 in Figure 6 with memory contents as shown in Figure
7G.
[0044] At some time after time T7, Input Image 2B is input. This data is not used in data
processing at this time but must be stored in the memory array
43. Also, because there is no corresponding data for Input Image 2B to process, the
downstream processor must use data from Input Images 1A* and 1B again. For this reason,
data for Input Image 2B is stored at an unused area of section B of the memory array
43. The Write Address Generator
41 does not reset but holds its final value and writing begins at this location. The
Write Mask Generator
44 controls the array so that no writing of data is done to memory array section A.
This permits future reading of Images 1A* and 1B. Reading of Input Images 1A* and
1B from the memory array
43 is then completed. This event is shown as time T8 in Figure 6 with memory contents
as shown in Figure 7H.
[0045] Reading of image data is then started again. Since there is no corresponding image
to Input Image 2B, it is not possible to use this data in downstream processing by
processor
47 at this time. Instead, reading of Input Images 1A* and 1B is repeated by resetting
the Read Address Generator
42 to the location of the start of Input Images 1A* and 1B. As writing of Input Image
2B continues, the Write Address Generator
41 wraps around to zero and begins overwriting the data of Input Image 1B, but not before
it has been read out. This event is shown as time T9 in Figure 6 with memory contents
as shown in Figure 7I.
[0046] Following completion of Input Image 2B and a blanking period, Input Image 2A begins.
Since this image will be processed together with Input Image 2B, it must be stored
at the same address in section A of the memory array
43. The Write Mask Generator
44 controls the array so that no writing of data is done to memory array section B.
At the start of Input Image 2A, the Write Address Generator
41 is programmed to the same location as was used to start Input Image 2B. During this
time, reading of Input Images 1A* and 1B continues. This event is shown as time T10
in Figure 6 with memory contents as shown in Figure 7J.
[0047] At some time after time T10, reading of Input Images 1A* and 1B has completed. The
Read Address Generator
42 is then reset to the start of Input Images 2A and 2B so that these images can be
read out and processed by processor
47. During this time, Input Image 2A is written into section A of the memory array
43. The Write Address Generator
41 has rolled over to zero and writing of Input Image 2A continues at the top of memory
array section A, as controlled by the Write Mask Generator
44. This event is shown as time T11 in Figure 6 with memory contents as shown in Figure
7K.
[0048] One image time later after time T11, Input Image 3B is supplied to the memory array
43. The Write Mask Generator controls the array so that no writing of data is done to
section B. Since there is no corresponding image to Input Image 3B, it is not possible
to use this data in downstream processing by processor
47 at this time. Instead, reading of Input Images 2A and 2B is repeated by setting the
Read Address Generator
42 to the location of the start of Input Images 2A and 2B, and reading commences from
that point. As writing of Input Image 3B continues, the Write Address Generator
41 wraps around to zero and begins overwriting data of Input Image 2B, but not before
it has been read out. This event is shown as time T12 in Figure 6 with memory contents
as shown in Figure 7L.
[0049] The cycle continues with each subsequent incoming image being stored alternately
in memory section A or B by controlling the Write Mask Generator
44 and Write Address Generator
41. Read operations retrieve the stored data from both sections of memory array
43 from a location indicated by Read Address Generator
42.
[0050] With reference to Figure 8A, an alternative embodiment of the invention is shown
wherein bi-directional data buses are used for writing data to the array
43 and reading data therefrom, in contrast with the dedicated unidirectional buses used
in the implementation of Figure 2.
[0051] In Figure 8B, a unified write/read address generator 49 is used to generate both
read and write memory locations and a read/write indicator for indicating whether
the generated address refers to a write location or a read location.
[0052] In all other respects the embodiments of Figures 8A and 8B operate similarly to the
embodiment of Figure 2.
[0053] In summary, there is disclosed a method of digital image storage utilizing a number
of image storage memories, utilizing separate and independent write and read controls
to the storage memories, utilizing write masking to selectively write to the storage
memories, utilizing full or partial read from the storage memories to simultaneously
access corresponding image data from multiple images, while permitting a non-integral
number of image delays between input and output.
[0054] While the method and apparatus of the present invention have been summarized and
explained by an illustrative application, it will be readily apparent to those skilled
in the art that many widely varying embodiments are within the scope of the present
invention, and that the examples presented herein are by way of illustration only
and should not be construed as limiting the scope of this invention.
1. A method of storing and retrieving successive fields of digital image data to and
from a memory array (43) which is partitioned into at least two sections (A, B),
characterized by the steps of:
alternately storing said digital image data representing said successive fields in
respective ones of said at least two sections (A, B) of said memory array (43) while
inhibiting storage of said input image data in each other one of said at least two
sections (A, B); and
concurrently retrieving previously stored digital image data representing prior successive
fields simultaneously from at least one of said sections (A, B) of said memory array
(43).
2. The method of claim 1,
characterized in that each said step of alternately storing said digital image data representing said successive
fields in respective ones of said at least two sections (A, B) of said memory array
(43) while inhibiting storage of said input image data in each other one of said at
least two sections (A, B) further comprises the steps of:
a) actuating a write pointer (W) to generate successive write addresses to said memory
array (43) indicating locations where said digital image data is to be stored in one
of said at least two sections (A, B);
b) generating at least one control signal for inhibiting writing to each said other
one of said at least two sections (A, B) of said memory array (43), so that said previously
stored digital image data within each said other one of said at least two sections
of said memory array (43) is not overwritten;
c) successively writing said digital image data into said successive write addresses
in accordance with steps a) and b); and
d) resetting said write pointer (W) to a predetermined initial one of said write addresses.
3. The method of claim 2, characterized in that said at least one control signal comprises at least one write mask.
4. The method of claim 2, characterized in that said control signal comprises at least one array enable signal.
5. The method of any of claims 1 to 4,
characterized in that each said step of concurrently retrieving previously stored digital image data representing
prior successive fields simultaneously from said sections (A, B) of said memory array
(43) further comprises the steps of:
a) actuating a read pointer (R) to generate successive read addresses to said memory
array (43) indicating locations where said previously stored digital image data is
to be retrieved simultaneously from said sections (A, B) of said memory array (43);
b) successively reading said previously stored digital image data from said successive
read addresses in accordance with step a); and
c) setting said read pointer (R) to a predetermined one of said read addresses where
further previously stored digital image data is to be retrieved.
6. The method of any of claims 1 to 5, characterized by the step of further retrieving said previously stored digital image data during periods
of time when data is not being stored in said memory array (43) for purposes of additional
image data analysis.
7. The method of any of claims 2 to 6, characterized by the step of actuating said write pointer (W) to generate further successive write
addresses without prior resetting of said write pointer (W) in the event that said
previously stored image data in either said one or said other one of said sections
(A, B) of said memory array (43) is not to be overwritten, such that both said digital
image data and said previously stored digital image data are retained in said memory
array (43).
8. The method according to claim 1, characterized in that non-identical and non-similar ones of said digital image data representing non-identical
and non-similar ones of said successive fields in respective ones of said at least
two sections (A, B) of said memory array (43) are stored while inhibiting storage
of said non-identical and non-similar ones of said input image data in each other
one of said at least two sections (A, B) and inhibiting storage of similar and identical
ones of said digital image data representing similar and identical ones of said successive
fields.
9. Apparatus for storing and retrieving digital image data,
characterized by:
a) memory array means (43) which is partitioned into at least two sections (A, B);
b) write address generator means (41; 49) for generating successive write pointers
(W) for storing new input image data in successive addresses in a predetermined one
of said at least two sections (A, B) of said memory array means (43);
c) write mask generator means (44) for generating a write mask which inhibits writing
to sections (A, B) of the memory array means (43) at said successive addresses other
than said predetermined one of said at least two sections (A, B), so that stored data
from other images at said successive addresses is not overwritten; and
d) read address generator means (42; 49) for generating successive read pointers (R)
concurrently with the storage of said new input image data into said memory means
(43) for retrieving said data therefrom.
10. The apparatus of claim 9, characterized in that said memory array means (43) comprises multiple discrete memory arrays and said write
mask generator means (44) comprises circuitry for generating said write mask in the
form of array enable signals for selectively enabling said multiple discrete memory
arrays.
11. The apparatus of claim 9 or 10, characterized in that said write mask generator (44) is integrated within said memory array means (43).
12. The apparatus of any of claims 9 to 11, characterized by a single bi-directional data bus for both said storing and said retrieving of said
data to and from said memory array means (43).
13. The apparatus of any of claims 9 to 12, characterized in that said write address generator means and said read address generator means are incorporated
in a single unified address generator (49) for generating address signals and wherein
said memory array means (43) further includes a single unified address input for receiving
said address signals from said unified address generator (49) and an additional input
for receiving a signal from said unified address generator (49) indicative of whether
individual ones of said addresses correspond to write locations or read locations.
14. Computer program product comprising computer readable instructions for performing
the method according to one of claims 1 to 8.
1. Verfahren zum Speichern und Rückgewinnen von aufeinander folgenden Feldern von digitalen
Bilddaten auf ein und von einem Speicher-Array (43), das in wenigstens zwei Sektionen
(A, B) partitioniert ist,
gekennzeichnet durch die folgenden Schritte:
abwechselndes Speichern der genannten digitalen Bilddaten, die die genannten aufeinander
folgenden Felder repräsentieren, in jeweilige der genannten wenigstens zwei Sektionen
(A, B) des genannten Speicher-Array (43), während die Speicherung der genannten Eingangsbilddaten
jeweils in der anderen der genannten wenigstens zwei Sektionen (A, B) gesperrt wird;
und
gleichzeitiges Abrufen von zuvor gespeicherten digitalen Bilddaten, die vorherige
aufeinander folgende Felder repräsentieren, von wenigstens einer der genannten Sektionen
(A, B) des genannten Speicher-Array (43).
2. Verfahren nach Anspruch 1,
dadurch gekennzeichnet, dass jeder genannte Schritt des abwechselnden Speicherns der genannten digitalen Bilddaten,
die die genannten aufeinander folgenden Felder repräsentieren, in jeweiligen der genannten
wenigstens zwei Sektionen (A, B) des genannten Speicher-Array (43), während die Speicherung
der genannten Eingangsbilddaten jeweils in einer anderen der genannten wenigstens
zwei Sektionen (A, B) gesperrt wird, ferner die folgenden Schritte beinhaltet:
a) Betätigen eines Schreibzeigers (W) zum Erzeugen von aufeinander folgenden Schreibadressen
auf das genannte Speicher-Array (43), die Orte anzeigen, an denen die genannten digitalen
Bilddaten in einer der genannten wenigstens zwei Sektionen (A, B) gespeichert werden
sollen;
b) Erzeugen wenigstens eines Steuersignals zum Sperren des Schreibens jeweils auf
die genannte andere der genannten wenigstens zwei Sektionen (A, B) des genannten Speicher-Array
(43), so dass die genannten zuvor gespeicherten digitalen Bilddaten jeweils in der
genannten anderen der genannten wenigstens zwei Sektionen des genannten Speicher-Array
(43) nicht überschrieben werden;
c) aufeinander folgendes Schreiben der genannten digitalen Bilddaten in die genannten
aufeinander folgenden Schreibadressen gemäß den Schritten a) und b); und
d) Zurücksetzen des genannten Schreibzeigers (W) auf eine vorbestimmte erste der genannten
Schreibadressen.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass das genannte wenigstens eine Steuersignal wenigstens eine Schreibmaske umfasst.
4. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass das genannte Steuersignal wenigstens ein Array-Enable-Signal umfasst.
5. Verfahren nach einem der Ansprüche 1 bis 4,
dadurch gekennzeichnet, dass jeder genannte Schritt des gleichzeitigen Abrufens von zuvor gespeicherten digitalen
Bilddaten, die vorherige aufeinander folgende Felder repräsentieren, von den genannten
Sektionen (A, B) des genannten Speicher-Array (43) ferner die folgenden Schritte beinhaltet:
a) Aktivieren eines Lesezeigers (R) zum Erzeugen von aufeinander folgenden Leseadressen
zu dem genannten Speicher-Array (43), die Orte anzeigen, an denen die genannten zuvor
gespeicherten digitalen Bilddaten aus den genannten Sektionen (A, B) des genannten
Speicher-Array (43) abgerufen werden sollen;
b) aufeinander folgendes Lesen der genannten zuvor gespeicherten digitalen Bilddaten
von den genannten aufeinander folgenden Leseadressen gemäß Schritt a); und
c) Setzen des genannten Lesezeigers (R) auf eine vorbestimmte eine der genannten Leseadressen,
wo weitere zuvor gespeicherte digitale Bilddaten abgerufen werden sollen.
6. Verfahren nach einem der Ansprüche 1 bis 5, gekennzeichnet durch den Schritt des weiteren Abrufens der genannten zuvor gespeicherten digitalen Bilddaten
während Zeitperioden, in denen Daten nicht in dem genannten Speicher-Array (43) gespeichert
werden, zwecks einer zusätzlichen Bilddatenanalyse.
7. Verfahren nach einem der Ansprüche 2 bis 6, gekennzeichnet durch den Schritt des Aktivierens des genannten Schreibzeigers (W) zum Erzeugen weiterer
aufeinander folgender Schreibadressen ohne vorheriges Zurücksetzen des genannten Schreibzeigers
(W), falls die genannten zuvor gespeicherten Bilddaten in der genannten einen oder
der genannten anderen der genannten Sektionen (A, B) des genannten Speicher-Array
(43) nicht überschrieben werden soll, so dass sowohl die digitalen Bilddaten als auch
die genannten zuvor gespeicherten digitalen Bilddaten in dem genannten Speicher-Array
(43) bleiben.
8. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass nicht identische und nicht ähnliche der genannten digitalen Bilddaten, die nicht
identische und nicht ähnliche der genannten aufeinander folgenden Felder repräsentieren,
in jeweiligen der genannten wenigstens zwei Sektionen (A, B) des genannten Speicher-Array
(43) gespeichert werden, während die Speicherung der genannten nicht identischen und
nicht ähnlichen der genannten Eingangsbilddaten jeweils in der anderen der genannten
wenigstens zwei Sektionen (A, B) gesperrt wird und die Speicherung von ähnlichen und
identischen der genannten digitalen Bilddaten, die ähnlichen und identischen der genannten
aufeinander folgenden Felder repräsentieren, gesperrt wird.
9. Vorrichtung zum Speichern und Abrufen von digitalen Bilddaten,
gekennzeichnet durch:
a) Speicher-Array-Mittel (43), die in wenigstens zwei Sektionen (A, B) partitioniert
sind;
b) Schreibadressgeneratormittel (41; 49) zum Erzeugen von aufeinander folgenden Schreibzeigern
(W) zum Speichern neuer Eingangsbilddaten in aufeinander folgenden Adressen in einer
vorbestimmten einen der genannten wenigstens zwei Sektionen (A, B) des genannten Speicher-Array-Mittels
(43);
c) Schreibmaskengeneratormittel (44) zum Erzeugen einer Schreibmaske, die das Schreiben
auf Sektionen (A, B) des Speicher-Array-Mittels (43) an anderen der genannten aufeinander
folgenden Adressen als den genannten vorbestimmten der genannten wenigstens zwei Sektionen
(A, B) sperrt, so dass gespeicherte Daten von anderen Bildern an den genannten aufeinander
folgenden Adressen nicht überschrieben werden; und
d) Leseadressgeneratormittel (42; 49) zum Erzeugen von aufeinander folgenden Lesezeigern
(R) gleichzeitig mit dem Speichern der genannten neuen Eingangsbilddaten in die genannten
Speichermittel (43) zum Abrufen der genannten Daten daraus.
10. Vorrichtung nach Anspruch 9, dadurch gekennzeichnet, dass das Speicher-Array-Mittel (43) mehrere diskrete Speicher-Arrays umfasst und das genannte
Schreibmaskengeneratormittel (44) einen Schaltkomplex zum Erzeugen der genannten Schreibmaske
in Form von Array-Enable-Signalen zum selektiven Freigeben der mehreren diskreten
Speicher-Arrays umfasst.
11. Vorrichtung nach Anspruch 9 oder 10, dadurch gekennzeichnet, dass der genannte Schreibmaskengenerator (44) in dem genannten Speicher-Array-Mittel (43)
integriert ist.
12. Vorrichtung nach einem der Ansprüche 9 bis 11, gekennzeichnet durch einen einzigen bidirektionalen Datenbus sowohl für das genannte Speichern als auch
das genannte Abrufen der genannten Daten auf das und von dem genannte(n) Speicher-Array-Mittel
(43).
13. Vorrichtung nach einem der Ansprüche 9 bis 12, dadurch gekennzeichnet, dass das genannte Schreibadressgeneratormittel und das genannte Leseadressgeneratormittel
in einem einzigen vereinheitlichten Adressgenerator (49) zum Erzeugen von Adresssignalen
integriert sind, und wobei das genannte Speicher-Array-Mittel (43) ferner einen einzigen
vereinheitlichten Adresseingang zum Empfangen der genannten Adresssignale von dem
genannten vereinheitlichten Adressgenerator (49) und einen zusätzlichen Eingang zum
Empfangen eines Signals von dem genannten vereinheitlichten Adressgenerator (49) beinhaltet,
der anzeigt, ob einzelne der genannten Adressen Schreiborten oder Leseorten entsprechen.
14. Computerprogrammprodukt, das rechnerlesbare Befehle zum Ausführen des Verfahrens nach
einem der Ansprüche 1 bis 8 umfasst.
1. Procédé de mémorisation et de récupération de champs successifs de données d'images
numériques dans et en provenance d'une matrice mémoire (43) qui est segmentée en au
moins deux sections (A, B),
caractérisé par les étapes consistant à :
mémoriser tour à tour lesdites données d'images numériques représentant lesdits champs
successifs dans des sections respectives desdites au moins deux sections (A, B) de
ladite matrice mémoire (43) tout en inhibant la mémorisation desdites données d'images
d'entrée dans chaque autre section desdites au moins deux sections (A, B) ; et
récupérer en parallèle les données d'images numériques mémorisées précédemment représentant
des champs successifs précédents de manière simultanée en provenance d'au moins l'une
desdites sections (A, B) de ladite matrice mémoire (43).
2. Procédé selon la revendication 1,
caractérisé en ce que chaque dite étape consistant à mémoriser tour à tour lesdites données d'images numériques
représentant lesdits champs successifs dans des sections respectives desdites au moins
deux sections (A, B) de ladite matrice mémoire (43) tout en inhibant la mémorisation
desdites données d'images d'entrée dans chaque autre section desdites au moins deux
sections (A, B) comporte par ailleurs les étapes consistant à :
a) actionner un pointeur d'écriture (W) permettant de générer des adresses d'écriture
successives dans ladite matrice mémoire (43) pour indiquer des emplacements où lesdites
données d'images numériques doivent être mémorisées dans l'une desdites au moins deux
sections (A, B) ;
b) générer au moins un signal de commande permettant d'inhiber l'écriture dans chaque
dite autre section desdites au moins deux sections (A, B) de ladite matrice mémoire
(43), de sorte que lesdites données d'images numériques mémorisées précédemment à
l'intérieur de chaque dite autre section desdites au moins deux sections de ladite
matrice mémoire (43) ne sont pas écrasées ;
c) écrire de manière successive lesdites données d'images numériques dans lesdites
adresses d'écriture successives selon les étapes a) et b) ; et
d) réinitialiser ledit pointeur d'écriture (W) sur une adresse initiale prédéterminée
desdites adresses d'écriture.
3. Procédé selon la revendication 2, caractérisé en ce que ledit au moins un signal de commande comporte au moins un masque d'écriture.
4. Procédé selon la revendication 2, caractérisé en ce que ledit signal de commande comporte au moins un signal d'activation de matrice.
5. Procédé selon l'une quelconque des revendications 1 à 4,
caractérisé en ce que chaque dite étape consistant à récupérer en parallèle des données d'images numériques
mémorisées précédemment représentant les champs successifs précédents de manière simultanée
en provenance desdites sections (A, B) de ladite matrice mémoire (43) comporte par
ailleurs les étapes consistant à :
a) actionner un pointeur de lecture (R) permettant de générer des adresses de lecture
successives dans ladite matrice mémoire (43) pour indiquer des emplacements où lesdites
données d'images numériques précédemment mémorisées doivent être récupérées de manière
simultanée en provenance desdites sections (A, B) de ladite matrice mémoire (43) ;
b) lire de manière successive lesdites données d'images numériques mémorisées précédemment
en provenance desdites adresses de lecture successives selon l'étape a) ; et
c) initialiser ledit pointeur de lecture (R) sur une adresse prédéterminée desdites
adresses de lecture où d'autres données d'images numériques précédemment mémorisées
doivent être récupérées.
6. Procédé selon l'une quelconque des revendications 1 à 5, caractérisé par l'étape consistant à récupérer par ailleurs lesdites données d'images numériques
mémorisées précédemment au cours de périodes de temps pendant lesquelles des données
ne sont pas mémorisées dans ladite matrice mémoire (43) à des fins d'analyse de données
d'images supplémentaires.
7. Procédé selon l'une quelconque des revendications 2 à 6, caractérisé par l'étape consistant à actionner ledit pointeur d'écriture (W) permettant de générer
des adresses d'écriture successives supplémentaires sans réinitialisation précédente
dudit pointeur d'écriture (W) au cas où lesdites données d'images mémorisées précédemment
dans l'une ou l'autre de ladite une section ou de ladite une autre section desdites
sections (A, B) de ladite matrice mémoire (43) ne doivent pas être écrasées, de sorte
qu'à la fois lesdites données d'images numériques et lesdites données d'images numériques
mémorisées précédemment sont retenues dans ladite matrice mémoire (43).
8. Procédé selon la revendication 1, caractérisé en ce que des données non identiques et non similaires desdites données d'images numériques
représentant des champs non identiques et non similaires desdits champs successifs
dans des sections respectives desdites au moins deux sections (A, B) de ladite matrice
mémoire (43) sont mémorisées tout en inhibant la mémorisation desdites données non
identiques et non similaires desdites données d'images d'entrée dans chaque autre
section desdites au moins deux sections (A, B) et tout en inhibant la mémorisation
de données similaires et identiques desdites données d'images numériques représentant
des champs similaires et identiques desdits champs successifs.
9. Appareil de mémorisation et de récupération de données d'images numériques,
caractérisé par :
a) un moyen de matrice mémoire (43) qui est segmenté en au moins deux sections (A,
B) ;
b) un moyen de génération d'adresses d'écriture (41 ; 49) permettant de générer des
pointeurs d'écriture successifs (W) permettant de mémoriser de nouvelles données d'images
d'entrée dans des adresses successives dans une section prédéterminée desdites au
moins deux sections (A, B) dudit moyen de matrice mémoire (43) ;
c) un moyen de génération de masque d'écriture (44) permettant de générer un masque
d'écriture qui inhibe l'écriture dans les sections (A, B) du moyen de matrice mémoire
(43) au niveau desdites adresses successives autre que ladite section prédéterminée
desdites au moins deux sections (A, B), de sorte que les données mémorisées provenant
d'autres images au niveau desdites adresses successives ne sont pas écrasées ; et
d) un moyen de génération d'adresses de lecture (42 ; 49) permettant de générer des
pointeurs de lecture successifs (R) en parallèle à la mémorisation desdites nouvelles
données d'images d'entrée dans ledit moyen de mémoire (43) afin de récupérer lesdites
données en provenance de celui-ci.
10. Appareil selon la revendication 9, caractérisé en ce que ledit moyen de matrice mémoire (43) comporte de multiples matrices mémoire discrètes
et ledit moyen de génération de masque d'écriture (44) comporte un ensemble de circuits
pour générer ledit masque d'écriture sous la forme de signaux d'activation de matrice
pour activer de manière sélective lesdites multiples matrices mémoire discrètes.
11. Appareil selon la revendication 9 ou 10, caractérisé en ce que ledit générateur de masque d'écriture (44) est intégré dans ledit moyen de matrice
mémoire (43).
12. Appareil selon l'une quelconque des revendications 9 à 11, caractérisé par un seul bus de données bidirectionnel pour à la fois ladite mémorisation et ladite
récupération desdites données dans et en provenance dudit moyen de matrice mémoire
(43).
13. Appareil selon l'une quelconque des revendications 9 à 12, caractérisé en ce que ledit moyen de génération d'adresses d'écriture et ledit moyen de génération d'adresses
de lecture sont incorporés dans un seul générateur d'adresses d'unification (49) afin
de générer des signaux d'adresse et dans lequel ledit moyen de matrice mémoire (43)
comprend par ailleurs une seule entrée d'adresses d'unification afin de recevoir lesdits
signaux d'adresse en provenance dudit générateur d'adresses d'unification (49) et
une entrée supplémentaire afin de recevoir un signal en provenance dudit générateur
d'adresses d'unification (49) ayant pour objet d'indiquer si des adresses individuelles
desdites adresses correspondent à des emplacements d'écriture ou à des emplacements
de lecture.
14. Produit de programme informatique comportant des instructions lisibles par ordinateur
pour exécuter le procédé selon l'une quelconque des revendications 1 à 8.