DE102018129344A1 - Bereichsadaptive, dateneffiziente Erzeugung von Partitionierungsentscheidungen und Modusentscheidungen zur Videocodierung - Google Patents

Bereichsadaptive, dateneffiziente Erzeugung von Partitionierungsentscheidungen und Modusentscheidungen zur Videocodierung Download PDF

Info

Publication number
DE102018129344A1
DE102018129344A1 DE102018129344.5A DE102018129344A DE102018129344A1 DE 102018129344 A1 DE102018129344 A1 DE 102018129344A1 DE 102018129344 A DE102018129344 A DE 102018129344A DE 102018129344 A1 DE102018129344 A1 DE 102018129344A1
Authority
DE
Germany
Prior art keywords
partition
mode
decision
partitions
luma
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.)
Pending
Application number
DE102018129344.5A
Other languages
English (en)
Inventor
Nader Mahdi
Chekib NOUIRA
Hassen Guermazi
Faouzi Kossentini
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE102018129344A1 publication Critical patent/DE102018129344A1/de
Pending legal-status Critical Current

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/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/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • 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/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • 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/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • 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
    • H04N19/51Motion estimation or motion compensation
    • 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

Landscapes

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

Abstract

Techniken in Bezug auf die Detektion von Merkmalen und die Änderung einer Codierung auf der Grundlage derartiger detektierter Merkmale für eine verbesserte Datenverwendungseffizienz werden diskutiert. Derartige Techniken enthalten das Erzeugen einer Partitionierungsentscheidung für einen Block und von Codierungsmodusentscheidungen für Partitionen des individuellen Blocks unter Verwendung der detektierten Merkmale oder Indikatoren davon auf der Grundlage des Erzeugens einer Auswertungsentscheidung für Luma und Chroma oder lediglich für Luma für eine Partition, des Erzeugens einer Zusammenführung- oder Auslassmodusentscheidung für eine Partition, die eine anfängliche Zusammenführungsmodusentscheidung aufweist, des Erzeugens lediglich eines Teils eines Transformationskoeffizientenblocks für eine Partition und/oder des Auswertens von 4×4-Partitionen lediglich für jede Partition der Partitionen, die anfängliche 8×8-Codierungspartitionen sind.

Description

  • HINTERGRUND
  • In Komprimierungs-/Dekomprimierungssystemen (Codec-Systeme) sind Komprimierungseffizienz, Datennutzungseffizienz und Videoqualität wichtige Leistungsfähigkeitskriterien. Die optische Qualität ist ein wichtiger Aspekt der Anwendererfahrung in vielen Videoanwendungen und die Komprimierungseffizienz, die durch die Datennutzungseffizienz beeinflusst wird, beeinflusst die erforderliche Menge von Datenspeicher, um Videodateien zu speichern, und/oder die erforderliche Menge an Bandbreite, um Videoinhalte zu senden und/oder zu streamen. Zum Beispiel komprimiert ein Videocodierer Videoinformationen derart, dass mehr Information über eine gegebene Bandbreite gesendet werden kann, in einem gegeben Speicherplatz gespeichert werden kann oder dergleichen. Das komprimierte Signal oder die komprimierten Daten können dann mittels eines Decoders decodiert werden, der das Signal oder die Daten zur Anzeige für einen Anwender decodiert oder dekomprimiert. In den meisten Implementierungen ist eine höhere optische Qualität mit stärkerer Komprimierung wünschenswert. Darüber hinaus sind die Codiergeschwindigkeit und die Codiereffizienz wichtige Aspekte der Videocodierung.
  • Es kann vorteilhaft sein, die Datennutzungseffizienz und die Komprimierungsrate durch die Datennutzungseffizienz zu verbessern, während die Videoqualität erhalten oder sogar verbessert wird. In Bezug auf diese und weitere Überlegungen waren die vorliegenden Verbesserungen erforderlich. Derartige Verbesserungen können wesentlich sein, da sich der Wunsch, Videodaten zu komprimieren und zu senden, weiter verbreitet.
  • Figurenliste
  • Der hier beschriebene Stoff ist in den begleitenden Figuren beispielhaft und nicht einschränkend dargestellt. Zur Vereinfachung und Verdeutlichung der Darstellung sind in den Figuren dargestellte Elemente nicht notwendigerweise maßstabsgetreu gezeichnet. Zum Beispiel können zur Verdeutlichung die Abmessungen einiger Elemente in Bezug auf weitere Elemente übertrieben sein. Ferner wurden Bezugszeichen wo es für angemessen erachtet wurde zwischen den Figuren wiederholt, um übereinstimmende oder sich entsprechende Elemente zu bezeichnen. In den Figuren zeigen:
    • 1 ein veranschaulichendes Diagramm eines Beispielsystems zum Bereitstellen von Videocodierung;
    • 2 eine Beispielgruppe von Bildern;
    • 3 ein Beispielvideobild;
    • 4 ein veranschaulichendes Diagramm eines Beispielpartitionierungsentscheidungsmoduls und Beispielmodusentscheidungsmoduls zum Bereitstellen von LCU-Partitionen und internen/übergreifenden Modusdaten;
    • 5 ein veranschaulichendes Diagramm eines Beispielcodierers zum Erzeugen eines Bitstroms;
    • 6 ein Blockdiagramm eines integrierten Beispielcodiersystems;
    • 7 ein Flussdiagramm, das einen Beispielvorgang zum wahlweisen Verwenden von Chroma-Informationen bei Partitionierungsentscheidungen und Codierungsmodusentscheidungen darstellt;
    • 8 ein Flussdiagramm, das einen Beispielprozess zum Erzeugen einer Zusammenführungsmodusentscheidung oder Auslassmodusentscheidung für eine Partition, die eine anfängliche Zusammenführungsmodusentscheidung aufweist, darstellt;
    • 9 ein Flussdiagramm, das einen Beispielprozess zum Bestimmen einer Partitionierungsentscheidung und von Codierungsmodusentscheidungen für einen Block durch Erzeugen lediglich eines Teils eines Transformationskoeffizientenblocks für einen Teil des Blocks darstellt;
    • 10 eine Beispieldatenstruktur, die einer Beispielteiltransformation entspricht;
    • 11 eine Beispieldatenstruktur, die einer weiteren Beispielteiltransformation entspricht;
    • 12 ein Flussdiagramm, das einen Beispielprozess zum Bestimmen einer Partitionierungsentscheidung und von Codierungsmodusentscheidungen für einen Block durch Erzeugen lediglich eines Teils eines Transformationskoeffizientenblocks für eine Partition des Blocks auf der Grundlage davon, ob die Partition sich in einem optisch wichtigen Bereich befindet, darstellt;
    • 13 ein Flussdiagramm, das einen Beispielprozess zum Bestimmen einer Partitionierungsentscheidung und von Codierungsmodusentscheidungen für einen Block durch Erzeugen lediglich eines Teils eines Transformationskoeffizientenblocks für eine Partition des Blocks auf der Grundlage einer Kantendetektion im Block darstellt;
    • 14 ein Flussdiagramm, das einen Beispielprozess zum wahlweisen Auswerten von 4×4-Partitionen beim Videocodieren darstellt;
    • 15 ein veranschaulichendes Diagramm eines Beispieldetektors für flache und verrauschte Bereiche;
    • 16 ein Flussdiagramm, das einen Beispielprozess zur Videocodierung darstellt;
    • 17 ein veranschaulichendes Diagramm eines Beispielsystems zur Videocodierung;
    • 18 ein veranschaulichendes Diagramm eines Beispielsystems; und
    • 19 eine Beispieleinrichtung, die mindestens einigen Implementierungen der vorliegenden Offenlegung entspricht.
  • GENAUE BESCHREIBUNG
  • Eine oder mehrere Ausführungsformen oder Implementierungen werden nun mit Bezug auf die beigefügten Figuren beschrieben. Während bestimmte Konfigurationen und Anordnungen diskutiert werden, versteht es sich, dass dies lediglich zur Veranschaulichung erfolgt. Einschlägiges Fachpersonal wird erkennen, dass weitere Konfigurationen und Anordnungen eingesetzt werden können, ohne vom Geist und Umfang der Beschreibung abzuweichen. Es wird für die einschlägige Fachwelt deutlich werden, dass hier beschriebene Techniken und/oder Anordnungen außerdem in einer Vielzahl weiterer Systeme und Anwendungen außer den hier Beschriebenen eingesetzt werden können.
  • Während die folgende Beschreibung verschiedene Implementierungen darlegt, die in Architekturen wie z. B. System-on-a-Chip-Architekturen (SoC-Architekturen) auftreten können, sind Implementierungen der hier beschriebenen Techniken und/oder Anordnungen nicht auf bestimmte Architekturen und/oder Rechensysteme beschränkt und können für ähnliche Zwecke durch eine beliebige Architektur und/oder ein beliebiges Rechensystem implementiert werden. Beispielsweise können verschiedene Architekturen, die z. B. mehrere Chips integrierter Schaltungen (IC-Chips) und/oder Baugruppen integrierter Schaltungen (IC-Baugruppen) einsetzen, verschiedene Recheneinrichtungen und/oder Unterhaltungselektronikeinrichtungen (CE-Einrichtungen) wie z. B. Set-Top-Boxen, Smartphones usw. die hier beschriebenen Techniken und/oder Anordnungen implementieren. Ferner kann, während die folgende Beschreibung zahlreiche konkrete Details wie z. B. Logikimplementierungen, Typen und Zusammenhänge von Systemkomponenten, Logikpartitionierungs-Entscheidungen/Logikintegrations-Entscheidungen usw. darlegen kann, der beanspruchte Gegenstand ohne derart konkrete Details ausgeübt werden. In weiteren Fällen kann gewisser Stoff wie z. B. Steuerstrukturen und vollständige Software-Anweisungsabfolgen nicht im Detail gezeigt sein, um den hier offenbarten Stoff nicht zu verschleiern.
  • Der hier offenbarte Stoff kann in Hardware, Firmware, Software oder beliebigen Kombinationen davon implementiert werden. Der hier offenbarte Stoff kann außerdem als Anweisungen implementiert werden, die in einem maschinenlesbaren Medium gespeichert sind und durch einen oder mehrere Prozessoren gelesen und ausgeführt werden. Ein maschinenlesbares Medium kann ein beliebiges Medium und/oder einen beliebigen Mechanismus zum Speichern oder Übertragen von Informationen in einer von einer Maschine (z. B. einer Recheneinrichtung) lesbaren Form enthalten. Zum Beispiel kann ein maschinenlesbares Medium einen Festwertspeicher (ROM); einen Schreib-/Lese-Speicher (RAM); ein Magnetscheibenspeichermedium; optische Speichermedien; Flash-Speichereinrichtungen; elektrische, optische, akustische oder weitere Formen sich ausbreitender Signale (z. B. Trägerwellen, Infrarotsignale, Digitalsignale usw.) und weiteres enthalten.
  • Bezüge in der Spezifikation auf „irgendeine Implementierung“, „eine Implementierung“, „eine Beispielimplementierung“ usw. zeigen an, dass die beschriebene Implementierung ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft enthalten kann, aber nicht jede Ausführungsform muss notwendigerweise das bestimmte Merkmal, die bestimmte Struktur oder die bestimmte Eigenschaft enthalten. Außerdem beziehen sich derartige Wortverbindungen auf dieselbe Implementierung. Ferner wird dann, wenn ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft in Verbindung mit einer Ausführungsform beschrieben wird, geltend gemacht, dass das Bewirken eines solchen Merkmals, einer solchen Struktur oder einer solchen Eigenschaft in Verbindung mit weiteren Implementierungen im Kenntnisbereich eines Fachmanns liegt, ungeachtet dessen ob, es hier explizit beschrieben ist.
  • Verfahren, Einrichtungen, Vorrichtungen, Rechenplattformen und Gegenstände werden hier in Beziehung mit Videocodierung und insbesondere mit dem Implementieren von Detektoren von Videoeigenschaften, um das Videocodieren zum Erreichen einer verbesserten Effizienz zu ändern, beschrieben.
  • Hier diskutierte Techniken stellen eine verbesserte Datennutzungseffizienz durch Modifizieren von Codiervorgängen auf der Grundlage detektierter Merkmale eines Bereichs eines Bildes bereit. Wie hierin verwendet, kann der Begriff Bereich einen beliebigen Block eines Bildes, eine Codierungseinheit eines Bildes, eine größte Codierungseinheit eines Bildes, einen Bereich, der mehrere zusammenhängende Blöcke eines Bildes enthält, eine Partition eines Blocks oder einer Codierungseinheit, einen Abschnitt eines Bildes oder das Bild selbst enthalten. Darüber hinaus kann der Begriff Partition eine Partition zum Codieren oder eine Partition zur Transformation anzeigen. Die detektierten Merkmale, die durch Detektionsindikatoren angezeigt werden können, können beliebige Merkmale, die hier diskutiert werden, enthalten, wie z. B. einen Luma-Durchschnitt eines Bereichs (d. h. den Durchschnitt von Luma-Werten für einen Bereich), einen Durchschnitt eines Chroma-Kanals eines Bereichs (d. h. den Durchschnitt von Chroma-Werten für einen bestimmten Chroma-Kanal) und/oder einen Durchschnitt eines zweiten Chroma-Kanals eines Bereichs (d. h. den Durchschnitt von Chroma-Werten für einen weiteren bestimmten Chroma-Kanal), Indikatoren des Ergebnisses des Vergleichs derartiger Werte zu Schwellenwerten (z. B. ob der Durchschnitt einen Schwellenwert überschreitet), das Zeitniveau des Bereichs (z. B. ob der Bereich ein I-Abschnitt, ein B-Abschnitt einer Basisschicht, ein B-Abschnitt keiner Basisschicht usw. ist), einen Betrag einer Differenz zwischen Codierungskosten eines anfänglichen Auslassmodus und Codierungskosten eines anfänglichen Zusammenführungsmodus für einen Bereich, einen Indikator, ob ein Bereich eine Kante enthält, eine Indikator der Stärke einer solchen Kante, einen Indikator, ob ein Bereich in einer aufgedeckten Fläche ist oder ein aufgedeckter Bereich ist, einen anfänglich besten internen Modus eines Bereichs oder weitere, wie hier diskutiert wird.
  • Derartige detektierte Merkmale oder Detektionsindikatoren werden dann verwendet, um die Codierung wie hier weiter diskutiert wird zu ändern. Derartige Codierungsänderungen können die Auswertung von Luma alleine bzw. die Auswertung von Luma und Chroma für Partitionierungsentscheidungen und/oder Codierungsmodi für einen Block, die Verwendung von Luma und Chroma lediglich für Zusammenführungsmodusentscheidungen oder Auslassmodusentscheidungen, die Verwendung anfänglicher Zusammenführungsmodusentscheidung oder Auslassmodusentscheidung ohne weitere Auswertung in einem Codierdurchlauf, die Erzeugung lediglich von Abschnitten von Transformationskoeffizientenblöcken in einer lokalen Decodierschleife (d. h. kein Erzeugen vollständiger Transformationskoeffizientenblöcke in einigen Fällen zur Verbesserung der Effizienz), eine Auswertung von internen 4×4-Modi zusätzlich zu einer Auswertung von 8×8-Codierungsmodi und wie hier diskutiert wird weiteres enthalten.
  • Die diskutierten detektierten Merkmale oder Detektionsindikatoren können unter Verwendung von ursprünglichen Videoinhalten (z. B. ohne Verwendung in der lokalen Decodierschleife rekonstruierter Pixel) erzeugt werden und können im Kontext eines entkoppelten Videocodierers, der die Erzeugung einer endgültigen Partitionierungsentscheidung und zugeordneter anfänglicher Codierungsmodusentscheidungen auf der Grundlage der Verwendung lediglich von Quellabtastwerten von einer vollständig standardkonformen Codierung mit einer konformen lokalen Decodierschleife entkoppelt, oder im Kontext eines integrierten Codierers, der Partitionierungsentscheidungen und Codierungsmodusentscheidungen unter Verwendung rekonstruierter Abtastwerte aus einer lokalen Decodierschleife erzeugt, implementiert werden. Wie hierin verwendet kann der Begriff Abtastwert oder Pixelabtastwert jeder geeignete Pixelwert sein. Der Begriff ursprünglicher Pixelabtastwert wird verwendet, um Abtastwerte oder Werte von Eingangsvideos anzuzeigen und sie rekonstruierten Pixelabtastwerten, die keine ursprünglichen Pixelabtastwerte sind, sondern nach Codiervorgängen und Decodiervorgängen in einem standardkonformen Codierer rekonstruiert werden, gegenüberzustellen.
  • 1 ist ein veranschaulichendes Diagramm eines Beispielsystems 100 zum Bereitstellen von Videocodierung, das gemäß mindestens einigen Implementierungen der vorliegenden Offenlegung ausgelegt ist. Wie in 1 gezeigt ist, enthält System 100 ein Partitionierungs- und Modusentscheidungsmodul 101 und einen Codierer 102. Wie gezeigt ist, nimmt das Partitionierungs- und Modusentscheidungsmodul 101, das als ein Partitionierungs-, Bewegungsschätzungs- und Modusentscheidungsmodul oder dergleichen charakterisiert werden kann, das Eingangsvideo 111 und wahlweise rekonstruierte Bilder 114 auf und das Partitionierungs- und Modusentscheidungsmodul 101 erzeugt Partitionen der größten Codierungseinheit (LCU-Partitionen) und entsprechende Codierungsmodusdaten 112 (interne/übergreifende Modi). Zum Beispiel stellt das Partitionierungs- und Modusentscheidungsmodul 101 für jede LCU jedes Bildes des Eingangsvideos 111 eine Partitionierungsentscheidung (d. h. Daten, die anzeigen, wie die LCU in Codierungseinheiten/Vorhersageeinheiten/Transformationseinheiten (CU/PU/TU) partitioniert werden soll), einen Codierungsmodus für jede CU (d. h. einen übergreifenden Modus, einen internen Modus oder dergleichen) und wenn nötig Informationen für den Codierungsmodus (d. h. einen Bewegungsvektor für die übergreifende Codierung) bereit. Wie hier verwendet wird der Begriff Partition verwendet, um einen beliebigen Unterblock oder Unterbereich eines Blocks wie z. B. eine Partition zur Codierung, eine Partition zur Transformation oder dergleichen anzuzeigen. Zum Beispiel kann im Kontext eines Blocks, der eine größte Codierungseinheit ist, eine Partition eine Codierungseinheit (z. B. CU) oder eine Transformationseinheit (z. B. TU) sein. Eine Transformationseinheit kann gleich groß oder kleiner als eine Codierungseinheit sein.
  • Wie gezeigt ist, nimmt der Codierer 102 LCU-Partitionen und interne/übergreifende Modusdaten 112 auf und der Codierer 102 erzeugt den Bitstrom 113 wie z. B. einen standardkonformen Bitstrom und rekonstruierte Bilder 114. Zum Beispiel implementiert der Codierer 102 LCU-Partitionen und interne/übergreifende Modusdaten 112. In entkoppelten Codiererausführungsformen implementiert der Codierer 102 endgültige Entscheidungen, die durch das Partitionierungs- und Modusentscheidungsmodul 101 getroffen werden, passt wahlweise beliebige anfängliche Modusentscheidungen, die durch das Partitionierungs- und Modusentscheidungsmodul 101 getroffen werden, an und implementiert derartige Partitionierungs- und Modusentscheidungen, um den standardkonformen Bitstrom 113 zu erzeugen. In derartigen Ausführungsformen können rekonstruierte Bilder 114 erzeugt werden, um als Bezugsbilder im Codierer 102 zu dienen, jedoch werden derartige rekonstruierte Bilder 114 im Partitionierungs- und Modusentscheidungsmodul 101 nicht verwendet. In integrierten Codiererimplementierungen implementiert der Codierer 102 Entscheidungen, die durch das Partitionierungs- und Modusentscheidungsmodul 101 getroffen werden und implementiert derartige Partitionierungsentscheidungen und Modusentscheidungen, um den standardkonformen Bitstrom 113 und rekonstruierte Bilder 114 zu erzeugen. Derartige rekonstruierte Bilder 114 werden bei der Erzeugung von Partitionierungsentscheidungen und Modusentscheidungen für nachfolgende LCUs des Eingangsvideos 111 verwendet.
  • Wie gezeigt ist, nimmt das System 100 ein Eingangsvideo 111 zur Codierung auf und das System stellt eine Videokomprimierung bereit, um den Bitstrom 113 zu erzeugen, derart, dass das System 100 ein Videocodierer sein kann, der mittels eines Computers, einer Rechenvorrichtung oder dergleichen implementiert ist. Der Bitstrom 113 kann ein beliebiger geeigneter Bitstrom wie z. B. ein standardkonformer Bitstrom sein. Zum Beispiel kann der Bitstrom 113 zu H.264/MPEG-4 fortschrittlicher Videocodierung (AVC) standardkonform, zu H.265 hocheffizienter Videocodierung (HEVC) standardkonform, zu VP9 standardkonform usw. sein. Das System 100 kann mittels einer beliebigen Einrichtung wie z. B. einem Personal Computer, einem Laptop-Computer, einem Tablet, einem Phablet, einem Smartphone, einer Digitalkamera, einer Spielkonsole, einer tragbaren Einrichtung, einer Multifunktionseinrichtung, einer Doppelfunktionseinrichtung oder dergleichen oder einer Plattform wie z. B. einer Mobilplattform oder dergleichen implementiert werden. Zum Beispiel kann wie hier verwendet ein System, eine Einrichtung, ein Computer oder eine Recheneinrichtung eine beliebige derartige Einrichtung oder Plattform enthalten.
  • Das Eingangsvideo 111 kann beliebige geeignete Videoeinzelbilder, Videobilder, eine Folge von Videoeinzelbildern, eine Gruppe von Bildern, Gruppen von Bildern, Videodaten oder dergleichen in einer beliebigen geeigneten Auflösung enthalten. Zum Beispiel kann das Video Videographikanordnung (VGA), hochauflösend (HD), Full-HD (z. B. 1080p), ein Video mit 4K-Auflösung, ein Video mit 8K-Auflösung oder dergleichen sein und das Video kann eine beliebige Anzahl von Videoeinzelbildern, Folgen von Vidoeeinzelbildern, Bildern, Gruppen von Bildern oder dergleichen enthalten. Hier diskutierte Techniken werden aus Gründen der Klarheit der Darstellung in Bezug auf Bilder und Blöcke und/oder Codierungseinheiten diskutiert. Allerdings können derartige Bilder als Einzelbilder, Videoeinzelbilder, Folgen von Einzelbildern, Videofolgen oder dergleichen charakterisiert werden und derartige Blöcke und/oder Codierungseinheiten können als Codierungsblöcke, Makroblöcke, Untereinheiten, Unterblöcke, Bereiche, Unterbereiche usw. charakterisiert werden. Typischerweise werden die Begriffe Block und Codierungseinheit hier austauschbar verwendet. Zum Beispiel kann ein Bild oder Einzelbild aus Farbvideodaten eine Luma-Ebene oder Luma-Komponente (d. h. Luma-Pixelwerte) und zwei Chroma-Ebenen oder Chroma-Komponenten (d. h. Chroma-Pixelwerte) bei derselben oder verschiedenen Auflösungen in Bezug auf die Luma-Ebene enthalten. Das Eingangsvideo 111 kann Bilder oder Einzelbilder enthalten, die in Blöcke und/oder Codierungseinheiten beliebiger Größe unterteilt werden können, die Daten enthalten, die z. B. M×N-Blöcken und/oder Codierungseinheiten von Pixeln entsprechen. Derartige Blöcke und/oder Codierungseinheiten können Daten von einer oder mehreren Ebenen oder Farbkanälen von Pixeldaten enthalten. Wie hierin verwendet kann der Begriff Block Makroblöcke, Codierungseinheiten oder dergleichen einer beliebigen geeigneten Größe enthalten. Wie begrüßt werden wird, können derartige Blöcke zur Vorhersage, Transformation usw. außerdem in Unterblöcke unterteilt werden.
  • 2 stellt eine Beispielgruppe von Bildern 200 dar, die gemäß mindestens einigen Implementierungen der vorliegenden Offenlegung ausgelegt ist. Wie in 2 gezeigt ist, kann die Gruppe von Bildern 200 eine beliebige Anzahl von Bildern 201 wie z. B. 64 Bilder (wobei 0-16 dargestellt sind) oder dergleichen enthalten. Darüber hinaus können die Bilder 201 in einer zeitlichen Reihenfolge 202 derart bereitgestellt werden, dass die Bilder 201 in einer zeitlichen Reihenfolge dargestellt werden, während die Bilder 201 in einer Codierungsreihenfolge (nicht dargestellt) codiert werden, derart, dass die Codierungsreihenfolge in Bezug auf die zeitliche Reihenfolge 202 verschieden ist. Darüber hinaus können die Bilder 201 in einer Bildhierarchie 203 derart bereitgestellt werden, dass eine Basisschicht (L0) von Bildern 201 die Bilder 0, 8, 16 usw. enthält; eine Nicht-Basisschicht (L1) von Bildern 201 die Bilder 4, 12 usw. enthält; eine Nicht-Basisschicht (L2) von Bildern 201 die Bilder 2, 6, 10, 14 usw. enthält und eine Nicht-Basisschicht (L3) von Bildern 201 die Bilder 1, 3, 5, 7, 9, 11, 13, 15 usw. enthält. Zum Beispiel beim Bewegen durch die Hierarchie für übergreifende Modi können sich die Bilder von L0 lediglich auf weitere Bilder von L0 beziehen, können sich die Bilder von L1 lediglich auf Bilder von L0 beziehen, können sich die Bilder von L2 lediglich auf Bilder von L0 oder L1 beziehen und können sich die Bilder von L3 auf Bilder von beliebigen Schichten von L0-L2 beziehen. Zum Beispiel enthalten die Bilder 201 Basisschichtbilder und Nicht-Basisschichtbilder derart, dass Basisschichtbilder Bezugsbilder für Nicht-Basisschichtbilder sind, jedoch Nicht-Basisschichtbilder keine Bezugsbilder für Basisschichtbilder sind, wie gezeigt ist. In einer Ausführungsform enthält das Eingangsvideo 111 die Gruppe von Bildern 200 und/oder das System 100 implementiert die Gruppe von Bildern 200 in Bezug auf das Eingangsvideo 111. Obwohl es in Bezug auf die Beispielgruppe von Bildern 200 dargestellt ist, kann das Eingangsvideo 111 eine beliebige geeignete Struktur, die die Gruppe von Bildern 200 implementiert, ein weiteres Format einer Gruppe von Bildern usw. besitzen. In einer Ausführungsform enthält eine Vorhersagestruktur zum Videocodieren Gruppen von Bildern wie z. B. die Gruppe von Bildern 200. Zum Beispiel kann die Vorhersagestruktur im Kontext von Broadcast- und Streaming-Implementierungen periodisch sein und kann periodische Gruppen von Bildern (GOPs) enthalten. In einer Ausführungsform enthält eine GOP etwa 1 Sekunde von Bildern, die in der Struktur, die in 2 beschrieben ist, organisiert sind, gefolgt von einer weiteren GOP, die mit eine I-Bild beginnt und so weiter.
  • 3 stellt ein Beispielvideobild 301 dar, das gemäß mindestens einigen Implementierungen der vorliegenden Offenlegung ausgelegt ist. Das Videobild 301 kann ein beliebiges Bild einer Videosequenz oder eines Videoclips wie z. B. ein VGA-, ein HD-, ein Full-HD-, ein 4K-, ein 8K-Videobild usw. sein. Zum Beispiel kann das Videobild 301 ein beliebiges der Bilder 201 sein. Wie gezeigt ist, kann das Videobild 301 in einen oder mehrere Abschnitte segmentiert oder partitioniert werden, wie in Bezug auf Abschnitt 302 des Videobildes 301 dargestellt ist. Darüber hinaus kann das Videobild 301 in eine oder mehrere LCUs segmentiert oder partitioniert werden, wie in Bezug auf LCU 303 dargestellt ist, die wiederum in eine oder mehrere Codierungseinheiten segmentiert werden kann, wie in Bezug auf CUs 305, 306 und/oder Vorhersageeinheiten (PUs) und Transformationseinheiten (TUs), die nicht gezeigt sind, dargestellt ist. Wie hier verwendet kann sich der Begriff Partition auf eine CU, eine PU oder eine TU beziehen. Obwohl sie in Bezug auf Abschnitt 302, die LCU 303 und die CUs 305, 306 dargestellt sind, was einer HEVC-Codierung entspricht, können die hier diskutierten Techniken in einem beliebigen Codierungskontext implementiert werden. Wie hier verwendet kann ein Bereich einen Abschnitt, eine LCU, eine CU, ein Bild oder eine Fläche eines Bildes enthalten. Darüber hinaus enthält eine Partition wie hier verwendet weinen Teil eines Blocks, eines Bereichs oder dergleichen. Zum Beispiel ist eine CU im Kontext von HEVC eine Partition einer LCU. Allerdings kann eine Partition ein beliebiger Unterbereich eines Bereiches, eines Unterblocks eines Blocks usw. sein. Die Terminologie gemäß HEVC wird hier aus Gründen der Klarheit der Darstellung verwendet, soll aber nicht einschränkend sein.
  • 4 ist ein veranschaulichendes Diagramm eines Beispielpartitionierungs- und Modusentscheidungsmoduls 101 zum Bereitstellen von LCU-Partitionen und internen/übergreifenden Modusdaten 112, das gemäß mindestens einigen Implementierungen der vorliegenden Offenlegung ausgelegt ist. Zum Beispiel stellen 4 und 5 eine Beispielausführungsform eines entkoppelten Codierers dar, während 6 eine Beispielausführungsform eines integrierten Codierers darstellt. Beide Ausführungsformen können bei der Implementierung der hier diskutierten Techniken verwendet werden.
  • Wie in 4 gezeigt ist, kann das Partitionierungs- und Modusentscheidungsmodul 101 eine LCU-Schleife 421 enthalten oder implementieren, die ein Quellabtastwert-Bewegungsschätzungsmodul (SS- Bewegungsschätzungsmodul) 401, ein SS-internes Suchmodul 402, ein Verarbeitungsmodul 403 für eine schnelle CU-Schleife, ein Verarbeitungsmodul 404 für eine vollständige CU-Schleife, ein übergreifendes Tiefenentscheidungsmodul 405, ein internes/übergreifendes 4×4-Verfeinerungsmodul 406 und ein Auslass-/Zusammenführungsentscheidungsmodul 407 enthält. Wie gezeigt ist, nimmt die LCU-Schleife 421 das Eingangsvideo 111 auf und die LCU-Schleife 421 erzeugt die endgültigen LCU-Partitionierungsdaten und anfänglichen Modusentscheidungsdaten 418. Endgültige LCU-Partitionierungsdaten und anfängliche Modusentscheidungsdaten 418 können beliebige geeignete Daten sein, die die Partitionierung für die LCU in CUs und eine Codierungsmodusentscheidung für jede CU der LCU anzeigen oder beschreiben. In einer Ausführungsform enthalten endgültige LCU-Partitionierungsdaten und anfängliche Modusentscheidungsdaten 418 endgültige Partitionierungsdaten, die ohne Änderungen durch den Codierer 102 implementiert werden und anfängliche Modusentscheidungen, die geändert werden können. Zum Beispiel können die Codierungsmodusentscheidungen einen internen Modus (d. h. einen der verfügbaren internen Modi auf der Grundlage des Standards, der implementiert ist) oder einen übergreifenden Modus (d. h. Auslassen, Vereinigen oder Bewegungsschätzung, ME) enthalten. Darüber hinaus können die LCU-Partitionierungsdaten und Modusentscheidungsdaten 418 beliebige zusätzliche Daten, die für den bestimmten Modus erforderlich sind (z. B. einen Bewegungsvektor für einen übergreifenden Modus), enthalten. Zum Beispiel kann im Kontext von HEVC eine Codierungsbaumeinheit 64×64 Pixel enthalten, die eine LCU definieren können. Eine LCU kann zur Codierung mittels Quad-Tree-Partitionierung in CUs partitioniert werden, derart, dass die CUs 32×32, 16×16 Pixel oder 8×8 Pixel sein können. Derartiges Partitionieren kann durch LCU-Partitionierungsdaten und Modusentscheidungsdaten 418 angezeigt werden. Darüber hinaus wird derartiges Partitionieren verwendet, um Kandidatenpartitionen (Kandidaten-CUs) einer LCU auszuwerten.
  • Wie gezeigt ist, nimmt das SS-Bewegungsschätzungsmodul 401 das Eingangsvideo 111 auf und das SS-Bewegungsschätzungsmodul 401 führt eine Bewegungssuche nach CUs oder Kandidatenpartitionen eines aktuellen Bildes des Eingangsvideos 111 unter Verwendung eines oder mehrerer Bezugsbilder des Eingangsvideos 111 derart durch, dass die Bezugsbilder lediglich ursprüngliche Pixelabtastwerte des Eingangsvideos 111 enthalten. Wie gezeigt ist, erzeugt das SS-Bewegungsschätzungsmodul 401 Bewegungsschätzungskandidaten 411 (d. h. MVs), die CUs einer bestimmten Partitionierung einer aktuell ausgewerteten LCU entsprechen. Zum Beispiel können für jede CU ein oder mehrere MVs bereitgestellt werden. Darüber hinaus nimmt das SS-interne Suchmodul 402 das Eingangsvideo 111 auf und das SS-interne Suchmodul 402 erzeugt interne Modi für CUs eines aktuellen Bildes des Eingangsvideos 111 unter Verwendung des aktuellen Bildes des Eingangsvideos 111 durch Vergleichen der CU mit einem internen Vorhersageblock, der (auf der Grundlage des aktuellen internen Modus, der ausgewertet wird) unter Verwendung ursprünglicher Pixelabtastwerte des aktuellen Eingangsvideos 111 erzeugt wird. Wie gezeigt ist, erzeugt das SS-interne Suchmodul 402 interne Kandidaten 412 (d. h. ausgewählte interne Modi), die CUs einer bestimmten Partitionierung einer aktuell ausgewerteten LCU entsprechen. Zum Beispiel können für jede CU ein oder mehrere interne Kandidaten bereitgestellt werden. In einer Ausführungsform werden eine beste Partitionierungsentscheidung und entsprechende interne und/oder übergreifende Kandidaten (die z. B. eine niedrigste Verzerrung, Verzerrungskosten der niedrigsten Rate oder dergleichen besitzen) aus Bewegungsschätzungskandidaten 411 und internen Kandidaten 412 zur Verwendung durch den Codierer 102 wie hier diskutiert bereitgestellt. Zum Beispiel kann die nachfolgende Verarbeitung ausgelassen werden.
  • Darüber hinaus nimmt ein Detektormodul 408 das Eingangsvideo 111 und/oder Daten vom SS-Bewegungsschätzungsmodul 401 und/oder vom SS-internen Suchmodul 402 auf. Das Detektormodul 408 wendet einen oder mehrere Detektoren auf das Eingangsvideo 111 und/oder derart empfangene Daten an und das Detektormodul 408 erzeugt Detektionsindikatoren 419 zur Verwendung durch weitere Module des Partitionierungs- und Modusentscheidungsmoduls 101 und/oder des Codierers 102 und stellt diese bereit, wie in Bezug auf 5 diskutiert wird.
  • Das Verarbeitungsmodul 403 für eine schnelle CU-Schleife empfängt Bewegungsschätzungskandidaten 411, interne Kandidaten 412, Detektionsindikatoren 419 und Nachbardaten 416 und, wie dargestellt ist, erzeugt MV-Zusammenführungskandidaten, erzeugt fortschrittliche Bewegungsvektorvorhersagekandidaten (AMVP-Kandidaten) und trifft eine CU-Modusentscheidung. Nachbardaten 416 enthalten beliebige geeignete Daten für räumlich benachbarte CUs der aktuellen CUs, die ausgewertet werden, wie z. B. interne und/oder übergreifende Modi der räumlichen Nachbarn. Das Verarbeitungsmodul 403 für eine schnelle CU-Schleife erzeugt MV-Zusammenführungskandidaten unter Verwendung einer oder mehrerer beliebiger geeigneter Techniken. Zum Beispiel kann der Zusammenführungsmodus Bewegungsbeeinträchtigungskandidaten unter Verwendung von MVs von räumlich benachbarten CUs einer aktuellen CU bereitstellen. Zum Beispiel können ein oder mehrere MVs von räumlich benachbarten CUs als MV-Kandidaten für die aktuelle CU bereitgestellt (z. B. geerbt) werden. Darüber hinaus erzeugt das Verarbeitungsmodul 403 für eine schnelle CU-Schleife AMVP-Kandidaten unter Verwendung einer oder mehrerer beliebiger geeigneter Techniken. In einer Ausführungsform kann das Verarbeitungsmodul 403 für eine schnelle CU-Schleife Daten von einem Bezugsbild und Daten von benachbarten CUs verwenden, um AMVP-Kandidaten-MVs zu erzeugen. Darüber hinaus können beim Erzeugen von MV-Zusammenführungskandidaten und/oder AMVP-Kandidaten nicht standardkonforme Techniken verwendet werden. Vorhersagen für die MV-Zusammenführungskandidaten und AMVP-Kandidaten werden unter Verwendung von lediglich Quellabtastwerten erzeugt.
  • Wie gezeigt ist, trifft das Verarbeitungsmodul 403 für eine schnelle CU-Schleife eine Codierungsmodusentscheidung für jede CU für die aktuelle Partitionierung auf der Grundlage von Bewegungsschätzungskandidaten 411, internen Kandidaten 412, MV-Zusammenführungskandidaten und AMVP-Kandidaten. Die Codierungsmodusentscheidung kann unter Verwendung einer oder mehrerer beliebiger geeigneter Techniken getroffen werden. In einer Ausführungsform wird eine Summe eines Verzerrungsmesswertes und einer gewichteten Ratenschätzung verwendet, um die internen und übergreifenden Modi für die CUs auszuwerten. Zum Beispiel kann eine Verzerrung zwischen der aktuellen CU und Vorhersage-CUs (die unter Verwendung des entsprechenden Modus erzeugt werden) bestimmt und mit einer geschätzten Codierungsrate kombiniert werden, um die besten Kandidaten zu bestimmen. Wie gezeigt ist, kann eine Untermenge 413 von ME-, internen und Zusammenführungs-/AMVP-Kandidaten als eine Untermenge aller verfügbaren Kandidaten erzeugt werden.
  • Die Untermenge 413 von ME-, internen und Zusammenführungs-/AMVP-Kandidaten wird dem Verarbeitungsmodul 404 für eine vollständige CU-Schleife bereitgestellt. Wie gezeigt ist, führt das Verarbeitungsmodul 404 für eine vollständige CU-Schleife für einen Restblock für jeden Codierungsmodus der Untermenge 413 von ME-, internen und Zusammenführungs-/AMVP-Kandidaten (d. h. der Rest ist eine Differenz zwischen der CU und der vorhergesagten CU, die unter Verwendung des aktuellen Modus erzeugt wird) eine Vorwärtstransformation, eine Vorwärtsquantisierung, eine inverse Quantisierung und eine inverse Transformation durch, um einen rekonstruierten Rest zu bilden. Anschließend erzeugt das Verarbeitungsmodul 404 für eine vollständige CU-Schleife eine Rekonstruktion der CU (d. h. durch Hinzufügen des rekonstruierten Rests zur vorhergesagten CU) und misst die Verzerrung für jeden Modus der Untermenge 413 von ME-, internen und Zusammenführungs-/AMVP-Kandidaten. Der Modus mit einer optimalen Ratenverzerrung wird als die CU-Modi 414 gewählt.
  • Die CU-Modi 414 werden dem übergreifenden Tiefenentscheidungsmodul 405, das die verfügbaren Partitionen der aktuellen LCU auswerten kann, um LCU-Partitionierungsdaten 415 zu erzeugen, bereitgestellt. Wie dargestellt ist, werden die LCU-Partitionierungsdaten 415 dem internen/übergreifenden 4×4-Verfeinerungsmodul 406, das 4×4-Partitionen unter Verwendung von internen und/oder übergreifenden Modi auswerten kann, bereitgestellt. Zum Beispiel wertet eine vorhergehende Verarbeitung das Partitionieren herunter bis zu einer Codierungseinheitgröße von 8×8 aus und das interne/übergreifende 4×4-Verfeinerungsmodul 406 wertet eine 4×4-Partitionierung und interne und/oder übergreifende Modi für derartige 4×4-Partitionen in verschiedenen Kontexten aus. Wie gezeigt ist, stellt das interne/übergreifende 4×4-Verfeinerungsmodul 406 dem Auslass-/Zusammenführungsentscheidungsmodul 407, das für beliebige CUs, die einen Codierungsmodus, der einem Zusammenführungs-MV entspricht, besitzen, bestimmt, ob die CU eine Auslass-CU oder eine Zusammenführungs-CU ist, endgültige LCU-Partitionierungsdaten 417 bereit. Zum Beispiel wird für eine Zusammenführungs-CU der MV von einer räumlich benachbarten CU geerbt und ein Rest wird für die CU gesendet. Für eine Auslass-CU wird der MV von einer räumlich benachbarten CU geerbt (wie im Zusammenführungsmodus), jedoch wird keine Rest für die CU gesendet. Wie gezeigt ist, stellt die LCU-Schleife 421 nach derartigen Zusammenführungs-/Auslassentscheidungen endgültige LCU-Partitionierungsdaten und anfängliche Modusentscheidungsdaten 418 bereit.
  • 5 ist ein veranschaulichendes Diagramm eines Beispielcodierers 102 zum Erzeugen des Bitstroms 113, der gemäß mindestens einigen Implementierungen der vorliegenden Offenlegung ausgelegt ist. Wie in 5 gezeigt ist, kann der Codierer 102 eine LCU-Schleife 521 (z. B. eine LCU-Schleife für einen Codierdurchlauf), die ein CU-Schleifenverarbeitungsmodul 501 und ein Entropiecodierungsmodul 502 enthält, enthalten oder implementieren. Wie außerdem gezeigt ist, kann der Codierer 102 ein Paketierungsmodul 503 enthalten. Wie gezeigt ist, nimmt die LCU-Schleife 521 das Eingangsvideo 111 und endgültige LCU-Partitionierungsdaten und anfängliche Modusentscheidungsdaten 418 auf und die LCU-Schleife 521 erzeugt quantisierte Transformationskoeffizienten, Steuerdaten und Parameter 513, die durch das Entropiecodierungsmodul 502 entropiecodiert und durch das Paketierungsmodul 503 verpackt sein können, um den Bitstrom 113 zu erzeugen.
  • Zum Beispiel nimmt das CU-Schleifenverarbeitungsmodul 501 das Eingangsvideo 111, endgültige LCU-Partitionierungs- und anfängliche Modusentscheidungsdaten 418 und Detektionsindikatoren 419 auf. Auf der Grundlage der endgültigen LCU-Partitionierungsdaten und anfänglichen Modusentscheidungsdaten 418 erzeugt das CU-Schleifenverarbeitungsmodul 501 wie gezeigt ist interne Bezugspixelabtastwerte für interne CUs (nach Bedarf). Zum Beispiel können interne Bezugspixelabtastwerte unter Verwendung benachbarter rekonstruierter Pixelabtastwerte (die über eine lokale Decodierschleife erzeugt werden) erzeugt werden. Wie gezeigt ist, erzeugt das CU-Schleifenverarbeitungsmodul 501 bei Bedarf für jede CU eine Vorhersage-CU unter Verwendung von Nachbardaten 511 (z. B. Daten von Nachbarn der aktuellen CU). Zum Beispiel kann die Vorhersage-CU für übergreifende Modi durch Abrufen zuvor rekonstruierter Pixelabtastwerte für eine CU, die durch einen MV oder MVs von einem oder mehreren rekonstruierten Bezugsbildern angezeigt wird, und wenn nötig Kombinieren der abgerufenen rekonstruierten Pixelabtastwerte, um die Vorhersage-CU zu erzeugen, erzeugt werden. Für interne Modi kann die Vorhersage-CU unter Verwendung der benachbarten rekonstruierten Pixelabtastwerte vom Bild der CU auf der Grundlage des internen Modus der aktuellen CU erzeugt werden. Wie gezeigt ist, wird für die aktuelle CU ein Rest erzeugt. Zum Beispiel kann der Rest durch Differenzieren der aktuellen CU und der Vorhersage-CU erzeugt werden.
  • Der Rest wird dann vorwärts transformiert und vorwärts quantisiert, um quantisierte Transformationskoeffizienten zu erzeugen, die in den quantisierten Transformationskoeffizienten, Steuerdaten und Parametern 513 enthalten sind. Darüber hinaus werden in einer lokalen Decodierschleife zum Beispiel die Transformationskoeffizienten invers quantisiert und invers transformiert, um einen rekonstruierten Rest für die aktuelle CU zu erzeugen. Wie gezeigt ist, führt das CU-Schleifenverarbeitungsmodul 501 eine Rekonstruktion für die aktuelle CU durch, z. B. durch Addieren des rekonstruierten Rests und der Vorhersage-CU (wie oben diskutiert wird), um eine rekonstruierte CU zu erzeugen. Die rekonstruierte CU kann mit weiteren CUs kombiniert werden, um das aktuelle Bild oder Teile davon unter Verwendung zusätzlicher Techniken wie z. B. abtastwertadaptiver Versatzfilterung (SAO-Filterung), die das Erzeugen von SAO-Parametern (die in den quantisierten Transformationskoeffizienten, Steuerdaten und Parametern 513 enthalten sind) und ein Implementieren des SAO-Filters an rekonstruierten CUs enthalten kann, und/oder Entblockschleifenfilterung (DLF), die das Erzeugen von DLF-Parametern (die in den quantisierten Transformationskoeffizienten, Steuerdaten und Parametern 513 enthalten sind) und das Implementieren des DLF-Filters an rekonstruierten CUs enthalten kann, zu rekonstruieren. Derartige rekonstruierte CUs können z. B. als Bezugsbilder bereitgestellt werden (z. B. in einem Puffer für rekonstruierte Bilder gespeichert werden). Derartige Bezugsbilder oder Teile davon werden als rekonstruierte Abtastwerte 512, die wie oben diskutiert für die Erzeugung von Vorhersage-CUs (in übergreifenden und internen Modi) verwendet werden, bereitgestellt.
  • Wie gezeigt ist, können die quantisierten Transformationskoeffizienten, die Steuerdaten und die Parameter 513, die Transformationskoeffizienten für Restcodierungseinheiten, Steuerdaten wie z. B. endgültige LCU-Partitionierungs- und Modusentscheidungsdaten (d. h. von endgültigen LCU-Partitionierungs- und initialen Modusentscheidungsdaten 418) und Parameter wie z. B. SAO/DLF-Filterparameter enthalten, entropiecodiert und verpackt werden, um den Bitstrom 113 zu bilden. Der Bitstrom 113 kann ein beliebiger geeigneter Bitstrom wie z. B. ein standardkonformer Bitstrom sein. Zum Beispiel kann der Bitstrom 113 zu H.264/MPEG-4 fortschrittlicher Videocodierung (AVC) standardkonform, zu H.265 hocheffizienter Videocodierung (HEVC) standardkonform, zu VP9 standardkonform usw. sein.
  • 6 stellt ein Blockdiagramm eines integrierten Beispielcodiersystems 600 dar, das gemäß mindestens einigen Implementierungen der vorliegenden Offenlegung ausgelegt ist. Wie diskutiert wird, stellt das Codiersystem 600 eine integrierte Codiererimplementierung derart, dass LCU-Partitionen und interne/übergreifende Modusdaten 112 unter Verwendung von Detektionsindikatoren 419 bestimmt werden können, und eine Auswertung von Partitionen und Codierungsmodi unter Verwendung rekonstruierter Pixeldaten bereit. Zum Beispiel kann das Codiersystem 600 das hier diskutierten System 100 implementieren. Wie gezeigt ist, kann das Codiersystem 600 das Detektormodul 408, eine Steuereinheit 601, ein Bewegungsschätzungs- und Kompensationsmodul 602, ein internes Vorhersagemodul 603, ein Entblockfilterungs-(Deblock) und abtastwertadaptives Versatzmodul (SAO-Modul) 605, einen Wahlschalter 607, einen Differenzierer 606, einen Addierer 608, ein Transformationsmodul 609 (T-Modul), ein Quantisierungsmodul 610 (Q-Modul), ein inverses Quantisierungsmodul 611 (IQ-Modul), ein inverses Transformationsmodul 612 (IT-Modul), ein Entropiecodierermodul 613 (EE-Modul) und einen Bildpuffer 604 zum Speichern rekonstruierter Bilder 114 enthalten. Das Codiersystem 600 kann zusätzliche Module und/oder Verbindungen enthalten, die aus Gründen der Klarheit der Darstellung nicht gezeigt sind.
  • Wie gezeigt ist, nimmt das Codiersystem 600 das Eingangsvideo 111 auf und das Codiersystem 600 erzeugt den Bitstrom 113, der beliebige Eigenschaften besitzen kann, wie hier diskutiert wird. Zum Beispiel teilt das Codiersystem 600 Bilder des Eingangsvideos 111 in LCUs, die wiederum in Kandidatenpartitionen partitioniert werden. Nach dem Auswerten derartiger Kandidatenpartitionen werden eine Partitonierungsentscheidung für die LCU und Codierungsmodusentscheidungen für Partitionen des individuellen Blocks, der der Partitionierungsentscheidung entspricht, durch die Steuereinheit 601 als LCU-Partitionen und interne/übergreifende Modusdaten 112, die weiteren Komponenten des Codiersystems 600 zum Codieren der LCU und Einbeziehung in den Bitstrom 113 bereitgestellt werden, erzeugt. Wie gezeigt ist, werden die Detektionsindikatoren 419 bei der Erzeugung von LCU-Partitionen und internen/übergreifenden Modusdaten 112 und des Bitstroms 113 für eine verbesserte Effizienz verwendet, wie hier unten diskutiert wird.
  • Weiterhin mit Bezug auf 6 kann das Codiersystem 600 eine LCU-Schleife analog zur LCU-Schleife 421 mittels des Bewegungsschätzungs- und Kompensationsmoduls 602 durchführen, das das Eingangsvideo 111 und rekonstruierte Bilder 114 (die in 6 nicht gezeigt sind) empfängt und eine Bewegungsschätzung für Kandidaten-CUs oder Partitionen einer aktuellen LCU eines Bildes des Eingangsvideos 111 unter Verwendung eines oder mehrerer Bezugsbilder von rekonstruierten Bildern 114 derart durchführt, dass die Bezugsbilder rekonstruierte Pixelabtastwerte enthalten (z. B. nachdem eine lokale Decodierschleife 614 angewendet worden ist), wie sie das Bewegungsschätzungs- und Kompensationsmodul 602 und die Steuereinheit 601 analog zu Bewegungsschätzungskandidaten 411 erzeugen. Darüber hinaus nimmt das interne Vorhersagemodul 603 das Eingangsvideo 111 auf und der Nachaddierer 608 für rekonstruierte Bildabtastwerte, das interne Vorhersagemodul 603 und die Steuereinheit 601 erzeugen interne Modi für CUs eines aktuellen Bildes des Eingangsvideos 111 unter Verwendung des aktuellen Bildes des Eingangsvideos 111 durch Vergleichen der CU zu einem internen Vorhersageblock, der unter Verwendung des rekonstruierten Pixelabtastwertes erzeugt wird (z. B. nachdem die lokale Decodierschleife 614 angewandt worden ist). Die Steuereinheit 601 erzeugt dann eine LCU-Partitionsentscheidung (die z. B. ein Partitionieren einer LCU definiert) und eine entsprechende Modusentscheidung für jede Partition (z. B. einen internen oder einen übergreifenden Modus für jede Partition), um die LCU zu codieren. Zum Beispiel kann die Steuereinheit 601 für jede Partition (z. B. CU) eines Blocks (z. B. LCU) mittels LCU-Partitionen und internen/übergreifenden Modusdaten 112 den Wahlschalter 607 steuern, um eine vorhergesagte Partition (z. B. CU) für jeden Block (z. B. LCU) auf der Grundlage des besten Modus (z. B. des Modus mit den niedrigsten Kosten) für die Partition (z. B. CU) zu erzeugen.
  • Nachdem die Entscheidung, ob eine Partition intern oder übergreifend codiert wird (und den entsprechenden Modus aus den internen und übergreifenden Kandidaten), getroffen worden ist, wird mittels des Differenzierers 606 eine Differenz zu den Quellpixeln gebildet. Zum Beispiel wird zwischen einer Partition (z. B. CU) oder einem Block (z. B. LCU) von ursprünglichen Pixelabtastwerten aus dem Eingangsvideo 111 und einer rekonstruierten Partition oder einem rekonstruierten Block bei einem Differenzierer 606 derart eine Differenz gebildet, dass die rekonstruierte Partition oder der rekonstruierte Block unter Verwendung des entsprechenden besten Codierungsmodus, wie er mittels einer lokalen Decodierschleife 614 implementiert wird, erzeugt wird. Die Differenz (z. B. die Restpartition oder der Restblock) wird mittels eines Transformationsmoduls 609 in den Frequenzbereich umgewandelt (z. B. unter Verwendung einer diskreten Kosinustransformation oder einer weiteren Transformation), um Transformationskoeffizienten zu erzeugen, und die Transformationskoeffizienten werden mittels des Quantisierungsmoduls 610 quantisiert, um quantisierte Transformationskoeffizienten zu erzeugen. Derart quantisierte Transformationskoeffizienten werden gemeinsam mit verschiedenen Steuersignalen (die LCU-Partitionen und interne/übergreifen Modusdaten 112 enthalten) mittels des Entropiecodierermoduls 613 entropiecodiert, um den Bitstrom 113 zu erzeugen, der zu einem Decoder gesendet oder in einem Datenspeicher gespeichert werden kann. Darüber hinaus werden die quantisierten Transformationskoeffizienten aus dem Quantisierungsmodul 610 mittels des inversen Quantisierungsmoduls 612 invers quantisiert und mittels des inversen Transformationsmoduls 612 invers transformiert, um rekonstruierte Differenzen oder Restpartitionen oder Restblöcke zu erzeugen. Die rekonstruierten Partitionen oder Blöcke werden mittels des Addierers 608 mit Bezugsblöcken (z. B. rekonstruierten Bezugsblöcken, wie sie über den Wahlschalter 607 gewählt werden) kombiniert, um rekonstruierte Partitionen oder Blöcke zu erzeugen, die, wie gezeigt ist, dem internen Vorhersagemodul 603 zur Verwendung bei der internen Vorhersage bereitgestellt werden. Darüber hinaus können die rekonstruierten Differenzen oder Reste mittels des Entblockfilterungs- und abtastwertadaptiven Versatzmoduls 605 mit einem Entblockfilter und/oder einem abtastwertadaptivem Versatzfilter gefiltert werden, in ein Bild rekonstruiert werden und im Bildpuffer 604 zur Verwendung bei der übergreifenden Vorhersage gespeichert werden.
  • Wie diskutiert wird, kann ein entkoppeltes Codiersystem oder ein integriertes Codiersystem die Detektionsindikatoren 419 für eine verbesserte Datenverwendungseffizienz implementieren. Die Diskussion wendet sich nun detektierten Merkmalen, Indikatoren und Implementierungen davon zu.
  • 7 ist ein Flussdiagramm, das einen Beispielprozess 700 zum wahlweisen Verwenden von Chroma-Informationen bei Partitionierungsentscheidungen und Codierungsmodusentscheidungen darstellt und das gemäß mindestens einigen Implementierungen der vorliegenden Offenlegung ausgelegt ist. Der Prozess 700 kann einen oder mehrere Vorgänge 701-710 enthalten, wie in 7 dargestellt ist. Der Prozess 700 kann durch ein System durchgeführt werden (z. B. System 100, Codiersystem 600 usw.), um die Datenverwendungseffizienz durch wahlweises Verwenden von Chroma in Partitionierungsentscheidungen und Codierungsmodusentscheidungen beim Videocodieren zu verbessern. Zum Beispiel bietet das Verwenden lediglich von Luma-Informationen den Vorteil einer schnelleren Verarbeitung und geringeren Komplexität auf Kosten einer verringerten Genauigkeit (z. B. durch Eliminieren von Chroma aus Kostenberechnungen). Alternativ bietet das Verwenden von Luma-Informationen und Chroma-Informationen den Vorteil von Genauigkeit auf Kosten einer verringerten Berechnungsgeschwindigkeit (z. B. durch Hinzufügen von Chroma zu Kostenberechnungen). Der Prozess 700 stellt durch effizientes Erzeugen einer Auswertungsentscheidung für Luma und Chroma oder einer Auswertungsentscheidung lediglich für Luma für Blöcke eines Bildes einen Kompromiss zwischen Berechnungskosten und Genauigkeit bereit.
  • Der Prozess 700 beginnt bei einem Entscheidungsvorgang 701, in dem für einen Bereich, einen Block oder eine Partition eines aktuellen Bildes eines Eingangsvideos Detektoren angewandt werden, um detektierte Merkmale oder Detektionsindikatoren zu erzeugen. Zum Beispiel kann der Vorgang 701 durch das Detektormodul 408 durchgeführt werden. Wie gezeigt ist, enthalten die detektierten Merkmale für einen Bereich, einen Block (z. B. eine LCU) oder eine Partition (z. B. CU) einen Luma-Durchschnitt des Bereichs, des Blocks oder der Partition, einen Durchschnitt eines ersten Chroma-Kanals (z. B. Cb-Kanal) des Bereichs, des Blocks oder der Partition, einen Durchschnitt eines zweiten Chroma-Kanals (Cr-Durchschnitt) des Bereichs, des Blocks oder der Partition, einen Indikator, ob der Bereich, der Block oder die Partition eine Kante enthält, einen Indikator, ob der Bereich, der Block oder die Partition sich in einer aufgedeckten Fläche befindet oder nicht und eine zeitliche Schicht des Bereichs, des Blocks oder der Partition.
  • Die Detektionsindikatoren, die beim Vorgang 701 bestimmt werden, können unter Verwendung einer oder mehrerer beliebiger geeigneter Techniken erzeugt werden. In einer Ausführungsform ist der Luma-Durchschnitt ein Durchschnitt der Luma-Werte bei Pixelorten des Bereichs, des Blocks oder der Partition. In einer Ausführungsform ist der Durchschnitt des ersten Chroma-Kanals ein Durchschnitt der Chroma-Werte bei Pixelorten des Bereichs, des Blocks oder der Partition für einen ersten Chroma-Kanal und der Durchschnitt des zweiten Chroma-Kanals ein Durchschnitt der Chroma-Werte bei Pixelorten des Bereichs, des Blocks oder der Partition für einen zweiten Chroma-Kanal. Zum Beispiel können die Pixel eine Luma-Komponente und zwei Chroma-Komponenten wie z. B. Cb- und Cr-Komponenten enthalten, wenn auch jeder beliebige geeignete Farbraum implementiert werden kann. Obwohl in Bezug auf Durchschnittswerte für alle Pixelorte diskutiert wird, können in einigen Ausführungsformen einige Pixelwerte (z. B. hohe und niedrige, Ausreißer usw.) vor dem Erzeugen der Durchschnittswerte verworfen werden. Ein Kantenmerkmal für den Bereich, den Block oder die Partition kann unter Verwendung beliebiger geeigneter Kantendetektionstechniken wie z. B. Canny-Kantendetektion detektiert werden.
  • Darüber hinaus ist die Information, ob der Bereich, der Block oder die Partition sich in einem aufgedeckten Bereich befindet oder nicht dazu bestimmt, die Bereiche, Blöcke oder Partitionen zu detektieren, die sich in Bereichen befinden, die aufgedeckt wurden, da sich im Eingangsvideo 111 etwas bewegt. Zum Beispiel würde eine sich bewegende Person eine aufgedeckte Fläche, die vorher hinter ihr war, aufdecken. Eine derartige Bestimmung, ob sich der Bereich, der Block oder die Partition in einem aufgedeckten Bereich befindet, kann unter Verwendung einer oder mehrerer geeigneter Techniken vorgenommen werden. In einer Ausführungsform wird eine Differenz zwischen einer besten Bewegungsschätzungssumme von Differenzbeträgen (SAD) und einer besten internen Vorhersage-SAD für den Bereich, den Block oder die Partition genommen und dann, wenn die beste interne Vorhersage-SAD plus ein Schwellenwert geringer als die beste Bewegungsschätzungs-SAD ist, wird der Bereich, der Block oder die Partition als in einer aufgedeckten Fläche befindlich angezeigt. Zum Beispiel kann das Addieren eines Schwellenwertes, einer Vorspannung oder dergleichen zur besten internen Vorhersage-SAD und dass die Summe geringer als die beste Bewegungsschätzungs-SAD ist anzeigen, dass die interne Vorhersage-SAD viel weniger als die beste Bewegungsschätzungs-SAD ist, was wiederum anzeigt, dass sich der Bereich, der Block oder die Partition in einem aufgedeckten Bereich befindet, weil keine genaue Bewegungsschätzungskompensation für den Block gefunden werden kann. Zum Beispiel kann die beste Bewegungsschätzungs-SAD die SAD sein, die dem besten Bewegungsschätzungsmodus, wie er durch das SS-Bewegungsschätzungsmodul 401 oder das Bewegungsschätzungs- und Kompensationsmodul 602 bestimmt wird, entspricht, und die beste interne Vorhersage-SAD kann die SAD sein, die dem besten internen Modus, wie er durch das SS-interne Suchmodul 402 oder das interne Vorhersagemodul 603 bestimmt wird, entspricht. Das bedeutet, dass entweder eine Vorhersage-SAD mit offenem Regelkreis (lediglich unter Verwendung von ursprünglichen Pixelabtastwerten) oder eine Vorhersage-SAD mit geschlossenem Regelkreis (unter Verwendung rekonstruierte Pixelabtastwerte) verwendet werden kann.
  • Die Verarbeitung wird mit dem Entscheidungsvorgang 702 fortgesetzt, in dem der Luma-Durchschnitt des Bereichs, des Blocks oder der Partition, der Durchschnitt des ersten Chroma-Kanals des Bereichs, des Blocks oder der Partition und der Durchschnitt des zweiten Chroma-Kanals des Bereichs, des Blocks oder der Partition mit entsprechenden Schwellenwerten verglichen werden. Wenn jeder des Luma-Durchschnitts des Bereichs, des Blocks oder der Partition, des Durchschnitts des ersten Chroma-Kanals des Bereichs, des Blocks oder der Partition und des Durchschnitts des zweiten Chroma-Kanals des Bereichs, des Blocks oder der Partition seinen entsprechenden Schwellenwert nicht überschreitet (z. B. wenn sie ungünstig im Vergleich zu den Schwellenwerten liegen), wird die Verarbeitung mit Vorgang 703 fortgesetzt. Obwohl sie hier in Bezug auf Detektionsindikatoren von Durchschnitten von Blöcken, die mit Schwellenwerten verglichen werden, diskutiert werden, enthalten die Detektionsindikatoren in weiteren Ausführungsformen Indikatoren, ob jeder der Durchschnittswerte den entsprechenden Schwellenwert überschreitet, erreicht oder überschreitet (z. B. günstig im Vergleich zum Schwellenwert liegt) oder nicht (z. B. 1 oder 0, wahr oder falsch). In derartigen Ausführungsformen kann der Entscheidungsvorgang 702 einfach bestimmen, ob irgendwelche solcher Indikatoren falsch sind.
  • Im Vorgang 703 werden lediglich Luma-Informationen für Partitionierungsentscheidungen und Codierungsmodusentscheidungen für den aktuellen Bereich, den aktuellen Block (z. B. LCU) oder die aktuelle Partition (z. B. CU) verwendet. Zum Beispiel werden beim Vergleichen einer ursprünglichen Partition oder eines ursprünglichen Blocks mit einer vorhergesagten Partition oder einem vorhergesagten Block (die lediglich unter Verwendung von ursprünglichen Pixel-Abtastwerten vorhergesagt wurden oder unter Verwendung rekonstruierter Pixel vorhergesagt wurden) lediglich Luma-Pixelwerte verwendet, während Chroma-Pixelwerte verworfen werden. Das bedeutet, dass dann, wenn Verzerrungsmessungen, Vergleiche usw. zwischen dem Block oder der Partition und einem vorhergesagten Block oder einer vorhergesagten Partition vorgenommen werden, lediglich Luma-Informationen verwendet werden. Derartige Techniken können unter Verwendung beliebiger geeigneter Module oder Komponenten, die hier diskutiert werden und die an Partitionierungsentscheidungen und Codierungsmodusentscheidungen für den aktuellen Block teilnehmen, wie z. B. der Module 401-407 des LCU-Schleifenmoduls 402 und/oder der Module 601-612 des Codiersystems 600 implementiert werden. Derartige Module werden hier aus Gründen der Klarheit der Darstellung nicht namentlich aufgelistet. Das bedeutet, dass jeder Vorgang, der bei Partitionierungsentscheidungen und Codierungsmodusentscheidungen verwendet wird, lediglich an Luma-Informationen (z. B. Abtastwerten) arbeiten kann, während Chroma-Informationen verworfen werden. Es ist festzuhalten, dass Module und Vorgänge im Zusammenhang mit Codiervorgängen zum Erzeugen des Bitstroms 113 zur Erzeugung des Bitstroms 113 dennoch sowohl an Luma-Informationen als auch an Chroma-Informationen arbeiten (z. B. werden sowohl Luma-Reste als auch Chroma-Reste gebildet usw.). Zum Beispiel arbeitet das CU-Schleifenverarbeitungsmodul 501 sowohl an Luma als auch an Chroma, um quantisierte Transformationskoeffizienten aus quantifizierten Transformationskoeffizienten, Steuerdaten und Parametern 513 zu erzeugen. Darüber hinaus arbeiten im Kontext des Codiersystems 600 die Module 602, 603, 606, 609, 610 zur Erzeugung des Bitstroms 113 an Luma-Informationen und Chroma-Informationen. Derartige Module können daher im Kontext von Partitionierungsentscheidungen und Codierungsmodusentscheidungen lediglich Luma verwenden, während sie im Kontext des Erzeugens des Bitstroms 113 nach Bedarf beides verwenden. Zum Beispiel verwerfen derartige Module das Chroma im Kontext von Partitionierungsentscheidungen und Codierungsmodusentscheidungen, um wesentliche Rechenbetriebsmittel zu sparen, und verwenden dann nach Bedarf die Chroma-Informationen, um derartige Partitionierungsentscheidungen und Codierungsmodusentscheidungen zu verwenden, um den Bitstrom 113 zu erzeugen. Zum Beispiel kann es vorteilhaft sein, für relativ dunkle Blöcke das Chroma zu vernachlässigen, um Rechenbetriebsmittel zu sparen.
  • Zurückkommend auf den Entscheidungsvorgang 702 wird die Verarbeitung dann, wenn der Luma-Durchschnitt des Bereichs, des Blocks oder der Partition, der Durchschnitt des ersten Chroma-Kanals des Bereichs, des Blocks oder der Partition oder der Durchschnitt des zweiten Chroma-Kanals des Bereichs, des Blocks oder der Partition seinen entsprechenden Schwellenwert überschreitet oder erreicht (z. B. günstig im Vergleich zum Schwellenwert liegt), beim Entscheidungsvorgang 704 fortgesetzt, wobei eine Bestimmung durchgeführt wird, ob der Bereich, der Block oder die Partition eine Kante enthält (wie auf der Grundlage des Kantendetektionsindikators von Vorgang 701 bestimmt wird) und/oder ob der Bereich, der Block oder die Partition sich in einem aufgedeckten Bereich befindet (wie auf der Grundlage des Indikators für aufgedeckte Bereiche von Vorgang 701 bestimmt wird).
  • Dann, wenn eines der beiden zutrifft, wird die Verarbeitung bei Vorgang 705 fortgesetzt, wobei Luma- und Chroma-Informationen für Partitionierungsentscheidungen und Codierungsmodusentscheidungen für den aktuellen Bereich, den aktuellen Block (z. B. LCU) oder die aktuelle Partition (z. B. CU) verwendet werden. Zum Beispiel werden beim Vergleichen einer ursprünglichen Partition oder eines ursprünglichen Blocks mit einer vorhergesagten Partition oder einem vorhergesagten Block (die entweder lediglich unter Verwendung ursprünglicher Pixelabtastwerte vorhergesagt werden oder unter Verwendung rekonstruierter Pixel vorhergesagt werden) sowohl Luma-Pixelwerte als auch Chroma-Pixelwerte verwendet. Das bedeutet, dass dann, wenn Verzerrungsmessungen, Vergleiche usw. zwischen der Partition oder dem Block und einer vorhergesagten Partition oder einem vorhergesagten Block durchgeführt werden, sowohl Luma-Informationen als auch Chroma-Informationen verwendet werden. Derartige Techniken können unter Verwendung beliebiger geeigneter Module oder Komponenten, die hier diskutiert werden, die an Partitionierungsentscheidungen und Codierungsmodusentscheidungen für den aktuellen Block teilnehmen, wie z. B. die Module 401-407 des LCU-Schleifenmoduls 402 und/oder der Module 601-612 des Codiersystems 600, implementiert werden. Zum Beispiel kann jeder Vorgang, der bei Partitionierungsentscheidungen und Codierungsmodusentscheidungen verwendet wird, unter Verwendung von Luma- als auch von Chroma-Informationen (z. B. Abtastwerten) arbeiten. Zum Beispiel kann es für eine erhöhte Genauigkeit oder zur Störsignalverringerung vorteilhaft sein, sowohl Luma-Informationen als auch Chroma-Informationen für Blöcke, die Kanten besitzen oder die in aufgedeckten Flächen liegen, zu verwenden.
  • Zurückkommend auf den Entscheidungsvorgang 704 wird die Verarbeitung dann, wenn der Bereich, der Block oder die Partition keine Kante enthält und sich nicht in einem aufgedeckten Bereich befindet, beim Entscheidungsvorgang 706 fortgesetzt, wobei eine Bestimmung vorgenommen wird, ob der Bereich, der Block oder die Partition ein Teil eines I-Abschnittes oder eines I-Bildes ist. Zum Beispiel kann ein I-Abschnitt oder ein I-Bild ein beliebiger Abschnitt oder ein beliebiges Bild sein, das ohne Bezug zu einem weiteren Bild codiert ist. Unter Bezugnahme auf 2 kann ein I-Abschnitt oder ein I-Bild Bild 0 oder ein Abschnitt von Bild 0 oder ein Abschnitt eines beliebigen weiteren Bildes, das ohne Bezug zu einem weiteren Bild codiert ist, sein. Wie gezeigt ist, wird dann, wenn der Bereich, der Block oder die Partition ein Teil eines I-Abschnittes oder eines I-Bildes ist, der Prozess 700 bei Vorgang 703 fortgesetzt, wobei wie diskutiert wurde lediglich Luma-Informationen für Partitionierungsentscheidungen und Codierungsmodusentscheidungen für den aktuellen Bereich, den aktuellen Block (z. B. LCU) oder die aktuelle Partition (z. B. CU) verwendet werden.
  • Dann, wenn der Bereich, der Block oder die Partition nicht Teil eines I-Abschnittes oder eines I-Bildes ist, wird der Prozess 700 beim Entscheidungsvorgang 707 fortgesetzt, wo eine Bestimmung vorgenommen wird, ob der Bereich, der Block oder die Partition ein Teil eines Basisschicht-B-Abschnittes oder eines Basisschicht-B-Bildes ist. Zum Beispiel kann ein Basisschicht-B-Abschnitt oder ein Basisschicht-B-Bild ein beliebiger Abschnitt oder ein beliebiges Bild sein, das oder der ein Teil einer Basisschicht ist (z. B. das lediglich auf weitere Bilder in derselben Basisschicht Bezug nimmt, jedoch nicht auf Nicht-Basisschichtbilder Bezug nimmt). Unter Bezugnahme auf 2 kann ein Basisschicht-B-Abschnitt oder ein Basisschicht-B-Bild Bild 8, 16, ... sein, derart, dass der Basisschicht-B-Abschnitt oder das Basisschicht-B-Bild das Bezugs-I-Bild 0 oder weitere Basisschicht-B-Bilder aber nicht Nicht-Basisschicht-B-Bilder sein kann. Wie gezeigt ist, wird dann, wenn der Bereich, der Block oder die Partition ein Teil eines Basisschicht-B-Abschnittes oder eine Basisschicht-B-Bildes ist, der Prozess 700 bei Vorgang 705 fortgesetzt, wobei wie oben diskutiert wurde Luma-Informationen und Chroma-Informationen für Partitionierungsentscheidungen und Codierungsmodusentscheidungen für den aktuellen Bereich, den aktuellen Block (z. B. LCU) oder die aktuelle Partition (z. B. CU) verwendet werden.
  • Dann, wenn der Bereich, der Block oder die Partition kein Teil eines Basisschicht-B-Abschnittes ist, der Prozess 700 beim Entscheidungsvorgang 708 fortgesetzt wird, wobei eine Bestimmung vorgenommen wird, ob der Bereich, der Block oder die Partition ein Teil eines Nicht-Basisschicht-B-Abschnittes oder Nicht-Basisschicht-B-Bildes ist. Zum Beispiel kann ein Nicht-Basisschicht-B-Abschnitt oder ein Nicht-Basisschicht-B-Bild ein beliebiger Abschnitt oder ein beliebiges Bild sein, der oder das ein Teil einer Nicht-Basisschicht ist (z. B. sich auf weitere Bilder in der Basisschicht, derselben Schicht und tieferen Schichten bezieht, jedoch kein Bezug für Basisschichtbilder oder tiefere Schichten ist). Unter Bezugnahme auf 2 kann ein Nicht-Basisschicht-B-Abschnitt oder Nicht-Basisschicht-B-Bild ein L1-Nicht-Basisschichtbild (4, 12, ...), ein Schicht-L2-Nicht-Basisschichtbild (2, 6, 7, 14, ...) oder ein Schicht-L3-Nicht-Basisschichtbild (1, 3, 5, 7, 8, 11, 13, 15, ...) sein, derart, dass der Nicht-Basisschicht-B-Abschnitt oder das Nicht-Basisschicht-B-Bild sich auf Bilder in derselben oder niedrigeren Schichten beziehen kann. Dann, wenn der Bereich, der Block oder die Partition kein Teil eines Nicht-Basisschicht-B-Abschnittes oder eines Nicht-Basisschicht-B-Bildes ist, wird die Verarbeitung bei Vorgang 710 abgeschlossen.
  • Wie gezeigt ist, wird der Prozess 700 dann, wenn der Bereich, der Block oder die Partition ein Teil eines Nicht-Basisschicht-B-Abschnittes oder Nicht-Basisschicht-B-Bildes ist, bei Vorgang 709 fortgesetzt, wobei sowohl Luma-Informationen als auch Chroma-Informationen lediglich für Zusammenführungs-/Auslassentscheidungen verwendet werden, um Entscheidungen zusammenzuführen/auszulassen, während weitere Partitionierungsentscheidungen und Codierungsmodusentscheidungen unter Verwendung lediglich der Luma-Informationen und ohne Verwendung der Chroma-Ebene oder der Chroma-Komponente getroffen werden. Zum Beispiel werden beim Auswerten der internen, übergreifenden, AMVP- und Kandidatenzusammenführungsmodi für den Block lediglich Luma-Pixelabtastwerte oder Luma-Werte verwendet (und Chroma-Pixelabtastwerte oder Werte werden verworfen). Dies bedeutet, dass dann, wenn Verzerrungsmessungen, Vergleiche usw. zwischen einer Partition oder einem Block und einer vorhergesagten Partition oder einem vorhergesagten Block für die oben genannten Modi vorgenommen werden, lediglich Luma-Informationen verwendet werden. Dann, wenn der gewählte Codierungsmodus ein Kandidatenzusammenführungsmodus ist, die Entscheidung zwischen dem Zusammenführungsmodus (unter Verwendung des Zusammenführungs-MV und des Sendens von Restdaten) und dem Auslassmodus (unter Verwendung des Zusammenführungs-MV und des Sendens keiner Restdaten) unter Verwendung der Luma-Informationen und der Chroma-Informationen getroffen wird. Zum Beispiel kann die Zusammenführungs-/Auslassentscheidung als ein letzter Schritt im Partitionierungs- und Modusentscheidungsprozess durchgeführt werden, um zu entscheiden, ob eine Partition oder ein Block als eine Zusammenführungspartition oder als ein Zusammenführungsblock oder als eine Auslasspartition oder ein Auslassblock codiert werden soll. Eine derartige Zusammenführungs-/Auslassentscheidung kann durch Vergleichen der Kosten der zwei Modi derart, dass die Kosten unter Verwendung von Verzerrungswerten und Codierungsratenschätzungen für jeden der zwei Modi erhalten werden, getroffen werden. Für den Auslassmodus wird die Verzerrung als null angenommen, derart, dass keine Transformationskoeffizienten codiert werden müssen (dennoch ist die Verzerrung, die verwendet wird, um die Kosten des Auslassmodus zu bestimmen, nicht null). Für den Zusammenführungsmodus ist die Verzerrung ein Maß der Differenz zwischen der Partition oder dem Block, die oder der codiert wird, und der vorhergesagten Partition oder dem vorhergesagten Block. Im Zusammenhang von Vorgang 709 wird ein derartiger Verzerrungsmesswert sowohl unter Verwendung von Luma-Pixelabtastwerten oder Luma-Pixelwerten und Chroma-Pixelabtastwerten oder Chroma-Werten erzeugt.
  • Zum Beispiel werden im SS-Bewegungsschätzungsmodul 401, im SS-internen Suchmodul 402, im Verarbeitungsmodul für eine schnelle CU-Schleife 403, im Verarbeitungsmodul für eine vollständige CU-Schleife 404 und im übergreifenden Tiefenentscheidungsmodul 405 lediglich Luma-Pixelwerte für einen Block, der ein Teil eines Nicht-Basisschicht-B-Abschnittes oder eines Nicht-Basisschicht-B-Bildes ist, verwendet. Allerdings werden im Auslass-/Zusammenführungsentscheidungsmodul 407 sowohl Luma-Pixelwerte als auch Chroma-Pixelwerte verwendet, wenn ein Block ein Teil eines Nicht-Basisschicht-B-Abschnittes oder Nicht-Basisschicht-B-Bildes ist.
  • Ähnlich werden in der Steuereinheit 601, dem Bewegungsschätzungs- und Kompensationsmodul 602, im internen Vorhersagemodul 603 und in entsprechenden Modulen, die zur Rekonstruktion verwendet werden, lediglich Luma-Pixelwerte für Partitionierungsentscheidungen und Codierungsmodusentscheidungen außer der Auslass-/Zusammenführungsentscheidung verwendet und in der Steuereinheit 601 werden sowohl Luma-Pixelabtastwerte als auch Chroma-Pixelabtastwerte für die Auslass-/Zusammenführungsentscheidung für einen Block, der als ein zusammenführungscodierter Block festgelegt worden ist, verwendet.
  • Die Chroma-Einbeziehungstechniken, die hier in Bezug auf Prozess 700 und an anderer Stelle diskutiert werden, können verringerte Verarbeitungsanforderungen bieten (da das Chroma nicht für alle Modusentscheidungen verwendet wird), während sie Störsignale, die durch vollständiges Entfernen der Verwendung des Chromas bewirkt werden, minimieren. Zum Beispiel kann das Entfernen der Verwendung von Chroma-Informationen zu sichtbaren Störsignalen wie z. B. Farbnachlaufen oder Farbausbluten und Blockartefakten führen. Die hier diskutierten Techniken können Störsignale verringern oder entfernen. Die beschriebenen Techniken können ein Umschalten zwischen verschiedenen Chroma-Verarbeitungsmodi, die variierenden Stufen der Chroma-Informationsverwendung entsprechen, bereitstellen. Zum Beispiel erfolgt ein derartiges Umschalten auf der Grundlage von Luma-Niveaus und Chroma-Niveaus, einer Kantendetektion, einer Detektion aufgedeckter Bereiche und von Zeitschichtinformationen (z. B. Basisschichtinformationen oder Nicht-Basisschichtinformationen) derart, dass Bilder, die verschiedene detektierte Merkmale besitzen, verschiedene Mengen Chroma-Informationen verwenden. In einer Ausführungsform sind die verschiedenen Modi als vollständiges Chroma, Chroma lediglich zur Zusammenführungs-/Auslassentscheidung oder kein Chroma definiert. Für vollständiges Chroma verwenden alle Kostenberechnungen, die in Modusentscheidungen für Partitionierungsentscheidungen und Codierungsmodusentscheidungen verwendet werden, die vollständigen Chroma-Daten (z. B. von 4:2:0-Eingangsvideo). Bei Chroma lediglich zur Zusammenführungs-/Auslassentscheidung werden Chroma-Informationen lediglich zum Zwecke des Entscheidens zwischen dem Zusammenführungsmodus und dem Auslassmodus verwendet, derart, dass die Entscheidung zwischen dem Zusammenführungsmodus und dem Auslassmodus für einen Zusammenführungskandidaten auf der Grundlage der Kosten, die jedem Kandidaten zugeordnet sind, unter Verwendung vollständiger Luma-Informationen und Chroma-Informationen erfolgt. Bei kein Chroma oder Chroma abgeschaltet werden, wie der Name andeutet, keine Chroma-Informationen für Modusentscheidungen verwendet. In einer Ausführungsform wird für I-Abschnitte oder I-Bilder kein Chroma verwendet; für Basisschicht-B-Abschnitte wird vollständiges Chroma verwendet und für Nicht-Basisschicht-B-Abschnitte wird Chroma lediglich zur Zusammenführungs-/Auslassentscheidung verwendet.
  • 8 ist ein Flussdiagramm, das einen Beispielprozess 800 zum Erzeugen einer Zusammenführungsmodusentscheidung oder Auslassmodusentscheidung für eine Partition, die eine anfängliche Zusammenführungsmodusentscheidung aufweist, darstellt, der gemäß mindestens einigen Implementierungen der vorliegenden Offenlegung ausgelegt ist. Der Prozess 800 kann einen oder mehrere der Vorgänge 801-805, wie sie in 8 dargestellt sind, enthalten. Der Prozess 800 kann durch ein System (z. B. System 100, Codiersystem 600 usw.) durchgeführt werden, um die Datenverwendungseffizienz durch Erzeugen einer Zusammenführungsmodusentscheidung oder Auslassmodusentscheidung für eine Partition auf der Grundlage anfänglicher Zusammenführungsmoduscodierungskosten und Auslassmoduscodierungskosten zu verbessern. Zum Beispiel bietet das Verwenden anfänglicher Zusammenführungsmoduscodierungskosten und Auslassmoduscodierungskosten den Vorteil einer schnelleren Verarbeitung und geringerer Komplexität während des Codierens.
  • Der Prozess 800 beginnt beim Entscheidungsvorgang 801, in dem für einen Block oder einen Bereich eines aktuellen Bildes des Eingangsvideos Detektoren angewandt werden, um detektierte Merkmale oder Detektionsindikatoren zu erzeugen. Zum Beispiel kann der Vorgang 801 durch das Detektormodul 408 durchgeführt werden. Wie gezeigt ist, enthält das detektierte Merkmal für einen Block (z. B. eine LCU) oder einer Partition eines Blocks (z. B. eine CU) einen Betrag einer Differenz zwischen anfänglichen Auslassmoduscodierungskosten und anfänglichen Zusammenführungsmoduscodierungskosten für eine Partition, die eine anfängliche Zusammenführungsmodusentscheidung aufweist, enthalten. Zum Beispiel können im Kontext eines entkoppelten Codierers das Verarbeitungsmodul für eine schnelle CU-Schleife 403 und/oder das Verarbeitungsmodul für eine vollständige CU-Schleife 404 bestimmen, dass eine anfänglich beste Codierungsmodusentscheidung für eine Partition (z. B. CU) ein Zusammenführungsmodus ist. Ein derartiger Zusammenführungsmodus zeigt an, dass Bewegungsinterferenzkandidaten unter Verwendung von MVs von räumlich benachbarten Partitionen (z. B. CUs) einer Partition (z. B. CU) zum Codieren der Partition verwendet werden sollen. Sowohl der Auslass- als auch der Zusammenführungscodierungsmodus verwenden den abgeleiteten MV, jedoch unterscheiden sich der Auslass- und der Zusammenführungscodierungsmodus darin, dass im Auslassmodus kein Rest für die Partition gesendet wird, während im Zusammenführungsmodus ein Rest für die Partition gesendet wird. Im Kontext eines integrierten Codiersystems können die Steuereinheit 601, das Bewegungsschätzungs- und Kompensationsmodul 602 und das interne Vorhersagemodul 603 einen anfänglichen Zusammenführungsmodus für die Partition bestimmen, während die Bestimmung, ob der Auslass- oder der Zusammenführungsmodus für die anfängliche Zusammenführungsmoduspartition verwendet werden soll, erneut verzögert ist.
  • Der Detektionsindikator, der bei Vorgang 801 bestimmt wurde, kann unter Verwendung einer oder mehrerer geeigneter Techniken erzeugt werden. In einer Ausführungsform werden anfängliche Zusammenführungscodierungskosten und anfängliche Auslassmoduscodierungskosten für die Partition unter Verwendung ursprünglicher Pixelabtastwerte, angenäherter rekonstruierter Pixelabtastwerte usw. bestimmt. In einer Ausführungsform sind die Codierungskosten Ratenverzerrungskosten. Wie gezeigt ist, wird die Verarbeitung beim Entscheidungsvorgang 802 fortgesetzt, in dem der Betrag der Differenz zwischen den anfänglichen Zusammenführungsmoduscodierungskosten und den Auslassmoduscodierungskosten mit einem Schwellenwert verglichen wird. Wie gezeigt ist, wird die Verarbeitung dann, wenn der Betrag der Differenz den Schwellenwert überschreitet (oder den Schwellenwert erreicht oder überschreitet oder günstig im Vergleich zum Schwellenwert liegt), bei Vorgang 803 fortgesetzt, wo der Modus, der die niedrigeren Codierungskosten besitzt, zur Codierung gewählt wird. Darüber hinaus wird der Vergleich der Codierungskosten bei voller Codierung (z. B. wie sie durch das CU-Schleifenverarbeitungsmodul 501 ausgeführt wird) als Antwort darauf, dass der Betrag der Differenz zum Beispiel den Schwellenwert überschreitet, übersprungen. Derartige Techniken bieten die Effizienzvorteile, da in derartigen Kontexten vollständige Codierungsschleifenvorgänge verringert werden.
  • Zurückkommend auf den Entscheidungsvorgang 802 wird die Verarbeitung dann, wenn der Betrag der Differenz den Schwellenwert nicht überschreitet (z. B. ungünstig im Vergleich zum Schwellenwert liegt) beim Vorgang 804 fortgesetzt, in dem die Auslassmodusentscheidung oder Zusammenführungsmodusentscheidung zu einem vollständigen Codierdurchlauf verschoben wird. Das bedeutet, dass die Auslassmodusentscheidung oder Zusammenführungsmodusentscheidung nicht auf der Grundlage der anfänglichen Codierungskosten erfolgt. Stattdessen wird die Verarbeitung beim Vorgang 805 fortgesetzt, in dem lediglich die Auslass- oder Zusammenführungsmodi für die Partition (z. B. CU) bei einem vollständigen Codierdurchlauf ausgewertet werden und der Modus mit den niedrigeren Kosten zur Codierung gewählt wird. Zum Beispiel kann der vollständige Codierdurchlauf im Kontext eines entkoppelten Encoders durch das CU-Schleifenverarbeitungsmodul 501 durchgeführt werden. Im Kontext eines integrierten Codiersystems kann der vollständige Codierdurchlauf durch die Steuereinheit 601 und das Bewegungsschätzungs- und Kompensationsmodul 602 durchgeführt werden. In jedem Fall werden beim vollständigen Codierdurchlauf lediglich die Auslass- und Zusammenführungsmodi für die Partition ausgewertet, derart, dass die Auswertung weiterer übergreifender und/oder interner Modi übersprungen wird. Die Auslass- oder Zusammenführungsmodusauswertung beim vollständigen Codierdurchlauf kann unter Verwendung einer oder mehrerer beliebiger geeigneter Techniken wie z. B. Differenzieren der Partition (z. B. CU) mit einer rekonstruierten Partition (z. B. CU), die unter Verwendung einer lokalen Decodierschleife auf der Grundlage des Zusammenführungsmoduskandidaten-Bewegungsvektors rekonstruiert wird, Transformieren des sich ergebenden Restes, Quantisieren der transformierten Restkoeffizienten und Erzeugen von Auslassmoduskosten, die dem nicht Enthalten der sich ergebenden transformierten Restkoeffizienten in der Codierung zugeordnet sind, und Zusammenführungsmoduskosten, die dem Enthalten der sich ergebenden transformierten Restkoeffizienten in der Codierung zugeordnet sind, durchgeführt werden. Wie diskutiert wurde können derartige Kosten Ratenverzerrungskosten sein, die Verzerrungskosten und Ratenkosten der Modi enthalten. Die sich ergebenden Kosten können dann verglichen werden und der Modus, der den geringeren Kosten entspricht wird als der endgültige Modus für die Partition (z. B. CU) gewählt. Die Partition wird dann unter Verwendung des sich ergebenden endgültigen Modus in den Bitstrom 113 codiert.
  • Die Zusammenführungsmodusauswahltechniken oder Auslassmodusauswahltechniken, die hier in Bezug auf Prozess 800 und an anderer Stelle diskutiert werden, können verringerte Verarbeitungsanforderungen bieten (im Hinblick auf Fälle, in denen anfängliche Moduskosten die Verwendung des Zusammenführungsmodus oder des Auslassmodus anzeigen, wird die vollständige Codierdurchlaufauswertung übersprungen), während Störsignale, die durch Eliminieren der Verwendung einer derartigen Auswertung eines vollständigen Codierdurchlaufs in Fällen, in denen die Auswahl des Zusammenführungsmodus oder Auslassmodus unter Verwendung der anfänglichen Kosten nicht aufgelöst wird, bewirkt werden, minimiert werden.
  • 9 ist ein Flussdiagramm, das einen Beispielprozess 900 zum Bestimmen einer Partitionierungsentscheidung und von Codierungsmodusentscheidungen für einen Block durch Erzeugen lediglich eines Teils eines Transformationskoeffizientenblocks für einen Teil des Blocks darstellt, der gemäß mindestens einigen Implementierungen der vorliegenden Offenlegung ausgelegt ist. Der Prozess 900 kann einen oder mehrere er Vorgänge 901-905 enthalten, wie in 9 dargestellt ist. Der Prozess 900 kann durch ein System (z. B. System 100, Codiersystem 600 usw.) durchgeführt werden, um die Datenverwendungseffizienz durch Verringern der Berechnungen von Transformationskoeffizienten verbessern. Zum Beispiel werden durch Verringern der Anzahl verfügbarer Transformationskoeffizienten dann, wenn während der Partitionierungsentscheidungen und Codierungsmodusentscheidungen Transformationen durchgeführt werden, die Berechnungen für eine effizientere Verarbeitung verringert.
  • Der Prozess 900 beginnt beim Entscheidungsvorgang 901, in dem eine Differenz zwischen einer Partition (z. B. CU oder PU) und einer vorhergesagten Partition (z. B. CU oder PU) gebildet wird. Die vorhergesagte Partition kann unter Verwendung einer oder mehrerer beliebiger geeigneter Techniken erzeugt werden. Zum Beispiel kann die vorhergesagte Partition eine vorhergesagte Kandidatenpartition, die einem Kandidatencodierungsmodus für eine Kandidatenpartition (z. B. CU) eines Blocks (z. B. LCU) entspricht, sein. Die vorhergesagte Partition wird unter Verwendung interner oder übergreifender Techniken auf der Grundlage des passenden Prüfcodierungsmodus erzeugt. In einer Ausführungsform kann die vorhergesagte Partition im Kontext eines entkoppelten Decoders eine Partition enthalten, die wie hier diskutiert lediglich unter Verwendung ursprünglicher Pixel-Abtastwerte erzeugt wurde. In weiteren Ausführungsformen wird die vorhergesagte Partition unter Verwendung rekonstruierter Pixel-Abtastwerte erzeugt. In jedem Fall wird zwischen der Partition des Eingangsvideos und der vorhergesagten Partition eine Differenz gebildet, um eine Restpartition zu erzeugen. Zwischen der vorhergesagten Partition (z. B. CU oder PU) und einer ursprünglichen Partition kann eine Differenz gebildet werden, um eine Restpartition zu erzeugen. Die Restpartitionen können dann weiter in Partitionen (z. B. TUs) zum Zwecke einer Transformationsverarbeitung partitioniert werden. Zum Beispiel kann die diskutierte Differenzbildung auf dem CU-Niveau oder PU-Niveau durchgeführt werden, wobei die nachfolgende Transformationsverarbeitung auf dem TU-Niveau durchgeführt wird.
  • Die Verarbeitung wird bei Vorgang 902 fortgesetzt, in dem eine Teiltransformation an den Restpartitionen (z. B. TU) durchgeführt wird, um Transformationskoeffizienten derart zu erzeugen, dass die Anzahl verfügbarer Transformationskoeffizienten geringer als die Anzahl von Restwerten in den Restpartitionen (z. B. TU) ist. Zum Beispiel besitzt die Restpartition 64 Werte (wenn auch einige null sein können), wenn die Restpartition (z. B. TU) eine 8×8-Partition ist. In einem derartigen Beispiel ist die Anzahl verfügbarer Transformationskoeffizienten nach einer Teiltransformation geringer als 64, wie z. B. 36 (z. B. für einen 6×6-Transformationskoeffizientenblock), 16 (z. B. für einen 4×4-Transformationskoeffizientenblock) usw. Wie bei den verfügbaren Restwerten können einige der Transformationskoeffizientenwerte, die unter Verwendung der Teiltransformation bestimmt werden, null sein; allerdings sind derartige Werte dennoch bei der Anwendung der Teiltransformation verfügbar. Diejenigen Transformationskoeffizienten, die nicht als ein Teil der Anwendung der Teiltransformation bestimmt werden, können auf null gesetzt werden. Zum Beispiel kann die Anwendung der Teiltransformation einige verfügbare Transformationskoeffizientenwerte zu null berechnen und diejenigen, die nicht verfügbar sind, werden auf null gesetzt, derart, dass ein sich ergebender Transformationskoeffizientenblock dieselbe Anzahl von Werten wie die Restpartition (z. B. TU) besitzt. In einer Ausführungsform wird im Vorgang 902 ein Transformationskoeffizientenblock auf der Grundlage einer Restpartition (z. B. TU) von Vorgang 901 durch Durchführen einer Teiltransformation an der Restpartition erzeugt, um Transformationskoeffizienten von einem Teil des Transformationskoeffizientenblocks derart zu erzeugen, dass die Anzahl von Transformationskoeffizienten in dem Teil geringer ist als eine Anzahl von Werten der Restpartition, und Setzen der verbleibenden Transformationskoeffizienten des Transformationskoeffizientenblocks auf null.
  • Die Teiltransformation, die im Vorgang 902 durchgeführt wird, kann unter Verwendung einer oder mehrerer beliebiger Techniken durchgeführt werden. In einer Ausführungsform enthält das Durchführen der Teiltransformation das Anwenden lediglich derjenigen Transformationsberechnungen, die nötig sind, um Transformationskoeffizienten für diejenigen Koeffizienten, die nach der Teiltransformation verfügbar sein sollen, zu erzeugen, während diejenigen Transformationsberechnungen, die nötig sind, um Transformationskoeffizienten, die nach der Teiltransformation nicht verfügbar sein sollen, zu erzeugen, übersprungen werden. Die Teiltransformation, die hier diskutiert wird, kann als eine Teilfrequenztransformation, eine beschränkte Transformation, eine beschränkte Frequenztransformation, eine verringerte Frequenztransformation oder dergleichen charakterisiert werden.
  • 10 stellt eine Beispieldatenstruktur 1000 dar, die einer Beispielteiltransformation 1010 entspricht, die gemäß mindestens einigen Implementierungen der vorliegenden Offenlegung ausgelegt ist. Wie in 10 gezeigt ist, enthält ein Beispiel-4×4-Restblock 1001 16 verfügbare Restwerte (die mit R11, R12, R13, ..., R44 bezeichnet sind). Zum Beispiel kann der Restblock 1001 eine Partition wie z. B. TU sein. Obwohl er hier in Bezug auf einen 4×4-Restblock 1001 dargestellt ist, kann der Restblock 1001 eine beliebige geeignete Größe wie z. B. 8×8, 16×16, 32×32 usw. besitzen. Wie außerdem in 10 gezeigt ist, transformiert die Teiltransformation 1010 die Restwerte des Restblocks 1001 derart in den Frequenzbereich, dass der sich ergebende Transformationskoeffizientenblock 1002 weniger verfügbare Transformationskoeffizienten 1003 (im dargestellten Beispiel 4, die mit teil, tc12, tc21, tc22 bezeichnet sind) als die Anzahl verfügbarer Restwerte des Restblocks 1001 besitzt. Im dargestellten Beispiel besitzt der Restblock 1001 16 verfügbare Restwerte und der Transformationskoeffizientenblock 1002 besitzt 4 verfügbare Transformationskoeffizientenwerte. Allerdings können die Anzahl verfügbarer Restwerte und die Anzahl verfügbarer Transformationskoeffizientenwerte nach der Teiltransformation beliebige geeignete Werte sein, solange die Anzahl verfügbarer Transformationskoeffizientenwerte geringer als die Anzahl verfügbarer Restwerte ist. In einer Ausführungsform ist der Restblock 1001 ein 8×8-Block und der Transformationskoeffizientenblock 1002 ist ein 4×4-Block. In einer Ausführungsform ist der Restblock 1001 ein 16×16-Block und der Transformationskoeffizientenblock 1002 ist ein 8×8-Block. In einer Ausführungsform ist der Restblock 1001 ein 32×32-Block und der Transformationskoeffizientenblock 1002 ist ein 16×16-Block.
  • Darüber hinaus stellt 10 nicht verfügbare Transformationskoeffizientenwerte 1004 dar, die aufgrund der Anwendung einer Teiltransformation statt einer vollständigen Transformation nicht verfügbar sind. Wie gezeigt ist, können nach einer Teiltransformation 1010 verfügbare Koeffizienten 1003 diejenigen in einer oberen linken Ecke der vollständigen Transformationskoeffizienten aus einer vollständigen Transformation sein. Derartige verfügbare Transformationskoeffizienten 1003 halten tieffrequentere Informationen im Transformationskoeffizientenblock 1002, während hochfrequentere Informationen wirksam verworfen werden. Derartige Techniken können genauere Darstellungen von niederfrequenteren Restblöcken liefern. Allerdings können die verfügbaren Transformationskoeffizienten 1003 ein beliebiger Teil der vollständigen Transformationskoeffizienten aus einer vollständigen Transformation sein und können beliebigen Frequenztransformationskoeffizienten entsprechen.
  • 11 stellt eine Beispieldatenstruktur 1100 dar, die einer weiteren Beispielteiltransformation 1110 entspricht, die gemäß mindestens einigen Implementierungen der vorliegenden Offenlegung ausgelegt ist. Wie in 11 gezeigt ist, transformiert die Teiltransformation 1110 die Restwerte des Restblocks 1001 derart in den Frequenzbereich, dass der sich ergebende Transformationskoeffizientenblock 1102 weniger verfügbare Transformationskoeffizienten 1103 (im dargestellten Beispiel 9, die mit teil, tc12, tc13, ..., tc33 bezeichnet sind) als die Anzahl verfügbarer Restwerte des Restblocks 1001 besitzt. Im dargestellten Beispiel besitzt der Restblock 1001 16 verfügbare Restwerte und der Transformationskoeffizientenblock 1102 besitzt 9 verfügbare Transformationskoeffizientenwerte. Allerdings können die Anzahl verfügbarer Restwerte und die Anzahl verfügbarer Transformationskoeffizientenwerte nach der Teiltransformation beliebige geeignete Werte sein, solange die Anzahl verfügbarer Transformationskoeffizientenwerte geringer als die Anzahl verfügbarer Restwerte ist. In einer Ausführungsform ist der Restblock 1001 ein 8×8-Block und der Transformationskoeffizientenblock 1102 ist ein 6×6-Block. In einer Ausführungsform ist der Restblock 1001 ein 16×16-Block und der Transformationskoeffizientenblock 1102 ist ein 12×12-Block. In einer Ausführungsform ist der Restblock 1001 ein 32×32-Block und der Transformationskoeffizientenblock 1002 ist ein 16×16-Block. Darüber hinaus stellt 11 nicht verfügbare Transformationskoeffizientenwerte 1104 dar, die aufgrund der Anwendung einer Teiltransformation statt einer vollständigen Transformation nicht verfügbar sind, wie in Bezug auf 10 diskutiert wurde. Außerdem können verfügbare Transformationskoeffizienten 1103 nach der Teiltransformation 1100, wie in Bezug auf 10 diskutiert wurde, diejenigen in einer oberen linken Ecke der vollständigen Transformationskoeffizienten von einer vollständigen Transformation sein.
  • Wie in Bezug auf 10 und 11 gezeigt wurde, kann die Anwendung der Teiltransformationen 1001, 1100 verschiedene Reduktionsniveaus der verfügbaren Transformationskoeffizientenwerte 1003, 1103 aufweisen. Zum Beispiel verringert die Teiltransformation 1001 die Anzahl verfügbarer Transformationskoeffizientenwerte 1003 auf 4, während die Teiltransformation 1100 die Anzahl verfügbarer Transformationskoeffizientenwerte 1103 auf 9 verringert. Aufgrund derartiger Schwankungen der Anzahl verfügbarer Transformationskoeffizientenwerte repräsentiert der Transformationskoeffizientenblock 1102 den Restblock 1001 im Vergleich zu Transformationskoeffizientenblock 1002 besser, da der Transformationskoeffizientenblock 1102 mehr verlorengegangene Informationen aufweist. Deshalb kann die Teiltransformation 1010 als aggressiver oder verlustbehafteter im Vergleich zu Teiltransformation 1110, die als moderater, weniger aggressiv oder weniger verlustbehaftet beschrieben werden kann, beschrieben werden. Wie hier ferner in Bezug zu 12 und 13 diskutiert wird, können mehr oder weniger aggressive Teiltransformationen für Restpartitionen oder Restblöcke abhängig von detektierten Merkmalen oder Eigenschaften der Blöcke, die den Restpartitionen oder Restblöcken entsprechen, durchgeführt werden.
  • Zurückkommend zu 9 wird die Verarbeitung bei Vorgang 903 fortgesetzt, in dem die Transformationskoeffizienten, die in Vorgang 902 erzeugt wurden, quantisiert werden, um quantisierte Transformationskoeffizienten zu erzeugen. Die Transformationskoeffizienten können unter Verwendung einer oder mehrerer beliebiger geeigneter Techniken quantisiert werden. Die Anzahl quantisierter Transformationskoeffizienten ist gleich der Anzahl von Transformationskoeffizienten. Deshalb ist die Anzahl verfügbarer quantisierter Transformationskoeffizienten auch geringer als die Anzahl von Restwerten in der Restpartition, die in Vorgang 902 erzeugt wird.
  • Die Verarbeitung wird bei Vorgang 904 fortgesetzt, wo die quantisierten Transformationskoeffizienten invers quantisiert und invers transformiert werden, um eine rekonstruierte Restpartition (z. B. TU) zu erzeugen. Die inverse Quantisierung und die inverse Transformation können unter Verwendung einer oder mehrerer beliebiger geeigneter Techniken, die Vorgänge, die in den Vorgängen 902, 903 durchgeführt werden, umkehren, durchgeführt werden. Zum Beispiel kann eine inverse Transformation durchgeführt werden, um einen rekonstruierten Restblock (z. B. TU) zu erzeugen, der dieselbe Anzahl verfügbarer Werte besitzt, wie die Anzahl von Resten, die in Vorgang 901 erzeugt werden. Zum Beispiel kann die inverse Transformation die Tatsache berücksichtigen, dass einige der invers quantisierten Koeffizienten null sind, um die Anzahl von Berechnungen zu verringern, jedoch können die rekonstruierten Reste die vollständige Anordnung von Resten sein. Dadurch besitzt der rekonstruierte Restblock dieselbe Anzahl von Werten und dieselbe Blockform (z. B. Größe) wie der Restblock, der in Vorgang 902 erzeugt wird. In einer Ausführungsform können mehrere TUs kombiniert werden, um eine CU oder eine PU zu bilden.
  • Die Verarbeitung wird bei Vorgang 905 fortgesetzt, in dem der rekonstruierte Restblock, der in Vorgang 904 erzeugt wird, der vorhergesagten Partition hinzugefügt wird (wie bei Vorgang 901 diskutiert wird), um eine rekonstruierte Partition (z. B. CU oder PU), die der Originalpartition entspricht, zu erzeugen (wie erneut bei Vorgang 901 diskutiert wird). Die rekonstruierte Partition kann dann bei Partitionierungsentscheidungen und Codierungsmodusentscheidungen für den Block, von dem die Partition ein Teil ist, verwendet werden. Zum Beispiel kann der Prozess 900 für eine beliebige Anzahl von Kandidatencodierungsmodus (übergreifend und intern) und für eine beliebige Anzahl von Kandidatenpartitionen (z. B. Kandidaten-PUs oder Kandidaten-CUs) eines Blocks (z. B. LCU) wiederholt werden, um eine Partitionierung für den Block (z. B. LCU) und Codierungsmodi für Partitionen (z. B. CUs), die der Partitionierung entsprechen, zu wählen, und die beste Partitionierungsentscheidung sowie der beste oder einige beste Codierungsmodi (z. B. um weiter ausgewertet zu werden) können für die Partitionen (z. B. CUs) gewählt werden.
  • In einer weiteren Ausführungsform enthält der Vorgang 904 lediglich ein inverses Quantisieren der quantisierten Transformationskoeffizienten, um invers quantisierte Transformationskoeffizienten zu erzeugen, die auch als rekonstruierte Transformationskoeffizienten charakterisiert werden können. Die rekonstruierten Transformationskoeffizienten können dann mit den Transformationskoeffizienten, die in Vorgang 902 zum Zwecke der Partitionierungsentscheidungen und Codierungsmodusentscheidungen erzeugt wurden, verglichen werden. Zum Beispiel können Verzerrungen auf der Grundlage einer Summe der Quadrate der Differenzen zwischen den Transformationskoeffizienten aus Vorgang 902 und der Ausgabe der inversen Quantisierung (d. h. den rekonstruierten Transformationskoeffizienten) erzeugt werden. Zum Beispiel können die rekonstruierten Transformationskoeffizienten bei Partitionierungsentscheidungen und Codierungsmodusentscheidungen für den Block, von dem die Partition ein Teil ist, wie oben diskutiert verwendet werden. In einer Ausführungsform wird ein Verzerrungsmaß, das der vorhergesagten Partition entspricht (wie in Bezug auf Vorgang 901 diskutiert wird), auf der Grundlage der invers quantisierten Transformationskoeffizienten auf der Grundlage einer Summe der Quadrate von Differenzen zwischen den Transformationskoeffizienten aus Vorgang 902 und der Ausgabe der inversen Quantisierung (d. h. den rekonstruierten Transformationskoeffizienten) erzeugt.
  • Die Teiltransformationstechniken, die in Bezug auf Prozess 900 diskutiert wurden, können für alle Restblöcke oder lediglich für Restblöcke in bestimmten Kontexten durchgeführt werden. Darüber hinaus kann die Stärke der Teiltransformation in bestimmten Kontexten variiert werden, wie hier diskutiert wird. Die Teiltransformationstechniken sparen Rechenzeit und Betriebsmittel beim Bestimmen von Partitionierungsentscheidungen und Wählen von Codierungsmodi durch Verringern von Transformationsberechnungen sowie Berechnungen der Quantisierung, der inversen Quantisierung und der inversen Transformation. Wie diskutiert wird, können die Teiltransformationstechniken beim Bestimmen einer Partitionierungsentscheidung und von Codierungsmodusentscheidungen für einen Block durch Erzeugen lediglich eines Abschnitts eines Transformationskoeffizientenblocks für eine Partition des Blocks verwendet werden. In einigen Ausführungsformen werden vollständige Transformationen für den vollständigen Codierdurchlauf verwendet, um standardkonforme quantisierte Transformationskoeffizienten zur Einbeziehung in den Bitstrom 113 zu erzeugen.
  • 12 ist ein Flussdiagramm, das einen Beispielprozess 1200 zum Bestimmen einer Partitionierungsentscheidung und von Codierungsmodusentscheidungen für einen Block durch Erzeugen lediglich eines Teils eines Transformationskoeffizientenblocks für eine Partition des Blocks auf der Grundlage davon, ob die Partition sich in einem optisch wichtigen Bereich befindet, darstellt, der gemäß mindestens einigen Implementierungen der vorliegenden Offenlegung ausgelegt ist. Der Prozess 1200 kann einen oder mehrere der Vorgänge 1201-1204 enthalten, wie in 12 dargestellt ist. Der Prozess 1200 kann durch ein System (z. B. System 100, Codiersystem 600 usw.) durchgeführt werden, um die Datenverwendungseffizienz durch Verringern von Berechnungen von Transformationskoeffizienten zu verbessern. Zum Beispiel werden Berechnungen durch Verringern der Anzahl verfügbarer Transformationskoeffizienten beim Durchführen von Transformationen während Partitionierungsentscheidungen und Codierungsmodusentscheidungen für eine effizientere Verarbeitung verringert.
  • Der Prozess 1200 beginnt bei Vorgang 1301, in dem für einen Bereich, einen Block oder eine Partition eines aktuellen Bildes eines Eingangsvideos Detektoren angewandt werden, um detektierte Merkmale oder Detektionsindikatoren zu erzeugen. Zum Beispiel kann der Vorgang 1201 durch das Detektormodul 408 durchgeführt werden. Wie gezeigt ist, zeigen die detektierten Merkmale für einen Bereich, einen Block oder eine Partition und/oder der Detektionsindikator, ob der Bereich, der Block oder die Partition ein optisch wichtiger Bereich ist oder sich in einem befindet.
  • Die Bestimmung, ob der Bereich, der Block oder die Partition ein optisch wichtiger Bereich ist oder sich in einem befindet, kann unter Verwendung einer oder mehrerer beliebiger geeigneter Techniken vorgenommen werden. In einer Ausführungsform wird die Bestimmung auf der Grundlage davon vorgenommen, ob der Bereich, der Block oder die Partition eine Kante enthält. Zum Beispiel kann die Kantendetektion für den Bereich, den Block oder die Partition unter Verwendung einer oder mehrerer beliebiger geeigneter Techniken wie z. B. Canny-Kantendetektionstechniken durchgeführt werden und wird dann, wenn eine Kante detektiert wird, der Bereich, der Block oder die Partition als ein optisch detektierter Bereich oder als in einem solchen befindlich angezeigt.
  • In einer Ausführungsform wird die Bestimmung auf der Grundlage davon vorgenommen, ob der Bereich, der Block oder die Partition eine unbewegte Hintergrundfläche eines Videos ist. Eine derartige Bestimmung kann durch Bestimmen davon vorgenommen werden, ob ein ortsgleicher Bereich, ein ortsgleicher Block oder eine ortsgleiche Partition oder eine Fläche, die den Bereich, den Block oder die Partition enthält, geringe Verzerrungen (z. B. wie durch eine Summe von Differenzbeträgen, SAD, gemessen wird) über Rahmen (z. B. zeitlich über zwei oder mehr aufeinanderfolgende Rahmen) besitzt. Zum Beispiel wird dann, wenn die SAD auf der Grundlage der Differenz zwischen dem aktuellen Bereich, dem aktuellen Block, der aktuellen Partition oder der aktuellen Fläche und einem ortsgleichen Bereich, einem ortsgleichen Block, einer ortsgleichen Partition oder einer ortsgleichen Fläche (die z. B. unter Verwendung von ursprünglichen Pixel-Abtastwerten vorhergesagt werden) geringer als ein Schwellenwert für eines oder mehrere zeitlich vorhergehende Bilder und das aktuelle Bild ist, eine Bestimmung vorgenommen, dass der Bereich, der Block, die Partition oder die Fläche sich in einem unbewegten Hintergrund und damit einem optisch wichtigen Bereich befindet.
  • In einer Ausführungsform wird die Bestimmung auf der Grundlage davon vorgenommen, ob sich der Bereich, der Block oder die Partition in einer Aura-Fläche befindet. Eine derartige Bestimmung kann durch Bestimmen davon vorgenommen werden, dass eine Bewegungsschätzungsverzerrung (z. B. SAD auf der Grundlage einer Differenz zwischen dem aktuellen Bereich, dem aktuellen Block oder der aktuellen Partition und einem besten Kandidaten eines vorhergesagten ME-Bereichs, eines vorhergesagten ME-Blocks oder einer vorhergesagten ME-Partition) größer als ein erster Schwellenwert ist, der beste Kandidat eines Bewegungsvektors, der dem besten Kandidaten der vorhergesagten ME entspricht, einen Betrag besitzt, der größer als ein zweiter Schwellenwert ist, und mindestens ein räumlich benachbarter Bereich, ein räumlich benachbarter Block oder eine räumlich benachbarte Partition des aktuellen Bereichs, des aktuellen Blocks oder der aktuellen Partition eine Bewegungsschätzungsverzerrung besitzt, die größer als ein dritter Schwellenwert ist und dann der aktuelle Bereich, der aktuelle Block oder die aktuelle Partition als ein Aura-Bereich, ein Aura-Block oder eine Aura-partition und damit als eine optisch wichtige Fläche identifiziert wird. Zum Beispiel ist dann, wenn der aktuelle Bereich, der aktuelle Block oder die aktuelle Partition eine Bewegungsschätzungsverzerrung, die groß ist (z. B. größer als ein erster Schwellenwert ist), einen langen Bewegungsvektor (z. B. der einen Betrag besitzt, der größer als ein zweiter Schwellenwert ist) und einen benachbarten Bereich, einen benachbarten Block oder eine benachbarte Partition, die auch eine große Bewegungsschätzungsverzerrung besitzt (die z. B. größer als der erste Schwellenwert oder ein dritter Schwellenwert ist), besitzt, der Bereich, der Block oder die Partition ein Aura-Bereich, ein Aura-Block oder eine Aura-Partition ist und als optisch wichtig angezeigt wird.
  • Wie gezeigt ist, wird die Verarbeitung beim Entscheidungsvorgang 1202 fortgesetzt, in dem eine Bestimmung vorgenommen wird, ob der Bereich, der Block oder die Partition optisch wichtig ist oder ob der Bereich, der Block oder die Partition sich in einem optisch wichtigen Bereich befindet. Wie diskutiert wird, wird dann, wenn der Bereich, der Block oder die Partition eine Fläche, die eine Kante, einen unbeweglichen Hintergrund oder eine Aura enthält, enthält oder sich in einer solchen befindet, der Bereich, der Block oder die Partition als optisch wichtig angezeigt. Wenn der Bereich, der Block oder die Partition nicht optisch wichtig ist, wird die Verarbeitung beim Vorgang 1203 fortgesetzt, in dem eine aggressivste oder aggressivere Teiltransformation an Partitionen (z. B. TUs) des Blocks (z. B. LCU) angewandt wird. Zum Beispiel können die Partitionen des Blocks Teiltransformationen und einer weiteren Verarbeitung, die in Bezug auf den Prozess 900 für Partitionierungsentscheidungen und Codierungsmodusentscheidungen diskutiert wird, unterworfen werden, derart, dass die Partitionen des Blocks aggressiveren Teiltransformationen im Vergleich zu Vorgang 1204 unterworfen werden. Zum Beispiel können, wie in Bezug auf 10 und 11 diskutiert wurde, aggressivere Transformationen die Anzahl verfügbarer Transformationskoeffizienten stärker verringern, als weniger aggressive Transformationen. In einer Ausführungsform liefern die aggressivsten Teiltransformationen, die in Vorgang 1203 angewandt werden, eine Anzahl verfügbarer Transformationskoeffizienten, die ein Viertel der Anzahl von Restwerten von Restblöcken ist. Zum Beispiel ergibt die aggressivste Teiltransformation für 4×4-Restblöcke (Partitionen) 4 Transformationskoeffizienten, ergibt die aggressivste Teiltransformation für 8×8-Restblöcke (Partitionen) 16 Transformationskoeffizienten usw.
  • Wenn der Bereich, der Block oder die Partition optisch wichtig ist, wird die Verarbeitung bei Vorgang 1204 fortgesetzt, in dem eine moderate oder weniger aggressive Teiltransformation (im Vergleich zu der, die in Vorgang 1203 verwendet wird) an Partitionen (z. B. TUs) des Blocks (z. B. LCU) angewandt wird oder keine Teiltransformation angewandt wird (z. B. wird eine vollständige Transformation angewandt). Zum Beispiel können Partitionen des Blocks Teiltransformationen und weiterer Verarbeitung, die in Bezug auf den Prozess 900 für Partitionierungsentscheidungen und Codierungsmodusentscheidungen diskutiert wird, derart unterworfen werden, dass die Partitionen des Blocks weniger aggressiven Teiltransformationen im Vergleich zu Vorgang 1203 unterworfen werden. Zum Beispiel können aggressivere Transformationen, wie in Bezug auf 10 und 11 diskutiert wird, die Anzahl verfügbarer Transformationskoeffizienten stärker verringern, als weniger aggressive Transformationen. Wie diskutiert wird können die aggressivsten Teiltransformationen, die im Vorgang 1203 angewandt werden, eine Anzahl verfügbarer Transformationskoeffizienten liefern, die ein Viertel der Anzahl von Restwerten von Restblöcken ist. Im Gegensatz können die weniger aggressiven Teiltransformationen, die im Vorgang 1204 angewandt werden, eine Anzahl verfügbarer Transformationskoeffizienten liefern, die mehr als die Hälfte der Anzahl von Restwerten von Restblöcken ist. Zum Beispiel können die weniger aggressiven Teiltransformationen für 4×4-Restblöcke in 9 Transformationskoeffizienten resultieren, können die weniger aggressiven Teiltransformationen für 8×8-Restblöcke in 36 Transformationskoeffizienten resultieren usw.
  • Wie in Bezug auf die Vorgänge 1201, 1202 diskutiert wird, wird dann, wenn ein Bereich, ein Block oder eine Partition optisch wichtig ist, eine weniger aggressive Teiltransformation (oder eine vollständige Transformation) an Partitionen (z. B. TUs) angewandt und wird dann, wenn der Bereich, der Block oder die Partition nicht optisch wichtig ist, eine aggressivere Teiltransformation (oder eine vollständige Transformation) an Partitionen (z. B. TUs) eines aktuellen Blocks angewandt.
  • 13 ist ein Flussdiagramm, das einen Beispielprozess 1300 zum Bestimmen einer Partitionierungsentscheidung und von Codierungsmodusentscheidungen für einen Block durch Erzeugen lediglich eines Teils eines Transformationskoeffizientenblocks für eine Partition des Blocks auf der Grundlage einer Kantendetektion im Block darstellt, der gemäß mindestens einigen Implementierungen der vorliegenden Offenlegung ausgelegt ist. Der Prozess 1300 kann einen oder mehrere der Vorgänge 1301-1307 enthalten, wie in 13 dargestellt ist. Der Prozess 1300 kann durch ein System (z. B. System 100, Codiersystem 600 usw.) durchgeführt werden, um die Datenverwendungseffizienz durch Verringern von Transformationskoeffizientenberechnungen zu verbessern. Zum Beispiel werden durch Verringern der Anzahl verfügbarer Transformationskoeffizienten beim Durchführen von Transformationen während Partitionierungsentscheidungen und Codierungsmodusentscheidungen Berechnungen für eine effizientere Verarbeitung verringert.
  • Der Prozess 1300 beginnt bei Vorgang 1301, in dem für einen Bereich, einen Block oder eine Partition eines aktuellen Bilds eines Eingangsvideos Detektoren angewandt werden, um detektierte Merkmale oder Detektionsindikatoren zu erzeugen. Zum Beispiel kann der Vorgang 1301 durch das Detektormodul 408 durchgeführt werden. Wie gezeigt ist, zeigen die detektierten Merkmale für einen Bereich, einen Block oder einen Partition an, ob der Block eine Kante enthält und wenn ja eine Kantenstärke, die der Kante entspricht. Die Bestimmung, ob der Bereich, der Block oder die Partition eine Kante enthält, kann unter Verwendung einer oder mehrerer beliebiger geeigneter Kantendetektionstechniken wie z. B. Canny-Kantendetektion erfolgen. Wenn der Bereich, der Block oder die Partition eine Kante enthält, kann die Kantenstärke unter Verwendung einer oder mehrerer beliebiger geeigneter Techniken erzeugt werden. In einer Ausführungsform ist die Kantenstärke eine Varianz des Bereichs, des Blocks oder der Partition. In einer Ausführungsform ist die Kantenstärke ein Maß eines Kontrastes über die Kante. In einigen Ausführungsformen kann die Varianz oder der Messwert mittels einer Schwellenwertbildung kategorisiert werden, um die Kante z. B. als schwach (z. B. wenn die Varianz oder der Kontrastmesswert geringer als ein entsprechender Schwellenwert ist), stark (z. B. wenn die Varianz oder der Kontrastmesswert größer als ein entsprechender Schwellenwert ist) usw. zu kennzeichnen. Zum Beispiel kann die Kante als stark oder schwach, stark, moderat oder schwach oder dergleichen kategorisiert werden.
  • Die Verarbeitung wird bei Vorgang 1302 fortgesetzt, in dem eine Bestimmung vorgenommen wird, ob der Bereich, der Block (z. B. LCU) oder die Partition (CU) eine Kante enthält. Wenn nicht wird die Verarbeitung bei Vorgang 1303 fortgesetzt, in dem eine aggressivste Teiltransformation an Partitionen (z. B. TUs) des Blocks (z. B. LCU) angewandt wird. Zum Beispiel können Partitionen des Bereichs, des Blocks oder der Partition Teiltransformationen und weiterer Verarbeitung, die in Bezug auf den Prozess 900 für Partitionierungsentscheidungen und Codierungsmodusentscheidungen diskutiert werden, derart unterworfen werden, dass die Partitionen des Blocks im Vergleich zu Vorgang 1306 aggressiveren Teiltransformationen unterworfen werden. Zum Beispiel können aggressivere Transformationen, wie in Bezug auf 10 und 11 diskutiert wird, die Anzahl verfügbarer Transformationskoeffizienten stärker verringern, als weniger aggressive Transformationen. In einer Ausführungsform liefern die aggressivsten Teiltransformationen, die im Vorgang 1303 angewandt werden, eine Anzahl verfügbarer Transformationskoeffizienten, die ein Viertel der Anzahl von Restwerten von Restblöcken ist. Zum Beispiel können die aggressivsten Teiltransformationen für 4×4-Restblöcke (Partitionen) in 4 Transformationskoeffizienten resultieren, können die aggressivsten Teiltransformationen für 8×8-Restblöcke in 16 Transformationskoeffizienten resultieren usw.
  • Zurückkommend auf den Entscheidungsvorgang 1302 wird dann, wenn der Bereich, der Block oder die Partition eine Kante enthält, die Verarbeitung bei Vorgang 1304 fortgesetzt, in dem eine Bestimmung vorgenommen wird, ob die Kante eine schwache Kante ist. Wenn ja wird die Verarbeitung wie oben diskutiert bei Vorgang 1303 fortgesetzt, in dem die aggressivsten Teiltransformationen an Restpartitionen (z. B. TUs) des Bereichs, des Blocks oder der Partition angewandt werden. Wenn nicht wird die Verarbeitung bei Entscheidungsvorgang 1305 fortgesetzt, in dem eine Bestimmung vorgenommen wird, ob die Kante eine starke Kante ist. Wenn ja wird die Verarbeitung bei Vorgang 1307 fortgesetzt, in dem keine Teiltransformation an Restpartitionen (z. B. TUs) des Blocks (z. B. LCU) angewandt wird. Das bedeutet, dass für Blöcke mit einer starken Kante die Partitionen für eine Partitionierungsentscheidung und Codierungsmodusentscheidungen unter Verwendung vollständiger Transformationen derart ausgewertet werden, dass die Anzahl verfügbarer Transformationskoeffizienten für die vollständige Transformation der Anzahl von Restwerten der Restpartitionen entspricht. Zum Beispiel können Partitionen des Blocks für Partitionierungsentscheidungen und Codierungsmodusentscheidungen vollständigen Transformationen und einer weiteren Verarbeitung (z. B. Quantisierung, inverse Quantisierung, inverse Transformation) unterworfen werden.
  • Wenn der Bereich, der Block oder die Partition keine starke Kante besitzt (z. B. wenn der Block eine mittlere oder moderate Kante besitzt), wird die Verarbeitung bei Vorgang 1306 fortgesetzt, in dem eine moderate oder weniger aggressive Teiltransformation (im Vergleich zu der in Vorgang 1303 Angewandten) an Partitionen (z. B. TUs) des Blocks (z. B. LCU) angewandt wird. Zum Beispiel können Partitionen des Blocks Teiltransformationen und einer weiteren Verarbeitung, die in Bezug auf Prozess 900 für Partitionierungsentscheidungen und Codierungsmodusentscheidungen diskutiert wird, derart unterworfen werden, dass die Partitionen des Blocks weniger aggressiven Teiltransformationen im Vergleich zu Vorgang 1303 unterworfen werden. Zum Beispiel können aggressivere Transformationen, wie in Bezug auf 10 und 11 diskutiert wird, die Anzahl verfügbarer Transformationskoeffizienten stärker verringern, als weniger aggressive Transformationen. Wie diskutiert wurde können die aggressivsten Teiltransformationen, die im Vorgang 1303 angewandt werden, eine Anzahl verfügbarer Transformationskoeffizienten liefern, die ein Viertel der Anzahl von Restwerten von Restblöcken ist. Im Gegensatz können die weniger aggressiven Teiltransformationen, die im Vorgang 1306 angewandt werden, eine Anzahl verfügbarer Transformationskoeffizienten liefern, die mehr als die Hälfte der Anzahl von Restwerten von Restblöcken ist. Zum Beispiel können die weniger aggressiven Teiltransformationen für 4×4-Restblöcke in 9 Transformationskoeffizienten resultieren, können die weniger aggressiven Teiltransformationen für 8×8-Restblöcke in 36 Transformationskoeffizienten resultieren usw.
  • Wie diskutiert wird können die Vorgänge 1303, 1306, 1307 das Anwenden verschiedener Niveaus von Teiltransformationen beim Auswerten von Partitionierungsentscheidungen und Codierungsmodusentscheidungen enthalten. Eine derartige Partitionierungsmodusentscheidungsauswertung und Codierungsmodusentscheidungsauswertung kann beliebige weitere Eigenschaften, die hier diskutiert werden, wie z. B. Quantisierungsvorgänge, inverse Quantisierungsvorgänge, inverse Teiltransformationsvorgänge, Vergleiche von Kosten für verschiedene Kandidatenpartitionierungen, Kandidatencodierungsmodi usw. Die diskutierten Teiltransformationen verringern die Rechenbetriebsmittel und die Zeit, die für derartige Partitionierungsentscheidungen und Codierungsmodusentscheidungen erforderlich sind. Wie begrüßt werden wird, werden vollständige Transformationen für den vollständigen Codierdurchlauf verwendet, um standardkonforme quantisierte Transformationskoeffizienten zur Einbeziehung in den Bitstrom 113 zu erzeugen.
  • 14 ist ein Flussdiagramm, das einen Beispielprozess 1400 zum wahlweisen Auswerten von 4×4-Partitionen beim Videocodieren darstellt, der gemäß mindestens einigen Implementierungen der vorliegenden Offenlegung ausgelegt ist. Der Prozess 1400 kann einen oder mehrere der Vorgänge 1401-1409 enthalten, wie in 14 dargestellt ist. Der Prozess 1400 kann durch ein System (z. B. System 100, Codiersystem 600 usw.) durchgeführt werden, um die Datenverwendungseffizienz durch wahlweises Verringern der Partitionsauswertung zu verbessern. Zum Beispiel werden durch Verringern der Anzahl von Partitionsauswertungen bei der Partitionierungs- und Codierungsmodusauswertung Berechnungen für eine effizientere Verarbeitung verringert. Im Kontexte entkoppelter Codiersysteme kann der Prozess 1400 durch Komponenten der LCU-Schleife 421 implementiert werden. Im Kontext von integrierten Codiersystemen kann der Prozess 1400 durch die Steuereinheit 601, das Detektormodul 408 und das interne Vorhersagemodul 603 implementiert werden.
  • Der Prozess 1400 beginnt bei Vorgang 1401, in dem eine anfängliche Partitionierungsentscheidung für einen Block durch Auswerten kleinster Kandidatenpartitionen (z. B. CUs) herunter bis zu einer Größe von 8×8 Pixeln (und nicht kleiner als 8×8) getroffen wird. Zum Beispiel kann ein Block (z. B. LCU) in Kandidatenpartitionen partitioniert werden und die Kandidatenpartitionen können unter Verwendung übergreifender und interner Codierungsmodi ausgewertet werden, wie hier diskutiert wird und derart, dass die kleinsten verfügbaren Kandidatenpartitionen 8×8-Partitionen sind. Insbesondere werden 4×4-Partitionen nicht ausgewertet, um Rechenbetriebsmittel beim Erzeugen der anfänglichen Partitionierungsentscheidung zu sparen. Im Kontext eines entkoppelten Codiersystems kann der Vorgang 1401 durch Komponenten der LCU-Schleife 421 (z. B. das SS-Bewegungsschätzungsmodul 401, das SS-interne Suchmodul 402, das Verarbeitungsmodul für eine schnelle CU-Schleife 403, das Verarbeitungsmodul für eine vollständige CU-Schleife 404 und/oder das übergreifende Tiefenentscheidungsmodul 405) durchgeführt werden. Zum Beispiel kann Vorgang 1401 LCU-Partitionierungsdaten 415 und CU-Modi 414 erzeugen. Im Kontext integrierter Codiersysteme kann der Vorgang 1401 durch die Steuereinheit 601, das Bewegungsschätzungs- und Kompensationsmodul 602, das interne Vorhersagemodul 603 und Komponenten der lokalen Decodierschleife 614 durchgeführt werden, um eine initiale Partitionierungsentscheidung zu erzeugen. Darüber hinaus kann der Vorgang 1401 anfängliche Codierungsmodusentscheidungen für die anfänglichen Partitionen des Blocks, der der anfänglichen Partitionierungsentscheidung entspricht, erzeugen. In jedem Falle erzeugt der Vorgang 1401 eine anfängliche Partitionierungsentscheidung für einen Block (z. B. LCU) derart, dass die kleinsten Kandidatenpartitionen bis herunter zu einer Größe von 8x8-Partitionen ausgewertet werden und die Auswertung kleinerer Partitionen übersprungen wird.
  • Die Verarbeitung wird beim Entscheidungsvorgang 1402 fortgesetzt, in dem eine Bestimmung vorgenommen wird, ob eine der Kandidatenpartitionen (z. B. CUs) der anfänglichen Partitionierungsentscheidung des Blocks (z. B. LCU) 8×8-Partitionen besitzt. Wenn nicht wird die Verarbeitung beendet und die anfängliche Partitionierungsentscheidung wird als die endgültige Partitionierungsentscheidung für den Block (z. B. LCU) verwendet. Zusätzlich werden die anfänglichen Codierungsmodusentscheidungen für die Partitionen (z. B. CUs) als endgültige Codierungsmodusentscheidungen verwendet. Zum Beispiel können die anfängliche Partitionierungsentscheidung und die anfänglichen Codierungsmodusentscheidungen zu einer endgültigen Partitionierungsentscheidung und endgültigen Codierungsmodusentscheidungen gemacht, um endgültige LCU-Partitionierungsdaten und CU-Codierungsmodusdaten 1421 zu erzeugen. Zum Beispiel werden dann, wenn der aktuelle Block (z. B. LCU) als Teil der anfänglichen Partitionierungsentscheidung keine 8×8-Partitionen (z. B. CUs) besitzt, die Codierungsmodi für 4×4-Partitionen (z. B. CUs) nicht ausgewertet. Das bedeutet, dass der Prozess 1400 eine 4×4-Codierungsmodusauswertung (z. B. CU4X4) lediglich als eine Verfeinerungsstufe bereitstellen kann. Eine Prüfung interner und/oder übergreifender Codierungsmodi für 4×4-Partitionen wird lediglich nach der Partitionierung und Codierungsmodusauswertung eines Blocks (z. B. LCU, 64×64) zu Partitionsgrößen (z. B. CU-Größen) von 8×8 durchgeführt. Wenn nach einer derartigen Verarbeitung (wie oben diskutiert) keine Partitionen (z. B. CUs) des Blocks (z. LCU) 8×8 groß sind, wird das Testen von Codierungsmodi für Codierungseinheiten der Größe 4×4 umgangen. In der Diskussion von 14 werden die Begriffe Block und Partitionen aus Gründen der Klarheit verwendet. Wie hier diskutiert wird, kann die Verarbeitung an einer oder einem beliebigen geeigneten LCU, CU, Makroblock usw. durchgeführt werden, und Partitionen davon können als Unterblöcke, CUs, Blöcke usw. bezeichnet werden.
  • Zurückkommend auf Entscheidungsvorgang 1402 wird dann, wenn eine der Partitionen (z. B. CUs) des Blocks (z. B. LCU) eine 8×8-Partition (z. B. CU) ist, die Verarbeitung derart fortgesetzt, dass ein Prüfen von internen und/oder übergreifenden Modi für Codierungseinheiten der Größe 4×4 ausgewertet wird. In einer Ausführungsform wird eine derartige fortgesetzte Verarbeitung für 8×8-Partitionen (z. B. CUs), denen ein übergreifender Modus oder ein interner Modus entspricht, bereitgestellt. In einer weiteren Ausführungsform wird eine derartige fortgesetzte Verarbeitung lediglich für 8×8-Partitionen (z. B. CUs), denen ein interner Modus entspricht, bereitgestellt. In einer weiteren Ausführungsform wird eine derartige fortgesetzte Verarbeitung lediglich für 8×8-Partitionen (z. B. CUs), denen ein übergreifender Modus entspricht, bereitgestellt. Zum Beispiel kann der Entscheidungsvorgang 1402 das Bestimmen enthalten, ob die aktuelle Blockeinheit (z. B. LCU-Einheit) 8×8-Partitionen (z. B. CUs) eines internen Codierungsmodus besitzt. Wenn nicht endet die Verarbeitung wie oben diskutiert (selbst wenn der Block eine 8×8-Codierungseinheit eines übergreifenden Codierungsmodus besitzt). Wenn ja wird die Verarbeitung mit dem Prüfen interner und/oder übergreifender Modi für Partition (z. B. CUs) der Größe 4×4 fortgesetzt.
  • Wie gezeigt ist, wird die Verarbeitung bei Vorgang 1403 fortgesetzt, in dem eine erste 8×8-Partition (z. B. CU) unter Verwendung einer oder mehrerer beliebiger geeigneter Techniken gewählt wird. Die Verarbeitung wird beim wahlweisen Entscheidungsvorgang 1404 fortgesetzt, in dem eine Bestimmung vorgenommen wird, ob die gewählte 8×8-Partition (z. B. CU) in 4×4-Partitionen (z. B. CUs) partitioniert und gemäß den Ergebnissen von Vorgang 1405 ausgewertet werden soll. Wie gezeigt ist, können im Vorgang 1405 ein oder mehrere Detektoren an den aktuellen Block (z. B. LCU) angewandt werden. Zum Beispiel kann der Vorgang 1405 durch das Detektormodul 408 durchgeführt werden.
  • In einer Ausführungsform kann ein Detektor für einen flachen und verrauschten Block (z. B. LCU) oder Bereich (z. B. ein Bereich, der den Block oder Teile des Bildes enthält) im Vorgang 1405 (und über das Detektormodul 408) angewandt werden. Der Detektor für einen flachen und verrauschten Block oder Bereich kann unter Verwendung einer oder mehrerer beliebiger geeigneter Techniken wie z. B. den in Bezug auf 15 diskutierten angewandt werden.
  • 15 ist ein veranschaulichendes Diagramm eines Beispieldetektors 1500 für flache und verrauschte Bereiche, der gemäß mindestens einigen Implementierungen der vorliegenden Offenlegung ausgelegt ist. Wie in 15 gezeigt ist, kann der Beispieldetektor 1500 für flache und verrauschte Bereiche eine Rauschunterdrückungseinrichtung 1501, einen Differenzierer 1502, ein Flachheitsprüfungsmodul 1503 und ein Rauschprüfungsmodul 1504 enthalten. Wie gezeigt ist, empfängt die Rauschunterdrückungseinrichtung 1501 einen Eingabebereich 1511 und unterdrückt das Rauschen im Eingabebereich 1511 unter Verwendung einer oder mehrerer beliebiger geeigneter Techniken wie z. B. Filtertechniken, um einen Bereich 1512 mit unterdrücktem Rauschen zu erzeugen. Der Eingabebereich 1511 kann ein beliebiger geeigneter Bereich wie z. B. ein Block (z. B. LCU), ein Bereich, der den Block und weitere Blöcke (z. B. LCUs) enthält, wie z. B. ein Bereich von 9x9-Blöcken mit dem Zielblock in der Mitte des Bereichs, oder ein Abschnitt, der einen Block enthält, sein. Der Bereich mit unterdrücktem Rauschen 1512 wird dem Flachheitsprüfungsmodul 1503 bereitgestellt, das den Bereich mit unterdrücktem Rauschen 1512 unter Verwendung einer oder mehrerer beliebiger geeigneter Techniken auf Flachheit prüft. In einer Ausführungsform bestimmt das Flachheitsprüfungsmodul 1503 eine Varianz des Bereichs mit unterdrücktem Rauschen 1512 und vergleicht die Varianz mit einem vorgegebenen Schwellenwert. Wenn die Varianz den Schwellenwert nicht überschreitet, wird ein Flachheitsindikator 1513, der anzeigt, dass der Bereich mit unterdrücktem Rauschen 1512 flach ist, bereitgestellt. Darüber hinaus werden der Eingabebereich 1511 und der Bereich mit unterdrücktem Rauschen 1512 dem Differenzierer 1502 bereitgestellt, der unter Verwendung einer oder mehrerer beliebiger geeigneter Techniken eine Differenz zwischen dem Eingabebereich 1511 und dem Bereich mit unterdrücktem Rauschen 1512 bilden kann, um die Differenz 1514 zu erzeugen. Wie gezeigt ist, wird die Differenz 1514 dem Rauschprüfungsmodul 1504 bereitgestellt, das die Differenz 1514 prüft, um unter Verwendung einer oder mehrerer geeigneter Techniken zu bestimmen, ob der Eingabebereich 1511 ein verrauschter Bereich ist. In einer Ausführungsform bestimmt das Rauschprüfungsmodul 1504 eine Varianz der Differenz 1514 und vergleicht die Varianz mit einem vorgegebenen Schwellenwert. Wenn die Varianz den Schwellenwert erreicht oder überschreitet, wird ein Rauschindikator 1515 bereitgestellt, der anzeigt, dass der Eingabebereich 1511 verrauscht ist. Wenn sowohl der Flachheitsindikator 1513 als auch der Rauschindikator 1515 für den Eingabebereich 1511 bestätigt werden, wird der Eingabebereich 1511 als ein flacher und verrauschter Bereich bestimmt.
  • Zurückkommend auf den Entscheidungsvorgang 1404 von 14 wird dann, wenn der Block ein flacher, verrauschter Block ist (oder wenn der Block sich in einem flachen, verrauschten Bereich befindet), die Auswertung interner und/oder übergreifender Codierungsmodi für 4×4-Partitionen (z. B. CUs) derart umgangen, dass die Verarbeitung wie unten diskutiert wird beim Entscheidungsvorgang 1409 fortgesetzt werden kann. Zum Beispiel kann das Deaktivieren einer 4×4-Partitionsverfeinerung (z. B. die Auswertung von Codierungsmodi für 4×4-Partitionen) für flache, verrauschte LCUs den Vorteil des Umgehens einer derartigen Auswertung bieten, wenn es unwahrscheinlich ist, dass die internen 4×4-Modi die optische Qualität in Bezug auf das komprimierte Video verbessern.
  • Zurückkommend auf Vorgang 1405 kann zusätzlich oder als Alternative ein Kantendetektor an den Block (z. B. LCU) oder einen Bereich, der den Block enthält, bei Vorgang 1405 angewandt werden. Zum Beispiel kann durch das Detektormodul 408 eine Kantendetektion angewandt werden. Der Kantendetektor kann unter Verwendung einer oder mehrerer beliebiger geeigneter Techniken wie z. B. Canny-Kantendetektionstechniken angewandt werden. In einer Ausführungsform wird dann, wenn eine Kante im aktuellen Block (z. B. LCU) (oder einem Bereich, der den aktuellen Block enthält) detektiert wird, eine Auswertung von internen und/oder übergreifenden Codierungsmodi für 4×4-Partitionen (z. B. CUs) bereitgestellt und wird dann, wenn nicht, die Auswertung von internen und/oder übergreifenden Codierungsmodi für 4×4-Partitionen (z. B. CUs) umgangen. Ein Bereitstellen einer 4×4-Partitionsverfeinerung (z. B. eine Auswertung von Codierungsmodi für 4×4-Partitionen) für Blöcke (z. B. LCUs), die eine Kante enthalten, stellt eine verbesserte optische Qualität und verringerte Störsignale bereit.
  • Die diskutierten Detektionstechniken und Entscheidungen, ob Codierungsmodi für 4×4-Partitionen (z. B. CUs) bereitgestellt werden sollen, können unter Verwendung einer oder mehrerer beliebiger geeigneter Techniken kombiniert werden. In einer Ausführungsform werden alle 8×8-Partitionen (z. B. CUs) ausgewertet. In einer weiteren Ausführungsform werden alle internen 8×8-Partitionen (z. B. CUs) ausgewertete (übergreifende 8×8-Partitionen (z. B. CUs) jedoch nicht). In einer Ausführungsform werden alle 8×8-Partitionen (z. B. CUs) in einem Block (z. B. LCU), der eine Kante enthält, ausgewertet. In einer weiteren Ausführungsform werden lediglich interne 8×8-Partitionen (z. B. CUs) in einem Block (z. B. LCU), der eine Kante enthält, ausgewertet. In einer Ausführungsform werden alle 8×8-Partitionen (z. B. CUs) außer denen, die flach und verrauscht sind, ausgewertet. In einer weiteren Ausführungsform werden lediglich interne 8×8-Partitionen (z. B. CUs), die nicht flach und verrauscht sind, ausgewertet.
  • Für Fälle, in denen die aktuelle 8×8-Partition (z. B. CU) ausgewertet werden soll, wird die Verarbeitung bei Vorgang 1406 fortgesetzt, in dem die internen und/oder übergreifenden Codierungsmodi für jede der 4×4-Partitionen (z. B. CUs), die von der aktuellen 8×8-Partition (z. B. CU), die im Vorgang 1403 gewählt wurde, partitioniert wurde, ausgewertet werden. In einer Ausführungsform werden dann, wenn die 8×8-Partition (z. B. CU) einen anfänglichen Codierungsmodus besitzt, der ein interner Modus ist, im Vorgang 1406 lediglich interne Modi für die 4×4-Partitionen (z. B. CUs) ausgewertet. Entsprechend werden in einer Ausführungsform dann, wenn die 8×8-Partition (z. B. CU) einen anfänglichen Codierungsmodus besitzt, der ein übergreifender Modus ist, im Vorgang 1406 lediglich übergreifende Modi für die 4×4-Partitionen (z. B. CUs) ausgewertet.
  • In Ausführungsformen, in denen interne Modi für die 4×4-Partitionen (z. B. CUs) ausgewertet werden, können alle verfügbaren internen Codierungsmodi ausgewertet werden oder kann ein eingeschränkter Satz der verfügbaren internen Codierungsmodi ausgewertet werden. In einer Ausführungsform sind die ausgewerteten internen Codierungsmodi auf diejenigen eingeschränkt, die durch den wahlweisen Vorgang 1407 bereitgestellt werden. Wie in Vorgang 1407 gezeigt ist, kann der Vorgang 1406 eine beschränkte Untermenge von verfügbaren internen Codierungsmodi derart implementieren, dass die Untermenge lediglich den besten internen Codierungsmodus für die aktuelle 8×8-Codierungseinheit (wenn zutreffend), den DC-internen Modus, den ebenen internen Modus und einen oder mehrere benachbarte Modi des besten internen Codierungsmodus für die aktuelle 8×8-Codierungseinheit enthält. Zum Beispiel sind für einen bestimmten internen Richtungsmodus die unmittelbar benachbarten Modi diejenigen, die direktional an den bestimmten internen Richtungsmodus angrenzen, und benachbarte Modi enthalten unmittelbar benachbarte Modi und eine eingeschränkte Anzahl unmittelbar angrenzender Modi von den unmittelbar benachbarten Modi. Zum Beispiel sind in Bezug auf den HEVC-internen Modus 5 unmittelbar benachbarte Modi die internen Modi 4 und 6 und zusätzliche benachbarte Modi sind die Modi 3 und 7 (und 2 und 8 usw.). In einer Ausführungsform enthalten der eine oder die mehreren benachbarten Modi lediglich die zwei unmittelbar benachbarten Modi. In einer Ausführungsform enthalten der eine oder die mehreren benachbarten Modi die zwei unmittelbar benachbarten Modi und zwei zusätzliche unmittelbare Nachbarn der zwei unmittelbar benachbarten Modi (d. h. jeweils einen Nachbarn der unmittelbar benachbarten Modi). In einer Ausführungsform enthalten der eine oder die mehreren benachbarten Modi die zwei unmittelbar benachbarten Modi und vier zusätzliche unmittelbare Nachbarn der zwei unmittelbar benachbarten Modi (d. h. jeweils zwei Nachbarn der unmittelbar benachbarten Modi). Allerdings kann eine beliebige Anzahl benachbarter Modi verwendet werden.
  • In Ausführungsformen, in denen übergreifende Modi für die 4×4-Partitionen (z. B. CUs) ausgewertet werden, kann eine vollständige Bewegungsschätzungssuche durchgeführt werden oder kann die Bewegungsschätzungssuche auf eine Fläche beschränkt sein, die um einen Ort zentriert ist, der durch den besten Bewegungsvektorkandidaten des besten übergreifenden Modus für die 8×8-Partition angezeigt wird (oder zwei Flächen, die um zwei Orte zentriert sind, wenn Bi-Prädiktion der beste übergreifende Modus ist). In einer Ausführungsform sind die übergreifenden Codierungsmodi und die Bewegungsschätzungssuche auf diejenigen beschränkt, die durch den wahlweisen Vorgang 1407 bereitgestellt sind. Wie in Vorgang 1407 gezeigt ist, kann Vorgang 1406 eine eingeschränkte Untermenge von verfügbaren übergreifenden Codierungsmodi und eine Bewegungsschätzungssuche derart implementieren, dass die Untermenge oder Einschränkung lediglich eine beschränkte Fläche durchsucht, die um einen Ort zentriert ist, der durch den Bewegungsvektorkandidaten des besten übergreifenden Modus für die aktuelle 8×8-Partition angezeigt wird. Wie diskutiert wird werden dann, wenn der beste übergreifende Modus für die aktuelle 8x8-Partition die bidirektionale Prädiktion ist, zwei um zwei Bewegungsvektorkandidaten zentrierte Flächen verwendet. Zum Beispiel ist für einen bestimmten Bewegungsvektor eines übergreifenden Modus ein Suchbereich für die 4×4-Partitionen als ein Bereich eines Bezugsbildes (z. B. von ursprünglichen Pixel-Abtastwerten oder rekonstruierten Pixel-Abtastwerten) definiert, der um den Ort im Bezugsbild, der durch den Bewegungsvektor der aktuellen 8×8-Partition angezeigt wird, zentriert ist. Die Suchfläche oder der Bereich, der um den Ort des Bezugsbildes, der durch den Bewegungsvektor der aktuellen 8×8-Partition angezeigt wird, zentriert ist, kann auf eine beliebige Suchfläche wie z. B. eine Such-36×36-Pixel-Suchfläche, die am Ort zentriert ist, oder eine 100×100-Pixel-Suchfläche beschränkt sein. Allerdings kann eine Suchfläche einer beliebigen Größe (z. B. eine quadratische Suchfläche), die weniger als eine vollständige Suche ist, verwendet werden.
  • Wie gezeigt ist, wird die Verarbeitung von Vorgang 1406 bei Vorgang 1408 fortgesetzt, in dem ein besserer Kandidat zwischen dem Codierungsmodus, der für die 8×8-Partition (z. B. CU) empfangen wird, und den Codierungsmodi für die 4×4-Partitionen (z. B. CUs) gewählt wird. Der bessere Codierungsmoduskandidat kann unter Verwendung einer oder mehrerer beliebiger geeigneter Techniken wie z. B. Ratenverzerrungsoptimierungstechniken oder dergleichen gewählt werden. Im Kontext eines entkoppelten Codiersystems kann die Kandidatenerzeugung und die Kandidatenauswahl lediglich unter Verwendung von ursprünglichen Pixel-Abtastwerten (z. B. ohne eine vollständige Decodierschleifenrekonstruktion) derart vorgenommen werden, dass entweder lediglich Luma-Abtastwerte oder sowohl Luma-Abtastwerte als auch Chroma-Abtastwerte verwendet werden, wie hier an anderer Stelle diskutiert wird. Im Kontext eines integrierten Codiersystems kann die Kandidatenerzeugung und Kandidatenauswahl unter Verwendung rekonstruierter Pixel-Abtastwerte (z. B. unter Verwendung der lokalen Decodierschleife 614) derart erfolgen, dass entweder lediglich Luma-Abtastwerte oder sowohl Luma-Abtastwerte als auch Chroma-Abtastwerte verwendet werden, wie hier an anderer Stelle diskutiert wird. Wenn die vier 4×4-Partitionen (z. B. CUs) gewählt werden (jede mit einem entsprechenden internen oder übergreifenden Codierungsmodus), werden die Partitionierungsentscheidung und die CU-Codierungsmodusentscheidungsdaten aktualisiert, um eine endgültige Partitionierung und endgültige Codierungsmodi 1421 zu erzeugen. Zum Beispiel zeigen die endgültige Partitionierung und die endgültigen Codierungsmodi 1421 eine 4×4-Partitionierung und den internen oder Codierungsmodus für jede der 4×4-Codierungseinheiten an.
  • Die Verarbeitung wird von Vorgang 1408 beim Entscheidungsvorgang 1409 fortgesetzt, in dem eine Bestimmung vorgenommen wird, ob die aktuelle 8×8-Partition (die z. B. im Vorgang 1403 gewählt wird) die letzte 8×8-Partition (z. B. CU) im aktuellen Block (z. B. LCU). Wenn ja endet die Verarbeitung und eine endgültige LCU-Partitionierung und CU-Codierungsmodi 1421 werden für den Block (z. B. LCU) erzeugt. Wenn nein wird die Verarbeitung bei Vorgang 1410 fortgesetzt, in dem eine nächste 8×8-Partition (z. B. CU) gewählt wird, und der Prozess 1400 wird wie oben diskutiert (beginnend bei Entscheidungsvorgang 1404) fortgesetzt, bis eine letzte 8×8-Partition (z. B. CU) verarbeitet wurde.
  • 16 ist ein Flussdiagramm, das einen Beispielprozess 1600 zur Videocodierung darstellt, der gemäß mindestens einigen Implementierungen der vorliegenden Offenlegung ausgelegt ist. Der Prozess 1600 kann einen oder mehrere der Vorgänge 1601-1604 enthalten, wie in 16 dargestellt ist. Der Prozess 1600 kann mindestens einen Teil eine Videocodierungsprozesses bilden. In Form eines nicht einschränkenden Beispiels kann der Prozess 1600 mindestens einen Teil eines Videocodierungsprozesses bilden, der durch eine beliebige Einrichtung oder ein beliebiges System wie z. B. System 160 wie hier diskutiert wird durchgeführt wird. Darüber hinaus wird der Prozess 1600 hier in Bezug auf System 1700 von 17 beschrieben.
  • 17 ist ein veranschaulichendes Diagramm eines Beispielsystems 1700 zur Videocodierung, das gemäß mindestens einigen Implementierungen der vorliegenden Offenlegung ausgelegt ist. Wie in 17 gezeigt ist, kann das System 1700 einen zentralen Prozessor 1701, einen Videovorprozessor 1702, einen Videoprozessor 1703 und einen Datenspeicher 1704 enthalten. Wie auch gezeigt ist kann der Videovorprozessor 1702 das Partitionierungs- und Modusentscheidungsmodul 101 enthalten oder implementieren und der Videoprozessor 1703 kann den Codierer 102 enthalten oder implementieren. Zusätzlich oder alternativ kann der Videoprozessor 1703 den Codierer 600 enthalten oder implementieren. Im Beispiel von System 1700 kann der Datenspeicher 1704 Videodaten oder ähnlichen Inhalt wie z. B. Videodaten, Bilddaten, Partitionierungsdaten, Modusdaten und/oder beliebige weitere Daten wie hier diskutiert wird speichern.
  • Wie gezeigt ist, ist in einigen Ausführungsformen das Partitionierungs- und Modusentscheidungsmodul 101 mittels des Videovorprozessors 1702 implementiert. In weiteren Ausführungsformen sind das Partitionierungs- und Modusentscheidungsmodul 101 oder Teile davon mittels des zentralen Prozessors 1701 oder einer weiteren Verarbeitungseinheit wie z. B. eines Bildprozessors, eines Graphikprozessors oder dergleichen implementiert. Wie auch gezeigt ist, ist in einigen Ausführungsformen der Codierer 102 mittels des Videoprozessors 1703 implementiert. In weiteren Ausführungsformen sind der Codierer 102 oder Teile davon mittels des zentralen Prozessors 1701 oder einer weiteren Verarbeitungseinheit wie z. B. eines Bildprozessors, eines Graphikprozessors oder dergleichen implementiert. Darüber hinaus ist, wie gezeigt ist, in einigen Ausführungsformen das Codiersystem 600 (in 17 als Codierer 600 bezeichnet) über den Videoprozessor 1703 implementiert. In weiteren Ausführungsformen ist der Codierer 600 oder Teile davon mittels des zentralen Prozessors 1701 oder einer weiteren Verarbeitungseinheit wie z. B. eines Bildprozessors, eines Graphikprozessors oder dergleichen implementiert.
  • Der Videovorprozessor 1702 kann eine beliebige Anzahl und einen beliebigen Typ von Video-, Bild- oder Graphikverarbeitungseinheiten enthalten, die die hier diskutierten Vorgänge bereitstellen können. Derartige Vorgänge können mittels Software oder Hardware oder einer Kombination davon implementiert werden. Zum Beispiel kann der Videovorprozessor 1702 eine Schaltungsanordnung enthalten, die fest zugeordnet ist, um Bilder, Bilddaten oder dergleichen, die vom Speicher 1704 erhalten werden, zu manipulieren. Ebenso kann der Videoprozessor 1703 eine beliebige Anzahl und einen beliebigen Typ von Video-, Bild- oder Graphikverarbeitungseinheiten enthalten, die die Vorgänge wie hier diskutiert bereitstellen können. Derartige Vorgänge können mittels Software oder Hardware oder einer Kombination davon implementiert werden. Zum Beispiel kann der Videoprozessor 1703 eine Schaltungsanordnung enthalten, die fest zugeordnet ist, um Bilder, Bilddaten oder dergleichen, die vom Speicher 1704 erhalten werden, zu manipulieren. Der zentrale Prozessor 1701 kann eine beliebige Anzahl und beliebige Typen von Verarbeitungseinheiten oder Modulen enthalten, die eine Steuerung und weitere Funktionen eines hohen Niveaus für das System 1700 bereitstellen können und/oder beliebige Vorgänge wie hier diskutiert bereitstellen können. Der Speicher 1704 kann ein beliebiger Typ eines Speichers wie z. B. flüchtiger Speicher (z. B. statischer Schreib-/Lese-Speicher (SRAM), dynamischer Schreib-/Lese-Speicher (DRAM) usw.) oder nichtflüchtiger Speicher (z. B. Flash-Speicher usw.) usw. sein. In einem nicht einschränkenden Beispiel kann der Datenspeicher 1704 durch einen Zwischenspeicher implementiert werden.
  • In einer Ausführungsform sind eines oder mehrere oder Teile des Partitionierungs- und Modusentscheidungsmoduls 101, des Codierers 102 und des Codierers 600 mittels einer Einheit zum Ausführen (EU) implementiert. Die EU kann zum Beispiel eine programmierbare Logik oder eine Schaltungsanordnung wie z. B. einen Logikkern oder Logikkerne enthalten, die eine breite Anordnung von programmierbaren Logikfunktionen bereitstellen können. In einer Ausführungsform sind eines oder mehrere oder Teile des Partitionierungs- und Modusentscheidungsmoduls 101, des Codierers 102 und des Codierers 600 mittels einer fest zugeordneten Hardware wie z. B. einer Schaltungsanordnung mit fester Funktionalität oder dergleichen implementiert. Eine Schaltungsanordnung mit fester Funktionalität kann eine fest zugeordnete Logik oder Schaltungsanordnung enthalten und kann einen Satz fester Funktionseintrittspunkte bereitstellen, die auf die fest zugeordnete Logik für einen festen Zweck oder eine feste Funktion abgebildet sein können. In einer Ausführungsform ist das Partitionierungs- und Modusentscheidungsmodul 101 mittels einer feldprogrammierbare Gate-Anordnung (FPGA) implementiert.
  • Zurückkommend auf 16 kann der Prozess 1600 beim Vorgang 1601 beginnen, bei dem ein Eingangsvideo zur Codierung empfangen wird. Zum Beispiel kann das Eingangsvideo mehrere Bilder derart enthalten, dass ein erstes Bild der mehreren Bilder einen Bereich enthält, der einen individuellen Block enthält, derart, dass der individuelle Block mehrere Partitionen enthält. Wie hier diskutiert wird, können die Partitionen eine beliebige oder Kombinationen von Codierungseinheiten, Vorhersageeinheiten, Transformationseinheiten oder dergleichen sein.
  • Die Verarbeitung wird bei Vorgang 1602 fortgesetzt, in dem ein oder mehrere Detektoren an den Bereich, den individuellen Block und/oder eine oder mehrere Partitionen, um einen oder mehrere Detektionsindikatoren zu erzeugen, angewandt werden. Die Detektionsindikatoren können beliebige Indikatoren, die hier diskutiert werden, wie z. B. die, die in Bezug auf Vorgang 1603 diskutiert werden, enthalten.
  • Die Verarbeitung wird bei Vorgang 1603 fortgesetzt, in dem eine Partitionierungsentscheidung für den individuellen Block erzeugt wird und Codierungsmodusentscheidungen für Partitionen des individuellen Blocks, die der Partitionierungsentscheidung unter Verwendung der Detektionsindikatoren entsprechen, erzeugt werden. Wie gezeigt ist, erfolgen die Partitionierungsentscheidung und die Codierungsmodusentscheidungen mindestens auf der Grundlage des Erzeugens einer Auswertungsentscheidung für Luma und Chroma oder einer Auswertungsentscheidung lediglich für Luma für eine erste Partition der Partitionen, dem Erzeugen einer Zusammenführungsmodusentscheidung oder Auslassmodusentscheidung für eine zweite Partition der Partitionen, die eine anfängliche Zusammenführungsmodusentscheidung aufweist, dem Erzeugen lediglich eines Teils einen Transformationskoeffizientenblocks für eine dritte Partition der Partitionen und/oder dem Auswerten von 4×4-Modi lediglich für eine vierte Partition der Partitionen, die eine anfängliche 8×8-Codierungspartition ist.
  • In einer Ausführungsform enthalten die Detektionsindikatoren Indikatoren, ob ein Luma-Durchschnitt der ersten Partition einen ersten Schwellenwert überschreitet, ein Durchschnitt eines ersten Chroma-Kanals der ersten Partition einen zweiten Schwellenwert überschreitet und ein Durchschnitt eines zweiten Chroma-Kanals der ersten Partition einen dritten Schwellenwert überschreitet, und das Erzeugen der Partitionierungsentscheidung und der Codierungsmodusentscheidungen enthält das erzeugen der Auswertungsentscheidung für Luma und Chroma oder der Auswertungsentscheidung lediglich für Luma für die erste Partition durch Anwenden einer Auswertungsentscheidung lediglich für Luma für die ersten Partition, wenn der Luma-Durchschnitt den ersten Schwellenwert nicht überschreitet, der Durchschnitt des ersten Chroma-Kanals den zweiten Schwellenwert nicht überschreitet und der Durchschnitt des zweiten Chroma-Kanals den dritten Schwellenwert nicht überschreitet. Zum Beispiel schränkt die Auswertungsentscheidung lediglich für Luma die Partitionierungsentscheidungen und Codierungsmodusentscheidungen ein, lediglich Luma-Informationen zu verwenden. In einer Ausführungsform enthalten die Detektionsindikatoren ferner Indikatoren, ob die erste Partition eine Kante enthält und ob die erste Partition sich in einer aufgedeckten Fläche befindet, und das Erzeugen der Partitionierungsentscheidung und der Codierungsmodusentscheidungen enthält das Erzeugen der Auswertungsentscheidung für Luma und Chroma oder lediglich für Luma für die erste Partition durch Anwenden einer Auswertungsentscheidung für Luma und Chroma für die erste Partition als Antwort darauf, dass der Luma-Durchschnitt, der Durchschnitt des ersten Chroma-Kanals oder der Durchschnitt des zweiten Chroma-Kanals seinen entsprechenden Schwellenwert überschreitet und die erste Partition eine Kante enthält oder sich in einer aufgedeckten Fläche befindet. Zum Beispiel sieht die Auswertungsentscheidung für Luma und Chroma vor, dass die Partitionierungsentscheidungen und Codierungsmodusentscheidungen Luma- und Chroma-Informationen verwenden.
  • In einer Ausführungsform enthält das Bild einen I-Abschnitt, der die erste Partition enthält, und das Erzeugen der Partitionierungsentscheidung und der Codierungsmodusentscheidungen enthält das Erzeugen der Auswertungsentscheidung für Luma und Chroma oder lediglich für Luma für jede Partition des Bildes durch Anzeigen der Verwendung lediglich von Luma für die erste Partition als Antwort darauf, dass die erste Partition sich im I-Abschnitt befindet. In einer Ausführungsform enthalten die mehreren Bilder Basisschichtbilder und Nicht-Basisschichtbilder derart, dass Basisschichtbilder Bezugsbilder für Nicht-Basisschichtbilder sind, Nicht-Basisschichtbilder jedoch nicht Bezugsbilder für Basisschichtbilder sind, wobei das Bild ein Basisschichtbild ist, das einen B-Abschnitt enthält, der die erste Partition enthält, und das Erzeugen der Partitionierungsentscheidung und der Codierungsmodusentscheidungen das Erzeugen der Auswertungsentscheidung für Luma und Chroma oder lediglich für Luma für jede Partition des Bildes durch Anzeigen der Verwendung von Luma und Chroma für die erste Partition als Antwort darauf, das die erste Partition sich im Basisschicht-B-Abschnitt befindet, enthält. In einer weiteren Ausführungsform ist das Bild ein Nicht-Basisschichtbild, das einen B-Abschnitt enthält, der die erste Partition enthält, und das Erzeugen der Partitionierungsentscheidung und der Codierungsmodusentscheidungen enthält das Erzeugen der Auswertungsentscheidung für Luma und Chroma oder lediglich für Luma für jede Partition des Bildes durch Anzeigen der Verwendung von Luma und Chroma lediglich für die erste Partition, um zwischen einem Zusammenführungsmodus und einem Auslassmodus als Antwort darauf, dass die erste Partition sich im Nicht-Basisschicht-B-Abschnitt befindet und die Partitionen anfängliche Zusammenführungsmodusentscheidungen aufweisen, zu wählen.
  • In einer Ausführungsform enthalten die Detektionsindikatoren eine Bestimmung, ob ein Betrag einer Differenz zwischen anfänglichen Auslassmoduscodierungskosten und anfänglichen Zusammenführungsmoduscodierungskosten für die zweite Partition einen Schwellenwert überschreitet, und das Erzeugen der Partitionierungsentscheidung und der Codierungsmodusentscheidungen enthält das Erzeugen der Zusammenführungsmodusentscheidung oder Auslassmodusentscheidung durch Wählen der Auslassmoduscodierung oder der Zusammenführungsmoduscodierung für die zweite Partition, wenn der Betrag der Differenz den Schwellenwert überschreitet, um eine endgültige Auslassmodusentscheidung oder Zusammenführungsmodusentscheidung zu erzeugen oder die Auswahl der Auslassmoduscodierung oder Zusammenführungsmoduscodierung auf eine Zusammenführungsmodusentscheidung oder eine Auslassmodusentscheidung eines vollständigen Codierungsdurchlaufs zu verschieben, wenn der Betrag der Differenz den Schwellenwert nicht überschreitet.
  • In einer Ausführungsform enthält das Erzeugen der Partitionierungsentscheidung und der Codierungsmodusentscheidungen das Erzeugen der Codierungsmodusentscheidungen durch Auswerten eines Codierungsmodus für die dritte Partition des individuellen Blocks durch Bilden einer Differenz zwischen der dritten Partition und einer vorhergesagten Partition, die dem Codierungsmodus entspricht, um eine Restpartition zu erzeugen, das Erzeugen eines Transformationskoeffizientenblocks auf der Grundlage der Restpartition durch Durchführen einer Teiltransformation an der Restpartition, um Transformationskoeffizienten von einem Teil des Transformationskoeffizientenblocks derart zu erzeugen, dass eine Anzahl von Transformationskoeffizienten im Teil kleiner als eine Anzahl von Werten der Restpartition ist und Setzen der verbleibenden Transformationskoeffizienten des Transformationskoeffizientenblocks auf null, das Quantisieren des Transformationskoeffizientenblocks, um quantisierter Transformationskoeffizienten zu erzeugen, das inverse Quantisieren der quantisierten Transformationskoeffizienten und das Erzeugen eines Verzerrungsmaßes, das den vorhergesagten Partitionen entspricht, auf der Grundlage der invers quantisierten Transformationskoeffizienten. Zum Beispiel kann die dritte Partition eine TU sein. In einer Ausführungsform enthalten die Detektionsindikatoren einen Indikator, ob der Bereich, der individuelle Block oder die dritte Partition optisch wichtig ist, und das Erzeugen der Partitionierungsentscheidung und der Codierungsmodusentscheidungen enthält das Erzeugen lediglich des Teils des Transformationskoeffizientenblocks durch Erzeugen eines ersten Transformationskoeffizientenblocks, der eine erste Anzahl verfügbarer Transformationskoeffizienten besitzt, wenn der Bereich, der individuelle Block oder die dritte Partition optisch wichtig ist, oder Erzeugen eines zweiten Transformationskoeffizientenblocks, der eine zweite Anzahl verfügbarer Transformationskoeffizienten besitzt, wenn der Bereich, der individuelle Block oder die dritte Partition nicht optisch wichtig ist, derart, dass die zweite Anzahl geringer als die erste Anzahl ist.
  • In einer Ausführungsform enthält das Erzeugen der Partitionierungsentscheidung das Bestimmen einer anfänglichen Partitionierungsentscheidung für den individuellen Block, das kleinste Kandidatenpartitionen von 8x8-Kandidatenpartitionen des individuellen Blocks auswertet, die anfängliche Partitionierungsentscheidung partitioniert den individuellen Block in die vierte Partition und eine oder mehrere Partitionen und das Erzeugen der Partitionierungsentscheidung enthält ferner das Auswerten, als Antwort darauf, dass die vierte Partition einen 8×8-Partition ist, von 4×4-Unterpartitionen der vierten Partition. In einer Ausführungsform enthalten die Detektionsindikatoren ferner einen besten Modus für die vierte 8×8-Partition und das Auswerten der 4×4-Unterpartitionen enthält das Auswerten lediglich übergreifender Modi für die 4×4-Unterpartitionen, wenn der beste Modus ein übergreifender Modus ist, und das Auswerten lediglich interner Modi für die 4×4-Unterpartitionen, wenn der beste Modus ein interner Modus ist. In einer Ausführungsform enthalten die Detektionsindikatoren ferner einen gewählten Bewegungsvektor für einen besten übergreifenden Modus für die vierte 8×8-Partition und das Auswerten der 4×4-Unterpartitionen enthält das Durchführen einer Bewegungsschätzung für jede der 4×4-Unterpartitionen unter Verwendung des gewählten Bewegungsvektors, um ein Suchzentrum für die Bewegungsschätzungssuchen zu definieren. In einer Ausführungsform enthalten die Detektionsindikatoren ferner einen besten internen Modus, der der vierten 8×8-Partition entspricht, und das Auswerten der 4×4-Unterpartitionen verwendet lediglich den besten internen Modus, der der vierten 8×8-Partition entspricht, einen Gleichstrommodus, einen ebenen Modus und einen oder mehrere interne Modi, die dem besten internen Modus benachbart sind.
  • Die Verarbeitung wird bei Vorgang 1604 fortgesetzt, in dem der individuelle Block mindestens teilweise auf der Grundlage der Partitionierungsentscheidung codiert wird, um einen Teil eines Ausgangsbitstroms zu erzeugen. Der individuelle Block kann unter Verwendung einer oder mehrerer beliebiger geeigneter Techniken codiert werden und der Bitstrom kann ein beliebiger geeigneter Bitstrom wie z. B. ein standardkonformer Bitstrom sein.
  • Der Prozess 1600 kann in Reihe oder parallel für eine beliebige Anzahl von Eingangsvideosequenzen, Bildern, Codierungseinheiten Blöcken usw. beliebig oft wiederholt werden. Wie diskutiert wird kann der Prozess 1600 durch Beschränken der Informationen, die bei der Partitionierungsentscheidung und Codierungsmodusentscheidung verwendet werden, eine verbesserte Videodatenverwendungseffizienz liefern.
  • Verschiedene Komponenten der hier beschriebenen Systeme können in Software, Firmware und/oder Hardware und/oder beliebigen Kombinationen davon implementiert werden. Zum Beispiel können verschiedene Komponenten der Systeme oder Einrichtungen, die hier diskutiert werden, mindestens teilweise durch Hardware eines Rechensystems-on-a-Chip (SoC) bereitgestellt werden, wie es z. B. in einem Rechensystem wie z. B. einem Smartphone gefunden wird. Fachleute können erkennen, dass hier beschriebene Systeme zusätzliche Komponenten, die in den entsprechenden Figuren nicht dargestellt sind, enthalten können. Zum Beispiel können die hier dargestellten Systeme zusätzliche Komponenten wie z. B. Bistrommultiplexermodule oder Bitstromdemultiplexermodule und dergleichen, die im Interesse der Klarheit nicht dargestellt worden sind, enthalten.
  • Während Implementierungen der Beispielvorgänge, die hier diskutiert werden, das Durchführen von allen gezeigten Vorgängen in der dargestellten Reihenfolge enthalten können, ist die vorliegende Offenlegung nicht in dieser Hinsicht beschränkt und in verschiedenen Beispielen kann die Implementierung der Beispielprozesse hier lediglich eine Untermenge der dargestellten Vorgänge, in einer anderen als der dargestellten Reihenfolge ausgeführte Vorgänge oder zusätzliche Vorgänge enthalten.
  • Zusätzlich können ein oder mehrere der hier diskutierten Vorgänge als Antwort auf Anweisungen, die durch ein oder mehrere Computerprogrammprodukte bereitgestellt werden, durchgeführt werden. Derartige Programmprodukte können signaltragende Medien enthalten, die Anweisungen bereitstellen, die, wenn sie z. B. durch einen Prozessor ausgeführt werden, die hier beschriebene Funktionalität bereitstellen können. Die Computerprogrammprodukte können in einer beliebigen Form von einem oder mehreren maschinenlesbaren Medien bereitgestellt werden. Dadurch kann z. B. ein Prozessor, der eine oder mehrere Graphikverarbeitungseinheiten oder einen oder mehrere Prozessoren enthält, einen oder mehrere der Blöcke des der Beispielvorgänge hier als Antwort auf Programmcode und/oder Anweisungen oder Anweisungssätze, die dem Prozessor durch ein oder mehrere maschinenlesbare Medien übermittelt werden, durchführen. Im Allgemeinen kann ein maschinenlesbares Medium Software in der Form von Programmcode und/oder Anweisungen oder Anweisungssätzen übermitteln, die eine der Einrichtungen und/oder eines der Systeme, die hier beschrieben werden, veranlassen können, mindestens Teile der hier diskutierten Vorgänge und/oder Teile der Einrichtungen, Systeme oder beliebiger Module oder Komponenten wie sie hier diskutiert werden zu implementieren.
  • Wie in jeder hier beschriebenen Implementierung verwendet bezieht sich der Begriff „Modul“ auf eine beliebige Kombination einer Software-Logik, einer Firmware-Logik, einer Hardware-Logik und/oder einer Schaltungsanordnung, um die hier beschriebene Funktionalität bereitzustellen. Die Software kann als ein Software-Paket, ein Code und/oder ein Anweisungssatz oder Anweisungen verkörpert sein und „Hardware“ in der in jeder hier beschriebenen Implementierung verwendeten Form kann zum Beispiel einzelne oder in einer beliebigen Kombination eine fest verkabelte Schaltungsanordnung, eine programmierbare Schaltungsanordnung, eine Zustandsmaschinenschaltungsanordnung, eine Schaltungsanordnung mit fester Funktion, eine Schaltungsanordnung einer Einheit zum Ausführen und/oder eine Firmware, in der Anweisungen gespeichert sind, die durch eine programmierbare Schaltungsanordnung ausgeführt werden, enthalten. Die Module können gemeinsam oder einzeln als eine Schaltungsanordnung verkörpert sein, die einen Teil eines größeren Systems bildet, z. B. einer integrierten Schaltung (IC), eines Systems-on-Chip (SoC) usw.
  • 18 ist ein veranschaulichendes Diagramm eines Beispielsystems 1800, das gemäß mindestens einigen Implementierungen der vorliegenden Offenlegung ausgelegt ist. In verschiedenen Implementierungen kann das System 1800 ein mobiles System sein, obwohl das System 1800 in diesem Kontext nicht beschränkt ist. Zum Beispiel kann das System 1800 in einen Personal-Computer (PC), einen Laptop-Computer, einen Ultra-Laptop-Computer, ein Tablet, ein berührungsempfindliches Bedienfeld, einen tragbaren Computer, einen Hand-Computer, einen Palmtop-Computer, einen persönlichen digitalen Assistenten (PDA), ein Mobiltelefon, eine Kombination aus einem Mobiltelefon und einem PDA, ein Fernsehgerät, ein Smart-Device (z. B. ein Smartphone, eine Smart-Tablet oder einen Smart-TV), eine mobile Interneteinrichtung (MID), eine Nachrichtenübertragungseinrichtung, eine Datenkommunikationseinrichtung, Kameras (z. B. Kompaktkameras, Super-Zoom-Kameras, digitale Spiegelreflexkameras (DSLR)) usw. aufgenommen werden.
  • In verschiedenen Implementierungen enthält das System 1800 eine Plattform 1802, die an eine Anzeigevorrichtung 1820 gekoppelt ist. Die Plattform 1802 kann Inhalt von einer Inhaltseinrichtung wie z. B. einer oder mehrerer Inhaltsdiensteinrichtungen 1830, einer oder mehrerer Inhaltsübermittlungseinrichtungen 1840 oder weiterer ähnlicher Inhaltsquellen empfangen. Eine Navigationssteuereinheit 1850, die ein oder mehrere Navigationsbestandteile enthält, kann verwendet werden, um zum Beispiel mit der Plattform 1802 und/oder der Anzeigevorrichtung 1820 zu interagieren. Jede dieser Komponenten wird unten detaillierter beschrieben.
  • In verschiedenen Implementierungen kann die Plattform 1802 eine beliebige Kombination eines Chipsatzes 1805, eines Prozessors 1810, eines Datenspeichers 1812, einer Antenne 1813, eines Speichers 1814, eines Graphikuntersystems 1815, von Anwendungen 1816 und/oder eines Funks 1818 enthalten. Der Chipsatz 1805 kann eine Kommunikation zwischen dem Prozessor 1810, dem Datenspeicher 1812, dem Speicher 1814, dem Graphikuntersystem 1815, den Anwendungen 1816 und/oder dem Funk 1818 bereitstellen. Zum Beispiel kann der Chipsatz 1805 einen Speicheradapter (nicht dargestellt) enthalten, der eine Kommunikation mit dem Speicher 1814 bereitstellen kann.
  • Der Prozessor 1810 kann als Computerprozessoren mit komplexem Anweisungssatz (CISC-Prozessoren) oder Computerprozessoren mit verringertem Anweisungssatz (RISC-Prozessoren), mit x86-Anweisungssatz kompatible Prozessoren, Mehrfachkern, oder ein beliebiger weiterer Mikroprozessor oder zentrale Verarbeitungseinheit (CPU) implementiert werden. In verschiedenen Implementierungen kann der Prozessor 1810 ein oder mehrere Doppelkernprozessoren, ein oder mehrere Doppelkernmobilprozessoren usw. sein.
  • Der Datenspeicher 1812 kann als eine flüchtige Datenspeichereinrichtung wie z. B. jedoch nicht beschränkt auf einen Schreib/Lese-Speicher (RAM), dynamischen Schreib-/Lesespeicher (DRAM) oder statischen RAM (SRAM) implementiert werden.
  • Der Speicher 1814 kann als eine nichtflüchtige Datenspeichereinrichtung wie z. B. jedoch nicht beschränkt auf ein Magnetdatenträgerlaufwerk, ein optisches Datenträgerlaufwerk, ein Bandlaufwerk, eine interne Speichereinrichtung, eine angebrachte Speichereinrichtung, ein Flash-Speicher, ein SDRAM (synchroner DRAM) mit Batteriebackup und/oder eine über ein Netz zugängliche Speichereinrichtung implementiert werden. In verschiedenen Implementierungen kann der Speicher 1814 eine Technologie enthalten, um den verbesserten Speicherleistungsfähigkeitsschutz für wertvolle digitale Medien zu erhöhen, z. B. wenn mehrere Festplatten enthalten sind.
  • Das Graphikuntersystem 1815 kann eine Verarbeitung von Bildern wie z. B. Standbildern oder Video zur Anzeige durchführen. Das Graphikuntersystem 1815 kann z. B. eine Graphikverarbeitungseinheit (GPU) oder eine Optikverarbeitungseinheit (VPU) sein. Eine analoge oder digitale Schnittstelle kann verwendet werden, um das Graphikuntersystem 1815 und die Anzeigevorrichtung 1820 zu koppeln. Zum Beispiel kann die Schnittstelle eine hochauflösende Multimediaschnittstelle, ein Display-Port, drahtloses HDMI und/oder drahtlose HD-konforme Techniken sein. Das Graphikuntersystem 1815 kann in den Prozessor 1810 oder den Chipsatz 1805 integriert sein. In einigen Implementierungen kann das Graphikuntersystem 1815 eine eigenständige Einrichtung sein, die mit dem Chipsatz 1805 kommunikationstechnisch gekoppelt ist.
  • Die hier beschriebenen Graphikverarbeitungstechniken und/oder Videoverarbeitungstechniken können in verschiedenen Hardware-Architekturen implementiert werden. Zum Beispiel kann die Graphikfunktionalität und/oder Videofunktionalität in einem Chipsatz integriert sein. Alternativ kann ein diskreter Graphikprozessor und/oder Videoprozessor verwendet werden. Als noch eine weitere Implementierung können die Graphikfunktion und/oder Videofunktionen durch einen allgemein verwendbaren Prozessor, der einen Mehrfachkernprozessor enthält, bereitgestellt werden. In weiteren Ausführungsformen können die Funktionen in einer Unterhaltungselektronikeinrichtung implementiert sein.
  • Die Funkeinrichtung 1818 kann eine oder mehrere Funkeinrichtungen enthalten, die Signale unter Verwendung verschiedener geeigneter drahtloser Kommunikationstechniken senden und empfangen können. Derartige Techniken können Kommunikationen über ein oder mehrere drahtlose Netze umfassen. Beispiele für drahtlose Netze enthalten (aber sind nicht beschränkt auf) lokale drahtlose Netze (WLANs), drahtlose persönliche Netze (WPANs), drahtlose Stadtbereichsnetze (WMANs), Mobilfunknetze und Satellitennetze. Beim Kommunizieren über derartige Netze kann die Funkeinrichtung 1818 gemäß einem oder mehreren anwendbaren Standards in einer beliebigen Version arbeiten.
  • In verschiedenen Implementierungen kann die Anzeigevorrichtung 1820 eine beliebige Überwachungseinrichtung oder Anzeigevorrichtung vom Typ eines Fernsehers enthalten. Die Anzeigevorrichtung 1820 kann z. B. einen Computeranzeigebildschirm, eine Berührungsbildschirmanzeigevorrichtung, eine Videoüberwachungseinrichtung, eine fernseherartige Einrichtung und oder einen Fernseher enthalten. Die Anzeigevorrichtung 1820 kann digital und/oder analog sein. In verschiedenen Implementierungen kann die Anzeigevorrichtung 1820 eine holographische Anzeigevorrichtung sein. Außerdem kann die Anzeigevorrichtung 1820 eine durchsichtige Oberfläche sein, die eine optische Projektion empfangen kann. Derartige Projektionen können verschiedene Formen von Informationen, Bildern und/oder Objekten übermitteln. Zum Beispiel können derartige Projektionen eine optische Überlagerung für eine mobile Anwendung erweiterter Realität (MAR-Anwendung) sein. Unter der Steuerung einer oder mehrerer Software-Anwendungen 1816 kann die Plattform 1802 die Anwenderschnittstelle 1822 auf der Anzeigevorrichtung 1820 anzeigen.
  • In verschiedenen Implementierungen können eine oder mehrere Inhaltsdiensteinrichtungen 1830 durch einen nationalen, internationalen und/oder unabhängigen Dienst gehostet werden und deshalb für die Plattform 1802 z. B. über das Internet zugänglich sein. Eine oder mehrere Inhaltsdiensteinrichtungen 1830 können an die Plattform 1802 und/oder die Anzeigevorrichtung 1820 gekoppelt sein. Die Plattform 1802 und/oder eine oder mehrere Inhaltsdiensteinrichtungen 1830 können an ein Netz 1860 gekoppelt sein, um Medieninformationen zu und vom Netz 1860 zu kommunizieren (z. B. Senden und/oder Empfangen). Eine oder mehrere Inhaltsbereitstellungseinrichtungen 1840 können außerdem an die Plattform 1802 und/oder die Anzeigevorrichtung 1820 gekoppelt sein.
  • In verschiedenen Implementierungen kann die eine oder die mehreren Inhaltsdiensteinrichtungen 1830 eine Box für Kabelfernsehen, einen Personal-Computer, ein Netz, ein Telefon, internetfähige Einrichtungen oder eine Vorrichtung, die digitale Informationen und/oder Inhalte übermitteln kann, und jede beliebige weitere Einrichtung, die unidirektional oder bidirektional Inhalte zwischen Inhaltsanbietern und der Plattform 1802 und/oder der Anzeigeeinrichtung 1820 über das Netz 1860 oder direkt kommunizieren kann, enthalten. Es wird begrüßt werden, dass der Inhalt unidirektional und/oder bidirektional zu und von einer beliebigen Komponente im System 1800 und einem Inhaltsanbieter über das Netz 1860 kommuniziert werden kann. Beispiele von Inhalten können beliebige Medieninformationen, die z. B. Video, Musik, medizinische Informationen, Spielinformationen usw. enthalten, enthalten.
  • Eine oder mehrere Inhaltsdiensteinrichtungen 1830 können Inhalt wie z. B. eine Kabelfernsehprogrammierung, die Medieninformationen, digitale Informationen und/oder weiteren Inhalt enthält, empfangen. Beispiele von Inhaltsanbietern können beliebige Kabel- oder Satellitenfernsehanbieter, Radioanbieter oder Internet-Inhaltsanbieter enthalten. Die bereitgestellten Beispiele sind nicht dazu bestimmt, Implementierungen gemäß der vorliegenden Offenlegung auf irgendeine Weise einzuschränken.
  • In verschiedenen Implementierungen kann die Plattform 1802 Steuersignale von der Navigationssteuereinheit 1850 empfangen, die ein oder mehrere Navigationsbestandteile besitzen. Die Navigationsbestandteile können verwendet werden, um z. B. mit der Anwenderschnittstelle 1822 zu interagieren. In verschiedenen Ausführungsformen kann die Navigation eine Zeigeeinrichtung sein, die eine Computer-Hardware-Komponente (insbesondere eine Mensch-Schnittstelleneinrichtung) sein kann, die einem Anwender ermöglicht, räumliche (z. B. kontinuierliche und mehrdimensionale) Daten in einen Computer einzugeben. Viele Systeme wie z. B. graphische Anwenderschnittstellen (GUI), Fernseher und Überwachungseinrichtungen ermöglichen dem Anwender, den Computer oder den Fernseher unter Verwendung physischer Gesten zu steuern und Daten dafür bereitzustellen.
  • Bewegungen der Navigationsbestandteile können auf einer Anzeigevorrichtung (z. B. der Anzeigevorrichtung 1820) durch Bewegungen eines Zeigers, Cursors, Fokusrings oder weiterer visueller Indikatoren, die auf der Anzeigevorrichtung angezeigt werden, repliziert werden. Zum Beispiel können die Navigationsbestandteile, die sich auf der Navigation befinden, unter der Steuerung von Software-Anwendungen 1816 z. B. auf virtuelle Navigationsbestandteile, die an der Anwenderschnittstelle 1822 angezeigt werden, abgebildet werden. In verschiedenen Ausführungsformen kann keine einzelne Komponente sein, sondern kann in die Plattform 1802 und/oder die Anzeigevorrichtung 1820 integriert sein. Die vorliegende Offenlegung ist allerdings nicht auf die Elemente oder im hier gezeigten oder beschriebenen Kontext beschränkt.
  • In verschiedenen Ausführungsformen können Treiber (nicht gezeigt) eine Technologie enthalten, um Anwendern wenn sie aktiviert ist z. B. zu ermöglichen, die Plattform 1802 mit der Berührung eines Knopfes nach dem anfänglichen Start unmittelbar wie einen Fernseher einzuschalten und auszuschalten. Die Programmlogik kann der Plattform 1802 ermöglichen, Inhalte zu Medienadaptern oder einer oder mehreren weiteren Inhaltsdiensteinrichtungen 1830 oder einer oder mehreren Inhaltsbereitstellungseinrichtungen 1840 zu streamen, selbst wenn die Plattform ausgeschaltet ist. Zusätzlich kann der Chipsatz 1805 z. B. eine Hardware- und/oder Software-Unterstützung für 5.1-Surroundsound-Audio und/oder hochauflösendes 7.1-Surroundsound-Audio enthalten. Die Treiber können einen Graphiktreiber für Plattformen mit integrierter Graphik enthalten. In verschiedenen Ausführungsformen kann der Graphiktreiber eine Expressperipheriekomponentenverbindungs-Graphikkarte (PCI-Express-Graphikkarte) enthalten.
  • In verschiedenen Implementierungen können eine oder mehrere der im System 1800 gezeigten Komponenten integriert sein. Zum Beispiel können die Plattform 1802 und eine oder mehrere Inhaltsdiensteinrichtungen 1830 integriert sein, können die Plattform 1802 und eine oder mehrere Inhaltsbereitstellungseinrichtungen 1840 integriert sein oder können die Plattform 1802, eine oder mehrere Inhaltsdiensteinrichtungen 1830 und eine oder mehrere Inhaltsbereitstellungseinrichtungen 1840 integriert sein. In verschiedenen Ausführungsformen können die Plattform 1802 und die Anzeigevorrichtung 1820 eine integrierte Einheit sein. Zum Beispiel können die Anzeigevorrichtung 1820 und eine oder mehrere Inhaltsdiensteinrichtungen 1830 integriert sein oder können die Anzeigevorrichtung 1820 und eine oder mehrere Inhaltsbereitstellungseinrichtungen 1840 integriert sein. Diese Beispiele sind nicht dazu bestimmt, die vorliegende Offenlegung einzuschränken.
  • In verschiedenen Ausführungsformen kann das System 1800 als ein drahtloses System, ein drahtgebundenes System oder eine Kombination von beidem implementiert sein. Wenn es als ein drahtloses System implementiert ist, kann das System 1800 Komponenten und Schnittstellen enthalten, die geeignet sind, über gemeinsam verwendete drahtlose Medien wie z. B. eine oder mehrere Antennen, Sender, Empfänger, Sende-/Empfangseinrichtungen, Verstärker, Filter, eine Steuerlogik usw. zu kommunizieren. Ein Beispiel gemeinsam verwendeter drahtloser Medien kann Teile eines drahtlosen Spektrums wie z. B. das RF-Spektrum usw. enthalten. Wenn es als ein drahtgebundenes System implementiert ist kann das System 1800 Komponenten und Schnittstellen enthalten, die geeignet sind, über drahtgebundene Kommunikationsmedien wie z. B. Eingabe-/Ausgabe-Adapter (I/O-Adapter), physische Verbinder, um die I/O-Adapter mit einem entsprechenden drahtgebundenen Kommunikationsmedium zu verbinden, eine Netzschnittstellenkarte (NIC), eine Plattensteuereinheit, einen Videosteuereinheit, eine Audiosteuereinheit und dergleichen zu kommunizieren. Beispiele drahtgebundener Kommunikationsmedien können einen Draht, ein Kabel, Metallleiter, eine gedruckte Leiterplatte (PCB), eine Busplatine, eine Schaltstruktur, ein Halbleitermaterial, ein verdrilltes Doppelkabel, ein Koaxialkabel, eine Faseroptik usw. enthalten.
  • Die Plattform 1802 kann einen oder mehrere logische oder physische Kanäle aufbauen, um Informationen zu kommunizieren. Die Informationen können Medieninformationen und Steuerinformationen enthalten. Medieninformationen kann sich auf beliebige Daten beziehen, die Inhalt repräsentieren, der für einen Anwender bestimmt ist. Beispiele von Inhalt können z. B. Daten von einer Sprachkonversation, einer Videokonferenz, einem Videostream, eine elektronischen Postnachricht („E-Mail“-Nachricht), Sprachnachricht, alphanumerische Symbole, Graphiken, Bilddaten, Videodaten, Text usw. enthalten. Daten von einer Sprachkonversation können z. B. Sprachinformationen, Pausenzeiträume, Hintergrundrauschen, Komfortrauschen, Töne usw. sein. Steuerinformationen können sich auf beliebige Daten beziehen, die Befehle, Anweisungen oder Steuerworte, die für ein automatisiertes System bestimmt sind, repräsentieren. Zum Beispiel können Steuerinformationen verwendet werden, um Medieninformationen durch ein System zu leiten oder einen Knoten anzuweisen, die Medieninformationen in einer vorgegebenen Weise zu verarbeiten. Die Ausführungsformen sind allerdings nicht auf die Elemente oder im Kontext, der gezeigt ist oder in 18 beschrieben ist, beschränkt.
  • Wie oben beschrieben ist, kann das System 1800 in variierenden physischen Stilen oder Formfaktoren verkörpert sein. 19 stellt eine Beispieleinrichtung 1900 mit kleinem Formfaktor dar, die gemäß mindestens einigen Implementierungen der vorliegenden Offenlegung ausgelegt ist. In einigen Beispielen kann das System 1800 mittels der Einrichtung 1900 implementiert sein. In weiteren Beispielen können das System 100 oder Teile davon mittels der Einrichtung 1900 implementiert sein. In verschiedenen Ausführungsformen kann die Einrichtung 1900 z. B. als eine mobile Recheneinrichtung, die drahtlose Fähigkeiten besitzt, implementiert sein. Eine mobile Recheneinrichtung kann sich auf eine beliebige Einrichtung, die z. B. ein Verarbeitungssystem und eine mobile Leistungsquelle oder Leistungsversorgung wie z. B. eine oder mehrere Batterien besitzt, beziehen.
  • Beispiele einer mobilen Recheneinrichtung können einen Personal-Computer (PC), einen Laptop-Computer, einen Ultra-Laptop-Computer, ein Tablet, ein berührungsempfindliches Bedienfeld, einen tragbaren Computer, einen Hand-Computer, einen Palmtop-Computer, einen persönlichen digitalen Assistenten (PDA), ein Mobiltelefon, eine Kombination aus einem Mobiltelefon und einem PDA, ein Smart-Device (z. B. ein Smartphone, ein Smart-Tablet oder einen Smart-MobilTV), eine mobile Interneteinrichtung (MID), eine Nachrichtenübertragungseinrichtung, eine Datenkommunikationseinrichtung, Kameras usw. enthalten.
  • Beispiele einer mobilen Recheneinrichtung können auch Computer enthalten, die ausgelegt sind, durch eine Person getragen zu werden, wie z. B. Handgelenkscomputer, Fingercomputer, Ringcomputer, Brillencomputer, Gürtelschnallencomputer, Armbandcomputer, Schuhcomputer, Kleidungscomputer und weitere tragbare Computer. In verschiedenen Ausführungsformen kann eine mobile Recheneinrichtung z. B. als ein Smartphone implementiert sein, das Computeranwendungen sowie Sprachkommunikationen und/oder Datenkommunikationen ausführen kann. Obwohl einige Ausführungsformen beispielhaft mit einer mobilen Recheneinrichtung, die als ein Smartphone implementiert ist, beschrieben werden kann, kann es begrüßt werden, dass weitere Ausführungsformen ebenfalls unter Verwendung weiterer drahtloser mobiler Recheneinrichtungen implementiert werden können. Die Ausführungsformen sind in diesem Kontext nicht beschränkt.
  • Wie in 19 gezeigt ist, kann die Einrichtung 1900 ein Gehäuse mit einer Vorderseite 1901 und einer Rückseite 1902 enthalten. Die Einrichtung 1900 enthält eine Anzeigevorrichtung 1904, eine Eingabe-/ Ausgabevorrichtung (I/O-Vorrichtung) 1906 und eine integrierte Antenne 1908. Die Einrichtung 1900 kann auch Navigationsbestandteile 1912 enthalten. Die I/O-Vorrichtung 1906 kann eine beliebige geeignete I/O-Vorrichtung zum Eingeben von Informationen in eine mobile Recheneinrichtung enthalten. Beispiele für die I/O-Vorrichtung 1906 können eine alphanumerische Tastatur, einen numerischen Ziffernblock, ein Berührungsfeld, Eingabetasten, Knöpfe, Schalter, Mikrophone, Lautsprecher, eine Spracherkennungseinrichtung und Spracherkennungssoftware usw. enthalten. Informationen können auch in Form eines Mikrophons (nicht gezeigt) in die Einrichtung 1900 eingegeben werden oder können durch eine Spracherkennungseinrichtung digitalisiert werden. Wie gezeigt ist, kann die Einrichtung 1900 eine Kamera 1905 (die z. B. eine Linse, eine Blende und einen Bildsensor enthält) und einen Blitz 1910, der in die Rückseite 1902 (oder an anderer Stelle) der Einrichtung 1900 integriert ist, enthalten. In weiteren Beispielen können die Kamera 1905 und der Blitz 1910 in die Vorderseite 1901 der Einrichtung 1900 integriert sein oder es können sowohl eine vordere als auch eine hintere Kamera bereitgestellt sein. Die Kamera 1905 und der Blitz 1910 können Komponenten eines Kameramoduls sein, um Bilddaten zu erzeugen, die in einen Videostream verarbeitet werden, der zur Anzeigevorrichtung 1904 ausgegeben wird und/oder entfernt von der Einrichtung 1900 z. B. über die Antenne 1908 kommuniziert wird.
  • Verschiedene Ausführungsformen können unter Verwendung von Hardware-Elementen, Software-Elementen oder einer Kombination von beiden implementiert sein. Beispiele von Hardware-Elementen können Prozessoren, Mikroprozessoren, Schaltungen, Schaltungselemente (z. B. Transistoren, Widerstände, Kondensatoren, Spulen usw.), integrierte Schaltungen, anwendungsspezifische integrierte Schaltungen (ASIC), programmierbare Logikeinrichtungen (PLD), digitale Signalprozessoren (DSP), eine feldprogrammierbare Gate-Anordnung (FPGA), Logikgatter, Register, eine Halbleitereinrichtung, Chips, Mikrochips, Chipsätze usw. enthalten. Beispiele von Software können Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Routinen, Unterroutinen, Funktionen, Verfahren, Prozeduren, Software-Schnittstellen, Anwendungsprogrammierschnittstellen (API), Anweisungssätze, Rechencode, Maschinencode, Codesegmente, Maschinencodesegmente, Worte, Werte, Symbole oder beliebige Kombinationen davon enthalten. Das Bestimmen, ob eine Ausführungsform unter Verwendung von Hardware-Elementen und/oder Software-Elementen implementiert ist, kann entsprechend einer beliebigen Anzahl von Faktoren wie z. B. der gewünschten Rechenrate, Leistungsniveaus, Wärmetoleranzen, dem Verarbeitungszyklusetat, Eingangsdatenraten, Ausgangsdatenraten, Datenspeicherbetriebsmitteln, Datenbusgeschwindigkeiten und weiteren Entwurfs- oder Leistungsfähigkeitsabhängigkeiten variieren.
  • Ein oder mehrere Aspekte von mindestens einer Ausführungsform können durch repräsentative Anweisungen, die auf einem maschinenlesbaren Medium gespeichert sind, implementiert sein, das verschiedene Logiken im Prozessor repräsentiert und das, wenn es durch eine Maschine gelesen wird, bewirkt, dass die Maschine eine Logik herstellt, um die hier beschriebenen Techniken durchzuführen. Derartige Repräsentationen, die als IP-Kerne bekannt sind, können auf einem materiellen, maschinenlesbaren Medium gespeichert sein und verschiedenen Kunden oder Herstellungsanlagen zum Laden in die Herstellungsmaschinen, die tatsächlich die Logik oder den Prozessor herstellen, geliefert werden.
  • Während bestimmte Merkmale, die hier dargelegt werden, in Bezug auf verschiedene Implementierungen beschrieben worden sind, ist diese Beschreibung nicht dazu bestimmt, in einem einschränkenden Sinn aufgebaut zu sein. Daher werden verschiedene Änderungen der hier beschriebenen Implementierungen sowie weitere Implementierungen, die für Fachleute bezüglich der vorliegenden Offenlegung erkennbar sind, für im Geist und Umfang der vorliegenden Offenlegung liegend gehalten.
  • Die folgenden Ausführungsformen betreffen weitere Ausführungsformen.
  • In einer oder mehreren ersten Ausführungsformen enthält ein computerimplementiertes Verfahren zur Videocodierung das Empfangen eines Eingangsvideos zur Codierung, wobei das Eingangsvideo aus mehreren Bildern besteht und ein erstes Bild der mehreren Bilder einen Bereich enthält, der einen individuellen Block enthält, derart, dass der individuelle Block mehrere Partitionen enthält, das Anwenden eines oder mehrerer Detektoren an den Bereich, den individuellen Block und/oder eine oder mehrere der mehreren Partitionen, um einen oder mehrere Detektionsindikatoren zu erzeugen, das Erzeugen einer Partitionierungsentscheidung für den individuellen Block und von Codierungsmodusentscheidungen für Partitionen des individuellen Blocks, die der Partitionierungsentscheidung entsprechen, unter Verwendung der Detektionsindikatoren auf der Grundlage des Erzeugens einer Auswertungsentscheidung für Luma und Chroma oder lediglich für Luma für eine erste Partition der Partitionen, des Erzeugens einer Zusammenführungsmodusentscheidung oder Auslassmodusentscheidung für eine zweite Partition der Partitionen, die eine anfängliche Zusammenführungsmodusentscheidung aufweist, des Erzeugens lediglich eines Teils eines Transformationskoeffizientenblocks für eine dritte Partition der Partitionen oder des Auswertens von 4×4-Modi lediglich für eine vierte Partition der Partitionen, die eine anfängliche 8×8-Codierungspartition ist, und das Codieren des individuellen Blocks mindestens auf der Grundlage der Partitionierungsentscheidung, um einen Teil eines Ausgangsbitstroms zu erzeugen.
  • In einer oder mehreren zweiten Ausführungsformen enthalten die Detektionsindikatoren für jede der ersten Ausführungsformen Indikatoren, ob ein Luma-Durchschnitt der ersten Partition einen ersten Schwellenwert überschreitet, ein Durchschnitt eines ersten Chroma-Kanals der ersten Partition einen zweiten Schwellenwert überschreitet und ein Durchschnitt eines zweiten Chroma-Kanals der ersten Partition einen dritten Schwellenwert überschreitet, und das Erzeugen der Partitionierungsentscheidung und der Codierungsmodusentscheidungen enthält das Erzeugen der Auswertungsentscheidung für Luma und Chroma oder lediglich für Luma für die erste Partition durch Anwenden einer Auswertungsentscheidung lediglich für Luma für die erste Partition, wenn der Luma-Durchschnitt den ersten Schwellenwert nicht überschreitet, der Durchschnitt des ersten Chroma-Kanals den zweiten Schwellenwert nicht überschreitet und der Durchschnitt des zweiten Chroma-Kanals den dritten Schwellenwert nicht überschreitet.
  • In einer oder mehreren dritten Ausführungsformen enthalten die Detektionsindikatoren für jede der ersten oder der zweiten Ausführungsformen Indikatoren, ob ein Luma-Durchschnitt der ersten Partition einen ersten Schwellenwert überschreitet, ein Durchschnitt eines ersten Chroma-Kanals der ersten Partition einen zweiten Schwellenwert überschreitet, ein Durchschnitt eines zweiten Chroma-Kanals der ersten Partition einen dritten Schwellenwert überschreitet, die erste Partition eine Kante enthält und die erste Partition sich in einem aufgedeckten Bereich befindet, und das Erzeugen der Partitionierungsentscheidung und der Codierungsmodusentscheidungen enthält das Erzeugen der Auswertungsentscheidung für Luma und Chroma oder lediglich für Luma für die erste Partition durch Anwenden einer Auswertungsentscheidung für Luma und Chroma für die erste Partition, als Antwort darauf, dass der Luma-Durchschnitt, der Durchschnitt des ersten Chroma-Kanals oder der Durchschnitt des zweiten Chroma-Kanals ihre entsprechenden Schwellenwerte überschreiten und die erste Partition eine Kante enthält oder sich in einem aufgedeckten Bereich befindet.
  • In einer oder mehreren vierten Ausführungsformen enthält das Bild für jede der ersten bis dritten Ausführungsformen einen I-Abschnitt, der die erste Partition enthält, und das Erzeugen der Partitionierungsentscheidung und der Codierungsmodusentscheidungen enthält das Erzeugen der Auswertungsentscheidung für Luma und Chroma oder lediglich für Luma für jede Partition des Bildes durch Anzeigen der Verwendung lediglich von Luma für die erste Partition als Antwort darauf, dass die erste Partition sich im I-Abschnitt befindet.
  • In einer oder mehreren fünften Ausführungsformen enthalten die mehreren Bilder für jede der ersten bis vierten Ausführungsformen Basisschichtbilder und Nicht-Basisschichtbilder derart, dass Basisschichtbilder Bezugsbilder für Nicht-Basisschichtbilder sind, Nicht-Basisschichtbilder jedoch nicht Bezugsbilder für Basisschichtbilder sind, wobei das Bild ein Basisschichtbild ist, das einen B-Abschnitt enthält, der die erste Partition enthält, und das Erzeugen der Partitionierungsentscheidung und der Codierungsmodusentscheidungen das Erzeugen der Auswertungsentscheidung für Luma und Chroma oder lediglich für Luma für jede Partition des Bildes durch Anzeigen der Verwendung von Luma und Chroma für die erste Partition als Antwort darauf, dass die erste Partition sich im Basisschicht-B-Abschnitt befindet, enthält.
  • In einer oder mehreren sechsten Ausführungsformen enthalten die mehreren Bilder für jede der ersten bis fünften Ausführungsformen Basisschichtbilder und Nicht-Basisschichtbilder derart, dass Basisschichtbilder Bezugsbilder für Nicht-Basisschichtbilder sind, Nicht-Basisschichtbilder jedoch nicht Bezugsbilder für Basisschichtbilder sind, wobei das Bild ein Nicht-Basisschichtbild ist, das einen B-Abschnitt enthält, der die erste Partition enthält, und das Erzeugen der Partitionierungsentscheidung und der Codierungsmodusentscheidungen enthält das Erzeugen der Auswertungsentscheidung für Luma und Chroma oder lediglich für Luma für jede Partition des Bildes durch Anzeigen der Verwendung von Luma und Chroma für die erste Partition, um lediglich als Antwort darauf, das die erste Partition sich im Nicht-Basisschicht-B-Abschnitt befindet und die Partitionen anfängliche Zusammenführungsmodusentscheidungen aufweisen, zwischen einem Zusammenführungsmodus und einem Auslassmodus zu wählen.
  • In einer oder mehreren siebten Ausführungsformen enthalten die Detektionsindikatoren für jede der ersten bis sechsten Ausführungsformen eine Bestimmung, ob ein Betrag einer Differenz zwischen anfänglichen Auslassmoduscodierungskosten und anfänglichen Zusammenführungsmoduscodierungskosten für die zweite Partition einen Schwellenwert überschreitet, und das Erzeugen der Partitionierungsentscheidung und der Codierungsmodusentscheidungen enthält das Erzeugen der Zusammenführungsmodusentscheidung oder Auslassmodusentscheidung durch Wählen der Auslassmoduscodierung oder der Zusammenführungsmoduscodierung für die zweite Partition, wenn der Betrag der Differenz den Schwellenwert überschreitet, um eine endgültige Auslassmodusentscheidung oder Zusammenführungsmodusentscheidung zu erzeugen, oder das Verschieben der Auswahl der Auslassmoduscodierung oder der Zusammenführungsmoduscodierung auf eine Zusammenführungsmodusentscheidung oder eine Auslassmodusentscheidung eines vollständigen Codierungsdurchlaufs, wenn der Betrag der Differenz den Schwellenwert nicht überschreitet.
  • In einer oder mehreren achten Ausführungsformen enthält das Erzeugen der Partitionierungsentscheidung und der Codierungsmodusentscheidungen für jede der ersten bis siebten Ausführungsformen das Erzeugen der Codierungsmodusentscheidungen durch Auswerten eines Codierungsmodus für die dritte Partition des individuellen Blocks durch Bilden einer Differenz zwischen der dritten Partition und einer vorhergesagten Partition, die dem Codierungsmodus entspricht, um eine Restpartition zu erzeugen, das Erzeugen eines Transformationskoeffizientenblocks auf der Grundlage der Restpartition durch Durchführen einer Teiltransformation an der Restpartition, um Transformationskoeffizienten von einem Teil des Transformationskoeffizientenblocks zu erzeugen, derart, dass eine Anzahl von Transformationskoeffizienten im Teil kleiner als eine Anzahl von Werten der Restpartition ist und Setzen der verbleibenden Transformationskoeffizienten des Transformationskoeffizientenblocks auf null, das Quantisieren des Transformationskoeffizientenblocks, um quantisierte Transformationskoeffizienten zu erzeugen, das inverse Quantisieren der quantisierten Transformationskoeffizienten und das Erzeugen eines Verzerrungsmaßes, das der vorhergesagten Partition entspricht, auf der Grundlage der invers quantisierten Transformationskoeffizienten.
  • In einer oder mehreren neunten Ausführungsformen enthalten die Detektionsindikatoren für jede der ersten bis achten Ausführungsformen einen Indikator, ob der Bereich, der individuelle Block oder die dritte Partition optisch wichtig ist, und das Erzeugen der Partitionierungsentscheidung und der Codierungsmodusentscheidungen enthält das Erzeugen lediglich des Teils des Transformationskoeffizientenblocks durch Erzeugen eines ersten Transformationskoeffizientenblocks, der eine erste Anzahl verfügbarer Transformationskoeffizienten besitzt, wenn der Bereich, der individuelle Block oder die dritte Partition optisch wichtig ist, oder das Erzeugen eines zweiten Transformationskoeffizientenblocks, der eine zweite Anzahl verfügbarer Transformationskoeffizienten besitzt, wenn der Bereich, der individuelle Block oder die dritte Partition nicht optisch wichtig ist, derart, dass die zweite Anzahl geringer als die erste Anzahl ist.
  • In einer oder mehreren zehnten Ausführungsformen enthält das Erzeugen der Partitionierungsentscheidung für jede der ersten bis neunten Ausführungsformen das Bestimmen einer anfänglichen Partitionierungsentscheidung für den individuellen Block, das kleinste Kandidatenpartitionen von 8×8-Kandidatenpartitionen des individuellen Blocks auswertet, enthält, wobei die anfängliche Partitionierungsentscheidung den individuellen Block in die vierte Partition und eine oder mehrere weitere Partitionen partitioniert, und das Erzeugen der Partitionierungsentscheidung enthält ferner das Auswerten von 4×4-Unterpartitionen der vierten Partition als Antwort darauf, dass die vierte Partition eine 8x8-Partition ist.
  • In einer oder mehreren elften Ausführungsformen enthalten die Detektionsindikatoren für jede der ersten bis zehnten Ausführungsformen einen besten Modus für die vierte 8×8-Partition und das Auswerten der 4×4-Unterpartitionen enthält das Auswerten lediglich übergreifender Modi für die 4×4-Unterpartitionen, wenn der beste Modus ein übergreifender Modus ist, und das Auswerten lediglich interner Modi für die 4×4-Unterpartitionen, wenn der beste Modus ein interner Modus ist.
  • In einer oder mehreren zwölften Ausführungsformen enthalten die Detektionsindikatoren für jede der ersten bis elften Ausführungsformen einen gewählten Bewegungsvektor für einen besten übergreifenden Modus für die vierte 8×8-Partition und das Auswerten der 4×4-Unterpartitionen enthält das Durchführen einer Bewegungsschätzung für jede der 4×4-Unterpartitionen unter Verwendung des gewählten Bewegungsvektors, um ein Suchzentrum für die Bewegungsschätzungssuchen zu definieren.
  • In einer oder mehreren dreizehnten Ausführungsformen enthalten die Detektionsindikatoren für jede der ersten bis zwölften Ausführungsformen einen besten internen Modus, der der vierten 8×8-Partition entspricht, und das Auswerten der 4×4-Unterpartitionen verwendet lediglich den besten internen Modus, der der vierten 8×8-Partition entspricht, einen Gleichstrommodus, einen ebenen Modus und einen oder mehrere interne Modi, die dem besten internen Modus benachbart sind.
  • In einer oder mehreren vierzehnten Ausführungsformen enthält ein System zur Videocodierung einen Datenspeicher, um ein Eingangsvideo zur Codierung zu speichern, wobei das Eingangsvideo mehrere Bilder enthält und ein erstes Bild der mehreren Bilder einen Bereich enthält, der einen individuellen Block enthält, derart, dass der individuelle Block mehrere Partitionen enthält, und einen oder mehrere Prozessoren, die an den Datenspeicher gekoppelt sind, wobei der eine oder die mehreren Prozessoren ausgelegt sind, einen oder mehrere Detektoren an den Bereich, den individuellen Block und/oder eine oder mehrere der mehreren Partitionen anzuwenden, um einen oder mehrere Detektionsindikatoren zu erzeugen, eine Partitionierungsentscheidung für den individuellen Block und Codierungsmodusentscheidungen für Partitionen des individuellen Blocks, die der Partitionierungsentscheidung entsprechen, unter Verwendung der Detektionsindikatoren auf der Grundlage mindestens eines des einen oder der mehreren Prozessoren zum Erzeugen einer Auswertungsentscheidung für Luma und Chroma oder lediglich für Luma für eine erste Partition der Partitionen zu erzeugen, eine Zusammenführungsmodusentscheidung oder Auslassmodusentscheidung für eine zweite Partition der Partitionen, die eine anfängliche Zusammenführungsmodusentscheidung aufweist, zu erzeugen, lediglich einen Teil eines Transformationskoeffizientenblocks für eine dritte Partition der Partitionen zu erzeugen oder 4×4-Modi lediglich für eine vierte Partition der Partitionen, die eine anfängliche 8×8-Codierungspartition ist, auszuwerten, und den individuellen Block mindestens auf der Grundlage der Partitionierungsentscheidung zu codieren, um einen Teil eines Ausgangsbitstroms zu erzeugen.
  • In einer oder mehreren fünfzehnten Ausführungsformen enthalten die Detektionsindikatoren für jede der vierzehnten Ausführungsformen Indikatoren, ob ein Luma-Durchschnitt der ersten Partition einen ersten Schwellenwert überschreitet, ein Durchschnitt eines ersten Chroma-Kanals der ersten Partition einen zweiten Schwellenwert überschreitet, ein Durchschnitt eines zweiten Chroma-Kanals der ersten Partition einen dritten Schwellenwert überschreitet, die erste Partition eine Kante enthält und die erste Partition sich in einem aufgedeckten Bereich befindet, und das Erzeugen der Partitionierungsentscheidung und der Codierungsmodusentscheidungen durch den einen oder die mehreren Prozessoren enthält das Erzeugen durch den einen oder die mehreren Prozessoren der Auswertungsentscheidung für Luma und Chroma oder lediglich für Luma für die erste Partition durch die Anwendung einer Auswertungsentscheidung lediglich für Luma für die erste Partition, wenn der Luma-Durchschnitt den ersten Schwellenwert nicht überschreitet, der Durchschnitt des ersten Chroma-Kanals den zweiten Schwellenwert nicht überschreitet und der Durchschnitt des zweiten Chroma-Kanals den dritten Schwellenwert nicht überschreitet, und die Anwendung einer Auswertungsentscheidung für Luma und Chroma für die erste Partition als Antwort darauf, dass der Luma-Durchschnitt, der Durchschnitt des ersten Chroma-Kanals oder der Durchschnitt des zweiten Chroma-Kanals seinen entsprechenden Schwellenwert überschreitet und die erste Partition eine Kante enthält oder sich in einem aufgedeckten Bereich befindet.
  • In einer oder mehreren sechzehnten Ausführungsformen enthalten die Detektionsindikatoren für jede der vierzehnten oder fünfzehnten Ausführungsformen eine Bestimmung, ob ein Betrag einer Differenz zwischen anfänglichen Auslassmoduscodierungskosten und anfänglichen Zusammenführungsmoduscodierungskosten für die zweite Partition einen Schwellenwert überschreitet, und der eine oder die mehreren Prozessoren zum Erzeugen der Partitionierungsentscheidung und der Codierungsmodusentscheidungen den einen oder die mehreren Prozessoren zum Erzeugen der Zusammenführungsmodusentscheidung oder Auslassmodusentscheidung durch Wählen der Auslassmoduscodierung oder der Zusammenführungsmoduscodierung für die zweite Partition, wenn der Betrag der Differenz den Schwellenwert, um eine endgültige Auslassmodusentscheidung oder Zusammenführungsmodusentscheidung zu erzeugen, oder das Verschieben der Auswahl der Auslassmoduscodierung oder der Zusammenführungsmoduscodierung auf eine Zusammenführungsmodusentscheidung oder eine Auslassmodusentscheidung eines vollständigen Codierungsdurchlaufs, wenn der Betrag der Differenz den Schwellenwert nicht überschreitet, enthalten.
  • In einer oder mehreren siebzehnten Ausführungsformen enthalten die Detektionsindikatoren für jede der vierzehnten bis sechzehnten Ausführungsformen einen Indikator, ob der Bereich, der individuelle Block oder die dritte Partition optisch wichtig ist, und der eine oder die mehreren Prozessoren zum Erzeugen der Partitionierungsentscheidung und der Codierungsmodusentscheidungen enthalten den einen oder die mehreren Prozessoren zum Erzeugen lediglich des Teils des Transformationskoeffizientenblocks durch den einen oder die mehreren Prozessoren zum Erzeugen eines ersten Transformationskoeffizientenblocks, der eine erste Anzahl verfügbarer Transformationskoeffizienten besitzt, wenn der Bereich, der individuelle Block oder die dritte Partition optisch wichtig ist, oder den einen oder die mehreren Prozessoren zum Erzeugen eines zweiten Transformationskoeffizientenblocks, der eine zweite Anzahl verfügbarer Transformationskoeffizienten besitzt, wenn der Bereich, der individuelle Block oder die dritte Partition nicht optisch wichtig ist, enthalten, derart, dass die zweite Anzahl geringer als die erste Anzahl ist.
  • In einer oder mehreren achtzehnten Ausführungsformen enthalten der eine oder die mehreren Prozessoren zum Erzeugen der Partitionierungsentscheidung für jede der vierzehnten bis siebzehnten Ausführungsformen den einen oder die mehreren Prozessoren zum Bestimmen einer anfänglichen Partitionierungsentscheidung für den individuellen Block, das kleinste Kandidatenpartitionen von 8x8-Kandidatenpartitionen des individuellen Blocks auswertet, wobei die anfängliche Partitionierungsentscheidung den individuellen Block in die vierte Partition und eine oder mehrere weitere Partitionen partitioniert und, um die Partitionierungsentscheidung zu erzeugen, ferner als Antwort darauf, dass die vierte Partition eine 8×8-Partition ist, die Auswertung von 4×4-Unterpartitionen der vierten Partition enthält.
  • In einer oder mehreren neunzehnten Ausführungsformen enthalten die Detektionsindikatoren für jede der vierzehnten bis achtzehnten Ausführungsformen einen besten Modus für die vierte 8×8-Partition und der eine oder die mehreren Prozessoren zum Auswerten der 4×4-Unterpartitionen enthalten die Auswertung lediglich übergreifender Modi für die 4×4-Unterpartitionen, wenn der beste Modus ein übergreifender Modus ist, und die Auswertung lediglich interner Modi für die 4×4-Unterpartitionen, wenn der beste Modus ein interner Modus ist, derart, dass die Auswertung lediglich übergreifender Modi enthält, dass der eine oder die mehreren Prozessoren die 4×4-Unterpartitionen durch eine Bewegungsschätzungssuche für jede der 4×4-Unterpartitionen unter Verwendung eines gewählten Bewegungsvektors für einen besten übergreifenden Modus für die vierte 8x8-Partition auswerten, um ein Suchzentrum für die Bewegungsschätzungssuchen zu definieren, und derart, dass die Auswertung lediglich interner Modi enthält, dass der eine oder die mehreren Prozessoren die 4×4-Unterpartitionen unter Verwendung lediglich des besten internen Modus, der der vierten 8×8-Partition entspricht, eines Gleichstrommodus, eines ebenen Modus und eines oder mehrerer interne Modi, die dem besten internen Modus benachbart sind, auswerten.
  • In einer oder mehreren zwanzigsten Ausführungsformen kann mindestens ein maschinenlesbares Medium mehrere Anweisungen enthalten, die in Antwort darauf, dass sie auf einer Recheneinrichtung ausgeführt werden, bewirken, dass die Recheneinrichtung ein Verfahren nach einer der obigen Ausführungsformen durchführt.
  • In einer oder mehreren einundzwanzigsten Ausführungsformen kann eine Vorrichtung ein Mittel zum Durchführen eines Verfahrens nach einer der obenstehenden Ausführungsformen enthalten.
  • Es wird erkannt werden, dass die Ausführungsformen nicht auf die beschriebenen Ausführungsformen beschränkt sind, sondern mit Modifikation und Änderung praktiziert werden können, ohne vom Umfang der beigefügten Ansprüche abzuweichen. Zum Beispiel können die obenstehenden Ausführungsformen eine bestimmte Kombination von Merkmalen enthalten. Allerdings sind die oben stehenden Ausführungsformen in dieser Hinsicht nicht beschränkt und die oben stehenden Ausführungsformen können in verschiedenen Implementierungen das Durchführen lediglich einer Untermenge derartiger Merkmale, das Durchführen einer verschiedenen Reihenfolge derartiger Merkmale, das Durchführen verschiedener Kombinationen derartiger Merkmale und/oder das Durchführen zusätzlicher Merkmale zu den ausdrücklich gelisteten enthalten. Der Umfang der Ausführungsformen sollte deshalb in Bezug auf die beigefügten Ansprüche zusammen mit dem gesamten Umfang von Entsprechungen, welche derartige Ansprüche beanspruchen, bestimmt werden.

