-
HINTERGRUND
DER ERFINDUNG
-
Gebiet der
Erfindung
-
Diese
Erfindung bezieht sich auf ein Verfahren zum Komprimieren von Bilder
repräsentierenden Daten,
welches eine Lauflängencodierung
nutzt. Diese Erfindung betrifft ferner ein Datenwiedergewinnungsprogramm.
-
Beschreibung
der verwandten Technik
-
Bekanntlich
werden in "Karaoke"-Systemen Bilddaten
verarbeitet, die für
Zeichen repräsentativ sind,
die Worte in Liedern bilden, um einen Spezialeffekt an den Zeichen
vorzusehen, bevor die Bilddaten quantisiert und in Worte eines Lauflängencodes
codiert werden. Ein Beispiel des Spezialeffekts ist, Ränder um
die Zeichen auszubilden. Ein weiteres Beispiel des Spezialeffekts
ist, die Zeichen zu schattieren bzw. zu schraffieren.
-
In
solchen Systemen nach dem Stand der Technik ist es, um zu ermöglichen,
dass der Spezialeffekt unter verschiedenen Arten gewechselt wird, notwendig,
mehrere verschiedene Bilddaten vorzubereiten, die Zeichen repräsentieren,
welche für
die jeweiligen Arten des Spezialeffekts geeignet sind. Die verschiedenen
Bilddaten werden verschiedenen Arten einer Verarbeitung unterzogen,
welche jeweils den verschiedenen Arten des Spezialeffekts entsprechen.
Aus den aus einer Verarbeitung resultierenden Bilddaten werden welche
ausgewählt,
bevor sie quantisiert werden. Dem entsprechend erfordern die Systeme
nach dem Stand der Technik eher komplizierte Hardwarestrukturen.
-
EP-A-0
662 770 offenbart eine Vorrichtung und ein Verfahren zum Codieren/Decodieren
von Untertitel-Daten. Das bekannte Verfahren umfaßt die Schritte:
Erzeugen von Überschriftdaten
entsprechend einer Überschrift,
die auf einem Medienbild zur Anzeige überlagert werden soll, und
Schlüsseldaten entsprechend
einer überlagerten
Rate zum Überlagern
der Überschrift
auf dem Videobild, Quantisieren der Überschriftdaten und der Schlüsseldaten
und Übertragen
der quantisierten Überschrift-
und Schlüsseldaten
als vorbestimmte Bits. Die Überschriftdaten
und Schlüsseldaten
werden über
einen Schalter an den Quantisierer geliefert. Die quantisierten
Daten werden in aus einer Umwandlung resultierende Daten umgewandelt.
Kompressionsmittel sind vorgesehen, um die Daten in aus einer Kompression resultierende
Daten zu komprimieren. 4-Bit-Daten werden als Überschriftdaten oder Schlüsseldaten verwendet.
Das MSB der 4-Bit-Daten ist der Identifikator für Schüsseldaten und Überschriftdaten.
Falls der MSB "1" ist, sind die 4-Bit-Daten Überschriftdaten,
und die Überschriftdaten
werden (auf Basis einer Überlagerung)
verschoben. Falls das MSB "0" ist, sind die 4-Bit-Daten
Schlüsseldaten
und, nur ein Hintergrund wird angezeigt. Folglich offenbart dieses Dokument,
dass einer auf einen Spezialeffekt bezogenen Information nur ein
Bit zugewiesen wird.
-
WO
97/33437 A offenbart eine Vorrichtung und ein Verfahren zum Mischen
eines ersten Bildes mit einer ersten Mehrzahl Pixel mit einem zweiten Bild
mit einer zweiten Mehrzahl Pixel. Bei dieser bekannten Vorrichtung
und diesem bekannten Verfahren werden digitalisierte Worte von Pixel
mit einem weiteren Bit für
einen Farbton-Schlüsselwert und/oder
einem weiteren Bit für
einen Alphasteuerungs-Wert verwendet. Dieses Dokument offenbart folglich
die Zuweisung eines Bits zu der auf einen Spezialeffekt bezogenen
Information. Um die auf einen Spezialeffekt bezogenen Informationen
wiederzugewinnen, ist es notwendig, zusätzlich zu einem Decodierer
für den
Datenstrom ein exklusives Gerät zum
Extrahieren eines spezifizierten Bits aus einem Datenstrom und Entscheiden
des Logikzustandes des extrahierten Bits vorzusehen.
-
EP-A-0
466 398 offenbart ein Informationsspeichermedium und eine Vorrichtung,
um davon Informationen zu reproduzieren. Bei diesem bekannten Informationsspeichermedium
und dieser bekannten Vorrichtung wird eine Farbinformation jeweiligen
Zeichendaten zugeteilt. Die Farbinformation kann die Farbe einer
Außenkante
eines Zeichens bezeichnen.
-
Zusammenfassung
der Erfindung
-
Es
ist eine erste Aufgabe dieser Erfindung, ein verbessertes Verfahren
zum Komprimieren von Bilder repräsentierenden
Daten zu schaffen, welches eine Lauflängencodierung nutzt, wie in
Anspruch 1 dargelegt ist.
-
Eine
zweite Aufgabe dieser Erfindung ist, ein verbessertes Datenwiedergewinnungsprogramm
wie in Anspruch 2 dargelegt zu schaffen.
-
Kurze Beschreibung
der Zeichnungen
-
1 ist
ein Blockdiagramm einer Bilddaten komprimierenden Vorrichtung nach
dem Stand der Technik.
-
2 ist
ein Blockdiagramm einer Bilddaten komprimierenden Vorrichtung gemäß einer
ersten Ausführungsform
dieser Erfindung.
-
3 ist
ein Diagramm einer ersten Beziehung zwischen Codeworten und Luminanzpegeln.
-
4 ist
ein Diagramm eines Fensters, das aus neun benachbarten Pixeln in
der ersten Ausführungsform
dieser Erfindung besteht.
-
5 ist
ein Diagramm einer zweiten Beziehung zwischen Codeworten und Luminanzpegeln.
-
6 bis 10 sind
Diagramme von Lauflängencodeworten.
-
11 ist
ein Blockdiagramm einer Bilddatenwiedergewinnungsvorrichtung.
-
12 ist
ein Blockdiagramm einer Bilddaten komprimierenden Vorrichtung gemäß einer
zweiten Ausführungsform
dieser Erfindung.
-
13 ist
ein Diagramm eines Fensters, das aus neun benachbarten Pixeln in
der zweiten Ausführungsform
dieser Erfindung besteht.
-
14 ist
ein Blockdiagramm einer Bilddaten komprimierenden Vorrichtung gemäß einer
dritten Ausführungsform
dieser Erfindung.
-
15 ist
ein Diagramm eines Fensters, das aus fünfundzwanzig benachbarten Pixeln
in der dritten Ausführungsform
dieser Erfindung besteht.
-
16 ist
ein Blockdiagramm einer Bilddaten komprimierenden Vorrichtung gemäß einer
fünften
Ausführungsform
dieser Erfindung.
-
17 ist
ein Flussdiagramm eines ersten Abschnitts eines auf einen Computer
in 16 bezogenen Programms.
-
18 ist
ein Flussdiagramm eines zweiten Abschnitts des auf den Computer
in 16 bezogenen Programms.
-
19 ist
ein Flussdiagramm eines dritten Abschnitts des auf den Computer
in 16 bezogenen Programms.
-
Beschreibung
der bevorzugten Ausführungsformen
-
Eine
Vorrichtung nach dem Stand der Technik zum Komprimieren von Bilder
repräsentierenden Daten
wird für
ein besseres Verständnis
dieser Erfindung erläutert.
-
Mit
Verweis auf 1 schließt eine Bilddaten komprimierende
Vorrichtung nach dem Stand der Technik einen Eingangsanschluss 1 und
einen Spezialeffektprozessor 2 ein. Eingabebilddaten, die
Worte in einem Lied bildende Zeichen repräsentieren, werden über den
Eingangsanschluss 1 an den Spezialeffektprozessor 2 geliefert.
Die Eingabebilddaten werden durch den Spezialeffektprozessor 2 verarbeitet,
um einen Spezialeffekt auf den Zeichen zu implementieren. Die aus
einer Verarbeitung resultierenden Bilddaten werden vom Spezialeffektprozessor 2 ausgegeben,
bevor sie in einen Frame-Speicher 3 gespeichert werden.
-
Stücke der
Bilddaten werden aus dem Frame-Speicher 3 sukzessiv ausgelesen
und dann einem Quantisierer 4 zugeführt. Jedes der Bilddatenstücke wird
durch den Quantisierer 4 in ein Datenstück quantisiert, das unter mehreren
verschiedenen Zustäden änderbar
ist, welche jeweils verschiedenen Farbtönen (Luminanzpegeln oder Gradienten)
entsprechen. Die aus einer Quantisierung resultierenden Datenstücke werden
vom Quantisierer 4 sukzessiv an einen Lauflängencodierer 5 ausgegeben.
Die aus der Quantisierung resultierenden Datenstücke werden durch den Lauflängencodierer 5 in
entsprechende Worte eines gegebenen Lauflängencodes codiert. Die Worte
des gegebenen Lauflängencodes bilden
ein aus einer Codierung resultierendes Signal, welches einen Bitstrom
aufweist. Das aus der Codierung resultierende Signal wird vom Lauflängencodierer 5 an
einen Ausgangsanschluss 6 abgegeben, bevor es an ein (nicht
dargestelltes) externes Gerät übertragen
wird.
-
Um
zu ermöglichen,
dass der Spezialeffekt unter verschiedenen Arten geändert wird,
ist es notwenig, verschiedene Spezialeffektprozessoren entsprechend
den jeweiligen Arten des Spezialeffekts vorzubereiten. Außerdem ist
es notwendig, mehrere verschiedene Bilddaten vorzubereiten, die
Zeichen repräsentieren,
welche für
die jeweiligen Arten des Spezialeffekts geeignet sind. Die verschiedenen
Bilddaten werden durch die Spezialeffektprozessoren verschiedenen
Arten einer Verarbeitung unterzogen, welche jeweils den verschiedenen
Arten des Spezialeffekts entsprechen. Unter den aus der Verarbeitung resultierenden
Bilddaten werden welche ausgewählt, bevor
sie quantisiert werden. Demgemäß ist eher eine
komplizierte Hardwarestruktur erforderlich, um zu ermöglichen,
dass der Spezialeffekt unter verschiedenen Arten geändert wird.
Beispiele der verschiedenen Arten des Spezialeffekts sind Ränder in verschiedenen
Dicken um die Zeichen.
-
Erste Ausführungsform
-
Es
gibt ein digitales Hauptsignal und ein digitales Teilsignal. Das
digitale Hauptsignal repräsentiert
eine Hauptbildform, die Frame um Frame oder Feld um Feld periodisch
aktualisiert wird. Das digitale Teilsignal repräsentiert eine Teilbildinformation,
die ebenfalls Frame um Frame oder Feld um Feld periodisch aktualisiert
wird. Die Teilbildinformation gibt z.B. Worte in einem Lied oder Überschriften
in einem Film an. In der folgenden Erläuterung wird die durch das
digitale Hauptsignal repräsentierte
Bildinformation als Hintergrund betrachtet, während die durch digitale Teilsignal
repräsentierte
Bildinformation als Vordergrund betrachtet wird.
-
Das
digitale Hauptsignal wird in bekannter Weise in ein aus einer Codierung
resultierendes Hauptsignal codiert. Das digitale Teilsignal wird
gemäß einer
ersten Ausführungsform
dieser Erfindung auf neue Weise in ein aus einer Codierung resultierendes
Teilsignal codiert. Im allgemeinen werden das aus einer Codierung
resultierende Hauptsignal und das aus einer Codierung resultierende
Teilsignal in ein zusammengesetztes Signal kombiniert oder multiplexiert.
Das zusammengesetzte Signal wird über eine Übertragungsleitung zu einer
Decodiererseite übertragen.
In der Decodiererseite werden aus dem zusammengesetzten Signal die
Hauptbildinformation und die Teilbildinformation wiedergewonnen.
Die wiedergewonnene Hauptbildinformation und die wiedergewonnene
Teilbildinformation werden durch eine Anzeige auf der Basis einer Überlagerung
angezeigt.
-
Mit
Verweis auf 2 enthält eine Bilddaten komprimierende
Vorrichtung einen Eingangsanschluss 11 und einen Frame-Speicher 12.
Eingabebilddaten werden über
den Eingangsanschluss 11 an den Frame-Speicher 12 geliefert.
Die Eingabebilddaten entsprechen dem vorher angegebenen digitalen Teilsignal.
Die Eingabebilddaten repräsentieren
z.B. Zeichen, die Worte in einem Lied oder Überschriften in einem Film
bilden.
-
Die
Eingabebilddaten weisen einen Strom von 1 Pixel entsprechenden Datensegmenten
auf. Die Eingabebilddaten werden im Frame-Speicher 12 vorübergehend
gespeichert, bevor sie Pixel für
Pixel einem Quantisierer 13 zugeführt werden.
-
Jedes
1 Pixel entsprechende Segment der quantisierten Bilddaten, die vom
Frame-Speicher 12 ausgegeben werden, wird durch den Quantisierer 13 gemäß der durch
das 1 Pixel entsprechende Segment repräsentierten Luminanz (der Helligkeit)
in ein 4-wertiges Datensegment quantisiert. Jedes durch den Quantisierer 13 erzeugte
4-wertige Datensegment hat zwei Bits. Jedes durch den Quantisierer 13 erzeugte
4-wertige Datensegment kann sich unter vier verschiedenen Zuständen (vier
verschiedenen Werten), d.h. "00", "01", "10" und "11", ändern. Auf die
vier verschiedenen Zustände
wird auch als vier verschiedene Pixelcodeworte verwiesen.
-
Wie
in 3 gezeigt ist, werden Pixelcodeworte, die auf
die durch den Quantisierer 13 erzeugten 4-wertigen Datensegmente
bezogen sind, jeweils verschiedenen Luminanzpegeln (verschiedenen
Helligkeitspegeln) zugewiesen. Konkret wird das Pixelcodewort "01" einem höchsten Luminanzpegel
(einem höchsten
Helligkeitspegel) zugewiesen. Das Pixelcodewort "11" wird
einem zweithöchsten
Luminanzpegel (einem zweithöchsten
Helligkeitspegel) zugewiesen. Das Pixelcodewort "10" wird
einem dritthöchsten
Luminanzpegel (einem dritthöchsten
Helligkeitspegel) zugewie sen. Das Pixelcodewort "00" wird
einem niedrigsten Luminanzpegel (einem niedrigsten Helligkeitspegel)
entsprechend einem Hintergrund zugewiesen.
-
Mit
Verweis zurück
auf 2 wird jedes 4-wertige Datensegment vom Quantisierer 13 an
einen Rand-Detektor 14 und einen Datenwandler 15 ausgegeben.
Der Rand-Detektor 14 erzeugt aus den vom Quantisierer 13 zugeführten 4-wertigen
Datensegmenten Informationen über
Ränder.
Die Ränder beziehen
sich auf Zeichen, welche Worte oder Überschriften bilden und welche
durch die 4-wertigen Datensegmente repräsentiert werden. Der Rand-Detektor 14 gibt
die erzeugten Informationen über
Ränder an
einen Rand-Generator 16 ab.
-
Der
Rand-Detektor 14 enthält
einen Speicher zum Sammeln von neun 4-wertigen Datensegmenten entsprechend
neun benachbarten Pixeln in einem gleichen Frame oder einem gleichen
Feld. Die neun benachbarten Pixel bilden ein Fenster. Wie in 4 gezeigt
ist, liegen die neun benachbarten Pixel in einer Anordnung (einem
Fenster) von 3 mal 3 vor. In 4 bezeichnet "C" ein Pixel von Interesse, während "N" jedes Pixel nahe dem Pixel von Interesse bezeichnet.
In 4 nimmt das Pixel "C" von
Interesse die obere linke Ecke der 3-mal-3-Anordnung ein. Die 3-mal-3-Anordnung
in 4 ist so ausgelegt, dass sie Ränder mit einer Breite von 2
Pixel in Flächen
liefert, die rechts und unterhalb der Zeichen benachbart verlaufen.
Der Rand-Detektor 14 entscheidet, ob die neun 4-wertigen
Datensegmente in spezifizierten Bedingungen vorliegen oder nicht,
in denen das Pixelcodewort des 4-wertigen Datensegments entsprechend
dem Pixel "C" von Interesse "01", "10" oder "11" ist, während alle
Pixelcodeworte der 4-wertigen
Datensegmente entsprechend den nahen Pixeln "N" "00" sind. Wenn die neun
4-wertigen Datensegmente in den spezifizierten Bedingungen vorliegen,
entscheidet der Rand-Detektor 14, dass alle nahen Pixel "N" Abschnitte von Rändern bilden sollen. Der Rand-Detektor 14 nutzt
eine Positionsinformation der 4-wertigen Datensegmente entsprechend
den nahen Pixeln "N" beim Erzeugen von
Informationen über
Ränder.
Wenn die neun 4-wertigen Datensegmente nicht in den spezifizierten
Bedingungen vorliegen, entscheidet der Rand-Detektor 14,
dass die nahen Pixel "N" keine Abschnitte
von Rändern
bilden sollen. Der Rand-Detektor 14 nutzt eine Positionsinformation
der 4-wertigen Datensegmente entsprechend den nahen Pixeln "N" beim Erzeugen von Informationen über Ränder. Die
im Rand-Detektor 14 gesammelten neun 4-wertigen Datensegmente
werden periodisch aktualisiert, so dass das Fenster sich bewegen
wird und das Pixel "C" von Interesse sich einzeln
in einer vorbestimmten Scan-Richtung
bezüglich "Frame" oder "Feld" verschieden wird.
Die oben angegebene Sequenz von Prozessen wird wiederholt, während das
Fenster bewegt wird. Als Folge wird eine Information über Ränder erzeugt,
welche einem Frame oder einem Feld entspricht.
-
Die
Informationen über
Ränder,
welche durch den Rand-Detektor 14 erzeugt wird, weist Stücke auf,
die jeweils einem Pixel entsprechen. Jedes Stück der Information über Ränder repräsentiert,
ob ein zugehöriges
Pixel ein Abschnitt von Rändern
sein soll oder nicht. Der Rand-Detektor 14 gibt sukzessiv die
Stücke
der Information über
Ränder
an den Rand-Generator 16 aus.
-
Zum
Beispiel wandelt der Rand-Detektor 14 jedes 4-wertige Datensegment
in ein 2-wertiges Datensegment um, welches entweder "0" oder "1" ist. Jedes
4-wertige Datensegment entsprechend einem Pixel, welches kein Abschnitt
von Rändern
sein soll, wird in ein 2-wertiges Datensegment umgewandelt, das "0" ist. Jedes 4-wertige Datensegment entsprechend
einem Pixel, welches ein Abschnitt von Rändern sein soll, wird in ein
2-wertiges Datensegment umgewandelt, welches "1" ist.
Die 2-wertigen Datensegmente werden von dem Rand-Detektor 14 sequentiell
an den Rand- Generator 16 als
1 Pixel entsprechende Stücke
der Information über
Ränder
ausgegeben.
-
Der
Datenwandler 15 ändert
jedes 4-wertige Datensegment in ein 3-wertiges Datensegment. Jedes durch den
Datenwandler 15 erzeugte 3-wertige Datensegment hat zwei Bits.
Jedes 3-wertige Datensegment, das durch den Datenwandler 15 erzeugt wird,
kann sich unter drei verschiedenen Zuständen (drei verschiedenen Werten),
d.h. "00", "01" und "10", ändern. Auf
die drei verschiedenen Zustände
wird ebenfalls als drei verschiedene Pixelcodeworte verwiesen. Die
3-wertigen Datensegmente werden vom Datenwandler 15 sukzessiv
an den Rand-Generator 16 ausgegeben.
-
Konkret ändert der
Datenwandler 15 jedes 4-wertige Datensegment von "11" in ein 3-wertiges Datensegment
von "10". Der Datenwandler 15 nutzt direkt
jedes 4-wertige Datensegment von "00" als 3-wertiges
Datensegment von "00". Der Datenwandler 15 nutzt
direkt jedes 4-wertige Datensegment von "10" als
ein 3-wertiges Datensegment von "10". Der Datenwandler 15 nutzt
direkt jedes 4-wertige Datensegment "01" als
ein 3-wertiges Datensegment "01".
-
Wie
in 5 gezeigt ist, werden die Pixelcodeworte, die
auf die durch den Datenwandler 15 erzeugten 3-wertigen
Datensegmente bezogen sind, jeweils verschiedenen Luminanzpegeln
(verschiedenen Helligkeitspegeln) zugewiesen. Konkret wird das Pixelcodewort "01" einem höchsten Luminanzpegel (einem
höchsten
Helligkeitspegel) zugewiesen, der gleich dem höchsten Luminanzpegel (dem höchsten Helligkeitspegel)
ist, der auf die durch den Quantisierer 13 erzeugten 4-wertigen
Datensegmente bezogen ist. Das Pixelcodewort "10" wird
einem zweithöchsten
Luminanzpegel (einem zweithöchsten
Helligkeitspegel) zugewiesen, der gleich einem Mittel wert oder einem
Durchschnittswert zwischen dem zweihöchsten Luminanzpegel (dem zweithöchsten Helligkeitspegel)
und dem dritthöchsten
Luminanzpegel (dem dritthöchsten
Helligkeitspegel) ist, die auf die durch den Quantisierer 13 erzeugten
4-wertigen Datensegmente bezogen sind. Das Pixelcodewort "00" wird einem niedrigen
Luminanzpegel (einem niedrigsten Helligkeitspegel) zugewiesen, der
gleich dem niedrigsten Luminanzpegel (dem niedrigsten Helligkeitspegel)
ist, der auf die durch den Quantisierer 13 erzeugten 4-wertigen
Datensegmente bezogen ist.
-
Der
Rand-Generator 16 empfängt
sukzessiv die 3-wertigen Datensegmente vom Datenwandler 15.
Der Rand-Generator 16 empfängt auch sukzessiv die Stücke der
Information über
Ränder
von dem Rand-Detektor 14. Das 3-wertige Datensegment und das
Stück der
Information über
Ränder,
welche durch den Rand-Generator 16 zur gleichen Zeit empfangen werden,
entsprechen einem gleichen Pixel. Der Rand-Generator 16 ändert als
Antwort auf das entsprechende Stück
der Information über
Ränder
jedes 3-wertige
Datensegment in ein 4-wertiges Datensegment. Jedes durch den Rand-Generator 16 erzeugte 4-wertige
Datensegment hat zwei Bits. Jedes durch den Rand-Generator 16 erzeugte
4-wertige Datensegment kann sich unter vier verschiedenen Zuständen (vier
verschiedenen Werten), d.h. "00", "01", "10" und "11", ändern. Auf
die vier verschiedenen Zustände
wird ebenfalls als vier verschiedene Pixelcodeworte verwiesen. Die
4-wertigen Datensegmente werden
vom Rand-Generator 16 sukzessiv an einen Lauflängencodierer 17 ausgegeben.
-
Konkret ändert, wenn
das Stück
der Information über
Ränder
repräsentiert,
dass ein betreffendes Pixel ein Abschnitt von Rändern sein soll, der Rand-Generator 16 das
entsprechende 3-wertige Datensegment in ein 4-wertiges Datensegment "11". Wenn das Stück der Information über Ränder repräsentiert,
dass ein betreffendes Pixel kein Abschnitt von Rändern sein soll, verwendet
der Rand-Generator 16 das entsprechende 3-wertige Datensegment als
ein 4-wertiges Datensegment ohne Ändern des Zustands des 3-wertigen
Datensegments. In diesem Fall werden folglich ein 3-wertiges Datensegment "00", ein 3-wertiges
Datensegment "01" und ein 3-wertiges
Datensegment "10" direkt als ein 4-wertiges
Datensegment "00", ein 4-wertiges
Datensegment "01" bzw. ein 4-wertiges
Datensegment "10" verwendet. Dementsprechend
repräsentiert
jedes 4-wertige Datensegment "11", welches vom Rand-Generator 16 erzeugt
wird, dass ein entsprechendes Pixel ein Abschnitt von Rändern sein
soll. Auf der anderen Seite repräsentieren
4-wertige Datensegmente anderer Zustände, welche vom Rand-Generator 16 erzeugt
werden, dass entsprechende Pixel keine Abschnitte von Rändern sein
sollen.
-
Wie
sich aus der vorhergehenden Erläuterung
versteht, kombiniert oder multiplexiert der Rand-Generator 16 jedes
3-wertige Datensegment und jedes Stück der Information über Ränder in
ein 4-wertiges Datensegment.
-
Wie
vorher angegeben wurde, werden die 4-wertigen Datensegmente vom
Rand-Generator 16 sukzessiv an den Lauflängencodierer 17 ausgegeben.
Die 4-wertigen Datensegmente werden durch den Lauflängencodierer 17 in
entsprechende Worte eines gegebenen Lauflängencodes codiert. Die Worte
des gegebenen Lauflängencodes
bilden ein aus einer Codierung resultierendes Signal. Das aus der Codierung
resultierende Signal wird vom Lauflängencodierer 17 an
einen Ausgangsanschluss 18 ausgegeben, bevor es an ein
(in 2 nicht dargestelltes) externes Gerät übertragen
wird.
-
Die
Operation des Lauflängencodierers 17 wird
ausführlich
erläutert.
Wenn ein vorliegendes 4-wertiges Datensegment sich im Zustand von
dem unmittelbar vorhergehenden 4-wertigen Datensegment unterscheidet,
erzeugt der Lauflängencodierer 17 ein
Codewort mit einer Sequenz aus vier Bits. Wie in 6 gezeigt
ist, wird die Sequenz aus vier Bits in eine erste Hälfte 21 und
eine zweite Hälfte 22 geteilt. Die
erste Hälfte 21 hat
zwei Bits. Auch die zweite Hälfte 22 hat
zwei Bits. Die erste Hälfte 21 wird
auf einen Zustand gesetzt, der eine Zahl gleich "1" repräsentiert.
Die zweite Hälfte 22 wird
auf einen Zustand gesetzt, der gleich dem Zustand des vorliegenden 4-wertigen
Datensegments ist.
-
Wenn
es eine Folge von zwei oder drei 4-wertigen Datensegmenten in einem
gleichen Zustand gibt, erzeugt der Lauflängencodierer 17 ein
Codewort mit einer Sequenz aus vier Bits. Wie in 6 gezeigt
ist, wird die Sequenz aus vier Bits in eine erste Hälfte 21 und
eine zweite Hälfte 22 geteilt.
Die erste Hälfte 21 wird
auf einen Zustand gesetzt, der eine fortlaufende Zahl bzw. Folgezahl
repräsentiert,
die gleich "2" oder "3" ist. Die zweite Hälfte wird auf einen Zustand
gesetzt, der gleich dem Zustand der 4-wertigen Datensegmente ist.
-
Wenn
es eine Folge von vier bis fünfzehn 4-wertigen
Datensegmenten in einem gleichen Zustand gibt, erzeugt der Lauflängencodierer 17 ein
Codewort mit einer Sequenz aus acht Bits. Wie in 7 gezeigt
ist, wird die Sequenz aus acht Bits in einen Kopfabschnitt 23,
einen Zwischenabschnitt 24 und ein Endabschnitt 25 geteilt.
Der Kopfabschnitt 23 hat zwei Bits. Der Zwischenabschnitt 24 hat
vier Bits. Der Endabschnitt 25 hat zwei Bits. Der Kopfabschnitt 23 ist
auf "00" festgelegt. Der
Zwischenabschnitt 24 ist auf einen Zustand eingestellt,
der eine Folgezahl gleich "4" bis "15" repräsentiert.
Der Endabschnitt 25 ist auf einen Zustand eingestellt,
der gleich dem Zustand der 4-wertigen Datensegmente ist.
-
Wenn
es eine Folge von sechzehn bis dreiundsechzig 4-wertigen Datensegmenten
in einem gleichen Zustand gibt, erzeugt der Lauflängencodierer 17 ein
Codewort mit einer Sequenz aus zwölf Bits. Wie in 8 gezeigt
ist, wird die Sequenz aus zwölf Bits
in einen Kopfabschnitt 26, einen Zwischenabschnitt 27 und
einen Endabschnitt 28 geteilt. Der Kopfabschnitt 26 hat
vier Bits. Der Zwischenabschnitt 27 hat sechs Bits. Der
Endabschnitt 28 hat zwei Bits. Der Kopfabschnitt 26 ist
festgelegt auf "0000". Der Zwischenabschnitt 27 ist
auf einen Zustand eingestellt, der eine Folgezahl gleich "16" bis "63" repräsentiert.
Der Endabschnitt 28 ist auf einen Zustand festgelegt, der
gleich dem Zustand der 4-wertigen Datensegmente ist.
-
Wenn
eine Folge aus vierundsechzig bis zweihundertfünfundfünfzig 4-wertigen Datensegmenten in einem gleichen
Zustand gibt, erzeugt der Lauflängencodierer 17 ein
Codewort mit einer Sequenz aus sechzehn Bits. Wie in 9 gezeigt
ist, ist die Sequenz aus sechzehn Bits in einen Kopfabschnitt 23,
einen Zwischenabschnitt 30 und einen Endabschnitt 31 geteilt.
Der Kopfabschnitt 29 hat sechs Bits. Der Zwischenabschnitt 30 hat
8 Bits. Der Endabschnitt 31 hat zwei Bits. Der Kopfabschnitt 29 ist festgelegt
auf "000000". Der Zwischenabschnitt 30 ist festgelegt
auf einen Zustand, der eine Folgezahl gleich "64" bis "255" repräsentiert.
Der Endabschnitt 31 ist auf einen Zustand gleich dem Zustand
der 4-wertigen Datensegmente festgelegt.
-
Wenn
es eine Folge aus zweihundertsechsundfünfzig oder mehr 4-wertigen Datensegmenten
in einem gleichen Zustand in der gleichen Pixelreihe betrachtet
gibt, erzeugt der Lauflängencodierer 17 ein
Codewort mit einer Sequenz aus sechzehn Bits. Wie in 10 gezeigt
ist, ist die Sequenz aus sechzehn Bits in einen ersten Abschnitt 32 und
einen zweiten Abschnitt 33 geteilt. Der erste Abschnitt 32 hat
vierzehn Bits. Der zweite Abschnitt 33 hat zwei Bits. Der
erste Abschnitt 32 ist auf "00000000000000" festgelegt. Der zweite Abschnitt 33 ist
auf einen Zustand gleich dem Zustand der 4-wertigen Datensegmente
festgelegt.
-
Es
sollte besonders erwähnt
werden, dass der Lauflängencodierer 17 durch
einen MR-Codierer (modifed READ) oder einen MMR-Codierer (modified modified
READ) ersetzt werden kann.
-
Mit
Verweis auf 11 enthält eine Bilddatenwiedergewinnungsvorrichtung
einen Eingangsanschluss 41, der mit dem Ausgangsanschluss 18 in 2 über eine Übertragungsleitung
verbunden werden kann. Ein Bitstrom des gegebenen Lauflängencodes
wird über
den Eingangsanschluss 41 an einen in der Bilddatenwiedergewinnungsvorrichtung
enthaltenen Lauflängencodierer 42 eingespeist.
Die Operation des Lauflängencodierers 42 ist
bezüglich der
Operation des Lauflängencodierers 17 in 2 invers.
Der Lauflängencodierer 42 decodiert
den Bitstrom des gegebenen Lauflängencodes
in eine Sequenz aus 4-wertigen Datensegmenten, welche jeweils Pixeln
entsprechen. Die 4-wertigen Datensegmente, die durch den Lauflängencodierer 42 erzeugt werden,
entsprechen den 4-wertigen Datensegmenten, die durch den Rand-Generator 16 in 2 erzeugt
werden. Der Lauflängencodierer 42 gibt
sukzessiv die 4-wertigen Datensegmente an einen Videosignaldecodierer 43 aus.
-
Der
Videosignaldecodierer 43 enthält einen ROM, in welchem Decodiertabellen
(Datenumwandlungstabellen) vorgesehen sind. Der Videosignaldecodierer 43 nimmt
Bezug auf die Decodiertabellen und wandelt dadurch jedes 4-wertige
Datensegment "00" in ein 1 Pixel entsprechendes
Segment eines Teilvideosignals um, welches einen Luminanzpegel (einen
Y-Pegel) von "0", einen Chrominanzpegel (Cb-Pegel)
von "128" und einen zweiten
Chrominanzpegel (einen Cr-Pegel) von "128" hat.
Außerdem erzeugt
der Videosignaldecodierer 43 ein Steuersignal, das ein
gewünschtes
Mischungsverhältnis
von 0% von jedem 4-wertigen Datensegment "00" repräsentiert,
indem auf eine der Decodiertabellen Bezug genommen wird.
-
Der
Videosignaldecodierer 43 nimmt Bezug auf die Decodiertabellen
und wandelt dadurch jedes 4-wertige Datensegment von "01" in ein 1 Pixel entsprechendes
Segment eines Teilvideosignals um, welches einen Luminanzpegel (einen
Y-Pegel) von "255", einen ersten Chrominanzpegel
(einen Cb-Pegel) von "128" und einen zweiten
Chrominanzpegel (einen Cr-Pegel) von "128" hat.
Außerdem
erzeugt der Videosignaldecodierer 43 ein Steuersignal,
das ein gewünschtes
Mischungsverhältnis
von 100% von jedem 4-wertigen
Datensegment "01" repräsentiert, indem
auf eine der Decodiertabellen Bezug genommen wird. Der Videosignaldecodierer 43 nimmt
Bezug auf die Decodiertabellen und wandelt jedes 4-wertige Datensegment "10" in ein 1 Pixel entsprechendes
Segment eines Teilvideosignals um, welches einen Luminanzpegel (ein
Y-Pegel) von "128", einen ersten Chrominanzpegel
(einen Cb-Pegel) von "128" und einen zweiten
Chrominanzpegel (einen Cr-Pegel) von "128" hat.
Außerdem
erzeugt der Videosignaldecodierer 43 ein Steuersignal,
das ein gewünschtes
Mischungsverhältnis
von 45% von jedem 4-wertigen Datensegment "10" repräsentiert,
indem auf eine der Decodiertabellen verwiesen wird. Der Videosignaldecodierer 43 nimmt
Bezug auf die Decodiertabellen und wandelt das 4-wertige Datensegment "11" in ein 1 Pixel entsprechendes
Segment eines Teilvideosignals um, welches einen Luminanzpegel (einen
Y-Pegel) von "255", einen ersten Chrominanzpegel
(einen Cb-Pegel) von "255" und einen zweiten
Chrominanzpegel (einen Cr-Pegel) von "0" hat.
Außerdem
erzeugt der Videosignaldecodierer 43 ein Steuersignal,
das ein gewünschtes
Mischungsverhältnis
von 100% jedes 4-wertigen Datensegments "11" repräsentiert,
indem auf eine der Decodiertabellen Bezug genommen wird. Wie vorher
erläutert
wurde, repräsentiert
jedes 4-wertige Datensegment "11", dass ein entsprechendes
Pixel ein Abschnitt von Rändern
sein soll. Die Umwandlung jedes 4-wertigen Datensegments "11", welches durch den Videosignaldecodierer 43 implementiert
wird, ermöglicht,
dass Zeichen mit "blauen" Rändern versehen werden.
Der Videosignaldecodierer 43 gibt sukzessiv die 1 Pixel entsprechenden
Segmente des Teilvideosignals an einen Mischer 44 aus.
Der Videosignaldecodierer 43 gibt auch sukzessiv die Steuersignale
an den Mischer 44 aus.
-
Der
Mischer 44 empfängt
sukzessiv 1 Pixel entsprechende Segmente eines Hauptvideosginals über einen
Eingangsanschluss 45. Das 1 Pixel entsprechende Segment
des Teilvideosignals, das Steuersignal und das 1 Pixel entsprechende
Segment des Hauptvideosignals, welche vom Mischer 44 zur
gleichen Zeit empfangen werden, entsprechen einem gleichen Pixel.
Der Mischer 44 mischt das 1 Pixel entsprechende Segment
des Teilvideosignals und das 1 Pixel entsprechende Segment des Hauptvideosignals
in ein 1 Pixel entsprechendes Segment eines zusammengesetzten Videosignals
mit einem Mischverhältnis,
das gleich dem durch das Steuersignal repräsentierten gewünschten
Mischungssignal ist. Folglich implementiert der Mischer 44 eine Überlagerung
des Teilvideosignals auf dem Hauptvideosignal. In dem Fall, in dem
der durch das Teilvideosignal repräsentierten Bildinformation
Aufmerksamkeit geschenkt wird, bildet die durch das Teilvideosignal
repräsentiert
Bildinformation einen Vordergrund, während die durch das Hauptvideosignal
repräsentierte
Bildinformation einen Hintergrund bildet. Wenn das Mischungsverhältnis 0%
ist, ist das 1 Pixel entsprechende Segment des zusammengesetzten
Videosignals gleich dem 1 Pixel entsprechenden Segment des Hauptvideosignals.
In diesem Fall wird folglich nur die durch das Hauptvideosignal
repräsentierte Bildinformation,
d.h. nur der Hintergrund auf einer betreffenden Pixelzone auf einer
Bildschirmanzeige angezeigt. Wenn das Mischungsverhältnis 100%
ist, ist das 1 Pixel entsprechende Segment des zusammengesetzten
Videosignals gleich dem 1 Pixel entsprechenden Segment des Teilvideosignals.
Folglich wird in diesem Fall nur die durch das Teilvideosignal repräsentierte
Bildinformation, d.h. nur der Vordergrund, auf einer betreffenden
Pixelzone eines Schirms einer Anzeige angezeigt. Der Mischer 44 gibt
suk zessiv die 1 Pixel entsprechenden Segmente des zusammengesetzten
Videosignals an eine Anzeige 46 aus.
-
Die
Anzeige 46 zeigt das zusammengesetzte Videosignal auf ihrem
Schirm an. Dementsprechend wird die durch das zusammengesetzte Videosignal
repräsentierte
Bildinformation visualisiert. Die visualisierte Bildinformation
enthält
Zeichen, die Worte in einem Lied oder Überschriften in einem Film
bilden. Wie sich aus der vorhergehenden Erläuterung versteht, werden die
Zeichen mit blauen Rändern versehen.
-
Es
sollte besonders erwähnt
werden, dass der Lauflängencodierer 42 durch
einen MR- (modifiziertes READ bzw. LESEN) oder einen MMR-Decodierer (modifiziertes
modifiziertes READ bzw. LESEN) ersetzt werden kann.
-
Zweite Ausführungsform
-
12 zeigt
eine zweite Ausführungsform dieser
Erfindung, die ihrer ersten Ausführungsformen ähnlich ist,
außer
dass ein Rand-Detektor 14A den Rand-Detektor 14 in 2 ersetzt.
-
Der
Rand-Detektor 14A erzeugt Information über Ränder aus den vom Quantisierer 13 zugeführten 4-wertigen
Datensegmenten. Die Ränder
beziehen sich auf Zeichen, welche Worte oder Überschriften bilden und welche
durch die 4-wertigen Datensegmente repräsentiert werden. Der Rand-Detektor 14A gibt
die erzeugte Information über
Ränder
an den Rand-Generator 16 aus.
-
Der
Rand-Detektor 14A enthält
einen Speicher zum Sammeln von neun 4-wertigen Datensegmenten entsprechend
neun benachbarten Pixeln in ei nem gleichen Frame oder einem gleichen
Feld. Die neun benachbarten Pixel bilden ein Fenster. Wie in 13 gezeigt
ist, liegen die neun benachbarten Pixel in einer Anordnung 3 mal
3 vor. In 13 bezeichnet "C" ein Pixel von Interesse, während "N" jedes Pixel nahe dem Pixel von Interesse
bezeichnet. In 13 nimmt das Pixel "C" von Interesse die Mitte der 3-mal-3-Anordnung ein.
Die 3-mal-3-Anordnung in 13 ist
dafür ausgelegt,
Ränder
mit einer Breite von 1 Pixel in Flächen um die Zeichen zu liefern.
Der Rand-Detektor 14A entscheidet, ob die neun 4-wertigen
Datensegmente in spezifizierten Bedingungen vorliegen oder nicht,
in denen das Pixelcodewort des 4-wertigen Datensegments entsprechend
dem Pixel "C" von Interesse "01", "10" oder "11" ist, während alle
Pixelcodeworte der 4-wertigen
Datensegmente entsprechend den nahen Pixeln "N" "00" sind. Wenn die neun
4-wertigen Datensegmente in den spezifizierten Bedingungen vorliegen,
entscheidet der Rand-Detektor 14A, dass alle nahen Pixel "N" Abschnitte von Rändern bilden sollen. Der Rand-Detektor 14A nutzt
eine Positionsinformation der 4-wertigen Datensegmente entsprechend
den nahen Pixeln "N" beim Erzeugen von
Information über
Ränder. Wenn
die neun 4-wertigen Datensegmente nicht in den spezifizierten Bedingungen
vorliegen, entscheidet der Rand-Detektor 14A, dass die
nahen Pixel "N" keine Abschnitte
von Rändern
bilden sollen. Der Rand-Detektor 14A nutzt eine Position
zur Information der 4-wertigen Datensegmente entsprechend den nahen
Pixeln "N" beim Erzeugen von
Information über
Ränder.
Die neun 4-wertigen Datensegmente, die im Rand-Detektor 14A gesammelt
werden, werden periodisch aktualisiert, so dass das Fenster sich bewegen
und das Pixel "C" von Interesse sich
in einer vorbestimmten Scan-Reihenfolge bezüglich eines "Frame" oder "Feld" verschieben wird.
Die oben angegebene Sequenz von Prozessen wird wiederholt, während das
Fenster bewegt wird. Als Folge wird eine Information über Ränder erzeugt,
welche einem Frame oder einem Feld entspricht.
-
Die
Information über
Ränder,
welche durch den Rand-Detektor 14A erzeugt wird, weist
Stücke auf,
die jeweils einem Pixel entsprechen. Jedes Stück der Information über Ränder repräsentiert,
ob ein betreffendes Pixel ein Abschnitt von Rändern sein soll oder nicht.
Der Rand-Detektor 14A gibt die Stücke der Information über Ränder sukzessiv
an den Rand-Generator
aus.
-
Zum
Beispiel wandelt der Rand-Detektor 14A jedes 4-wertige
Datensegment in ein 2-wertiges Datensegment um, welches entweder "0" oder "1" ist. Jedes
4-wertige Datensegment entsprechend einem Pixel, welches kein Abschnitt
von Rändern
sein soll, wird in ein 2-wertiges Datensegment umgewandelt, welches "0" ist. Jedes 4-wertige Datensegment entsprechend
einem Pixel, welches ein Abschnitt von Rändern sein soll, wird in ein
2-wertiges Datensegment umgewandelt, welches "1" ist.
Die 2-wertigen Datensegmente werden vom Rand-Detektor 14A als 1
Pixel entsprechende Stücke
der Information über Ränder sukzessiv
an den Rand-Detektor 16 abgegeben.
-
Dritte Ausführungsform
-
14 zeigt
eine dritte Ausführungsform dieser
Erfindung, die ihrer ersten Ausführungsform ähnlich ist,
außer
dass ein Rand-Detektor 14B den Rand-Detektor 14 in 2 ersetzt.
-
Der
Rand-Detektor 14B erzeugt Information über Ränder aus den vom Quantisierer 13 zugeführten 4-wertigen
Datensegmenten. Die Ränder
betreffen Zeichen, welche Worte oder Überschriften bilden und durch
die 4-wertigen Datensegmente repräsentiert werden. Der Rand-Detektor 14B gibt
die erzeugte Information über
Ränder
an den Rand-Generator 16 aus.
-
Der
Rand-Detektor 14B enthält
einen Speicher zum Sammeln von fünfundzwanzig
4-wertigen Datensegmenten entsprechend fünfundzwanzig benachbarten Pixel
in einem gleichen Frame oder einem gleichen Feld. Die fünfundzwanzig
benachbarten Pixel bilden ein Fenster. Wie in 15 gezeigt
ist, liegen die fünfundzwanzig
benachbarten Pixel in einer Anordnung 5 mal 5 vor. In 15 bezeichnet "C" ein Pixel von Interesse, während "N" jedes Pixel nahe dem Pixel von Interesse
bezeichnet. In 15 nimmt das Pixel "C" von Interesse die obere linke Ecke
der 5-mal-5-Anordnung
ein. Die 5-mal-5-Anordnung in 15 ist
entworfen, um Ränder
mit einer Breite von 4 Pixel in Flächen zu liefern, die sich rechts
und links von den Zeichen benachbart erstrecken. Der Rand-Detektor 14B entscheidet,
ob die fünfundzwanzig
4-wertigen Datensegmente in spezifizierten Bedingungen sind oder
nicht, in denen das Pixelcodewort des 4-wertigen Datensegments entsprechend dem
Pixel "C" "01", "10" oder "11" ist, während alle
Pixelcodeworte der 4-wertigen Datensegmente entsprechend den nahen
Pixeln "N" "00" sind.
Wenn die fünfundzwanzig
4-wertigen Datensegmente
in den spezifizierten Bedingungen vorliegen, entscheidet der Rand-Detektor 14B,
dass alle nahen Pixel "N" Abschnitte von Rändern bilden
sollen. Der Rand-Detektor 14B nutzt eine Positionsinformation
der 4-wertigen Datensegmente entsprechend den nahen Pixeln "N" beim Erzeugen von Information über Ränder. Wenn
die fünfundzwanzig
4-wertigen Datensegmente
nicht in den spezifizierten Bedingungen vorliegen, entscheidet der
Rand-Detektor 14B, dass die nahen Pixel "N" keine Abschnitte von Rändern bilden sollen.
Der Rand-Detektor 14B nutzt eine Positionsinformation der
4-wertigen Datensegmente entsprechend den nahen Pixeln "N" beim Erzeugen von Information über Ränder. Die
fünfundzwanzig
4-wertigen Datensegmente, die im Rand-Detektor 14B gesammelt
werden, werden periodisch aktualisiert, so dass das Fenster sich
bewegen und das Pixel "C" von Interesse sich
einzeln in einer vorbestimmten Scan-Reihenfolge bezüglich "Frame" oder "Feld" verschieben wird.
Die oben angegebene Sequenz von Prozessen wird wiederholt, während das
Fenster bewegt wird. Als Folge wird eine Information über Ränder erzeugt,
die einem Frame oder einem Feld entspricht.
-
Die
Information über
Ränder,
welche durch den Rand-Detektor 14B erzeugt wird, weist
Stücke auf,
die jeweils einem Pixel entsprechen. Jedes Stück der Information über Ränder repräsentiert,
ob ein betreffendes Pixel ein Abschnitt von Rändern sein soll oder nicht.
Der Rand-Detektor 14B gibt die Stücke der Information über Ränder an
den Rand-Generator 16 sukzessiv aus.
-
Beispielsweise
wandelt der Rand-Detektor 14B jedes 4-wertige Datensegment
in ein 2-wertiges Datensegment um, welche entweder "0" oder "1" ist. Jedes
4-wertige Datensegment entspricht einem Pixel, welches kein Abschnitt
von Rändern
sein soll, wird in ein 2-wertiges Datensegment umgewandelt, das "0" ist. Jedes 4-wertige Datensegment,
das einem Pixel entspricht, welches ein Abschnitt von Rändern sein
soll, wird in ein 2-wertiges
Datensegment umgewandelt, das "1" ist. Die 2-wertigen
Datensegmente werden vom Rand-Detektor 14B als 1 Pixel entsprechende
Stücke
der Information über
Ränder sukzessiv
an den Rand-Detektor 16 ausgegeben.
-
Vierte Ausführungsform
-
16 zeigt
eine vierte Ausführungsform dieser
Erfindung, welche ihrer ersten Ausführungsform mit Ausnahme von
Entwurfsänderungen ähnlich ist,
die im folgenden angegeben werden.
-
Mit
Verweis auf 16 enthält eine Bilddaten komprimierende
Vorrichtung einen Eingangsanschluss 51 und einen Computer 52.
Eingabedaten werden über
den Eingangsanschluss 51 an den Computer 52 geliefert.
Die Eingabebilddaten repräsentieren
zum Beispiel Zeichen, die Worte in einem Lied oder Überschriften
in einem Film bilden. Die Eingabebilddaten weisen einen Strom von
1 Pixel entsprechenden Datensegmenten auf.
-
Der
Computer 52 enthält
eine Kombination eines Eingabe/Ausgabe-Ports 52A, eine
CPU 52B, einen ROM 52C und einen RAM 52D.
Der Computer 52 arbeitet gemäß einem im ROM 52C gespeicherten Programm.
Die 1 Pixel entsprechenden Segmente der Eingabebilddaten werden
sukzessiv an den Eingabe/Ausgabe-Port 52A geliefert. Der
Computer 52 wandelt jedes 1 Pixel entsprechende Segment
der Eingabebilddaten in ein 1 Pixel entsprechendes 4-wertiges Datensegment
um. Der Computer 52 gibt sukzessiv die 4-wertigen Datensegmente
an einen Lauflängencodierer 53 aus.
Konkret werden über
den Eingabe/Ausgabe-Port 52A die 4-wertigen Datensegmente
ausgegeben.
-
Der
Lauflängencodierer 53 ist
dem Lauflängencodierer 17 in 2 ähnlich.
Hinter dem Lauflängencodierer 53 befindet
sich ein Ausgangsanschluss 54. Die 4-wertigen Datensegmente
werden durch den Lauflängencodierer 53 in
entsprechende Worte eines gegebenen Lauflängencodes codiert. Die Worte
des gegebenen Lauflängencodes
bilden ein aus einer Codierung resultierendes Signal. Das aus der Codierung
resultierende Signal hat einen Bitstrom. Das aus der Codierung resultierende
Signal wird vom Lauflängencodierer 53 an
den Ausgangsanschluss 54 ausgegeben, bevor es zu einem
(in 16 nicht dargestellten) externen Gerät übertragen
wird.
-
Es
sollte besonders erwähnt
werden, dass der Computer 52 durch einen Digitalsignalprozessor oder
ein ähnliches
Gerät ersetzt
werden kann.
-
17 ist
ein Flussdiagramm eines ersten Abschnitts des den Computer 52 betreffenden
Programms. Der Programmabschnitt in 17 wird
für jedes
1 Pixel entsprechende Segment der Eingabebilddaten ausgeführt.
-
Wie
in 17 gezeigt ist, quantisiert ein erster Schritt
S1 des Programmabschnitts ein aktuelles 1 Pixel entsprechendes Segment
der Eingabebilddaten in ein 4-wertiges Datensegment gemäß der Luminanz
(der Helligkeit), die durch das 1 Pixel entsprechende Segment der
Eingabebilddaten repräsentiert wird.
Jedes vom Schritt S1 erzeugte 4-wertige Datensegment hat zwei Bits.
Jedes durch den Schritt S1 erzeugte 4-wertige Datensegment kann
sich unter vier verschiedenen Zuständen (vier verschiedenen Werten),
d.h. "00", "01", "10" und "11", ändern. Die
vier verschiedenen Zustände
jedes durch den Schritt S1 erzeugten 4-wertigen Datensegments entsprechen jeweils
vier verschiedenen Luminanzpegeln.
-
Ein
dem Schritt S1 folgender Schritt S2 schreibt das durch den Schritt
S1 erzeugte 4-wertige Datensegment in ein Segment eines ersten Frame-Speichers oder eines
zweiten Frame-Speichers, der eine Adresse aufweist, die dem auf
das 4-wertige Datensegment bezogenen Pixel entspricht. Konkret greift
der Schritt S2 auf den ersten Frame-Speicher zu, wenn der zweite
Frame-Speicher gerade einen Datenleseprozess durchmacht. Der Schritt
S2 greift auf den zweiten Frame-Speicher zu, wenn der erste Frame-Speicher
einen Datenleseprozess durchmacht. Dementsprechend macht einer der
ersten und zweiten Frame-Speicher einen Datenschreibprozess durch,
während
der andere Frame-Speicher einen Datenleseprozess durchmacht. Außerdem macht
jeder der ersten und zweiten Frame-Speicher abwechselnd einen Datenschreibprozess
und einen Datenleseprozess durch. Die ersten und zweiten Frame-Speicher
werden im RAM 52D geliefert. Nach dem Schritt S2 endet
der aktuelle Ausführungszyklus des
Programmabschnitts.
-
18 ist
ein Flussdiagramm eines zweiten Abschnitts des auf den Computer 52 bezogenen
Programms. Der Programmabschnitt in 18 wird
bezogen auf die Eingabebilddaten für jeden Frame oder jedes Feld
ausgeführt.
-
Wie
in 18 gezeigt ist, löscht ein erster Schritt S11
des Programmabschnitts einen dritten Frame-Speicher und einen vierten
Frame-Speicher, die im RAM 52D vorgesehen sind. Der dritte
Frame-Speicher ist so ausgelegt, dass der 1 Frame entsprechende
Satz (oder 1 Feld entsprechende Satz) von 1 Pixel entsprechenden
Signalen mit jeweils einem Bit speichert. Folglich setzt der Schritt
S11 alle 1-Bit-Signale im dritten Frame-Speicher auf "0". Wie später verdeutlicht wird, repräsentieren
die 1-Bit-Signale im dritten Frame-Speicher alle Information über Ränder. Der
vierte Frame-Speicher
ist so ausgelegt, dass er einen 1 Frame entsprechenden Satz (oder
einen 1 Feld entsprechenden Satz) von 1 Pixel entsprechenden Signalen
mit jeweils zwei Bits speichert. Folglich setzt der Schritt S11
alle 2-Bit-Signale im
vierten Frame-Speicher auf "00". Die 2-Bit-Signale im
vierten Frame-Speicher werden jeweils als 3-wertige Datensegmente
genutzt.
-
Ein
dem Schritt S11 folgender Schritt S12 greift auf den ersten Frame-Speicher oder den
zweiten Frame-Speicher zu, der keinen Datenschreibprozess durchmacht.
Konkret liest der Schritt S12 aus dem ersten Frame-Speicher oder dem
zweiten Frame-Speicher neun 4-wertige Datensegmente aus, welche
neun benachbarten Pixeln im gleichen Frame oder gleichen Feld entsprechen.
Die neun benachbarten Pixel bilden ein Fenster. Wie in 4 gezeigt ist,
sind die neun benachbarten Pixel in einer Anordnung (einem Fenster)
von 3 mal 3 vorgesehen. In 4 bezeichnet "C" ein Pixel von Interesse, während "N" jedes Pixel nahe dem Pixel von Interesse bezeichnet.
In 4 nimmt das Pixel "C" von
Interesse die obere linke Ecke des 3-mal-3-Fensters ein. Der Schritt
S12 entscheidet, ob die neun 4-wertigen Datensegmente
in spezifizierten Bedingungen vorliegen oder nicht, in denen das
Pixelcodewort des 4-wertigen Datensegments entsprechend dem Pixel "C" von Interesse "01", "10" oder "11" ist, während alle
Pixelcodeworte der 4-wertigen Datensegmente entsprechend den nahen
Pixeln "N" "00" sind.
Wenn die neun 4-wertigen Datensegmente in den spezifizierten Bedingungen
vorliegen, entscheidet der Schritt S12, dass alle nahen Pixel "N" Abschnitte von Rändern bilden sollen. In diesem
Fall setzt der Schritt S12 die 1-Bit-Signale im dritten Frame-Speicher
auf "1", welche den nahen
Pixeln "N" jeweils entsprechen.
Wenn die neun 4-wertigen
Datensegmente nicht in den spezifizierten Bedingungen vorliegen, greift
der Schritt S12 nicht auf den dritten Frame-Speicher zu. Der Schritt
S12 iteriert die oben angegebene Sequenz der Prozesse, während das Fenster
bewegt und das Pixel "C" von Interesse einzeln
in einer vorbestimmten Scan-Reihenfolge bezüglich "Frame" oder "Feld" verschoben
wird, d.h. während "Frame" oder "Feld" Pixel um Pixel gescannt
wird. Als Ergebnis wird die Erzeugung einer Information über Ränder abgeschlossen,
welche dem vorliegenden Frame oder dem vorliegenden Feld entsprechen.
Die Information über
Ränder
wird im dritten Frame-Speicher gespeichert. Information über Ränder, welche
im dritten Frame-Speicher gespeichert ist, hat Stücke, die
jeweils einem Pixel entsprechen. Jedes 1 Pixel entsprechende Stück der Information über Ränder, welche "1" ist, repräsentiert, dass ein entsprechendes
Pixel ein Abschnitt der Ränder
sein soll. Jedes 1 Pixel entsprechende Stück der Information über Ränder, welches "0" ist, repräsentiert, dass ein entsprechendes
Pixel kein Abschnitt der Ränder
sein soll.
-
Es
sollte besonders erwähnt
werden, dass das durch den Schritt S12 verwendete Fenster eine Anordnung
von 13 oder 14 aufweisen
kann.
-
Ein
dem Schritt S12 folgender Schritt S13 liest sukzessiv die 4-wertigen
Datensegmente aus dem ersten Frame-Speicher oder dem zweiten Frame-Speicher aus, welcher
keinen Datenschreibprozess durchmacht. Für jedes 4-wertige Datensegment "11" setzt der Schritt
S13 das entsprechende 3-wertige
Datensegment im vierten Frame-Speicher auf "10".
Für jedes
4-wertige Datensegment
von "00" setzt der Schritt
S13 das entsprechende 3-wertige Datensegment
im vierten Frame-Speicher auf "00". Für jedes
4-wertige Datensegment "10" setzt der Schritt
S13 das entsprechende 3-wertige
Datensegment im vierten Frame-Speicher auf "10".
Für jedes 4-wertige Datensegment "01" setzt der Schritt
S13 das entsprechende 3-wertige
Datensegment im vierten Frame-Speicher auf "01".
Als Ergebnis wird das Setzen der 3-wertigen Datensegmente, welche
dem vorliegenden Frame oder dem vorliegenden Feld entsprechen, abgeschlossen.
Die 3-wertigen Datensegmente
werden im vierten Frame-Speicher gespeichert.
-
Ein
dem Schritt S13 folgender Schritt S14 liest sukzessiv die 3-wertigen
Datensegmente aus dem vierten Frame-Speicher aus. Außerdem liest
der Schritt S14 sukzessiv die 1 Pixel entsprechenden Stücke der
Information über
Ränder
aus dem dritten Frame-Speicher aus. Der Schritt S14 erzeugt ein 4-wertiges
Datensegment als Antwort auf jedes 3-wertige Datensegment und jedes
Stück der
Information über
Ränder,
welche einem gleichen Pixel entsprechen. Jedes 4-wertige Datensegment,
das durch den Schritt S14 erzeugt wurde, hat zwei Bits. Jedes 4-wertige
Datensegment, das durch den Schritt S14 erzeugt wird, kann sich
unter vier verschiedenen Zuständen
(vier verschiedenen Werten), d.h. "00", "01", "10" und "11", ändern. Auf
die vier verschiedenen Zustände
wird auch als vier verschiedene Pixelcodeworte verwiesen.
-
Konkret
setzt, wenn das Stück
der Information über
Ränder
repräsentiert,
dass ein betreffendes Pixel einen Abschnitt von Rändern sein
soll, d.h. wenn das Stück
der Information über
Ränder "1" ist, der Schritt S14 das entsprechende
4-wertige Datensegment auf "11" ungeachtet des Zustan
des des entsprechenden 3-wertigen Datensegments. Wenn das Stück der Information über Ränder repräsentiert, dass
ein betreffendes Pixel kein Abschnitt von Rändern sein soll, d.h. wenn
das Stück
der Information über
Ränder "0" ist, setzt der Schritt S14 das entsprechende
4-wertige Datenstück
auf den Zustand, der gleich dem Zustand des entsprechenden 3-wertigen Datensegments
ist. Folglich werden in diesem Fall ein 4-wertiges Datensegment "00", ein 4-wertiges Datensegment "01" und ein 4-wertiges
Datensegment "10" als Antwort auf
ein 3-wertiges Datensegment "00", ein 3-wertiges
Datensegment "01" bzw. ein 3-wertiges
Datensegment "10" erzeugt. Dementsprechend
repräsentiert
jedes 4-wertige Datensegment "11", welches durch den
Schritt S14 erzeugt wird, dass ein entsprechendes Pixel ein Abschnitt von
Rändern
sein soll. Auf der anderen Seite repräsentieren 4-wertige Datensegmente
anderer Zustände,
welche durch den Schritt S14 erzeugt werden, dass entsprechende
Pixel keine Abschnitte von Rändern
sein sollen.
-
Wie
es sich aus der vorhergehenden Erläuterung versteht, kombiniert
oder multiplexiert der Schritt S14 jedes 3-wertige Datensegment
und jedes Stück
der Information über
Ränder
in ein 4-wertiges Datensegment.
-
Der
Schritt S14 schreibt jedes erzeugte 4-wertige Datensegment in ein
Segment eines fünften
Frame-Speichers oder eines sechsten Frame-Speichers, der eine Adresse hat, die
dem auf das 4-wertige Datensegment bezogenen Pixel entspricht. Konkret
greift der Schritt S14 auf den fünften
Frame-Speicher zu, wenn der sechste Frame-Speicher einen Datenleseprozess
durchmacht. Der Schritt S14 greift auf den sechsten Frame-Speicher zu, wenn
der fünfte
Frame-Speicher einen Datenleseprozess durchmacht. Demgemäß macht
der fünfte
oder sechste Frame-Speicher einen Datenschreibprozess durch, während der
andere Frame-Speicher einen Datenleseprozess durchmacht. Außerdem macht
jeder der fünften
und sechsten Frame-Speicher abwechselnd einen Datenschreibprozess
und einen Datenleseprozess durch. Der fünfte und sechste Frame-Speicher sind im
RAM 52D vorgesehen. Nach dem Schritt S14 endet der aktuelle
Ausführungszyklus
des Programmabschnitts.
-
19 ist
ein Flussdiagramm eines dritten Abschnitts des auf den Computer 52 bezogenen
Programms. Der Programmabschnitt in 19 wird
für jedes
1 Pixel entsprechende Segment der vom Computer 52 ausgegebenen
Bilddaten ausgeführt.
-
Wie
in 19 gezeigt ist, liest ein erster Schritt S21 des
Programmabschnitts ein bezeichnetes 4-wertiges Datensegment aus
dem fünften
Frame-Speicher oder dem sechsten Frame-Speicher aus, der keinen
Datenschreibprozess durchmacht.
-
Ein
dem Schritt S21 folgender Schritt S22 gibt das durch den Schritt
S21 ausgelesene 4-wertige Datensegment als ein 1 Pixel entsprechendes
Segment der Ausgabebilddaten aus, die an den Lauflängencodierer 53 geliefert
werden. Nach dem Schritt S22 endet der aktuelle Ausführungszyklus
des Programmabschnitts.
-
Es
sollte besonders erwähnt
werden, dass der Lauflängencodierer 53 durch
einen MR-Codierer (modified READ) oder einen MMR-Codierer (modified
modified READ) ersetzt werden kann.