DE102014203560B4 - INDEXED COLOR HISTORY IN IMAGE ENCODING - Google Patents
INDEXED COLOR HISTORY IN IMAGE ENCODING Download PDFInfo
- Publication number
- DE102014203560B4 DE102014203560B4 DE102014203560.0A DE102014203560A DE102014203560B4 DE 102014203560 B4 DE102014203560 B4 DE 102014203560B4 DE 102014203560 A DE102014203560 A DE 102014203560A DE 102014203560 B4 DE102014203560 B4 DE 102014203560B4
- Authority
- DE
- Germany
- Prior art keywords
- pixel
- color
- ich
- current pixel
- encoding
- 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.)
- Active
Links
- 238000013139 quantization Methods 0.000 claims abstract description 28
- 230000006870 function Effects 0.000 claims abstract description 26
- 230000015654 memory Effects 0.000 claims abstract description 18
- 238000004891 communication Methods 0.000 claims abstract description 10
- 238000000034 method Methods 0.000 claims description 26
- 230000004044 response Effects 0.000 claims description 4
- 230000011664 signaling Effects 0.000 claims 2
- 238000012545 processing Methods 0.000 description 13
- 238000013507 mapping Methods 0.000 description 6
- 239000003086 colorant Substances 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- VAYOSLLFUXYJDT-RDTXWAMCSA-N Lysergic acid diethylamide Chemical compound C1=CC(C=2[C@H](N(C)C[C@@H](C=2)C(=O)N(CC)CC)C2)=C3C2=CNC3=C1 VAYOSLLFUXYJDT-RDTXWAMCSA-N 0.000 description 1
- 241001025261 Neoraja caerulea Species 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/186—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/147—Data rate or code amount at the encoder output according to rate distortion criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/154—Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/182—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/94—Vector quantisation
Abstract
System mit:
einem Speicher, der speichert:
eine indizierte Farbhistorie mit einem Eintrag, der einen Farbwert eines vorher codierten Pixels speichert;
einer Codierungslogik, die mit dem Speicher in Kommunikation steht und konfiguriert ist zum:
Erhalten eines aktuellen Pixels zur Codierung;
Bestimmen, ob das aktuelle Pixel durch Bezugnahme auf die indizierte Farbhistorie zu codieren ist, durch Bestimmen, wenn ein Farbwert des aktuellen Pixels innerhalb einer Differenzschwelle ausgehend von dem Farbwert des vorher codierten Pixels liegt;
Zugreifen auf einen Quantisierungsparameter für das aktuelle Pixel; und
Bestimmen der Differenzschwelle als eine Funktion des Quantisierungsparameters für das aktuelle Pixel; und
wenn bestimmt wird, dass das aktuelle Pixel unter Verwendung der indizierten Farbhistorie zu codieren ist:
Codieren des Pixels als ein Indexwert, welcher auf den Eintrag in der indizierten Farbhistorie Bezug nimmt; und
wenn nicht bestimmt wird, dass das aktuelle Pixel unter Verwendung der indizierten Farbhistorie zu codieren ist:
Codieren des aktuellen Pixels als ein unkomprimierter Farb- oder Pixelwert oder durch Einfügen in die indizierte Farbhistorie.
System with:
a memory that stores:
an indexed color history having an entry storing a color value of a previously encoded pixel;
an encoding logic in communication with the memory and configured to:
obtaining a current pixel for encoding;
determining whether to encode the current pixel by reference to the indexed color history by determining if a color value of the current pixel is within a difference threshold from the color value of the previously encoded pixel;
accessing a quantization parameter for the current pixel; and
determining the difference threshold as a function of the quantization parameter for the current pixel; and
if it is determined that the current pixel is to be encoded using the indexed color history:
encoding the pixel as an index value that references the entry in the indexed color history; and
if not determining that the current pixel is to be encoded using the indexed color history:
Encoding the current pixel as an uncompressed color or pixel value or by inserting it into the indexed color history.
Description
Technisches Gebiettechnical field
Diese Offenbarung bezieht sich auf Bildcodierung. Diese Offenbarung bezieht sich auch auf eine Verwendung einer indizierten Farbhistorie zum Codieren oder Decodieren eines Bilds.This disclosure relates to image coding. This disclosure also relates to using an indexed color history to encode or decode an image.
Hintergrundbackground
Schnelle Fortschritte in der Elektronik und der Nachrichtentechnik, die durch immense Kundenanforderungen angetrieben sind, haben zu der weltweiten Einführung von Vorrichtungen geführt, die eine große Vielfalt von Bild- oder Videoinhalten anzeigen. Beispiele derartige Vorrichtungen umfassen Smartphones, Flachschirmfernsehgeräte und Tabletcomputer. Verbesserungen in Bild- und Videoverarbeitungsmethoden werden die Fähigkeiten dieser Vorrichtungen weiter erhöhen.Rapid advances in electronics and communications, driven by immense customer demands, have led to the worldwide introduction of devices that display a wide variety of image or video content. Examples of such devices include smartphones, flat panel televisions, and tablet computers. Improvements in image and video processing methods will further increase the capabilities of these devices.
In Übereinstimmung mit der vorliegenden Erfindung werden ein System mit den Merkmalen des Anspruchs 1, ein Verfahren mit den Merkmalen des Anspruchs 8 und ein Produkt mit den Merkmalen des Anspruchs 13 bereitgestellt.In accordance with the present invention a system having the features of claim 1, a method having the features of claim 8 and a product having the features of claim 13 are provided.
Vorteilhafte Weiterbildungen ergeben sich aus den abhängigen Unteransprüchen.Advantageous developments result from the dependent subclaims.
Figurenlistecharacter list
-
1 zeigt ein Beispiel einer Vorrichtung, die eine Bildverarbeitung unter Verwendung einer indizierten Farbhistorie durchführt.1 Fig. 12 shows an example of an apparatus that performs image processing using indexed color history. -
2 zeigt eine Beispielarchitektur eines Codierers.2 shows an example architecture of an encoder. -
3 zeigt eine beispielhafte Darstellung der indizierten Farbhistorie.3 shows an example representation of the indexed color history. -
4 zeigt eine weitere beispielhafte Darstellung der indizierten Farbhistorie.4 shows another exemplary representation of the indexed color history. -
5 zeigt eine beispielhafte Darstellung der indizierten Farbhistorie.5 shows an example representation of the indexed color history. -
6 zeigt ein Beispiel einer Logik, die eine Vorrichtung zum Codieren von Bilddaten implementieren kann.6 Figure 12 shows an example of logic that an apparatus for encoding image data may implement. -
7 zeigt ein Beispiel eines Systems zum Verarbeitung von Bilddaten.7 shows an example of a system for processing image data. -
8 zeigt ein Beispiel einer Logik, die eine Vorrichtung zum Decodieren von Bilddaten implementieren kann.8th Figure 12 shows an example of logic that an apparatus for decoding image data may implement.
Ausführliche BeschreibungDetailed description
Die nachstehende Erörterung nimmt Bezug auf eine Bildcodierung unter Verwendung einer indizierten Farbhistorie bzw. -vorgeschichte. Die nachstehend beschriebenen Methoden und Systeme können die Effizienz bei einer Bildcodierung (z.B. einer Codierung oder Decodierung) verbessern, insbesondere für fein detaillierten Bildinhalt wie etwa Text. Eine Bildcodierung unter Verwendung einer indizierten Farbhistorie kann in effizient codierten Farben (z.B. Farbwerten oder Pixel- bzw. Bildelementwerten) resultieren, die in einem Bild vorher aufgetreten sind, wie etwa Farben aus einem vorher verarbeiteten Teil des Bilds, an einer vorhergehenden Linien- oder Zeilenposition in dem Bild, die sich an einer Position über, unter, links von und/ oder rechts von einem aktuellen Pixel bzw. Bildelement mit einer bestimmten Farbe befindet, oder an anderen Positionen. Auch eine Bildkompression unter Verwendung einer indizierten Farbhistorie kann in einer effizienten Codierung von ähnlichen, aber nicht identischen, Farben resultieren, die in dem Bild vorher aufgetreten sind, wie etwa ähnliche Farben, die mit einer beliebigen Anzahl von Ähnlichkeitskriterien mit Bezug auf die eine ursprüngliche Farbe übereinstimmen bzw. zusammenpassen.The discussion below makes reference to image encoding using indexed color history. The methods and systems described below can improve efficiency in image coding (eg, encoding or decoding), particularly for finely detailed image content such as text. Image encoding using an indexed color history can result in efficiently encoded colors (eg, color values or pixel values) that previously occurred in an image, such as colors from a previously processed portion of the image, at a previous line or line position in the image that is at a position above, below, to the left of, and/or to the right of a current pixel or picture element with a specific color, or at other positions. Also using an image compression an indexed color history can result in efficient coding of similar, but not identical, colors that have previously occurred in the image, such as similar colors that match any number of similarity criteria with respect to the one original color.
Die Vorrichtungen, die eine indizierte Farbhistorie enthalten bzw. einbeziehen, implementieren oder unter-/halten bzw. pflegen oder eine Codierung oder Decodierung unter Verwendung einer indizierten Farbhistorie durchführen, wie es nachstehend beschrieben ist, können viele unterschiedliche Formen annehmen. Beispielsweise können die Vorrichtungen Set-Top-Boxen bzw. Digitalempfänger, Mobiltelefone, Smartphones, Laptopcomputer, Organizer, Taschencomputer, Tabletcomputer, tragbare E-Mail-Geräte oder in einem Speicher durch einen Prozessor ausgeführte Prozesse oder Threads sein. Weitere Beispiele von Vorrichtungen umfassen Fernsehgeräte, hochauflösende (z.B. Blue-Ray-(TM) oder DVD-Audio-) Medienabspielgeräte oder Heimmedienserver. Solche Vorrichtungen können in praktisch jeder Umgebung gefunden werden, einschließlich dem Zuhause, dem Geschäft, dem öffentlichen Raum und den Automobilien.The devices that include, implement, or maintain indexed color history, or perform encoding or decoding using indexed color history, as described below, may take many different forms. For example, the devices may be set-top boxes, cell phones, smart phones, laptop computers, personal organizers, handheld computers, tablet computers, portable email devices, or processes or threads executed in memory by a processor. Other examples of devices include televisions, high definition (e.g., Blue-Ray (TM) or DVD-Audio) media players, or home media servers. Such devices can be found in virtually any environment, including the home, business, public spaces, and automobiles.
Die Vorrichtung 100 umfasst Systemlogik 112. Die Systemlogik 112 kann jede Kombination von Hardware, Software, Firmware oder anderer Logik umfassen.
Die Systemlogik 112 kann zum Beispiel in einem System-auf-Chip (SoC), einer anwendungsspezifischen integrierten Schaltung (ASIC) oder anderen Schaltungen implementiert sein. Die Systemlogik 112 ist Teil der Implementierung von jeglicher gewünschter Funktionalität in der Vorrichtung 100. Im Kontext einer Codierung von Bilddaten kann die Systemlogik 112 einen Codierer 114 umfassen. Der Codierer 114 kann jede beliebige Bildverarbeitung, die nachstehend beschrieben ist, einschließlich einer Codierung von Bilddaten unter Verwendung einer indizierten Farbhistorie, in Hardware, Software oder beidem implementieren. In einigen Implementierungen implementiert die Systemlogik 112 den Codierer 114 und eine indizierte Farbhistorie in Hardware, z.B. als dedizierte Bildverarbeitungsschaltungen.The
In einigen Implementierungen umfasst die Systemlogik 112 ein oder mehrere Prozessoren 120 und Speicher 121. Der Speicher 121 speichert zum Beispiel Systemanweisungen 122, einschließlich Codierungsanweisungen 124, die der Prozessor 120 zum Codieren von Bilddaten ausführt. Der Speicher 121 kann auch die indizierte Farbhistorie (ICH: „Indexed Color History“) 126 (z.B. als eine Hardwareregisterdatei), Betriebsparameter 127 und zu codierende Daten 128, z.B. Pixeldaten eines Bilds, speichern. Pixeldaten können sich auf einen Farbwert des Pixels bzw. Bildelements beziehen oder einen solchen umfassen.In some implementations,
Die Systemlogik 112 kann die ICH 126 als einen Speicher (z.B. Cache, Tabelle oder geordnete Liste) implementieren, der einen Satz von aktuell verwendeten Farbwerten oder Pixelwerten unter-/hält. Der Codierer 114 unter-/hält die ICH 126. Der Codierer 114 kann die ICH 126 zum Speichern einer konfigurierbaren Anzahl von Einträgen implementieren. Die ICH 126 kann eine vorbestimmte Anzahl von Einträgen, wie etwa 8, 16, 32, 64, oder jede andere Anzahl von Einträgen speichern. Einträge in der ICH 126 können eine Farbbezeichnung speichern, wie etwa durch einen Farbwert oder einen Pixelwert. Der Codierer 114 kann einen Farbwert als einen Zahlenwert (oder ein Tupel von Zahlen) darstellen, der (das) Teil eines Farbraums (oder Farbmodells) ist, wie etwa des RGB-Farbraums, des YCoCr-Farbraums, des YCoCg-Farbraums, des CMYK-Farbraums oder jedes beliebigen anderen Farbraums. In einigen Implementierungen codiert der Codierer abhängig von dem Format des Eingangsbilds 114 Bilddaten in YCoCg oder YCbCr. Der Codierer 114 kann ein RGB-Eingangsbild vor einer Codierung in YCoCg wandeln. Ein Decodierer kann decodierten YCoCg-Inhalt vor einer Ausgabe in RGB wandeln.
Der Codierer 114 kann die ICH 126 derart implementieren, dass Einträge Speicherorte mit mehreren Bits sind, die einen Farbwert halten. Ein Farbwert kann sich auf eine Darstellung einer Farbe in einem bestimmten Farbraum beziehen. Zum Beispiel, wenn RGB24-Bild-oder Videodaten, die in YCoCg gewandelt wurden, codiert werden, kann die Y-Komponente eines YCoCg-Farbwerts mit 8 Bits codiert werden und können die Co- & Cg-Komponenten jeweils mit 9 Bits codiert werden. In diesem Beispiel kann die ICH 126 Einträge in der ICH 126 mit 26 Bits zuweisen, um einen YCoCg-Farbwert zu speichern. Ein Eintrag kann breiter sein, als dies zum Speichern eines Farbwerts notwendig ist. Zum Beispiel kann jeder Eintrag 32 Bits breit oder 64 Bits breit sein und dadurch zum Beispiel einen nahtlosen Betrieb mit anderen Farbräumen ermöglichen, die zusätzliche Bits pro Farbwert verwenden. Als eine weitere Abwandlung kann der Codierer 114 ICH-Einträge implementieren, die schmäler sind als die Anzahl von Bits zum Speichern eines Farbwerts für einen bestimmten Farbraum. In dieser Abwandlung kann der Codierer 114 einen Farbwert auf eine kleinere Bittiefe quantisieren oder runden, um ihn in schmäleren Einträgen der ICH 126 zu speichern.The
Der Codierer 114 kann Bilddaten unter Verwendung einer ICH-Codierung oder einer Nicht-ICH-Codierung codieren. Beim Durchführen einer ICH-Codierung kann der Codierer 114 Bilddaten durch Bezugnahme auf die ICH 126 codieren, z.B. durch Darstellung von Pixel in einem codierten Bitstrom als Indexwerte in die ICH 126. Beim Durchführen einer Nicht-ICH-Codierung kann der Codierer 114 Bilddaten unter Verwendung eines anderen Codierungsverfahrens ohne Bezugnahme auf die ICH 126 codieren, wobei Beispiele hierfür die Codierungsverfahren umfassen, die beschrieben sind in der
Der Codierer 114 kann Bitströme erzeugen, die präzise mit einer unabhängig spezifizierten bpp- (Bits-pro-Pixel-) Rate im Einklang stehen können. Die bpp-Rate kann in Form von Bits pro Pixelzeit spezifiziert sein. Bits pro Pixelzeit können algorithmisch spezifiziert werden, da die Einheit einer Pixelzeit sowohl am Eingang als auch am Ausgang des Codierers 114 gleich sein kann. Die Anzahl von Bits, die jedes Pixel oder jede Gruppe von Pixel codieren, kann erheblich variieren. In der beispielhaften Architektur 200 ermöglicht ein Ratenpuffer 202 eine Wandlung der variablen Anzahl von Bits, die zum Codieren jeder Gruppe verwendet werden, z.B. in eine konstante bpp-Rate. Zu diesem Zweck kann der Codierer 114 die Ratensteuereinheit 204 umfassen. Die Ratensteuereinheit 204 kann bestimmen, ob der Quantisierungsschritt zu inkrementieren, zu dekrementieren oder unverändert zu lassen ist.The
Der Codierer 114 kann eine Farbraumwandlungslogik 206 umfassen, z.B. eine Logik zur Wandlung einer RGB-Eingabe auf reversibles YCoCg. Ein Eingangspuffer 208 kann die gewandelte Eingabe speichern. In
In
Die beispielhafte Architektur 200, die in
Der Codierer 114 kann die Verwendung einer ICH-Codierung unter Verwendung von einem beliebigen von vielfältigen Algorithmen oder Kriterien auswählen, von denen jeder/jedes in den Betriebsparametern 127 spezifiziert sein kann. Der Auswahlalgorithmus oder das -kriterium, der oder das durch den Codierer 114 eingesetzt wird, muss nicht in einem Decodierer verwirklicht sein. Wie es nachstehend ausführlicher beschrieben ist, kann der Codierer 114 in einem codierten Bitstrom angeben, ob ein Eingangspixel oder eine Gruppe von Eingangspixel unter Verwendung einer ICH-Codierung oder einem anderen Codierungsverfahren codiert wurde.The
In einigen Implementierungen bestimmt der Codierer 114, ob eine ICH-Codierung für eine Gruppe von Eingangspixel zu verwenden ist, gemäß Ähnlichkeitskriterien mit Bezug auf Einträge in der ICH 126. Anders ausgedrückt kann der Codierer 114 bestimmen, eine ICH-Codierung für eine aktuelles Eingangspixel zu verwenden, wenn ein Eintrag in der ICH 126 die Ähnlichkeitskriterien mit Bezug auf das aktuelle Eingangspixel erfüllt. Der Codierer 114 kann bestimmen, eine ICH-Codierung für eine Gruppe von Pixel zu verwenden, wenn eine Schwellenanzahl oder ein -prozentsatz (z.B. alle) der Eingangspixel in der Gruppe die Ähnlichkeitskriterien erfüllen. In dieser Hinsicht kann der Codierer 114 den Farbwert des/der Eingangspixels/-pixel mit den in Einträgen der ICH 126 gespeicherten Farbwerten vergleichen.In some implementations,
Der Codierer 114 kann ein oder mehrere Ähnlichkeitskriterien mit Bezug auf die Differenz zwischen dem Farbwert eines zu codierenden Eingangspixels und dem Farbwert eines Eintrags in der ICH 126 anwenden, wobei einige Beispiele hierfür als Nächstes dargelegt sind. Als ein erstes Beispiel kann der Codierer 114 bestimmen, ob eine Differenz zwischen Farbwerten eine Differenzschwelle überschreitet, z.B. wie sie zwischen einer oder mehreren Komponenten eines Farbraums gemessen wird, oder wie sie durch den Abstand zwischen zwei Farbwerten in dem Farbraum gemessen wird. Ähnlichkeitskriterien können erfüllt sein, wenn die Differenz zwischen einer oder mehreren Komponenten oder die Summe der Differenz (z.B. die Absolutdifferenz) zwischen einer oder mehreren Komponenten oder eine ausgewählte Funktion des/der Komponenten kleiner ist als die Differenzschwelle. In dieser Hinsicht können Einträge in der ICH 126 die Ähnlichkeitskriterien erfüllen, wenn der Farbwert des zu codierenden Eingangspixels in seinem Farbwert von demjenigen von einem oder mehreren Einträgen in der ICH 126 um weniger als eine Differenzschwelle differiert, z.B. wenn der Farbwert des Eingangspixels innerhalb einer Differenzschwelle ausgehend von dem Farbwert eines Eintrags in der ICH 126 liegt.The
In einigen Abwandlungen können die Ähnlichkeitskriterien eine gemeinsame bzw. allgemeine Differenzschwelle spezifizieren, die für ein oder mehrere Komponenten eines Farbwerts anwendbar ist, z.B. eine gemeinsame bzw. allgemeine Differenzschwelle für die Vergleiche von den Y-, Co- und Cg-Komponenten zwischen dem Eingangspixel und den Einträgen der ICH 126. In anderen Abwandlungen können die Ähnlichkeitskriterien jeweilige Differenzschwellen spezifizieren, die für einzelne Komponenten eines Farbwerts anwendbar sind, z.B. eine erste Differenzschwelle, die für Vergleiche der Y-Komponente anwendbar ist, eine zweite Differenzschwelle, die für Vergleiche der Co-Komponente anwendbar ist, und eine Cg-Differenzschwelle, die für Vergleiche der Cg-Komponente anwendbar ist. Als eine weitere Alternative oder eine zusätzliche Abwandlung können die Ähnlichkeitskriterien bestimmte Differenzschwellen spezifizieren, die für unterschiedliche Pixel in einer Gruppe spezifisch sind.In some variations, the similarity criteria may specify a common difference threshold applicable to one or more components of a color value, e.g. a common difference threshold for the comparisons of the Y, Co, and Cg components between the input pixel and the entries of
Der Codierer 114 kann die Differenzschwelle als eine Funktion von einer der mehreren Variablen bestimmen, die bei einer Nicht-ICH-Codierung verwendet werden. Als Beispiele kann der Codierer 114 die Differenzschwelle als den Maximal-, Minimal- oder Durchschnittsfehler festlegen, der aus einer Codierung von Pixel in einer Gruppe unter Verwendung eines Nicht-ICH-Codierungsverfahrens erhalten werden kann. In diesen Situationen können die Ähnlichkeitskriterien Fehlerkriterien umfassen. Um eine weitere Veranschaulichung im Kontext einer Quantisierung bereitzustellen, bestimmt der Codierer 114 die Differenzschwelle als eine Funktion eines Quantisierungsparameters (QP), der für ein aktuelles Pixel oder eine aktuelle Pixelgruppe gelten wurde, wenn der Codierer 114 eine Nicht-ICH-Codierung, z.B. eine prädiktive Codierung, zu verwenden hätte. In dieser Veranschaulichung kann ein Nicht-ICH-Codierungsalgorithmus eine Verwendung eines QP-Werts von 4 für das erste Pixel und eines QP-Werts von 5 für das zweite und das dritte Pixel in einer Gruppe von drei Pixel spezifizieren. Die entsprechenden maximalen Quantisierungsfehler können 24/2 = 8 für das erste Pixel und 25/2 = 16 für das zweite und das dritte Pixel sein. Der Codierer 114 kann eine Differenzschwelle von 8 für Komponenten des ersten Pixels und eine Differenzschwelle von 16 für Komponenten des zweiten und des dritten Pixels anwenden, wenn er diese mit Einträgen in der ICH 126 vergleicht. Somit kann der Codierer 114 bestimmen, ob die Ähnlichkeitskriterien erfüllt sind, indem er bestimmt, ob die Absolutdifferenz für jeder Komponente für ein zu codierendes Eingangspixel und einen Eintrag in der ICH 126 diese Differenzschwellen überschreitet. In dieser besonderen Veranschaulichung bestimmt der Codierer 114, dass die Ähnlichkeitskriterien erfüllt sind, wenn zum Beispiel der Absolutwert der Differenz zwischen den Farbwertkomponenten des Eingangspixels und den Farbwertkomponenten des Farbwerts eines Eintrags in der ICH 126 um weniger als die Differenzschwelle differiert, z.B. um 8 für Vergleiche mit Farbwertkomponenten des ersten Pixels und um 16 für Vergleiche mit Farbwertkomponenten des zweiten und des dritten Pixels.The
Als zusätzliches Beispiel von Ähnlichkeitskriterien kann der Codierer 114 einen anderen Differenzschwellenwert als den maximalen momentan anwendbaren Quantisierungsfehler anwenden. Zum Beispiel, wenn ein maximaler Quantisierungsfehler eine vorbestimmte Fehlerstufe (z.B. einen Schwellenwert) überschreitet, kann der Codierer 114 eine Differenzschwelle anwenden, die kleiner ist als der maximale momentan anwendbare Quantisierungsfehler. Wenn der maximale Quantisierungsfehler die vorbestimmte Fehlerstufe nicht überschreitet, kann der Codierer 114 eine Differenzschwelle anwenden, die gleich dem maximalen momentan anwendbaren Quantisierungsfehler ist. Als eine Veranschaulichung kann der Codierer 114, falls QP = 5 gilt und der Maximalfehler gleich 16 ist und eine vorbestimmte Fehlerstufe gleich 8 ist, einen Differenzschwellenwert von weniger als 16 anwenden, zum Beispiel 8. Falls QP = 4 gilt und der maximale Fehler 8 ist, kann der Codierer einen Differenzschwellenwert anwenden, der gleich dem Maximalfehler ist, der 8 ist.As an additional example of similarity criteria,
In einigen Abwandlungen erfordert eine Erfüllung der Ähnlichkeitskriterien eine identische Übereinstimmung zwischen Farbwerten eines Eingangspixels und eines Eintrags in der ICH 126. Das heißt, dass der Codierer 114 eine Erfüllung der Ähnlichkeitskriterien bestimmt, wenn ein Eintrag in der ICH 126 mit dem Eingangspixel identisch übereinstimmt. Als eine noch weitere Abwandlung können die Ähnlichkeitskriterien eine exakte Übereinstimmung für eine oder mehrere Farbkomponenten zwischen dem Eingangspixel und einem Eintrag der ICH 126 erfordern. In dieser Abwandlung kann der Codierer 114 eine Erfüllung der Ähnlichkeitskriterien bestimmen, wenn ein oder mehrere Komponenten des Eingangspixels mit jeweiligen Komponenten eines Eintrags der ICH 126 identisch übereinstimmen.In some variations, meeting the similarity criteria requires an identical match between color values of an input pixel and an entry in the
Die Codierer 114 kann beim Bestimmen einer Verwendung einer ICH-Codierung für ein Pixel oder eine Gruppe von Eingangspixel mehrere Kriterien anwenden. Als ein Beispiel bestimmt der Codierer 114, ob eine Codierung im ICH-Modus für eine Gruppe auszuwählen ist, basierend auf einer oder mehreren Bedingungen, wie etwa, wenn die folgenden beiden Bedingungen erfüllt sind:
- (1) für jedes Pixel in der Gruppe gibt es zumindest einen Eintrag in der
ICH 126, der die Ähnlichkeitskriterien erfüllt; und - (2) eine geschätzte Anzahl von Bits, die bei Codierung der Gruppe im ICH-Modus aufgewendet würde („Bitkosten“), ist geringer als eine geschätzte Anzahl von Bits, die bei Codierung der Gruppe unter Verwendung des Nicht-ICH-Modus aufgewendet würde.
- (1) for each pixel in the group, there is at least one entry in the
ICH 126 that meets the similarity criteria; and - (2) an estimated number of bits that would be expended encoding the group in ICH mode ("bit cost") is less than an estimated number of bits that would be expended encoding the group using non-ICH mode .
Als ein zusätzliches oder alternatives Beispiel zu der vorstehenden Bedingung (2) kann der Codierer 114 ein Kriterium zum Wählen zwischen dem ICH-Modus und dem Nicht-ICH-Modus basierend auf den Bitkosten für die Pixelgruppe und einem oder mehreren zusätzlichen Parametern, wie etwa einem durch Verwendung des Codierungsmodus verursachten Fehler, anwenden. Eine Codierung der Pixelgruppe im ICH-Modus kann einen Fehler in ein Eingangspixel einführen, wenn der Farbwert für einen Eintrag in der ICH 126, auf den zum Codieren des Eingangspixels Bezug genommen wird, von dem Farbwert des Eingangspixels differiert, und der Fehler für ein Eingangspixel kann 0 sein, wenn der Farbwert des unter Bezug genommenen bzw. referenzierten Eintrags in der ICH 126 mit dem Farbwert des Eingangspixels identisch übereinstimmt. In dieser Hinsicht kann sich ein Fehler auf die Differenz zwischen dem Farbwert des Eingangspixels und dem codierten Farbwert beziehen, der sich aus einem bestimmten Codierungsmodus ergibt. Eine Codierung in Nicht-ICH-Modi kann einen Fehler einführen, der zum Beispiel durch eine Quantisierung oder Rekonstruktion von Farbwerten verursacht wird. In diesen Beispielen kann der Codierer 114 jeweilige Fehler gewichten, die sich aus einer Verwendung einer ICH-Codierung und einer Nicht-ICH-Codierung ergeben, und den Fehler beim Bestimmen berücksichtigen, ob eine ICH-Codierung oder Nicht-ICH-Codierung zu verwenden ist.As an additional or alternative example to condition (2) above,
In einigen Implementierungen vergleicht der Codierer 114 eine Ausgabe einer Funktion von Bitkosten und Fehler, die auf eine ICH-Codierung einer Pixelgruppe unter Verwendung von einem oder mehreren Einträgen der ICH 126 angewandt wird, gegen eine entsprechende Funktion von Bitkosten und Fehler, die auf eine Nicht-ICH-Codierung der Pixelgruppe angewandt wird. Anders ausgedrückt kann der Codierer 114 sowohl Bitkosten als auch Genauigkeit (z.B. wie durch eine Funktion des Fehlers angegeben) beim Bestimmen gewichten, ob ein ICH-Modus oder ein Nicht-ICH-Modus zum Codieren einer Pixelgruppe zu verwenden ist. Als ein besonderes Beispiel kann der Codierer die Ausgabe der folgenden Funktion vergleichen: „Bitkosten + 4 * Summe (Aufrundung (log2(maxAbsFehler + 1)))“, wobei sich maxAbsFehler auf einen maximalen Absolutfehler pro Komponente bezieht und die Summe über die Komponenten genommen wird. Der Codierer 114 kann ein ICH-Codierung auswählen, wenn die Funktionsausgabe für einen oder mehrere Einträge in der ICH 126 kleiner ist als die entsprechende Funktionsausgabe bei Verwendung einer Nicht-ICH-Codierung. Der Codierer 114 kann eine beliebige Abwandlung von Funktionen anwenden, um zwischen einer ICH-Codierung und einer Nicht-ICH-Codierung der Eingangspixelgruppe zu vergleichen, wobei Faktoren wie etwa Bitkosten, Fehler und/oder Genauigkeit, Durchsatz, Verarbeitungszeit, Energieverbrauch oder eine beliebige Anzahl anderer Parameter berücksichtigt werden.In some implementations, the
Der Codierer 114 kann eine andere Funktion auf die/den geschätzten Bitkosten und Fehler unter Verwendung einer ICH-Codierung im Vergleich zu den/dem geschätzten Bitkosten und Fehler unter Verwendung einer Nicht-ICH-Codierung anwenden. Zum Beispiel kann der Codierer bestimmen, ob eine ICH-Codierung oder eine Nicht-ICH-Codierung zu verwenden ist, indem er eine erste Funktion auf Bitkosten und Fehler unter Verwendung einer ICH-Codierung (oder jegliche zusätzliche oder alternative Eingaben an die erste Funktion) anwendet, eine zweite Funktion auf Bitkosten und Fehler unter Verwendung einer Nicht-ICH-Codierung (oder jegliche zusätzliche oder alternative Eingaben an die zweite Funktion) anwendet, und die Ausgaben vergleicht. Als weitere Option vergleicht der Codierer 114 jeweilige Funktionsausgaben für die/den geschätzten Bitkosten und Fehler unter Verwendung einer ICH-Codierung und unter Verwendung einer Nicht-ICH-Codierung, und bestimmt er, ein bestimmtes Codierungsverfahren zu verwenden, wenn die Funktionsausgaben um zumindest eine vorbestimmten Schwelle differieren.The
Wenn beide der vorgenannten Bedingungen erfüllt sind, kann der Codierer 114 eine ICH-Codierung zum Codieren der Gruppe auswählen. In einigen Abwandlungen kann der Codierer 114 die Anzahl von unter Verwendung eines Nicht-ICH-Modus aufgewendeten Bits basierend auf einem oder beiden der Eingangswerte in der gleichen Abtastzeile wie die Eingangspixel der Gruppe und der rekonstruierten Werte der vorhergehenden Abtastzeile schätzen. Zum Beispiel kann der Codierer 114 die Anzahl von Bits schätzen, die zum Codieren des Prädiktionsrests von jedem Pixel in der Gruppe verwendet würde, wobei die Prädiktion auf den eingegebenen und rekonstruierten Werten beruht.If both of the above conditions are met, the
Bei einer Bestimmung, eine ICH-Codierung für eine Gruppe von Eingangspixel zu verwenden, kann der Codierer 114 einen jeweiligen Index in die ICH 126 auswählen, um die Eingangspixel darzustellen. In einigen Implementierungen kann der Codierer 114 das Eingangspixel als einen Index codieren, der den Eintrag in der ICH 126 identifiziert, der die Ähnlichkeitskriterien für das Eingangspixel erfüllt. Wenn die ICH 126 mehr als einen Eintrag umfasst, der die Ähnlichkeitskriterien mit Bezug auf ein Eingangspixel erfüllt, kann der Codierer 114 zusätzliche Kriterien bei der Auswahl eines bestimmten Eintrags aus den mehreren Einträgen anwenden, die die Ähnlichkeitskriterien erfüllen. Als eine Implementierung wählt der Codierer 114 den Eintrag in der ICH 126 aus, der die niedrigste Summe von Absolutdifferenzen von Fehlern pro Komponente erzeugt. In weiteren Implementierungen wählt der Codierer 114 den ICH-Eintrag aus, der den niedrigsten Absolutfehler in einer Komponente erzeugt, zum Beispiel der Y-Komponente eines YCbCr-Farbraums. Der Codierer 114 kann zusätzliche oder alternative Kriterien anwenden, die einen Vergleich von einer beliebigen Funktion eines Eingangspixels und Einträgen in der ICH 126 spezifizieren, und als zusätzliche Beispiele eine Auswahl des Eintrags mit der niedrigsten gewichteten Summe von Absolutdifferenzen von Fehlern pro Komponente oder einer niedrigsten Summe von quadrierten Fehlern pro Komponente spezifizieren.Upon determining to use ICH encoding for a group of input pixels,
In einigen Implementierungen kann der Codierer 114 einen anderen Satz von Ähnlichkeitskriterien anwenden, wenn er einen Index in die ICH 126 auswählt, um ein Eingangspixel darzustellen (wobei diese als Auswahlähnlichkeitskriterien bezeichnet werden können), als wenn er bestimmt, dass die ICH 126 zumindest einen Eintrag umfasst, der Ähnlichkeitskriterien mit Bezug auf ein Eingangspixel erfüllt (wobei diese als Einschluss-/Beinhaltungsähnlichkeitskriterien bezeichnet werden können). Somit kann der Codierer 114 einen ausgewählten Index in die ICH 126 zum Darstellen eines Eingangspixels (z.B. durch Anwendung von Auswahlähnlichkeitskriterien) getrennt von einer Bestimmung bestimmen, ob die ICH 126 zumindest einen Eintrag mit einem Farbwert umfasst, der ausreichend ähnlich zu dem Eingangspixel ist (z.B. innerhalb einer spezifizierten Ähnlichkeitsschwelle liegt, die durch die Einschluss-/Beinhaltungsähnlichkeitskriterien spezifiziert ist). Die Auswahlähnlichkeitskriterien und die Einschluss-/Beinhaltungsähnlichkeitskriterien können jeweils eine beliebige Kombination der vorstehend dargelegten Ähnlichkeitskriterien umfassen.In some implementations, the
Der Codierer 114 kann einen ausgewählten Index oder ausgewählte Indizes in die ICH 126 zum Darstellen der jeweiligen Pixel einer Eingangspixelgruppe vor einer Bestimmung bestimmen, ob die Eingangspixelgruppe unter Verwendung einer ICH-Codierung oder einer Nicht-ICH-Codierung zu codieren ist. Um dies zu veranschaulichen, kann der Codierer 114 ausgewählte Indizes in die ICH 126 unter Verwendung von Auswahlähnlichkeitskriterien bestimmen, um die Eingangspixel der Gruppe jeweils zu codieren, und dann bestimmen, ob eine Codierung im ICH-Modus für eine Pixelgruppe auszuwählen ist, wenn die folgenden beiden Kriterien erfüllt sind:
- (1) für jedes Pixel in der Gruppe gibt es zumindest einen Eintrag in der
ICH 126, der die Einschluss-/Beinhaltungsähnlichkeitskriterien erfüllt; und - (2) für die ausgewählten Indizes in
die ICH 126, die unter Verwendung der Auswahlähnlichkeitskriterien bestimmt sind, ist ein Ausgabewert einer Funktion der Bitkosten und des Fehlers unter Verwendung der ausgewählten Indizes kleiner als die Ausgabe der Funktion der Bitkosten und des Fehlers unter Verwendung einer Nicht-ICH-Codierung (oder um zumindest eine vorbestimmte Schwelle kleiner).
- (1) for each pixel in the group, there is at least one entry in the
ICH 126 that meets the inclusion/containment similarity criteria; and - (2) for the selected indices into the
ICH 126 determined using the selection similarity criteria, an output value of a function of bit cost and error using the selected indices is less than the output of the function of bit cost and error using a non -ICH coding (or smaller by at least a predetermined threshold).
Somit kann der Codierer 114 in einigen Implementierungen die ausgewählten Indizes in die ICH 126 bestimmen, die zum Darstellen von Eingangspixel bei einer ICH-Codierung verwendet würden, bevor er bestimmt, ob eine ICH-Codierung zu verwenden ist oder nicht. In diesem Fall kann der Codierer 114, wenn die beiden Bedingungen erfüllt sind, die Pixelgruppe durch Darstellung der Eingangspixel als die ausgewählten Indizes codieren. In weiteren Abwandlungen kann der Codierer 114 die ausgewählten Indizes in die ICH 126 zur Darstellung einer Eingangspixelgruppe unter Verwendung der Auswahlähnlichkeitskriterien parallel zu oder nach einer Bestimmung bestimmen, ob die Eingangspixelgruppe unter Verwendung einer ICH-Codierung zu codieren ist, z.B. wie vorstehend beschrieben.Thus, in some implementations,
Der Codierer 114 kann die ICH 126 in Erwiderung auf eine Initialisierungsbedingung initialisieren, z.B. auf ein Auftreten von einem oder mehreren vorbestimmten Ereignissen hin. Beispiele von Initialisierungsbedingungen umfassen eine Erkennung des Beginns eines (komprimierten oder nicht komprimierten) Eingangsbilds, des Beginns eines Schnitts bzw. Teils eines Bilds, oder des Beginns einer Abtastzeile. Der Codierer 114 kann die ICH 126 in einen Anfangszustand setzen, z.B. derart, dass die ICH 126 keine gültigen Einträge speichert. Der Codierer 114 kann die Inhalte der ICH 126 bei einer Initialisierung leeren, oder der Codierer 114 kann die ICH 126 derart implementieren, dass Einträge ein Gültigkeitsbit 308 umfassen, wie es in
Der Codierer 114 kann Farbwerte in die ICH 126 für Pixel eintragen, die unter Verwendung einer Nicht-ICH-Codierung codiert sind. Für diese Pixel kann der Codierer 114 den Farbwert des Pixels (z.B. einen rekonstruierten Pixelwert bei Verwendung einer prädiktiven Codierung) untersuchen und bestimmen, ob der Farbwert in die ICH 126 einzufügen ist, z.B. als ein Eintrag in die ICH 126. Dabei kann der Codierer eine beliebige Anzahl von Eintragungskriterien oder -bedingungen anwenden. Der Codierer 114 kann auf ein Einfügen des Farbwerts eines nicht-ICH-codierten Pixels verzichten, wenn die ICH 126 bereits einen gültigen Eintrag mit einem Farbwert 304 umfasst, der ein oder mehrere Ähnlichkeitskriterien mit Bezug auf den Farbwert des nicht-ICH-codierten Pixels erfüllt. Wenn es keine gültigen Einträge in der ICH 126 mit einem Farbwert 304 gibt, der Ähnlichkeitskriterien des Farbwerts des nicht-ICH-codierten Pixels erfüllt, kann der Codierer 114 den Farbwert des nicht-ICH-codierten Pixels in die ICH 126 einfügen. Beim Bestimmen, ob der Farbwert des nicht-ICH-codierten Pixels in die ICH 126 einzufügen ist, kann der Codierer 114 eine beliebige Kombination der Ähnlichkeits- oder Fehlerkriterien anwenden, wie etwa derjenigen, die vorstehend beschrieben sind. Der Codierer 114 kann die gleichen, teilweise überlappende oder unterschiedliche Ähnlichkeitskriterien anwenden, wenn er bestimmt, ob eine ICH-Codierung zu verwenden ist, und wenn er bestimmt, ob der Farbwert eines nicht-ICH-codierten Pixels in die ICH 126 einzufügen ist.The
Wenn es unbenutzte (z.B. ungültige) Einträge in der ICH 126 gibt, kann der Codierer 114 den Farbwert des nicht-ICH-codierten Pixels einfügen, indem er einen unbenutzten Eintrag zuweist und diesem dem Farbwert des nicht-ICH-codierten Pixels zuordnet. Die ICH 126 kann einen mit dem neu zugeordneten Eintrag in Zusammenhang stehenden Wert einstellen, um anzugeben, dass der eingefügte Farbwert jüngst/zuletzt bzw. am aktuellsten verwendet wurde (MRU: „Most Recently Used“). In einer Abwandlung unter-/hält der Codierer 114 einen Zähler. Der Codierer 114 kann den Zähler bei definierten Ereignissen zurücksetzen, zum Beispiel zu Beginn eines Schnitts bzw. Teils oder des Beginns einer Abtastzeile. Der Zähler kann eine Anzahl von Bits aufweisen. Einträge in der ICH 126 können ein Zählerfeld umfassen, das einen Wert des Zählers speichert. Gemäß
Wenn alle Einträge der ICH 126 gültig sind, bevor der Farbwert eines nicht-ICH-codierten Pixels eingefügt wird, kann der Codierer 114 einen Eintrag in der ICH 126 ersetzen. Der Codierer 114 kann einen Ersetzungsalgorithmus einsetzen, wie etwa den LRU-Ersetzungsalgorithmus. Wenn der Codierer 114 bestimmt, einen neuen Farbwert in die ICH 126 einzufügen, kann der Codierer 114 den LRU-Eintrag als den Eintrag mit dem kleinsten Zählerwert identifizieren, wie er z.B. in dem LRU-Zählerwert 306 eines Eintrags gespeichert ist. Der Codierer 114 kann eine Anzahl von Bits an den Zähler derart zuweisen, dass der maximale Zählerwert größer oder gleich der Anzahl von Pixel zwischen aufeinanderfolgenden Zählerrücksetzungsereignissen ist. In einigen Implementierungen inkrementiert der Codierer 114 den Zähler für jede Gruppe (z.B. anstatt für jedes Pixel). In diesen Implementierungen kann der Codierer 114 eine Anzahl von Bits an den Zähler derart zuweisen, dass der maximale Zählerwert größer oder gleich der Anzahl von Gruppen zwischen aufeinanderfolgenden Zählerrücksetzungsereignissen ist.If all
Der Codierer 114 kann einen beliebigen Ersetzungsalgorithmus beim Bestimmen eines Eintrags zur Ersetzung in der ICH 126 einsetzen. Der Codierer 114 kann wechselnde bzw. alternative Ersetzungsalgorithmus nutzen, wie etwa nicht aktuell verwendet (NRU: „Not Recently Used“) oder den ältesten zuerst (FIFO: „First In First Out“). Der Codierer 114 kann LRU in anderen Abwandlungen außer einem Einbeziehen eines LRU-Zählerwerts für Einträge der ICH 126 implementieren.The
In einigen Abwandlungen fügt der Codierer 114 einen neuen Farbwert in die ICH 126 ein, ohne zu untersuchen, ob irgendwelche ähnlichen Farbwerte (z.B. solche, die Ähnlichkeitskriterien erfüllen) bereits in der ICH 126 vorhanden sind. Anderes ausgedrückt kann der Codierer 114 einen Eintrag für den Farbwert eines nicht-ICH-codierten Pixels in die ICH 126 bedingungslos einfügen, z.B. ohne Anwendung irgendwelcher Eintragungskriterien. Dadurch kann der Codierer 114 die Komplexität und/oder Latenz(-zeit) einer Einfügung von Farbwerten in die ICH 126 reduzieren, da Einfügungen in die ICH 126 ohne den Overhead einer Implementierung zusätzlicher Vergleichslogik und ohne die Latenz(-zeit) der Durchführung der Vergleiche vorgenommen werden können.In some variations,
In weiteren Abwandlungen fügt der Codierer 114 den neuen Farbwert des nicht-ICH-codierten Pixels in die ICH 126 ein und untersucht er ältere Einträge in der ICH 126, um zu bestimmen, ob ein Eintrag (oder Einträge) Ähnlichkeitskriterien mit Bezug auf den neuen Farbwert erfüllt (oder erfüllen). Wenn der Codierer 114 einen oder mehrere Einträge (z.B. Farbwerte) erkennt, die die Ähnlichkeitskriterien erfüllen, kann der Codierer 114 diese Einträge aus der ICH 126 entfernen. Wenn der Codierer 114 einen Farbwert aus der ICH 126 entfernt, können ältere Einträge in der geordneten Liste um eine Position nach vorne bewegt werden, z.B. in einer MRU-Richtung. Auf diese Art und Weise kann, wenn ein neuer Eintrag (z.B. ein neuer Farbwert) identisch zu einem älteren Eintrag (z.B. einem alten Farbwert) ist, das effektive Ergebnis eine Markierung bzw. Kennzeichnung des älteren Farbwerts als der am aktuellsten verwendete Farbwert sein, z.B. dadurch, dass der neue Eintrag nun am Kopf der geordneten Liste steht.In further variations, the
In einer Abwandlung bestimmt der Codierer 114, ob ein existierender Eintrag in der ICH 126 Ähnlichkeitskriterien mit Bezug auf den neuen Farbwert eines nicht-ICH-codierten Pixels erfüllt. Wenn ein bestimmter Eintrag in der ICH 126 die Ähnlichkeitskriterien erfüllt, bezeichnet der Codierer 114 diesen bestimmen Eintrag als den am aktuellsten verwendeten Eintrag (z.B. durch Bewegung bzw. Verschiebung des bestimmten Eintrags an den Anfang der Listung der ICH 126), und fügt er den neuen Farbwert nicht in die ICH 126 ein. In Zusammenhang mit einer Bewegung bzw. Verschiebung des bestimmten Eintrags an den Anfang werden Einträge, die über dem bestimmten Eintrag (z.B. neuer als dieser) waren, um eine Position nach unten bewegt bzw. verschoben. In einer weiteren Abwandlung bestimmt der Codierer 114, ob ein existierender Eintrag in der ICH 126 Ähnlichkeitskriterien mit Bezug auf den neuen Farbwert eines nicht-ICH-codierten Pixels erfüllt. Wenn ein bestimmter Eintrag in der ICH 126 die Ähnlichkeitskriterien erfüllt, aktualisiert der Codierer 114 den Wert von diesem bestimmten Eintrag, so dass er dem neuen Farbwert entspricht, und bezeichnet er diesen bestimmten Eintrag als am aktuellsten verwendet (z.B. durch Bewegung bzw. Verschiebung des bestimmten Eintrags an den Anfang der Listung der ICH 126). In Zusammenhang mit einer Bewegung bzw. Verschiebung des bestimmten Eintrags an den Anfang werden Einträge, die über dem bestimmten Eintrag (z.B. neuer als dieser) waren, um eine Position nach unten bewegt bzw. verschoben.Alternatively,
Der Codierer 114 kann die ICH 126 bei Verwendung einer ICH-Codierung zum Codieren von Pixeldaten unter-/halten bzw. pflegen. Wenn der Codierer 114 eine Gruppe unter Verwendung einer ICH-Codierung codiert, nehmen die zum Codieren von Eingangspixel verwendeten Indizes auf Einträge in der ICH 126 Bezug. Wenn auf einen Eintrag der ICH 126 Bezug genommen wird und dieser zum Codieren eines Eingangspixels verwendet wird, kann der Codierer 114 den unter Bezug genommenen bzw. referenzierten Eintrag als MRU bezeichnen, z.B. durch Bewegung bzw. Verschiebung des unter Bezug genommenen bzw. referenzierten Eintrags an den Anfang der ICH 126 und Verschiebung der anderen Werte über der früheren Position des Eintrags um 1 nach unten. Der Codierer 114 kann diese Operation parallel für alle Einträge einer ICH-codierten Gruppe durchführen, wobei ein oder mehrere ICH-Einträge an den Anfang der Liste (z.B. eine MRU-Position) mit einer festgelegten relativen Reihenfolge bewegt bzw. verschoben werden. Der letzte Pixelwert der Gruppe kann zum Beispiel der MRU werden, wobei das nächstfrühere Pixel der gleichen Gruppe zu dem zweiten MRU wird, und so weiter, falls z.B. es mehr als 2 Pixel in einer Gruppe gibt. Das letzte Pixel der Gruppe kann das Pixel sein, das in einer syntaktischen Beschreibung als das Pixel ganz rechts dargestellt ist.The
Der Codierer 114 kann einen bestimmten Bereich der ICH 126 zuweisen, um Farbwerte für einen speziellen Satz von Pixel zu speichern, anstatt aktuell verwendete Farbwerte zu speichern. Eine Veranschaulichung für eine ICH 126 mit 32 Einträgen ist als Nächstes in
Der Codierer 114 kann die ersten „n“ (z.B. bei diesem Beispiel 25) Einträge in der ICH 126 zur Implementierung der geordneten Liste von aktuell verwendeten Farbwerten einsetzen, z.B. Einträge der Zuweisung für aktuelle Verwendung 502, die Indexwerten 00 bis 24 in der ICH 126 gemäß
Die ICH 126 kann unterschiedliche Farbwerte in partitionierten Teilen in der ICH 126 speichern. Zum Beispiel können die in der Zuweisung für aktuelle Verwendung 502 gespeicherten Farbwerte teilweise oder vollständig von den in der Zuweisung für Nachbarpixel 504 gespeicherten Farbwerten differieren. Bei einem Ausführungsbeispiel kann, wenn der Codierer 114 ein Pixel als einen Indexwert zu einem Eintrag in der Zuweisung für Nachbarpixel 504 der ICH 126 codiert, der Codierer 114 den Farbwert des angegebenen Nachbarpixels in die Zuweisung für aktuelle Verwendung 502 der ICH 126 als den MRU-Farbwert einfügen. Bei einem weiteren Ausführungsbeispiel kann der Codierer 114 auf ein Einfügen des Farbwerts des angegebenen Nachbarpixels verzichten, wenn der Codierer 114 ein Pixel durch Bezugnahme auf den Indexwert in der Zuweisung für Nachbarpixel 504 der ICH 126 codiert. Bei diesem Ausführungsbeispiel wird der Farbwert des angegebenen Nachbarpixels nicht in die Zuweisung für aktuelle Verwendung 502 der ICH 126 eingetragen.The
Der Codierer 114 kann die ICH 126 initialisieren (602). Zum Beispiel kann der Codierer 114 die ICH 126 in Erwiderung auf eine Initialisierungsbedingung initialisieren, z.B. zu Beginn einer Codierung eines Eingangsbilds oder eines bestimmten Teils des Eingangsbilds. Um die ICH 126 zu initialisieren, kann der Codierer 114 die Inhalte der ICH 126 leeren oder die Einträge der ICH 126 als ungültig oder unbenutzt markieren. Als eine weitere Abwandlung kann der Codierer 114 die ICH 126 initialisieren, indem er die Inhalte (z.B. die Farbwerte) der ICH 126 auf eine vorbestimmte Konfiguration setzt. Der Codierer kann Eingangsdaten zur Codierung erhalten, wie etwa eine Gruppe von Eingangspixel zur Codierung (604).The
Der Codierer 114 bestimmt, ob die Gruppe von Eingangspixel unter Verwendung einer ICH-Codierung oder einer Nicht-ICH-Codierung zu codieren ist (606). Eine ICH-Codierung kann pro Gruppe durch den Codierer 114 bestimmt werden, sowie gemäß einer beliebigen Anzahl von die Ähnlichkeit umfassenden Kriterien, geschätzte Bitkosten betreffenden Kriterien und/oder Fehlerkriterien, die vorstehend beschrieben sind. Zum Beispiel kann der Codierer 114 die Pixelgruppe unter Verwendung einer ICH-Codierung codieren, wenn: (i) für jedes Pixel in der Pixelgruppe die ICH 126 einen oder mehrere Einträge mit einem ausreichend ähnlichen Farbwert umfasst, z.B., wenn die Differenz in Farbwerten kleiner ist als ein Differenzschwellenwert, und (ii) eine Funktionsausgabe von der Anzahl von Bits zum Codieren der Gruppe und einem Fehler unter Verwendung einer ICH-Codierung kleiner ist als eine entsprechende Funktionsausgabe von der Anzahl von zum Codieren der Gruppe verwendet Bits und einem Fehler unter Verwendung einer Nicht-ICH-Codierung.The
Bei einer Bestimmung zur Verwendung einer ICH-Codierung zum Codierung einer Pixelgruppe codiert der Codierer 114 die Pixel als jeweilige Indexwert in die ICH 126 (610). Der Codierer 114 kann für ein bestimmtes zu codierendes Pixel den Indexwert zu dem Eintrag in der ICH 126 mit einem identischen oder ähnlichen Farbwert auswählen, wie er gemäß den Ähnlichkeitskriterien bestimmt wird. Der Codierer 114 kann eine feste Anzahl von Bits verwenden, um den Indexwert in einem codierten Bitstrom anzugeben. Als ein Beispiel kann der Codierer 114 eine feste Anzahl von (z.B. 5) Bits zum Codieren eines Indexwerts für eine ICH 126 mit 32 Einträgen verwenden. In einigen Abwandlungen kann der Codierer 114 die Anzahl von Bits variieren oder reduzieren, die zum Angeben eines bestimmten Indexwerts in dem codierten Bitstrom verwendet wird, z.B. durch Nutzung von Techniken zur Codierung mit variabler Länge. Die Betriebsparameter 127 können eine Syntax zum Codieren von Pixelwerten in dem codierten Bitstrom unter Verwendung von Indexwerten spezifizieren, und zusätzliche Beispiel von Syntaxen umfassen eine Verwendung einer Entropiecodierung, einer Vektorcodierung oder einer arithmetischen Codierung, um einen Indexwert der ICH 126 in dem codierten Bitstrom darzustellen.Upon determining to use ICH encoding to encode a group of pixels, the
Der Codierer 114 kann die ICH 126 aktualisieren (612), zum Beispiel zum Angeben bzw. Bezeichnen der Einträge des/der unter Bezug genommenen bzw. referenzierten Indexwerts/Indexwerte, die zum Codieren der Pixelgruppe verwendet werden, als am aktuellsten verwendet. Der Codierer 114 kann die ICH 126 mit einer beliebigen festgelegten Frequenz bzw. Häufigkeit aktualisieren, z.B. nach Codierung jedes Pixels, jedes zweiten Pixels, jedes dritten Pixels, usw. Bei Implementierung der ICH 126 als eine geordnete Liste kann der Codierer 114 die durch die ICH-codierten Pixel unter Bezug genommenen bzw. referenzierten Einträge an den Anfang der geordneten Liste bewegen bzw. verschieben. In einigen Abwandlungen kann, wenn der Codierer 114 ein Pixel unter Verwendung eines Indexwerts aus einem Teil der ICH 126 codiert, der für ausgewählte Nachbarpixel zugewiesen ist, der Codierer 114 auf eine Aktualisierung der ICH 126 verzichten, um den Farbwert des Nachbarpixels als aktuell verwendet zu bezeichnen. In weiteren Abwandlungen kann der Codierer 114 die ICH 126 aktualisieren, um den Farbwert des Nachbarpixels als aktuell verwendet zu bezeichnen, mit einer beliebigen festgelegten Frequenz bzw. Häufigkeit, z.B. bei jedem Codierungsereignis unter Verwendung eines ausgewählten Nachbarpixels, bei jedem zweiten solchen Ereignis, bei jedem dritten solchen Ereignis, usw.The
Der Codierer 114 kann einen Hinweis auf eine ICH-Codierung für die Pixelgruppe in dem codierten Bitstrom bereitstellen (614). Der Codierer 114 kann die Verwendung einer ICH-Codierung für eine Gruppe in dem codierten Bitstrom signalisieren, z.B. durch explizites Hinzufügen eines ICH-Codierung-Hinweises in den codierten Bitstrom, der für die ICH-codierte Pixelgruppe maßgeblich ist. Zum Beispiel können die Betriebsparameter 127 eine Syntax zum Hinweisen auf eine Auswahl einer ICH-Codierung für eine bestimmte Pixelgruppe spezifizieren.The
In Zusammenhang mit einer DSU-VLC-Codierung codiert der Bitstrom einen Größenprädiktionswert als ein Delta mit Bezug auf einen vorhergesagten Grö-ßenwert und wird das Delta in dem Präfix einer Einheit codiert. In diesem beispielhaften Zusammenhang kann der Codierer 114 eine Auswahl einer ICH-Codierung für eine Pixelgruppe durch Codierung eines Escape- bzw. Ausstiegs-/ Wechselcodewerts in dem Präfix von dieser Gruppe bezeichnen, z.B. einem Präfix für eine Y-Einheit der Pixelgruppe. Ein Escape- bzw. Ausstiegs-/Wechselwert kann anstelle eines Deltagrößenwerts verwendet werden.In the context of DSU-VLC coding, the bit stream encodes a magnitude prediction value as a delta with respect to a predicted magnitude value and the delta is encoded in the prefix of a unit. In this example context, the
Als eine Option kann, wenn der Codierer 114 eine erste Gruppe von Pixel unter Verwendung einer ICH-Codierung codiert, der Codierer 114 einen modifizierten Präfix- und Escape- bzw. Ausstiegs-/Wechselcode für eine zweite Gruppe von Pixel, die auf die erste Gruppe folgt, anwenden. Zum Beispiel kann der Codierer 114 das Präfix einer ersten Einheit der zweiten Gruppe derart definieren, dass ein bestimmter verkürzter Präfixcode als ein Escape- bzw. Ausstiegs-/Wechselcode interpretiert wird, der eine ICH-Codierung der zweiten Gruppe bezeichnet, und ein längeres Präfix als ein Nicht-Escape- bzw. Ausstiegs-/Wechselcode interpretiert wird, der eine Nicht-ICH-Codierung der zweiten Gruppe bezeichnet. In diesem Beispiel kann der Codierer 114 ein Präfix der ersten Einheit einer zweiten Gruppe als ein Präfix 0 spezifizieren, das als ein Bit „1“ codiert wird, um anzugeben, dass die zweite Gruppe unter Verwendung einer ICH-Codierung codiert wird/ist. Jeder Präfixwert größer als 0, der z.B. mit einem oder mehreren Bits „0“, gefolgt von einem Bit „1“, codiert wird, kann angeben, dass die zweite Gruppe unter Verwendung einer Nicht-ICH-Codierung codiert wird/ist. In diesem Beispiel kann eine Präfixwert größer als 0 durch Subtraktion von 1 von dem Präfixwert aufgefasst werden, um den Wert eines Präfix einer Gruppe zu bilden, der keine Gruppe vorangegangen war, die nicht unter Verwendung einer ICH-Codierung codiert wird/ist, z.B., wenn die erste Gruppe unter Verwendung einer Nicht-ICH-Codierung codiert wird/ist.As an option, if the
Um dies zu veranschaulichen kann der Codierer 114 eine nachfolgende Pixelgruppe unter Verwendung einer Nicht-ICH-Codierung codieren, die unmittelbar auf eine vorhergehende Pixelgruppe folgt, die unter Verwendung einer ICH-Codierung codiert wird. Der Codierer 114 kann bestimmen, dass die nachfolgende Gruppe eine erste Einheit mit einem Präfixwert gleich 2 hat, wenn die vorhergehende Gruppe nicht unter Verwendung einer ICH-Codierung codiert wurde. Wenn der Codierer 114 jedoch die vorhergehende Gruppe unter Verwendung einer ICH-Codierung codiert, kann der Codierer 114 bestimmen, dass das Präfix der ersten Einheit der nachfolgenden Gruppe einen Wert von 2 + 1 = 3 hat. Der Präfixwert 3 kann als „0001“ codiert werden. Der Präfixwert 3, der größer ist als 0, bezeichnet einen Präfixwert von 3 - 1 = 2, und keinen Escape- bzw. Ausstiegs-/Wechselcode. Als solches kann, wenn mehrere aufeinanderfolgende Pixelgruppen unter Verwendung einer ICH-Codierung codiert werden, die Anzahl von Bits in den Präfixen der zweiten und anschließenden aufeinanderfolgenden ICH-codierten Blöcken reduziert werden. Das Ergebnis kann darin bestehen, die Anzahl von Bits zu reduzieren, die zum Codieren eines Bilds oder eines Teils eines Bilds verwendet wird.To illustrate,
Ein Größenprädiktionswert, der für eine Gruppe gilt, die einen Escape- bzw. Ausstiegs-/Wechselcode aufweist, kann bis zu einer nachfolgenden Gruppe fortbestehen, wo er durch den Codierer 114 wiederum als der Prädiktionswert angewandt wird. Die Größenprädiktion kann fortbestehen, bis der Codierer 114 bestimmt, eine nachfolgende Gruppe unter Verwendung von DSU-VLC, z.B. unter Verwendung einer Nicht-ICH-Codierung, zu codieren, woraufhin der Codierer 114 diese nachfolgende Gruppe zum Erzeugen des nächsten Größenprädiktionswerts verwendet.A magnitude prediction value that applies to a group that has an escape code may persist to a subsequent group where it is again applied by the
Der Codierer 114 kann bestimmen, die Pixelgruppe unter Verwendung einer Nicht-ICH-Codierung zu codieren (616). In einigen Abwandlungen kann der Codierer 114 ein Pixel als einen unkomprimierten Farb- oder Pixelwert in einem Ausgangsbitstrom codieren. Der Codierer 114 kann auch die Farbwerte der nicht-ICH-codierten Pixel in die ICH 126 einfügen (618), z.B. in einer beliebigen der vorstehend beschriebenen Arten. Der Codierer 114 kann die eingefügten Farbwerte als am aktuellsten verwendet bezeichnen und die Aktualitätsbezeichnungen von anderen Einträgen in der ICH 126 aktualisieren, z.B. durch Schieben von älteren Einträgen nach unten in einer Schieberegisterimplementierung. Der Codierer 114 kann diese Einfügungen und Aktualisierungen mit einer beliebigen festgelegten Frequenz bzw. Häufigkeit durchführen, z.B. nach Codierung eines Pixels, nach Codierung jedes zweiten Pixels, nach Codierung einer Gruppe, nach Codierung von mehreren Gruppen usw. Der Codierer 114 kann auch in dem codierten Bitstrom eine Codierung der Pixelgruppe unter Verwendung einer Nicht-ICH-Codierung signalisieren, z.B. durch Nichthinzufügung eines Escape- bzw. Ausstiegs-/Wechselcodes in den codierten Bitstrom. Der Codierer 114 kann fortfahren, nachfolgende Pixelgruppen zu verarbeiten (622).The
In dem in
Der Decodierer 714 kann Bilddaten decodieren, die vorher unter Verwendung einer ICH-Codierung oder einer Nicht-ICH-Codierung codiert wurden. In dieser Hinsicht kann der Decodierer 714 die ICH 726 implementieren und unter-/halten, und zwar in einer Art und Weise, die konsistent dazu ist, wie der Codierer 114 die ICH 126 implementiert und unter-/hält. Dementsprechend kann der Decodierer 714 eine beliebige Funktionalität des Codierers 114 implementieren, die vorstehend beschrieben ist, obgleich der Decodierer 714 in einigen Implementierungen die Auswahlalgorithmen oder die -logik, die durch den Codierer 114 verwendet werden oder wird, um zu bestimmen, ob Daten unter Verwendung einer ICH-Codierung oder einer Nicht-ICH-Codierung zu codieren sind, nicht implementieren kann.
In einigen Abwandlungen führen der Codierer 114 und der Decodierer 714 identische oder konsistente Operationen durch, um die ICH 126 bzw. die ICH 726 zu aktualisieren. Die Aktualisierungen können zu Einträgen in der ICH 126 und der ICH 726 führen, die nach einer Decodierung eines Pixels in dem Decodierer 714 bzw. einer Codierung des Pixels in dem Codierer 114 konsistente Attribute teilen bzw. gemeinsam benutzen. Konsistente Attribute können sich auf identische Attribute oder Attribute beziehen, die um nicht mehr als eine festgelegte Distanzschwelle variieren. Konsistente Attribute können ein Teilen bzw. gemeinsames Benutzen der gleichen Farbwerte, der gleichen Indexwerte und der gleichen Hinweiswerte für eine aktuelle Verwendung, z.B. LRU, MRU, Zählerwerte oder eine Ordnung von Einträgen, umfassen.In some variations,
Der Codierer 114 und der Decodierer 714 können die ICH 126 bzw. die ICH 726 gemäß konsistenten Initialisierungskriterien initialisieren. Der Codierer 114 und der Decodierer 714 können konsistente Kriterien beim Bestimmen anwenden, ob der Farbwert für ein nicht-ICH-codiertes Pixel in die ICH 126 bzw. 726 einzufügen ist, z.B. durch Anwendung der gleichen Ähnlichkeitskriterien. Der Codierer 114 und der Decodierer 714 können Inhaltsverarbeitungsalgorithmen verwenden, die sich im Hinblick auf eine Unterhaltung bzw. Pflege ihrer jeweiligen ICH-Einträge konsistent verhalten, ungeachtet dessen, wie der Codierer 114 und der Decodierer 714 implementiert sind.The
Während das System 700 getrennte Vorrichtungen 100 und 702 zeigt, die einen Codierer 114 bzw. einen Decodierer 714 implementieren können, können der Codierer 114 und der Decodierer 714 in einer einzigen Vorrichtung implementiert sein. Zum Beispiel kann die Systemlogik 112 sowohl den Codierer 114 als auch den Decodierer 714 implementieren.While system 700 shows
Der Decodierer 714 kann die ICH 726 gemäß konsistenten Initialisierungskriterien, die durch den Codierer 114 angewandt werden, initialisieren (802). Der Decodierer 714 kann zu decodierende Daten erhalten (804). In dieser Hinsicht kann der Decodierer 714 einen codierten Bitstrom (z.B. komprimierte Bilddaten) erhalten, der vorher durch den Codierer 114 codiert wurde.The
Der Decodierer 714 bestimmt, ob Bilddaten für eine Pixelgruppe unter Verwendung einer ICH-Codierung codiert wurden (806). Zu diesem Zweck kann der Decodierer 714 den codierten Bitstrom pro Gruppe und gemäß den Betriebsparametern 727 analysieren. Die Betriebsparameter 727 können eine konsistente oder identische Syntax spezifizieren, die durch den Codierer 114 verwendet wird, um eine Verwendung einer ICH-Codierung für eine Pixelgruppe anzugeben. In dieser Hinsicht kann der Decodierer 714 das Präfix für eine erste Einheit einer Gruppe decodieren und in Erwiderung auf eine Erkennung eines Escape- bzw. Ausstiegs-/Wechselcodes in dem Präfix bestimmten, dass die Pixelgruppe unter Verwendung einer ICH-Codierung codiert wurde.The
In einigen Implementierungen kann, wenn eine erste Gruppe unter Verwendung einer ICH-Codierung codiert ist, der Decodierer 714 das Präfix der ersten Einheit einer unmittelbar folgenden Gruppe verschieden von der Interpretation interpretieren, die der Decodierer 714 erhalten würde, wenn die erste Gruppe unter Verwendung einer Nicht-ICH-Codierung codiert wäre. Zum Beispiel kann der Decodierer 714 bestimmen, dass ein Präfix der ersten Einheit einer zweiten Gruppe, das einen Präfixwert von 0 darstellt, der als Bit „1“ codiert ist, bezeichnet, dass die zweite Gruppe unter Verwendung einer ICH-Codierung codiert ist, und bestimmen, dass jeder Präfixwert größer als 0, der mit einem oder mehreren Bits „0“, gefolgt von einem Bit „1“, codiert ist, bezeichnet, dass die zweite Gruppe unter Verwendung einer Nicht-ICH-Codierung codiert ist. Dementsprechend kann der Decodierer 714 einen Präfixwert größer als 0 durch Subtraktion von 1 von dem Präfixwert verarbeiten, um den Wert von einem Präfix einer Einheit einer Gruppe zu bilden, der keine vorhergehende Gruppe vorangegangen war, die unter Verwendung einer ICH-Codierung codiert ist.In some implementations, when a first group is encoded using an ICH encoding, the
Für Bilddaten für eine unter Verwendung einer ICH-Codierung codierten Pixelgruppe kann der Decodierer 714 die Daten für die Pixelgruppe als Indexwerte in die ICH 726 interpretieren. Dementsprechend kann der Decodierer 714 die Pixel unter Verwendung der Indexwerte decodieren (810), wodurch Farbwerte erhalten werden, die in dem codierten Bitstrom durch die jeweiligen Indexwerte spezifiziert sind. Der Decodierer 714 kann einen Indexwert so interpretieren, dass er auf einen Eintrag der ICH 726 zeigt, z.B. auf einen ersten Teil der ICH 726, der aktuell verwendete Farbwerte bezeichnet, oder auf einen zweiten Teil der ICH 726, der zur Speicherung von Farbwerten von ausgewählten rekonstruierten Pixel zugewiesen ist. Die ausgewählten rekonstruierten Pixel können Nachbarpixel sein, oder sie können andere festgelegte Positionen oder Beziehungen zu den aktuellen Pixel aufweisen. Der Decodierer 714 kann die entsprechenden Einträge in der ICH 726 in einer Art und Weise, die konsistent zu dem Codierer 114 ist, aktualisieren (812).For image data for a group of pixels encoded using ICH encoding, the
Wenn der Decodierer 714 bestimmt, dass Pixelgruppendaten nicht unter Verwendung einer ICH-Codierung codiert wurden, decodiert der Decodierer 714 die Pixeldaten gemäß einem Nicht-ICH-Decodierungsverfahren (814), um die Pixeldaten zu rekonstruieren. Der Decodierer 714 kann den Farbwert von rekonstruierten Pixel in einer Eintragseinfügungs- und/oder Ersetzungsweise, die konsistent zu dem Codierer 114 ist, in die ICH 726 einfügen (816). Der Decodierer 714 kann fortfahren, nachfolgende Pixelgruppendaten zu decodieren (818).If
Die Verfahren, die Vorrichtungen und die Logik, die vorstehend beschrieben sind, einschließlich des Codierers 114 und des Decodierers 714, können in vielen verschiedenen Weisen in vielen verschiedenen Kombinationen von Hardware, Software oder sowohl Hardware als auch Software implementiert werden. Zum Beispiel kann das gesamte System oder können Teile von diesen Schaltungen in einer Steuereinheit, einem Mikroprozessor oder einer anwendungsspezifischen integrierten Schaltung (ASIC) umfassen, oder mit diskreter Logik oder diskreten Komponenten oder einer Kombination von anderen Typen von analogen oder digitalen Schaltungen, die auf einer einzelnen integrierten Schaltung kombiniert sind oder zwischen mehreren integrierten Schaltungen verteilt sind, implementiert werden. Die gesamte Logik oder ein Teil von dieser, die vorstehend beschrieben ist, kann als Anweisungen zur Ausführung durch einen Prozessor, eine Steuereinheit oder eine andere Verarbeitungsvorrichtung implementiert werden, und kann in einen dinglichen oder nicht-vorübergehenden maschinenlesbaren oder computerlesbaren Medium gespeichert sein, wie etwa einem Flashspeicher, einem Direktzugriffsspeicher (RAM) oder einem Festwertspeicher (ROM), einem lösch- und programmierbaren Festwertspeicher (EPROM) oder einem anderen maschinenlesbaren Medium wie etwa einem Compact-Disc-Festwertspeicher (CDROM) oder einer magnetischen oder optischen Platte. Somit kann ein Produkt, wie etwa ein Computerprogrammprodukt, ein Speichermedium und auf dem Medium gespeicherte computerlesbare Anweisungen umfassen, die, wenn sie in einem Endpunkt, einem Computersystem oder einer anderen Vorrichtung ausgeführt werden, die Vorrichtung dazu veranlassen, Vorgänge bzw. Betriebe gemäß einer der vorstehenden Beschreibungen durchzuführen.The methods, apparatus, and logic described above, including
Die Verarbeitungsfähigkeit des Codierers 114 oder des Decodierers 714 kann zwischen mehreren Systemkomponenten verteilt sein, wie etwa zwischen mehreren Prozessoren und Speichern, optional umfassend mehrere verteilte Verarbeitungssysteme. Parameter, Datenbanken und andere Datenstrukturen können separat gespeichert und verwaltet sein/werden, können in einem einzigen Speicher oder einer einzigen Datenbank eingebunden bzw. einbezogen sein/werden, können in vielen unterschiedlichen Arten logisch und physikalisch organisiert sein/werden, und können in vielen Arten implementiert sein/werden, was Datenstrukturen umfasst, wie etwa verlinkte Listen, Hash-Tabellen oder implizite Speichermechanismen. Programme können Teile (z.B. Subroutinen) eines einzelnen Programms, separate Programme, verteilt über mehrere Speicher und Prozessoren, sein oder in vielen unterschiedlichen Arten implementiert sein/werden, wie etwa in einer Bibliothek, wie etwa in einer geteilten bzw. gemeinsamen Bibliothek (z.B. DLL (Dynamic Link Library)). Die DLL kann zum Beispiel Code speichern, der jede der vorstehend beschriebenen Systemverarbeitungen durchführt.The processing capability of
Es wurden verschiedene Implementierungen im Speziellen beschrieben. Viele weitere Implementierungen sind jedoch ebenso möglich.Various implementations have been specifically described. However, many other implementations are also possible.
Ein Codierer kann eine indizierte Farbhistorie implementieren, die Farbwerte für vorher codierte Pixel speichert. Der Codierer kann ein aktuelles Pixel oder eine aktuelle Gruppe von Pixel zur Codierung erhalten und bestimmen, ob das aktuelle Pixel unter Verwendung der indizierten Farbhistorie zu codieren ist. Dabei kann der Codierer einen Farbwert des aktuellen Pixels mit Farbwerten der vorher codierten Pixel vergleichen, um zu bestimmen, ob das aktuelle Pixel ausreichend ähnlich zu einem vorher codierten Pixelfarbwert ist, z.B. durch Erfüllung von einem oder mehreren Ähnlichkeitskriterien. Wenn die Ähnlichkeitskriterien erfüllt sind, kann der Codierer das aktuelle Pixel als einen Indexwert codieren, der den Eintrag in der indizierten Farbhistorie referenziert, der einen Farbwert speichert, der die Ähnlichkeitskriterien erfüllt. Wenn die Ähnlichkeitskriterien nicht erfüllt sind, kann der Codierer das aktuelle Pixel unter Verwendung eines anderen Codierungsverfahrens oder einer anderen Codierungsmethode codieren.An encoder can implement an indexed color history that stores color values for previously encoded pixels. The encoder can obtain a current pixel or group of pixels for encoding and determine whether to encode the current pixel using the indexed color history. In doing so, the encoder may compare a color value of the current pixel to color values of previously encoded pixels to determine whether the current pixel is sufficiently similar to a previously encoded pixel color value, e.g., by meeting one or more similarity criteria. If the similarity criteria are met, the encoder can encode the current pixel as an index value that references the entry in the indexed color history that stores a color value that meets the similarity criteria. If the similarity criteria are not met, the encoder can encode the current pixel using a different encoding scheme or method.
Claims (15)
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361770979P | 2013-02-28 | 2013-02-28 | |
US61/770,979 | 2013-02-28 | ||
US14/182,172 | 2014-02-17 | ||
US14/182,172 US9363517B2 (en) | 2013-02-28 | 2014-02-17 | Indexed color history in image coding |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102014203560A1 DE102014203560A1 (en) | 2014-08-28 |
DE102014203560B4 true DE102014203560B4 (en) | 2023-03-16 |
Family
ID=51349707
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102014203560.0A Active DE102014203560B4 (en) | 2013-02-28 | 2014-02-27 | INDEXED COLOR HISTORY IN IMAGE ENCODING |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102014203560B4 (en) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5818032A (en) | 1997-01-03 | 1998-10-06 | Sun; Tsu-Hung Tom | Encoded color halftone micro-dots for high density digital information storage |
US6091850A (en) | 1997-04-30 | 2000-07-18 | Fujitsu Microelectronics, Inc. | Method of compressing and decompressing graphic images |
US6983074B1 (en) | 2000-06-14 | 2006-01-03 | Adobe Systems Incorporated | Data compression system and technique |
US20070041635A1 (en) | 2005-08-18 | 2007-02-22 | Dykes Don A | Method and apparatus for graphical data compression |
EP2373030A1 (en) | 2010-03-09 | 2011-10-05 | Arnold & Richter Cine Technik GmbH & Co. Betriebs KG | Method for compressing image data |
US8599214B1 (en) | 2009-03-20 | 2013-12-03 | Teradici Corporation | Image compression method using dynamic color index |
-
2014
- 2014-02-27 DE DE102014203560.0A patent/DE102014203560B4/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5818032A (en) | 1997-01-03 | 1998-10-06 | Sun; Tsu-Hung Tom | Encoded color halftone micro-dots for high density digital information storage |
US6091850A (en) | 1997-04-30 | 2000-07-18 | Fujitsu Microelectronics, Inc. | Method of compressing and decompressing graphic images |
US6983074B1 (en) | 2000-06-14 | 2006-01-03 | Adobe Systems Incorporated | Data compression system and technique |
US20070041635A1 (en) | 2005-08-18 | 2007-02-22 | Dykes Don A | Method and apparatus for graphical data compression |
US8599214B1 (en) | 2009-03-20 | 2013-12-03 | Teradici Corporation | Image compression method using dynamic color index |
EP2373030A1 (en) | 2010-03-09 | 2011-10-05 | Arnold & Richter Cine Technik GmbH & Co. Betriebs KG | Method for compressing image data |
Also Published As
Publication number | Publication date |
---|---|
DE102014203560A1 (en) | 2014-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9906817B2 (en) | Indexed color values in image coding | |
DE69636150T2 (en) | System for coding moving pictures, and system for variable length coding | |
DE102016125117B4 (en) | Motion vector coding with dynamic reference motion vectors | |
KR100271722B1 (en) | Data compression system including significance quantizer | |
DE60312620T2 (en) | CODING AND DECODING METHOD WITH VARIABLE LENGTH | |
DE112010004109B4 (en) | Method for decoding a bit stream | |
WO2010116869A1 (en) | Video encoding device and video decoding device | |
DE112008002903T5 (en) | Data sequence compression | |
DE112012005557B4 (en) | Generating a code alphabet of symbols for generating codewords for words used with a program | |
EP3434015B1 (en) | Data compression by means of adaptive subsampling | |
DE102007020292A1 (en) | Method for compressing data using run-length coding, in particular for medical image data | |
DE102020108428A1 (en) | Encoding video using two-step intra-search | |
EP2109993A1 (en) | Device and method for encoding a block of transformation coefficients | |
US20190258619A1 (en) | Data compression method, data compression device, computer program, and database system | |
DE102016200001B4 (en) | Methods, systems and devices with an encoder for image processing | |
DE112014001649T5 (en) | Synchronization method and apparatus for a radio broadband system in an interference environment | |
DE112008003626T5 (en) | Low complexity coding in data compression systems | |
DE102016110417A1 (en) | IMAGE PROCESSING DEVICE AND IMAGE PROCESSING METHOD | |
DE102016015996B3 (en) | Adaptive tile data size encoding for video and image compression | |
DE60015755T2 (en) | LOSS-FREE ADAPTIVE CODING OF DATA OF A FINAL ALPHABET | |
DE102016000145A1 (en) | Method for improving low-cost video / image compression | |
DE102014203560B4 (en) | INDEXED COLOR HISTORY IN IMAGE ENCODING | |
KR100439371B1 (en) | Multimedia searching method using histogram | |
US7142235B2 (en) | Opportunistic improvement of digital camera image quality | |
CN112106365A (en) | Method and apparatus for adaptive context modeling in video encoding and decoding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G06K0009520000 Ipc: G06T0009000000 |
|
R012 | Request for examination validly filed |
Effective date: 20140704 |
|
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G06K0009520000 Ipc: G06T0009000000 Effective date: 20140916 |
|
R082 | Change of representative |
Representative=s name: BOSCH JEHLE PATENTANWALTSGESELLSCHAFT MBH, DE |
|
R081 | Change of applicant/patentee |
Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE., SG Free format text: FORMER OWNER: BROADCOM CORPORATION, IRVINE, CALIF., US Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LT, SG Free format text: FORMER OWNER: BROADCOM CORPORATION, IRVINE, CALIF., US |
|
R082 | Change of representative |
Representative=s name: BOSCH JEHLE PATENTANWALTSGESELLSCHAFT MBH, DE |
|
R081 | Change of applicant/patentee |
Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LT, SG Free format text: FORMER OWNER: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD., SINGAPORE, SG |
|
R082 | Change of representative |
Representative=s name: BOSCH JEHLE PATENTANWALTSGESELLSCHAFT MBH, DE |
|
R016 | Response to examination communication | ||
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R130 | Divisional application to |
Ref document number: 102014020123 Country of ref document: DE |
|
R020 | Patent grant now final |