Claims (30)

  1. Computerimplementiertes Verfahren zur Videocodierung, das Folgendes umfasst: Empfangen eines Eingangsvideos zur Codierung, wobei das Eingangsvideo mehrere Bilder umfasst und ein erstes Bild der mehreren Bilder einen Bereich umfasst, der einen individuellen Block umfasst, wobei der individuelle Block mehrere Partitionen umfasst; Anwenden eines oder mehrerer Detektoren auf den Bereich, den individuellen Block und/oder eine oder mehrere der mehreren Partitionen, um einen oder mehrere Detektionsindikatoren zu erzeugen; Erzeugen einer Partitionierungsentscheidung für den individuellen Block und von Codierungsmodusentscheidungen für Partitionen des individuellen Blocks, die der Partitionierungsentscheidung entsprechen, unter Verwendung der Detektionsindikatoren auf der Grundlage des Erzeugens einer Auswertungsentscheidung für Luma und Chroma oder lediglich für Luma für eine erste Partition der Partitionen, des Erzeugens einer Zusammenführungsmodusentscheidung oder Auslassmodusentscheidung für eine zweite Partition der Partitionen, die eine anfängliche Zusammenführungsmodusentscheidung aufweist, des Erzeugens lediglich eines Teils eines Transformationskoeffizientenblocks für eine dritte Partition der Partitionen und/oder des Auswertens von 4×4-Modi lediglich für eine vierte Partition der Partitionen, die eine anfängliche 8×8-Codierungspartition ist; und Codieren des individuellen Blocks mindestens auf der Grundlage der Partitionierungsentscheidung, um einen Teil eines Ausgangsbitstroms zu erzeugen.
  2. Verfahren nach Anspruch 1, wobei die Detektionsindikatoren Indikatoren umfassen, ob ein Luma-Durchschnitt der ersten Partition einen ersten Schwellenwert überschreitet, ein Durchschnitt eines ersten Chroma-Kanals der ersten Partition einen zweiten Schwellenwert überschreitet und ein Durchschnitt eines zweiten Chroma-Kanals der ersten Partition einen dritten Schwellenwert überschreitet, und das Erzeugen der Partitonierungsentscheidung und der Codierungsmodusentscheidungen das Erzeugen der Auswertungsentscheidung für Luma und Chroma oder lediglich für Luma für die erste Partition durch Anwenden einer Auswertungsentscheidung lediglich für Luma für die erste Partition, wenn der Luma-Durchschnitt den ersten Schwellenwert nicht überschreitet, der Durchschnitt des ersten Chroma-Kanals den zweiten Schwellenwert nicht überschreitet und der Durchschnitt des zweiten Chroma-Kanals den dritten Schwellenwert nicht überschreitet, umfasst.
  3. Verfahren nach Anspruch 1 oder 2, wobei die Detektionsindikatoren Indikatoren umfassen, ob ein Luma-Durchschnitt der ersten Partition einen ersten Schwellenwert überschreitet, ein Durchschnitt eines ersten Chroma-Kanals der ersten Partition einen zweiten Schwellenwert überschreitet, ein Durchschnitt eines zweiten Chroma-Kanals der ersten Partition einen dritten Schwellenwert überschreitet, die erste Partition eine Kante enthält und die erste Partition sich in einem aufgedeckten Bereich befindet, und das Erzeugen der Partitionierungsentscheidung und der Codierungsmodusentscheidungen das Erzeugen der Auswertungsentscheidung für Luma und Chroma oder lediglich für Luma für die erste Partition durch Anwenden einer Auswertungsentscheidung für Luma und Chroma für die erste Partition als Antwort darauf, dass der Luma-Durchschnitt, der Durchschnitt des ersten Chroma-Kanals oder der Durchschnitt des zweiten Chroma-Kanals ihre entsprechenden Schwellenwerte überschreiten und die erste Partition eine Kante enthält oder sich in einem aufgedeckten Bereich befindet, umfasst.
  4. Verfahren nach einem der Ansprüche 1-3, wobei das Bild einen I-Abschnitt umfasst, der die erste Partition umfasst, und das Erzeugen der Partitionierungsentscheidung und der Codierungsmodusentscheidungen das Erzeugen der Auswertungsentscheidung für Luma und Chroma oder lediglich für Luma für jede Partition des Bildes durch Anzeigen der Verwendung lediglich von Luma für die erste Partition als Antwort darauf, dass sich die erste Partition im I-Abschnitt befindet, umfasst.
  5. Verfahren nach einem der Ansprüche 1-4, wobei die mehreren Bilder Basisschichtbilder und Nicht-Basisschichtbilder umfassen, derart, dass Basisschichtbilder Bezugsbilder für Nicht-Basisschichtbilder sind, Nicht-Basisschichtbilder jedoch nicht Bezugsbilder für Basisschichtbilder sind, wobei das Bild ein Basisschichtbild ist, das einen B-Abschnitt umfasst, der die erste Partition umfasst, und das Erzeugen der Partitionierungsentscheidung und der Codierungsmodusentscheidungen das Erzeugen der Auswertungsentscheidung für Luma und Chroma oder lediglich für Luma für jede Partition des Bildes durch Anzeigen der Verwendung von Luma und Chroma für die erste Partition als Antwort darauf, dass die erste Partition sich im Basisschicht-B-Abschnitt befindet, umfasst.
  6. Verfahren nach einem der Ansprüche 1-5, wobei die mehreren Bilder Basisschichtbilder und Nicht-Basisschichtbilder umfassen, derart, dass Basisschichtbilder Bezugsbilder für Nicht-Basisschichtbilder sind, Nicht-Basisschichtbilder jedoch nicht Bezugsbilder für Basisschichtbilder sind, wobei das Bild ein Nicht-Basisschichtbild ist, das einen B-Abschnitt umfasst, der die erste Partition umfasst, und das Erzeugen der Partitionierungsentscheidung und der Codierungsmodusentscheidungen das Erzeugen der Auswertungsentscheidung für Luma und Chroma oder lediglich für Luma für jede Partition des Bildes durch Anzeigen der Verwendung von Luma und Chroma für die erste Partition, um lediglich als Antwort darauf, dass die erste Partition sich im Nicht-Basisschicht-B-Abschnitt befindet und die Partitionen anfängliche Zusammenführungsmodusentscheidungen aufweisen, zwischen einem Zusammenführungsmodus und einem Auslassmodus zu wählen, umfasst.
  7. Verfahren nach einem der Ansprüche 1-6, wobei die Detektionsindikatoren eine Bestimmung umfassen, ob ein Betrag einer Differenz zwischen anfänglichen Auslassmoduscodierungskosten und anfänglichen Zusammenführungsmoduscodierungskosten für die zweite Partition einen Schwellenwert überschreitet, und das Erzeugen der Partitionierungsentscheidung und der Codierungsmodusentscheidungen das Erzeugen der Zusammenführungsmodusentscheidung oder Auslassmodusentscheidung durch Wählen der Auslassmoduscodierung oder der Zusammenführungsmoduscodierung für die zweite Partition, wenn der Betrag der Differenz den Schwellenwert überschreitet, um eine endgültige Auslassmodusentscheidung oder Zusammenführungsmodusentscheidung zu erzeugen, oder das Verschieben der Auswahl der Auslassmoduscodierung oder der Zusammenführungsmoduscodierung auf eine Zusammenführungsmodusentscheidung oder eine Auslassmodusentscheidung eines vollständigen Codierungsdurchlaufs, wenn der Betrag der Differenz den Schwellenwert nicht überschreitet, umfasst.
  8. Verfahren nach einem der Ansprüche 1-7, wobei das Erzeugen der Partitionierungsentscheidung und der Codierungsmodusentscheidungen das Erzeugen der Codierungsmodusentscheidungen durch Auswerten eines Codierungsmodus für die dritte Partition des individuellen Blocks durch Folgendes umfasst: Bilden einer Differenz zwischen der dritten Partition und einer vorhergesagten Partition, die dem Codierungsmodus entspricht, um eine Restpartition zu erzeugen; Erzeugen eines Transformationskoeffizientenblocks auf der Grundlage der Restpartition durch: Durchführen einer Teiltransformation an der Restpartition, um Transformationskoeffizienten von einem Teil des Transformationskoeffizientenblocks zu erzeugen, wobei eine Anzahl von Transformationskoeffizienten im Teil kleiner als eine Anzahl von Werten der Restpartition ist; und Setzen der verbleibenden Transformationskoeffizienten des Transformationskoeffizientenblocks auf null; Quantisieren des Transformationskoeffizientenblocks, um quantisierte Transformationskoeffizienten zu erzeugen; inverses Quantisieren der quantisierten Transformationskoeffizienten; und Erzeugen eines Verzerrungsmaßes, das der vorhergesagten Partition entspricht, auf der Grundlage der invers quantisierten Transformationskoeffizienten.
  9. Verfahren nach einem der Ansprüche 1-8, wobei die Detektionsindikatoren einen Indikator umfassen, ob der Bereich, der individuelle Block oder die dritte Partition optisch wichtig ist, und das Erzeugen der Partitionierungsentscheidung und der Codierungsmodusentscheidungen das Erzeugen lediglich des Teils des Transformationskoeffizientenblocks durch Erzeugen eines ersten Transformationskoeffizientenblocks, der eine erste Anzahl verfügbarer Transformationskoeffizienten besitzt, wenn der Bereich, der individuelle Block oder die dritte Partition optisch wichtig ist, oder das Erzeugen eines zweiten Transformationskoeffizientenblocks, der eine zweite Anzahl verfügbarer Transformationskoeffizienten besitzt, wenn der Bereich, der individuelle Block oder die dritte Partition nicht optisch wichtig ist, umfasst, wobei die zweite Anzahl geringer als die erste Anzahl ist.
  10. Verfahren nach einem der Ansprüche 1-9, wobei das Erzeugen der Partitionierungsentscheidung das Bestimmen einer anfänglichen Partitionierungsentscheidung für den individuellen Block, das kleinste Kandidatenpartitionen von 8×8-Kandidatenpartitionen des individuellen Blocks auswertet, umfasst, wobei die anfängliche Partitionierungsentscheidung den individuellen Block in die vierte Partition und eine oder mehrere weitere Partitionen partitioniert, und das Erzeugen der Partitionierungsentscheidung ferner das Auswerten von 4×4-Unterpartitionen der vierten Partition als Antwort darauf, dass die vierte Partition eine 8×8-Partition ist, umfasst.
  11. Verfahren nach einem der Ansprüche 1-10, wobei die Detektionsindikatoren einen besten Modus für die vierte 8×8-Partition umfassen und das Auswerten der 4×4-Unterpartitionen das Auswerten lediglich übergreifender Modi für die 4×4-Unterpartitionen, wenn der beste Modus ein übergreifender Modus ist, und das Auswerten lediglich interner Modi für die 4×4-Unterpartitionen, wenn der beste Modus ein interner Modus ist, umfasst.
  12. Verfahren nach einem der Ansprüche 1-11, wobei die Detektionsindikatoren einen gewählten Bewegungsvektor für einen besten übergreifenden Modus für die vierte 8×8-Partition umfassen und das Auswerten der 4×4-Unterpartitionen das Durchführen einer Bewegungsschätzungssuche für jede der 4×4-Unterpartitionen unter Verwendung des gewählten Bewegungsvektors, um ein Suchzentrum für die Bewegungsschätzungssuchen zu definieren, umfasst.
  13. Verfahren nach einem der Ansprüche 1-12, wobei die Detektionsindikatoren einen besten internen Modus umfassen, der der vierten 8×8-Partition entspricht, und das Auswerten der 4×4-Unterpartitionen lediglich den besten internen Modus, der der vierten 8×8-Partition entspricht, einen Gleichstrommodus, einen ebenen Modus und einen oder mehrere interne Modi, die dem besten internen Modus benachbart sind, verwendet.
  14. System zur Videocodierung, das Folgendes umfasst: einen Datenspeicher, um ein Eingangsvideo zur Codierung zu speichern, wobei das Eingangsvideo mehrere Bilder umfasst und ein erstes Bild der mehreren Bilder einen Bereich umfasst, der einen individuellen Block umfasst, wobei der individuelle Block mehrere Partitionen umfasst; und einen oder mehrere Prozessoren, die an den Datenspeicher gekoppelt sind, wobei der eine oder die mehreren Prozessoren ausgelegt sind, einen oder mehrere Detektoren an den Bereich, den individuellen Block und/oder eine oder mehrere der mehreren Partitionen anzuwenden, um einen oder mehrere Detektionsindikatoren zu erzeugen; eine Partitionierungsentscheidung für den individuellen Block und Codierungsmodusentscheidungen für Partitionen des individuellen Blocks, die der Partitionierungsentscheidung entsprechen, unter Verwendung der Detektionsindikatoren auf der Grundlage mindestens eines des einen oder der mehreren Prozessoren zum Erzeugen einer Auswertungsentscheidung für Luma und Chroma oder lediglich für Luma für eine erste Partition der Partitionen zu erzeugen, eine Zusammenführungsmodusentscheidung oder Auslassmodusentscheidung für eine zweite Partition der Partitionen, die eine anfängliche Zusammenführungsmodusentscheidung aufweist, zu erzeugen, lediglich einen Teil eines Transformationskoeffizientenblocks für eine dritte Partition der Partitionen zu erzeugen und/oder 4×4-Modi lediglich für eine vierte Partition der Partitionen, die eine anfängliche 8×8-Codierungspartition ist, auszuwerten; und den individuellen Block mindestens auf der Grundlage der Partitionierungsentscheidung zu codieren, um einen Teil eines Ausgangsbitstroms zu erzeugen.
  15. System nach Anspruch 14, wobei die Detektionsindikatoren Indikatoren umfassen, ob ein Luma-Durchschnitt der ersten Partition einen ersten Schwellenwert überschreitet, ein Durchschnitt eines ersten Chroma-Kanals der ersten Partition einen zweiten Schwellenwert überschreitet, ein Durchschnitt eines zweiten Chroma-Kanals der ersten Partition einen dritten Schwellenwert überschreitet, die erste Partition eine Kante enthält und die erste Partition sich in einem aufgedeckten Bereich befindet, und das Erzeugen der Partitionierungsentscheidung und der Codierungsmodusentscheidungen durch den einen oder die mehreren Prozessoren das Erzeugen der Auswertungsentscheidung für Luma und Chroma oder lediglich für Luma für die erste Partition durch den einen oder die mehreren Prozessoren durch die Anwendung einer Auswertungsentscheidung lediglich für Luma für die erste Partition, wenn der Luma-Durchschnitt den ersten Schwellenwert nicht überschreitet, der Durchschnitt des ersten Chroma-Kanals den zweiten Schwellenwert nicht überschreitet und der Durchschnitt des zweiten Chroma-Kanals den dritten Schwellenwert nicht überschreitet, und die Anwendung einer Auswertungsentscheidung für Luma und Chroma für die erste Partition als Antwort darauf, dass der Luma-Durchschnitt, der Durchschnitt des ersten Chroma-Kanals oder der Durchschnitt des zweiten Chroma-Kanals seinen entsprechenden Schwellenwert überschreitet und die erste Partition eine Kante enthält oder sich in einem aufgedeckten Bereich befindet, umfasst.
  16. System nach Anspruch 14 oder 15, wobei die Detektionsindikatoren eine Bestimmung umfassen, ob ein Betrag einer Differenz zwischen anfänglichen Auslassmoduscodierungskosten und anfänglichen Zusammenführungsmoduscodierungskosten für die zweite Partition einen Schwellenwert überschreitet, und der eine oder die mehreren Prozessoren zum Erzeugen der Partitionierungsentscheidung und der Codierungsmodusentscheidungen den einen oder die mehreren Prozessoren zum Erzeugen der Zusammenführungsmodusentscheidung oder Auslassmodusentscheidung durch Wählen der Auslassmoduscodierung oder der Zusammenführungsmoduscodierung für die zweite Partition, wenn der Betrag der Differenz den Schwellenwert überschreitet, um eine endgültige Auslassmodusentscheidung oder Zusammenführungsmodusentscheidung zu erzeugen, oder das Verschieben der Auswahl der Auslassmoduscodierung oder der Zusammenführungsmoduscodierung auf eine Zusammenführungsmodusentscheidung oder eine Auslassmodusentscheidung eines vollständigen Codierungsdurchlaufs, wenn der Betrag der Differenz den Schwellenwert nicht überschreitet, umfassen.
  17. System nach einem der Ansprüche 14-16, wobei die Detektionsindikatoren einen Indikator umfassen, ob der Bereich, der individuelle Block oder die dritte Partition optisch wichtig ist, und der eine oder die mehreren Prozessoren zum Erzeugen der Partitionierungsentscheidung und der Codierungsmodusentscheidungen den einen oder die mehreren Prozessoren zum Erzeugen lediglich des Teils des Transformationskoeffizientenblocks durch den einen oder die mehreren Prozessoren zum Erzeugen eines ersten Transformationskoeffizientenblocks, der eine erste Anzahl verfügbarer Transformationskoeffizienten besitzt, wenn der Bereich, der individuelle Block oder die dritte Partition optisch wichtig ist, oder den einen oder die mehreren Prozessoren zum Erzeugen eines zweiten Transformationskoeffizientenblocks, der eine zweite Anzahl verfügbarer Transformationskoeffizienten besitzt, wenn der Bereich, der individuelle Block oder die dritte Partition nicht optisch wichtig ist, umfassen, wobei die zweite Anzahl geringer als die erste Anzahl ist.
  18. System nach einem der Ansprüche 14-17, wobei der eine oder die mehreren Prozessoren zum Erzeugen der Partitionierungsentscheidung den einen oder die mehreren Prozessoren zum Bestimmen einer anfänglichen Partitionierungsentscheidung für den individuellen Block, das kleinste Kandidatenpartitionen von 8×8-Kandidatenpartitionen des individuellen Blocks auswertet, umfassen, wobei die anfängliche Partitionierungsentscheidung den individuellen Block in die vierte Partition und eine oder mehrere weitere Partitionen partitioniert, und zum Erzeugen der Partitionierungsentscheidung ferner als Antwort darauf, dass die vierte Partition eine 8×8-Partition ist, die Auswertung von 4×4-Unterpartitionen der vierten Partition umfasst.
  19. System nach einem der Ansprüche 14-18, wobei die Detektionsindikatoren einen besten Modus für die vierte 8×8-Partition umfassen und der eine oder die mehreren Prozessoren zum Auswerten der 4×4-Unterpartitionen die Auswertung lediglich übergreifender Modi für die 4×4-Unterpartitionen, wenn der beste Modus ein übergreifender Modus ist, und die Auswertung lediglich interner Modi für die 4×4-Unterpartitionen, wenn der beste Modus ein interner Modus ist, umfassen, wobei die Auswertung lediglich übergreifender Modi umfasst, dass der eine oder die mehreren Prozessoren die 4×4-Unterpartitionen durch eine Bewegungsschätzungssuche für jede der 4×4-Unterpartitionen unter Verwendung eines gewählten Bewegungsvektors für einen besten übergreifenden Modus für die vierte 8×8-Partition auswerten, um ein Suchzentrum für die Bewegungsschätzungssuchen zu definieren, und wobei die Auswertung lediglich interner Modi umfasst, dass der eine oder die mehreren Prozessoren die 4×4-Unterpartitionen unter Verwendung lediglich des besten internen Modus, der der vierten 8×8-Partition entspricht, eines Gleichstrommodus, eines ebenen Modus und eines oder mehrerer interner Modi, die dem besten internen Modus benachbart sind, auswerten.
  20. Mindestens ein maschinenlesbares Medium, das mehrere Anweisungen umfasst, die, als Antwort darauf, dass sie auf einer Recheneinrichtung ausgeführt werden, bewirken, dass die Recheneinrichtung Videocodierung durch Folgendes durchführt: Empfangen eines Eingangsvideos zur Codierung, wobei das Eingangsvideo mehrere Bilder umfasst und ein erstes Bild der mehreren Bilder einen Bereich umfasst, der einen individuellen Block umfasst, wobei der individuelle Block mehrere Partitionen umfasst; Anwenden eines oder mehrerer Detektoren an den Bereich, den individuellen Block und/oder eine oder mehrere der mehreren Partitionen, um einen oder mehrere Detektionsindikatoren zu erzeugen; Erzeugen einer Partitionierungsentscheidung für den individuellen Block und von Codierungsmodusentscheidungen für Partitionen des individuellen Blocks, die der Partitionierungsentscheidung entsprechen, unter Verwendung der Detektionsindikatoren auf der Grundlage des Erzeugens einer Auswertungsentscheidung für Luma und Chroma oder lediglich für Luma für eine erste Partition der Partitionen, des Erzeugens einer Zusammenführungsmodusentscheidung oder Auslassmodusentscheidung für eine zweite Partition der Partitionen, die eine anfängliche Zusammenführungsmodusentscheidung aufweist, des Erzeugens lediglich eines Teils eines Transformationskoeffizientenblocks für eine dritte Partition der Partitionen und/oder des Auswertens von 4×4-Modi lediglich für eine vierte Partition der Partitionen, die eine anfängliche 8×8-Codierungspartition ist; und Codieren des individuellen Blocks mindestens auf der Grundlage der Partitionierungsentscheidung, um einen Teil eines Ausgangsbitstroms zu erzeugen.
  21. Maschinenlesbares Medium nach Anspruch 20, wobei die Detektionsindikatoren Indikatoren umfassen, ob ein Luma-Durchschnitt der ersten Partition einen ersten Schwellenwert überschreitet, ein Durchschnitt eines ersten Chroma-Kanals der ersten Partition einen zweiten Schwellenwert überschreitet, ein Durchschnitt eines zweiten Chroma-Kanals der ersten Partition einen dritten Schwellenwert überschreitet, die erste Partition eine Kante enthält und die erste Partition sich in einem aufgedeckten Bereich befindet, und das Erzeugen der Partitionierungsentscheidung und der Codierungsmodusentscheidungen das Erzeugen der Auswertungsentscheidung für Luma und Chroma oder lediglich für Luma für die erste Partition durch Anwenden einer Auswertungsentscheidung lediglich für Luma für die erste Partition, wenn der Luma-Durchschnitt den ersten Schwellenwert nicht überschreitet, der Durchschnitt des ersten Chroma-Kanals den zweiten Schwellenwert nicht überschreitet und der Durchschnitt des zweiten Chroma-Kanals den dritten Schwellenwert nicht überschreitet, und Anwenden einer Auswertungsentscheidung für Luma und Chroma für die erste Partition als Antwort darauf, dass der Luma-Durchschnitt, der Durchschnitt des ersten Chroma-Kanals oder der Durchschnitt des zweiten Chroma-Kanals seinen entsprechenden Schwellenwert überschreitet und die erste Partition eine Kante enthält oder sich in einem aufgedeckten Bereich befindet, umfasst.
  22. Maschinenlesbares Medium nach Anspruch 20 oder 21, wobei die Detektionsindikatoren eine Bestimmung umfassen, ob ein Betrag einer Differenz zwischen anfänglichen Auslassmoduscodierungskosten und anfänglichen Zusammenführungsmoduscodierungskosten für die zweite Partition einen Schwellenwert überschreitet, und das Erzeugen der Partitionierungsentscheidung und der Codierungsmodusentscheidungen das Erzeugen der Zusammenführungsmodusentscheidung oder Auslassmodusentscheidung durch Wählen der Auslassmoduscodierung oder der Zusammenführungsmoduscodierung für die zweite Partition, wenn der Betrag der Differenz den Schwellenwert überschreitet, um eine endgültige Auslassmodusentscheidung oder Zusammenführungsmodusentscheidung zu erzeugen, oder das Verschieben der Auswahl der Auslassmoduscodierung oder der Zusammenführungsmoduscodierung auf eine Zusammenführungsmodusentscheidung oder Auslassmodusentscheidung eines vollständigen Codierungsdurchlaufs, wenn der Betrag der Differenz den Schwellenwert nicht überschreitet, umfasst.
  23. Maschinenlesbares Medium nach einem der Ansprüche 20-22, wobei die Detektionsindikatoren einen Indikator umfassen, ob der Bereich, der individuelle Block oder die dritte Partition optisch wichtig ist, und das Erzeugen der Partitionierungsentscheidung und der Codierungsmodusentscheidungen das Erzeugen lediglich des Teils des Transformationskoeffizientenblocks durch Erzeugen eines ersten Transformationskoeffizientenblocks, der eine erste Anzahl verfügbarer Transformationskoeffizienten besitzt, wenn der Bereich, der individuelle Block oder die dritte Partition optisch wichtig ist, oder das Erzeugen eines zweiten Transformationskoeffizientenblocks, der eine zweite Anzahl verfügbarer Transformationskoeffizienten besitzt, wenn der Bereich, der individuelle Block oder die dritte Partition nicht optisch wichtig ist, umfasst, wobei die zweite Anzahl geringer als die erste Anzahl ist.
  24. Maschinenlesbares Medium nach einem der Ansprüche 20-23, wobei das Erzeugen der Partitionierungsentscheidung das Bestimmen einer anfänglichen Partitionierungsentscheidung für den individuellen Block, das kleinste Kandidatenpartitionen von 8×8-Kandidatenpartitionen des individuellen Blocks auswertet, umfasst, wobei die anfängliche Partitionierungsentscheidung den individuellen Block in die vierte Partition und eine oder mehrere weitere Partitionen partitioniert, und das Erzeugen der Partitionierungsentscheidung ferner als Antwort darauf, dass die vierte Partition eine 8×8-Partition ist, das Auswerten von 4×4-Unterpartitionen der vierten Partition umfasst.
  25. Maschinenlesbares Medium nach einem der Ansprüche 20-24, wobei die Detektionsindikatoren einen besten Modus für die vierte 8×8-Partition umfassen und das Auswerten der 4×4-Unterpartitionen das Auswerten lediglich übergreifender Modi für die 4×4-Unterpartitionen, wenn der beste Modus ein übergreifender Modus ist, und das Auswerten lediglich interner Modi für die 4×4-Unterpartitionen, wenn der beste Modus ein interner Modus ist, umfasst, wobei das Auswerten lediglich übergreifender Modi das Auswerten der 4×4-Unterpartitionen durch Durchführen einer Bewegungsschätzungssuche für jede der 4×4-Unterpartitionen unter Verwendung eines gewählten Bewegungsvektors für einen besten übergreifenden Modus für die vierte 8×8-Partition, um ein Suchzentrum für die Bewegungsschätzungssuchen zu definieren, umfasst und wobei das Auswerten lediglich interner Modi das Auswerten der 4×4-Unterpartitionen unter Verwendung lediglich des besten internen Modus, der der vierten 8×8-Partition entspricht, eines Gleichstrommodus, eines ebenen Modus und eines oder mehrerer interner Modi, die dem besten internen Modus benachbart sind, umfasst.
  26. System, das Folgendes umfasst: ein Mittel zum Empfangen eines Eingangsvideos zur Codierung, wobei das Eingangsvideo mehrere Bilder umfasst und ein erstes Bild der mehreren Bilder einen Bereich umfasst, der einen individuellen Block umfasst, wobei der individuelle Block mehrere Partitionen umfasst; ein Mittel zum Anwenden eines oder mehrerer Detektoren an den Bereich, den individuellen Block und/oder eine oder mehrere der mehreren Partitionen, um einen oder mehrere Detektionsindikatoren zu erzeugen; ein Mittel zum Erzeugen einer Partitionierungsentscheidung für den individuellen Block und von Codierungsmodusentscheidungen für Partitionen des individuellen Blocks, die der Partitionierungsentscheidung entsprechen, unter Verwendung der Detektionsindikatoren auf der Grundlage des Erzeugens einer Auswertungsentscheidung für Luma und Chroma oder lediglich für Luma für eine erste Partition der Partitionen, des Erzeugens einer Zusammenführungsmodusentscheidung oder Auslassmodusentscheidung für eine zweite Partition der Partitionen, die eine anfängliche Zusammenführungsmodusentscheidung aufweist, des Erzeugens lediglich eines Teils eines Transformationskoeffizientenblocks für eine dritte Partition der Partitionen und/oder des Auswertens von 4×4-Modi lediglich für eine vierte Partition der Partitionen, die eine anfängliche 8×8-Codierungspartition ist; und ein Mittel zum Codieren des individuellen Blocks mindestens auf der Grundlage der Partitionierungsentscheidung, um einen Teil eines Ausgangsbitstroms zu erzeugen.
  27. System nach Anspruch 26, wobei die Detektionsindikatoren Indikatoren umfassen, ob ein Luma-Durchschnitt der ersten Partition einen ersten Schwellenwert überschreitet, ein Durchschnitt eines ersten Chroma-Kanals der ersten Partition einen zweiten Schwellenwert überschreitet, ein Durchschnitt eines zweiten Chroma-Kanals der ersten Partition einen dritten Schwellenwert überschreitet, die erste Partition eine Kante enthält und die erste Partition sich in einem aufgedeckten Bereich befindet, und das Erzeugen der Partitionierungsentscheidung und der Codierungsmodusentscheidungen das Erzeugen der Auswertungsentscheidung für Luma und Chroma oder lediglich für Luma für die erste Partition durch Anwenden einer Auswertungsentscheidung lediglich für Luma für die erste Partition, wenn der Luma-Durchschnitt den ersten Schwellenwert nicht überschreitet, der Durchschnitt des ersten Chroma-Kanals den zweiten Schwellenwert nicht überschreitet und der Durchschnitt des zweiten Chroma-Kanals den dritten Schwellenwert nicht überschreitet, und Anwenden einer Auswertungsentscheidung für Luma und Chroma für die erste Partition als Antwort darauf, dass der Luma-Durchschnitt, der Durchschnitt des ersten Chroma-Kanals oder der Durchschnitt des zweiten Chroma-Kanals seinen entsprechenden Schwellenwert überschreitet und die erste Partition eine Kante enthält oder sich in einem aufgedeckten Bereich befindet, umfasst.
  28. System nach Anspruch 26 oder 27, wobei die Detektionsindikatoren eine Bestimmung umfassen, ob ein Betrag einer Differenz zwischen anfänglichen Auslassmoduscodierungskosten und anfänglichen Zusammenführungsmoduscodierungskosten für die zweite Partition einen Schwellenwert überschreitet, und das Erzeugen der Partitionierungsentscheidung und der Codierungsmodusentscheidungen das Erzeugen der Zusammenführungsmodusentscheidung oder Auslassmodusentscheidung durch Wählen der Auslassmoduscodierung oder der Zusammenführungsmoduscodierung für die zweite Partition, wenn der Betrag der Differenz den Schwellenwert überschreitet, um eine endgültige Auslassmodusentscheidung oder Zusammenführungsmodusentscheidung zu erzeugen, oder das Verschieben der Auswahl der Auslassmoduscodierung oder der Zusammenführungsmoduscodierung auf eine Zusammenführungsmodusentscheidung oder eine Auslassmodusentscheidung eines vollständigen Codierungsdurchlaufs, wenn der Betrag der Differenz den Schwellenwert nicht überschreitet, umfasst.
  29. System nach Anspruch 26-28, wobei die Detektionsindikatoren einen Indikator umfassen, ob der Bereich, der individuelle Block oder die dritte Partition optisch wichtig ist, und das Erzeugen der Partitionierungsentscheidung und der Codierungsmodusentscheidungen das Erzeugen lediglich des Teils des Transformationskoeffizientenblocks durch Erzeugen eines ersten Transformationskoeffizientenblocks, der eine erste Anzahl verfügbarer Transformationskoeffizienten besitzt, wenn der Bereich, der individuelle Block oder die dritte Partition optisch wichtig ist, oder das Erzeugen eines zweiten Transformationskoeffizientenblocks, der eine zweite Anzahl verfügbarer Transformationskoeffizienten besitzt, wenn der Bereich, der individuelle Block oder die dritte Partition nicht optisch wichtig ist, umfasst, wobei die zweite Anzahl geringer als die erste Anzahl ist.
  30. System nach Anspruch 26-29, wobei das Erzeugen der Partitionierungsentscheidung das Bestimmen einer anfänglichen Partitionierungsentscheidung für den individuellen Block, das kleinste Kandidatenpartitionen von 8x8-Kandidatenpartitionen des individuellen Blocks auswertet, umfasst, wobei die anfängliche Partitionierungsentscheidung den individuellen Block in die vierte Partition und eine oder mehrere weitere Partitionen partitioniert, und das Erzeugen der Partitionierungsentscheidung ferner als Antwort darauf, dass die vierte Partition eine 8×8-Partition ist, das Auswerten von 4×4-Unterpartitionen der vierten Partition umfasst.
DE102018129344.5A 2017-12-28 2018-11-21 Bereichsadaptive, dateneffiziente Erzeugung von Partitionierungsentscheidungen und Modusentscheidungen zur Videocodierung Pending DE102018129344A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/856,691 2017-12-28
US15/856,691 US20190045198A1 (en) 2017-12-28 2017-12-28 Region adaptive data-efficient generation of partitioning and mode decisions for video encoding

Publications (1)

Publication Number Publication Date
DE102018129344A1 true DE102018129344A1 (de) 2019-07-04

Family

ID=65230669

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018129344.5A Pending DE102018129344A1 (de) 2017-12-28 2018-11-21 Bereichsadaptive, dateneffiziente Erzeugung von Partitionierungsentscheidungen und Modusentscheidungen zur Videocodierung

Country Status (3)

Country Link
US (1) US20190045198A1 (de)
CN (1) CN110351554A (de)
DE (1) DE102018129344A1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019154936A1 (en) * 2018-02-09 2019-08-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Partition-based intra coding concept
US11496737B2 (en) * 2018-10-05 2022-11-08 Electronics And Telecommunications Research Institute Image encoding/decoding method and apparatus, and recording medium storing bitstream
WO2020130600A1 (ko) * 2018-12-17 2020-06-25 주식회사 윌러스표준기술연구소 예측 모드를 시그널링하는 비디오 신호 처리 방법 및 장치
US11263261B2 (en) * 2020-02-14 2022-03-01 Alibaba Group Holding Limited Method and system for characteristic-based video processing
CN113038179A (zh) * 2021-02-26 2021-06-25 维沃移动通信有限公司 视频编码方法、视频解码方法、装置及电子设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012020092A1 (en) * 2010-08-11 2012-02-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Multi-view signal codec
CN106851319B (zh) * 2011-06-10 2020-06-19 寰发股份有限公司 推导方法及推导装置
WO2017053852A1 (en) * 2015-09-23 2017-03-30 Arris Enterprises Llc System for reshaping and coding high dynamic range and wide color gamut sequences
WO2018049594A1 (en) * 2016-09-14 2018-03-22 Mediatek Inc. Methods of encoder decision for quad-tree plus binary tree structure

Also Published As

Publication number Publication date
CN110351554A (zh) 2019-10-18
US20190045198A1 (en) 2019-02-07

Similar Documents

Publication Publication Date Title
DE102018129344A1 (de) Bereichsadaptive, dateneffiziente Erzeugung von Partitionierungsentscheidungen und Modusentscheidungen zur Videocodierung
JP6334006B2 (ja) ビデオ符号化用の高コンテンツ適応型品質回復フィルタ処理のためのシステムおよび方法
DE102020127627A1 (de) Verfahren und System zum Videocodieren mit Intra-Block-Kopieren
US10462459B2 (en) Non-local adaptive loop filter
DE102019209067A1 (de) Adaptive in-loop filtering for video coding
DE112017003212T5 (de) Verfahren und System zur Videocodierung mit Kontextdecodierung und Rekonstruktionsumgehung
DE102019218837A1 (de) VERFAHREN UND SYSTE M ZUR NEURONALNETZ WERK-SCHLEIFENFILTERUNG ZUR VlDEOCODIERUNG
Gibson et al. An investigation of dehazing effects on image and video coding
RU2461977C2 (ru) Сжатие и снятие сжатия изображения
DE112016002026B4 (de) Verfahren und System zum adaptiven Referenz-Frame-Caching für die Videocodierung
DE69817460T2 (de) Bildsequenzdekodierungsverfahren
US10469876B2 (en) Non-local adaptive loop filter combining multiple denoising technologies and grouping image patches in parallel
DE102016225270A1 (de) Verfahren, anwendungsprozessor, und mobiles endgerät zum verarbeiten eines referenzbildes
DE60309375T2 (de) Parametrisierung für verlauf-kompensation
EP2651127A1 (de) Bildverarbeitungsvorrichtung und bildverarbeitungsverfahren
DE112018000280T5 (de) Entblockungsfilterung für 360-video
DE102020123396A1 (de) Verfahren und system für inhaltsadaptives entrauschen zum videocodieren
DE102020125206A1 (de) Verfahren und system zur mehrkanalvideocodierung mit frameratenänderung und kanalübergreifender referenzierung
DE102019218316A1 (de) 3d-renderer-zu-videocodierer-pipeline für verbesserte visuelle qualität und geringe latenz
CN112465698A (zh) 一种图像处理方法和装置
US20180359486A1 (en) Non-local adaptive loop filter processing
DE102019215911A1 (de) Adaptive inhaltsquantisierung zur videocodierung
DE102022106872A1 (de) Verfahren und system zur mehrschichtigen videocodierung
DE112017005664T5 (de) Umwandlungspuffer zum entkoppeln von normativem und umsetzungsdatenpfadinterleaving von videokoeffizienten
DE102014115013A1 (de) Videokodierverfahren und Vorrichtung, und Videodekodierverfahren und Vorrichtung, die eine Bewegungskompensation durchführen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: HGF EUROPE LLP, DE

Representative=s name: HGF EUROPE LP, DE