DE102004049094B4 - Verfahren zur Reduktion von Blockartefakten an Blockgrenzen digitaler Bildblöcke, die aus einem Feld von Pels bestehen, wobei eine Mehrzahl von Bildblöcken ein Bild oder Teilbild bilden - Google Patents

Verfahren zur Reduktion von Blockartefakten an Blockgrenzen digitaler Bildblöcke, die aus einem Feld von Pels bestehen, wobei eine Mehrzahl von Bildblöcken ein Bild oder Teilbild bilden Download PDF

Info

Publication number
DE102004049094B4
DE102004049094B4 DE102004049094A DE102004049094A DE102004049094B4 DE 102004049094 B4 DE102004049094 B4 DE 102004049094B4 DE 102004049094 A DE102004049094 A DE 102004049094A DE 102004049094 A DE102004049094 A DE 102004049094A DE 102004049094 B4 DE102004049094 B4 DE 102004049094B4
Authority
DE
Germany
Prior art keywords
block
image
image block
buffer
filtered
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
DE102004049094A
Other languages
English (en)
Other versions
DE102004049094A1 (de
Inventor
Martin Dr. Radetzki
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.)
Sci Worx GmbH
Original Assignee
Sci Worx GmbH
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 Sci Worx GmbH filed Critical Sci Worx GmbH
Priority to DE102004049094A priority Critical patent/DE102004049094B4/de
Publication of DE102004049094A1 publication Critical patent/DE102004049094A1/de
Application granted granted Critical
Publication of DE102004049094B4 publication Critical patent/DE102004049094B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder

Landscapes

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

Abstract

Verfahren zur Reduktion von Blockartefakten an Blockgrenzen digitaler Bildblöcke (bx,y), die aus einem Feld von Pels bestehen, wobei eine Mehrzahl von Bildblöcken (bx,y) ein Bild (Frame) oder Teilbild (Field) bilden, durch Ausführen von Filteroperationen für jeden Bildblock (bx,y) des Bildes (Frame) oder Teilbildes (Field), indem auf eine Filterung einer vertikalen Blockgrenzenspalte des jeweiligen Bildblocks (bx–1,y) unmittelbar eine Filterung von horizontalen Blockgrenzen eines Bildblocks (bx–1,y) folgt und die Blockgrenzen gleichzeitig sowohl für einen aktuellen Bildblock (bx–1,y) als auch für den an die zu filternde Blockgrenze angrenzenden Bildblock (bx,y bzw. bx–1,y–1) gefiltert werden, gekennzeichnet durch Einlesen jeweils einer gesamten Zeile eines aktuellen Bildblocks (bx–1,y) aus einem Hauptspeicher (MM) und einer gesamten Zeile eines angrenzenden Bildblocks (bx,y) aus einem Bildblockspeicher (BM1) zur gleichzeitigen Filterung der vertikalen Blockgrenzen des aktuellen und des angrenzenden Bildblocks (bx–1,y; bx,y), wobei die Zeilen der Bildblöcke (bx–1,y; bx,y) nacheinander eingelesen und gefiltert werden, anschließendes Einlesen jeweils einer gesamten Spalte...

Description

  • Die Erfindung betrifft ein Verfahren zur Reduktion von Blockartefakten an Blockgrenzen digitaler Bildblöcke, die aus einem Feld von Pels bestehen, wobei eine Mehrzahl von Bildblöcken ein Bild (Frame) oder Teilbild (Field) bilden, durch Ausführen von Filteroperationen für jeden Bildblock des Bildes (Frame) oder Teilbildes (Field), indem auf eine Filterung einer vertikalen Blockgrenzenspalte des jeweiligen Bildblocks unmittelbar eine Filterung von horizontalen Blockgrenzen eines Bildblocks folgt und die Blockgrenzen gleichzeitig sowohl für einen aktuellen Bildblock als auch für den an die zu filternde Blockgrenze angrenzenden Bildblock gefiltert werden.
  • Die Erfindung betrifft weiterhin eine Einrichtung zur Durchführung eines solchen Verfahrens.
  • Bei der digitalen Bildverarbeitung insbesondere nach dem Video-Codierungs-Standard H.264/AVC ist eine Reduktion von Blockartefakten an Blockgrenzen digi taler Bildblöcke vorgesehen. Der H.264/AVC-Standard ist in der ISO/IEC-Norm 14496-10 AVC beschrieben.
  • Eine übersichtliche Beschreibung des H.264/AVC-Standards findet sich in Th. Wiegand et al.: Overview of the H.264/AVC Video Coding Standard, in IEEE Transactions on Circuits and Systems for Video Technology, July 2003, Seiten 1 bis 19. Es wird erläutert, dass ein blockbasiertes Codieren von Videos Blockartefakte produziert. Diese können sowohl von der Vorhersage, als auch von den restlichen unterschiedlichen Codierungsstufen des Decoding Prozesses herrühren. Durch einen adaptiven Entblockungsfilter in der Decoderschleife zur bewegungskompensierten Vorhersage kann die Bildqualität verbessert werden.
  • Die Bildblöcke sind im H.264/AVC-Standard als Blöcke mit 4 × 4 Pels definiert. Ein Bild besteht dabei aus zugeordneten Teilbildern mit Luminanz und Chrominanz-Farbrepräsentationen. Die Chrominanzkomponente hat eine Anzahl von einem viertel der Anzahl von Abtastpunkten der Luminanzkomponente. Die Auflösung eines Abtastwertes beträgt 8 Bit.
  • Bei dem adaptiven Entblockungsfilter zur Reduktion der Blockartefakte wird die Filterstärke durch die Werte verschiedener Syntaxelemente gesteuert und ist im wesentlichen abhängig von der Differenz der Pels einer Blockgrenze zwischen einem aktuellen Bildblock und dem angrenzenden Bildblock sowie der Differenz der Pels des aktuellen Bildblocks an der Blockgrenze und der Pels des angrenzenden Bildblocks an der Blockgrenze. Diese Differenzen werden jeweils mit Schwellwerten verglichen, um Bedarfsweise eine Filterung durchzuführen.
  • Aus P. List et al. Adaptive Deblocking Filter, in: IEEE Transactions on Circuits and Systems for Video Technology, Vol. 13, No. 7, July 2003, Seiten 614 bis 619 ist ein adaptives Entblockungsfilter zur Reduktion von Blockartefakten an Blockgrenzen digitaler Bildblöcke für den H.264/MPEG-4 AVC-Videostandard beschrieben. Es wird ein Verfahren zur Bestimmung von Schwellwerten und Filterung von Pels angegeben.
  • Die Implementierung des definierten Entblockungsfilteres erfolgt herkömmlicherweise sequentiell entsprechend des H.264-Standards mit den Schritten:
    • a) Berechnen der Blockgrenzenstärke für jede Blockgrenze zwischen 4 × 4 Pel-Blöcken eines Makroblocks einschließlich der Blockgrenzen mit benachbarten Makroblöcken zur linken Seite und oberhalb.
    • b) Berechnen der Filterschwellwerte α und β für jede Blockgrenze eines Makroblocks;
    • c) Filtern der vier vertikalen Blockgrenzen eines Makroblocks einschließlich der Blockgrenzen mit seinem benachbarten Makroblock zur Linken. Dieser Schritt umfasst das Lesen von vier Pels zur Linken der Blockgrenze und vier Pels zur Rechten der Blockgrenze aus dem Bild-Hauptspeicher, das Berechnen aktualisierter Pel-Werte entsprechend der in den Kapiteln 8.7.2.3 oder 8.7.2.4 des H.264/Standards (ISO/IEC 14496-10 AVC) definierten Regeln und Speichern der aktualisierten Pel-Werte in dem Bild-Hauptspeicher;
    • d) Filtern der vier horizontalen Blockgrenzen eines Makroblocks einschließlich der Blockgrenzen mit seinem oberen Nachbar. Dieser Schritt umfasst das Lesen von vier Pels oberhalb der Blockgrenze und vier Pels unterhalb der Blockgrenzen aus dem Bild-Hauptspeicher, das Berechnen aktualisierter Pel-Werte entsprechend der in den Kapiteln 8.7.2.3 oder 8.7.2.4 des H.264-Standards definierten Regeln und Speichern der aktualisierten Pel-Werte in dem Bild-Hauptspeicher. Die in diesem Schritt gelesenen Pel-Werte sollten vorher durch Schritt c) aktualisiert worden sein;
    • e) Iteration durch Wiederholung der Schritte a) bis d) für alle Makroblocks eines Bilds in Raster-Scan-Reihenfolge.
  • Es werden also herkömmlicherweise, wie im H.264-Standard vorgeschlagen, zunächst die vertikalen Blockgrenzen aller Bildblöcke eines Makroblocks und dann die horizontalen Blockgrenzen aller Bildblöcke eines Makroblocks gefiltert.
  • Diese Vorgehensweise ist für eine direkte Implementierung in einen Hardware-Datenpfad nicht optimal, da Zugriffe auf den Bild-Hauptspeicher erforderlich sind, die eine geeignete Zwischenspeicherung in Hardware-Register oder zugeordnete Speicherblöcke erfordert, die für eine Softwareimplementierung nicht verfügbar sind. Zudem werden individuelle Pels mit 8 Bit verarbeitet, obwohl herkömmliche digitale Signalverarbeitungsprozessoren 32 Bit oder mindestens 16 Bit in Echtzeit bearbeiten könnten. Zudem wird bei den herkömmlichen Verfahren das Potential der Parallelverarbeitung nicht genutzt.
  • In Yu-Wen Huang et al.: Architecture Design for Deblocking filter in H.264/JVT/AVC, in: Proceedings IEEE International Conference on Multimedia & Expo (ICME), Baltimore, MD 2003, Seiten I-693-696 ist ein in Hardware realisiertes Entblockungsfilter mit zwei lokalen Speicherblöcken, zwei 4 × 4 × 8 Bit Feldregistern zur Zwischenspeicherung und einem Parallelfilter zur parallelen Filterung von 8 Pel pro Taktzyklus beschrieben. Die Anzahl von Taktzyklen zur Entblockung eines Makroblocks beträgt je nach gewählter Datenpfadvariante 614 bis 878, wobei das Minimum bei den gegebenen Filterressourcen 128 sein würde (4 horizontale und 4 vertikale Blockgrenzen pro Makroblock mit jeweils 16 Pels, d. h. (4 + 4) × 16 = 128 Filteroperationen).
  • Der Unterschied zwischen der gesamten und der minimalen Anzahl von Taktzyklen liegt zwischen 614 – 128 = 468 und 878 – 128 = 750. Während dieser Taktzyklen tritt nur ein Datentransfer zwischen Bild-Hauptspeicher, lokalem Speicher und den Feld registern auf. Diese Übertragungen erfordern unnötige Zeit (Taktzyklen) und Energie. Die Nutzung der Ressourcen der Parallelfilter liegt zwischen 128:614 = 20,8% bis 128:878 = 14,6%. In der verbleibenden, gemeinsam genutzten Zeit sind die Rechenkapazitäten ungenutzt. Die geringen Nutzungsgrade zeigen eine ineffiziente Nutzung der Ressourcen.
  • In der EP 1 439 711 A2 ist ein Verfahren zur Reduktion von Blockartefakten in einer pipelineartigen Organisation mit hintereinander geschalteten vertikalem Blockgrenzenprozessor und horizontalem Blockgrenzenprozessor beschrieben.
  • Die US 2004/0184549 A1 offenbart ein Verfahren zur Reduzierung des Berechnungsaufwandes innerhalb eines Parallelfilters zur Reduktion von Blockartefakten.
  • In SIMA, M.; ZHOU, Y.; ZHANG, W.: An efficient architecture for adaptive deblocking filter of H.264/AVC video coding. IEEE Trans. On Consumer Electronics, Vol. 50, No. 1, Februar 2004, Seiten 292 bis 296, ist ein Verfahren und eine Vorrichtung zur Reduktion von Blockartefakten beschrieben, die einen Parallelfilter, einen Pufferspeicher sowie zwei Bildblockspeicher zur Umsortierung der Bilddaten jeweils eines Bildblocks einsetzen.
  • Die WO 01/54414 A1 beschreibt ein Verfahren zur Filterung von Blockgrenzen digitaler Bilder derart, dass abwechselnd vertikale Blockgrenzen und horizontale Blockgrenzen gefiltert werden.
  • In der DE 196 04 050 A1 ist ein Verfahren zur Bearbeitung von decodierten Bildblöcken beschrieben, bei dem die an den Kanten liegenden Kantenpixel eines Bildblocks mit einem Kantenglättungsfilter gefiltert werden. Ein gemeinsames Kantenglättungsfilter kann auch für Kanten zweier direkt aneinandergrenzende Bildblöcke eingesetzt werden.
  • Aufgabe der Erfindung ist es, ein verbessertes Verfahren zur Reduktion von Blockartefakten an Blockgrenzen digitaler Bildblöcke zu schaffen, die aus einem Feld von Pels bestehen, wobei eine Mehrzahl von Bildblöcken ein Bild oder ein Teilbild bilden.
  • Aufgabe der Erfindung ist es weiterhin, eine verbesserte Einrichtung zur Durchführung des Verfahrens zu schaffen.
  • Die Aufgabe wird mit dem Verfahren erfindungsgemäß gelöst durch die Merkmale des Anspruchs 1.
  • Im Unterschied zu den bekannten Verfahren, bei denen zunächst sämtliche vertikalen und dann sämtliche horizontalen Blockgrenzen eines Makroblocks gefiltert werden, werden abwechselnd vertikale und horizontale Blockgrenzen desselben oder eines anderen Bildblocks gefiltert. Dabei wird gleichzeitig der an die Blockgrenze angrenzende Bildblock für die jeweils betrachtete vertikale oder horizontale Blockgrenze mitbearbeitet und aktualisiert, d. h. gefiltert abgespeichert.
  • Es erfolgt ein Einlesen jeweils einer gesamten Zeile eines aktuellen Bildblocks und einer gesamten Zeile eines angrenzenden Bildblocks aus Bildblockspeicher zur gleichzeitigen Filterung der vertikalen Blockgrenzen des aktuellen und des angrenzenden Bildblocks. Dabei werden die Zeilen der Bildblöcke nacheinander eingelesen und gefiltert. Anschließend erfolgt ein Einlesen einer gesamten Spalte desselben oder vorzugsweise des links oberhalb vor dem früheren aktuellen Bildblock angeordneten Bildblocks sowie einer gesamten Spalte eines daran angrenzenden Bildblocks aus Bildblockspeicher oder Pufferspeicher zur gleichzeitigen Filterung der horizontalen Blockgrenzen des aktuellen und des angrenzenden Bildblocks. Wiederum werden nunmehr die Spalten der Bildblöcke nacheinander eingelesen und gefiltert.
  • Die Filterergebnisse werden jeweils nach der Filterung einer Spalte oder Zeile in einen Bildblockspeicher zur Umsortierung spaltenweise organisierter Bilddaten in zeilenweise organisierte Bilddaten durch zeilenweises Schreiben einer gefilterten Spalte des Bildblocks in eine Zeile des Bildblockspeichers zum späteren spaltenweisen Auslesen zurückgeschrieben.
  • Durch diese Maßnahme wird erreicht, dass das Filtern der Blockgrenzen für einen Makroblock nur 128 Taktzyklen erfordert und für Datenübertragungen keine Taktzyklen exklusiv reserviert werden müssen. Die Anzahl der Datentransferzyklen beträgt 128 pro Makroblock. Dies ist erheblich geringer als die Anzahl von 468 bis 750 Datentransferzyklen der oben erwähnten bekannten Hardware-Implementierung. Die Datenübertragungen erfolgen parallel zusammen mit den Filtern. Die Nutzung der Ressourcen des Parallelfilters beträgt 100%.
  • Der Bildblockspeicher sollte hierfür ein Schieberegister für jeweils einen Bildblock sein, mit dem die Bildblockzeilen beziehungsweise Bildblockspalten wahlweise spalten- oder zeilenweise verschoben werden können, wenn eine Bildblockzeile oder Bildblockspalte beispielsweise von unten oder links in das blockweise organisierte Bildblockregister, beispielsweise ein zweidimensionales Schieberegister, eingeschrieben wird.
  • Die Reduktion von Blockartefakten wird vorzugsweise mit den Schritten durchgeführt von:
    • a) Ermitteln von Filterparametern für jeden Bildblock;
    • b) Filtern der vertikalen Blockgrenzen des aktuell zu filternden Bildblocks durch zeilenweises b1) Auslesen der Pels jeweils einer Zeile des aktuell zu filternden Bildblocks aus einem Hauptspeicher; b2) Auslesen der Pels jeweils einer Zeile an den aktuellen Bildblock im Bild oder Teilbild links angrenzenden Bildblocks aus einem ersten Blockzwischenspeicher b3) Filtern der ausgelesenen Pels sowohl des aktuellen Bildblocks, als auch des angrenzenden Bildblocks an den Blockgrenzen mit den Filterparametern; und b4) Schreiben des gefilterten aktuellen Bildblocks in einen zweiten Blockzwischenspeicher und des gefilterten angrenzenden Bildblocks in einen ersten Blockzwischenspeicher.
  • Weiterhin erfolgt vorzugsweise ein Filtern der horizontalen Blockgrenzen desselben oder eines anderen aktuell zu filternden Bildblocks durch die Schritte:
    • c0) Ermitteln der Filterparameter (BS, α, β) für jeden Bildblock;
    • c1) Auslesen der Pels jeweils einer Spalte des aktuell zu filternden Bildblocks aus dem ersten Blockzwischenspeicher;
    • c2) Auslesen der Pels jeweils einer Spalte des an den aktuellen Bildblock im Bild oder Teilbild oberhalb angrenzenden Bildblocks aus einem Pufferspeicher für eine gesamte Bildzeile von Bildblöcken;
    • c3) Filtern der ausgelesenen Pels sowohl des aktuellen Bildblocks als auch des angrenzenden Bildblocks an den Blockgrenzen mit den Filterparametern;
    • c4) Schreiben des gefilterten aktuellen Bildblocks in den ersten Blockzwischenspeicher und den Pufferspeicher und Schreiben des gefilterten Bildblocks in den zweiten Blockzwischenspeicher.
  • Die gefilterten Bilddaten werden aus dem zweiten Blockzwischenspeicher in den Hauptspeicher zurückgeschrieben.
  • Dabei erfolgt alternierend das Filtern der vertikalen Blockgrenzen eines aktuell zu filternden Bildblocks und anschließend das Filtern der horizontalen Blockgrenzen desselben oder eines anderen aktuell zu filternden Bildblocks. Der gefilterte angrenzende Bildblock wird vorzugsweise nach dem Filtern der horizontalen Blockgrenzen aus dem zweiten Blockzwischenspeicher in den Hauptspeicher übertragen. Dies erfolgt insbesondere dann, wenn die Bildblöcke eines Bildes oder Teilbildes (Frame) in einer Raster-Scan-Reihenfolge gefiltert werden, bei der ein aktueller Bildblock für die Filterung der horizontalen Blockgrenzen in der Bildblockzeile unmittelbar oberhalb der Bildblockzeile des vorhergehenden vertikal gefilterten Bildblocks und in der Bildblockspalte unmittelbar links neben der Bildblockspalte des vorhergehenden vertikal gefilterten Bildblocks liegt und die Bildblöcke jeweils einer Zeile hintereinander mit den vertikalen Blockgrenzen und alternierend die Bildblöcke jeweils einer darüber liegenden Zeile um einen Bildblock versetzt mit den horizontalen Blockgrenzen gefiltert werden.
  • Die Filterung eines Bildes oder Teilbildes erfolgt somit zeilenweise alternierend, wobei die Bildblöcke einer Zeile eines Bildes oder Teilbildes zur Filterung der vertikalen Blockgrenzen für die Bildblöcke einer darüber liegenden Zeile hintereinander zur Filterung der horizontalen Blockgrenzen bearbeitet werden. Für die Festlegung des aktuellen Bildblocks zur Filterung der vertikalen und horizontalen Blockgrenzen wird somit zwischen zwei Zeilen gesprungen, wobei der Bildblock zur Filterung der horizontalen Blockgrenzen eine Zeile oberhalb und links neben dem Bildblock der für die vorhergehende Filterung der vertikalen Blockgrenzen liegt.
  • Die Aufgabe wird weiterhin erfindungsgemäß gelöst durch eine Einrichtung zur Reduktion von Blockartefakten an Blockgrenzen digitaler Bildblöcke mit einem Hauptspeicher für mindestens ein Bild, einen ersten und einen zweiten Blockzwischenspeicher zum Ablegen der Daten für jeweils mindestens einen Bildblock, wobei der erste Blockzwischenspeicher zur Zwischenspeicherung eines Bildblocks mit gerader und eines Bildblocks mit ungerader Spaltennummer ausgebildet ist, einen Pufferspeicher für mindestens eine gesamte Bildzeile von Bildblöcken und ein in ein Horizontal-Parallelfilter zur Filterung horizontaler Blockgrenzen und ein Vertikal-Parallelfilter zur Filterung vertikaler Blockgrenzen aufgeteiltes Parallelfilter zur gleichzeitigen Filterung der Blockgrenzen für einen aktuellen und einen an die zu filternde Blockgrenze des aktuellen Bildblocks angrenzenden Bildblock. Eine Steuerungseinheit ist hierbei zur Durchführung des oben beschriebenen Verfahrens vorgesehen.
  • Die Vertikal- und Horizontal-Parallelfilter sind so verschaltet, dass
    • – ein erster Eingang des Vertikal-Parallelfilters mit dem zweiten Blockzwischenspeicher für den aktuellen Bildblock und ein zweiter Eingang des Vertikal-Parallelfilters zum Lesen von Bildblöcken mit dem Hauptspeicher verbunden ist;
    • – ein erster Ausgang des Vertikal-Parallelfilters mit dem ersten Blockzwischenspeicher und ein zweiter Ausgang des Vertikal-Parallelfilters mit dem zweiten Blockzwischenspeicher verbunden ist;
    • – ein erster Eingang des Horizontal-Parallelfilters mit dem ersten Blockzwischenspeicher und ein zweiter Eingang des Horizontal-Parallelfilters mit dem Pufferspeicher verbunden ist,
    • – ein erster Ausgang des Horizontal-Parallelfilters mit dem Pufferspeicher und ein zweiter Ausgang des Parallelfilters mit dem ersten Blockzwischenspeicher rückgekoppelt ist, und
    • – ein Ausgang des ersten Blockzwischenspeichers zum Schreiben gefilterter Bildblöcke mit dem Hauptspeicher verbunden ist.
  • Mit dieser Ausführungsform kann die Verarbeitungszeit pro Makroblock auf 64 Taktzyklen durch Verdopplung der Ressourcen und Nutzung einer Pipeline reduziert werden. Der erste Blockzwischenspeicher ist dabei dupliziert und wird als doppelter Puffer alternierend für geradzahlige und ungeradzahlige Blöcke betrieben, wenn die Blöcke einer Bildzeile mit aufeinanderfolgenden ganzzahligen Werten nummeriert werden. Bei dieser Ausführungsform sind Lese- und Schreibzugriffe auf den externen Bild-Hauptspeicher in jedem Taktzyklus möglich.
  • Der erste und zweite Blockzwischenspeicher sind vorzugsweise Schieberegister-Feldspeicher zum wahlweisen Verschieben von Spalten oder Zeilen mit mehreren Pels in einem dem Bildblock entsprechenden Datenfeld. Damit ist eine Umorientierung der Bildblöcke von zeilen- in spaltenweiser Darstellung zur Anpassung an die Speicherreihenfolge im Hauptspeicher möglich.
  • Weiterhin hat die Einrichtung vorzugsweise eine mit den Parallelfiltern verbundene Einheit zur Berechnung der Filterparameter für jeden Bildblock.
  • Die Erfindung wird nachfolgend anhand der beigefügten Zeichnungen beispielhaft näher erläutert. Es zeigen:
  • 1 – eine schematische Darstellung eines aus Bildblöcken bestehenden Bildes mit alternierender vertikaler und horizontaler Filterung von Bildblöcken zeilenweise über das gesamte Bild;
  • 2 – ein Blockdiagramm einer ersten Ausführungsform einer Einrichtung zur Reduktion von Blockartefakten an Blockgrenzen digitaler Bildblöcke;
  • 3 – eine tabellarische Darstellung der Schreib- und Lesezyklen und Filteroperationen für die Einrichtung aus 2;
  • 4 – Skizze eines Bildes mit Makroblöcken und der Reihenfolge bei makroblockweiser Verarbeitung;
  • 5 – ein Blockdiagramm einer zweiten Ausführungsform einer Einrichtung zur Reduktion von Blockartefakten an Blockgrenzen digitaler Bildblöcke;
  • 6 – ein Blockdiagramm eines ersten Blockzwischenspeichers als doppelter Puffer für gerade und ungerade Bildblöcke;
  • 7 – eine tabellarische Darstellung der Schreib- und Lesezyklen und Filteroperationen der Einrichtung aus 4.
  • Die 1 lässt eine schematische Darstellung eines Bildes bestehend aus einer Vielzahl in Zeilen und Spalten angeordneter Bildblöcken 1, 2,... erkennen. Eine Filteroperation jeweils einer Blockgrenze für einen Bildblock und gleichzeitig des an die Blockgrenze angrenzenden Bildblocks wird in Raster-Scan-Reihenfolge zick-zack-artig durchgeführt, indem die Bildblöcke einer Zeile hintereinander weg vertikal zur Reduk tion der Blockartefakte an den vertikalen linken Blockgrenzen des aktuellen Bildblocks abgearbeitet werden. Die Filterung der horizontalen oberen Blockgrenzen erfolgt für die Bildblöcke der gleichen Zeile bzw. der unteren Blockgrenzen für die Bildblöcke der darüber liegenden Zeile. Nach dem Filtern der linken vertikalen Blockgrenzen eines Bildblocks erfolgt das Filtern der oberen Blockgrenze des links in derselben Zeile liegenden Bildblocks sowie der unteren Blockgrenze des darüber liegenden Bildblocks. Nach Abarbeitung einer Zeile wird die nächstfolgende Zeile alternierend vertikal und horizontal gefiltert.
  • Der aktuell zu filternde Block wird dabei aus dem Bild- Hauptspeicher MM ausgelesen und nach dem Filtern in dem zweiten Blockzwischenspeicher BM2 abgelegt. Der zur vertikalen Filterung an der linken Blockgrenze angrenzende, d. h. links benachbarte Bildblock befindet sich in dem ersten Blockzwischenspeicher BM1.
  • Die Zeile der Bildblöcke bis einschließlich zum angrenzenden, links benachbarten Bildblock liegt in einem Pufferspeicher, der als SRAM für eine Bildzeile von 4 × 4 – Bildblöcken mit zwei Ports oder doppelter Lese-/Schreibgeschwindigkeit ausgebildet sein kann. In dem Pufferspeicher P befinden sich weiterhin bis auf die untere Blockgrenze bereits gefilterte Bildblöcke der darüber liegenden Zeile von der Spalte des aktuellen Bildblocks ausgehend bis zur letzten Spalte. Bei der horizontalen Filterung wird dann der aktuelle Bildblock, der ursprünglich in dem zweiten Blockzwischenspeicher BM2 abgelegt wurde, in den Pufferspeicher PM übertragen, und der links oberhalb von dem aktuellen Bildblock liegende Bildblock in den Bild-Hauptspeicher als fertig gefilterten Bildblock überführt. Durch einen Transfer von gefilterten Bilddaten aus dem zweiten Blockzwischenspeicher BM2 in den ersten Bildspeicher BM1 liegt der fertig gefilterte Bildblock zwischendurch auch in dem ersten Bildspeicher BM1.
  • Die 2 lässt ein Blockdiagramm einer ersten Ausführungsform einer erfindungsgemäßen Einrichtung zur Reduktion von Blockartefakten an Blockgrenzen digitaler Bildblöcke bestehend aus 4 × 4 × 8 Bit-Pels erkennen.
  • Die Einrichtung hat den ersten Blockzwischenspeicher BM1, dessen Inhalt wahlweise über einen ersten Multiplexer MUX1 spaltenweise oder zeilenweise in einen 8 Pel-Parallelfilter F geladen werden kann. Ein Ausgang des Parallelfilters F ist mit dem Zeileneingang des ersten Blockzwischenspeichers BM1 verbunden. Dieser arbeitet als Schieberegister-Feldspeicher, um beim Einschreiben einer Bildblockzeile von unten die restlichen gespeicherten Bildblockzeilen nach oben zu schieben oder beim Einschreiben von Bildblockspalten diese von rechts nach links zu schieben.
  • Der erste Ausgang des Parallelfilters F ist weiterhin mit dem Pufferspeicher PM verbunden, dessen Ausgang an einen zweiten Multiplexer MUX2 gelegt ist. Der Ausgang des zweiten Multiplexers MUX2 ist mit dem zweiten Eingang des Parallelfilters F verbunden. Ein weiterer Eingang des zweiten Multiplexers MUX2 ist zum Einlesen von vier Bytes pro Taktzyklus, d. h. von vier Pels, mit dem Bild-Hauptspeicher MM verbunden.
  • Der zweite Ausgang des Parallelfilters F ist mit dem Zeileneingang und dem Spalteneingang des zweiten Blockzwischenspeichers BM2 verbunden. Der Spaltenausgang des zweiten Blockzwischenspeichers BM2 ist mit dem Spalteneingang des ersten Blockzwischenspeichers BM1 verbunden und der Zeilenausgang des zweiten Blockzwischenspeichers BM2 ist mit dem Hauptspeicher MM zum Einschreiben von vier Bytes, d. h. von vier Pels per Taktzyklus verbunden.
  • Die Filterparameter in Form der Schwellwerte α, β und der Blockgrenzstärke BS (Boundary Strength) werden über eine Einheit basiert auf Parametern bestimmt, die pro 4 × 4 Bildblock festgelegt und von der Einrichtung eingelesen werden.
  • Eine Steuerungseinheit CTRL ist zur Durchführung des nachfolgend beschriebenen Verfahrens beispielsweise durch geeignete Programmierung eines Signalverarbeitungsprozessors ausgebildet.
  • Dabei erfolgt die Filterung der Blockgrenzen für die oberen, d. h. horizontalen Blockgrenzen und der rechten, vertikalen Blockgrenzen eines aktuellen Bildblocks, der in den ersten Blockzwischenspeicher BM1 abgelegt ist.
  • Zunächst erfolgt in einem Schritt a) das Einlesen der notwendigen Filterparameter, beispielsweise aus einem Makroblock-Definitionspeicher. Die für das bekannte Filterverfahren erforderlichen Filterparameter von Blockgrenzenstärke BS und Schwellwertvariablen α, β werden in bekannter Weise berechnet, wobei der Schritt a) parallel zur Filterung eines vorhergehenden Blocks z. B. mit einem Pufferspeicher erfolgen kann.
  • In einem Schritt b) erfolgt dann die vertikale Filterung der vertikalen Blockgrenzen des in dem ersten Blockzwischenspeicher abgelegten Bildblocks bx–1,y. Ein aktueller Bildblock bx,y wird aus dem Bild- Hauptspeicher MM ausgelesen. Die Pels für den 4 × 4 Block zur linken des aktuellen 4 × 4 Blocks werden entsprechend aus dem ersten Blockzwischenspeicher BM1 ausgelesen (bx–1,y). Beide Leseoperationen lesen vier Pels mit einer Zeile jeweils in einem 4 × 4 Block pro Taktzyklus. Die vier Pels werden in das Parallelfilter F eingelesen, das 8 Pels parallel bearbeitet. Das Ergebnis wird von unten nach oben in den ersten Blockzwischenspeicher BM1 für den zu filternden Block bx–1,y und in den zweiten Blockzwischenspeicher BM2 für den aktuellen Bildblock bx,y geschrieben. Für die Filterung der vertikalen Blockgrenzen sind vier Taktzyklen erforderlich.
  • In einem Schritt c) werden zur Filterung der horizontalen Blockgrenzen die Pels von rechts nach links aus dem ersten Blockzwischenspeicher BM1 geshiftet. Die Daten für den darüber liegenden 4 × 4 Block bx–1,y–1 werden aus dem Pufferspeicher PM zur Abspeicherung einer gesamten Bildblockzeile ausgelesen. Nach dem Filtern werden die Pels in den Pufferspeicher PM eingeschrieben, wobei die in diesem Schritt ausgelesenen Daten überschrieben werden. Zudem werden die resultierenden Pels aus dem Parallelfilter F in den zweiten Blockzwischenspeicher BM2 von rechts eingeschrieben und nach links geshiftet. Gleichzeitig werden die Pels aus dem zweiten Blockzwischenspeicher BM2 in den ersten Blockzwischenspeicher BM1 übertragen und dort von rechts nach links geshiftet. Damit eine Spalte von vier Pels aus dem Pufferspeicher PM in einem Taktzyklus gelesen werden kann, müssen diese Pels in einem 32 Bitspeicherwort organisiert sein. Die Zeit zur Durchführung der Filterung der horizontalen Blockgrenzen beträgt vier Taktzyklen.
  • Die Pels in dem Blockzwischenspeicher BM2 werden in den Hauptspeicher MM zurück geschrieben. Bei diesem Schritt erfolgt ein Shiften von unten nach oben. Damit dient der zweite Blockzwischenspeicher BM2 als Permutationseinheit, die die Bilddaten von der spaltenweisen Datenorganisation des Pufferspeichers PM zur einer zeilenweisen Datenorganisation des Hauptspeichers MM übersetzt. Der Schritt kann mit der Filterung der vertikalen Blockgrenze für den nächsten Bildblock (bx+1,y) parallel durchgeführt werden, so dass keine zusätzlichen Taktzyklen notwendig sind.
  • Die Schritte a) bis c) werden in Raster-Scan-Reihenfolge für alle 4 × 4 Luminanzbildblocks eines Teilbildes (Frame) und dann mit geringfügiger Änderung blockweise für die Chrominanz Cb-Ebene und schließlich für die Chrominanz-Cr-Ebene durchgeführt.
  • Ggf. sind an den Bildgrenzen (oben, rechts) geringfügige Modifikationen des Verfahrens notwendig, wenn dort eine Filterung erfolgen soll, da dort die obere bzw. rechte Kante eines Bildblocks mangels angrenzender Bildblöcke nicht gefiltert wird.
  • Die 3 zeigt eine Tabelle der Schreib- und Lesezyklen und der Filteroperation.
  • Mit bx,y wird ein 4 × 4 Bildblock an einer Bildblockspalte X und einer Bildblockzeile Y im Bild oder Teilbild bezeichnet. Der Zusatz ci bezeichnet den Zugriff auf die i-te Spalte von 4 Pels innerhalb eines Blocks bx,y. Der Zusatz rj bezeichnet den Zusatz auf die j-te Spalte von 4 Pels innerhalb eines Blocks bx,y. Bei der Filterung ist mit ci bzw. ri das Filtern der i-ten Spalte bzw. j-ten Zeile von zwei angrenzenden 4 × 4 Blocks, d. h. von 8 Pels bezeichnet.
  • Es ist deutlich, dass in den Taktzyklen c von 1 bis 4 jeweils eine Zeile r, r1, r2 und r3 eines aktuellen Bildblocks bx,y aus dem Hauptspeicher MM ausgelesen wird. Zudem wird auf den links neben dem aktuellen Bildblock angeordneten Bildblock bx–1,y zugegriffen, der in dem ersten Blockzwischenspeicher BM1 abgelegt ist. Es erfolgt ein Filtern jeweils der Zeilen r0, r1, r2 und r3 des aktuellen Bildblocks bx,y und des links daran angrenzenden Bildblocks bx–1,y. Der aktuelle Bildblock bx,y wird in den zweiten Blockzwischenspeicher und der links daran angrenzende Bildblock bx–1,y in den ersten Blockzwischenspeicher BM1 geschrieben.
  • In den Taktzyklen c von 5 bis 8 erfolgt dann die horizontale Filterung des links an den aktuellen Bildblock bx,y angrenzenden Bildblocks bx–1,y und des darüber liegenden Bildblocks bx–1,y–1, der aus dem Pufferspeicher PM ausgelesen wird. Nach der horizontalen Filterung, die in die Zyklen 5 bis 8 spaltenweise für die Spalten c0, c1, c2 und c3 hintereinander abgearbeitet wird, erfolgt ein Schreiben des aktuellen Bildblocks in den ersten Blockzwischenspeicher BM1 und des Pufferspeichers PM an die Stelle des aus dem Pufferspeicher vorher ausgelesenen Bildblocks bx–1,y–1. Der horizontal an seiner unteren Blockgrenze gefilterte Bildblock bx–1,y–1 wird in den zweiten Blockzwischenspeicher geschrieben und in den Taktzyklen c von 9 bis 12 zeilenweise in den Hauptspeicher MM übertragen. Gleichzeitig können in den Zyklen 9 bis 12 die Zyklen 1 bis 4 für den nächsten Block bx+1,y rechts neben dem aktuellen Bildblock bx,y erfolgen. Weiterhin werden die Bilddaten spaltenweise aus dem zweiten Blockzwischenspeicher BM2 in den ersten Blockzwischenspeicher BM1 übertragen.
  • Damit werden zum Entblocken der linken und oberen Blockgrenzen eines 4 × 4 Blocks, der jeweils 4 Pels lang ist, 8 Zyklen insgesamt benötigt. Pro Makroblock sind damit 16 × 8 = 128 Taktzyklen C erforderlich. Bei der Nutzung eines 8 Pel-Parallelfilters F sind die Lese- Schreibzyklen mit 128 Zyklen pro Makroblock optimal. Die Anzahl von Datenübertragungen beträgt nur 128 und das Filtern ist vollständig mit dem Datentransfer parallelisiert.
  • Zum Füllen und Leeren der Pipeline sind 12 oder weniger Zyklen erforderlich. Im Vergleich zu den Taktzyklen C zur Entblockung eines kompletten Teilbildes (Frame), zum Beispiel VGA mit 1200 Makroblocks und jeweils 16 4 × 4-Bildblöcken und 8 Taktzyklen pro Bildblock: 1200 × 16 × 8 = 153.600 Taktzyklen, ist dies vernachlässigbar.
  • Für den Fall, dass der Pufferspeicher PM mit Taktzyklen verspätet schreibt, ist ein Einzelport-Pufferspeicher PM ausreichend. Hierfür ist allerdings ein 4 × 4 × 8 Bit Puffer erforderlich. Für den Fall, dass der Hauptspeicher MM durch 4 Taktzyklen verzögert schreibt, ist ein Einzelport bzw. Einzelbus ausreichend. Dies erfordert allerdings ein 4 × 4 × 8 Bit Zwischenspeicher.
  • Ein Mikroprozessor, der 4 × 4 Blöcke in vier 32-Bit Register speichert und einen zeilenweisen Zugriff (4 Bits pro Register) und einen spaltenweisen Zugriff (1 Bit) aus jedem der 4 Register ermöglicht, kann das Verfahren direkt implementiert werden.
  • Optional kann das Entblocken auch makroblockweise an Stelle der in der 1 gezeigten zeilenweisen Reihenfolge erfolgen. Hierzu ist allerdings ein zusätzlicher Speicher für einen 4 × 4 Block zur Linken eines Makroblocks und verschachteltes Bearbeiten der Luminanz y- und Chrominanz Cb und Cr-Bildblöcke erforderlich. Ein solches Filter kann in die Decoderpipeline zur Decodierung des Hauptprofil-H.264 Videostroms integriert werden. Die Reihenfolge der makroblockweisen Verarbeitung ist in der 4 dargestellt.
  • Die 5 lässt eine zweite Ausführungsform der erfindungsgemäßen Einrichtung zur Reduktion von Blockartefakten an Blockgrenzen digitaler Bildblöcke erkennen. Dabei wird eine Reduktion der Bearbeitungszeit pro Makroblock auf 64 Zyklen durch Verdopplung der Ressourcen und pipelineartige Organisation erreicht.
  • Das Parallelfilter F ist in ein erstes Parallelfilter FH zur Filterung der horizontalen Blockgrenzen und ein zweites Parallelfilter FV zur Filterung der vertikalen Blockgrenzen aufgeteilt. Weiterhin ist der erste Blockzwischenspeicher BM1 doppelt zur Zwi schenspeicherung von geradzahligen und ungeradzahligen Bildblöcken ausgeführt. Der erste Blockzwischenspeicher BM1 ist in der 6 dargestellt. Hierdurch wird eine Permutationsfunktionalität bereitgestellt. Der zweite Blockzwischenspeicher BM2 ist wie in der ersten Ausführungsform ein einfacher Zwischenspeicher.
  • Die Einrichtung ist wie folgt verschaltet:
    Ein erster Eingang des Vertikal-Parallelfilters FV ist mit dem zweiten Blockzwischenspeicher BM2 für den aktuellen, zu filternden Bildblock und ein zweiter Eingang des Vertikal-Parallelfilters FV zum Lesen von Bildblöcken mit dem Hauptspeicher MM verbunden.
  • Ein erster Ausgang des Vertikal-Parallelfilters FV ist mit dem ersten Blockzwischenspeicher BM1 und ein zweiter Ausgang des Vertikal-Parallelfilters FV mit dem zweiten Blockzwischenspeicher BM2 verbunden.
  • Ein erster Eingang des Horizontal-Parallelfilters FH ist mit dem ersten Blockzwischenspeicher BM1 und ein zweiter Eingang des Horizontal-Parallelfilters FH mit dem Pufferspeicher PM verbunden.
  • Ein erster Ausgang des Horizontal-Parallelfilters FH ist mit dem Pufferspeicher PM und ein zweiter Ausgang des Horizontal-Parallelfilters FH mit dem ersten Blockzwischenspeicher BM1 rückgekoppelt.
  • Ein Ausgang des ersten Blockzwischenspeichers BM1 ist zum Schreiben gefilterter Bildblöcke mit dem Hauptspeicher MM verbunden.
  • Die 6 lässt eine Tabelle mit den Taktzyklen C für das Schreiben und Lesen in und aus dem Hauptspeicher MM, dem Pufferspeicher PM und dem ersten und zweiten Bildspeicher BM1 und BM2 sowie der Filteroperation F erkennen.
  • Die Operation für einen Block mit gerader Spaltenposition x sind ohne Schattierung und die Operation für einen Block B mit ungerader Spaltenposition x + 1 schattiert dargestellt. Es ist erkennbar, dass bei Überlappung der Taktzyklen 9 bis 16 mit den Taktzyklen 1 bis 8 keine Ressourcenkonflikte auftreten, auch wenn die Datenpipeline kontinuierlich mit weiteren Bildblöcken B beschickt wird.
  • In dieser Ausführungsform werden Lese- und Schreibzyklen zum externen Bild-Hauptspeicher MM in jedem Taktzyklus durchgeführt.
  • Ein aktueller Bildblock bx,y wird in den Taktzyklen C von 1 bis 4 zeilenweise aus dem Hauptspeicher MM ausgelesen und zusammen mit dem aus dem zweiten Blockzwischenspeicher BM2 abgelegten, links angrenzenden Bildblock bx–1,y vertikal gefiltert. Der gefilterte aktuelle Bildblock bx,y wird in den zweiten Blockzwischenspeicher BM2 und der links angrenzende gefilterte Bildblock bx–1,y in den Bereich für ungerade Spalten des ersten Blockzwischenspeichers BM1 eingeschrieben.
  • In den Taktzyklen 5 bis 8 erfolgt sowohl eine Filterung der vertikalen Blockgrenzen, als auch der horizontalen Blockgrenzen. Für die Filterung der vertikalen Blockgrenzen werden die Zeilen r0 bis r3 des rechts neben dem aktuellen Block bx,y gelegenen Blocks bx+1,y aus dem Hauptspeicher MM ausgelesen. Für die Filterung der horizontalen Blockgrenzen werden die Spalten c0 bis c3 des Blocks bx–1,y–1 aus dem Pufferspeicher PM und des Blocks bx–1,y aus dem Bereich für ungerade Blöcke (odd) des ersten Blockzwischenspeichers BM1 ausgelesen. Das Ergebnis der vertikalen Filterung wird für den aktuellen Block bx,y in den Bereich für die geraden Bildblöcke (even) des ersten Blockzwischenspeichers BM1 und für den Bildblock bx–1,y–1 in den zweiten Blockzwischenspeicher BM2 geschrieben. Das Ergebnis der horizontalen Filterung wird für den Bildblock bx–1,y–1 in den Bereich für die ungeraden Bildblöcke (odd) des ersten Blockzwischenspeichers BM1 und für den Bildblock bx–1,y in den Pufferspeicher geschrieben.
  • In den Taktzyklen 9 bis 12, die den Zyklen 1 bis 4 des in der Zeile folgenden Bildblocks bx+2,y entsprechen können, wird der Bildblock bx,y–1 aus dem Pufferspeicher spaltenweise für die Spalten c0, c 1, c2 und c3 ausgelesen. Weiterhin wird der aktuelle Bildblock bx,y spaltenweise aus dem Bereich für die geraden Bildblöcke (even) des ersten Blockzwischenspeichers BM1 ausgelesen. Damit erfolgt dann die Filterung der horizontalen Blockgrenzen für diese beiden Bildblöcke. Das Ergebnis wird in den Bereich für die geraden Bildblöcke (even) des ersten Blockzwischenspeichers BM1 und den Pufferspeicher PM eingeschrieben. Weiterhin wird aus dem ungeraden Bereich des ersten Blockzwischenspeichers BM1 der vollständig gefilterte Block bx–1,y–1 zeilenweise ausgelesen und in den Hauptspeicher MM übertragen.
  • In den Taktzyklen 13 bis 16, die den Taktzyklen 5 bis 8 für den Block bx+2,y sowie den Taktzyklen 1 bis 4 für den Block bx+3,y entsprechen können, wird aus dem Bereich für die geraden Blöcke (even) des ersten Blockzwischenspeichers BM1 der vollständig gefilterte Block bx,y–1 zeilenweise ausgelesen und in den Hauptspeicher MM übertragen.

