DE112005003695B4 - Fehlerverteilung zum Stromsparen bei Anzeige-Bildspeichern - Google Patents

Fehlerverteilung zum Stromsparen bei Anzeige-Bildspeichern Download PDF

Info

Publication number
DE112005003695B4
DE112005003695B4 DE112005003695T DE112005003695T DE112005003695B4 DE 112005003695 B4 DE112005003695 B4 DE 112005003695B4 DE 112005003695 T DE112005003695 T DE 112005003695T DE 112005003695 T DE112005003695 T DE 112005003695T DE 112005003695 B4 DE112005003695 B4 DE 112005003695B4
Authority
DE
Germany
Prior art keywords
image memory
segment
pixels
pixel
error
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 - Fee Related
Application number
DE112005003695T
Other languages
English (en)
Other versions
DE112005003695T5 (de
Inventor
Luhong Liang
Xiaoying He
Rui Chen
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.)
Intel Corp
Original Assignee
Intel 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
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE112005003695T5 publication Critical patent/DE112005003695T5/de
Application granted granted Critical
Publication of DE112005003695B4 publication Critical patent/DE112005003695B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/20Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
    • G09G3/2007Display of intermediate tones
    • G09G3/2059Display of intermediate tones using error diffusion
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/02Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
    • G09G5/022Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed using memory planes
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/395Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2330/00Aspects of power supply; Aspects of display protection and defect management
    • G09G2330/02Details of power systems and of start or stop of display operation
    • G09G2330/021Power management, e.g. power saving
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0407Resolution change, inclusive of the use of different resolutions for different screen areas
    • G09G2340/0428Gradation resolution change
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/20Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
    • G09G3/22Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters using controlled light sources
    • G09G3/30Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters using controlled light sources using electroluminescent panels
    • G09G3/32Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters using controlled light sources using electroluminescent panels semiconductive, e.g. using light-emitting diodes [LED]
    • G09G3/3208Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters using controlled light sources using electroluminescent panels semiconductive, e.g. using light-emitting diodes [LED] organic, e.g. using organic light-emitting diodes [OLED]
    • G09G3/3225Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters using controlled light sources using electroluminescent panels semiconductive, e.g. using light-emitting diodes [LED] organic, e.g. using organic light-emitting diodes [OLED] using an active matrix
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/20Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
    • G09G3/34Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters by control of light from an independent source
    • G09G3/36Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters by control of light from an independent source using liquid crystals
    • G09G3/3611Control of matrices with row and column drivers
    • G09G3/3648Control of matrices with row and column drivers using an active matrix

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Control Of Indicators Other Than Cathode Ray Tubes (AREA)

Abstract

Es werden hier Verfahren und Vorrichtungen für die Fehlerverteilung zum Stromsparen bei Anzeige-Bildspeichern beschrieben. Gemäß einer Ausführungsform werden Pixel einer Farbebene von Bilddaten bei einem Zustand mit normalem Stromverbrauch in einem ersten Segment und einem zweiten Segment eines Bildspeichers gespeichert. Bei einem Zustand mit geringem Stromverbrauch wird eine Fehlerverteilung an den Pixeln durchgeführt, um eine Farbtiefe der Pixel zu reduzieren. Danach wird bei dem Zustand mit geringem Stromverbrauch zumindest ein Teil der Pixel mit reduzierter Farbtiefe in dem ersten Segment des Bildspeichers gespeichert, ohne auf das zweite Segment des Bildspeichers zuzugreifen. Es werden auch andere Verfahren und Vorrichtungen beschrieben.

Description

  • GEBIET
  • Ausführungsformen der Erfindung betreffen Datenverarbeitungssysteme und insbesondere eine Fehlerverteilung (engl. „Error Diffusion”, dt. auch „Fehlerdiffusion”) für einen Anzeige-Bildspeicher eines Datenverarbeitungssystems.
  • ALLGEMEINER STAND DER TECHNIK
  • Heutzutage sind Pocket-PCs, PDAs (persönliche digitale Assistenten), Mobiltelefone, Digitalkameras und Camcorder mit Farb-TFT-LCDs (TFT – Thin Film Transistor, LCD – Liquid Crystal Display), stromsparenden STN-LCDs (STN Super Twisted Nematic) oder OLEDs (organischen lichtemittierenden Dioden) ausgestattet. Aus einem Anzeige-Teilsystem ist inzwischen ein Hauptenergieverbraucher geworden, obwohl die Systeme mit leistungsstarken Prozessoren und mehreren Dutzend MB SDRAM ausgestattet sind. Sowohl bei LCDs als auch bei OLEDs ist ein Bildspeicher (Framebuffer) ein unverzichtbarer Bestandteil, der einen großen Teil der Energie verbraucht.
  • Eine der Techniken bei Bildspeichern mit geringem Stromverbrauch ist die dynamische Farbtiefesteuerung, bei der eine Neuorganisation der Pixel vorgeschlagen wird, damit die LSD (Least Significant Device – niedrigstwertige Einrichtung) des Bildspeichers abgeschaltet werden kann. In diesem Fall reduziert sich der Stromverbrauch des Bildspeichers und der dazugehörigen Logik. Diese Technik erzeugt jedoch sichtbare fehlerhafte Konturartefakte im Bild/Video.
  • Für die Reduzierung des Stromverbrauchs bei Anzeige-Teilsystemen sind andere Techniken vorgeschlagen worden, zu denen beispielsweise „Variable Duty-Ratio Refresh” (Auffrisch[zykl]en mit variablen Tastverhältnis), d. h. das Reduzieren der Auffrischrate eines Bildspeichers, sowie Helligkeits- und Kontrastverschiebungen, durch Abdunkeln der Hintergrundbeleuchtung und gleichzeitiges Anpassen der Bildhelligkeit, gehören. Diese Techniken führen jedoch zu einer sichtbaren Verschlechterung der Bild-/Videoqualität.
  • Außerdem wurde eine Technik auf der Grundlage der Halbtonrasterung vorgeschlagen, um den Bildspeicher für die Anwendung bei Handgeräten zu reduzieren. Bei dieser Technik werden die ursprünglichen 24-Bit-RGB-Farbdaten in 18-Bit- oder 15-Bit-Farbdaten umgewandelt, und mit Hilfe eines geordneten Dithering (Ordered Dithering) werden die durch die Quantisierung verursachten fehlerhaften Konturartefakte entfernt. Sie erzeugt jedoch Musterartefakte, die durch die festen Schwellwertmatrizen entstehen.
  • Des Weiteren ist zum Reduzieren des Stromverbrauchs eines Anzeige-Teilsystems eine Bildspeicher-Kompressionstechnik vorgeschlagen worden. Bei dieser Technik wird ein Bildspeicher in eine nicht komprimierte und eine komprimierte Seite unterteilt. Zunächst werden in einem Modus mit normalem Stromverbrauch die ursprünglichen Daten in die nicht komprimierte Seite geschickt. In einem Modus mit geringem Stromverbrauch komprimiert ein Codierer die ursprünglichen Daten in die komprimierte Seite, und die LCD-Panel-Auffrischoperationen greifen nur auf die komprimierte Seite mit wesentlich weniger Bits zu. Daher reduziert sich die Anzahl der Bitzugriffe auf den Bildspeicher sowie der entsprechende Stromverbrauch. Diese Technik ist jedoch bei Bildern dicht effizient.
  • Des Weiteren findet im Druckbereich eine Technik zur Fehlerverteilung breite Verwendung. Bei der Fehlerverteilung handelt es sich um ein bestimmtes Halbtonrasterungsverfahren, das unter Verwendung einer geringen Anzahl von Farben mehr Farben darstellt. Bei dieser Technik werden die Algorithmusfunktionen an jedem Bildpixel ausgeführt. Für die rote, grüne und blaue Komponente jedes Pixels wird ein Fehler zwischen dem ursprünglichen und dem quantisierten Wert berechnet. Der am zentralen Pixel auftretende ermittelte Fehler wird dann auf die umliegenden Pixel verteilt. Diese Technik ist jedoch mit komplexen, Berechnungen verbunden, für die eine relativ hohe Rechenleistung erforderlich sein kann.
  • Die US 2003/0090486 A1 offenbart ein Computer-implementiertes Verfahren, das direktes Speichern von Pixeln einer Farbebene von Bilddaten in einem ersten Segment und einem zweiten Segment eines Bildspeichers in einem Zustand mit normalem Stromverbrauch umfasst.
  • Aus der US 2004/0174463 A1 ist Durchführen einer Fehlerverteilung an den Pixeln zum Reduzieren einer Farbtiefe der Pixel bekannt.
  • Der vorliegenden Erfindung liegt somit die Aufgabe zugrunde, bei Anzeige-Bildspeichern elektrische Energie zu sparen.
  • Erfindungsgemäß wird diese Aufgabe gelöst durch ein Computer-implementiertes Verfahren nach Anspruch 1, ein maschinenlesbares Medium nach Anspruch 8 und ein Datenverarbeitungssystem nach Anspruch 9.
  • Die Unteransprüche betreffen vorteilhafte Weiterbildungen.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Ausführungsformen der Erfindung werden am besten bei Bezugnahme auf die nachfolgende Beschreibung und die beiliegenden Zeichnungen verständlich, die der Erläuterung von Ausführungsformen der Erfindung dienen. Beschreibung der Zeichnungen:
  • 1 zeigt verschiedene Bilder, die bei konventionellen Verfahren bzw. bei Verfahren gemäß bestimmten Ausführungsformen entstanden sind.
  • 2 ist eine grafische Darstellung, die ein Datenformat eines Bildspeichers gemäß einer Ausführungsform darstellt.
  • Die 35 sind Blockdiagramme, die verschiedene Ausführungsformen von Anzeige-Teilsystemen darstellen.
  • 6A ist ein Ablaufdiagramm, das ein Prozessbeispiel für ein Anzeige-Teilsystem gemäß einer Ausführungsform darstellt.
  • 6B ist ein Ablaufdiagramm, das ein Prozessbeispiel für eine Fehlerverteilung gemäß einer Ausführungsform darstellt.
  • 7 ist ein Pseudocode eines Prozesses für eine Fehlerverteilung gemäß einer Ausführungsform.
  • 8 ist ein Ablaufdiagramm, das ein Prozessbeispiel für eine Fehlerverteilung gemäß einer weiteren Ausführungsform darstellt.
  • 9 ist ein Pseudocode eines Prozesses für eine Fehlerverteilung gemäß einer weiteren Ausführungsform.
  • 10 ist ein Blockdiagramm, das ein Beispiel für ein Datenverarbeitungssystem darstellt, das als Ausführungsform verwendet werden kann.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Es werden hier Verfahren und Vorrichtungen für die Fehlerverteilung zum Stromsparen bei Anzeige-Bildspeichern beschrieben. Gemäß bestimmten Aspekten der Erfindung werden effektive Anzeigetechniken mit geringem Stromverbrauch eingesetzt, indem die LSD des Bildspeichers ausgeschaltet wird und dabei die Bildqualität erhalten bleibt. Gemäß einer Ausführungsform wird ein vereinfachter Fehlerverteilungsalgorithmus (beispielsweise als Fehlerverteilungs-Codierer implementiert) verwendet, der die Bilder mit vollständiger Farbtiefe in die Bilder mit reduzierter Farbtiefe codiert, ohne fehlerhafte Konturartefakte zu erzeugen, wie dies in dem Bild 103 gezeigt ist, das aus dem Bild 102 in 1 erzeugt wurde. Der Fehlerverteilungs-Codierer kann in einem Anzeigetreiber, einer Anwendungs-Software und/oder in Hardware-Modulen wie einer Anzeigesteuerung, einem GMCH (Graphics and Memory Control Hub) und/oder gleichwertigen Chips implementiert werden.
  • Im Vergleich zu einer konventionellen dynamischen Farbtiefesteuertechnik kann die hier beschriebene Technik die fehlerhaften Konturartefakte vermeiden, die durch das direkte Abschalten der LSD des Bildspeichers verursacht werden und in Bild 101 gezeigt sind, das aus Bild 102 in 1 erzeugt wurde. Im Vergleich zur herkömmlichen Technik, bei welcher der Bildspeicher mittels Lauflängencodierung komprimiert wird, ist die hier beschriebene Technik für Bild- und Videoinhalte sowie für Text- und Grafikinhalte viel effizienter, während die herkömmliche Technik nur bei Text- und einfachen Grafikinhalten effizient ist, da der Lauflängencodierungsalgorithmus die Bild- und Videoinhalte nicht auf effiziente Weise komprimieren kann, wodurch die Stromeinsparung bei Bildern und Videos sehr begrenzt ist. Im Vergleich zur herkömmlichen Dithering-Technik ist die hier beschriebene Technik wesentlich unkomplizierter und kann die Farbtiefe beispielsweise von 24 Bit auf 8 oder 9 Bit reduzieren, während die herkömmliche Technik die Farbtiefe lediglich auf 15 bis 18 Bit reduziert.
  • In der nachfolgenden Beschreibung werden zahlreiche Einzelheiten dargelegt, um Ausführungsformen der vorliegenden Erfindung genauer zu erläutern. Fachleuten wird jedoch klar sein, daß Ausführungsformen der vorliegenden Erfindung auch ohne diese speziellen Einzelheiten in die Praxis umgesetzt werden können. In anderen Fällen sind allgemein bekannte Strukturen und Einrichtungen statt auf ausführliche Weise in Form von Blockdiagrammen gezeigt, damit die Ausführungsformen der vorliegenden Erfindung nicht unverständlich werden.
  • Ein Verweis auf „eine Ausführungsform” in der Beschreibung bedeutet, daß ein bestimmtes Merkmal, eine bestimmte Struktur oder Eigenschaft, die in Verbindung mit der Ausführungsform beschrieben werden, bei mindestens einer Ausführungsform der Erfindung vorliegt. Der an verschiedenen Stellen in der Beschreibung vorkommende Ausdruck „bei einer Ausführungsform” bezieht sich nicht unbedingt stets auf dieselbe Ausführungsform. Der Verweis auf ein „Bild” in der Beschreibung steht für ein Bild, ein Einzelbild eines Videos oder 2D/3D-Grafikinhalte, die im Bilddatenformat zum Anzeigen gespeichert sind.
  • Gemäß einer Ausführungsform wird ein Fehlerverteilungsmechanismus vorgeschlagen, mit dem die in den Bildspeicher zu schreibenden Bilddaten verarbeitet werden, damit diese Artefakte beseitigt werden und gleichzeitig Strom gespart wird.
  • Bei einer Ausführungsform kann ein Fehlerverteilungs-Codierer in Hardware und/oder Software eines Anzeige-Teilsystems implementiert sein, um die Bildartefakte zu beseitigen, wenn die LSD des Bildspeichers zum Stromsparen abgeschaltet ist. Zusätzlich dazu werden gemäß einer Ausführungsform ein 2-Nachbarn-Fehlerfilter und die Vorgehensweise der Fehlerbitreduzierung dafür benutzt, den Rechenaufwand für den klassischen Fehlerverteilungsalgorithmus zu reduzieren, um den Stromverbrauch und die Kosten für den Fehlerverteilungs-Codierer zu verringern. Des Weiteren können bestimmte Software- und/oder Hardware-Ausführungsformen des Fehlerverteilungs-Codierers benutzt werden, um einen Arbeitsmodus des Anzeige-Teilsystems mit geringem Stromverbrauch bereitstellen zu können. Ein Fehlerverteilungs-Codierer kann zwar in einer Anzeigesteuerung implementiert werden, für Anzeige-Teilsysteme mit anderer Farbtiefe und anderem Datenspeicherformat können jedoch ähnliche Konstruktionen angewendet werden, um die gleiche Funktionalität zu erreichen.
  • Ein Bild mit einer großen Anzahl von Farben kann mit Hilfe der Fehlerverteilungstechnik ohne fehlerhafte Konturartefakte durch eine geringe Anzahl von Farben dargestellt werden. Bei einer Ausführungsform der Erfindung wird die Fehlerverteilungstechnik dazu verwendet, ein Originalbild mit vollständiger Farbtiefe durch Pixel mit reduzierter Farbtiefe darzustellen. Bei einer bestimmten Ausführungsform fungiert der modifizierte Algorithmus als Codierer (z. B. Fehlerverteilungs-Codierer), der das Originalbild in das Bild mit der geringeren Farbtiefe umwandelt, so dass es in die MSD des Bildspeichers passt, wenn der Strom für die LSD des Bildspeichers abgeschaltet oder reduziert werden muss, um den Stromverbrauch zu verringern.
  • Gemäß einer Ausführungsform kann die Bitreihenfolge in einem Bildspeicher umorganisiert werden. In 2 weist die herkömmliche physische Struktur 201 ein 24-Bit-Farbpixel auf. Wenn man davon ausgeht, dass die Farbtiefe des Pixels im Arbeitsmodus mit geringem Stromverbrauch auf 8 Bit (3 Bit, 3 Bit und 2 Bit für R, G beziehungsweise B) komprimiert wird, dann kann die physische Struktur der Pixelbits wie 202 umorganisiert werden, wobei die MSD und die LSD zum Beispiel in unterschiedlichen Speicherbänken implementiert werden können. Somit kann die LSD abgeschaltet werden. Im Unterschied zur herkömmlichen Technik der dynamischen Farbtiefensteuerung fügt eine Ausführungsform des Verfahrens ein vereinfachtes Fehlerverteilungsmodul (Fehlerverteilungs-Codierer) zu einem Anzeigetreiber, einer Anzeigesteuerung und/oder gleichwertigen Hardware-Modulen (z. B. Software, Hardware oder einer Kombination aus beiden) hinzu, um die durch die verringerte Farbtiefe verursachten Bildartefakte zu entfernen.
  • Der Fehlerverteilungs-Codierer kann in einem Anzeigetreiber und/oder einer Anwendungssoftware implementiert werden, die beispielsweise in einem Prozessor oder einer Steuerung (z. B. Firmware, DSP oder Zentralverarbeitungseinheit (CPU) usw.) ablaufen. Die modifizierten Anzeigedaten werden zur MSD geleitet, wenn die LSD abgeschaltet ist oder weniger Strom verbraucht.
  • 3 ist ein Blockdiagramm, das ein Anzeige-Teilsystem gemäß einer Ausführungsform der Erfindung darstellt. Bei einer Ausführungsform weist das Anzeigesystem 300 u. a. einen mit einem Bildspeicher 302 gekoppelten Fehlerverteilungs-Codierer 301 und eine mit einer Anzeigevorrichtung 304, wie beispielsweise einem LCD- oder OLED-Anzeigefeld, gekoppelte Anzeigesteuerung 303 auf. Bei dieser Ausführungsform kann ein Fehlerverteilungs-Codierer 301 als Software-Codierer implementiert sein, der als Anwendung, Gerätetreiber und/oder Firmware implementiert werden kann. Bei dem Bildspeicher 302 kann es sich um einen speziell zugeordneten Speicherbereich eines (nicht gezeigten) Hauptspeichers handeln. Alternativ dazu kann es sich bei dem Bildspeicher 302 um einen dedizierten Speicher in einem Chipsatz (z. B. Speichersteuereinheit, nicht gezeigt) oder einer Anzeigesteuerung 303 handeln. Des Weiteren kann es sich bei dem Bildspeicher 302 um einen dedizierten eigenständigen Speicherchipsatz in dem Anzeige-Teilsystem handeln. Die Anzeigesteuerung 303 kann in einem Chipsatz oder als eigenständige Anzeigesteuerung (z. B. mit PCI (Peripheral Component Interconnect), PCI-Express oder AGP (Accelerated Graphic Port) kompatible Steuerung) implementiert werden. Bei einer Ausführungsform verarbeitet der Fehlerverteilungs-Codierer 301 die Anzeigedaten und speichert die verarbeiteten Anzeigedaten in dem Bildspeicher 302. Danach ruft die Anzeigesteuerung 303 die Daten aus dem Bildspeicher ab und sendet die Anzeigedaten zum Anzeigen zur Anzeigevorrichtung 304.
  • Gemäß einer Ausführungsform stellt das Anzeige-Teilsystem 300 in 3 zwei Anzeigemodi bereit: 1) den normalen Arbeitsmodus oder einen Echtfarben-Stromverbrauchsmodus und 2) den Arbeitsmodus mit geringem Stromverbrauch. Im normalen Arbeitsmodus werden die ursprünglichen Anzeigedaten mit einer Bitreihenfolge ähnlich der Bitreihenfolge 202 in 2 unverändert direkt in den Bildspeicher geleitet. Die durch Software (z. B. einschließlich Fehlerverteilungs-Codierer 301) gesteuerte Anzeigesteuerung 303 kann den Weg (1) wählen, um zum Auffrischen des Anzeigefelds auf den gesamten Bildspeicher zuzugreifen. Im Arbeitsmodus mit geringem Stromverbrauch wandelt der Software-Fehlerverteilungs-Codierer 301 das Originalbild in Pixel mit einer reduzierten Farbtiefe um, die hinsichtlich Größe und Organisation in die MSD passen, ohne fehlerhafte Konturartefakte zu erzeugen, und schreibt dann die sich ergehenden Daten in die MSD des Bildspeichers 302. Wenn die Anzeigesteuerung 303 die Anzeigevorrichtung 304 auffrischt, ruft sie über den Weg (2) nur die Daten aus der MSD des Bildspeichers 302 ab und leitet die Daten zur Anzeigevorrichtung 304 und nimmt die Daten der niedrigstwertigen Bits zu null oder gleich einen vorbestimmten Wert an.
  • Im Arbeitsmodus mit geringem Stromverbrauch wird nur die MSD des Bildspeichers und die dazugehörige Logik mit Strom versorgt; alle anderen Teile (z. B. LSD des Bildspeichers) können abgeschaltet werden. Gemäß einer Ausführungsform kann ein Farbbild mit einer Farbtiefe von 24 Bit oder 16 Bit ohne sichtbare Artefakte in 9 Bit (z. B. 3 Bit für jede Farbe) oder 8 Bit (z. B. 3 Bit für R und G, 2 Bit für B) umgewandelt werden. Somit kann diese Ausführungsform ungefähr 43–66% des Bildspeichers abschalten und ungefähr 43–66% des Stromverbrauchs des Anzeige-Teilsystems einsparen. Diese Ausführungsform ist in der Regel bei solchen Anwendungen nützlich, bei denen sich der Bildinhalt relativ langsam ändert, wie beispielsweise Anwendungen, zu denen E-Books, Bild-/Texteditoren, Webbrowser usw. ehören.
  • 4 ist ein Blockdiagramm, das ein Anzeige-Teilsystem gemäß einer weiteren Ausführungsform der Erfindung darstellt. Bei dieser Ausführungsform kann ein Fehlerverteilungs-Codierer in Hardware implementiert werden. Der Fehlerverteilungs-Codierer kann beispielsweise als Bestandteil einer Anzeigesteuerung und/oder eines Chipsatzes implementiert werden. Bei einer Ausführungsform weist das Anzeigesystem 400 u. a. einen Fehlerverteilungs-Codierer 401 auf, der in einer Anzeigesteuerung 403 implementiert ist, die mit einem oder mehreren Bildspeichern 402 und einer Anzeigevorrichtung 404, wie beispielsweise einem LCD- oder OLED-Anzeigefeld, gekoppelt ist. Bei dem Bildspeicher 402 kann es sich um einen speziell zugeordneten Speicher aus einem (nicht gezeigten) Hauptspeicher handeln. Alternativ dazu kann es sich bei dem Bildspeicher 402 um einen dedizierten Speicher in einem Chipsatz (z. B. Speichersteuereinheit, nicht gezeigt) oder einer Anzeigesteuerung 403 handeln. Des Weiteren kann es sich bei dem Bildspeicher 402 um einen dedizierten eigenständigen Speicherchipsatz in dem Anzeige-Teilsystem handeln. Die Anzeigesteuerung 403 kann in einem Chipsatz oder als eigenständige Anzeigesteuerung (z. B. mit PCI, PCI-Express oder AGP kompatible Steuerung) implementiert werden. Bei einer Ausführungsform verarbeitet der Fehlerverteilungs-Codierer 401 die Anzeigedaten und speichert die verarbeiteten Anzeigedaten in dem Bildspeicher 402. Danach ruft die Anzeigesteuerung 403 die Daten aus dem Bildspeicher 402 ab und sendet die Anzeigedaten zum Anzeigen zur Anzeigevorrichtung 404.
  • 4 stellt ein Beispiel für eine Implementierung der Anzeigesteuerung dar, bei der ein Hardware-Modul zusätzlich zur Umorganisation der Bildspeicher-Bits den Fehlerverteilungsalgorithmus durchführt. In einem normalen Arbeitsmodus in 4 folgt der Datenstrom dem Weg (1), über den die Originalbilddaten sowohl in die MSD als auch in die LSD des Bildspeichers 402 geschrieben werden und für die Auffrischung des Anzeigefeldes vollständig zugänglich sind. Im Arbeitsmodus mit geringem Stromverbrauch folgt der Datenstrom dem Weg (2). Der Fehlerverteilungs-Codierer 401 wandelt das Originalbild in Pixel mit einer reduzierten Farbtiefe um, die hinsichtlich Größe und Organisation in die MSD passen, ohne fehlerhafte Konturartefakte zu erzeugen, und schreibt dann die sich ergebenden Daten in die MSD. Im Modus mit geringem Stromverbrauch kann der Strom für die LSD abgeschaltet oder reduziert werden.
  • Wenn die Anzeigesteuerung 403 die Anzeigevorrichtung 404 auffrischt, ruft sie über den Weg (2) nur die Daten aus der MSD ab und nimmt die Daten der niedrigstwertigen Bits zu null oder gleich einem vorbestimmten Wert an. In diesem Fall können offensichtlich derselbe Abschnitt des Bildspeichers (z. B. die LSD) und die entsprechenden Busleitungen abgeschaltet werden. Bei dieser Ausführungsform zeigen die Ergebnisse der Hardware-Simulation, dass der Stromverbrauch des Fehlerverteilungs-Codierers potentiell nur 0,05% des Stromverbrauchs des Bildspeichers beträgt, was bei der Berechnung der Stromeinsparung des Systems vernachlässigt werden kann. Somit lassen sich ungefähr 43–66% des Stromverbrauchs des Bildspeichers und der dazugehörigen Logik bei dieser Ausführungsform einsparen. Diese Ausführungsform läßt sich in der Regel für alle Arten von Anwendungen benutzen, wie beispielsweise zur Anzeige von Texten und Bildern oder zur Wiedergabe von Filmen und so weiter.
  • Gemäß einer weiteren Ausführungsform können mehrere Bildspeicher oder Bildspeicherabschnitte verwendet werden. 5 ist ein Blockdiagramm, das ein Anzeige-Teilsystem gemäß einer weiteren Ausführungsform der Erfindung darstellt. Gemäß dieser Ausführungsform werden mehrere Bildspeicher oder Bildspeicherabschnitte implementiert. Bei einer Ausführungsform weist das Anzeigesystem 500 u. a. einen Fehlerverteilungs-Codierer 501 auf, der in einer Anzeigesteuerung 503 implementiert ist, die mit mehreren Bildspeichern 502A502B und einer Anzeigevorrichtung 504, wie beispielsweise einem LCD- oder OLED-Anzeigefeld, gekoppelt ist.
  • Bei den Bildspeichern 502A und 502E kann es sich um einen speziell zugeordneten Speicherbereich eines (nicht gezeigten) Hauptspeichers handeln. Alternativ dazu kann es sich bei den Bildspeichern 502A und 502B um einen dedizierten Speicher in einem Chipsatz (z. B. Speichersteuereinheit, nicht gezeigt) oder einer Anzeigesteuerung 503 handeln. Des Weiteren kann es sich bei den Bildspeichern 502A und 502B um einen dedizierten eigenständigen Speicherchipsatz in dem Anzeige-Teilsystem handeln. Bei einer bestimmten Ausführungsform können die Bildspeicher 502A und 502B einzeln ein- beziehungsweise ausgeschaltet werden. Die Anzeigesteuerung 503 kann in einem Chipsatz oder als eigenständige Anzeigesteuerung (z. B. mit PCI, PCI-Express oder AGP kompatible Steuerung) implementiert werden. Bei einer Ausführungsform verarbeitet der Fehlerverteilungs-Codierer 501 die Anzeigedaten und speichert die verarbeiteten Anzeigedaten in den Bildspeichern 502A und 502B. Danach ruft die Anzeigesteuerung 503 die Daten aus den Bildspeichern 502A und 502B ab und sendet die Anzeigedaten zum Anzeigen zur Anzeigevorrichtung 504.
  • Bei einer Ausführungsform in 5 wird der nicht komprimierte Bildspeicher (UFB – Uncompressed Frame Buffer) 502A bei einem Modus mit nominalem Stromverbrauch (der auch als erster Stromverbrauchszustand bezeichnet wird) für das Speichern der Originalbildpixel verwendet, während ein zusätzlicher komprimierter Bildspeicher (CFB – Compressed Frame Buffer) 502B für das Speichern des sich ergebenden Bildes mit geringer Farbtiefe für den Arbeitsmodus mit geringem Stromverbrauch verwendet wird. Der UFB 502A weist sowohl eine MSD als auch eine LSD auf, die in der herkömmlichen Bitreihenfolge 201 oder der vorgeschlagenen Bitreihenfolge 202 in 2 organisiert werden können. Der CFB 502B weist nur eine MSD mit einer ähnlichen Größe wie die MSD bei der in 4 gezeigten Konfiguration auf. Im normalen Arbeitsmodus werden die Bilddaten gemäß einer Ausführungsform in den UFB 502A geschrieben und dann zum Auffrischen des Anzeigefeldes über den Weg (1) ausgelesen.
  • Im Arbeitsmodus mit geringem Stromverbrauch (der auch als Zustand mit geringem Stromverbrauch oder zweiter Stromverbrauchszustand bezeichnet wird) wandelt der Fehlerverteilungs-Codierer 501 das Originalbild in Pixel mit einer geringeren Farbtiefe um, die hinsichtlich Größe und Organisation in den CFB passen, ohne fehlerhafte Konturartefakte zu erzeugen, und schreibt dann die sich ergebenden Daten in den CFB 502B. Unterdessen werden die Originalbilddaten für das spätere Auslesen auch in den UFB 502A geschrieben. Wenn die Anzeigesteuerung 503 die Anzeigevorrichtung 504 auffrischt, ruft sie Fiber den Weg (2) nur die Daten aus dem CFB 502B ab und nimmt die Daten der niedrigstwertigten Bits zu null oder gleich einem vorbestimmten Wert an.
  • Diese Ausführungsform sorgt sowohl beim Lesen als auch beim Schreiben im Bildspeicher für eine transparente Schnittstelle zum Host-System. Bei diesem Beispiel kann der Arbeitsmodus mit geringem Stromverbrauch beim Beschreiben des Bildspeichers mehr Energie verbrauchen als der normale Arbeitsmodus, da der Fehlerverteilungs-Codierer 501 und der CFB 502B zusätzliche Energie verbrauchen. Andererseits wird aufgrund der geringeren Größe des CFB 502B und der dazugehörigen Logik für das Auffrischen der Anzeigevorrichtung weniger Strom benötigt. Infolgedessen eignet sich diese Ausführungsform in der Regel für Anwendungen, bei denen sich der Bildinhalt sehr langsam ändert. Zu solchen Anwendungen gehören E-Books, Bild-/Texteditoren, Webbrowser usw.
  • Die oben genannten Hardware-Fehlerverteilungs-Codierer sind zwar in Anzeigesteuerungen eingebettet, aber bei einigen der neuesten Architekturen von Handgeräten wie OMAPTM 2 und Intel® PXA27X kann ein Teil des Hauptspeichers als Anzeige-Bildspeicher zugeordnet oder abgebildet werden, und das Datenschreiben wird von der Speichersteuereinheit und/oder gleichwertigen Modulen gesteuert. In diesem Fall kann der Fehlerverteilungs-Codierer neben einigen zusätzlichen Merkmalen wie dem Arbeitsmodusumschalter in der Anzeigesteuerung in die Speichersteuereinheit oder gleichwertige Module (z. B. Chipsatz) eingebettet werden.
  • Zusätzlich dazu kann gemäß einer Ausführungsform ein Algorithmus in einem Fehlerverteilungs-Codierer für eine Farbebene implementiert werden. Was Farbbilder mit 3 Farbebenen betrifft, so ist der Algorithmus für jede Ebene gleich. Bei einer Ausführungsform wird der Reihe nach vom linken oberen Pixel ausgehend von links nach rechts bis zum unteren Rand des Bildes an jedem Bildpixel ein Fehlerverteilungsalgorithmus durchgeführt. Alternativ dazu können mehrere Codierer für das Verarbeiten mehrerer Farbebenen eingesetzt werden.
  • 6 ist ein Ablaufdiagramm, das ein Beispiel für einen Prozeß zur Fehlerverteilung gemäß einer Ausführungsform darstellt. Der Prozeß 600 kann von einer Verarbeitungslogik ausgeführt werden, zu der Hardware (Schaltungen, dedizierte Logik usw.), Software (wie sie auf einem Mehrzweck-Computersystem oder einem dedizierten Gerät läuft) oder eine Kombination aus beidem gehört. Der Prozeß 600 kann beispielsweise von einem Anzeige-Teilsystem, wie in den 3 bis 5 gezeigt, ausgeführt werden.
  • In 6A wird bei Block 602 in einem Zustand mit geringem Stromverbrauch, wie einem Zustand mit geringem oder reduziertem Stromverbrauch, eine Fehlerverteilung an den Pixeln durchgeführt, um eine Farbtiefe der Pixel zu reduzieren. Bei Block 604 wird zumindest ein Teil der Pixel mit reduzierter Farbtiefe in einem ersten Segment des Bildspeichers gespeichert, ohne auf das zweite Segment des Bildspeichers zuzugreifen (z. B. zu schreiben oder zu lesen). Infolgedessen kann die Stromzufuhr zum zweiten Segment des Bildspeichers im Zustand mit geringem Stromverbrauch reduziert oder abgeschaltet werden, um Strom zu sparen. Es können auch andere Operationen durchgeführt werden. Es sei angemerkt, dass eine Einrichtung im Zustand mit normalem Stromverbrauch und im Zustand mit geringem Stromverbrauch unabhängig arbeiten und zum Beispiel mit Hilfe von Hardware, Software oder einer Kombination aus beiden jederzeit von dem einen in den anderen Zustand umschalten kann. Somit ist der eine Stromverbrauchszustand nicht unbedingt von dem anderen abhängig.
  • 6B ist ein Ablaufdiagramm, das ein Beispiel für einen Prozeß zur Fehlerverteilung gemäß einer Ausführungsform darstellt. Der Prozeß 650 kann von einer Verarbeitungslogik ausgeführt werden, zu der Hardware (Schaltungen, dedizierte Logik usw.), Software (wie sie auf einem Mehrzweck-Computersystem oder einem dedizierten Gerät läuft) oder eine Kombination aus beidem gehört. Der Prozeß 650 kann beispielsweise von einem Anzeige-Teilsystem, wie in den 3 bis 5 gezeigt, ausgeführt werden, insbesondere als Bestandteil von zu Block 602 in 6A gehörenden Operationen.
  • In 6B wird bei Block 652 für jedes Pixel ein einem Quellpixelwert entsprechender Ausgabewert berechnet. Bei einer bestimmten Ausführungsform kann der Ausgabepixelwert 2 bis 3 höchstwertige Bits des Quellpixelwerts enthalten. Bei Block 654 wird der Fehler zwischen dem Quellpixelwert und dem Ausgangspixelwert berechnet. Bei Block 656 kann der Fehler auf die Nachbar-Pixel (z. B. mehr als 4 Pixel) verteilt werden, wozu beispielsweise das Aktualisieren des Wertes jedes Nachbar-Pixels durch Hinzuaddieren eines gewichteten Fehlers gehört. Das Muster, das zum Verteilen des Fehlers benutzt wird, wird auch als Fehlerfilter bezeichnet. Es können auch andere Operationen durchgeführt werden.
  • Bei der klassischen Fehlerverteilung handelt es sich in der Regel um einen Algorithmus nach Art einer zweidimensionalen Faltung mit hohem Rechenaufwand und intensiven Speicherpufferzugriffen. Bei einem herkömmlichen Algorithmus benötigt jedes Pixel beispielsweise mindestens 8 Speicherzugriffe für das Verteilen des Fehlers auf die 4 Nachbar-Pixel. Außerdem wird eine Speicherpuffergröße von zwei Bildzeilen dafür benötigt, die verteilten Fehlerdaten vorübergehend zwischenzuspeichern. Dadurch entstehen hohe Kosten und ein hoher Stromverbrauch des Fehlerverteilungs-Codierers selbst, was bei einer Technik mit geringerem Stromverbrauch für ein tragbares Gerät wie ein Handgerät nicht akzeptabel ist.
  • Dementsprechend wurde gemäß einer Ausführungsform ein vereinfachter Fehlerverteilungsalgorithmus entworfen, der dieses Problem löst und einen 2-Nachbarn-Fehlerfilter (2-Neighborhood Error Filter) und eine Fehlerbitreduzierung umfaßt. Bei einer Ausführungsform wird bei einem 2-Nachbarn-Fehlerfilter statt der klassischen Fehlerfilter ein 2-Nachbarn-Fehlerfilter wie nachfolgend gezeigt benutzt:
    x 1/2
    1/2
  • Wie oben gezeigt ist, wird bei Verarbeitung des Pixels X der Fehler zwischen der ausgegebenen Farbe und der ursprünglichen Farbe des Pixels X bei einer Ausführungsform nur auf das rechte und das untere Pixel verteilt, und die Gewichtungskoeffizienten werden für eine isotrope Verteilung und zur Vereinfachung der Implementierung auf 1/2 eingestellt. Da die Anzahl der Nachbar-Pixel auf 2 reduziert ist, ist nur ein Puffer mit der Größe einer Bildzeile dafür erforderlich, den auf das untere Pixel verteilten Fehler zu speichern, und der auf das rechte Pixel verteilte Fehler kann vorübergehend in einem Register gespeichert werden.
  • Es sei angemerkt, daß die oben genannten Prozesse von oben nach unten und von links nach rechts ausgeführt werden, aber wenn die Bildzugriff-Reihenfolge anders ist (z. B. von unten links nach oben rechts), kann es sich gemäß bestimmten Ausführungsformen der Erfindung bei dem Nachbar-Pixel um das rechte und das obere Pixel handeln.
  • 7 zeigt den Pseudocode eines Beispielprozesses, bei dem die Farbtiefe von 8 auf 3 Bit reduziert wird. Der Pseudocode kann beispielsweise durch einen oben beschriebenen Fehlerverteilungs-Codierer ausgeführt werden. In 7 werden in den Zeilen 5 bis 6 der ursprüngliche Pixelwert bei X und der gewichtete Fehler, der von dem linken und dem oberen Pixel von X verteilt wird, addiert und vorübergehend in einem Register temp_sum zwischengespeichert. In Zeile 7 wird der Ausgabepixelwert berechnet, indem die unteren 5 Bits (auf null gesetzt) von temp_sum abgeschnitten werden, und in den Bildspeicher geschrieben (z. B. FrameBuffer[x]). In Zeile 8 wird der Fehler zwischen dem modifizierten ursprünglichen Pixel und dem ausgegebenen Pixel, bei dem es sich lediglich um die unteren 5 Bits von temp_sum handelt, berechnet. In den Zeilen 9 und 10 wird der Fehler durch 2 geteilt und in dem Puffer (z. B. buffer[x]) und dem Register (register) für das untere beziehungsweise das rechte Pixel gespeichert. Wenn man lediglich den zusätzlichen Rechenaufwand im Vergleich mit einer Bildkopie betrachtet, so beträgt der Aufwand für jedes Pixel offenkundig ungefähr zwei Additionen (ADD), zwei Und-Verknüpfungen, zwei Bitverschiebungen und eine Auswertung einer Bedingung (Conditional Evaluation Operation). Außerdem ist die Anzahl zusätzlicher Speicherzugriffe auf zwei reduziert (z. B. Lesen und Beschreiben von buffer[x] in den Zeilen 5 und 10).
  • Zusätzlich dazu kann gemäß einer Ausführungsform neben dem 2-Nachbarn-Fehlerfilter bei der Hardware-Implementierung der Fehlerdiffusionsalgorithmus weiter vereinfacht werden, um die Pufferspeicherzugriffe zu reduzieren, die bei dem Fehlerverteilungs-Codierer die meiste Energie verbrauchen. Wenn man beispielsweise davon ausgeht, daß die Farbtiefe von 8 Bit auf 3 Bit reduziert wird, dann beträgt die Bitanzahl des Fehlers 5 und 4 nach dem Multiplizieren mit dem Gewichtungskoeffizienten 1/2. Die unteren 3 Bits können abgeschnitten oder gekürzt werden, und nur die oberen 2 Bits werden als Fehlerdaten zurückbehalten, die auf das rechte und das untere Pixel verteilt werden. Infolgedessen reduzieren sich die in Bits gezählten Speicherzugriffe.
  • Darüber hinaus läßt sich der Speicherpuffer, da nur wenig Speicher benötigt wird (für eine 640 × 480-Anzeige sind nur 640 × 2 Bit oder 160 Byte für jede Farbebene erforderlich), auf kosteneffektive Weise durch SRAM (Static Random Access Memory) realisieren, der wesentlich weniger Energie verbraucht als DRAM (Dynamic RAM).
  • 8 ist ein Ablaufdiagramm, das ein Beispiel für einen Prozess des Fehlerverteilungsalgorithmus mit einem 2-Nachbarn-Fehlerfilter und Fehlerbitreduzierung gemäß einer Ausführungsform darstellt. Es sei angemerkt, daß es sich bei der Variablen temp_sum hier nur um ein Symbol handelt, das den Algorithmus veranschaulicht, und nicht um das physische Register oder den physischen Speicher, daß temp_sum[7:5] die Datenzeilen der Bits 5, 6 und 7 und temp_sum[4:3] die Datenzeilen der Bits 3 und 4 bezeichnet.
  • Verglichen mit der Software-Implementierung ist die Hardware-Lösung weniger aufwendig und effizienter im Energieverbrauch, da: (1) es einfach ist, bei der Hardware-Implementierung das Register und den Puffer einen 2-Bit-Datenzugriff unterstützen zu lassen, was bei der Software-Lösung jedoch relativ schwierig ist, (2) das Zwischenregister und die Einheit für die Verschiebungsoperation in der Hardware-Implementierung nicht benötigt werden. Stattdessen können diese beiden Funktionen durch entsprechendes Verbinden der Datenleitungen implementiert werden. Infolgedessen benötigt der Hardware-Fehlerverteilungs-Codierer nur zweimal einen 2-Bit-Speicherzugriff und zweimal einen 2-Bit-Registerzugriff für jedes Pixel, was viel weniger Energie verbraucht.
  • Die obige Erläuterung beruht auf Bildern mit einer Farbebene. Was Farbbilder (z. B. 24-Bit-Echtfarbenbild, 16-Bit-Farbbild usw.) betrifft, so können die RGB-Subpixeldaten in verschiedenen Anzeigesystemkonfigurationen Subpixel für Subpixel oder Farbebene für Farbebene zum Anzeigesystem geleitet werden. Im ersten Fall können 3 Exemplare des Fehlerverteilungs-Codierers für das unabhängige Verarbeiten der R-, G- und B-Sub-Pixel verwendet werden. Im letzteren Fall kann ein Exemplar des Codierers für das nacheinander erfolgende Verarbeiten der R-, der G- und der B-Farbebene verwendet werden. Es können andere Konfigurationen bestehen.
  • Bei einer bestimmten Ausführungsform wird ein Fehlerverteilungs-Codierer in einem XC3S400-FG320 der Serie Spartan FPGA von Xilinx implementiert. Der Hardware-Pseudocode für eine Farbebene gemäß einer Ausführungsform ist in 9 gezeigt, bei der die eingegebenen 8-Bit-Pixeldaten zu 3-Bit-Daten codiert werden.
  • Was das Echtfarbenbild mit 3 Farbebenen betrifft, so wird ein 24-Bit-Bild Pixel für Pixel in einen Bildspeicher eingegeben, wobei jedes Pixel die B-, G- und R-Farbdaten mit jeweils 8 Bit enthält. In diesem Fall werden drei Exemplare des Fehlerverteilungs-Codierers und der entsprechenden internen Puffer benutzt. Ein Block-RAM in FPGA-Technik (definiert über ein Constraint File) wird dazu verwendet, einen internen Speicherpuffer zu implementieren, der den verteilten Fehler in einer Abtastzeile speichert. Block-RAMs sind dedizierte Blöcke eines echten Dual-Port-RAM. Diese Art der Implementierung spart mehr Strom als die FPGA-Logikressourcen. Die implementierte Einzelbildrate beträgt ungefähr 30 Einzelbilder/Sekunde und die Bildgröße 640 × 480 Pixel. Für die Codierer-Kernlogik werden nur 3840 Bits Block-RAM, 379 Bitslices und 154 Slice-Flipflops verwendet; dies entspricht einer Gate-Anzahl von 32 723 Gates (einschließlich Block-RAMs).
  • Für die FPGA-Simulation wurden echte Bilddaten verwendet, um den vorgeschlagenen Hardware-Fehlerverteilungs-Codierer verifizieren zu können. Das Originalbild ist ein 24-Bit-Echtfarbenbild, nach dem Fehlerverteilungs-Codierer reduziert sich die Farbtiefe auf 9 Bit mit 3:3:3 für RGB. Die Ergebnisse der Simulation zeigen, dass der Hardware-Fehlerverteilungs-Codierer die gleichen Bilder ausgibt wie bei den oben beschriebenen Software-Experimenten.
  • Da der Fehlerverteilungs-Codierer in der LCD-Steuerung integriert ist, ist die Kernlogik des zusätzlichen Codierers für das Strombudget nützlich, daher ist der I/O-Teil nicht mit eingeschlossen. Die Kernlogik des Fehlerverteilungs-Codierers verbraucht nur ungefähr 2,4 mW Strom. Durch das Verwenden einer oder mehrerer der oben beschriebenen Techniken lassen sich ungefähr 5/8 des Bildspeicherplatzes einsparen, und der Strom dafür kann reduziert oder abgeschaltet werden. Wenn man bedenkt, dass SDRAM-Bildspeicher in der Praxis 4, 8 oder 16 Bit breit sind, dann kann bei 4 Bit breiten Bildspeichern ungefähr die Hälfte des Stroms gespart werden. Bei einem 16-Mbit-Bildspeicher kann der Stromverbrauch von ungefähr 8 Mbit eingespart werden. Wenn beispielsweise K4S161622E, ein 16-Mbit-SDRAM von Samsung, als Bildspeicher benutzt wird, beträgt dessen Stromverbrauch 462 mW im Betriebsmodus, und es lassen sich 231 mW Strom einsparen.
  • Bei gleichwertiger Leistungsfähigkeit verbraucht ein FGPA etwa das 20-fache an Strom wie ein ASIC. Wenn der Fehlerverteilungs-Codierer durch den ASIC direkt in die LCD-Steuerung integriert ist, reduziert sich der Stromverbrauch auf 0,12 mW. Bei einem 16-Mbit-SDRAM K4S161622E verbraucht ein Bit im Durchschnitt ungefähr 2,88 × 10–5 mW. Der Strom für die Hardware-Fehlerverteilung kann in den Stromverbrauch von ungefähr 4155 Bits eines 16-Mbit-SDRAM umgerechnet werden. Bei dem oben beschriebenen Fehlerverteilungs-Codierer lässt sich der Strom für 8 MBit Bildspeicher einsparen, wozu Strom für 4 Kbit aufzuwenden ist, was ungefähr 0,05% des eingesparten Bildspeicherstroms entspricht.
  • Durch das Reduzieren der Pixel-Bitanzahl von 24 auf 9 Bit mit Hilfe der vorgeschlagenen Hardware-Lösung mit dem Fehlerverteilungs-Codierer lässt sich nicht nur der Strom für den Bildspeicher einsparen, sondern auch 5/8 des Stroms für den Bildspeicher-Datenbus und den LCD-Panelbus. Auf der Grundlage des Energieanteils einer herkömmlichen Systemkomponente eines eingebetteten Handsystems lässt sich der Anteil des durch den Hardware-Fehlerverteilungs-Codierer insgesamt eingesparten Stroms schätzen (da der zusätzliche Codiererstrom nur etwa 0,05% des eingesparten Bildspeicherstroms beträgt, wird er bei der Schätzung vernachlässigt). Bei dem LCD-Panelbus handelt es sich um einen Bustyp mit 4 zusätzlichen Bits für ein Synchronisations-/Steuersignal. Die Daten sind in der nachfolgenden Tabelle aufgeführt. Aus dieser Tabelle ist ersichtlich, dass ungefähr 10,57% des gesamten Stromverbrauchs des eingebetteten Handsystems durch den vorgeschlagenen Hardware-Fehlerverteilungs-Codierer eingespart werden können.
    Komponente Anzeigespeichereinrichtung Anzeigespeicherdatenbus LCD-Panelbus LCD-Steuerung
    Stromanteil (%) ohne Codierer 13,2 3,2 5,8 3,4
    Stromanteil (%) mit Codierer 6,6 1,2 3,38 3,4
    eingesparter Anteil (%) 6,6 2 2,42 0
    insgesamt eingesparter Anteil (%) 10,57
  • Es ist nur der eingesparte Stromanteil für Handgeräte mit unabhängigen Bildspeicherchips berechnet worden. Für die Architektur, bei der ein Teil des Hauptspeichers für den Anzeige-Bildspeicher abgebildet wird, bleiben bei der Lösung mit dem Fehlerverteilungs-Codierer die Stromeinsparungen für Anzeigespeicherdatenbus und LCD-Panelbus bestehen.
  • Oben wurde die Implementierung zum Codieren von 24-Bit-Farbbildern in 9-Bit-Bilder beschrieben und analysiert. Das Hardwaredesign ist bei der Codierung von 24- zu 8-Bit-Bildern, von 16- zu 8-Bit-Bildern von 16- zu 9-Bit-Bildern usw. ähnlich. Es sei darauf hingewiesen, daß die oben beschriebenen Techniken zu Erläuterungszwecken für eine Farbebene angewendet werden. Dies ist jedoch keine Einschränkung. Es versteht sich, dass sich die oben beschriebenen Techniken auch auf Graustufenbildebenen anwenden lassen, die als eine spezielle Art von Farbebenen betrachtet werden können.
  • 10 ist ein Blockdiagramm eines Beispiels für ein Computersystem, das eine Ausführungsform eines Anzeige-Teilsystems mit mindestens einem der oben beschriebenen Merkmale, wie beispielsweise einem oben beschriebenen Fehlerverteilungs-Codierer, verenden kann. Bei einer Ausführungsform weist das Computersystem 1000 einen Kommunikationsmechanismus, eine Leiterbahn und/oder einen Bus 1011 für das Übermitteln von Informationen auf und eine integrierte Schaltungskomponente wie eine Hauptverarbeitungseinheit 1012, die zum Verarbeiten von Informationen mit dem Bus oder der Leiterbahn 1011 gekoppelt ist. Die Hauptverarbeitungseinheit 1012 kann einen oder mehrere Prozessoren oder Prozessorkernlogik enthalten, die als Einheit zusammenarbeiten.
  • Das Computersystem 1000 weist des Weiteren einen RAM (Random Access Memory) oder eine andere dynamische Speichereinrichtung 1004 (auch als Hauptspeicher bezeichnet) auf, die mit dem Bus oder der Leiterbahn 1011 gekoppelt ist, damit Informationen und von der Hauptverarbeitungseinheit 1012 auszuführende Anweisungen gespeichert werden können. Der Hauptspeicher 1004 kann auch zum Speichern von temporären Variablen oder anderen Zwischeninformationen während der Ausführung von Anweisungen durch die Hauptverarbeitungseinheit 1012 verwendet werden.
  • Bei der Firmware 1003 kann es sich um eine Kombination aus Software und Hardware handeln, wie beispielsweise einen EPROM (Erasable Programmable Read-Only Memory) mit den Operationen für die darin aufgezeichnete Routine. In die Firmware 1003 kann Foundation-Code, Code für das Basis-Eingabe-/Ausgabe-System (BIOS – Basic Input/Output System) oder anderer ähnlicher Code eingebettet sein. Die Firmware 1003 kann es dem Computersystem 1000 ermöglichen, sich selbst zu booten.
  • Das Computersystem 1000 kann des Weiteren einen ROM (Read-Only Memory) und/oder eine andere statische Speichereinrichtung 1006 aufweisen, die mit dem Bus oder der Leiterbahn 1011 gekoppelt ist, damit statische Informationen und Anweisungen für die Hauptverarbeitungseinheit 1012 gespeichert werden können. Die statische Speichereinrichtung 1006 kann Software auf Betriebssystemebene (BS), auch als Systemebene bezeichnet und auf Anwendungsebene speichern. Das Computersystem 1000 kann des Weiteren an eine Anzeigevorrichtung 1021, wie beispielsweise eine Kathodenstrahlröhre (CRT – Cathode Ray Tube) oder eine Flüssigkristallanzeige (LCD – Liquid Crystal Display), gekoppelt sein, die mit dem Bus 1011 gekoppelt ist, damit einem Computer-Benutzer Informationen angezeigt werden können. Ein Chipsatz kann die Schnittstelle zur Anzeigevorrichtung 1021 herstellen.
  • Eine alphanumerische Eingabeeinrichtung (Tastatur) 1022 mit alphanumerischen und anderen Tasten kann ebenfalls an den Bus 1011 gekoppelt sein, damit der Hauptverarbeitungseinheit 1012 Informationen und ausgewählte Befehle übermittelt werden können. Eine zusätzliche Benutzereingabeeinrichtung ist die Mauszeigersteuereinrichtung 1023 (wie beispielsweise eine Maus, ein Trackball, ein Trackpad, ein Stift oder Mauszeigerrichtungstasten), die an den Bus 1011 gekoppelt ist, damit der Hauptverarbeitungseinheit 1012 Richtungsinformationen und Befehlsauswahlen übermittelt werden können und die Bewegung des Mauszeigers auf einer Anzeigeeinrichtung 1021 gesteuert werden kann. Ein Chipsatz kann die Schnittstelle zu den Ein-/Ausgabeeinrichtungen herstellen.
  • Eine weitere Vorrichtung, die mit dem Bus 1011 gekoppelt sein kann, ist eine Druckeinrichtung 1024, die für das Ausdrucken von Anweisungen, Daten und anderen Informationen auf einem Medium wie Papier, Film oder Ähnlichem verwendet werden kann. Des Weiteren kann wahlweise eine Tonaufnahme- und -wiedergabeeinrichtung, wie beispielsweise ein Lautsprecher und/oder ein Mikrofon (nicht gezeigt), als Audioschnittstelle zum Computersystem 1000 an den Bus 1011 gekoppelt sein. Eine weitere Einrichtung, die an den Bus 1011 gekoppelt sein kann, ist eine drahtgebundene/drahtlose Kommunikationsmöglichkeit 1025. Gemäß einer Ausführungsform weist das System 1000 des Weiteren eine Bilderfassungseinrichtung 1030 auf, wie beispielsweise eine Digitalkamera, eine Videokamera und/oder einen Scanner usw. Die Bilderfassungseinrichtung 1030 kann eine Abfolge von Bildern erfassen, und das System 1000 kann die erfaßten Bilder mit Hilfe einer oder mehrerer der oben beschriebenen Techniken verarbeiten.
  • Gemäß einer Ausführungsform kann ein Fehlerverteilungs-Codierer mit einem oder mehreren der oben beschriebenen Algorithmen in dem System 1000 implementiert werden. Ein Fehlerverteilungs-Codierer kann beispielsweise als Anwendungssoftware implementiert werden, die in dem nichtflüchtigen Speicher 1006 gespeichert und aus dem Hauptspeicher 1004 heraus ausgeführt werden kann, um Anzeigedaten in einem oder mehreren Bildspeichern zu verarbeiten und die Daten auf der Anzeigeeinrichtung 1021 anzuzeigen. Alternativ dazu kann der Fehlerverteilungs-Codierer in der Firmware 1003 oder einem Gerätetreiber (z. B. einem Anzeigetreiber) implementiert werden. Des Weiteren kann der Fehlerverteilungs-Codierer in Hardware, wie beispielsweise einer Anzeigesteuerung, implementiert werden, die in dem Chipsatz 1036 und/oder dem Prozessor 1012 implementiert sein kann. Der eine oder die mehreren Bildspeicher (frame buffers) können speziell im Speicher 1004 reserviert werden. Alternativ dazu können der eine oder die mehreren Bildspeicher als separate dedizierte Speicher in der Hardware und/oder Firmware, wie beispielsweise dem Chipsatz 1036 und/oder der Firmware 1003 oder einer Kombination der obigen Konfigurationen, implementiert sein. Es können auch andere Komponenten enthalten sein.
  • Somit sind hier Verfahren und Vorrichtungen für die Fehlerverteilung zum Stromsparen bei Anzeige-Bildspeichern beschrieben worden. Einige Abschnitte der vorangegangenen ausführlichen Beschreibung sind in Bezug auf Algorithmen und symbolische Darstellungen von Operationen an Datenbits in einem Computerspeicher dargestellt worden. Diese algorithmischen Beschreibungen und Darstellungen werden von Fachleuten auf dem Gebiet der Datenverarbeitung dafür genutzt, den wesentlichen Inhalt ihrer Arbeit für andere Fachleute auf die effektivste Art und Weise zu vermitteln. Unter einem Algorithmus versteht man hier und im Allgemeinen eine selbstkonsistente Abfolge von Operationen, die zu einem gewünschten Ergebnis führen. Die Operationen erfordern die physische Manipulation von physikalischen Größen. Normalerweise (jedoch nicht unbedingt) besitzen diese Größen die Form von elektrischen oder magnetischen Signalen, die gespeichert, übertragen, kombiniert, verglichen und anderweitig manipuliert werden können. Es hat sich zeitweise als praktisch erwiesen, diese Signale hauptsächlich zum Zwecke des allgemeinen Gebrauchs als Bits, Werte, Elemente, Symbole, Zeichen, Begriffe, Zahlen oder dergleichen zu bezeichnen.
  • Es muß jedoch berücksichtigt werden, daß all diese und ähnliche Begriffe zu den entsprechenden physikalischen Größen gehören und lediglich praktische Bezeichnungen für diese Größen darstellen. Wenn in der obenstehenden Erläuterung nicht speziell etwas anderes angegeben ist, dann versteht es sich, daß sich in der gesamten Beschreibung Erläuterungen, die Begriffe wie „verarbeiten” oder „berechnen” oder „ermitteln” oder „anzeigen” oder dergleichen benutzen, auf die Aktivität und die Prozesse eines Computersystems oder einer ähnlichen elektronischen Recheneinrichtung beziehen, die Daten, welche als physikalische (elektronische) Größen in den Registern und Speichern des Computersystems dargestellt sind, manipuliert und in andere Daten umwandelt, die gleichermaßen als physikalische Größen in den Speichern und Registern des Computersystems oder anderen derartigen Informationsspeicher-, Übertragungs- oder Anzeigeeinrichtungen dargestellt sind.
  • Ausführungsformen der vorliegenden Erfindung betreffen außerdem auch eine Vorrichtung für das Ausführen der hier genannten Operationen. Diese Vorrichtung kann speziell für die gewünschten Zwecke konstruiert werden oder einen Mehrzweck-Computer umfassen, der von einem im Computer gespeicherten Computerprogramm gezielt aktiviert oder umkonfiguriert wird. Ein solches Computerprogramm kann auf einem computerlesbaren Speichermedium gespeichert werden, wie beispielsweise u. a. auf einer beliebigen Art von Speicherscheibe, wozu Disketten, optische Scheiben, CD-ROMs und magnetooptische Scheiben, Nur-Lese-Speicher (ROM – Read-Only Memory), Schreib-Lese-Speicher (RAM – Random Access Memory), mehrfach programmierbare Nur-Lese-Speicher (EPROM – Erasable Programmable Read-Only Memory), elektrisch löschbare und programmierbare Nur-Lese-Speicher (EEPROM – Electrically Erasable Programmable Read-Only Memory), Magnetkarten oder optische Karten oder eine beliebige Medienart gehören, die sich für das Speichern elektronischer Anweisungen eignet und an einen Computersystembus gekoppelt ist.
  • Die hier dargestellten Algorithmen und Anzeigen beziehen sich nicht notwendigerweise auf einen bestimmten Computer oder eine andere Vorrichtung. Es können verschiedene Mehrzwecksysteme mit Programmen, die den hier angeführten Lehren entsprechen, verwendet werden, oder es kann sich als praktisch erweisen, stärker spezialisierte Vorrichtungen zu konstruieren, mit denen die bei den Verfahren erforderlichen Operationen ausgeführt werden können. Die für eine Vielzahl dieser Systeme erforderliche Struktur ist aus der obenstehenden Beschreibung ersichtlich. Außerdem werden die Ausführungsformen der vorliegenden Erfindung nicht unter Bezugnahme auf eine bestimmte Programmiersprache beschrieben. Es versteht sich, daß für das Implementieren der Lehren von hier beschriebenen Ausführungsformen der Erfindung eine Vielzahl von Programmiersprachen verwendet werden kann.
  • Ein maschinenlesbares Medium kann alle Mechanismen für das Speichern oder Übertragen von Informationen in einer von einer Maschine (z. B. einem Computer) lesbaren Form einschließen. Ein maschinenlesbares Medium schließt beispielsweise Folgendes mit ein: ROM (Nur-Lese-Speicher), RAM (Schreib-Lese-Speicher), Magnetscheibenspeichermedien, optische Speichermedien, Flash-Speichereinrichtungen, elektrische, optische, akustische oder eine andere Form von sich ausbreitenden Signalen (z. B. Trägerwellen, Infrarotsignale, Digitalsignale usw.) usw.

Claims (9)

  1. Computer-implementiertes Verfahren, das Folgendes umfasst: direktes Speichern von Pixeln einer Farbebene von Bilddaten in einem ersten Segment und einem zweiten Segment eines Bildspeichers in einem Zustand mit normalem Stromverbrauch, Durchführen einer Fehlerverteilung an den Pixeln zum Reduzieren einer Farbtiefe der Pixel in einem Zustand mit geringem Stromverbrauch, wobei der Zustand mit normalem Stromverbrauch und der mit geringem Stromverbrauch voneinander unabhängig und von dem einen in den anderen umschaltbar sind, umfassend Berechnen eines Ausgabewerts für jedes Quellpixel jeder Farbebene der Bilddaten, der einem Quellpixelwert des Quellpixels entspricht, gemäß einem vorbestimmten Algorithmus, Berechnen eines Fehlers zwischen dem Ausgabewert und dem Quellpixelwert und Verteilen des Fehlers auf bis zu zwei Nachbar-Pixel des Quellpixels; Speichern von zumindest einem Anteil der Pixel mit reduzierter Farbtiefe in dem ersten Segment des Bildspeichers im Zustand mit geringem Stromverbrauch, ohne auf das zweite Segment des Bildspeichers zuzugreifen; Abrufen der Pixel aus dem ersten und dem zweiten Segment des Bildspeichers zum Anzeigen im Zustand mit normalem Stromverbrauch; Abrufen der Pixel mit reduzierter Farbtiefe aus dem ersten Segment des Bildspeichers zum Anzeigen, ohne auf das zweite Segment des Bildspeichers zuzugreifen, im Zustand mit geringem Stromverbrauch; und ein solches Reduzieren von Farbbits jedes Pixels mit reduzierter Farbtiefe, dass diese in das erste Segment des Bildspeichers passen, bevor jedes Pixel in dem ersten Segment des Bildspeichers gespeichert wird; umfassend arithmetisches Addieren des verteilten Fehlers von bis zu zwei Nachbar-Pixeln zu einem Anfangswert eines Pixels für jedes Pixel in einer Farbebene und Speichern einer vorbestimmten Anzahl höchstwertiger Bits (MSB) des Ausgabewerts in dem ersten Segment des Bildspeichers.
  2. Verfahren nach Anspruch 1, das des Weiteren im Zustand mit geringem Stromverbrauch das Reduzieren des Stroms für das zweite Segment des Bildspeichers umfasst.
  3. Verfahren nach Anspruch 1, bei dem es sich bei dem ersten Segment um eine höchstwertige Einrichtung (MSD) des Bildspeichers und bei dem zweiten Segment um eine niedrigstwertige Einrichtung (LSD) des Bildspeichers handelt.
  4. Verfahren nach Anspruch 3, bei dem im Zustand mit geringem Stromverbrauch Pixel mit reduzierter Farbtiefe als zur MSD gehörende Daten zum Anzeigen verwendet werden, während ein vorbestimmter Wert als zur LSD gehörende Daten verwendet wird, ohne auf die LSD des Bildspeichers zuzugreifen.
  5. Verfahren nach Anspruch 1, bei dem es sich bei den bis zu zwei Nachbar-Pixeln um ein rechtes und ein unteres Pixel des Quellpixels handelt.
  6. Verfahren nach Anspruch 1, bei dem das Verteilen des Fehlers auf bis zu zwei Nachbar-Pixel das Anpassen der Pixelwerte der bis zu zwei Nachbar-Pixel um zumindest einen Teil des Fehlers umfasst, wobei der Teil des Fehlers, der auf das Nachbar-Pixel in der gleichen Zeile verteilt wird, vorübergehend in einem Register gespeichert wird, und der Teil des Fehlers, der auf ein Nachbar-Pixel in der nächsten Zeile verteilt wird, vorübergehend in einem Zeilenpuffer gespeichert wird.
  7. Verfahren nach Anspruch 1, bei dem die Fehlerverteilung von einem Codierer durchgeführt wird, der in Software und/oder einer Anzeigesteuerung und/oder einem Chipsatz eines Datenverarbeitungssystems implementiert ist.
  8. Maschinenlesbares Medium für das Speichern von Anweisungen, die, wenn sie von einer Maschine ausgeführt werden, diese dazu veranlassen, ein Verfahren nach Anspruch 1 durchzuführen.
  9. Datenverarbeitungssystem, das Folgendes umfasst: ein Anzeige-Teilsystem, das enthält: einen Bildspeicher mit einem ersten und einem zweiten Segment, einen Codierer, der mit dem Bildspeicher gekoppelt und so konfiguriert ist, dass er in einem Zustand mit normalem Stromverbrauch Pixel einer Farbebene von Bilddaten in dem ersten und dem zweiten Segment des Bildspeichers speichert, in einem Zustand mit geringem Stromverbrauch eine Fehlerverteilung an den Pixeln durchführt, um eine Farbtiefe der Pixel zu reduzieren, wobei der Zustand mit normalem Stromverbrauch und der mit geringem Stromverbrauch voneinander unabhängig und von dem einen in den anderen umschaltbar sind, umfassend Berechnen eines Ausgabewerts für jedes Quellpixel jeder Farbebene der Bilddaten, der einem Quellpixelwert des Quellpixels entspricht, gemäß einem vorbestimmten Algorithmus, Berechnen eines Fehlers zwischen dem Ausgabewert und dem Quellpixelwert und Verteilen des Fehlers auf bis zu zwei Nachbar-Pixel des Quellpixels; im Zustand mit geringem Stromverbrauch zumindest einen Teil der Pixel mit reduzierter Farbtiefe in dem ersten Segment des Bildspeichers speichert, ohne auf das zweite Segment des Bildspeichers zuzugreifen, im Zustand mit normalem Stromverbrauch die Pixel aus dem ersten und dem zweiten Segment des Bildspeichers zum Anzeigen abruft, im Zustand mit geringem Stromverbrauch die Pixel mit reduzierter Farbtiefe aus dem ersten Segment des Bildspeichers zum Anzeigen, ohne auf das zweite Segment des Bildspeichers zuzugreifen, abruft, und Farbbits jedes Pixels mit reduzierter Farbtiefe reduziert, so dass diese in das erste Segment des Bildspeichers passen, bevor jedes Pixel in dem ersten Segment des Bildspeichers gespeichert wird, umfassend: arithmetisches Addieren des verteilten Fehlers von bis zu zwei Nachbar-Pixeln zu einem Anfangswert eines Pixels für jedes Pixel in einer Farbebene und Speichern einer vorbestimmten Anzahl höchstwertiger Bits (MSB) des Ausgangswerts in dem ersten Segment des Bildspeichers.
DE112005003695T 2005-09-29 2005-09-29 Fehlerverteilung zum Stromsparen bei Anzeige-Bildspeichern Expired - Fee Related DE112005003695B4 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2005/001620 WO2007036070A1 (en) 2005-09-29 2005-09-29 Error diffusion for display frame buffer power saving

Publications (2)

Publication Number Publication Date
DE112005003695T5 DE112005003695T5 (de) 2008-07-03
DE112005003695B4 true DE112005003695B4 (de) 2012-07-26

Family

ID=37899343

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112005003695T Expired - Fee Related DE112005003695B4 (de) 2005-09-29 2005-09-29 Fehlerverteilung zum Stromsparen bei Anzeige-Bildspeichern

Country Status (3)

Country Link
US (1) US20090102850A1 (de)
DE (1) DE112005003695B4 (de)
WO (1) WO2007036070A1 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060181540A1 (en) * 2005-02-12 2006-08-17 Patrick Loo Image editor with plug-in capability for editing images in a mobile communication device
US7770040B2 (en) * 2006-03-24 2010-08-03 Qualcomm Incorporated Method and apparatus for reducing power consumption of a co-processor by switching to low power dedicated memory in which image data is periodically updated
JP2008123501A (ja) * 2006-10-15 2008-05-29 Fujitsu Ten Ltd 車両用情報記録装置
US8411740B2 (en) * 2007-09-10 2013-04-02 Ncomputing Inc. System and method for low bandwidth display information transport
KR101328793B1 (ko) * 2009-11-23 2013-11-13 엘지디스플레이 주식회사 오차 확산 방법과 이를 이용한 액정표시장치
US9354679B2 (en) 2012-12-28 2016-05-31 Intel Corporation System and method for causing reduced power consumption associated with thermal remediation
US9201487B2 (en) * 2013-03-05 2015-12-01 Intel Corporation Reducing power consumption during graphics rendering
US9467681B2 (en) * 2013-03-25 2016-10-11 Microsoft Technology Licensing, Llc Representation and compression of depth data
JP6866584B2 (ja) * 2016-07-21 2021-04-28 カシオ計算機株式会社 表示装置、表示制御方法およびプログラム
US10410406B2 (en) * 2017-02-27 2019-09-10 Trimble Ab Enhanced three-dimensional point cloud rendering
US10237532B2 (en) 2017-03-07 2019-03-19 Trimble Ab Scan colorization with an uncalibrated camera

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030090486A1 (en) * 1999-07-31 2003-05-15 Ashburn Jon L. Z test and conditional merger of colliding pixels during batch building
US20040174463A1 (en) * 2003-03-06 2004-09-09 Smartasic, Inc. Encoding system for error diffusion dithering

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3225767B2 (ja) * 1994-11-17 2001-11-05 株式会社富士通ゼネラル 誤差拡散回路
JPH09101771A (ja) * 1995-10-04 1997-04-15 Hitachi Ltd 画像処理装置
JP2002251173A (ja) * 2001-02-27 2002-09-06 Matsushita Electric Ind Co Ltd 液晶表示装置とその駆動方法および画像データの伝送方法
US7245945B2 (en) * 2002-11-05 2007-07-17 Intel Corporation Portable computing device adapted to update display information while in a low power mode
US6992675B2 (en) * 2003-02-04 2006-01-31 Ati Technologies, Inc. System for displaying video on a portable device and method thereof
US7362472B2 (en) * 2004-03-05 2008-04-22 Eastman Kodak Company Color error diffusion
US8432582B2 (en) * 2004-08-20 2013-04-30 Xerox Corporation Uniformity compensation in halftoned images
US7389432B2 (en) * 2004-11-10 2008-06-17 Microsoft Corporation Advanced power management for computer displays

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030090486A1 (en) * 1999-07-31 2003-05-15 Ashburn Jon L. Z test and conditional merger of colliding pixels during batch building
US20040174463A1 (en) * 2003-03-06 2004-09-09 Smartasic, Inc. Encoding system for error diffusion dithering

Also Published As

Publication number Publication date
US20090102850A1 (en) 2009-04-23
DE112005003695T5 (de) 2008-07-03
WO2007036070A1 (en) 2007-04-05

Similar Documents

Publication Publication Date Title
DE112005003695B4 (de) Fehlerverteilung zum Stromsparen bei Anzeige-Bildspeichern
DE112011103209B4 (de) Verfahren, vorrichtung und system zur steuerung von anzeigeaktivität
CN108538260B (zh) 图像显示处理方法及装置、显示装置及存储介质
KR101635020B1 (ko) 새로운 부분을 갖는 영상을 업데이트하기에 적합한 서브픽셀 렌더링
DE69735975T2 (de) System und Verfahren zur Überlagerung von wahlweise in unterschiedlichen nativen Formaten gespeicherten Bildern
US11087667B2 (en) Pixel charging method, circuit, display device and computer storage medium
DE60310720T2 (de) Verfahren und vorrichtung zur kodierung von texturinformation
CN106030652B (zh) 提供输出面的方法、系统和合成显示控制器及计算机介质
DE202017105872U1 (de) Niedrigauflösendes RGB-Rendering für effiziente Übertragung
DE102020116090A1 (de) Elektrolumineszenzanzeigefeld mit einer Pixelansteuerschaltung
DE112012004358B4 (de) Flüssigkristallanzeige mit Verbesserung der Farbauswaschung und Verfahren zum Ansteuern derselben
DE202017105882U1 (de) Fovealisierte Zweiwege-Graphikpipeline
JP3852024B2 (ja) 画像表示システム
KR102314937B1 (ko) 디스플레이용 데이터를 처리하는 방법 및 장치
DE102015108057A1 (de) Aktualisierungsabhängiges adaptives Dithering für ein Display mit variabler Aktualisierungsrate
DE102006022062A1 (de) Verfahren und Vorrichtung zur effizienten Bilddrehung
KR20150093592A (ko) 디스플레이용 오버드라이브 프레임을 생성하는 방법 및 장치
DE102010027307A1 (de) Bildanzeigevorrichtung und Steuerverfahren für dieselbe
DE112014000938T5 (de) Verfahren und Vorrichtung zur Stromeinsparung in einer Anzeige-Pipeline durch Herunterfahren des inaktiven Komponenten
DE102019127726A1 (de) Für fernarbeitsplatz-anwendungen geeignetes streaming individueller anwendungsfenster
CN104637455A (zh) 利用局部变暗背光对lcd的图像数据的调整
DE102015001814A1 (de) Farbkomprimierung unter Verwendung einer selektiven Farbtransformation
DE112014006045T5 (de) LC-Panel, Verfahren zum Ansteuern desselben und LC-Vorrichtung, welche das LC-Panel umfasst
CN109243384A (zh) 显示设备及其驱动方法、驱动装置和计算机可读介质
DE102014108329A1 (de) Dynamische RGBW-Farbtreuesteuerung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final

Effective date: 20121027

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20140401