DE69421135T2 - Verfahren zur vermeidung von rundungsfehlern bei der inversen transformation von transformationskoeffizienten eines bewegtbildsignals - Google Patents
Verfahren zur vermeidung von rundungsfehlern bei der inversen transformation von transformationskoeffizienten eines bewegtbildsignalsInfo
- Publication number
- DE69421135T2 DE69421135T2 DE69421135T DE69421135T DE69421135T2 DE 69421135 T2 DE69421135 T2 DE 69421135T2 DE 69421135 T DE69421135 T DE 69421135T DE 69421135 T DE69421135 T DE 69421135T DE 69421135 T2 DE69421135 T2 DE 69421135T2
- Authority
- DE
- Germany
- Prior art keywords
- parity
- coefficients
- block
- sum
- transform
- 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
- 238000000034 method Methods 0.000 title claims description 68
- 230000009466 transformation Effects 0.000 title claims description 63
- 238000003874 inverse correlation nuclear magnetic resonance spectroscopy Methods 0.000 title 1
- 230000033001 locomotion Effects 0.000 claims abstract description 72
- 238000012545 processing Methods 0.000 claims description 134
- 238000013139 quantization Methods 0.000 claims description 28
- 230000008569 process Effects 0.000 claims description 18
- 230000005540 biological transmission Effects 0.000 claims description 12
- 230000001131 transforming effect Effects 0.000 claims description 7
- 238000007781 pre-processing Methods 0.000 abstract description 2
- 230000015654 memory Effects 0.000 description 131
- 101100524346 Xenopus laevis req-a gene Proteins 0.000 description 41
- 238000010586 diagram Methods 0.000 description 19
- 239000013598 vector Substances 0.000 description 17
- 230000004044 response Effects 0.000 description 15
- 238000007906 compression Methods 0.000 description 12
- 230000000875 corresponding effect Effects 0.000 description 12
- 230000006835 compression Effects 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 10
- 230000009467 reduction Effects 0.000 description 10
- 101000969688 Homo sapiens Macrophage-expressed gene 1 protein Proteins 0.000 description 9
- 102100021285 Macrophage-expressed gene 1 protein Human genes 0.000 description 9
- 230000008859 change Effects 0.000 description 8
- 230000001186 cumulative effect Effects 0.000 description 8
- 239000012634 fragment Substances 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000000295 complement effect Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 5
- 239000000284 extract Substances 0.000 description 4
- 230000009897 systematic effect Effects 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 101100356020 Haemophilus influenzae (strain ATCC 51907 / DSM 11121 / KW20 / Rd) recA gene Proteins 0.000 description 2
- 101100042680 Mus musculus Slc7a1 gene Proteins 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 2
- 230000003416 augmentation Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 239000012141 concentrate Substances 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000006866 deterioration Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000000205 computational method Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/147—Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
-
- 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/124—Quantisation
- H04N19/126—Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
-
- 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/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- 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/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
- H04N19/45—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder performing compensation of the inverse transform mismatch, e.g. Inverse Discrete Cosine Transform [IDCT] mismatch
-
- 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/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive 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/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
-
- 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/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/89—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
-
- 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/124—Quantisation
-
- 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/65—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Optimization (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Discrete Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Color Television Systems (AREA)
- Television Signal Processing For Recording (AREA)
- Complex Calculations (AREA)
- Error Detection And Correction (AREA)
- Image Processing (AREA)
- Apparatus For Radiation Diagnosis (AREA)
- Facsimile Image Signal Circuits (AREA)
- Detection And Correction Of Errors (AREA)
- Radar Systems Or Details Thereof (AREA)
- Tone Control, Compression And Expansion, Limiting Amplitude (AREA)
- Color Television Image Signal Generators (AREA)
Description
- Orthogonale Transformationen werden für verschiedene Anwendungen in diversen digitalen Signalverarbeitungssystemen benutzt. Orthogonale Transformationen erlauben eine Signalverarbeitung in der Frequenzdomäne. Die schnelle Fourier-Transformation (FFT) und die diskrete Cosinustransformation (DCT) usw. sind allgemein bekannte Typen orthogonaler Transformation. Eine orthogonale Transformation analysiert z. B. ein Fragment eines Signals in der Zeitdomäne in (in Abhängigkeit von der angewendeten orthogonalen Transformationsfunktion variierende) Frequenzkomponenten, die das Spektrum (d. h. die Verteilung der Energie über der Frequenz) des originalen Signalfragments in der Zeitdomäne angeben. Durch verschiedenartige Verarbeitung der (üblicherweise als Transformationskoeffizienten bezeichneten) Frequenzkomponenten, die aus der orthogonalen Transformation des Signalfragments resultieren, kann Redundanz in dem originalen Signalfragment reduziert werden. Mit anderen Worten, durch orthogonales Transformieren des originalen Signalfragments und Verarbeiten der resultierenden Transformationskoeffizienten kann das originale Signalfragment mit weniger Bits dargestellt werden als für die Darstellung des originalen Signalfragments benutzt werden. Durch inverse orthogonale Transformation der Transformationskoeffizienten kann das originale Signalfragment in der Zeitdomäne wiederhergestellt werden.
- Geräte zum Komprimieren eines Bewegtbildsignals und zum Expandieren eines komprimierten Bewegtbildsignals sind allgemein bekannte Beispiele für digitale Signalverarbeitungssysteme, die mit orthogonaler Transformation arbeiten.
- Es ist bekannt, daß die Signalleistung von Signalen mit hoher Korrelation in der Frequenzdomäne bei tieferen Frequenzen konzentriert ist. Wenn die Konzentration der Signalleistung auf einer spezifischen Koordinatenachse (z. B. der Frequenzachse) anwächst, kann die Signalredundanz progressiv reduziert werden, und das Signal kann effizienter komprimiert werden.
- Da ein Bewegtbildsignal im allgemeinen sowohl räumlich als auch zeitlich hoch korreliert ist, kann orthogonale Transformationsverarbeitung angewendet werden, um die Signalleistung auf einer spezifischen Koordinatenachse zu konzentrieren, so daß das Bewegtbildsignal kann mit hoher Effizienz komprimiert werden kann.
- Bisher war eine extrem große Informationsmenge erforderlich, um ein Bewegtbild, z. B. durch ein Videosignal nach dem NTSC-Standard, darzustellen. Deshalb benötigte man für die Aufzeichnung eines Bewegtbildsignals ein Aufzeichnungsmedium mit sehr großer Speicherkapazität, falls eine angemessen lange Aufzeichnungszeit zur Verfügung stehen sollte. Darüber hinaus war die Informationsrate, mit der das Bewegtbildsignal auf einem solchen Medium aufgezeichnet und von ihm wiedergegeben wird, sehr hoch. Für die Speicherung von Bewegtbildsignalen benötigte man deshalb räumlich sehr große Magnetbänder oder optische Platten.
- Wenn ein Bewegtbildsignal auf einem kompakteren Aufzeichnungsmedium mit einer Aufzeichnungszeit akzeptabler Länge aufgezeichnet werden soll, muß es einer Signalkompression unterzogen werden, um die zu speichernde Informationsmenge zu reduzieren. Darüber hinaus muß ein Gerät zur Verfügung gestellt werden, das in der Lage ist, das von dem kompakten Aufzeichnungsmedium reproduzierte komprimierte Bewegtbildsignal zu expandieren.
- Zur Erfüllung dieser Forderungen wurden verschiedene Kompressionsverfahren für Bewegtbildsignale vorgeschlagen, die die Korrelation zwischen und innerhalb der Teile des Bewegtbildsignals ausnutzen, die die Bilder repräsentieren, aus denen das Bewegtbildsignal besteht. Das von der Moving Picture Experts Group (MPEG) vorgeschlagene Kompressionssystem für Bewegtbildsignale z. B. ist allgemein bekannt. Da das MPEG-System in verschiedenen Druckschriften ausführlich beschrieben wurde, kann hier auf eine detaillierte Erläuterung des MPEG-Systems verzichtet werden.
- Die folgende Beschreibung verwendet häufig den Ausdruck "Bild". Da die hier beschriebenen Signalverarbeitungsverfahren sich auf die Verarbeitung eines Bewegtbildsignals beziehen, das ein Bewegtbild repräsentiert, soll das Wort "Bild", wie es hier allgemein verwendet wird, den Teil eines Bewegtbildsignals bezeichnen, der ein Bild des Bewegtbilds oder der kinomatographischen Aufnahme repräsentiert. Außerdem kann ein Bewegtbildsignal ein Bild des Bewegtbilds entweder als Vollbild oder als Halbbild repräsentieren. Wenn nichts anderes vermerkt wird, bedeutet ein "Bild" hier ein Halbbild oder ein Vollbild.
- Das MPEG-System bestimmt zunächst die Unterschiede zwischen den Bildern, aus denen das Bewegtbildsignal besteht, um die Redundanz des Bewegtbildsignals in der Zeitdomäne zu reduzieren. Dann reduziert das MPEG-System die Redundanz des Bewegtbildsignals in der räumlichen Domäne durch orthogonale Transformation von Blöcken von Zwischenbilddifferenzen in der räumlichen Domäne. Das MPEG-System benutzt diskrete Cosinustransformation (DCT) als orthogonale Transformation. Durch Reduzierung der Redundanz sowohl in der zeitlichen als auch in der räumlichen Domäne wird das Bewegtbild extrem effizient komprimiert. Das aus dem beschriebenen Komprimierungsprozeß hervorgehende komprimierte Bewegtbildsignal kann dann auf einem Aufzeichnungsmedium aufgezeichnet oder über ein geeignetes Übertragungsmedium übertragen werden:
- Wenn das komprimierte Bewegtbildsignal von dem Aufzeichnungsmedium reproduziert oder über das Übertragungsmedium empfangen wird, werden die Blöcke von Transformationskoeffizienten, die aus der DCT-Transformation resultieren, aus dem komprimierten Bewegtbildsignal extrahiert. Die Transformationskoeffizienten werden im Verlauf der Rekonstruktion der Bilder des originalen Bewegtbildsignals mit Hilfe einer inversen orthogonalen Transformation (in dem MPEG-System einer inversen diskreten Cosinustransformation (IDCT)) verarbeitet, um Blöcke von Zwischenbilddifferenzen zurückzugewinnen.
- Ein Beispiel für den Aufbau eines Geräts zum Komprimieren eines Bewegtbildsignals auf der Basis des MPEG-Systems ist in Fig. 1 dargestellt.
- In dem in Fig. 1 dargestellten Komprimierer wird ein digitales Bewegtbildsignal einer Blockformatierungsschaltung 101 zugeführt, in der es aus einem Standardvideoformat, z. B. dem Videosignalformat nach dem NTSC-Standard, in ein Blockformat umgewandelt wird, um ein blockstrukturiertes Bewegtbildsignal zu gewinnen. In diesem ist jedes Bild des Bewegtbildsignals in der räumlichen Domäne, d. h. horizontal und vertikal, in Makroblöcke von z. B. 16 · 16 Pixeln unterteilt. Die Makroblöcke sind ihrerseits in Blöcke von 8 · 8 Pixeln unterteilt.
- Das in Fig. 1 dargestellte Gerät komprimiert jedes Bild des Bewegtbildsignals Block für Block, bis alle Blöcke verarbeitet sind, aus denen das Bild besteht. Das Gerät verarbeitet dann ein weiteres Bild des Bewegtbildsignals, das das nächste Bild in der das Bewegtbild bildenden Sequenz von Bildern sein kann oder nicht. In der folgenden Beschreibung des in Fig. 1 dargestellten Geräts wird die Komprimierung eines Blocks von Pixeln in einem Bild erläutert. Der Block von Pixeln, der komprimiert wird, ist der laufende Bildblock, der ein Block des laufenden Bilds ist. Das blockstrukturierte Bewegtbildsignal wird an den Bewegungsprädiktor 102 ausgegeben. Der Bewegungsprädiktor liefert das laufende Bild, das den laufenden Bildblock S1 enthält, Block für Block an die Differenzblock-Berechnungsschaltung 103.
- Wenn die Differenzblock-Berechnungsschaltung 103 den laufenden Bildblock aus dem Bewegungsprädiktor 102 empfängt, empfängt sie auch den dem laufenden Bildblock entsprechenden Vergleichsblock (matching block) S2 aus dem Bewegungsprädiktor 102. Der Prädiktor 113 leitet den Vergleichsblock aus den rekonstruierten Bildern ab, die in dem Bildspeicherblock 112 gespeichert sind. Die Differenzenblock-Berechnungsschaltung 103 bestimmt Pixel für Pixel die Differenz zwischen dem laufenden Bildblock S1 und seinem kor respondierenden Vergleichsblock S2. Der resultierende Block von Differenzen, der Differenzenblock S3, wird der orthogonalen Transformationsschaltung 104 zugeführt.
- Die orthogonale Transformationsschaltung 104, die normalerweise eine Schaltung zur diskreten Cosinustransformation (DCT) ist, unterzieht den Differenzblock S3 einer orthogonalen Transformation und liefert den resultierenden Block von Transformationskoeffizienten an den Quantisierer 105. Der Quantisierer 105 quantisiert den Block von Transformationskoeffizienten und liefert einen Block aus quantisierten Transformationskoeffizienten. Der variable (in den Zeichnungen durchgehend mit VLC bezeichnete) variable Längencodierer 106 unterzieht den aus dem Quantisierer 105 kommenden Block von quantisierten Transformationskoeffizienten einer variablen Längencodierung, z. B. einer Huffman-Codierung oder Lauflängencodierung usw.. Der resultierende Block aus codierten Transformationskoeffizienten wird dann über den Ausgangspuffer 107 z. B. einem digitalen Übertragungsweg zugeführt.
- Ein Steuersignal, das die Zahl der in dem Ausgangspuffer 107 gespeicherten Bits angibt, wird zu dem Quantisierer 105 rückgekoppelt. Der Quantisierer stellt die Größe der Quantisierungsstufe jeweils in Abhängigkeit von dem Steuersignal ein, um einen Überlauf oder einen Unterlauf des Ausgangspuffers zu verhindern. Durch die Vergrößerung oder Verkleinerung der Quantisierungsstufe wird die Zahl der Bits, die dem Ausgangspuffer zugeführt werden, verkleinert bzw. vergrößert.
- Der Block aus quantisierten Transformationskoeffizienten wird von dem Quantisierer 105 auch dem inversen Quantisierer 108 zugeführt, der Teil des in dem Komprimierer verwendeten lokalen Codierers ist, um aus den quantisierten Transformationskoeffizienten die für die Prädiktionscodierung benutzten rekonstruierten Bilder abzuleiten. Der inverse Quantisierer 108 bewirkt eine inverse Quantisierung des Blocks aus quantisierten Transformationskoeffizienten durch eine zu der Quantisierung in dem Quantisierer 105 komplementäre Verarbeitung. Der resultierende Block von Transformationskoeffizienten wird der (in den Zeichnungen durchgehen mit IDCT bezeichneten) inversen orthogonalen Transformationsschaltung 109 zugeführt, in der er durch eine zu der orthogonalen Transformation in der orthogonalen Transformationsschaltung 104 komplementäre Verarbeitung invers orthogonal transformiert wird. Der resultierende restaurierte Differenzblock S4 wird dem Addierer 110 zugeführt.
- Der Addierer 110 nimmt auch den Vergleichsblock S2 für den laufenden Bildblock S1 aus einem der Bildspeicher in der Bildspeichergruppe 112 auf, der von dem Prädiktor 113 ausgewählt wird. Der Addierer 110 addiert den restaurierten Differenzblock S4 aus der inversen orthogonalen Transformationsschaltung 109 und den Vergleichsblock S2 aus der Bildspeichergruppe 112 Pixel für Pixel und liefert den rekonstruierten Bildblock S5. Der rekonstruier te Bildblock wird an einen der Bildspeicher 112A bis 112D ausgegeben, der von dem Wähler 111 ausgewählt wird, und dort gespeichert.
- Der rekonstruierte Bildblock wird in dem ausgewählten Bildspeicher gespeichert, wo er einen (dem laufenden Block entsprechenden) Block des rekonstruierten Bildes bildet, das Block für Block aus rekonstruierten Bildblöcken in dem ausgewählten Bildspeicher rekonstruiert wird. Wenn das rekonstruierte Bild vollständig vorliegt, wird es für die Herleitung der Vergleichsblöcke für die Prädiktionscodierung zum Komprimieren weiterer Bilder des Bewegtbildsignals verwendet.
- Der Bewegungsprädiktor 102 bestimmt für jeden Makroblock des laufenden Bildes einen Bewegungsvektor zwischen dem Makroblock der laufenden Bilder und verschiedenen Makroblöcken der anderen Bilder des Bewegtbildsignals, die dort gespeichert sind. Der Bewegungsprädiktor erzeugt außerdem eine Summe der Absolutwerte der Differenzen (die "Differenz-Absolutwertsumme") zwischen den Pixeln in jedem Makroblock des laufenden Bildes und den verschiedenen Makroblöcken der anderen Bilder. Jede Differenz-Absolutwertsumme bezeichnet den Grad der Übereinstimmung zwischen jedem Makroblock des laufenden Bilds und den Makroblöcken der anderen Bilder. Der Bewegungsprädiktor liefert jeden Bewegungsvektor und die entsprechende Differenz-Absolutwertsumme an die Prädiktionsmodus-Bestimmungsschaltung 115.
- Die Prädiktionsmodus-Bestimmungsschaltung 115 benutzt die aus dem Bewegungsprädiktor 102 empfangenen Daten, um den Bewegungsmodus festzulegen, der für die Prädiktionscodierung des laufenden Bildes relativ zu einem oder mehreren anderen rekonstruierten Bildern benutzt wird. Für die Prädiktionscodierung des laufenden Bildes kann eine der folgenden Prädiktionsarten benutzt werden.
- (1) Intra-Bild-Modus, bei dem das Bild ohne Bezugnahme auf andere Bilder nur durch sich selbst komprimiert wird. Ein so komprimiertes Bild wird als I-Bild bezeichnet.
- (2) Vorwärtsprädiktions-Modus, bei dem die Prädiktion unter Bezugnahme auf ein rekonstruiertes Bild durchgeführt wird, das in dem Bewegtbild früher auftritt. Ein so codiertes Bild wird als P-Bild bezeichnet.
- (3) Bidirektionaler Prädiktionsmodus, bei dem eine Block-für-Block-Prädiktion unter Bezugnahme auf einen Referenzblock durchgeführt wird, der aus einem rekonstruierten Bild, das in dem Bewegtbild früher auftritt, einem rekonstruierten Bild, das in dem Bewegtbild später auftritt, oder durch eine lineare Operation Pixel für Pixel (d. h. eine Mittel wertberechnung) zwischen einem früher rekonstruierten Bild und einem später rekonstruierten Bild hergeleitet wird. Ein so codiertes Bild wird als B-Bild bezeichnet.
- Mit anderen Worten, ein I-Bild ist ein Bild, in dem Intra-Bildcodierung innerhalb des Bildes durchgeführt wird. Ein P-Bild wird aus einem rekonstruierten I-Bild oder P-Bild prädiziert, das in dem Bewegtbild früher auftritt. Ein B-Bild wird Block für Block prädiziert, indem ein früheres oder späteres rekonstruiertes I-Bild oder P-Bild benutzt wird oder ein Block, der durch eine lineare Operation gewonnen wird, bei der ein rekonstruiertes I-Bild oder P-Bild benutzt wird, das in dem Bewegtbild früher auftritt, und ein rekonstruiertes I-Bild oder P-Bild, das in dem Bewegtbild später auftritt.
- Die Prädiktionsmodus-Bestimmungsschaltung 115 liefert den Prädiktionsmodus und den entsprechenden Bewegungsvektor an den Prädiktor 113 und den Leseadressengenerator 114. Der Leseadressengenerator 114 liefert in Abhängigkeit von dem Bewegungsvektor Leseadressen an die Bildspeichergruppe 112, mit denen aus jedem der Bildspeicher 112A bis 112D ein Block des darin gespeicherten rekonstruierten Bilds ausgelesen wird. Der Ort des ausgelesenen Blocks in dem rekonstruierten Bild wird durch den Bewegungsvektor bestimmt. Der Prädiktor 113 wählt in Abhängigkeit von dem Prädiktionsmodussignal PM aus der Prädiktionsmodus-Bestimmungsschaltung 115 einen der aus den Bildspeichern 112A bis 112D ausgelesenen Blöcke aus. Der ausgewählte ausgelesene Block bildet den Vergleichsblock S2 für den laufenden Block S1. Wenn der laufende Block Teil eines B-Bildes ist, führt der Prädiktor auch lineare Operationen an den aus den Bildspeichern 112A bis 112D ausgelesenen Blöcken durch, um den benötigten Vergleichsblock zu erzeugen. Der Prädiktor liefert den Vergleichsblock S2 an die Differenzblock-Berechnungsschaltung 103 und den Addierer 110.
- In Fig. 2 ist ein Beispiel für den Aufbau eines Geräts zum Expandieren eines kornprimFerten Bewegtbildsignals auf der Basis des MPEG-Systems dargestellt. In diesem wird das komprimierte Bewegtbildsignal, das direkt aus dem Komprimierer oder durch Wiedergabe von einem Aufzeichnungsmedium gewonnen wird, als Bitstrom dem Eingangspuffer 121 zugeführt, in dem es temporär gespeichert wird. Das komprimierte digitale Signal enthält Blöcke von codierten Transformationskoeffizienten (einschließlich eines Blocks von codierten Transformationskoeffizienten, die den laufenden Block repräsentieren) sowie eine Prädiktionsmodusinformation, eine Information über die Quantisierungsstufengröße und einen Bewegungsvektor für jeden Block.
- Das komprimierte Bewegtbildsignal wird aus dem Eingangspuffer 121 einzeln Bild für Bild ausgelesen und einem (in den Zeichnungen durchgehend mit IVLC bezeichneten) inversen variablen Längencodierer 122 zugeführt. Der inverse variable Längencodierer 122 unterzieht das komprimierte Bewegtbildsignal einer inversen variablen Längencodierung und zerlegt das komprimierte Bewegtbildsignal in seine Komponenten, die Blöcke von quantisierten Transformationskoeffizienten, ferner die Prädiktionsmodusinformation, die Stufengrößeninformation und einen Bewegungsvektor für jeden Block enthalten.
- Jeder Block von codierten Transformationskoeffizienten wird dem inversen Quantisierer 123 zugeführt, der die Stufengrößeninformation für die inverse Quantisierung des Blocks von quantisierten Transformationskoeffizienten benutzt und einen Block von Transformationskoeffizienten liefert. Die inverse orthogonale Transformationsschaltung 124 unterzieht den Block von Transformationskoeffizienten einer inversen orthogonalen Transformation, normalerweise der inversen orthogonalen Cosinustransformation (IDCT), um einen restaurierten Differenzblock abzuleiten. Die Verarbeitungen in dem inversen Quantisierer 123 und der inversen orthogonalen Transformationsschaltung 124 sind zu den Verarbeitungen in dem Quantisierer 105 bzw. der orthogonalen Transformationsschaltung 104 in dem Komprimierer von Fig. 1 komplementär.
- Der Leseadressengenerator 130 liefert eine Leseadresse an die Bildspeicher 128A bis 128D nach Maßgabe des Bewegungsvektors für den laufenden Block, der aus der aus dem inversen variablen Längencodierer 122 empfangen wird. In Abhängigkeit von der Leseadresse liest jeder der Bildspeicher 128A bis 128D einen Block des in ihm gespeicherten rekonstruierten Bildes aus. Der Prädiktor 129 wählt in Abhängigkeit von dem Prädiktionsmodussignal PM, das ebenfalls aus dem inversen variablen Längencodierer 122 empfangen wird, einen der aus den Bildspeichern 128A bis 128D ausgelesenen Blöcke aus. Der ausgewählte ausgelesene Block bildet den Vergleichsblock zum Rekonstruieren des laufenden Blocks. Wenn der laufende Block Teil eines als B-Bild codierten Bildes ist, führt der Prädiktor auch lineare Operationen an dem aus den Bildspeichern 112A bis 112D ausgelesenen Blöcken durch, um den Vergleichsblock zu bilden. Der Prädiktor 129 liefert den Vergleichsblock an den Addierer 125.
- Der Addierer 125 führt eine Addition Pixel für Pixel zwischen dem restaurierten Differenzblock aus der inversen Transformationsschaltung 124 und dem Vergleichsblock aus dem Prädiktor 129 durch, um den laufenden Bildblock des laufenden Bildes zu rekonstruieren. Der Wähler 126 liefert den rekonstruierten laufenden Bildblock zur Speicherung an einen der Bildspeicher 128A bis 128D, in welchem das laufende Bild gerade rekonstruiert wird. Der rekonstruierte laufende Bildblock wird in dem ausgewählten Bildspeicher an der Position des laufenden Bildblocks in dem rekonstruierten laufenden Bild gespeichert. Wenn alle rekonstruierten Blöcke des laufenden Bilds in dem ausgewählten Bildspeicher 128A bis 128D gespeichert wurden, ist das rekonstruierte laufende Bild bereit zum Auslesen sowie zur Verwendung als Referenzbild für die Rekonstruktion anderer Bilder, die in dem Bewegtbild früher oder später auftreten.
- Die rekonstruierten Bilder, die in den Bildspeichern 128A bis 128D gespeichert sind, werden über den Wähler 126 in Abhängigkeit von Leseadressen, die von dem Anzeigeadressengenerator 127 erzeugt werden, als Ausgangsbewegtbildsignal ausgelesen. Ein (nicht dargestellter) Abtastwandler wandelt das aus den Bildspeichern 128A bis 128D ausgelesene Ausgangsbewegtbildsignal in das Rasterformat des gewünschten Videosignalformats, z. B. NTSC, um. Das resultierende Ausgangsbewegtbildsignal kann dann auf einer geeigneten Anzeigevorrichtung, z. B. einer Kathodenstrahlröhre usw., angezeigt werden. In dem vorliegenden Beispiel ist der Synchronisiersignalgenerator 131 auf eine externe Synchronisiersignalquelle synchronisiert und erzeugt periodisch ein Rahmensynchronisiersignal, das dem Anzeigeadressengenerator 127 zugeführt wird. Der Anzeigeadressengenerator 127 erzeugt Leseadressen synchron mit dem Rahmensynchronisiersignal.
- Die orthogonalen Transformationsschaltungen, z. B. die DCT- und IDCT-Schaltungen, die in dem oben beschriebenen Komprimierer und Expandierer benutzt werden, führen jeweils arithmetische Operationen an Pixelwerten und Transformationskoeffizienten durch, die durch ganze Zahlen mit einer endlichen Bitzahl repräsentiert werden. Deshalb können die orthogonalen Transformationsoperationen, die von den orthogonalen Transformationsschaltungen durchgeführt werden, dazu führen, daß die Zahl der Bits abgeschnitten wird. Aus diesem Grund kann eine Differenz in der Genauigkeit der orthogonalen Transformationsoperation, bei der reale Zahlen verwendet werden, oder eine Differenz im Aufbau der für die Durchführung der orthogonalen Transformationsoperation benutzten Schaltungen das Ergebnis der orthogonalen Transformationsoperation verändern. Dies kann zu einer fehlerhaften Anpassung zwischen dem Komprimierer und dem Expandierer führen und zu Fehlanpassungen zwischen Expandierern, die ein gemeinsames komprimiertes Signal expandieren.
- In dem Komprimierer wird z. B. der aus dem Bewegtbildsignal abgeleitete Differenzblock orthogonal transformiert, und es wird eine bestimmte Verarbeitung angewendet, um die resultierenden Transformationskoeffizienten im Verlauf der Erzeugung des komprimierten Bewegtbildsignals zu quantisieren. Wenn dann in dem Expandierer die Rechengenauigkeit für reale Zahlen oder die Konfiguration der inversen orthogonalen Transformationsschaltung nicht mit der des Komprimierers korrespondiert, kann sich das Ausgangssignal des Expandierers von dem Eingangssignal des Komprimierers unterscheiden. Das Ausgangssignal des Expandierers kann also von der Genauigkeit und der Konfiguration des als Expandierer benutzten Geräts abhängen.
- Die Rechengenauigkeit oder die Konfiguration einer inversen orthogonalen Transformation kann in Abhängigkeit von der Vorrichtung zur Durchführung der inversen orthogonalen Transformation variieren. So kann z. B. die inverse Transformation eines Blocks von Transformationskoeffizienten, bei der zwei verschiedene Konstruktionen des gleichen Typs von inversen orthogonalen Transformationsschaltungen benutzt werden, zu unterschiedlichen Ergebnissen führen. Eine solche Differenz der Ergebnisse wird als Abgleichfehler (mismatch error) der inversen orthogonalen Transformation (im folgenden kurz "Abgleichfehler") bezeichnet.
- Das MPEG-System definiert die Rechengenauigkeit, mit der die DCT und die IDCT ausgeführt werden sollen, es definiert jedoch nicht die Rechenmethode und die Konfiguration. Dies liegt daran, daß Schaltungen und Methoden zur Durchführung von DCTs und IDCTs entwickelt wurden, bevor die MPEG-Standards etabliert wurden.
- In dem MPEG-System implementiert der Komprimierer, wie oben beschrieben, z. B. zwischenbild-bewegungskompensierte Prädiktionscodierung für das Bewegtbildsignal. Hierbei wird das Bewegtbildsignal in Blöcke unterteilt, aus dem laufenden Bildblock und einem durch Anwendung von Bewegungskompensation auf ein rekonstruiertes Bild gewonnenen Vergleichsblock wird ein Differenzblock abgeleitet, der Differenzblock wird durch DCT orthogonal transformiert, die resultierenden Transformationskoeffizienten werden quantisiert, die quantisierten Transformationskoeffizienten werden einer variablen Längencodierung unterzogen, und die codierten Transformationskoeffizienten werden mit der Prädiktionsmodusinformation, der Information über die Quantisierungsstufengröße und mit Bewegungsvektoren zusammengefügt, um das komprimierte Bewegungsbildsignal zu erzeugen.
- Der Expandierer unterzieht die codierten Transformationskoeffizienten einer inversen variablen Längencodierung, wendet auf die aus der inversen variablen Längencodierung hervorgehenden quantisierten Transformationskoeffizienten inverse Quantisierung an und unterzieht die aus der inversen Quantisierung hervorgehenden Transformationskoeffizienten einer IDCT-Verarbeitung. Der resultierende restaurierte Differenzblock wird zu einem Vergleichsblock addiert, der dadurch gewonnen wird, daß auf ein rekonstruiertes Bild eine von dem Bewegungsvektor abhängige Bewegungskompensation angewendet wird. Der resultierende rekonstruierte Bildblock wird als Block eines rekonstruiertes Bilds gespeichert, das ein Bild des Bewegtbildausgangssignals liefert, und steht außerdem für die Verwendung als Referenzbild zur Verfügung.
- Der Komprimierer enthält einen lokalen Decodierer, der aus den quantisierten Transformationskoeffizienten rekonstruierte Bilder für die Verwendung bei der Prädiktionscodierung ab leitet. Der lokale Decodierer enthält einen inversen Quantisierer und eine inverse orthogonale Transformationsschaltung.
- Falls sich die Konfiguration der IDCT-Schaltung in dem lokalen Decodierer des Komprimierers von derjenigen der IDCT-Schaltung in dem Expandierer unterscheidet, gibt es Fälle, in denen die von dem lokalen Decodierer in dem Komprimierer erzeugten rekonstruierten Bilder sich von den von dem Expandierer erzeugten rekonstruierten Bildern unterscheiden. Die Abhängigkeit der IDCT-Verarbeitung von der Implementierung kann Probleme verursachen, wenn das von einem Komprimierer nach dem MPEG-Standard erzeugte komprimierte Bewegtbildsignal auf einem Aufzeichnungsmedium, z. B. einer optischen Platte usw., für die Weitergabe an die Öffentlichkeit aufgezeichnet wird. Wenn das von der optischen Platte reproduzierte komprimierte Bewegtbildsignal mit Hilfe von Expandierern expandiert wird, die von verschiedenen Herstellern hergestellt und vertrieben werden, kann sich das reproduzierte Bild von dem ursprünglichen Bild unterscheiden. Darüber hinaus können die Differenzen von dem benutzten tatsächlichen Expandierer abhängen. Ähnliche Inkompatibilitäten zwischen verschiedenen Expandierern können auch auftreten, wenn das komprimierte Bewegtbildsignal durch ein Verteilungssystem, wie terrestrischen oder Satellitenrundfunk, ein Telefonsystem, ein ISDN-System, ein Kabel oder ein optisches Verteilungssystem usw. verteilt wird.
- Abgleichfehler sind besonders problematisch, wenn Zwischenbild-Prädiktionscodierung durchgeführt wird. Zwischenbild-Prädiktionscodierung kann entweder Zwischenhalbbild- (Interfield)-Codierung oder Zwischenvollbild-(Interframe)-Codierung sein. Zwischenbild-Prädiktionscodierung kann die Ursache dafür sein, daß Abgleichfehler sich bis zu einem Maß akkumulieren, daß sie zu gravierenden Fehlern in den rekonstruierten Bildern führen.
- Bei der nach dem MPEG-System durchgeführten Bewegtbildsignalkomprimierung wird jede Videosequenz in Gruppen von Bildern (GOPs) mit beispielsweise acht oder zwölf Bildern unterteilt. Jedes einzelne Bild wird, wie oben beschrieben, als I-Bild, P-Bild bzw. B-Bild klassifiziert.
- Bei der Bewegungsprädiktion werden B-Bilder nicht als Referenzbilder verwendet. Deshalb führt ein Abgleichfehler, der in einem B-Bild auftritt, nicht zu Fehlern in anderen Bildern.
- Wenn in einem P-Bild ein Abgleichfehler auftritt, wird das Bild mit dem Abgleichfehler in dem Bildspeicher gespeichert, um bei der Prädiktionscodierung verwendet zu werden. Wenn eine Zwischenbild-Prädiktionscodierung durchgeführt wird, breitet sich deshalb der Fehler in dem in dem Bildspeicher gespeicherten P-Bild allmählich auf die P-Bilder und B-Bilder aus, die durch Prädiktionscodierung aus ihm abgeleitet werden. Der Fehler akkumuliert sich, bis das Bild durch ein I-Bild oder ein P-Bild ersetzt wird, das keinen solchen Fehler aufweist.
- Wenn in einem I-Bild ein Abgleichfehler auftritt, wird das rekonstruierte Bild mit dem Abgleichfehler in ähnlicher Weise in dem Bildspeicher gespeichert, um bei der Prädiktionscodierung verwendet zu werden. Wenn nun Zwischenbild-Prädiktionscodierung durchgeführt wird, breitet sich der Fehler in dem in dem Bildspeicher gespeicherten I-Bild und deshalb auf die P-Bilder und B-Bilder aus, die durch Prädiktionscodierung aus ihm abgeleitet werden. Der Fehler akkumuliert sich, bis das Bild durch ein neues I-Bild ersetzt wird, das keinen solchen Fehler aufweist.
- Die Fehlerakkumulierung ist in Fig. 3 dargestellt. Wenn in Fig. 3 der Abgleichfehler bei der Decodierer eines I-Bildes gleich EI und der Abgleichfehler bei der Decodierung des P-Bildes P1 gleich EP1 ist, ist der Wert des Fehlers in dem rekonstruierten P-Bild gleich EI+EP1. Wenn weiterhin der Abgleichfehler bei der Decodierung des P-Bildes P2 gleich EP2 ist, hat der Fehler in dem rekonstruierten P-Bild P2 den Wert EI+EP1+EP2. Selbst wenn die einzelnen Abgleichfehler klein sind, führt die allmähliche Akkumulierung dieser Fehler zu einem großen Fehler.
- Abgleichfehler, die durch die in den MPEG-Decodierern benutzte IDCT-Verarbeitung sowohl in dem Komprimierer als auch in dem Expandierer erzeugt werden, lassen sich in zwei verschiedene Typen klassifizieren.
- Typ (1): Fehler, die aus unzureichender Rechengenauigkeit herühren.
- Typ (2): Fehler, die aus systematischen Differenzen bei der Rundung herühren.
- Der MPEG-Standard enthält eine Forderung für die Rechengenauigkeit. Diese Forderung ist jedoch nicht so streng, daß sie gewährleistet, daß ein Abgleichfehler nicht auftritt. Deshalb kann ein Abgleichfehler vom Typ (1) zwischen IDCT-Vorrichtungen auftreten, deren Rechengenauigkeit die MPEG-Forderung durchaus erfüllt.
- Die Ausgangssignale der IDCT-Verarbeitung sind ganze Zahlen. Deshalb müssen die Verarbeitungsergebnisse gerundet werden, nachdem die IDCT-Verarbeitung mit realen Zahlen durchgeführt wurde. Im allgemeinen werden die Verarbeitungsergebnisse auf die nächste ganze Zahl gerundet. Ein Problem tritt jedoch dann auf, wenn das Verarbeitungsergebnis *,5 ist, wobei * irgendeine ganze Zahl bedeutet. Der MPEG-Standard definiert nicht, wie ein Verarbeitungsergebnis von *,5 gerundet werden soll. Einige IDCT-Vorrichtungen runden *,5 auf, während andere IDCT-Vorrichtungen *,5 abrunden. Außerdem gibt es Fälle, in denen das Aufrunden oder Abrunden von dem Vorzeichen des Verarbeitungsergebnisses abhängt.
- Abgleichfehler, die aus den beschriebenen systematischen Rundungsfehlern resultieren, sind Abgleichfehler vom Typ (2).
- Abgleichfehler vom Typ (1) unterscheiden sich von Abgleichfehlern vom Typ (2) darin, daß Fehler vom Typ (1) zufällig auftreten, während Fehler vom Typ (2) systematische Fehler sind. Weil Fehler vom Typ (1) zufällig sind, treten positive Fehler und negative Fehler mit annähernd gleicher Wahrscheinlichkeit auf. Wenn die Prädiktionscodierung über eine lange Zeit durchgeführt wird, kann man deshalb davon ausgehen, daß Abgleichfehler vom Typ (1) einander kompensieren.
- Auf der anderen Seite haben Abgleichfehler vom Typ (2) konsistent die gleiche Polarität, da es sich um systematische Fehler handelt, die der IDCT-Verarbeitung selbst inhärent sind. Deshalb kumuliert sich der Abgleichfehler in einer Richtung, wenn die Prädiktionscodierung über eine lange Zeit durchgeführt wird. Obwohl jeder Abgleichfehler vom Typ (2) nur +1 oder -list, wird der kumulative Abgleichfehler groß, wenn viele Abgleichfehler sich in einer Richtung akkumulieren.
- Abgleichfehler vom Typ (1) werden zwar temporär erzeugt, kompensieren jedoch einander mit der Zeit und sind sie relativ unproblematisch. Abgleichfehler vom Typ (2) akkumulieren sich hingegen in einer Richtung und sind deshalb problematisch. Deshalb sollte das Auftreten von kumulativen Abgleichfehlern des Typs (2) nach Möglichkeit verhindert werden.
- In dem MPEG1-System wurde vorgeschlagen, vor der IDCT-Verarbeitung eine Verarbeitung durchzuführen, durch die das Auftreten von Abgleichfehlern vom Typ (2) zu verhindern wird. Durch die Verarbeitung werden die Transformationskoeffizienten aller Komponenten auf einen ungeradzahligen Wert gesetzt mit Ausnahme des Transformationskoeffizienten der Komponente (0, 0) eines Makroblocks eines inta-bildcodierter -Bilds (eines "Intra-Makroblocks"). In einem Intra-Makroblock ist die Komponente (0, 0) die Gleichkomponente. Wie in Fig. 4 dargestellt, sind die Transformationskoeffizienten der Komponenten (0, 1), (7, 1), (2, 3), (5, 3), (1, 5), (6, 5), (3, 7) und (4, 7) zu Beginn alle gleich 568. Da dies eine gerade Zahl ist, setzt die Vorverarbeitung die Werte dieser Koeffizienten auf einen ungeraden Wert, z. B. 567. Wenn die vorverarbeiteten Transformationskoeffizienten einer inversen diskreten Cosinustransformation unterzogen werden, treten niemals Bruchzahlen als Ergebnis auf.
- Da die Gleichkomponente des Intra-Makroblocks für das Aussehen des aus dem komprimierten Bewegtbildsignals sehr wichtig ist, wird seine Genauigkeit nur auf acht Bit begrenzt. (Sie wird nicht in einen ungeradzahligen Wert ungewandelt, da dies die Genauigkeit dieser wichtigen Komponente beeinträchtigen würde. Auf der anderen Seite werden alle Transformationskoeffizienten, die aus der Transformation eines Makroblocks eines mit Zwi schenbild-Codierung codierten Bildes (eines "Nicht-Intra-Makroblocks") einer ähnlichen Verarbeitung unterzogen wie die Transformationskoeffizienten der anderen Komponenten als der Gleichkomponente eines Intra-Makroblocks, um die Transformationskoeffizienten ausschließlich auf ungeradzahlige Werte zu beschränken.
- Die Verarbeitung, bei der die Werte der der IDCT-Verarbeitung unterzogenen Transformationskoeffizienten alle auf einen ungeradzahligen Wert gesetzt werden, wird im folgenden als "Oddifizierung" (von odd = ungeradzahlig) bezeichnet. Die Oddifizierung hat zur Folge, daß bei der IDCT-Verarbeitung sowohl in dem Komprimierer als auch in dem Expandierer nach einer gemeinsamen Vorschrift gerundet wird. Dadurch wird es möglich, daß konsistente Bildqualität zwischen verschiedenen Expandierern beibehalten wird.
- Trotz der oben beschriebenen Oddifizierung treten in MPEG-Prozessoren jedoch die oben beschriebenen kumulativen Abgleichfehler vom Typ (2) nach wie vor auf, weil die IDCT-Verarbeitung immer noch Ergebnisse in der Form *,5 erzeugen kann, worin * eine ganze Zahl bedeutet. Die Umstände, die zu einem Ergebnis *,5 führen, werden im folgenden beschrieben, wobei als Beispiel die in dem MPEG-System benutzte zweidimensionale 8 · 8-IDCT herangezogen wird.
- Die zweidimensionale 8 · 8-IDCT wird durch folgende Gleichung ausgedrückt.
- In der obigen Gleichung bezeichnet F(u, v) die DCT-Koeffizienten, die der zweidimensionalen IDCT unterzogen wurden. In der Gleichung (1) ist jeder Ausgangswert der IDCT eine reale Zahl, d. h. eine rationale Zahl oder eine irrationale Zahl. Da *,5 eine rationale Zahl ist, wird das Auftreten eines kumulativen Abgleichfehlers verhindert, wenn man den Ausgangswert der IDCT zu einer irrationalen Zahl macht. Auf der anderen Seite ist es möglich, daß der Ausgangswert gleich *,5 ist, wenn der Ausgangswert eine rationale Zahl ist.
- Die DCT-Koeffizienten F(0, 0), F(0, 4), F(4, 0), F(4, 4) sind spezielle DCT-Koeffizienten. Wenn irgendeiner dieser DCT-Koeffizienten einen von Null abweichenden Wert hat, ist der Ausgangswert der IDCT eine rationale Zahl. Die Ausgangswerte der IDCT werden in diesem Fall durch die folgende Gleichung (2) ausgedrückt.
- Wenn nur einer der speziellen DCT-Koeffizienten F(0, 0), F(0, 4), F(4, 0), F(4, 4) einen von Null abweichenden Wert hat, der ein Vielfaches von 4, jedoch kein Vielfaches von 8 ist, ist der Ausgangswert gleich *,5
- Wenn die vier speziellen DCT-Koeffizienten die einzigen Koeffizienten mit einem von Null abweichenden Wert sind, wird der Ausgangswert der IDCT durch die folgende Gleichung (3) ausgedrückt.
- Mit verschiedenen Kombinationen von x und y kann f(x,y) in Gleichung (3) die folgenden Werte haben:
- Wenn die Werte der vier speziellen Koeffizienten so beschaffen sind, daß irgendeine der in Gleichung (4) angegebenen Ausdrücke ein Vielfaches von 4 jedoch kein Vielfaches von 8 ist, tritt ein Ergebnis *,5 auf.
- Wenn die vier speziellen Koeffizienten von Null abweichende Werte haben, besteht eine hohe Wahrscheinlichkeit, daß der Ausgangswert der IDCT gleich *,5 ist.
- Auch verschiedene symmetrische Paarungen von DCT-Koeffizienten mit von Null abweichenden Werten außer den soeben diskutierten vier speziellen Koeffizienten können einen Ausgangswert von *,5 erzeugen:
- (1) Wenn das Paar von Koeffizienten X(2n+1, 2m+1), X(2m+1, 2n+1) die gleichen von Null abweichenden Werte haben und der Wert ein Vielfaches von 4 jedoch kein Vielfaches von 8 ist, oder
- (2) wenn die Koeffizienten des Paares X(2n+1, 2n+1), X(8-2n-1, 8-2n-1) die gleichen von Null abweichenden Werte haben und der Wert ein Vielfaches von 4 jedoch kein Vielfaches von 8 ist.
- In den obigen Ausdrücken ist X(i, j) der Transformationskoeffizient einer Komponente einer zweidimensionalen 8 · 8-DCT.
- Wenn ein tatsächliches Bewegtbildsignal von einem Komprimierer nach dem MPEG-System komprimiert wird, werden in den vorangehend erwähnten Mustern häufig von Null abweichende DCT-Koeffizienten erzeugt, die einen IDCT-Ausgangswert *,5 ergeben können. Darüber hinaus sind die Werte der vier speziellen Koeffizienten meistens von Null verschieden.
- Da die häufigste gemeinsame Ursache eines Ergebnisses *,5 das Muster von DCT-Koeffizienten ist, in welchem die Werte der vier speziellen Koeffizienten von Null verschieden sind, wird die Wahrscheinlichkeit, daß ein Abgleichfehler auftritt, erheblich reduziert, wenn man verhindert, daß ein Abgleichfehler in Abhängigkeit von den vier speziellen Koeffizienten auftritt.
- Die Verarbeitungsmethode, bei der ein Intra-Makroblock und ein Nicht-Intra-Makroblock bei MPEG1 invers quantisiert werden, ist in Fig. 5 dargestellt. In Fig. 5 ist QAC(i, j) der (i, j)-te DCT-Koeffizient, Wi(i, j) das (i, j)-te Element einer Gewichtungsmatrix, mquant der Quantisierungskoeffizient und rec(i, j) der (i, j)-te invers-quantisierte DCT-Koeffizient. Die Verarbeitungsprozedur ist in der Syntax der Programmiersprache C geschrieben. Die Syntax dieser Sprache ist in Herbert Schildt, "Using Turbo C", Osborne McGraw Hill (1988) speziell auf den Seiten 83-87 beschrieben.
- Die quantisierten DCT-Koeffizienten werden invers quantisiert, und die resultierenden DCT- Koeffizienten werden dann der IDCT-Verarbeitung unterzogen. Bei MPEG1 wird jedoch zu den DCT-Koeffizienten, die einen geradzahligen Wert haben, +1 oder -1 addiert, um sicherzustellen, daß alle der IDCT-Verarbeitung unterzogenen DCT-Koeffizienten ungeradzahlige Werte haben. Als Ergebnis dieser Operation, wenn z. B. nur der eine der vier speziellen Koeffizienten F(0, 0) einen von Null abweichenden Wert hat, weil ein Abgleichfehler auftritt, wenn F(0, 0) ein Vielfaches von 4 jedoch kein Vielfaches von 8 ist, falls die DCT-Koeffizienten so verarbeitet werden, daß alle einen ungeradzahligen Wert haben, kann das Ergebnis nicht gleich *,5 sein, wenn der DCT-Koeffizient der IDCT-Verarbeitung unterzogen wird. Ähnlich tritt auch dann ein Abgleichfehler nicht auf, wenn nur einer der anderen der vier speziellen Koeffizienten F(0, 4), F(4, 0), F(4, 4) einen von Null abweichenden Wert hat. Wenn jedoch mehrere der vier speziellen Koeffizienten einen von Null abweichenden Wert haben, wie dies aus Fig. 4 ersichtlich ist, oder wenn Paare von symmetrisch angeordneten Koeffizienten auftreten, wie in den oben erwähnten Fällen (1) und (2), wird das Auftreten eines Abgleichfehlers auch dann nicht verhindert, wenn alle DCT-Koeffizienten ungeradzahlig gemacht werden.
- Die Ungeradzahligmachen bei MPEG1 verhindert deshalb nicht, daß ein kumulativer Abgleichfehler auftritt, wenn zwei oder mehr der DCT-Koeffizienten einen von Null verschiedenen Wert haben. Darüber hinaus reduziert das Ungeradzahligmachen bei MPEG1 die Auflösung der quantisierten Transformationskoeffizienten um den Faktor 2, da Transformationskoeffizienten mit geradzahligen Werten nicht zugelassen sind. Dies beeinträchtigt die Bildqualität. Wenn eine hohe Bildqualität gefordert wird, ist dies ein Problem. Es besteht deshalb der klare Wunsch nach einem besseren Weg, kumulative Abgleichfehler zu verhindern, als er in dem MPEG1-Standard vorgeschlagen wird.
- Im Hinblick auf die oben erwähnten Probleme ist es ein Ziel der Erfindung, ein Verfahren anzugeben, das das Auftreten von kumulativen Abgleichfehlern effektiv verhindert, wenn Transformationskoeffizienten invers orthogonal transformiert werden, und bei dem die Auflösung der Transformationskoeffizienten nicht verschlechtert wird.
- Es ist insbesondere ein Ziel der Erfindung, ein Verfahren zum inversen orthogonalen Transformieren von Transformationskoeffizienten anzugeben, mit dem das Abgleichsfehlerproblem effektiv gelöst wird.
- Ein besonderes Ziel der Erfindung ist es, ein Verfahren anzugeben, mit dem ein Block von Transformationskoeffizienten vor der inversen orthogonalen Transformation so vorverarbeitet wird, daß Rundungsfehler verhindert werden, wenn der Block von Transformationskoeffizienten invers transformiert wird.
- Es ist ein weiteres Ziel der Erfindung, eine Bewegtbildsignalkomprimierung und eine Expandierung eines komprimierten Bewegtbildsignals anzugeben, bei denen Abgleichfehler eliminiert werden und die Maßnahmen zur Verhinderung der Abgleichfehler die Bildqualität so wenig wie möglich beeinträchtigen.
- Die Erfindung soll Abgleichfehler effektiv und leicht verhindern, die mit dem herkömmlichen Lösungsweg nicht verhindert werden können.
- Die Erfindung sieht die in den anliegenden Ansprüchen angegebenen Verfahren vor, um einen Satz von Transformationskoeffizienten zu verarbeiten und einen fehler-immunen Satz von Transformationskoeffizienten für die Verarbeitung durch eine inverse orthogonale Transformation bereitzustellen. Der fehler-immune Satz von Transformationskoeffizienten ist bei der inversen orthogonalen Transformation gegen Rundungsfehler immun. In dem Verfahren werden die Transformationskoeffizienten in dem Satz summiert. Die Parität der Summe (d. h. ob die Summe ungeradzahlig oder geradzahlig ist) wird geprüft. Wenn sich zeigt, daß die Parität der Summe geradzahlig ist, wird die Parität eines der Transformationskoeffizienten in den Satz invertiert, um einen paritäts-invertierten Transformationskoeffizienten zu gewinnen. Der paritäts-invertierte Transformationskoeffizient macht die Parität der Summe ungeradzahlig. Schließlich wird der Satz von Transformationskoeffizienten, einschließlich des paritäts-invertierten Transformationskoeffizienten, als fehler-immuner Satz bereitgestellt.
- Jeder Transformationskoeffizient kann als binäre Zahl dargestellt werden. In diesem Fall wird das niedrigstwertige Bit (LSB) jedes Transformationskoeffizienten in dem Satz bestimmt. Die Transformationskoeffizienten, die in dem Satz ein niedrigstwertiges Bit mit dem Wert 1 haben, werden abgezählt, um einen Zählwert zu gewinnen. Dieser Zählwert wird darauf untersucht, ob er geradzahlig ist. Wenn sich herausstellt, daß der Zählwert geradzahlig ist, wird einer der Transformationskoeffizienten geändert, um einen geänderten Transformationskoeffizienten zu gewinnen. Der geänderte Transformationskoeffizient macht den Zählwert ungeradzahlig. Schließlich wird der Satz von Transformationskoeffizienten, der den geänderten Transformationskoeffizienten enthält, invers orthogonal transformiert.
- Die Erfindung stellt ferner ein Komprimierungsverfahren für ein Bewegtbildsignal zur Gewinnung eines komprimierten Bewegtbildsignals zur Verfügung. Bei dem Verfahren werden Prädiktionscodierung und orthogonale Transformation auf Blöcke des Bewegtbildsignals angewendet, um Blöcke von Transformationskoeffizienten zu gewinnen, aus denen das komprimierte Bewegtbildsignal abgeleitet wird. Die Blöcke von Transformationskoeffizienten werden mit Hilfe des Verfahrens gemäß der Erfindung in der Summe ungeradzahlig gemacht, bevor inverse orthogonale Transformation und Prädiktions-Decodierung angewendet wird, um Blöcke eines rekonstruierten Bilds für die Verwendung als Referenzbild bei der Prädiktionscodierung anderer Bilder des Bewegtbildsignals zu gewinnen.
- Die Erfindung liefert auch ein Komprimierungsverfahren für Bewegtbildsignale zur Gewinnung eines komprimierten Bewegtbildsignals. Bei dem Verfahren wird die Bewegung zwi schen Blöcken eines Bilds des Bewegtbildsignals und Blöcken eines rekonstruierten Bildsignals, das als Referenzbild dient, detektiert, und in Abhängigkeit von der detektierten Bewegung wird das Referenzbild einer Bewegungskompensation unterzogen, um Vergleichsblöcke des Referenzbilds abzuleiten. Die Vergleichsblöcke des Referenzbilds werden für die prädiktive Codierung der Blöcke des Bewegtbildsignals benutzt, um Differenzenblöcke zu gewinnen. Die Differenzenblöcke werden orthogonal transformiert, um Blöcke von Transformationskoeffizienten zu gewinnen. Das komprimierte Signal wird durch Quantisierung und variable Längencodierung aus den Blöcken von Transformationskoeffizienten abgeleitet. Vor der Anwendung der inversen orthogonalen Transformation auf die Blöcke von Transformationskoeffizienten zur Gewinnung von Blöcken von restaurierten Differenzen wird jeder Block von Transformationskoeffizienten in der Summe ungeradzahlig gemacht, um Rundungsfehler bei der inversen orthogonalen Transformation zu verhindern, wobei das Verfahren gemäß der Erfindung benutzt wird. Schließlich werden die Blöcke von restaurierten Differenzen einer Prädiktionsdecodierung unterzogen, um Bildblöcke eines rekonstruierten Bilds für die Verwendung als Referenzbild für die prädiktive Codierung anderer Bilder des Bewegtbildsignals zu gewinnen.
- Im folgenden wird beschrieben, wie die Erfindung das Auftreten kumulativer Abgleichfehler verhindert.
- Eine Prüfung von Gleichung (4) zeigt, daß ein Abgleichfehler auftritt, wenn die Ausdrücke in der Gleichung ein Ergebnis (2n+1)/2 erzeugen, worin n eine ganze Zahl ist.
- Gleichung (4) läßt sich folgendermaßen zusammenfassen
- f(x, y) 1/8 ACC
- worin ACC die Summe aller Koeffizienten ist.
- Das häufigste Abgleichfehlermuster ist
- f(x, y) = 1/8ACC = (2n+1)/2 = 1/8(4*(2n+1))
- Hieraus ist ersichtlich, daß ein Abgleichfehler niemals auftritt, wenn ACC ungeradzahlig gemacht wird.
- Deshalb benutzt die Erfindung eine Methode, bei der die DCT-Koeffizienten invers quantisiert werden und dann vor der IDCT-Verarbeitung die Summe der DCT-Koeffizienten berechnet wird. Wenn die Summe der DCT-Koeffizienten ein geradzahliger Wert ist (d. h. die Parität der Summe geradzahlig ist), wird die Parität eines der DCT-Koeffizienten geändert, um aus der Summe der DCT-Koeffizienten einen ungeradzahligen Wert zu machen (d. h. die Parität der Summe ungeradzahlig zu machen). Es genügt, die Parität nur eines DCT-Koeffizienten zu ändern, um die Summe der DCT-Koeffizienten ungeradzahlig zu machen. Darüber hinaus kann die Parität des Koeffizienten geändert werden, der den geringsten Einfluß auf den Ausgangswert der IDCT hat. Mit anderen Worten, die Erfindung verhindert das Auftreten von Abgleichfehlern effektiv, indem die Parität der Summe der DCT-Koeffizienten vor der IDCT-Verarbeitung geprüft und, falls die Parität der Summe geradzahlig ist die Parität eines der DCT-Koeffizienten geändert wird, um die Summe der DCT-Koeffizienten ungeradzahlig zu machen.
- Es muß hervorgehoben werden, daß es gemäß der Erfindung genügt, die Parität nur eines DCT-Koeffizienten zu ändern, um die Summe der DCT-Koeffizienten ungeradzahlig zu machen. MPEG1 macht alle DCT-Koeffizienten ungeradzahlig, wodurch die Auflösung der der IDCT-Verarbeitung unterzogenen DCT-Koeffizienten um den Faktor 2 reduziert wird. Die erfindungsgemäße Prozedur zur Verhinderung von Abgleichfehlern macht hingegen die Summe der DCT-Koeffizienten in einer Weise ungeradzahlig, bei der die Genauigkeit der Eingangs- und Ausgangswerte der IDCT nicht wesentlich herabgesetzt wird. Wenn das Verfahren gemäß der Erfindung auf einen Bewegtbildsignalkomprimierer, einen Expandierer für komprimierte Bewegtbildsignale oder ein Gerät zur Übertragung eines komprimierten Bewegtbildsignals angewendet wird, wird die Beeinträchtigung der Bildqualität minimiert.
- Wenn das Verfahren gemäß der Erfindung auf das MPEG-System angewendet wird, kann außerdem die kleinste Quantisierungsstufe gleich 1 sein, im Gegensatz zu dem Verfahren nach dem Stand der Technik, bei dem die kleinste Quantisierungsstufe gleich 2 war.
- Im folgenden wird die Erfindung unter Bezugnahme auf die anliegenden Zeichnungen in exemplarischen Ausführungsbeispielen näher erläutert.
- Fig. 1 zeigt ein Blockdiagramm der Konfiguration eines herkömmlichen Geräts zur Bewegtbildsignalkomprimierung nach dem MPEG-System,
- Fig. 2 zeigt Blockdiagramm der Konfiguration eines herkömmlichen Geräts zum Expandieren eines komprimierten Bewegtbildsignals nach dem MPEG-System,
- Fig. 3 zeigt die Sequenz, in der ein Bewegtbildsignal in dem MPEG-System komprimiert wird,
- Fig. 4 zeigt konkrete Beispiele für Werte von DCT-Koeffizienten,
- Fig. 5 zeigt die Verfahrensschritte zur inversen Quantisierung sowohl von Intra-Makroblöcken als auch von Nicht-Intra-Makroblöcken in dem herkömmlichen MPEG1-System,
- Fig. 6 zeigt ein Blockdiagramm der Konfiguration eines ersten exemplarischen Bewegtbildsignalkomprimierers für die Verwendung in dem Verfahren gemäß der Erfindung,
- Fig. 7 zeigt, wie ein Block von DCT-Koeffizienten durch Zickzack-Abtastung ausgelesen wird,
- Fig. 8 zeigt ein Blockdiagramm eines ersten praktischen Ausführungsbeispiels der Summen-Oddifizierschaltung 14 von Fig. 6,
- Fig. 9 zeigt ein Flußdiagramm, in dem die Funktion der Summen-Oddifizierschaltung von Fig. 8 dargestellt ist,
- Fig. 10A zeigt ein Blockdiagramm eines zweiten Ausführungsbeispiels der Summen- Oddifizierschaltung von Fig. 6,
- Fig. 10B zeigt eine Variante des zweiten Ausführungsbeispiels der Summen-Oddifizierschaltung von Fig. 6,
- Fig. 11 zeigt ein Blockdiagramm eines ersten Ausführungsbeispiels des Paritätsinverters von Fig. 8,
- Fig. 12 zeigt ein Flußdiagramm zur Erläuterung der Funktion eines zweiten Ausführungsbeispiels des oben erwähnten Paritätsinverters,
- Fig. 13 zeigt ein Blockdiagramm des zweiten Ausführungsbeispiels des Paritätsinverters,
- Fig. 14 zeigt ein Flußdiagramm zur Erläuterung der Funktion eines dritten Ausführungsbeispiels des oben erwähnten Paritätsinverters,
- Fig. 15 zeigt ein Blockdiagramm des dritten Ausführungsbeispiels des Paritätsinverters,
- Fig. 16 zeigt ein Flußdiagramm zur Erläuterung der Funktion eines vierten Ausführungsbeispiels des Paritätsinverters,
- Fig. 17 zeigt ein Blockdiagramm des vierten Ausführungsbeispiels des Paritätsinverters,
- Fig. 18 zeigt ein Blockdiagramm eines dritten Ausführungsbeispiels der Summen- Oddifizierschaltung von Fig. 6,
- Fig. 19 zeigt ein Blockdiagramm der Konfiguration des ersten exemplarischen Expandierers für komprimierte Bewegtbildsignale für die Verwendung in dem Verfahren gemäß der Erfindung,
- Fig. 20 zeigt ein Blockdiagramm des inversen Quantisierers und Summen-Oddifizierer in dem in Fig. 19 dargestellten Expandierer für komprimierte Bewegtbildsignale,
- Fig. 21 zeigt ein Zeitdiagramm zur Erläuterung der Funktion des inversen Quantisierers und Summen-Oddifizierers,
- Fig. 22 zeigt ein Blockdiagramm der Konfiguration eines zweiten exemplarischen Bewegtbildsignalkomprimierers zur Verwendung bei dem Verfahren gemäß der Erfindung,
- Fig. 23 zeigt ein Blockdiagramm eines ersten Ausführungsbeispiels der Summen- Oddifizierschaltung in dem Bewegtbildsignalkomprimierer von Fig. 22,
- Fig. 24 zeigt ein Blockdiagramm eines zweiten Ausführungsbeispiels der Summen- Oddifizierschaltung in dem Bewegtbildsignalkomprimierer von Fig. 22,
- Fig. 25 zeigt ein Blockdiagramm eines dritten Ausführungsbeispiels der Summen- Oddifizierschaltung in dem Bewegtbildsignalkomprimierer von Fig. 22,
- Fig. 26 zeigt ein Blockdiagramm eines Ausführungsbeispiels des Paritätsinverters in den Summen-Oddifizierschaltungen von Fig. 23 bis 25,
- Fig. 27 zeigt eine erste Variante des Paritätsinverters von Fig. 26,
- Fig. 28 zeigt eine zweite Variante des Paritätsinverters von Fig. 26,
- Fig. 29 zeigt eine dritte Variante des Paritätsinverters von Fig. 26,
- Fig. 30 zeigt ein Blockdiagramm der Konfiguration eines zweiten exemplarischen Expandierers für komprimierte Bewegtbildsignale gemäß der Erfindung.
- Im folgenden werden anhand der Zeichnungen Ausführungsbeispiele eines Verfahrens zur inversen diskreten Cosinustransformation und eines Geräts zur inversen diskreten Cosinustransformation, ferner eines Geräts zum Komprimieren von Bewegtbildsignalen, eines Geräts zum Expandieren von komprimierten Bewegtbildsignalen und eines Übertragungsgeräts beschrieben, die nach der Lehre der vorliegenden Erfindung arbeiten.
- Die Erfindung wird auf ein hybrides Codiersystem angewendet, in dem eine Prädiktionscodierung mit Bewegungskompensation und diskrete Cosinustransformation (DCT) kombiniert sind. Dieses hybride Codiersystem ist in ISO-IEC/JTC1/SC2/WWG11 beschrieben (das unter der Bezeichnung MPEG1 bekannt ist). Die Basiskonfiguration des hybriden MPEG-Codiersystems ist allgemein bekannt. Der Bericht WG11 enthält ein nützliches Glossar der hier benutzten Ausdrücke.
- Bewegungskompensierte Prädiktionscodierung ist ein Verfahren zum Reduzieren der Red- undanz eines Bewegtbildsignals durch Ausnutzung der Korrelation des Bewegtbildsignals in der Zeitdomäne. Bewegungskompensierte Prädiktion des laufenden Bilds (d. h. des laufend codierten Bilds) wird durchgeführt, indem ein anderes bereits decodiertes Bild des Bewegtbilds als Referenzbild benutzt wird. Die resultierenden bewegungskompensierten Prädiktionsfehler sind in dem komprimierten Signal zusammen mit einem Bewegungsvektor und einem Prädiktionsmodus usw. enthalten. Dadurch wird die Informationsmenge in dem komprimierten Bewegtbildsignal, die zur Darstellung des laufenden Bilds benötigt wird, signifikant reduziert.
- Das bewegungskompensierte Prädiktionsfehlersignal wird mit Hilfe eines Signalkomprimierers komprimiert, der die räumliche Korrelation der einzelnen Bilder ausnutzt, die das Bewegtbild bilden. Der Differenzsignalkomprimierer enthält typischerweise eine orthogonale Transformationsschaltung, z. B. eine DCT-Schaltung, und einen Quantisierer. Die DCT ist ei ne Form von orthogonaler Transformation, die als Ergebnis der zweidimensionalen Intra- Bild-(Vollbild- oder Halbbild)-Korrelation des Bilds die Signalleistung in spezifischen Frequenzkomponenten konzentriert. Auf diese Weise sind in dem komprimierten Signal, entweder direkt oder nach zusätzlicher Komprimierung, nur die konzentrierten und verteilten Koeffizienten enthalten. Dadurch wird die Informationsmenge in dem komprimierten Bewegtbildsignal, die zur Darstellung des laufenden Bilds benötigt wird, weiter reduziert.
- Die Zwischenbild-Prädiktionscodierung mit Bewegungskompensation kann zwischen Vollbildern des Bewegtbildsignals durchgeführt werden. Wenn das Bewegtbildsignal ein Zeilensprungsignal ist, kann die Prädiktionscodierung mit Bewegungskompensation alternativ auch zwischen Halbbildern durchgeführt werden. Zusätzlich kann die Zwischenbild-Prädiktionscodierung mit Bewegungskompensation in Abhängigkeit von den Eigenschaften des Bewegtbildsignals adaptiv zwischen Interframe-Codierung und Interfield-Codierung umgeschaltet werden.
- Die praktische Konfiguration des Geräts zum Komprimieren von Bewegtbildsignalen auf das die in den anliegenden Ansprüchen definierte Erfindung angewendet wird, ist in Fig. 6 dargestellt. In dem Gerät von Fig. 6 wird das Bewegtbildsignal in Bilder unterteilt und Bild für Bild komprimiert. Jedes Bild wird in Bildblöcke unterteilt, und das Bild wird Block für Block komprimiert. Der Bildblock, der gerade komprimiert wird, wird als laufender Bildblock bezeichnet. Der laufende Bildblock ist ein Block eines Bilds, das als laufendes Bild bezeichnet wird.
- Das Bewegtbildsignal, normalerweise ein Videosignal, wird der ersten Bildspeichergruppe 2 zugeführt, in der mehrere Bilder des Bewegtbildsignals temporär gespeichert werden. Die Speichersteuerung 3 steuert das Auslesen der Bilder aus der ersten Bildspeichergruppe 2 und der zweiten Bildspeichergruppe 4. Die Speichersteuerung 3 liefert auch das Slice-Startsignal SS und das Makroblock-Startsignal BS an den Slice/Makroblock-Zähler 5. Die Speichersteuerung liefert diese Signale synchron mit jedem Slice und jedem Makroblock jedes Bilds (z. B. des laufenden Bilds), das aus der ersten Bildspeichergruppe 2 für die Komprimierung ausgelesen wird. Ein Slice ist eine horizontale Zeile von Blöcken, die die Breite des Bilds abdeckt.
- Der Bewegungsprädiktor 6 führt eine Bewegungsprädiktion aus, indem er einen Blockvergleich zwischen dem laufenden Bildblock und mehreren Blöcken des vorhergehenden und folgenden Bilds durchführt, die in der ersten Bildspeichergruppe 2 gespeichert sind. Der Blockvergleich wird mit Blöcken von beispielsweise 16 · 16 Pixeln durchgeführt. Das von der Speichersteuerung 3 erzeugte Signal, das das Referenzbild für die Bewegungsprädiktion angibt, wählt die Blöcke des vorangehenden und folgenden Bilds für den Blockvergleich mit dem laufenden Block aus, die in der ersten Bildspeichergruppe 2 gespeichert sind. Der Bewegungsprädiktor 6 liefert dann an den Bewegungskompensator 7 als Bewegungsvektor MV die Position eines Blocks in einem der vorangehenden oder nachfolgenden Bilder, die in der ersten Bildspeichergruppe gespeichert sind, für den die Differenzen zwischen dem Block und dem laufenden Bildblock, d. h. der Bewegungsprädiktionsfehler, am kleinsten sind.
- In Abhängigkeit von dem Bewegungsvektor MV veranlaßt der Bewegungskompensator 7, daß ein Block jedes in der zweiten Bildspeichergruppe 4 gespeicherten rekonstruierten Bildes als potentieller Vergleichsblock ausgelesen wird. Die Position in den rekonstruierten Bildern, aus der die potentiellen Vergleichsblöcke ausgelesen werden, wird durch den Bewegungsvektor MV bestimmt. Das Signal aus der Speichersteuerung 3 zur Angabe des Referenzbilds für die Bewegungskompensation wählt dann einen der aus der zweiten Bildspeichergruppe 4 ausgelesenen potentiellen Vergleichsblöcke als den Vergleichsblock für den laufenden Block aus. Die in der zweiten Bildspeichergruppe 4 gespeicherten rekonstruierten Bilder sind Bilder, die durch lokales Decodieren der von dem Differenzblockcodierer 9 erzeugten quantisierten DCT-Koeffizienten rekonstruiert wurden. Der Differenzblockcodierer 9 wird weiter unten beschrieben.
- Das rekonstruierte Bild, aus dem der Bildblock durch das Signal zur Anzeige des Referenzbilds für die Bewegungskompensation ausgewählt wird, hängt von dem Prädiktionsmodus des laufenden Bilds ab. Beim Vorwärts-Prädiktionsmodus wird der Vergleichsblock aus einem früheren rekonstruierten Bild ausgewählt. Beim bidirektionalen Prädiktionsmodus wird der Vergleichsblock aus einem rekonstruierten früheren Bild oder einem rekonstruierten späteren Bild ausgewählt, oder er kann durch eine lineare Operation (z. B. Mittelwertberechnung) an Blöcken eines rekonstruierten früheren Bilds und eines rekonstruierten späteren Bilds erzeugt werden. Wenn das laufende Bild im Intra-Bild-Codiermodus d. h. ohne Prädiktion codiert wird, wird als Vergleichsblock ein "Nullblock" benutzt, in welchem alle Pixelwerte auf Null gesetzt sind. Die aus der zweiten Bildspeichergruppe 4 ausgelesenen Vergleichsblöcke werden adaptiv modifiziert, so daß für jeden Block des Bewegtbildsignals ein optimal angepaßter Vergleichsblock ausgewählt wird.
- Der Bewegungskompensator 7 wählt für jedes Bild den Prädiktionsmodus aus, indem er zunächst die Summe der Absolutwerte der Pixel-für-Pixel-Differenzen zwischen dem laufenden Bildblock und einem in den verschiedenen Prädiktionsarten erzeugten potentiellen Vergleichsblock berechnet. Dann wählt der Bewegungskompensator den Prädiktionsmodus aus, bei dem die genannte Summe ein Minimum ist. Der Bewegungskompensator führt das Prädiktionsmodussignal mm, das den ausgewählten Prädiktionsmodus angibt, dem weiter unten beschriebenen (in den Zeichnungen durchgehend mit VLC bezeichneten) variablen Längencodierer 17 zu. Der Bewegungskompensator 7 veranlaßt auch, daß die zweite Bildpeichergruppe 4 der Differenzgeneratorschaltung 8 den Vergleichsblock S2 für den ausgewählten Prädiktionsmodus zuführt.
- Die Differenzgeneratorschaltung 8 nimmt auch den laufenden Bildblock S1 des Bewegtbildsignals auf, der aus der ersten Bildspeichergruppe 2 ausgelesen wird, und berechnet die Pixel-für-Pixel-Differenz zwischen dem laufenden Bildblock S1 und dem Vergleichsblock S2. Die Differenzgeneratorschaltung liefert den resultierenden Differenzblock S3 an den Differenzblockcodierer 9. Der Differenzblockcodierer 9 komprimiert den Differenzblock S3, um daraus den Block von quantisierten Transformationskoeffizienten SC zu bilden. Der Block von quantisierten Transformationskoeffizienten SC wird dem lokalen Decodierer 10 zugeführt, in welchem er expandiert wird, um den wiederhergestellten Differenzblock S4 zu gewinnen. Der lokale Decodierer 10 in dem Gerät zur Bewegtbildsignalkomprimierung ist ähnlich aufgebaut wie das weiter unten beschriebene Gerät zum Expandieren von komprimierten Bewegtbildsignalen, unterscheidet sich von diesem jedoch im Detail.
- Im folgenden werden der Differenzblockcodierer 9 und der lokale Decodierer 10 beschrieben.
- Der Differenzblockcodierer 9 enthält die DCT-Schaltung 11 und den Quantisierer 10, wie dies in Fig. 6 dargestellt ist. Die DCT-Schaltung 11 benutzt DCT-Verarbeitung für die orthogonale Transformation des Differenzblocks S3 aus der Differenzblockgeneratorschaltung 8. Die DCT-Schaltung 11 liefert den resultierenden Block von DCT-Koeffizienten an den Quantisierer 12. Der Quantisierer 12 quantisiert den Block von DCT-Koeffizienten und stellt den Block von quantisierten DCT-Koeffizienten SC bereit.
- Der lokale Decodierer 10 enthält den inversen Quantisierer 13, die Summen-Oddifizierschaltung 14 und die IDCT-Schaltung 15, wie dies in Fig. 6 dargestellt ist. Der inverse Quantisierer 13 benutzt eine Quantisiertabelle für die inverse Quantisierung des Blocks von quantisierten DCT-Koeffizienten SC aus dem Quantisierer 12. Die Oddifizierschaltung führt an dem resultierenden Block von DCT-Koeffizienten eine Paritätsinvertierung durch, wenn die Summe der DCT-Koeffizienten keine ungerade Zahl ist. Dadurch wird das Auftreten von Abgleichfehlern verhindert, wenn der Block der in der Summe ungeradzahlig gemachten DCT-Koeffizienten invers orthogonal transformiert wird. Die IDCT-Schaltung 15 unterzieht den in der Summe ungeradzahlig gemachten Block von DCT-Koeffizienten aus der Oddifizierschaltung 14 einer inversen diskreten Cosinustransformation (IDCT) und liefert einen zurückgewonnen Differenzblock.
- Im folgenden wird die von dem Quantisierer 12 durchgeführte Quantisierung beschrieben. Jeder Block aus 8 · 8 DCT-Koeffizienten wird quantisiert. Jeder Block eines im Intra-Bild-Codiermodus komprimierten Bilds (eines I-Bilds) wird als Intra-Makroblock bezeichnet. Jeder in einem Zwischenbild-Codiermodus komprimierte Block wird als Nicht-Intra-Makroblock bezeichnet. Wenn ein Intra-Makroblock orthogonal transformiert wird, ist der DCT-Koeffizient der (0, 0)-Komponente der Gleichkoeffizient. Der Gleichkoeffizient wird quantisiert, indem er mit Rundung durch 8 geteilt wird, wenn mit 8-Bit-Genauigkeit quantisiert wird, durch 4, wenn mit 9-Bit-Genauigkeit quantisiert wird, durch 2, wenn mit 10-Bit-Genauigkeit quantisiert wird, und durch 1, wenn mit 11-Bit-Genauigkeit quantisiert wird. Die Gleichkomponente eines Intra-Makroblocks wird nach den folgenden Gleichungen quantisiert, die in der Syntax der Programmiersprache C geschrieben sind:
- (5) QDC = dc// 8 (8 Bits)
- QDC = dc// 4 (9 Bits)
- QDC = dc// 2 (10 Bits)
- QDC = dc// 1 (11 Bits)
- in der dc der Gleichkoeffizient und QDC der quantisierte Gleichkoeffizient bedeuten.
- Die DCT-Koeffizienten, die aus der orthogonalen Transformation eines Intra-Makroblocks hervorgehen mit Ausnahme der Gleichkoeffizienten (d. h. die "Wechselkomponenten"), werden quantisiert, indem die Quantisierungsfaktoren ac&supmin;(i, j) durch Gewichtung der DCT-Koeffizienten ac(i, j) durch die Gewichtungsmatrix Wi nach der folgenden Gleichung bestimmt werden:
- (6) ac&supmin;(i, j) = (16 * ac(i, j)) // Wi(i, j)
- Die Koeffizienten der Gewichtungsmatrix Wi sind folgende:
- (7) Wi = 8 16 19 22 26 27 29 34
- 16 16 22 24 27 29 34 37
- 19 22 26 27 29 34 34 38
- 22 22 26 27 29 34 37 40
- 22 26 27 29 32 35 40 48
- 26 27 29 32 35 40 48 58
- 26 27 29 34 38 46 56 69
- Dann werden unter Verwendung der folgenden Gleichung die Quantisierungsfaktoren ac (i, j) quantisiert, um die Quantisierungspegel QAC(i, j) der betreffenden Wechselkoeffizienten zu bestimmen.
- In der obigen Gleichung sind p und q beliebige feste ganze Zahlen, z. B. p = 3 und q = 4, und mquant ist der Quantisierungskoeffizient.
- Die DCT-Koeffizienten, die aus der orthogonalen Transformation eines Zwischenbild-codierten Makroblocks (eines "Nicht-Intra-Makroblocks") hervorgehen, werden quantisiert, indem die Quantisierungsfaktoren ac&supmin;(i, j) durch Gewichten aller DCT-Koeffizienten bestimmt werden, die durch Transformieren des Nicht-Intra-Makroblocks durch die Gewichtungsmatrix Wn gewonnen werden. Dies geschieht nach der folgenden Gleichung:
- (9) ac&supmin;(i, j) = (16 * ac(i, j)) // Wn(i, j)
- Die Koeffizienten der Gewichtungsmatrix Wn sind folgende:
- (10) Wn = 16 17 18 19 20 21 22 23
- 17 18 19 20 21 22 23 24
- 18 19 20 21 22 23 24 25
- 19 20 21 22 23 24 26 27
- 20 21 22 23 25 26 27 28
- 21 22 23 24 26 27 28 30
- 22 23 24 26 27 28 30 31
- 23 24 25 27 28 30 31 33
- Unter Verwendung folgender Gleichung werden dann die Quantisierungsfaktoren ac&supmin;(i, j) quantisiert, um die Quantisierungspegel QAC(i, j) der AC-Koeffizienten zu bestimmen.
- (11) QAC(i, j) = ac&supmin;(i, j) / (2*mquant)
- if (mquant = = odd)
- = (ac&supmin;(i, j) +1 / (2*mquant)
- if (mquant = = even AND ac-< 0)
- = (ac&supmin;(i, j) - 1 / (2*mquant)
- if (mquant = = even AND ac-> 0)
- Die resultierenden Quantisierungspegel QAC(i, j) werden dem variablen Längencodierer 17 und dem lokalen Decodierer 10 als der oben beschriebene Block von quantisierten DCT- Koeffizienten SC zugeführt.
- Der variable Längencodierer 17 unterzieht den durch die Quantisierung des Blocks von DCT- Koeffizienten gewonnenen Block von quantisierten DCT-Koeffizienten einer variablen Längencodierung. Er bestimmt die Differenzen zwischen den quantisierten Transformationskoeffizienten in den vier Luminanzblöcken, aus denen jeder Makroblock besteht, und dem Gleichkoeffizienten des betreffenden Intra-Makroblocks. Der variable Längencodierer benutzt dann eine Tabelle zur variablen Längencodierung, um die resultierenden Differenzwerte mit variabler Länge zu codieren. Diese Methode nutzt die hohe Korrelation zwischen den vier benachbarten Luminanzblöcken aus, die bedeutet, daß die Gleichkoeffizienten im wesentlichen den gleichen Wert haben. Der variable Längencodierer 17 bestimmt auch die Differenzen zwischen den quantisierten Koeffizienten der beiden Farbdifferenzblöcke und benutzt eine Tabelle zur variablen Längencodierung, um die resultierenden Differenzwerte mit variabler Länge zu codieren. Die Tabelle zur variablen Längencodierung für die Luminanzkoeffizienten und diejenige für die Farbdifferenzen unterscheiden sich voneinander.
- Der variable Längencodierer 17 unterzieht den Block von quantisierten DCT-Koeffizienten einer variablen Längencodierung, wobei er diesen Block von quantisierten DCT-Koeffizienten, beginnend mit dem DCT-Koeffizienten der Komponente (0, 0), in einer Zickzack-Abtastfolge ausliest, wie dies in Fig. 7 dargestellt ist. Der Block von quantisierten DCT-Koeffizienten wird in Zickzack-Abtastfolge ausgelesen, weil die von Null verschiedenen DCT-Koeffizienten, die aus der DCT-Verarbeitung hervorgehen, im allgemeinen in der Nähe der (0, 0)-Komponente konzentriert sind. Dadurch vergrößert das Auslesen der DCT-Koeffizienten in Zickzack-Abtastfolge die Effizienz der variablen Längencodierung, indem die Lauflänge der aufeinanderfolgenden Null-DCT-Koeffizienten vergrößert wird, die zwischen von Null verschiedenen DCT-Koeffizienten ausgelesen werden.
- Der variable Längencodierer 17 liest die DCT-Koeffizienten in Zickzack-Abtastfolge aus und bestimmt den Wert (d. h. den Pegel) jedes von Null verschiedenen DCT-Koeffizienten und die Zahl (d. h. die Lauflänge) der ihm vorangehenden Null-DCT-Koeffizienten. Dadurch wird der Block von DCT-Koeffizienten einer zweidimensionalen variablen Längencodierung unterzogen. Nach der Codierung werden die Koeffizienten in dem Block durch Lauflängenzahl/Pegel-Paare ausgedrückt. Der variable Längencodierer codiert auch einen 2-Bit-Code, EOB, der denjenigen von Null verschiedenen DCT-Koeffizienten anzeigt, der der letzte von Null verschiedene DCT-Koeffizient ist. Der variable Längencodierer 17 liefert die Adresse des letzten von Null verschiedenen Koeffizienten in der Zickzack-Abtastfolge an einen (nicht dargestellten) Adressenwandler. Der Adressenwandler wandelt die Adresse in der Zickzack- Abtastfolge in eine Adresse EOB adrs in Raster-Abtastfolge um. Der variable Längencodierer liefert die Adresse EOB adrs an die Summen-Oddifizierschaltung 14.
- Die Summen-Oddifizierschaltung 14 speichert die Adresse EOB adrs der Raster-Abtastfolge in dem z. B. in Fig. 8 dargestellten Register 25, das weiter unten beschrieben wird.
- Im folgenden wird der inverse Quantisierer 13 beschrieben. Der inverse Quantisierer 13 nimmt den Block von quantisierten DCT-Koeffizienten SC aus dem Differenzblockcodierer 10 auf, unterzieht den Block von quantisierten DCT-Koeffizienten einer inversen Quantisierung, um einen Block von DCT-Koeffizienten zu gewinnen. In der Praxis führt der inverse Quantisierer 13 eine inverse Quantisierung der quantisierten DCT-Koeffizienten durch, die aus der orthogonalen Transformation eines Intra-Makroblocks hervorgehen, indem er die in Gleichung (12) definierte Prozedur benutzt, um entsprechende Gleichkoeffizienten zu gewinnen. Der inverse Quantisierer 13 bewirkt auch eine inverse Quantisierung der Wechselkoeffizienten, die aus der orthogonalen Transformation eines Intra-Makroblocks hervorgehen, wobei er die in Gleichung (13) definierte Prozedur benutzt. Schließlich bewirkt der inverse Quantisierer 13 eine inverse Quantisierung aller quantisierten Koeffizienten, die aus der orthogonalen Transformation eines Nicht-Intra-Makroblocks hervorgehen, wobei er die in Gleichung (14) definierten Prozedur anwendet.
- (12) rec(0, 0) = 8* QDC
- rec(0, 0) = 4 * QDC (9 Bits)
- rec(0, 0) = 2 * QDC (10 Bits)
- rec(0, 0) = 1 * QDC (11 Bits)
- (13) rec(i, j) = (mquant * 2 QAC(i, j) * Wi(i, j)) /16
- if (QAC(i, j) = = 0)
- rec(i, j) = 0
- (14) if (QAC(i, j) > 0)
- rec(i, j) = ((2*QAC(i, j) + 1) mquant * Wn(i, j))/16
- if(QAC(i, j) < 0)
- rec(i, j) = ((2*QAC(i, j) - * mquant * Wn(i, j))/16
- if(QAC(i, j) = = 0)
- rec(i, j) = 0
- Der inverse Quantisierer 13 liefert den resultierenden Block von DCT-Koeffizienten an die Summen-Oddifizierschaltung 14, von der in Fig. 8 ein praktisches Beispiel dargestellt ist.
- Die Summen-Oddifizierschaltung 14 enthält den Akkumulator 23A, die Paritätsprüfschaltung 21 und den Paritätsinverter 28. Der Akkumulator 23A bestimmt die Summe der DCT-Koeffizienten in dem aus dem inversen Quantisierer 13 empfangenen Block von DCT-Koeffizienten. Die Paritätsprüfschaltung 21 prüft, ob die von dem Akkumulator 23A bestimmte Summe von DCT-Koeffizienten eine ungerade Zahl oder eine gerade Zahl ist, d. h. ob die Parität der Summe der DCT-Koeffizienten ungeradzahlig oder geradzahlig ist. Nur wenn die Paritätsprüfschaltung feststellt, daß die Parität der Summe der DCT-Koeffizienten geradzahlig ist, ändert der Paritätsinverter 28 die Parität wenigstens eines DCT-Koeffizienten in dem Block, um die Parität der Summe der DCT-Koeffizienten ungeradzahlig zu machen, d. h. die Summe der DCT-Koeffizienten wird ungeradzahlig gemacht. Dies verhindert das Auftreten eines Abgleichfehlers, wenn der Block von in der Summe ungeradzahlig gemachten DCT- Koeffizienten aus der Summen-Oddifizierschaltung 14 in der IDCT-Schaltung 15 einer inversen orthogonalen Transformation unterzogen wird.
- Der Zähler 20 zählt die Zahl der aus dem inversen Quantisierer 13 empfangenen DCT-Koeffizienten und liefert den resultierenden Zählwert coeff adrs an die Paritätsprüfschaltung 21 und den Speicherwähler 22.
- Der Akkumulator 23A enthält den Addierer 23 und das Register 24. Der Addierer 23 addiert jeden DCT-Koeffizienten in einem aus dem inversen Quantisierer 13 empfangenen Block von DCT-Koeffizienten zu der Summe der bereits empfangenen DCT-Koeffizienten in dem Block, die in dem Register 24 gespeichert sind. Das Register 24 wird zurückgesetzt, nachdem die Summe für jeden Block von DCT-Koeffizienten bestimmt wurde. Die resultierende Summe der DCT-Koeffizienten wird von dem Addierer 23 dem Register 24 und der Paritätsprüfschaltung 21 zugeführt. Der Akkumulator 23A braucht nur die Summe der niedrigstwertigen Bits der DCT-Koeffizienten in dem Block zu summieren, um beurteilen zu können, ob die Parität der Summe der DCT-Koeffizienten ungeradzahlig oder geradzahlig ist.
- Die Paritätsprüfschaltung 21 prüft, ob die Parität der Summe der DCT-Koeffizienten in dem Block von DCT-Koeffizienten ungeradzahlig oder geradzahlig ist, in Abhängigkeit von dem Zählwert coeff adrs aus dem Zähler 20. Wenn alle DCT-Koeffizienten in dem Block an den Akkumulator 23A geliefert wurden, zeigt der Wert von coeff adrs an, daß der Akkumulator 23A die Summe aller DCT-Koeffizienten in dem Block bestimmt hat. In Abhängigkeit von dem Zählwert coeff adrs stellt die Paritätsprüfschaltung 21 fest, ob die Parität der Summe der DCT-Koeffizienten aus dem Akkumulator 23A ungeradzahlig oder geradzahlig ist. Im Fall einer zweidimensionalen 8 · 8-DCT-Transformation prüft die Paritätsprüfschaltung 21 beispielsweise, ob die Parität der Summe der DCT-Koeffizienten aus dem Akkumulator 23A ungeradzahlig oder geradzahlig ist, wenn der Wert von coeff adrs anzeigt, daß alle 64 DCT- Koeffizienten in dem Block an den Akkumulator 23A geliefert wurden.
- Wenn jeder DCT-Koeffizient z. B. durch eine binäre Zahl repräsentiert wird, prüft die Paritätsprüfschaltung 21 in der Praxis das niedrigstwertige Bit (LSB) der Summe der aus dem Akkumulator 23A empfangenen DCT-Koeffizienten. Ein LSB mit dem Wert Null zeigt an, daß die Parität der Summe geradzahlig ist. In diesem Fall liefert die Paritätsprüfschaltung 21 das Verarbeitungsanforderungssignal REQ1 an den Paritätsinverter 28, um diesen zu veranlassen, eine Paritätsinvertierung vorzunehmen. In Abhängigkeit von dem Verarbeitungsanforderungssignal REQ1 ändert der Paritätsinverter 28 die Parität wenigstens eines (d. h. einer ungeradzahligen Zahl) der DCT-Koeffizienten, um die Summe der DCT-Koeffizienten ungeradzahlig zu machen. Auf der anderen Seite zeigt ein LSB mit dem Wert 1 an, daß die Parität der Summe ungeradzahlig ist. In diesem Fall liefert die Paritätsprüfschaltung 21 das Verarbeitungsanforderungssignal REQ1 nicht, und der Paritätsinverter 28 läßt die Parität aller DCT-Koeffizienten in dem Block unverändert.
- In der dargestellten praktischen Schaltung werden die DCT-Koeffizienten aus dem inversen Quantisierer 13 über den Speicherwähler 22 in dem ersten Speicher 26 oder dem zweiten Speicher 27 gespeichert. Der Speicherwähler 22 arbeitet in Abhängigkeit von dem Zählwert coefüadrs, der aus dem Zähler 20 empfangen wird. Wenn der Speicherwähler 22 z. B. feststellt, daß alle DCT-Koeffizienten in den Block in dem ersten Speicher 26 gespeichert wurden, spezifiziert der Speicherwähler den zweiten Speicher, so daß die DCT-Koeffizienten des nächsten Blocks in dem zweiten Speicher 27 gespeichert werden. Auf diese Weise werden aufeinanderfolgende Blöcke von DCT-Koeffizienten abwechselnd in dem ersten Speicher 26 und dem zweiten Speicher 27 gespeichert. Wenn alle DCT-Koeffizienten des Blocks entweder in dem ersten Speicher 26 oder in dem zweiten Speicher 27 gespeichert wurden, liefert der Speicher, in dem alle DCT-Koeffizienten in dem Block gespeichert sind, das "Speicher-Voll-Signal" FULL1 oder FULL2 an den Paritätsinverter 28.
- Wenn der Paritätsinverter 28 das Speicher-Voll-Signal FULL1 oder das Speicher-Voll-Signal FULL2 empfängt, liefert er das Leseaktivierungssignal RD EN1 oder RD EN2 an den Speicher, der das Speicher-Voll-Signal abgegeben hat. Dies hat zur Folge, daß der Block von DCT-Koeffizienten aus dem Speicher, der das Speicher-Voll-Signal erzeugt hat, an den Paritätsinverter ausgegeben werden. Der Paritätsinverter behandelt den aus dem Speicher ausgelesenen Block von DCT-Koeffizienten je nach dem, ob die Paritätsprüfschaltung 21 das Verarbeitungsanforderungssignal REQ1 erzeugt hat, auf eine von zwei Arten. Wenn der Paritätsinverter 28 das Verarbeitungsanforderungssignal REQ1 empfängt, invertiert er das LSB eines der DCT-Koeffizienten in dem Block, z. B. des letzten von Null verschiedenen Koeffizienten in der Zickzack-Abtastfolge. Der Paritätsinverter identifiziert den DCT-Koeffizienten, dessen Parität invertiert werden kann, indem er die in dem Register 25 gespeicherte Adresse des DCT-Koeffizienten benutzt, dessen Parität invertiert werden kann. Fig. 8 zeigt z. B. die Adresse EOB adrs des letzten von Null verschiedenen Koeffizienten, die dem Komparator 62 zugeführt wird. Deshalb ist in diesem Beispiel der DCT-Koeffizient, dessen Parität invertiert werden kann, der letzte von Null verschiedene Koeffizient. Wenn der Paritätsinverter 28 die Parität des DCT-Koeffizienten, dessen Parität invertiert werden kann, invertiert, wird die Parität der Summe der von Null verschiedenen Koeffizienten in dem Block von dem ersten bis zu dem letzten ungeradzahlig gemacht. Der Paritätsinverter 28 gibt alle DCT- Koeffizienten außer dem DCT-Koeffizienten, dessen LSB invertiert wurde, mit unveränderten LSBs an die IDCT-Schaltung 15. Der Paritätsinverter 28 liefert auch den DCT-Koeffizienten, dessen Parität invertiert werden kann, an die IDCT-Schaltung, wobei der Zustand seines LSB davon abhängt, ob der Paritätsinverter das Verarbeitungsanforderungssignal REQ1 empfangen hat.
- Der Paritätsinverter 28 kann z. B. als Computer oder digitaler Signalprozessor implementiert sein, der nach dem in Fig. 9 dargestellten Flußdiagramm arbeitet. In diesem Beispiel ist der DCT-Koeffizient, dessen Parität invertiert werden kann, der letzte von Null verschiedene Koeffizient. In dem Schritt S1 stellt der Paritätsinverter 28 aus der Adresse EOB adrs fest, ob der gerade verarbeitete DCT-Koeffizient der DCT-Koeffizient ist, der durch Invertieren seines LSB invertiert werden kann. Wenn das Ergebnis in dem Schritt S1 JA ist, geht die Verarbeitung weiter zu dem Schritt S2. Andernfalls geht die Verarbeitung weiter zu dem Schritt 55, der weiter unten beschrieben wird.
- In dem Schritt S2 stellt der Paritätsinverter 28 fest, ob das Verarbeitungsanforderungssignal REQ1 empfangen wurde. Wenn das Ergebnis in dem Schritt S2 JA lautet und damit anzeigt, daß das Verarbeitungsanforderungssignal REQ1 empfangen wurde, geht die Verarbeitung weiter zu dem Schritt S3. Andernfalls wurde keine Verarbeitungsanforderung empfangen, und die Verarbeitung geht weiter zu dem Schritt S5.
- In dem Schritt S3 invertiert der Paritätsinverter 28 das LSB des DCT-Koeffizienten, dessen Parität invertiert werden kann, um seine Parität zu invertieren und damit die Parität der Summe der DCT-Koeffizienten zu ändern. Die Verarbeitung geht weiter zu dem Schritt S4, in dem der paritäts-invertierte DCT-Koeffizient der IDCT-Schaltung 15 (Fig. 10A) zugeführt wird. Die Verarbeitung kehrt dann zu dem Schritt S1 zurück, in welchem der nächste DCT- Koeffizient verarbeitet wird.
- Die Verarbeitung geht weiter zu dem Schritt S5, wenn der gerade verarbeitete DCT-Koeffizient nicht der DCT-Koeffizient ist, dessen Parität invertiert werden kann, oder wenn die Parität des DCT-Koeffizienten, dessen Parität invertiert werden kann, nicht invertiert werden soll, d. h. wenn das Verarbeitungsanforderungssignal REQ1 nicht empfangen wurde. In dem Schritt S5 wird der DCT-Koeffizient ohne Änderung der IDCT-Schaltung 15 zugeführt. Die Verarbeitung kehrt dann zu dem Schritt S1 zurück, in welchem der nächste DCT-Koeffizient verarbeitet wird.
- Wenn die DCT-Koeffizienten durch eine Zweierkomplement-Darstellung repräsentiert werden, ist das oben erwähnte LSB das LSB der Zweierkomplement-Darstellung. Wenn hingegen die DCT-Koeffizienten durch ein Vorzeichen und einen Absolutwert repräsentiert werden, ist das oben erwähnte LSB das LSB des Absolutwerts.
- Die Konfiguration der Summen-Oddifizierschaltung 14 ist nicht auf das in Fig. 8 dargestellte Beispiel beschränkt. So besitzt z. B. die in Fig. 10A dargestellte Summen-Oddifizierschaltung zusätzlich den LSB-Detektor 29, und das Exklusiv-ODER-Glied 30 ersetzt den Addierer 23 in der Summen-Oddifizierschaltung von Fig. 8. Elemente in der Schaltung von Fig. 10A, die Elementen in der Schaltung von Fig. 8 entsprechen, sind mit den gleichen Bezugszeichen versehen wie dort und werden nicht erneut beschrieben.
- In Fig. 10A detektiert der LSB-Detektor 29 das LSB jedes DCT-Koeffizienten in dem Block von DCT-Koeffizienten. Das Exklusiv-ODER-Glied 30 bewirkt eine Exklusiv-ODER-Verknüpfung zwischen jedem DCT-Koeffizienten in dem Block und der in dem Register 24 gespeicherten exklusiven logischen Summe der LSBs der DCT-Koeffizienten in dem Block, der bereits verarbeitet wurde. Somit leiten das Exklusiv-ODER-Glied 30 und das Register 24 die exklusive logische Summe der LSBs der DCT-Koeffizienten in jedem Block her. Die Kombination aus dem Exklusiv-ODER-Glied 30 und dem Register 24 kann auch so betrachtet werden, daß sie die DCT-Koeffizienten zählt, deren LSB eine 1 ist. Wenn dann alle DCT-Koeffizienten in dem Block empfangen wurden, zeigt der Zustand des Ausgangssignals des Exklusiv-ODER-Glieds 30 an, ob der Zählwert der DCT-Koeffizienten, deren LSB gleich 1 ist, ungeradzahlig oder geradzahlig ist. Die Paritätsprüfschaltung 21 gibt dann das Verarbeitungsanforderungssignal REQ1 aus, wenn der Zählwert der DCT-Koeffizienten mit einer 1 als LSB geradzahlig ist.
- Fig. 10B zeigt eine alternative Konfiguration, die das Exklusiv-ODER-Glied 30 und das Register 24 ersetzen kann. Hierbei werden die LSBs aller von dem inversen Quantisierer 13 empfangenen DCT-Koeffizienten von dem LSB-Detektor 29 dem UND-Glied 88 zugeführt. Das UND-Glied läßt nur diejenigen LSBs zu dem Zähler 89 durch, die den Wert 1 haben. Der Zähler wird am Beginn jedes Blocks von DCT-Koeffizienten zurückgesetzt und zählt jedes LSB mit dem Wert 1, das er empfängt. Das LSB des Zählwerts COUNT aus dem Zähler 89 wird der Paritätsprüfschaltung 21 zugeführt. Am Ende jedes Blocks bestimmt die Paritätsprüfschaltung die Parität des LSB des Zählwerts COUNT aus dem Zähler 89. Wenn die Parität des Zählwerts COUNT ungeradzahlig ist (d. h. das LSB von COUNT gleich Eins ist) zeigt dies an, daß die Zahl der DCT-Koeffizienten in dem Block, deren LSB den Wert 1 hat, unge rade ist und daß die Parität der Summe der DCT-Koeffizienten in dem Block ungerade ist. Wenn hingegen der Zählwert COUNT geradzahlig ist (d. h. das LSB von COUNT gleich Null ist) zeigt dies an, daß die Zahl der DCT-Koeffizienten in dem Block, deren LSB gleich Eins ist, ungerade ist und daß die Parität der Summe der DCT-Koeffizienten in dem Block geradzahlig ist.
- Anhand von Fig. 11 wird eine praktische Konfiguration eines ersten Ausführungsbeispiels des Paritätsinverters in den Summen-Oddifizierschaltungen von Fig. 8 und 10A beschrieben. Der Paritätsinverter 28 umfaßt den Lesezähler 61, den Adressenkomparator 62, den LSB-Inverter 63, die UND-Glieder 64, 65, 67 und 68, die ODER-Glieder 66 und 69 und die Inverter 71 und 72.
- Der Paritätsinverter 28 arbeitet folgendermaßen: Wenn der Lesezähler 61 aus dem ersten Speicher 26 oder dem zweiten Speicher 27 das Speicher-Voll-Signal FULL empfängt, liefert er das Leseaktivierungssignal RD EN an den ersten Speicher 26 oder den zweiten Speicher 27. Das Leseaktivierungssignal bewirkt, daß der betreffende Speicher die in ihm gespeicherten DCT-Koeffizienten in dem Block von DCT-Koeffizienten sequentiell über den mit RDATA bezeichneten Pfad dem ersten UND-Glied 67 zuführt.
- Das Speicher-Voll-Signal FULL bewirkt außerdem, daß der Lesezähler 61 damit beginnt, die empfangenen DCT-Koeffizienten zu zählen und dem Komparator 62 einen Zählwert zuführt, der die Zahl der empfangenen DCT-Koeffizienten angibt. Der Komparator 62 vergleicht den Zählwert mit der aus dem Register 25 empfangenen Adresse, um festzustellen, ob der von dem ersten UND-Glied 67 empfangene DCT-Koeffizient der DCT-Koeffizient ist, dessen Parität invertiert werden kann, d. h. der DCT-Koeffizient, dessen LSB invertiert werden kann. Bei dem in Fig. 11 dargestellten Beispiel ist der DCT-Koeffizient, dessen Parität invertiert werden kann, der letzte von Null verschiedene DCT-Koeffizient, der durch die in dem Register 62 gespeicherte Adresse EOB adrs identifiziert ist. Wenn der Zählwert mit der Adresse des DCT-Koeffizienten übereinstimmt, dessen Parität invertiert werden kann, im vorliegenden Beispiel mit der Adresse EOB adrs, stellt der Komparator 62 fest, daß der DCT-Koeffizient der DCT-Koeffizient ist, dessen Parität invertiert werden kann, und ändert den Zustand seines Ausgangssignals von 0 auf 1.
- Das Ausgangssignal des Komparators 62 wird direkt dem zweiten UND-Glied 68 und über den Inverter 72 dem ersten UND-Glied 67 zugeführt. Wenn der Zählwert nicht mit der Adresse EOB adrs übereinstimmt, ist das erste UND-Glied 67 geöffnet, und das zweite UND-Glied 68 ist geschlossen. Deshalb gelangen die DCT-Koeffizienten unverändert über das erste UND-Glied 67 und das ODER-Glied 69 zu der IDCT-Schaltung 15.
- Wenn der dem Paritatsinverter 28 zugeführte DCT-Koeffizient hingegen der DCT-Koeffizient ist, dessen Parität invertiert werden kann, und der Zählwert mit der Adresse des Koeffizienten übereinstimmt, dessen Parität invertiert werden kann, im vorliegenden Beispiel der Adresse EOB adrs, ändert das Ausgangssignal des Komparators 62 seinen Zustand, wie dies oben beschrieben wurde. Dadurch wird das erste UND-Glied 67 geschlossen und das zweite UND-Glied 68 geöffnet. Infolgedessen wird der DCT-Koeffizient mit dem invertierten LSB, der über das ODER-Glied 66 empfangen wird, über das zweite UND-Glied 68 und das ODER-Glied 69 der IDCT-Schaltung 15 zugeführt.
- Der DCT-Koeffizient mit dem invertierten LSB wird als Reaktion auf das Verarbeitungsanforderungssignal REQ1 selektiv der IDCT-Schaltung 15 zugeführt, indem die auf dem Pfad RDATA empfangenen DCT-Koeffizienten dem dritten UND-Glied 64 und dem LSB-Inverter 63 zugeführt werden. Das Verarbeitungsanforderungssignal REQ1 wird von der Paritätsprüfschaltung 21 dem vierten UND-Glied 65 direkt und dem dritten UND-Glied 64 über den Inverter 71 zugeführt. Der LSB-Inverter 63 invertiert das LSB jedes DCT-Koeffizienten, der auf dem Pfad RDATA empfangen wird, und liefert den resultierenden DCT-Koeffizienten mit invertiertem LSB an das vierte UND-Glied 65.
- Die Abwesenheit des Verarbeitungsanforderungssignals REQ1, d. h. das Verarbeitungsanforderungssignal in dem Null-Zustand, zeigt an, daß der DCT-Koeffizient, dessen Parität invertiert werden kann, der IDCT-Schaltung zugeführt werden soll, ohne daß sein LSB invertiert wird. Das Verarbeitungsanforderungssignal öffnet in dem Zustand Null das dritte UND-Glied 64 und schließt das vierte UND-Glied 65. Dieses leitet den DCT-Koeffizienten, dessen Parität invertiert werden kann, mit unverändertem LSB von dem Pfad RDATA über das dritte UND-Glied 64, das ODER-Glied 66, das zweite UND-Glied 68 und das ODER-Glied 69 zu der IDCT-Schaltung 15.
- Auf der anderen Seite zeigt die Anwesenheit des Verarbeitungsanforderungssignals REQ1, d. h. das Verarbeitungsanforderungssignal REQ1 in dem Zustand Eins, an, daß der DCT- Koeffizient, dessen Parität invertiert werden kann, mit invertiertem LSB an die IDCT-Schaltung geliefert werden soll, um die Parität der Summe der DCT-Koeffizienten zu ändern. Das Verarbeitungsanforderungssignal in dem Zustand Eins schließt das dritte UND-Glied 64 und öffnet das vierte UND-Glied 65. Dieses führt den DCT-Koeffizienten, dessen Parität invertiert werden kann, mit invertiertem LSB von dem LSB-Inverter 63 über das vierte UND-Glied 65, das ODER-Glied 66, das zweite UND-Glied 68 und das ODER-Glied 69 zu der IDCT- Schaltung 15.
- Im folgenden wird anhand von Fig. 12 ein zweites Ausführungsbeispiel des Paritätsinverters 28 beschrieben. Wenn der Paritätsinverter 28 nach dem zweiten Ausführungsbeispiel das Verarbeitungsanforderungssignal REW empfängt, macht er die Summe der DCT-Koeffizienten ungeradzahlig, indem zu dem DCT-Koeffizienten, dessen Parität invertiert werden kann, eine 1 addiert wird.
- Der Paritätsinverter 28 nach dem zweiten Ausführungsbeispiel kann durch einen Computer oder einen digitalen Signalprozessor implementiert werden, der nach dem Flußdiagramm von Fig. 12 arbeitet. Das in Fig. 12 dargestellte Flußdiagramm ähnelt dem Flußdiagramm von Fig. 9 mit Ausnahme der in dem Schritt S3 ausgeführten Operation. Statt das LSB des DCT-Koeffizienten, dessen Parität invertiert werden kann, zu invertieren, macht der Paritätsinverter 28 nach dem zweiten Ausführungsbeispiel in dem Schritt S3 die Summe der DCT- Koeffizienten ungeradzahlig, indem zu dem DCT-Koeffizienten, dessen Parität invertiert werden kann, eine 1 addiert wird. Der DCT-Koeffizient, dessen Parität invertiert werden kann, kann z. B. der letzte von Null abweichende Koeffizient in dem Block sein, oder der DCT-Koeffizient der Komponente mit der höchsten Frequenz in dem Block.
- Anhand von Fig. 13 wird nun eine praktische Schaltungskonfiguration des zweiten Ausführungsbeispiels des Paritätsinverters beschrieben, bei dem zu dem DCT-Koeffizienten, dessen Parität invertiert werden kann, 1 addiert wird, um die Summe der DCT-Koeffizienten in dem Block von DCT-Koeffizienten ungeradzahlig zu machen. Das in Fig. 13 dargestellte zweite Ausführungsbeispiel des Paritätsinverters ähnelt dem ersten Ausführungsbeispiel des Paritätsinverters 28, der in Fig. 11 dargestellt ist. Elemente in der Schaltung von Fig. 13, die Elementen der Schaltung von Fig. 11 entsprechen, sind mit den gleichen Bezugszeichen versehen wie dort und werden nicht erneut beschrieben.
- Der Paritätsinverter von Fig. 13 umfaßt anstelle des LSB-Inverters 63 von Fig. 11 den +1- Addierer 73. Der +1-Addierer 73 addiert zu jedem DCT-Koeffizienten, der aus dem ersten Speicher 26 oder aus dem zweiten Speicher 27 ausgelesen und über den Pfad RDATA empfangen wird, eine Eins. Einer der DCT-Koeffizienten, zu dem eine Eins addiert ist, wird in Abhängigkeit von dem Verarbeitungsanforderungssignal REQ1 ausgewählt, um die Summe der DCT-Koeffizienten ungeradzahlig zu machen.
- Die Funktion des in Fig. 13 dargestellten Paritätsinverters ist mit der Funktion der Schaltung von Fig. 11 identisch mit der Ausnahme, daß der +1-Addierer 73 zu jedem DCT-Koeffizienten, der auf dem Pfad RDATA empfangen wird, 1 addiert. Wenn das Verarbeitungsanforderungssignal REQ1 vorhanden ist und der DCT-Koeffizient, dessen Parität invertiert werden kann, detektiert wird, wird der DCT-Koeffizient, zu dem eine 1 addiert ist, von dem + 1-Addierer über das vierte UND-Glied 64, das ODER-Glied 66, das zweite UND-Glied 68 und das ODER-Glied 69 der IDCT-Schaltung 15 zugeführt.
- Anhand von Fig. 14 und 15 wird nun ein drittes Ausführungsbeispiel des Paritätsinverters beschrieben.
- Wenn der Paritätsinverter nach dem dritten Ausführungsbeispiel das Verarbeitungsanforderungssignal REQ1 empfängt, macht er die Summe der DCT-Koeffizienten in dem Block ungeradzahlig, indem er den DCT-Koeffizienten, dessen Parität invertiert werden kann, durch den DCT-Koeffizienten, dessen Parität invertiert werden soll, ersetzt, von dem 1 subtrahiert: wurde, wenn das Vorzeichen des DCT-Koeffizienten positiv ist, und durch den DCT-Koeffizienten, zu dem 1 addiert wurde, wenn das Vorzeichen des DCT-Koeffizienten negativ ist. Dadurch wird nicht nur die Parität des DCT-Koeffizienten invertiert, dessen Parität invertiert werden soll, sondern auch die Magnitude dieses DCT-Koeffizienten reduziert, d. h. der DCT- Koeffizient, dessen Parität invertiert werden soll, wird näher an Null herangeführt. Die Verarbeitung, die an dem DCT-Koeffizienten ausgeführt wird, dessen Parität invertiert werden soll, ist durch die folgende Gleichung definiert.
- (15) if(rec > 0)
- rec = rec - 1
- if(rec < 0)
- rec = rec + 1
- worin rec den DCT-Koeffizienten bedeutet, dessen Parität invertiert werden soll.
- Das dritte Ausführungsbeispiel des Paritätsinverters 28 kann durch einen Computer oder einen digitalen Signalprozessor implementiert werden, der nach dem in Fig. 14 dargestellten Flußdiagramm arbeitet. In dem Schritt S1 ermittelt der Paritätsinverter 28 aus der Adresse EOB adrs, ob der DCT-Koeffizient derjenige DCT-Koeffizient ist, dessen. Parität invertiert werden kann. Der Paritätsinverter stellt z. B. fest, ob der DCT-Koeffizient der letzte von Null verschiedene DCT-Koeffizient ist. Wenn das Ergebnis in dem Schritt S1 JA lautet und der DCT-Koeffizient derjenige DCT-Koeffizient ist, dessen Parität invertiert werden kann, geht die Verarbeitung weiter zu dem Schritt S2. Andernfalls, wenn der DCT-Koeffizient nicht derjenige DCT-Koeffizient ist, dessen Parität invertiert werden kann, geht die Verarbeitung weiter zu dem Schritt S8.
- In dem Schritt S2 bestimmt der Paritätsinverter 28, ob das Verarbeitungsanforderungssignal REQ1 empfangen wurde. Wenn das Ergebnis in dem Schritt S2 JA lautet, was anzeigt, daß das Verarbeitungsanforderungssignal REQ1 empfangen wurde, geht die Verarbeitung weiter zu dem Schritt S3. Andernfalls wurde keine Verarbeitungsanforderung empfangen, und die Verarbeitung geht weiter zu dem Schritt S8. Da ein JA-Ergebnis in dem Schritt S2 nur dann auftreten kann, wenn in dem Schritt S1 ein JA-Ergebnis gewonnen wurde, zeigt das JA-Ergebnis in dem Schritt S2 an, daß der DCT-Koeffizient derjenige DCT-Koeffizient ist, dessen Parität invertiert werden soll.
- In dem Schritt S3 bestimmt der Paritätsinverter 28 die Polarität des DCT-Koeffizienten, dessen Parität invertiert werden soll. Wenn das Ergebnis in dem Schritt S3 JA lautet, was anzeigt, daß die Polarität des DCT-Koeffizienten positiv ist, geht die Verarbeitung weiter zu dem Schritt S4. Andernfalls ist die Polarität des DCT-Koeffizienten Null oder negativ, und die Verarbeitung geht weiter zu dem Schritt S6.
- In dem Schritt S4 subtrahiert der Paritätsinverter 28 von dem DCT-Koeffizienten, dessen Parität invertiert werden soll, den Wert 1 (d. h. er addiert -1) und geht anschließend weiter zu dem Schritt S5, in welchem der paritäts-invertierte DCT-Koeffizient der IDCT-Schaltung 15 (Fig. 10A) zugeführt wird. Die Verarbeitung kehrt dann zu dem Schritt S1 zurück, in welchem der nächste DCT-Koeffizient verarbeitet wird.
- Andernfalls addiert in dem Schritt S6 der Paritätsinverter 28 zu dem DCT-Koeffizienten, dessen Parität geändert werden soll, den Wert 1. Anschließend geht die Verarbeitung weiter zu dem Schritt S7, in welchem der paritäts-invertierte DCT-Koeffizient der IDCT-Schaltung 15 zugeführt wird. Der Prozeß kehrt dann zu dem Schritt S1 zurück, in welchem der nächste DCT-Koeffizient verarbeitet wird.
- Wenn der DCT-Koeffizient nicht derjenige DCT-Koeffizient ist, dessen Parität invertiert werden kann, oder wenn die Parität des DCT-Koeffizienten, dessen Parität invertiert werden kann, nicht invertiert werden soll, d. h. wenn das Verarbeitungsanforderungssignal REQ1 nicht empfangen wurde, geht die Verarbeitung weiter zu dem Schritt S8. In dem Schritt S8 wird der DCT-Koeffizient ohne Änderung der IDCT-Schaltung 15 zugeführt. Die Verarbeitung kehrt dann zu dem Schritt S1 zurück, in welchem der nächste DCT-Koeffizient verarbeitet wird.
- Fig. 15 zeigt ein praktisches Beispiel der Schaltungskonfiguration des dritten Ausführungsbeispiels des Paritätsinverters 28, bei dem die Paritätsinvertierung durchgeführt wird, um die Magnitude des DCT-Koeffizienten zu verringern, dessen Parität invertiert wird, d. h. den DCT-Koeffizienten, dessen Parität invertiert ist, näher an Null zu rücken.
- Der in Fig. 15 dargestellte Paritätsinverter gleicht dem Paritätsinverter 28 von Fig. 11. Elemente in der Schaltung von Fig. 15, die Elementen in der Schaltung von Fig. 11 entsprechen, sind mit den gleichen Bezugszeichen versehen wie dort und werden nicht erneut beschrieben. Der Paritätsinverter von Fig. 15 unterscheidet sich von dem in Fig. 11 dargestell ten Paritätsinverter darin, daß er anstelle des LSB-Inverters 63 die Magnitudenreduzierschaltung 80 enthält.
- Die Magnitudenreduzierschaltung 80 bestimmt die Polarität jedes DCT-Koeffizienten, der über den Pfad RDATA aus dem ersten Speicher 26 oder dem zweiten Speicher 27 empfangen wird. Wenn die Polarität des DCT-Koeffizienten positiv ist, subtrahiert die Magnitudenreduzierschaltung 1 von dem DCT-Koeffizienten, während sie Eins zu dem DCT-Koeffizienten addiert, wenn die Polarität des DCT-Koeffizienten Null oder negativ ist. Die Paritätsinverterschaltung von Fig. 15 macht die Summe der DCT-Koeffizienten in dem Block ungeradzahlig, indem sie den DCT-Koeffizienten auswählt, dessen Parität von der Magnitudenreduzierschaltung 80 invertiert wird, und den DCT-Koeffizienten, dessen Parität invertiert werden soll, durch den magnitudenreduzierten, paritäts-invertierten DCT-Koeffizienten ersetzt.
- Die Magnitudenreduzierschaltung 80 enthält die Polaritätsprüfschaltung 81, die das fünfte UND-Glied 84 direkt und das sechste UND-Glied 85 über den Inverter 87 steuert. Die Magnitudenreduzierschaltung 80 enthält außerdem den -1-Subtrahierer 82 und den +1-Addierer 83, die von jedem auf dem Pfad RDATA empfangenen DCT-Koeffizienten 1 subtrahieren bzw. 1 dazu addieren. In Abhängigkeit von dem Ausgangssignal der Polaritätsprüfschaltung 81 wird entweder das Ausgangssignal des -1-Subtrahierers 82 oder das Ausgangssignal des +1-Addierers 83 von dem fünften UND-Glied 84 bzw. dem sechsten UND-Glied 85 ausgewählt. Die Ausgangssignale der UND-Glieder 84 und 85 werden dem ODER-Glied 86 zugeführt, das den ausgewählten magnitudenreduzierten DCT-Koeffizienten dem vierten UND- Glied 65 zuführt. Wenn die Parität der Summe der DCT-Koeffizienten in dem Block invertiert werden muß, wählt das vierte UND-Glied das magnitudenreduzierte, paritäts-invertierte Ausgangssignal der Magnitudenreduzierschaltung 80 anstelle des DCT-Koeffizienten, dessen Parität invertiert werden kann, für die Weiterleitung an die IDCT-Schaltung 15 aus.
- Die Polaritätsprüfschaltung 81 ermittelt die Polarität jedes DCT-Koeffizienten in dem Block von DCT-Koeffizienten, die auf dem Pfad RDATA empfangen werden, und setzt den Zustand seines Ausgangssignals in Abhängigkeit davon, ob die Polarität des DCT-Koeffizienten positiv oder negativ ist, auf Eins oder auf Null. Wenn die Polaritätsprüfschaltung feststellt, daß die Polarität des DCT-Koeffizienten positiv ist, öffnet das Ausgangssignal der Polaritätsprüfschaltung das fünfte UND-Glied 84 und schließt das sechste UND-Glied 85. Dieses führt das Ausgangssignal des -1-Subtrahierers 82, d. h. den DCT-Koeffizienten, von dem 1 subtrahiert wurde, über das fünfte UND-Glied 84 und das ODER-Glied 86 dem vierten UND- Glied 65 zu.
- Wenn die Polaritätsprüfschaltung 81 hingegen feststellt, daß die Polarität des DCT-Koeffizienten negativ oder Null ist, schließt das Ausgangssignal der Polaritätsprüfschaltung das fünfte UND-Glied 84 und öffnet das sechste UND-Glied 85. Dadurch wird das Ausgangssignal des +1-Addierers 83, d. h. der DCT-Koeffizient, zu dem 1 addiert wurde, über das sechste UND-Glied 85 und das ODER-Glied 86 dem vierten UND-Glied 65 zugeführt.
- Das vierte UND-Glied 65 liefert den paritäts-invertierten, magnitudenreduzierten DCT-Koeffizienten aus der Magnitudenreduzierschaltung 80 als Reaktion auf das Verarbeitungsanforderungssignal REQ1 an das zweite UND-Glied 68. Wenn der Komparator 62 feststellt, daß der auf dem Pfad RDATA empfangene DCT-Koeffizient derjenige DCT-Koeffizient ist, dessen Parität invertiert werden kann, wird der magnitudenreduzierte, polaritäts-invertierte DCT-Koeffizient aus der Magnitudenreduzierschaltung 80 der IDCT-Schaltung 15 (Fig. 10A) zugeführt, wie dies oben anhand von Fig. 11 beschrieben wurde. Wenn hingegen kein Verarbeitungsanforderungssignal REQ1 empfangen wird, wird in dem in Fig. 15 dargestellten dritten Ausführungsbeispiel des Paritätsinverters der DCT-Koeffizient, dessen Parität invertiert werden kann, unverändert der IDCT-Schaltung 15 zugeführt.
- Wenn die Summe der DCT-Koeffizienten ungeradzahlig gemacht werden soll, wird bei dem in Fig. 15 dargestellten dritten Ausführungsbeispiel des Paritätsinverters 28 der IDCT-Schaltung derjenige DCT-Koeffizient zugeführt, dessen Parität durch Subtrahieren von 1 invertiert wurde, wenn seine Polarität positiv ist, hingegen derjenige DCT-Koeffizient, dessen Parität durch Addieren von 1 invertiert wurde, wenn seine Polarität Null oder negativ ist. Dadurch wird die Polarität des DCT-Koeffizienten, dessen Parität invertiert werden soll, invertiert und seine Magnitude reduziert, und die Summe der DCT-Koeffizienten wird ungeradzahlig gemacht.
- Anhand von Fig. 16 und 17 wird ein viertes Ausführungsbeispiel des Paritätsinverters 28 beschrieben.
- Wenn der Paritätsinverter nach dem vierten Ausführungsbeispiel das Verarbeitungsanforderungssignal REQ1 empfängt, macht er die Summe der DCT-Koeffizienten in dem Block ungeradzahlig, indem er denjenigen DCT-Koeffizienten, dessen Parität invertiert werden soll, durch den DCT-Koeffizienten ersetzt, dessen Parität invertiert werden soll und zu dem 1 addiert wurde, wenn das Vorzeichen des DCT-Koeffizienten positiv ist, hingegen durch denjenigen, von dem 1 subtrahiert wurde, wenn das Vorzeichen des DCT-Koeffizienten negativ ist. Dadurch wird nicht nur die Parität des DCT-Koeffizienten invertiert, dessen Parität invertiert werden soll, sondern auch die Magnitude dieses DCT-Koeffizienten vergrößert, d. h. der DCT-Koeffizient, dessen Parität invertiert werden soll, weiter von Null weggerückt. Die Verarbeitung des OCT-Koeffizienten, dessen Parität invertiert werden soll, ist durch die folgende Gleichung definiert.
- (16) if(rec > 0)
- rec = rec + 1
- if(rec < 0)
- rec = rec - 1
- worin rec der DCT-Koeffizient ist, dessen Parität invertiert werden soll.
- Das vierte Ausführungsbeispiel des Paritätsinverters 28 kann durch einen Computer oder einen digitalen Signalprozessor implementiert werden, der nach dem Flußdiagramm von Fig. 16 arbeitet. In dem Schritt S1 prüft der Paritätsinverter 28 aus der Adresse EOB adrs, ob der DCT-Koeffizient derjenige DCT-Koeffizient ist, dessen Parität invertiert werden kann. Der Paritätsinverter prüft z. B., ob der DCT-Koeffizient der letzte von Null verschiedene DCT- Koeffizient ist. Wenn das Ergebnis in dem Schritt S1 JA lautet und der DCT-Koeffizient derjenige DCT-Koeffizient ist, dessen Parität invertiert werden kann, geht die Verarbeitung weiter zu dem Schritt S2. Andernfalls, d. h. wenn der DCT-Koeffizient nicht derjenige DCT-Koeffizient ist, dessen Parität invertiert werden kann, geht die Verarbeitung weiter zu dem Schritt S8.
- In dem Schritt S2 prüft der Paritätsinverter 28 ob das Verarbeitungsanforderungssignal REQ1 empfangen wurde. Wenn das Ergebnis in dem Schritt S2 JA lautet und damit anzeigt, daß das Verarbeitungsanforderungssignal REQ1 empfangen wurde, geht die Verarbeitung weiter zu dem Schritt S3. Andernfalls wurde keine Verarbeitungsanforderung empfangen, und die Verarbeitung geht weiter zu dem Schritt S8. Da ein JA-Ergebnis in dem Schritt S2 nur dann auftreten kann, wenn in dem Schritt S1 ein JA-Ergebnis aufgetreten ist, zeigt das JA-Ergebnis in dem Schritt S2 an, daß der DCT-Koeffizient derjenige DCT-Koeffizient ist, dessen Parität invertiert werden soll.
- In dem Schritt S3 prüft der Paritätsinverter 28 die Polarität des DCT-Koeffizienten. Wenn das Ergebnis in dem Schritt S3 JA lautet und anzeigt, daß die Polarität des DCT-Koeffizienten positiv ist, geht die Verarbeitung weiter zu dem Schritt S4. Andernfalls ist die Polarität des DCT-Koeffizienten Null oder negativ, und die Verarbeitung geht weiter zu dem Schritt 56.
- In dem Schritt S4 addiert der Paritätsinverter 28 den Wert 1 zu dem DCT-Koeffizienten. Danach geht die Verarbeitung weiter zu dem Schritt S5, in welchem der paritäts-invertierte DCT-Koeffizient der IDCT-Schaltung 15 (Fig. 10A) zugeführt wird. Die Verarbeitung kehrt dann zu dem Schritt S1 zurück, in welchem der nächste DCT-Koeffizient verarbeitet wird.
- Andernfalls subtrahiert der Paritätsinverter 28 in dem Schritt S6 den Wert 1 von dem DCT- Koeffizienten (d. h. er addiert -1). Danach geht die Verarbeitung weiter zu dem Schritt S7, in welchem der paritäts-invertierte DCT-Koeffizient der IDCT-Schaltung 15 zugeführt wird. Die Verarbeitung kehrt dann zu dem Schritt S1 zurück, in welchem der nächste DCT-Koeffizient verarbeitet wird.
- Die Verarbeitung geht zu dem Schritt S8, wenn der DCT-Koeffizient nicht derjenige DCT-Koeffizient ist, dessen Parität invertiert werden kann, oder wenn die Parität des DCT-Koeffizienten, dessen Parität invertiert werden kann, nicht invertiert werden soll, d. h. wenn das Verarbeitungsanforderungssignal REQ1 nicht empfangen wurde. In dem Schritt S8 wird der DCT-Koeffizient unverändert der IDCT-Schaltung 15 zugeführt. Die Verarbeitung kehrt dann zu dem Schritt S1 zurück, in welchem der nächste DCT-Koeffizient verarbeitet wird.
- Fig. 17 zeigt ein praktisches Beispiel für die Schaltungskonfiguration des vierten Ausführungsbeispiels des Paritätsinverters 28, in welchem die Paritätsinvertierung durchgeführt wird, um die Magnitude des DCT-Koeffizienten, dessen Parität invertiert wird, zu vergrößern, d. h. den DCT-Koeffizienten, dessen Parität invertiert werden soll, weiter von Null wegzurücken.
- Der in Fig. 17 dargestellte Paritätsinverter gleicht dem Paritätsinverter 28 von Fig. 11. Diejenigen Elemente in der Schaltung von Fig. 17, die Elementen in der Schaltung von Fig. 11 entsprechen, sind mit den gleichen Bezugszeichen versehen wie dort und werden nicht erneut beschrieben. Der Paritätsinverter von Fig. 17 unterscheidet sich von dem in Fig. 11 dargestellten Paritätsinverter darin, daß er anstelle des LSB-Inverters 63 die Magnitudenvergrößerungsschaltung 90 enthält.
- Die Magnitudenvergrößerungsschaltung 90 bestimmt die Polarität jedes DCT-Koeffizienten, der über den Pfad RDATA aus dem ersten Speicher 26 oder dem zweiten Speicher 27 empfangen wird. Wenn die Polarität des DCT-Koeffizienten positiv ist, addiert die Magnitudenvergrößerungsschaltung 1 zu dem DCT-Koeffizienten, während sie von dem DCT-Koeffizienten 1 subtrahiert, wenn die Polarität des DCT-Koeffizienten Null oder negativ ist. Der Paritätsinverter von Fig. 17 macht die Summe der DCT-Koeffizienten in dem Block ungeradzahlig, indem er denjenigen DCT-Koeffizienten aus der Magnitudenvergrößerungsschaltung auswählt, dessen Parität invertiert werden soll, und den DCT-Koeffizienten, dessen Parität invertiert werden soll, durch den magnitude-vergrößerten DCT-Koeffizienten ersetzt.
- Die Magnitudenvergrößerungsschaltung 90 enthält die Polaritätsprüfschaltung 91, die das fünfte UND-Glied 94 direkt und das sechste UND-Glied 95 über den Inverter 97 steuert. Die Magnitudenvergrößerungsschaltung 90 enthält ferner den +1-Addierer 92 und den -1-Sub trahierer 93, die zu jedem DCT-Koeffizienten 1 addieren bzw. 1 von ihm subtrahieren. In Abhängigkeit von dem Ausgangssignal der Polaritätsprüfschaltung 91 wird von dem fünften UND-Glied 94 oder dem sechsten UND-Glied 95 entweder das Ausgangssignal des + 1-Addierers 92 oder das Ausgangssignal des -1-Subtrahierers 93 ausgewählt. Die Ausgangssignale der UND-Glieder 94 und 95 werden dem ODER-Glied 96 zugeführt, das den ausgewählten, magnituden-vergrößerten DCT-Koeffizienten dem vierten UND-Glied 65 zuführt. Wenn die Parität der Summe der DCT-Koeffizienten in dem Block invertiert werden soll, wählt das vierte UND-Glied das paritäts-invertierte, magnituden-vergrößerte Ausgangssignal der Magnitudenvergrößerungsschaltung 90 aus und führt dieses anstelle des DCT-Koeffizienten, dessen Parität invertiert werden kann, der IDCT-Schaltung 15 zu.
- Die Polaritätsprüfschaltung 91 prüft die Polarität jedes DCT-Koeffizienten in dem Block von DCT-Koeffizienten, die auf dem Pfad RDATA empfangen werden und setzt den Zustand seines Ausgangssignals in Abhängigkeit davon, ob die Polarität des DCT-Koeffizienten positiv oder negativ ist, entweder auf Eins oder auf Null. Wenn die Polaritätsprüfschaltung feststellt, daß die Polarität des DCT-Koeffizienten positiv ist, öffnet das Ausgangssignal der Polaritätsprüfschaltung das fünfte UND-Glied 94 und schließt das sechste UND-Glied 95. Dieses liefert das Ausgangssignal des +1-Addierers 91, d. h. den DCT-Koeffizienten, zu dem 1 addiert wurde, über das fünfte UND-Glied 94 und das ODER-Glied 96 an das vierte UND- Glied 65.
- Wenn die Polaritätsprüfschaltung 91 hingegen feststellt, daß die Polarität des DCT-Koeffizienten negativ oder Null ist, schließt das Ausgangssignal der Polaritätsprüfschaltung das fünfte UND-Glied 94 und öffnet das sechste UND-Glied 95. Dadurch wird das Ausgangssignal des -1-Subtrahierers 93, d. h. der DCT-Koeffizient, von dem 1 subtrahiert wurde, über das sechste UND-Glied 95 und das ODER-Glied 96 dem vierten UND-Glied 65 zugeführt.
- Das vierte UND-Glied 65 liefert den paritäts-invertierten, magnituden-vergrößerten DCT- Koeffizienten aus der Magnitudenvergrößerungsschaltung 90 als Reaktion auf das Verarbeitungsanforderungssignal REQ1 an das zweite UND-Glied 68. Wenn der Komparator 62 feststellt, daß der auf dem Pfad RDATA empfangene DCT-Koeffizient derjenige DCT-Koeffizient ist, dessen Parität invertiert werden kann, wird der DCT-Koeffizient aus der Magnitudenvergrößerungsschaltung der IDCT-Schaltung 15 (Fig. 10A) zugeführt, wie dies oben anhand von Fig. 11 beschrieben wurde.
- Wenn der Paritätsinverter des in Fig. 17 dargestellten vierten Ausführungsbeispiels hingegen kein Verarbeitungsanforderungssignal REQ1 empfängt, wird der DCT-Koeffizient, dessen Parität invertiert werden kann, unverändert der IDCT-Schaltung 15 zugeführt.
- Wenn die Summe der DCT-Koeffizienten ungeradzahlig gemacht werden soll, führt das in Fig. 17 dargestellte vierte Ausführungsbeispiel des Paritätsinverters 28 der IDCT-Schaltung 15 den DCT-Koeffizienten zu, dessen Parität durch Addieren von 1 invertiert wurde, wenn seine Polarität positiv ist. Sie führt der IDCT-Schaltung 15 hingegen den DCT-Koeffizienten zu, dessen Parität durch Subtrahieren von 1 invertiert wurde, wenn seine Polarität Null oder negativ ist. Dadurch wird die Parität des DCT-Koeffizienten, dessen Parität invertiert werden kann, invertiert und seine Magnitude vergrößert und die Summe der DCT-Koeffizienten ungeradzahlig gemacht.
- Die Paritätsinverter 28 von Fig. 11, 13, 15 und 17 und die in den Flußdiagrammen von Fig. 9, 12, 14 und 16 dargestellte Operationsfolge kann modifiziert werden, um die Summe der DCT-Koeffizienten ungeradzahlig zu machen, indem die Parität eines anderen DCT-Koeffizienten geändert wird als die des letzten von Null verschiedenen DCT-Koeffizienten, der in der Zickzack-Abtastfolge ausgelesen wird. Bei einer zweidimensionalen 8 · 8-DCT-Transformation kann z. B. die Parität eines der DCT-Koeffizienten der Gleichkomponente, des DCT- Koeffizienten der (7, 7)-Komponente, d. h. die Komponente der höchsten Frequenz, des DCT-Koeffizienten der (7, 0)-Komponente in der rechten oberen Ecke oder des DCT-Koeffizienten der (0, 7)-Komponente in der linken unteren Ecke geändert werden. Da insbesondere der DCT-Koeffizient der (7, 7)-Komponente, die die Komponente mit der höchsten Frequenz ist, nur geringen Einfluß auf die Bildqualität hat, eignet sich diese Komponente besonders zur Paritätsänderung.
- In den Paritätsinvertern von Fig. 11, 13, 15 und 17 können als DCT-Koeffizienten, deren Parität geändert werden kann, andere DCT-Koeffizienten ausgewählt werden, indem deren Adresse für die dem Komparator 62 zugeführte Adresse EOB adrs substituiert wird. Falls die Parität des DCT-Koeffizienten der Komponente mit der höchsten Frequenz geändert werden soll, können alternativ auch der Lesezähler 61 und der Komparator 62 entfallen, und das Speicher-Voll-Signal FULL kann dazu benutzt werden, als DCT-Koeffizienten, dessen Parität invertiert werden kann, den DCT-Koeffizienten der Komponente mit der höchsten Frequenz zu identifizieren.
- In einer weiteren Variante kann die in Fig. 6, 8 und 10 dargestellte Summen-Oddifizierschaltung 14 die Summe von spezifischen DCT-Koeffizienten bestimmen, z. B. der DCT-Koeffizienten der (0, 0)-Komponente, der (4, 0)-Komponente, der (0, 4)-Komponente und der (4, 4)- Komponente. Die Summen-Oddifizierschaltung führt dann eine Paritätsinvertierung durch, um die Summe der spezifischen DCT-Koeffizienten ungeradzahlig zu machen. Fig. 18 zeigt eine Variante der Summen-Oddifizierschaltung 14 von Fig. 8. In dieser wird die Summe der spezifischen DCT-Koeffizienten bestimmt, um zu prüfen, ob eine Paritätsinvertierung notwendig ist. Elemente in der Schaltung von Fig. 18, die Elementen der Schaltung von Fig. 8 entsprechen, sind mit den gleichen Bezugszeichen versehen wie dort und werden nicht erneut beschrieben.
- In der Summen-Oddifizierschaltung von Fig. 18 unterbricht der Wähler 51 die Leitung zwischen dem inversen Quantisierer 13 und dem Akkumulator 23A. Der Wähler 51 empfängt aus dem Zähler 20 den Zählwert coeff adrs, die die Zahl der DCT-Koeffizienten in dem Block angibt, die von dem inversen Quantisierer 13 empfangen wurden.
- In Abhängigkeit von dem aus dem Zähler 20 empfangenen Zählwert coeff adrs prüft der Wähler 51 für jeden aus dem inversen Quantisierer 13 empfangenen DCT-Koeffizienten, ob er einer der spezifischen DCT-Koeffizienten ist und deshalb in die von dem Akkumulator 23A bestimmte Summe einzubeziehen ist. So prüft der Wähler z. B., ob der Zählwert coeff adrs ein Wert ist, der der (0, 0)-Komponente, der (4, 0)-Komponente, der (0, 4)-Komponente oder der (4, 4)-Komponente entspricht. Wenn der Wähler 51 feststellt, daß der DCT-Koeffizient einer der spezifischen DCT-Koeffizienten ist, liefert er ihn an den Akkumulator 23A. Die Summen-Oddifizierschaltung von Fig. 18 bestimmt also die Summe der spezifischen DCT- Koeffizienten in dem Block, und wenn die Parität der Summe geradzahlig ist, ändert sie die Parität wenigstens eines der DCT-Koeffizienten, um die Summe ungeradzahlig zu machen. Die Summen-Oddifizierschaltung von Fig. 18 liefert dann den Block von paritäts-justierten DCT-Koeffizienten an die IDCT-Schaltung 15.
- Die in Fig. 18 dargestellte Schaltung kann ähnlich modifiziert werden wie die Schaltung von Fig. 10A, so daß sie die exklusive logische Summe der LSBs der spezifischen OCT-Koeffizienten bestimmen kann. Die Schaltung von Fig. 18 wird dadurch modifiziert, daß der Addierer 23 durch den LSB-Detektor 29 und das Exklusiv-ODER-Glied 30 von Fig. 10A ersetzt wird.
- Es sei noch einmal auf Fig. 6 Bezug genommen. Die DCT-Koeffizienten in dem Block von DCT-Koeffizienten werden, wie oben beschrieben, von der Summen-Oddifizierschaltung 14 der IDCT-Schaltung 15 zugeführt. Die Summe der DCT-Koeffizienten aus der Summen-Oddifizierschaltung ist eine ungerade Zahl. Falls die Summe der DCT-Koeffizienten aus dem inversen Quantisierer eine gerade Zahl war, ändert die Summen-Oddifizierschaltung 14 die Parität wenigstens eines der DCT-Koeffizienten, um die der IDCT-Schaltung 15 zugeführte Summe der DCT-Koeffizienten ungeradzahlig zu machen. Die IDCT-Schaltung 15 unterzieht die DCT-Koeffizienten in dem Block einer IDCT-Verarbeitung und liefert den zurückgewonnenen Differenzblock S4. Der zurückgewonnene Differenzblock wird dem Addierer 16 zugeführt.
- Der Addierer 16 addiert Pixel für Pixel den wiederhergestellten Differenzblock S4 und den aus der zweiten Bildspeichergruppe 4 empfangenen Vergleichsblock S2. Der resultierende rekonstruierte Bildblock S5 wird der Bildspeichergruppe 4 zugeführt, in der er einen Block des rekonstruierten Bilds bildet, das in einem der Bildspeicher gespeichert ist, der von der Speichersteuerung 3 identifiziert wird.
- Der variable Längencodierer 17 unterzieht jeden Block von quantisierten DCT-Koeffizienten SC aus dem Differenzblockcodierer 9 und seinen Bewegungsvektor MV, seinen Bewegungskompensationsmodus mm, die Quantisierungstabellendaten usw. einer variablen Längencodierung, z. B. einer Huffman-Codierung, usw.. Der variable Längencodierer verknüpft auch die mit variabler Länge codierten Daten mit den Startcodes und der Header-Information der betreffenden Schichten des MPEG-Standards, um das komprimierte Bewegtbildsignal zu bilden.
- Der Slice/Makroblock-Zähler 5 zählt die Slice-Startsignale 55 und die Makroblock-Startsignale BS, die von der Speichersteuerung 3 synchron mit dem Start jedes Slice und jedes Makroblocks der Bilder erzeugt werden, die aus der ersten Bildspeichergruppe 2 für die Verarbeitung ausgelesen werden. Wenn sein Zählwert einen vorbestimmten Wert erreicht, erzeugt der Slice/Makroblock-Zähler 5 das Startsignal 50, das dem variablen Längencodierer 17 zugeführt wird.
- In Abhängigkeit von dem Startsignal liefert der variable Längencodierer 17 das komprimierte Bewegtbildsignal an den Ausgangspuffer 19, in dem es temporär gespeichert wird. Das komprimierte Bewegtbildsignal wird dann aus dem Ausgangspuffer als Bitstrom mit einer vorbestimmten Bitrate ausgelesen. Der Bitstrom des komprimierten Bewegtbildsignals wird über einen Übertragungsweg einem komplementären Expander zugeführt oder auf einem geeigneten Aufzeichnungsmedium, wie einer optischen Platte, aufgezeichnet.
- Das Aufzeichnungsmedium ist ein Aufzeichnungsmedium, auf dem das komprimierte Bewegtbildsignal aufgezeichnet wird, das aus dem Bewegtbildsignal durch Prädiktionscodierung und diskrete Cosinustransformation abgeleitet wird. Jeder Block jedes rekonstruierten Bildes, das als Referenzbild bei der Prädiktionscodierung benutzt wird, wird dadurch rekonstruiert, daß ein Block der quantisierten DCT-Koeffizienten, der in dem komprimierten Bewegtbildsignal enthalten ist, invers quantisiert wird, die Summe der DCT-Koeffizienten in dem resultierenden Block von DCT-Koeffizienten ungeradzahlig gemacht wird und der in der Summe ungeradzahlig gemachte Block von DCT-Koeffizienten invers orthogonal transformiert wird.
- Ein Übertragungsgerät gemäß der Erfindung kann einen Komprimierer gemäß der Erfindung enthalten, wie er oben beschrieben wurde.
- Man könnte denken, daß es besser wäre, das Ungeradzahligmachen der Summe in dem Differenzblockcodierer 9 des Komprimierers durchzuführen. Das Ungeradzahligmachen der Summe würde dazu führen, daß die Summe der DCT-Koeffizienten in jedem Block von quantisierten DCT-Koeffizienten in dem komprimierten Bewegtbildsignal eine ungerade Zahl wäre. Man könnte denken, daß eine solche Verarbeitung des komprimierten Bewegtbildsignal es erübrigen würde, die Summe der DCT-Koeffizienten in dem Expandierer ungeradzahlig zu machen. Nachdem die DCT-Koeffizienten in dem Komprimierer quantisiert und in dem Expandierer invers quantisiert wurden, kann jedoch mit einer solchen Anordnung die Summe der DCT-Koeffizienten, die der IDCT-Schaltung in dem Expandierer zugeführt werden, keine ungerade Zahl mehr sein. Deshalb muß das Ungeradzahligmachen der Summe vor der IDCT-Verarbeitung in dem Expandierer erfolgen, um sicherzustellen, daß kein Abgleichfehler auftritt.
- Im folgenden wird anhand von Fig. 19 ein Expandierer für komprimierte Bewegtbildsignale beschrieben, bei dem die Erfindung, so wie sie in den anliegenden Ansprüchen definiert ist, angewendet wird. In Fig. 19 wird das komprimierte Bewegtbildsignal als Bitstrom über eine Übertragungsleitung aus dem Komprimierer oder durch Wiedergabe des komprimierten Bewegtbildsignals von einem geeigneten Aufzeichnungsmedium, wie einer optischen Platte, empfangen. Der Bitstrom wird dem Eingangspuffer 31 zugeführt, in welchem er temporär gespeichert und aus dem er Bild für Bild in einen inversen variablen Längencodierer (den "IVLC") 32 ausgelesen wird. Der inverse variable Längencodierer 32 extrahiert aus dem komprimierten Bewegtbildsignal die Header-Information der betreffenden Schichten der MPEG-Codierung und extrahiert aus der Header-Information die Bilddecodiersteuerinformation PH, die er der Speichersteuerung 33 zuführt.
- Der IVLC 32 unterzieht die Blöcke der mit variabler Länge codierten DCT-Koeffizienten einer inversen variablen Längencodierung und liefert Blöcke von quantisierten DCT-Koeffizienten, einschließlich des laufenden Blocks von quantisierten DCT-Koeffizienten Cb. Der Block von quantisierten DCT-Koeffizienten Cb wird dem Differenzblockdecodierer 34 zugeführt. Der Differenzblockdecodierer 34 decodiert den Block von quantisierten DCT-Koeffizienten Cb und bildet den restaurierten Differenzblock BS, den er dem Addierer 39 zuführt.
- Der IVLC 32 extrahiert aus dem komprimierten Bewegtbildsignal den Bewegungsvektor MV und den Bewegungskompensationsmodus mm für den Block von quantisierten DCT-Koeffizienten Cb und liefert sie an den Bewegungskompensator 37. Der Bewegungskompensator 37 veranlaßt, daß ein Vergleichsblock für den restaurierten Differenzblock BS aus der Bildspeichergruppe 38 ausgelesen wird.
- Der Bildspeicherblock enthält mehrere Bildspeicher, die jeweils ein bereits rekonstruiertes Bild speichern. Der Vergleichsblock BS ist ein Block des rekonstruierten Bilds, das in einem der Bildspeicher an einer durch den Bewegungsvektor MV spezifizierten Adresse gespeichert ist. Der Bildspeicher in der Bildspeichergruppe 38, der das rekonstruierte Bild speichert, aus dem der Vergleichsblock ausgelesen wird, wird von der Speichersteuerung 33 identifiziert.
- Wie oben erwähnt wurde, kann ein Bild durch Prädiktion aus einem früheren rekonstruierten Bild, durch Prädiktion aus einem nachfolgenden rekonstruierten Bild und durch Prädiktion aus einem Block codiert werden, der durch eine lineare Operation Pixel für Pixel an einem früher rekonstruierten Bild und einem nachfolgenden rekonstruierten Bild gewonnen wird. Schließlich kann ein Bild auch ohne Prädiktion codiert werden. In diesem Fall ist der von der Bildspeichergruppe 38 gelieferte Vergleichsblock ein Null-Block, d. h. ein Block, in dem alle Pixelwerte auf Null gesetzt sind. Die von der Bildspeichergruppe 38 gelieferten bewegungskompensierten Vergleichsblöcke werden adaptiv modifiziert, und für jeden Block wird das optimale Exemplar ausgewählt. Dieser Prozeß wird an einem Block mit der Blockgröße von 16 · 16 Pixeln durchgeführt.
- Jeder Vergleichsblock, der von der Bildspeichergruppe 38 geliefert wird, wird dem Addierer 39 zugeführt. Der Addierer 39 führt eine Addition Pixel für Pixel zwischen dem aus dem Differenzblockdecodierer 34 empfangenen restaurierten Differenzblock BS und dem von der Bildspeichergruppe 38 gelieferten Vergleichsblock durch. Das Ergebnis dieser Addition ist ein rekonstruierter Bildblock, der in dem von der Speichersteuerung 33 identifizierten Bildspeicher in der Bildspeichergruppe 38 gespeichert wird. Die von dem Addierer 39 rekonstruierten Bildblöcke werden einzeln nacheinander in dem ausgewählten Bildspeicher gespeichert, wobei das zuvor in dem Bildspeicher gespeicherte rekonstruierte Bild überschrieben wird, um ein neues rekonstruiertes Bild zu erzeugen.
- Die in der Bildspeichergruppe 38 gespeicherten rekonstruierten Bilder werden in einer Folge ausgelesen, die durch ein von der Speichersteuerung 33 geliefertes Ausgangsbild-Anzeigesignal gesteuert wird. Die ausgelesenen Bilder werden als reproduziertes Bewegtbildsignal einer geeigneten Bildanzeigevorrichtung, z. B. einem Videomonitor, zugeführt. Die Bildanzeigevorrichtung zeigt ein Bewegtbild an, das dem reproduzierten Bewegtbildsignal entspricht.
- Im folgenden wird der Differenzblockdecodierer 34 anhand von Fig. 19 beschrieben. Der Differenzblockdecodierer 34 umfaßt den inversen Quantisierer 40, die Summen-Oddifizier schaltung 35 und die Schaltung 36 zur inversen diskreten Cosinustransformation. Der inverse Quantisierer 40 benutzt eine Quantisierungstabelle für die inverse Quantisierung des Blocks aus quantisierten Transformationskoeffizienten Cb, der aus dem inversen variablen Längencoodierer 32 empfangen wird. Die Summen-Oddifizierschaltung 35 nimmt den resultierenden Block von DCT-Koeffizienten aus dem inversen Quantisierer 40 auf und verhindert das Auftreten von Abgleichfehlern bei der IDCT-Verarbeitung in der IDCT-Schaltung 36. Die IDCT-Schaltung 36 unterzieht den Block von DCT-Koeffizienten, dessen Summe von der Summen-Oddifizierschaltung 35 ungeradzahlig gemacht wurde, einer IDCT-Verarbeitung.
- Fig. 20 zeigt ein Beispiel für den Aufbau des inversen Quantisierers 40. Die Hauptkomponenten des inversen Quantisierers 40 sind der Lauflängen/Pegel-Decodierer 41, der Adressenzähler 47, der Adressenwandler 48, der Wähler 49, der erste Blockspeicher 42, der zweite Blockspeicher 43 und die inverse Quantisierungsschaltung 46.
- Der Lauflängen/Pegel-Decodierer 41 empfängt den Block von quantisierten DCT-Koeffizienten Cb aus dem inversen variablen Längencodierer 32. Der Lauflängen/Pegel-Decodierer decodiert die Lauflängen/Pegel-Codierung, der die quantisierten DCT-Koeffizienten in dem variablen Längencodierer des Komprimierers unterzogen wurden. Der resultierende Block von quantisierten DCT-Koeffizienten wird in einer Zickzack-Abtastfolge dem ersten Blockspeicher 42 oder dem zweiten Blockspeicher 43 zugeführt. Der erste Blockspeicher 42 und der zweite Blockspeicher 43 speichern jeweils einen Block von quantisierten DCT-Koeffizienten.
- Der Adressenzähler 47 und der Adressenwandler 48 erzeugen Schreibadressen bzw. Leseadressen für den ersten Blockspeicher 42 und den zweiten Blockspeicher 43. Blöcke von quantisierten DCT-Koeffizienten werden abwechselnd in den ersten Blockspeicher und den zweiten Blockspeicher eingeschrieben und aus ihnen ausgelesen. Jeder Block von quantisierten DCT-Koeffizienten wird in einem der Blockspeicher in Abhängigkeit von den, von dem Adressenzähler 47 gelieferten Adressen in Zickzack-Abtastfolge eingeschrieben und aus dem Blockspeicher in Abhängigkeit von den von dem Adressenwandler 48 gelieferten Adressen in Raster-Abtastfolge ausgelesen. Die unterschiedliche Folge der Adressen zwischen Schreiben und Lesen wandelt die Folge der quantisierten DCT-Koeffizienten in dem Block aus der Zickzack-Abtastfolge in die Raster-Abtastfolge um.
- Der Adressenzähler 47 erzeugt die Schreibadressen in Zickzack-Abtastfolge. Der Adressenwandler 48 nimmt die Adressen in Zickzack-Abtastfolge aus dem Adressenzähler auf und benutzt eine Adressenumwandlungtabelle für die Umwandlung der Adressen in Adressen einer Raster-Abtastfolge. Die von dem Adressenzähler 47 und dem Adressenwandler 48 erzeugten Adressen werden von dem Wähler 49 ausgewählt, der sie als Adressen adrs1 und adrs2 dem ersten Blockspeicher 42 und dem zweiten Blockspeicher 43 zuführt. Wenn ein Block aus quantisierten DCT-Koeffizienten aus dem Lauflängen/Pegel-Decodierer 41 in den ersten Blockspeicher 42 oder in den zweiten Blockspeicher 43 eingeschrieben wird, werden die betreffenden Adressen adrs1 und adrs2 von dem Adressenzähler 47 über den Wähler 49 in Zickzack-Abtastfolge geliefert. Wenn der Block von quantisierten DCT-Koeffizienten aus dem ersten Blockspeicher 42 oder dem zweiten Blockspeicher 43 in den inversen Quantisierer 46 ausgelesen wird, werden die betreffenden Adressen adrs1 und adrs2 von dem Adressenwandler 48 über den Wähler 49 in Raster-Abtastfolge geliefert.
- Wenn alle quantisierten DCT-Koeffizienten in dem Block in dem ersten Blockspeicher 42 oder in dem zweiten Blockspeicher 43 gespeichert wurden wird der Block von DCT-Koeffizienten in Raster-Abtastfolge in den inversen Quantisierer 46 ausgelesen. Der inverse Quantisierer 46 unterzieht die quantisierten DCT-Koeffizienten in dem Block einer inversen Quantisierung und liefert den resultierenden Block von DCT-Koeffizienten an die Summen-Oddifizierschaltung 35. Die von dem inversen Quantisierer 46 durchgeführte inverse Quantisierung ist die gleiche wie die inverse Quantisierung, die der inverse Quantisierer 13 in dem lokalen Decodierer des in Fig. 6 dargestellten Bewegtbildsignalkomprimierer vornimmt.
- Wenn die Summen-Oddifizierschaltung 35 feststellt, daß die Parität der Summe der DCT- Koeffizienten in dem Block von DCT-Koeffizienten aus dem inversen Quantisierer 40 geradzahlig ist, wirkt sie auf wenigstens einen DCT-Koeffizienten in dem Block ein, um die Summe der DCT-Koeffizienten in dem Block ungeradzahlig zu machen. Die Summen-Oddifizierschaltung 35 liefert den Block der in der Summe ungeradzahlig gemachten DCT-Koeffizienten an die IDCT-Schaltung 36. Das Ungeradzahligmachen in der Summen-Oddifizierschaltung 35 erfolgt in der gleichen Weise wie in der Summen-Oddifizierschaltung 14 des lokalen Decodierers in dem in Fig. 6 dargestellten Bewegtbildsignalkomprimierer.
- Die IDCT-Schaltung 36 unterzieht den Block von DCT-Koeffizienten mit ungeradzahlig gemachter Summe der IDCT-Verarbeitung und liefert den restaurierten Differenzblock BS, der dem Addierer 39 zugeführt wird.
- Die praktische Arbeitsweise des inversen Quantisierers von Fig. 20 wird durch das in Fig. 21A bis 211 dargestellte Zeitdiagramm veranschaulicht. Der inverse variable Längencodierer 32 extrahiert den Block von quantisierten DCT-Koeffizienten Cb aus dem komprimierten Bewegtbildsignal. Der inverse variable Längencodierer erzeugt das in Fig. 21A dargestellte Ereignis-(Event)-Aktivierungssignal EV EN, das den Lauflängen/Pegel-Decodierer 41 veranlaßt, den Block von quantisierten DCT-Koeffizienten auszulesen. Die quantisierten DCT-Koeffizienten in dem Block von quantisierten DCT-Koeffizienten Cb werden Lauflängen/Pegel-codiert.
- Der IVLC 32 liefert auch das Eventzahlsignal EVENT NO an den Lauflängen/Pegel-Decodierer 41, das in Fig. 21 B dargestellt ist. Das Eventzahlsignal zeigt die Zahl der Lauflängen/Pegel-Paare in dem Block von quantisierten DCT-Koeffizienten Cb an, d. h. die Zahl von Datenpaarungen, die Lauflänge und Pegel angeben.
- Wenn der Lauflängen/Pegel-Decodierer 41 das Eventzahlsignal EVENT NO empfängt, liefert er ein Lese-Anforderungssignal RE REQ für jedes Lauflängen/Pegel-Paar zurück an den inversen variablen Längencodierer 32, wie dies in Fig. 21C dargestellt ist. Der inverse variable Längencodierer 32 liefert jedesmal eine Lauflängen/Pegel-Paarung an den Lauflängen/Pegel- Decodierer 41, wenn er das Lese-Anforderungssignal RE REQ empfängt, wie dies in Fig. 21D und 21E dargestellt ist. Auf diese Weise liefert der IVLC 32 an den Lauflängen/Pegel- Decodierer 41 die Zahl von Lauflängen/Pegel-Paarungen, die der Zahl der von ihm empfangenen Lese-Anforderungssignale entspricht.
- Der Lauflängen/Pegel-Decodierer 41 decodiert die Lauflängen/Pegel-Codierung der Lauflängen/Pegelcodierten quantisierten DCT-Koeffizienten und liefert einen Block von quantisierten DCT-Koeffizienten in Zickzack-Abtastfolge als WDATA an den ersten Blockspeicher 42, wie dies in Fig. 21G dargestellt ist. Gleichzeitig zählt der Adressenzähler 47, wie in Fig. 21 F dargestellt, die quantisierten DCT-Koeffizienten aus dem Lauflängen/Pegel-Decodierer und führt über den Wähler 49 dem ersten Blockspeicher 42 das Adressensignal adrs1 in Zickzack-Abtastfolge zu, das die Schreibadresse der einzelnen quantisierten DCT-Koeffizienten angibt.
- Wenn der Lauflängen/Pegel-Decodierer 41 aus dem inversen variablen Längencodierer 32 den EOB-Code empfängt, der anzeigt, daß er den letzten von Null verschiedenen DCT-Koeffizienten empfangen hat, setzt der Lauflängen/Pegel-Decodierer den dem EOB-Code entsprechenden quantisierten DCT-Koeffizienten und alle folgenden quantisierten DCT-Koeffizienten auf Null und gibt diese Null-DCT-Koeffizienten in den ersten Blockspeicher 42.
- Wenn der Lauflängen/Pegel-Decodierer 41 den EOB-Code empfängt, liefert er das Signal EOB EN an die Positionsregister (POS REG) 44 und 45, wie dies in Fig. 21 H dargestellt ist. Das EOB EN-Signal zeigt den Positionsregistern an, daß der EOB-Code empfangen wurde. Die Positionsregister empfangen auch aus dem Adressenzähler 47 über den Adressenwandler 48 die Adresse jedes quantisierten DCT-Koeffizienten, der dem ersten und dem zweiten Blockspeicher 42 bzw. 43 zugeführt wird. Wenn der Lauflängen/Pegel-Decodierer den EOB- Code empfängt, ist die von dem Adressenzähler 47 erzeugte Adresse die Adresse des letzten von Null verschiedenen Koeffizienten. Das EOB EN-Signal bewirkt, daß die Adresse, EOB POS, des letzten von Null verschiedenen Koeffizienten, die von dem Wandler 48 in eine Raster-Abtastadresse umgewandelt wurde, in das Positionsregister des Blockspeichers eingeschrieben wird, in den gerade der Block von quantisierten DCT-Koeffizienten eingeschrieben wird. Somit speichert eines der Positionsregister 44 und 45 die Adresse des letzten von Null verschiedenen Koeffizienten des Blocks von quantisierten DCT-Koeffizienten.
- Wenn der Lauflängen/Pegel-Decodierer 41 den vollständigen Block von quantisierten DCT- Koeffizienten in den ersten Blockspeicher 42 oder den zweiten Blockspeicher 43 eingegeben hat, liefert der Adressenzähler 47 das Bank-Umschaltsignal BANK an den ersten Blockspeicher 42 und den zweiten Blockspeicher 43. Das BANK-Signal schaltet den Modus der Blockspeicher um, so daß der erste Blockspeicher, der sich vorher im Schreibmodus befand, in den Lesemodus und der zweite Blockspeicher in den Schreibmodus umgeschaltet wird. Wenn der Lauflängen/Pegel-Decodierer 41 den nächsten Block von quantisierten DCT- Koeffizienten decodiert, werden deshalb die resultierenden quantisierten DCT-Koeffizienten in den zweiten Blockspeicher 43 eingeschrieben. Das BANK-Signal schaltet auch den Wähler 49 um, so daß die Adressen, die dem Blockspeicher im Schreibmodus zugeführt werden, die Adressen in Zickzack-Abtastfolge aus dem Adressenzähler 47 sind, und die dem Blockspeicher im Lesemodus zugeführten Adressen die Adressen in Raster-Abtastfolge aus dem Adressenwandler 48 sind.
- Wenn der Lauflängen/Pegel-Decodierer 41 den vollständigen Block von quantisierten DCT- Koeffizienten in den ersten Blockspeicher 42 eingegeben hat, liefert der erste Blockspeicher 42 das Speicher-Voll-Signal FULL1 an den inversen Quantisierer. Das Speicher-Voll-Signal zeigt an, daß alle quantisierten DCT-Koeffizienten in dem Block gespeichert wurden. Wenn der inverse Quantisierer das Speicher-Voll-Signal FULL1 empfängt, sendet er das Lese-Anforderungssignal RD EN an den ersten Blockspeicher 42. Das Lese-Anforderungssignal veranlaßt den ersten Blockspeicher, die in ihm gespeicherten quantisierten DCT-Koeffizienten nach Maßgabe der Adressen adrs1 auszulesen, die der Adressenwandler 48 über den Wähler 49 in Raster-Abtastfolge ausgibt. Deshalb werden die quantisierten DCT-Koeffizienten in dem Block aus dem ersten Blockspeicher 42 ausgelesen. Die nach Maßgabe der einzelnen Adressen ausgelesenen DCT-Koeffizienten werden dem inversen Quantisierer 46 zugeführt.
- Zur gleichen Zeit, in der die quantisierten DCT-Koeffizienten in dem Block aus dem ersten Blockspeicher 42 ausgelesen werden, werden die quantisierten DCT-Koeffizienten in dem nächsten Block in Zickzack-Abtastfolge in den zweiten Blockspeicher 43 nach Maßgabe der Adressen aus dem Adressenzähler 47 eingeschrieben.
- Der inverse Quantisierer 46 unterzieht die quantisierten DCT-Koeffizienten in dem Block von quantisierten DCT-Koeffizienten einer inversen Quantisierung, ähnlich wie der inverse Quantisierer 13 in dem Bewegtbildsignalkomprimierer, der oben anhand von Fig. 6 beschrieben wurde. Der resultierende Block von DCT-Koeffizienten wird der Summen-Oddifizierschaltung 35 zugeführt.
- Wenn die Parität der Summe der DCT-Koeffizienten in dem Block eine gerade Zahl ist, wirkt die Summen-Oddifizierschaltung 35 in der gleichen Weise wie die oben beschriebene Summen-Oddifizierschaltung 14 in dem Bewegtbildsignalkomprimierer auf wenigstens einen der DCT-Koeffizienten in dem Block ein, um die Summe der DCT-Koeffizienten in dem Block ungeradzahlig zu machen. Der resultierende Block von DCT-Koeffizienten mit ungeradzahlig gemachter Summe wird der IDCT-Schaltung 36 zugeführt.
- Die Summen-Oddifizierschaltung 35 kann z. B. auf die Positionsregister 44 und 45 zurückgreifen, um festzustellen, ob der laufende DCT-Koeffizient der letzte von Null verschiedene Koeffizient in Zickzack-Abtastfolge ist, so daß die Summen-Oddifizierschaltung die Parität des letzten von Null verschiedenen DCT-Koeffizienten ändern kann, um dadurch die Summe der DCT-Koeffizienten in dem Block ungeradzahlig zu machen. Alternativ kann die Summen- Oddifizierschaltung 35 auf den DCT-Koeffizienten der Komponente mit der höchsten Frequenz einwirken, um die Summe der DCT-Koeffizienten ungeradzahlig zu machen. Das Invertieren der Parität des DCT-Koeffizienten der Komponente mit der höchsten Frequenz kann besonders vorteilhaft sein, weil die Komponente mit der höchsten Frequenz nur geringen Einfluß auf die Bildqualität hat und es nicht notwendig ist, festzustellen, welcher der DCT-Koeffizienten der letzte von Null verschiedene Koeffizient ist.
- Es muß betont werden, daß die Operationen, durch die die Summen in dem Bewegtbildsignalkomprimierer und in dem Expandierer für komprimierte Bewegtbildsignale miteinander identisch sein müssen, um Abgleichfehler zu vermeiden.
- Fig. 22 zeigt den Aufbau eines zweiten exemplarischen Bewegtbildsignalkomprimierers gemäß der Erfindung, wie sie in den anliegenden Ansprüchen definiert ist. Die Konfiguration der Summen-Oddifizierschaltung 50 in dem Bewegtbildsignalkomprimierer von Fig. 22 ist in Fig. 23 dargestellt. Diejenigen Elemente des zweiten Ausführungsbeispiels des Bewegtbildsignalkomprimierers, die Elementen des ersten Ausführungsbeispiels des Bewegtbildsignalkomprimierers von Fig. 6 entsprechen, sind mit den gleichen Bezugszeichen versehen wie dort und werden nicht erneut beschrieben. Das zweite Ausführungsbeispiel unterscheidet sich von dem ersten Ausführungsbeispiel durch den Aufbau der Summen-Oddifizierschaltung 50.
- In der Summen-Oddifizierschaltung 50, die in Fig. 23 detailliert dargestellt ist, zählt der Zähler 20 die Zahl der aus dem inversen Quantisierer 13 empfangenen DCT-Koeffizienten und liefert den resultierenden Zählwert coeff adrs an die Paritätsprüfschaltung 21.
- Der Akkumulator 23A enthält den Addierer 23 und das Register 24. Der Addierer 23 addiert alle DCT-Koeffizienten in einem Block von DCT-Koeffizienten, die aus dem inversen Quantisierer 13 empfangen werden, zu der Summe der bereits empfangenen DCT-Koeffizienten in dem Block, die in dem Register 24 gespeichert ist. Das Register 24 wird zurückgesetzt, nachdem die Summe für jeden Block von DCT-Koeffizienten bestimmt wurde. Die resultierende Summe der DCT-Koeffizienten wird von dem Addierer 23 dem Register 24 und der Paritätsprüfschaltung 21 zugeführt. Der Akkumulator 23A braucht lediglich die Summe der niedrigstwertigen Bits der DCT-Koeffizienten in dem Block zu summieren, um ein Ergebnis zu erzeugen, durch das die Paritätsprüfschaltung in die Lage versetzt wird, festzustellen, ob die Parität der Summe der DCT-Koeffizienten ungeradzahlig oder geradzahlig ist.
- Die Paritätsprüfschaltung 21 arbeitet in Abhängigkeit von dem aus dem Zähler 20 empfangenen Zählwert coeff adrs folgendermaßen: Wenn der Zählwert anzeigt, daß alle DCT- Koeffizienten in det Block von dem Akkumulator 23A summiert wurden, stellt die Paritätsprüfschaltung 21 fest, ob die Parität der aus dem Akkumulator 23A empfangenen Summe der DCT-Koeffizienten ungeradzahlig oder geradzahlig ist. Im Falle einer zweidimensionalen 8 · 8-DCT-Transformation beispielsweise, stellt die Paritätsprüfschaltung 21 fest, ob die aus dem Akkumulator 23A empfangene Summe der DCT-Koeffizienten ungeradzahlig oder geradzahlig ist, wenn der Zählwert anzeigt, daß die Summe der 64 DCT- Koeffizienten in dem Block bestimmt wurden.
- Wenn die DCT-Koeffizienten durch binäre Zahlen repräsentiert werden, prüft die Paritätsprüfschaltung 21 in der Praxis das niedrigstwertige Bit (LSB) der aus dem Akkumulator 23A empfangenen Summe der DCT-Koeffizienten. Ein LSB mit dem Wert Null zeigt an, daß die Parität der Summe geradzahlig ist. In diesem Fall liefert die Paritätsprüfschaltung 21 das Verarbeitungsanforderungssignal REQ1 an den Paritätinverter 53, um diesen zu veranlassen, eine Paritätsinvertierung durchzuführen. In Abhängigkeit von dem Verarbeitungsanforderungssignal REQ1 ändert der Paritätsinverter 53 die Parität wenigstens eines (d. h. einer ungeraden Zahl) der DCT-Koeffizienten in dem Block, um die Summe der DCT-Koeffizienten ungeradzahlig zu machen. Auf der anderen Seite zeigt ein LSB mit dem Wert 1 an, daß die Parität der Summe ungeradzahlig ist. In diesem Fall liefert die Paritätsprüfschaltung 21 das Verarbeitungsanforderungssignal REQ1 nicht, und der Paritätsinverter 53 läßt die Parität aller DCT-Koeffizienten in dem Block unverändert, weil die Parität der Summe der DCT-Koeffizienten bereits ungeradzahlig ist.
- Der inverse Quantisierer 13 liefert den Block von DCT-Koeffizienten nicht nur an den Akkumulator 23A sondern über die Verzögerungsschaltung 52 auch an den Paritätsinverter 53. Die Verzögerungsschaltung 52 verzögert die DCT-Koeffizienten in dem Block um eine Zeitspanne, die den Verarbeitungszeiten des Akkumulators 23A und der Paritätsprüfschaltung 21 entspricht, so daß der letzte DCT-Koeffizient, d. h. der Koeffizient mit der höchsten Frequenz (z. B. der DCT-Koeffizient der (7, 7)-Komponente bei einer 8 · 8-DCT-Transformation) in dem Paritätsinverter 53 gleichzeitig mit dem Verarbeitungsanforderungssignal REQ1 ankommt.
- So liefert der Paritätsinverter 53 alle DCT-Koeffizienten mit Ausnahme des Koeffizienten mit der höchsten Frequenz unverändert an die IDCT-Schaltung 15. Wenn die Paritätsprüfschaltung 21 das Verarbeitungsanforderungssignal REQ1 nicht erzeugt hat, liefert der Paritätsinverter 53 auch den DCT-Koeffizienten mit der höchsten Frequenz unverändert an die IDCT- Schaltung. Nur wenn die Paritätsprüfschaltung 21 das Verarbeitungsanforderungssignal REQ1 erzeugt hat, invertiert der Paritätsinverter 53 das LSB des DCT-Koeffizienten mit der höchsten Frequenz und führt der IDCT-Schaltung 15 den paritäts-invertierten DCT-Koeffizienten mit der höchsten Frequenz zu.
- Wenn die Paritätsprüfschaltung 21 also feststellt, daß die Parität der Summe der DCT-Koeffizienten in dem Block geradzahlig ist, wirkt der Paritätsinverter 53 auf den DCT-Koeffizienten mit der höchsten Frequenz (z. B. den DCT-Koeffizienten der (7, 7)-Komponente in einer 8 · 8-DCT-Transformation) in dem Block ein. Der Paritätsinverter invertiert die Parität des DCT-Koeffizienten mit der höchsten Frequenz und macht damit die Summe der DCT-Koeffizienten in dem Block von DCT-Koeffizienten, die der IDCT-Schaltung 15 zugeführt werden, ungeradzahlig. Somit ist die Parität der Summe der DCT-Koeffizienten in dem Block von DCT-Koeffizienten immer ungeradzahlig. Der DCT-Koeffizient der (7, 7)-Komponente ist der Koeffizient, der den geringsten Einfluß auf die Ausgangswerte der IDCT hat.
- Im folgenden werden weitere praktische Beispiele der Summen-Oddifizierschaltung 50 des bevorzugten Ausführungsbeispiels der Erfindung beschrieben.
- Fig. 24 zeigt ein Beispiel, in welchem der LSB-Detektor 29 und das Exklusiv-ODER-(EXOR)- Glied 30 den Addierer 23 von Fig. 23 ersetzen. Elemente in der Schaltung von Fig. 24, die Elementen in der Schaltung von Fig. 23 entsprechen, sind mit den gleichen Bezugszeichen versehen wie dort und werden nicht erneut beschrieben. Der LSB-Detektor detektiert das LSB jedes DCT-Koeffizienten in dem Block, und das EXOR-Glied 30 und das Register 24 bestimmen zusammen die exklusive logische Summe der LSBs der DCT-Koeffizienten in dem Block. Die Parität der exklusiven logischen Summe wird von der Paritätsprüfschaltung 21 so bestimmt, wie dies oben anhand von Fig. 10A und 23 beschrieben wurde.
- Alternativ können das Exklusiv-ODER-Glied 30 und das Register 24 von Fig. 24 durch das UND-Glied 88 und den Zähler 89 von Fig. 10B substituiert werden.
- Fig. 25 zeigt ein weiteres Beispiel. In diesem ist zwischen dem inversen Quantisierer 13 und dem Akkumulator 23A in der Summen-Oddifizierschaltung 50 von Fig. 23 der Wähler 51 angeordnet. Elemente in der in Fig. 25 dargestellten Schaltung, die Elementen in der Schaltung von Fig. 23 entsprechen, sind mit den gleichen Bezugszeichen versehen wie dort und werden nicht erneut beschrieben. Die Schaltung von Fig. 25 bestimmt die Summe nur von spezifischen Koeffizienten, z. B. der (0, 0)-Komponente, der (4, 0)-Komponente, der (0, 4)- Komponente und der (4, 4)-Komponente, um festzustellen, ob die Summe ungeradzahlig gemacht werden muß. Der Wähler 51 nimmt den Zählwert coeff adrs aus dem Zähler 20 auf, um festzustellen, ob der jeweilige aus dem inversen Quantisierer 13 empfangene DCT- Koeffizient einer der spezifischen Koeffizienten ist und deshalb summiert werden muß. Wenn der Wähler feststellt, daß der DCT-Koeffizient einer der spezifischen Koeffizienten ist und summiert werden soll, d. h. wenn der Zählwert coeff adrs einen Wert hat, der z. B. der (0, 0)-Komponente, der (4, 0)-Komponente, der (0, 4)-Komponente oder der (4, 4)-Komponente entspricht, liefert der Wähler 51 den DCT-Koeffizienten an den Akkumulator 23A. Der Wähler 51 veranlaßt die in Fig. 25 dargestellte Summen-Oddifizierschaltung, die Summe der spezifischen Koeffizienten zu bestimmen. Der Paritätsinverter 53 wirkt dann auf wenigstens einen der spezifischen DCT-Koeffizienten ein, falls dies erforderlich ist, um die Summe der spezifischen DCT-Koeffizienten ungeradzahlig zu machen. Der Block von DCT-Koeffizienten mit ungeradzahlig gemachter Summe wird dann der IDCT-Schaltung 15 zugeführt.
- In einer anderen Variante kann der in Fig. 25 dargestellte Wähler 51 in die Leitung zwischen dem inversen Quantisierer 13 und dem LSB-Detektor 29 in der Schaltung von Fig. 24 eingefügt sein. Die in Fig. 24 dargestellte Schaltung würde, auf diese Weise modifiziert, die exklusive logische Summe der LSBs der von dem Wähler ausgewählten spezifischen DCT- Koeffizienten bestimmen.
- In einem weiteren alternativen Ausführungsbeispiel der Summen-Oddifizierschaltung 50 ist der DCT-Koeffizient, auf den die Paritätsinvertierung angewendet wird, nicht der DCT-Koeffizient der Komponente mit der höchsten Frequenz sondern der DCT-Koeffizient der Gleichkomponente, wenn der letzte DCT-Koeffizient, der aus dem inversen Quantisierer 13 empfangen wird, der DCT-Koeffizient der Gleichkomponente ist, d. h. wenn die Reihenfolge der Rasterabtastung derjenigen in den oben beschriebenen Beispielen entgegengesetzt ist.
- Anhand von Fig. 26 wird nun ein Beispiel für den praktischen Aufbau des Paritätsinverters 53 beschrieben. Der Paritätsinverter 53 ist eine vereinfachte Version des oben beschriebe nen Paritätsinverters 28, der in Fig. 11 dargestellt ist. Der Paritätsinverter 53 enthält den LSB-Inverter 63, das dritte und vierte UND-Glied 64 und 65, das ODER-Glied 66 und den Inverter 71.
- In dem Paritätsinverter 53 invertiert der LSB-Inverter 63 das LSB jedes DCT-Koeffizienten in dem Block von DCT-Koeffizienten, der aus dem inversen Quantisierer 13 empfangen wird. Dadurch wird die Parität jedes DCT-Koeffizienten invertiert. Normalerweise ist das Verarbeitungsanforderungssignal REQ1 nicht vorhanden, so daß der Paritätsinverter jeden empfangenen DCT-Koeffizienten über das dritte UND-Glied 64 und das ODER-Glied 69 an die IDCT- Schaltung 15 (Fig. 23) liefert.
- Wenn die Summen-Oddifizierschaltung 50 (Fig. 23) den DCT-Koeffizienten mit der höchsten Frequenz in dem Block empfangen hat, zeigt der Zählwert coeff adrs aus dem Zähler 20 der Paritätsprüfschaltung 21 an, daß der von der Paritätsprüfschaltung empfangene Wert die Summe aller DCT-Koeffizienten in dem Block ist. Als Reaktion hierauf stellt die Paritätsprüfschaltung fest, ob die Parität der Summe der DCT-Koeffizienten ungeradzahlig oder geradzahlig ist.
- Wenn die Paritätsprüfschaltung 21 feststellt, daß die Parität der Summe der DCT-Koeffizienten in dem Block geradzahlig ist, liefert sie das Verarbeitungsanforderungssignal REQ1 an den Paritätsinverter 53. Das Verarbeitungsanforderungssignal erreicht den Paritätsinverter 53 über die Verzögerungsschaltung 52 gleichzeitig mit dem DCT-Koeffizienten mit der höchsten Frequenz. Das Verarbeitungsanforderungssignal REQ1 ändert die Zustände des dritten und vierten UND-Glieds 64 und 65. Dieses liefert den LSB-invertierten DCT-Koeffizienten mit der höchsten Frequenz aus dem LSB-Inverter 63 über das vierte UND-Glied 65 und das ODER-Glied 69 an die IDCT-Schaltung 15. Der LSB-invertierte DCT-Koeffizient mit der höchsten Frequenz wird der IDCT-Schaltung anstelle des normalen DCT-Koeffizienten mit der höchsten Frequenz zugeführt, um die Summe der der IDCT-Schaltung zugeführten DCT- Koeffizienten ungeradzahlig zu machen.
- Wenn die Paritätsprüfschaltung 21 hingegen feststellt, daß die Parität der Summe der DCT- Koeffizienten in dem Block ungeradzahlig ist, erzeugt sie das Verarbeitungsanforderungssignal nicht. Der Paritätsinverter 53 führt der IDCT-Schaltung 15 über das UND-Glied 64 und das ODER-Glied 69 den normalen DCT-Koeffizienten mit der höchsten Frequenz zu, da die Summe des Blocks von DCT-Koeffizienten nicht ungeradzahlig gemacht werden muß.
- Modifizierungen des praktischen Beispiels des Paritätsinverters 53 von Fig. 26 sind in Fig. 27 bis 29 dargestellt.
- Fig. 27 zeigt den +1-Addierer, 73, der dem +1-Addierer von Fig. 13 ähnelt und den LSB-Inverter 63 in dem Paritätsinverter von Fig. 26 ersetzt. Im übrigen ist die Schaltung unverändert. Der in Fig. 27 dargestellte modifizierte Paritätsinverter invertiert die Parität jedes DCT- Koeffizienten in dem Block, indem er 1 dazu addiert. Wenn die Paritätsprüfschaltung 21 das Verarbeitungsanforderungssignal REQ1 an den Paritätsinverter sendet, liefert der Paritätsinverter an die IDCT-Schaltung 15 anstelle des normalen DCT-Koeffizienten mit der höchsten Frequenz den DCT-Koeffizienten der höchsten Frequenz, zu dem 1 addiert ist. Diese Substituierung macht die Summe der DCT-Koeffizienten in dem Block ungeradzahlig.
- Wie Fig. 28 zeigt, kann die Magnitudenreduzierschaltung 80 von Fig. 15 den LSB-Inverter 63 in der Schaltung von Fig. 26 ersetzen. Im übrigen ist die in Fig. 26 dargestellte Schaltung unverändert. Wenn der Paritätsinverter von Fig. 26 so modifiziert wird, wie dies in Fig. 28 dargestellt ist, macht er die Summe der DCT-Koeffizienten entsprechend der oben beschriebenen Gleichung (15) ungeradzahlig. Wenn die Paritätsprüfschaltung 21 das Verarbeitungsanforderungssignal REQ1 erzeugt, wird die Summe der DCT-Koeffizienten in dem Block ungeradzahlig gemacht, indem der IDCT-Schaltung 15 der DCT-Koeffizient der höchsten Frequenz mit invertierter Parität zugeführt wird. Die Parität des DCT-Koeffizienten mit der höchsten Frequenz wird auf eine von zwei Arten invertiert: Wenn der DCT-Koeffizient mit der höchsten Frequenz positiv ist, subtrahiert der -1-Subtrahierer 82 den Wert 1 von dem DCT-Koeffizienten mit der höchsten Frequenz, oder, wenn der DCT-Koeffizient mit der höchsten Frequenz Null oder negativ ist, addiert der +1-Addierer 83 den Wert 1 zu dem DCT-Koeffizienten mit der höchsten Frequenz.
- Wie Fig. 29 zeigt, kann die Magnitudenvergrößerungsschaltung 90 von Fig. 17 den LSB-Inverter 63 in der Schaltung von Fig. 26 substituieren. Im übrigen ist die Schaltung von Fig. 26 unverändert. Der Paritätsinverter von Fig. 26 in der Modifizierung von Fig. 29 macht die Summe der DCT-Koeffizienten entsprechend der oben beschriebenen Gleichung (16) ungeradzahlig. Wenn die Paritätsprüfschaltung 21 das Verarbeitungsanforderungssignal REQ1 erzeugt, wird die Summe der DCT-Koeffizienten in dem Block ungeradzahlig gemacht, indem der IDCT-Schaltung 15 der DCT-Koeffizient mit der höchsten Frequenz mit invertierter Parität zugeführt wird. Die Parität des DCT-Koeffizienten mit der höchsten Frequenz wird auf eine von zwei Arten invertiert: Wenn der DCT-Koeffizient der höchsten Frequenz Null oder negativ ist, subtrahiert der -1-Subtrahierer 93 den Wert 1 von dem DCT-Koeffizienten mit der höchsten Frequenz, oder, wenn der DCT-Koeffizient mit der höchsten Frequenz positiv ist, addiert der +1-Addierer 92 den Wert 1 zu dem DCT-Koeffizienten mit der höchsten Frequenz.
- Im folgenden wird ein zweiter Expandierer für komprimierte Bewegtbildsignale beschrieben, bei dem die Erfindung, wie in den anliegenden Ansprüchen definiert, angewendet wird.
- In dem zweiten Expandierer für komprimierte Bewegtbildsignale wird die Summen-Oddifizierschaltung 35 in dem ersten Ausführungsbeispiel des Decodierers für komprimierte Bewegtbildsignale, das in Fig. 19 dargestellt ist und oben beschrieben wurde, durch die Summen-Oddifizierschaltung 50 substituiert. Im übrigen ist die Schaltung von Fig. 19 unverändert. In dem zweiten Expandierer für komprimierte Bewegtbildsignale, erfolgt das Ungeradzahligmachen der Summe der DCT-Koeffizienten ähnlich wie mit der Summen-Oddifizierschaltung in dem zweiten Bewegtbildsignalkomprimierer, der oben anhand von Fig. 22 beschrieben wurde. Somit ist es in dem zweiten exemplarischen Expandierer für komprimierte Bewegtbildsignale nicht erforderlich, der Summen-Oddifizierschaltung 50 die Adresse EOB adrs aus dem inversen variablen Längencodierer 32 zuzuführen.
- Die vorangehend beschriebene Erfindung schafft ein Verfahren zur inversen diskreten Cosinustransformation und ein Gerät zur inversen Cosinustransformation, einen Bewegtbildsignalkomprimierer, einen Expandierer für komprimierte Bewegtbildsignale und ein Übertragungsgerät für ein komprimiertes Bewegtbildsignal, bei denen die Wahrscheinlichkeit, daß im Verlauf der diskreten Cosinustransformation ein Abgleichfehler auftritt, bis zu einem Punkt reduziert wird, bei dem in der Praxis keine Abgleichfehler auftreten. Außerdem ermöglicht die Erfindung ein Aufzeichnungsmedium, bei dem kein Abgleichfehler auftritt, wenn ein komprimiertes Bewegtbildsignal von dem Medium reproduziert und durch eine Verarbeitung expandiert wird, die eine inverse orthogonale Transformation beinhaltet.
- Wenn bei der Komprimierung des Bewegtbildsignals diskrete Cosinustransformation und bei der Expandierung des komprimierten Bewegtbildsignals inverse diskrete Cosinustransformation angewendet wird, kann die Erfindung das Auftreten von Abgleichfehlern bei der inversen diskreten Cosinustransformation verhindern. Dadurch wird eine Verschlechterung der Bildqualität vermieden. Bei einem Bewegtbildkomprimierer und einem Expandierer für komprimierte Bewegtbildsignale gemäß der Erfindung ist die Möglichkeit ausgeschaltet, daß die in dem Komprimierer fokal decodierten Bilder und die von dem Expandierer rekonstruierten Bilder voneinander verschieden sind. Dadurch ist eine hohe Bildqualität gewährleistet.
Claims (14)
1. Verfahren zum Verarbeiten eines Satzes von Transformationskoeffizienten, wobei jeder
Transformationskoeffizient eine Parität aufweist, zur Erzeugung eines fehler-immunen Satzes von
Transformationskoeffizienten für die Verarbeitung durch eine inverse orthogonale
Transformation, wobei der fehler-immune Satz von Transformationskoeffizienten gegen Rundungsfehler
immun ist, wenn er der inversen orthogonalen Transformation unterzogen wird,
mit den Verfahrensschritten:
Summieren (23A) der Transformationskoeffizienten zur Bereitstellung einer Summe, wobei
die Summe eine Parität aufweist,
Beurteilen (21) der Parität der Summe,
bei geradzahliger Parität der Summe Invertieren (28) der Parität wenigstens eines der
Transformationskoeffizienten zur Bereitstellung eines paritäts-invertierten
Transformationskoeffizienten in der Weise, daß der paritäts-invertierte Transformationskoeffizient die Parität der Summe
ungeradzahlig macht, und
Bereitstellen der Transformationskoeffizienten, einschließlich des paritäts-invertierten
Transformationskoeffizienten, als den genannten fehler-immunen Satz.
2. Verfahren nach Anspruch 1, bei dem
das Verfahren für die Verarbeitung von Transformationskoeffizienten bestimmt ist, die aus
einer zweidimensionalen diskreten Cosinustransformation (11) resultieren,
der Satz von Transformationskoeffizienten einen Transformationskoeffizienten enthält, der
eine Gleichkomponente repräsentiert, und
in dem Verfahrensschritt des Invertierens (28) der Parität eines der
Transformationskoeffizienten die Parität eines der Transformationskoeffizienten invertiert wird, der nicht der die
Gleichkomponente repräsentierende Transformationskoeffizient ist.
3. Verfahren nach Anspruch 2, bei dem
der Satz von Transformationskoeffizienten auch einen Transformationskoeffizienten enthält,
der eine Komponente mit der höchsten Frequenz repräsentiert, und
in dem Verfahrensschritt des Invertierens (28) der Parität eines der
Transformationskoeffizienten die Parität des Transformationskoeffizienten invertiert wird, der die Komponente mit der
höchsten Frequenz repräsentiert.
4. Verfahren nach Anspruch 3, bei dem
jeder Transformationskoeffizient in dem Satz durch eine binäre Zahl mit einem
niedrigstwertigen Bit repräsentiert wird und
in dem Verfahrensschritt des Invertierens (28) der Parität eines der
Transformationskoeffizienten das niedrigstwertige Bit dieses einen Transformationskoeffizienten invertiert wird (S3, Fig.
9).
5. Verfahren nach Anspruch 2, bei dem
jeder Transformationskoeffizient in dem Satz eine Polarität hat und
der Verfahrensschritt des Invertierens der Parität eines der Transformationskoeffizienten die'
Verfahrensschritte umfaßt:
Bestimmen (S3, Fig. 14) der Polarität dieses einen Transformationskoeffizienten,
bei negativer Polarität Addieren (S6, Fig. 14) eines vorbestimmten ungeradzahligen Werts zu
dem einem Transformationskoeffizienten und
bei positiver Polarität Subtrahieren (S4, Fig. 14) des vorbestimmten ungeradzahligen Werts
von dem einen Transformationskoeffizienten.
6. Verfahren nach Anspruch 2, bei dem
das Verfahren zusätzlich den Verfahrensschritt umfaßt, daß die
Transformationskoeffizienten in dem Satz in serieller Reihenfolge empfangen werden, wobei die
Transformationskoeffizienten einen zuletzt empfangenen Transformationskoeffizienten enthalten, und
in dem Verfahrensschritt des Invertierens (28) der Parität des einen der
Transformationskoeffizienten die Parität des zuletzt empfangenen Transformationskoeffizienten invertiert wird.
7. Verfahren nach einem der vohergehenden Ansprüche, bei dem alle
Transformationskoeffizienten im Satz einen von Null verschiedenen Wert haben.
8. Verfahren nach einem der vohergehenden Ansprüche, bei dem
jeder Transformationskoeffizient in dem Satz durch eine binäre Zahl mit einem
niedrigstwertigen Bit repräsentiert wird und
in dem Verfahrensschritt des Summierens nur das niedrigstwertige Bit jedes
Transformationskoeffizienten summiert wird (29, 30, 24).
9. Verfahren nach einem der vohergehenden Ansprüche mit dem zusätzlichen Verfahrensschritt,
daß die Transformationskoeffizienten in dem Satz aus einem Block von
Transformationskoeffizienten ausgewählt werden.
10. Prozeß für das inverse orthogonale Transformieren eines Satzes von
Transtormationskoeffizienten ohne die Gefahr, daß Rundungsfehler auftreten, wobei jeder der
Transformationskoeffizienten durch eine binäre Zahl repräsentiert wird, die ein niedrigstwertiges Bit aufweist, wobei
der Prozeß das Verfahren nach Anspruch 7 umfaßt, bei dem
der Verfahrensschritt des Summierens das Bestimmen des niedrigstwertigen Bits jedes
Transformationskoeffizienten umfaßt sowie das Zählen der Transformationskoeffizienten, die als
niedrigstwertiges Bit eine Eins haben, um einen Zählwert bereitzustellen,
der Verfahrensschritt des Beurteilens umfaßt, festzustellen, wann der Zählwert eine gerade
Zahl ist, und
der Verfahrensschritt des Invertierens das Ändern eines der Transformationskoeffizienten
umfaßt, um einen geänderten Transformationskoeffizienten bereitzustellen, wobei der
geänderte Transformationskoeffizient den Zählwert zu einer ungeraden Zahl macht, und wobei der
Prozeß ferner den Verfahrensschritt umfaßt:
inverses orthogonales Transformieren des Satzes von Transformationskoeffizienten,
einschließlich des geänderten Transformationskoeffizienten.
11. Prozeß zum Komprimieren eines Bewegtbildsignals zur Bereitstellung eines komprimierten
Bewegtbildsignals, wobei der Prozeß die Verfahrensschritte umfaßt:
Anwenden von Prädiktionscodierung und orthogonaler Transformation auf Blöcke des
Bewegtbildsignals zur Bereitstellung von Blöcken von Transformationskoeffizienten, aus denen das
komprimierte Bewegtbildsignal abgeleitet wird, und
Ungeradzahligmachen der Summe der Blöcke der Transformationskoeffizienten durch
Anwendung des Verfahrens nach einem der Ansprüche 1 bis 9 vor der Anwendung der inversen
orthogonalen Transformation und der Prädiktionsdecodierung der Blöcke von
Transformationskoeffizienten zur Bereitstellung von Blöcken eines rekonstruierten Bilds für die
Verwendung als Referenzbild bei der Prädiktionscodierung anderer Bilder des
Bewegtbildsignals.
12. Prozeß zum Komprimieren eines Bewegtbildsignals zur Bereitstellung eines komprimierten
Bewegtbildsignals, wobei der Prozeß die Verfahrensschritte umfaßt:
Detektieren (6) der Bewegung zwischen Blöcken eines Bilds des Bewegtbildsignals und
Blöcken eines rekonstruierten Bilds, das als Referenzbild dient,
Anwenden (7) einer Bewegungskompensation auf das Referenzbild in Abhängigkeit von der
detektierten Bewegung, um Vergleichsblöcke (Matching-Blöcke) des Referenzbilds abzuleiten,
Benutzen der Vergleichsblöcke des Referenzbilds zur Anwendung von Prädiktionscodierung
auf die Blöcke des Bewegtbildsignals, um Blöcke von Differenzen bereitzustellen,
orthogonales Transformieren (11) der Blöcke von Differenzen, um Blöcke von
Transformationskoeffizienten bereitzustellen,
Herleiten des komprimierten Signals aus den Blöcken von Transformationskoeffizienten
durch Anwenden von Quantisierung und variabler Längencodierung (17),
vor dem Anwenden der inversen orthogonalen Transformation auf die Blöcke von
Transformationskoeffizienten zur Bereitstellung von Blöcken von restaurierten Differenzen
Ungeradzahligmachen jeder Summe des Blocks von Transformationskoeffizienten, um Rundungsfehler bei
der inversen orthogonalen Transformation zu vermeiden, durch Anwenden des Verfahrens nach
einem der Ansprüche 1 bis 9, und
Anwenden der Prädiktionsdecodierung auf die Blöcke von restaurierten Differenzen zur
Bereitstellung von Bildblöcken eines rekonstruierten Bilds für die Verwendung als Referenzbild bei
der Anwendung der Prädiktionscodierung auf andere Bilder des Bewegtbildsignals.
13. Prozeß nach Anspruch 11 oder 12, bei dem
der Prozeß zusätzlich zum Aufzeichnen des komprimierten Bewegtbildsignals auf einem
Aufzeichnungsmedium dient und
der Prozeß zusätzlich die Verfahrensschritte umfaßt:
Bereitstellen eines Aufzeichnungsmediums,
Herleiten eines Aufzeichnungssignals aus dem komprimierten Bewegtbildsignal und
Aufzeichnen des Aufzeichnungssignals auf dem Aufzeichnungsmedium.
14. Prozeß nach Anspruch 11 oder 12, bei dem
der Prozeß zusätzlich zum Übertragen des komprimierten Bewegtbildsignals über ein
Übertragungsmedium dient und
der Prozeß zusätzlich die Verfahrensschritte umfaßt:
Bereitstellen eines Übertragungsmediums,
Herleiten eines Übertragungssignals aus dem komprimierten Bewegtbildsignal und
Einspeisen des Übertragungssignals in das Übertragungsmedium.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4020393 | 1993-03-01 | ||
JP5990993 | 1993-03-19 | ||
PCT/JP1994/000329 WO1994021083A1 (en) | 1993-03-01 | 1994-03-01 | Methods and apparatus for preventing rounding errors when transform coefficients representing a motion picture signal are inversely transformed |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69421135D1 DE69421135D1 (de) | 1999-11-18 |
DE69421135T2 true DE69421135T2 (de) | 2000-05-25 |
Family
ID=26379647
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69421135T Expired - Lifetime DE69421135T2 (de) | 1993-03-01 | 1994-03-01 | Verfahren zur vermeidung von rundungsfehlern bei der inversen transformation von transformationskoeffizienten eines bewegtbildsignals |
DE1994633272 Expired - Lifetime DE69433272T2 (de) | 1993-03-01 | 1994-03-01 | Vorrichtung zum Vermeiden von Rundungsfehlern bei der inversen Transformation von Transformationskoeffizienten eines Bewegtbildsignales |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE1994633272 Expired - Lifetime DE69433272T2 (de) | 1993-03-01 | 1994-03-01 | Vorrichtung zum Vermeiden von Rundungsfehlern bei der inversen Transformation von Transformationskoeffizienten eines Bewegtbildsignales |
Country Status (28)
Country | Link |
---|---|
US (2) | US5481553A (de) |
EP (5) | EP0903944B1 (de) |
JP (2) | JP3610578B2 (de) |
KR (1) | KR100287490B1 (de) |
CN (1) | CN1076935C (de) |
AT (2) | ATE252806T1 (de) |
AU (1) | AU673244B2 (de) |
BR (1) | BR9404321A (de) |
CA (1) | CA2134444C (de) |
DE (2) | DE69421135T2 (de) |
DK (5) | DK2276259T3 (de) |
EG (1) | EG20330A (de) |
ES (5) | ES2389718T3 (de) |
FI (1) | FI112579B (de) |
GR (1) | GR3032133T3 (de) |
HU (1) | HU217744B (de) |
IL (1) | IL108787A (de) |
MY (1) | MY110794A (de) |
NO (2) | NO314709B1 (de) |
NZ (1) | NZ261907A (de) |
OA (1) | OA10108A (de) |
PL (1) | PL173287B1 (de) |
PT (4) | PT903944E (de) |
RO (1) | RO115926B1 (de) |
RU (1) | RU2119727C1 (de) |
TR (1) | TR28436A (de) |
TW (1) | TW224553B (de) |
WO (1) | WO1994021083A1 (de) |
Families Citing this family (162)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5515388A (en) * | 1993-03-19 | 1996-05-07 | Sony Corporation | Apparatus and method for preventing repetitive random errors in transform coefficients representing a motion picture signal |
DE69423734T2 (de) * | 1993-09-28 | 2000-07-20 | Sony Corp., Tokio/Tokyo | Gerät zur kodierung/dekodierung mit rundung auf ausschliesslich gerade oder ungerade werte |
US5796438A (en) * | 1994-07-05 | 1998-08-18 | Sony Corporation | Methods and apparatus for interpolating picture information |
JP3794502B2 (ja) | 1994-11-29 | 2006-07-05 | ソニー株式会社 | 画像領域抽出方法及び画像領域抽出装置 |
US5623423A (en) * | 1994-12-12 | 1997-04-22 | Univ. Of Texas | Apparatus and method for video decoding |
US5675666A (en) * | 1995-03-02 | 1997-10-07 | Sony Corportion | Image data compression method and apparatus with pre-processing to compensate for the blocky effect |
JP3855286B2 (ja) * | 1995-10-26 | 2006-12-06 | ソニー株式会社 | 画像符号化装置および画像符号化方法、画像復号化装置および画像復号化方法、並びに記録媒体 |
JPH09128529A (ja) * | 1995-10-30 | 1997-05-16 | Sony Corp | ディジタル画像の雑音の投影に基づく除去方法 |
KR100355375B1 (ko) * | 1995-11-01 | 2002-12-26 | 삼성전자 주식회사 | 영상부호화장치에있어서양자화간격결정방법및회로 |
JP3994445B2 (ja) * | 1995-12-05 | 2007-10-17 | ソニー株式会社 | 動きベクトル検出装置及び動きベクトル検出方法 |
US6057893A (en) * | 1995-12-28 | 2000-05-02 | Sony Corporation | Picture encoding method, picture encoding apparatus, picture transmitting method and picture recording medium |
US6256349B1 (en) * | 1995-12-28 | 2001-07-03 | Sony Corporation | Picture signal encoding method and apparatus, picture signal transmitting method, picture signal decoding method and apparatus and recording medium |
US5822005A (en) * | 1996-01-11 | 1998-10-13 | Tektronix, Inc. | Pre-oddification |
US5710732A (en) * | 1996-04-22 | 1998-01-20 | Samsung Electronics Co., Ltd. | Calculating the average of four integer numbers rounded away from zero in a single instruction cycle |
US5751617A (en) * | 1996-04-22 | 1998-05-12 | Samsung Electronics Co., Ltd. | Calculating the average of two integer numbers rounded away from zero in a single instruction cycle |
TW357327B (en) * | 1996-08-02 | 1999-05-01 | Sony Corp | Methods, apparatus and program storage device for removing scratch or wire noise, and recording media therefor |
US5930159A (en) * | 1996-10-17 | 1999-07-27 | Samsung Electronics Co., Ltd | Right-shifting an integer operand and rounding a fractional intermediate result to obtain a rounded integer result |
KR100332176B1 (ko) * | 1996-11-07 | 2002-04-12 | 모리시타 요이찌 | 복호화 방법 및 복호화 장치 |
US5917739A (en) * | 1996-11-14 | 1999-06-29 | Samsung Electronics Co., Ltd. | Calculating the average of four integer numbers rounded towards zero in a single instruction cycle |
US6007232A (en) * | 1996-11-14 | 1999-12-28 | Samsung Electronics Co., Ltd. | Calculating the average of two integer numbers rounded towards zero in a single instruction cycle |
EP0786907A3 (de) * | 1997-01-24 | 2001-06-13 | Texas Instruments Incorporated | Videokodierer |
EP1511325A3 (de) * | 1997-02-13 | 2006-07-19 | Mitsubishi Denki Kabushiki Kaisha | System zur Vorhersage von Bewegtbildern |
CN1170438C (zh) * | 1997-03-12 | 2004-10-06 | 松下电器产业株式会社 | 数字视频信号下变换系统的运动补偿处理器及上升抽样方法 |
US6078616A (en) | 1997-03-13 | 2000-06-20 | Sony Corporation | Methods and apparatus for error concealment utilizing temporal domain motion vector estimation |
US6128340A (en) * | 1997-03-14 | 2000-10-03 | Sony Corporation | Decoder system with 2.53 frame display buffer |
AU1941797A (en) * | 1997-03-17 | 1998-10-12 | Mitsubishi Denki Kabushiki Kaisha | Image encoder, image decoder, image encoding method, image decoding method and image encoding/decoding system |
US5903311A (en) * | 1997-05-30 | 1999-05-11 | Sony Corporation | Run level pair buffering for fast variable length decoder circuit |
US6574371B2 (en) | 1997-06-09 | 2003-06-03 | Hitachi, Ltd. | Image decoding method |
EP2288164B1 (de) * | 1997-06-09 | 2013-09-11 | Hitachi, Ltd. | Bilddekodierung |
US7801380B2 (en) * | 1997-06-09 | 2010-09-21 | Hitachi, Ltd. | Recording medium having recorded thereon coded information using plus and/or minus rounding of images |
US6351563B1 (en) * | 1997-07-09 | 2002-02-26 | Hyundai Electronics Ind. Co., Ltd. | Apparatus and method for coding/decoding scalable shape binary image using mode of lower and current layers |
SE512171C2 (sv) * | 1997-07-02 | 2000-02-07 | Forskarpatent I Linkoeping Ab | Videoöverföring |
WO1999010719A1 (en) | 1997-08-29 | 1999-03-04 | The Regents Of The University Of California | Method and apparatus for hybrid coding of speech at 4kbps |
AU728938B2 (en) * | 1997-09-29 | 2001-01-18 | Canon Kabushiki Kaisha | A method for data compression |
US6937659B1 (en) | 1997-11-14 | 2005-08-30 | Ac Capital Management, Inc. | Apparatus and method for compressing video information |
US6222832B1 (en) * | 1998-06-01 | 2001-04-24 | Tantivy Communications, Inc. | Fast Acquisition of traffic channels for a highly variable data rate reverse link of a CDMA wireless communication system |
US6137844A (en) * | 1998-02-02 | 2000-10-24 | Oki Telecom, Inc. | Digital filter for noise and error removal in transmitted analog signals |
EP0936743A1 (de) * | 1998-02-17 | 1999-08-18 | Koninklijke Philips Electronics N.V. | Iteratives Dekodierungsverfahren für binäre Blockcodes |
US6058143A (en) * | 1998-02-20 | 2000-05-02 | Thomson Licensing S.A. | Motion vector extrapolation for transcoding video sequences |
GB2335815B (en) * | 1998-03-25 | 2002-02-27 | Sony Uk Ltd | Data compression |
US6148317A (en) * | 1998-08-14 | 2000-11-14 | Qualcomm Incorporated | Method and apparatus for compressing signals in a fixed point format without introducing a bias |
US6256422B1 (en) * | 1998-11-04 | 2001-07-03 | International Business Machines Corporation | Transform-domain correction of real-domain errors |
US6393155B1 (en) * | 1998-11-04 | 2002-05-21 | International Business Machines Corporation | Error reduction in transformed digital data |
EP1276331A3 (de) * | 1999-04-01 | 2005-06-01 | Ravisent Technologies, Inc. | Verfahren zum Vermeiden Zweischritthalbpixelbewegungskompensationsfehleraufhäufung in prediktionsreichen MPEG-2 Bildfolgen |
US6567557B1 (en) | 1999-12-10 | 2003-05-20 | Stmicroelectronics, Inc. | Method for preventing dual-step half-pixel motion compensation accumulation errors in prediction-rich MPEG-2 sequences |
GB2352905B (en) * | 1999-07-30 | 2003-10-29 | Sony Uk Ltd | Data compression |
US6735249B1 (en) * | 1999-08-11 | 2004-05-11 | Nokia Corporation | Apparatus, and associated method, for forming a compressed motion vector field utilizing predictive motion coding |
US6377627B1 (en) | 1999-08-31 | 2002-04-23 | Sony Corporation | Method and apparatus for decoding MPEG video data |
RU2158061C1 (ru) * | 1999-09-13 | 2000-10-20 | Зубарев Юрий Борисович | Устройство цифрового декодирования компрессированного цифровыми методами цветового телевизионного сигнала |
US6529634B1 (en) * | 1999-11-08 | 2003-03-04 | Qualcomm, Inc. | Contrast sensitive variance based adaptive block size DCT image compression |
US6639943B1 (en) * | 1999-11-23 | 2003-10-28 | Koninklijke Philips Electronics N.V. | Hybrid temporal-SNR fine granular scalability video coding |
US6456663B1 (en) * | 2000-03-29 | 2002-09-24 | Matsushita Electric Industrial Co., Ltd. | DCT domain down conversion system that compensates for IDCT mismatch |
GB2364459B (en) * | 2000-06-30 | 2004-03-31 | Nokia Mobile Phones Ltd | Video error resilience |
US7168069B1 (en) | 2000-07-12 | 2007-01-23 | Stmicroelectronics, Inc. | Dynamic generation of multimedia code for image processing |
US6819715B2 (en) * | 2000-07-25 | 2004-11-16 | Matsushita Electric Industrial Co., Ltd. | Image decoding method, image decoding apparatus, and data storage medium |
FR2815748B1 (fr) * | 2000-10-20 | 2003-01-24 | Canon Kk | Procede et dispositif de traitement et de decodage d'un signal numerique code |
US8374237B2 (en) | 2001-03-02 | 2013-02-12 | Dolby Laboratories Licensing Corporation | High precision encoding and decoding of video images |
DK2271111T3 (en) | 2001-11-06 | 2016-12-05 | Panasonic Ip Corp America | PROCEDURE FOR ENCODING MOVING IMAGES AND PROCEDURE FOR DECODING MOVING IMAGES |
KR100434740B1 (ko) * | 2001-11-09 | 2004-06-10 | 주식회사 휴맥스 | 디지털 방송 프로그램에서의 저배속 재생방법 |
KR100632072B1 (ko) * | 2001-12-25 | 2006-10-04 | 마츠시타 덴끼 산교 가부시키가이샤 | 동화상 압축 부호화장치 및 모션벡터 검출방법 |
ATE439704T1 (de) * | 2002-04-02 | 2009-08-15 | Nokia Corp | Codierung von transformationskoeffizienten in bild-/videocodierern- und/oder decodierern |
KR100491530B1 (ko) | 2002-05-03 | 2005-05-27 | 엘지전자 주식회사 | 모션 벡터 결정 방법 |
US7016547B1 (en) | 2002-06-28 | 2006-03-21 | Microsoft Corporation | Adaptive entropy encoding/decoding for screen capture content |
ES2388942T3 (es) * | 2002-09-04 | 2012-10-19 | Microsoft Corporation | Codificación entrópica adaptando la codifidación entre modos de nivel y de longitud de serie/nivel |
US7433824B2 (en) * | 2002-09-04 | 2008-10-07 | Microsoft Corporation | Entropy coding by adapting coding between level and run-length/level modes |
RU2321966C2 (ru) * | 2002-10-04 | 2008-04-10 | Эл Джи Электроникс Инк. | Способ определения векторов движения в режиме прямого предсказания для в-кадра |
ES2354253T3 (es) * | 2002-10-04 | 2011-03-11 | Lg Electronics Inc. | Método para extraer vectores de movimiento de modo directo. |
KR100506864B1 (ko) | 2002-10-04 | 2005-08-05 | 엘지전자 주식회사 | 모션벡터 결정방법 |
RU2264049C2 (ru) * | 2002-10-08 | 2005-11-10 | Эл Джи Электроникс Инк. | Способ определения векторов движения в режиме прямого предсказания для в-кадра |
JP2006506929A (ja) * | 2002-11-12 | 2006-02-23 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 変換ドメインのサンプル毎の判定帰還型等化器 |
US7292867B2 (en) * | 2003-01-16 | 2007-11-06 | Bones In Motion, Inc. | Location-aware fitness training device, methods, and program products that support real-time interactive communication and automated route generation |
US7403561B2 (en) * | 2003-04-04 | 2008-07-22 | Avid Technology, Inc. | Fixed bit rate, intraframe compression and decompression of video |
RU2242094C2 (ru) * | 2003-06-06 | 2004-12-10 | Закрытое акционерное общество Научно-технический центр "Модуль" | Способ поиска векторов движения деталей в динамических изображениях на основе двумерного дискретного спектрального преобразования |
US7580584B2 (en) * | 2003-07-18 | 2009-08-25 | Microsoft Corporation | Adaptive multiple quantization |
US10554985B2 (en) | 2003-07-18 | 2020-02-04 | Microsoft Technology Licensing, Llc | DC coefficient signaling at small quantization step sizes |
US7602851B2 (en) * | 2003-07-18 | 2009-10-13 | Microsoft Corporation | Intelligent differential quantization of video coding |
US7738554B2 (en) * | 2003-07-18 | 2010-06-15 | Microsoft Corporation | DC coefficient signaling at small quantization step sizes |
US8218624B2 (en) * | 2003-07-18 | 2012-07-10 | Microsoft Corporation | Fractional quantization step sizes for high bit rates |
US7724827B2 (en) * | 2003-09-07 | 2010-05-25 | Microsoft Corporation | Multi-layer run level encoding and decoding |
US7688894B2 (en) * | 2003-09-07 | 2010-03-30 | Microsoft Corporation | Scan patterns for interlaced video content |
US7782954B2 (en) * | 2003-09-07 | 2010-08-24 | Microsoft Corporation | Scan patterns for progressive video content |
DE10345995B4 (de) * | 2003-10-02 | 2005-07-07 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Vorrichtung und Verfahren zum Verarbeiten eines Signals mit einer Sequenz von diskreten Werten |
US7801383B2 (en) * | 2004-05-15 | 2010-09-21 | Microsoft Corporation | Embedded scalar quantizers with arbitrary dead-zone ratios |
US8331445B2 (en) * | 2004-06-01 | 2012-12-11 | Qualcomm Incorporated | Method, apparatus, and system for enhancing robustness of predictive video codecs using a side-channel based on distributed source coding techniques |
US20090080514A1 (en) * | 2004-11-16 | 2009-03-26 | Koninklijke Philips Electronics, N.V. | Sender side channel adaptive video transmission |
KR100669634B1 (ko) * | 2004-12-06 | 2007-01-15 | 엘지전자 주식회사 | 동영상 압축 및 복원 방법 |
US8311119B2 (en) | 2004-12-31 | 2012-11-13 | Microsoft Corporation | Adaptive coefficient scan order |
JP4270161B2 (ja) * | 2005-04-15 | 2009-05-27 | ソニー株式会社 | 情報記録再生システム、情報記録再生装置及び情報記録再生方法 |
US8422546B2 (en) | 2005-05-25 | 2013-04-16 | Microsoft Corporation | Adaptive video encoding using a perceptual model |
US7693709B2 (en) | 2005-07-15 | 2010-04-06 | Microsoft Corporation | Reordering coefficients for waveform coding or decoding |
US7684981B2 (en) * | 2005-07-15 | 2010-03-23 | Microsoft Corporation | Prediction of spectral coefficients in waveform coding and decoding |
US7599840B2 (en) * | 2005-07-15 | 2009-10-06 | Microsoft Corporation | Selectively using multiple entropy models in adaptive coding and decoding |
US7565018B2 (en) * | 2005-08-12 | 2009-07-21 | Microsoft Corporation | Adaptive coding and decoding of wide-range coefficients |
US8599925B2 (en) * | 2005-08-12 | 2013-12-03 | Microsoft Corporation | Efficient coding and decoding of transform blocks |
US7933337B2 (en) * | 2005-08-12 | 2011-04-26 | Microsoft Corporation | Prediction of transform coefficients for image compression |
US8130828B2 (en) | 2006-04-07 | 2012-03-06 | Microsoft Corporation | Adjusting quantization to preserve non-zero AC coefficients |
US8503536B2 (en) * | 2006-04-07 | 2013-08-06 | Microsoft Corporation | Quantization adjustments for DC shift artifacts |
US8059721B2 (en) | 2006-04-07 | 2011-11-15 | Microsoft Corporation | Estimating sample-domain distortion in the transform domain with rounding compensation |
US7995649B2 (en) | 2006-04-07 | 2011-08-09 | Microsoft Corporation | Quantization adjustment based on texture level |
US7974340B2 (en) * | 2006-04-07 | 2011-07-05 | Microsoft Corporation | Adaptive B-picture quantization control |
JP2007300517A (ja) * | 2006-05-02 | 2007-11-15 | Sony Corp | 動画像処理方法、動画像処理方法のプログラム、動画像処理方法のプログラムを記録した記録媒体及び動画像処理装置 |
US8711925B2 (en) | 2006-05-05 | 2014-04-29 | Microsoft Corporation | Flexible quantization |
RU2419855C2 (ru) * | 2006-06-26 | 2011-05-27 | Квэлкомм Инкорпорейтед | Снижение ошибок в ходе вычисления обратного дискретного косинусного преобразования |
US8385424B2 (en) | 2006-06-26 | 2013-02-26 | Qualcomm Incorporated | Reduction of errors during computation of inverse discrete cosine transform |
US8699810B2 (en) | 2006-06-26 | 2014-04-15 | Qualcomm Incorporated | Efficient fixed-point approximations of forward and inverse discrete cosine transforms |
US8275045B2 (en) * | 2006-07-12 | 2012-09-25 | Qualcomm Incorporated | Video compression using adaptive variable length codes |
US20080036864A1 (en) * | 2006-08-09 | 2008-02-14 | Mccubbrey David | System and method for capturing and transmitting image data streams |
US8565314B2 (en) * | 2006-10-12 | 2013-10-22 | Qualcomm Incorporated | Variable length coding table selection based on block type statistics for refinement coefficient coding |
RU2420910C2 (ru) * | 2006-10-12 | 2011-06-10 | Квэлкомм Инкорпорейтед | Кодирование коэффициентов уточнения, основанное на предыстории соответствующих значений коэффициентов преобразования |
RU2409003C1 (ru) * | 2006-10-12 | 2011-01-10 | Квэлкомм Инкорпорейтед | Выбор таблицы кодирования с переменной длиной на основании типа видеоблока для совершенствования кодирования коэффициентов |
US8599926B2 (en) | 2006-10-12 | 2013-12-03 | Qualcomm Incorporated | Combined run-length coding of refinement and significant coefficients in scalable video coding enhancement layers |
US8325819B2 (en) | 2006-10-12 | 2012-12-04 | Qualcomm Incorporated | Variable length coding table selection based on video block type for refinement coefficient coding |
US9319700B2 (en) | 2006-10-12 | 2016-04-19 | Qualcomm Incorporated | Refinement coefficient coding based on history of corresponding transform coefficient values |
DE102006049232B4 (de) * | 2006-10-18 | 2010-02-04 | Ods Technology Gmbh | Verfahren und Vorrichtung zur Vermeidung von Fehlern beim Runden von Werten nach Durchführung einer inversen diskreten Kosinus-Transformation |
US8300698B2 (en) * | 2006-10-23 | 2012-10-30 | Qualcomm Incorporated | Signalling of maximum dynamic range of inverse discrete cosine transform |
US8238424B2 (en) * | 2007-02-09 | 2012-08-07 | Microsoft Corporation | Complexity-based adaptive preprocessing for multiple-pass video compression |
US8184710B2 (en) * | 2007-02-21 | 2012-05-22 | Microsoft Corporation | Adaptive truncation of transform coefficient data in a transform-based digital media codec |
RU2420023C1 (ru) * | 2007-03-13 | 2011-05-27 | Нокиа Корпорейшн | Система и способ кодирования и декодирования видеосигналов |
US8498335B2 (en) * | 2007-03-26 | 2013-07-30 | Microsoft Corporation | Adaptive deadzone size adjustment in quantization |
BRPI0805802A2 (pt) * | 2007-03-30 | 2011-08-30 | Sony Corp | aparelho de processamento de informação, e, método de processamento de informação para um aparelho de processamento de informação |
US8243797B2 (en) * | 2007-03-30 | 2012-08-14 | Microsoft Corporation | Regions of interest for quality adjustments |
KR101370286B1 (ko) | 2007-04-06 | 2014-03-06 | 삼성전자주식회사 | 레지듀얼 블록의 변형을 이용한 영상 부호화, 복호화 방법및 장치 |
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 |
US8619853B2 (en) | 2007-06-15 | 2013-12-31 | Qualcomm Incorporated | Separable directional transforms |
US7774205B2 (en) * | 2007-06-15 | 2010-08-10 | Microsoft Corporation | Coding of sparse digital media spectral data |
US8571104B2 (en) | 2007-06-15 | 2013-10-29 | Qualcomm, Incorporated | Adaptive coefficient scanning in video coding |
KR101401967B1 (ko) * | 2007-12-04 | 2014-06-27 | 삼성전자주식회사 | 암호화된 데이터 스트림의 트릭 플레이 방법 및 장치 |
US8189933B2 (en) * | 2008-03-31 | 2012-05-29 | Microsoft Corporation | Classifying and controlling encoding quality for textured, dark smooth and smooth video content |
US8179974B2 (en) | 2008-05-02 | 2012-05-15 | Microsoft Corporation | Multi-level representation of reordered transform coefficients |
US8897359B2 (en) | 2008-06-03 | 2014-11-25 | Microsoft Corporation | Adaptive quantization for enhancement layer video coding |
RU2479942C2 (ru) * | 2008-06-27 | 2013-04-20 | Сони Корпорейшн | Устройство обработки изображения и способ обработки изображения |
CN101785318B (zh) * | 2008-06-27 | 2012-12-12 | 索尼公司 | 图像处理装置和图像处理方法 |
CN101779468B (zh) * | 2008-06-27 | 2012-07-04 | 索尼公司 | 图像处理装置和图像处理方法 |
US8406307B2 (en) | 2008-08-22 | 2013-03-26 | Microsoft Corporation | Entropy coding/decoding of hierarchically organized data |
US8798152B2 (en) * | 2008-09-11 | 2014-08-05 | General Instrument Corporation | Method and apparatus for fast motion estimation |
RU2375838C1 (ru) * | 2008-11-19 | 2009-12-10 | Федеральное государственное унитарное предприятие "Научно-исследовательский институт телевидения" | Способ кодирования и декодирования видеоинформации на основе трехмерного дискретного косинусного преобразования |
KR20200036953A (ko) | 2009-01-27 | 2020-04-07 | 인터디지털 브이씨 홀딩스 인코포레이티드 | 비디오 인코딩 및 디코딩에서 변환 선택을 위한 방법 및 장치 |
EP2222086A1 (de) | 2009-02-18 | 2010-08-25 | EcoDisc Technology AG | Verfahren und Vorrichtung zur Vermeidung von Rundungsfehlern nach Durchführung einer inversen diskreten orthogonalen Transformation |
US8457425B2 (en) * | 2009-06-09 | 2013-06-04 | Sony Corporation | Embedded graphics coding for images with sparse histograms |
KR101456498B1 (ko) * | 2009-08-14 | 2014-10-31 | 삼성전자주식회사 | 계층적 부호화 단위의 스캔 순서를 고려한 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치 |
JP5530198B2 (ja) * | 2009-11-20 | 2014-06-25 | パナソニック株式会社 | 画像符号化方法、復号化方法、装置 |
RU2420912C1 (ru) * | 2009-11-24 | 2011-06-10 | Федеральное государственное унитарное предприятие "Научно-исследовательский институт телевидения" | Способ распространения и транскодирования видеоконтента |
JP5546329B2 (ja) * | 2010-04-14 | 2014-07-09 | キヤノン株式会社 | データ変換装置 |
KR101690253B1 (ko) * | 2010-05-06 | 2016-12-27 | 삼성전자주식회사 | 영상 처리 장치 및 그 방법 |
GB2483282B (en) * | 2010-09-03 | 2017-09-13 | Advanced Risc Mach Ltd | Data compression and decompression using relative and absolute delta values |
KR101605047B1 (ko) * | 2011-12-21 | 2016-03-21 | 인텔 코포레이션 | 움직임 보상 및 디스플레이 리프레시의 전력 소모를 감소시키는 dram 압축 방안 |
US9008184B2 (en) | 2012-01-20 | 2015-04-14 | Blackberry Limited | Multiple sign bit hiding within a transform unit |
EP2675159B1 (de) * | 2012-06-15 | 2018-08-08 | BlackBerry Limited | Verbergen von Multibit-Information mithilfe überlappender Untermengen |
CN104380740A (zh) * | 2012-06-29 | 2015-02-25 | 索尼公司 | 编码装置、编码方法、解码装置和解码方法 |
US20140133574A1 (en) * | 2012-11-13 | 2014-05-15 | Mediatek Inc. | Method and Apparatus for Sign Data Hiding of Video and Image Data |
AU2014211539B2 (en) | 2013-01-29 | 2017-04-20 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Low-complexity tonality-adaptive audio signal quantization |
US10306229B2 (en) | 2015-01-26 | 2019-05-28 | Qualcomm Incorporated | Enhanced multiple transforms for prediction residual |
WO2017142319A1 (ko) * | 2016-02-16 | 2017-08-24 | 삼성전자 주식회사 | 영상 부호화 방법 및 장치와 영상 복호화 방법 및 장치 |
US10623774B2 (en) | 2016-03-22 | 2020-04-14 | Qualcomm Incorporated | Constrained block-level optimization and signaling for video coding tools |
US10225562B1 (en) * | 2017-08-21 | 2019-03-05 | Google Llc | Embedding information about EOB positions |
US11323748B2 (en) | 2018-12-19 | 2022-05-03 | Qualcomm Incorporated | Tree-based transform unit (TU) partition for video coding |
WO2020197222A1 (ko) * | 2019-03-23 | 2020-10-01 | 엘지전자 주식회사 | Isp를 이용한 잔차 신호 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 |
EP4020993A4 (de) | 2019-08-23 | 2022-09-07 | Mitsubishi Electric Corporation | Bildübertragungsvorrichtung, bildempfangsvorrichtung, bildübertragungsprogramm und bildempfangsprogramm |
KR102771901B1 (ko) | 2020-06-19 | 2025-02-25 | 삼성전자주식회사 | 일 함수 층들을 갖는 반도체 소자들 |
KR102788873B1 (ko) | 2020-06-24 | 2025-03-31 | 삼성전자주식회사 | 캡핑층을 포함하는 반도체 소자 |
KR102820462B1 (ko) | 2020-06-24 | 2025-06-16 | 삼성전자주식회사 | 게이트 라인을 포함하는 집적회로 소자 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3138816A1 (de) * | 1981-09-30 | 1983-04-14 | Philips Patentverwaltung Gmbh, 2000 Hamburg | Anordnung zum speichern oder uebertragen und zum rueckgewinnen von bildsignalen |
WO1987002210A1 (en) * | 1985-10-02 | 1987-04-09 | Deutsche Thomson-Brandt Gmbh | Process for correcting transmission errors |
ES2031499T3 (es) * | 1986-03-20 | 1992-12-16 | American Telephone And Telegraph Company | Metodo y codificador para codificar senales de datos. |
US5218650A (en) * | 1991-01-02 | 1993-06-08 | Ricoh Corporation | Quantization method for use in image compression |
JP2909239B2 (ja) * | 1991-03-27 | 1999-06-23 | 株式会社東芝 | 高能率符号化記録再生装置 |
-
1993
- 1993-08-19 TW TW82106688A patent/TW224553B/zh not_active IP Right Cessation
-
1994
- 1994-02-28 EG EG12294A patent/EG20330A/xx active
- 1994-02-28 US US08/202,783 patent/US5481553A/en not_active Expired - Lifetime
- 1994-02-28 MY MYPI94000473A patent/MY110794A/en unknown
- 1994-02-28 IL IL10878794A patent/IL108787A/xx not_active IP Right Cessation
- 1994-03-01 DE DE69421135T patent/DE69421135T2/de not_active Expired - Lifetime
- 1994-03-01 ES ES10011642T patent/ES2389718T3/es not_active Expired - Lifetime
- 1994-03-01 PT PT98119828T patent/PT903944E/pt unknown
- 1994-03-01 DK DK11843994T patent/DK2276259T3/da active
- 1994-03-01 DK DK11642594T patent/DK2276258T3/da active
- 1994-03-01 AT AT98119828T patent/ATE252806T1/de active
- 1994-03-01 ES ES98119828T patent/ES2209032T3/es not_active Expired - Lifetime
- 1994-03-01 HU HU9403127A patent/HU217744B/hu unknown
- 1994-03-01 RU RU94045924A patent/RU2119727C1/ru active
- 1994-03-01 CA CA 2134444 patent/CA2134444C/en not_active Expired - Lifetime
- 1994-03-01 AT AT94907708T patent/ATE185663T1/de active
- 1994-03-01 KR KR1019940703928A patent/KR100287490B1/ko not_active Expired - Lifetime
- 1994-03-01 RO RO94-01753A patent/RO115926B1/ro unknown
- 1994-03-01 DE DE1994633272 patent/DE69433272T2/de not_active Expired - Lifetime
- 1994-03-01 DK DK99113786T patent/DK0954182T3/da active
- 1994-03-01 EP EP19980119828 patent/EP0903944B1/de not_active Expired - Lifetime
- 1994-03-01 EP EP19990113786 patent/EP0954182B1/de not_active Expired - Lifetime
- 1994-03-01 JP JP51980994A patent/JP3610578B2/ja not_active Expired - Lifetime
- 1994-03-01 NZ NZ261907A patent/NZ261907A/en not_active IP Right Cessation
- 1994-03-01 PT PT99113786T patent/PT954182E/pt unknown
- 1994-03-01 EP EP20100011642 patent/EP2276258B1/de not_active Expired - Lifetime
- 1994-03-01 PT PT10011843T patent/PT2276259E/pt unknown
- 1994-03-01 DK DK94907708T patent/DK0638218T3/da active
- 1994-03-01 EP EP19940907708 patent/EP0638218B1/de not_active Expired - Lifetime
- 1994-03-01 ES ES94907708T patent/ES2137358T3/es not_active Expired - Lifetime
- 1994-03-01 TR TR17194A patent/TR28436A/xx unknown
- 1994-03-01 ES ES99113786T patent/ES2389797T3/es not_active Expired - Lifetime
- 1994-03-01 AU AU61161/94A patent/AU673244B2/en not_active Expired
- 1994-03-01 WO PCT/JP1994/000329 patent/WO1994021083A1/en active IP Right Grant
- 1994-03-01 PT PT10011642T patent/PT2276258E/pt unknown
- 1994-03-01 EP EP20100011843 patent/EP2276259B1/de not_active Expired - Lifetime
- 1994-03-01 CN CN94190162A patent/CN1076935C/zh not_active Expired - Lifetime
- 1994-03-01 ES ES10011843T patent/ES2389766T3/es not_active Expired - Lifetime
- 1994-03-01 DK DK98119828T patent/DK0903944T3/da active
- 1994-03-01 PL PL94306007A patent/PL173287B1/pl unknown
- 1994-03-01 BR BR9404321A patent/BR9404321A/pt not_active IP Right Cessation
- 1994-10-31 NO NO19944138A patent/NO314709B1/no not_active IP Right Cessation
- 1994-10-31 FI FI945106A patent/FI112579B/fi not_active IP Right Cessation
- 1994-11-01 OA OA60577A patent/OA10108A/en unknown
-
1995
- 1995-05-30 US US08/453,023 patent/US5590139A/en not_active Expired - Lifetime
-
1999
- 1999-12-15 GR GR990403218T patent/GR3032133T3/el unknown
-
2001
- 2001-02-15 NO NO20010762A patent/NO314710B1/no not_active IP Right Cessation
- 2001-02-28 JP JP2001055933A patent/JP3593988B2/ja not_active Expired - Lifetime
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69421135T2 (de) | Verfahren zur vermeidung von rundungsfehlern bei der inversen transformation von transformationskoeffizienten eines bewegtbildsignals | |
DE69512548T2 (de) | Verfahren und Vorrichtung zur Vermeidung von wiederholenden Zufallsfehlern in Transformationskoeffizienten von Bewegtbildsignalen | |
DE69331244T2 (de) | Kodierung und Dekodierung von digitalen Bildsignalen mit aus unterschiedlichen Filmquellenbildern erzeugten doppelten Vollbildern mit Halbbildern | |
DE69031045T2 (de) | Einrichtung zur adaptiven Zwischenbild-Prädiktionsdekodierung eines Videosignals | |
DE69320152T2 (de) | Dekodierer und Methode für digitales komprimiertes Fernsehsignal, der einen gemeinsamen Speicher benutzt zur Dekodierung und zur 2/3 Umwandlung | |
DE69424909T2 (de) | Verfahren und vorrichtung zur bildkodierung | |
DE69313692T2 (de) | Kodierung und Dekodierung zur Videokompression mit automatischer Halbbild/Bild Bewegungskompensation auf der Subpixelebene | |
DE69116869T2 (de) | Digitale bildkodierung mit einer zufallsabtastung der bilder | |
DE69323123T2 (de) | Kodierung und Dekodierung von Bildsignalen | |
DE69808519T2 (de) | Verfahren zur Bildsequenzcodierung | |
DE69328472T2 (de) | Kodierung/Dekodierung von Bewegtvideobildern | |
DE69604064T2 (de) | Bilddekodiergerät und methode unter verwendung eines nicht-referenzbildes als zusätzliche vorhersagequelle | |
DE69324958T2 (de) | Kompression und Dekompression von Bildern | |
DE69419842T2 (de) | Vorrichtungen zur Bildkodierung und -Dekodierung mit einer verbesserten Bewegungsvektorkodierungsmethode | |
DE69223560T2 (de) | Einrichtung zur Verminderung von Quantisierungsstörungen in einem Zwischenbild-Hybrid-Kodierungssystem mit Bewegungskompensation | |
DE69434862T2 (de) | Segmentierungs-basiertes entfernen von artefakten aus einem jpeg-bild | |
DE69418525T2 (de) | Bildsignalkodierung mit hoher Wirksamkeit | |
DE69123705T2 (de) | Verfahren zur Kompression von bewegten Bildsignalen nach dem Zeilensprungverfahren | |
DE69424591T2 (de) | Verfahren zur Kontrolle der Datenmenge und Kodierer zur Durchführung desselben. | |
DE69824554T2 (de) | Verfahren und anordnung zum erzeugen eines standbildes mit hoher auflösung | |
DE69633815T2 (de) | Vorrichtung zur Codierung und Decodierung eines digitalen Bildsignales | |
DE69624669T2 (de) | Videokodierer und -dekodierersystem und -methoden | |
DE69325771T2 (de) | Bildsignalkodierung | |
DE69226127T2 (de) | Effiziente Kodierungs- und Dekodierungsanordnungen zur Verarbeitung eines digitalen Bildsignals | |
DE69713923T2 (de) | System und Verfahren zur digitalen Bildkompression mit Bewegungsschätzung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |