HINTERGRUND DER ERFINDUNG
-
Die Erfindung betrifft ein bewegungskompensiertes
prädiktives codier/Decodier-System für Bildsignale und ist
insbesondere geeignet zum Codieren/Decodieren sich bewegender oder
laufender Bilder.
-
Es gibt ein Codier/Decodier-System für
Fernsehkonferenzen, das unter Anwendung bewegungskompensierter Prädiktion in
herkömmlichen codier/Decodier-Systemen vorgesehen ist. Bei
diesem System besteht ein zu codierendes/decodierendes Bild
aus etwa 352 x 240 Pixel und ein bezüglich Bewegung zu
kompensierender Bewegungsbereich im Bild beträgt 7 Pixel oder
dergleichen in Horizontal- und Vertikalrichtung. Bei einer
derart kleinen Bildgröße genügt ein Prozessor, um durch
Anwendung kompensierter Prädiktion eine
Echtzeit-Codierung/Decodierung des Bildes vorzunehmen.
-
Beim NTSC-System (National Television System Committee)
mit 704 x 480 Pixel und beim HDTV-System (High Definition
Television) mit 1920 x 1080 Pixel fällt es jedoch einem
einzigen Prozessor äußerst schwer, durch bewegungskompensierte
Prädiktion ein laufendes Bild zu codieren/decodieren, und
zwar wegen der begrenzten Kapazität des Prozessors.
-
Zum Codieren/Decodieren eines großformatigen Bildes
verwendet man daher eine Vielzahl Prozessoren. Wie es in Fig. 1
dargestellt ist, wird ein an einen Rahmenspeicher FM
gehefertes Bild von einer Blockbildungsschaltung B in Blockdaten
aus jeweils 16 x 16 Pixel unterteilt. Diese Blockdaten werden
jeweils Prozessoren P0 bis P3 zugeführt. Die Prozessoren
berechnen Bewegungsvektoren und führen unter Verwendung von
Bildspeichern M0 bis M3 parallel zuelnarider eine
bewegungskompensierte pradiktive Codierung aus. Die codierten Daten
werden von einem Multiplexer M multiplext.
-
Solche Systeme haben aber Unzulänglichkeiten, die
nachstehend aufgezeigt werden. Fig. 2A und 2B zeigen einen
Rahmen, der den von einem Bild eingenommenen Gesamtbereich
darstellt. Einem Bereich A entsprechende Daten sind vom
Prozessor P0 in Verbindung mit dem Bildspeicher M0
codiert/decodiert usw. Wandert ein sich bewegendes Objekt über die Grenze
zwischen zwei Bereichen C und D, kann der Prozessor P2, der
lediglich die Herrschaft über den Bildspeicher M2 hat, keine
Daten verwenden, die im Bildspeicher M3 gespeichert sind, der
vom Prozessor P3 beherrscht wird, und zwar als Daten für die
bewegungskompensierte Prediktion. Dies führt zu einer
Diskontinuität an der Grenze der Bereiche, die von den Prozessoren
P2 und P3 bearbeitet werden, so daß ein auf einem Fernseher
dargestelltes Bild beeiträchtigt wird.
-
Ein Aufsatz mit dem Titel "Ein paralleler
Videosignalprozessor auf der Grundlage einer Überlappungsspartechniktt (T.
Nishitani, Internationale Konferenz über systolische
Anordnungen, 25. Mai 1988, San Diego, Seiten 525-534) beschreibt
ein paralleles Signalprozessorsystem für Laufbildcodierung in
Echtzeit. Das System gründet sich auf eine räumliche
Parallelität in einem Bild, und eine Vielzahl Prozessoren handhaben
gleichzeitig unterregionale Bilder, ohne daß eine
Kommunikation der Prozessoren miteinander erforderlich ist.
KURZE DARLEGUNG DER ERFINDUNG
-
Ein Ziel der Erfindung ist es, ein bewegungskompensiertes
prädiktives Codier/Decodier-System vorzusehen, das eine
Hochgeschwindigkeits-Codierung/Decodierung ausführt, ohne daß an
den von zwei Prozessoren behandelten Grenzbereichen eines
Rahmens Diskontinuitäten verursacht werden.
-
Nach der Erfindung ist vorgesehen, ein
bewegungskompensiertes prädiktives Codier/Decodier-System für ein
Bildsignal, von welchem ein Rahmen gebildet ist aus N und M Pixel in
der Horizontal- bzw. Vertikalrichtung des Bildes,
enthaltend:
-
eine Einrichtung (B) zum Unterteilen von Daten eines zu
codierenden/decodierenden Bildsignals eines Rahmens in eine
Vielzahl Blockdaten, die jeweils BH und BV Pixel in der
Horizontal- bzw. Vertikalrichtung haben,
-
eine Vielzahl Signalprozessoren (P), deren in der
Horizontal- bzw. Vertikalrichtung vorgesehene Anzahl gleich K und
L ist, zum Codieren/Decodieren der Vielzahl der Blockdaten
durch bewegungskompensierte Prädiktion, wobei wenigstens K
oder L zwei oder größer ist und K und L Divisoren von N bzw.
M sind,
-
eine Vielzahl Speichereinrichtungen (M), von denen jede
N/K/a und M/L/b Pixel in der Horizontal- bzw.
Vertikalrichtung abdeckt, zum Speichern von Daten eines Rahmens von der
Codierung/Decodierung dieses Rahmens, wobei a und b die
Anzahlen von Speichereinrichtungen in der Horizontal- bzw.
Vertikalrichtung darstellen,
-
eine Einrichtung (BA) zum Schalten von Verbindungen
zwischen den Signalprozessoren und den Speichereinrichtungen in
Übereinstimmung mit einer Blockposition in dem zu
codierenden/decodierenden Rahmen derart, daß die Signalprozessoren
Zugriff zu den Speichereinrichtungen haben, die die für die
bewegungskompensierte Prädiktion benotigten Daten enthalten,
-
dadurch gekennzeichnet, daß a und b natürliche Zahlen
größer als 1 sind und daß Bereiche gespeicherter Daten, auf
die gleichzeitig von den jeweiligen Signalprozessoren
zugegriffen wird, um einen Betrag von wenigstens N/K in der
Honzontalrichtung und um einen Betrag von wenigstens M/L in der
Vertikalrichtung voneinander getrennt sind, wobei:
-
N/K/a ≥ 2H/(a-1) + BH/(a-1) und
-
M/L/b ≥ 2V/(b-1) + BV/(b-1),
-
wobei H und V die Anzahlen von Pixel einer
bewegungskompensierten Spanne in der Horizontal- bzw. Vertikalrichtung sind,
wodurch verhindert wird, daß irgendwelche der
Speichereinrichtungen gleichzeitig mit einer Vielzahl der
Signalprozessoren verbunden werden.
-
Die Ziele und Merkmale der Erfindung werden unter
Bezugnahme auf die nachfolgende Beschreibung in Verbindung mit den
beigefügten Zeichnungen erläutert.
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Fig. 1 ist ein Blockschaltbild eines herkömmlichen
bewegungskompensierten prädiktiven Codier/Decodier-Systems,
-
Fig. 2A und 2B sind Ansichten zur Erläuterung von
Unzulänglichkeiten des in Fig. 1 dargestellten Systems,
-
Fig. 3 ist ein Blockschaltbild eines bevorzugten
Ausführungsbeispiels der Erfindung,
-
Fig. 4 ist eine Ansicht zum Erläutern von Blockdaten, die
zwischen Prozessoren und Teilspeichern des in Fig. 3
dargestellten Systems transferiert werden,
-
Fig. 5 ist eine Ansicht zum Erläutern von Bildspeichern
in bezug auf das in Fig. 3 gezeigte System,
-
Fig. 6A bis 6I sind Ansichten zum Erläutern der
Teilspeicher,
-
Fig. 7A bis 7I sind Ansichten zum Erläutern von
Verbindungsbeziehungen zwischen den Prozessoren und Teilspeichern,
und
-
Fig. 8 ist ein Blockschaltbild, das ein weiteres
bevorzugtes Ausführungsbeispiel der Erfindung zeigt.
DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN
AUSFÜHRUNGSBEISPIELE
-
Fig. 3 zeigt ein bevorzugtes Ausführungsbeispiel eines
bewegungskompensierten prädiktiven Codiersystems nach der
Erfindung.
-
Wenn eine parallele Verarbeitung der
bewegungskompensierten prädiktiven Codierung von einer Vielzahl Prozessoren Pi
(i = 0 bis 3) ausgeführt wird, steht jeder der Bildspeicher
Mi (nicht gezeigt, i = 0 bis 3) unter der Leitung nicht nur
eines der Prozessoren. Die Bildspeicher M0 bis M3 sind in
Teilspeicher Mi0 bis Mi8 unterteilt. Ein Busadapter BA ist
zwischen den Prozessoren und einigen der Teilspeicher
vorgesehen, und zwar in Entsprechung zu Blockdaten, die von dem
betreffenden Prozessor zu codieren sind.
-
Demzufolgehält dieses System Kontinuität an der Grenze
zwischen zwei Bereichen eines Rahmens, wie es in Fig. 2A
gezeigt ist, aufrecht, und zwar durch bewegungskompensierte
Prädiktion unter Verwendung von Daten, die in irgendeinem
Bildspeicher gespeichert sind.
-
Die elektrische Verbindung und Operation von Komponenten
in Fig. 3 ist die gleiche wie in Fig. 1, mit Ausnahme
derjenigen für die Prozessoren und Teilspeicher.
-
Fig. 4 zeigt die durch schräge Linien dargestellten
Stellen oder Plätze von zwei Blockdatenmengen zu ein und
demselben Zeitpunkt und Datenbereiche eines früheren Rahmens, der
zur bewegungskompensierten Verarbeitung jeder der
Blockdatenmengen erforderlich ist, und zwar dargestellt durch
unterbrochene schräge Linien.
-
Die bewegungskompensierte Verarbeitung nach der Erfindung
wird zu irgendeinem Augenblick an einer Vielzahl von
Blockdaten derselben Blocknummer durch die jeweiligen Prozessoren Pi
ausgeführt. Somit ist in Fig. 4 beispielhaft die Beziehung
zwischen zwei Blockdatenmengen, von denen jede durch
Prozessoren zu verarbeiten ist, die am nächsten zueinander sind,
und den Daten (gespeichert in den Teilspeichern Mi0 bis Mi8)
eines früheren Rahmens dargestellt, der für die Verarbeitung
erforderlich ist.
-
Wie sich auch immer die Stelle oder der Platz der zu
verarbeitenden Blockdaten (Blocknummer) ändert, ist es
notwendig, daß die jeweiligen Datenbereiche, die jeweils von jedem
der zueinander nächsten Prozessoren benötigt werden, nicht
durch dieselben Teilspeicher abgedeckt sind.
-
Um diese Forderung zu erfüllen, wird unter Bezugnahme auf
Fig. 4 die Abstandsbreite X der Datenbereiche, die jeweils
von jedem der beiden am nächsten zueinander liegenden
Prozessoren benotigt werden, gleich der Breite eines Teilspeichers
N/K/a oder größer gemacht, so daß, weil X = N/K - (2H + BH),
folgendes gilt:
-
N/K - (2H + BH) ≥ N/K/a.
-
Folglich ergibt sich die folgende Beziehung:
-
N/Ka ≥ 2H/(a-1) + BH/(a-1) ... (1).
-
Darin ist N die Anzahl der horizontalen Pixel eines Rahmens,
K die Anzahl der Prozessoren in Horizontalrichtung, H die
Anzahl der Pixel in einem
Horizontalbewegungskompensationsbereich, BH die Anzahl der Pixel in einem Blockdatum, das durch
horizontalbewegungskompensierte Prädiktion zu verarbeiten
ist, und a die Anzahl der Teilspeicher in der
Horizontalrichtung.
-
Das oben Erläuterte gilt in entsprechender Weise für die
Vertikalrichtung. Es gilt deshalb die nachfolgende Beziehung:
-
M/L/B ≥ 2V/(b-1) + BV/(b-1) ... (2).
-
Hierin ist M die Anzahl der vertikalen Pixel eines Rahmens, L
die Anzahl der Prozessoren in der Vertikalrichtung, V die
Anzahl der Pixel in einem
Vertikalbewegungskompensationsbereich, BV die Anzahl der Pixel in einer durch
vertikalbewegungskompensierte Prädiktion zu verarbeitende Blockdatenmenge
und b die Anzahl der Teilspeicher in Vertikalrichtung.
-
Nachstehend folgt eine Erläuterung für den Fall, daß das
in Fig. 3 dargestellte System drei Teilspeicher sowohl in der
Horizontal- als auch in der Vertikalrichtung enthält, und
zwar in bezug auf einen Bildspeicher, der unter der Leitung
eines Prozessors unter der Bedingung von ± 63 Pixel sowohl
in der Horizontal- als auch der Vertikalrichtung in einem
bewegungskompensierten Bereich steht, und unter Bezugnahme
auf 16 Pixel sowohl in der Horizontal- als auch in der
Vertikalrichtung einer durch bewegungskompensierte Prädiktion zu
verarbeitende Blockdatenmenge, hinsichtlich eines Bildes PI,
das aus 1920 x 1152 Pixel besteht.
-
Aus (1) und (2) folgt:
-
1920/K/3 ≥ 63 + 16/2, d.h. K ≤ 1920/3/63 9 und
-
1152/L/3 ≥ 63 + 16/2, d.h. L ≤ 1152/3/63 5.
-
Folglich ist die Anzahl der Prozessoren K in der Horizontalen
gleich 2, also kleiner als 9, und somit Divisor für die 1920
horizontalen Pixel des Bildes PI, und die Anzahl der
Prozessoren L in der Vertikalen ist ebenfalls 2, also kleiner als
5, und somit Divisor für die 1152 vertikalen Pixel des Bildes
PI. Folglich reichen insgesamt vier Prozessoren aus, und zwar
zwei in der Vertikalen und zwei in der Horizontalen, um eine
bewegungskompensierte prädiktive Codierung vorzunehmen.
-
Wie es aus Fig. 5 sowie Fig. 6A bis 6I hervorgeht, hat
jeder Bildspeicher Mi (i = 0 bis 3) der jeweils unter der
Leitung des Prozessors Pi steht, 960 x 576 Pixel, weil 1920/2
= 960 und 1152/2 = 576 ist. Der Bildspeicher Mi ist in
Teilspeicher Mi0 bis Mi8 mit jeweils 320 x 192 Pixel unterteilt
(weil 960/3 = 320 und 576/3 = 192 ist), was somit größer als
der bewegungskompensierte Bereich (63 Pixel) ist.
-
Im Anschluß an die Speicherung im Rahmenspeicher FA in
Fig. 3 wird ein Bild von der Blockbildungsschaltung B in eine
Vielzahl Blockdaten bzw. Blockdatenmengen unterteilt (jede
Blockdatenmenge hat 16 x 16 Pixel). Die unterteilten
Blockdaten werden dann den jeweiligen Prozessoren Pi in der
Reihenfolge der Blocknummern 1, 2, ..., 2160 zugeführt, wie es in
Fig. 5 dargestellt ist. Einer der Prozessoren Pi erlangt über
den Busadapter BA den Zugriff zu einem Teilspeicher Mij, in
welchem eine frühere Datenmenge (notwendigerweise nicht eine
gerade vorangehende) gespeichert ist, und gewinnt daraus die
Daten zur bewegungskompensierten prädiktiven Codierung und
führt dann die Codierung aus. In diesem Fall werden die
ersten vier Blockdaten bzw. die ersten vier Blockdatenmengen
(Blocknummer 1 in M0, M1, M2 und M3 in Fig. 5) den
Prozessoren P0 bis P3 nahezu gleichzeitig zugeführt. Nachdem die
Verarbeitung an diesen Blockdaten parallel ausgeführt ist,
erfolgt die Verarbeitung der zweiten, der dritten, ..., der
2160. vier Blockdaten der Reihenfolge nach. Dies bedeutet,
daß die Prozessoren P0 bis P3 stets Blockdaten derselben
Blocknummer zu irgendeinem Zeitpunkt verarbeiten.
-
Fig. 6A zeigt die Plätze von zugeführten Blockdaten,
wobei es sich um die Plätze der Teilspeicher Mi0 handelt. Da
der bewegungskompensierte Bereich 63 Pixel ausmacht und die
Teilspeicher 320 x 192 Pixel haben, ergeben sich die Flächen,
auf die zum Erfassen des Bewegungsvektors und der
bewegungskompensierten Prädiktion zugegriffen werden kann, wie folgt:
-
(320 + 63) x (192 + 63) Pixel durch den Prozessor P0
(320 + 63 x 2) x (192 + 63) Pixel durch den Prozessor P1
(320 + 63) x (192 + 63 x 2) Pixel durch den Prozessor P2
und
-
(320 + 63 x 2) x (192 + 63 x 2) Pixel durch den Prozessor P3,
wobei es sich um die Flächen handelt, die in und um M00, M10,
M20 und M30 herum durch Schräglinien dargestellt sind, wie es
aus Fig. 6A hervorgeht.
-
In diesem Fall sind die Teilspeicher Mi0 bis Mi8 über die
Busadapter BA mit den Prozessoren Pi (i = 0 bis 3) verbunden,
wie es in Fig. 7A gezeigt ist. Es gibt somit keinen
Teilspeicher, der von verschiedenen Prozessoren gleichzeitig dem
Zugriff ausgesetzt ist.
-
Es soll jetzt der linke obere Abschnitt von Fig. 6A
erläutert werden. Durch schräge Linien ist der Bereich aller
Daten dargestellt, die zur Verarbeitung von allen Blockdaten
(die Blocknummern 1 bis 20, 61 bis 80, 121 bis 140, 181 bis
200, ..., 661 bis 680 in Fig. 5) benötigt werden, die in der
im Teilspeicher M00 gespeicherten Fläche enthalten sind. Wenn
deshalb der Prozessor P0 den Zugriff zu den Teilspeichern
M00, M01, M03 und M04 erlangen kann, in die die schrägen
Linien fallen, kann jeder Datenblock verarbeitet werden, der in
der Fläche des Teilspeichers M00 enthalten ist. Wie es aus
Fig. 7A hervorgeht, ist der Prozessor P0 mit den
Teilspeichern M00, M01, M03 und M04 verbunden.
-
Als nächstes werden alle Abschnitte von Fig. 6A
erläutert. Da die Verarbeitung bis zu denselben Blocknummern von
den Prozessoren P0 bis P3 parallel vorgenommen wird, während
der Prozessor P0 die Blockdaten verarbeitet, die in der
Fläche des Teilspeichers M00 enthalten sind, verarbeiten die
Prozessoren P1 bis P3 die Blockdaten, die in den jeweiligen
Flächen der Teilspeicher M10, M20 und M30 enthalten sind.
-
Bei dem betrachteten Fall sind 11 Teilspeicher (M12, M15,
M18, M32, M35, M38, M26, M27, M28, M36 und M37) , die im
rechten und unteren Randabschnitt von Fig. 6A angeordnet sind,
durch schräge Linien nicht abgedeckt, so daß sie unter
Bezugnahme auf Fig. 7A mit keinem der Prozessoren verbunden sind.
-
Befinden sich die Plätze oder Stellen der Blockdaten in
Teilspeichern Mij (j = 1 bis 8), werden die Teilspeicher, zu
denen für die bewegungskompensierte Prädiktion der Zugriff
erlangt werden kann, in der gleichen Weise wie oben
ermittelt, wie es in Fig. 6B bis 6I und Fig. 7B bis 7I dargestellt
ist. Es gibt deshalb keine Teilspeicher, die gleichzeitig von
verschiedenen Prozessoren zugegriffen werden.
-
Fig 7A bis 7I zeigen die Teilspeicher, die mit den
Prozessoren P0 bis P3 bei den Zuständen verbunden sind, die
jeweils in Fig. 6A bis 6I dargestellt sind. Die Teilspeicher,
die mit keinem Prozessor verbunden sind, sind in Fig. 7A bis
7I nicht gezeigt.
-
Bei der in Fig. 6A bis 6I gezeigten Verarbeitung
verbindet der in Fig. 3 dargestellte Busadapter BA die Prozessoren
und die Teilspeicher, wie es in Fig. 7A bis 7I
veranschaulicht ist. Aufgrund dessen kann ein Prozessor auf eine andere
Fläche (entsprechend dem Bildspeicher) zugreifen, die unter
der Leitung eines anderen Prozessors steht, um eine
bewegungskompensierte prädiktive Codierung vorzunehmen.
-
Fig. 8 zeigt ein bevorzugtes Ausführungsbeispiel eines
bewegungskompensierten prädiktiven Decodier-Systems nach der
Erfindung.
-
Der codierte Datenausgang von dem in Fig. 3 dargestellten
System wird von einem Demultiplexer DM unterteilt. Die
unterteilten Daten werden einer Vielzahl Prozessoren Pdi (i = 0
bis 3) zugeführt, worin die unterteilten Daten zum Decodieren
parallel verarbeitet werden.
-
Mit Hilfe eines Busadapters BA, der zwischen den
Prozessoren Pdi und den Teilspeichern Mi0 bis Mi8 vorgesehen ist,
werden die Teilspeicher, die den zu verarbeitenden Blockdaten
entsprechen, mit einem Prozessor verbunden. Die decodierten
Daten werden von einer Blockauflösungsschaltung DB in ein
Bildsignal umgesetzt und über einen Rahmenspeicher FA
ausgegeben.
-
Wie es oben offenbart ist, enthält das
bewegungskompensierte prädiktive Codier/Decodier-System nach der Erfindung
eine Vielzahl Prozessoren, eine Bildspeichern entsprechende
Vielzahl Teilspeicher, von denen jeder unter der Leitung
eines Prozessors steht, und einen Busadapter, der die
Verbindung zwischen den Prozessoren und Teilspeichern in
Übereinstimmung mit den Stellen oder Plätzen von zu verarbeitenden
Blockdaten durch Schaltvorgänge so herstellt, daß
verschiedene Prozessoren nicht gleichzeitig den Zugriff zum selben
Teilspeicher erhalten.
-
Ein Ergebnis davon ist, daß eine bewegungskompensierte
prädiktive Codierung/Decodierung mit hoher Geschwindigkeit
vorgenommen werden kann, und daß keine Diskontinuität an der
Grenze von Bereichen oder Flächen auftritt, die jeweils unter
der Leitung eines Prozessors stehen, so daß ein auf einem
Fernseher wiedergegebenes Bild keine Qualitatsminderung
erleidet.
-
Obgleich bevorzugte Ausführungsbeispiele der Erfindung
dargestellt und beschrieben worden sind, ist anzumerken, daß
die diesbezügliche Offenbarung die Erläuterung der Erfindung
bezweckt und daß verschiedenartige Änderungen und
Modifikationen vorgenommen werden können, ohne den Schutzumfang der
Erfindung zu verlassen, wie er im Anspruch definiert ist.