DE69222766T2 - System zur adaptiven kompression der blockgrössen eines bildes - Google Patents
System zur adaptiven kompression der blockgrössen eines bildesInfo
- Publication number
- DE69222766T2 DE69222766T2 DE69222766T DE69222766T DE69222766T2 DE 69222766 T2 DE69222766 T2 DE 69222766T2 DE 69222766 T DE69222766 T DE 69222766T DE 69222766 T DE69222766 T DE 69222766T DE 69222766 T2 DE69222766 T2 DE 69222766T2
- Authority
- DE
- Germany
- Prior art keywords
- block
- dct
- values
- blocks
- image
- 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.)
- Expired - Lifetime
Links
- 238000007906 compression Methods 0.000 title claims abstract description 25
- 230000006835 compression Effects 0.000 title claims abstract description 25
- 230000003044 adaptive effect Effects 0.000 title claims abstract description 22
- 239000002131 composite material Substances 0.000 claims abstract description 36
- 230000005540 biological transmission Effects 0.000 claims abstract description 26
- 239000000470 constituent Substances 0.000 claims 1
- 238000000034 method Methods 0.000 abstract description 39
- 230000008569 process Effects 0.000 abstract description 10
- 238000013144 data compression Methods 0.000 abstract description 2
- 238000010276 construction Methods 0.000 abstract 1
- 239000013589 supplement Substances 0.000 abstract 1
- 238000013139 quantization Methods 0.000 description 21
- 238000012545 processing Methods 0.000 description 19
- 239000000872 buffer Substances 0.000 description 17
- 230000000903 blocking effect Effects 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000015654 memory Effects 0.000 description 8
- 230000000694 effects Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000009466 transformation Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000009467 reduction Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000006872 improvement Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000013475 authorization Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000006735 deficit Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000036039 immunity Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/40—Tree coding, e.g. quadtree, octree
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/41—Bandwidth or redundancy reduction
- H04N1/411—Bandwidth or redundancy reduction for the transmission or storage or reproduction of two-tone pictures, e.g. black and white pictures
- H04N1/413—Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information
- H04N1/415—Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information in which the picture-elements are subdivided or grouped into fixed one-dimensional or two-dimensional blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/129—Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/15—Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/154—Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/18—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/98—Adaptive-dynamic-range coding [ADRC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Color Television Systems (AREA)
- Image Processing (AREA)
- Control Of El Displays (AREA)
- Nitrogen Condensed Heterocyclic Rings (AREA)
Description
- Diese Erfindung bezieht sich auf Bildverarbeitung. Insbesondere bezieht sich die vorliegende Erfindung auf ein neues und verbessertes System zur Datenkompression in einem Bildsignalkompressionsschema, das Blöcke und Teilbzw. Unter- bzw. Subbiöcke codierter Diskret-Cosinus- Transformations-Koeffiz ientendaten (discrete cosine transform = DCT) mit adaptiver Größe verwendet.
- Auf dem Gebiet der Übertragung und des Empfangs von Fernsehsignalen werden verschiedene Verbesserungen für das NTSC-System (NTSC = National Television Systems Committee) gemacht. Entwicklungen auf dem Gebiet der Television gehen üblicherweise in Richtung hochauflösendes Fernsehen (HDTV = high definition television). Bei der Entwicklung von HDTV haben Systementwickler init wechselndem Erfolg bloß das Nyquist-Sampling-Theorem und Tiefpaßfilterdesign angewandt. Eine Modulation dieser Systeme ergibt nicht mehr als ein einfaches Abbilden (mapping) einer analogen Größe oder Quantität auf einem Signalamplituden- oder Frequenzwert.
- Erst kürzlich wurde erkannt, daß es möglich ist, weitere Verbesserungen von HDTV-Systemen zu erreichen unter Verwendung von Digitaltechniken. Viele der vorgeschlagenen HDTV-Sendeformate besitzen gemeinsame Faktoren. Diese Systeme umfassen alle eine Digitalverarbeitung des Videosignals, was die Analog-zu-Digital-Umwandlung (A/D-Umwandlung) des Videosignals erforderlich macht. Ein analoges Sendeformat wird dann verwendet, wodurch die Umwandlung des digital verarbeiteten Bilds zurück in eine analoge Form zur Übertragung bzw. Sendung notwendig wird.
- Der Empfänger/Prozessor muß dann den Prozeß umkehren, um eine Bildanzeige vorzusehen. Das empfangene Analogsignal wird daher digitalisiert, gespeichert, verarbeitet und in ein Signal rekonstruiert gemäß des Schnittstellen- bzw. Interface-Formats, das zwischen dem Empfänger/Prozessor und der HDTV-Anzeige bzw. dem HDTV-Bildschirm verwendet wird. Ferner wird das Signal höchstwahrscheinlich noch einmal zurück in analoge Form umgewandelt zur Anzeige. Es sei jedoch bemerkt, daß die vorgeschlagenen HDTV-Formate digitale Übertragung zur Übertragung von Steuer-, Audio- und Authorisierungs- bzw. Freigabesignalen verwenden.
- Viele der oben genannten Umwandlungsoperationen können jedoch vermieden werden, bei Verwendung eines digitalen Sendeformats, das das verarbeitete Bild zusammen mit Steuer-, Audio- und Authorisierungsignalen überträgt unter Verwendung digitaler Modulationstechniken. Der Empfänger kann dann als ein digitales Modem mit digitalen Ausgängen bzw. Ausgaben an die Videoprozessorfunktion konfiguriert werden. Natürlich erfordert das Modem eine A/D-Funktion als Teil der Operation, aber diese Implementierung erfordert nur eine Einrichtung mit einer Auflösung von 4 Bit anstatt der Einrichtung mit einer Auflösung von 8 Bit, die von Empfängern analoger Formate benötigt wird.
- Eine digitale Übertragung ist der analogen Übertragung in vielerlei Hinsicht überlegen. Digitalübertragungen sehen eine effiziente Verwendung von Leistung vor, was besonders wichtig ist bei Satellitenübertragungen und militärischen Anwendungen. Digitalübertragungen sehen auch eine Robustheit der Kommunikationsverbindung (link) gegenüber der Beeinträchtigungen, wie Mehr- bzw. Multipfad und Stau (jamming) vor. Ferner erleichtert die Digitalübertragung die Signalverschlüsselung, die für militärische und viele Rundsende- bzw. Fernseh- und/oder Rundfunkanwendungen notwendig ist.
- Digitale Sendeformate wurden bei bisherigen Vorschlägen für ein HDTV-System in erster Linie wegen der falschen Annahme vermieden, daß sie inhärent eine übermäßige Bandbreite benötigen. Um die Vorteile der Digitalübertragung zu realisieren, ist es daher notwendig, das HDTV- Signal wesentlich zu komprimieren. Eine HDTV-Signalkompression muß daher auf ein Niveau erreicht werden, das eine Übertragung bei Bandbreiten ermöglicht, die vergleichbar zu denjenigen sind, die bei analogen Sendeformaten benötigt werden. Solche Niveaus der Signalkompression gekoppelt mit einer Digitalübertragung des Signals werden ermöglichen, daß ein HDTV-System mit weniger Leistung arbeitet bei größerer Immunität gegenüber Kanalbeeinträchtigungen bzw. -verschlechterungen.
- Es ist daher ein Ziel der vorliegenden Erfindung, ein neuartiges und verbessertes Verfahren und System vorzusehen zum Verbessern der Kompression von HDTV-Signalen, um eine Digitalübertragung bei Bandbreiten zu ermöglichen, die vergleichbar mit denjenigen analoger Übertragungen herkömmlicher Fernsehsignale sind.
- Transformationscodieren mit Quaternärbaumsegmentierung ist offenbart in "Proceedings of ICASSP 88", Band M-11, New York, USA, Seiten 812-815.
- Die vorliegende Erfindung ist ein neuartiges und verbessertes System zur weiteren Komprimierung von Bilddaten zur Übertragung und zur Rekonstruktion der Bilddaten nach dem Empfang. Das Bildkompressionssystem umfaßt ein Teiloder Subsystem zum Erzeugen eines entsprechenden zusammengesetzten Blocks aus Diskret-Cosinus-Transformations- Daten (DCT-Daten) aus einem Block von Eingabepixeldaten, und zwar optimiert zum Codieren für eine minimierte Übertragungsdatenrate. Ein zusätzliches Teil- oder Subsystem, wie es in Anspruch 1 definiert ist, wird dazu verwendet, gewisse DCT-Koeffizienten durch Diskret- Quaternärbaum-Transformations-Koeffizienten (DQT- Koeffizienten) zu ersetzen, um die Datenrate weiter zu vermindern.
- Bei der vorliegenden Erfindung empfangen Transformationsmittel einen Eingabeblock von Pixeldaten und führen eine Diskret-Cosinus-Transformation-Operation (DCT-Operation) auf einen Pixeldatenblock und mindestens eine vorbestimmte Ebene (level) von die Pixeldatenblöcke bildenden Teil- oder Subblöcke durch. Die Transformationmittel sehen eine Ausgabe entsprechender Blöcke und Subblöcke aus Gleichstrom- und Wechselstrom-DCT-Koeffizientenwerten vor.
- Zusätzliche Transformationsmittel empfangen auch den Eingabeblock von Pixeldaten und führen eine Diskret- Quaternärbaum-Transformations-Operation (DQT-Operation) damit durch, um einen Block von DQT-Koeffizientenwerten zu erzeugen.
- Blockgrößenzuweisungsmittel empfangen für jeden Block und jeden Subblock Wechselstrom-DCT-Koeffiz ientenwerte und einen DQT-Wert als Ersatz für den Gleichstrom-DCT-Koeffizientenwert. Die Blockgrößenzuweisungsmittel bestimmen für den Block und für jede entsprechende Gruppe von den blockbildenden Teil- bzw. Unter- bzw. Subblöcken von DQT/DCT-Koeffizientenwerten, einen Bitzählwert entsprechend einer Bitanzahl, die erforderlich ist zum jeweiligen Codieren des Blocks und jeder entsprechenden Gruppe von den blockbildenden Subblöcken aus DQT/DCT- Koeffizientenwerten entsprechend einem vorbestimmten Codierformat. Die Blockgrößenzuweisungsmittel bestimmen ferner aus den Bitzählwerten entweder den Block oder die Gruppe von blockbildenden Subbiöcken aus DQT/DCT- Koeffizientenwerten, der bzw. die eine geringere Bitanzahl zum Codieren entsprechend des vorbestimmten Codierformats bentigt, und liefert eine Ausgabe mit einem entsprechenden Auswahlwert.
- DCT-Auswahlmittel empfangen den Auswahlwert und den Block- und die Subblöcke von DCT-Koeffizientenwerten und wählen gemäß dem Auswahlwert den DCT-Koeffizientenwerte- Block oder die DCT-Koeffizientenwerte-Subblöcke aus. Die DCT-Auswahlmittel sehen eine Ausgabe eines entsprechenden zusammengesetzten Blocks aus DCT-Koeffizientenwerten vor, und zwar gebildet aus dem ausgewählten Block oder den ausgewählten Subblöcke von DCT-Koeffizientenwerten. DQT- Auswahlmittel empfangen auch den Auswahlwert und den DQT- Koeffizientenwerte-Block und wählen gemäß dem Auswahlwert einen der DQT-Koeffizientenwerte aus. Die jeweils ausgewählten DQT-Koeffizientenwerte entsprechen Gleichstrom- DCT-Koeffizientenwerten des ausgewählten Blocks oder Subblocks.
- DCT-Ordnungsmittel empfangen und ordnen den zusammengesetzten Block von DCT-Koeffizientenwerten entsprechend einem vorbestimmten Ordnungsformat. Die Ordnungsmittel sehen eine Ausgabe der geordneten DCT-Koeffizientenwerte an Godiermittel vor, die die geordneten DCT-Koeffizientenwerte gemäß einem vorbestimmten Codierformat codieren. Die Codiermittel sehen eine Ausgabe der codierten, geordneten DCT-Koeffizientenwerte vor.
- DQT-Ordnungsmittel empfangen ausgewählte DQT-Koeffizienten und ordnen die ausgewählten DQT-Koeffizienten in einem Format, so daß jeder die Entsprechung mit einem jeweiligen Gleichstrom-DCT-Koeffizienten in den codierten, geordneten Koeffizientenwerten beibehält. Die DQT- Ordnungsmittel liefern eine Ausgabe der geordneten DQT- Koeffizientenwerte.
- Assemblermittel empfangen die codierten, geordneten DCT- Koeffizientenwerte, die geordneten DQT-Werte und den Auswahlwert. Die Assemblermittel erzeugen einen codierten Bildwert durch Entfernen der Gleichstrom-Koeffizientenwerte aus den geordneten, codierten DCT-Koeffizientenwerten, während sie den Auswahlwert mit den übrigen Wechselstrom-DCT-Koeffizienten der geordneten, codierten DCT- Koeffizientenwerte und den geordneten DQT-Koeffizientenwerten kombinieren. Der codierte Bildwert ist repräsentativ für den Eingangsblock von Pixeldaten und besitzt eine verminderte Bitanzahl bezüglich einer Bitanzahl des Eingangsblocks von Pixeldaten. Die Assemblermittel sehen eine Ausgabe des codierten Bildwerts zur Übertragung vor.
- Die vorliegende Erfindung sieht auch ein neues und verbessertes Verfahren zum Rekonstruieren eines entsprechenden Blocks von Pixeldaten aus jedem empfangenen, codierten Bildwert vor. Die vorliegende Erfindung beabsichtigt ferner ein neues und verbessertes Verfahren zum Komprimieren eines Bildsignals, wie es durch einen Block von Pixeldaten repräsentiert wird, und zum Rekonstruieren des Bildsignals aus dem komprimierten Bildsignal.
- Die Merkmale, Ziele und Vorteile der vorliegenden Erfindung werden deutlicher aus der nachfolgenden genauen Beschreibung in Verbindung mit den Zeichnungen, in denen ähnliche Bezugszeichen durchgehend verwendet werden und in denen:
- Fig. 1 ein Blockdiagramm ist, das die Verarbeitungselemente des Bildkompressionssystems mit adaptiver Blockgröße zum Vorsehen von DCT-Koeffizientendaten und einer Blockgrößenbestimmung darstellt;
- Fig. 2 ein Blockdiagramm ist, das die weiteren Verarbeitungselemente für das Bildkompressionsystem mit adaptiver Blockgröße darstellt, und zwar zur Auswahl von Blockgrößen von DCT-Koeffizientendaten, um einen zusammengesetzten Block von DCT-Koeffizientendaten zu erzeugen, und zum Codieren des zusammengesetzten Blocks zur Übertragung;
- Fig. 3a und 3b jeweils beispielhaft Registerblockgrößenzuweisungsdaten bzw. den entsprechenden Blockauswahlbaum darstellen;
- Fig. 4a und 4b Darstellungen sind, die jeweils in graphischer Form die Zickzack-Scan-Serialisierungs-Ordnungssequenz des ausgewählten Blocks innerhalb der Subblöcke und zwischen Subblöcken für einen beispielhaften zusammengesetzten Block von DCT- Koeffizientendaten darstellen, deren Blockgrößenauswahl gemäß der Blockgrößenzuweisungsdaten von Fig. 3a durchgeführt wurde;
- Fig. 5a-5d jeweils in graphischer Form ein alternatives Zickzack-Scan-Serialisierungsformat darstellen;
- Fig. 6 ein Blockdiagramm ist, das die DQT-Koeffizientenverarbeitungselemente des DQT-Subsystems der vorliegenden Erfindung darstellt, das zusammen mit dem Bildkompressionssystem der Fig. 1 und 2 verwendet wird;
- Fig. 7 ein Blockdiagramm ist, das weiter die DQT-Koeffizientenblockersetzungsverarbeitungselemente des DQT-Subsystems der vorliegenden Erfindung darstellt, das in Verbindung mit dem Bildkompressionssystem der Fig. 1, 2 und 6 verwendet wird;
- Fig. 8 ein Blockdiagramm ist, das einen Decodierer bzw. Decoder zum Rekonstruieren eines Bilds aus einem empfangenen Signal darstellt, welches durch die verarbeitungselemente der Fig. 1 und 2 erzeugt wurde;
- Fig. 9 ein Blockdiagramm ist, das das DQT-Subsystem der vorliegenden Erfindung darstellt, das in Verbindung mit dem Decoder von Fig. 7 verwendet wird;
- Fig.10 ein Flußdiagramm ist, das die Verarbeitungs schritte darstellt, die beim Komprimieren und Codieren von Bilddaten verwendet werden, und zwar so, wie sie von den Verarbeitungselementen in Fig. 1 und 2 durchgeführt werden; und
- Fig.11 ein Flußdiagramm ist, das die Verarbeitungs schritte darstellt, die beim Decodieren und Dekomprimieren des komprimierten Signals verwendet werden, um Pixeldaten zu erzeugen.
- Um eine digitale Übertragung von HDTV-Signalen zu erleichtern und die Vorteile davon zu genießen, ist es notwendig, irgendeine Form von Signalkompression zu verwenden. Um eine derartige hohe Auflösung bzw. Definition in dem sich ergebenden Bild zu erreichen, ist es auch wichtig, daß die hohe Qualität des Bilds erhalten bleibt. Es wurde gezeigt, daß Diskret-Cosinus-Transformations-Techniken (DCT-Techniken) eine sehr hohe Kompression erreichen. Ein Artikel, der den Kompressionsfaktor aufzeigt, hat den Titel "Scene Adaptive Coder" von Wen-Hsiung Chen et al., IEEE Transactions on Communications, Band Com-32, Nr. 3, März 1984. Jedoch ist die Qualität rekonstruierter Bilder selbst für Videokonferenzanwendungen nebensächlich bzw. marginal.
- Hinsichtlich DCT-Codiertechniken ist das Bild aus Pixeldaten aufgebaut, die in eine Anordnung nicht-überlappender Blöcke aufgeteilt sind, und zwar in der Größe NxN. Genau genommen, wird für Schwarz-Weiß-Fernsehbilder jedes Pixel von einem 8-Bit-Wort repräsentiert, wohingegen beim Farbfernsehen jedes Pixel von einem Wort repräsentiert werden kann, das aus bis zu 24 Bits besteht. Die Blöcke, in die das Bild aufgeteilt ist, sind typischerweise jeweils ein 16x16-Pixelblock, d. h. N = 16. Eine zwei-dimensionale NXN-DCT wird in jedem Block durchgeführt. Da DCT eine trennbare einheitliche Transformation ist, wird eine zwei-dimensionale DCT typischerweise durch zwei aufeinanderfolgende ein-dimensionale DCT- Operationen durchgeführt, was Einsparungen an Rechenaufwand zur Folge haben kann. Die ein-dimensionale DCT ist definiert durch die folgende Gleichung:
- wobei
- und
- C(k) = 1 für k = 1, 2, 3, ..., N-1 (3)
- Für Fernsehbilder sind die Pixelwerte reell, so daß die Berechnung keine komplexe Arithmetik umfaßt. Ferner sind die Pixelwerte nicht negativ, so daß die DCT-Komponente X(0) immer positiv ist und üblicherweise die meiste Ener gie besitzt. Tatsächlich ist für typische Bilder der größte Teil der Transformationsenergie um Gleichstrom (DC) herum konzentriert. Diese Energieverdichtungseigenschaft macht die DCT zu einem derart attraktiven Codierverfahren.
- Es wurde in der Literatur gezeigt, daß die DCT sich der Leistung der optimalen Karhunen-Loeve-Transformation (KLT) nähert, wie es in dem Artikel mit dem Titel "Discrete Cosine Transform" von N. Ahmed et al., IEEE Transactions on Computers, Januar 1974, Seiten 90-93, offenbart ist. Grundsätzlich führt die DCT-Codierung eine räumliche Redundanzverminderung für jeden Block aus durch Entfernen von Frequenzkomponenten mit sehr wenig Energie und durch Zuweisen variabler Anzahlen von Bits zu den übrigen DCT-Koeffizienten abhängig von dem Energiegehalt. Es gibt eine Anzahl von Techniken, die Bits quantisieren und zuordnen, um ein bestimmtes Fehlerkritenum, wie beispielsweise MSE (= Mean Square Error = mittlerer Quadratfehler), über den Block hinweg zu minimieren. Typischerweise werden die quantisierten DCT-Koeffizienten in eine ein-dimensionale Kette (string) abgebildet durch Ordnen von niedriger Frequenz zu hoher Frequenz. Das Abbilden (mapping) wird durchgeführt gemäß diagonaler Zickzack-Abbildung über den Block von DCT-Koeffizienten hinweg. Die Stellen der Null-Koeffizienten (oder beseitigten Koeffizienten) werden dann durch eine Lauflängencodiertechnik codiert.
- Um den DCT-Koeffizienten optimal zu quantisieren, muß man die Statistik der Transformationskoeffizienten kennen. Optimale oder sub-optimale Quantisierer können konstruiert werden basierend auf den theoretischen oder gemessenen Statistiken, die den Gesamtquantisierungsfehler minimieren. Während es keine vollständige Übereinstimmung darüber gibt, was korrekte Statistiken sind, werden verschiedene Quantisierungsschemas verwendet, wie beispielsweise das Schema, das in "Distribution of the Two-Dimensional DCT Coefficients for Images" von Randall C. Reininger et al., IEEE Transactions on Communications, Band 31, Nr. 6, Juni 1983, Seiten 835-839, offenbart ist. Jedoch wurde selbst ein einfacher linearer Quantisierer mit guten Ergebnissen verwendet.
- Abgesehen von einer Entscheidung für ein Quantisierungsschema sind zwei andere Verfahren zu berücksichtigen, um die gewünschte Bitrate zu erzeugen. Ein Verfahren besteht darin, eine Schwelle bzw. einen Schwellenwert für den DCT-Koeffizienten vorzusehen, so daß kleine Werte vernachlässigt bzw. beseitigt werden und auf Null gesetzt werden. Die andere Technik besteht darin, die Koeffizienten linear zu skalieren (oder zu normalisieren), um den Dynamikbereich der Koeffizienten zum Codieren zu vermindern, und zwar nach einer Umwandlung von Fließkomma- in Ganzzahlen. Es wird angenommen, daß Skalieren dem Schwellenwert überlegen ist beim Erhalt von sowohl subjektiver als auch objektiver Rauschabstandsqualität. Daher wird die Hauptvariable im Quantisierungsprozeß der Koeffizientenskalierfaktor sein, der variiert werden kann, um die gewünschte Bitrate zu erhalten.
- Die quantisierten Koeffizienten werden üblicherweise durch Huffman-Codes codiert, die aus theoretischen Statistiken oder aus der gemessenen Histogramm-Verteilung konstruiert werden. Die meisten Koeffizienten sind um die niedrigen Werte herum konzentriert, so daß Huffman-Codieren gute Ergebnisse ergibt. Es wird angenommen, daß Huffman-Codes, die aus einem gemessenen Histogramm erzeugt werden, sehr nahe an den theoretischen Grenzen liegen, die durch das Entropie-Maß gesetzt sind. Die Lage der Null-Koeffizienten wird durch Lauflängencodes codiert. Da die Koeffizienten von niedrigen zu hohen Frequenzen geordnet sind, neigen die Läufe dazu, lang zu sein, so daß es eine geringe Anzahl von Läufen gibt. Wenn jedoch die Anzahl von Läufen hinsichtlich der Länge gezählt würde, dominieren kurze Läufe, so daß das Huffman- Codieren der Lauflängen die Bitrate noch mehr vermindert.
- Ein wichtiger Punkt, der alle Kompressionsschemas mit niedriger Bitrate betrifft, ist der Effekt des Kanalbitfehlers bei der Rekonstruktionsqualität. Bei DCT-Codierung sind die Koeffizienten mit niedriger Frequenz, insbesondere der Gleichstrom-Term, besonders gefährdet. Der Effekt der Bitfehlerrate (BER = Bit Error Rate) auf die Rekonstruktionsqualität bei verschiedenen Kompressionsraten wurde in der Literatur dargestellt. Derartige Punkte sind diskutiert in dem Artikel mit dem Titel "Intraframe Gosine Transfer Image Coding" von John A. Roese et al., IEEE Transactions of Communications, Band Com-25, Nr. 11, November 1977, Seiten 1329-1339. Der Effekt von BER wird um 10&supmin;³ herum bemerkbar und wird bei 10&supmin;² signifikant. Eine BER von 10&supmin;&sup5; für das Übertragungssubsystem wäre sehr konservativ. Falls notwendig, kann ein Schema entworfen werden, um zusätzlichen Schutz für die niedrigeren Frequenzkoeffizienten vorzusehen, wie es in dem Artikel "Hamming Coding of DCT-Compressed Images over Noisy Channels" von David R. Comstock et al., IEEE Transactions on Communications, Band Com-32, Nr. 7, Juli 1984, Seiten 856-861, gezeigt wurde.
- Es wurde beobachtet, daß die meisten natürlichen Bilder aus leeren oder sich relativ langsam ändernden Flächen oder Bereichen und "geschäftigen" bzw. sich stark ändernden Flächen bzw. Bereichen, wie beispielsweise Objektgrenzen und kontrastreicher Textur, bestehen. Szenenbzw. bildadaptive Codierschemas nutzen diesen Faktor, indem sie dem sich stark ändernden Bereich mehr Bits zuweisen und dem leeren Bereich weniger Bits zuweisen. Für DCT-Codierung kann diese Anpassung durchgeführt werden durch Messen der Geschäftigkeit bzw. des Änderungsgrads in jedem Transformationsblock und dann blockweises Einstellen der Quantisierung und Bitzuweisung. Der Artikel mit dem Titel "Adaptive Coding of Monochrome and Color Images" von wen-Hsiung Chen et al., IEEE Transactions on Communications, Band Com-25, Nr. 11, November 1977, Seiten 1285-1292, offenbart ein Verfahren, in dem Blockenergie gemessen wird, wobei jeder Block in eine von vier Klassen klassifiziert wird. Die Bitzuweisungsmatrix wird iterativ berechnet für jede Klasse durch Untersuchen der Varianz oder Streuung der Transformationssamples bzw. -stichproben. Jeder Koeffizient wird skaliert, so daß sich die gewünschte Bitanzahl nach der Quantisierung ergibt. Die Zusatzinformation, die geschickt werden muß, ist der Klassifizierungscode, die Normalisierung für jeden Block und Vier-Bit-Zuweisungsmatrizen. Die Verwendung dieses Verfahrens hat annehmbare Ergebnisse bei 1 und 0,5 Bits pro Pixel ergeben.
- Eine weitere Bitratenverminderung wurde von Chen et al. in dem obengenannten Artikel "Scene Adaptive Coder" erreicht, wobei ein Kanalpuffer dazu verwendet wurde, die Koeffizienten adaptiv zu skalieren und zu quantisieren. Wenn der Puffer mehr als halb voll wird, normalisiert und quantisiert ein Rückkopplungsparameter die Koeffizienten grob, um die in den Puffer eintretenden Bits zu vermindem. Das Umgekehrte geschieht, wenn der Puffer weniger als halb voll wird. Anstatt die Bitzuweisungsmatrizen zu übertragen, werden die Koeffizientenstellen lauflängencodiert und die Koeffizienten sowie die Lauflängen werden Huffman-codiert. Eine solche Implementierung hat gute Farbbildrekonstruktionen bei 0,4 Bits pro Pixel ergeben. Obwohl diese Ergebnisse gedruckt sehr gut aussehen, zeigt die Simulation des Systems viele Unzulänglichkeiten. Wenn Bilder unter normaler bis mäßiger Vergrößerung angesehen werden, sind Glättungs- und Blockbildungseffekte sichtbar.
- Bei dem hier offenbarten Bildkompressionsverfahren und -system wird Intraframe-Codierung bzw. Codierung innerhalb eines Rahmens (zwei-dimensionale Verarbeitung) verwendet gegenüber Interframe-Codierung bzw. Codierung zwischen Rahmen (drei-dimensionale Verarbeitung). Ein Grund für die Verwendung der Intraframe-Codierung ist die Komplexität des Empfängers, der erforderlich ist zum Verarbeiten von Interframe-Codierungssignalen. Interframe-Codierung (Rahmenredundanzcodierung) erfordert inhärent Mehrfachrahmenpuffer zusätzlich zu komplexeren Verarbeitungsschaltungen. Während in kommerzialisierten Systemen nur eine kleine Anzahl von Sendern vorhanden sein kann, die sehr komplizierte Hardware enthalten, müssen die Empfänger so einfach wie möglich gehalten werden wegen deren Massenproduktion.
- Der zweitwichtigste Grund zur Verwendung von Intraframe- Codierung ist, daß eine Situation oder Programmaterial vorhanden sein kann, die bzw. das dazu führt, daß ein drei-dimensionales Codierschema zusammenbricht und schlecht arbeitet, oder zumindest nicht besser als das Intraframe-Codierschema arbeitet. Beispielsweise können Filme mit 24 Rahmen bzw. Bildern pro Sekunde leicht in diese Kategorie fallen, da die Integrationszeit auf Grund des mechanischen Verschlusses relativ kurz ist. Diese kurze Integrationszeit gestattet für schnelle Bewegung einen höheren Grad temporärer Bildunregelmäßigkeit (Aliasing) als bei Fernsehkameras. Die Annahme einer rahmenweisen Korrelation bricht für schnelle Bewegung zusammen, wenn diese ruckartig wird. Die praktische Auswirkung des rahmenweisen Registrierungs- bzw. Ausrichtungs- oder Paßfehlers, welcher schon bei Heimvideos bemerkbar ist, wird bei höherer Auflösung stärker.
- Ein zusätzlicher Grund für die Verwendung von Intraframe- Codieren liegt darin, daß ein drei-dimensionales Codierungsschema schwieriger zu standardisieren ist, wenn sowohl 50 Hz- als auch 60 Hz-Netzfrequenzen verwendet werden. Die Verwendung eines Intraframe-Schemas, das digital ist, ist an sowohl 50 Hz- als auch 60 Hz-Betrieb anpaßbar, und sogar an Filme mit 24 Bildern pro Sekunde, wobei die Rahmenrate gegen räumliche Auflösung eingetauscht wird, ohne daß Probleme mit dem Standard der Umwandlung auftreten.
- Obwohl die vorliegende Erfindung in erster Linie bezüglich Schwarz-Weiß beschrieben wird, ist der Zusatz bzw. zusätzliche Aufwand zum Codieren von Farbinformation überraschend klein, in der Größenordnung von 10 bis 15 % der für die Leuchtdichte bzw. Helligkeit (Luminanz) benötigten Bits. Wegen der geringen räumlichen Empfindlichkeit des Auges bezüglich Farbe haben die meisten Entwick ler ein Farbbild von dem RGB-Raum in den YIQ-Raum umgewandelt, wobei die 1- und Q-Komponenten um einen Faktor von vier in horizontaler und vertikaler Richtung teilgesampelt (sub-sample) wurden. Die sich ergebenden I- und Q-Komponenten werden in ähnlicher Weise als Y (Leucht dichte oder Luminanz) codiert. Diese Technik benötigt 6,25 % zusätzlichen Aufwand für jede der I- und Q-Komponenten. In der Praxis erfordert die codierte Q-Komponente sogar noch weniger Daten als die I-Komponente. Es 4 wird erwartet, daß sich kein signifikanter Verlust der Farbtreue ergibt, wenn diese Klasse oder Art von Farbcodiertechniken verwendet wird.
- Bei der Implementierung von DCT-Codiertechniken ist der Blockbildungseffekt die einzige und wichtigste Beein trächtigung der Bildqualität Man hat jedoch realisiert, daß der Blockbildungseffekt vermindert wird, wenn eine DCT mit kleinerer Größe verwendet wird. Der Blockbildungseffekt wird praktisch unsichtbar, wenn eine 2x2-DCT verwendet wird.
- Wenn jedoch die DCT mit kleiner Größe verwendet wird, leidet die Bit-pro-Pixel-Leistung etwas. Jedoch hilft eine DCT mit kleiner Größe am besten bei scharfen Kanten oder Rändern, die relativ leere Flächen trennen. Eine scharfe Kante ist äquivalent zu einem Schrittsignal, das signifikante Komponenten bei allen Frequenzen besitzt. Wenn es quantisiert wird, werden einige der Niedrigenergie-Koeffizienten auf Null gekürzt. Dieser Quantisierungsfehler verbreitet sich über den Block. Dieser Effekt ist ähnlich zu einem zwei-dimensionalen Äquivalent des Gibbs-Phänomens, d. h. das Schwingen, das um ein Schrittimpulssignal herum vorhanden ist, wenn ein Teil der Hochfrequenzkomponenten beim Rekonstruktionsvorgang entfernt wird. Wenn benachbarte Blöcke nicht ähnliche Quantisierungsfehler zeigen, sticht der Block mit dieser Art Fehler hervor, und erzeugt den Blockbildungseffekt. Daher wird durch die Verwendung kleinerer DCT-Blockgrößen der Quantisierungsfehler auf den Bereich nahe der Kante beschränkt, da der Fehler sich nicht außerhalb des Blocks fortpflanzen kann. Durch Verwenden der kleineren DCT- Blockgrößen in den sich stark ändernden Bereichen, wie beispielsweise an Kanten, ist der Fehler dadurch auf den Bereich entlang der Kante beschränkt. Ferner wird die Verwendung der kleinen DCT-Blockgrößen weiter verbessert hinsichtlich der subjektiven Qualität des Bildes auf Grund des räumlichen Maskierungsphänomens im Auge, welches Rauschen in der Nähe von sich stark ändernden Bereichen versteckt bzw. überdeckt.
- Die DCT-Technik mit adaptiver Blockgröße, die in der vorliegenden Erfindung implementiert ist, kann einfach beschrieben werden als ein Vergleiche-und-Ersetze-Schema. Eine 16x16-Pixeldatenanordnung oder ein Block des Bildes wird codiert, wie bei DCT-Techniken mit festgelegter Blockgröße, jedoch werden Block- und Unterblockgrößen von 16x16, 8x8, 4x4 und 2x2 verwendet. Für jeden 4x4-Block wird die Bitanzahl zum Codieren des Blocks unter Verwendung von vier 2x2-Unterblöcken innerhalb des 4x4- Blocks untersucht. Wenn die Summe der vier 2x2-Unterblöcke kleiner ist als die Bits, die zum Codieren als ein 4x4-Block benötigt werden, wird der 4x4-Block durch vier 2x2-Unterblöcke ersetzt. Als nächstes wird jeder der 8x8- Blöcke untersucht, um zu bestimmen, ob er durch vier 4x4- Unterblöcke ersetzt werden kann, die in der vorherigen Stufe optimiert wurden. Auf jeder Stufe wird die optimale Block-/Unterblock-Größe gewählt, so daß die sich ergebende Blockgrößenzuweisung für den 16x16-Block optimiert ist.
- Da 8-Bits zum Codieren der Gleichstrom-Koeffizienten unabhängig von der Blockgröße verwendet werden, ergibt die Verwendung kleinerer Blöcke eine größere Bitzahl. Aus diesem Grund werden 2x2-Blöcke nur dann verwendet, wenn ihre Verwendung die Bitzahl vermindern kann. Die sich ergebende Unterblock-Struktur kann praktisch dargestellt werden durch einen invertierten Quaternärbaum (im Gegensatz zu einem Binärbaum), wobei die Wurzel dem 16x16- Block entspricht und der bei jedem Knoten vier mögliche Zweige entsprechend vier Subblöcken besitzt. Ein Beispiel einer möglichen invertierten Quaternärbaumstruktur ist in Fig. 3b gezeigt.
- Jede Entscheidung, einen Block durch kleinere Subblöcke zu ersetzen, erfordert ein zusätzliches Informationsbit, Dieser zusätzliche Aufwand reicht von einem Bit für einen 16x16-Block bis zu 21 Bits (1+4+16), wenn 4x4- und 2x2- Subblöcke überall innerhalb des 16x16 Blocks verwendet werden. Dieser zusätzliche Aufwand (overhead) wird auch beim Entscheidungsprozeß berücksichtigt, um zu gewährleisten, daß das DCT-Schema mit adaptiver Blockgröße immer die geringste Bitzahl verwendet zum Codieren jedes 16x16-Blocks.
- Obwohl die hier beschriebenen Blockgrößen NxN sind, ist vorhersehbar, daß verschiedene Blockgrößen verwendet werden können. Beispielsweise kann eine NXM-Blockgröße verwendet werden, wobei N und M ganze Zahlen sind und wobei M größer oder kleiner als N ist. Ein weiterer wichtiger Aspekt ist, daß der Block in mindestens eine Ebene (level) von Unterblöcken teilbar ist, wie beispielsweise N/i x N/i, N/i x N/j, N/i x M/j etc., wobei i und j ganze Zahlen sind. Ferner ist die beispielhafte, hier beschriebene Blockgröße ein 16x16- Pixelblock mit entsprechenden Blöcken und Unterblöcken von DCT-Koeffizienten. Es wird weiter vorhergesehen, daß verschiedene andere ganze Zahlen, beispielsweise gerade oder ungerade ganzzahlige Werte verwendet werden können, zum Beispiel 9x9.
- Wegen der Wichtigkeit dieser zusätzlichen Bits für den Quaternärbaum, müssen diese Bits besonders gut gegen Kanalfehler geschützt werden. Man kann entweder ein zusätzliches Fehlerkorrekturcodieren für diese wichtigen Bits vorsehen oder einen Fehlerwiedergewinnungsmechanismus vorsehen, so daß der Effekt der Kanalfehler auf einen kleinen Bereichs des Bilds beschränkt ist.
- Das DCT-Kompressionsschema mit adaptiver Blockgröße der vorliegenden Erfindung kann als eine Intraframe-Codiertechnik klassifiziert werden, wobei jeder Rahmen der Bildsequenz unabhängig codiert wird. Entsprechend kann ein Einzelrahmen-Standbild genau so leicht ohne Modifikation codiert werden. Der Eingangsbildrahmen wird in eine Anzahl von 16x16-Pixeldatenblöcken unterteilt, wobei die Codierung für jeden Block durchgeführt wird. Der Hauptunterschied des Kompressionsschemas der vorliegenden Erfindung besteht in der Tatsache, daß der 16x16-Block adaptiv in Unterblöcke unterteilt wird, wobei die sich ergebenden Unterblöcke mit verschiedenen Größen auch unter Verwendung eines DCT-Prozesses codiert werden. Durch richtige Auswahl der Blockgrößen basierend auf den lokalen Bildeigenschaften kann ein großer Teil des Quantisierungsfehlers auf kleine Unterblöcke beschränkt werden. Entsprechend gruppieren sich kleine Unterblöcke natürlicherweise entlang des sich stark ändernden Bereichs des Bilds, wo die wahrgenommene Sichtbarkeit des Rauschens bzw. der störung geringer ist als in leeren Flächen oder Bereichen.
- Zusammenfassend weist herkömmliches DCT-Codieren oder Codieren mit festgelegter Blockgröße jedem Block eine festgeleqte Anzahl von Bits zu, so daß jegliches Quantisierungsrauschen auf den Block beschränkt ist und über den Block hinweg verteilt wird. Wenn die Stärke oder die Eigenschaften des Rauschens bzw. der Störung zwischen benachbarten Blöcken unterschiedlich sind, wird die Grenze zwischen den Blöcken sichtbar durch einen Effekt, der üblicherweise bekannt ist als Blockbildung (blocking artifact) 9 Szenen- bzw. bildadaptives DCT-Codieren weist jedem Block eine veränderliche Anzahl von Bits zu, wodurch das Rauschen zwischen Blöcken mit festgelegter Größe verschoben wird. Jedoch ist die Blockgröße noch groß genug, üblicherweise 16x16, so daß einige Blöcke sowohl leere als auch sich ändernde Teile des Bilds enthalten. Daher ist die Blockbildung entlang von Bildeinzelheiten, wie beispielsweise Linien und Kanten, noch sichtbar. Die Verwendung kleinerer Blockgrößen, wie beispielsweise 8x8 oder 4x4, kann die Blockbildung stark vermindern, jedoch auf Kosten einer höheren Datenrate. Infolgedessen verringert sich die Codiereffizienz von DCT, wenn die Blockgröße kleiner wird.
- Bei dem Ausführungsbeispiel, anhand dessen die vorliegende Erfindung beschrieben wird, wird eine DCT-Technik mit adaptiver Blockgröße verwendet, bei der die optimale Blockgröße so gewählt wird, daß kleinere Blöcke nur dann verwendet werden, wenn sie benötigt werden. Infolgedessen wird die Blockbildung stark vermindert ohne Erhöhung der Datenrate. Obwohl eine Anzahl verschiedener Verfahren entworfen werden kann, die eine Blockgrößenzuweisung bestimmen, wird eine beispielhafte Darstellung eines Ausführungsbeispiel vorgesehen, die die Blockgrößen derart zuweist, daß die Gesamtzahl der für jeden Block erzeugten Bits minimiert wird. Durch Verwendung der DQT- Transformation der vorliegenden Erfindung in Kombination mit der adaptiven Blockgrößentechnik kann eine weitere Verminderung der Datenrate in der Größenordnung von 5% oder mehr erreicht werden.
- Die Fig. 1 und 2 zeigen eine beispielhafte Implementierung des DCT-Transformations-Bildsignalkompressionsschemas mit adaptiver Blockgröße zum Umwandeln von NxN- Pixeldatenblöcken in ganzbitcodierte Daten. Wie hierin zu Zwecken der Darstellung beschrieben wurde, ist N=16. Fig. 1 zeigt die Implementierung der DCT-Transformations- und Blockgrößenbestimmungselemente. Fig. 2 zeigt die DCT- Koeffizientendatenblockauswahl gemäß der Blockgrößenbestimmung zusammen mit Komposit-DCT-Koeffizienten-Datenblock-Bitcodierung bzw. Bitcodierung eines aus DCT- Koeffizienten zusammengesetzten Datenblocks.
- In Fig. 1 wird ein durch einen 16x16-Block digitalisierter Pixeldaten repräsentiertes Bildsignal von dem Rahmenpuffer (nicht gezeigt) empfangen. Die Pixeldaten können entweder 8-Bit-Schwarz-Weiß-Bilddaten oder 24-Bit- Farbbilddaten sein. Der 16x16-Pixelblock wird an ein 16x16-Zwei-Dimensions-Diskret-Cosinus-Transformations- Element (DCT-Element) 10a eingegeben. Der 16x16-Pixelblock wird auch als vier 8x8-Pixelblöcke an ein 8x8-DCT- Element 10b, als acht 4x4-Pixelblöcke an ein 4x4-DCT- Element 10c und als vierundsechzig 2x2-Pixelblöcke an ein 2x2-DCT-Element 10d eingegeben. Die DCT-Elemente 10a-10d können in Form integrierter Schaltungen aufgebaut sein, wie es in der Technik bekannt ist. Der 16x16-Pixelblock wird auch parallel an ein DQT-Subsystem geliefert, das im weiteren mit Bezug auf Fig. 9 beschrieben wird.
- Die DCT-Elemente 10a-10d führen zwei-dimensionale DCT- Operationen auf jeden Eingabeblock von Pixeldaten mit entsprechender Größe durch. Beispielsweise führt das DCT- Element 10a eine einzige 16x16-Transformationsoperation durch, das DCT-Element 10b führt vier 8x8-DCT-Operationen durch, das DCT-Element 10c führt sechszehn 4x4-DCT- Operationen durch, während das DCT-Element 10d vierundsechzig 2x2-DCT-Operationen durchführt. Die Transformationskoeffizienten werden von jedem DCT-Element 10a-10d an eine jeweilige Quantisier-Nachschlagetabelle 12-12d ausgegeben.
- Die Quantisier-Nachschlagetabellen 12a-12d können in Form herkömmlicher Lesespeicher (ROM) implementiert werden, wobei Speicherplätze die Quantisierungswerte enthalten. Der Wert jedes Transformationskoeffizienten wird dazu verwendet, einen entsprechenden Speicherplatz zu adressieren, um ein Ausgabedatensignal vorzusehen, das eine Anzeige bildet für einen entsprechend quantisierten Transformationskoeffizientenwert. Die Ausgabe der Quantisier-Nachschlagetabelle 12a, die durch das Bezugssignal QCl6 angezeigt ist, ist ein 16x16-Block quantisierter DCT-Koeffizientenwerte. Die Ausgabe der Quantisier-Nachschlagetabelle 12b, die durch das Bezugssignal QC8 angezeigt ist, besteht aus einem Datenblock von vier 8x8- Unterblöcken quantisierter DCT-Koeffizientenwerte. Die Ausgabe der Quantisier-Nachschlagetabelle 12c, die durch das Bezugssignal QC4 angezeigt ist, besteht aus einem Datenblock von sechzehn 4x4-Unterblöcken quantisierter DCT-Koeffizientenwerte. Und schließlich besteht die Ausgabe der Quantisier-Nachschlagetabelle 12d, die durch das Bezugssignal QC2 angezeigt ist, aus einem Datenblock von vierundsechzig 2x2-Unterblöcken quantisierter DCT-Koeffizienten. Obwohl es nicht dargestellt ist, können die Gleichstrom-Koeffizienten (DC-Koeffizienten oder Koeffizienten mit niedrigster Frequenz) jeder Transformation wahlweise getrennt behandelt werden anstatt durch die entsprechende Quantisier-Nachschlagetabelle.
- Die Ausgaben der Quantisier-Nachschlagetabellen 12a-12d werden jeweils an Codelängen-Nachschlagetabellen 14a-14d eingegeben. Die quantisierten DCT-Koeffizientenwerte werden jeweils codiert unter Verwendung von Codes mit variabler Länge, wie beispielweise einem Huffman-Code, um die Datenrate zu minimieren. Codeworte und entsprechende Codelängen werden in Form von Codelängen-Nachschlagetabellen 14a-14d gefunden. Jeder der quantisierten DCT- Koeffizienten QC2, QC4, QC8 und QC16 wird dazu verwendet, in den Codelängentabellen die entsprechende Bitanzahl nachzuschlagen, die zum Codieren jedes Koeffizienten benötigt wird. Die Codelängen-Nachschlagetabellen 14a-14d können in Form von Lesespeichern (ROM) implementiert werden, wobei die DCT-Koeffizienten Speicherplätze adressieren, die entsprechende Codelängenwerte enthalten.
- Die Anzahl von Bits, die erforderlich sind zum Codieren jedes Blocks oder Unterblocks, wird dann bestimmt durch Summieren der Codelängen in jedem Block und Unterblock. In der grundlegenden Implementierung des Codierschemas mit adaptiver Blockgröße werden die Codelängen für die Gleichstrom- und Wechselstrom-Koeffizienten jedes Blocks und Unterblocks bei der Bestimmung der Anzahl von Bits verwendet, um den entsprechenden Block oder Unterblock zu codieren. In dem Fall jedoch, wo das DQT-Subsystem verwendet wird, wird der Wert entsprechend den Gleichstrom- DCT-Koeffizienten, welcher von den Codelängen-Nachschlagetabellen 14a-14d ausgegeben wird, ersetzt durch einen ähnlichen Wert von dem DQT-Subsystem. Multiplexer 15a-15d werden dazu verwendet zu gestatten, daß die DQT- Koeffizientencodelängenwerte, die von dem DQT-Subsystem ausgegeben werden, an den entsprechenden Codelängensummierer 16a-16d geliefert werden. Die Multiplexer 15a- 15d gestatten auch, daß die Wechselstrom-DCT-Koeffizientencodelängenwerte, die von den Codelängen-Nachschlagetabellen 14a-14d ausgegeben werden, an die entsprechenden Codelängensummierer 16a-16d geliefert werden.
- Die 256 Codelängenwerte von der Codelängen-Nachschlagetabelle 14a, die aus einem Gleichstrom-Koeffizientencodelängenwert und 255 Wechselstrom-Koeffizientencodelängenwerten bestehen, werden an den Multiplexer 15a geliefert. Ein DQT-Koeffizientencodelängenwert wird auch an den Multiplexer 15a von dem DQT-Subsystem geliefert.
- Der Multiplexer 15a ist ansprechend auf ein Steuersignal Ma, um den DQT-Koeffizientencodelängenwert von dem DQT- Subsystem an den Codelängensummierer 16a zu liefern, und zwar anstatt des Gleichstrom-DCT-Koeffizientencodelängen wert von der Codelängen-Nachschlagetabelle 14a. Jedoch werden die 255 Wechselstrom-Koffizientencodelängenwerte über den Multiplexer 15a an den Codelängensummierer 16a geliefert. In dem Codelängensummierer 16a wird die Anzahl von Bits bestimmt, die erforderlich ist zum Codieren des 16x16-Block-DQT/DCT-Koeffizientenblocks, durch Summieren der Codelängen für den Block. Daher summiert der Codelängensummierer 16a für den 16x16-Block die 255 Wechselstrom-Koeffizientencodelängenwerte zusammen mit dem einen DQT-Koeffizientencodelängenwert. Die Ausgabe von dem Codelngensummierer 16a ist das Signal CL16, welches ein einziger Wert ist, welcher eine Anzeige für die Anzahl von Bits bildet, die erforderlich sind zum Codieren des 16x16-Blocks quantisierter DQT/DCT-Koeffizienten.
- Die 256 Codelängenwerte von der Codelängen-Nachschlagetabelle 14b, welche aus insgesamt 4 Gleichstrom- Koeffizientencodelängenwerten und 252 Wechselstrom- Koeffizientencodelängenwerten bestehen, werden an den Multiplexer 15b geliefert. Jeder der vier 8x8-Blöcke besteht aus einem Gleichstrom-Koeffizientencodelängenwert und 63 Wechselstrom-Koeffizientencodelängenwerten. Für jeden Gleichstrom-CDT-Koeffizientencodelängenwert, welcher an den Multiplexer 15b geliefert wird, wird ein entsprechender DQT-Koeffizientencodelängenwert von dem DQT-Subsystem an den Multiplexer 15b geliefert. Der Multiplexer 15b ist ansprechend auf ein Steuersignal Mb, um den DQT-Koeffizientencodelängenwert von dem DQT-Subsystem an den Codelängensummierer 16b zu liefern, und zwar anstatt jedes der vier Gleichstrom-Koeffizientencodelängenwerte von der Codelängen-Nachschlagetabelle 14b. Jedoch werden die 252 Gleichstrom-Koeffizientencodelängenwerte von der Codelängen-Nachschlagetabelle 14b über den Multiplexer 15b an den Codelängensummierer 16b geliefert. Für jeden der vier 8x8-Blöcke summiert der codelängensummierer 16b die 63 Wechselstrom-Koeffizientencodelängenwerte zusammen mit dem DQT-Koeffizienten codelängenwert, um die Anzahl von Bits zu bestimmen, die erforderlich sind zum Codieren jedes 8x8-DQT/DCT-Koeffizientenunterblocks. Die Ausgabe des Codelängensummierers 16b ist vier Werte, die durch das Bezugssignal CL8 angezeigt werden, wobei jeder Wert der Summe der Codelängen in jedem der vier 8x8-DQT/DCT-Blöcke entspricht.
- In ähnlicher Weise werden die 256 Codelängenwerte von der Codelängen-Nachschlagetabelle 14c, welche aus insgesamt 16 Gleichstrom-Koeffizientencodelängenwerten und 240 Gleichstrom-Koeffizientencodelängenwerten bestehen, an den Multiplexer 15c geliefert. Jeder der sechzehn 4x4- Blöcke besteht aus einem Gleichstrom-Koeffizientencodelängenwert und fünfzehn Wechselstrom-Koeffizientencodelängenwerten. Für jeden Crleichstrom-DCT-Koeffizientencodelängenwert, welcher an den Multiplexer 15c geliefert wird, wird ein entsprechender DQT- Koeffizientencodelängenwert von dem DQT-Subsystem an den Multiplexer 15c geliefert. Der Multiplexer 15c ist ansprechend auf ein Steuersignal Mc, um den Gleichstrom-Koeffizientencodelängenwert von dem DQT-Subsystem an den Codelängensummierer 16c zu liefern, und zwar anstatt jedes der 16 Gleichstrom-Koeffizientencodelängenwerte von der Codelängen- Nachschlagetabelle 14c. Jedoch werden die 240 Wechselstrom-Koeffzientencodelängenwerte von der Codelängen- Nachschlagetabelle 14c über den Multiplexer 15c an den Codelängensummierer 16b geliefert. Für jeden der sechzehn 4x4-Blöcke summiert der Codelängensummierer 16c die 15 Wechselstrom-Koeffizientencodelängenwerte zusammen mit dem Gleichstrom-Koeffizientencodelängenwert von dem DQT- Subsystem, um die Anzahl von Bits zu bestimmen, die erforderlich ist zum Codieren jedes 4x4-DQT/DCT-Koeffizienten-Unterblocks. Die Ausgabe des Codelängensummierers 16c ist sechzehn Werte, wie durch das Referenz- bzw. Bezugssignal CL4 angezeigt ist, wobei jeder Wert der Summe der Codelängen in jedem der sechzehn 4x4-DQT/DCT- Blöcke entspricht.
- Schließlich werden die 256 Codelängenwerte von der Codelängen-Nachschlagetabelle 14d, die aus insgesamt 64 Gleichstrom-Koeffizientencodelängenwerten und 192 Wechselstrom-Koeffizientencodelängenwerten bestehen, an den Multiplexer 15d geliefert. Jeder der vierundsechzig 2x2- Blöcke besteht aus einem Gleichstrom-Koeffizientencodelängenwert und 3 Wechselstrom-Koeffizientencodelängenwerten. Für jeden Gleichstrom-DCT-Koeffizientencodelängenwert, der an den Multiplexer 15d geliefert wird, wird ein entsprechender DQT-Koeffizientencodelängenwert von dem DQT-Subsystem an den Multiplexer 15d geliefert. Der Multiplexer 15d ist ansprechend auf ein Steuersignal Md, um den Gleichstrom-Koeffizientencodelingenwert von dem DQT-Subsystem an den Codelängensummierer 16d zu liefern, und zwar anstatt jedes der 64 Gleichstrom-Koeffizientencodelängenwerte von der Codelängen-Nachschlagetabelle 14d. Jedoch werden 192 Wechselstrom-Koeffizientencodelängenwerte von der Codelängen-Nachschlagetabelle 14d über den Multiplexer 15d an den Codelängensummierer 16d geliefert. Für jeden der vierundsechzig 2x2-Blöcke summiert der Summierer 16d die 13 Wechselstrom-Koeffizientencodelängenwerte zusammen mit dem Gleichstrom- Koeffizientencodelängenwert des DQT-Subsystems, um so die Anzahl von Bits zu bestimmen, die erforderlich sind zum Codieren jedes 2x2-DQT/DCT-Koeffizienten-Unterblocks. Die Ausgabe des Codelängensummierers 16d ist 64 Werte, wie durch das Bezugssignal CL2 angezeigt ist, wobei jeder Wert die Summe der Codelängen in jedem der vierundsechzig 2x2-DQT/DCT-Blöcke ist.
- Die Werte CL8, CL4 und CL2 werden auch durch Blockpositionsorientierungskennzeichen identifiziert, wie im weiteren noch beschrieben wird. Die Positionskennzeichen sind ein einfaches x-y-Koordinatensystem, wobei die durch den Index (x, y) angezeigte Position mit den Werten CL8, CL4 und CL2 assoziiert ist.
- Die Blockgrößenzuweisung (BSA = Block Size Assignment) wird bestimmt durch Untersuchen der Werte von CL2, CL4, CL8 und CL16. Vier benachbarte Einträge von CL2(x,y) werden addiert und die Summe wird verglichen mit dem entsprechenden Eintrag in CL4(x,y). Die Ausgabe von CL2(x,y) von dem Codelängensummierer 16d wird an einen Addierer 18 eingegeben, welcher die vier benachbarten Einträge addiert und einen Summenwert CL4'(x,y) liefert. Beispielsweise werden die Werte addiert, die repräsentativ sind für die Blöcke CL2(0,0), CL2(0,1), CL2(1,0), und CL2(1,1), um den Wert CL4'(0,0) vorzusehen. Der von dem Addierer 18 ausgegebene Wert ist der Wert CL4'(x,y), welcher mit dem Wert CL4(x,y) verglichen wird, welcher von dem Codelängensummierer 16c ausgegeben wird4 Der Wert CL4'(x,y) wird zusammen mit dem Wert CL4(x,y) in einen Vergleicher bzw. Komparator 20 eingegeben. Der Komparator 20 vergleicht die entsprechenden Eingabewerte von dem Addierer 18 und dem Codelängensummierer 16c, um einen Bitwert P vorzusehen, der an ein P-Register (Fig. 2) und als eine Auswahleingabe an den Multiplexer 22 ausgegeben wird.
- In dem in Fig. 1 dargestellten Beispiel wird der Wert CL4'(0,0) verglichen mit dem Wert CL4(0,0). Wenn der Wert CL4(x,y) größer ist als die summierten Werte von CL4'(x,y), erzeugt der Generator 20 ein Bit mit einer logischen Eins ("1"), das in das P-Register eingegeben wird. Das "1"-Bit zeigt an, daß ein entsprechender 4x4- Block von DCT-Koeffizienten effizienter codiert werden kann unter Verwendung von vier 2x2-Unterblöcken. Falls nicht, wird ein Bit mit einer logischen Null ("0") in das P-Register eingegeben, was anzeigt, daß der 4x4-Block effizienter codiert wird unter Verwendung des entsprechenden 4x4-Blocks.
- Die Ausgabe des Codelängensummierers 16c und des Addierers 18 werden auch als Dateneingaben an den Multiplexer 22 geliefert. Ansprechend auf die "1"-Bitwertausgabe von dem Komparator 20 gibt der Nultiplexer 22 die Ausgabe des CL4'(x,y)-Werts an den Addierer 24 frei. Sollte jedoch das Vergleichsergebnis ein "0"-Bit-Wert sein, welcher von dem Komparator 20 erzeugt wird, ermöglicht der Multiplexer 22, daß die Ausgabe CL4(x,y) von dem Codelängensummierer 16c in den Addierer 24 eingegeben wird. Der Addierer 24 wird dazu verwendet, die darin eingegebenen Daten zu summieren, wie sie aus den Vergleichen der Werte CL4(x,y) und CL4'(x,y) ausgewählt wurden. Das Ergebnis der 16 Vergleiche der CL4(x9y) und der CL4'(x,y)-Daten wird in dem Addierer 24 addiert, um einen entsprechenden CL8'(x,y)-Wert zu erzeugen. Für jeden der 16 Vergleiche der CL4(x,y) und CL4'(x,y)-Werte, wird das Vergleichsergebnisbit an das P-Register geschickt.
- Die nächste Stufe bei der Bestimmung der Blockgrößenzuweisung ist ähnlich zu derjenigen, die hinsichtlich der Erzeugung und des Vergleichs der Werte CL4 und CL4' beschrieben wurde. Die Ausgabe von CL8'(x,y) wird als Eingabe an einen Vergleicher bzw. Komparator- 26 geliefert, und zwar zusammen mit der Ausgabe CL8(x,y) von dem Codelängensummierer 16b. Wenn der entsprechende Eintrag in CL8(x,y) größer ist als der summierte Wert CL8'(x,y), erzeugt der Komparator 26 ein "1"-Bit, das an das Q- Register (Fig. 2) ausgegeben wird. Die Ausgabe des Kornparators 26 wird auch als eine ausgewählte Eingabe an den Multiplexer 28 geliefert, welcher auch die Werte CL8(x,y) und CL8'(x,y) von dem Codelängensummierer 16b bzw. dem Addierer 24 empfängt. Sollte der von dem Komparator 26b ausgegebene Wert ein "1"-Bit sein, dann wird der CL8'(x,y)-Wert von dem Multiplexer 28 an den Addierer 30 ausgegeben. Wenn jedoch der Wert CL8' (x,y) größer sein sollte als der Wert CL8(x,y), erzeugt der Komparator 26 ein "0"-Bit, das an das Q-Register und auch an die Auswahl-Eingabe des Multiplexers 28 geschickt wird, Entsprechend wird dann der Wert CL8(x,y) über den Multiplexer 28 in den Addierer 30 eingegeben. Die Vergleichsergebnisse des Kornparators 26 sind die Q-Werte, die an das Q-Register geschickt werden. Wiederum zeigt ein "1"- Bit an, daß der entsprechende 8x8-Block von DCT-Koeffizienten effizienter codiert werden kann durch kleinere Blöcke, wie beispielsweise nur 4x4-Blöcke, nur 2x2-Blöcke oder eine Kombination davon, wie es durch die Vergleiche mit den kleineren Blöcken als optimal bestimmt wurde. Ein "0"-Bit zeigt an, daß der entsprechende 8x8-Block von DCT-Koeffizienten effizienter codiert werden kann als durch irgendeine Kombination kleinerer Blöcke.
- Die in den Addierer 30 eingegebenen Werte werden summiert und als ein Ausgabewert CL16' vorgesehen, welcher in den Komparator 32 eingegeben wird. Als zweite Eingabe an den Komparator 32 wird der Wert CL16 vorgesehen, der von dem Codelängensummierer 16a ausgegeben wird. Der Komparator 32 führt einen einzigen Vergleich zwischen den Werten CL16 und CL16' durch. Sollte der Wert CL16 größer sein als der Wert CL16', dann wird ein "1"-Bit in das R-Register (Fig. 3) eingegeben. Eine "1"-Bit-Eingabe an das R-Register ist eine Anzeige dafür, daß der Block effizienter codiert werden kann unter Verwendung von Unterblöcken anstatt einem einzigen 16x16-Block. Sollte jedoch der Wert CL16' größer sein als der Wert CL16, gibt der Komparator 32 ein "0"-Bit an das R-Register aus. Das "0"-Bit in dem R-Register ist eine Anzeige dafür, daß der Block von dem DCT-Koeffizienten als ein 16x16-Block effizienter codiert werden kann.
- Der Komparator 32 liefert auch das Ausgabe-R-Bit als eine Auswahleingabe an den Multiplexer 34. Der Multiplexer 34 hat auch Eingänge zum Empfang der CL16- und CL16'-Werte, die von dem Codelängensurnmierer 16a bzw. dem Addierer 30 geliefert werden. Die Ausgabe von dem Multiplexer 34 ist der Wert CL16, falls das R-Ausgabebit eine "0" sein sollte, während der Wert CL16' ausgegeben wird, falls das R-Ausgabebit eine "1" sein sollte. Die Ausgabe des Multiplexers 34 ist ein Wert, der eine Anzeige für die gesamten zu übertragenden Bits bildet.
- Es sei bemerkt, daß sich die Zusatzbits ändern, und zwar von einem Bit bis zu einundzwanzig Bits (1+4+16), wenn 4x4- und 2x2-Blöcke überall innerhalb des 16x16-Blocks verwendet werden.
- In Fig. 2 wird die P-Wert-Ausgabe von dem Komparator 20 (Fig. 1) seriell in ein Sechzehn-Bitregister, das P-Register 40, eingegeben. In ähnlicher Weise wird die Ausgabe von dem Komparator 26 seriell in ein Vier-Bit-Register, das Q-Register 42, eingegeben. Schließlich wird die Ausgabe von dem Komparator 32 seriell in ein Ein-Bit-Register, das R-Register 44, eingegeben. Die Ausgabe von dem P-Register 40 wird als eine P-Ausgabe an den Auswahleingang des Multiplexers 46 geliefert. Der Multiplexer 46 weist als weitere Eingaben die QC2- und QC4-Werte auf, die jeweils von den Quantisier-Nachschlagetabellen 12d und 12c ausgegeben werden. Die Ausgabe des Multiplexers 46 wird als Eingabe an den Multiplexer 48 geliefert, welcher auch als zweite Eingabe die QC8-Werte empfängt, wie von der Quantisier-Nachschlagetabelle 12b ausgegeben werden. Eine Auswahleingabe an den Multiplexer 48 wird von der 0Ausgabe des Q-Registers 42 geliefert. Die Ausgabe des Multiplexers 48 ist als eine Eingabe an den Multiplexer 50 gekoppelt. Die andere Eingabe des Multiplexers so ist mit der Ausgabe der Quantisier- Nachschlagetabelle 12a gekoppelt zum Empfang der Werte QC16. Die Auswahleingabe des Multiplexers 40 ist mit der Ausgabe des R-Registers 44 gekoppelt, um das Ausgabebit R zu empfangen.
- Wie in Fig. 2 dargestellt ist, umfaßt das P-Register 40 eine Sequenz von Bitpositionen 0-15 mit entsprechenden Bit-Werten wie sie durch den mit Bezug auf Fig. 1 beschriebenen Vergleichsprozeß bestimmt wurden. In ähnlicher Weise haben das Q-Register 42 und das R-Register 44 jeweils Bitpositionen 0-3 und 0 mit entsprechenden Daten, wie sie mit Bezug auf Fig. 1 bestimmt wurden. Die Daten in den P-, Q- und R-Registern, wie sie in Fig. 2 dargestellt sind, sind lediglich zum Zwecke der Darstellung vorgesehen.
- Wie in Fig. 2 gezeigt ist, wird der Bitwert des P-Registers 40 dazu verwendet, über den Multiplexer 46 QC2- Daten (vier 2x2-Blöcke quantisierter Transformationskoeffizienten) oder die entsprechenden QC4-Daten (einen 4x4-Block quantisierter Transformationskoeffizienten) auszuwählen. Der Multiplexer 48 wählt ansprechend auf den Wert des von dem Q-Register 42 ausgegebenen Bits zwischen der Ausgabe des Multiplexers 46 und dem Wert der QC8-Daten. Wenn der Q-Register-Bitwert ein "1"-Bit ist, wird die Ausgabe des Multiplexers 46, wie sie an den Multiplexer 48 eingegeben wird, als Ausgabe des Multiplexers 48 ausgewählt. Wenn der Q-Register-Bitwert ein "0"-Bit ist, ist die Ausgabe des Multiplexers 48 der QC8-Wert. Daher wird der Ausgabebitwert des Q-Registers 42 dazu verwendet, zwischen vier QC4-Blöcken oder Unterblöcken von QC2-Werten, wie sie von dem Multiplexer 46 ausgegeben werden, oder einem entsprechenden einzigen 8x8-Block auszuwählen. Wie in Fig. 2 dargestellt ist, umfassen die vier oberen linken Blöcke, wie sie vorn Multiplexer 46 ausgegeben werden, vier 2x2-Blöcke mit drei benachbarten 4x4-Blöcken. Da jedoch das Bit des Q-Registers ein "0"- Bit ist, wählt der Multiplexer 48 den 8x8-Block als Ausgabe. Dieses Beispiel zeigt das bedingte Ersetzungsschema.
- Die Ausgabe des Multiplexers 48 ist als Eingabe mit dem Multiplexer 50 gekoppelt. Die andere Eingabe des Multiplexers 50 wird durch die Q16-Daten vorgesehen, den 16x16-Block quantisierter DCT-Koeffizienten, wie sie von der Quantisier-Nachschlagetabelle 12a vorgesehen werden. Die Auswahleingabe an den Multiplexer so ist das Ausgabebit des R-Registers. In dem in Fig. 2 dargestellten Beispiel ist das von dem R-Register 44 ausgegebene Bit ein "1"-Bit, so daß als Ausgabe von dem Multiplexer 50 die Daten ausgewählt werden, die von dem Multiplexer 48 geliefert wurden. Sollte der Ausgabebitwert des R Registers 44 ein "0"-Bit sein, würde der Multiplexer 50 die QC16-Daten ausgeben.
- Das Multiplex-Scherna, wie es in Fig. 2 dargestellt ist, verwendet die Blockzuweisungen zum Multiplexen von Koeffizientenwerten der Unterblöcke QC2, QC4, QC8, QC16 in einen zusammengesetzten bzw. Kompositblock von DCT-Koeffizenten QC. Im wesentlichen wird dieser Schritt durch drei Stufen erreicht. Die erste Stufe ersetzt bedingt einen 4x4-Block von QC4 durch vier 2x2-Unterblöcke gemäß dem Inhalt des P-Registers. Die zweite Stufe ersetzt bedingt einen 8x8-Block von QC8 durch vier 4x4-Unterblöcke, wie sie sich aus der vorhergehenden Stufe ergeben, und zwar gemäß dem Inhalt des Q-Registers. Die dritte Stufe ersetzt bedingt den 16x16-Block von QC16 durch das Ergebnis der vorhergehenden Stufen, wenn das R- Register ein "1"-Bit enthält.
- Die Fig. 3a und 3b zeigen jeweils die beispielhaften P-, Q- und R-Registerdaten und ein entsprechendes BSA-Bitmuster so wie den entsprechenden invertierten Quaternärbaum. Die verwendete Hierarchieebene ist so, daß, wenn das in dem R-Register gespeicherte Bit eine "1" ist, ein Zustand besteht, der eine Anzeige dafür bildet, daß der Bildblock effizienter codiert werden kann unter Verwendung kleinerer Blöcke. In ähnlicher Weise gilt, daß, wenn das Q-Register irgendwelche "1"-Bits enthält, dies anzeigt, daß der entsprechende 8x8-Block effizienter codiert werden kann durch kleinere Blöcke. In ähnlicher Weise gilt, daß, wenn das P-Register irgendwelche "1"- Bits enthält, dies ferner anzeigt, daß der entsprechende 4x4-Block effizienter codiert werden kann unter Verwen dung von vier 2x2-Blöcken. Sollte irgendeines der Register ein "0"-Bit enthalten, zeigt dies an, daß der Block oder Unterblock effizienter codiert werden kann unter Verwendung der entsprechenden Blockgröße.
- Beispielsweise zeigt der Wert des Bits in der P-Register- Bit-0-Position, nämlich ein "1"-Bit an, daß dieser 4x4- Block effizienter codiert werden kann unter Verwendung von vier 2x2-Blöcken, während die "0"-Bits in den P- Register-Bitpositionen anzeigen, daß die drei 4x4-Blöcke effizienter codiert werden unter Verwendung entsprechender 2x2-Blöcke. Jedoch zeigt der Bitwert "0" in dem Q- Register an, daß die vier 4x4-Blöcke, die aus einer Gruppe von vier 2x2-Blöcken und drei 4x4-Blöcken bestehen, effizienter codiert werden durch einen einzigen 8x8-Block. Daher würden die Q-Registerdaten die P- Registerdaten übersteuern bzw. Vorrang vor diesen haben. Sobald die P-Registerdaten durch das O-Positionsbit des Q-Registers übersteuert bzw. ausgeschaltet wurden, brauchen die Daten in den P-Registerbitpositionen 0-3 nicht als Teil der Blockgrößenzuweisungsdaten (BSA-Daten) übertragen werden. Sollte jedoch eine Bitposition in einem höheren Register ein "1"-Bit sein, wie beispielsweise die Bitposition 1 des Q-Registers, werden die entsprechenden P-Registerbits als Teil der BSA-Daten vorgesehen. Wie in Fig. 3a dargestellt ist, ist die Bitposition 1 des Q- Registers ein "1"-Bit, und daher werden die entsprechenden P-Registerbits 4-7 in die BSA-Daten geliefert. Auf einem höheren Niveau werden jedes der Q-Registerbits in die BSA-Daten geliefert, da das R-Registerbit ein "1"-Bit ist.
- Bezugnehmend wiederum auf Fig. 2 enthält der zusammengesetzte Block QC viele Koeffizientenwerte von Null, die effizienter codiert werden können durch Lauflängencodes. Die Anzahl aufeinanderfolgender Nullen oder Läufe wird anstatt der Codewörter für jede Null geschickt. Um die Effizienz des Lauflängencodierens zu maximieren, werden die Koeffizienten in einer vorbestimmten Weise geordnet, so daß das Auftreten kurzer Läufe minimiert wird. Diese Minimierung wird durchgeführt, indem zuerst die Koeffizienten codiert werden, die wahrscheinlich nicht Null sind, und dann diejenigen Koeffizienten zuletzt codiert werden, die wahrscheinlicher Null sind. Wegen der Energieverdichtungseigenschaft von DCT zu niedrigen Frequenzen hin und weil diagonale Einzelheiten bzw. Details seltener auftreten als horizontale oder vertikale Einzelheiten bzw. Details, wird ein diagonales Scannen oder Zickzack-Scannen der Koeffizienten bevorzugt. Da jedoch variable Blockgrößen verwendet werden, muß das Zickzack- Scannen modifiziert werden, um die niedrigen Frequenzkomponenten jedes Unterblocks zuerst herauszusuchen, aber gleichzeitig dem diagonalen Scannen folgen für Koeffizienten ähnlicher Frequenz, und zwar technisch dann, wenn die Summe der zwei Frequenzindices gleich ist.
- Entsprechend wird der zusammengesetzte Ausgabeblock QC vorn Multiplexer 50 zusarninen mit den BSA-Daten (P, Q und R) in den Zickzack-Scan-Serialisierer 52 eingegeben. Fig. 4a zeigt die Zickzack-Ordnung der Blockdaten innerhalb von Blöcken und entsprechenden Unterblöcken. Fig. 4b zeigt die Ordnung in der Serialisierung zwischen Blöcken und Unterblöcken, wie es durch die BSA-Daten bestimmt wird.
- Die Ausgabe des Zickzack-Scan-Serialisierers 52, die aus den geordneten 256 quantisierten DCT-Koeffizienten des zusammengesetzten Blocks QC besteht, wird in den Koeffizientenpuffer 54 eingegeben, wo sie zum Lauflängencodieren gespeichert wird. Die serialisierten Koeffizienten werden von dem Koeffizientenpuffer 54 an einen Lauflängencodierer 56 ausgegeben, wo Lauflängencodierung durchgeführt wird, um die Nullen von den Nicht-Null-Koeffizienten zu trennen. Lauflängen- sowie die Nicht-Null- Koeffizienten-Werte werden separat an entsprechende Nachschlagetabellen geliefert. Die Lauflängenwerte werden von dem Lauflängencodierer 56 als eine Eingabe an die Lauflängencode-Nachschlagetabelle 58 ausgegeben, wo die Werte Huffman-codiert werden. In ähnlicher Weise werden die Nicht-Null-Koeffizientenwerte von dem Lauflängencodierer 56 als eine Eingabe an eine Nicht-Null-Code- Nachschlagetabelle 60 ausgegeben, wo die Werte auch Huffman-codiert werden. Obwohl es nicht dargestellt ist, wird ferner vorhergesehen, daß Lauflängen- und Nicht- Null-Code-Nachschlagetabellen für jede Blockgröße vorgesehen werden können.
- Die Huffman-Lauflängen-codierten Werte zusammen mit den Huffrnan-Nicht-Null-codierten Werten werden jeweils von der Lauflängencode-Nachschlagetabelle 58 bzw. der Nicht- Null-Code-Nachschlagetabelle 60 ausgegeben als Eingaben an einen Bit-Feld-Assembler 62. Eine zusätzliche Eingabe für Oden Bit-Feld-Assembler 62 sind die BSA-Daten von den P-, Q- und R-Registern. Der Bit-Feld-Assembler 62 vernachlässigt die unnötigen Bits, die von den P-, Q- und R- Registern vorgesehen werden. Der Bit-Feld-Assembler 62 assembliert die Eingabedaten mit BSA-Daten gefolgt durch die kombinierten RL-Codes und NZ-Codes. Die kombinierten Daten werden von dem Bit-Feld-Assembler 62 an einen Über tragungspuffer 64 ausgegeben, welcher die Daten vorübergehend speichert zur übertragung an den (nicht gezeigten) Sender.
- Wenn das DQT-Subsystem verwendet wird, werden die codierten Gleichstrom-DCT-Koeffizienten von der Übertragung zum Übertragungs bzw. Sendepuffer 64 weggelassen. Stattdessen werden die durch das DQT-Subsystem vorgesehenen DQT- Koeffizienten als Eingabe an den Bit-Feld-Assembler 62 übertragen. Das Formatieren von Daten bei diesem Ausführungsbeispiel ist typischerweise ein Datenpaket, das aus einer Sequenz von Synchronisations- (sync-) BSA-, DQT- und DCT-Datenbits besteht. Ferner kann das Paket auch Block-Ende-Codebits umfassen, die den DCT-Bits folgen.
- Die Fig. 5a-5d zeigen ein alternatives Scan- und Serialisierungsformat für den Zickzack-Scan-Serialisierer 52. In den Fig. 5a-5d werden die quantisierten DCT-Koeffizienten in eine ein-dimensionale Kette (string) abgebildet (mapped) durch Ordnen von niedriger Frequenz zu hoher Frequenz. Jedoch werden in dem in den Fig. 5a-5d dargestellten Schema die Frequenzen niedrigerer Ordnung von jedem Block genommen, bevor die nächsthöheren Frequenzen in dem Block genommen werden. Sollten alle Koeffizienten in einem Block während eines vorherigen Durchlaufs (scan) geordnet worden sein, wird der Block übersprungen, wobei dem nächsten Block in den Scan-Muster Priorität gegeben wird. Blockweises Scannen, wie es beim Scannen der Fig. 4a-4c durchgeführt wurde, ist eine Scan-Priorität von links nach rechts und von oben nach unten.
- Wie oben erwähnt wurde, implementiert die vorliegende Erfindung eine neue und vorher nicht offenbarte Transformation, die hierin als die differentielle Quaternärbaum-Transformation (DQT) bezeichnet wird. Die Basis für diese Transformation ist die rekursive Anwendung der 2x2-DCT auf eine Quaternärbaum-Darstellung der Unterblöcke. Am Boden des invertierten Quaternärbaums, beispielsweise des in Fig. 3b dargestellten Quaternärbaums, wird die 2x2-DCT-Operation durchgeführt und dem Knoten wird der Gleichstrom- bzw. DC-Wert der 2x2-DCT-Transformation zugewiesen. Die nächsten Knoten werden gesammelt bzw. zusammengeführt und eine weitere 2x2-DCT wird durchgeführt. Der Prozeß wird wiederholt, bis ein Gleichstrom-Wert der Wurzel zugewiesen ist. Nur der Gleichstrom-Wert an der Wurzel wird mit einer festgelegten Anzahl von Bits codiert, typischerweise 8 Bits, während der Rest Huffman-codiert wird. Da jede 2x2-DCT- Operation nichts weiter ist als eine Summe und eine Differenz von Zahlen, werden keine Multiplikationen benötigt, und alle Koeffizienten in dem Quaternärbaum mit Ausnahme von Gleichstrom repräsentieren die Differenzen von zwei Summen, daher der Name DQT. Theoretisch kann diese Art der Transformation die Leistung von 16x16-DCT- Codierern nicht übertreffen. Jedoch hat die Implementierung der DQT-Transformation den Vorteil, daß sie anscheinend einfache Hardware benötigt, und zwar zusätzlich dazu, daß sie auf natürliche Weise das Codieren mit adaptiver Blockgröße implementiert. Ferner gestattet die Quaternärbaumstruktur das Codieren der Null-Koeffizienten durch einfaches Anzeigen des Fehlens eines Unterbaums, wenn alle Unterblöcke unter dem Unterbaum nur Nullen enthalten.
- Fig. 6 zeigt eine beispielhafte Implementierung eines DQT-Subsystems. In Fig. 6 wird der gleiche 16x16-Block von Pixeldaten empfangen wie der des Subsystems der Fig. 1 und 2, so daß die DQT-Verarbeitung parallel zur Datenverarbeitung mit adaptiver Blockgröße erreicht wird. Der Eingabeblock von Pixeldaten wird an ein 2x2-DCT-Element 70 geliefert, das 64 zwei-dimensionale 2x2-DCT-Operationen mit den Daten durchführt. Die Ausgabe des DCT- Elements 70 besteht aus einem 16x16-Block von DCT- Koeffizienten, nämlich dem Block 71. Für jeden 2x2-Block von Pixeldaten, welcher von dem DCT-Element 70 verarbeitet wurde, besteht die entsprechende Ausgabe aus einem Gleichstrom-DCT-Koeffizienten (DC&sub2;) und drei Wechselstromkoeffizienten (AC&sub2;).
- Der 16x16-Block von DCT-Koeffizienten, der von dem DCT- Element 70 ausgegeben wurde, wird an eine Wahlvorrichtung bzw. einen Selektor 72 geliefert. Der Selektor 72 entfernt die Gleichstrom-DCT-Koeffizienten aus dem Eingabeblock von DCT-Koeffizienten und liefert einen 8x8-Ausgabeblock, welcher ausschließlich aus Gleichstrom-DCT- Koeffizienten (DC&sub2;) besteht. Der 8x8-Block aus DC-DCT- Koeffizienten (DC&sub2;), nämlich der Block 73, wird an ein 2x2-DCT-Element 74 geliefert.
- Das DCT-Element 74 führt sechzehn zwei-dimensionale 2x2- DCT-Operationen auf den Eingabeblock der Gleichstrom-DCT- Koeffizienten (DC&sub2;) aus. Die Ausgabe des DCT-Elements 74 besteht aus einem 8x8-Block von DCT-Koeffizienten. Für jeden 2x2-Block von Gleichstrom-DCT-Koeffizienten (DC&sub2;), welcher von dem DCT-Element 74 verarbeitet wurde, besteht die entsprechende Ausgabe aus einem Gleichstrom-DCT- Koeffizienten (DC&sub4;) und drei Wechselstrom-DCT-Koeffizienten (AC&sub4;). Wie in Fig. 6 dargestellt ist, ersetzen die eingekreisten Gleichstrom-DCT-Koeffizienten (DC&sub4;) und Wechselstrom-DCT-Koeffizienten (AC&sub4;) im Block 75 einen entsprechenden Gleichstrom-DCT-Koeffizienten (DC&sub2;) in der 8x8-Blockanordnung des Blocks 73 als Ausgabe von der Auswahlvorrichtung bzw. dem Selektor 72.
- Der von dem DCT-Element 74 ausgegebene 8x8-Block von DCT- Koeffizienten wird an den Selektor 76 geliefert. Die Auswahlvorrichtung bzw. der Selektor 76 liefert die Wechselstrom-DCT-Koeffizienten (AC&sub4;) von dem Eingangsblock von DCT-Koeffizienten als eine Eingabe an den Multiplexer 80, während die Gleichstrom-DCT-Koeffizienten (DC&sub4;) als vier 2x2-Blöcke von Gleichstrom-DCT-Koeffizienten (DC&sub4;), nämlich dem Block 77, an das 2x2-DCT-Element 78 geliefert werden. Das DCT-Element 78 führt vier zweidimensionale 2x2-DCT-Operationen auf den Eingabeblock von Gleichstrom-DCT-Koeffizienten (DC&sub4; ) durch. Die Ausgabe des DCT-Elements 78 besteht aus einem 4x4-Block von DCT- Koeffizienten, nämlich dem Block 79. Für jeden der vier 2x2-Blöcke von Gleichstrom-DCT-Koeffizienten (DC&sub4;), die von dem DCT-Element 78 verarbeitet werden, besteht die entsprechende Ausgabe aus einem Gleichstrom-DCT- Koeffizienten (DC&sub8;) und drei Wechselstrom-DCT-Koeffizienten (AC&sub8;). Der Gleichstrom-DCT-Koeffizient (DC&sub8;) und die Wechselstrom-DCT-Koeffizienten (AC&sub8;), die ausgegeben werden, werden als weitere Eingabe an den Multiplexer 80 geliefert.
- Der Multiplexer 80 liefert normalerweise eine Ausgabe aus den Wechselstrom-DCT-Koeffizienten (AC&sub4;) von dem DCT- Element 74 (über den Selektor (Separator) 76). Der Multiplexer 80 ist ansprechend auf ein Steuersignal Na zum Liefern des Gleichstrom-DCT-Koeffizienten (DC&sub8;) und der Wechselstromkoeffizienten (AC&sub8;) von dem DCT-Element 78. Der Multiplexer 80 erzeugt einen zusammengesetzten 8x8- Block aus Gleichstrom- und Wechselstrom-DCT-Koeffizienten, nämlich den Block 81. Der Block 81 ist hinsichtlich der Anordnung identisch mit den Wechselstrom-DCT-Koeffizienten (AC&sub4;), wie sie im Block 75 von dem DCT-Element 74 ausgegeben werden. Im Block 81 jedoch ersetzen die Gleichstrom-DCT-Koeffizienten (DC&sub8;) und die Wechselstrom- DCT-Koeffizienten (AC&sub8;) die Gleichstrom-DCT-Koeffizienten (DC&sub4;) im Block 75, wie er von dem DCT-Element 74 ausgegeben wurde. Wie in Fig. 6 dargestellt ist, ersetzen die eingekreisten Gleichstrom-DCT-Koeffizienten (DC&sub8;) und Wechselstrom-DCT-Koeffizienten (AC&sub8;) im Block 81 einen entsprechenden Gleichstrom-DCT-Koeffizienten (DC&sub4;) in der 8x8-Blockanordnung des Blocks 75. Da nur ein Gleichstrom- Koeffizient für jede 15 Wechselstromkoeffizienten vorhanden ist, wird im Block 81 der zusammengesetzte Block als vier 4x4-Blöcke angesehen.
- Die vier 4x4-Blöcke von DCT-Koeffizienten, die von dem Multiplexer 80 ausgegeben wurden, werden an den Selektor bzw. die Auswahlvorrichtung 82 geliefert. Der Selektor 82 liefert die Wechselstrom-DCT-Koeffizienten (AC&sub4;) und (AC&sub8;) von dem Eingabeblock der DCT-Koeffizienten als eine Eingabe an den Multiplexer 86, während er die Gleichstrom-DCT-Koeffizienten (DC&sub8;) als einen 2x2-Block von Gleichstrom-DCT-Koeffizienten (DC&sub4;), nämlich den Block 83, an das 2x2-DCT-Element 84 liefert.
- Das DCT-Element 84 führt eine zwei-dimensionale 2x2-DCT- Operation auf den Eingabeblock von Gleichstrom-DCT-Koeffizienten (DC&sub8;) durch. Die Ausgabe des DCT-Elements 78 besteht aus einem 2x2-Block von DCT-Koeffizienten, dem Block 85. Für den von dem DCT-Element 84 verarbeiteten 2x2-Block von Gleichstrom-DCT-Koeffizienten (DC&sub4;) besteht die Ausgabe aus einem Gleichstrom-DCT-Koeffizienten (DC&sub1;&sub6;) und drei Wechselstrom-DCT-Koeffizienten (AC&sub1;&sub6;). Der Gleichstrom-DCT-Koeffizient (DC&sub1;&sub6;) und die Wechselstrorn-DCT-Koeffizienten (AC&sub1;&sub6;), die ausgegeben werden, werden als weitere Eingabe an den Multiplexer 86 vorgesehen.
- Der Multiplexer 86 liefert normalerweise eine Ausgabe der Wechselstrom-DCT-Koeffizienten (AC&sub4;) und (AC&sub8;) von dem Multiplexer 80 (über den Selektor (Separator) 82). Der Multiplexer 86 ist ansprechend auf ein Steuersignal Nb zum Liefern des Gleichstrom-DCT-Koeffizienten (DC&sub1;&sub6;) und der Wechselstromkoeffizienten (AC&sub1;&sub6;) von dem DCT-Element 84. Der Multiplexer 86 erzeugt einen zusammengesetzten 8x8-Block aus Wechselstrom- und Gleichstrom-DCT-Koeffizienten, nämlich den Block 87. Der Block 87 ist hinsichtlich der Anordnung identisch mit den Wechselstrom- DCT-Koeffizienten (AC&sub4;) und (AC&sub8;), wie sie von dem Mul tiplexer 80 im Block 81 ausgegeben werden. Jedoch ersetzen im Block 87 der Wechselstrom-DCT-Koeffizient (DC&sub1;&sub6;) und die Wechselstrom-DCT-Koeffizienten (AC&sub1;&sub6;) die Gleichstrom-DCT-Koeffizienten (DC&sub8;) im Block 81, wie er von dem Multiplexer 80 ausgegeben wird. Wie in Fig. 6 dargestellt wird, ersetzen der eingekreiste Gleichstrom-DCT-Koeffizient (DC&sub1;&sub6;) und die Wechselstrom-DCT-Koeffizienten (AC&sub1;&sub6;) im Block 87 einen entsprechenden Gleichstrom-DCT- Koeffizienten (DC&sub8;) in der 8x8-Blockanordnung von Block 81. Da es nur einen Gleichstrom-Koeffizienten für jede 15 Wechselstrorn-Koeffizienten gibt, wird der zusammengesetzte Block im Block 87 als ein 8x8-Block angesehen.
- Der 8x8-Block, nämlich der Block 87, der von dem Multiplexer 86 ausgegeben wird, besteht aus dem, was als Diskret-Quaternärbaum-Transformations-Koeffizienten (DQT- Koeffizienten) bezeichnet wird. Die DQT-Koeffizienten werden dann quantisiert durch Liefern der Koeffizientenwerte an die Quantisier-Nachschlagetabelle 88.
- Die Quantisier-Nachschlagetabelle 88 kann auch in Form eines herkömmlichen Lesespeichers (ROM) implementiert werden, wobei Speicherplätze Quantisierungswerte enthalten. Der Wert jedes Transformationskoeffizienten wird dazu verwendet, eine entsprechende Speicherstelle zu adressieren, um ein Ausgabedatensignal vorzusehen, das eine Anzeige für einen entsprechenden quantisierten Transformationskoeffizientenwert bildet. Die Ausgabe der Quantisier-Nachschlagetabelle 88, die durch das Bezugssignal QC16 bezeichnet wird, ist ein 8x8-Block quantisierter DQT-Koeffizientenwerte. Obwohl es nicht gezeigt ist, kann wiederum der Gleichstrom-Koeffizient (DC&sub1;&sub6;) der DQT-Transformationsoperation wahlweise separat behandelt werden anstatt durch die entsprechende Quantisier- Nachschlagetabelle.
- Die DQT-Koeffizienten werden als eine Ausgabe der Quantisier-Nachschlagetabelle 88 an die Codelängen-Nachschlagetabelle 90 geliefert. Die quantisierten DQT- Koeffizientenwerte werden jeweils codiert unter Verwendung von Code mit variabler Länge, wie beispielsweise einem Huffman-Code, um die Datenrate zu minimieren. Codeworte und entsprechende Codelängen werden in Form der Codelängen-Nachschlagetabelle 90 gefunden. Jeder der quantisierten DQT-Koeffizienten DC&sub1;&sub6;, AC&sub1;&sub6;, AC&sub8; und AC&sub4; wird dazu verwendet, in der Codelängentabelle die entsprechende Anzahl von Bits nachzuschlagen, die erforderlich ist zum Codieren jedes Koeffizienten. Die Codelängen-Nachschlagetabelle 90 kann auch implementiert werden in Form eines Lesespeichers (ROM), wobei die DQT- Koeffizienten Speicherplätze adressieren, die entsprechende Codelängenwerte enthalten. Die DQT-Koeffizienten- Codelängenwerte werden an die Multiplexer 15a-15d von Fig. 1 geliefert, um die entsprechenden Gleichstrom-DCT- Koeffizienten-Codelängenwerte für jeden Block und Unterblock bei der Blockgrößenbestimmung zu ersetzen, wie es mit Bezug auf die Fig. 1 und 2 beschrieben wurde.
- In Fig. 7 werden die 64 quantisierten DQT-Koeffizientenwerte des Blocks 91 ausgewählt, um die Gleichstrom- DCT-Koeffizientenwerte für die Blockgrößen zu ersetzen, wie es durch die Blockgrößenbestimmung bestimmt wurde, die demgemäß durchgeführt wurde, wie es mit Bezug auf die Fig. 1 und 2 beschrieben wurde. Die in den P-, Q- und R- Registern 40, 42 und 44 gespeicherten Werte werden dazu verwendet, die DQT-Koeffizientenwerte auszuwählen, und zwar zur Ersetzung in dem Block und den Unterblöcken der Gleichstrom-DCT-Koeffizientenwerte.
- Die DQT-Koeffizientenwerte werden von der Quantisier- Nachschlagetabelle 88 (Fig. 6) an einen Eingang des Multiplexers 92 geliefert. Am anderen Eingang des Multiplexers 92 wird ein Schein- oder Blindwert x vorgesehen. Der Multiplexer 92 ist ansprechend auf die Bits des P-Registers 40 zum Vorsehen einer Ausgabe der DQT-Koeffizientenwerte für den gesamten 2x2-Unterblock, wenn eine "1" an der Bitposition des P-Registers 40 vorhanden ist. Wenn der Wert an der Bit-Position des P-Registers 40 eine "0" ist, wird nur derjenige DQT-Koeffizientenwert, der dem Gleichstrom-Koeffizientenwert des Unterblocks entspricht, ausgegeben, wobei die übrigen ausgegebenen Werte die Schein- oder Blindwerte x sind. Der Wert x wird bloß dazu verwendet, die Anordnung innerhalb des Unterblocks aufrechtzuerhalten, wobei diese Werte schließlich beseitigt werden. Der zusammengesetzte Block 93 wird gebildet unter Verwendung der Daten in den 16 Bitpositionen des P-Registers 40, wie es in dem Beispiel vorgesehen ist, das mit Bezug auf die Fig. 1 und 2 gegeben wurde.
- Die Unterblöcke aus DQT-Koeffizienten und Schein- bzw. Blindwerten x, die von dem Multiplexer 92 ausgegeben werden, werden als eine Eingabe an den Multiplexer 94 geliefert. An dem anderen Eingang des Multiplexers 94 wird wiederum der Schein- oder Blindwert x vorgesehen. Der Multiplexer 94 ist ansprechend auf die Bits des Q- Registers 42, um eine Ausgabe aus den DQT- Koeffizientenwerten und Scheinwerten x für einen gesamten 4x4-Unterblock vorzusehen, wie er vom Multiplexer 92 vorgesehen wird, wenn eine "1" in der Bitposition des Q-Registers 42 ist. Wenn der Wert der Bitposition im Q-Register 42 eine "0" ist, wird nur der DQT-Koeffizientenwert, der dem Gleichstrom-Koeffizientwert des Unterblocks entspricht, ausgegeben, wobei die übrigen ausgegebenen Werte die Scheinwerte x sind. Der Wert x wird wiederum nur dazu verwendet, die Anordnung innerhalb des Unterblocks aufrechtzuerhalten, wobei diese Werte schließlich beseitigt werden. Der zusammengesetzte Block 95 wird gebildet unter Verwendung der Daten in den vier Bitpositionen des Q-Registers 42, wie sie in dem Beispiel vorgesehen werden, das mit Bezug auf die Fig. 1 und 2 gegeben wurde.
- Die Unterblöcke aus DQT-Koeffizienten und Scheinwerten x, die von dem Multiplexer 94 ausgegeben werden, werden als eine Eingabe an den Multiplexer 96 vorgesehen. Am anderen Eingang des Multiplexers 96 wird wiederum der Scheinwert x vorgesehen. Der Multiplexer 96 ist ansprechend auf die Bits des R-Registers 44 zum Liefern einer Ausgabe aus den DQT-Koeffizientenwerten und den Scheinwerten x für einen gesamten 16x16-Block, wie er von dem Multiplexer 94 geliefert wird, wenn eine "1" in der einzigen Bitposition 0 des R-Registers 44 ist. Wenn der Wert der Bitposition 0 im R-Register 42 eine "0" ist, wird nur derjenige DQT- Koeffizientenwert, der dem Gleichstrom-Koeffizientenwert des Blocks entspricht, ausgegeben, wobei die übrigen ausgegebenen Werte die Scheinwerte x sind. Der Wert x wird wiederum nur dazu verwendet, die Anordnung innerhalb des Blocks aufrechtzuerhalten, wobei diese Werte schließlich beseitigt werden. Der zusammengesetzte Block 97 wird gebildet unter Verwendung der Daten in der einzigen Bitposition des R-Registers 44, wie es in dem Beispiel vorgesehen wird, das mit Bezug auf die Fig. 1 und 2 gegeben wurde.
- Ein Vergleich des Blocks 97 mit dem repräsentativen Block für die Werte QC von Fig. 2 ergibt, daß für jeden zu codierenden 8x8-DCT-Koeffizientenblock von QC ein einziger DQT-Koeffizientenwert existiert. In ähnlicher Weise existiert für jeden zu codierenden 4x4- und 2x2-DCT- Koeffizientenblock von QC ein einziger DQT-Koeffizientenwert. Obwohl in dem gegebenen Beispiel der Block nicht als ein 16x16-Block codiert wurde, wäre, falls dies der Fall gewesen wäre, ein einziger DQT-Wert in dem zusammengesetzten Block erzeugt worden.
- Die DQT-Koeffizientenwerte werden von dem Multiplexer 96 an den Zickzack-Scan-Serialisierer ausgegeben, welcher die DQT-Koeffizienten und Scheinwerte x in einer Weise anordnet, wie es mit Bezug auf die Fig. 4a und 4b beschrieben wurde. Die Zickzack-Scan-serialisierten Daten werden an die Wert-Entfernungs-Logik 99 geliefert, welche die Scheinwerte x entfernt, und zwar unter Verwendung von Information, die die Position der Scheinwerte x identifiziert, basierend auf den P-, Q- und R-Registerdaten. Es ist verständlich, daß die Verwendung der Scheinwerte x eliminiert werden kann unter Verwendung eines aufwendigeren Multiplexschemas.
- Die von der Logik 99 ausgegebenen DQT-Koeffizientenwerte werden an die Code-Nachschlagetabelle 66 geliefert, wobei die Werte codiert werden, vorzugsweise unter Verwendung eines Huffman-Codes. Die codierten DQT-Koeffizientenwerte werden von der Code-Nachschlagetabelle 66 an den Bit- Feld-Assembler 62 von Fig. 2 ausgegeben. Wie oben bei der Anordnung der Daten zur Übertragung beschrieben wurde, liefert der Bit-Feld-Assembler 62 die codierten DQT-Koeffizienten zusammen mit den codierten Wechselstrorn-DCT- Koeffizienten, während er die codierten Gleichstrom-DCT- Koeffizienten aus der Datenausgabe entfernt.
- Fig. 8 zeigt die Implementierung eines Empfängers zum Decodieren des komprimierten Bildsignals, das entsprechend der Parameter der Fig. 1 und 2 erzeugt wurde. In Fig. 8 wird das codierte Wort von dem Empfänger (nicht gezeigt) an einen Empfangspuffer 100 ausgegeben. Der Empfangspuffer 100 liefert eine Ausgabe des Code-Worts an einen Separator bzw. eine Trenneinrichtung 102. Die empfangenen Code-Worte umfassen naturgemäß die BSA-Daten, die DQT-codierten Koeffizienten und die codierten DCT- Koeffizienten in Form der RL-Codes und NZ-Codes. Alle empfangenen Code-Worte erfüllen die Präfix-Bedingungen, so daß die Länge jedes Codeworts nicht bekannt sein muß, um die Code-Worte zu trennen und zu decodieren.
- Der Separator 102 trennt die BSA-Codes von den DQT-codierten Koeffizienten und den codierten DCT-Koeffizien ten, da die BSA-Codes zuerst vor diesen Daten gesendet und empfangen werden. Das erste empfangene Bit wird in ein internes R-Register (nicht gezeigt) geladen, und zwar ähnlich zu dem von Fig. 2. Eine Untersuchung bzw. Überprüfung des R-Registers bestimmt, daß, wenn das Bit eine "0" ist, der BSA-Code nur ein Bit lang ist. Der Separator 102 umfaßt auch Q- und P-Register, die anfangs mit Nullen gefüllt sind. Wenn das R-Register ein "1"-Bit enthält, werden vier weitere Bits von dem Empfangspuffer genommen und in das Q-Register geladen. Für jedes "1"-Bit in dem Q-Register werden vier weitere Bits aus dem Empfangspuffer genommen und in das P-Register geladen. Für jede "0" in dem Q-Register wird nichts aus dem Empfangspuffer genommen, aber vier "0" werden in das P-Register geladen. Daher sind mögliche Längen von BSA-Code 1, 5, 9, 13, 17 und 21 Bits. Die decodierten BSA-Daten werden von dem Separator 102 ausgegeben.
- Der Separator 102 trennt auch die DQT-codierten Koeffizienten von den codierten DCT-Koeffizienten. Der Separator 102 gibt die DQT-codierten Koeffizienten an das DQT- Decoder-Subsystem aus, das in weiterer Einzelheit in Fig. 9 dargestellt ist.
- Der Separator 102 gibt auch die codierten DCT-Koeffizienten in Form von RL-Codes und NZ-Codes an eine RL- Decodier-Nachschlagetabelle 104 bzw. eine NZ-Decodier Nachschlagetabelle 106 aus. Die Nachschlagetabellen 104 und 106 sind im wesentlichen inverse Nachschlagetabellen bezüglich der Nachschlagetabellen 58 und 60 von Fig. 2. Die Ausgabe der Nachschlagetabelle 104 sind der Lauflänge entsprechende Werte, die in den Lauflängen-Decoder 108 eingegeben werden.
- In ähnlicher Weise werden die Nicht-Null-Koeffizientenwerte, die von der Nachschlagetabelle 106 ausgegeben werden, auch in den Lauflängen-Decoder 108 eingegeben. Der Lauflängendecoder 108 fügt die Nullen in die decodierten Koeffizienten ein und liefert eine Ausgabe an den Koeffizientenpuffer 110, der die Koeffizienten zeitweilig speichert. Die gespeicherten Koeffizienten werden an einen inversen Zickzack-Scan-Serialisierer 112 ausgegeben, welcher die Koeffizienten entsprechend dem verwendeten Scan- Schema ordnet. Der inverse Zickzack-Scan-Serialisierer 112 empfängt das BSA-Signal von dem Separator 102 zur Unterstützung beim richtigen Ordnen der Block- und Unterblock-Koeffizienten in einen zusammengesetzten Koeffizientenblock. Der Block aus Koeffizientendaten wird von dem inversen Zickzack-Scan-Serialisierer 112 ausgegeben und jeweils an eine entsprechende inverse Quantisier- Nachschlagetabelle 114a-114d angelegt bzw. geliefert.
- In jeder inversen Quantisier-Nachschlagetabelle 114a-114d wird ein inverser Quantisierwert auf jeden Koeffizienten angelegt, um die Quantisierung rückgängig zu machen. Die inversen Quantisier-Nachschlagetabellen 114a-114d können als ROM-Einrichtungen verwendet werden, die die Quantisierungsfaktoren der Quantisier-Nachschlagetabellen 12a-12d enthalten. Die Koeffizienten werden von jeder der inversen Quantisier-Nachschlagetabellen 114a-114d an einen entsprechenden Eingang von Multiplexern 115a-llsd ausgegeben.
- Die andere Eingabe jedes Multiplexers 115a-115d ist mit dem DQT-Decoder-Subsystem von Fig. 9 gekoppelt. Die Multiplexer 115a-115d sind jeweils ansprechend auf ein entsprechendes Steuersignal Ya-Yd zum Liefern einer Ausgabe von Wechselstrom-DCT-Koeffizientenwerten, die von den inversen Quantisier-Nachschlagetabellen 114a-114d geliefert werden, und der DQT-Koeffizientenwerte, die die Gleichstrom-DCT-Koeffizientenwerte ersetzen. Die DQT/DCT- Koeffizienten werden jeweils von den Multiplexern 115a-115d an Invers-Diskret-Cosinus-Transformations-Elemente (IDCT-Elemente) 116a-116d ausgegeben.
- Das IDCT-Element 116a bildet aus dem 16x16-Koeffientenblock, falls vorhanden, einen 16x16-Pixeldatenblock, welcher dann an den Unterblock-Kombinierer bzw. -Combiner 118 ausgegeben wird. In ähnlicher Weise transformiert das IDCT-Element 116b entsprechende 8x8-Blöcke von Koeffizienten, falls vorhanden, in 8x8-Blöcke von Pixeldaten. Die Ausgabe des IDCT-Elements 116b wird an den Unterblock-Combiner 118 geliefert. Die IDCT-Elemente 116c und 116d transformieren jeweils die 4x4- und 2x2-Koeffizientenblöcke, falls vorhanden, in entsprechende Pixeldatenblöcke, die an den Unterblock-Combiner 118 geliefert werden. Der Unterblock-Combiner 118 empfängt, zusätzlich zum Empfang der Ausgaben von den IDCT-Elementen 116a-116d auch die BSA-Daten von dem Separator 102, um die Blöcke von Pixeldaten zu einem einzigen 16x16-Pixelblock zu rekonstruieren. Der rekonstruierte 16x16-Pixelblock wird an einen Rekonstruktionspuffer (nicht gezeigt) ausgegeben zur schließlichen Übertragung an das Anzeigesystem.
- Fig. 9 zeigt in größerer Einzelheit die Struktur des DQT- Decoder-Subsystems, wobei der Separator 102 die codierten DQT-Koeffizienten an die Decodier-Nachschlagetabelle 120 liefert. Die Nachschlagetabelle 120 ist im wesentlichen eine inverse Nachschlagetabelle bezüglich der Nachschlagetabelle 66 von Fig. 7 und ist an sich eine Huffman-Decoder-Nachschlagetabelle. Die Ausgabe der Nachschlagetabelle 120 sind Werte, die den decodierten DQT-Koeffizienten entsprechen und in eine Wert-Einsetz- Logik 122 eingegeben werden. Die Logik 122 empfängt auch die BSA-Daten, die im wesentlichen die Werte für die P-, Q- und R-Register sind. Die Logik 122 rekonstruiert den Block/die Unterblöcke mit den DQT-Daten und den Scheinwerten x, um einen zusammengesetzten, serialisierten Block aus DQT- und Scheinwerten zu erzeugen, entsprechend einer Zickzack-Scan-serialisierten Version des Blocks 97 von Fig. 7.
- Die DQT-Koeffizienten und Scheinwerte werden von der Logik 122 an den inversen Zickzack-Scan-Serialisierer 124 ausgegeben, welcher die Koeffizienten entsprechend dem verwendeten Scan-Schema ordnet. Der inverse Zickzack- Scan-Serialisierer 124 empfängt auch das BSA-Signal von dem Separator 102 zur Unterstützung beim richtigen Ordnen der Block- und Unterblock-Koeffizienten in einem zusammengesetzten Koeffizientenblock identisch zum Block 97 von Fig. 7. Der Block aus Koeffizientendaten wird von dem inversen Zickzack-Scan-Serialisierer 124 an die inverse Quantisier-Nachschlagetabelle 126 ausgegeben.
- In der inversen Quantisier-Nachschlagetabelle 126 wird ein inverser Quantisierwert auf jeden Koeffizienten angewandt, um die Quantisierung rückgängig zu machen. Die inverse Quantisier-Nachschlagetabelle 126 kann auch als ROM-Einrichtung verwendet werden, die die Quantisierungsfaktoren von der Quantisier-Nachschlagetabelle 88 enthält. Die Koeffizienten werden von jeder der inversen Quantisier-Nachschlagetabellen 126 an den Separator 128 ausgegeben. Der Separator 128 liefert den Gleichstrom- DQT-Koeffizienten (DC&sub1;&sub6;) zusammen mit den Wechselstrom- DQT-Koeffizienten (AC&sub1;&sub6;) an den Multiplexer 115a. Das IDCT-Element 116a empfängt daher den Gleichstrom-DQT- Koeffizienten (DC&sub1;&sub6;) über den Multiplexer 115a. Es sei bemerkt, daß, obwohl diese Werte an den Multiplexer 115a geschickt werden, die Wechselstromkoeffizienten (AC&sub1;&sub6;) nicht von dem Multiplexer ausgegeben werden. Hinsichtlich des Gleichstrom-Koeffizienten (DC&sub1;&sub6;) wird dieser Wert von dem Multiplexer ausgegeben, kann aber schließlich vernachlässigt werden, sofern er zu einer Blockgröße gehört, die nicht entsprechend der Blockgrößenzuweisung ausgewählt wird. Bei einem alternativen Ausführungsbeispiel kann der schließlich nicht verwendete Wert nicht an den Multiplexer 115a geschickt werden oder dort gesperrt oder angehalten werden unter Verwendung der BSA-Daten. In Fig. 7 ist dieser Wert nicht graphisch dargestellt als eine Eingabe an den Unterblock-Combiner 118.
- Der Separator 128 liefert auch die Gleichstrom- und Wechselstrom-DQT-Koeffizienten (DC&sub1;&sub6;) und (AC&sub1;&sub6;) an ein 2x2-Invers-Diskret-Cosinus-Transformations-Element (IDCT- Element) 130, während alle anderen Werte des zusammengesetzten 8x8-Blocks als Eingabe an den Multiplexer 132 geliefert werden. Im Block 129 sind die relevanten Werte dargestellt, die an das IDCT-Element 130 geliefert werden.
- Das IDCT-Element 130 führt eine 2x2-Invers-Diskret- Cosinus-Transformation auf den 2x2-Block aus, der aus einem Gleichstrom- und drei Wechselstrom-DQT-Koeffizienten (DC&sub1;&sub6;) und (AC&sub1;&sub6;) besteht, um vier sich ergebende Gleichstrom-DQT-Koeffizienten (DC&sub8;) zu erzeugen, die als Eingabe an den Multiplexer 132 geliefert werden. Die Gleichstrom-DQT-Koeffizienten (DC&sub8;) werden auch an den Multiplexer 115b geliefert. In dem gegebenen Beispiel werden zwei der Gleichstrom-DQT-Koeffizienten (DC&sub8;), die im Block 135 eingekreist sind, in den Daten des letzten Blocks anstatt des Gleichstrom-DCT-Koeffizienten verwendet, der nicht geschickt wurde. Wie mit Bezug auf die von dem Multiplexer 115a gelieferten Werte beschrieben wurde, werden in dem vorliegenden Beispiel die zwei anderen dieser Werte in den Zuweisungsdaten des letzten Blocks nicht verwendet. In Fig. 7 sind diese nicht verwendeten Berech nungswerte nicht graphisch dargestellt als Eingabe an den Unterblock-Combiner 118.
- Der Multiplexer 132 liefert alle Werte von dem Separator 128 als Ausgabe an den Separator 134. Der Multiplexer 132 empfängt auch die Gleichstrom-DQT-Koeffizientenwerte (DC&sub8;) von dem IDCT-Element 130, und ansprechend auf ein Steuersignal Z&sub1; werden die Gleichstrorn-DQT-Koeffizienten (DC&sub8;) an den Separator 134 an der entsprechenden Stelle in dem zusammengesetzten Block für die Gleichstrom- und Wechselstrom-DQT-Koeffizienten (DC&sub1;&sub6;) und (AC&sub1;&sub6;) ausgegeben.
- Der Separator 134 liefert die Gleichstrom- und Wechselstrom-DQT-Koeffizienten (DC&sub8;) und (AC&sub8;) an ein 2x2-Invers-Diskret-Cosinus-Tranformations-Element (IDCT- Element) 136, während er alle anderen Werte des zusammengesetzten 8x8-Blocks als Eingabe an den Multiplexer 138 liefert. Im Block 135 sind die relevanten Werte dargestellt, die an das IDCT-Element 136 geliefert werden.
- Das IDCT-Element 136 führt vier 2x2-Invers-Diskret- Cosinustransformationen auf jedem der vier 2x2-Blöcke aus, die aus einem Gleichstrom- und drei Wechselstrom- DQT-Koeffizienten (DC&sub8;) und (AC&sub8;) bestehen, um 16 sich ergebende Gleichstrom-DQT-Koeffizienten (DC&sub4;) zu erzeu gen, die als Eingabe an die Multiplexer 138 und 115c geliefert werden. In dem gegebenen Beispiel wird die IDCT-Berechnung durchgeführt in jeder der zwei linken Unterblöcke des Blocks 135 unter Verwendung des Gleichstrorn-DQT-Koeffizienten (DC&sub8;) und von drei Scheinwerten für die drei Wechselstrom-DQT-Koeffizienten (AC&sub8;). Da das Ergebnis der IDCT-Berechnungen unter Verwendung der Scheinwerte nicht der tatsächliche Gleichstrom-DQT-Koeffizient ist, können diese Werte an den Multiplexer 115c übertragen werden, werden aber unbenutzt bleiben.
- Die Gleichstrom-DQT-Koeffizienten (DC&sub4;) werden so, wie sie von dem IDCT-Element 136 ausgegeben werden an den Multiplexer 115c geliefert. Wiederum für das gegebene Beispiel werden sechs der acht Gleichstrom-DQT-Koeffizienten (DC&sub4;), die im Block 139 eingekreist sind, in den Daten des letzten Blocks anstatt des Gleichstrom-DCT- Koeffizienten verwendet, welcher nicht geschickt wurde. Wie mit Bezug auf die von den Multiplexern 115a und 115b gelieferten Werte beschrieben wurde, werden bei dem vor liegenden Beispiel die anderen zwei dieser Werte in den Zuweisungsdaten des letzten Blocks auch nicht verwendet. In Fig. 7 sind diese nicht verwendeten Werte zusammen mit den Scheinwertberechnungsergebnissen nicht graphisch dargestellt als Eingabe an den Unterblock-Combiner 118. Der Multiplexer 138 liefert die von dem Separator 134 ausgegebenen Werte als Eingabe an ein 2x2-Invers-Diskret- Cosinus-Transformations-Element (IDCT-Element) 140. Der Multiplexer 138 empfängt auch die Gleichstrom-DCT- Koeffizientenwerte (DC&sub4;) von dem IDCT-Element 136, und ansprechend auf ein Steuersignal Z&sub2; werden die Gleichstrorn-DQT-Koeffizienten (DC&sub4;) an das IDCT-Element 140 an dem entsprechenden Platz in dem zusammengesetzten Block für die Gleichstrom- und Wechselstrom-DQT-Koeffizienten (DC&sub8;) und (AC&sub8;) ausgegeben. Im Blockteil 141 sind die relevanten Werte dargestellt, die an das IDCT-Element 140 geliefert werden.
- Das IDCT-Element 140 führt sechzehn 2x2-Invers-Diskret- Cosinus-Transformationen auf die 2x2-Blöcke aus, die jeweils aus einem Gleichstrom- und drei Wechselstrom-DQT- Koeffizienten (DC&sub4;) und (AC&sub4;) bestehen, um vierundsechzig sich ergebende Gleichstrom-DQT-Koeffizienten (DC&sub2;) zu erzeugen, die als Eingabe an den Multiplexer 115d geliefert werden. In dem gegebenen Beispiel wird die IDCT-Berechnung in jedem Koeffizienten-Unterblock im Block 139 durchgeführt, einschließlich solcher ohne Wechselstrom-DQT-Koeffizienten (AC&sub4;), und zwar unter Verwendung von drei Scheinwerten für die drei Wechselstrom-DQT-Koeffizienten (AC&sub4;). Da das Ergebnis der IDCT- Berechnungen unter Verwendung von Scheinwerten kein tatsächlicher Gleichstrom-DQT-Koeffizient ist, können diese Werte an den Multiplexer 115d übertragen werden, werden aber unbenutzt bleiben.
- Wiederum für das gegebene Beispiel werden acht der vierundsechzig Gleichstrom-DQT-Koeffizienten (DC&sub2;) die im Block 141 eingekreist sind, in den Daten des letzten Blocks anstatt des Gleichstrom-DCT-Koeffizienten verwendet, welcher nicht geschickt wurde. Wie mit Bezug auf die von den Multiplexern 115a und 115b gelieferten Werte beschrieben wurde, sind in dem vorliegenden Beispiel die zwei anderen dieser Werte in den Zuweisungsdaten des letzten Blocks auch unbenutzt. In Fig. 7 sind diese nicht verwendeten Werte zusammen mit den Scheinwertberechnungsergebnissen nicht graphisch dargestellt als Eingabe an den Unterblock-Combiner 118.
- Wie mit Bezug auf Fig. 8 beschrieben wurde, werden die DQT-Koeffizienten, die als Ersatz für die weggelassenen Gleichstrom-DCT-Koeffizienten übertragen wurden, als Gleichstrom-Koeffizient für jede relevante Blockgröße verwendet. Die DQT-Implementierung ist leicht anpaßbar auf das hier offenbarte Bildkompressionsschema mit adaptiver Blockgröße. Das DQT-Subsystem vermindert die Datenrate durch Vorsehen einer Verminderung der Bits, die geschickt bzw. gesendet werden müssen.
- Ferner hat eine DQT-Subsystem-Implementierung keine Auswirkung auf die Anzahl von Zusatz- oder Overhead-Bits in dem Bildkompressionsschema mit adaptiver Blockgröße. Tatsächlich ergibt die Verwendung des DQT-Verarbeitungsschemas eine Verminderung der Anzahl von Bits, die übertragen werden müssen, für solche Fälle, in denen die Anzahl kleiner Blöcke groß ist.
- Fig. 10 zeigt in Blockdiagrammform eine Flußdiagramm für die Signalkompression der vorliegenden Erfindung. Fig. 10 zeigt kurz die Schritte, die bei der Verarbeitung umfaßt sind, wie sie mit Bezug auf die Fig. 1, 2, 6 und 7 beschrieben wurde. In ähnlicher Weise zeigt Fig. 11 den Dekompressionsprozeß der übertragenen komprimierten Bilddaten, um die Ausgabepixeldaten zu ergeben. Die in Fig. 11 dargestellten Schritte wurden oben beschrieben mit Bezug auf die Fig. 9 und 10.
- Die Verwendung von DQT-Verarbeitungstechniken fördert die verbesserte Bildqualität, die durch ein Verarbeitungsschema mit adaptiver Blockgröße vorgesehen wird, ohne ein Opfer beim Bit-pro-Pixel-Verhältnis zu bringen. Es wird angenommen, daß ein Bit-pro-Pixel-Verhältnis von ungefähr "1" und sogar wesentlich weniger als dieses Niveau eine wesentliche Verbesserung der Bildqualität vorsehen würde, die ausreichend ist für HDTV-Anwendungen, wenn die hier offenbarten Techniken verwendet werden. Es wird vorhergesehen, daß viele Veränderungen der Erfindung nach dem Lesen der vorliegenden Offenbarung leicht gemacht werden können
- Die obige Beschreibung der bevorzugten Ausführungsbeispiele wurde gegeben, um einem Fachmann zu ermöglichen, die vorliegende Erfindung herzustellen oder zu nutzen. Die verschiedenen Modifikationen dieser Ausführungsbeispiele sind dem Fachmann sogleich deutlich. Somit soll die vorliegende Erfindung nicht auf die hier gezeigten Ausführungsbeispiele beschränkt sein, sondern lediglich durch den Umfang der Ansprüche.
Claims (2)
1. Ein Subsystem zur Verwendung in einem
Bildkompressionssystem mit adaptiver Blockgröße zum Komprimieren
eines Blocks von Eingangspixeldaten zur Übertragung
durch Ausführung einer
Diskret-Cosinus-Transformations-Operation (DCT-Operation) am Block von
Pixeldaten und an mindestens einer vorbestimmten Ebene
(Pegel, Level) von Bestandteile davon bildenden
Unter- oder Subblöcken, um so einen entsprechenden
Bildblock und Unterblöcke von Gleichstrom- und
Wechselstrom-DCT-Koeffizientenwerten zu erzeugen;
Bestimmen eines Bit-Zählerstands für jeden Bildblock
und jede entsprechende Gruppe von Bildunterblöcken
von DCT-Koeffizientenwerten entsprechend der Anzahl
der Bits, die erforderlich ist, um jeweils den
Bildblock und jede entsprechende Gruppe von
Bildunterblöcken von DCT-Koeffizientenwerten
entsprechend einem vorbestimmten Codierformat zu
codieren;
Bestimmen solcher Bildblöcke und entsprechender
Gruppen von Bildunterblöcken von
DCT-Koeffizientenwerten aus dem Bit-Zählerstand, die eine geringere
Anzahl von Bits zum Codieren entsprechend dem
Codierformat erfordern;
Auswählen des Bildblock und von solchen
Bildsubblöcken von DCT-Koeffizientenwerten, der bzw. die
eine geringere Anzahl von Bits zum Codieren gemäß dem
Codierformat benötigt bzw. benötigen, um so einen
zusammengesetzten Bildblock zu bilden;
Ordnen der DCT-Koeffizientenwerte des
zusammengesetzten Bildblocks entsprechend einem vorbestimmten
Ordnungs format;
Codieren der DCT-Koeffizientenwerte des
zusammengesetzten Bildblocks entsprechend dem Codierformat;
und
Assemblieren bzw. Zusammenfügen der codierten,
geordneten DCT-Koeffizientenwerte des
zusammengesetzten Bildblocks zusammen mit Information, die
ausgewählte Bildblocks und Bildunterblöcke von DCT-
Koeffizientenwerten des zusammengesetzten Bildblocks
identifiziert, wobei das Subsystem die weitere
Kompression des Blocks von Pixeldaten vorsieht und
folgendes aufweist:
Diskret-Quaternärbaum-Transformationsmittel (70-88)
die: für den Empfang des erwähnten Eingangsblocks von
Pixeldaten eine erste Diskret-Cosinus-Transformation
(DCT) an dem erwähnten Block von Pixeldaten derart
ausführen, um einen entsprechenden ersten Block von
Gleichstrom- und Wechselstrom-DCT-Koeffizientenwerten
zu erzeugen; eine Reihe von zusätzlichen DCT-
Operationen ausführen, wobei eine erste zusätzliche
DCT-Operation an den erwähnten Gleichstrom-DCT-
Koeffizienten des ersten Blocks von Gleichstrom- und
Wechselstrom- DCT-Koeffizientenwerten ausgeführt wird
und wobei jede darauffolgende zusätzliche DCT-
Operation an sich ergebenden DCT-Koeffizientenwerten
einer vorhergehenden zusätzlichen DCT-Operation
ausgeführt wird und eine letzte zusätzlichen DCT-
Operation einen entsprechenden letzten Block von
Gleichstrom- und Wechselstrom-DCT-Koeffizientenwerten
erzeugt; und eine Ausgabe des erwähnten letzten
Blockes von Gleichstrom- und Wechselstrom-DCT-
Koeffizientenwerten vorsehen;
Codelängenbestimmungsmittel (90) zum Empfang jedes
der erwähnten letzten Blöcke von Gleichstrom- und
Wechselstrom-DCT-Koeffizientenwerten, zum Erzeugen
eines entsprechenden Codelängenwertes entsprechend
einer Länge jedes der erwähnten Gleichstrom- und
Wechselstrom-DCT-Koeffizientenwerte des letzten
Blocks, wie er entsprechend dem erwähnten
vorbestimmten Codierformat codiert wurde, und zum
Einsetzen jedes Codelängenwertes anstelle eines
Gleichstrom-DCT-Koeffizienten für jeden
entsprechenden
Bildblock und Bildsubblock in der erwähnten
Bit-Zählerstandsbestimmung, wobei die erwähnten
Bildblöcke und Bildsubblöcke für den erwähnten
zusammengesetzten Bildblock unter Verwendung der
entsprechenden Codelängenwerte ausgewählt werden; und
Ersetzungsmittel (15a-15d) zum Empfang jedes letzten
Blocks von Gleichstrom- und
Wechselstrom-DCT-Koeffizientenwerten und zum Ersetzen jedes Gleichstrom-DCT-
Koeffizienten des erwähnten ausgewählten Bildblocks
bzw. der Bildsubblöcke des erwähnten
zusammengesetzten Bildblocks mit einem entsprechenden der erwähnten
Gleichstrom- und Wechselstrom-DCT-Koeffizientenwerte
des letzten Blocks.
2. Subsystem nach Anspruch 1, wobei die Ersetzungsmittel
ferner folgendes ausweisen:
Ordnungsmittel (91-99) zum Ordnen der erwähnten
Gleichstrom- und Wechselstrom-DCT-Koeffizientenwerte
des letzten Blocks entsprechend dem erwähnten
vorbestimmten Ordnungsformat; und
Codiermittel (66) zum Kodieren jedes
Koeffizientenwertes der erwähnten Gleichstrom- und Wechselstrom-
DCT-Koeffizientenwerte des letzten Blocks
entsprechend dem erwähnten vorbestimmten Codierformat.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US71021691A | 1991-06-04 | 1991-06-04 | |
PCT/US1992/004606 WO1992022166A1 (en) | 1991-06-04 | 1992-06-03 | Adaptive block size image compression method and system |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69222766D1 DE69222766D1 (de) | 1997-11-20 |
DE69222766T2 true DE69222766T2 (de) | 1998-05-07 |
Family
ID=24853107
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69222766T Expired - Lifetime DE69222766T2 (de) | 1991-06-04 | 1992-06-03 | System zur adaptiven kompression der blockgrössen eines bildes |
Country Status (15)
Country | Link |
---|---|
US (1) | US5452104A (de) |
EP (1) | EP0587783B1 (de) |
JP (1) | JP3145403B2 (de) |
KR (1) | KR0167367B1 (de) |
AT (1) | ATE159396T1 (de) |
AU (1) | AU658432B2 (de) |
CA (1) | CA2110264C (de) |
DE (1) | DE69222766T2 (de) |
DK (1) | DK0587783T3 (de) |
ES (1) | ES2110504T3 (de) |
FI (1) | FI107489B (de) |
GR (1) | GR3025624T3 (de) |
HK (1) | HK1019838A1 (de) |
NO (1) | NO305299B1 (de) |
WO (1) | WO1992022166A1 (de) |
Families Citing this family (177)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5649029A (en) * | 1991-03-15 | 1997-07-15 | Galbi; David E. | MPEG audio/video decoder |
AU3274593A (en) * | 1991-12-13 | 1993-07-19 | Avid Technology, Inc. | Quantization table adjustment |
US5355450A (en) | 1992-04-10 | 1994-10-11 | Avid Technology, Inc. | Media composer with adjustable source material compression |
AU6099594A (en) * | 1993-02-03 | 1994-08-29 | Qualcomm Incorporated | Interframe video encoding and decoding system |
JPH06311496A (ja) * | 1993-04-26 | 1994-11-04 | Sony Corp | 画像信号伝送方法及び画像信号伝送装置 |
GB2281465B (en) * | 1993-08-27 | 1997-06-04 | Sony Uk Ltd | Image data compression |
JP3202433B2 (ja) * | 1993-09-17 | 2001-08-27 | 株式会社リコー | 量子化装置、逆量子化装置及び画像処理装置並びに量子化方法、逆量子化方法及び画像処理方法 |
KR950010632A (ko) * | 1993-09-17 | 1995-04-28 | 배순훈 | 동영상부호화기 |
JP2526505B2 (ja) * | 1993-09-28 | 1996-08-21 | 日本電気株式会社 | 画像処理装置 |
EP0729688A1 (de) * | 1993-11-15 | 1996-09-04 | National Semiconductor Corporation | Quadtree-strukturierte walshtransformationsbildkodierung |
US5446806A (en) * | 1993-11-15 | 1995-08-29 | National Semiconductor Corporation | Quadtree-structured Walsh transform video/image coding |
JP3163880B2 (ja) * | 1993-12-16 | 2001-05-08 | 松下電器産業株式会社 | 画像圧縮符号化装置 |
US6798834B1 (en) * | 1996-08-15 | 2004-09-28 | Mitsubishi Denki Kabushiki Kaisha | Image coding apparatus with segment classification and segmentation-type motion prediction circuit |
JPH07307867A (ja) * | 1994-05-13 | 1995-11-21 | Brother Ind Ltd | 記録データ発生装置 |
JPH08214309A (ja) * | 1995-02-07 | 1996-08-20 | Canon Inc | 画像信号復号装置 |
WO1996033575A1 (en) * | 1995-04-18 | 1996-10-24 | Advanced Micro Devices, Inc. | Video decoder using block oriented data structures |
US5864637A (en) * | 1995-04-18 | 1999-01-26 | Advanced Micro Devices, Inc. | Method and apparatus for improved video decompression by selective reduction of spatial resolution |
US5872866A (en) * | 1995-04-18 | 1999-02-16 | Advanced Micro Devices, Inc. | Method and apparatus for improved video decompression by predetermination of IDCT results based on image characteristics |
US6002801A (en) * | 1995-04-18 | 1999-12-14 | Advanced Micro Devices, Inc. | Method and apparatus for improved video decompression by selection of IDCT method based on image characteristics |
US5680482A (en) * | 1995-05-17 | 1997-10-21 | Advanced Micro Devices, Inc. | Method and apparatus for improved video decompression by adaptive selection of video input buffer parameters |
ZA965340B (en) | 1995-06-30 | 1997-01-27 | Interdigital Tech Corp | Code division multiple access (cdma) communication system |
US20030156525A1 (en) * | 1995-10-04 | 2003-08-21 | Bunsen Fan | Method of and system for block-by-block data retrieval for optical storage |
US6571019B1 (en) * | 1995-10-26 | 2003-05-27 | Hyundai Curitel, Inc | Apparatus and method of encoding/decoding a coded block pattern |
US6088039A (en) * | 1996-01-04 | 2000-07-11 | Compaq Computer Corporation | Compression of grey scale images of text |
TW364107B (en) * | 1996-03-25 | 1999-07-11 | Trw Inc | Method and system for three-dimensional compression of digital video signals |
US6360018B1 (en) * | 1996-04-10 | 2002-03-19 | Canon Kabushiki Kaisha | Image processing apparatus and method |
JP4286322B2 (ja) * | 1996-07-11 | 2009-06-24 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 符号化されたビデオ画像の送信及び受信 |
US6366614B1 (en) * | 1996-10-11 | 2002-04-02 | Qualcomm Inc. | Adaptive rate control for digital video compression |
SE9703849L (sv) | 1997-03-14 | 1998-09-15 | Ericsson Telefon Ab L M | Nedskalning av bilder |
US6014172A (en) * | 1997-03-21 | 2000-01-11 | Trw Inc. | Optimized video compression from a single process step |
US5870144A (en) * | 1997-03-28 | 1999-02-09 | Adaptec, Inc. | Reduced-quality resolution digital video encoder/decoder |
US6018368A (en) * | 1997-07-11 | 2000-01-25 | Samsung Electro-Mechanics Co., Ltd. | Scalable encoding apparatus and method with improved function of scaling motion vector |
JPH11143497A (ja) | 1997-11-10 | 1999-05-28 | Matsushita Electric Ind Co Ltd | 圧縮されたテーブルを用いてサブバンドごとに量子化係数を復号化する方法 |
US6594398B1 (en) | 1998-03-06 | 2003-07-15 | Divio, Inc. | Method and apparatus for run-length encoding video data |
KR100354531B1 (ko) * | 1998-05-06 | 2005-12-21 | 삼성전자 주식회사 | 실시간 복호화를 위한 무손실 부호화 및 복호화 시스템 |
US8813137B2 (en) * | 1998-05-08 | 2014-08-19 | Qualcomm Incorporated | Apparatus and method for decoding digital image and audio signals |
US20020056081A1 (en) * | 1999-12-02 | 2002-05-09 | Qualcomm Incorporated | Apparatus and method for decoding digital image and audio signals |
SE9802286L (sv) * | 1998-06-26 | 1999-12-27 | Ericsson Telefon Ab L M | Effektiv nedskalning av DCT-komprimerade bilder |
DE69934939T2 (de) | 1998-06-29 | 2007-10-18 | Xerox Corp. | Kompression von Grenzen zwischen Bildern |
US6470052B1 (en) * | 1998-06-29 | 2002-10-22 | Xerox Corporation | HVQ compression combined with orthogonal rotation |
US6396958B1 (en) * | 1998-09-25 | 2002-05-28 | Lockheed Martin Corporation | Image transmission system and method employing compression and error correction |
US6411740B1 (en) | 1998-11-04 | 2002-06-25 | Sharp Laboratories Of America, Incorporated | Method for non-uniform quantization in a resolution hierarchy by use of a nonlinearity |
US6487319B1 (en) * | 1998-11-18 | 2002-11-26 | Sarnoff Corporation | Apparatus and method for identifying the location of a coding unit |
KR100366643B1 (ko) * | 1998-11-25 | 2003-02-19 | 삼성전자 주식회사 | 구획현상제거방법및장치 |
US6356665B1 (en) | 1998-12-09 | 2002-03-12 | Sharp Laboratories Of America, Inc. | Quad-tree embedded image compression and decompression method and apparatus |
US6983073B1 (en) * | 1999-01-13 | 2006-01-03 | Gidel Imaging Ltd. | Enhancement of compressed images |
US6529634B1 (en) * | 1999-11-08 | 2003-03-04 | Qualcomm, Inc. | Contrast sensitive variance based adaptive block size DCT image compression |
US6393154B1 (en) | 1999-11-18 | 2002-05-21 | Quikcat.Com, Inc. | Method and apparatus for digital image compression using a dynamical system |
US6985589B2 (en) | 1999-12-02 | 2006-01-10 | Qualcomm Incorporated | Apparatus and method for encoding and storage of digital image and audio signals |
US6600836B1 (en) * | 2000-01-28 | 2003-07-29 | Qualcomm, Incorporated | Quality based image compression |
US6731686B1 (en) * | 2000-05-31 | 2004-05-04 | Sun Microsystems, Inc. | Apparatus and method for pipelining variable length decode and inverse quantization operations in a hybrid motion-compensated and transform coded video decoder |
US6636645B1 (en) * | 2000-06-29 | 2003-10-21 | Eastman Kodak Company | Image processing method for reducing noise and blocking artifact in a digital image |
US6912070B1 (en) | 2000-08-08 | 2005-06-28 | Qualcomm, Inc. | Sub-optimal variable length coding |
US7424058B1 (en) | 2000-09-28 | 2008-09-09 | Autodesk, Inc. | Variable bit-rate encoding |
US8692844B1 (en) | 2000-09-28 | 2014-04-08 | Nvidia Corporation | Method and system for efficient antialiased rendering |
JP3678164B2 (ja) * | 2001-04-13 | 2005-08-03 | ソニー株式会社 | データ転送システム、データ転送装置、データ記録装置、データ転送方法 |
US7035468B2 (en) * | 2001-04-20 | 2006-04-25 | Front Porch Digital Inc. | Methods and apparatus for archiving, indexing and accessing audio and video data |
US6870885B2 (en) | 2001-05-16 | 2005-03-22 | Qualcomm Incorporated | Apparatus and method for decoding and computing a discrete cosine transform using a butterfly processor |
US7649947B2 (en) * | 2001-06-05 | 2010-01-19 | Qualcomm Incorporated | Selective chrominance decimation for digital images |
US20020191695A1 (en) * | 2001-06-07 | 2002-12-19 | Irvine Ann Chris | Interframe encoding method and apparatus |
US6996248B2 (en) * | 2001-06-13 | 2006-02-07 | Qualcomm, Incorporated | Apparatus and method for watermarking a digital image |
US6870963B2 (en) | 2001-06-15 | 2005-03-22 | Qualcomm, Inc. | Configurable pattern optimizer |
US6735254B2 (en) * | 2001-06-29 | 2004-05-11 | Qualcomm, Inc. | DCT compression using Golomb-Rice coding |
US7483581B2 (en) * | 2001-07-02 | 2009-01-27 | Qualcomm Incorporated | Apparatus and method for encoding digital image data in a lossless manner |
US6650784B2 (en) * | 2001-07-02 | 2003-11-18 | Qualcomm, Incorporated | Lossless intraframe encoding using Golomb-Rice |
US20030012431A1 (en) * | 2001-07-13 | 2003-01-16 | Irvine Ann C. | Hybrid lossy and lossless compression method and apparatus |
US7630563B2 (en) * | 2001-07-19 | 2009-12-08 | Qualcomm Incorporated | System and method for decoding digital image and audio data in a lossless manner |
US20030053637A1 (en) * | 2001-09-14 | 2003-03-20 | Michael Rodemer | Audio distributor |
CN101448162B (zh) | 2001-12-17 | 2013-01-02 | 微软公司 | 处理视频图像的方法 |
US6909748B2 (en) * | 2001-12-20 | 2005-06-21 | Sorenson Media, Inc. | Method and system for image compression using block size heuristics |
US20030118097A1 (en) * | 2001-12-21 | 2003-06-26 | Koninklijke Philips Electronics N.V. | System for realization of complexity scalability in a layered video coding framework |
FR2834362A1 (fr) * | 2001-12-28 | 2003-07-04 | Koninkl Philips Electronics Nv | Dispositif de transformation inverse adaptatif |
US20030161400A1 (en) * | 2002-02-27 | 2003-08-28 | Dinerstein Jonathan J. | Method and system for improved diamond motion search |
US7596277B2 (en) * | 2002-04-09 | 2009-09-29 | Senthil Govindaswamy | Apparatus and method for detecting error in a digital image |
KR101150576B1 (ko) * | 2002-07-29 | 2012-06-08 | 콸콤 인코포레이티드 | 디지털 이미지 인코딩 |
US6975773B1 (en) | 2002-07-30 | 2005-12-13 | Qualcomm, Incorporated | Parameter selection in data compression and decompression |
EP1942462B1 (de) | 2002-11-15 | 2009-04-15 | Qualcomm Incorporated | Vorrichtung und Verfahren zur Mehrfachbeschreibungskodierung |
JP4541896B2 (ja) * | 2002-11-15 | 2010-09-08 | クゥアルコム・インコーポレイテッド | 多重記述符合化のための装置及び方法 |
US7995849B2 (en) | 2003-03-17 | 2011-08-09 | Qualcomm, Incorporated | Method and apparatus for improving video quality of low bit-rate video |
US7738554B2 (en) | 2003-07-18 | 2010-06-15 | Microsoft Corporation | DC coefficient signaling at small quantization step sizes |
US7580584B2 (en) | 2003-07-18 | 2009-08-25 | Microsoft Corporation | Adaptive multiple quantization |
US8218624B2 (en) | 2003-07-18 | 2012-07-10 | Microsoft Corporation | Fractional quantization step sizes for high bit rates |
US7602851B2 (en) | 2003-07-18 | 2009-10-13 | Microsoft Corporation | Intelligent differential quantization of video coding |
US10554985B2 (en) | 2003-07-18 | 2020-02-04 | Microsoft Technology Licensing, Llc | DC coefficient signaling at small quantization step sizes |
US7412100B2 (en) | 2003-09-04 | 2008-08-12 | Qualcomm Incorporated | Apparatus and method for sub-sampling images in a transform domain |
US8788996B2 (en) * | 2003-09-15 | 2014-07-22 | Nvidia Corporation | System and method for configuring semiconductor functional circuits |
US8775997B2 (en) | 2003-09-15 | 2014-07-08 | Nvidia Corporation | System and method for testing and configuring semiconductor functional circuits |
US8732644B1 (en) | 2003-09-15 | 2014-05-20 | Nvidia Corporation | Micro electro mechanical switch system and method for testing and configuring semiconductor functional circuits |
US7298925B2 (en) * | 2003-09-30 | 2007-11-20 | International Business Machines Corporation | Efficient scaling in transform domain |
US20050074062A1 (en) * | 2003-10-06 | 2005-04-07 | Sung Chih-Ta Star | Fast DCT method and apparatus for digital video compression |
US8711161B1 (en) | 2003-12-18 | 2014-04-29 | Nvidia Corporation | Functional component compensation reconfiguration system and method |
US8116374B2 (en) | 2004-05-07 | 2012-02-14 | Broadcom Corporation | Method and system for generating a transform size syntax element for video decoding |
US7801383B2 (en) | 2004-05-15 | 2010-09-21 | Microsoft Corporation | Embedded scalar quantizers with arbitrary dead-zone ratios |
CN102790880B (zh) * | 2004-06-15 | 2015-04-08 | 思科技术公司 | 用于视频压缩的混合可变长度编码的方法和设备 |
WO2006031737A2 (en) | 2004-09-14 | 2006-03-23 | Gary Demos | High quality wide-range multi-layer compression coding system |
US8723231B1 (en) | 2004-09-15 | 2014-05-13 | Nvidia Corporation | Semiconductor die micro electro-mechanical switch management system and method |
US8711156B1 (en) | 2004-09-30 | 2014-04-29 | Nvidia Corporation | Method and system for remapping processing elements in a pipeline of a graphics processing unit |
JP4034317B2 (ja) * | 2005-03-29 | 2008-01-16 | 富士通株式会社 | 画像符号化装置 |
US8427496B1 (en) | 2005-05-13 | 2013-04-23 | Nvidia Corporation | Method and system for implementing compression across a graphics bus interconnect |
US8422546B2 (en) | 2005-05-25 | 2013-04-16 | Microsoft Corporation | Adaptive video encoding using a perceptual model |
JP4621574B2 (ja) * | 2005-10-06 | 2011-01-26 | 株式会社東芝 | 画像符号化装置および画像符号化方法 |
US8698811B1 (en) * | 2005-12-15 | 2014-04-15 | Nvidia Corporation | Nested boustrophedonic patterns for rasterization |
US7483029B2 (en) * | 2005-12-15 | 2009-01-27 | Nvidia Corporation | GPU having raster components configured for using nested boustrophedonic patterns to traverse screen areas |
US9117309B1 (en) | 2005-12-19 | 2015-08-25 | Nvidia Corporation | Method and system for rendering polygons with a bounding box in a graphics processor unit |
US8390645B1 (en) | 2005-12-19 | 2013-03-05 | Nvidia Corporation | Method and system for rendering connecting antialiased line segments |
US7706629B2 (en) * | 2006-02-24 | 2010-04-27 | Apple Inc. | Methods and apparatuses for pixel transformations |
US7995649B2 (en) | 2006-04-07 | 2011-08-09 | Microsoft Corporation | Quantization adjustment based on texture level |
US8059721B2 (en) | 2006-04-07 | 2011-11-15 | Microsoft Corporation | Estimating sample-domain distortion in the transform domain with rounding compensation |
US8503536B2 (en) | 2006-04-07 | 2013-08-06 | Microsoft Corporation | Quantization adjustments for DC shift artifacts |
US7974340B2 (en) | 2006-04-07 | 2011-07-05 | Microsoft Corporation | Adaptive B-picture quantization control |
US8130828B2 (en) | 2006-04-07 | 2012-03-06 | Microsoft Corporation | Adjusting quantization to preserve non-zero AC coefficients |
US8711925B2 (en) | 2006-05-05 | 2014-04-29 | Microsoft Corporation | Flexible quantization |
US8928676B2 (en) * | 2006-06-23 | 2015-01-06 | Nvidia Corporation | Method for parallel fine rasterization in a raster stage of a graphics pipeline |
US20080002899A1 (en) * | 2006-06-30 | 2008-01-03 | Curt Paul Breswick | Dynamic Compression Method for Use in Compressing Image Data |
KR100846870B1 (ko) * | 2006-07-06 | 2008-07-16 | 한국전자통신연구원 | 다수의 기본 블록들의 다차원 구성을 통한 다단계 변환장치 및 그 방법 |
US8427487B1 (en) | 2006-11-02 | 2013-04-23 | Nvidia Corporation | Multiple tile output using interface compression in a raster stage |
US8237738B1 (en) | 2006-11-02 | 2012-08-07 | Nvidia Corporation | Smooth rasterization of polygonal graphics primitives |
US8482567B1 (en) | 2006-11-03 | 2013-07-09 | Nvidia Corporation | Line rasterization techniques |
US7808512B1 (en) | 2006-12-19 | 2010-10-05 | Nvidia Corporation | Bounding region accumulation for graphics rendering |
US7778618B2 (en) * | 2006-12-28 | 2010-08-17 | Conexant Systems, Inc. | Systems and methods for reducing broadband image noise through a programmable bandwidth RF variable gain attenuator |
US8238424B2 (en) | 2007-02-09 | 2012-08-07 | Microsoft Corporation | Complexity-based adaptive preprocessing for multiple-pass video compression |
WO2008107943A1 (ja) * | 2007-03-01 | 2008-09-12 | Nippon Telegraph And Telephone Corporation | スケーラブル符号化方法および装置、スケーラブル復号方法および装置、並びにそれらのプログラムおよび記録媒体 |
US8498335B2 (en) | 2007-03-26 | 2013-07-30 | Microsoft Corporation | Adaptive deadzone size adjustment in quantization |
US8243797B2 (en) | 2007-03-30 | 2012-08-14 | Microsoft Corporation | Regions of interest for quality adjustments |
US8442337B2 (en) | 2007-04-18 | 2013-05-14 | Microsoft Corporation | Encoding adjustments for animation content |
US8331438B2 (en) | 2007-06-05 | 2012-12-11 | Microsoft Corporation | Adaptive selection of picture-level quantization parameters for predicted video pictures |
WO2009011558A2 (en) * | 2007-07-18 | 2009-01-22 | Humax Co., Ltd. | Method and apparatus for coding and decoding using bit-precision |
US8724483B2 (en) * | 2007-10-22 | 2014-05-13 | Nvidia Corporation | Loopback configuration for bi-directional interfaces |
KR101370288B1 (ko) | 2007-10-24 | 2014-03-05 | 삼성전자주식회사 | 이미지 신호의 압축 방법 및 장치 |
US9064333B2 (en) * | 2007-12-17 | 2015-06-23 | Nvidia Corporation | Interrupt handling techniques in the rasterizer of a GPU |
US8780123B2 (en) * | 2007-12-17 | 2014-07-15 | Nvidia Corporation | Interrupt handling techniques in the rasterizer of a GPU |
US8189933B2 (en) | 2008-03-31 | 2012-05-29 | Microsoft Corporation | Classifying and controlling encoding quality for textured, dark smooth and smooth video content |
WO2009131703A2 (en) * | 2008-04-25 | 2009-10-29 | Thomson Licensing | Coding of depth signal |
US8923385B2 (en) * | 2008-05-01 | 2014-12-30 | Nvidia Corporation | Rewind-enabled hardware encoder |
US8681861B2 (en) * | 2008-05-01 | 2014-03-25 | Nvidia Corporation | Multistandard hardware video encoder |
US8897359B2 (en) | 2008-06-03 | 2014-11-25 | Microsoft Corporation | Adaptive quantization for enhancement layer video coding |
US8811484B2 (en) | 2008-07-07 | 2014-08-19 | Qualcomm Incorporated | Video encoding by filter selection |
WO2010007590A2 (en) * | 2008-07-17 | 2010-01-21 | Amimon Ltd. | Methods circuits and systems for transmission and reconstruction of a video block |
US8000546B2 (en) * | 2008-08-01 | 2011-08-16 | National Cheng Kung University | Adaptive scan method for image/video coding |
US8325796B2 (en) | 2008-09-11 | 2012-12-04 | Google Inc. | System and method for video coding using adaptive segmentation |
US20100172409A1 (en) * | 2009-01-06 | 2010-07-08 | Qualcom Incorporated | Low-complexity transforms for data compression and decompression |
BRPI0924045A2 (pt) | 2009-01-07 | 2017-07-11 | Thomson Licensing | Estimação de profundidade conjunta |
US8761268B2 (en) * | 2009-04-06 | 2014-06-24 | Intel Corporation | Selective local adaptive wiener filter for video coding and decoding |
JP5208043B2 (ja) * | 2009-04-16 | 2013-06-12 | キヤノン株式会社 | 画像処理装置、画像処理方法及びプログラム |
US20110063309A1 (en) * | 2009-09-16 | 2011-03-17 | Nvidia Corporation | User interface for co-processing techniques on heterogeneous graphics processing units |
US9530189B2 (en) | 2009-12-31 | 2016-12-27 | Nvidia Corporation | Alternate reduction ratios and threshold mechanisms for framebuffer compression |
US8339364B2 (en) | 2010-02-03 | 2012-12-25 | Nintendo Co., Ltd. | Spatially-correlated multi-display human-machine interface |
US8814686B2 (en) | 2010-02-03 | 2014-08-26 | Nintendo Co., Ltd. | Display device, game system, and game method |
US8913009B2 (en) | 2010-02-03 | 2014-12-16 | Nintendo Co., Ltd. | Spatially-correlated multi-display human-machine interface |
EP2392389A4 (de) | 2010-02-03 | 2014-10-15 | Nintendo Co Ltd | Spielsystem, betriebsverfahren dafür und spielverarbeitungsverfahren |
US9331869B2 (en) | 2010-03-04 | 2016-05-03 | Nvidia Corporation | Input/output request packet handling techniques by a device specific kernel mode driver |
CN103069801B (zh) * | 2010-07-06 | 2016-06-01 | 诺基亚技术有限公司 | 用于确定在语法元素与用于可变长度编码的码字之间的映射的方法和装置 |
JP6243586B2 (ja) | 2010-08-06 | 2017-12-06 | 任天堂株式会社 | ゲームシステム、ゲーム装置、ゲームプログラム、および、ゲーム処理方法 |
US10150033B2 (en) | 2010-08-20 | 2018-12-11 | Nintendo Co., Ltd. | Position calculation system, position calculation device, storage medium storing position calculation program, and position calculation method |
JP5840386B2 (ja) | 2010-08-30 | 2016-01-06 | 任天堂株式会社 | ゲームシステム、ゲーム装置、ゲームプログラム、および、ゲーム処理方法 |
JP5840385B2 (ja) | 2010-08-30 | 2016-01-06 | 任天堂株式会社 | ゲームシステム、ゲーム装置、ゲームプログラム、および、ゲーム処理方法 |
KR20120035096A (ko) | 2010-10-04 | 2012-04-13 | 한국전자통신연구원 | 쿼드 트리 변환 구조에서 부가 정보의 시그널링 방법 및 장치 |
US9171350B2 (en) | 2010-10-28 | 2015-10-27 | Nvidia Corporation | Adaptive resolution DGPU rendering to provide constant framerate with free IGPU scale up |
KR101364826B1 (ko) | 2010-11-01 | 2014-02-20 | 닌텐도가부시키가이샤 | 조작 장치 및 조작 시스템 |
KR101767944B1 (ko) * | 2010-11-10 | 2017-08-14 | 에스케이 텔레콤주식회사 | 복호 영상 버퍼 압축장치 및 그 압축방법 |
JP5689014B2 (ja) | 2011-04-07 | 2015-03-25 | 任天堂株式会社 | 入力システム、情報処理装置、情報処理プログラム、および3次元位置算出方法 |
KR101955374B1 (ko) * | 2011-06-30 | 2019-05-31 | 에스케이 텔레콤주식회사 | 고속 코딩 단위(Coding Unit) 모드 결정을 통한 부호화/복호화 방법 및 장치 |
CN103581676B (zh) * | 2012-08-10 | 2016-12-28 | 联发科技股份有限公司 | 视频编码变换系数的解码方法及装置 |
US9538174B2 (en) * | 2012-08-10 | 2017-01-03 | Mediatek Inc. | Method and apparatus for inverse scan of transform coefficients in HEVC |
US9826229B2 (en) | 2012-09-29 | 2017-11-21 | Google Technology Holdings LLC | Scan pattern determination from base layer pixel information for scalable extension |
US9350988B1 (en) | 2012-11-20 | 2016-05-24 | Google Inc. | Prediction mode-based block ordering in video coding |
US9607407B2 (en) | 2012-12-31 | 2017-03-28 | Nvidia Corporation | Variable-width differential memory compression |
US9591309B2 (en) | 2012-12-31 | 2017-03-07 | Nvidia Corporation | Progressive lossy memory compression |
US9681128B1 (en) | 2013-01-31 | 2017-06-13 | Google Inc. | Adaptive pre-transform scanning patterns for video and image compression |
US9710894B2 (en) | 2013-06-04 | 2017-07-18 | Nvidia Corporation | System and method for enhanced multi-sample anti-aliasing |
CN103745480B (zh) * | 2014-01-26 | 2017-02-15 | 广州博冠信息科技有限公司 | 一种图片渲染方法及装置 |
US9392272B1 (en) | 2014-06-02 | 2016-07-12 | Google Inc. | Video coding using adaptive source variance based partitioning |
US9578324B1 (en) | 2014-06-27 | 2017-02-21 | Google Inc. | Video coding using statistical-based spatially differentiated partitioning |
US9832388B2 (en) | 2014-08-04 | 2017-11-28 | Nvidia Corporation | Deinterleaving interleaved high dynamic range image by using YUV interpolation |
US10554965B2 (en) | 2014-08-18 | 2020-02-04 | Google Llc | Motion-compensated partitioning |
US10084477B2 (en) | 2015-02-17 | 2018-09-25 | Parstream Gmbh | Method and apparatus for adaptive data compression |
GB2539027B (en) | 2015-06-04 | 2019-04-17 | Thales Holdings Uk Plc | Video compression with increased fidelity near horizon |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4776030A (en) * | 1986-03-28 | 1988-10-04 | Gte Laboratories Incorporated | Block quantizer for transform coding |
US4774574A (en) * | 1987-06-02 | 1988-09-27 | Eastman Kodak Company | Adaptive block transform image coding method and apparatus |
DE3728444A1 (de) * | 1987-08-26 | 1989-03-09 | Thomson Brandt Gmbh | Verfahren und schaltungsanordnung zur verbesserung der aufloesung von digitalen signalen |
DE3877105D1 (de) * | 1987-09-30 | 1993-02-11 | Siemens Ag, 8000 Muenchen, De | |
US4984076A (en) * | 1988-07-27 | 1991-01-08 | Kabushiki Kaisha Toshiba | Image compression coding system |
US5073821A (en) * | 1989-01-30 | 1991-12-17 | Matsushita Electric Industrial Co., Ltd. | Orthogonal transform coding apparatus for reducing the amount of coded signals to be processed and transmitted |
JPH031662A (ja) * | 1989-05-30 | 1991-01-08 | Fuji Photo Film Co Ltd | 画像信号圧縮符号化装置 |
JPH0832039B2 (ja) * | 1989-08-19 | 1996-03-27 | 日本ビクター株式会社 | 可変長符号化方法及びその装置 |
US5142380A (en) * | 1989-10-23 | 1992-08-25 | Ricoh Company, Ltd. | Image data processing apparatus |
JP3085465B2 (ja) * | 1989-10-31 | 2000-09-11 | オリンパス光学工業株式会社 | 画像データの符号化装置および符号化方法 |
US5107345A (en) * | 1990-02-27 | 1992-04-21 | Qualcomm Incorporated | Adaptive block size image compression method and system |
US5021891A (en) * | 1990-02-27 | 1991-06-04 | Qualcomm, Inc. | Adaptive block size image compression method and system |
JPH04221465A (ja) * | 1990-12-21 | 1992-08-11 | Matsushita Electric Ind Co Ltd | 記録装置 |
JP3012698B2 (ja) * | 1991-01-29 | 2000-02-28 | オリンパス光学工業株式会社 | 画像データの符号化装置および符号化方法 |
US5227878A (en) * | 1991-11-15 | 1993-07-13 | At&T Bell Laboratories | Adaptive coding and decoding of frames and fields of video |
-
1992
- 1992-06-03 DE DE69222766T patent/DE69222766T2/de not_active Expired - Lifetime
- 1992-06-03 EP EP92913757A patent/EP0587783B1/de not_active Expired - Lifetime
- 1992-06-03 CA CA002110264A patent/CA2110264C/en not_active Expired - Lifetime
- 1992-06-03 ES ES92913757T patent/ES2110504T3/es not_active Expired - Lifetime
- 1992-06-03 WO PCT/US1992/004606 patent/WO1992022166A1/en active IP Right Grant
- 1992-06-03 KR KR1019930703720A patent/KR0167367B1/ko not_active IP Right Cessation
- 1992-06-03 JP JP50061493A patent/JP3145403B2/ja not_active Expired - Lifetime
- 1992-06-03 AU AU21866/92A patent/AU658432B2/en not_active Expired
- 1992-06-03 DK DK92913757.8T patent/DK0587783T3/da active
- 1992-06-03 AT AT92913757T patent/ATE159396T1/de active
-
1993
- 1993-08-04 US US08/102,124 patent/US5452104A/en not_active Expired - Lifetime
- 1993-12-03 NO NO934396A patent/NO305299B1/no not_active IP Right Cessation
- 1993-12-07 FI FI935477A patent/FI107489B/fi not_active IP Right Cessation
-
1997
- 1997-12-10 GR GR970403276T patent/GR3025624T3/el unknown
-
1998
- 1998-12-28 HK HK98119131A patent/HK1019838A1/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
HK1019838A1 (en) | 2000-02-25 |
GR3025624T3 (en) | 1998-03-31 |
NO934396D0 (no) | 1993-12-03 |
ATE159396T1 (de) | 1997-11-15 |
CA2110264C (en) | 2002-05-28 |
JP3145403B2 (ja) | 2001-03-12 |
EP0587783B1 (de) | 1997-10-15 |
KR940701621A (ko) | 1994-05-28 |
KR0167367B1 (ko) | 1999-03-20 |
DK0587783T3 (da) | 1998-05-04 |
ES2110504T3 (es) | 1998-02-16 |
NO934396L (no) | 1994-01-07 |
CA2110264A1 (en) | 1992-12-10 |
EP0587783A1 (de) | 1994-03-23 |
NO305299B1 (no) | 1999-05-03 |
US5452104A (en) | 1995-09-19 |
EP0587783A4 (en) | 1994-09-14 |
FI935477A (fi) | 1993-12-07 |
AU2186692A (en) | 1993-01-08 |
FI107489B (fi) | 2001-08-15 |
FI935477A0 (fi) | 1993-12-07 |
DE69222766D1 (de) | 1997-11-20 |
JPH06511361A (ja) | 1994-12-15 |
AU658432B2 (en) | 1995-04-13 |
WO1992022166A1 (en) | 1992-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69222766T2 (de) | System zur adaptiven kompression der blockgrössen eines bildes | |
DE69130214T2 (de) | Bilddatenkompression mit adaptiver Blockgrössenauswahl | |
US5107345A (en) | Adaptive block size image compression method and system | |
DE69129595T2 (de) | Systeme und Verfahren zur Kodierung alternierender Halbbilder in Zeilensprungbildsequenzen | |
DE69811394T2 (de) | Adaptive entropie-kodierung im rahmen adaptiver quantisierung für videosignalkodiersysteme und -verfahren | |
DE3855648T2 (de) | Verfahren und vorrichtung für eine hierarchische kodierung zum wirksamen übertragen von bildfolgen | |
DE69606441T2 (de) | Videodatenkodierer und -dekodierer | |
DE69434862T2 (de) | Segmentierungs-basiertes entfernen von artefakten aus einem jpeg-bild | |
DE19861377B4 (de) | Ein verbessertes Kompressions- und Dekompressionssystem mit reversiblen Wavelets und verlustbehafteter Rekonstruktion | |
DE69835528T2 (de) | Eingebetteter dct-basierte standbildkodierungsalgorithmus | |
DE69332584T2 (de) | Verbesserte vorverarbeitung und nachverarbeitung von vektorquantifizierung | |
DE69221191T2 (de) | Verfahren und Vorrichtung zur Prädiktiven Kodierung eines Bildsignals mit Bewegungskompensation | |
DE69333288T2 (de) | Verbesserte vektorquantisierung | |
DE69124784T2 (de) | HDTV-Empfänger | |
DE69125582T2 (de) | HDTV-Kodierer mit adaptiver Dämpfung | |
DE69322351T2 (de) | Verbesserte Dekomprimierung von Standard ADCT-komprimierten Bildern | |
DE69425179T2 (de) | Kodierungsvorrichtung und -verfahren | |
DE69523439T2 (de) | Verfahren und Vorrichtung zur Bildsignalkodierung mit einer Klassifizieranlage | |
DE69805228T2 (de) | Videosignalkodierung mit adaptiver Quantisierung | |
DE19739266B4 (de) | Verfahren und Vorrichtung zum Kodieren binärer Formen | |
DE69421795T2 (de) | Vorrichtung und verfahren zur kodierung von bildern | |
DE69624399T2 (de) | Einrichtung zur Kompression von bewegten Videobildern mit adaptiver Quantisierung | |
DE69126525T2 (de) | Digitale bildverarbeitung mit filterung der blockkanten | |
DE10022262A1 (de) | Verfahren und eine Anordnung zur Codierung bzw. Decodierung einer Folge von Bildern | |
DE69814396T2 (de) | Kompressionskodierungsverfahren |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
R071 | Expiry of right |
Ref document number: 587783 Country of ref document: EP |