DE3219892A1 - Verfahren zum komprimieren eines digitalisierten bildes - Google Patents

Verfahren zum komprimieren eines digitalisierten bildes

Info

Publication number
DE3219892A1
DE3219892A1 DE19823219892 DE3219892A DE3219892A1 DE 3219892 A1 DE3219892 A1 DE 3219892A1 DE 19823219892 DE19823219892 DE 19823219892 DE 3219892 A DE3219892 A DE 3219892A DE 3219892 A1 DE3219892 A1 DE 3219892A1
Authority
DE
Germany
Prior art keywords
value
values
line
block
area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE19823219892
Other languages
English (en)
Inventor
Olivier Pontault Combault Clerco de
Andre Palaiseau Marguinaud
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Thales SA
Original Assignee
Thomson CSF SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Thomson CSF SA filed Critical Thomson CSF SA
Publication of DE3219892A1 publication Critical patent/DE3219892A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00007Time or data compression or expansion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N11/00Colour television systems
    • H04N11/04Colour television systems using pulse code modulation
    • H04N11/042Codec means
    • H04N11/046DPCM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

München
Stuttgart
27. Mai 1982
THOMSON - CSF
173, Bd. Haussmann
75008 PARIS / Frankreich
Unser Zeichen: T 3503
Verfahren zum Komprimieren eines digitalisierten Bildes
Die Erfindung bezieht sich auf ein Verfahren zum Komprimieren eines digitalisierten Bildes, das dazu bestimmt ist, die dieses Bild repräsentierende Informationsmenge vor ihrer Abspeicherung oder übertragung zu reduzieren. Im ersten Fall ermöglicht eine Kompression die Verwendung eines kleineren und
somit kostengünstigeren Speichers. Im zweiten Fall ermöglicht eine Kompression, in einer gegebenen Zeit ein Bild über
einen Kanal mit geringerer Übertragungskapazität zu übertragen.
Es werden zwei Kategorien von Verfahren zum Komprimieren eines Bildes unterschieden, nämlich diejenigen, die mit einem Teilbildspeicher arbeiten sowie diejenigen, die mit einem Zeilenspeicher arbeiten. Letztere sind weniger leistungsfähig, jedoch erfordern sie einen kleineren und somit billigeren Speicher. Das erfindungsgemäße Verfahren gehört dieser zweiten
Kategorie an. Diese bekannten Vertanren der zweiten KaLeijurie umfassen hauptsächlich die Verfahren mit Steilheitscodierung und mit Bereichscodierung. Die Bewertungskriterien für
Schw/Gl
die erhaltenen Ergebnisse sind der Reduktionsfaktor der Informationsmenge, die Kompliziertheit-, der Algorithmen, die sich durch die Zahl der für jeden Punkt ausgeführten elementaren Rechenoperationen ausdrückt, sowie die Standardabweichung zwischen den Helligkeitswerten des wiederhergestellten Bildes und den Helligkeitswerten des Originalbildes.
Unter den zwei genannten Verfahren ist das Bereichscodierverfahren dasjenige, das bei einer gegebenen Standards!- weichung und einer gegebenen Anzahl von Rechenoperationen den besten Reduktionsfaktor ergibt. Ihm liegt folgendes P r inz ip zug runde:
Ein Bild wird abgetastet, und der Helligkeitswert jedes Punkts wird digitalisiert. Anstelle der einzelnen Codierung der Helligkeit jedes Punktes besteht das Verfahren darin, auf einmal jeweils die Helligkeit von "Bereichen" zu codieren, die von benachbarten Punkten gebildet sind, die der gleichen Zeile angehören und den gleichen Helligkeitswert haben. Jeder Bereich ist durch seine Länge und durch seine Helligkeit gekennzeichnet. Die Codierung besteht darin, die Folge von Helligkeitswerten von Punkten durch eine Folge von Längen-Helligkeits-Paaren zu ersetzen. Dieses Verfahren ist einfach, es benötigt wenig Rechenoperationen und es verursacht keine Codierungs-Decodierungs-Fehler. jedoch ist sein Reduktionsfaktor für die Informationsmenge klein, nämlich 1,1 bis 1,3. Dieses Verfahren ist insbesondere in dem Aufsatz "A Probabilistic Model for Run-Length Coding of Pictures" von J. Capon, I.R.E., Transaction Information Theory I.T.5 vom 4. Dezember 1954, Seiten 157 bis 163 und in dem Aufsatz "Run Length Encodings" von S.W. Golomb I.E.E.E. Transaction information Theory I.T.12 vom Juli 1966, Seiten 399 bis 401 beschrieben.
Außerdem ist auch ein schon als klassisch zu bezeichnendes Datenkompressionsverfahren bekannt, nämlich die Differenzcodierung/ bei der zur Verbesserung eine Gewichtung des Bezugswerts durchgeführt wird, damit die Wirkung von Übertragungsfehlern herabgesetzt wird. Diese Codierung ist in ''Delta Modulation Systems" von R. STEELE, erschienen bei Pentech Press London, beschrieben.
Wenn beispielsweise der Bezugswert in der gleichen Zeile genommen wird, kann der Wert B.. der Helligkeit des j-ten Punkts der i-ten Zeile durch D..=B..-X-B. . Λ codiert werden, wobei λ eine feste Zahl zwischen 0 und 1 ist und B. . Λ
J-/J~' der Wert der Helligkeit des unmittelbar vorangehenden Punkts
der gleichen Zeile ist.
Das erfindungsgemäße Verfahren erweitert die Bereichscodie— rung auf zwei Dimensionen und kombiniert sie mit der mit Gewichtung arbeitenden Differenzcodierung, damit bessere Ergebnisse erhalten werden.
Das erfindungsgemäße Verfahren ist im Patentanspruch 1 definiert.
Weitere Merkmale und Eigenschaften der Erfindung ergeben sich aus der anschließenden Beschreibung der Zeichnung, deren Figuren folgendes zeigen:
Fig. 1 ein Flußdiagramm eines Ausführungsbeispiels von Vorgängen beim Codieren eines Bildes mittels des erfindungsgemäßen Verfahrens,
Fig. 2, Fig. 3 und rig. 5
Einze-- leiten von Teilen des Flußdiagramms von F-Itr. 1,
Fig. 4 ein Ausführurgsbeispiel zur Durchführung eines Teils des FluSdiagramms von Fig. 1,
Fig. 6 ein Flußdiagramm eines Ausführungsbeispiels von Vorgängen beim Decodieren eines Bildes mittels des erf indungsgernäßen Verfahrens,
Fig. 7 und Fig. 8
Einzelheiten von Teilen des Flußdiagramms von Fig. 6.
Die digitalen Werte B.-, die für Punkte eines Bildes charakteristisch sind, können insbesondere Helligkeitswerte sein.
Bekannte Weiterentwicklungen ermöglichen es, das Bereichscodierungsverfahren beträchtlich zu verbessern.
Eine erste Verbesserung besteht darin, eine Toleranz um den Helligkeitswert jedes Bereichs festzulegen. Diese Toleranz kann 1 oder 2 % dec Maximali-rert= der Helligkeit betragen. Diese Nivellierung der Bereiche ist für die Bildqualität wenig störend, sie hat sogar den Vorteil, einen Teil des Rauschens zu unterdrücken. Statistisch gesehen sind die
Bereiche um so länger, je größer die Toleranz ist, und je größer der Reduktionsfaktor ist, um so mehr nimmt die Standardabweichung zu.
ti Eine zweite Verbesserung besteht darin, die Anzahl der für !■' die Codierung der Bereichslänge vorgesehenen Bits zu optimieren. Bei einem Bild mit 512 Punkten pro Zeile haben 80% i der Bareiche statistisch eine Länge von weniger als 8 Punk- \ ten. Das für die Codierung der Länge reservierte Feld wird als ein Feld mit 8 Bits gewählt. Die Längenbereiche mit mehr als 8 Punkten werden in mehreren Bruchteilen codiert.
Eine dritte bekannte Verbesserung besteht darin, die Anzahl ' der für die Codierung der Helligkeit eines Bereichs vorgesehenen Bits zu optimieren. Für Helligkeiten, die beispiels- > weise in 8 Bits codiert sind, übersteigt die Differenz der | Helligkeiten von zwei aufeinanderfolgenden Rprpichen kaum +/16. | Die optimierte Codierung besteht darin, die Helligkeitsdiffe- |
renzen anstelle des mit 8 Bits codierten Absolutwerts mit nur \
5 Bits zu übertragen. Wenn der Wert der Differenz der Hellig- I
keiten großer als _+1 6 ist, was nur ausnahmsweise vorkommt, \
wird er durch den mit 8 Bits codierten absoluten Helligkeits- | wert ersetzt. Zum Unterscheiden dieser zwei Fälle wird dem
Helligkeitscodierungsfeld ein Bit hinzugefügt. f
Das erfindungsgemäße Verfahren verbessert das Bereichscodie- | rungsverfahren insbesondere durch Ausnutzung der Wechselbe- >| Ziehung, die zwischen den Bereichshelligkeiten einerseits | und den Bereichslängen andererseits bei zwei aufeinanderfol- | genden Zeilen vorhanden sind. In dem Ausführungsbeispiel die- § ses Verfahrens, das anschließend beschrieben wird, wird angenommen, daß das Bild in zwei Halbbildern abgetastet und nicht in einem Halbbild- oder Bild-Speicher abgespeichert wird, so daß die zwei betrachteten Zeilen somit dem gleichen Halbbild angehören.
Das erfindungsgemäße Verfahren vereinigt das Bereichscodierverfahren mit dem Differenzcodierverfahren, wobei ein Gewichtungskoeffizient λ angewendet wird, der vorzugsweise mit dem Wert 1/2 gewählt wird- Bei Berücksichtigung der statistischen Eigenschaften der Helligkeitswerte eines Bildes ergibt dieser Koeffizient einen besonders guten Kompressionsgrad. Außerdem ist eine Teilung durch 2 in einem Rechner leicht und schnell durchzuführen, da sie dadurch ausgeführt werden kann, daß
die Binärziffern der zu teilenden Zahl um eine Stelle verschoben werden.
Das erfindungsgemäße Verfahren umfaßt drei große Abschnitte, von denen der erste aus der Ausnutzung der Wechselbeziehung
zwischen den Helligkeitswerten von Punkten in zwei aufeinanderfolgenden Zeilen ist. Die Helligkeit B. . des Punkts der
13
Rangordnung j in der i-ten Zeile erfährt eine gewichtete Differenzcodierung, bei der als Bezugswert einer der Helligkeitswerte B. Λ . oder B. Λ . ., oder B. Λ .... genommen wird, der
ι—ι,D i~l,j—I l—l,D+I
dem zum laufenden Punkt homologen Punkt in der vorangehenden Zeile, dem diesem homologen Punkt vorangehenden bzw. dem auf diesen homologen Punkt folgenden Punkt entspricht.
Nach ihrer Abspeicherung oder ihrer Übertragung werden die
Daten decodiert, damit sie wieder benutzt werden können.
Bei der Decodierung wird als Bezugswert einer der codierten
und decodierten Helligkeitswerte B1 ._.. . oder B1 ._.. ._1 oder E'i-1,j + 1 entsprechend B1-1 #j, B1-1^, B±_1/j + 1 verwendet. Zwischen den Ursprungswerten und den codierten und decodierten Werten ist ein gewisser Fehler vorhanden. Um zu vermeiden,
daß das Codieren und das Decodieren mit zwei nicht identischen Bezugswerten erfolgt, was einen zusätzlichen Fehler
zur Folge hätte, wird bei der Codierung tatsächlich als Bezugswert einer der codierten und decodierten Werte
B'i-1,j-1' B'i-1,j+1 verwendet.
Je nach Fall ist der Punkt der vorangehenden Zeile, dessen Helligkeitswert dem Helligkeitswert des laufenden Punkts am nächsten kommt, entweder der homologe Punkt, der diesem vorangehende oder der diesem folgende Punkt. Zum Verbessern der mittels der Differenzcodierung erhaltenen Informationskompression macht das erfindungsgemäße Verfahren als Bezugswert vom Helligkeitswert des Punkts Gebrauch, der die beste Informationskompression ermöglicht. Andererseits vereinigt dieses Verfahren die Bereichscodierung mit der unter Verwendung eines dieser drei Bezugswerte gewichteten Differenzcodierung. Die Helligkeitswerte werden in Blöcken codiert, die jeweils benachbarten Punkten einer Zeile entsprechen, jedoch haben diese Punkte im Gegensatz zur Bereichscodierung nicht die gleiche Helligkeit, sondern die gleiche Helligkeitsdifferenz bezüglich ihres jeweiligen Bezugswerts, der sich in der vorangehenden Zeile befindet, und zwar genau am Punkt der gleichen Rangordnung oder am Punkt mit einer Versetzung um einen Rang nach rechts oder nach links. Die einem Block entsprechenden Punkte werden global verarbeitet, wobei die relative Position ihrer jeweiligen Bezugspunkte gleich angenommen wird, nämlich nicht verschoben, nach rechts verschoben oder nach links verschoben. Zur Identifizierung der relativen Position der Bezugspunkte werden im Zeitpunkt der Decodierung eines Blocks zwei Bits benötigt.
Als Beispiel sei ein digitalisiertes Bild mit 512 Zeilen zu je 512 Punkten angenommen, wobei die Helligkeit jedes Punkts durch eine Achtergruppe digitalisiert und durch die Hexadezimalwerte von zwei halben Achtergruppen dargestellt ist:
Zu codierende
Zeile i: 50, 53, 53, 54, 61, 60, 71, 70, 70, 68, 69, ... (i D
Zeile i-1: 38, 53, 53, 53, 60, 60, 60, 72, 72, 50T 51, 50, (Nach der Codierung und
Decodierung)
Zeile i-1 : 19, 26, 26, 26, 30, 30, 30, 36, 36, 25, 25r 25, gewichtet mit
λ = 1/2
Die Berechnung von (B. .-λ · B'. ergibt:
) für die i-te Zeile
S1 : 31, 27, 27, 28, 31, 30, 41, 34, 34, 43, 44, ...
Die Berechung von (B. .-λ · B',_. . ..) für die i-te Zeile
1 fj 11,31
ergibt:
31, 34, 27, 28, 35, 30, 41, 40, 34, 32, 44, ...
Für den ersten Wert existiert B1. Λ . Λ nicht, so daß die Eerech-
1—I,J—I
nung mit B1. Λ Λ, nämlich mit 38, durchgeführt wird. ι— ι , t
Die Berechnung von (B. .-λ · B'. Λ ■ -) für die i-te Zeile
ir 3 x-l,j+I
ergibt:
S_ : 24, 27, 27, 24, 31, 30, 35, 34, 45, 43, 44, ...
Für den letzten Wert existiert B1 . Λ .,
1—I,«
nicht, und es wird
dafür
-1
verwendet.
Die gewichtete Differenzcodierung der i-ten Zeile ergibt somit drei Folgen von N digitalen Werten S1, S?, S^, die jeweils einer Bezugswertmenge entsprechen. Diese Bezugswerte sind die Helligkextswerte der (i-1)-ten Zeile,
- für S1 ohne Verschiebung,
- für S„ mit einer Verschiebung um eine Stelle nach linke,
- für S3 mit einer Verschiebung um eine Stelle nach rechts.
Das Bereichscodierverfahren wird dann auf diese Folgen angewendet, wobei eine Beschränkung auf das Suchen des ersten Bereichs in jeder Folge durchgeführt wird. Andrerseits ": xben die in einem Bereich enthaltenen Zahlen keinen einheitlichen Wert, sondern gehören einem solchen, als Toleranz bezeichneten Intervall e an, das die Differenz zwischen dem Maximalwert und dem Minimalwert in jedem Bereich kleiner oder gleich 2e ist.
Wenn beispielsweise gut: e = 2, dann sind in den Folgen S1, S und S_. die ersten Bereiche wie anschließend angegeben:
[31 , 27, 28, 28, 31 , 3Oj, 41, 34, 34, 43, 44, ...
,: |31 , 34|, 27, 28, 35, 30, 41, 40, 34, 32, 44, ...
S3: |24, 27, 27, 24|, 31, 30, 35, 34, 45, 43, 44, ...
Das Verfahren besteht darin, festzustellen, welcher dieser Bereiche der längste ist, d.h. welcher die größte Anzahl von Werten in einem Intervall der Breite 2e = 4 enthält. Der längste Bereich ist der Bereich in der Folge S1. Er enthält
sechs Werte zwischen 27 und 31.
Ein Bereich ist außerdem durch einen Viert der Helligkeitsdifferenz, dem sogenannten Zentralwert, gekennzeichnet, der gleich dem in der Mitte einer Liste liegenden Wert ist, wenn die Werte mit zunehmender Größe eingeordnet werden. Wenn die Anzahl der Werte ungerade ist, ist der Zentralwert einer der zwei der Mitte der Liste am nächsten liegenden Werte. Diese Werte werden eingeteilt, indem derjenige berücksichtigt wird, der in der Liste am öftesten erscheint oder der dem arithmetischen Mittelwert am nächsten liegt. Bei |31 , 27, 28 -. 31, 30 ist der Zentralwert 30.
Eine Abwandlung des Verfahrens besteht darin, diejenige ganze Zahl zu nehmen, die dem arithmetischen Mittelwert der in dem Bereich enthaltenen Werte am nächsten liegt. Im obigen Beispiel ergäbe dies (31 + 27 + 28 + 31 + 30)/5 = 29.
Die Länge und der Zentralwert eines Bereichs bilden den codierten Wert eines Blocks von Helligkeitswerten B... Die Helligkeitswerte eines solchen Blocks sind nicnt notwendigerweise identisch, was im Gegensatz zur herkömmlichen Bereichscodierung steht.
- 10 -
Die Länge des einem Bereich entsprechenden Blocks von Helligkeitswerten, die durch das erfindungsgemäße Verfahren definiert ist, ist mit der Länge des Bereichs identisch.
Zum Codieren der nachfolgenden Helligkeitswerte besteht das Verfahren darin, in jeder der drei Folgen S , S„ und S3 einen zweiten Bereich zu suchen, indem im betrachteten Beispiel bei der siebten Rangstufe oder Stelle begonnen wird:
: !Länge: 6; Wert: 30] |4ij , 34, 43, 44, ...
S2: 141, 401, 34, 32, 44, ...
S3: [35, 34|, 45, 43, 44, ...
Diese drei Bereiche werden dann verglichen. Der längste Bereich wird zur Kennzeichnung eines zweiten Blocks aus Helligkeitswerten festgehalten.
Im betrachteten Beispiel besitzen die Folgen S2 und S- einen zweiten Bereich mit gleicher Länge. Als Kriterium für ihre Einordnung kann die Wertdifferenz in bezug auf den zuvor festgehaltenen Bereich genommen werden. Der Bereich, der die kleinere Wertdifferenz in bezug auf den zuvor festgehaltenen Bereich hat, ist der Bereich |35, 34|, der die Länge 2 und den Zentralwert 34 hat.
I Länge: 6; Wert: 26~| \JT\ , 43, 44 ...
[24], 32, 44 ...
|2; 341I45, 43, 44| ...
Anschließend wird in jeder der Folgen, beginnend mit der neunten Rangstufe, ein dritter Bereich gesucht, und der längste der drei Bereiche wird ausgewählt. Seine Länge und sein Zentralwert bilden die Codierung eines dritten Blocks aus Helligkeitswerten. Dieser Prozeß wird bis zum Ende der i-ten Zeile wiederholt.
- 11 -
6,- 26 I
12? 34| I 3; 44 |
Jeder Block aus Helligkeitswerten wird durch seine Länge, den Zentralwert des entsprechenden Bereichs und durch zwei Bits codiert, die angeben, daß die Codierung dieses Blocks bezüglich der vorangehenden Zeile ohne Verschiebung (S1) oder mit einer RechtsverSchiebung (S-,) oder mit einer Linksverschiebung (S2) stattgefunden hat.
Die auf diese Weise definierten Blöcke aus Helligkeitswerten fallen nicht zwangsläufig mit den Bereichen konstanter Helligkeit zusammen, die durch das herkömmliche Bereichscodierungsverfahren definiert worden wären. Der Ausdruck "Block" wird verwendet, damit jede Verwechslung mit den durch das herkömmliche Verfahren definierten Bereichen vermieden wird. Anschließend sei G die Länge s.'/ies Blocks, A sei die Helligkeitsdifferenz und D sei das die Verschiebung anhebende Binärwort. Die decodierte Helligkeit B1.. jedes von G Punkten, die einem Block entsprechen, ergibt sich je nach dem Verschiebungsanzeigewert wie folgt:
A + λ-B1. Λ . Λ
ι— ι ,j ι
oder
oder
Das erfindungsgemäße Verfahren weist einen zweiten großen Abschnitt auf, der aus der Ausnutzung der Wechselbeziehung zwischen den Bereichslängen von zwei aufeinanderfolgenden Zeilen besteht.
Beim erfindungsgemäßen Verfahren wird die Länge G eines Blocks aus Helligkeitswerten differenzmäßig bezüglich des am nächsten kommenden Blocks, der der vorangehenden Zeile angehört, codiert,
wenn eine solche vorhanden ist. Zur Bestimmung der relativen Position von Blöcken der (i-1)-ten Zeile bezüglich der Blöcke der i-ten Zeile im Verlauf der Verarbeitung,speichert eins Tabelle die Rangstufe, die die Lage der Mitte jedes Blocks der (i-l)-ten Zeile sowie ihre Länge angibt. Der am nächsten kommende Block ist derjenige, dessen Mitte der Mitte des betrachteten Blocks am nächsten liegt. G" sei die Länge des am nächsten kommenden Blocks in der (i-1)-ten Zeile„ Die codierte Länge des betrachte te:; Blocks ist dann:
H=G- λ-G"
Bei der Decodierung ist die Anzahl der diesem Block entsprechenden Punkte gleich:
Gr = H + X-G"
Der dritte große Abschnitt des erfindungsgemäßen Verfahrens ist die Ausnutzung der Wechselbeziehung zwischen den Differenzen der Helligkeiten von zwei benachbarten Blöcken der gleichen Zeile. Dieser Abschnitt besteht darin, mittels einer gewichteten Differenzcodierung den Wert der Helligkeitsdifferenz A eines Blocks in bezug auf den Wert der Helligkeitsdifferenz A" des unmittelbar vorangehenden Blocks in der gleichen Zeile zu codieren. Der codierte Wert von A ist J=A- λ·Α".
Wenn der betrachtete Block der erste Block der Zeile ist gilt: A" = 0; J= A.
Nach der Decodierung der Helligkeitsdifferenz des betrachteten Blocks gilt:
J1 = J + X-A"
Die erste Bildzeile ist ein Sonderfall, da bei ihrer Codierung nicht auf eine vorangehende Zeile Bezug genommen werden kann, weil eine solche nicht existiert. Es kann jedes andere Codierungsverfahren angewendet werden, beispielsweise eine verbesserte
- 13 -
Bereichscodierung, die darin besteht, daß die Helligkeitswerte B1 . (j = 1 bis N) in Blöcken, die Bereiche genannt werden, codiert werden, die von aufeinanderfolgenden Werten B1 . zwischen einem Intervall wie (Max B^. - Min B1.) 2e für alle Rangstufen j eines Bereichs gebildet sind. Jeder Bereich ist durch die Anzahl GQ der in ihm enthaltenen Helligkeitswerte, die als Bereichslänge bezeichnet ist, und durch seine Helligkeit, der gleich dem Zentralwert AQ der Helligkeitswerte in diesem Bereich genommen wird, gekennzeichnet. Der Zentralwert der Helligkeit wird differenzmäßig bezüglich A"o des dem betrachteten Bereich in der gleichen Zeile vorangehenden Bereichs codiert. Wenn der betrachtete Bereich der erste Bereicn der Zeile ist, wird A" gleich dem Wert 0 gesetzt. Der codierte Wert der Helligkeit ist:
C = Ao - λ'Α"ο
Wie für die zuvor beschriebenen Codierungsvorgänge ist es vorteilhaft, wenn angenommen wird: λ = 1/2.
Nach dem Decodieren ist der Wert der Helligkeit aller Punkte eines Bereichs gleich:
A'o = C + λ-Α»ο
Das oben beschriebene Verfahren kann dadurch verbessert werden, daß es mit weiteren bekannten Verfahren kombiniert wird, damit die aus den beschriebenen Kompressionsvorgängen erhaltenen Daten weiterkomprimiert werden.
Als erstes ist es möglich, die sogenannte Huffmann-Codierung, auch Codierung mit Vorsatz genannt, anzuwenden. Sie besteht darin, die statistischen Eigenschaften der zu codierenden Zeichen zur Verringerung der Gesamtzahl der zu übertragenden Bits auszunützen. Die Anzahl der Bits, mit denen ein Zeichen
- 14 -
codiert ist, hängen vom Zeichen selbst ab; die am häufigsten erscheinenden Zeichen sind mit einer sehr kleinen Anzahl von Bits codiert, und die weniger häufig erscheinenden Zeichen werden durch eine maximale Anzahl von Bits codiert. Diese Bits werden gespeichert oder ohne Rahmen übertragen, was ermöglicht, die Zeichen zu individualisieren, so daß die Informationsmenge reduziert wird. Damit das Decodieren ermöglicht wird, sind die die Zeichen repräsentierenden Binärwörter so gebildet, daß jedes dieser Wörter nur erhalten werden kann, indem nacheinander Bits eines anderen, kürzeren Worts des Codes hinzugefügt werden. Es sollen die Nachrichten A, B, C, D, E, F, G, H codiert werden, denen folgende Erscheinungswahrscheinlichkeiten zugeordnet werden:
A 0 B C 0 D E 0 F 0 G 4 0 H
0,4 ,05 0,2 ,02 0,1 ,03 ,1 ,06
Diese Zeichen werden in der Reihenfolge abnehmender Erscheinungswahrscheinlichkeiten geordnet, und sie werden nach einem Verfahren codiert, das beispielsweise in dem Aufsatz "A Method for the Construction of Minimum Redundancy Codes", Proceedings of the I.R.E., von David A. Huffmann, September 1952 und in "Probabilistic Information Theory" von Jelinck, Editions Mac Graw Hill beschrieben ist.
Zeichen Wahrscheinlichkeit Code
A C G E H B F D
0,4 0
0,2 111
0,14 101
0,1 100
0,06 1100
0,05 11011
0,03 110101
0,02 110100
- 15 -
Die Decodierung kann mittels eines der Verfahren durchgeführt werden, die in den zuvor genannten Veröffentlichungen beschrieben sind.
Bei dem erfindungsgemäßen Verfahren wird die Codierung nach Huffmann auf Daten angewendet, die bereits aus einer Kombination der auf die Helligkeitswerte eines Bildes angewendeten Codierungen resultieren. Zur Erstellung der für diesen Fall geltenden Codierungs- und Decodierungstabellen ist es notwendig, die statistischen Kenngrößen dieser Daten für die codierten Größen und nicht für die Originaldaten zu benutzen. Diese statistischen Berechnungen werden für einen gegebenen Bildtyp nur einmal durchgeführt. Die Erfahrung zeigt, daß sich diese statistischen Kenngrößen nur wenig abhängig vom Bildtyp ändern. Es gibt zwei verschiedene Codierungen nach Huffmann, eine für die Blocklänge und eine für die Helligkeitsdifferenzwerte, da diese zwei Parameter nicht die gleichen statistischen Kenngrößen haben. Die Längenwerte und die Helligkeitswerte der Bereiche der ersten Zeile werden mit den gleichen Codes codiert. Der Verschiebungsanzeiger D, der nur zv/ei Bits enthält, kann durch eine sehr einfache Codierung nach Huffmann codiert werden, die darin besteht, das Fehlen der Verschiebung, das den häufigsten Fall darstellt, durch das Codezeichen 0 darzustellen, für das nur ein Bit benötigt wird, und die Verschiebungen nach rechts und nach links durch Wörter aus zwei Bits, beispielsweise 11 und 10, darzustellen. Wenn eine Codierung nach Huffmann nicht angewendet wird, ist es trotzdem möglich, die statistischen Kenngrößen der erhaltenen codierten Daten gemäß dem zuvor beschriebenen Verfahren durch eine Optimierung der die verschiedenen Werte codierenden Felder auszunützen.
Wenn beispielsweise die Zeilen 512 Punkte haben, zeigt die Statistik der Blocklängen für eine Gruppe von Bildern, daß 80% der Längen kleiner als 8 Punkte sind. Es genügt daher,
- 16 -
die Längen mit 3 Bits zu codieren. Die Blöcke mit Längen von mehr als 8 Punkten werden in mehreren Bruchteilen codiert.
Wenn die gewichteten Differenzen zwischen den Helligkeitswerten beispielsweise am häufigsten zwischen + 16 und -16 liegen, ist die optimale Anzahl der Bits gleich 5. Da es möglich sein muß/ auch Werte zu codieren, deren Absolutwert größer als 16 ist, ist vorgesehen, diese Werte ausnahmsweise mit 8 Bits zu codieren, was ermöglicht, alle 256 Helligkeitsstufen eines Bildes zu erfassen. Zur Unterscheidung der zwei Fälle wird den Datenbits ein zusätzliches Bit hinzugefügt. Wenn die Anzahl der verwendeten Bits bis 8 reicht, ist es das gleiche, als wäre keine Differenscodierung vorhanden; es ist somit vorteilhaft, die Dif fereiizcodierung bezüglich des vorangehenden Blocks in der gleichen Zeile nicht anzuwenden und durch diese 8 Bits den tatsächlichen Wert der Helligkeitsdifferenz des betrachteten Blocks darzustellen. Die Verwendung des tatsächlichen Werts hat den Vorteil, daß die Weiterleitung von Fehlern unterbrochen wird, die möglicherweise zuvor aufgetreten sind.
Diese Varianten verbessern die Kompression für den Fall, daß eine Codierung nach Huffmann nicht angewendet wird. Ist dies nicht der Fall, sind sie nicht von besonderem Interesse.
Außerdem ist es möglich, mit großer Amplitude auftretendes Rauschen zu eliminieren. Das Rauschen mit kleiner Amplitude wird dadurch eliminiert, daß das Toleranzintervall 2e zwischen zwei Werten eines Bereichs festgelegt wird. Zum Eliminieren des Rauschens mit großer Amplitude wird ein ergänzendes Verfahren angewendet. Es besteht darin, daß angenommen wird,, daß ein Helligkeitsdifferenzwert, der dem ihm vorangehenden Bereich nicht angehören kann, ein abweichender Wert ist, wenn der folgende Wert diesem gleichen Bereich angehören kann. Der abweichende Wert wird dann durch den
- 17 -
diesen Bereich repräsentierenden Wert beim Auftreten des Zentralwerts ersetzt. Wenn der auf den außerhalb des Bereichs liegenden Wert folgende Wert diesem Bereich nicht angehören kann, wird ein neuer Bereich ausgehend von dem ersten außerhalb des vorangehenden Bereichs liegenden Wert gebildet. Das Eliminieren abweichender Werte, die auf Rauschen mit großer Amplitude zurückzuführen sind, verbessert nicht nur die Qualität des wiederhergestellten Bildes, sondern erhöht auch den Reduktionsfaktor unter Vermeidung unnützer Unterteilungen von Bereichen.
Da die ein Bild darstellenden komprimierten Daten beispielsweise für ihre übertragung in Serie zueinander angeordnet sind, ergibt das Fehlen eines die Daten Punkt für Punkt individualisierenden Rasters eine bedeutende Reduzierung der Informationsmenge. Trotzdem bleibt es notwendig, den Zeilenanfang zu kennzeichnen. Zweckmäßigerweise wird dazu das herkömmliche Format HDLC benutzt, das darin besteht, jeder Datengruppe ein charakteristisches Muster voranzustellen. Die einer Zeile entsprechenden komprimierten Daten haben eine variable Länge, und sie bilden eine Datenmenge, der ein Muster HDLC vorangeht, nämlich das Muster 01111110. Um zu vermeiden, daß ein solches Muster in den Datenbits vorhanden ist, werden mittels einer automatischen Vorrichtung diese Muster, die in den Daten vorhanden sind, festgestellt und dadurch modifiziert, daß nach jeder Gruppe von fünf aufeinanderfolgenden Bits mit dem Wert 1 ein Bit mit dem Wert 0 hinzugefügt wird. Auf der Empfangsseite unterdrückt eine automatische Vorrichtung systematisch das Bit mit dem Wert 0, das auf eine Gruppe von fünf Bits mit dem Wert 1 in den Daten folgt.
Um zu vermeiden, daß ein Fehler über eine Zeile hinaus übertragen wird, ist es möglich, nach jeder Datenmenge ein Fehlerdetektor-Codewort, beispielsweise vom herkömmlichen Typ CRC einzufügen. Eine fehlerhafte Zeile wird durch die vorhergehende
- 18 -
Zeile oder durch die homologe Zeile in anderen Teilbildern ersetzt, wenn ein Teilbildspeicher benutzt wird.
Das erfindungsgeinäße Verfahren kann auf irgendein festes oder bewegtes Bild angewendet werden. Wenn das Bild aus einem einzigen Teilbild besteht, wird jede Zeile dadurch codiert, daß als Bezugsgröße die vorangehende Zeile benutzt wird, die unmittelbar benachbart liegt. Wenn es aus zwei Teilbildern zusammengesetzt ist, werden diese unabhängig voneinander verarbeitet, wenn ein Teiibildspeicher fehlt. Eine Variante des Verfahrens besteht darin, ein Teilbild in einem Speicher abzuspeichern, die gewichtete Differenz der Helligkeitswerte homologer Punkte in den zwei Teilbildern zu berechnen und den Wert dieser Differenz unter Anwendung des oben beschriebenen Verfahrens zu komprimieren. Der Wert dieser Differenz bildet dann den charakteristischen Wert B... Die erhaltene Kompression wird gegenüber dem Fall verbessert, bei dem die Teilbilder unabhängig voneinander codiert werden.
Es ist auch möglich, Farbfernsehbilder zu komprimieren, indem das erfindungsgemäße Verfahren auf den Luminanzwert Y und auf die zwei Chrominanzwerte B-Y und R-Y angewendet wird. Diese drei charakteristischen Werte B.. werden getrennt codiert. Jeder Luminanzwert gilt für einen Punkt, während im Gegensatz dazu jeder Chrominanzwert zwei benachbarten Punkten gemeinsam angehört. Beispielsweise sind für die ersten fünf Punkte einer Zeile die Originaldaten wie folgt:
8 Bits 4 Bits 8 Bits 4 Bits 8 Bits 4 Bits 8 Bits 4 Bits 8 Bits
Y1 R1 -γι Y2 B1 "Y1 Y3 R. ΓΥ3 Y4 B 3"Y3 Y5
12 Bits
4 Bits R5-Y5 -I
Indem nur die Chrominanzwerte für eine von zwei Zeilen berechnet werden, ist die Anzahl der Bits pro Punkt im Mittelwert gleich 10.Γ Die zwei Zeilen gehören dem gleichen Teilbild an, außer wenn ein Teilbildspeicher verfügbar ist.
- 19 -
Die Durchführung des erfindungsgemäßen Verfahrens kann in einer fest verdrahteten Logikanordnung oder in einer programmierten Logikanordnung erfolgen, deren Realisierung dem Fachmann geläufig ist. Zum Komprimieren eines aus einem einzigen Teilbild bestehenden Bildes führt die Schaltung beispielsweise die Operationen durch, deren Folge in Fig. 1 dargestellt ist. Die Helligkeitswerte B.. werden der Schaltung seriell zugeführt, die sie codiert und in Serie wieder herstellt, wobei Binärmuster eingefügt werden, die es ermöglichen, den Anfang eines Bildes und den Anfang einer Zeile zu identifizieren.
Am Anfang befindet sich die Schaltungsanordnung im Wartezustand. Vor Empfang der Helligkeitswerte empfängt sie ein Synchronisierung ssignal, das anzeigt, daß ein Bild oder eine Zeile gleich beginnen wird. Wenn der Anfang eines Bildes vorliegt, erzeugt die Anordnung ein Binärmuster HDLC, öeispielsweise 011111110, zur Identifizierung des Bildanfangs. Anschließend initialisiert die Anordnung einen Zeilenzähler auf i = 1, und sie behandelt jed,n Heliigkeitswert der ersten Zeile durch einen für diese Ze.tle besonders vorgesehenen Codierungsalgorithmus, der anschließend noch näher beschrieben wird.
Wenn die Anordnung dagegen ein Synchronisierungssignül empfängt, das den Anfang einer Zeile ankündigt, wird ein anderes Binärmuster HLDC, beispielsweise das Muster 01111110, erzeugt. Der Zeilenzähler wird um eine Einheit fortgeschaltet. Die Heiiigkeitswerte der ganzen i-ten Zeile werden dann durch einen Codierungsalgorithmus verarbeitet, der unten noch näher beschrieben wird. Diese zwei Codierungsprogramme enthalten die Codierungen nach Huffmann nicht, die erst anschließend durchgeführt werden.
- 20 -
Zur Ermöglichung der späteren Verarbeitungen wird folgendes abgespeichert:
- die Werte J der codierten Helligkeitsdifferenzen der i-ten Zeile ohne Codierung nach Huffmann;
- die Werte B1.- der codierten und decodierten Helligkeit der i-ten Zeile;
- die die Position von Blöcken der (i-1)-ten Zeile bezeichnenden Rangstufen.
Die durch die codierten Werte J der Kelligkeitsdifferenzen codierten Helligkeitswerte B.. und die codierten Weite H der Blocklängen werden einer Codierung nach Huffmann gemäß zwei besonderen Codierungstabellen unterzogen, von denen eine für die Helligkeitsdifferenzen und eine für die Blocklängen vorgesehen ist. Die codierten Daten der ersten Zeile haben andere statistische Kenngrößen als die codierten Daten der anderen Zeilen, jedoch werden trotzdem die gleichen Codierungen nach Hoffmann angewendet.
Ein Fehlerdetektor-Codewort des Typs CRC mit 16 Bits wird unter Anwendung eines herkömmlichen Algorithmus berechnet und der Folge codierter Daten einer Zeile hinzugefügt. Diese Folge wird seriell an die die Daten anwendende Anordnung geliefert, worauf die die Kompression durchführende Anordnung in den Wartezustand übergeht.
Die auf alle Zeilen mit Ausnahme der ersten Zeile anwendbaren Codierungsschritte sind in Fig. 2 dargestellt. Die Heiligkeitswerte der ganzen i-ten Zeile werden gespeichert. Es wird eine erste Folge S1:a. . = B. .-λ-B1. Λ . für j = 1 bis N
ι 1/3 1O i-~ · f 3
berechnet; B1. . , ist der codierte und decodierte neiligkeils-
1-1 /3
wert des Punkts der Rangstufe j in der (i-1)-ten Zeile. Die Helligkeitswerte B.. werden dann einer ir.it einem Koeffizienten λ = 1/2 gewichtsten Differenzcodierung bezüglich der
- 21 -
Helligkeitswerte B._1 . der vorangehenden, nicht verschobenen Zeile unterzogen.
Anschließend wird eine zweite Folge S_:b. . = B. .-λ·Β·. . . .
-1Vj -Vj X- ι rj~~ ι
für j - 1 bis N berechnet; B'. Λ . 1 ist der codierte und decodierte Wert der Helligkeit des Punkts der Rangordnung j-1 in der (i-1)-ten Zeile. Die Helligkeitswerte B.. werden dann einer mittels eines Koeffizienten λ = 1/2 gewichteten Differenzcodierung bezüglich der Helligkeitswerte B._1 .* der vorangehenden, um eine Rangstufe nach links verschobenen Zeile unterzogen.
Dann wird eine dritte Folge So:c. . - B, ·~λ·Β'. „ . Λ für
-> X/J -*·/3 χ—ι , ]■*■ ■
j = 1 bis N berechnet; B1. . ... ist der codierte und deco-
x— ι, j + ι
dierte Wert der Helligkeit des Punkts der Rangordnung j+1 in der (i-1)-ten Zeile. Die Helligkeitswerte B.. werden dann einer durch einen Koeffizienten λ = t/2 gewichteten Differenzcodierung bezüglich der Helligkeitswerte B1-1 .+1 der vorangehenden, um eine Rangstufe nach rechts verschobenen Zeile unterzogen.
Ein unten noch zu beschreibender Algorithmus wird dann auf ■
jede der Folgen S1, S_, S3 angewendet, damit in jeder Folge mit einer gegebenen Toleranz e ein Bereich bestimmt wird und damit einzelne abweichende Punkte in einem Bereich, die auf Rauschen zurückzuführen sind, eliminiert werden. Im allgemeinen Fall endet der vorangehende Bereich beispielsweise mit der Rangstufe P. Es seien K, L und M die Rangstufen, die je- Kj weils die oberen Grenzen jedes dieser Bereiche bilden. G sei jjj
die Anzehl der im längsten Bereich enthaltenen Werte. Il
G=Q-P, wobei gilt Q = Max (K, L, M)
Es wird ein Binärwort D erzeugt, das anzeigt, daß gilt: Q = Max (K, L/ M) = K oder L oder M.
- 22 -
Es wird der Zentralwert A der den längsten Bereich bildenden Helligkeitsdifferenzwerte berechnet und dann differenzmäßig mit einer Gewichtung λ = 1/2 bezüglich des Zentralwerts A" des vorangehenden Blocks der gleichen Zeile berechnet. Wenn dieser Block nicht vorhanden ist, wird der Zentralwert A" mit 0 angenommen.
J = A-X-A"
Die Länge G wird differenzmäßig mit einer Gewichtung λ = 1/2 bezüglich der Länge G" des vorangehenden Blocks in der gleichen Zeile codiert, wenn ein solcher Block vorhanden ist. Ist ein solcher Block nicht vorhanden, gilt: G" = 0.
H = G-A^G"
Wenn gilt: Q=N, ist die Codierung der i-ten Zeile beendet, und die Verarbeitung fährt mit der Speicherung der codierten Daten fort, wie in Fig. 1 dargestellt ist.
Wenn gilt: Q φ N, ist die Codierung der i-ten Zeile nicht beendet, und es werden drei neue Bereiche in den Folgen S1, S2, S_ bestimmt; der längste Bereich wird gesucht und gemäß den obigen Erläuterungen codiert.
Fig. 3 zeigt ein Beispiel eines Flußdiagramms der Operationen zur Bestimmung eines Bereichs, in dem die Helligkeitsunterschiede bis auf eine Toleranz e gleich sind, wobei einzelne abweichende Punkte eliminiert werden. Dieses Flußdiagramm befaßt sich beispielsweise mit den Werten a.. der Folge S-, jedoch gilt es auch für die Folgen S» und S^.
Ein logisches Kennzeichen I wird auf den Wert 0 initialisiert. Ein Zähler für die Rangstufe j wird auf den Wert P+1 initialisiert, wobei P die Rangstufe der oberen Grenze des zuvor
- 23 -
aufgefundenen längsten Bereichs ist. Ein Zähler für die Bereichslänge G wird auf den Wert O initialisiert.
Die Anordnung berechnet:
M = a. .+ e und m = a. .- e XD XD
Die Zähler der Rangstufe j und der Länge G werden um eine Einheit fortgeschaltet: j *■ j + 1 ; G -*- G+1.
Der entsprechende Wert von a.. wird aus dem Speicher gelesen. Dann werden M1 = a. . -e und m1 = a. ■ ~e berechnet.
Wenn gilt: M1 < M, wird der Wert von M1 in den Speicherblock von M übertragen. Ist dies nicht der Fall, wird die Verarbeitung fortgesetzt. Wenn gilt: m<m1, wird der Wert von m1 in den Speicherblock von m übertragen. Ist dies nicht der Fall, wird die Verarbeitung fortgesetzt.
Die Werte von M und m werden dann verglichen. Für M>m wird folgendes ausgeführt:
Der Wert von a.. gehört dem Bereich an und wird in einem spezellen Speicher abgespeichert, damit später der Zentralwert A des Bereichs berechnet werden kann. Das Kennzeichen I wird auf gestellt. Dies ändert im betrachteten Fall nichts. Der Inhalt j des Rangstufenzählers wird geprüft. Wenn gilt: j<N, wird die Folge der Werte nicht beendet, und die Verarbeitung beginnt wieder mit der Fortschaltung des Rangstufenzählers: j·*-
Für Mύm wird folgendes ausgeführt:
- 24 -
Der Wert von a< . gehört dem Bereich nicht an, der von den vorangehenden Werten definiert worden ist; es kann sich dabei um den Beginn eines neuen Bereichs handeln, oder es kann ein auf Rauschen zurückzuführender abweichender Wert vorliegen, der in dem Bereich isoliert ist. Das Kennzeichen I wird geprüft; I hat den Wert 0, wenn der vorangehende Wert kein abweichender Wert ist; in diesem Fall beginnt die Verarbeitung wieder mit der Fortschaltung des Rangstufenzählers (J^j + I)/ wobei das Auftreten dieses zweifelhaften Werts gespeichert wird, indem das Kennzeichen I auf den Wert "1" gestellt wird. Die vorangehenden Werte M und m werden erneut gebildet, damit der zweifelhafte Wert nicht berücksichtigt wire!:
e;
- e
Für den nächsten Wert (j-t-j + 1) sind zwei Fälle möglich:
a) bei M > m gehört der Wert a. . dem Bereich an, und der vorangehende Wert a. . war abweichend. Er zählt für die Blocklänge, jedoch nicht bei der Bestimmung des Zentralwerts. Nur a.. wird in dem Speicher abgespeichert, der der Berechnung des Zentralwerts dient.
Andererseits wird das Kennzeichen I auf Null gestellt, damit es erneut verwendet werden kann, wenn ein weiterer zweifelhafter, isolierter Wert im gleichen Bereich austritt. Der Rangstufenzähler wird getestet. Wenn sein Inhalt j kleiner als N ist, beginnt die Verarbeitung wieder mit der Fortschaltung dieses Zählers. Ist sein Inhalt gleich N, dann ist die Zeile beendet, und auch der Bereich ist beendet, so daß die Verarbeitung fertig ist. Der Wert G aibt die Länge des Bereichs an.
speichert, bis alle verfügbar sind. Ein Rangstufenzähler wird auf Null initialisiert: J+-0. Die Bereiche wie (Max B1 . - Min Έ werden unter Eliminierung der auf Rauschen zurückzuführenden
- 25 -
b) Bei M^m wird das Kennzeichen I geprüft. Wenn der vorangehende Wert zweifelhaft war, hat I den Wert "1", was bestätigt, daß der Bereic. beendet ist und auch die Verarbeitung zu Ende ist. Der Rangstufenzähler wird um zwei Einheiten zurückgestellt, da die zwei letzten Werte nicht dem Bereich angehören und nicht für seine Länge zählen dürfen. G ■*■ G-2.
Es sei bemerkt, daß es nicht notwendig ist, den Zentralwert eines Bereichs zu berechnen, um zu wissen, ob der nächste Wert diesem Bereich angehört oder nicht.
Fig. 4 zeigt die Entwicklung von Werten von m und M gemäß dem vorangehenden Algorithmus für verschiedene Werte ai- in f-Abhängigkeit von der Rangstufe j. Die Bedingung M>m gilt, solange die Kurve M über der Kurve m verläuft. Jedesmal wenn sich ein Wert a.- aus dem Bereich entfernt und zu einem Extremwert des Bereichs wird, nähern sich die Kurven M und m irreversibel an. Beim 14. Wert steigt die Kurve m (beim gestrichelten Verlauf) über die Kurve M an, wobei dieser 14. Wert also von vornherein nicht dem Bereich angehört. In diesem Fall bildet der Algorithmus die vorangehenden Werte von M und m neu und betrachtet den nächsten Wert von a. . (mit der 15. Rangstufe) in bezug auf diese Werte (mit ausgezogenen Linien). Der nächste Wert a^^ 15 ergibt keine Oberschneidung dieser Kurven, er gehört also dem Bereich an. Der zweifelhafte Wert a.. Λί wird als abweichend angesehen; er unterbricht den Bereich nicht.
Fig. 5 zeigt die Folge von Operationen bei der eigentlichen Codierung der ersten Zeile.
Die Helligkeitswerte B1 . kommen seriell an und werden aL>ye-
- 26 -
abweichenden Punkte durch den gleichen Algorithmus bestimmt, der in Fig. 3 dargestellt ist. Anstelle der Werte a.. der Helligkeitsdifferenz werden jetzt die Helligkeitswerte B. behandelt.
Die Länge G eines bei der Rangstufe j, hier bei j = 1 - be-: ginnenden Bereichs wird bestimmt, worauf der Rangstufenzähler um diesen Wert fortgeschaltet wird: j +■ j + G . Der Zentralwert B dieser Helligkeitswerte wird berechnet und einer gewich teten Differenzcodierung bezüglich des Zentralwerts B" des vorangehenden Bereichs berechnet;
C = B - λ- B"
ο ο
Der Zähler für die Rangstufen j wird geprüft. Bei j < N beginnt die Verarbeitung mit der Fortschaltung dieses Zählers. Bei j=N ist die erste Zeile vollständig codiert worden, und die Verarbeitung ist beendet.
Fig. 6 zeigt das Plußdiagranun der Decodieroperationen, die von einer fest verdrahteten oder programmierten Logikanordivung durchgeführt werden können, deren Verwirklichung dem Fachmann geläufig ist.
Die Anordnung empfängt die codierten Daten in serieller Form. Sie wartet auf den Empfang eines Binärmusters, das für den Anfang eines Bildes oder den Anfang einer Zeile charakteristisch ist. Wenn ein den Bildanfang kennzeichnendes Muster 011111110 erkannt wird, wird ein Zeilenzähler auf Null initialisiert: i -e- 0 = Es erfolgt dann die Abspeicherung der codierten Daten der ersten Zeile. Das Ende der ersten Zeile wird durch Feststellen des Binärmusters 01111110 erkannt,
detektorwort CRC wird für die erste Zeile nicht geprüft. Die
- 27 -
codierten Daten der ersten Zeile werden decodiert, worauf die resultierenden Helligkeitswerte in einem Bildspeicher abgespeichert werden, der von einer Wiedergabevorrichtung, beispielsweise einem Fernsehmonitor, gelesen wird.
Ein Zeilenzähler wird fortgeschaltet: i-e-i+1, und das Erkennen des Anfangs der nächsten Zeile gibt den Abspeichervorgang für die codierten Daten dieser Zeile frei; das Erkennen des nächsten Zeilenanfangs beendet diesen Abspeichervorgang. Dies ermöglicht es, die Daten jeder Zeile voneinander zu trennen. Das Fehlerdetektorwort CRC wird geprüft. Wenn ein Fehler vorhanden ist, werden die Daten dieser Zeile nicht codiert, und die Helligkeitswerte der vorangehenden Zeile werden im Bildspeicher anstelle der fehlerhaften Werte abgespeichert. Wenn kein Fehler vorhanden ist, decodiert ein anschließend noch zu beschreibender Algorithmus die Daten, indem als BezugsgröRe die Helligkeitswerte verwendet werden. Der Zeilenzähler wird dann geprüft. Wenn das Bild zu Ende ist, erwartet die Anordnung das nächste Binärmuster 011111110, das den Anfang des nächsten Bildes kennzeichnet. Wenn das Bild nicht beendet ist, beginnen die Operationer» wieder mit dem Erkennen des Anfangs der i-ten Zeile, nachdem der Zeilenzähler fortgeschaltet worden ist: i ■*- i+1.
In Fig. 4 ist ein Beispiel eines Flußdiagramms von Operationen dargestellt, das die Decodierung der i-ten Zeile bezüglich der (i-1)-ten Zeile (i> 1) ermöglicht. Ein Rangordnungszähler wird auf Null initialisiert: j ■*- 0; anschließend werden die einen ersten Block mit Helligkeitswerten entsprechenden codierten Daten in einen Speicher eingegeben. Eine erste Decodierung nach Huffmann liefert einen ersten differenzmäßig codierten Helligkeitsdifferenzwert J. Eine zweite Decodierung nach Huffinann lieieit ueii ui££t;i.c:ri^,riiäSj.y codierten. Dlock— längenwert H. Der codierte Wert J der Helligkeitsdifferenz
des Blocks wird decodiert, indem als Bezugsgröße A" die Differenz der Helligkeitswerte des vorangehenden Blocks in der gleichen Zeile verwendet wird, wenn ein solcher Block vorhanden ist: A' = J + λ·Α".
Der codierte Wert H der Blocklänge wird bezüglich der Länge G" des nächstliegenden Blocks in der vorangehenden Zeile decodiert; G1 = H + λ· G".
Der Rangstufenzähler wird um den Wert G1 fortgeschaltet. Der codierte Hellicl-^itswert A1 wird decodiert, indem als Bezugsgröße einer der Helligksitswerte B1 . . oder B1. Λ ._- oder
i—l ,j 11,31
B1 . Λ . Λ genommen wird, der in der vorangehenden Ze-IIe dem 1—1,3+1
gegenüberliegenden Puriht, dem nach links verschobenen Punkt oder dem nach rechts verschobenen Punkt entspricht.
B'i,j = A" + x-B'i-i,j oder
B'lj = A· + λ- B-^1 ΔΛ oder
Die Auswahl erfolgt entsprechend dem Wert des Binärworts D, also dem Verschiebungsanzeiger, das die codierten Daten begleitet.
Die erhaltenen Helligkeitswerte B1.. werden im Bildspeicher abgespeichert. Der Rangstufenzähler wird geprüft. Wenn die Zeile beendet ist, also gilt: j = K, ist diese Verarbeitung beendet. Wenn die Zeile nicht beendet ist, also gilt: j < N, wird die Verarbeitung fortgesetzt, indem wieder mit den Operationen begonnen wird, die mit dem Abspeichern der Daten beginnen die in codierter Form einen Block mit Helligkeitswerten bedeuten.
- 29 -
Die G Helligkeitswerte B. .. = B1 werden im Bildspeicher abgespeichert .
Der Inhalt des Rangstufenzählers v/ird geprüft. Bei j<N ist die Zeile noch nicht zu Ende, und die Verarbeitung beginnt wieder mit dem Lesen der codierten Daten für den nächsten Bereich. Bei j = N ist die Zeile zu Ende, und auch die Verarbeitung ist zu Ende,
Die Erfindung ist nicht auf diese Ausführungsform beschränkt. Es liegt im Rahmen des fachmännischen Könnens, auch andere Algorithmen zur Durchführung des erfindungsgemäßen Verfahrens anzuwenden.
Fig. 8 zeigt ein Beispiel eines Flußdiagramms von Operationen, ; mit deren Hilfe die Decodierung der ersten Zeile eines Bildes durchgeführt v/ird, das in diesem Beispiel durch eine Bereichs- § codierung codiert worden ist und wo der Helligkeitswert jedes Bereichs differenzmäßig bezüglich des Helligkeitswerts des vorangehenden Bereichs codiert worden ist. Ein Rangstufenzähler wird auf Null initialisiert: j-*-0. Die codierten Daten, die einem ersten Bereich entsprechen, werden aus einem Speicher gelesen. Eine erste Decodierung nach Huffmann liefert den Wert G der Bereichslänge. Der Rangstufenzähler wird um diesen Wert fortgeschaltet. Eine zweite Decodierung nach Huffmann liefert den codierten Wert C der Helligkeit des Bereichs. Der Wert wird dann in bezug auf den Wert B" der Helligkeit des vorangehenden Bereichs decodiert, falls ein solcher Bereich vorhanden ist. Für den ersten Bereich ist die Bezugsgröße B"o gleich 0.
B1 = C + λ · B"
ο ο

Claims (9)

  1. Patentanwälte** *
    München
    European Pa*i
    Stuttgart
    27. Mai 1982
    THOMSON - CSF
    173, Bd. Haussmann
    75008 PARIS / Frankreich
    Unser Zeichen: T 3503
    Patentansprüche
    M/. Verfahren zum Komprimieren eines digitalisierten Bildes durch Codieren einer Folge von digitalen Werten B.., wobei B.. oin charakteristischer Wert des in einer i-ten Zeile einer Folge von Zeilen des Bildes befindlichen Punkts der Rangstufe j ist, dadurch gekennzeichnet, daß für jede Zeile der Rangstufe i > 1 folgendes durchgeführt wird:
    - für j = 1 bis N werden drei Folgen digitaler Werte berechnet r
    i,:
    wobei N die Anzahl der Punkte pro Zeile ist, λ eine feste Zahl zwischen 0,5 und 1 ist, die zum Optimieren der Informationskcmpression gemäß dem behandelten Bildtyp gewählt
    .. die kompandierten ■ i
    sind;
    ist, und B1 . 1 ., B1 . 1 . Λ, B' .
    χ—ι,j χ—ι,j—ι ι—
    Werte von B±nj B^..^, B±
    Schw/Gl
    die charakteristischen Werte von Punkten der i-ten Zeile werden in Blöcke aus aufeinanderfolgenden Werten B.. in der Weise umgeordnet, daß dann, wenn B. der Wert mit der höchsten Rangstufe in dem einem betrachteten Bleck vorangehenden Block ist, der Wert mit der höchsten Rangstufe im betrachteten Block B.n ist, so daß gilt: Q = Max (K, L, M) , wobei K, L und M ganze Zahlen kleiner -?ls N sind, und daß gilt:
    für j = P+1 bis K, (Mar a. . - Min a. .) S 2e
    i/J i/D
    und für j = P+1 bis L, (Max b. . - Min. b. .} S 2e
    ifj 1^D
    und für j = P+1 bis M, (Max c. . - Min c, ) ί2e
    1O -*-; j
    wobei e ein als Toleranz bezeichneter numerischer Wert ist, der zwischen 0 und 5% des Maximums der charakteristischen Werte der Punkte ist und der abhängig vom gewünschten Reduktionsgrad und von der gewünschten Bildqualität gewählt ist;
    die einen Block bildende Menge der Werte (B. ., j = P+1 bis Q) wird mit Hilfe folgender Daten codiert:
    einem digitalen Wert G=Q-P, der als Blocklänye bezeichnet wird,
    einem digitalen Wert A, der als charakteristischer Wert des Blocks bezeichnet wird, für den gilt:
    für j = P+1 bis K Max a. .δ Α δ Min a. . wenn Q = K
    i/D 1^D
    oder
    für j = P+1 bis L Max b. . > A Z Min b. -wenn Q = L
    i/ D J·/ D
    oder
    für j = P+1 bis M Max C1 _.ä £. ä Min c. . wenn Q = M
    einem Binärwort D, das als Verschiebungsanzeiger bezeichnet wird und unterschiedlich ist, je nachdem, ob Q gleich K, L oder M ist;
    daß die charakteristischen Werte B1. von Punkten der ersten Zeile unter Anwendung eines beliebigen Verfahrens codiert werden, das keine Kenntnis charakteristischer Werte einer vorangehenden Zeile erfordert, und
    daß aus dem charakteristischen Wert B.. wieder ein codierter Wert B'. - für i > 1 und j = P+1 bis Q gebildet wird, indem folgendes berechnet wird:
    A + λ · B1. Λ · wenn beim Codieren gilt: Q=K, x~ ι / D
    oder A + λ · B* . Λ . Λ wenn beim Codieren gilt: Q = L, ι—ι,j —ι
    oder A + λ - B'. Λ . lA wenn beim Codieren gilt: Q=M, ii3+i
    wobei die Unterscheidung dieser drei Fälle durch den Verschiebungsanzeiger D gewährleistet wird.
  2. 2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß außerdem die Biocklänge G codiert wird, indem für die Codierung und Decodierung der i—ten Zeile die Rangstufen der Mitten der die (i-1)-ten Zeile bildenden Blöcke, die Rangstufe der Mitte des im Codieren oder Decodieren begriffenen Blocks und die Länge G" des Blocks der (i-1)-ten Zeile, deren Mitte der Mitte des im Codieren oder Decodieren begriffenen Blocks am nächsten kommt, berechnet werden und indem für einen codierten Wert von G folgendes genommen wird: H=G-X-G", und daß beim Decodieren von G als decodierter Wert folgendes genommen wird: G1 = H + λ · G".
  3. - Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß der charakteristische Wert A jedes Blocks der i-ten Zeile codiert wird, indem als codierter Wert folgendes genommen wird: J=A- λ·Α", wobei A" der charakteristische Wert des unmittelbar vorangehenden Blocks in der i-ten Zeile 1st, wenn diese existiert, und wobei A" den Wert Null hat, wenn der betrachtete Block der erste Block der i-ten Zeile ist, und daß zum Decodieren von A als decodierter Wert folgendes genommen wird: A' = J + X-A".
  4. 4. Verfahren nach Anspruch 1, dadurch gekennzeichnet/ daß das Codieren der charakteristisi
    ersten Zeile darin besteht,
    Codieren der charakteristischen Werte B1. von Punkten der
    daß diese Werte in Bereiche genannten Blöcken aus aufeinanderfolgenden Werten B. . so zusammengefaßt werden, daß
    gilt: Max
    - Min B1 . ύ 2e für die Rangstufen j entspre
    chend einem Bereich;
    daß für jeden Bereich ein Wert G der Anzahl der in ihm
    enthaltenen Werte
    des betrachteten Bereichs bezeichnet wird;
    . berechnet wird, wobei G als Länge
    - daß für jeden Bereich ein als charakteristischer Wert des Bereichs bezeichneter Wert A so berechnet wird, daß für die dem betrachteten Bereich entsprechenden Rantstufen j
    δ Min B
    gilt: Max B1 . > A
    ' r3
    daß für den codierten Wert jedes Bereichs folgendes genommen wird:
    - der digitale Wert G seiner Länge,
    - der digitale Wert C=A -
    A" , wobei A"
    der charakteristische Wert des in der ersten Zeile dem betrachteten Bereich vorangehenden Bereichs ist, und wobei A" mit 0 angenommen wird, wenn der betrachtete Bereich der erste Bereich der ersten Zeile ist;
    und daß die Decodierung der charakteristischen Werte von diesem Bereich entsprechenden Punkten darin besteht, daß als decodierter Wert des charakteristischen Werts jedes Punkts dieses Bereichs folgendes genommen wird: A1 =C+ λ ■ A"
  5. 5. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß gilt: λ= 0,5.
  6. 6. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß außerdem gemäß einem Code mit Vorsatz wenigstens einer der die Länge, den charakteristischen Wert und den Verschiebungsanzeiger eines Blocks repräsentierenden Datenwerte codiert wird, wobei der Code mit Vorsatz abhängig von statistischen Eigenschaften des codierten Datentyps erstellt wird.
  7. 7. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Anzahl der zur Darstellung der Länge eines Blocks verwendeten Bits auf einen Wert begrenzt wird, der es ermöglicht, die meisten Längenwerte darzustellen, wobei außergewöhnlich lange Blöcke in mehrere Blöcke unterteilt werden, deren Längenwert mit der anwendbaren begrenzten Anzahl von Bits darstellbar ist.
  8. 8. Verfahren nach Anspruch 3, dadurch gekennzeichnet, daß die zur Darstellung des codierten charakteristischen Werts J eines Blocks verwendete Anzahl von Bits auf einen Wert beschränkt wird, der es erlaubt, die meisten Werte J darzustellen, und daß alle außergewöhnlich hohen Werte J durch den charakteristischen, nichtcodierten Wert A ersetzt werden, der durch eine Anzahl von Bits ausgedrückt wird, die über der erstgenannten Anzahl liegt und die ausreicht, den Maximalwert von A darzustellen, wobei diese zwei Fälle durch ein Bit unterschieden werden, das den die Werte A oder J darstellenden Bits hinzugefügt wird.
  9. 9. Verfahren nach Anspruch 1, wobei bei der Umordnung von Werten der Folgen S , S2, S3 in Blöcke eine Reduzierung des Rauschens bewirkt wird, dadurch gekennzeichnet, daß ein betrachteter Wert in den Block eingefügt wird, der den Wert enthält, der ihm in der gleichen Zeile unmittelbar vorangeht, wenn der betrachtete Wert nicht die Bedingungen erfüllt, damit er diesem Block angehören kann, sondern unmittelbar von einem anderen Wert gefolgt wird, der diese Bedingungen erfüllt.
    Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die charakteristischen Werte B, . von Bildpunkten deren Helligkeitswerte sind.
    Verfahren nach Anspruch 1 in Anwendung auf Fernsehbilder aus zwei Teilbildern, dadurch gekennzeichnet, daß die Zeile der Rangstufe i-1 die vor der Zeile der Rangstufe i abgetastete Zeile ist.
    Verfahren nach Anspruch 1 in Anwendung auf Fernsehbilder aus zwei Teilbildern, dadurch gekennzeichnet, daß die Zeile der Rangstufe i-1 die zur Zeile der Rangstufe i im anderen Teilbild homologe Zeile ist.
    Verfahren nach Anspruch 1 in Anwendung auf Fernsehbilder aus zwei Teilbildern, dadurch gekennzeichnet, daß die charakteristischen Werte B.. von Bildpunkten die Werte der Helligkeitsdifferenzen zwischen den homologen Punkten von zwei das Bild darstellenden Teilbildern sind.
    Verfahren nach Anspruch 1 in Anwendung auf Farbfernsehbilder, dadurch gekennzeichnet, daß die charakteristischen Werte B.. von Bildpunkten ihre Lurninanzwerte Y und ihre Chrominanzwerte R-Y und 3-Y sind und daß diese drei Werte getrennt codiert werden.
DE19823219892 1981-06-02 1982-05-27 Verfahren zum komprimieren eines digitalisierten bildes Withdrawn DE3219892A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR8110898A FR2524740B1 (fr) 1981-06-02 1981-06-02 Procede de compression d'une image numerisee

Publications (1)

Publication Number Publication Date
DE3219892A1 true DE3219892A1 (de) 1983-12-01

Family

ID=9259101

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19823219892 Withdrawn DE3219892A1 (de) 1981-06-02 1982-05-27 Verfahren zum komprimieren eines digitalisierten bildes

Country Status (3)

Country Link
DE (1) DE3219892A1 (de)
FR (1) FR2524740B1 (de)
GB (1) GB2120504B (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3507351A1 (de) * 1984-03-03 1985-09-05 Dainippon Screen Manufacturing Co., Ltd., Kyoto Verfahren zum lesen eines bildsignals

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4605963A (en) * 1983-08-15 1986-08-12 Rca Corporation Reduction of control bits for adaptive sub-nyquist encoder
US4847677A (en) * 1988-04-27 1989-07-11 Universal Video Communications Corp. Video telecommunication system and method for compressing and decompressing digital color video data
JP2583628B2 (ja) * 1988-04-27 1997-02-19 ビル(ファー イースト ホウルディングズ) リミテッド カラービデオデータの圧縮方法、およびそのシステム
AU616006B2 (en) * 1988-04-27 1991-10-17 Bil (Far East Holdings) Limited Method and system for compressing and decompressing digital color video statistically encoded data
CA1326898C (en) * 1988-04-27 1994-02-08 John Music Method and system for decompressing color video encoded data
US6512853B2 (en) 1995-08-14 2003-01-28 Barkfort Limited Method and apparatus for compressing digital image data
EP0845191B1 (de) * 1995-08-14 2000-11-15 Barkfort Limited Verfahren und vorrichtung zur kompression von digitalen bilddaten

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1598343A (en) * 1977-04-04 1981-09-16 Int Computers Ltd Display systems
FR2450016A1 (fr) * 1979-02-23 1980-09-19 Arnaud Jean Procede et appareil de compression de donnees, notamment de signaux de television

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3507351A1 (de) * 1984-03-03 1985-09-05 Dainippon Screen Manufacturing Co., Ltd., Kyoto Verfahren zum lesen eines bildsignals

Also Published As

Publication number Publication date
GB2120504B (en) 1985-03-13
FR2524740A1 (fr) 1983-10-07
FR2524740B1 (fr) 1986-09-19
GB2120504A (en) 1983-11-30

Similar Documents

Publication Publication Date Title
DE10120644B4 (de) Bilddatenverdichtungsverfahren und -vorrichtung, welche Bilddaten separat durch Modifizieren der Farbe verdichten
DE69333789T2 (de) Kodierung von kontinuierlichen Bilddaten
DE69735679T2 (de) Verfahren zur Bilddecodierung
DE3875334T2 (de) Verfahren zur synchronisierung fuer die uebertragung ueber einen asynchronen kanal einer folge von kodierten bildern, die mittels eines kodes mit variabler laenge kodiert sind und einrichtung zur durchfuehrung dieses verfahrens.
DE3005775C2 (de) Kodierverfahren für ein Farbbild
DE4339753C2 (de) Vorrichtung zum Komprimieren und Dekomprimieren von Bilddaten
DE69712694T2 (de) Segmentierung und Hintergrundunterdrückung in JPEG-komprimierten Bildern mit Anwendung von Kodierungskostendaten
DE69433620T2 (de) Datenkomprimierungsverfahren
DE3854360T2 (de) Bildinformationscodeverarbeitungssystem.
EP0698316B1 (de) Verfahren zum Übertragen von Bildern mit ungleichem Fehlerschutz
DE69607529T2 (de) Kodierung von videofarbbildern
DE2930903A1 (de) Verfahren und vorrichtung zum uebertragen von faksimilesignalen
DE2728889B2 (de) Verfahren und Vorrichtung zum Übertragen eines Zweipegel-Faksimilesignals
DE3815586A1 (de) Kompressionsverfahren fuer punktbilddaten
DE69128935T2 (de) Fehlerschutz für daten variabler länge
DE3219892A1 (de) Verfahren zum komprimieren eines digitalisierten bildes
DE69718736T2 (de) Komprimierung von Bilddaten mit entsprechenden Kostendaten
DE69512824T2 (de) Kompressions- und Dekompressionsverfahren für mehrdimensionale mehrwertige Farbbilder
DE3876771T2 (de) Adaptives verfahren zur transformationskodierung und -dekodierung einer folge von bildern und einrichtungen zur durchfuehrung dieses verfahrens.
EP1631091B1 (de) Kodierung mehrerer binärer Eingangsdatenworte in ein Ausgangskodewort
DE1283870B (de) Verfahren zur digitalen Kodierung einer flaechenhaften Abbildung
DE2858761C2 (de)
DE10205546B4 (de) Verfahren zur Datenkomprimierung von Bildmaskendaten
DE2127516C2 (de) Verfahren zur Übertragung binärcodierter Signale von Bildvorlagen oder Schriftvorlagen
DE69504982T2 (de) Kompressions- und expansionsalgorithmus mit verlusten für bilddarstellungsdaten

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee