DE60030911T2 - Bildverarbeitungsgerät und -verfahren und Speichermedium - Google Patents

Bildverarbeitungsgerät und -verfahren und Speichermedium Download PDF

Info

Publication number
DE60030911T2
DE60030911T2 DE60030911T DE60030911T DE60030911T2 DE 60030911 T2 DE60030911 T2 DE 60030911T2 DE 60030911 T DE60030911 T DE 60030911T DE 60030911 T DE60030911 T DE 60030911T DE 60030911 T2 DE60030911 T2 DE 60030911T2
Authority
DE
Germany
Prior art keywords
pixels
correlation
information
decoding
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60030911T
Other languages
English (en)
Other versions
DE60030911D1 (de
Inventor
Tetsujiro Shinagawa-ku Kondo
Naoki Shinagawa-ku Kobayashi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP16053099A external-priority patent/JP4099687B2/ja
Priority claimed from JP16052999A external-priority patent/JP4092608B2/ja
Application filed by Sony Corp filed Critical Sony Corp
Application granted granted Critical
Publication of DE60030911D1 publication Critical patent/DE60030911D1/de
Publication of DE60030911T2 publication Critical patent/DE60030911T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0021Image watermarking
    • G06T1/0028Adaptive watermarking, e.g. Human Visual System [HVS]-based watermarking
    • G06T1/0035Output size adaptive watermarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0021Image watermarking
    • G06T1/0028Adaptive watermarking, e.g. Human Visual System [HVS]-based watermarking
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking
    • G06T2201/0051Embedding of the watermark in the spatial domain
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking
    • G06T2201/0061Embedding of the watermark in each block of the image, e.g. segmented watermarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking
    • G06T2201/0065Extraction of an embedded watermark; Reliable detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking
    • G06T2201/0203Image watermarking whereby the image with embedded watermark is reverted to the original condition before embedding, e.g. lossless, distortion-free or invertible watermarking

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Image Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

  • Die vorliegende Erfindung betrifft generell Bildverarbeitungsgeräte, Bildverarbeitungsverfahren und Speichermedien. Insbesondere betrifft die Erfindung ein Bildverarbeitungsgerät und ein Bildverarbeitungsverfahren zum Einbetten von Information in Bilder mit minimalem Verlust bei der Qualität wiedergegebener Bilder und ohne Erhöhung der Datenmenge. Die Erfindung betrifft auch ein Speichermedium zum Speichern des oben beschriebenen Verfahrens.
  • Eine der Techniken zum Einbetten von Information ohne Erhöhung der Datenmenge ist, das niedrigstwertige Bit (LSB (least signifikant bit)) oder die niedrigeren zwei Bits von beispielsweise digitalen Audiodaten in einzubettende Information umzusetzen. Bei dieser Technik werden die niedrigeren Bits von digitalen Audiodaten, welche die Tonqualität nicht signifikant beeinflussen, einfach durch die einzubettende Information ersetzt. Demgemäss werden die digitalen Audiodaten bei der Wiedergabe so wie sie sind ohne Wiederherstellung der niedrigeren Bits in den originalen Zustand ausgegeben. Insbesondere werden, da es schwierig ist, die niedrigeren Bits, in die Information eingebettet ist, in den originalen Zustand wiederherzustellen, und auch da die niedrigeren Bits die Tonqualität nicht signifikant beeinflussen, die digitalen Audiodaten ausgegeben, während sie die in sie eingebettete Information aufweisen.
  • Gemäß der oben beschriebenen Technik wird jedoch nachteiligerweise ein sich vom originalen Signal unterscheidendes Signal ausgegeben, das, wenn das Signal Audiodaten ist, die Tonqualität, oder, wenn das Signal Videodaten ist, die Bildqualität bis zu einem gewissen Grad beeinflusst.
  • Gemäß einem Aspekt der vorliegenden Erfindung ist ein Bildverarbeitungsgerät, -verfahren und ein auf einem Speichermedium gespeichertes Computersteuerungsprogramm zum Einbetten von Information in Bilddaten bereitgestellt, wie sie in den beigefügten Ansprüchen 1 bis 5, 14, 23, 25, 27 und 29 dargelegt sind.
  • Gemäß einem anderen Aspekt der vorliegenden Erfindung ist ein Bildverarbeitungsgerät, -verfahren und ein auf einem Speichermedium gespeichertes Computersteuerungsprogramm zum Decodieren von mit Information in originale Bilddaten eingebetteten codierten Bilddaten und der Information bereitgestellt, wie sie in den beigefügten Ansprüchen 6 bis 13, 15 bis 22, 24, 26, 28 und 30 dargelegt sind.
  • Die Erfindung wird nun beispielhaft anhand der beigefügten Zeichnungen beschrieben, in denen durchwegs gleiche Teile mit gleichen Bezugszeichen bezeichnet sind und in denen:
  • 1 ein Blockdiagramm ist, das ein Beispiel der Konfiguration eines eine Ausführungsform der vorliegenden Erfindung aufweisenden Bildübertragungssystems darstellt;
  • 2 ein in einem in 1 gezeigten Einbettungscodierer zu codierendes Bild darstellt;
  • 3 die Energieverteilung von Information durch Beziehungen zwischen dem Abstand und der Korrelation darstellt und auch darstellt, dass die Energieverteilung durch Tauschen gewisser Linien der Information zerstört wird;
  • 4 ein Blockdiagramm ist, das ein Beispiel der Hardwarekonfiguration des in 1 gezeigten Einbettungscodierers darstellt;
  • 5 ein Blockdiagramm ist, das die funktionelle Konfiguration des in 4 gezeigten Einbettungscodierers gemäß einer ersten Ausführungsform der vorliegenden Erfindung darstellt;
  • 6 ein Flussdiagramm ist, das eine von dem in 5 gezeigten Einbettungscodierer ausgeführte Einbettcodierungsverarbeitung darstellt;
  • 7 Pixel darstellt, die bei der Ausführung der in 6 gezeigten Einbettcodierungsverarbeitung für jeden Bildblock auszuwählen sind, und auch die Dateneinbettungsoperation durch Drehen (Rotieren) der ausgewählten Pixel darstellt;
  • 8 ein Blockdiagramm ist, das ein Beispiel der Hardwarekonfiguration eines in 1 gezeigten Decodierers darstellt;
  • 9 ein Blockdiagramm ist, das die funktionelle Konfiguration des in 8 gezeigten Decodierers gemäß der ersten Ausführungsform der vorliegenden Erfindung darstellt;
  • 10 ein Flussdiagramm ist, das die von dem in 9 gezeigten Decodierer ausgeführte Decodierungsverarbeitung darstellt;
  • 11 Pixel darstellt, die bei der Ausführung der in 10 gezeigten Decodierungsverarbeitung für jeden Bildblock auszuwählen sind, und auch die Datendecodierungsoperation durch Umgekehrtdrehen (Umgekehrtrotieren) der ausgewählten Pixel darstellt;
  • 12 die bei dem in 10 gezeigten Schritt S15 ausgeführte Berechnungsverarbeitung von Differenzen zwischen Pixeln darstellt;
  • 13 ein Blockdiagramm ist, das die funktionelle Konfiguration des in 4 gezeigten Einbettungscodierers gemäß einer zweiten Ausführungsform der vorliegenden Erfindung darstellt;
  • 14 ein Flussdiagramm ist, das eine von dem in 13 gezeigten Einbettungscodierer ausgeführte Einbettcodierungsverarbeitung darstellt;
  • 15 Pixel darstellt, die bei der Ausführung der in 14 gezeigten Einbettcodierungsverarbeitung für jeden Bitblock auszuwählen sind, und auch die Dateneinbettungsoperation durch Berechnen eines exklusiven ODER zwischen einem der ausgewählten Pixel und zusätzlicher Information und durch Berechnen eines exklusiven ODER zwischen einem der ausgewählten Pixel und der umgekehrten zusätzlichen Information darstellt;
  • 16 ein Blockdiagramm ist, das die funktionelle Konfiguration des in 8 gezeigten Decodierers gemäß der zweiten Ausführungsform der vorliegenden Erfindung darstellt;
  • 17 ein Flussdiagramm ist, das eine von dem in 16 gezeigten Decodierer ausgeführte Decodierungsverarbeitung darstellt;
  • 18 Pixel darstellt, die bei der Ausführung der in 17 gezeigten Decodierungsverarbeitung für jeden Bildblock auszuwählen sind, und auch die Datendecodierungsoperation durch Berechnen eines exklusiven ODER zwischen einem der ausgewählten Pixel und zusätzlicher Information und durch Berechnen eines exklusiven ODER zwischen einem der ausgewählten Pixel und der umgekehrten zusätzlichen Information darstellt;
  • 19 die bei dem in 17 gezeigten Schritt S45 ausgeführte Berechnungsverarbeitung von Differenzen zwischen Pixeln darstellt;
  • 20 Pixel darstellt, die bei der Ausführung der in 17 gezeigten Decodierungsoperation für jeden Bildblock auszuwählen sind, und auch die Dateneinbettungsoperation durch Berechnen eines exklusiven ODER zwischen einem der ausgewählten Pixel wird zusätzlicher Information und durch Berechnung eines exklusiven ODER zwischen einem der umgekehrten ausgewählten Pixel und der zusätzlichen Information darstellt;
  • 21A einen Computer darstellt, in dem ein die Verarbeitung einer Ausführungsform der vorliegenden Erfindung implementierendes Programm zu installieren ist;
  • 21B Speichermedien darstellt, in denen ein die Verarbeitung einer Ausführungsform der vorliegenden Erfindung implementierendes Programm zu speichern ist;
  • 21C ein Programm darstellt, das die über einen Satelliten oder ein Netzwerk in einen Computer verbreitete Verarbeitung einer Ausführungsform der vorliegenden Erfindung implementiert; und
  • 22 ein Blockdiagramm ist, das ein Beispiel eines Computers darstellt, in welchem ein die Verarbeitung einer Ausführungsform der vorliegenden Erfindung implementierendes Programm zu installieren ist.
  • Die vorliegende Erfindung wird unten anhand der beigefügten Zeichnungen durch Darstellung bevorzugter Ausführungsformen detailliert beschrieben.
  • 1 ist ein schematisches Diagramm, das ein eine Ausführungsform der vorliegenden Erfindung aufweisendes Bildübertragungssystem darstellt. In dieser Beschreibung kann ein „System" eine aus mehreren Geräten logisch gebildete Einheit sein, und es ist nicht notwendig, dass die Geräte im gleichen Gehäuse enthalten sind.
  • Nach 1 ist das Bildübertragungssystem aus einem Codierungsgerät 10 und einem Decodierungsgerät 20 gebildet. Das Codierungsgerät 10 codiert beispielsweise ein Bild und gibt die codierten Daten aus. Das Decodierungsgerät 20 gibt das originale Bild aus den codierten Daten wieder.
  • Insbesondere speichert eine Bilddatenbank 1 zu codierende Bilder (beispielsweise digitale Bilder), und ein Bild wird von der Bilddatenbank 1 ausgelesen und einem Einbettungscodierer 3 zugeführt. Eine Zusätzlichinformationsdatenbank 2 speichert zusätzliche Information (digitale Daten) als in das zu codierende Bild einzubettende Information. Die zusätzliche Information wird von der Zusätzlichinformationsdatenbank 2 gelesen und dem Einbettungscodierer 3 zugeführt.
  • Beim Empfang des Bildes von der Bilddatenbank 1 und zusätzlichen Information von der Zusätzlichinformationsdatenbank 2 codiert der Einbettungscodierer die Bilder entsprechend der von der Zusätzlichinformationsdatenbank zugeführten zusätzlichen Information, so dass das codierte Bild durch Benutzung der Energieverteilung des von der Bilddatenbank 1 zugeführten Bildes decodiert werden kann. Das heißt, der Einbettungscodierer 3 codiert das Bild durch Einbetten der zusätzlichen Information in das Bild, so dass das codierte Bild durch Benutzung der Energieverteilung des Bildes decodiert werden kann, und gibt die codierten Daten aus. Die codierten Daten können dann in einem Speichermedium 4 wie beispielsweise einer magnetooptischen Platte, einer Magnetplatte, einer optischen Platte, einem Magnetband, einer PD-Platte oder einem Halbleiterspeicher aufgezeichnet werden. Alternativ dazu können die codierten Daten über ein Übertragungsmedium 5 wie beispielsweise ein terrestisches Rundfunksignal, ein Satellitenrundfunksignal, ein CATV-Netzwerk (CATV = cable television (Kabelfernsehen)), das Internet oder ein öffentliches Netzwerk übertragen werden.
  • Das Decodierungsgerät 20 ist aus einem Decodierer 6 gebildet, in welchem über das Speichermedium 4 oder das Übertragungsmedium 5 bereitgestellte codierte Daten empfangen werden. Der Decodierer 6 decodiert außerdem die codierten Daten in das originale Bild und in die zusätzliche Information durch Benutzung der Energieverteilung des Bildes. Das decodierte Bild wird dann einem Monitor (nicht gezeigt) zugeführt und angezeigt. Die decodierte zusätzliche Information wird zur Ausführung einer vorbestimmten Verarbeitung benutzt.
  • Das Prinzip der vom Einbettungscodierer 3 ausgeführten Codierungsoperation und der von dem in 1 gezeigten Decodierer 6 ausgeführten Decodierungsoperation wird unten beschrieben.
  • Generell weist was „Information" genannt wird eine Energieverteilung (Entopieverteilung) auf, die als Information (nützliche Information bzw. Nutzinformation) identifiziert wird. Insbesondere kann beispielsweise ein durch Fotografieren einer Landschaft erhaltenes Bild als ein Bild der Landschaft identifiziert werden. Dies deshalb, weil das Bild (die Werte der das Bild bildenden Pixel) eine mit der Landschaft korrespondierende Energieverteilung aufweist. Ein Bild ohne eine Energieverteilung ist nur Rauschen und als Information nutzlos.
  • Folglich kann, selbst wenn die von einem Stück Nutzinformation besessene Energieverteilung durch Ausführung einer gewissen Operation zerstört wird, die originale Information durch Wiederherstellen der zerstörten Energieverteilung in den originalen Zustand wiedergegeben werden. Das heißt die durch Codieren der Information erhaltenen codierten Daten können durch Benutzung der in der Information inhärenten Energieverteilung in die originale Information decodiert werden.
  • Die Energieverteilung der Information kann beispielsweise durch Korrelation dargestellt sein. Die Korrelation von Information ist die Korrelation zwischen den Elementen der Information (wenn beispielsweise die Information ein Bild ist, die das Bild bildenden Pixel oder Linien), das heißt die Selbst- bzw. Autokorrelation oder der Abstand zwischen den die Information bildenden Elementen.
  • Ein aus H Linien gebildetes Bild wie beispielsweise das in 2 gezeigte sei als ein Beispiel genommen. Was die Korrelation zwischen der ersten Linie und einer anderen Linie wie beispielsweise bei (A) der 3 dargestellt betrifft, so ist die Korrelation der ersten Linie mit einer nahe bei der ersten Linie befindlichen Linie (eine obere Linie des in 2 gezeigten Bildes) groß. Umgekehrt ist die Korrelation der ersten Linie mit einer weit von der ersten Linie entfernt positionierten Linie (eine untere Linie des in 2 gezeigten Bildes) klein. In anderen Worten weist das in 2 gezeigte Bild eine Korrelationsvariation auf, bei der eine näher bei der ersten Linie liegende Linie einen größeren Korrelationspegel aufweist und eine weiter von der ersten Linie weiter entfernte Linie einen kleineren Korrelationspegel aufweist.
  • Bei dem in 2 gezeigten Bild sind die näher bei der ersten Linie befindliche M-te Linie und die weiter von der ersten Linie entfernte N-te Linie getauscht (1 < M < N ≤ H), und nach Berechnung der Korrelation zwischen der ersten Linie und jeder von der M-ten Linie und N-ten Linie kann das resultierende Bild wie in 3B gezeigt angezeigt werden. Das heißt, das Bild, bei dem die M-te Linie und die N-te Linie getauscht worden sind, wird die Korrelation der ersten Linie mit der näher bei der ersten Linie befindlichen M-ten Linie (die mit der N-ten Linie vor dem Tausch korrespondiert) kleiner, während die Korrelation der ersten Linie mit der von der ersten Linie weiter entfernten N-ten Linie (die mit der M-ten Linie vor dem Tausch korrespondiert) größer wird.
  • Infolgedessen wird bei der bei (B) der 3 gezeigten Korrelation die originale Korrelationsvariation zerstört. Generell kann jedoch, was Bilder betrifft, die zerstörte Korrelationsvariation durch Benutzung der originalen Korrelationsvariation im originalen Zustand wiederhergestellt werden. Das heißt, die bei (B) der 3 gezeigte Korrelationsvariation ist in Form der vom Bild besessenen originalen Korrelationsvariation unnatürlich (inkorrekt), und die M-te Linie und die N-te Linie sollten getauscht werden. Infolgedessen kann die unnatürliche Variation in die bei (A) der 3 gezeigte korrekte Variation wiederhergestellt werden, so dass das originale Bild decodiert werden kann.
  • Gemäß dem in 2 und (A) und (B) der 3 gezeigten Beispiel wird das Bild durch Tauschen der Linien codiert. In diesem Fall bestimmt der Einbettungscodierer 3, welche Linien entsprechend der zusätzlichen Information bewegt und getauscht werden sollten. Indessen bringt der Decodierer 6 die getauschten Linien durch Benutzung der Korrelation in die originalen Positionen zurück, das heißt er ersetzt das codierte Bild durch das originale Bild und decodiert dadurch das codierte Bild. Während der Decodierungsoperation detektiert der Decodierer 6, welche Linien bewegt und getauscht worden sind, um die in das Bild eingebettete zusätzliche Information zu decodieren.
  • 4 stellt ein Beispiel der Konfiguration des in 1 gezeigten Einbettungscodierers 3 dar, der durch Einbetten zusätzlicher Information in ein Bild eine Einbettcodierung ausführt, so dass das codierte Bild durch Benutzung der Korrelation des Bildes in das originale Bild decodiert werden kann.
  • Von der Bilddatenbank 1 ausgegebene Bilder werden einem Rahmenspeicher 31 zugeführt, in welchem die Bilder beispielsweise in Einheiten von Rahmen (frames) zeitweilig gespeichert werden.
  • Eine zentrale Verarbeitungseinheit (CPU (central processing unit)) 32 führt eine unten beschriebene Einbettcodierungsverarbeitung durch Ausführen eines in einem Programmspeicher 33 gespeicherten Programms aus. Das heißt, die CPU 32 bettet von der Zusätzlichinformationsdatenbank 2 zugeführte zusätzliche Information in das im Rahmenspeicher 31 gespeicherte Bild ein.
  • Der Programmspeicher 33 ist beispielsweise aus einem Nurlesespeicher (ROM (read only memory)) oder einem Direktzugriffspeicher (RAM (random access memory)) gebildet und speichert ein Computerprogramm zum Befähigen der CPU 32, die Einbettcodierungsverarbeitung auszuführen. Eine Ausgabeschnittstelle 34 liest ein Bild, in das zusätzliche Information eingebettet ist, aus dem Rahmenspeicher 31 und gibt es als codierte Daten aus.
  • Der Rahmenspeicher 31 ist aus mehreren Speicheradressbereichen bzw. Banken (banks) gebildet, so dass mehrere Rahmen gespeichert werden können. Durch Schalten der Banken speichert der Rahmenspeicher 31 gleichzeitig das von der Bilddatenbank 1 zugeführte Bild und die von der CPU 32 zu verarbeitenden Pixel des Bildes. Gleichzeitig gibt der Rahmenspeicher 31 auch das Bild aus, in das die Information (codierte Daten) eingebettet ist. Mit dieser Anordnung können die codierten Daten in Realzeit ausgegeben werden, selbst wenn das von der Bilddatenbank 1 zugeführte Bild ein Bewegtbild ist.
  • 5 stellt ein Beispiel der funktionellen Konfiguration des Einbettungscodierers 3, der durch Ausführen des im Programmspeicher 33 gespeicherten Programms durch die in 4 gezeigte CPU 32 implementiert werden kann, entsprechend einer ersten Ausführungsform der vorliegenden Erfindung dar.
  • Zu codierende Bilder werden einer Blockteilungseinheit 41 beispielsweise in Einheiten von Rahmen zugeführt. Die Blockteilungseinheit 41 teilt ein Einrahmenbild in Blöcke, deren jeder eine vorbestimmte Größe aufweist, und führt die geteilten Blöcke einer Bitrotations- bzw. Bitdrehungseinheit 42 zu.
  • Nicht nur die Bildblöcke aus der Blockteilungseinheit 41, sondern auch zusätzliche Information, die in ein Bild einzubetten ist, werden der Bitdrehungseinheit 42 zugeführt. Die Bitdrehungseinheit 42 wählt gewisse der jeden Bildblock bildenden Pixel aus und dreht den Wert der Pixel (nachfolgend manchmal als „ausgewählte Pixel" bezeichnet) und bettet dadurch die zusätzliche Information in die ausgewählten Pixel ein. Der Block, in den die zusätzliche Information in die ausgewählten Pixel eingebettet ist, wird einem Codiertbildspeicher 43 als ein codierter Block zugeführt.
  • Der Codiertbildspeicher 43 speichert codierte Blöcke, die von der Bitdrehungseinheit 42 zugeführt werden, sequentiell, und wenn codierte Blöcke für einen einzelnen Rahmen gespeichert werden, gibt der Codiertbildspeicher 43 die codierten Blöcke als codierte Daten aus.
  • Es wird nun anhand des Flussdiagramms der 6 eine Beschreibung einer von dem in 5 gezeigten Einbettungscodierer ausgeführten Einbettcodierungsverarbeitung gegeben.
  • Wie oben beschrieben werden der Blockteilungseinheit 41 zu codierende Bilder in Einheiten von Rahmen zugeführt. Beim Empfang eines Bildes für einen einzelnen Rahmen teilt die Blockteilungseinheit 41 beim Schritt S1 das Einrahmenbild in Blöcke, deren jeder eine vorbestimmte Größe aufweist. Insbesondere teilt die Blockteilungseinheit 41 das Bild, wie bei (A) der 7 gezeigt, in 4 × 4-Pixel-Bildblöcke. Die durch die Bildteilungseinheit 41 geteilten Bildblöcke werden dann der Bitdrehungseinheit 42 in beispielsweise einer Rasterabtastordnung zugeführt.
  • Beim Empfang des Bildblocks von der Blockteilungseinheit 41 stellt die Bitdrehungseinheit 42 beim Schritt S2 den empfangenen Bildblock so ein, dass er der laufende Bildblock ist, und wählt gewisse der den laufenden Block bildenden Pixel aus. Insbesondere wählt die Bitdrehungseinheit 42 unter den Pixeln, die den laufenden Block bilden, Pixel wie beispielsweise die bei (A) der 7 gezeigten und durch die schwarzen Abschnitte • und die schraffierten Abschnitte angezeigten entsprechend einem Schachtbrettmuster aus. Das heißt, beim Schritt S2 wird eine Hälfte der den Bildblock bildenden Pixel ausgewählt.
  • Beim Schritt S3 werden die Werte der ausgewählten Pixel durch die Bitdrehungseinheit 42 entsprechend der zugeführten zusätzlichen Information gedreht (rotiert), so dass die zusätzliche Information in die ausgewählten Pixel eingebettet werden kann. Insbesondere dreht (rotiert) die Bitdrehungseinheit 42 die Werte der durch die bei (A) der 7 gezeigten schraffierten Abschnitte angezeigten ausgewählten Pixel in der Richtung vom niedrigstwertigen Bit (LSB (least significant bit)) zum höchtwertigen Bit (MSB (most significant bit)) (nachfolgend manchmal als „Linksdrehung (Linksrotation)" bezeichnet) durch die mit dem Wert der zusätzlichen Information korrespondierenden Anzahl von Bits.
  • Der oben benutzte Ausdruck „Drehung (Rotation)" ist ähnlich zu einer Bitverschiebung, jedoch werden beim Ausfüuren einer Drehung in der Richtung vom LSB zum MSB die MSBs nicht verworfen, sondern zu den LSBs verschoben. Wenn umgekehrt eine Drehung in der Richtung vom MSB zum LSB ausgeführt wird, werden die LSBs nicht verworfen, sondern zu den MSBs verschoben.
  • Die Bitdrehungseinheit 42 dreht auch den Wert der durch die bei (A) der 7 gezeigten schwarzen Abschnitte • angezeigten ausgewählten Pixel in der Richtung vom MSB zum LSB (nachfolgend manchmal als „Rechtsdrehung (Rechtsrotation)" bezeichnet) durch die mit dem Wert der zusätzlichen Information korrespondierenden Anzahl von Bits.
  • Die Pixel, deren Werte nach links zu drehen sind, und diejenigen, die nach rechts zu drehen sind, können als „Linksdrehungspixel (Linksrotationspixel)" bzw. „Rechtsdrehungspixel (Rechtsrotationspixel)" bezeichnet werden.
  • Bei dieser Ausführungsform sind die Linksdrehungspixel und die Rechtsdrehungspixel in jedem Block in der diagonalen Richtung abwechseln angeordnet, wobei eine Hälfte der ausgewählten Pixel nach links gedreht ist, während die andere Hälfte nach rechts gedreht ist.
  • Es sei nun angenommen, dass ein Pixel acht Bits aufweist, und dass der Wert eines Linksdrehungspixels 00111101B (B stellt dar, dass die vorhergehende Zahl binär ist) und der Wert eines Rechtsdrehungspixels 10010111B ist. Es sei auch angenommen, dass die zusätzliche Information „2" ist. Das Linksdrehungspixel 00111101B und das Rechtsdrehungspixel 10010111B werden um zwei Bits jeweils nach links bzw. rechts gedreht, was, wie bei (B) der 7 gezeigt, in 11110100B bzw. 11100101B resultiert. Ähnlich werden die anderen Linksdrehungspixel und die anderen Rechtsdrehungspixel im Bildblock entsprechend der zusätzlichen Information gedreht.
  • Wenn der Pixelwert durch acht Bits dargestellt ist, kann er um 0 bis 7 Bits gedreht werden, in welchem Fall 0 bis 7-Bit zusätzliche Information (durch drei Bits dargestellt) in den Einbildblock eingebettet werden kann.
  • Der Bildblock, dessen ausgewählte Pixel beim Schritt S3 gedreht worden sind, wird dem Codiertbildspeicher 43 als ein codierter Block zugeführt und darin gespeichert. Dann wird beim Schritt S4 festgestellt, ob es irgendeinen Bildblock (nachfolgend als ein „nicht verarbeiteter Block" bezeichnet) in der Bitdrehungseinheit 42 gibt, und wenn dem so ist, wird einer der nicht verarbeiteten Bildblöcke so eingestellt, dass er ein laufender Block ist. Der Prozess kehrt dann zum Schritt S2 zurück, und die korrespondierende Verarbeitung wird wiederholt.
  • Wenn beim Schritt S4 festgestellt wird, dass es keinen nicht verarbeitenden Block gibt, das heißt, dass alle codierten Blöcke für einen einzelnen Rahmen im Codiertbildspeicher 43 gespeichert sind, werden die codierten Blöcke aus dem Codiertbildspeicher 43 gelesen. Der Prozess geht dann zum Schritt S5 weiter, bei dem festgestellt wird, ob es noch mehr Rahmen gibt, die in der Blockteilungseinheit 41 zu verarbeiten sind. Wenn das Ergebnis des Schritts S5 ja ist, kehrt der Prozess zum Schritt S1 zurück, und es wird die korrespondierende Verarbeitung wiederholt.
  • Wenn beim Schritt S5 festgestellt wird, dass es keine von der Blockteilungseinheit 41 zu verarbeitenden Rahmen mehr gibt, wird die Einbettcodierungsverarbeitung vollendet.
  • Wie oben beschrieben werden gewisse der das Bild bildenden Pixel ausgewählt, und die Werte der ausgewählten Pixel werden entsprechend der zusätzlichen Information gedreht und dadurch die zusätzliche Information in das Bild eingebettet. Es ist auf diese Weise mögliche, die zusätzliche Information mit einem minimalen Verlust an der Bildqualität und ohne Erhöhung der Datenmenge einzubetten.
  • Die ausgewählten Pixel, in welche die zusätzliche Information eingebettet ist (durch die schwarzen Abschnitte • und die schraffierten Abschnitte bei (A) der 7 angezeigte Pixel) können, wie unten beschrieben, durch Benutzung der Korrelation des Bildes, das heißt der Korrelation zwischen den ausgewählten Pixeln und den Pixeln ohne die zusätzliche Information (bei (A) der 7 durch 0 angezeigte Pixel) ohne einen Systemverwaltungsplatzbedarf bzw. Aufwand bzw. Überhang (overhead) in die originalen Pixel und in die zusätzliche Information decodiert (wiederhergestellt) werden. Demgemäss wird die Verschlechterung der Bildqualität, die herkömmlicherweise durch Einbetten der zusätzlichen Information verursacht wird, bei dem resultierenden codierten Bild (wiedergegebenes Bild) nicht beobachtet.
  • 8 stellt ein Beispiel der Konfiguration des in 1 gezeigten Decodierers 6 zur Decodierung der von dem in 5 gezeigten Einbettungscodierer 3 ausgegebenen codierten Daten in das originale Bild und in die zusätzliche Information durch Benutzung der Korrelation des Bildes dar.
  • Die codierten Daten, das heißt das Bild, in das die zusätzliche Information eingebettet ist (nachfolgend manchmal als „eingebettetes Bild" bezeichnet), wird einem Rahmenspeicher 51 zugeführt. Der Rahmenspeicher 51 speichert zeitweilig eingebettete Bilder beispielsweise in Einheiten von Rahmen. Der Rahmenspeicher 51 ist ähnlich wie der in 4 gezeigte Rahmenspeicher 31 konfiguriert, und durch Schalten von für den Rahmenspeicher 51 bereitgestellten Bänken (banks) können eingebettete Bilder in Echtzeit verarbeitet werden, selbst wenn sie Bewegtbilder sind.
  • Eine Ausgabeschnittstelle 52 liest ein aus dem Rahmenspeicher 51 durch Ausführung einer wie unten beschriebenen Decodierungsverarbeitung durch eine CPU 53 erhaltenes Bild (decodiertes Bild) aus dem Rahmenspeicher 51 und gibt das Bild aus.
  • Die CPU 53 führt durch Ausführen eines in einem Programmspeicher 54 gespeicherten Programms eine Decodierungsverarbeitung aus. Das heißt, die CPU 53 decodiert das im Rahmenspeicher 51 gespeicherte eingebettete Bild durch Benutzung der Korrelation des Bildes in das originale Bild und in die zusätzliche Information.
  • Der Programmspeicher 54 ist ähnlich wie der in 4 gezeigte Programmspeicher 33 konfiguriert und speichert das Computerprogramm zum Befähigen der CPU 53, die Decodierungsverarbeitung auszuführen.
  • 9 stellt ein Beispiel der funktionellen Konfiguration des Decodierers 6, der durch Ausführen des im Programmspeicher 54 durch die in 8 gezeigte CPU 53 gespeicherten Programms implementiert werden kann, entsprechend der ersten Ausführungsform der vorliegenden Erfindung dar.
  • Das eingebettete Bild wird einer Blockteilungseinheit 61 beispielsweise in Einheiten von Rahmen als codierte Daten zugeführt. Wie bei der in 5 gezeigten Blockteilungseinheit 41 teilt die Blockteilungseinheit 61 das eingebettete Bild in Blöcke, deren jeder eine vorbestimmte Größe aufweist, das heißt in codierte Blöcke, und führt sie einer Bitumgekehrtdrehungseinheit (Bitumgekehrtrotationseinheit) 62 sequentiell zu.
  • Aus den Pixeln, die jeden von der Blockteilungseinheit 61 zugeführten codierten Block bilden, wählt die Bitumgekehrtdrehungseinheit 62 Pixel aus, die bei den gleichen Positionen wie die von der in 5 gezeigten Bitdrehungseinheit 42 ausgewählten angeordnet sind. Die Bitumgekehrtdrehungseinheit 62 dreht (rotiert) dann die Werte der ausgewählten Pixel um die mit einem von einem Drehungsbitregister (Rotationsbitregister) 63 zugeführten Drehungswert (Rotationswert) korrespondierenden Anzahl von Bits und führt den resultierenden Wert einer Differenzwertberechnungseinheit 64 zu. Die Bitumgekehrtdrehungseinheit 62 dreht (rotiert) auch die Werte der ausgewählten Pixel um die in einem Optimaldrehungsbit-Speicherregister 69 gespeicherte Anzahl von Optimaldrehungsbits. Als ein Resultat wird der codierte Block in den originalen Bildblock decodiert, der dann einem Decodiertbildspeicher 71 zugeführt wird.
  • Das Drehungsbitregister 63 stellt den Drehungswert als die Anzahl von Bits ein, um die der Pixelwert zu drehen ist, und führt den eingestellten Drehungswert der Bitumgekehrtdrehungseinheit 62 und einem Schalter 65 zu. Insbesondere wenn der Pixelwert durch th_r Bits dargestellt ist, kann er von 0 bis th_r-1 Bits gedreht werden (eine Drehung um eine Anzahl gleich oder größer als th_r Bits erhält das gleiche Resultat wie eine Drehung um eine korrespondierende Anzahl von 0 bis th_r-1 Bits) In diesem Fall stellt das Drehungsbitregister 63 sequentiell 0 bis th_r-1 Bits als die Drehungswerte ein und führt sie der Bitumgekehrtdrehungseinheit 62 und dem Schalter 65 zu.
  • Beim Empfang des codierten Blocks, in welchem die Werte der ausgewählten Pixel gedreht worden sind, von der Bitumgekehrtdrehungseinheit 62 berechnet die Differenzwertberechnungseinheit 64 einen Korrelationswert zwischen jedem ausgewählten Pixel und dem benachbarten Pixel, beispielsweise die Summe der absoluten Differenzwerte (nachfolgend als die „Summe absoluter Differenzen" bezeichnet). Die Summe absoluter Differenzen der Pixelwerte werden einem Schalter 66 und einem Komparator 68 zugeführt.
  • Der Schalter 65 empfängt den Drehungswert vom Drehungsbitregister 63 und führt ihn unter der Steuerung des Komparators 68 dem Optimaldrehungsbit-Speicherregister 69 zu. Der Schalter 66 empfängt den Korrelationswert von der Differenzwertberechnungseinheit 64 und führt ihn unter der Steuerung des Komparators 68 einem Minimumdifferenzwert-Speicherregister 67 zu.
  • Das Minimumdifferenzwert-Speicherregister 67 speichert den von der Differenzwertberechnungseinheit 64 über den Schalter 66 zugeführten Korrelationswert als einen sich auf den laufend bearbeiteten codierten Block (nachfolgend manchmal als der „laufend codierte Block" bezeichnet) beziehenden Maximumkorrelationswert. Bei dieser Ausführungsform wird, wie oben dargelegt, die Summe der absoluten Differenzen zwischen den individuellen ausgewählten Pixeln und den benachbarten Pixeln als der Korrelationswert in Bezug auf den codierten Block benutzt. Demgemäss ist der Maximumkorrelationswert die Minimumsumme der absoluten Differenzen der Pixelwerte.
  • Die im Minimumdifferenzwert-Speicherregister 67 als der Maximumkorrelationswert gespeicherte Minimumsumme der absoluten Differenzen wird dem Komparator 68 zugeführt. Der Komparator 68 vergleicht dann die Summe der von der Differenzwertberechnungseinheit 64 ausgegebenen Summe der absoluten Differenzen mit der im Minimumdifferenzwert-Speicherregister 67 gespeicherten Minimumsumme der absoluten Differenzen, und auf Basis des Vergleichsresultats steuert der Komparator 68 die Schalter 65 und 66.
  • Das Optimaldrehungsbit-Speicherregister 69 empfängt den Drehungswert aus dem Drehungsbitregister 63 über den Schalter 65 und speichert ihn als ein Optimaldrehungsbit, das eine optimale Anzahl von Bits ist, um welche die Werte der ausgewählten Pixel des codierten Blocks zu drehen sind. Das Optimaldrehungsbit-Speicherregister 69 führt das Optimaldrehungsbit der Bitumgekehrtdrehungdseinheit 62 und einem Decodiertzusätzlichinformationsspeicher 70 geeignet zu.
  • Der Decodiertzusätzlichinformationsspeicher 70 speichert den mit dem vom Optimaldrehungsbit-Speicherregister 69 zugeführten Optimaldrehungsbit korrespondierenden Wert zeitweilig als die in den codierten Block eingebettete decodierte zusätzliche Information und gibt sie aus. Der Decodiertbildspeicher 71 speichert den von der Bitumgekehrtdrehungseinheit 62 ausgegebenen codierten Block, dessen Werte der ausgewählten Pixel um das Optimaldrehungsbit gedreht worden sind, zeitweilig als den decodierten Bildblock. Wenn decodierte Bilder für einen einzelnen Rahmen gespeichert sind, gibt sie der Decodiertbildspeicher 71 aus.
  • Eine von dem in 9 gezeigten Decodierer 6 ausgeführte Einbettdecodierungsverarbeitung wird unten anhand des Flussdiagramms der 10 beschrieben.
  • Wie oben dargelegt werden der Blockteilungseinheit 61 eingebettete Bilder in Einheiten von Rahmen zugeführt. Beim Empfang der eingebetteten Bilder für einen einzelnen Rahmen teilt die Blockteilungseinheit 61 beim Schritt S11 wie im Fall der in 5 gezeigten Blockteilungseinheit 41 das eingebettete Bild in Blöcke, deren jeder eine vorbestimmte Größe aufweist. Das heißt, die Blockteilungseinheit 61 teilt das eingebettete Bild, wie bei (A) der 11 gezeigt, in codierte 4 × 4-Pixel-Blöcke. Die von der Blockteilungseinheit 61 geteilten codierten Blöcke werden der Bitumgekehrtdrehungseinheit 62 in beispielsweise einer Rasterabtastordnung sequentiell zugeführt.
  • Beim Empfang des codierten Blocks von der Blockteilungseinheit 61 stellt die Bitumgekehrtdrehungseinheit 62 den codierten Block so ein, dass er der laufende codierte Block ist, und wählt gewisse der den laufenden codierten Block bildenden Pixel aus. Insbesondere wählt die Bitumgekehrtdrehungseinheit 62 die gleichen Pixel, die in 11 durch die schraffierten Abschnitte und die schwarzen Abschnitte • gezeigt sind, wie die von der in 5 gezeigten Bitdrehungseinheit 42 ausgewählten aus. Die Bitumgekehrtdrehungseinheit 62 stellt auch die Pixel, die von der in 5 gezeigten Bitdrehungseinheit 42 als die Linksdrehungspixel und die Rechtsdrehungspixel bestimmt worden sind, als Rechtsdrehungspixel bzw. Linksdrehungspixel ein.
  • Das heißt, unter den codierten ausgewählten Pixeln werden die von der Bitdrehungseinheit 42 als die Linksdrehungspixel bestimmten Pixel um die mit der in das Bild eingebetteten zusätzlichen Information korrespondierende Anzahl von Bits nach rechts gedreht. Ähnlich werden die von der Bitdrehungseinheit 42 als die Rechtsdrehungspixel bestimmten Pixel um die mit der in die codierten Pixel eingebetteten zusätzlichen Information korrespondierende Anzahl von Bits nach links gedreht. Als ein Resultat können die codierten Pixel in die originalen Pixel decodiert werden.
  • Die Bitumgekehrtdrehungseinheit 62 stellt deshalb die Pixel, die als die Linksdrehungspixel und als die Rechtsdrehungspixel bestimmt worden sind, so ein, dass sie Rechtsdrehungspixel bzw. Linksdrehungspixel sind. Demgemäss werden im Gegensatz zu der in Bezug auf (A) der 7 beschriebenen Drehungsoperation in der Bitumgekehrtdrehungseinheit 62 die durch die bei (A) der 11 gezeigten schraffierten Abschnitte angezeigten Pixel so bestimmt, dass sie Rechtsdrehungspixel sind, während die durch die bei (A) der 11 gezeigten schwarzen Abschnitte • angezeigten Pixel so bestimmt werden, dass sie Linksdrehungspixel sind.
  • Der Prozess geht dann zum Schritt S13 weiter. Beim Schritt S13 initialisiert das Drehungsbitregister 63 den Drehungswert n so, dass er 0 ist, und das Minimumdifferenzwert-Speicherregister 67 initialisiert den Wert (Minimumsumme absoluter Differenzen) so, dass er ein vorbestimmte großer Wert (beispielsweise der Maximumwert, der gespeichert werden kann) ist. Danach führt das Drehungsbitregister 63 den Drehungswert n der Bitumgekehrtdrehungseinheit 62 zu und gibt ihn auch an den normalerweise ausgeschalteten Schalter 65 aus, und der Prozess geht zum Schritt S14 weiter.
  • Beim Schritt S14 dreht die Bitumgekehrtdrehungseinheit 62 die Werte der Linksdrehungspixel und die Werte der Rechtsdrehungspixel des laufenden codierten Blocks um den vom Drehungsbitregister 63 zugeführten Drehungswert n nach links bzw. nach rechts und führt den resultierenden laufenden codierten Block der Differenzwertberechnungseinheit 64 zu.
  • Es sei nun angenommen, dass der Pixelwert durch acht Bits dargestellt ist, und dass der Wert eines Rechtsdrehungspixels 11110100B und der Wert eines Linksdrehungspixels 11100101B ist. Es sei auch angenommen, dass der Drehungswert n gleich „2" ist. Das Rechtsdrehungapixel 11110100B wird um zwei Bits nach rechts gedreht, während das Linksdrehungspixel 11100101B um zwei Bits nach links gedreht wird was, wie bei (B) der 11 gezeigt, in 00111101B bzw. 10010111B resultiert. In gleicher Weise werden die anderen Linksdrehungspixel und die anderen Rechtsdrehungspixel im laufenden codierten Block entsprechend dem Drehungswert n nach links bzw. nach rechts gedreht.
  • Beim Empfang des laufenden codierten Blocks, der die um n Bits gedrehten Pixelwerte von der Bitumgekehrtdrehungseinheit 62 aufweist, berechnet die Differenzwertberechnungseinheit 64 beim Schritt S15 die Summe der individuellen ausgewählten Pixel und der benachbarten Pixel, das heißt in diesem Fall die Summe der absoluten Differenzen zwischen den ausgewählten Pixeln und den benachbarten Pixeln, als den Korrelationswert des laufenden codierten Blocks (Korrelationswert der den laufenden codierten Block bildenden Pixel). Insbesondere sind im codierten Block, wie in 12 dargestellt, die durch die schwarzen Abschnitte • und die schraffierten Abschnitte angezeigten ausgewählten Pixel neben wenigstens einem einzelnen Pixel angeordnet, das während der Einbettverarbeitung nicht gedreht worden ist (nachfolgend manchmal als ein „nicht ausgewähltes Pixel" bezeichnet). In der Differenzwertberechnungseinheit 64 werden die absoluten Differenzen zwischen jedem ausgewählten Pixel und dem benachbarten nicht ausgewählten Pixel berechnet, und die Summe solcher absoluter Differenzen wird so bestimmt, dass sie der Korrelationswert des laufenden codierten Blocks ist.
  • Wenn wie bei dem in 12 gezeigten Fall ein ausgewähltes Pixel neben mehreren nicht ausgewählten Pixeln angeordnet ist, wird, wie durch die in 12 gezeigten durchgezogenen Pfeile angezeigt, die absolute Differenz zwischen dem ausgewählten Pixel und jedem der nicht ausgewählten Pixel berechnet.
  • Bei dem oben beschriebenen Beispiel wird der Korrelationswert durch Benutzung nur der Pixel im laufenden codierten Block erhalten. Jedoch kann der Korrelationswert durch Benutzung von Pixeln eines Blocks anders als der laufende codierte Block bestimmt werden.
  • Wenn beispielsweise ein eingebettetes Bild bildende codierte Blöcke als die laufenden codierten Blöcke in einer Rasterabtastordnung verarbeitet werden, sind codierte Blöcke, die einem laufenden codierten Block links, oben und oben links benachbart sind, schon in die originalen Pixelwerte decodiert worden. Gewisse Pixel, die dem laufenden codierten Block links, oben, rechts oder unten benachbart sind, sind während der Einbettcodierungsverarbeitung noch nicht gedreht worden (nicht ausgewählte Pixel).
  • Unter den Pixeln außerhalb des laufenden codierten Blocks können die Pixel, welche vor und nach der Einbettcodierungsverarbeitung die gleichen bleiben (durch die in 12 gezeigten gestrichelten Kreise angezeigt) zur Berechnung absoluter Differenzen mit den ausgewählten Pixeln des laufenden codierten Blocks benutzt werden, wie es durch die gestrichelten Pfeile in 12 angezeigt ist.
  • Zusätzlich wird bei dem oben beschriebenen Beispiel die absolute Differenz zwischen dem ausgewählten Pixel und jedem der benachbarten nicht ausgewählten Pixel zur Bestimmung des Korrelationswerts des codierten Blocks benutzt. Jedoch kann die absolute Differenz zwischen dem ausgewählten Pixel und nicht ausgewählten Pixeln, die nicht benachbart sind, aber das ausgewählte Pixel umgeben, benutzt werden.
  • Alternativ dazu können nicht nur Pixel, die dem ausgewählten Pixel räumlich benachbart sind, sondern auch Pixel, die dem ausgewählten Pixel zeitlich benachbart sind, benutzt werden.
  • Auf diese Weise wird die in der Differenzwertberechnungseinheit 64 berechnete Summe der absoluten Differenzen als der Korrelationswert des laufenden codierten Blocks dem Komparator 68 und auch dem normalerweise ausgeschalteten Schalter 66 zugeführt.
  • Beim Empfang der Summe der absoluten Differenzen des laufenden codierten Blocks bestimmt der Komparator 68 beim Schritt S16, ob die Summe der absoluten Differenzen kleiner als der im Minimumdifferenzwert-Speicherregister 67 gespeicherte Wert (Minimumsumme der absoluten Differenzen) ist.
  • Wenn das Ergebnis des Schritts S16 ja ist, wird festgestellt, dass der Korrelationswert des laufenden codierten Blocks, dessen ausgewählte Pixel um n Bits gedreht worden ist, größer als der vorher erhaltene Korrelationswert ist. Es wird auf diese Weise bestimmt, dass der laufende codierte Block, dessen ausgewählte Pixel um n Bits gedreht worden sind, am Wahrscheinlichsten in den originalen Bildblock decodiert worden ist. Der Prozess geht dann zum Schritt S17 weiter, bei dem der Komparator 68 die Schalter 65 und 66 zeitweilig von Aus auf Ein wechselt, und der Prozess geht zum Schritt S18 weiter.
  • Durch zeitweiliges Einschalten der Schalter 65 und 66 beim Schritt S17 wird der vom Drehungsbitregister 63 ausgegebene Drehungswert n über den Schalter 65 dem Optimaldrehungsbit-Speicherregister 69 zugeführt. Im Optimaldrehungsbit-Speicherregister 69 wird der als das Optimaldrehungsbit n_min gespeicherte Wert durch den Drehungswert n vom Drehungsbitregister 63 als neues Optimaldrehungsbit n_min (optimale Anzahl von Bits, um welche die ausgewählten Pixel zu drehen sind, um den laufenden codierten Block zu decodieren) überschrieben.
  • Beim Schritt S17 wird die Summe der absoluten Differenzen von der Differenzwertberechnungseinheit 64 über den Schalter 66 dem Minimumdifferenzwert-Speicherregister 67 zugeführt. Im Minimumdifferenzwert-Speicherregister 67 wird der darin gespeicherte Wert mit der von der Differenzwertberechnungseinheit 64 ausgegebenen Summe der absoluten Differenzen als eine neue Minimumsumme der absoluten Differenzen (als der Maximumkorrelationswert in Bezug auf den laufenden codierten Block) überschrieben.
  • Wenn beim Schritt S16 festgestellt wird, dass die von der Differenzwertberechnungseinheit 64 ausgegebene Summe der absoluten Differenzen nicht kleiner als der im Minimumdifferenzwert-Speicherregister 67 ist, in anderen Worten, wenn festgestellt wird, dass der Korrelationswert in Bezug auf den laufenden codierten Block, dessen ausgewählten Pixelwerte um n Bits gedreht worden sind, nicht größer als der vorher erhaltene Maximumkorrelationswert ist, kann festgestellt werden, dass der laufende codierte Block nicht in den originalen Block decodiert worden ist. Dann geht der Prozess durch Überspringen des Schritts S17 zum Schritt S18 weiter. Beim Schritt S18 wird der Drehungswert n im Drehungsbitregister 63 um 1 inkrementiert.
  • Dann wird beim Schritt S19 festgestellt, ob der Drehungswert n im Drehungsbitregister 63 kleiner als die Anzahl von Bits des Pixelwerts th_r ist. Wenn das Resultat des Schritts S19 ja ist, das heißt, wenn der Drehungswert n in der Anzahl von Bits ist, um die der Pixelwert gedreht werden kann, kehrt der Prozess zum Schritt S14 zurück, und die korrespondierende Verarbeitung wird wiederholt.
  • Wenn umgekehrt beim Schritt S19 festgestellt wird, dass der Drehungswert n nicht kleiner als die Anzahl von Bits des Pixelwerts th_r ist, das heißt, wenn der Korrelationswert (Summe der absoluten Differenzen) in Bezug auf den laufenden codierten Block durch Benutzung aller möglichen Drehungswerte n, um die der Pixelwert gedreht werden kann, berechnet worden ist, geht der Prozess zum Schritt S20 weiter. Beim Schritt S20 werden die Werte der ausgewählten Pixel im laufenden codierten Block um das optimale Drehungsbit n_min gedreht und dadurch der laufende codierte Block in den originalen Block decodiert und die in den codierten Block eingebettete zusätzliche Information decodiert.
  • Insbesondere führt das Optimaldrehungsbit-Speicherregister 69 das darin gespeicherte optimale Drehungsbit n_min der Bitumgekehrtdrehungseinheit 62 zu. Die Bitumgekehrtdrehungseinheit 62 dreht die Linksdrehungspixel und die Rechtsdrehungspixel des laufenden codierten Blocks wie beim Schritt S14 beschrieben um das optimale Drehungsbit n_min nach links bzw. nach rechts und decodiert dadurch den laufenden codierten Block in den originalen Block. Der decodierte Block wird dann dem Decodiertbildspeicher 71 zugeführt und bei einer korrespondierenden Adresse gespeichert.
  • Das Optimaldrehungsbit-Speicherregister 69 führt auch das in ihm gespeicherte optimale Drehungsbit n_min dem Decodiertzusätzlichinformationsspeicher 70 als die in den laufenden codierten Block eingebettete decodierte zusätzliche Information zu.
  • Danach wird beim Schritt S21 festgestellt, ob es noch mehr zu verarbeitenden Blöcke (nachfolgend manchmal als ein „nicht verarbeiteter Block" bezeichnet) in der Bitumgekehrtdrehungseinheit 72 als den laufenden codierten Block gibt. Wenn das Ergebnis des Schritts S21 ja ist, wird einer der nicht verarbeiteten Blöcke (beispielsweise der in der Rasterabtastordnung nachfolgende codierte Block) als der laufende codierte Block bestimmt. Der Prozess kehrt dann zum Schritt S12 zurück, und die korrespondierende Verarbeitung wird wiederholt festgestellt wird, dass es keine nicht verarbeitenden Blöcke mehr gibt, in anderen Worten, wenn alle decodierten Blöcke für einen einzelnen Rahmen im Decodiertbildspeicher 71 gespeichert sind und alle Elemente der in die Einzelrahmenblöcke eingebetteten decodierten zusätzlichen Information im Decodiertzusätzlichinformationsspeicher 70 gespeichert sind, werden die decodierten Bilder für einen einzelnen Rahmen aus dem Decodiertbildspeicher 71 ausgelesen, und auch die decodierte zusätzliche Information wird aus dem Decodiertzusätzlichinformationsspeicher 70 ausgelesen.
  • Danach wird beim Schritt S22 festgestellt, ob es noch mehr eingebettete Bildrahmen gibt, die danach in der Blockteilungseinheit 61 zu verarbeiten sind. Wenn das Resultat des Schritt S22 ja ist, kehrt der Prozess zum Schritt S11 zurück, und die korrespondierende Verarbeitung wird wiederholt.
  • Wenn andererseits beim Schritt S22 festgestellt wird, dass es keine eingebetteten Bildrahmen mehr gibt, die danach in der Blockteilungseinheit 61 zu verarbeiten sind, ist die Decodierungsverarbeitung vollendet.
  • Gemäß der vorhergehenden Beschreibung werden die codierten Bilddaten, in die zusätzliche Information eingebettet ist, durch Benutzung der Korrelation des Bildes in das originale Bild und in die zusätzliche Information decodiert. Infolgedessen kann die Decodierungsoperation ausgeführt werden, ohne in einen Überhang zu geraten, der zur Ausführung der Decodierungsoperation erforderlich ist. Folglich ist das decodierte Bild (wiedergegebenes Bild) grundsätzlich frei von der Verschlechterung der Bildqualität, die es herkömmlicherweise durch Einbetten der zusätzlichen Information erleidet.
  • Ein Simulationstest wurde wie folgt durchgeführt. Ein natürliches Bild, bei dem jedes Pixel acht Bits aufweist, wurde in 4 × 4-Pixel-Blöcke geteilt, und die Einbettcodierungsoperation wurde ausgeführt. (Da in diesem Fall in einem einzelnen Block eine zusätzliche Information aus drei Bit eingebettet werden kann, beträgt die Einbettungsrate der zusätzlichen Information 3 Bit/16 Pixel). Dann wurde die Decodierungsoperation am eingebetteten Bild ausgeführt, und alle Pixelwerte wurden korrekt decodiert (was bedeutet, dass die zusätzliche Information auch korrekt decodiert wurde).
  • Ein anderer Simulationstest wurde wie folgt durchgeführt. Ein natürliches Bild ähnlich zu dem beim oben beschriebenen Simulationstest benutzten wurde in 2 × 2-Pixel-Blöcke beteilt, und die Einbettcodierungsoperation wurde ausgeführt (in diesem Fall beträgt die Einbettungsrate der zusätzlichen Information 3 Bits/4 Pixel, was viermal so hoch wie die des oben beschriebenen Simulationstexts ist). Dann wurde die Decodierungsoperation beim eingebetteten Bild ausgeführt, und 97,92% der Pixelwerte wurden korrekt decodiert.
  • Wenn demgemäss ein einzelner Block aus einer größeren Anzahl von Pixeln gebildet wird, können die Pixel mit einer höheren Präzision decodiert werden. Andererseits wird die Menge der zusätzlichen Information, die in einen einzelnen Rahmen eingebettet werden kann, das heißt die Einbettungsrate, erhöht. Wenn im Gegensatz dazu ein einzelner Block aus einer kleineren Anzahl von Pixeln gebildet ist, wird die Einbettungsrate erhöht, aber die Decodierungspräzision wird erniedrigt. Infolgedessen wird die einen einzelnen Block bildende Anzahl von Pixeln vorteilhafterweise im Hinblick auf die Abwägungen der Einbettungsrate und der Decodierungspräzision bestimmt.
  • Wenn bei der vorhergehenden Ausführungsform ein Pixelwert durch mehrere Komponenten wie beispielsweise YUV oder RGB dargestellt wird, können alle diese Komponenten entsprechend der gleichen zusätzlichen Information gedreht werden. Alternativ dazu können die Komponenten entsprechend unterschiedlichen Elementen der zusätzlichen Information individuell gedreht werden.
  • Bei der vorhergehenden Ausführungsform werden gewisse der den Block bildenden Pixel entsprechend einem Schachtbrettmuster ausgewählt, und die zusätzliche Information wird in die ausgewählten Pixel eingebettet. Jedoch können gewisse der zur Einbettung der zusätzlichen Information benutzten Pixel entsprechend einem unterschiedlichen Muster ausgewählt werden. Außerdem ist, obgleich bei dieser Ausführungsform eine Hälfte der den Block bildenden Pixel ausgewählt wird und die Werte der ausgewählten Pixel entsprechend der zusätzlichen Information gedreht werden, die Anzahl von zur Ausführung der Drehung benutzten Pixel nicht auf eine Hälfte der den Block bildenden Pixel beschränkt. Wie oben dargelegt kann jedoch bei der Decodierung der Pixel, in die zusätzliche Information eingebettet ist, der Korrelationswert durch Benutzung der Pixel ohne die zusätzliche Information nach Wunsch bestimmt werden. Die Korrelation zwischen Pixeln wird kleiner, wenn die Pixel räumlich oder zeitlich weiter voneinander entfernt sind. Deshalb können zur Ausführung der korrekten Decodierungsoperation die Pixel, in die zusätzliche Information einzubetten ist, derart ausgewählt werden, dass sie räumlich oder zeitlich spärlich (sparsely) lokalisiert sind.
  • Bei der vorhergehenden Ausführungsform werden die Linksdrehungspixel und die Rechtsdrehungspixel so ausgewählt, dass sie in der diagonalen Richtung der ausgewählten Pixel abwechseln angeordnet sind. Jedoch können die Linksdrehungspixel und die Rechtsdrehungspixel entsprechend einem anderen Muster angeordnet sein.
  • Bei der oben erwähnten Ausführungsform werden gewisse der ausgewählten Pixel so bestimmt, dass sie Linksdrehungspixel sind und infolgedessen entsprechend der zusätzlichen Information nach links gedreht sind, während die verbleibenden ausgewählten Pixel so bestimmt werden, dass sie Rechtsdrehungspixel sind und infolgedessen entsprechend der zusätzlichen Information nach rechts gedreht sind. Jedoch können alle diese ausgewählten Pixel nach links oder nach rechts gedreht sein.
  • 13 stellt ein Beispiel der Konfiguration des Einbettungscodierers, der durch Ausführen des im Programmspeicher 33 gespeicherten Programms durch die in 4 gezeigte CPU 32 implementiert werden kann, gemäß einer zweiten Ausführungsform der vorliegenden Erfindung dar.
  • Zu codierende Bilder werden einer Blockteilungseinheit 81 beispielsweise in Einheiten von Rahmen zugeführt. Die Blockteilungseinheit 81 teilt dann die Bilder für einen einzelnen Rahmen in Bildblöcke, deren jeder eine vorbestimmte Größe aufweist, und führt die geteilten Blöcke einer Exklusiv-ODER-Arithmetikeinheit 82 zu.
  • Nicht nur die Bildblöcke aus der Blockteilungseinheit 81, sondern auch zusätzliche Information, die in Bilder einzubetten ist, wird der Exklusiv-ODER-Arithmetikeinheit 82 zugeführt. Die Exklusiv-ODER-Arithmetikeinheit 82 wählt gewisse der von der Blockteilungseinheit 81 zugeführten, den Bildblock bildenden Pixel (nachfolgend manchmal als „ausgewählte Pixel" bezeichnet) aus und berechnet zwischen jedem der ausgewählten Pixel und der zusätzlichen Information ein exklusives ODER und bettet dadurch die zusätzliche Information in die ausgewählten Pixel ein. Der die in die ausgewählten Pixel eingebettete zusätzliche Information aufweisende Bildblock wird einem Codiertbildspeicher 83 als ein codierter Block zugeführt.
  • Der Codiertbildspeicher 83 speichert die von der Exklusiv-ODER-Arithmetikeinheit 82 zugeführten codierten Bildblöcke sequentiell. Wenn codierte Bildblöcke für einen einzelnen Rahmen gespeichert sind, werden die codierten Bildblöcke als codierte Daten ausgegeben.
  • Es wird nun eine Beschreibung der von dem in 13 gezeigten Einbettungscodierer 3 ausgeführten Einbettcodierungsverarbeitung anhand des Flussdiagramms der 14 gegeben.
  • Wie oben dargelegt werden zu codierende Bilder der Blockteilungseinheit 81 in Einheiten von Rahmen zugeführt. Beim Empfang eines Bildes für einen einzelnen Rahmen teilt die Blockteilungseinheit 81 beim Schritt S31 das Bild in Blöcke, deren jeder eine vorbestimmte Größe aufweist. Das heißt, die Blockteilungseinheit 81 teilt das Bild wie bei (A) der 15 gezeigt in 4 × 4-Pixel-Bildblöcke. Die von der Blockteilungseinheit 81 erhaltenen Bildblöcke werden der Exklusiv-ODER-Arithmetikeinheit 82 sequentiell, beispielsweise in einer Rasterabtastordnung zugeführt.
  • Beim Empfang des Bildblocks von der Blockteilungseinheit 81 stellt die Exklusiv-ODER-Arithmetikeinheit 82 beim Schritt S32 den empfangenen Bildblock so ein, dass er der laufende Bildblock ist, und wählt gewisse der den laufenden Block bildenden Pixel aus. Insbesondere wählt die Exklusiv-ODER-Arithmetikeinheit 82 die von den bei (A) der 15 gezeigten schwarzen Abschnitten • und den schraffierten Abschnitten angezeigten Pixel entsprechend einem Schachbrettmuster aus. Das heißt, es wird eine Hälfte der den laufenden Block bildenden Pixel ausgewählt.
  • Dann berechnet die Exklusiv-ODER-Arithmetikeinheit 82 beim Schritt S33 zwischen jedem der ausgewählten Pixel und der zusätzlichen Information ein exklusives ODER und bettet dadurch die zusätzliche Information in die ausgewählten Pixel ein. Insbesondere berechnet die Exklusiv-ODER-Arithmetikeinheit 82 ein exklusives ODER zwischen jedem der durch die schraffierten Abschnitte bei (A) der 15 angezeigten ausgewählten Pixel und dem Bitstrom der zusätzlichen Information und stellt das berechnete Resultat so ein, dass es der Wert des ausgewählten Pixels ist.
  • Die Exklusiv-ODER-Arithmetikeinheit 82 berechnet auch ein exklusives ODER zwischen jedem der durch die schwarzen Abschnitte • angezeigten ausgewählten Pixel und dem durch Umkehren der Ordnung des Bitstroms der zusätzlichen Information erhaltenen Bitstrom (nachfolgend als „Umgekehrtbitstrom" bezeichnet) und stellt das berechnete Resultat so ein, dass es der Wert des ausgewählten Pixel ist.
  • Die zum Berechnen eines exklusiven ODER mit dem Bitstrom der zusätzlichen Information und mit dem umgekehrten Bitstrom der zusätzlichen Information benutzten Pixel werden nachfolgend als „Normalbitstrompixel" bzw. „Umgekehrtbitstrompixel" bezeichnet. Bei der zweiten Ausführungsform werden, wie bei (A) der 15 dargestellt, die „Normalbitstrompixel" und die „Umgekehrtbitstrompixel" in der diagonalen Richtung der ausgewählten Pixel abwechseln angeordnet. Demgemäss wird eine Hälfte der ausgewählten Pixel so eingestellt, dass sie die „Normalbitstrompixel" sind, und die andere Hälfte wird so eingestellt, dass sie die „Umgekehrtbitstrompixel" sind.
  • Es sei nun angenommen, dass der Pixelwert durch acht Bit dargestellt ist, und dass der Wert eines Normalbitstrompixels 00111101B (B stellt dar, dass die vorhergehende Zahl binär ist) und der Wert eines Umgekehrtbitstrompixels 10010111B ist. Es sei auch angenommen, dass die zusätzliche Information 00101001B (= 41) ist. Dann wird, wie bei (B) der 15 gezeigt, ein die zusätzliche Information darstellendes exklusives ODER zwischen dem Wert des Normalbitstrompixels 00111101B und dem Bitstrom 00101001B berechnet, was in 00010100B resultiert. Ein exklusives ODER wird auch, wie bei (C) der 15 gezeigt, zwischen dem Wert des Umgekehrtbitstrompixels 10010111B und dem Umgekehrtbitstrom 10010100B der zusätzlichen Information berechnet, was in 00000011B resultiert. Ähnlich wird ein exklusives ODER für die anderen Normalbitstrompixel und die Umgekehrtbitstrompixel berechnet.
  • Wenn der Pixelwert durch acht Bits dargestellt wird, kann die Exklusiv-ODER-Berechnung zwischen dem Pixelwert und der die gleiche Anzahl Bits aufweisenden zusätzlichen Information ausgeführt werden. Demgemäss kann in diesem Fall eine zusätzliche Information aus acht Bits (von 0 bis 255 reichend) in einen einzelnen Block eingebettet werden.
  • Beim Schritt S33 wird nach Berechnung eines exklusiven ODER zwischen den ausgewählten Pixeln und der zusätzlichen Information wie oben beschrieben der resultierende Block dem Codiertbildspeicher 38 als ein codierter Block zugeführt und darin gespeichert. Der Prozess geht dann zum Schritt S34 weiter.
  • Beim Schritt S34 wird festgestellt, ob es noch mehr Blöcke gibt, die in der Exklusiv-ODER-Arithmetikeinheit 82 als der laufende Block zu verarbeiten sind (nachfolgend manchmal als „nicht verarbeitete Blöcke" bezeichnet). Wenn das Ergebnis des Schritts S34 ja ist, wird einer der nicht verarbeiteten Blöcke so eingestellt, dass er der laufende Block ist, und der Prozess kehrt zum Schritt S32 zurück und die korrespondierende Verarbeitung wird wiederholt.
  • Wenn durch die Exklusiv-ODER-Arithmetikeinheit 82 beim Schritt S34 festgestellt wird, dass es keine nicht verarbeiteten Blöcke mehr gibt, in anderen Worten, wenn alle codierten Blöcke für einen einzelnen Rahmen im Codiertbildspeicher 83 gespeichert sind, werden die codierten Blöcke aus dem Codiertbildspeicher 83 gelesen.
  • Es wird dann beim Schritt S35 festgestellt, ob es noch mehr Rahmen gibt, die in der Blockteilungseinheit 81 zu verarbeiten sind. Wenn das Resultat des Schritts S35 ja ist, kehrt der Prozess zum Schritt S31 zurück, und der korrespondierende Rahmen wird in einer zum Obigen ähnlichen Weise verarbeitet.
  • Wenn beim Schritt S35 gefunden wird, dass es keine Rahmen mehr gibt, die in der Blockteilungseinheit 81 zu verarbeiten sind, wird die Einbettcodierungsverarbeitung vollendet.
  • Auf diese Weise wird die zusätzliche Information durch Auswählen gewisser der den Bildblock bildenden Pixel und durch Berechnen eines exklusiven ODER zwischen jedem der ausgewählten Pixel und der zusätzlichen Information in den Bildblock eingebettet. Es ist auf diese Weise möglich, die zusätzliche Information in das Bild mit dem minimalen Verlust der Bildqualität und ohne Erhöhung der Datenmenge einzubetten.
  • Das heißt, zwischen den bei (A) der 15 gezeigten ausgewählten Pixeln, in welche die zusätzliche Information eingebettet ist, können die durch die schraffierten Abschnitte und die schwarzen Abschnitte • angezeigten Pixelwerte durch Benutzung der Korrelation des Bildes, das heißt der Korrelation zwischen den ausgewählten Pixeln und den Pixeln ohne die zusätzliche Information, die bei (A) der 15 durch 0 angezeigt sind, ohne in einen Überhang zu geraten in die originalen Pixel und in die zusätzliche Information decodiert (wiederhergestellt) werden. Dies wird unten detailliert beschrieben. Demgemäss wird im decodierten Bild (wiedergegebenes Bild) die durch Einbetten der zusätzlichen Information verursachte Verschlechterung der Bildqualität nicht beobachtet.
  • 16 stellt ein Beispiel der Konfiguration des Decodierers 6, der durch Ausführen des im Programmspeicher 54 gespeicherten Programms durch die in 8 gezeigte CPU 53 implementiert werden kann, gemäß der zweiten Ausführungsform der vorliegenden Erfindung dar.
  • Eingebettete Bilder werden einer Blockteilungseinheit 161 beispielsweise in Einheiten von Rahmen als codierte Daten zugeführt. Die Blockteilungseinheit 161 teilt das eingebettete Bild in Blöcke, deren jeder eine vorbestimmte Größe aufweist, das heißt in codierte Blöcke, und führt die geteilten Blöcke wie im Fall der in 13 gezeigten Blockteilungseinheit 81 einer Exklusiv-ODER-Arithmetikeinheit 162 sequentiell zu.
  • Unter den Pixeln, die den von der Blockteilungseinheit 161 zugeführten codierten Block bilden, wählt die Exklusiv-ODER-Arithmetikeinheit 162 die bei den gleichen Positionen wie die von der in 13 gezeigten Exklusiv-ODER-Arithmetikeinheit 82 ausgewählten angeordnet sind, aus. Dann berechnet die Exklusiv-ODER-Arithmetikeinheit 162 ein exklusives ODER zwischen jedem der ausgewählten Pixelwerte und EX-ODER-Daten, die von einem EX-ODER-Datenregister 163 zugeführt werden, und führt es einer Differenzwertberechnungseinheit 164 zu. Die Exklusiv-ODER-Arithmetikeinheit 162 berechnet auch ein exklusives ODER zwischen jedem der ausgewählten Pixelwerte und optimalen EX-ODER-Daten, die in einem Optimal-EX-ODER-Daten-Speicherregister 169 gespeichert sind. Als ein Resultat kann der codierte Block in den originalen Bildblock decodiert und einem Decodiertbildspeicher 171 zugeführt werden.
  • Das EX-ODER-Datenregister 163 stellt die EX-ODER-Daten ein, welche die zum Berechnen eines exklusiven ODER mit dem Pixelwert benutzten Daten sind, und führt sie der Exklusiv-ODER-Arithmetikeinheit 162 und einem Schalter 165 zu. Wenn der Pixelwert durch th_r Bits dargestellt ist, kann ein exklusives ODER zwischen dem Pixelwert und den die th_r Bits aufweisenden Daten berechnet werden. In diesem Fall stellt das EX-ODER-Datenregister 163 die Daten, die durch th_r Bits dargestellt werden können, das heißt den von 0 bis 2th_r-1 reichenden Wert, als die EX-ODER- Daten sequentiell ein und führt sie der Exklusiv-ODER-Arithmetikeinheit 162 und dem Schalter 165 zu.
  • Die Differenzwertberechnungseinheit 164 empfängt von der Exklusiv-ODER-Arithmetikeinheit 162 den codierten Block, in welchem ein exklusives ODER zwischen jedem der ausgewählten Pixelwerte und den EX-ODER-Daten berechnet worden ist, und berechnet den Korrelationswert zwischen den ausgewählten Pixeln und den benachbarten Pixeln, das heißt in diesem Fall die Summe von absoluten Differenzen der individuellen Pixelwerte. Die Summe der absoluten Differenzen wird einem Komparator 168 als der Korrelationswert zugeführt.
  • Der Schalter 165 führt die EX-ODER-Daten vom EX-ODER-Datenregister 163 unter der Steuerung des Komparators 168 dem Optimal-EX-ODER-Daten-Speicherregister 169 zu. Ein Schalter 166 führt den Korrelationswert von der Differenzwertberechnungseinheit 164 unter der Steuerung des Komparators 168 einem Minimumdifferenzwert-Speicherregister 167 zu.
  • Das Minimumdifferenzwert-Speicherregister 167 speichert über den Schalter 166 den von der Differenzwertberechnungseinheit 164 zugeführten Korrelationswert als den Maximumkorrelationswert in Bezug auf den laufend verarbeiteten codierten Block (nachfolgend manchmal als der „laufende codierte Block" bezeichnet). Wie oben beschrieben wird bei der zweiten Ausführungsform die Summe der absoluten Differenzen zwischen den ausgewählten Pixeln und den benachbarten Pixeln als der Korrelationswert zwischen ihnen benutzt. Demgemäss bedeutet der Maximumkorrelationswert die Minimumsumme der absoluten Differenzen der Pixelwerte.
  • Die im Minimumdifferenzwert-Speicherregister 167 gespeicherte Minimumsumme der absoluten Differenzen wird dem Komparator 168 als die Maximumkorrelation zugeführt. Der Komparator 168 vergleicht die von der Differenzwertberechnungseinheit 164 ausgegebene Summe der absoluten Differenzen mit der im Minimumdifferenzwert-Speicherregister 167 gespeicherten Minimumsumme der absoluten Differenzen, und auf Basis des Vergleichsresultats steuert der Komparator 168 die Schalter 165 und 166.
  • Das Optimal-EX-ODER-Daten-Speicherregister 169 empfängt die EX-ODER-Daten vom EX-ODER-Datenregister 163 über den Schalter 165 und speichert sie als die optimalen EX-ODER-Daten, die der zur Berechnung eines exklusiven ODER mit den ausgewählten Pixelwerten des codierten Blocks benutzte optimale Bitstrom sind. Dann führt das Optimal-EX-ODER-Daten-Speicherregister 169 die optimalen EX-ODER-Daten der Exklusiv-ODER-Arithmetikeinheit 162 und dem Decodiertzusätzlichinformationsspeicher 170 geeignet zu.
  • Der Decodiertzusätzlichinformationsspeicher 170 speichert die vom Optimal-EX-ODER-Daten-Speicherregister 169 zugeführten optimalen EX-ODER-Daten zeitweilig als die in den codierten Block eingebettete decodierte zusätzliche Information und gibt sie aus. Der Decodiertbildspeicher 171 speichert den codierten Block, in welchem ein exklusives ODER zwischen den ausgewählten Pixelwerten und den optimalen EX-ODER-Daten berechnet worden ist, zeitweilig als den decodierten originalen Bildblock, und wenn die decodierten Bildblöcke für einen einzelnen Rahmen gespeichert sind, werden die decodierten Bilder ausgegeben.
  • Die von dem in 16 gezeigten Decodierer 6 ausgeführte Decodierungsverarbeitung wird unten anhand des Flussdiagramms der 17 beschrieben.
  • Wie oben dargelegt werden der Blockteilungseinheit 161 eingebettete Bilder in Einheiten von Rahmen zugeführt. Beim Empfang eingebetteter Bilder für einen einzelnen Rahmen teilt die Blockteilungseinheit 161 wie im Fall der in 13 gezeigten Blockteilungseinheit 161 das eingebettete Bild in Blöcke, deren jeder eine vorbestimmte Größe aufweist. Insbesondere teilt die Blockteilungseinheit 161, wie bei (A) der 18 gezeigt, in codierte 4 × 4-Pixel-Blöcke. Die von der Blockteilungseinheit 161 geteilten codierten Blöcke werden der Exklusiv-ODER-Arithmetikeinheit 162 beispielsweise in einer Rasterabtastordnung sequentiell zugeführt.
  • Beim Empfang des codierten Blocks von der Blockteilungseinheit 161 stellt die Exklusiv-ODER-Arithmetikeinheit 162 beim Schritt S42 den empfangenen codierten Block als den laufenden codierten Block ein und wählt gewisse der den laufenden codierten Block bildenden Pixel aus. Insbesondere wählt die Exklusiv-ODER-Arithmetikeinheit 162 die durch die bei (A) der 18 durch die schraffierten Abschnitte und die schwarzen Abschnitte • angezeigten gleichen Pixel wie die von der in 13 gezeigten Exklusiv-ODER-Arithmetikeinheit 82 ausgewählten aus. Die Exklusiv-ODER-Arithmetikeinheit 162 wählt auch die Normalbitstrompixel und die Umgekehrtbitstrompixel wie im Fall der Exklusiv-ODER-Arithmetikeinheit 82 aus den oben erwähnten ausgewählten Pixeln aus.
  • Das heißt, unter den ausgewählten Pixeln des codierten Blocks können die Pixel, die von der in 13 gezeigten Exklusiv-ODER-Arithmetikeinheit 82 als die Normalbitstrompixel bestimmt sind, durch Berechnen eines exklusiven ODER zwischen jedem der Pixelwerte und dem mit der in die codierten Pixel eingebetteten zusätzlichen Information korrespondierenden Bitstrom in die originalen Pixel decodiert werden. Ähnlich können die Pixel, die von der Exklusiv-ODER-Arithmetikeinheit 82 als die Umgekehrtbitstrompixel bestimmt sind, durch Berechnen eines exklusiven ODER zwischen jedem der Pixelwerte und dem Umgekehrtbitstrom der in die codierten Pixel eingebetteten zusätzlichen Information in die originalen Pixel decodiert werden.
  • Demgemäss wählt die Exklusiv-ODER-Arithmetikeinheit 162 die Normalbitstrompixel und die Umgekehrtbitstrompixel wie im Fall der Exklusiv-ODER-Arithmetikeinheit 62 aus den ausgewählten Pixeln aus. Infolgedessen werden in der Exklusiv-ODER-Arithmetikeinheit 162 in einer zu dem in Bezug auf (A) der 15 beschriebenen Beispiel ähnlichen Weise die durch die schraffierten Abschnitte bei (A) der 18 angezeigten Pixel als die Normalbitstrompixel eingestellt, während die durch die schwarzen Abschnitte • angezeigten Pixel als die Umgekehrtbitstrompixel eingestellt werden.
  • Danach geht der Prozess zum Schritt S43 weiter. Beim Schritt S43 initialisiert das EX-ODER-Datenregister 163 die EX-ODER-Daten n so, dass sie 0 sind, und das Minimumdifferenzwert-Speicherregister 167 initialisiert den Wert (Minimumsumme der absoluten Differenzen) so, dass er ein vorbestimmter großer Wert ist (beispielsweise der Maximumwert, der gespeichert werden kann). Das EX-ODER-Datenregister 163 führt dann die EX-ODER-Daten n der Exklusiv-ODER-Arithmetikeinheit 162 und dem normalerweise ausgeschalteten Schalter 165 zu, und der Prozess geht dann zum Schritt S44 weiter.
  • Beim Schritt S44 berechnet die Exklusiv-ODER-Arithmetikeinheit 162 ein exklusives ODER zwischen den vom EX-ODER-Datenregister 163 ausgegebenen EX-ODER-Daten n und jedem der Normalbitstrompixel und der Umgekehrtbitstrompixel des laufenden codierten Blocks und führt das berechnete Resultat der Differenzwertberechnungseinheit 164 zu.
  • Es sei nun angenommen, dass der Pixelwert durch acht Bits dargestellt ist, und dass der Wert eines Normalbitstrompixels 00010100B ist und der Wert eines Umgekehrtbitstrompixels 00000011B ist. Es sei auch angenommen, dass die EX- ODER-Daten n gleich 00101001B (= 41) sind. Dann wird, wie bei (B) der 18 gezeigt, zwischen dem Normalbitstrompixelwert 00010100B und dem Bitstrom 00101001B, der die EX-ODER-Daten n darstellt, ein exklusives ODER berechnet, was in 00111101B resultiert. Es wird auch, wie bei (C) der 18 gezeigt, zwischen dem Umgekehrtbitstrompixelwert 00000011B und dem Bitstrom 10010100B, welcher der Umgekehrtbitstrom der EX-ODER-Daten n ist, ein exklusives ODER berechnet, was in 10010111B resultiert.
  • Beim Empfang des laufenden codierten Blocks von der Exklusiv-ODER-Arithmetikeinheit 162, bei dem zwischen den ausgewählten Pixeln und den EX-ODER-Daten n ein exklusives ODER berechnet worden ist, berechnet die Differenzwertberechnungseinheit 164 beim Schritt S45 die Summe der Korrelationswerte zwischen den ausgewählten Pixeln und den benachbarten Pixeln, das heißt in diesem Fall die Summe der absoluten Differenzen zwischen den ausgewählten Pixeln und den benachbarten Pixeln, als den Korrelationswert in Bezug auf den laufenden codierten Block (der Korrelationswert zwischen den Pixeln, die den laufenden codierten Block bilden).
  • Insbesondere sind im codierten Block, wie in 19 dargestellt, die durch die schraffierten Abschnitte und die schwarzen Abschnitte • angezeigten ausgewählten Pixel neben wenigstens einem einzelnen Pixel lokalisiert, in welchem mit der zusätzlichen Information ein exklusives ODER nicht berechnet worden ist (nachfolgend manchmal als ein „nicht ausgewähltes Pixel" bezeichnet). Die Differenzwertberechnungseinheit 164 berechnet die absolute Differenz zwischen den ausgewählten Pixeln und den benachbarten nicht ausgewählten Pixeln und bestimmt die Summe der absoluten Differenzen als den Korrelationswert des codierten Blocks.
  • Wenn das ausgewählte Pixel mehreren nicht ausgewählten Pixeln benachbart ist, wird, wie durch die durchgezogenen Pfeile der 19 angedeutet, die absolute Differenz zwischen dem ausgewählten Pixel und jedem der nicht ausgewählten Pixel berechnet.
  • Bei dem oben beschriebenen Beispiel wird der Korrelationswert durch Benutzung nur der Pixel im laufenden codierten Block erhalten. Jedoch kann der Korrelationswert durch Benutzung von Pixeln eines Blocks anders als der laufende codierte Block bestimmt werden.
  • Wenn beispielsweise codierte Blöcke, die ein eingebettetes Bild bilden, in einer Rasterabtastungsordnung als die laufenden codierten Blöcke verarbeitet werden, sind codierte Blöcke links neben einem laufenden codierten Block schon in die originalen Pixelwerte decodiert worden. Ein exklusives ODER ist zwischen gewissen Pixeln, die dem laufenden codierten Block links, oben, rechts oder unten benachbart sind, und der zusätzlichen Information während der Einbettcodierungsverarbeitung noch nicht berechnet worden.
  • Unter den Pixeln außerhalb des laufenden codierten Blocks können die Pixel, die vor und nach der Einbettcodierungsverarbeitung die gleichen bleiben (durch in 19 gezeigte gestrichelte Kreise angezeigt), wie durch die gestrichelten Pfeile in 19 angezeigt zur Berechnung absoluter Differenzen mit den ausgewählten Pixeln des laufenden codierten Blocks benutzt werden.
  • Außerdem wird bei dem oben beschriebenen Beispiel die absolute Differenz zwischen dem ausgewählten Pixel und jedem der benachbarten nicht ausgewählten Pixel zur Bestimmung des Korrelationswerts des codierten Blocks benutzt. Jedoch kann die absolute Differenz zwischen dem ausgewählten Pixel und nicht ausgewählten Pixeln, die dem ausgewählten Pixel nicht benachbart sind aber dieses umgeben, benutzt werden.
  • Alternativ dazu können nicht nur Pixel, die räumlich neben dem ausgewählten Pixel sind, sondern auch Pixel, die zeitlich neben dem ausgewählten Pixel sind, benutzt werden.
  • Wie oben beschrieben wird die von der Differenzwertberechnungseinheit 164 berechnete Summe der absoluten Differenzen der Pixelwerte als der codierte Wert in Bezug auf den laufenden codierten Block dem Komparator 168 und auch dem normalerweise ausgeschalteten Schalter 166 zugeführt.
  • Beim Empfang der Summe der absoluten Differenzen des laufenden codierten Blocks von der Differenzwertberechnungseinheit 164 stellt der Komparator 168 beim Schritt S46 fest, ob die Summe der absoluten Differenzen kleiner als der im Minimumdifferenzwert-Speicherregister 167 gespeicherte Wert ist.
  • Wenn das Ergebnis des Schritt S46 ja ist, das heißt, wenn der Korrelationswert des durch Ausführen eines exklusiven ODER zwischen den ausgewählten Pixeln und den EX-ODER-Daten n größer als der vorher erhaltene Korrelationswert in Bezug auf den laufenden codierten Block ist, kann auf diese Weise bestimmt werden, dass der laufende codierte Block am wahrscheinlichsten in den originalen Block decodiert worden ist. Dann geht der Prozess zum Schritt S47 weiter, bei dem der Komparator 168 die Schalter 165 und 166 zeitweilig von Aus auf Ein wechselt, und der Prozess geht zum Schritt S48 weiter.
  • Beim Schritt S47 werden die vom EX-ODER-Daten-Register 163 ausgegebenen EX-ODER-Daten n über den Schalter 165 dem Optimal-EX-ODER-Daten-Speicherregister 169 zugeführt. Der im Optimal-EX-ODER-Daten-Speicherregister 169 als die optimalen EX-ODER-Daten n_min gespeicherte Wert wird von den EX-ODER-Daten n aus dem EX-ODER-Datenregister 163 als neue optimale EX-ODER-Daten n_min (als der zum Berechnen eines exklusiven ODER mit den ausgewählten Pixeln bei der Decodierung des laufenden codierten Blocks benutzten optimalen Bitstrom) überschrieben.
  • Beim Schritt S47 wird die Summe der absoluten Differenzen von der Differenzwertberechnungseinheit 164 über den Schalter 166 dem Minimumdifferenzwert-Speicherregister 167 zugeführt. Der im Minimumdifferenzwert-Speicherregister 167 gespeicherte Wert wird von der von der Differenzwertberechnungseinheit 164 ausgegebenen Summe der absoluten Differenzen als eine neue Minimumsumme der absoluten Differenzen (als der Maximumkorrelationswert in Bezug auf den laufenden codierten Block) überschrieben.
  • Wenn im Gegensatz dazu beim Schritt S46 vom Komparator 168 festgestellt wird, dass die Summe der absoluten Differenzen aus der Differenzwertberechnungseinheit 164 nicht kleiner als der im Minimumdifferenzwert-Speicherregister 167 gespeicherte Wert ist, das heißt, wenn der durch Ausführen eines exklusiven ODER zwischen den ausgewählten Pixeln und den EX-ODER-Daten n erhaltene Korrelationswert in Bezug auf den laufenden codierten Block nicht größer als der vorher erhaltene Korrelationswert in Bezug auf den laufenden codierten Block ist, wird festgestellt, dass der laufende codierte Block nicht am wahrscheinlichsten in den originalen Block decodiert worden ist. Infolgedessen geht der Prozess durch Überspringen des Schritts S47 zum Schritt S48 weiter. Beim Schritt S48 werden die EX-ODER-Daten n im EX-ODER-Datenregister 163 um 1 inkrementiert.
  • Danach wird beim Schritt S49 festgestellt, ob die EX-ODER-Daten n gleich oder kleiner als der Maximumwert 2th_r-1 ist, der durch die dem Pixelwert zugeordnete Anzahl von Bits dargestellt werden kann. Wenn dem so ist, kehrt der Prozess zum Schritt S44 zurück, und die korrespondierende Verarbeitung wird wiederholt.
  • Wenn das Ergebnis des Schritts S44 nein ist, das heißt, die EX-ODER-Daten n sind zum Berechnen des Korrelationswerts (Summe der absoluten Differenzen) in Bezug auf den laufenden codierten Block als alle die von 0 bis 2th_r-1 reichenden Werte benutzt worden, geht der Prozess zum Schritt S50 weiter. Beim Schritt S50 wird zwischen den ausgewählten Pixeln und den optimalen EX-ODER-Daten n_min ein exklusives ODER berechnet und dadurch der laufende codierte Block in den originalen Block decodiert und auch die in den codierten Block eingebettete zusätzliche Information decodiert.
  • Insbesondere führt das Optimal-EX-ODER-Daten-Speicherregister 169 die optimalen EX-ODER-Daten n_min der Exklusiv-ODER-Arithmetikeinheit 162 zu. In der Exklusiv-ODER-Arithmetikeinheit 162 wird zwischen jedem der Normalbitstrompixel und jedem der Umgekehrtbitstrompixel des laufenden codierten Blocks und den EX-ODER-Daten n_min in einer zum Schritt S44 ähnlichen Weise ein exklusives ODER berechnet und dadurch der originale Bildblock decodiert. Der decodierte Bildblock wird dem Decodiertbildspeicher 171 zugeführt und bei einer korrespondierenden Adresse gespeichert.
  • Das Optimal-EX-ODER-Daten-Speicherregister 169 führt die in ihm gespeicherten optimalen EX-ODER-Daten n_min dem Decodiertzusätzlichinformationsspeicher 170 als die in den laufenden codierten Block eingebettete decodierte zusätzliche Information zu.
  • Danach geht der Prozess zum Schritt S51 weiter, bei dem festgestellt wird, ob es noch mehr in der Exklusiv-ODER-Arithmetikeinheit 162 zu verarbeitenden Blöcke (nachfolgend manchmal als „nicht verarbeitete Blöcke" bezeichnet) gibt. Wenn das Ergebnis des Schritts S51 ja ist, wird einer der nicht verarbeiteten Blöcke als der laufende codierte Block (beispielsweise der in der Rasterabtastordnung nachfolgende laufende codierte Block) eingestellt. Der Prozess kehrt dann zum Schritt S42 zurück, und die korrespondierende Verarbeitung wird wiederholt.
  • Wenn umgekehrt von der Exklusiv-ODER-Arithmetikeinheit 162 beim Schritt S51 festgestellt wird, dass es keine nicht verarbeiteten Blöcke mehr gibt, das heißt, wenn alle decodierten Blöcke für einen einzelnen Rahmen im Decodiertbildspeicher 171 gespeichert sind und wenn die in den Rahmen eingebettete decodierte zusätzliche Information im Decodiertzusätzlichinformationsspeicher 170 gespeichert ist, wird das decodierte Bild aus dem Decodiertbildspeicher 171 gelesen, und die decodierte zusätzliche Information wird aus dem Decodiertzusätzlichinformationsspeicher 170 gelesen.
  • Danach wird beim Schritt S52 festgestellt, ob es noch mehr in der Blockteilungseinheit 161 zu verarbeitenden eingebetteten Bildrahmen gibt. Wenn dem so ist, kehrt der Prozess zum Schritt S41 zurück, und die korrespondierende Verarbeitung wird wiederholt.
  • Wenn beim Schritt S52 gefunden wird, dass es keine von der Blockteilungseinheit 161 zu verarbeitenden eingebetteten Bildrahmen mehr gibt, wird die Decodierungsverarbeitung vollendet.
  • Gemäß der vorhergehenden Beschreibung werden bei der zweiten Ausführungsform ebenso wie bei der ersten Ausführungsform die codierten Bilddaten, in welche die zusätzliche Information eingebettet ist, durch Benutzung der Korrelation des Bildes in das originale Bild und in die zusätzliche Information decodiert. Infolgedessen gerät man nicht in einen zum Ausführen der Decodierungsoperation erforderlichen Überhang. Deshalb ist das decodierte Bild (wiedergegebenes Bild) frei von der Verschlechterung der Bildqualität, die herkömmlicherweise aus der Einbettung der zusätzlichen Information erlitten wird.
  • Ein Simulationstest wurde wie folgt durchgeführt. Ein natürliches Bild, bei dem jedes Pixel acht Bits aufweist, wurde in 4 × 4-Pixel-Blöcke geteilt und die Einbettcodierungsoperation wurde ausgeführt (da in diesem Fall eine zusätzliche 8-Bit-Information in einen einzelnen Block eingebettet werden kann, beträgt die Einbettungsrate der zusätzlichen Information 8 Bit/16 Pixel). Dann wurde die Decodierungsoperation am eingebetteten Bild ausgeführt, und 98,74% der Pixelwerte wurden korrekt decodiert.
  • Ein anderer Simulationstest wurde wie folgt durchgeführt. Ein natürliches Bild ähnlich zu dem beim oben beschriebenen Simulationstest benutzten wurde in 2 × 2-Pixel-Blöcke geteilt, und die Einbettcodierungsoperation wurde ausgeführt (in diesem Fall beträgt die Einbettungsrate der zusätzlichen Information 8 Bit/4 Pixel, was viermal so hoch wie die des oben beschriebenen Simulationstests ist). Dann wurde die Decodierungsoperation am eingebetteten Bild ausgeführt, und 79,12% der Pixelwerte wurden korrekt decodiert.
  • Wenn demgemäss ein einzelner Block aus einer größeren Anzahl von Pixeln gebildet ist, können die Pixel mit einer höheren Präzision decodiert werden. Andererseits wird die Menge zusätzlicher Information, die in einen einzelnen Rahmen eingebettet werden kann, das heißt die Einbettungsrate erniedrigt. Wenn im Gegensatz dazu ein einzelner Block aus einer kleineren Anzahl von Pixeln gebildet ist, wird die Einbettungsrate erhöht, aber die Decodierungspräzision wird erniedrigt. Infolgedessen wird die einen einzelnen Block bildende Anzahl von Pixeln vorteilhafterweise im Hinblick auf die Abwägungen der Einbettungsrate und der Decodierungspräzision bestimmt.
  • Bei der vorhergehenden Ausführungsform wird bei der Einbettcodierungsverarbeitung, wie in 15 gezeigt, die Umgekehrtbitstrom-Zusätzlichinformation zum Berechnen eines exklusiven ODER mit den Werten der Umgekehrtbitstrompixel benutzt. Jedoch kann ein exklusives ODER zwischen den durch Umkehrung der Ordnung der Umgekehrtbitstrompixel und der zusätzlichen Information berechnet werden.
  • Beispielsweise sei nun, wie in 20 dargestellt, angenommen, dass der Pixelwert durch acht Bits dargestellt ist, und dass der Wert eines Normalbitstrompixels 00111101B und der Wert eines Umgekehrtbitstrompixels 10010111B ist. Es sei auch angenommen, dass die zusätzliche Information 00101001B (= 41) ist. Dann wird zwischen dem Normalbitstrompixel 00111101B und dem die zusätzliche Information darstellenden Bitstrom 00101001B ein exklusives ODER berechnet, das, wie bei (B) der 20 gezeigt, in 00010100B resultiert, was das gleiche wie bei (B) der 15 ist. Andererseits wird zwischen dem durch Umkehrung des oben beschriebenen Umgekehrtbitstrompixels 11101001B erhaltenen Bitstrom 10010111B und dem die zusätzliche Information darstellenden Bitstrom 00101001B ein exklusives ODER berechnet, das in dem wie bei (C) der 20 gezeigten 10111110B resultiert.
  • In diesem Fall wird jedoch bei der Decodierungsoperation zwischen den Umgekehrtbitstrompixeln und den EX-ODER-Daten n zuerst ein exklusives ODER berechnet, und dann wird der erhaltene Bitstrom umgekehrt. Durch Benutzung des resultierenden Werts als der Pixelwert wird der Korrelationswert berechnet.
  • Die in den 6, 10, 14 und 17 gezeigten, oben beschriebenen Verarbeitungen können durch Hardware oder Software ausgeführt werden. Wenn sie durch Benutzung von Software ausgeführt werden, kann das korrespondierende Softwareprogramm in einem zur Verfügung gestellten, in ein Pixelverarbeitungsgerät oder ein Lerngerät untergebrachten Hardwarecomputer oder in einem Universalcomputer, der durch Installieren der korrespondierenden Programme unterschiedliche Verarbeitungen ausführt, installiert werden.
  • Es wird nun anhand der 21A, 21B und 21C eine Beschreibung von zur Installation eines die oben beschriebenen Verarbeitungen implementierenden Programms in einem Computer und zum Ausführbarmachen des Programms durch den Computer benutzten Medien gegeben.
  • Das Programm kann, wie in 21A dargestellt, Benutzern durch Installiertsein in einer Festplatte 102 oder einem Halbleiterspeicher 103, die bzw. der als ein Speichermedium dient und in einem Computer 1 untergebracht ist, bereitgestellt sein.
  • Alternativ dazu kann das Programm, wie in 21B gezeigt, als Standard-Software bzw. Softwarepaket (package software) bereitgestellt sein, indem es vorübergehend oder permanent in einem Speichermedium wie beispielsweise einer Diskette 101, einem CD-Nurlesespeicher (CD-ROM (compact disc-read only memory)) 112, einer magneto-optischen Platte (MO-Platte) 113, einer mehrseitigen digitalen Platte (digital versatile disk (DVD)) 114, einer Magnetplatte 115 oder einem Halbleiterspeicher 116 installiert ist.
  • Alternativ dazu kann das Programm, wie in 21C gezeigt, von einer Herunterladestelle 121 über einen künstlichen Digitalsatellitrundfunk-Satelliten 122 zum Computer 101 durch Funk (radio) übertragen werden oder über ein Netzwerk 131 wie beispielsweise ein LAN (lokal area network (lokales Netz)) oder das Internet über Kabel zum Computer 101 übertragen werden und kann in der in den Computer 101 eingebauten Festplatte 101 gespeichert werden.
  • Die in der Beschreibung beschriebenen Medien umfassen das die oben beschriebenen Medien einschließende breiteste Konzept.
  • Die das durch die Medien bereitgestellte Programm bildenden Schritte können entsprechend der in der Beschreibung beschriebenen Zeitreihenfolge ausgeführt werden. Alternativ dazu brauchen die oben beschriebenen Schritte nicht in Zeitreihenfolge ausgeführt zu werden, sondern können individuell oder parallel ausgeführt werden (beispielsweise in Objektverarbeitung).
  • 22 stellt ein Beispiel der Konfiguration des in den 21A und 21C gezeigten Computers dar.
  • Der Computer 101 weist, wie in 22 gezeigt, eine eingebaute zentrale Verarbeitungseinheit (CPU) 142 auf. Eine Eingabe/Ausgabe-Schnittstelle 145 ist über einen Bus 141 mit der CPU 142 verbunden. Bei der Eingabe einer Instruktion seitens eines Benutzers durch Bedienen einer aus einer Tastatur, einer Maus usw. bestehenden Eingabeeinheit 147 über die Eingabe/Ausgabe-Schnittstelle 145 führt die CPU 142 ein in einem mit dem in 21A gezeigten Halbleiterspeicher 103 korrespondierenden Nurlesespeicher (ROM) 143 gespeichertes Programm aus. Alternativ dazu lädt die CPU 142 in einen Direktzugriffsspeicher (RAM) 144 ein in der Festplatte 102 gespeichertes Programm, ein vom Satelliten 122 oder Netzwerk 131 zu einer Kommunikationseinheit 148 übertragenes und in der Festplatte 102 installiertes Programm oder ein von der Diskette 101, dem CD-ROM 112, der MO-Platte 113, der DVD 114 oder der Magnetplatte 115, die in ein Laufwerk 149 geladen ist, gelesenes und in der Festplatte 102 installiertes Programm. Dann führt die CPU 142 das geladene Programm aus. Die CPU 142 gibt dann das verarbeitete Resultat über die Eingabe/Ausgabe-Schnittstelle 145 an eine aus beispielsweise einer Flüssigkristallanzeige (LCD (liquid crystal display)) gebildete Anzeigeeinheit 146 geeignet aus.
  • Gemäß der ersten und zweiten Ausführungsform wird bei Ausführung der Einbettcodierungsverarbeitung und der Codierungsverarbeitung ein Bild in 4 × 4-Pixel-Blöcke geteilt. Jedoch ist die Anzahl von einen einzelnen Block bildenden Pixeln nicht beschränkt. Außerdem ist die Konfiguration des Blocks nicht auf eine Quadrat- oder Rechteckform beschränkt.
  • Wenn bei den vorhergehenden Ausführungsformen in alle einen Rahmen bildenden Blöcke zusätzliche Information eingebettet wird, so kann sie in einige der einen Rahmen bildenden Blöcke eingebettet sein. In diesem Fall können die Pixel, welche Blöcke ohne die zusätzliche Information bilden, bei der Decodierung der Blöcke, in welche die zusätzliche Information eingebettet ist, zur Berechnung von Korrelationswerten benutzt werden.
  • Bei den oben erwähnten Ausführungsformen wird ein einzelner Rahmen in Blöcke geteilt und in die geteilten Blöcke wird zusätzliche Information eingebettet. Jedoch kann bei der Einbettung zusätzlicher Information jeder Rahmen, anstelle in Blöcke geteilt zu werden, als ein einzelner Block benutzt werden, oder es können mehrere Rahmen als ein einzelner Block benutzt werden.
  • Wenn bei der zweiten Ausführungsform ein Pixelwert durch mehrere Komponenten wie beispielsweise YUV oder RGB dargestellt ist, kann zwischen all den Komponenten und der gleichen zusätzlichen Information ein exklusives ODER berechnet werden. Alternativ dazu kann zwischen den individuellen Komponenten und unterschiedlichen Elementen von zusätzlicher Information ein exklusives ODER berechnet werden.
  • Bei der zweiten Ausführungsform werden gewisse der den Block bildenden Pixel entsprechend einem Schachbrettmuster ausgewählt, und die zusätzliche Information wird in die ausgewählten Pixel eingebettet. Jedoch können gewisse der zum Einbetten der zusätzlichen Information benutzten Pixel entsprechend einem anderen Muster ausgewählt werden. Wenn außerdem bei der zweiten Ausführungsform eine Hälfte der den Block bildenden Pixel ausgewählt wird und zwischen den Werten der ausgewählten Pixel und der zusätzlichen Information ein exklusives ODER berechnet wird, so ist die Anzahl von zur Berechnung eines exklusiven ODER benutzten Pixeln nicht auf eine Hälfte der den Block bildenden Pixel beschränkt. Wie oben dargelegt kann jedoch bei der Decodierung der Pixel, in die zusätzliche Information eingebettet ist, der Korrelationswert durch Benutzen der Pixel ohne die zusätzliche Information geeignet bestimmt werden. Die Korrelation zwischen Pixeln wird kleiner, wenn die Pixel räumlich oder zeitlich weit voneinander entfernt sind. Um deshalb die korrekte Decodierungsoperation auszuführen, können die Pixel, in die zusätzliche Information eingebettet ist, derart ausgewählt werden, dass sie räumlich oder zeitlich spärlich lokalisiert sind.
  • Bei der zweiten Ausführungsform werden die Normalbitstrompixel und die Umgekehrtbitstrompixel so ausgewählt, dass sie in der Diagonalrichtung der ausgewählten Pixel abwechseln angeordnet sind. Jedoch können die Normalbitstrompixel und die Umgekehrtbitstrompixel entsprechend einem anderen Muster angeordnet sein.
  • Bei der zweiten Ausführungsform werden gewisse der ausgewählten Pixel als Normalbitstrompixel bestimmt, während die verbleibenden ausgewählten Pixel als die Umgekehrtbitstrompixel bestimmt werden, und zwischen jedem der Pixel und der zusätzlichen Information wird ein exklusives ODER berechnet. Jedoch können alle ausgewählten Pixel als Normalbitstrompixel oder Umgekehrtbitstrompixel bestimmt werden.
  • Der Typ von zusätzlicher Information ist nicht speziell beschränkt. Beispielsweise können Bilder, Ton, Text, Computerprogramme und andere Typen von Daten als die zusätzliche Information eingebettet sein. Ein Teil der in der Bilddatenbank 1 gespeicherten Bilder kann als die zusätzliche Information benutzt werden, und die verbleibenden Bilder können dem Rahmenspeicher 31 zugeführt werden. In diesem Fall kann die zusätzliche Information in die zu codierenden Bilder eingebettet werden und dadurch die Bildkompression implementiert werden.

Claims (30)

  1. Bildverarbeitungsgerät zum Einbetten von Information in Bilddaten, aufweisend: eine Auswahleinrichtung zum Auswählen gewisser, die Bilddaten bildender Pixel und eine Änderungseinrichtung (42) zum Einbetten der Information in die von der Auswahleinrichtung ausgewählten Pixel mittels einer Bitdrehung der Werte der ausgewählten Pixel in Abhängigkeit von der Information.
  2. Bildverarbeitungsgerät nach Anspruch 1, wobei die Änderungseinrichtung gewisse der ausgewählten Pixel in einer Richtung von einem niedrigstwertigen Bit zu einem höchstwertigen Bit dreht und die anderen ausgewählten Pixel in einer Richtung vom höchstwertigen Bit zum niedrigstwertigen Bit dreht.
  3. Bildverarbeitungsgerät nach Anspruch 1, außerdem mit einer Teilungseinrichtung (4) zum Teilen der Bilddaten in einen vorbestimmten Bildblock, wobei die Auswahleinrichtung gewisse der den Bildblock bildenden Pixel auswählt.
  4. Bildverarbeitungsgerät nach Anspruch 3, wobei die Änderungseinrichtung (42) die Information durch Drehen der Bits der ausgewählten Pixelwerte entsprechend einem einzelnen Stück von Information pro Bildblock in Einheiten von Bildblöcken in die ausgewählten Pixel einbettet.
  5. Bildverarbeitungsgerät nach Anspruch 4, wobei die Änderungseinrichtung (42) entsprechend der Information pro Bildblock gewisse der jeden der Bildblöcke bildenden ausgewählten Pixelwerte in einer Richtung von einem niedrigstwertigen Bit zu einem höchstwertigen Bit dreht und die den Bildblock bildenden anderen ausgewählten Pixelwerte in einer Richtung vom höchstwertigen Bit zum niedrigstwertigen Bit dreht.
  6. Bildverarbeitungsgerät zum Decodieren von mit Information in originale Bilddaten eingebetteten codierten Bilddaten und der Information, aufweisend: eine Auswahleinrichtung zum Auswählen gewisser, die codierten Bilddaten bildender Pixel, eine Änderungseinrichtung (62) zum Drehen von Bits von Werten der von der Auswahleinrichtung ausgewählten Pixel, eine Korrelationsberechnungseinrichtung (64) zur Berechnung einer Korrelation zwischen den geänderten Pixeln und Pixeln anders als die von der Auswahleinrichtung ausgewählten Pixel, eine Bestimmungseinrichtung (68) zur Bestimmung auf Basis der von der Korrelationsberechnungseinrichtung berechneten Korrelation eines Betrags, um den die ausgewählten Pixelwerte zu ändern sind, wobei der Betrag zum Decodieren der ausgewählten Pixel benutzt wird, und eine Decodierungseinrichtung zum Decodieren der ausgewählten Pixel auf Basis des von der Bestimmungseinrichtung bestimmten Betrags und zum Decodieren der in die ausgewählten Pixel eingebetteten Information.
  7. Bildverarbeitungsgerät nach Anspruch 6, wobei die Änderungseinrichtung (62) gewisse der ausgewählten Pixel in einer Richtung von einem niedrigstwertigen Bit zu einem höchstwertigen Bit dreht und die anderen ausgewählten Pixel in einer Richtung vom höchstwertigen Bit zum niedrigstwertigen Bit dreht.
  8. Bildverarbeitungsgerät nach Anspruch 6, außerdem mit einer Teilungseinrichtung (61) zum Teilen der Bilddaten in einen vorbestimmten Bildblock, wobei die Auswahleinrichtung gewisse der den Bildblock bildenden Pixel auswählt.
  9. Bildverarbeitungsgerät nach Anspruch 6, wobei die Korrelationsberechnungseinrichtung (64) die Korrelation zwischen den geänderten Pixeln und den Pixeln anders als die um die geänderten Pixel herum lokalisierten ausgewählten Pixel berechnet.
  10. Bildverarbeitungsgerät nach Anspruch 6, wobei die Korrelationsberechnungseinrichtung (64) die Korrelation zwischen den geänderten Pixeln und den Pixeln anders als die um die geänderten Pixel herum lokalisierten ausgewählten Pixel und die Korrelation zwischen den geänderten Pixeln und den decodierten Pixeln berechnet.
  11. Bildverarbeitungsgerät nach Anspruch 6, wobei die Bestimmungseinrichtung (68) den einen Betrag, um den die ausgewählten Pixelwerte zu drehen sind, bestimmt, um die Korrelation zu maximieren, und die Decodierungseinrichtung die ausgewählten Pixel auf Basis des von der Bestimmungseinrichtung bestimmten Betrags decodiert und die in die ausgewählten Pixel eingebettete Information decodiert.
  12. Bildverarbeitungsgerät nach Anspruch 8, wobei die Änderungseinrichtung (62) die Bits der den Bildblock bildenden ausgewählten Pixelwerte um einen identischen Betrag dreht, die Korrelationsberechnungseinrichtung (64) die Korrelation zwischen den geänderten Pixeln und den Pixeln anders als die um die geänderten Pixel herum lokalisierten ausgewählten Pixel berechnet, die Bestimmungseinrichtung (68) auf Basis der Korrelation einen identischen Betrag bestimmt, um den die Pixelwerte zu ändern sind, wobei der eine identische Betrag zum Decodieren der ausgewählten Pixel benutzt wird, und die Decodierungseinrichtung die ausgewählten Pixel auf Basis des von der Bestimmungseinrichtung (68) bestimmten einen identischen Betrags decodiert und ein einzelnes Stück der in die ausgewählten Pixel eingebetteten Information decodiert.
  13. Bildverarbeitungsgerät nach Anspruch 12, wobei die Änderungseinrichtung (62) gewisse der den Bildblock bildenden ausgewählten Pixel in einer Richtung von einem niedrigstwertigen Bit zu einem höchstwertigen Bit dreht und die anderen ausgewählten Pixel in einer Richtung vom höchstwertigen Bit zum niedrigstwertigen Bit dreht.
  14. Bildverarbeitungsgerät zum Einbetten von Information in Bilddaten, aufweisend: eine Auswahleinrichtung zum Auswählen gewisser, die Bilddaten bildender Pixel und eine Änderungseinrichtung (82) zum Einbetten der Information in die von der Auswahleinrichtung ausgewählten Pixel durch Berechnen eines exklusiven ODER zwischen Werten der ausgewählten Pixel und vorbestimmten Informationsdaten und Ändern von Werten der ausgewählten Pixel auf Resultate des exklusiven ODER.
  15. Bildverarbeitungsgerät zum Decodieren von mit Information in originale Bilddaten eingebetteten codierten Bilddaten und der Information, aufweisend: eine Auswahleinrichtung zum Auswählen gewisser, die codierten Bilddaten bildender Pixel, eine Berechnungseinrichtung (162) zum Berechnen eines exklusiven ODER zwischen Werten der von der Auswahleinrichtung ausgewählten Pixel und vorbestimmten Daten, eine Korrelationsberechnungseinrichtung (164) zum Berechnen einer Korrelation zwischen den von der Berechnungseinrichtung berechneten Pixeln und Pixeln anders als die ausgewählten Pixel, eine Bestimmungseinrichtung (168) zur Bestimmung auf Basis der von der Korrelationsberechnungseinrichtung berechneten Korrelation der zum Berechnen des exklusiven ODER mit den ausgewählten Pixeln benutzten vorbestimmten Daten, um die ausgewählten Pixel zu decodieren, und eine Decodierungseinrichtung zum Decodieren der ausgewählten Pixel auf Basis der von der Bestimmungseinrichtung bestimmten vorbestimmten Daten und zum Decodieren der in die ausgewählten Pixel eingebetteten Information.
  16. Bildverarbeitungsgerät nach Anspruch 15, wobei die Berechnungseinrichtung (162) das exklusive ODER zwischen gewissen der ausgewählten Pixelwerte und einem die vorbestimmten Daten darstellenden Bildstrom berechnet und das exklusive ODER zwischen den anderen ausgewählten Pixelwerten und einem durch Umkehrung der Ordnung des die vorbestimmten Daten darstellenden Bitstroms erhaltenen Bitstrom berechnet.
  17. Bildverarbeitungsgerät nach Anspruch 15, außerdem mit einer Teilungseinrichtung (161) zum Teilen der Bilddaten in einen vorbestimmten Bildblock, wobei die Auswahleinrichtung gewisse der den Bildblock bildenden Pixel auswählt.
  18. Bildverarbeitungsgerät nach Anspruch 15, wobei die Korrelationsberechnungseinrichtung (164) die Korrelation zwischen den von der Berechnungseinrichtung berechneten Pixeln und den Pixeln anders als die um die ausgewählten Pixel herum lokalisierten ausgewählten Pixel berechnet.
  19. Bildverarbeitungsgerät nach Anspruch 15, wobei die Korrelationsberechnungseinrichtung (164) die Korrelation zwischen den von der Berechnungseinrichtung (162) berechneten Pixeln und den Pixeln anders als die um die ausgewählten Pixel herum lokalisierten ausgewählten Pixel berechnet und die Korrelation zwischen den von der Berechnungseinrichtung berechneten Pixeln und den decodierten Pixeln berechnet.
  20. Bildverarbeitungsgerät nach Anspruch 15, wobei die Bestimmungseinrichtung (168) die zur Berechnung des exklusiven ODER mit den ausgewählten Pixeln benutzten vorbestimmten Daten bestimmt, um die Korrelation zu maximieren, und die Decodierungseinrichtung die ausgewählten Pixel auf Basis der von der Bestimmungseinrichtung bestimmten vorbestimmten Daten decodiert und die in die ausgewählten Pixel eingebettete vorbestimmte Information decodiert.
  21. Bildverarbeitungsgerät nach Anspruch 17, wobei die Berechnungseinrichtung (162) das exklusive ODER zwischen jedem der den Bildblock bildenden ausgewählten Pixel und den vorbestimmten Daten berechnet, die Korrelationsberechnungseinrichtung (164) die Korrelation zwischen den von der Berechnungseinrichtung berechneten Pixeln und den Pixeln anders als die um die ausgewählten Pixel herum lokalisierten ausgewählten Pixel berechnet, die Bestimmungseinrichtung (168) die zum Decodieren der ausgewählten Pixel benutzten vorbestimmten Daten auf Basis der von der Korrelationsberechnungseinrichtung berechneten Korrelation bestimmt und die Decodierungseinrichtung die ausgewählten Pixel auf Basis der von der Bestimmungseinrichtung bestimmten vorbestimmten Daten decodiert und ein einzelnes Stück der in die ausgewählten Pixel eingebetteten Information decodiert.
  22. Bildverarbeitungsgerät nach Anspruch 21, wobei die Berechnungseinrichtung (162) das exklusive ODER zwischen gewissen der den Bildblock bildenden ausgewählten Pixelwerten und dem die vorbestimmten Daten darstellenden Bitstrom berechnet und das exklusive ODER zwischen den anderen ausgewählten Pixelwerten und einem durch Umkehrung der Ordnung des die vorbestimmten Daten darstellenden Bitstroms erhaltenen Bitstroms berechnet.
  23. Bildverarbeitungsverfahren zum Einbetten von Information in Bilddaten, aufweisend: einen Auswahlschritt zum Auswählen gewisser, die Bilddaten bildender Pixel, und einen Einbettungsschritt zum Einbetten der Information in die beim Auswahlschritt ausgewählten Pixel durch eine Bitdrehung der Werte der ausgewählten Pixel in Abhängigkeit von der Information.
  24. Bildverarbeitungsverfahren zum Decodieren von mit Information in originale Bilddaten eingebetteten codierten Bilddaten und der Information, aufweisend: einen Auswahlschritt zum Auswählen gewisser, die codierten Bilddaten bildender Pixeln, einen Änderungsschritt zum Drehen von Bits von Werten der beim Auswahlschritt ausgewählten Pixel, einen Korrelationsberechnungsschritt zum Berechnen einer Korrelation zwischen den geänderten Pixeln und Pixeln anders als die ausgewählten Pixel, einen Bestimmungsschritt zum Bestimmen auf Basis der beim Korrelationsberechnungsschritt berechneten Korrelation eines Betrags, um den die ausgewählten Pixelwerte zu ändern sind, wobei der Betrag zum Decodieren der ausgewählten Pixel benutzt wird, und einen Decodierungsschritt zum Decodieren der ausgewählten Pixel auf Basis des beim Bestimmungsschritt bestimmten Betrags und Decodieren der in die ausgewählten Pixel eingebetteten Information.
  25. Bildverarbeitungsverfahren zum Einbetten von Information in Bilddaten, aufweisend: einen Auswahlschritt zum Auswählen gewisser, die Bilddaten bildender Pixel, und einen Einbettungsschritt zum Einbetten der Information in die beim Auswahlschritt abgewählten Pixel durch Berechnen eines exklusiven ODER zwischen Werten der ausgewählten Pixel und vorbestimmten Informationsdaten und Ändern von Werten der ausgewählten Pixel auf Resultate des exklusiven ODER.
  26. Bildverarbeitungsverfahren zum Decodieren von mit Information in originale Bilddaten eingebetteten codierten Bilddaten und der Information, aufweisend: einen Auswahlschritt zum Auswählen gewisser, die codierten Bilddaten bildender Pixel, einen Berechnungsschritt zum Berechnen eines exklusiven ODER zwischen Werten der beim Auswahlschritt ausgewählten Pixel und vorbestimmten Daten, einen Korrelationsberechnungsschritt zum Berechnen einer Korrelation zwischen den beim Berechnungsschritt berechneten Pixeln und Pixeln anders als die ausgewählten Pixel, einen Bestimmungsschritt zum Bestimmen auf Basis der beim Korrelationsberechnungsschritt berechneten Korrelation der zum Berechnen des exklusiven ODER mit den ausgewählten Pixeln benutzten vorbestimmten Daten, um die ausgewählten Pixel zu decodieren, und einen Decodierungsschritt zum Decodieren der ausgewählten Pixel auf Basis der beim Bestimmungsschritt bestimmten vorbestimmten Daten und Decodieren der in die ausgewählten Pixel eingebetteten Information.
  27. Speichermedium mit einem Computersteuerungsprogramm zum Einbetten von Information in Bilddaten, wobei das Programm aufweist: einen Auswahlschritt zum Auswählen gewisser, die Bilddaten bildender Pixel, und einen Einbettungsschritt zum Einbetten der Information in die beim Auswahlschritt ausgewählten Pixel durch eine Bitdrehung der Werte der ausgewählten Pixel in Abhängigkeit von der Information.
  28. Speichermedium mit einem Computersteuerungsprogramm zum Decodieren von mit Information in originale Bilddaten eingebetteten codierten Bilddaten und der Information, wobei das Programm aufweist: einen Auswahlschritt zum Auswählen gewisser, die codierten Bilddaten bildender Pixel, einen Änderungsschritt zum Drehen von Bits von Werten der beim Auswahlschritt ausgewählten Pixel, einen Korrelationsberechnungsschritt zum Berechnen einer Korrelation zwischen den geänderten Pixeln und Pixeln anders als die ausgewählten Pixel, einen Bestimmungsschritt zum Bestimmen auf Basis der beim Korrelationsberechnungsschritt berechneten Korrelation eines Betrags, um den die ausgewählten Pixelwerte zu ändern sind, wobei der Betrag zum Decodieren der ausgewählten Pixel benutzt wird, und einen Decodierungsschritt zum Decodieren der ausgewählten Pixel auf Basis des beim Bestimmungsschritt bestimmten Betrags und Decodieren der in die ausgewählten Pixel eingebetteten Information.
  29. Speichermedium mit einem Computersteuerungsprogramm zum Einbetten von Information in Bilddaten, wobei das Programm aufweist: einen Auswahlschritt zum Auswählen gewisser, die Bilddaten bildender Pixel und einen Einbettungsschritt zum Einbetten der Information in die beim Auswahlschritt ausgewählten Pixel durch Berechnen eines exklusiven ODER zwischen Werten der ausgewählten Pixel und vorbestimmten Informationsdaten und Ändern von Werten der ausgewählten Pixel auf Resultate des exklusiven ODER.
  30. Speichermedium mit einem Computersteuerungsprogramm zum Decodieren von mit Information in originale Bilddaten eingebetteten codierten Bilddaten und der Information, aufweisend: einen Auswahlschritt zum Auswählen gewisser, die codierten Bilddaten bildender Pixel, einen Berechnungsschritt zum Berechnen eines exklusiven ODER zwischen Werten der beim Auswahlschritt ausgewählten Pixel und vorbestimmten Daten, einen Korrelationsberechnungsschritt zum Berechnen einer Korrelation zwischen den beim Berechnungsschritt berechneten Pixeln und Pixeln anders als die ausgewählten Pixel, einen Bestimmungsschritt zum Bestimmen auf Basis der beim Korrelationsberechnungsschritt berechneten Korrelation der zum Berechnen des exklusiven ODER mit den ausgewählten Pixeln benutzten vorbestimmten Daten, um die ausgewählten Pixel zu decodieren, und einen Decodierungsschritt zum Decodieren der ausgewählten Pixel auf Basis der beim Bestimmungsschritt bestimmten vorbestimmten Daten und Decodieren der in die ausgewählten Pixel eingebetteten Information.
DE60030911T 1999-06-08 2000-06-07 Bildverarbeitungsgerät und -verfahren und Speichermedium Expired - Lifetime DE60030911T2 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP16053099A JP4099687B2 (ja) 1999-06-08 1999-06-08 画像処理装置および画像処理方法、並びに媒体
JP16052999 1999-06-08
JP16052999A JP4092608B2 (ja) 1999-06-08 1999-06-08 画像処理装置および画像処理方法、並びにプログラム格納媒体
JP16053099 1999-06-08

Publications (2)

Publication Number Publication Date
DE60030911D1 DE60030911D1 (de) 2006-11-09
DE60030911T2 true DE60030911T2 (de) 2007-04-05

Family

ID=26487012

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60030911T Expired - Lifetime DE60030911T2 (de) 1999-06-08 2000-06-07 Bildverarbeitungsgerät und -verfahren und Speichermedium

Country Status (5)

Country Link
US (3) US6870944B1 (de)
EP (1) EP1059606B1 (de)
KR (1) KR100667612B1 (de)
CN (1) CN1148964C (de)
DE (1) DE60030911T2 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100341330C (zh) * 2005-02-25 2007-10-03 吉林大学 音视频混合信号同步压缩中的音频嵌入视频及其提取方法
JP4650123B2 (ja) * 2005-06-27 2011-03-16 ソニー株式会社 画像処理装置、画像処理方法、およびプログラム
US8478074B2 (en) 2006-07-07 2013-07-02 Microsoft Corporation Providing multiple and native representations of an image
US7920749B1 (en) * 2006-12-20 2011-04-05 Nvidia Corporation Modified high dynamic range color decompression
EP2234400A1 (de) * 2009-03-23 2010-09-29 Sony Corporation Verfahren und Vorrichtung zur Bereitstellung eines Multimedia-Inhaltstroms mit Einbettung von Verarbeitungsinformationen des Inhaltstroms
JP5471580B2 (ja) * 2010-02-23 2014-04-16 富士ゼロックス株式会社 画像処理装置及びプログラム
JP5562812B2 (ja) * 2010-11-22 2014-07-30 株式会社東芝 送受切替回路、無線装置および送受切替方法
CN104581120A (zh) * 2015-01-23 2015-04-29 深圳超多维光电子有限公司 图像信息保存方法、保存装置、立体图像生成方法和装置
JP6819096B2 (ja) * 2016-06-30 2021-01-27 オムロン株式会社 画像処理装置、画像処理方法、および画像処理プログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2101838B (en) * 1981-04-20 1986-03-05 Canon Kk Image processing method and apparatus therefor
JP2670273B2 (ja) * 1987-09-30 1997-10-29 株式会社東芝 画像処理装置
KR0123083B1 (ko) * 1993-10-28 1997-11-17 배순훈 패킷 동영상 부호기 및 복호기에 있어서의 패킷 데이터 구조
JPH08214314A (ja) * 1995-02-02 1996-08-20 Canon Inc 画像伝送装置
EP0766468B1 (de) * 1995-09-28 2006-05-03 Nec Corporation Verfahren und Vorrichtung zum Einfügen eines Spreizspektrumwasserzeichens in Multimediadaten
US5734752A (en) * 1996-09-24 1998-03-31 Xerox Corporation Digital watermarking using stochastic screen patterns
TW312770B (en) * 1996-10-15 1997-08-11 Japen Ibm Kk The hiding and taking out method of data
US5835639A (en) * 1996-12-18 1998-11-10 Eastman Kodak Company Method for detecting rotation and magnification in images
JPH10210428A (ja) * 1997-01-17 1998-08-07 Matsushita Electric Ind Co Ltd 番組送信装置、番組受信装置、及び番組放送システム
JPH10336595A (ja) * 1997-06-05 1998-12-18 Mitsubishi Electric Corp デコーダ
KR100256646B1 (ko) * 1997-11-25 2000-05-15 전주범 영상 부호화 시스템의 압축율 자동-변환 장치
JP4182603B2 (ja) * 1998-10-07 2008-11-19 ソニー株式会社 符号化装置および符号化方法、復号装置および復号方法、記録媒体、並びにデータ処理装置
JP4822304B2 (ja) * 1998-08-06 2011-11-24 ソニー株式会社 画像処理装置および画像処理方法、並びに記録媒体
JP3748495B2 (ja) 1998-12-11 2006-02-22 キヤノン株式会社 画像処理方法、画像処理装置、画像配付システム及び記憶媒体
JP3682382B2 (ja) 1999-01-25 2005-08-10 大日本印刷株式会社 画像処理システム及び記録媒体

Also Published As

Publication number Publication date
US6870944B1 (en) 2005-03-22
CN1276681A (zh) 2000-12-13
EP1059606A2 (de) 2000-12-13
US20050008192A1 (en) 2005-01-13
CN1148964C (zh) 2004-05-05
US7606431B2 (en) 2009-10-20
KR20010007261A (ko) 2001-01-26
EP1059606B1 (de) 2006-09-27
US20050013464A1 (en) 2005-01-20
EP1059606A3 (de) 2002-08-28
US6940996B2 (en) 2005-09-06
DE60030911D1 (de) 2006-11-09
KR100667612B1 (ko) 2007-01-15

Similar Documents

Publication Publication Date Title
DE69922453T2 (de) Bildverarbeitungsgerät, Bildverarbeitungsverfahren und Herstellungsmedia
DE69736852T2 (de) Codierung- und Decodierungssystem für bewegte Bilder mit beliebig geformten Objekten
DE69535007T2 (de) Verfahren und Vorrichtung zur objektbasierten prädiktiven Kodierung und Übertragung von digitalen Bildern und Dekodierungsvorrichtung
DE69838630T2 (de) Prädiktive Digitalvideosignalkodierung- und Dekodierungsmethode unter Verwendung von Blockinterpolation
EP0276753B1 (de) Verfahren und Vorrichtung zur digitalen Nachrichtenübertragung und/oder -aufzeichnung und -wiedergabe
DE69123991T2 (de) Bildverarbeitung mit neuronalem Netzwerk
DE3785558T2 (de) Gerät zur Verarbeitung von Signalen für die Anzeige von Bildern mit zwei Pegeln.
DE60030911T2 (de) Bildverarbeitungsgerät und -verfahren und Speichermedium
DE69819608T2 (de) Mehrpegelige Halbtonrasterung mit Rändern verringerter Textur und Deckungssteuerung
EP0232417A1 (de) Verfahren zur korrektur von übertragungsfehlern.
DE69816710T2 (de) Digitaler Bildprozessor
US6546139B1 (en) Coding apparatus and method, decoding apparatus and method, data processing system, storage medium, and signal
DE3338167A1 (de) Verfahren und vorrichtung zur speicherung von bilddaten in einer speichereinrichtung eines layout-abtastsystems
DE2636093A1 (de) Vorrichtung zum umsetzen von eingangsdaten in daten mit ausgeglichener haeufigkeitsverteilung ihrer intensitaet
DE3836640C2 (de)
DE68923110T2 (de) Vermeiden des Verschwindens von dünnen Linien in Bildreduzierverfahren.
DE69908352T2 (de) Verfahren und vorrichtung zur wasserzeichendetektion für spezifische skalen und beliebige versetzungen
DE60029828T2 (de) Verfahren und vorrichtung zur dekodierung von videosignalen mittels eines multiprozessorsystems
DE112019003326T5 (de) Speichererweiterte neuronale netzwerkarchitekturen eines codierers-decodierers
DE112005003130B4 (de) Verfahren und Vorrichtung zum Bewerten von Flag-Registern in einer Einzelbefehl-Mehrdaten-Ausführungsmaschine
DE4143074A1 (de) Verfahren und einrichtung zum umformatieren verschachtelter videodaten zur darstellung auf einem computer-ausgabedisplay
DE69631415T2 (de) System und verfahren zur stochastischen rasterung mit mehreren dichtepegeln
DE69738480T2 (de) Interpolationsverfahren von Binärbildern
DE69930333T2 (de) Verfahren und Vorrichtung zum Verarbeiten von Bildern und Aufnahmemedium dafür
DE2851481A1 (de) Kodiereinrichtung fuer bildsignale

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)