-
Die
vorliegende Erfindung bezieht sich auf eine Datenspeichervorrichtung,
um Daten in einem Speicher zu speichern, der aus mehreren Speicherbänken zusammengesetzt
ist und um simultanes Lesen einer gewünschten Anzahl von Datenstücken durchzuführen, eine
Datenspeicher-Steuervorrichtung zur Verwendung damit, ein Datenspeicher-Steuerverfahren
zur Verwendung damit, und ein Datenspeicher-Steuerprogramm zur Verwendung
damit.
-
Wie
in 20 gezeigt ist, ist ein Halbleiterspeicher konfiguriert,
um auf eine Speicherzelle MC zuzugreifen, wobei eine Wortleitung
WL und eine Bitleitung BL speziell angegeben werden, so dass Daten,
welche in der Speicherzelle MC an einer Position gespeichert sind,
wo die aktivierte eine Wortleitung und die Bitleitung sich schneiden,
gelesen werden.
-
Bei
dem Halbleiterspeicher, der einen derartigen Aufbau hat, werden,
da die gleiche Bitleitung und Daten von mehreren Wortleitungen anteilig
genutzt werden, wenn, wie in 21 gezeigt
ist, mehrere Wortleitungen WL1 und WL2 einzeln angegeben werden,
die Daten, welche auf der Bitleitung ausgegeben werden, zerstört (gelöscht). Aus
diesem Grund kann ein simultaner Zugriff auf Daten unterschiedlicher
Wortleitungen nicht durchgeführt
werden.
-
Es
ist möglich,
Daten von unabhängigen Speicherbänken simultan
zu lesen. Wie in 22 gezeigt ist, kann als Ergebnis
der Unterteilung des Speichers in mehrere Speicherbänke BK1
bis BKn und des Spezifizierens einer unterschiedlichen Adresse für jede Speicherbank
simultaner Zugriff auf Daten mehrerer Wortleitungen durchgeführt werden.
Jedoch kann ein simultaner Zugriff auf Daten unterschiedlicher Wortleitungen
innerhalb der Speicherbank nicht ausgeführt werden. Das heißt, dass
Daten, welche simultan gelesen werden können, in der gleichen Wortleitung
von jeder Bank gespeichert werden, und Daten, welche in unterschiedlichen
Wortleitungen in der gleichen Speicherbank gespeichert sind, nicht
simultan gelesen werden können.
-
Hier
ist die Speicherbank ein Bereich, der eine feste Kapazität hat, welche
als eine Einheit verwendet wird, um den Speicher zu verwalten. Daher treten
Zugriffsdatenkonflikte zwischen unabhängigen Speicherbänken nicht
auf. Der Speicher besteht aus einer oder mehreren Speicherbänken.
-
Bisher
wird durch Erkennen einer spezifischen Datenanordnung, welche in
Eingangsdaten enthalten ist, beispielsweise eine Verarbeitung, beispielsweise
eine Mustererkennung von Bilddaten und deren Bewegungsermittlung,
durchgeführt.
-
Beispielsweise
sind ein Pufferspeicher, der in der Lage ist, Bilddaten für mehrere
Leitungen zu speichern und diese in Pixeleinheiten auszugeben, ein
Datenprozessor, der mehrere Prozessorelemente aufweist, der in der
Lage ist, Daten zu verarbeiten, welche eine Breite von mehreren
Bits haben und in der Lage ist, Datenverarbeitung gleichzeitig durch mehrere
Prozessorelemente durchzuführen,
und ein Steuerinformationsspeicher, um zusammengehörige Referenzdaten
und Steuerdaten zu speichern, vorgesehen. Unter Verwendung eines
Schwellenwerts digitalisiert jedes Prozessorelement des Datenprozessors
eine Bilddatengruppe in einer Matrix mit dem Pixel von Interesse,
welches die Mitte ist, welches ihrem eigenen Element zugeordnet
ist, innerhalb der Bilddaten, welche durch den Pufferspeicher ausgegeben
werden, in Objektdaten, welche mit einer Bitbreite einer seriellen
Anordnung unterteilt sind, welche durch das Prozessorelement verarbeitet
werden können.
Jedes Prozessorelement bestimmt dann, ob die Daten mit Referenzdaten
zusammenpassen oder nicht, welche mit dem gleichen Format im Steuerinformationsspeicher
existieren (siehe beispielsweise japanische ungeprüfte Patentanmeldungsveröffentlichung
Nr. 2003-203236).
-
Auf
dem Gebiet der Bewegtbildverarbeitung wird die Bewegung, d.h., die
Bewegungsrichtung und die Größe (oder
die Geschwindigkeit) eines Objekts im Bild, welche in Bezug auf
die Zeit unterschiedlich ist, verwendet. Beispielsweise wird die
Bewegung bei der Bewegungskompensations-Interrahmencodierung bei
hochwirksamem Codieren von Bildern und bei Parametersteuerung unter
Verwendung einer Fernsehrausch-Reduktionsvorrichtung durch ein Interrahmen-Zeitbereichsfilter
verwendet. Als Bewegungsermittlungsverfahren zum Ermitteln einer
Bewegung ist ein Blockvergleichsverfahren bekannt.
-
Bei
einem Bewegungsermittlungsverfahren zum Ermitteln der Bewegung innerhalb
eines Bildsignals hat die Anmelderin der vorliegenden Erfindung vor
kurzem ein Bewegungsermittlungsverfahren vorgeschlagen, welches
zwei Schritte aufweist, d.h., (a) einen Schritt zum Erzeugen einer
Integrationswertetabelle unter Verwendung eines Vergleichsverfahrens
für jede
gesamte Maske oder jeden vergleichsweise großen Block, bei dem eine Maske
in mehrere Bereiche unterteilt ist, und zum Extrahieren eines oder
mehrerer Kandidatenvektoren für
die gesamte Maske oder für
jeden vergleichsweise großen
Block, bei dem eine Maske in mehrere Bereiche unter Verwendung der
Integrationswertetabelle unterteilt wird, und (b) einen Schritt
zum Durchführen
des Vergleichs unter Verwendung des Kandidatenvektors und zum Bestimmen
eines Bewegungsvektors für
jedes Pixel oder eines vergleichsweise kleinen Blocks. Bei diesem
zweistufigen Bewegungsermittlungsverfahren muss in jedem der Prozesse
der beiden Schritte, d.h., der repräsentativen Punktvergleich und
die Vektorzuordnung, bei denen die Bildbewegungsermittlung durch
repräsentatives
Punktvergleichen in dem zweistufigen Verfahren durchgeführt wird,
die gewünschte
Anzahl von Stücken
von Pixeldaten im Bild simultan gelesen werden (siehe beispielsweise
japanische ungeprüfte
Patentanmeldungsveröffentlichung
Nr. 2001-61152).
-
Bei
einem Halbleiterspeicher ist, wenn jede Speicherbank lediglich durch
eine Wortleitung gebildet wird, simultanes Lesen von Daten möglich, ohne dass
die Daten im Gegensatz zu dem wie oben beschrieben zerstört werden.
Wenn jedoch die Datenmenge, die zu speichern ist, enorm wird, wird
die Anzahl von Speicherbänken
vergrößert, welches
eine Belastung in Bezug auf Hardware zur Folge hat, die nicht praktikabel
ist.
-
Daher
sind bei der herkömmlichen
Technologie ein Puffer und ein Cache zum Le sen und zum vorübergehenden
Speichern von Daten vorgesehen, so dass eine gewünschte Anzahl von Datenstücken mehrere
Male in Bezug auf die Zeit unterteilt werden und diese vorübergehend
im Puffer und im Cache gespeichert werden und daraus gelesen werden.
-
Wenn
jedoch die gewünschte
Anzahl von Datenstücken
ansteigt und Dateneingabe/Ausgabe mit einer höheren Geschwindigkeit durchgeführt wird,
wird der Datenleseprozess in Bezug auf die Zeit verzögert. Um
sich auf dieses Problem zu richten, kann die Größe des temporären Pufferspeichers
und des Cache vergrößert werden,
wobei jedoch, wenn der Bereich größer wird, die Hardware-Erfordernisse ansteigen.
-
Eine
Halbleiterspeichereinrichtung ist in der US-A 6 134 169 beschrieben,
bei der ein Auffrischbetrieb simultan mit einem Lesebetrieb auf
der gleichen Speicherbank durchgeführt wird.
-
Ein
Farbbildspeicher ist in der JP-A 02 051781 beschrieben, bei dem
die RGB-Farbkomponenten
von Pixeln getrennt werden und in entsprechenden separaten Speicherbänken gespeichert werden.
Wenn die Pixel nachfolgend aus den Speicherbänken gelesen werden, wird simultaner Zugriff
auf die RGB-Farbwerte möglich.
-
Folglich
suchen im Hinblick auf die oben beschriebenen herkömmlichen
Probleme Ausführungsformen
der vorliegenden Erfindung, eine Datenspeichervorrichtung bereitzustellen,
die in der Lage ist, alle Daten in einem Speicher zu speichern,
der aus mehreren Speicherbänken
besteht, ohne zu verursachen, dass Hardware-Erfordernisse ansteigen,
und der in der Lage ist, simultanes Lesen einer gewünschten
Anzahl von Datenstücken
durchzuführen, eine
Datenspeicher-Steuervorrichtung zur Verwendung damit, ein Datenspeicher-Steuerverfahren
zur Verwendung damit, und ein Datenspeicher-Steuerprogramm zur Verwendung
damit.
-
Entsprechende
Gesichtspunkte und Merkmale der vorliegenden Erfindung sind in den
Ansprüchen
definiert. Bei einer Ausführungsform
ist eine Datenspeichervorrichtung vorgesehen, welche aufweist: einen
Speicher, der aus mehreren Speicherbänken besteht; eine Datenunterteilungs-Bestimmungseinrichtung
zum Bestimmen des Bereichs, in welchem eine gewünschte Anzahl von Datenstücken, die
es simultan zu lesen sind, als Datenunterteilungseinheiten existieren,
auf Basis eines Ermittlungsmusters; und eine Speichersteuereinrichtung zum
Steuern des Schreibens/Lesens von Daten zu und von dem Speicher,
wobei die Speichersteuereinrichtung alle Daten in mehrere Datenbereiche
auf Basis der Unterteilungseinheiten von der Datenunterteilungs-Bestimmungseinrichtung
unterteilt, die Daten in jedem Bereich unter den mehreren Speicherbänken zuteilt
und die Daten in einer Wortleitung in jedem der Speicherbänke speichert,
so dass die Steuerung in einer Weise durchgeführt wird, dass mehrere Datenstücke, die
simultan zu lesen sind, in jedem der Bereiche periodisch von allen
den Daten gelesen werden, welche im Speicher angeeordnet sind, wobei
einige der Daten in jedem der Bereiche sequentiell durch die Daten
des benachbarten Bereichs ersetzt werden oder umgeschrieben werden,
und mehrere Datenstücke,
welche simultan zu lesen sind, gelesen werden.
-
Bei
einer weiteren Ausführungsform
ist eine Datenspeicher-Steuervorrichtung vorgesehen, welche aufweist:
Eine
Datenunterteilungs-Bestimmungseinrichtung zum Bestimmen des Bereichs,
in welchem eine gewünschte
Anzahl von Datenstücken,
welche simultan zu lesen sind, als Datenunterteilungseinheiten existieren,
auf Basis eines Ermittlungsmusters; und eine Speichersteuereinrichtung
zum Steuern des Schreibens/Lesens von Daten zu dem Speicher und
aus diesem, der aus mehreren Speicherbänken besteht, wobei die Speichersteuereinrichtung
alle Daten in mehrere Datenbereiche unterteilt, auf Basis der Unterteilungseinheiten
von der Datenunterteilungs-Bestimmungseinrichtung, die Daten in
jedem Bereich unter den mehreren Speicherbänken zuordnet und die Daten
in einer Wortleitung in jedem der Speicherbänke speichert, so dass die
Steuerung in einer Weise durchgeführt wird, dass mehrere Datenstücke, welche
simultan zu lesen sind, in jedem der Bereiche periodisch von allen
den Daten gelesen werden, welche im Speicher angeordnet sind, wobei
einige der Daten in jedem der Bereiche sequentiell durch die Daten
des benachbarten Bereichs ersetzt oder umgeschrieben werden, und
mehrere Datenstücke,
welche simultan zu lesen sind, anschließend gelesen werden.
-
Bei
einer weiteren Ausführungsform
ist ein Datenspeicher-Steuerverfahren vorgesehen, welches folgende
Schritte aufweist: Unterteilen aller Daten in mehrere Datenbereiche
unter Verwendung des Bereichs, in welchem eine gewünschte Anzahl
von Datenstücken,
die simultan zu lesen sind, als Unterteilungseinheiten existieren,
wenn alle Daten in einem Speicher gespeichert sind, der aus mehreren Speicherbänken zusammengesetzt
ist; Zuordnen der Daten in jedem Bereich unter den mehreren Speicherbänken; Speichern
der Daten in einer Wortleitung in jeder Speicherbank; periodisches
Lesen von mehreren Datenstücken,
die simultan zu lesen sind, in jedem der Bereiche von allen Daten,
welche im Speicher angeordnet sind; sequentielles Ersetzen oder
Umschreiben einige der Daten in jedem der Bereiche durch die Daten
innerhalb des benachbarten Bereichs; und Lesen von mehreren Datenstücken, welche
simultan anschließend
zu lesen sind.
-
Bei
einer weiteren Ausführungsform
ist ein Datenspeicher-Steuerprogramm vorgesehen, um es einem Computer
zu ermöglichen,
die Datenspeichersteuerung durchzuführen, um alle Daten in einem Speicher
zu speichern, der aus mehreren Speicherbänken zusammengesetzt ist, und
simultan eine gewünschte
Anzahl von Datenstücken
zu lesen, wobei das Datenspeicher-Steuerprogramm aufweist: Unterteilen
aller Daten in mehrere Datenbereiche unter Verwendung des Bereichs,
in welchem eine gewünschte
Anzahl von Datenstücken,
welche simultan zu lesen sind, als Unterteilungseinheiten existieren, wenn
alle Daten im Speicher gespeichert sind, der aus mehreren Speicherbänken zusammengesetzt ist;
Zuteilen der Daten in jedem Bereich unter den mehreren Speicherbänken; Speichern
der Daten in einer Wortleitung in jeder Speicherbank; periodisches
Lesen von mehreren Datenstücken,
welche simultan zu lesen sind, in jedem der Bereiche von allen den
Daten, welche im Speicher angeordnet sind; sequentielles Ersetzen
oder Umschreiben einige der Daten in jedem der Bereiche durch die
Daten innerhalb des benachbarten Bereichs; und Lesen von mehreren
Datenstücken,
welche anschließend
simultan zu lesen sind.
-
Bei
den Ausführungsformen
der Erfindung werden Daten in den Bereichen, in welchen eine gewünschte Anzahl
von Datenstücken
existieren, in einer Weise angeordnet, dass sie simultan lesbar
sind, und alle Daten werden auf Basis der Periode des obigen Bereichs
unterteilt und periodisch angeordnet. Die Daten in den Bereichen,
in denen simultanes Lesen in der anfänglichen Anordnung möglich ist,
werden periodisch gelesen, und wechselseitige Operationen werden
sequentiell durchgeführt.
Dies ermöglicht
es, eine gewünschte
Anzahl von Datenstücken in
den gesamten Daten simultan zu lesen.
-
Ausführungsformen
der Erfindung werden anschließend
lediglich als Beispiel mit Hilfe der beiliegenden Zeichnungen beschrieben,
in denen:
-
1 ein
Blockdiagramm ist, welches den Aufbau einer Datenspeichervorrichtung
nach einem Ausführungsbeispiel
der vorliegenden Erfindung zeigt;
-
2 ein
Flussdiagramm ist, welches die Prozedur zur Datenspeichersteuerung
zeigt, welche durch einen Speichersteuerabschnitt in der Datenspeichervorrichtung
durchgeführt
wird;
-
3 eine
schematische Ansicht ist, welche Positionen von mehreren Pixeldatenstücken zeigt, welche
simultan in den gesamten Bilddaten zu lesen sind;
-
4 eine
schematische Ansicht ist, welche die Verteilung von mehreren Pixeldaten
zeigt;
-
5 eine
schematische Ansicht ist, welche eine anfängliche Anordnung von Daten
in der Datenspeichervorrichtung zeigt;
-
6 eine
schematische Ansicht ist, welche den gegenseitigen Austausch und
das Überschreiben
von Daten in der Datenspeichervorrichtung zeigt;
-
7 eine
schematische Ansicht ist, welche die Datenanordnung zeigt, nachdem
die Daten untereinander ausgetauscht und überschrieben sind;
-
8 eine
schematische Ansicht, welche alle Bilddaten und mehrere Pixeldatenstücke zeigt, die
simultan zu lesen sind, in einem spezifischen Beispiel, bei dem
alle Bilddaten gespeichert sind und mehrere Pixeldatenstücke simultan
in der Datenspeichervorrichtung gelesen werden;
-
9A und 9B schematische
Ansichten sind, welche eine anfängliche
Anordnung aller Bilddaten im spezifischen Beispiel zeigen;
-
10 eine
schematische Ansicht ist, welche einen Zustand zeigt, bei dem die
Bilddaten im spezifischen Beispiel in mehrere Datenbereiche unterteilt
sind;
-
11 eine
schematische Ansicht ist, welche einen Zustand zeigt, bei dem die
unterteilten Daten in jedem Bereich im spezifischen Beispiel in
einer entsprechenden Speicherbank gespeichert sind;
-
12 eine
schematische Ansicht ist, welche mehrere Datenstücke zeigt, welche simultan
bei der anfänglichen
Anordnung gelesen werden können,
wobei alle Bilddaten in einem Speicher in dem spezifischen Beispiel
gespeichert sind;
-
13 eine
schematische Ansicht ist, welche den gegenseitigen Austausch und
das Überschreiben
von Daten in dem spezifischen Beispiel zeigt;
-
14 eine
schematische Ansicht ist, welche eine Überschreibposition in dem speziellen
Beispiel zeigt;
-
15 ein
Blockdiagramm ist, welches den Aufbau einer Bildbewegungsermittlungsvorrichtung zeigt,
für welche
die vorliegende Erfindung angewandt wird;
-
16 eine
schematische Ansicht ist, welche einen repräsentativen Punktblockvergleich
in der Bildbewegungs-Ermittlungsvorrichtung zeigt;
-
17 eine
schematische Ansicht ist, welche einen Bewegungsvektor-Ermittlungsprozess
in Einheiten von einem Pixel in der Bildbewegungs-Ermittlungsvorrichtung
zeigt;
-
18A und 18B ein
Beispiel der Verteilung von Auswertungswerten in der Bildbewegungs-Ermittlungsvorrichtung
zeigt;
-
19 ein
Beispiel einer Auswertungswertetabelle in der Bildbewegungs-Ermittlungsvorrichtung zeigt;
-
20 eine
schematische Ansicht ist, welche den Aufbau eines allgemeinen Halbleiterspeichers
zeigt;
-
21 eine
schematische Ansicht ist, welche einen Zustand zeigt, bei dem simultaner
Zugriff in dem Halbleiterspeicher nicht durchgeführt werden kann; und
-
22 die
Speicherstruktur von mehreren Speicherbänken zeigt.
-
Ausführungsformen
der vorliegenden Erfindung werden anschließend ausführlich mit Hilfe der Zeichnungen
beschrieben.
-
Die
vorliegende Erfindung wird beispielsweise durch eine in 1 gezeigte
Datenspeichervorrichtung ausgeübt.
-
Die
Datenspeichervorrichtung 100 besitzt einen Speichersteuerabschnitt 10,
zu dem Bilddaten ID geliefert werden, einen Datenunterteilungs-Bestimmungsabschnitt 20,
zu dem ein Ermittlungsmuster DP geliefert wird, einen Adressumsetzungsabschnitt 30,
einen Datenauswahlabschnitt 60, einen Adresserzeugungsabschnitt 40 zum
Erzeugen einer logischen Adresse auf Basis des Ausgangssignals des
Datenunterteilungs-Bestimmungsabschnitts 20 und des Adressumsetzungsabschnitts 30 und
zum Liefern der logischen Adresse zum Speichersteuerabschnitt 10,
und einen Speicher 50, der aus mehreren Speicherbänken besteht,
zu und von dem Pixeldaten PD durch den Speichersteuerabschnitt geschrieben
und gelesen werden, so dass die Pixeldaten PD, welche vom Speicher 50 gelesen
werden, über
den Datenauswahlabschnitt 60 ausgegeben werden.
-
In
der Datenspeichervorrichtung 100 ist der Speichersteuerabschnitt 10 beispielsweise
durch einen Mikroprozessor gebildet. Der Speichersteuerabschnitt 10 führt die
Verarbeitung zum anfänglichen Anordnen
von Daten, das gegenseitige Austauschen und das Über schreiben einiger der anfänglich angeordneten
Daten und das simultane Lesen einer gewünschten Anzahl von Datenstücken gemäß einem Datenspeicher-Steuerprogramm,
welches in einem Programmspeicher (nicht gezeigt) gespeichert ist, wie
im Flussdiagramm von 2 gezeigt ist, durch.
-
Insbesondere
ermittelt anfangs der Speichersteuerabschnitt 10 vom Datenunterteilungs-Bestimmungsabschnitt 20 den
räumlichen
Bereich mehrerer Pixeldatenstücke,
welche simultan zu lesen sind, welche durch das Ermittlungsmuster
DP gezeigt werden (Schritt S1), bestimmt den Bereich und die Periode
der Daten, welche simultan gelesen werden können (Schritt S2) und bestimmt
eine Speicherbank und eine Speicheradresse einer Wortleitung für alle Daten,
welche simultan gelesen werden (Schritt S3).
-
Anschließend bestimmt
der Speichersteuerabschnitt 10 die Schreibadresse aller
Bilddaten und schreibt die Bilddaten in den Speicher 50,
die somit anfänglich
angeordnet werden (Schritt S4).
-
Die
anfängliche
Anordnung aller Bilddaten wird anschließend beschrieben. Daten in
einem Bereich, in welchem eine gewünschte Anzahl von Pixeldatenstücken existiert,
werden in der gleichen Wortleitung jeder Speicherbank angeordnet.
Dies ermöglicht
es, simultan eine gewünschte
Anzahl von Pixeldatenstücken
zu lesen. In der ersten Speicherbank können Daten in der N-ten Wortleitung
gespeichert werden, und in der zweiten Speicherbank können Daten
in der M-ten Wortleitung gespeichert werden. Es sei angemerkt, dass
N und M gleich sein kann.
-
Anschließend werden
alle Bilddaten unter Verwendung des Bereichs, in welchem die Daten existieren,
oder eines Bereichs in dem Bereich als eine Periode unterteilt.
Die Daten, welche gemäß dem Bereich
unterteilt sind, werden in der Wortleitung jeder Speicherbank angeordnet.
Als Ergebnis können
mehrere Pixeldatenstücke,
welche in jedem Bereich existieren, simultan gelesen werden.
-
Wenn
jedoch in dieser anfänglichen
Anordnung die Daten sich über
die Bereiche erstrecken, können
mehrere Pixeldatenstücke
nicht simultan gelesen werden.
-
Daher
liest der Speichersteuerabschnitt 10 die anfänglich angeordneten
Daten aus dem Speicher 50, tauscht einige der Daten gegenseitig
aus und überschreibt
diese im Speicher 50 (Schritt S5).
-
Insbesondere
werden die Daten so umgeordnet, dass durch gegenseitigen Austausch
einiger der Daten, nachdem mehrere anfänglich angeordnete Pixeldaten
in jedem Bereich gelesen werden, die mehreren Pixeldatenstücke in dem
Bereich, die nicht simultan vorher gelesen werden konnten, simultan gelesen
werden können.
-
In
diesem Zeitpunkt werden die ursprünglichen Daten an der Stelle,
wo der wechselseitige Austausch durchgeführt wird, zum anderen Speicher oder
zu einem nicht verwendeten Bereich des Speichers verschoben, um
somit gesichert zu werden. Als Ergebnis simultan durchgeführter Speicherung
und Überschreiben,
so dass die Anfangsdaten nicht gelöscht werden, wird es möglich, eine
gewünschte
Anzahl von Pixeldatenstücken
simultan zu lesen. In Bezug auf die Ursprungsdaten an der Stelle,
wo der wechselseitige Austausch durchgeführt wird, kann ein Überschreiben
durchgeführt
werden, ohne die Daten zu sichern, wenn bekannt ist, dass die Daten in
der nachfolgenden Verarbeitung nicht notwendig sind.
-
Hier
kann der gegenseitige Austausch und die Überschreibrichtung der Daten
entweder in der vertikalen Richtung oder in der horizontalen Richtung sein,
und, nachdem diese verschoben sind, können die Daten auf die anfängliche
Anordnung wiederum zurückgebracht
werden. Der wechselseitige Austausch und die Überschreibbewegung der Verschiebung
von Daten können
stetig oder nicht stetig sein, und die Größe ist nicht beschränkt. Um
zu verhindern, dass die Daten durch Überschreiben gelöscht werden,
können
die Daten in einem nichtbenutzten Bereich des Speichers gesichert
werden, und ein nichtbenutzter Bereich, der eine geeignete Größe hat,
braucht lediglich in Abhängigkeit
von der Größe der Daten
vorgesehen werden, welche wechselseitig ausgetauscht und überschrieben
werden.
-
Bevor
der oben beschriebene Prozess des Schritts S5 durchgeführt wird,
kann die wechselseitige Austauschrichtung und die Überschreibrichtung und
der wechselseitige Austausch- und Überschreibbereich für die anfänglich angeordneten
Daten bestimmt werden (Schritt S5').
-
Danach
liest der Speichersteuerabschnitt 10 simultan mehrere Datenstücke vom
Speicher 50 (Schritt S6) und tauscht wechselseitig einige
der Daten aus und überschreibt
diese im Speicher 50 (Schritt S7). Der Prozess kehrt dann
zurück
zum Schritt S6, und die Prozesse der Schritte S6 und S7 werden wiederholt
durchgeführt.
-
Für den Speicher 50 können allgemein
bekannte Arten verwendet werden. Spezielle Beispiele umfassen SRAM,
DRAM, MRAM und FeRAM.
-
Hier
wird, wie beispielsweise in 3 gezeigt
ist, wenn alle Bilddaten als m0 × n0 gesetzt werden, angenommen,
dass N Pixeldatenstücke
YPD, die simultan zu lesen sind, existieren, und die Position in
den gesamten Bilddaten wird gesetzt als (xi, yi; 0 ≤ i < N ), wie in 4 gezeigt
ist, wobei die Verteilung der mehreren Pixeldatenstücke zu a0 × b0 (a0
= max.xi – min.xi,
b0 = max.yi – min.xi)
wird.
-
Bei
dem anfänglichen
Anordnungsprozess vom Schritt S5 wird die anfängliche Datenanordnung unter
Verwendung des Bereichs von a1 × b1
(a1 ≥ a0,
b1 ≥ b0)
als Periode durchgeführt.
-
Das
heißt,
dass, wie in 5 gezeigt ist, für die anfängliche
Datenanordnung die Daten in den gesamten Bilddaten m0 × n0 unter
Verwendung des Bereichs a1 × b1
als Periode angeordnet werden. Die Daten im Bereich a1 × b1, welche
durch Schraffierung in 5 angedeutet sind, werden in
der gleichen Wortleitung in jeder Speicherbank angeordnet, so dass
die Daten simultan gelesen werden können.
-
Danach
werden im Überschreibprozess
vom Schritt S6, wie in 6 gezeigt ist, nachdem die Daten
im Bereich a1 × b1
periodisch gelesen werden, einige der Daten (der graue Bereich in 6)
durch die Daten des benachbarten Bereichs a1 × b1 wechselseitig ausgetauscht
und überschrieben.
Der graue Bereich, der wechselseitig auszutauschen und zu überschreiben
ist, braucht lediglich der Bereich a1 × b1 oder kleiner sein.
-
Bei
der anfänglichen
Datenanordnung wird, wenn das Lesen aller Bilddaten beendet ist,
d.h., wenn der wechselseitige Austausch und das Überschreiben von Daten abgeschlossen
sind, wie in 7 gezeigt ist, die Datenanordnung
so, dass der graue Bereich in 6 von der
anfänglichen
Datenanordnung abweicht.
-
Das
heißt,
dass die Daten in dem Bereich a1 × b1, in dem lediglich der
graue Bereich abweicht, simultan gelesen werden können. In
der Anordnung von 7 können die Daten in dem Bereich
a1 × b1, der
einen grauen Bereich in 6 gegenüber der Anordnung von 5 vermindert,
simultan gelesen werden.
-
Daher
können
in den Schritte S6 und S7 durch Fortsetzen eines derartigen periodischen
Lesens und des wechselseitigen Austausches und des Überschreibens
nach dem Lesen alle Daten in dem Bereich a1 × b1 in den gesamten Bilddaten
simultan gelesen werden.
-
Anschließend wird
ein spezifisches Beispiel der Speicherung aller Bilddaten und das
simultane Lesen mehrerer Pixeldatenstücke in der Speichervorrichtung 100 angegeben.
In diesem Beispiel beträgt,
wie in 8 gezeigt ist, die Anzahl aller Bilddaten 720 × 240, die
Anzahl von Datenstücken
YPD, die zu lesen ist, beträgt
7, und die Verteilung der mehreren Datenstücke, die zu lesen sind, existiert
im Bereich 128 × 64.
-
Das
nachstehend beschriebene spezifische Beispiel ist lediglich ein
Beispiel, wobei die vorliegende Erfindung nicht auf das spezifische
Beispiel beschränkt
ist.
-
Anfänglich werden
Daten in dem Bereich 128 × 64,
in welchem ein Muster mehrerer Datenstücke, die zunächst zu
lesen sind, existiert, anfänglich
angeordnet. Hier ist ein Speicher, welcher aus 8 Speicherbänken besteht,
vorgesehen, in welchem 1024 Pixel in einer Wortleitung gespeichert
sind. Wie in 9A und 9B gezeigt
ist, ist der Bereich 128 × 64
in acht Streifen 16 × 64
unterteilt, und jeder Streifen 16 × 64 ist in einer Wortleitung
jeder Speicherbahn gespeichert. Beispielsweise ist in 9B der
Streifen ST1 in der n1-ten Wortleitung der ersten Bank gespeichert,
und der Streifen ST2 ist in der n2-ten Wortleitung der zweiten Bank
gespeichert.
-
Als
Ergebnis, da die Daten im Bereich 128 × 64, welcher sieben Datenstücke aufweist,
die zunächst
zu lesen sind, in einer Wortleitung jeder Speicherbank gespeichert
sind, ist simultanes Lesen der Daten möglich.
-
Anschließend werden,
wie in 10 gezeigt ist, unter Verwendung
dieser Periode von 128 × 64 alle
Bilddaten in Daten in Bereiche A1, A2, ... unterteilt.
-
Danach
werden, wie in 11 gezeigt ist, alle unterteilten
Daten in den Bereichen A1, A2 ... von 128 × 64 in einer Wortleitung jeder
Speicherbank ähnlich
wie oben beschrieben gespeichert.
-
Hier
sind aus Einfachheitsgründen
alle unterteilten Bilddaten als 1, 2 ... für das obere linke Ende in Richtung
auf den Boden nummeriert. Die Daten im Bereich 128 × 64 werden
in der ersten Speicherbank gespeichert, in der zweiten Speicherbank,
... in der Periode der Streifen 16 × 64 beginnend von links. In den
Wortleitungen werden, wo die Speicherung durchgeführt wird,
die Daten gemäß der Nummer
der unterteilten Daten von 128 × 64
gespeichert. In dem Beispiel, welches in 11 gezeigt
ist, werden, da die Daten im Bereich A6 existieren, die Daten in
der sechsten Wortleitung jeder Speicherbank gespeichert. Das heißt, dass
die Daten des Streifens A6_ST1 in der sechsten Wortleitung der ersten
Bank gespeichert sind, und die Daten des Streifens A6_ST2 in der
sechsten Wortleitung der zweiten Bank gespeichert sind. Ähnlich sind
die Daten des Streifens A7_ST1 in der siebten Wortleitung der ersten
Bank gespeichert, und die Daten des Streifens A7_ST2 sind in der
siebten Wortleitung der zweiten Bank gespeichert.
-
Wenn
alle Bilddaten im Speicher 50 in der oben beschriebenen
Weise gespeichert sind, können,
wie in 12 gezeigt ist, eine gewünschte Anzahl
von Datenstücken
GP1, GP2 und GP3 im Bereich von 128 × 64, der in dieser Weise unterteilt
ist, simultan gelesen werden.
-
Wenn
anschließend
die Daten sich über
die Bereiche 128 × 64
erstrecken, kann simultanes Lesen einer gewünschten Anzahl von Datenstücken nicht
durchgeführt
werden. Wenn daher jeder Bereich 128 × 64 in der anfänglichen
Anordnung gelesen wird, die in 13 gezeigt
ist, werden einige der Daten wechselseitig ausgetauscht und überschrieben.
-
Beispielsweise
werden, wie in 14 gezeigt ist, die Daten im
Bereich 128 × 1
innerhalb des Bereichs von 128 × 64
gelesen, und die Daten werden an der Position 128 × 1 im benachbarten
Bereich von 128 × 64 überschrieben.
-
In
diesem Zeitpunkt werden die ersten Daten im Bereich 128 × 1 auf
dem nicht verwendeten Bereich des Speichers 50 gespeichert,
so dass die Daten nicht gelöscht
werden. Als Ergebnis eines Wiederholens dieser Operation wird der
Bereich von 128 × 64
sequentiell verschoben, und die Daten im Bereich von 128 × 64 können simultan
gelesen werden. Dadurch kann durch Wiederholen dieser Operation eine
gewünschte
Anzahl von Datenstücken
aller Bilddaten gelesen werden.
-
Hier
werden in dem in 13 gezeigten Beispiel, nachdem
der schraffierte Bereich des Bereichs A6 gelesen ist, die Daten
im schraffierten Bereich des Bereichs A5 überschrieben. Anschließend werden, nachdem
schraffierten Bereich des Bereichs A7 gelesen ist, die Daten im
schraffierten Bereich des Bereichs A6 überschrieben. Danach wird diese
Operation wiederholt.
-
Die
vorliegende Erfindung wird beispielsweise bei einer Bildbewegungs-Ermittlungsvorrichtung 9 angewandt,
welche einen Aufbau hat, der in 15 gezeigt
ist. Natürlich
ist die Bildbewegungs-Ermittlungsvorrichtung 9 lediglich
ein Anwendungsbeispiel, und die vorliegende Erfindung kann auf die
angewandt werden, die anders ist als dieses Anwendungsbeispiel.
-
Bei
der Bildbewegungs-Ermittlungsvorrichtung 9 wird ein digitales
Videosignal einem Eingangsanschluss 1 zugeführt. Das
digitale Videosignal ist beispielsweise derart, dass ein Luminanzsignal
mit einer vorher festgelegten Frequenz abgetastet wird und die Abtastungen
(Pixel) jeweils in 8 Bits umgesetzt werden. Das digitale Videosignal
wird zu einem Repräsentativpunkt-Vergleichsverarbeitungsabschnitt 2 geliefert.
-
Der
Repräsentativpunkt-Vergleichsverarbeitungsabschnitt 2 setzt
das Bild in ein Bild um, welches aus repräsentativen Punkten zusammengesetzt ist,
wobei ein Ausdünnungsprozess
in Bezug auf das Bild des vorherigen Rahmens durchgeführt wird,
und führt
einen Vergleichsprozess zwischen dem Bild des aktuellen Rahmens
und dem Bild durch, welches aus den repräsentativen Punkten des vorherigen
Rahmens zusammengesetzt ist, in einer Weise ähnlich wie der Blockvergleich.
Die repräsentativen
Punkte sind, wie in 16 gezeigt sind, Daten, welche
jeden Block darstellen, wenn eine Maske, beispielsweise ein Bild
eines Rahmens in mehrere Blöcke
(m Pixel × n
Zeilen) unterteilt wird. Als repräsentative Punktdaten werden
der Wert des Pixels an der Mittelposition des Blocks, der Durchschnittswert
der Werte der Pixel im Block, die Zwischenwerte der Pixel im Block usw.
verwendet.
-
Der
Repräsentativpunkt-Vergleichsverarbeitungsabschnitt 2 berechnet
eine Interrahmendifferenz zwischen dem Referenzrahmenbild des aktuellen
Rahmens und des Kandidatenrahmenbilds des vorherigen Rahmens, welches
aus Repräsentativpunktdaten
im gesetzten Suchbereich zusammengesetzt ist. Das heißt, der
Wert eines jeden der m × n Pixel
des Blocks des aktuellen Rahmens wird von den Repräsentativpunktdaten
eines bestimmten Blocks des vorherigen Rahmens subtrahiert. Die
m × n
Pixel des Blocks des aktuellen Rahmens sind in der gleichen Position
des bestimmten Blocks des vorherigen Rahmens. Die Absolutwerte der
Subtraktionsausgangssignale werden in einem Block integriert, und
der Integrationswertjedes Blocks wird in einem Rahmen integriert.
Dieser Integrationswert wird zu einem Auswertungswertetabellen-Erzeugungsabschnitt 3 geliefert.
In dem Auswertungswertetabellen-Erzeugungsabschnitt 3 wird
der Integrationswert, der bei jeder Position im Suchbereich bestimmt
wird, im Speicher gespeichert, und eine Auswertungswertetabelle
wird im Speicher erzeugt.
-
Bezugnehmend
auf die Auswertungswertetabelle, welche durch die Auswertungswertetabelle-Erzeugungseinrichtung 3 erzeugt
wird, extrahiert ein Kandidatenvektor-Extraktionsabschnitt 4 einen oder
mehrere Kandidatenvektoren. Die extrahierten Kandidatenvektoren
werden einem Bewegungsvektor-Ermittlungsabschnitt 5 zugeführt. Eingangsvideodaten
werden zu einem Bewegungsvektor-Ermittlungsabschnitt 5 über eine
Verzögerungsschaltung 6 zugeführt. Die
Verzögerungsschaltung 6 verzögert die
Eingangsvideodaten um einen Zeitbetrag, der erforderlich ist, den
Kandidatenvektor zu verzögern. Wenn
die Eingangsvideodaten vom Speicher gelesen werden, ist es, da die
gelesenen Videodaten lediglich zum Bewegungsvektor-Ermittlungsabschnitt 5 geliefert
werden müssen,
nicht notwendig, die Verzögerungsschaltung 6 vorzusehen.
-
Der
Bewegungsvektor-Ermittlungsabschnitt 5 ermittelt den Bewegungsvektor
in Einheiten eines Pixels durch einen Vergleichsprozess unter Verwendung
eines Kandidatenvektors und gibt den ermittelten Bewegungsvektor
an einen Ausgangsanschluss 7 aus. Hier wird die Bewegungsvektorermittlung
in Einheiten eines Pixels beschrieben. Auch in der Bewegungsvektorermittlung
in Einheiten eines Pixels wird die Blockbildung durchgeführt, um
einen Auswertungswert zu erlangen. Wie beispielsweise in 17 gezeigt
ist, wird ein 3 × 3-Block, wobei das
Pixel P1 die Mitte ist, gebildet. Der Block B1 ist beispielsweise
der Referenzblock des aktuellen Rahmens. Der Kandidatenblock des
vorherigen Rahmens wird ebenfalls ähnlich gebildet. Dann wird
die Auswertungswertetabelle im Suchbereich durch Blockvergleich
erzeugt. Der Bewegungsvektor wird in Bezug auf das Pixel P1 in einer
Weise ermittelt, dass dieser dem minimalen Auswertungswert in dieser
Auswertungswertetabelle ent spricht. Anschließend wird ein Referenzblock ähnlich in
Bezug auf das benachbarte Pixel P2 gebildet. Danach wird eine Auswertungswertetabelle ähnlich durch
Blockvergleich erzeugt, und der Bewegungsvektor in Bezug auf das
Pixel P2 wird auf Basis der Auswertungswertetabelle ermittelt. Auf
diese Weise wird der Bewegungsvektor für jedes Pixel ermittelt.
-
Allgemein
steigt bei dem Prozess zum Ermitteln des Bewegungsvektors für jedes
Pixel die Menge an Berechnungen stark an, wenn diese mit dem Prozess
verglichen wird, um den Bewegungsvektor für jeden Block zu ermitteln,
und die Verarbeitung wird komplex. Da hier jedoch der Bewegungsvektor
unter Verwendung von lediglich einem oder mehreren Kandidatenvektoren
ermittelt wird, die durch den Kandidatenvektor-Extraktionsabschnitt 4 extrahiert
werden, kann verhindert werden, dass die Menge an Berechnungen vergrößert wird,
und es kann verhindert werden, dass die Verarbeitung komplex wird.
-
18A und 18B zeigen
die Verarbeitung des Kandidatenvektor-Extraktionsabschnitts 4. In
der Auswertungswertetabelle, welche durch den Auswertungswertetabellen-Erzeugungsabschnitt 3 erzeugt
wird, existiert der Auswertungswert als z-Koordinate des Suchbereichs,
der durch die x- und y-Koordinate definiert ist. 18A ist eine Konzeptansicht eines Beispiels der
Verteilung in der x-Richtung der Auswertungswertetabelle, welche
die Verteilung in der horizontalen Richtung, die durchläuft, zeigt,
beispielsweise y = y1. 18B ist
eine Konzeptansicht eines Beispiels der Verteilung in der y-Richtung
der Auswertungswertetabelle, welche die Verteilung in der vertikalen
Richtung, die durch diese läuft,
zeigt, beispielsweise x = x1. Aus den Auswertungswertetabellen,
welche in 18A und 18B gezeigt
sind, kann erkannt werden, dass ein relativer Minimalwert in jeder
des Ursprungs der Koordinaten und des Punkts (x = x1, y = y1) existiert.
Eine derartige Auswertungswertetabelle wird in dem Fall eines Bilds
erlangt, bei dem ein Objekt, welches sich schräg zu dem Hintergrund bewegt
(Standbild), existiert.
-
Der
Kandidatenvektor-Extraktionsabschnitt 4 durchsucht eine
derartige Auswertungswertetabelle nach einem relativen Minimalwert
und extrahiert einen Kandidatenvektor, der dem relativen Minimalwert entspricht.
In den Beispielen von 18A und 18B werden der Bewegungsvektor (x = 0, y = 0) und
der Bewegungsvektor (x = x1, y = y1) als Kandidatenvektoren extrahiert.
Hier wird, um die Beschreibung zu vereinfachen, ein Beispiel einer
Auswertungswertetabelle, bei der zwei relative Minimalwerte existieren,
beschrieben. In der Praxis jedoch existiert eine größere Anzahl
relativer Minimalwerte, die Größe jedes
relativen Minimalwerts ist verschieden, und die Form der Kurve,
welche durch jeden relativen Minimalwert gezogen wird und den umgebenden
Auswertungswerten, ist unterschiedlich. In einem derartigen Fall
reduziert der Kandidatenvektor-Extraktionsabschnitt 4 die
Anzahl von Kandidaten, so dass ein geeigneter Kandidatenvektor extrahiert
wird. Das heißt,
der relative Minimalwert wird mit einem Schwellenwert verglichen,
und der relative Minimalwert, der größer ist als der Schwellenwert,
wird nicht für
den Kandidatenvektor verwendet. Außerdem wird die Schärfe der
Kurve, welche durch die relativen Minimalwerte und die umgebenden
Auswertungswerte gezogen wird, ermittelt, und durch Vergleichen
der ermittelten Schärfe
mit dem Schwellenwert wird die kleinere Schärfe für den Kandidatenvektor nicht
verwendet.
-
Unter
Verwendung lediglich des Kandidatenvektors, der auf diese Weise
extrahiert wird, bestimmt der Bewegungsvektor-Ermittlungsabschnitt 5 den
Bewegungsvektor für
jedes Pixel, der dazu angesehen wird, der beste unter den Kandidatenvektoren zu
sein. Wie im oben beschriebenen Beispiel werden, wenn zwei Kandidatenvektoren
vorgegeben sind, die Auswertungswerte in Bezug auf das Pixel von
Interesse durch einen Vergleichsprozess gebildet, wie in 19 gezeigt
ist. Ein Auswertungswert E (0, 0) entspricht dem Bewegungsvektor
(x = 0, y = 0), und ein weiterer Auswertungswert E(x1, y1) entspricht
dem Bewegungsvektor (x = x1, y = y1).
-
Anschließend wird
ein Beispiel eines Verfahrens zum Bestimmen des besten Bewegungsvektors auf
Basis eines Auswertungswertes beschrieben. Ein minimaler Auswertungswert
unter den Auswertungswerten, welche auf diese Weise bestimmt werden, dass
diese jeden der Kandidatenvektoren entsprechen, wird erzeugt, und
der Auswertungswert, dessen Größe ausreichend
klein ist, wird als bester Bewegungsvektor ausgewählt. Wenn
beispielsweise der Auswertungswert E(0, 0) ein Minimalwert ist und der
Auswertungswert E(0, 0) ein ausreichender kleiner Wert ist, wird
(x = 0, y = 0) als Bewegungsvektor MV ausgewählt. Wenn dagegen der Auswertungswert
E(x1, y1) minimal ist und der Auswertungswert E(x1, y1) ein ausreichender
kleiner Wert ist, wird (x = x1, y = y1) als Bewegungsvektor MV ausgewählt. In Bezug
auf ein Pixel, bei dem diese Bedingungen nicht erfüllt werden,
ist der Bewegungsvektor nicht definiert. Zusätzlich zu diesem Verfahren
zum Bestimmen des besten Bewegungsvektors für die Kandidatenvektoren ist
ein weiteres Verfahren möglich.
-
Bei
der Bildbewegungs-Ermittlungsvorrichtung 9, die einen derartigen
Aufbau hat, ist es notwendig, eine gewünschte Anzahl von Datenstücken im
Repräsentativpunkt-Vergleichsprozess
des Repräsentativpunkt-Vergleichsverarbeitungsabschnitts 2 und
im Kandidatenvektor-Zuordnungsprozess des Kandidatenvektor-Extraktionsabschnitts 4 zu
lesen. Als Ergebnis des Bereitstellens der Datenspeichervorrichtung 100,
welche den in 1 oben beschriebenen Aufbau
hat, wird eine gewünschte
Anzahl von Datenstücken
von der Datenspeichervorrichtung 100 gelesen, und der Repräsentativpunkt-Vergleichsprozess
im Repräsentativpunkt-Vergleichsverarbeitungsabschnitt 2 und
der Kandidatenvektor-Zuordnungsprozess im Kandidatenvektor-Extraktionsabschnitt 4 werden
durchgeführt.
Außerdem
kann, nachdem die Bewegungsermittlung durch den Repräsentativpunktvergleich
unter Verwendung eines zweistufigen Verfahrens durchgeführt wird,
auch im Abgriff-Hochzieh-Prozess zum Hochziehen der umgebenden Pixel
des Bewegungsvektors jedes Rahmens eine gewünschte Anzahl von Datenstücken von
der Datenspeichervorrichtung 100 gelesen werden.
-
Die
vorliegende Anwendung enthält
den Hauptgegenstand, der mit der japanischen Patentanmeldung Nr.
JP 2004-000570 verwandt ist, welche beim japanischen Patentamt am
5. Januar 2004 angemeldet wurde.