DE202016008164U1 - Intelligente Sortierung der rekursiven Blockaufteilung für die erweiterte Intra-Prädiktion bei der Videocodierung - Google Patents

Intelligente Sortierung der rekursiven Blockaufteilung für die erweiterte Intra-Prädiktion bei der Videocodierung Download PDF

Info

Publication number
DE202016008164U1
DE202016008164U1 DE202016008164.1U DE202016008164U DE202016008164U1 DE 202016008164 U1 DE202016008164 U1 DE 202016008164U1 DE 202016008164 U DE202016008164 U DE 202016008164U DE 202016008164 U1 DE202016008164 U1 DE 202016008164U1
Authority
DE
Germany
Prior art keywords
blocks
prediction
group
block
coded
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE202016008164.1U
Other languages
English (en)
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of DE202016008164U1 publication Critical patent/DE202016008164U1/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/54Controlling the output signals based on the game progress involving acoustic signals, e.g. for simulating revolutions per minute [RPM] dependent engine sounds in a driving game or reverberation against a virtual wall
    • 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/103Selection of coding mode or of prediction mode
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • 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/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/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • 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/88Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive

Landscapes

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

Abstract

Vorrichtung zum Codieren eines Videostreams, umfassend: einen Speicher; und einen Prozessor, der zum Ausführen der im Speicher abgelegten Anweisungen ausgelegt ist, zum: Codieren einer ersten Gruppe von Blöcken mit der Inter-Prädiktion, um eine erste Gruppe von mit der Inter-Prädiktion codierten Blöcken zu bilden, wobei die erste Gruppe der Blöcke zumindest einige aus einer Vielzahl von Blöcken mit denselben Pixelmaßen im aktuellen Bild des Videostreams umfasst; Decodieren der ersten Gruppe von codierten Blöcken zum Bilden einer ersten Gruppe von decodierten Blöcken; Codieren, mithilfe der Inter-Prädiktion, von Unterblöcken einer zweiten Gruppe von Blöcken, um eine zweite Gruppe von mit der Inter-Prädiktion codierten Blöcken zu bilden, wobei die zweite Gruppe der Blöcke zumindest einige aus einer Vielzahl von Blöcken im aktuellen Bild umfasst, von denen zumindest einer mit der Intra-Prädiktion codiert werden soll; Decodieren der zweiten Gruppe der mit der Inter-Prädiktion codierten Blöcke zum Bilden einer zweiten Gruppe von decodierten Blöcken; Codieren, mithilfe der Intra-Prädiktion, von zumindest einem Unterblock der zweiten Blockgruppe unter Verwendung von Pixelwerten von zumindest einem aus der ersten Gruppe der decodierten Blöcke oder der zweiten Gruppe der mit der Inter-Prädiktion decodierten Blöcke, um eine zweite Gruppe von mit der Intra-Prädiktion codierten Blöcken zu bilden; und Einfügen der ersten Gruppe von codierten Blöcken, wobei die zweite Gruppe der mit der Inter-Prädiktion codierten Blöcke und die zweite Gruppe der mit der Intra-Prädiktion codierten Blöcke in einen codierten Bitstream eingefügt werden.

Description

  • HINTERGRUND
  • Digitale Videos können für eine Vielzahl von Anwendungen genutzt werden, darunter beispielsweise Videokonferenzen, hochauflösende Unterhaltungsprodukte, Werbevideos, oder die gemeinsame Nutzung von selbst produzierten Videos. Digitale Videostreams können Videomaterial als eine Bildfolge oder als Einzelbilder darstellen. Jedes Einzelbild kann eine Anzahl von Blöcken umfassen, die wiederum Informationen enthalten können, die den Wert der Farbe, Helligkeit oder andere Attribute für Pixel beschreiben. Ein digitaler Videostream kann eine große Menge Daten enthalten und erhebliche Teile der Rechen- und Kommunikationsressourcen eines Computergerätes bei der Verarbeitung, Übertragung oder Speicherung der Videodaten binden. Es liegen verschiedene Ansätze zur Reduzierung der Datenmengen in Videostreams als Vorschläge vor, darunter Kompression und andere Codierungstechniken. Unter Schutz gestellt werden und Gegenstand des Gebrauchsmusters sind dabei, entsprechend den Vorschriften des Gebrauchsmustergesetzes, lediglich Vorrichtungen wie in den beigefügten Schutzansprüchen definiert, jedoch keine Verfahren. Soweit nachfolgend in der Beschreibung gegebenenfalls auf Verfahren Bezug genommen wird, dienen diese Bezugnahmen lediglich der beispielhaften Erläuterung der in den beigefügten Schutzansprüchen unter Schutz gestellten Vorrichtung oder Vorrichtungen.
  • KURZDARSTELLUNG
  • Diese Offenbarung bezieht sich allgemein auf die Codierung und Decodierung von Videodaten. Eine Umsetzung eines hier beschriebenen Verfahrens für die Codierung eines Videostreams schließt die folgenden Schritte ein: Identifikation von mehreren Blöcken in einem Bild des Videostreams, Identifikation einer ersten Gruppe von Blöcken in dem Bild für die Codierung mittels Inter-Prädiktion, Identifikation einer zweiten Gruppe von Blöcken in dem Bild, die jeweils aus einer Vielzahl von Unterblöcken bestehen, von denen zumindest jeweils ein Unterblock mittels Inter-Prädiktion und ein Unterblock mittels Intra-Prädiktion codiert wird, sowie die Identifikation einer dritten Gruppe von Blöcken in dem Bild, die mittels der Intra-Prädiktion codiert werden. Das Verfahren schließt auch ein: eine zumindest teilweise Codierung der ersten Blockgruppe mit der Inter-Prädiktion, um eine erste Gruppe von codierten Blöcken zu bilden; die Verwendung eines Prozessors, um aus der ersten Gruppe von codierten Blöcken eine erste Gruppe von decodierten Blöcken zu bilden, zumindest partiell codiert mit der Inter-Prädiktion, damit zumindest ein Block aus der zweiten Blockgruppe eine zweite Gruppe von mit der Inter-Prädiktion codierten Blöcken bildet; zumindest partielle Decodierung der zweiten Gruppe von mit der Inter-Prädiktion codierten Blöcken durch den Prozessor zur Bildung einer zweiten Gruppe von mit der Inter-Prädiktion decodierten Blöcken; Codierung mittels der Intra-Prädiktion von zumindest einem Block aus der zweiten Blockgruppe unter Verwendung von mindestens einem Block aus der ersten Gruppe von decodierten Blöcken oder zumindest einem Block aus der zweiten Gruppe der mit Inter-Prädiktion decodierten Blöcke, um eine zweite Gruppe von mit Intra-Prädiktion codierten Blöcken zu formen, bei der zumindest ein Block aus der zweiten Blockgruppe mit Intra-Prädiktion codiert werden sollte; Codierung anhand der Intra-Prädiktion eine dritte Gruppe von Blöcken unter Verwendung von zumindest einem Block aus der ersten Gruppe der decodierten Blöcke oder zumindest einem Block aus der zweiten Gruppe der mit der Inter-Prädiktion codierten Blöcke; die zweite Gruppe der mit der Intra-Prädiktion codierten Blöcke und die dritte Gruppe von codierten Blöcken werden zu einem Videostream codiert.
  • Zu einer Umsetzung eines Verfahrens für die Decodierung eines Video-Bitstreams, das hier beschrieben wird, gehören die Identifikation einer ersten Gruppe von codierten Blöcken in einem Einzelbild des Videostreams, die mit der Inter-Prädiktion codiert wurden, die Identifikation einer zweiten Gruppe aus codierten Blöcken, bei der jeder Block aus einer Vielzahl von Unterblöcken besteht, von denen zumindest ein Block durch Inter-Prädiktion und ein Block durch Intra-Prädiktion codiert wurde und die Identifikation einer dritten Gruppe von codierten Blöcken, die alle durch die Intra-Prädiktion codiert wurden. Das Verfahren beinhaltet zudem: das Decodieren der ersten Gruppe von codierten Blöcken mit einem Prozessor unter Verwendung der Inter-Prädiktion zum Bilden einer ersten Gruppe von decodierten Blöcken; das Verwenden eines Prozessors für die Inter-Prädiktion von zumindest einem Block aus der zweiten Gruppe von codierten Blöcken, um eine zweite Gruppe von mit der Inter-Prädiktion decodierten Blöcken zu bilden, von denen zumindest ein Block aus der zweiten Gruppe von codierten Blöcken durch Inter-Prädiktion codiert wurde; das Decodieren durch Intra-Prädiktion von zumindest einem Block aus der zweiten Gruppe von codierten Blöcken unter Verwendung von zumindest einem Block aus der ersten Gruppe von decodierten Blöcken oder einem Block aus der zweiten Gruppe von mit der Inter-Prädiktion decodierten Blöcken, um eine zweite Gruppe von mit der Intra-Prädiktion decodierten Blöcken zu bilden, wobei zumindest ein Block aus der zweiten Gruppe der codierten Blöcke durch Intra-Prädiktion codiert wurde; das Decodieren durch Intra-Prädiktion der dritten Gruppe von codierten Blöcken unter Verwendung von zumindest einem Block der ersten Gruppe decodierter Blöcke oder einem Block der zweiten Gruppe von mit der Inter-Prädiktion decodierten Blöcken, um eine dritte Gruppe von decodierten Blöcken zu bilden.
  • Eine andere Umsetzung der hier enthaltenen Lehren ist ein Gerät zur Codierung eines Videostreams mit einem Prozessor und Speicher. Der Prozessor ist dafür ausgelegt, im Speicher abgelegte Anweisungen auszuführen, um in einem Bild des Videostreams mehrere Blöcke zu identifizieren, aus der Vielzahl der Blöcke eine erste Gruppe von Blöcken für die Codierung durch die Inter-Prädiktion zu identifizieren, aus der Vielzahl der Blöcke eine zweite Gruppe von Blöcken zu identifizieren, wobei jeder Block aus einer Vielzahl von Unterblöcken besteht, von denen zumindest ein Unterblock mit der Inter-Prädiktion und zumindest ein Unterblock mit der Intra-Prädiktion codiert wird, sowie aus der Vielzahl der Blöcke eine dritte Gruppe von Blöcken zu identifizieren, die durch Intra-Prädiktion codiert werden sollen. Die Konfiguration des Prozessors ermöglicht weiterhin: eine zumindest partielle Codierung der ersten Blockgruppe unter Verwendung der Inter-Prädiktion, um eine erste Gruppe von codierten Blöcken zu bilden; die Verwendung eines Prozessors, um aus der ersten Gruppe von codierten Blöcken eine erste Gruppe von decodierten Blöcken zu bilden, zumindest partiell codiert unter Verwendung der Inter-Prädiktion, damit zumindest ein Block aus der zweiten Blockgruppe eine zweite Gruppe von mit der Inter-Prädiktion codierten Blöcken bildet; zumindest partielle Decodierung der zweiten Gruppe von mit der Inter-Prädiktion codierten Blöcken durch den Prozessor zur Bildung einer zweiten Gruppe von mit der Inter-Prädiktion decodierten Blöcken; Codierung mittels der Intra-Prädiktion von zumindest einem Block aus der zweiten Blockgruppe unter Verwendung von mindestens einem Block aus der ersten Gruppe von decodierten Blöcken oder zumindest einem Block aus der zweiten Gruppe der mit Inter-Prädiktion decodierten Blöcke, um eine zweite Gruppe von mit Intra-Prädiktion codierten Blöcken zu formen, bei der zumindest ein Block aus der zweiten Blockgruppe mit Intra-Prädiktion codiert werden sollte; Codierung anhand der Intra-Prädiktion eine dritte Gruppe von Blöcken unter Verwendung von zumindest einem Block aus der ersten Gruppe der decodierten Blöcke oder zumindest einem Block aus der zweiten Gruppe von mit der Inter-Prädiktion codierten Blöcken; die zweite Gruppe von mit der Intra-Prädiktion codierten Blöcken und die dritte Gruppe von codierten Blöcken wird zu einem Videostream codiert.
  • Die Erfindung stellt weiterhin ein entsprechendes Gerät für die Decodierung eines Videostreams zur Verfügung sowie einen oder mehrere maschinell lesbare Datenträger mit Programmcode zur Ausführung der beschriebenen Verfahren, oder zur Implementierung der beschriebenen Vorrichtung bei Umsetzung mit einem geeigneten Computer
  • Variationen dieser und anderer Aspekte und Umsetzungen werden nachfolgend ausführlicher beschrieben.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die folgende Beschreibung nimmt Bezug auf die beigefügten Zeichnungen, falls nicht anders angegeben, gelten gleiche Referenznummern für gleiche Teile in verschiedenen Ansichten.
  • 1 zeigt eine Prinzipskizze eines Videocodierungs- und Decodierungssystems.
  • 2 ist ein Blockdiagramm eines Rechners, mit dessen Hilfe eine Sende- oder Empfangsstation umgesetzt werden kann.
  • 3 ist ein Diagramm eines Videostreams, der codiert und anschließend decodiert werden soll.
  • 4 ist ein Blockdiagramm eines Codierers im Einklang mit einem Aspekt dieser Offenbarung.
  • 5 ist ein Blockdiagramm eines Decodierers im Einklang mit einem anderen Aspekt dieser Offenbarung.
  • 6 ist ein Flussdiagramm eines Prozesses für die Codierung eines Videostreams im Einklang mit einem Aspekt dieser Offenbarung.
  • 7 ist ein Flussdiagramm eines Prozesses für die Decodierung eines Videostreams im Einklang mit einem anderen Aspekt dieser Offenbarung.
  • 8 ist ein Diagramm der rekursiv aufgeteilten Blöcke, die im Einklang mit Aspekten dieser Offenbarung codiert oder decodiert werden sollen.
  • DETAILLIERTE BESCHREIBUNG
  • Digitale Videos können für eine Vielzahl von Anwendungen genutzt werden, darunter beispielsweise geschäftliche Online-Meetings, Videokonferenzen, hochauflösende Videounterhaltung, Werbevideos, oder die gemeinsame Nutzung von selbst produzierten Videos. Durch Bild- und Videokompression kann die Leistung bei der Datenübertragung und Speicherung von digitalen Videos verbessert werden. Kompressionstechniken können verwendet werden, um das Volumen der Informationen für die Übertragung oder Speicherung zu verringern. Internetgestützte Multimedia-Dienste, wie z. B. Webseiten für Videostreaming können auf gute Kompressionstechniken setzen, um die Qualität des Services bei gleichzeitiger Kostenkontrolle für Bandbreite und Bereitstellung der Inhalte zu verbessern.
  • Die Kompressionsmethoden zur Codierung von Videostreams können die Aufteilung der einzelnen Bilder in Blöcke und die Erzeugung des Bitstreams der digitalen Videoausgabe mittels einer oder mehrerer Techniken zur Verminderung der Informationsmenge in der Ausgabe einschließen. Der empfangene Bitstream kann decodiert werden, um die Blöcke und die Ausgangsbilder aus den beschränkten Informationen zu rekonstruieren. Die Codierung eines Videostreams, oder eines Teiles von diesem, wie ein Einzelbild oder ein Block, kann zeitliche und räumliche Ähnlichkeiten im Videostream zur Steigerung der Codierleistung verwenden. Z. B. kann ein aktueller Block eines Videostreams auf der Basis eines zuvor codierten Blocks in einem vorher codierten Bild des Videostreams codiert werden, indem Bewegungs- und Farbinformationen für den aktuellen Block aufgrund der Daten des zuvor codierten Blocks vorausgesagt werden, dann wird die Differenz (Restwert) zwischen den vorausgesagten Werten und dem aktuellen Block festgestellt. Auf diese Art müssen nur der Restwert und die für seine Erzeugung verwendeten Parameter dem Bitstream hinzugefügt werden und nicht der komplette aktuelle Block. Diese Technik kann als Inter-Prädiktion bezeichnet werden.
  • Bei der Videokompression kann ein blockgestütztes Codier-/Decodiersystem (Codec) ein Bild zunächst in Blöcke aufteilen. Der Codierer kann die Blöcke im Bild scannen (z. B. in einer gerasterten Scan-Reihenfolge) und aufgrund von zuvor verarbeiteten Blöcken für jeden Block die beste Prädiktionsmethode auswählen. Der Codierer kann den vorausgesagten Block vom Block subtrahieren und dann den Prädiktionrestwert codieren. Aspekte dieser Offenbarung beschreiben ein neues Codierungverfahren, das einen Extradurchlauf der Blöcke vor der Prädiktionscodierung durchführt, um die Blöcke entsprechend der verwendeten Prädiktionsmethode neu zu ordnen. Durch eine solche Neuanordnung erlaubt der Codierer eine geänderte Datenbeziehung der Blöcke im Prozess der Codierung/Decodierung, indem die später zu codierenden Blöcke eines Bildes alle rekonstruierten Pixelinformationen der zuvor codierten Blöcke verwenden können und die Qualität der Intra-Prädiktion und der gesamten Codierungsleistung verbessert wird. Ein Dekoder kann die gleiche Neuordnung der Blöcke bei der Decodierung durchführen und sich dabei auf Bits im codierten Video-Bitstream stützen, die anzeigen, welche Blöcke durch Inter-Prädiktion und welche durch Intra-Prädiktion zu decodieren sind.
  • Die Einteilung von Blöcken in drei Gruppen für die Codierung/Decodierung kann den Gebrauch von Modi der Intra-Prädiktion ermöglichen, bei denen Pixeldaten von mehr als zwei Seiten eines Blockes verwendet werden können, um einen Prädiktionsblock zu bilden. Bei einigen Modi der Intra-Prädiktion, bei denen beispielsweise Blöcke eines Bildes in einer Raster-Scan-Reihenfolge verarbeitet werden, können die Modi der Intra-Prädiktion werden diese auf solche beschränkt, die mit Pixeldaten von Blöcken arbeiten, die vor dem in Raster-Scan-Reihenfolge abzuarbeitenden Block liegen. Die Erkennung von Blöcken, die durch Inter-Prädiktion codiert/decodiert werden und die zumindest partielle Codierung dieser Blöcke ermöglicht in einigen Fällen die Verwendung von Pixeldaten von Blöcken auf allen vier Seiten des in der Prädiktion verwendeten Blocks, was die Performanz des Prozesses bei der Codierung/Decodierung steigert.
  • Zuerst werden nachfolgend Szenarien besprochen, in denen Aspekte dieser Offenbarung umgesetzt werden können.
  • 1 ist eine Prinzipskizze eines Codierungs-/Decodierungssystems 100, in dem Aspekte dieser Offenbarung umgesetzt sein können. Eine Sendestation 102 kann z. B. ein Computer sein, dessen Hardware der Beschreibung in 2 gleicht. Allerdings sind auch andere geeignete Implementierungen der Sendestation 102 möglich. So kann die Arbeit der Sendestation 102 auf mehrere Geräte verteilt sein.
  • Über ein Netz 104 können die Sendestation 102 und die Empfangsstation 106 bei der Codierung/Decodierung des Videostreams miteinander verbunden sein. Genauer gesagt wird der Videostream in der Sendestation 102 codiert und der codierte Videostream in der Empfangsstation 106 decodiert. Das Netz 104 kann z. B. das Internet sein. Das Netz 104 kann auch ein lokales Netz (LAN), ein Weitverkehrsnetz (WAN), ein virtuelles privates Netz (VPN), ein Mobilfunknetzwerk oder ein anderes Medium zur Übertragung des Videostreams von der Sendestation 102 zur Empfangsstation 106 sein.
  • Die Empfangsstation 106 in einem Beispiel kann ein Computer sein, dessen Hardware der Beschreibung in 2 gleicht. Allerdings sind auch andere geeignete Implementierungen der Empfangsstation 106 möglich. So kann die Arbeit der Empfangsstation 106 auf mehrere Geräte verteilt sein.
  • Auch andere Implementierungen des Codierungs-/Decodierungssystems 100 sind möglich. Z. B. kann eine Implementierung auf das Netz 104 verzichten. In einer Implementierung kann ein Videostream codiert und für die spätere Übertragung von der Empfangsstation 106, oder einem anderen, mit Speicher ausgestatteten Gerät gespeichert werden. Die Empfangsstation 106 erhält den codierten Videostream (z. B. über das Netz 104, einen Datenbus und/oder irgendeinen Kommunikationsweg) und speichert ihn für die spätere Decodierung. Bei der Übertragung des codierten Videos über das Netz 104 kann ein Echtzeit-Transportprotokoll (RTP) verwendet werden. In einer weiteren Ausführung kann ein anderes Transportprotokoll als RTP verwendet werden, z. B. ein HTTP-basiertes Protokoll für das Streamen von Videos. Dem Codierungs-/Decodierungssystem 100 können weitere Komponenten hinzugefügt werden. So können beispielsweise ein Display oder eine Videokamera an der Sendestation 102 eingesetzt werden, um den zu codierenden Videostream aufzunehmen.
  • 2 ist ein Blockdiagramm eines Computergeräts 200, mit dessen Hilfe eine Sende- oder Empfangsstation umgesetzt werden können. Der Rechner 200 kann z. B. die Sendestation 102 und/oder die Empfangsstation 106 aus 1 umfassen. Der Rechner 200 kann die Form eines Rechnersystems mit mehreren Rechnern oder die Form eines einzigen Rechners haben, wie z. B. ein Mobiltelefon, ein Tablet-Computer, ein Laptop-Computer, ein Notebook-Computer, ein Desktop-Computer und dergleichen.
  • Eine CPU 202 im Rechner 200 kann eine zentrale Prozessoreinheit sein. Alternativ kann es sich bei der CPU 202 um einen beliebigen anderen Apparat oder mehrere Apparate handeln, die bestehende oder zu einem späteren Zeitpunkt erarbeitete Daten ändern oder verarbeiten können. Obwohl die offenbarten Ausführungen mit einem einzigen Prozessor, z. B. mit der CPU 202, vorgenommen werden können, kann durch Verwendung von mehr als einem Prozessor eine höhere Geschwindigkeit und Effizienz erzielt werden.
  • In einer Ausführung kann der Speicher 204 im Rechner 200 ein Festwertspeicher (ROM) oder ein Speicher mit wahlfreiem Zugriff (RAM) sein. Als Speicher 204 kann jede geeignete Art von nichtflüchtigem Speicher verwendet werden. Der Speicher 204 kann Code und Daten 206 umfassen, auf welche die CPU 202 über einen Bus 212 zugreift. Der Speicher 204 kann ferner ein Betriebssystem 208 und Anwendungsprogramme 210 enthalten, unter den Anwendungsprogrammen 210 muss mindestens ein Programm sein, mit dem die CPU 202 die hier beschriebenen Verfahren ausführen kann. Zum Beispiel können zu den Anwendungsprogrammen 210 die Anwendungen 1 bis N gehören, die ihrerseits eine Anwendung zur Codierung/Decodierung eines Videostreams enthalten, die ein hier beschriebenes Verfahren anwendet. Der Rechner 200 kann auch einen sekundären Speicher 214 enthalten, der z. B. eine Speicherkarte sein kann, die in einem Mobilgerät verwendet wird.
  • Da Videokommunikationssitzungen eine beträchtliche Datenmenge enthalten können, ist es möglich, diese Daten im Ganzen oder zum Teil auf einem sekundären Speicher 214 zu speichern und bei Bedarf zur Verarbeitung in den Speicher 204 zu laden.
  • Der Rechner 200 kann auch ein oder mehrere Ausgabegerät(e) haben, z. B. die Anzeige 218. Die Anzeige 218 kann in einem Beispiel eine berührungsempfindliche Anzeige sein, die eine Anzeige mit einem berührungsempfindlichen Element kombiniert, das Berührungseingaben erfassen kann. Die Anzeige 218 kann über den Bus 212 mit der CPU 202 verbunden sein und die Aufgabe haben, den in der Empfangsstation 106 decodierten Videostream zu zeigen. Andere Ausgabevorrichtungen, die es einem Benutzer ermöglichen, den Rechner 200 zu programmieren oder anderweitig zu verwenden, können zusätzlich oder alternativ zu der Anzeige 218 angeboten werden. Falls die Ausgabevorrichtung eine Anzeige aufweist oder enthält, kann sie auf verschiedene Arten umgesetzt werden, u. a. auch durch eine Flüssigkristallanzeige (LCD), eine Kathodenstrahlröhre (CRT) oder eine Leuchtdiodenanzeige (LED), wie z. B. eine organische LED-Anzeige (OLED).
  • Der Rechner 200 kann auch eine Bildaufnahmevorrichtung 220 haben, oder in Verbindung zu einer stehen, z. B. eine Kamera oder ein anderes existierendes oder noch zu entwickelndes Bilderfassungsgerät 220, das ein Bild erfassen kann, z. B. das Bild eines Benutzers bei der Bedienung des Rechners 200. Die Bildaufnahmevorrichtung 220 kann so positioniert sein, dass diese auf den Benutzer gerichtet ist, der den Rechner 200 bedient. In einem Beispiel können die Position und die optische Achse der Bildaufnahmevorrichtung 220 so konfiguriert sein, dass das Sichtfeld einen Bereich umfasst, der direkt an die Anzeige 218 angrenzt und von dem aus die Anzeige 218 sichtbar ist.
  • Der Rechner 200 kann auch eine Tonaufnahmevorrichtung 222 haben, oder in Verbindung zu einer stehen, wie z. B. ein Mikrofon oder eine andere existierende oder noch zu entwickelnde Vorrichtung für Tonaufnahmen, die Töne in der Nähe des Rechners 200 aufnehmen kann. Die Tonaufnahmevorrichtung 222 kann so positioniert werden, dass sie auf den Rechner 200 bedienenden Benutzer gerichtet ist und so konfiguriert werden kann, dass sie die vom Benutzer erzeugten Töne, z. B. Sprach- oder sonstige Äußerungen, empfängt, während der Benutzer den Rechner 200 bedient.
  • Obwohl 2 die CPU 202 und den Speicher 204 des Rechners 200 als in einer kompakten Einheit integriert dargestellt, können auch andere Konfigurationen verwendet werden. Die Operationen der CPU 202 können auf mehrere Geräte verteilt werden (dabei hat jedes Gerät einen oder mehrere Prozessor(en)), die direkt oder über ein lokales oder sonstiges Netzwerk miteinander verbunden sein können. Der Speicher 204 kann auf mehrere Geräte verteilt werden, wie etwa netzwerkbasierte Speicher oder Speicher in verschiedenen Maschinen, die die Operationen der Rechners 200 ausführen. Obgleich hier ein einzelner Bus 212 dargestellt, kann der Rechner 200 über mehrere Busse verfügen. Des Weiteren kann der sekundäre Speicher 214 direkt mit anderen Komponenten des Rechners 200 verbunden sein oder es kann auf diesen über eine Netzwerkverbindung zugegriffen werden. Dieser kann aus einer einzigen integrierten Einheit, wie z. B. einer Speicherkarte, oder aus mehreren Einheiten, wie z. B. mehreren Speicherkarten, bestehen. Der Rechner 200 kann demnach in einer Vielzahl verschiedener Konfigurationen verwirklicht werden.
  • 3 ist ein Diagramm mit einem Beispiel für einen Videostream 300, der codiert und decodiert werden soll. Der Videostream 300 (hier auch als Videodaten bezeichnet) enthält eine Videosequenz 302. Auf der nächsten Stufe schließt die Videosequenz 302 eine Reihe von angrenzenden Bildern 304 ein. Während drei Einzelbilder als benachbarte Einzelbilder 304 dargestellt sind, kann die Videosequenz 302 eine beliebige Anzahl benachbarter Einzelbilder einschließen. Die angrenzenden Bilder 304 können weiter in einzelne Bilder unterteilt werden, z. B. ein Einzelbild 306. Jedes Bild 306 kann eine Szene mit einem oder mehreren Objekt(en) erfassen, wie Menschen, Hintergrundelemente, Graphiken, Text, eine schwarze Wand, oder alle möglichen anderen Informationen.
  • Das Bild 306 kann in Segmente 308 unterteilt werden. Unabhängig davon, ob das Einzelbild 306 in Segmente 308 aufgeteilt wird oder nicht, kann das Einzelbild 306 weiter in Blockgruppen 310 unterteilt werden, die Daten einer 8×8 Pixelgruppe in Bild 306 im Einklang mit einigen der nachfolgend beschriebenen Beispiele enthalten können. Die Blöcke 310 können auch eine beliebige andere geeignete Größe der Pixelgruppen haben, 16×8, 8×16, 16×16, 4×4 o. ä. und können in Abhängigkeit von der Anwendung weiter in kleinere Blöcke unterteilt werden. Falls nicht anders vermerkt, kann die Bezeichnung „Block” einen Makroblock einschließen, einen Unterblock (d. h. ein Teil eines (Makro)Blocks), ein Segment, einen Abschnitt, einen Restblock oder irgendein anderes Teil eines Bildes. Ein Einzelbild, ein Block, ein Pixel oder eine Kombination davon kann eine Anzeigeinformation, wie zum Beispiel eine Leuchtdichteinformation, eine Chrominanzinformation oder eine andere Information beinhalten, die verwendet werden kann, um den Videostrom oder einen Teil davon zu speichern, zu modifizieren, zu kommunizieren oder darzustellen. Die Blöcke 310 können als Datenebenen angeordnet werden. Z. B. kann ein entsprechender Block 310 auf jeder Datenebene jeweils Daten für Helligkeit und Farbton der Pixel des Blockes 310 enthalten.
  • 4 ist ein Blockdiagramm eines Codierers 400 gemäß den Implementierungen dieser Offenbarung. Wie zuvor beschrieben, kann der Codierer 400 in der Sendestation 102 umgesetzt werden, beispielsweise durch die Bereitstellung eines im Speicher 204 abgelegten Computerprogramms. Das Computerprogramm kann Maschinenbefehle enthalten, die bei Ausführung durch einen Prozessor, wie der CPU 202, die Sendestation 102 dazu veranlassen, Videodaten zu codieren, wie in 4 beschrieben. Der Codierer 400 kann auch in Form von spezialisierter Hardware umgesetzt werden, die beispielsweise Bestandteil der Sendestation 102 sein kann. Der Codierer 400 lässt die verschiedenen Funktionen, um aus der Eingabe des Videostreams 300 einen codierten oder komprimierten Bitstream 420 zu produzieren auf den folgenden Stufen in einer Vorwärtsbewegung (anhand der durchgehenden Linien dargestellt) ablaufen: die Stufe der Inter-/Intra-Prädiktion 402, eine Umwandlungsstufe 404, eine Quantisierungsstufe 406 und eine Entropiecodierungsstufe 408. In einigen Implementierungen kann der Codierer 400 einen Rekonstruktionspfad enthalten (durch gestrichelte Linien dargestellt), um ein Bild für die Codierung von nachfolgenden Blöcken zu rekonstruieren. In 4 erfüllt der Codierer 400 laufen die verschiedenen Funktionen des Rekonstruktionspfades in folgenden Stufen ab: eine Dequantisierungsstufe 410, eine Stufe der inversen Umformung 412, eine Rekonstruktionsstufe 414 und eine Loop-Filter-Stufe 416. Andere strukturelle Abwandlungen des Codierers 400 können ebenfalls für die Codierung des Videostreams 300 zum Einsatz kommen.
  • Wenn der Videostream 300 für die Codierung bereitgestellt wird, kann jedes Bild 306 des Videostreams 300 in Einheiten von Blöcken 310 verarbeitet werden. Auf der Stufe der Inter-/Intra-Prädiktion 402 kann ein Block entweder durch die Intraframe-Prädiktion (z. B. ein Einzelbild) oder die Interframe-Prädiktion (z. B. von Bild zu Bild) codiert werden. In jedem Fall kann ein Prädiktionsblock gebildet werden. Der Prädiktionsblock wird dann vom Block subtrahiert, um einen Restblock zu produzieren (auch als Restbestand bezeichnet).
  • die Intraframe-Prädiktion (auch als Intra-Prädiktion bezeichnet) und die Interframe-Prädiktion (auch als Inter-Prädiktion bezeichnet) sind die Techniken, die bei aktuellen Methoden der Videokompression verwendet werden. Im Fall der Intraframe-Prädiktion kann ein Prädiktionsblock aus umliegenden, zuvor codierten und rekonstruierten Blöcken des aktuellen Bildes geformt werden. Im Fall der Interframe-Prädiktion kann ein Prädiktionsblock aus einem oder mehreren der Blöcke von zuvor gebildeten Referenzbildern gebildet werden, wie dem letzten Bild (d. h. das Bild direkt vor dem aktuellen Bild), dem goldenen Bild oder dem konstruierten oder alternativen Referenzbild.
  • Der Prädiktionsblock wird dann vom aktuellen Block subtrahiert. Die Differenz, bzw. der Restbestand, wird dann codiert und an die Decodierer übertragen. Codecs für Bilder oder Video können viele unterschiedliche Intra- und Inter-Prädiktionsmodi unterstützen; ein Block kann einen Prädiktionsmodus nutzen, um einen Prädiktionsblock zu erhalten, der dem Block am ähnlichsten ist, um die im Restbestand zu codierenden Informationen für die Rekonstruktion des Blocks zu minimieren. Der Prädiktionsmodus für einen Block von Umwandlungs-Koeffizienten kann ebenfalls codiert werden und übertragen werden, damit ein Decodierer den gleichen Prädiktionsmodus verwenden kann, um im Prozess der Decodierung und Rekonstruktion Prädiktionsblöcke zu bilden.
  • Danach, weiterhin mit Bezug auf 4, kann der Prädiktionsblock vom aktuellen Block auf der Stufe der Intra-/Inter-Prädiktion 402 subtrahiert werden, um einen Restblock zu erzeugen (auch Restbestand genannt). In der Umwandlungsstufe 404 wird der Restbestand in einen Block von Umwandlungs-Koeffizienten transformiert, beispielsweise im Frequenzbereich. Beispiele für blockbasierte Transformationen sind die Karhunen-Loève-Transformation (KLT), die diskrete Kosinus-Transformation (DCT), die Walsh-Hadamard-Transformation (WHT), die Singularwertzerlegungs-Transformation (SVD) und die asymmetrische diskrete Sinus-Transformation (ADST). In einem Beispiel wandelt die DCT einen Block in den Frequenzbereich um. Im Fall von DCT stützen sich die Werte der Umwandlungs-Koeffizienten auf die räumliche Frequenz, dabei ist die tiefste Frequenz (z. B. DC) der Koeffizient in der linken oberen Ecke der Matrix und der höchste Frequenzkoeffizient unten rechts in der Matrix.
  • Die Quantisierungsstufe 406 wandelt die Umwandlungs-Koeffizienten in diskrete Quantenwerte um, die einen Quantisierungswert oder Quantisierungspegel verwenden und als quantisierte Umwandlungs-Koeffizienten bezeichnet werden. Die quantisierten Umwandlungs-Koeffizienten werden dann in der Codierungsstufe 408 entropiecodiert. Die entropiecodierten Koeffizienten werden dann mit anderen Informationen zum Decodieren des Blocks, zu denen die Art der verwendeten Prädiktion, Bewegungsvektoren und Quantisierungswerte gehören können, als komprimierter Bitstrom 420 ausgegeben. Der komprimierte Bitstrom 420 kann mit verschiedenen Techniken, wie VLC (variable Längencodierung) oder arithmetischer Codierung formatiert werden. Der komprimierte Bitstream 420 kann auch als codierter Videostream bezeichnet werden, die Wörter werden hier austauschbar genutzt.
  • Der Rekonstruktionspfad in 4 (durch punktierte Linien dargestellt) kann verwendet werden, um Codierer 400 und einen Decodierer 500 (nachfolgend beschrieben) bei der Decodierung des komprimierten Bitstreams 420 mit den gleichen Referenzbildern zu versorgen. Der Rekonstruktionspfad kann Funktionen ausführen, die denen im nachstehend erläuterten Decodierungsprozess gleichen, darunter die Dequantisierung der quantisierten Umwandlungs-Koeffizienten in der Dequantisierungsstufe 410 zur Schaffung von dequantisierten Umwandlungs-Koeffizienten und deren anschließende inverse Transformation in der Stufe der inversen Transformation 412 zur Schaffung eines derivativen Restblocks (d. h. eines derivativen Restbestands). In der Rekonstruktionsstufe 414 kann der Prädiktionsblock aus der Stufe der Intra-/Inter-Prädiktion 402 zum derivativen Restblock hinzugefügt werden, um einen rekonstruierten Block zu erzeugen. Die Loop-Filter-Stufe 416 kann bei einigen Umsetzungen eingesetzt werden, um bei dem rekonstruierten Block Verzerrungen zu reduzieren, wie beispielsweise zum Beispiel Blockartefakte.
  • Andere Variationen des Codierers 400 können zur Codierung des komprimierten Bitstreams 420 verwendet werden. So kann beispielsweise ein Codierer 400 ohne Umwandlungsbasis den Restblock direkt ohne die Umwandlungsstufe 404 quantisieren. In einem Codierer 400 können Quantisierungsstufe 406 und Dequantisierungsstufe 410 in einer Stufe kombiniert werden.
  • 5 ist ein Blockdiagramm eines Decodierers 500 gemäß den Implementierungen dieser Offenbarung. Der Decodierer 500 kann Bestandteil der Empfangsstation 106 sein, beispielsweise durch die Bereitstellung eines im Speicher 204 abgelegten Computerprogramms. Das Computerprogramm kann Maschinenbefehle enthalten, die bei Ausführung durch einen Prozessor, wie die CPU 202, die Empfangsstation 106 dazu veranlassen, Videodaten zu decodieren, wie in 5 beschrieben wird. Der Decodierer 500 kann auch in Form von Hardware oder Firmware z. B. in der Sendestation 102 oder der Empfangsstation 106 umgesetzt werden.
  • Der Decodierer 500 hat, ähnlich wie der Rekonstruktionspfad des zuvor beschriebenen Codierers 400, in einem Beispiel die folgenden Stufen zur Ausführung der verschiedenen Funktionen bei der Erzeugung eines Ausgangsvideostroms 516 aus dem komprimierten Bitstrom 420: Eine Stufe der Entropiedecodierung 502, eine Dequantisierungsstufe 504, eine Stufe der inversen Transformation 506, eine Intra-/Inter-Prädiktionsstufe 508, eine Rekonstruktionsstufe 510, eine Loop-Filter-Stufe 512 und eine Deblocking-Filterstufe 514. Andere strukturelle Variationen des Decodierers 500 können verwendet werden, um den komprimierten Bitstream 420 zu decodieren.
  • Wenn der komprimierte Bitstream 420 für die Decodierung bereitgestellt wird, können die Datenelemente des komprimierten Bitstreams 420 in der Stufe der Entropiedecodierung 502 zur Erzeugung eines Satzes quantisierter Umwandlungs-Koeffizienten decodiert werden (beispielsweise durch arithmetische Codierung). In der Dequantisierungsstufe 504 werden die quantisierten Umwandlungs-Koeffizienten dequantisiert und in der Stufe der inversen Transformation 506 werden die dequantisierten Umwandlungs-Koeffizienten invers transformiert, um einen derivativen Restbestand zu erzeugen, der identisch mit dem aus der Stufe der inversen Transformation 412 des Codierers 400 stammenden Restbestand sein kann. Unter Verwendung von aus dem komprimierten Bitstream 420 decodierten Headerinformationen kann der Decodierer 500 in der Intra-/Inter-Prädiktionsstufe 508 den gleichen Prädiktionsblock erzeugen, wie der Codierer 400, z. B. in der Intra-/Inter-Prädiktionsstufe 402. Im Falle der Inter-Prädiktion kann das Referenzbild, aus dem der Prädiktionsblock erzeugt wird, mit dem Bitstream übertragen werden oder vom Decodierer 500 anhand der im Bitstream enthaltenen Informationen konstruiert werden.
  • In der Rekonstruktionsstufe 510 kann der Prädiktionsblock zum derivativen Restbestand hinzugefügt werden, um einen rekonstruierten Block zu erzeugen, der identisch mit dem aus der Rekonstruktionsstufe 414 des Codierers 400 stammenden Blocks sein kann. Die Loop-Filter-Stufe 512 kann bei einigen Umsetzungen eingesetzt werden, um bei dem rekonstruierten Block Blockartefakte zu reduzieren. Zur weiteren Verfeinerung des Bildes kann der rekonstruierte Block eine Nachbearbeitungsstufe durchlaufen. In diesem Beispiel kann die Deblocking-Filterstufe 514 für den rekonstruierten Block zum Einsatz kommen, um die Verzerrung des Blocks zu reduzieren und das Ergebnis wird als Videostream 516 ausgegeben. Der Ausgabe-Bitstream 516 kann auch als decodierter Videostream bezeichnet werden, die Wörter werden hier austauschbar genutzt.
  • Andere Variationen des Decodierers 500 können verwendet werden, um den komprimierten Bitstream 420 zu decodieren. So kann beispielsweise der Decodierer 500 den Ausgabe-Videostream 516 ohne Nachbearbeitung, wie die Deblocking-Filterstufe 514 erzeugen.
  • 6 ist ein Flussdiagramm eines Prozesses 600 für die Codierung eines Videostreams im Einklang mit einem Aspekt dieser Offenbarung. In diesem Beispiel werden vom Videostream mit der Inter-Prädiktion zunächst Blöcke codiert, dann Blöcke, von denen zumindest jeweils ein Unterblock mit der Inter-Prädiktion und der Intra-Prädiktion codiert wird und anschließend dann Blöcke mit der Intra-Prädiktion. Der Prozess 600 kann in einem Codierer wie dem Codierer 400 implementiert werden, um die Blocksortierung für den Prädiktionsmodus bei der Codierung des Videostreams einzurichten. Der Prozess 600 kann beispielsweise als Softwareprogramm implementiert werden, das von einem Computergerät wie der Sendestation 102 oder der Empfangsstation 106 ausgeführt werden kann. Das Softwareprogramm kann computerlesbare Anweisungen enthalten, die in einem Speicher, wie dem Speicher 204 gespeichert werden und bei Ausführung durch einen Prozessor, wie die CPU 202, das Computergerät zur Ausführung des Prozesses 600 veranlassen.
  • Der Prozess 600 kann auch als spezialisierte Hardware oder Firmware implementiert werden. Einige Computergeräte können mehrere Speicher und/oder Prozessoren haben. Die Abläufe des Prozesses 600 können auf unterschiedliche Prozessoren und/oder Speicher verteilt werden. Die Verwendung der Begriffe „Prozessor” und „Speicher” im Singular hierin umfasst sowohl Rechner mit nur einem Prozessor oder Speicher, sowie Apparate mit mehreren Prozessoren oder Speichern, die bei der Ausführung einiger oder aller hier angeführten Abläufe verwendet werden können. Allerdings können Vorgänge im Sinne dieser Offenbarung auch in anderer Reihenfolge und/oder gleichzeitig ablaufen. Darüber hinaus können Vorgänge im Sinne dieser Offenbarung mit anderen, hier nicht dargestellten und beschriebenen Vorgängen zusammen ablaufen. Ferner sind möglicherweise nicht alle dargestellten Operationen erforderlich, um ein Verfahren gemäß der offenbarten Thematik umzusetzen.
  • Beim Prozess 600 wird davon ausgegangen, dass ein Stream von Videodaten eine Vielzahl von Bildern mit jeweils vielen Blöcken enthält, die von einem Videocodierer, wie dem Codierer 400, in einem Computergerät, wie z. B. der Sendestation 102, codiert werden. Die Videodaten oder der Stream können auf beliebigen Wegen zum Computergerät gelangen, über ein Netzwerk, ein Kabel oder durch Einlesen von einem Primärspeicher oder einer anderen Speichervorrichtung, darunter Laufwerke, Wechselmedien wie Speicherkarten der Typen Compact Flash (CF), Secure Digital (SD) oder irgendeine andere Vorrichtung, die Videodaten übermitteln kann. Videodaten können von einer Videokamera empfangen werden, die an den Computer angeschlossen ist, der den Codierer betreibt.
  • In Vorgang 602 wird in einem Bild des Videostreams eine Vielzahl von Blöcken identifiziert, z. B. große Blöcke mit 64×64 Pixeln. Identifiziert kann bedeuten: vorgewählt, gewählt, festgestellt oder auf andere Weise erkannt. Jeder dieser Blöcke aus der Vielzahl der Blöcke kann weiter in kleinere Unterblöcke aufgeteilt oder rekursiv gespalten werden. Wenn ein Block in eine kleinere Gruppe von Blöcken aufgeteilt wird, richtet sich die Reihenfolge der Verarbeitung nach der Tiefe, demnach werden kleinere Blöcke einer niedrigeren Ebene zuerst abschließend verarbeitet, bevor die größeren Blöcke höherer Ebenen verarbeitet werden. Blöcke einer jeden Ebene werden in der Reihenfolge des Einlesens bearbeitet, basierend auf der Tiefe zwischen der niedrigsten Ebene mit der Verarbeitung von kleinen Unterblöcken in einem großen Block, bevor es an den großen Block der nächsten Ebene geht. Auf der Bildebene können große Blöcke weiterhin die Reihenfolge eines Rasterscans verwenden, bei dem die Blöcke jeder Ebene in einer rechteckigen Anordnung von Reihen und Spalten vorliegen und der Zugang zu ihnen im Sinne einer besseren Leistung des Pufferspeichers beginnend in der linken oberen Ecke der Reihe nach von der ersten Reihe abwärts bis zu letzten Reihe die Blöcke gehandhabt wird.
  • In Vorgang 604 wird eine erste Gruppe aus einer Vielzahl von Blöcken identifiziert, die mit der Inter-Prädiktion codiert werden sollen. Wie zuvor beschrieben und im Zusammenhang mit den 4 und 5, gehört zur Inter-Prädiktion die Verwendung von Pixeldaten eines anderen Bildes zur Prädiktion der Pixeldaten in einem Block. In einigen Implementierungen wird die erste Gruppe der Blöcke durch die Untersuchung der Blöcke im Bild anhand der Tiefe von der untersten zur höchsten Ebene in der Scan-Reihenfolge des Bildes identifiziert. Jeder Block, der mit der Inter-Prädiktion codiert werden soll und jeder Block, der eine Vielzahl von Unterblöcken enthält, von denen jeder mit der Inter-Prädiktion codiert werden soll, wird zu der ersten Gruppe der Blöcke hinzugefügt.
  • In Vorgang 606 wird eine zweite Gruppe aus einer Vielzahl von Blöcken identifiziert. Die zweite Gruppe der Blöcke kann durch die Untersuchung der Blöcke im Bild anhand der Tiefe von der untersten zur höchsten Ebene in der gleichen Scan-Reihenfolge wie die der Blöcke in der ersten Gruppe identifiziert werden. Bei Untersuchung der Blöcke in der Reihenfolge, in der die Bilder gescannt wurden, kann jeder Block zur zweiten Gruppe der Blöcke hinzugefügt werden, der über eine Vielzahl von Unterblöcken verfügt, von denen jeweils zumindest einer mit der Inter-Prädiktion und einer mit der Intra-Prädiktion codiert werden soll.
  • In Vorgang 608 wird eine dritte Gruppe aus einer Vielzahl von Blöcken identifiziert, die mit der Intra-Prädiktion codiert werden sollen. Die dritte Gruppe der Blöcke kann durch die Untersuchung der Blöcke im Bild anhand der Tiefe von der untersten zur höchsten Ebene in der gleichen Scan-Reihenfolge wie die der Blöcke in der ersten Gruppe identifiziert werden. Bei Untersuchung der Blöcke in der Reihenfolge, in der die Bilder gescannt wurden, kann jeder Block zur dritten Gruppe der Blöcke hinzugefügt werden, der über eine Vielzahl von Unterblöcken verfügt, die alle mit der Intra-Prädiktion codiert werden sollen. Dementsprechend können die Vorgänge 604, 606 und 608 während eines einzelnen Scans der Blöcke des Bildes ablaufen, indem die Blöcke in der Scan-Reihenfolge zur Ermittlung der optimalen Prädiktionsmethode analysiert und entsprechend in Gruppen für den optimalen Prädiktionsmodus sortiert werden.
  • Welcher Prädiktionsmodus für einen Block zu verwenden ist, kann durch Versuche mit unterschiedlichen Prädiktionsmodi und anschließendem Vergleich der Resultate herausgefunden werden. So kann als Beispiel die Summe der absoluten Unterschiede der resultierenden Restblöcke aus den verschiedenen Prädiktionsmodi verglichen werden. Der Prädiktionsmodus mit dem geringsten Rate-Distortions-Aufwand kann für einen gegebenen Block ausgewählt werden. Es ist zu beachten, dass die Inter-Prädiktion zwar generell so beschrieben wird, dass sie Blöcke eines anderen Bildes zur Blockvorhersage für das aktuelle Bild verwendet, diese Offenbarung jedoch erwägt, dass ein aktueller Block mit der Inter-Prädiktion innerhalb des aktuellen Bildes anhand eines Bewegungsvektors und eines anderen Blocks aus dem aktuellen Bild codiert werden kann. Solch ein Block würde Bestandteil der ersten Blockgruppe sein, wenn der Block nicht weiter unterteilt wird oder aus einer Vielzahl von Unterblöcken besteht, die alle mit der Inter-Prädiktion codiert werden. Die Modi der Intra-Prädiktion, die im Zuge der Identifikation in den Vorgängen 604, 606 und 608 geprüft wurden, können auf diejenigen beschränkt werden, die üblicherweise in der Scan-Reihenfolge des Bildes verwendet werden.
  • Beim nächsten Vorgang 610 wird die erste Blockgruppe zumindest partiell codiert. Allgemein entstehen bei dieser partiellen Codierung Verluste, bei der Umkehr der Codierung ergeben sich also nicht exakt die gleichen Pixelwerte wie bei der Eingabe. Wie in 4 gezeigt, kann die Codierung eines Blocks von Videodaten die Bildung eines Prädiktionsblocks einschließen, in diesen Fall aus einem anderen Bild, bzw. aus dem aktuellen Bild unter Verwendung eines Bewegungsvektors, sowie die Subtraktion des Prädiktionsblocks von dem zu codierenden Block, die Umwandlung des Blocks mit anschließender Quantisierung der umgewandelten Daten. Die Codierung der ersten Blockgruppe kann in der Scan-Reihenfolge ablaufen und basiert auf der der Tiefe von der untersten zur höchsten Ebene unter Auslassung der Blöcke, die zur zweiten und dritten Blockgruppe gehören. Die partiell codierten Blöcke der ersten Blockgruppe können ebenfalls als codierte Blöcke bezeichnet werden.
  • In Vorgang 612 werden die codierten Blöcke der ersten Blockgruppe durch Umkehrung der Codierungsvorgänge mit Verlusten partiell decodiert. In diesem Beispiel gehören dazu die Dequantisierung, inverse Umwandlung und das Hinzufügen des invers umgewandelten Blocks zum Prädiktionsblock, der mit der Inter-Prädiktion erzeugt wurde, wie mit Bezug auf die Rekonstruktionsschleife in 4 beschrieben. Dieses ergibt Pixeldaten, die denen gleichen, welche bei der späteren Decodierung der Blöcke im Decodierer entstehen. Ein Codierer kann eine Kopie der partiell codierten Blöcke im Speicher behalten, beispielsweise während der Durchführung der verbleibenden Abläufe im Prozess 600 vor Abschluss der Codierung der Blöcke, um sie bei der Ausgabe des Video-Bitstreams hinzuzufügen.
  • Beim nächsten Vorgang 614 wird nach der Codierung der ersten Blockgruppe aus der zweiten Blockgruppe mindestens ein Unterblock zumindest partiell codiert, der mit der Inter-Prädiktion codiert werden soll. Ähnlich, wie zuvor in Bezug auf die erste Blockgruppe beschrieben, kann die Codierung der zweiten Blockgruppe in der Scan-Reihenfolge ablaufen, basierend auf der der Tiefe von der untersten zur höchsten Ebene unter Auslassung der Blöcke aus der zweiten Blockgruppe, die mit der Intra-Prädiktion codiert werden sollen und denen aus der dritten Blockgruppe. Die partiell codierten Blöcke der zweiten Blockgruppe können ebenfalls als codierte Blöcke bezeichnet werden.
  • In Vorgang 616 werden die mit der Inter-Prädiktion codierten Blöcke der zweiten Blockgruppe durch Umkehrung der Codierungsvorgänge mit Verlusten partiell decodiert. Ähnlich, wie zuvor in Bezug auf die erste Blockgruppe beschrieben, ergeben sich dadurch Pixeldaten, die denen gleichen, welche bei der späteren Decodierung der Blöcke im Decodierer entstehen. Ein Codierer kann eine Kopie von der partiell codierten Blöcke im Speicher behalten, beispielsweise während der Durchführung der verbleibenden Abläufe im Prozess 600 vor Abschluss der Codierung der Blöcke, um sie bei der Ausgabe des Video-Bitstreams hinzuzufügen.
  • In Vorgang 618 wird nach der Codierung der ersten Blockgruppe aus der zweiten Blockgruppe mindestens ein Unterblock mit der Intra-Prädiktion codiert und mindestens einer der partiell codierten und decodierten Blöcke der ersten Gruppe oder mindestens einer der mit der Inter-Prädiktion partiell codierten und decodierten Unterblöcke aus der zweiten Blockgruppe. Die Intra-Prädiktion verwendet Pixel umliegender Blöcke, um die Pixeldaten für den aktuellen Block vorherzusagen. Basierend auf der Tiefe von der untersten zur höchsten Ebene, kann dieser Vorgang in der Scan-Reihenfolge durchgeführt werden, nachdem einige oder alle der Blöcke aus der ersten oder zweiten Blockgruppe, die mit der Inter-Prädiktion codiert werden sollten, codiert und decodiert worden sind. Wie zuvor erwähnt, kann die Einbeziehung von Ergebnissen aus der Codierung/Decodierung von Blöcken mit der Inter-Prädiktion die Leistung der mit der Intra-Prädiktion codierten Blöcke verbessern, indem zusätzliche Prädiktionsmodi für den Codierungsprozess zugelassen werden. Dementsprechend kann der Vorgang 618 eine Neuberechnung des optimalen Modus' für die Intra-Prädiktion für jeden Block einschließen, der mit dieser Methode codiert werden soll. Einige dieser Modi der Intra-Prädiktion können Informationen aus intercodierten Blöcken verwenden, die nach einem aktuellen Block codiert werden würden, wären alle Blöcke basierend auf der Tiefe von der untersten zur höchsten Ebene in der Scan-Reihenfolge codiert worden oder, wie bei einer alternativen Ausführungsform, in einer vorbestimmten Reihenfolge der Codierung. Infolgedessen kann die Intra-Codierung des aktuellen Blocks rekonstruierte Pixelwerte der intercodierten Blöcke verwenden, die zuvor nach dem aktuellen Block codiert worden wären, da die intercodierten Blöcke bereits verarbeitet worden sind. Die Verfügbarkeit dieser rekonstruierten Pixelwerte kann zu einer verbesserten Prädiktionsqualität bei der Verwendung der Modi der Intra-Prädiktion verhelfen und somit die Gesamteffizienz bei der Codierung von Videobildern steigern.
  • In Vorgang 620 wird nach der Codierung der ersten und zweiten Blockgruppe die dritte Blockgruppe mit der Intra-Prädiktion codiert und mindestens einer der partiell codierten und decodierten Blöcke der ersten Gruppe oder mindestens einer der mit der Inter-Prädiktion partiell codierten und decodierten Unterblöcke aus der zweiten Blockgruppe. Wie zuvor angemerkt, kann dieser Vorgang basierend auf der Tiefe von der untersten zur höchsten Ebene in der Scan-Reihenfolge durchgeführt werden, nachdem einige oder alle der Blöcke aus der ersten oder zweiten Blockgruppe codiert und decodiert worden sind.
  • Durch die Aufteilung der Blöcke des aktuellen Bildes in drei Blockgruppen, von denen die erste Gruppe Blöcke enthält, die mit der Inter-Prädiktion zu codieren sind, sowie Blöcke mit Unterblöcken, von denen jeder mit der Inter-Prädiktion zu codieren ist; die zweite Gruppe Blöcke enthält, die mindestens jeweils einen Unterblock für die Codierung mit der Intra-Prädiktion und der Inter-Prädiktion haben und die dritte Gruppe Blöcke enthält, die mit der Intra-Prädiktion zu codieren sind, sowie Blöcke mit Unterblöcken, von denen jeder mit der Intra-Prädiktion zu codieren ist, kann die Reihenfolge der Codierung der Blöcke zum Zwecke einer besseren Prädiktion für intracodierte Blöcke und einer daraus resultierenden verbesserten Codierungseffizienz verändert werden. Die Reihenfolge der Blockcodierung wird im Prozess 600 verändert, um die erste Blockgruppe vor der zweiten Blockgruppe zu codieren und die zweite Blockgruppe vor der dritten Blockgruppe.
  • Genauer gesagt und wie zuvor beschrieben mit Bezug auf die 4 und 5, gehört zur Intra-Prädiktion die Verwendung der Pixeldaten von den Blöcken, die um den zu codierenden Block herum verteilt sind, um die Pixelwerte dieses Blocks vorauszusagen. Die für die Bildung des Prädiktionsblocks verwendeten Blöcke werden vor der Verwendung für die Prädiktion zumeist codiert/decodiert. Weil die Codierung und die Decodierung verlustbringende Vorgänge sind, entsprechen die Pixelwerte im codierten und decodierten Block nicht genau den Pixelwerten des ursprünglichen Blockes. Durch die Codierung/Decodierung vor der Verwendung als Prädiktionsblock für die Prädiktion eines anderen Blockes kann der Codierer die gleichen Pixelwerte verwenden, die ein Decodierer bei der Intra-Prädiktion des gleichen Blocks verwendet. Im Falle der Codierung in der Reihenfolge von Rasterscans benutzt die Intra-Prädiktion beispielsweise häufig nur Pixel von über dem und links des aktuellen Block(s) zur Bildung des Prädiktionsblocks. Dieses Vorgehen garantiert, dass die Pixeldaten der Blöcke, die sich vor dem für die Prädiktion anstehenden Block befinden, zumindest partiell codiert und decodiert worden sind, bevor sie für die Prädiktion verwendet werden.
  • Entsprechend den hier vertretenen Lehren kann der Codierer den ersten Satz von Blöcken zuerst codieren. Die mit der Inter-Prädiktion vorausgesagten Blöcke des ersten Satzes von Blöcken können dann decodiert werden, um rekonstruierte oder decodierte Blöcke zu schaffen, die für die Intra-Prädiktion von zu codierenden Blöcken im zweiten und dritten Satz von Blöcken verwendet werden können. Ähnlich kann der Codierer mit der Inter-Prädiktion die Blöcke des zweiten Satzes von Blöcken codieren. Die mit der Inter-Prädiktion vorausgesagten Blöcke des zweiten Satzes von Blöcken können dann decodiert werden, um rekonstruierte oder decodierte Blöcke zu schaffen, die für die Intra-Prädiktion von zu codierenden Blöcken im zweiten und dritten Satz von Blöcken verwendet werden können. Auf diese Art können die Modi der Intra-Prädiktion für jene Blöcke im zweiten und dritten Satz der Blöcke erweitert werden, um die Modi der Intra-Prädiktion für Blöcke in jeder Position relativ zum aktuellen Block zu verwenden und einzubinden, wobei zumindest einige der Blöcke (z. B. zuvor intracodierte Blöcke in der Scan-Reihenfolge und die intercodierten Blöcke) bereits für die Prädiktion codiert und decodiert worden sind.
  • 8 kann zur Erklärung dieses Prozesses dienen. 8 ist ein Diagramm der Blöcke in einem Bild 800, die im Einklang mit Aspekten dieser Offenbarung codiert oder decodiert werden sollen. In diesem Beispiel ist das Bild 800 einen Pixelblock mit 64×64 Bildpunkten dar, der in vier Blöcke mit jeweils 32×32 Pixeln, A, B, C und D aufgeteilt wird. Der Block A wird weiter in vier Blöcke A0, A1, A2 und A3 mit jeweils 16×16 Pixeln aufgeteilt. Der Block A3 wird weiter in vier Blöcke A30, A31, A32 und A33 mit jeweils 4×4 Pixeln aufgeteilt. Der Codierer 400 verarbeitet jeden der Blöcke, um einen Prädiktionsmodus für jeden Block zu wählen. Jeder der Blöcke, ob groß oder klein, kann die Intra-Prädiktion oder die Inter-Prädiktion im Codierungsprozess verwenden. Der Codierer 400 arbeitet jeden Block aufgrund seiner Aufteilungstiefe vom niedrigsten zum höchsten Niveau in der Scan-Reihenfolge ab, zunächst die Blöcke A30, A31, A32 und A33, gefolgt von den Blöcken A0, A1, A2 und A3 und anschließend die Blöcke A, B, C und D.
  • Der Codierer 400 bestellt jeden der Blöcke aufgrund des verwendeten Modus für die Prädiktion bei der Codierung und Decodierung der Blöcke, er verarbeitet die kleineren Unterblöcke eines großen Blocks auf jeder Ebene vor der Verarbeitung der großen Blöcke. Der Codierer 400 teilt die Blöcke in drei Gruppen ein. Die erste Blockgruppe enthält Blöcke, die mit der Inter-Prädiktion codiert werden sollen sowie rekursiv in Unterblöcke aufgeteilte Blöcke, von denen jeder Unterblock mit der Inter-Prädiktion codiert werden soll. Die zweite Blockgruppe enthält rekursiv in Unterblöcke aufgeteilte Blöcke, von denen zumindest je ein Unterblock mit der Inter-Prädiktion und der Intra-Prädiktion codiert werden soll. Die dritte Blockgruppe enthält Blöcke, die mit der Intra-Prädiktion codiert werden sollen sowie rekursiv in Unterblöcke aufgeteilte Blöcke, von denen jeder Unterblock mit der Intra-Prädiktion codiert werden soll.
  • Aus Darstellungsgründen bei der Erklärung des Prozesses in 6 sind die Blöcke AO, A32 und C in 8 dazu bestimmt, mit der Intra-Prädiktion codiert zu werden, während die restlichen Blöcke mit der Inter-Prädiktion codiert werden sollen. In diesem Beispiel auf der Stufe 4×4 Pixel gehören zu der ersten Blockgruppe A30, A31 und A33, zur zweiten Blockgruppe A32. Auf der Stufe 16×16 Pixel gehören zu der ersten Blockgruppe die Blöcke A1 und A2, zur zweiten Blockgruppe A3 und zur dritten Blockgruppe AO. Auf der Stufe 32×32 Pixel gehören zu der ersten Blockgruppe die Blöcke B und D, zur zweiten Blockgruppe A und zur dritten Blockgruppe C.
  • Die Blöcke werden entsprechend der Gruppenklassifikation auf jeder Stufe mit dem für jeden Block festgelegten Prädiktionsmodus verarbeitet und codiert, d. h. die erste Blockgruppe wird zuerst verarbeitet, die zweite Blockgruppe an zweiter Stelle und die dritte Blockgruppe wird zuletzt verarbeitet, dabei werden die Stufen in der Reihenfolge abnehmender Tiefe von unten nach oben verarbeitet. Mit Intra-Prädiktion vorausgesagte Blöcke können rekonstruierte Pixelwerte von Blöcken aus der Inter-Prädiktion verwenden. Im Beispiel in 8 werden die Blöcke der Stufe 4×4 Pixel in der Blockreihenfolge A30, A31, A33 und A32 verarbeitet und codiert, in der Stufe 16×16 Pixel in der Reihenfolge A2, A3 und A0 und in der Stufe 32×32 Pixel B, D, A und C. Die entropiecodierten, quantisierten Restblöcke können in einen Video-Bitstream für Lagerung oder Transport und eine spätere Decodierung gepackt werden. Die Prädiktionsmodi können ebenfalls entropiecodiert und als Teil der komprimierten Daten hinzugefügt werden. Es muss keine definierte Reihenfolge codiert oder übertragen werden.
  • 7 zeigt ein Flussdiagramm eines Prozesses 700 für die Decodierung eines Video-Bitstreams im Einklang mit einem anderen Aspekt dieser Offenbarung. Generell wird im Prozess 700 die erste Blockgruppe des Video-Bitstreams mit der Inter-Prädiktion decodiert, die zweite Blockgruppe des Video-Bitstreams mit der Inter-Prädiktion oder der Intra-Prädiktion und die dritte Blockgruppe mit der Intra-Prädiktion. Der Prozess 700 kann in einem Decodierer (wie dem Decodierer 500) entsprechend den Aspekten der offenbarten Umsetzungen implementiert werden. Der Prozess 700 kann beispielsweise als Softwareprogramm implementiert werden, das von einem Computergerät ausgeführt werden kann, beispielsweise von der Sendestation 102 oder der Empfangsstation 106. Das Softwareprogramm kann computerlesbare Anweisungen enthalten, die in einem Speicher, wie dem Speicher 204 gespeichert werden und bei Ausführung durch einen Prozessor, wie die CPU 202, das Computergerät zur Ausführung des Prozesses 700 veranlassen. Der Prozess 700 kann auch durch Hardware realisiert werden. Wie zuvor erläutert, können einige Rechner mehrere Speicher und Prozessoren haben, die Operationen des Prozesses 700 können in solchen Fällen auf verschiedene Prozessoren und Speicher verteilt ablaufen.
  • Zur vereinfachten Erklärung wird der Prozess 700 als eine Reihe von Operationen dargestellt und beschrieben. Allerdings können Vorgänge im Sinne dieser Offenbarung auch in anderer Reihenfolge und/oder gleichzeitig ablaufen. Darüber hinaus können Vorgänge im Sinne dieser Offenbarung mit anderen, hier nicht dargestellten und beschriebenen Vorgängen zusammen ablaufen. Ferner sind möglicherweise nicht alle dargestellten Operationen erforderlich, um ein Verfahren gemäß der offenbarten Thematik umzusetzen.
  • In Vorgang 702 identifiziert der Prozess 700 eine erste Gruppe codierter Blöcke, die mit der Inter-Prädiktion decodiert werden können, in dieser ersten Gruppe codierter Blöcke befinden sich mit der Inter-Prädiktion codierte Blöcke, oder die Blöcke, die eine Vielzahl von Unterblöcken enthalten, von denen jeder mit der Inter-Prädiktion codiert wurde. In Vorgang 704 identifiziert der Prozess 700 eine zweite Gruppe codierter Blöcke, die mit der Inter-Prädiktion oder der Intra-Prädiktion decodiert werden können, in dieser zweiten Gruppe codierter Blöcke befinden sich Blöcke, die eine Vielzahl von Unterblöcken enthalten, von denen zumindest jeweils einer mit der Inter-Prädiktion und einer mit der Intra-Prädiktion codiert wurde. In Vorgang 706 identifiziert der Prozess 700 eine dritte Gruppe codierter Blöcke, die mit der Intra-Prädiktion decodiert werden können, in dieser dritten Gruppe codierter Blöcke befinden sich mit der Intra-Prädiktion codierte Blöcke, oder die Blöcke, die eine Vielzahl von Unterblöcken enthalten, von denen jeder mit der Intra-Prädiktion codiert wurde. Wie zuvor erläutert und mit Bezug auf 6 können die Blöcke des Bildes anhand der Tiefe von der untersten zur höchsten Ebene in der Scan-Reihenfolge des Bildes identifiziert werden, dabei kann es sich um einen Raster-Scan oder eine andere Reihenfolge des Einlesens handeln. In diesem Beispiel kann der Decodierer die Entropiedecodierung der Kopfzeilen durchführen, um für jeden Block einen Modus der Prädiktion zu schaffen. Alle Blöcke werden dann aufgrund der jeweiligen Prädiktionsmodi auf drei Gruppen verteilt. Dementsprechend können die Vorgänge 702, 704 und 706 als eine Operation durchgeführt werden.
  • Die Blöcke, die mit jeder Prädiktionsmethode decodiert werden können, können durch Bits identifiziert werden, die der Codierer dem Video-Bitstream beispielsweise zum Zeitpunkt der Codierung der Blöcke hinzugefügt hat. Diese Bits werden dem codierten Video-Bitstream vom Codierer beigefügt, um einem Decodierer den zu verwendenden Modus der Prädiktion mitzuteilen. Im Ergebnis können Blöcke für die Decodierung auf Gruppen verteilt werden ohne dass zusätzliche Bits im Video-Bitstream erforderlich sind, die über die üblichen enthaltenen Informationen zur Identifikation des Prädiktionsmodus hinausgehen.
  • In Vorgang 708 wird die erste Blockgruppe mit der Inter-Prädiktion decodiert. Beispielsweise wird jeder entropiedecodierte Restblock invers umgewandelt und dequantisiert, um einen Restblock zu bilden. Der Decodierer erzeugt den Prädiktionsblock für den aktuellen Block mit der Inter-Prädiktion, der aktuelle Block wird durch Hinzufügen des Prädiktionsblocks zum Restblock gebildet, wie mit Bezug auf 5 beschrieben wird. Die erste Gruppe der codierten Blöcke kann in der Scan-Reihenfolge des Bildes basierend auf der Tiefe von der untersten zur höchsten Ebene decodiert werden. Die Scanreihenfolge kann eine Raster-Scanreihenfolge oder eine andere sein (Zickzack o. ä.).
  • In Vorgang 710 wird aus der zweiten Gruppe der codierten Blöcke zumindest ein Block mit der Inter-Prädiktion decodiert, wenn zumindest ein Block dieser Gruppe mit der Inter-Prädiktion codiert wurde. Wie unter Bezug auf Vorgang 708 beschrieben, wird jeder entropiedecodierte Restblock invers umgewandelt und dequantisiert, um einen Restblock zu bilden. Der Decodierer erzeugt den Prädiktionsblock für den aktuellen Block mit der Inter-Prädiktion, der aktuelle Block wird durch Hinzufügen des Prädiktionsblocks zum Restblock gebildet, wie mit Bezug auf 5 beschrieben wird. Der eine Block aus der zweiten Gruppe von codierten Blöcken aus der Operation 710 kann in der Scan-Reihenfolge des Bildes basierend auf der Tiefe von der untersten zur höchsten Ebene decodiert werden.
  • In Vorgang 712 wird aus der zweiten Gruppe der codierten Blöcke zumindest ein Block mit der Intra-Prädiktion decodiert, wenn zumindest ein Block dieser Gruppe mit der Intra-Prädiktion codiert wurde sowie zusätzlich in Abhängigkeit des verwendeten Modus' der Intra-Prädiktion die Blöcke aus der ersten und zweiten Blockgruppe, die mit der Inter-Prädiktion decodiert wurden. Beispielsweise wird jeder entropiedecodierte Restblock invers umgewandelt und dequantisiert, um einen Restblock zu bilden. Der Decodierer erzeugt den Prädiktionsblock für den aktuellen Block mit der Intra-Prädiktion, der aktuelle Block wird durch Hinzufügen des Prädiktionsblocks zum Restblock gebildet, wie mit Bezug auf 5 beschrieben wird. Der eine Block aus der zweiten Gruppe von codierten Blöcken aus der Operation 712 kann in der Scan-Reihenfolge des Bildes basierend auf der Tiefe von der untersten zur höchsten Ebene decodiert werden.
  • In Vorgang 714 wird die dritte Gruppe der codierten Blöcke mit der Intra-Prädiktion decodiert sowie zusätzlich in Abhängigkeit des verwendeten Modus' der Intra-Prädiktion die Blöcke aus der ersten und zweiten Blockgruppe, die mit der Inter-Prädiktion decodiert wurden. Beispielsweise wird jeder entropiedecodierte Restblock invers umgewandelt und dequantisiert, um einen Restblock zu bilden. Der Decodierer erzeugt den Prädiktionsblock für den aktuellen Block mit der Intra-Prädiktion, der aktuelle Block wird durch Hinzufügen des Prädiktionsblocks zum Restblock gebildet, wie mit Bezug auf 5 beschrieben wird. Die dritte Gruppe der codierten Blöcke kann in der Scan-Reihenfolge des Bildes basierend auf der Tiefe von der untersten zur höchsten Ebene decodiert werden.
  • In diesem Beispiel wird die Verarbeitung der Blöcke in Abhängigkeit von der Tiefe der Blöcke von der niedrigsten zur höchsten Stufe durchgeführt, auf jeder Stufe zunächst mit den kleinen Unterblöcken vor den großen Blöcken der nächsten Stufe, gemäß der klassifizierten Reihenfolge mit Bezug auf den Codierer wird die erste Blockgruppe verarbeitet, in der die mit der Inter-Prädiktion codierten Blöcke und die rekursiv geteilten Blöcke, bei denen jeder Unterblock mit der Inter-Prädiktion codiert wurde enthalten sind, danach wird die zweite Blockgruppe verarbeitet, in der die rekursiv geteilten Blöcke sind, von denen zumindest jeweils ein Unterblock mit der Inter-Prädiktion und einer mit der Intra-Prädiktion codiert wurde und abschließend dann die dritte Blockgruppe, in der die mit der Intra-Prädiktion codierten Blöcke und die rekursiv geteilten Blöcke sind, bei denen jeder Unterblock mit der Intra-Prädiktion codiert worden ist. In anderen Fällen kann die Verarbeitung der Blöcke entsprechend einer anderen vorbestimmten Scan-Reihenfolge ablaufen und diese gewählte Reihenfolge ist codiert, so dass der Decodierer die Blöcke in der gleichen Reihenfolge verarbeiten kann. Außer der vorbestimmten Scan-Reihenfolge müssen keine Informationen zur Sortierung codiert oder übertragen werden.
  • Entsprechend den hier verwendeten Lehren können die Blöcke der Intra-Prädiktion rekonstruierte Pixelwerte von Blöcken der Inter-Prädiktion verwenden, selbst wenn diese Blöcke in der normalen Scan-Reihenfolge nach ihnen codiert/decodiert werden würden. Bei der Neusortierung für die Codierung/Decodierung von Blöcken aufgrund der Modi der Prädiktion, kann der Codierer tatsächlich die Abhängigkeit der Daten der Blöcke im Prozess der Codierung/Decodierung verändern. Die später in einem Bild codierten Blöcke können auf diese Art alle rekonstruierten Pixelinformationen von zuvor codierten Blöcken für die Verbesserung der Prädiktionsqualität verwenden, was auch die Effizienz der Codierung verbessert.
  • Die oben erläuterten Aspekte der Codierung und Decodierung veranschaulichen einige der Codierungs-/Decodierungstechniken. Jedoch sollte bedacht werden, dass die Verwendung der Begriffe Codierung und Decodierung in den Ansprüchen für Komprimierung, Dekomprimierung, Transformation oder jegliche andere Verarbeitung oder Änderung von Daten stehen kann.
  • In seiner Verwendung hierin bedeutet das Wort „Beispiel”, dass es als Beispiel, Instanz, oder Illustration dient. Jeglicher Gesichtspunkt oder Entwurf, der hierin als „Beispiel” beschrieben ist, ist nicht notwendigerweise als bevorzugt oder vorteilhaft gegenüber anderen Gesichtspunkten oder Entwürfen anzusehen. Vielmehr soll das Wort „Beispiel” Konzepte konkret darstellen. Wie in der vorliegenden Anmeldung verwendet, ist der Begriff „oder” als einschließendes „oder” gemeint, nicht als ausschließendes „oder”. Falls nichts anderes angegeben, oder aus dem Kontext klar ersichtlich, schließt „X schließt A oder B ein” alle natürlichen inklusiven Permutationen mit ein. Das heißt: Wenn X A umfasst, X B umfasst oder X sowohl A als auch B umfasst, gilt „X umfasst A oder B” als zutreffend für jeden der vorgenannten Fälle. Außerdem sind die Artikel „ein” und „eine” in ihrer Verwendung in der vorliegenden Anmeldung und den beigefügten Ansprüchen allgemein so zu verstehen, dass sie „ein(e) oder mehrere” bedeuten, falls es nicht anders angegeben oder durch den Kontext klar ersichtlich ist, dass es sich um eine Form des Singulars handelt. Außerdem bedeutet der Gebrauch des Begriffs „eine Implementierung” oder „als Aspekt” nicht dieselbe Ausführungsform oder Implementierung, es sei denn, dies wird so beschrieben.
  • Implementierungen der Sendestation 102 und/oder der Empfangsstation 106 (und der Algorithmen, Verfahren, Anweisungen usw., die in diesen einschließlich vom Codierer 400 und Decodierer 500 gespeichert und/oder ausgeführt werden) können als Hardware, Software, oder in einer beliebigen Kombination aus diesen umgesetzt werden. Die Hardware kann beispielsweise Computer, Intellectual-Property-(IP-)Cores, anwendungsspezifische integrierte Schaltkreise (Application-Specific Integrated Circuits, ASICs), programmierbare logische Schaltungen, optische Prozessoren, programmierbare logische Controller, Mikrocode, Mikrocontroller, Server, Mikroprozessoren, Digitalsignalprozessoren oder beliebige andere geeignete Schaltungen umfassen. In den Ansprüchen ist der Begriff „Prozessor” als eine beliebige der vorhergehenden Hardware einzeln oder in Kombination umfassend zu verstehen. Die Begriffe „Signal” und „Daten” werden austauschbar verwendet. Weiterhin müssen Abschnitte der Sendestation 102 und der Empfangsstation 106 nicht notwendigerweise auf dieselbe Art implementiert werden.
  • Weiterhin können die Sendestation 102 oder die Empfangsstation 106 in einem Aspekt unter Verwendung eines Universalcomputers oder Universalprozessors und einem Computerprogramm umgesetzt werden, das bei Ausführung alle hier beschriebenen Verfahren, Algorithmen und/oder Anweisungen ablaufen lässt. Zusätzlich oder alternativ kann beispielsweise ein Spezialcomputer/-prozessor verwendet werden, der andere Hardware für das Ausführen jeglicher der hier beschriebenen Verfahren, Algorithmen oder Anweisungen enthalten kann.
  • Die Sendestation 102 und die Empfangsstation 106 können beispielsweise auf den Computer eines Videokonferenzsystems implementiert sein. Alternativ kann die Sendestation 102 auf einem Server und die Empfangsstation 106 auf einem anderen, vom Server getrennten Gerät implementiert sein, beispielsweise einem Handkommunikationsgerät. In diesem Fall kann die Sendestation 102 mit dem Codierer 400 Inhalte in ein codiertes Videosignal codieren und an das Kommunikationsgerät übertragen. Das Kommunikationsgerät wiederum kann dann das codierte Videosignal mit einem Decodierer 500 decodieren. Alternativ kann das Kommunikationsgerät Inhalte decodieren, die es lokal gespeichert hat, die also nicht von der Sendestation 102 übertragen wurden. Andere Umsetzungsschemata für die Sendestation 102 und die Empfangsstation 106 stehen ebenfalls zur Verfügung. So kann beispielsweise die Empfangsstation 106 auch ein allgemein ortsfester PC anstatt eines mobilen Kommunikationsgerätes sein und/oder das Gerät mit dem eingebetteten Codierer 400 kann auch einen Decodierer 500 enthalten.
  • Weiterhin können alle, oder ein Teil der Implementierungen der vorliegenden Offenbarung die Form eines Computerprogramms annehmen, auf das z. B. über ein computerles- oder nutzbares Medium zugegriffen werden kann. Ein für einen Computer verwendbares oder computerlesbares Medium kann eine beliebige Vorrichtung sein, die beispielsweise greifbar das Programm zur Verwendung durch oder in Verbindung mit einem beliebigen Prozessor enthalten, speichern, kommunizieren oder befördern kann. Das Medium kann beispielsweise eine elektronische, magnetische, optische, elektromagnetische Vorrichtung oder eine Halbleitevorrichtung sein. Andere geeignete Medien sind ebenfalls verfügbar.
  • Ausführungsformen der Erfindung werden gemäß den folgenden Beispielen zur Verfügung gestellt:
    Beispiel 1: Verfahren zum Codieren eines Videostreams, umfassend:
    das zumindest partielle Codieren einer ersten Blockgruppe anhand der Inter-Prädiktion mit einem Prozessor, um eine erste Gruppe von codierten Blöcken zu bilden, die sich im aktuellen Bild des Videostreams befinden:
    das zumindest partielle Decodieren der ersten Gruppe von codierten Blöcken mit dem Prozessor, um eine erste Gruppe von decodierten Blöcken zu bilden;
    das zumindest partielle Codieren einer zweiten Blockgruppe anhand der Inter-Prädiktion mit einem Prozessor nach der partiellen Codierung der ersten Blockgruppe, um eine zweite Gruppe von mit der Inter-Prädiktion codierten Blöcken zu bilden;
    das zumindest partielle Decodieren der zweiten Gruppe von mit der Inter-Prädiktion codierten Blöcken durch den Prozessor, um eine zweite Gruppe von mit der Inter-Prädiktion decodierten Blöcken zu bilden;
    das Codieren, mit der Intra-Prädiktion, von mindestens einem Block der zweiten Blockgruppe, nach dem partiellen Codieren der ersten Blockgruppe, unter Verwendung von zumindest einem Block aus der ersten Gruppe der decodierten Blöcke oder der zweiten Gruppe der mit der Inter-Prädiktion vorhergesagten Blöcke, um unter der Bedingung, dass diese zumindest einen Block enthält, eine zweite Gruppe von mit der Intra-Prädiktion codierten Blöcken zu bilden; und das Einfügen der ersten Gruppe von codierten Blöcken, der zweiten Gruppe der mit der Inter-Prädiktion codierten Blöcke und der zweiten Gruppe der mit der Intra-Prädiktion codierten Blöcke in einen codierten Bitstream.
  • Beispiel 2: Verfahren nach Anspruch 1, weiterhin umfassend:
    das Codieren, mit der Intra-Prädiktion, einer dritten Gruppe von Blöcken, nach dem partiellen Codieren der ersten Blockgruppe und dem Codieren der zweiten Blockgruppe die Codierung unter Verwendung von zumindest einem Block aus der ersten Gruppe der decodierten Blöcke oder der zweiten Gruppe der mit der Inter-Prädiktion decodierten Blöcke, um unter der Bedingung, dass diese zumindest einen Block enthält, eine dritte Gruppe von codierten Blöcken zu bilden; und
    das Einfügen der dritten Gruppe von codierten Blöcken in den codierten Bitstream.
  • Beispiel 3: Verfahren nach Anspruch 2, weiterhin umfassend:
    das Verarbeiten einer Vielzahl von Blöcken des Bildes in einer Scan-Reihenfolge zum Bestimmen eines Prädiktionsmodus für jeden Block; und
    das Zuweisen von Blöcken aus der Vielzahl der Blöcke zur dritten Blockgruppe unter der Bedingung, dass zumindest einer der Blöcke die Intra-Prädiktion verwendet oder die Blöcke eine Vielzahl von Unterblöcken haben, die alle die Intra-Prädiktion nutzen.
  • Beispiel 4: Verfahren von Beispiel 3, weiterhin umfassend: das Feststellen des Prädiktionsmodus für jeden Block durch:
    das Berechnen, für einen aktuellen Block, eines Restblocks für jeden aus der Vielzahl von Prädiktionsmodi; Auswahl des Prädiktionsmodus mit dem geringsten Rate-Distortions-Aufwand für den aktuellen Block aus der Vielzahl der Prädiktionsmodi.
  • Beispiel 5: Verfahren von Beispiel 3 oder 4, weiterhin umfassend: das Feststellen des Prädiktionsmodus für jeden Unterblock durch:
    das Berechnen, für einen aktuellen Block, eines Restblocks für jeden aus der Vielzahl von Prädiktionsmodi; Auswahl des Prädiktionsmodus mit dem geringsten Rate-Distortions-Aufwand für den aktuellen Block aus der Vielzahl der Prädiktionsmodi.
  • Beispiel 6: Verfahren von irgendeinem der Beispiele 3 bis 5, wobei die Scan-Reihenfolge zuerst auf zumindest einer Pixeltiefe eines jeden Blockes oder Unterblockes beruht.
  • Beispiel 7: Verfahren nach irgendeinem der Beispiele 3 bis 5, wobei die Scan-Reihenfolge durch einen Raster-Scan gegeben ist.
  • Beispiel 8: Verfahren nach irgendeinem der Beispiele 2 bis 7, wobei die Codierung der dritten Blockgruppe umfasst:
    das Festlegen eines optimalen Modus' der Intra-Prädiktion für einen aktuellen Block der dritten Blockgruppe aus einer Vielzahl von Modi der Intra-Prädiktion, wobei zumindest ein Modus aus der Vielzahl der Modi der Intra-Prädiktion Pixel von zumindest einem Block der ersten Gruppe von decodierten Blöcken beinhaltet, oder zumindest einen Block aus der zweiten Gruppe von mit der Inter-Prädiktion decodierten Blöcken beinhaltet; und das Codieren des aktuellen Blocks der dritten Blockgruppe der Blöcke mit dem optimalen Modus der Intra-Prädiktion.
  • Beispiel 9: Verfahren nach irgendeinem der Beispiele 2 bis 8, wobei die erste Gruppe der Blöcke zumindest partiell codiert wird, bevor die zweite Gruppe der Blöcke zumindest partiell codiert wird, bevor die dritte Gruppe der Blöcke codiert wird.
  • Beispiel 10: Verfahren nach irgendeinem der vorherigen Abschnitte, des Weiteren umfassend:
    das Verarbeiten einer Vielzahl von Blöcken des Bildes in einer Scan-Reihenfolge zum Bestimmen eines Prädiktionsmodus für jeden Block;
    das Zuweisen von Blöcken aus der Vielzahl der Blöcke zur ersten Blockgruppe unter der Bedingung, dass zumindest einer der Blöcke die Inter-Prädiktion verwendet oder die Blöcke eine Vielzahl von Unterblöcken haben, die alle die Inter-Prädiktion nutzen; und
    das Zuweisen von Blöcken aus der Vielzahl der Blöcke zur zweiten Blockgruppe unter der
    Bedingung, dass die Blöcke eine Vielzahl von Unterblöcken haben, von denen zumindest ein Unterblock die Inter-Prädiktion und ein Unterblock die Intra-Prädiktion verwendet.
  • Beispiel 11: Verfahren von Beispiel 10, weiterhin umfassend: die Feststellung des Prädiktionsmodus für jeden Block durch:
    das Berechnen bei einem aktuellen Block eines Restblocks für jeden aus der Vielzahl von Prädiktionsmodi; Auswahl des Prädiktionsmodus mit dem geringsten Rate-Distortions-Aufwand für den aktuellen Block aus der Vielzahl der Prädiktionsmodi.
  • Beispiel 12: Verfahren von Beispiel 10 oder 11, weiterhin umfassend: das Feststellen des Prädiktionsmodus für jeden Unterblock durch:
    das Berechnen, für einen aktuellen Block, eines Restblocks für jeden aus der Vielzahl von Prädiktionsmodi; und das Auswählen des Prädiktionsmodus mit dem geringsten Rate-Distortions-Aufwand für den aktuellen Block aus der Vielzahl der Prädiktionsmodi.
  • Beispiel 13: Verfahren nach irgendeinem der Beispiele 10 bis 13, wobei die Scan-Reihenfolge zuerst auf zumindest einer Pixeltiefe eines jeden Blockes oder Unterblockes beruht.
  • Beispiel 14: Verfahren nach irgendeinem der Beispiele 10 bis 13, wobei die Scan-Reihenfolge durch einen Raster-Scan gegeben ist.
  • Beispiel 15: Verfahren nach irgendeinem vorherigen Abschnitt, wobei das Codieren der Blöcke der zweiten Gruppe mit der Intra-Prädiktion Folgendes umfasst:
    das Festlegen eines optimalen Modus mit Intra-Prädiktion für einen aktuellen Block, der codiert werden soll, unter Verwendung von Intra-Prädiktion, aus der Vielzahl von Intra-Prädiktionsmodi, wobei zumindest ein Modus aus der Vielzahl der Modi der Intra-Prädiktionsmodi Pixel von zumindest einem Block der ersten Gruppe von decodierten Blöcken beinhaltet, oder zumindest einen Block aus der zweiten Gruppe von mit der Inter-Prädiktion decodierten Blöcken beinhaltet; und
    das Codieren des aktuellen Blocks aus der zweiten Blockgruppe mit dem optimalen Modus der Intra-Prädiktion.
  • Beispiel 16: Verfahren zum Codieren eines Videostreams, umfassend:
    das Decodieren einer ersten Gruppe von codierten Blöcken mit einem Prozessor unter Verwendung der Inter-Prädiktion, um eine erste Gruppe von codierten Blöcken zu bilden, die zumindest einen Block enthält;
    das Decodieren, mit dem Prozessor, der eine Inter-Prädiktion durchführt, einer zweiten Gruppe von codierten Blöcken, nach dem Decodieren der ersten Gruppe codierter Blöcke, um eine zweite Blockgruppe zu bilden, die mit der Intra-Prädiktion decodiert wurde, unter der Bedingung, dass die zweite Gruppe von codierten Blöcken zumindest einen Block umfasst; das Decodieren mit der Intra-Prädiktion einer zweiten Gruppe von codierten Blöcken nach dem Decodieren der ersten Gruppe von codierten Blöcken unter Verwendung von zumindest einem Block aus der ersten decodierten Blockgruppe oder der zweiten Gruppe von mit der Intra-Prädiktion decodierten Blöcke unter der Bedingung, dass die zweite Gruppe von codierten Blöcken zumindest einen Block umfasst.
  • Beispiel 17: Verfahren von Beispiel 16, des Weiteren umfassend: das Decodieren einer dritten Gruppe von codierten Blöcken mit der Intra-Prädiktion nach dem Decodieren der ersten und der zweiten codierten Blockgruppe unter Verwendung von zumindest einem Block aus entweder der ersten oder der der zweiten Gruppe der mit der Intra-Prädiktion decodierten Blöcke zum Bilden einer dritten Gruppe von decodierten Blöcken unter der Bedingung, dass die dritte Gruppe zumindest einen Block umfasst.
  • Beispiel 18: Verfahren von Beispiel 17, weiterhin umfassend:
    das Entropiedecodieren des Video-Bitstreams, um für jeden Block aus einer Vielzahl von Blöcken des Bildes einen Prädiktionsmodus zu erhalten; und das Zuordnen der Blöcke aus der Vielzahl der Blöcke zur dritten Gruppe der codierten Blöcke unter der Bedingung, dass zumindest einer der Blöcke mit der Intra-Prädiktion codiert wurde, oder die Blöcke eine Vielzahl von Unterblöcken enthalten, von denen jeder mit der Intra-Prädiktion codiert wurde.
  • Beispiel 19: Verfahren von Beispiel 17 oder 18, bei dem die erste Gruppe von codierten Blöcke vor der zweiten Gruppe von codierten Blöcken decodiert wird und die zweite Gruppe von codierten Blöcken vor der dritten Gruppe von codierten Blöcken decodiert wird.
  • Beispiel 20: Verfahren von Beispiel 16, weiterhin umfassend:
    das Entropiecodieren des Video-Bitstreams, um für jeden Block aus einer Vielzahl von Blöcken des Bildes einen Prädiktionsmodus zu erhalten;
    das Zuweisen von Blöcken aus der Vielzahl der Blöcke zur ersten codierten Blockgruppe unter der Bedingung, dass zumindest einer der Blöcke mit der Inter-Prädiktion codiert wurde oder dass die Blöcke eine Vielzahl von Unterblöcken haben, die alle mit der Inter-Prädiktion codiert wurden; und
    das Zuweisen von Blöcken aus der Vielzahl der Blöcke zur zweiten codierten Blockgruppe unter der Bedingung, dass die Blöcke eine Vielzahl von Unterblöcken haben, von denen zumindest ein Unterblock mit der Inter-Prädiktion und ein Unterblock mit der Intra-Prädiktion codiert wurde.
  • Beispiel 21: Vorrichtung zum Codieren eines Videostreams, umfassend:
    einen Speicher; und einen Prozessor, der für die Ausführung der im Speicher abgelegten Anweisungen ausgelegt ist, um:
    eine erste Gruppe von Blöcken mit einem Prozessor unter Verwendung der Inter-Prädiktion zumindest partiell zu codieren, um eine erste Gruppe von codierten Blöcken unter der Bedingung zu bilden, dass die erste Blockgruppe zumindest einen Block umfasst;
    eine erste Gruppe von Blöcken zumindest partiell zu decodieren, um eine erste Gruppe von decodierten Blöcken unter der Bedingung zu bilden, dass die erste Blockgruppe zumindest einen Block umfasst;
    das zumindest partielle Codieren, mit der Inter-Prädiktion, einer zweiten Blockgruppe, nach dem partiellen Codieren der ersten Blockgruppe, um eine zweite Gruppe von mit der Inter-Prädiktion codierten Blöcken unter der Bedingung zu bilden, dass die zweite Blockgruppe zumindest einen Block umfasst;
    die zumindest partielle Decodierung der zweiten Gruppe von Blöcken, die unter Verwendung der Inter-Prädiktion codiert wurden, um eine zweite Gruppe von mit der Inter-Prädiktion decodierten Blöcken unter der Bedingung zu bilden, dass die zweite Blockgruppe zumindest einen Block enthält;
    das Codieren, mit Intra-Prädiktion, von mindestens einem Block aus der zweiten Blockgruppe, nach dem partiellen Codieren der ersten Blockgruppe unter Verwendung von zumindest einem Block aus der ersten Gruppe der decodierten Blöcke oder der zweiten Gruppe der mit der Inter-Prädiktion vorhergesagten Blöcke, um unter der Bedingung, dass diese zumindest einen Block umfasst, eine zweite Gruppe von mit der Intra-Prädiktion vorhergesagten Blöcken zu bilden; und
    das Einfügen der ersten Gruppe von codierten Blöcken, der zweiten Gruppe der mit der Inter-Prädiktion codierten Blöcke und der zweiten Gruppe der mit der Intra-Prädiktion codierten Blöcke in einen codierten Bitstream.
  • Beispiel 22: Vorrichtung von Beispiel 21, wobei der Prozessor zum Ausführen folgender Abläufe ausgelegt ist:
    das Codieren mit der Intra-Prädiktion, von einer dritten Gruppe von Blöcken, nach der partiellen Codierung der ersten Gruppe von Blöcken und dem Codieren der zweiten Gruppe von Blöcken, unter Verwendung von zumindest einem Block aus der ersten Gruppe der decodierten Blöcke oder der zweiten Gruppe der mit der Inter-Prädiktion decodierten Blöcke, um unter der Bedingung, dass diese zumindest einen Block enthält, eine dritte Gruppe von codierten Blöcken zu bilden; und
    das Einfügen der dritten Gruppe von codierten Blöcken in den codierten Bitstream.
  • Beispiel 23: Vorrichtung von Beispiel 22, bei der der Prozessor für die Ausführung folgender Abläufe ausgelegt ist:
    das Berechnen von Restwerten für einen oder mehrere der Prädiktionsmodi für eine Vielzahl von Blöcken des Bildes; und
    das Zuweisen von Blöcken aus der Vielzahl der Blöcke zur dritten Gruppe der Blöcke, da die Blöcke des Bildes im Falle eines Modus der Intra-Prädiktion einen kleinen Rate-Distortions-Aufwand aufweisen.
  • Beispiel 24: Vorrichtung von Beispiel 22 oder 23, wobei der Prozessor zum Ausführen folgender Abläufe ausgelegt ist:
    das Verarbeiten einer Vielzahl von Blöcken des Bildes in einer Scan-Reihenfolge zum Bestimmen eines Prädiktionsmodus für jeden Block; und
    das Zuweisen von Blöcken aus der Vielzahl der Blöcke zur dritten Blockgruppe unter der Bedingung, dass zumindest einer der Blöcke die Intra-Prädiktion verwendet oder die Blöcke eine Vielzahl von Unterblöcken haben, die alle die Intra-Prädiktion nutzen.
  • Beispiel 25: Vorrichtung nach irgendeinem der Beispiele 22 bis 24, wobei der Prozessor darauf ausgelegt ist, die erste Gruppe der Blöcke vor der zweiten Gruppe zumindest partiell zu codieren und die zweite Gruppe der Blöcke vor der dritten Gruppe zumindest partiell zu codieren.
  • Beispiel 26: Vorrichtung nach irgendeinem der Beispiele 22 bis 25, wobei der Prozessor darauf ausgelegt ist, die dritte Blockgruppe durch Folgendes zu codieren:
    das Festlegen eines optimalen Modus der Intra-Prädiktion für einen aktuellen Block der dritten Blockgruppe aus einer Vielzahl von Modi der Intra-Prädiktion, wobei zumindest ein Modus aus der Vielzahl der Modi der Intra-Prädiktion Pixel von zumindest einem Block der ersten Gruppe von decodierten Blöcken enthält, oder zumindest einen Block aus der zweiten Gruppe von mit der Inter-Prädiktion decodierten Blöcken einschließt; und die Codierung des aktuellen Blocks der dritten Blockgruppe wird mit dem optimalen Modus der Intra-Prädiktion durchgeführt.
  • Beispiel 27: Vorrichtung nach irgendeinem der Beispiele 21 bis 26, bei der der Prozessor für die Ausführung folgender Abläufe ausgelegt ist:
    das Berechnen von Restwerten für einen oder mehrere der Prädiktionsmodi für eine Vielzahl von Blöcken des Bildes;
    das Zuweisen von Blöcken aus der Vielzahl der Blöcke zur ersten Blockgruppe, da die Blöcke im Falle der Verwendung eines Modus' der Inter-Prädiktion einen geringen Rate-Distortions-Aufwand haben; die Zuweisung von Blöcken aus der Vielzahl der Blöcke zur zweiten Blockgruppe, da die Blöcke eine Vielzahl von Unterblöcken haben, von denen zumindest einer aus der Vielzahl der Unterblöcke bei Verwendung eines Modus' der Inter-Prädiktion einen geringen Rate-Distortions-Aufwand hat und zumindest einer aus der Vielzahl der Unterblöcke bei Verwendung eines Modus' der Intra-Prädiktion einen geringen Rate-Distortions-Aufwand hat.
  • Beispiel 28: Die Vorrichtung aus einem beliebigen der Bespiele 21 bis 27, bei der der Prozessor für die Ausführung folgender Abläufe ausgelegt ist:
    das Verarbeiten einer Vielzahl von Blöcken des Bildes in einer Scan-Reihenfolge zur Bestimmung eines Prädiktionsmodus für jeden Block;
    das Zuweisen von Blöcken aus der Vielzahl der Blöcke zur ersten Blockgruppe unter der Bedingung, dass zumindest einer der Blöcke die Inter-Prädiktion verwendet oder die Blöcke eine Vielzahl von Unterblöcken haben, die alle die Inter-Prädiktion nutzen; und
    das Zuweisen von Blöcken aus der Vielzahl der Blöcke zur zweiten Blockgruppe unter der Bedingung, dass die Blöcke eine Vielzahl von Unterblöcken haben, von denen zumindest ein Unterblock die Inter-Prädiktion und ein Unterblock die Intra-Prädiktion verwendet.
  • Beispiel 29: Vorrichtung nach irgendeinem der Beispiele 21 bis 28, wobei der Prozessor dafür ausgelegt ist, die zweite mit der Intra-Prädiktion zu codierende Blockgruppe durch Folgendes zu codieren:
    das Festlegen eines optimalen Modus aus einer Vielzahl von Modi der Intra-Prädiktion für einen aktuellen mit der Intra-Prädiktion zu codierenden Block der zweiten Blockgruppe, wobei zumindest ein Modus aus der Vielzahl der Modi der Intra-Prädiktion Pixel von zumindest einem Block der ersten Gruppe von decodierten Blöcken enthält, oder zumindest einen Block aus der zweiten Gruppe von mit der Inter-Prädiktion decodierten Blöcken einschließt; und
    das Codieren des aktuellen Blocks aus der zweiten Blockgruppe mit dem optimalen Modus der Intra-Prädiktion.
  • Beispiel 30: Vorrichtung zur Decodierung eines Videostreams, die für folgende Abläufe ausgelegt ist:
    das Decodieren einer ersten Gruppe von codierten Blöcken mit einem Prozessor unter Verwendung der Inter-Prädiktion, um eine erste Gruppe von decodierten Blöcken zu bilden, die zumindest einen Block umfasst;
    das Decodieren, mit dem Prozessor, der die Inter-Prädiktion durchführt, einer zweiten Gruppe von codierten Blöcken nach dem Decodieren der ersten Gruppe von codierten Blöcken, um eine zweite Gruppe von mit der Inter-Prädiktion decodierten Blöcken unter der Bedingung zu bilden, dass die zweite codierte Blockgruppe zumindest einen Block enthält; und
    Decodieren, mit der Intra-Prädiktion, der zweiten Gruppe von codierten Blöcken, nach dem Decodieren der ersten codierten Blockgruppe unter Verwendung von zumindest einem Block aus der ersten Gruppe der decodierten Blöcke oder aus der zweiten Gruppe der mit der Inter-Prädiktion decodierten Blöcke, um unter der Bedingung, dass diese zumindest einen Block enthält, eine zweite Gruppe von codierten Blöcken zu bilden.
  • Die vorstehend beschriebenen Ausführungsformen, Implementierungen und Aspekte wurden zum leichten Verständnis der vorliegenden Offenbarung beschrieben und schränken diese in keiner Weise ein. Vielmehr soll die Offenbarung verschiedene Änderungen und ähnliche Arrangements im Umfang der beigefügten Ansprüche umfassen, und der Umfang soll im weitest möglichen Sinne ausgelegt werden, so dass er all' solche Änderungen und entsprechende Strukturen innerhalb der Zulässigkeit der Gesetze ermöglicht.

Claims (4)

  1. Vorrichtung zum Codieren eines Videostreams, umfassend: einen Speicher; und einen Prozessor, der zum Ausführen der im Speicher abgelegten Anweisungen ausgelegt ist, zum: Codieren einer ersten Gruppe von Blöcken mit der Inter-Prädiktion, um eine erste Gruppe von mit der Inter-Prädiktion codierten Blöcken zu bilden, wobei die erste Gruppe der Blöcke zumindest einige aus einer Vielzahl von Blöcken mit denselben Pixelmaßen im aktuellen Bild des Videostreams umfasst; Decodieren der ersten Gruppe von codierten Blöcken zum Bilden einer ersten Gruppe von decodierten Blöcken; Codieren, mithilfe der Inter-Prädiktion, von Unterblöcken einer zweiten Gruppe von Blöcken, um eine zweite Gruppe von mit der Inter-Prädiktion codierten Blöcken zu bilden, wobei die zweite Gruppe der Blöcke zumindest einige aus einer Vielzahl von Blöcken im aktuellen Bild umfasst, von denen zumindest einer mit der Intra-Prädiktion codiert werden soll; Decodieren der zweiten Gruppe der mit der Inter-Prädiktion codierten Blöcke zum Bilden einer zweiten Gruppe von decodierten Blöcken; Codieren, mithilfe der Intra-Prädiktion, von zumindest einem Unterblock der zweiten Blockgruppe unter Verwendung von Pixelwerten von zumindest einem aus der ersten Gruppe der decodierten Blöcke oder der zweiten Gruppe der mit der Inter-Prädiktion decodierten Blöcke, um eine zweite Gruppe von mit der Intra-Prädiktion codierten Blöcken zu bilden; und Einfügen der ersten Gruppe von codierten Blöcken, wobei die zweite Gruppe der mit der Inter-Prädiktion codierten Blöcke und die zweite Gruppe der mit der Intra-Prädiktion codierten Blöcke in einen codierten Bitstream eingefügt werden.
  2. Vorrichtung nach Anspruch 1, wobei der Prozessor zum Ausführen der folgenden Abläufe ausgelegt ist: das Codieren einer dritten Blockgruppe mit der Intra-Prädiktion unter Verwendung von Pixelwerten aus zumindest einem Block der zweiten Gruppe der decodierten Blöcke oder der zweiten Gruppe der mit der Inter-Prädiktion decodierten Blöcke, um eine dritte Gruppe codierter Blöcke zu bilden, die zumindest einige aus der Vielzahl der Blöcke des aktuellen Bildes umfasst; und das Einfügen der dritten Gruppe von codierten Blöcken in den codierten Bitstream.
  3. Vorrichtung aus dem Anspruch 2, wobei der Prozessor dafür ausgelegt ist, die erste Gruppe der Blöcke vor zumindest einem Unterblock der zweiten Gruppe von Blöcken zu codieren und den zumindest einen Unterblock der zweiten Gruppe von Blöcken vor der dritten Blockgruppe zu codieren.
  4. Vorrichtung zum Decodieren eines Videostreams, umfassend: einen Speicher; und einen Prozessor, der zum Ausführen der im Speicher abgelegten Anweisungen ausgelegt ist, zum: Decodieren einer ersten Gruppe von codierten Blöcken mit der Inter-Prädiktion zum Bilden einer ersten Gruppe von decodierten Blöcken zu decodieren, wobei die erste Gruppe der decodierten Blöcke zumindest einige aus einer Vielzahl von Blöcken im aktuellen Bild mit denselben Pixelmaßen umfasst; Decodieren, mit der Inter-Prädiktion, von Unterblöcken einer zweiten Gruppe von codierten Blöcken zum Bilden einer zweiten Gruppe von mit der Inter-Prädiktion decodierten Blöcken, wobei die zweite Gruppe der Blöcke zumindest einige aus einer Vielzahl von Blöcken im aktuellen Bild des Videostreams umfasst, von denen zumindest ein Unterblock mit der Intra-Prädiktion codiert wurde; und Decodieren, mit der Intra-Prädiktion, von zumindest einem Unterblock der zweiten Gruppe von codierten Blöcken unter Verwendung von Pixelwerten von zumindest einem aus der ersten Gruppe der decodierten Blöcke oder der zweiten Gruppe der mit der Inter-Prädiktion decodierten Blöcke, um eine zweite Gruppe von mit der Intra-Prädiktion decodierten Blöcken zu bilden.
DE202016008164.1U 2016-03-25 2016-12-23 Intelligente Sortierung der rekursiven Blockaufteilung für die erweiterte Intra-Prädiktion bei der Videocodierung Active DE202016008164U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/081,082 2016-03-25
US15/081,082 US10390026B2 (en) 2016-03-25 2016-03-25 Smart reordering in recursive block partitioning for advanced intra prediction in video coding

Publications (1)

Publication Number Publication Date
DE202016008164U1 true DE202016008164U1 (de) 2017-06-20

Family

ID=57794392

Family Applications (2)

Application Number Title Priority Date Filing Date
DE102016125604.8A Pending DE102016125604A1 (de) 2016-03-25 2016-12-23 Intelligente Sortierung der rekursiven Blockaufteilung für die erweiterte Intra-Prädiktion bei der Videocodierung
DE202016008164.1U Active DE202016008164U1 (de) 2016-03-25 2016-12-23 Intelligente Sortierung der rekursiven Blockaufteilung für die erweiterte Intra-Prädiktion bei der Videocodierung

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE102016125604.8A Pending DE102016125604A1 (de) 2016-03-25 2016-12-23 Intelligente Sortierung der rekursiven Blockaufteilung für die erweiterte Intra-Prädiktion bei der Videocodierung

Country Status (5)

Country Link
US (2) US10390026B2 (de)
CN (1) CN107231557B (de)
DE (2) DE102016125604A1 (de)
GB (2) GB2582118B (de)
WO (1) WO2017164951A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190253624A1 (en) * 2017-07-17 2019-08-15 Ki Baek Kim Image data encoding/decoding method and apparatus
CN111971959B (zh) * 2018-02-09 2024-06-14 弗劳恩霍夫应用研究促进协会 基于分区的帧内编码概念
WO2019229683A1 (en) 2018-05-31 2019-12-05 Beijing Bytedance Network Technology Co., Ltd. Concept of interweaved prediction
US10715784B2 (en) * 2018-08-24 2020-07-14 Verizon Patent And Licensing Inc. Methods and systems for preserving precision in compressed depth data representative of a scene
US10735744B2 (en) * 2018-10-22 2020-08-04 At&T Intellectual Property I, L.P. Adaptive bitrate streaming techniques
WO2020140951A1 (en) 2019-01-02 2020-07-09 Beijing Bytedance Network Technology Co., Ltd. Motion vector derivation between color components
CN114342408A (zh) * 2019-08-26 2022-04-12 北京字节跳动网络技术有限公司 视频编码中帧内编码模式的扩展

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003021971A1 (en) * 2001-08-28 2003-03-13 Ntt Docomo, Inc. Moving picture encoding/transmission system, moving picture encoding/transmission method, and encoding apparatus, decoding apparatus, encoding method, decoding method, and program usable for the same
US7157283B2 (en) * 2002-08-02 2007-01-02 3M Innovative Properties Company Continuous process for the production of combinatorial libraries of modified materials
EP1696673A1 (de) 2004-09-01 2006-08-30 Mitsubishi Electric Information Technology Centre Europe B.V. Intrabildschätzung in zeitlich hochpassgefilterten Bildern für Videokodierung mit Wavelets
KR100750136B1 (ko) * 2005-11-02 2007-08-21 삼성전자주식회사 영상의 부호화, 복호화 방법 및 장치
KR20100095992A (ko) 2009-02-23 2010-09-01 한국과학기술원 비디오 부호화에서의 분할 블록 부호화 방법, 비디오 복호화에서의 분할 블록 복호화 방법 및 이를 구현하는 기록매체
KR101379188B1 (ko) 2010-05-17 2014-04-18 에스케이 텔레콤주식회사 인트라 블록 및 인터 블록이 혼합된 코딩블록을 이용하는 영상 부호화/복호화 장치 및 그 방법
US9378185B2 (en) * 2010-09-30 2016-06-28 Texas Instruments Incorporated Transform and quantization architecture for video coding and decoding
KR101383775B1 (ko) * 2011-05-20 2014-04-14 주식회사 케이티 화면 내 예측 방법 및 장치
CN106658014B (zh) * 2011-06-30 2021-01-08 三菱电机株式会社 图像编码装置及方法、图像解码装置及方法
US9544612B2 (en) * 2012-10-04 2017-01-10 Intel Corporation Prediction parameter inheritance for 3D video coding
US9350988B1 (en) 2012-11-20 2016-05-24 Google Inc. Prediction mode-based block ordering in video coding
US9641853B2 (en) * 2013-04-15 2017-05-02 Futurewei Technologies, Inc. Method and apparatus of depth prediction mode selection
WO2015058397A1 (en) 2013-10-25 2015-04-30 Microsoft Technology Licensing, Llc Representing blocks with hash values in video and image coding and decoding
US9715559B2 (en) 2014-03-17 2017-07-25 Qualcomm Incorporated Hash-based encoder search for intra block copy

Also Published As

Publication number Publication date
GB201621998D0 (en) 2017-02-08
GB2548669B (en) 2020-09-16
GB2548669A (en) 2017-09-27
US20190342559A1 (en) 2019-11-07
US10506240B2 (en) 2019-12-10
CN107231557A (zh) 2017-10-03
WO2017164951A1 (en) 2017-09-28
GB2582118A (en) 2020-09-09
CN107231557B (zh) 2020-05-12
US20170280143A1 (en) 2017-09-28
GB202009462D0 (en) 2020-08-05
DE102016125604A1 (de) 2017-09-28
GB2582118B (en) 2020-12-02
US10390026B2 (en) 2019-08-20

Similar Documents

Publication Publication Date Title
DE102016125117B4 (de) Bewegungsvektorkodierung mit dynamischen Referenzbewegungsvektoren
DE102016125379B4 (de) Bewegungsvektoraufteilung des letzten Frames
DE202016008164U1 (de) Intelligente Sortierung der rekursiven Blockaufteilung für die erweiterte Intra-Prädiktion bei der Videocodierung
DE102016125094A1 (de) Auswahl des Referenz-Bewegungsvektors über Referenzeinzelbild Puffer-Nachverfolgung
DE602004008763T2 (de) Videotranskodierung
DE60220106T2 (de) Verfahren und Vorrichtung zur Reduzierung von Störungen in dekodierten Bildern mit Nachfilterung
DE202016008175U1 (de) Adaptive gerichtete Intra-Prädiktion mit Blockgröße
DE202016008178U1 (de) Bewegungsvektorvorhersage mittels eines vorhergehenden Einzelbildresiduums
DE60309375T2 (de) Parametrisierung für verlauf-kompensation
DE112017006657T5 (de) Adaptive planare Prädiktion mit ungleichen Gewichten
DE202012013410U1 (de) Bildkompression mit SUB-Auflösungsbildern
DE102016225270A1 (de) Verfahren, anwendungsprozessor, und mobiles endgerät zum verarbeiten eines referenzbildes
DE102016125125B4 (de) Tile-Copying für Videokompression
DE202016008155U1 (de) Hybrid-Prädiktionsmodi zur Kodierung von Videos
DE20321894U1 (de) Verbesserter Videodecodierer und zugehöriges Computergerät
DE112017003212T5 (de) Verfahren und System zur Videocodierung mit Kontextdecodierung und Rekonstruktionsumgehung
DE112016002026T5 (de) Verfahren und System zum adaptiven Referenz-Frame-Caching für die Videocodierung
DE112015003805T5 (de) Bewegungskompensierte partitionierung
DE112022004563T5 (de) Hybride, auf einem neuronalen netzwerk basierende, end-to-end-bild- und video-codierverfahren
DE102016125086A1 (de) Adaptiver direktionaler Schleifenfilter
DE69915843T2 (de) Teilbandkodierung/-dekodierung
DE102016015996B3 (de) Anpassungsfähige Kachel-Daten-Grössenkodierung für Video- und Bildkompression
DE102011006036B4 (de) Verfahren und Vorrichtungen zur Bildung eines Prädiktionswertes
DE112015005159B4 (de) Kodierung im alternierenden blockbeschränkten entscheidungsmodus
DE112015004399T5 (de) Frequenzbereichsentstörung

Legal Events

Date Code Title Description
R207 Utility model specification
R081 Change of applicant/patentee

Owner name: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUN, US

Free format text: FORMER OWNER: GOOGLE INC., MOUNTAIN VIEW, CALIF., US

R082 Change of representative

Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE

R150 Utility model maintained after payment of first maintenance fee after three years
R151 Utility model maintained after payment of second maintenance fee after six years