Claims (8)

  1. Verfahren zur Reduktion von Blockartefakten an Blockgrenzen digitaler Bildblöcke (bx,y), die aus einem Feld von Pels bestehen, wobei eine Mehrzahl von Bildblöcken (bx,y) ein Bild (Frame) oder Teilbild (Field) bilden, durch Ausführen von Filteroperationen für jeden Bildblock (bx,y) des Bildes (Frame) oder Teilbildes (Field), indem auf eine Filterung einer vertikalen Blockgrenzenspalte des jeweiligen Bildblocks (bx–1,y) unmittelbar eine Filterung von horizontalen Blockgrenzen eines Bildblocks (bx–1,y) folgt und die Blockgrenzen gleichzeitig sowohl für einen aktuellen Bildblock (bx–1,y) als auch für den an die zu filternde Blockgrenze angrenzenden Bildblock (bx,y bzw. bx–1,y–1) gefiltert werden, gekennzeichnet durch Einlesen jeweils einer gesamten Zeile eines aktuellen Bildblocks (bx–1,y) aus einem Hauptspeicher (MM) und einer gesamten Zeile eines angrenzenden Bildblocks (bx,y) aus einem Bildblockspeicher (BM1) zur gleichzeitigen Filterung der vertikalen Blockgrenzen des aktuellen und des angrenzenden Bildblocks (bx–1,y; bx,y), wobei die Zeilen der Bildblöcke (bx–1,y; bx,y) nacheinander eingelesen und gefiltert werden, anschließendes Einlesen jeweils einer gesamten Spalte eines aktuellen Bildblocks (bx–1,y) und einer gesamten Spalte eines angren zenden Bildblocks (bx–1,y–1) aus Bildblockspeicher (BM1; PM) zur gleichzeitigen Filterung der horizontalen Blockgrenzen des aktuellen und des angrenzenden Bildblocks (bx–1,y; bx–1,y–1), wobei die Spalten der Bildblöcke (bx–1,y; bx–1,y–1) nacheinander eingelesen und gefiltert werden, und Zurückschreiben der Filterergebnisse jeweils nach der Filterung einer Spalte oder Zeile in einen Bildblockspeicher (BM1; BM2) zur Umsortierung spaltenweise organisierter Bilddaten in zeilenweise organisierte Bilddaten durch zeilenweises Schreiben einer gefilterten Spalte des Bildblocks (b) in eine Zeile des Bildblockspeichers (BM1; BM2) zum späteren spaltenweisen Auslesen der Bilddaten aus dem Bildblockspeicher (BM1; BM2).
  2. Verfahren nach Anspruch 1, gekennzeichnet durch a) Ermitteln von Filterparametern (BS, α, β) für jeden Bildblock (bx,y); und b) Filtern der vertikalen Blockgrenzen des aktuell zu filternden Bildblocks (b) mit den Schritten: b1) Auslesen der Pels jeweils einer Zeile des aktuell zu filternden Bildblocks (bx,y) aus einem Hauptspeicher (MM); b2) Auslesen der Pels jeweils einer Zeile des an den aktuellen Bildblock (bx,y) im Makroblock links angrenzenden Bildblocks (bx–1,y) aus einem ersten Blockzwischenspeicher (BM1); b3) Filtern der ausgelesenen Pels sowohl des aktuellen Bildblocks (bx,y) als auch des angrenzenden Bildblocks (bx–1,y) an den Blockgrenzen mit den Filterparametern (BS, α, β); b4) Schreiben des gefilterten aktuellen Bildblocks (bx,y) in einen zweiten Blockzwischenspeicher (BM2) und des gefilterten angrenzenden Bildblocks (bx–1,y) in einen ersten Blockzwischenspeicher (BM1).
  3. Verfahren nach Anspruch 2, gekennzeichnet durch Filtern der horizontalen Blockgrenzen eines aktuell zu filternden Bildblocks (bx–1,y) mit den Schritten: c0) Ermitteln von Filterparametern (BS, α, β) für jeden Bildblock (bx,y) c1) Auslesen der Pels jeweils einer Spalte des aktuell zu filternden Bildblocks (bx–1,y) aus dem ersten Blockzwischenspeicher (BM1); c2) Auslesen der Pels jeweils einer Spalte des an den zu filternden Bildblock (bx–1,y) im Bild oder Teilbild oberhalb angrenzenden Bildblocks (bx–1,y–1) aus einem Pufferspeicher (PM), in dem eine gesamte Bildzeile von Bildblöcken abspeicherbar ist; c3) Filtern der ausgelesenen Pels sowohl des aktuellen Bildblocks (bx–1,y) als auch des angrenzenden Bildblocks (bx–1,y–1) an den Blockgrenzen mit den Filterparametern (BS, α, β), und c4) Schreiben des gefilterten aktuellen Bildblocks (bx–1,y) in den Pufferspeicher (PM) und Schreiben des gefilterten angrenzenden Bildblocks (bx–1,y–1) in den zweiten Blockzwischenspeicher (BM2).
  4. Verfahren nach Anspruch 3, gekennzeichnet durch Übertragen des gefilterten angrenzenden Bildblocks (bx–1,y–1) aus dem zweiten Blockzwischenspeicher (BM2) in den Hauptspeicher (MM).
  5. Verfahren nach einem der vorhergehenden Ansprüche, gekennzeichnet durch Filtern der Bildblöcke (bx–1,y) eines Bildes (Frame) oder Teilbildes (Field) in Raster-Scan-Reihenfolge wobei ein aktueller Bildblock (bx–1,y) für die Filterung der horizontalen Blockgrenzen in der Bildblockzeile unmittelbar unterhalb der Bildblockzeile des vorhergehend vertikal gefilterten Bildblocks (bx–1,y–1) und in der Bildblockspalte unmittelbar links neben der Bildblockspalte des vorhergehend vertikal gefilterten Bildblocks (bx–1,y) liegt und die Bildblöcke (bx–1,y) jeweils einer Zeile hintereinander mit den vertikalen Blockgrenzen und alternierend die Bildblöcke (bx–1,y) jeweils einer darüber liegenden Zeile um einen Bildblock (bx–1,y–1) versetzt mit den horizontalen Blockgrenzen gefiltert werden.
  6. Einrichtung zur Reduktion von Blockartefakten an Blockgrenzen digitaler Bildblöcke (bx,y), die aus einem Feld von Pels bestehen, wobei eine Mehrzahl von Bildblöcken (bx,y) ein Bild (Frame) oder Teilbild (Field) bilden, mit: a) einem Hauptspeicher (MM) für mindestens ein Bild (Frame) oder Teilbild (Field); gekennzeichnet durch b) einen ersten und einen zweiten Blockzwischenspeicher (BM1 und BM2) zum Abspeichern der Daten für jeweils mindestens einen Bildblock (bx,y), wobei der erste Blockzwischenspeicher (BM1) zur Zwischenspeicherung eines Bildblocks (bx,y) mit gerader und eines Bildblocks (bx,y) mit ungerader Spaltennummer ausgebildet ist; c) einen Pufferspeicher (PM) für mindestens eine gesamte Bildzeile von Bildblöcken (bx,y); d) ein Parallelfilter (F) zur gleichzeitigen Filterung der Blockgrenzen für einen aktuellen und einen an die zu filternde Blockgrenze des aktuellen Bildblocks (bx–1,y) angrenzenden Bildblock (bx,y; bx–1,y–1), der in ein Horizontal-Parallelfilter (HF) zur Filterung der horizontalen Blockgrenzen und ein Vertikal-Parallelfilter (VF) zur Filterung der vertikalen Blockgrenzen; e) eine Steuerungseinheit (CTRL), die zur Durchführung des Verfahrens nach einem der vorhergehenden Ansprüche ausgebildet ist, und f) einem Horizontal-Parallelfilter (FH) zur Filterung horizontaler Blockgrenzen, und einem Vertikal-Parallelfilter (FV) zur Filterung vertikaler Blockgrenzen, wobei – ein erster Eingang des Vertikal-Parallelfilters (FV) mit dem zweiten Blockzwischenspeicher (BM2) für den aktuellen Bildblock (bx,y) und ein zweiter Eingang des Vertikal-Parallelfilters (FV) zum Lesen von angrenzenden Bildblöcken (bx,y) mit dem Hauptspeicher (MM) verbunden ist; – ein erster Ausgang des Vertikal-Parallelfilters (FV) mit dem ersten Blockzwischenspeicher (BM1) und eine zweiter Ausgang des Vertikal-Parallelfilters (FV) mit dem zweiten Blockzwischenspeicher (BM2) verbunden ist; – ein erster Eingang des Horizontal-Parallelfilters (FH) mit dem ersten Blockzwischenspeicher (BM1) und ein zweiter Eingang des Horizontal-Parallelfilters (FH) mit dem Pufferspeicher (PM) verbunden ist, – ein erster Ausgang des Horizontal-Parallelfilters (FH) mit dem Pufferspeicher (PM) und ein zweiter Ausgang des Horizontalfilters (FH) mit dem ersten Blockzwischenspeicher (BM1) rückgekoppelt ist, und – ein Ausgang des ersten Blockzwischenspeichers (BM1) zum Schreiben gefilterter Bildblöcke (bx–1,y–1) mit dem Hauptspeicher (MM) verbunden ist.
  7. Einrichtung nach Anspruch 6, dadurch gekennzeichnet, dass der erste und zweite Blockzwischenspeicher (BM1; BM2) Schieberegister-Feldspeicher zum wahlweisen Verschieben von Spalten oder Zeilen mit mehreren Pels in einen dem Bildblock (bx,y) entsprechenden Datenfeld sind.
  8. Einrichtung nach einem der Ansprüche 6 oder 7, gekennzeichnet durch eine mit Parallelfiltern (F, FV, FH) verbundene Einheit zur Berechnung der Filterparameter (BS, α, β) für jeden Bildblock (bx,y).
DE102004049094A 2004-10-08 2004-10-08 Verfahren zur Reduktion von Blockartefakten an Blockgrenzen digitaler Bildblöcke, die aus einem Feld von Pels bestehen, wobei eine Mehrzahl von Bildblöcken ein Bild oder Teilbild bilden Expired - Fee Related DE102004049094B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102004049094A DE102004049094B4 (de) 2004-10-08 2004-10-08 Verfahren zur Reduktion von Blockartefakten an Blockgrenzen digitaler Bildblöcke, die aus einem Feld von Pels bestehen, wobei eine Mehrzahl von Bildblöcken ein Bild oder Teilbild bilden

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102004049094A DE102004049094B4 (de) 2004-10-08 2004-10-08 Verfahren zur Reduktion von Blockartefakten an Blockgrenzen digitaler Bildblöcke, die aus einem Feld von Pels bestehen, wobei eine Mehrzahl von Bildblöcken ein Bild oder Teilbild bilden

Publications (2)

Publication Number Publication Date
DE102004049094A1 DE102004049094A1 (de) 2006-04-20
DE102004049094B4 true DE102004049094B4 (de) 2006-09-28

Family

ID=36120387

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102004049094A Expired - Fee Related DE102004049094B4 (de) 2004-10-08 2004-10-08 Verfahren zur Reduktion von Blockartefakten an Blockgrenzen digitaler Bildblöcke, die aus einem Feld von Pels bestehen, wobei eine Mehrzahl von Bildblöcken ein Bild oder Teilbild bilden

Country Status (1)

Country Link
DE (1) DE102004049094B4 (de)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19604050A1 (de) * 1995-08-17 1997-02-20 Siemens Ag Verfahren zur Bearbeitung von decodierten Bildblöcken eines blockbasierten Verfahrens zur Bildcodierung
WO2001054414A1 (en) * 2000-01-21 2001-07-26 Nokia Corporation A method for filtering digital images, and a filtering device
EP1439711A2 (de) * 2003-01-16 2004-07-21 Samsung Electronics Co., Ltd. Verfahren zur Reduktion von Blockartefakten
US20040184549A1 (en) * 2003-02-27 2004-09-23 Jennifer Webb Video deblocking filter

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19604050A1 (de) * 1995-08-17 1997-02-20 Siemens Ag Verfahren zur Bearbeitung von decodierten Bildblöcken eines blockbasierten Verfahrens zur Bildcodierung
WO2001054414A1 (en) * 2000-01-21 2001-07-26 Nokia Corporation A method for filtering digital images, and a filtering device
EP1439711A2 (de) * 2003-01-16 2004-07-21 Samsung Electronics Co., Ltd. Verfahren zur Reduktion von Blockartefakten
US20040184549A1 (en) * 2003-02-27 2004-09-23 Jennifer Webb Video deblocking filter

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
HUANG, Y. et al: Architecture design for deblocking filter in H.264/JVT/AVC. Proc. Int. Conf. on Multimedia and Expo, 2003, S. 693-696 *
SIMA, M.; ZHOU, Y.; ZHANG, W.: An efficient archi- tecture for adaptive deblocking filter of H.264/AV C video coding. IEEE Trans. on Consumer Electro- nics, Vol. 50, No. 1, Feb. 2004, S. 292-296
SIMA, M.; ZHOU, Y.; ZHANG, W.: An efficient archi-tecture for adaptive deblocking filter of H.264/AVC video coding. IEEE Trans. on Consumer Electro- nics, Vol. 50, No. 1, Feb. 2004, S. 292-296 *

Also Published As

Publication number Publication date
DE102004049094A1 (de) 2006-04-20

Similar Documents

Publication Publication Date Title
DE69032437T2 (de) Bewegungseinschätzer
EP0232417B1 (de) Verfahren zur korrektur von übertragungsfehlern
DE3587155T2 (de) Verfahren und vorrichtung zum verdichten von bilddaten.
DE3202365A1 (de) Datenspeicher mit fensterabtastung
DE2640157A1 (de) Verfahren und anordnung zum redundanzvermindernden codieren von bildern
DE3218815C2 (de)
DE19739266A1 (de) Verfahren und Vorrichtung zum Kodieren binärer Formen
DE3622204C2 (de) Rekursivfilter zur Verminderung von Rauschen in einem Videosignalgemisch
DE3711201A1 (de) Binaerdatenverdichtungs- und -dehnungs-verarbeitungsgeraet
DE4408522C2 (de) Vorrichtung zur Bilddatenverarbeitung und Verfahren zur Verarbeitung von Bilddaten
DE69012021T2 (de) Vorrichtung zur Umwandlung einer Bewegungsinformation in ein Bewegungsdetektionssignal mit gewünschter Zeilenanzahl und Halbbildfrequenz für einen Hochauflösungsfernsehempfänger.
DE102004049094B4 (de) Verfahren zur Reduktion von Blockartefakten an Blockgrenzen digitaler Bildblöcke, die aus einem Feld von Pels bestehen, wobei eine Mehrzahl von Bildblöcken ein Bild oder Teilbild bilden
DE69128075T2 (de) Verbesserungen bei der erzeugung von effekten mit digitalen videosignalen
DE69636139T2 (de) Hierarchische Kodierungs- Dekodierungs-Vorrictung mit Speichervorrichtung für ein digitales Bildsignal
DE4307936C2 (de) Bildprozessor zum Detektieren von Bewegungen
EP1019871B1 (de) Verfahren zur bestimmung von blockvektoren für die bewegungsschätzung
DE3733038C2 (de) Verfahren und Schaltungsanordnung zur Bilddatenreduktion für digitale Fernsehsignale
DE69823600T2 (de) Verfahren und Vorrichtung für skalierbare Formkodierung/dekodierung mittels Scan-Interleaving
DE10140984C1 (de) Verfahren und Vorrichtung zur Filterung von Bilddatenströmen
WO2019057473A1 (de) Verfahren und vorrichtung zum bewerten von bildern, betriebsassistenzverfahren und betriebsvorrichtung
DE19853480C2 (de) Kontexterzeugungsschaltung und zugehöriges Verfahren für kleine Bildschirme
DE69631933T2 (de) Verfahren zur Bewegungsdetektion in einem Videosignal
DE68923830T2 (de) Segmentierungsverfahren von beweglichen elektronischen Bildern in Beziehung auf die Bewegung von Bildblöcken mit Konturerkennungsverfahren.
EP0487595B1 (de) Verfahren zur expansion eines digitalen signals
EP1110378B1 (de) Verfahren zum wahlfreien zugriff auf bildblöcke in videobildern

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee