DE102015117561A1 - Datenverarbeitungssystem, das Bewegungskompensationsinformation modifiziert, und Verfahren zum Decodieren von Videodaten mit demselben - Google Patents

Datenverarbeitungssystem, das Bewegungskompensationsinformation modifiziert, und Verfahren zum Decodieren von Videodaten mit demselben Download PDF

Info

Publication number
DE102015117561A1
DE102015117561A1 DE102015117561.4A DE102015117561A DE102015117561A1 DE 102015117561 A1 DE102015117561 A1 DE 102015117561A1 DE 102015117561 A DE102015117561 A DE 102015117561A DE 102015117561 A1 DE102015117561 A1 DE 102015117561A1
Authority
DE
Germany
Prior art keywords
image
motion compensation
compensation information
core
block
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
DE102015117561.4A
Other languages
English (en)
Inventor
JungYeop Yang
Hyuk Jae Jang
Hyung Ju CHUN
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102015117561A1 publication Critical patent/DE102015117561A1/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/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • 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/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/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • 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/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation

Landscapes

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

Abstract

Ein Datenverarbeitungssystem (100A, 100B, 100C) weist einen ersten Kern (CORE0) auf, welcher konfiguriert ist, um ein erstes Bild (10, 610, 620, 630, 640, 650, 660) zu decodieren und um eine Decodiervorgeschichtsinformation des decodierten ersten Bildes (10, 610, 620, 630, 640, 650, 660) zu erzeugen, und einen zweiten Kern (CORE1), welcher konfiguriert ist, um eine erste Bewegungskompensationsinformation (1010), welche in einem zweiten Bild (612, 622, 632, 642, 652, 662) enthalten ist, basierend auf der Decodiervorgeschichtsinformation des decodierten ersten Bildes (10, 610, 620, 630, 640, 650, 660) zu modifizieren, und um das zweite Bild (612, 622, 632, 642, 652, 662) basierend auf dem decodierten ersten Bild (10, 610, 620, 630, 640, 650, 660) und der modifizierten ersten Bewegungskompensationsinformation (1010) zu decodieren.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNG
  • Diese Anmeldung beansprucht unter 35 U.S.C. § 119 die Priorität der koreanischen Patentanmeldung 10-2014-0168004 , welche am 28. November 2014 beim koreanischen Amt für gewerblichen Rechtsschutz (Korean Intellectual Property Office) eingereicht wurde, deren Offenbarung hierin in ihrer Gesamtheit durch Bezugnahme mit einbezogen ist.
  • HINTERGRUND
  • 1. TECHNISCHES GEBIET
  • Beispielhafte Ausführungsformen beziehen sich auf eine Halbleitervorrichtung und genauer auf einen Anwendungsprozessor, welcher mehrere Kerne aufweist, zum Durchführen von Echtzeit In-Loop-Filterung und ein System, welches denselben aufweist.
  • 2. BESCHREIBUNG DES STANDES DER TECHNIK
  • Eine Scheibe (slice) und eine Kachel (tile) in einem Bild können eine Abhängigkeit in einer Entropiekodierung oder Entropiedekodierung verringern. Wenn jedoch eine Mehrzahl von Scheiben oder Kacheln in dem Bild durch eine Mehrzahl von Prozessoren parallel verarbeitet werden, kann eine Deblockieroperation der Mehrzahl von Scheiben oder Kacheln blockiert sein, bis die Verarbeitungsoperation von Makroblöcken benachbart zu Grenzen der Mehrzahl von Scheiben oder Kacheln beendet ist. Zusätzlich muss die Mehrzahl von Prozessoren Informationen über die Deblockieroperation der Makroblöcke benachbart zu Grenzen der Mehrzahl von Scheiben oder Kacheln austauschen.
  • Das heißt, dass, wenn eine Mehrzahl von unterteilten Bereichen in einem Bild durch eine Mehrzahl von Prozessoren parallel bearbeitet wird, die Deblockieroperation blockiert oder verzögert werden kann aufgrund der Abhängigkeiten und Verteilungen der Mehrzahl von unterteilten Bereichen in dem Bild, welches durch die Mehrzahl von Prozessoren verarbeitet wird.
  • KURZFASSUNG
  • Gemäß einem Aspekt einer beispielhaften Ausführungsform ist ein Datenverarbeitungssystem vorgesehen, welches einen ersten Kern aufweist, welcher konfiguriert ist, um ein erstes Bild zu decodieren und um eine Decodiervorgeschichtsinformation beziehungsweise Decodiervorgeschichtsinformationen des decodierten ersten Bildes zu erzeugen; und einen zweiten Kern, welcher konfiguriert ist, um eine erste Bewegungskompensationsinformation beziehungsweise erste Bewegungskompensationsinformationen, welche in einem zweiten Bild enthalten ist/sind, basierend auf der Decodiervorgeschichtsinformation des decodierten ersten Bildes zu modifizieren, und um das zweite Bild basierend auf dem decodierten ersten Bild und der modifizierten ersten Bewegungskompensationsinformation zu decodieren.
  • Der zweite Kern kann konfiguriert sein, um eine Decodiervorgeschichtsinformation beziehungsweise Decodiervorgeschichtsinformationen des decodierten zweiten Bildes zu erzeugen, und der erste Kern kann konfiguriert sein, um eine zweite Bewegungskompensationsinformation beziehungsweise zweite Bewegungskompensationsinformationen, welche in einem dritten Bild enthalten ist/sind, basierend auf der Decodiervorgeschichtsinformation des decodierten zweiten Bildes zu modifizieren, und um das dritte Bild basierend auf der modifizierten zweiten Bewegungskompensationsinformation und einem des decodierten ersten Bilds und des decodierten zweiten Bildes zu decodieren.
  • Der erste Kern kann einen ersten Bewegungskompensations-Informationsmodifizierer aufweisen, welcher konfiguriert ist, um die zweite Bewegungskompensationsinformation zu modifizieren, und der zweite Kern kann einen zweiten Bewegungskompensations-Informationsmodifizierer aufweisen, welcher konfiguriert ist, um die erste Bewegungskompensationsinformation zu modifizieren.
  • Der erste Kern kann einen ersten In-Loop-Filter aufweisen, welcher mit dem ersten Bewegungskompensations-Modifizierer verbunden ist, und der zweite Kern kann einen zweiten In-Loop-Filter aufweisen, welcher mit dem zweiten Bewegungskompensations-Modifizierer verbunden ist.
  • Der erste In-Loop-Filter kann eine teilweise In-Loop-Filterung, die eine Deblockieroperation nur in einem Block ist, welcher auf die modifizierte erste Bewegungskompensationsinformation bezogen ist, basierend auf einem ersten Steuersignal durchführen, welches von dem ersten Bewegungskompensations-Informationsmodifizierer empfangen wird, und der zweite In-Loop-Filter kann eine teilweise In-Loop-Filterung, welche eine Deblockieroperation nur in einem Block ist, welcher auf die modifizierte zweite Bewegungskompensationsinformation bezogen ist, basierend auf einem zweiten Steuersignal durchführen, welches von dem zweiten Bewegungskompensations-Informationsmodifizierer empfangen wird.
  • Jedes des ersten Bildes, des zweiten Bildes und des dritten Bildes können wenigstens einen unterteilten Bereich aufweisen.
  • Das erste Bild kann einen ersten unterteilten Bereich aufweisen, die Decodiervorgeschichtsinformation des decodierten ersten Bildes kann Decodiervorgeschichtsinformation des ersten unterteilten Bereichs aufweisen, und der zweite Kern kann die erste Bewegungskompensationsinformation basierend auf den Decodiervorgeschichtsinformation des ersten unterteilten Bereichs modifizieren.
  • Die modifizierte erste Bewegungskompensationsinformation kann eine modifizierte Referenzkoordinate aufweisen, welche einer Referenzkoordinate entspricht, welche in der ersten Bewegungskompensationsinformation enthalten ist.
  • Das zweite Bild kann einen zweiten unterteilten Bereich aufweisen, die Decodiervorgeschichtsinformation des decodierten zweiten Bildes kann Decodiervorgeschichtsinformation des zweiten unterteilen Bereichs aufweisen, und der erste Kern kann die zweite Bewegungskompensationsinformation basierend auf der Decodiervorgeschichtsinformation des zweiten unterteilten Bereiches modifizieren.
  • Die modifizierte zweite Bewegungskompensationsinformation kann einen modifizierten Referenzbildindex aufweisen, welcher hinsichtlich eines Referenzbildindex', welcher in der zweiten Bewegungskompensationsinformation enthalten ist, modifiziert ist.
  • Gemäß einem Aspekt einer anderen beispielhaften Ausführungsform ist ein Verfahren zum Decodieren einer Mehrzahl von Bildern in Videodaten vorgesehen, wobei das Verfahren ein Empfangen eines ersten Bildes, welches einen ersten unterteilten Bereich hat; ein Empfangen eines zweiten Bildes, welches einen zweiten unterteilten Bereich hat; ein Extrahieren einer ersten Bewegungskompensationsinformation beziehungsweise erster Bewegungskompensationsinformationen, welche in dem zweiten Bild enthalten ist/sind; ein Modifizieren der extrahierten ersten Bewegungskompensationsinformation; und ein Decodieren des zweiten Bildes basierend auf dem ersten unterteilten Bereich und der modifizierten ersten Bewegungskompensationsinformation aufweist.
  • Das Modifizieren der extrahierten ersten Bewegungskompensationsinformation kann ein Modifizieren einer Referenzkoordinate eines Referenzbildes, welches in der ersten Bewegungskompensationsinformation enthalten ist, basierend auf einer Decodiervorgeschichtsinformation des Referenzbildes bezogen auf die extrahierte erste Bewegungskompensationsinformation aufweisen.
  • Das erste Bild kann einen dritten unterteilten Bereich unterschiedlich von dem ersten unterteilten Bereich aufweisen, und die Referenzkoordinate des Referenzbildes kann modifiziert werden derart, dass die Referenzkoordinate von einer ersten Koordinate, welche sich auf den ersten unterteilten Bereich bezieht, zu einer zweiten Koordinate geändert wird, welche sich auf den dritten unterteilten Bereich bezieht.
  • Das Verfahren kann weiterhin ein Decodieren eines Blocks aufweisen, welcher in dem zweiten unterteilten Bereich enthalten ist, basierend auf dem ersten Bild und der modifizierten ersten Bewegungskompensationsinformation; und ein Durchführen einer teilweisen In-Loop-Filterung des decodierten Blocks.
  • Das Verfahren kann weiterhin ein Empfangen eines dritten Bildes aufweisen, welches einen dritten unterteilten Bereich hat; ein Extrahieren einer zweiten Bewegungskompensationsinformation beziehungsweise von zweiten Bewegungskompensationsinformationen, welche in dem dritten Bild enthalten ist/sind; ein Modifizieren der extrahierten zweiten Bewegungskompensationsinformation; und ein Decodieren des dritten Bildes basierend auf der modifizierten zweiten Bewegungskompensationsinformation.
  • Das Modifizieren der extrahierten zweiten Bewegungskompensationsinformation kann ein Modifizieren eines Referenzbildindex aufweisen, welcher in der zweiten Bewegungskompensationsinformation enthalten ist, basierend auf einer Decodiervorgeschichtsinformation eines Referenzbildes, auf welches durch den Referenzbildindex Bezug genommen wird.
  • Der Referenzbildindex kann modifiziert werden derart, dass der Referenzbildindex von einem zweiten Index, welcher sich auf das zweite Bild bezieht, zu einem ersten Index geändert wird, welcher sich auf das erste Bild bezieht.
  • Das Verfahren kann weiterhin ein Decodieren eines Blocks in dem dritten unterteilten Bereich basierend auf dem zweiten Bild und der modifizierten zweiten Bewegungskompensationsinformation aufweisen; und ein Durchführen einer teilweisen In-Loop-Filterung des decodierten Blocks.
  • Die extrahierte zweite Bewegungskompensationsinformation kann einen Referenzbildindex aufweisen, und ein Modifizieren der extrahierten zweiten Bewegungskompensationsinformation kann ein Modifizieren des Referenzbildindex' und einer Referenzkoordinate eines Referenzbildes aufweisen, auf welches durch den Referenzbildindex, welcher in der extrahierten zweiten Bewegungskompensationsinformation enthalten ist, Bezug genommen wird, basierend auf einer Decodiervorgeschichtsinformation des ersten unterteilten Bereichs oder des zweiten unterteilten Bereichs bezogen auf den Referenzbildindex und die Referenzkoordinate des Referenzbildes.
  • Das erste Bild kann einen vierten unterteilten Bereich unterschiedlich von dem ersten unterteilten Bereich aufweisen, und ein Modifizieren der extrahierten ersten Bewegungskompensationsinformation kann ein Modifizieren des Referenzbildindex aufweisen derart, dass der Referenzbildindex von einem zweiten Index, welcher sich auf das zweite Bild bezieht zu einem ersten Index geändert wird, welcher sich auf das erste Bild bezieht; und ein Modifizieren der Referenzkoordinate des Referenzbilds derart, dass die Referenzkoordinate von einer ersten Koordinate, welche sich auf den vierten unterteilten Bereich bezieht, zu einer zweiten Koordinate geändert wird, welche sich auf den ersten unterteilten Bereich bezieht.
  • Das Verfahren kann weiterhin ein Decodieren eines Blocks in dem dritten unterteilten Bereich basierend auf dem ersten Bild und der modifizierten zweiten Bewegungskompensationsinformation aufweisen; und ein Durchführen einer teilweisen In-Loop-Filterung des decodierten Blocks.
  • Die extrahierte erste Bewegungskompensationsinformation kann basierend auf einer Anzahl von Referenzbildern modifiziert werden, welche in der extrahierten ersten Bewegungskompensationsinformation enthalten sind.
  • Die extrahierte erste Bewegungskompensationsinformation kann modifiziert werden basierend auf einem Wert eines Bewegungsvektors, welcher in der extrahierten ersten Bewegungskompensationsinformation enthalten ist.
  • Die extrahierte erste Bewegungskompensationsinformation kann modifiziert werden basierend auf einer Differenz in Pixelwerten an einer Grenze zwischen benachbarten decodierten Blöcken vor einer Deblockieroperation.
  • Gemäß einem Aspekt einer anderen beispielhaften Ausführungsform ist ein Datenverarbeitungssystem vorgesehen, welches einen ersten Decoder aufweist, welcher konfiguriert ist, um ein erstes Bild zu decodieren und um eine erste Bewegungskompensationsinformation beziehungsweise erste Bewegungskompensationsinformationen, welche in dem ersten Bild enthalten ist/sind zu decodieren, und um eine erste Decodiervorgeschichtsinformation beziehungsweise erste Decodiervorgeschichtsinformationen basierend auf einem Decodierergebnis des decodierten ersten Bildes zu erzeugen; und einen zweiten Decodierer beziehungsweise Decoder, welcher konfiguriert ist, um ein zweites Bild zu decodieren und eine zweite Bewegungskompensationsinformation beziehungsweise Bewegungskompensationsinformationen zu erzeugen, welche in dem zweiten Bild enthalten ist/sind, und um eine zweite Decodiervorgeschichtsinformation beziehungsweise zweite Decodiervorgeschichtsinformationen basierend auf einem Decodierergebnis des decodierten zweiten Bildes zu erzeugen; eine Decodiervorgeschichtsspeichervorrichtung, welche mit dem ersten Decoder und dem zweiten Decoder verbunden ist, und konfiguriert ist, um die erste Decodiervorgeschichtsinformation und die zweite Decodiervorgeschichtsinformation zu speichern; und einen Bewegungskompensations-Informationsmodifizierer, welcher mit der Decodiervorgeschichtsspeichervorrichtung verbunden ist, und konfiguriert ist, um die erste und die zweite Bewegungskompensationsinformation basierend auf der ersten und der zweiten Decodiervorgeschichte und der ersten und der zweiten Bewegungskompensationsinformation zu modifizieren, wobei der zweite Decoder konfiguriert ist, um das zweite Bild basierend auf der modifizierten zweiten Bewegungskompensationsinformation zu decodieren.
  • Der erste Decoder kann ein drittes Bild decodieren und erzeugt eine dritte Bewegungskompensationsinformation beziehungsweise Bewegungskompensationsinformationen, welche in dem dritten Bild enthalten ist/sind, und aktualisiert die erste Decodiervorgeschichtsinformation basierend auf dem Decodierergebnis des dritten Bildes, und der Bewegungskompensation-Informationsmodifizierer kann die dritte Bewegungskompensationsinformation basierend auf der dritten Bewegungskompensationsinformation und der ersten Decodiervorgeschichtsinformation modifizieren.
  • Jedes des ersten Bildes, des zweiten Bildes und des dritten Bildes kann wenigstens einen unterteilten Bereich haben.
  • Der Bewegungskompensations-Informationsmodifizierer kann die modifizierte zweite Bewegungskompensationsinformation durch ein Modifizieren einer Referenzkoordinate eines Referenzbildes, welches in der zweiten Bewegungskompensationsinformation enthalten ist, erzeugen.
  • Der Bewegungskompensations-Informationsmodifizierer kann die modifizierte dritte Bewegungskompensationsinformation durch ein Modifizieren eines Referenzbildindex, welcher in der dritten Bewegungskompensationsinformation enthalten ist, erzeugen.
  • Der Bewegungskompensations-Informationsmodifizierer kann die modifizierte dritte Bewegungskompensationsinformation durch ein Modifizieren eines Referenzbildindex und einer Referenzkoordinate eines Referenzbildes erzeugen, auf welches durch den Referenzbildindex, welcher in der dritten Bewegungskompensationsinformation enthalten ist, Bezug genommen wird.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die obigen und andere Aspekte werden deutlicher werden durch ein Beschreiben von beispielhaften Ausführungsformen im Detail unter Bezugnahme auf die beigefügten Zeichnungen, in welchen:
  • 1 ein Blockschaltbild eines Datenverarbeitungssystems gemäß einer beispielhaften Ausführungsform ist;
  • 2 ein Konzeptdiagramm ist, welches ein Bild veranschaulicht, welches eine Mehrzahl von Scheiben aufweist;
  • 3 ein Konzeptdiagramm ist, welches eine Abfolge von Bildern veranschaulicht, welche jeweils zwei Scheiben aufweisen;
  • 4 ein Konzeptdiagramm ist, welches eine Prozedur zum Verarbeiten der Abfolge von Bildern, welche in 3 gezeigt sind, durch zwei Kerne veranschaulicht;
  • 5 ein Konzeptdiagramm ist, welches eine Sequenz beziehungsweise Abfolge von Bildern veranschaulicht, welche jeweils zwei Scheibengruppen aufweisen;
  • 6 ein Konzeptdiagramm ist, welches eine Prozedur zum Verarbeiten der Abfolge von Bildern, welche in 5 gezeigt ist, durch zwei Kerne veranschaulicht;
  • 7 ein Konzeptdiagramm ist, welches eine Abfolge von Bildern veranschaulicht, welche jeweils drei Scheiben aufweist;
  • 8 ein Konzeptdiagramm ist, welches eine Prozedur beziehungsweise einen Vorgang zum Verarbeiten der Abfolge von Bildern, welche in 7 gezeigt ist, durch drei Kerne zeigt;
  • 9 ein Konzeptdiagramm ist, welches eine Bewegungsvektorsuche gemäß einer beispielhaften Ausführungsform veranschaulicht;
  • 10 ein Konzeptdiagramm ist, welches eine Abfolge von Bildern veranschaulicht, von welchen jedes zwei Kacheln gemäß einer beispielhaften Ausführungsform aufweist;
  • 11 ein Konzeptdiagramm ist, welches eine Prozedur zum Verarbeiten der Abfolge von Bildern, welche in 10 gezeigt ist, durch zwei Kerne veranschaulicht;
  • 12 ein Konzeptdiagramm ist, welches eine Abfolge von Bildern veranschaulicht, von welchen jedes jeweils zwei Kacheln aufweist;
  • 13 ein Konzeptdiagramm ist, welches eine Abfolge von Bildern veranschaulicht, von welchen jedes vier Kacheln jeweils aufweist;
  • 14 ein Konzeptdiagramm ist, welches eine Prozedur zum Verarbeiten der Abfolge von Bildern, welche in 13 gezeigt ist, durch zwei Kerne zeigt;
  • 15 ein Blockschaltbild ist, welches einen Hardware-Codec des Datenverarbeitungssystems, welches in 1 gezeigt ist, veranschaulicht;
  • 16 ein Blockschaltbild eines Codierers des Hardware-Codec ist, welcher in 15 gezeigt ist;
  • 17 ein Blockschaltbild eines Decoders des Hardware-Codec ist, welcher in 15 gezeigt ist;
  • 18 bis 22 Konzeptdiagramme sind, welche ein Verfahren zum Verarbeiten von Videodaten durch ein Modifizieren einer Bewegungskompensationsinformation gemäß beispielhaften Ausführungsformen veranschaulichen;
  • 23A und 23B Konzeptdiagramme sind, welche eine teilweise In-Loop-Filterung gemäß einer beispielhaften Ausführungsform veranschaulichen;
  • 24 ein Blockschaltbild ist, welches einen Decoder gemäß einer beispielhaften Ausführungsform veranschaulicht;
  • 25 ein Blockschaltbild ist, welches ein Datenverarbeitungssystem gemäß einer beispielhaften Ausführungsform veranschaulicht;
  • 26 ein Datenformat ist, welches einen codierten Bitstrom veranschaulicht, welcher eine Kompensationsinformation gemäß einer beispielhaften Ausführungsform aufweist;
  • 27 ein Blockschaltbild ist, welches ein Datenverarbeitungssystem gemäß einer beispielhaften Ausführungsform veranschaulicht;
  • 28 ein Blockschaltbild ist, welches ein Datenverarbeitungssystem gemäß einer beispielhaften Ausführungsform veranschaulicht;
  • 29 ein Flussdiagramm ist, welches ein Verfahren zum Verarbeiten von Videodaten durch das Datenverarbeitungssystem veranschaulicht, welches in den 1, 18 und 19 gemäß einer beispielhaften Ausführungsform gezeigt ist; und
  • 30 ein Flussdiagramm ist, welches ein Verfahren zum Verarbeiten von Videodaten gemäß einer anderen beispielhaften Ausführungsform veranschaulicht.
  • DETAILLIERTE BESCHREIBUNG VON BEISPIELHAFTEN AUSFÜHRUNGSFORMEN
  • Verschiedene beispielhafte Ausführungsformen werden nun vollständiger hierin nachstehend unter Bezugnahme auf die beigefügten Zeichnungen beschrieben werden, in welchen beispielhafte Ausführungsformen gezeigt sind. Das vorliegende erfinderische Konzept kann jedoch in unterschiedlichen Formen ausgebildet sein und sollte nicht als auf die beispielhaften Ausführungsformen, welche hierin erläutert sind, beschränkt betrachtet werden. Vielmehr sind diese beispielhaften Ausführungsformen vorgesehen, sodass diese Offenbarung gewissenhaft und vollständig sein wird, und den Umfang des vorliegenden erfinderischen Konzepts Fachleuten vollständig übermitteln wird. Dieselben Bezugszeichen können dieselben Komponenten durch die Beschreibung hindurch anzeigen. In den beigefügten Figuren können die Dicken von Schichten und Bereichen zur Klarheit überhöht sein.
  • Es wird ebenso verstanden werden, dass wenn auf eine Schicht Bezug genommen wird als ”auf” einer anderen Schicht oder Substrat, sie direkt auf der anderen Schicht oder dem anderen Substrat sein kann, oder zwischenliegende Schichten ebenso gegenwärtig sein können. Im Gegensatz dazu sind, wenn auf ein Element als ”direkt auf” einem anderen Element Bezug genommen wird, keine zwischenliegende Elemente gegenwärtig.
  • Räumlich relative Begriffe wie beispielsweise ”unterhalb”, ”unter”, ”unterer”, ”über”, ”oberer” und dergleichen können hierin verwendet werden zur Erleichterung der Beschreibung, um eine Beziehung eines Elements oder Merkmals zu einem anderen Element (anderen Elementen) oder Merkmal (Merkmalen) zu beschreiben, wie in den Figuren veranschaulicht ist. Es wird verstanden werden, dass die räumlich relativen Begriffe vorgesehen sind, um unterschiedliche Orientierungen der Vorrichtung in Verwendung oder Betrieb zusätzlich zu der Orientierung, welche in den Figuren dargestellt ist, zu umfassen. Beispielsweise waren, wenn die Vorrichtung in den Figuren umgedreht wird, Elemente, welche als ”unter” oder ”unterhalb” anderen Elementen oder Merkmalen beschrieben sind, dann ”über” zu den anderen Elementen oder Merkmalen orientiert. Demnach kann der beispielhafte Begriff ”unter” beide Orientierungen von über als auch von unter umfassen. Die Vorrichtung kann anderweitig orientiert sein (um 90 Grad gedreht oder unter anderen Orientierungen) und die räumlich relativen Deskriptoren, welcher hierin verwendet werden, werden dementsprechend interpretiert.
  • Die Verwendung der Begriffe ”einer/eine/eines” und ”der/die/das” und ähnliche Referenzen in dem Zusammenhang des Beschreibens der beispielhaften Ausführungsformen, insbesondere im Zusammenhang der folgenden Ansprüche müssen betrachtet werden als sowohl den Singular als auch den Plural umfassend, solange nicht Anderweitiges hierin angezeigt ist oder durch den Zusammenhang deutlich widersprochen wird. Die Begriffe ”aufweisend”, ”habend”, ”einschließlich” und ”enthaltend” müssen als offen-endige Begriffe betrachtet werden (das heißt bedeutend ”aufweisend, jedoch nicht beschränkt auf”), solange nicht anderweitig angemerkt.
  • Solange nicht anderweitig definiert, haben alle technischen und wissenschaftlichen Begriffe, welche hierin verwendet werden, dieselbe Bedeutung, wie allgemein durch einen Fachmann verstanden wird, zu dessen Fachgebiet das vorliegende erfinderische Konzept gehört. Es wird festgehalten, dass die Verwendung von einem beliebigen und allen Beispielen oder beispielhaften Begriffen, welche hierin vorgesehen sind, lediglich beabsichtigt ist, um das vorliegende erfinderische Konzept besser zu beleuchten, und nicht eine Beschränkung des Umfangs des vorliegenden erfinderischen Konzepts ist, solange nicht anderweitig spezifiziert. Ferner dürfen, solang nicht anderweitig definiert, alle Begriffe, welche in allgemein verwendeten Wörterbüchern definiert sind, nicht übermäßig interpretiert werden.
  • Die beispielhaften Ausführungsformen werden unter Bezugnahme auf perspektivische Ansichten, Querschnittsansichten und/oder Draufsichten beschrieben werden. Demnach kann das Profil einer beispielhaften Ansicht gemäß Herstellungstechniken und/oder Toleranzen beziehungsweise Vorgaben modifiziert werden. Das heißt, dass die beispielhaften Ausführungsformen nicht vorgesehen sind, um den Umfang des vorliegenden erfinderischen Konzepts zu beschränken, sondern alle Änderungen und Modifikationen, welche aufgrund einer Änderung im Herstellungsvorgang verursacht werden können, zu umfassen. Demnach sind Bereiche, welche in den Zeichnungen gezeigt sind, in schematischer Form veranschaulicht, und die Formen der Bereiche sind lediglich auf dem Wege der Veranschaulichung präsentiert und nicht als eine Beschränkung.
  • Verschiedene beispielhafte Ausführungsformen des vorliegenden erfinderischen Konzepts werden vollständiger hierin nachstehend unter Bezugnahme auf die beigefügten Zeichnungen beschrieben werden.
  • Ein Bild oder eine Verarbeitungseinheit (das heißt eine Einheit, welche zu verarbeiten ist) kann in verschiedenen beispielhaften Ausführungsformen ein oder mehrere unterteilte Bereiche, beispielsweise Scheiben (slices) oder Kacheln (tiles) aufweisen. Gemäß beispielhaften Ausführungsformen kann ein Bild durch einen Kern verarbeitet werden. In anderen Worten gesagt können alle unterteilten Bereiche beispielsweise alle Scheiben oder alle Kacheln in einem Bild durch einen einzelnen Kern verarbeitet werden. Hier kann verarbeiten codieren, decodieren, codieren einschließlich einer In-Loop-Filterung oder decodieren einschließlich einer In-Loop-Filterung bedeuten.
  • In verschiedenen beispielhaften Ausführungsformen kann ein Bild in Scheiben unterteilt sein. Die Scheibe definiert jeweils eine Sequenz beziehungsweise Abfolge einer ganzzahligen Anzahl von Makroblöcken (MBs = Macro Blocs = Makroblöcke) oder Codierbaumeinheiten (CTUs = Coding Tree Units = Codierbaumeinheiten) für AVC oder HEVC. In beispielhaften Ausführungsformen für HEVC kann ein Bild auch in Kacheln unterteilt sein. Die Kachel definiert einen rechtwinkligen Bereich einer ganzzahligen Anzahl von CTUs und kann CTUs aufweisen, welche in mehr als einer Scheibe enthalten sind.
  • In einigen beispielhaften Ausführungsformen kann ein Datenverarbeitungssystem 100A, 100B oder 100C in einem Full High Definition(FHD)-TV oder Ultra High Definition(UHD)-TV ausgeführt sein. Zusätzlich kann das Datenverarbeitungssystem 100A, 100B oder 100C kompatibel mit einem Videocodierstandard wie beispielsweise H.264, High Efficiency Video Coding (HEVC) und so weiter sein.
  • In einigen beispielhaften Ausführungsformen kann das Datenverarbeitungssystem 100A, 100B oder 100C auf einem Personalcomputer (PC), einem Smartphone, einem Tablet-PC, einer mobilen Internetvorrichtung (MID = Mobile Internet Devices = mobile Internetvorrichtung), einem Laptopcomputer, einem mobilen digitalen Medienabspieler (M-DMP = Mobile Digital Media Player = mobiler digitaler Medienabspieler) oder einem tragbaren Medienabspieler (PMP = Portable Media Player = tragbarer Medienabspieler) implementiert sein.
  • 1 ist ein Blockschaltbild eines Datenverarbeitungssystems gemäß einer beispielhaften Ausführungsform. Bezug nehmend auf 1 kann ein Datenverarbeitungssystem 100A einen Controller beziehungsweise eine Steuerung 200A, eine Mehrzahl von Speichern 301, 303 und 305 und eine Anzeige 400 aufweisen. In einigen beispielhaften Ausführungsformen kann das Datenverarbeitungssystem 100A ferner eine Kamera 500 aufweisen.
  • Der Controller 200A kann als eine integrierte Schaltung (IC = Integrated Circuit = integrierte Schaltung), ein Ein-Chip-System (SoC = System-on-Chip = Ein-Chip-System), ein Motherboard, ein Anwendungsprozessor (AP = Application Processor = Anwendungsprozessor) oder ein mobiler AP implementiert sein.
  • Der Controller 200A kann zugeführte unkomprimierte YUV/RGB-Daten empfangen und codieren oder einen codierten Bitstrom decodieren, Operationen wie beispielsweise Lese-/Schreib-Operationen der Mehrzahl von Speichern 301, 303 und 305 steuern und Anzeigedaten oder Videodaten zu der Anzeige 400 übertragen. Zusätzlich kann der Controller 200A Bilddaten oder Videodaten, welche von der Kamera 500 ausgegeben werden, verarbeiten, und kann die verarbeiteten Bilddaten oder die verarbeiteten Videodaten in wenigstens einem der Mehrzahl von Speichern 301, 303 und 305 speichern und/oder die verarbeiteten Bilddaten oder die verarbeiteten Videodaten zu der Anzeige 400 übertragen.
  • Der Controller 200A kann eine zentrale Verarbeitungseinheit (CPU = Central Processing Unit = zentrale Verarbeitungseinheit) 210A, eine Grafikverarbeitungseinheit (GPU = Graphic Processing Unit = Grafikverarbeitungseinheit) 220, eine Mehrzahl von Hardware-Codecs 230-1 bis 230-N, wobei N eine natürliche Zahl gleich oder größer als zwei ist, eine Speicherschnittstelle (I/F = Interface = Schnittstelle) 240, eine Anzeigeschnittstelle (I/F) 260 und eine Empfängerschnittstelle (I/F) 270 aufweisen. Wenn das Datenverarbeitungssystem 100A ferner eine Kamera 500 aufweist, kann der Controller 200A ferner eine Kameraschnittstelle (I/F) 250 aufweisen.
  • Die CPU 210A, die GPU 220, die Mehrzahl von Hardware-Codecs 230-1 bis 230-N, die Speicherschnittstelle 240, die Anzeigeschnittstelle 260 und die Empfängerschnittstelle 270 können Daten von/zu-einander beziehungsweise jedem anderen über einen Bus 201 übertragen oder empfangen. Die Kameraschnittstelle 250 kann verbunden sein mit und übertragen/empfangen Daten von/zu den anderen Komponenten beziehungsweise Bestandteilen, beispielsweise 210A und/oder 220.
  • Die CPU 210A kann einen oder mehrere Kerne aufweisen. Die CPU 210A kann einen Gesamtbetrieb des Controllers 200A steuern. Beispielsweise kann die CPU 210A Programmcodes oder Applikationen zum Steuern des Betriebs der GPU 220 der Mehrzahl von Hardwarecodecs 230-1 bis 230-N, der Speicherschnittstelle 240 und der Kameraschnittstelle 250, der Anzeigeschnittstelle 260 und/der Empfängerschnittstelle 270 ausführen.
  • Die GPU 220 kann 2D- oder 3D-Grafikdaten verarbeiten. Die Grafikdaten, welche durch die GPU 220 verarbeitet werden, können in wenigstens einem der Mehrzahl von Speichern 301, 303 und 305 gespeichert werden oder können durch die Anzeige 400 angezeigt werden.
  • Die Mehrzahl von Hardwarecodecs 230-1 bis 230-N kann im Wesentlichen dieselbe sein hinsichtlich der Struktur und des Betriebs. In einigen beispielhaften Ausführungsformen kann jeder der Mehrzahl von Hardware-Codecs 230-1 bis 230-N als ein Kern benannt werden. Jeder der Mehrzahl von Hardware-Codecs 230-1 bis 230-N kann weiterhin jeweils einen von Speichern MEM1 bis MEMN aufweisen. Jeder der Speicher MEM1 bis MEMN kann Informationen von einem oder mehreren codierten und/oder decodierten Bilder speichern und/oder eine In-Loop-Filterung des einen oder der mehreren codierten und/oder decodierten Bildern durchführen.
  • Die Speicherschnittstelle 240 kann eine erste Speicherschnittstelle 241, eine zweite Speicherschnittstelle 243 und eine dritte Speicherschnittstelle 245 aufweisen. Beispielsweise kann, wenn der erste Speicher 301 der Mehrzahl von Speichern 301, 303, 305 ein dynamischer Direktzugriffsspeicher (DRAM = Dynamic Random Access Memory = dynamischer Direktzugriffsspeicher) ist, die erste Speicherschnittstelle 241 eine DRAM-Schnittstelle sein. Wenn der zweite Speicher 303 ein NAND-Flashspeicher ist, kann die zweite Speicherschnittstelle 243 eine NAND-Flash-Schnittstelle sein. Wenn der dritte Speicher 305 eine eingebettete Multimediakarte (eMMC) ist, kann die dritte Speicherschnittstelle eine eMMC-Schnittstelle sein. Zur Erleichterung der Beschreibung in 1 sind drei Speicherschnittstellen 241, 243 und 245 und die drei Speicher 301, 303 und 305 veranschaulicht; dies ist jedoch nur ein Beispiel und die Anzahl von Speichern ist nicht besonders beschränkt. Demnach ist ein technisches Konzept durch die Anzahl von Speicherschnittstellen und Speichern, welche mit den Speicherschnittstellen verbunden sind, nicht limitiert beziehungsweise beschränkt.
  • Die Anzeigeschnittstelle 260 kann Anzeigedaten, beispielsweise Videodaten zu der Anzeige 400 unter einer Steuerung der CPU 210A, der GPU 220 oder jedes der Mehrzahl von Hardware-Codecs 230-1 bis 230-N übertragen. In einigen beispielhaften Ausführungsformen kann die Anzeigeschnittstelle 260 als eine serielle Anzeigenschnittstelle (DSI) einer mobilen Industrieprozessorschnittstelle MIPI®, eine eingebettete Anzeigeport(eDP = embedded Display Port = eingebettete Anzeigeport)-Schnittstelle oder eine High-Definition-Multimediaschnittstelle (HDMI), etc. ausgeführt sein. Diese Schnittstellen jedoch sind nur beispielhaft und die Anzeigeschnittstelle 260 ist nicht darauf beschränkt.
  • Die Empfängerschnittstelle 270 kann unkomprimierte Bilddaten (RGB/YUV) und/oder einen codierten Bitstrom über ein verdrahtetes Kommunikationsnetzwerk oder ein drahtloses Kommunikationsnetzwerk empfangen. In einigen beispielhaften Ausführungsformen kann die Empfängerschnittstelle 270 als ein Universal Serial Bus-Interface beziehungsweise -Schnittstelle (USB), eine Ethernet Interface beziehungsweise Ethernet-Schnittstelle, eine Blue Tooth-Schnittstelle, eine Wi-Fi-Schnittstelle oder eine Long Term Evolution (LTETM) Schnittstelle etc. ausgeführt sein. Diese Schnittstellen jedoch sind nur beispielhaft und die Empfängerschnittstelle 270 ist nicht darauf beschränkt.
  • Die Kameraschnittstelle 250 kann Bilddaten, welche von der Kamera 500 ausgegeben werden, empfangen. In einigen beispielhaften Ausführungsformen kann die Kameraschnittstelle 250 eine serielle Kameraschnittstelle (CSI = Camera Serial Interface = serielle Kameraschnittstelle) eines MIPI® sein. Diese Schnittstelle ist jedoch nur beispielhaft und die Kameraschnittstelle 250 ist nicht darauf beschränkt. Die Kamera 500 kann ein Kameramodul sein, welches einen CMOS-Bildsensor aufweist.
  • 2 ist ein Konzeptdiagramm, welches ein Bild veranschaulicht, welches eine Mehrzahl von Scheiben aufweist.
  • Bezug nehmend auf 2 kann ein Bild 10 eine Mehrzahl von Scheiben SLICE1 bis SLICE3 aufweisen und jede der Mehrzahl von Scheiben SLICE1 bis SLICE3 kann eine Mehrzahl von Blöcken aufweisen. Beispielsweise kann, wie in dem Beispiel der 2 gezeigt ist, SLICE1 Blöcke 0–21 aufweisen, SLICE2 kann Blöcke 22–39 aufweisen und SLICE3 kann Blöcke 40–63 aufweisen. Eine Anzahl von Blöcken, welche in jeder der Mehrzahl von Scheiben SLICE1 bis SLICE3 enthalten ist, kann unterschiedlich voneinander sein. Alternativ kann die Anzahl von Blöcken, welche in jeder der Mehrzahl von Scheiben SLICE1 bis SLICE3 enthalten ist, dieselbe für jede Scheibe sein. Das Bild 10 kann ein Frame beziehungsweise Rahmen, welcher zu codieren ist, ein Originalbild, ein Roh-Bitstrom eines Bildes, welches zu codieren ist, oder ein Frame, welcher zu decodieren ist, ein codiertes Bild oder ein codierter Bitstrom EB etc. sein. 2 zeigt ein Bild, welches 64 Blöcke hat, das heißt Blöcke 0–63. Dies ist jedoch nur ein Beispiel und die Anzahl von Blöcken kann mehr oder weniger als 64 sein.
  • In dem H.264 Videocodierstandard kann der Block ein Makroblock sein. In einem Hocheffizienz-Videocodier-(HEVC = High Efficiency Video Coding = Hocheffizienz-Videocodier-)Standard, kann der Block eine Codierbaumeinheit (CTU = Coding Tree Unit = Codierbaumeinheit) sein. In einigen beispielhaften Ausführungsformen kann das Bild 10 ein zu codierender Rahmen, ein Originalbild, ein Roh-Bitstrom eines zu codierenden Bildes oder ein Rahmen zum Decodieren, ein codiertes Bild oder ein codierter Bitstrom EB etc. sein.
  • Ein Codierer kann die Blöcke in einem Bild codieren und ein Decoder beziehungsweise Decodierer kann die Blöcke in einem Bild von einem Block 0 bis zu einem Block 63 nacheinander folgend decodieren.
  • Nachdem ein erster Block 0 in der ersten Scheibe SLICE1 verarbeitet ist, führt der Codierer oder Decoder keine In-Loop-Filterung des Randes des verarbeiteten ersten Blocks 0 durch, da es keinen Block vor dem verarbeiteten ersten Block 0 gibt. Andererseits kann nach dem Verarbeiten eines zweiten Blocks 1 in der ersten Scheibe SLICE1 der Codierer oder Decoder eine In-Loop-Filterung des Randes des ersten Blocks 0 und des zweiten Blocks 1 basierend auf ersten Videodaten des verarbeiteten ersten Blocks 0 und zweiten Videodaten des verarbeiteten zweiten Blocks 1 durchführen. Das heißt, dass der Codierer oder Decoder eine In-Loop-Filterung an einer Blockgrenze durchführen kann. Hier bezeichnet eine Blockgrenze eine Grenze zwischen zwei Blöcken.
  • Nachdem ein 23. codierter Block 22 in der zweiten Scheibe SLICE2 verarbeitet ist, können der Codierer oder Decoder eine In-Loop-Filterung des Randes des 23. verarbeiteten Blocks 22 in der zweiten Scheibe SLICE2 und vorangehenden Blöcken 14 und 21 in der ersten Scheibe SLICE1 basierend auf Videodaten der Blöcke 14, 21 und 23 durchführen. Das heißt, dass der Codierer oder Decoder eine In-Loop-Filterung auf einer Schreibengrenze durchführen kann.
  • Nachdem ein 41. Block 40 in der dritten Scheibe SLICE3 verarbeitet ist, können der Codierer oder Decoder eine In-Loop-Filterung des Randes des 41. verarbeiteten Blocks 40 in der dritten Scheibe SLICE3 und vorangehenden Blöcken 32 in der ersten Scheibe SLICE2 basierend auf Videodaten der 33. Blöcke 32 durchführen. In anderen Worten gesagt kann eine In-Loop-Filterung eines gegenwärtigen verarbeiteten Blocks unter Verwendung wenigstens eines eines oberen verarbeiteten Blocks und eines linken verarbeiteten Blocks benachbart zu dem gegenwärtigen Block durchgeführt werden.
  • Gemäß beispielhaften Ausführungsformen kann ein Decoder, welcher einen In-Loop-Filter aufweist, welcher einen Videocodierstandard von H.264 erfüllt, eine In-Loop-Filterung für jeden Block durchführen. Gemäß beispielhaften Ausführungsformen des vorliegenden erfinderischen Konzepts, kann ein Decoder, welcher einen In-Loop-Filter aufweist, welcher einen Videocodierstandard von HEVC erfüllt, eine In-Loop-Filterung für jeden Block durchführen. Beispielsweise kann ein Decoder eine In-Loop-Filterung einer Mehrzahl von Blöcken benachbart zu einem gegenwärtigen decodierten Block an einer Blockgrenze durchführen oder eine In-Loop-Filterung aller Pixel in dem gegenwärtigen decodierten Block gemäß einem Videocodierstandard eines Sample Adaptive Offset (SAO) durchführen.
  • Die In-Loop-Filterung gemäß dem Videocodierstandard von H.264 kann basierend auf einem Bewegungsvektor, einer Vorhersagemodusinformation beziehungsweise Vorhersagemodusinformationen und/oder einem Quantisierungsparameter etc. durchgeführt werden. Die In-Loop-Filterung gemäß dem Videocodierstandard von HEVC kann durchgeführt werden basierend auf einem Bewegungsvektor, einer Vorhersagemodusinformation beziehungsweise Vorhersagemodusinformationen, einem Quantisierungsparameter und/oder einer Mehrzahl von Parametern eines SAO-Filters etc. Der Vorhersagemodus kann eine Intra-Vorhersagemodusinformation oder eine Inter-Vorhersagemodusinformation aufweisen.
  • 3 ist ein Konzeptdiagramm, welches eine Abfolge von Bildern, welche jeweils zwei Scheiben aufweisen, veranschaulicht. 4 ist ein Konzeptdiagramm, welches eine Prozedur beziehungsweise einen Vorgang zum Verarbeiten der Abfolge von Bildern, welche in 3 gezeigt ist, durch zwei Kerne veranschaulicht.
  • Bezug nehmend auf die 1, 3 und 4 kann der Controller 200A zwei Hardwarecodecs 230-1 und 230-2 aufweisen. Ein erster Kern CORE0 kann ein erster Hardwarecodecs 230-1 sein und ein zweiter Kern CORE1 kann ein zweiter Hardwarecodecs 230-2 sein. Der Codierer oder Decoder, welcher unter Bezugnahme auf 2 beschrieben ist, kann in dem ersten Kern CORE0 und dem zweiten Kern CORE1 enthalten sein.
  • Bezug nehmend auf 3 kann jedes der Mehrzahl von Bildern 610, 612, 614, ... und 616 jeweils zwei Scheiben 610-1~610-2, 612-1~612-2, 614-1~614-2, ... und 616-1~616-2 aufweisen. Jede der Mehrzahl von Bildern 610, 612, 614, ... und 616 kann jeweils eine erste Verarbeitungseinheit 610-1, 612-1, 614-1, ... und 616-1 aufweisen und jeweils eine zweite Verarbeitungseinheit 610-2, 612-2, 614-2, ... und 616-2. Wie in der vorliegenden Offenbarung verwendet bezeichnet ”Verarbeitungseinheit” eine Einheit von Daten, welche zu verarbeiten ist. Beispielsweise kann jedes der Mehrzahl von Bildern 610, 612, 614, ... und 616 einen Frame beziehungsweise Rahmen, welcher zu codieren ist, ein Originalbild, einen Roh-Bitstrom eines zu codierenden Bildes oder einen Rahmen, der zu decodieren ist, ein codiertes Bild oder einen codierten Bitstrom EB, welcher von der Empfängerschnittstelle 270 empfangen wird etc. bedeuten.
  • In einigen beispielhaften Ausführungsformen kann die CPU 210A die Empfängerschnittstelle 270 derart steuern, dass das ungerade Bild dem ersten Kern CORE0 zugeordnet werden kann und ein gerades Bild dem zweiten Kern CORE1 zugeordnet werden kann.
  • In einigen beispielhaften Ausführungsformen kann die CPU 210A den ersten Kern CORE0 und den zweiten Kern CORE1 derart steuern, dass ungerade Bilder dem ersten Kern CORE0 zugeordnet werden und gerade Bilder dem zweiten Kern CORE1 zugeordnet werden.
  • Bezug nehmend auf 4 kann in einer ersten Zeitdauer beziehungsweise Zeitperiode T1 der erste Kern CORE0 die erste Scheibe 610-1 des ersten Bilds 610 verarbeiten. Die erste Scheibe 612-1 des zweiten Bild 612 kann durch den zweiten Kern CORE1 in einer zweiten Zeitperiode T2 verarbeitet werden, nachdem die Verarbeitung der ersten Scheibe 610-1 des ersten Bildes 610 in der ersten Zeitperiode T1 durch den ersten Kern CORE0 vollendet worden ist.
  • In der zweiten Zeitdauer T2 kann der erste Kern CORE0 die zweite Scheibe 610-2 des ersten Bildes 610 verarbeiten, und der zweite Kern CORE1 kann die erste Scheibe 612-1 des zweiten Bildes 612 verarbeiten. Das Verarbeiten der ersten Scheibe 612-1 und der zweiten Scheibe 610-2 kann parallel in der zweiten Zeitdauer T2 durchgeführt werden. Wenn in dieser Beschreibung verwendet, bezeichnet ”Verarbeitung... parallel durchgeführt”, dass es einen Überlapp in der Verarbeitung gibt. Demnach bezeichnet hier ”parallel”, dass es einen Überlapp in der Verarbeitung der ersten Scheibe 612-1 und der zweiten Scheibe 610-2 gibt. Das heißt, dass während gepunktete Linien in den 4, 6, 8, 11, 14 verwendet werden, diese Linien nur zur Erleichterung der Beschreibung vorgesehen sind und nicht bezwecken, vorzuschlagen, dass die Startzeiten oder die Endzeiten zur Verarbeitung exakt zusammen fallen. Beispielsweise sind die gepunkteten Linien in 4 nicht beabsichtigt, um vorzuschlagen, dass die Startzeiten oder die Endzeiten zum Verarbeiten der ersten Scheibe 612-1 und der zweiten Scheibe 610-2 exakt zusammen fallen. In einigen beispielhaften Ausführungsformen jedoch können die Startzeiten exakt zusammen fallen und/oder die Endzeiten können exakt zusammen fallen.
  • Zusätzlich kann in der zweiten Zeitdauer T2 der erste Kern CORE0 eine In-Loop-Filterung an einer Grenze der ersten Scheibe 610-1 und der zweiten Scheibe 610-2 des ersten Bildes 610 für jeden Block basierend auf einem Verarbeitungsergebnis der ersten Scheibe 610-1 in dem ersten Bild 610 durchführen. Wie unter Bezugnahme auf 2 beschrieben ist, kann der erste Kern CORE0 eine In-Loop-Filterung eines gegenwärtigen verarbeiteten Blocks unter Verwendung wenigstens eines eines oberen verarbeiteten Blocks und eines linken verarbeiteten Blocks benachbart zu dem gegenwärtigen Block durchführen. Das heißt, dass der erste Kern CORE0 die Verarbeitung der zweiten Scheibe 610-2 und die In-Loop-Filterung der ersten Scheibe 610-1 und der zweiten Scheibe 610-2 in der zweiten Zeitdauer T2 durchführen kann, sodass keine zusätzliche Zeit für die In-Loop-Filterung benötigt wird.
  • In einer dritten Zeitdauer T3 kann der erste Kern CORE0 die erste Scheibe 614-1 des dritten Bildes 614 verarbeiten, und der zweite Kern CORE1 kann die zweite Scheibe 612-2 des zweiten Bildes 612 verarbeiten. Die Verarbeitung der ersten Scheibe 614-1 des dritten Bildes 614 und der zweiten Scheibe 612-2 des zweiten Bildes 612 kann parallel in der zweiten Zeitdauer T3 durchgeführt werden.
  • Zusätzlich kann in der dritten Zeitdauer T3 der zweite Kern CORE1 eine In-Loop-Filterung an einer Grenze der ersten Scheibe 612-1 und der zweiten Scheibe 612-2 für jeden Block basierend auf einem Verarbeitungsergebnis der ersten Scheibe 612-1 in dem zweiten Bild 612 durchführen. Das heißt, dass der zweite Kern CORE1 die Verarbeitung der zweiten Scheibe 612 und die In-Loop-Filterung des Randes der ersten Scheibe 612-1 und der zweiten Scheibe 612-2 des zweiten Bildes 612 in der dritten Zeitdauer T3 durchführen kann, sodass keine zusätzliche Zeit für die In-Loop-Filterung benötigt wird. Der zweite Kern CORE1 kann demnach eine Ein-Scheiben-Verzögerung haben, wie in 4 gezeigt ist. Das heißt, dass der zweite Kern CORE1 eine Verarbeitung der ersten Scheibe 612-1 des zweiten Bildes 612 beginnen kann, nachdem der erste Kern CORE0 eine Verarbeitung der ersten Scheibe 610-1 des ersten Bildes 610 beendet hat.
  • 5 ist ein Konzeptdiagramm, welches eine Abfolge von Bildern veranschaulicht, welche jeweils zwei Scheibengruppen aufweisen. 6 ist ein Konzeptdiagramm, welches eine Prozedur beziehungsweise einen Vorgang veranschaulicht, um die Abfolge von Bildern, welche in 5 gezeigt ist, durch zwei Kerne zu verarbeiten.
  • Der Controller 200A, welcher in 1 gezeigt ist, kann zwei Hardwarecodecs 230-1 und 230-2 aufweisen, welche jeweils einem ersten Kern CORE0 und einem zweiten CORE1 entsprechen können. Die Abfolge von Bildern kann beispielsweise Bilder 620, 622, 624 und 626 aufweisen.
  • Der erste Kern CORE0 kann das Bild 620 in eine erste Verarbeitungseinheit und eine zweite Verarbeitungseinheit basierend auf einer Verarbeitungskomplexität oder Größe einer Mehrzahl von unterteilten Bereichen in dem Bild 620 aufteilen. In den 5 und 6 kann die erste Verarbeitungseinheit zwei Scheiben SLICE1-1 und SLICE1-2 aufweisen, und die zweite Verarbeitungseinheit kann drei Scheiben SLICE1-3 bis SLICE1-5 aufweisen. Die erste Verarbeitungseinheit ist über der dicken Linie in 5 gezeigt, und die zweite Verarbeitungseinheit ist unter der dicken Linie in 5 gezeigt. 5 zeigt, dass jede der ersten Verarbeitungseinheiten zwei Scheiben aufweist, beispielsweise weist das erste Bild 620 eine erste Verarbeitungseinheit mit SLICE1-1 und SLICE1-2 auf. Dies ist jedoch nur ein Beispiel und die erste Verarbeitungseinheit kann eine Anzahl von Scheiben haben, welche geringer oder größer ist als zwei Scheiben, abhängig von der Komplexität oder Größe der Mehrzahl von unterteilten Bereichen.
  • Der zweite Kern CORE1 kann das Bild 622 in eine erste Verarbeitungseinheit und eine zweite Verarbeitungseinheit basierend auf der Verarbeitungskomplexität des Bildes 622 unterteilen. In den 5 und 6 kann die erste Verarbeitungseinheit zwei Scheiben SLICE2-1 und SLICE2-2 aufweisen, und die zweite Verarbeitungseinheit kann drei Scheiben SLICE2-3 bis SLICE2-5 aufweisen.
  • Beispielsweise ist es, wenn die Bilder 620, 622, 624 und 626 nicht in eine Mehrzahl von Scheiben oder Kacheln unterteilt sind, oder wenn eine Mehrzahl von unterteilten Bereichen (beispielsweise Scheiben oder Kacheln) unterschiedliche Verarbeitungskomplexitäten haben, vorteilhaft, eine Mehrzahl von unterteilten Bereichen für eine parallele Verarbeitung der Mehrzahl von Kernen CORE0 und CORE1 basierend auf den Verarbeitungskomplexitäten zu definieren. Hier können der erste Kern CORE0 und der zweite Kern CORE1 die Mehrzahl von unterteilten Bereichen der Bilder 620, 622, 624 und 626 unterteilen und parallel verarbeiten. Die Verarbeitungskomplexität kann definiert sein durch eine Decodierzeit und/oder eine Codierzeit und/oder eine Größe der Scheiben in Einheiten von Blöcken eines Bildes etc.
  • Wenn m eine natürliche Zahl ist, welche gleich oder größer als vier ist, kann in 5 ähnlich der erste Kern CORE0 das Bild 624 in eine erste Verarbeitungseinheit und eine zweite Verarbeitungseinheit basierend auf der Verarbeitungskomplexität des Bildes 624 unterteilen. In den 5 und 6 kann die erste Verarbeitungseinheit zwei Scheiben SLICE3-1 und SLICE3-2 aufweisen, und die zweite Verarbeitungseinheit kann drei Scheiben SLICE1-3 bis SLICE1-5 aufweisen.
  • Der zweite Kern CORE1 kann das Bild 626 in eine erste Verarbeitungseinheit und eine zweite Verarbeitungseinheit basierend auf der Verarbeitungskomplexität des Bildes 626 unterteilen. In den 5 und 6 kann die erste Verarbeitungseinheit zwei Scheiben SLICEm-1 und SLICEm-2 aufweisen, und die zweite Verarbeitungseinheit kann drei Scheiben SLICEm-3 bis SLICEm-5 aufweisen.
  • Obwohl jedes Bild 620, 622, 624, ... oder 626 veranschaulicht ist, um in eine erste Verarbeitungseinheit und eine zweite Verarbeitungseinheit für die zwei Kerne CORE0 und CORE1 jeweils für den Zweck der zweckdienlichen Beschreibung der 5 und 6 unterteilt zu sein, kann eine Anzahl von Verarbeitungseinheiten in einem Bild gemäß einer Anzahl von Kernen für die Verarbeitung der Einheiten variieren.
  • Beispielsweise können eine Verarbeitungszeit für die Verarbeitung der drei Scheiben SLICE1-3 bis SLICE1-5 durch den ersten Kern CORE0 und eine Verarbeitungszeit für die Verarbeitung der zwei Scheiben SLICE2-1 bis SLICE2-2 durch den zweiten Kern CORE1 im Wesentlichen gleich sein. Hier kann die Bedeutung von ”im Wesentlichen gleich” einschließen ”gleich, nahezu dieselbe, beinahe dieselbe oder dieselbe mit einer zulässigen Differenzmarge”.
  • Wie in 5 gezeigt ist, kann jedes Bild 620, 622, 624, ... 626 jeweils fünf Scheiben SLICE1-1 bis SLICE1-5, SLICE2-1 bis SLICE2-5, SLICE3-1 bis SLICE3-5, ... SLICEm-1 bis SLICEm-5 aufweisen. Beispielsweise kann jedes Bild 620, 622, 624, ... 626 ein zu codierender Frame beziehungsweise Rahmen sein, ein Originalbild, ein Roh-Bitstrom eines zu codierenden Bildes oder ein zu decodierender Frame beziehungsweise Rahmen, ein codiertes Bild oder ein codierter Bitstrom EB, welcher über die Empfängerschnittstelle 270 etc. empfangen wird.
  • Sich nun 6 zuwendend kann in einer ersten Zeitdauer T11 der erste Kern CORE0 die erste Scheibe SLICE1-1 und die zweite Scheibe SLICE1-2 des ersten Bilds 620 verarbeiten. In der ersten Zeitdauer T11 kann der erste Kern CORE0 eine In-Loop-Filterung an einer Grenze der Scheiben SLICE1-1 und SLICE1-2 für jeden Block basierend auf einem Verarbeitungsergebnis der Scheibe SLICE1-1 durchführen.
  • In einer zweiten Zeitdauer T12 kann der erste Kern CORE0 die dritte Scheibe SLICE1-3 bis die fünfte Scheibe SLICE1-5 des ersten Bildes 620 verarbeiten, und der zweite Kern CORE1 kann die erste Scheibe SLICE2-1 und die zweite Scheibe SLICE2-2 des zweiten Bildes 622 verarbeiten. Die Verarbeitung der dritten Scheibe SLICE1-3 bis der fünften Scheibe SLICE1-5 und die Verarbeitung der ersten Scheibe SLICE2-1 und der zweiten Scheibe SLICE2-2 kann parallel in der zweiten Zeitdauer T12 durchgeführt werden.
  • In der zweiten Zeitdauer T12 kann der erste Kern CORE0 eine In-Loop-Filterung an einer Grenze der Scheiben SLICE1-2 und SLICE1-3 für jeden Block basierend auf dem Verarbeitungsergebnis der Scheiben SLICE1-2 durchführen. In der zweiten Zeitdauer T12 kann der erste Kern CORE0 eine In-Loop-Filterung an einer Grenze der Scheiben SLICE1-3 und SLICE1-4 für jeden Block basierend auf dem Verarbeitungsergebnis der Scheibe SLICE1-3 durchführen und kann eine In-Loop-Filterung an einer Grenze der Scheiben SLICE1-4 und SLICE1-5 für jeden Block basierend auf dem Verarbeitungsergebnis der Scheibe SLICE1-4 durchführen. Zusätzlich kann in der zweiten Zeitdauer T12 der zweite Kern CORE1 eine In-Loop-Filterung an einer Grenze der Scheiben SLICE2-1 und SLICE2-2 für jeden Block basierend auf dem Verarbeitungsergebnis der Scheibe SLICE2-1 durchführen.
  • Das heißt, dass in der zweiten Zeitdauer T12 der erste Kern CORE0 eine In-Loop-Filterung für die drei Scheiben SLICE1-3 bis SLICE1-5 durchführen kann, und der zweite CORE1 kann eine In-Loop-Filterung für die zwei Scheiben SLICE2-1 und SLICE2-2 durchführen, sodass keine zusätzliche Zeit benötigt wird für die In-Loop-Filterung, beispielsweise keine zusätzliche Zeit zum Sammeln von verteilten Scheiben über den ersten Kern CORE0 und den zweiten Kern CORE1.
  • In einer dritten Zeitdauer T13 kann der erste Kern CORE0 die erste Scheibe SLICE3-1 und die zweite Scheibe SLICE3-2 des dritten Bildes 624 verarbeiten. In der dritten Zeitdauer T31 kann der erste Kern CORE0 eine In-Loop-Filterung an einer Grenze der Scheiben SLICE3-1 und SLICE3-2 für jeden Block basierend auf dem Verarbeitungsergebnis der Scheibe SLICE3-1 durchführen.
  • In der dritten Zeitdauer T13 kann der erste Kern CORE0 die erste Scheibe SLICE3-1 und die zweite Scheibe SLICE3-2 des dritten Bildes 624 verarbeiten, und der zweite Kern CORE1 kann die dritte Scheibe SLICE2-3 bis die fünfte Scheibe SLICE2-5 des zweiten Bildes 622 verarbeiten. Die Verarbeitung der dritten Scheibe SLICE2-3 bis zu der fünften Scheibe SLICE2-3 und die Verarbeitung der ersten Scheibe SLICE3-1 und der zweiten Scheibe SLICE3-2 kann parallel in der dritten Zeitdauer T13 durchgeführt werden.
  • In der dritten Zeitdauer T13 kann der erste Kern CORE0 eine In-Loop-Filterung an einer Grenze der Scheiben SLICE3-1 und SLICE3-2 für jeden Block basierend auf dem Verarbeitungsergebnis der Scheiben SLICE3-1 durchführen. Zusätzlich kann in der dritten Zeitdauer T13 der zweite Kern CORE1 eine In-Loop-Filterung an einer Grenze der Scheiben SLICE2-2 und SLICE2-3 für jeden Block basierend auf dem Verarbeitungsergebnis der Scheiben SLICE2-2 durchführen. In der dritten Zeitdauer T13 kann der zweite Kern CORE1 eine In-Loop-Filterung an einer Grenze der Scheiben SLICE2-3 und SLICE2-4 für jeden Block basierend auf dem Verarbeitungsergebnis der Scheibe SLICE2-3 durchführen und kann eine In-Loop-Filterung an einer Grenze der Scheiben SLICE2-4 und SLICE2-5 für jeden Block basierend auf dem Verarbeitungsergebnis der Scheibe SLICE2-4 durchführen.
  • Das heißt, dass in der dritten Zeitdauer T13 der erste Kern CORE0 eine In-Loop-Filterung für die zwei Scheiben SLICE3-1 und SLICE3-2 durchführen kann, und der zweite Kern CORE1 eine In-Loop-Filterung für die drei Scheiben SLICE2-3 bis SLICE2-5 durchführen kann, sodass keine zusätzliche Zeit für eine In-Loop-Filterung verwendet wird, beispielsweise keine zusätzliche Zeit zum Sammeln von verteilten Scheiben über den ersten Kern CORE0 und den zweiten Kern CORE1.
  • 7 ist ein Konzeptdiagramm, welches eine Abfolge von Bildern veranschaulicht, welche jeweils drei Scheiben aufweisen. 8 ist ein Konzeptdiagramm, welches eine Prozedur beziehungsweise einen Vorgang zum Verarbeiten der Abfolge von Bildern welche in 5 gezeigt ist, durch drei Kerne veranschaulicht.
  • Der Controller 200A, welcher in 1 gezeigt ist, kann drei Hardwarecodecs 230-1, 230-2 und 230-3 aufweisen, welche jeweils einem ersten Kern CORE0, einem zweiten CORE1 und einem dritten Kern CORE2 entsprechen können. Der Codierer und/oder Decoder, welche in 2 beschrieben sind, können in jedem der Kerne CORE0, CORE1 und CORE2 eingebettet sein.
  • Wie in 7 gezeigt ist, kann jedes Bild 630, 632, 634, 636 und 638 jeweils drei Scheiben aufweisen. Jedes Bild 630, 632, 634, 636 und 638 kann eine erste Verarbeitungseinheit, eine zweite Verarbeitungseinheit und eine dritte Verarbeitungseinheit aufweisen. Das heißt, dass jede der ersten Verarbeitungseinheit, der zweiten Verarbeitungseinheit und der dritten Verarbeitungseinheit jeweils einer der drei Scheiben entsprechen kann. Jedes Bild 630, 632, 634, 636 und 638 kann ein zu codierender Frame beziehungsweise Rahmen, ein Originalbild, ein Roh-Bitstrom eines zu codierenden Bildes, ein zu decodierender Frame beziehungsweise Rahmen, ein codiertes Bild oder ein codierter Bitstrom EB, welcher durch die Empfängerschnittstelle 270 empfangen wird, etc. sein.
  • Sich 8 zuwendend kann in einer ersten Zeitdauer T21 der erste Kern CORE0 die erste Scheibe SLICE1-1 des ersten Bilds 630 verarbeiten.
  • In einer zweiten Zeitdauer T22 kann der erste Kern CORE0 die zweite Scheibe SLICE1-2 des ersten Bildes 630 verarbeiten, und der zweite Kern CORE1 kann die erste Scheibe SLICE2-1 des zweiten Bildes 632 verarbeiten. Die Verarbeitung der zweiten Scheibe SLICE1-2 und die Verarbeitung der ersten Scheibe SLICE2-1 können parallel in der zweiten Zeitdauer T22 durchgeführt werden.
  • In der zweiten Zeitdauer T22 kann der erste Kern CORE0 eine In-Loop-Filterung an einer Grenze der Scheiben SLICE1-1 und SLICE1-2 für jeden Block basierend auf dem Verarbeitungsergebnis der Scheibe SLICE1-1 durchführen.
  • Für eine parallele Verarbeitung kann eine Ein-(1)-Scheibenverzögerung dem zweiten Kern CORE1 zugewiesen werden und eine Zwei-(2)-Scheibenverzögerung kann dem dritten Kern CORE2 zugeordnet werden.
  • In einer dritten Zeitdauer T23 kann der erste Kern CORE0 die dritte Scheibe SLICE1-3 des ersten Bilds 630 verarbeiten, der zweite Kern CORE1 kann die zweite Scheibe SLICE2-2 des zweiten Bilds 632 verarbeiten und der dritte Kern CORE2 kann die erste Scheibe SLICE3-1 des dritten Bildes 634 verarbeiten.
  • In der dritten Zeitdauer T23 können die Verarbeitung der dritten Scheibe SLICE1-3, die Verarbeitung der zweiten Scheibe SLICE2-2 und der ersten Scheibe SLICE1-3 parallel in der dritten Zeitdauer T23 durchgeführt werden.
  • In der dritten Zeitdauer T23 kann der erste Kern CORE0 eine In-Loop-Filterung an einer Grenze der Scheiben SLICE1-2 und SLICE1-3 für jeden Block basierend auf dem Verarbeitungsergebnis der Scheibe SLICE1-2 durchführen, und der zweite Kern CORE1 kann eine In-Loop-Filterung an einer Grenze der Scheiben SLICE2-1 und SLICE2-2 für jeden Block basierend auf dem Verarbeitungsergebnis der Scheibe SLICE2-1 durchführen.
  • In einer vierten Zeitdauer T24 kann der erste Kern CORE0 eine erste Scheibe SLICE4-1 des vierten Bildes 636 verarbeiten, der zweite Kern CORE1 kann die dritte Scheibe SLICE2-3 des zweiten Bilds 632 verarbeiten, und der dritte Kern CORE2 kann die zweite Scheibe SLICE3-2 des dritten Bildes 634 verarbeiten. Das heißt dass, sobald der erste Kern CORE0 die Verarbeitung der Scheiben des ersten Bildes 630 vollendet, der erste Kern CORE0 zu dem nächsten Bild in der Abfolge von Bildern voranschreitet, in diesem Fall dem vierten Bild 636.
  • In der vierten Zeitdauer T24 können die Verarbeitung der ersten Scheibe SLICE4-1, die Verarbeitung der dritten Scheibe SLICE2-3 und die Verarbeitung der zweiten Scheibe SLICE3-2 parallel durchgeführt werden.
  • In der vierten Zeitdauer T24 kann der zweite Kern CORE1 eine In-Loop-Filterung an einer Grenze der Scheiben SLICE2-2 und SLICE2-3 für jeden Block basierend auf dem Verarbeitungsergebnis der Scheibe SLICE2-2 durchführen, und der dritte Kern CORE2 kann eine In-Loop-Filterung an einer Grenze der Scheiben SLICE3-1 und SLICE3-2 für jeden Block basierend auf dem Verarbeitungsergebnis der Scheibe SLICE3-1 durchführen.
  • In einer fünften Zeitdauer T25 kann ein Betrieb jedes Kerns der Kerne CORE0, CORE1 und CORE2 fortfahren, jeweilige Scheiben auf einem ähnlichen Wege wie in der Operation in der ersten bis vierten Zeitdauer T21 bis T24 zu verarbeiten.
  • 9 ist ein Konzeptdiagramm, welches eine Bewegungsvektorensuche veranschaulicht. Bezug nehmend auf die 3, 4 und 9 kann, wenn eine gegenwärtige Verarbeitungsscheibe eine erste Scheibe 614-1 eines dritten Bildes 614 ist, der erste Kern CORE0 verarbeitete Scheiben 610-1, 610-2 und 612-1 suchen, um den besten Bewegungsvektor zu finden. Beispielsweise kann, da jede der Scheiben 612-2 und 614-1 parallel durch die unterschiedlichen Kerne CORE0 und CORE1 verarbeitet wird, der erste Kern nicht auf die zweite Scheibe 612-2 des zweiten Bildes 612 Bezug nehmen, welches nun verarbeitet wird. Ebenso kann die Scheibe 614-1 nicht in der Lage sein, sich auf wenige Bodenpixel der Scheibe 612-1 zu beziehen, da der Rand zwischen der Scheibe 612-1 und 612-2 unter einer In-Loop-Filteroperation zu der Zeit des Verarbeitens der Scheibe 614-1 sein kann (in dem H.264-Standard, können die wenigen Bodenpixel sechs Pixel sein).
  • Das Datenverarbeitungssystem 100A kann das dritte Bild 614 codieren, um die Abhängigkeit unter den Scheiben SLICE2-2 und SLICE3-1 bei einer parallelen Verarbeitung durch ein Bestimmen eines Referenzbildes und einer Koordinate eines übereinstimmenden Blocks (oder eines Referenzblocks) basierend auf der Abhängigkeit zu vermeiden oder zu verringern. Beispielsweise kann, wenn die erste Scheibe 614-1 codiert wird, ein Bewegungsvektor eines Makroblocks in der ersten Scheibe 614-1 bestimmt werden, um eine Abhängigkeit durch ein Veranlassen des Makroblocks, sich auf eine der Scheiben 610-1, 610-2 und 612-1 anstelle der zweiten Scheibe 612-2 zu beziehen, zu vermeiden mit einigen Einschränkungen der Bodenpixel, die durch die In-Loop-Filteroperation verarbeitet werden. Als ein Ergebnis kann die Abhängigkeit beim parallel Verarbeiten verringert werden.
  • Das Datenverarbeitungssystem 100A kann eine Bewegungsbeschränkungs-Scheibengruppe erzeugen und sich auf diese beziehen, um eine Abhängigkeit zwischen Scheiben, welche parallel verarbeitet werden, wenn die Scheiben codiert werden, zu verringern. Die Bewegungsbeschränkungs-Scheibengruppe kann Informationen aufweisen, um ein Referenzbild oder einen Referenzbereich eines vorangehenden Bildes zu beschränken, auf welches durch eine gegenwärtige Verarbeitungsscheibe Bezug genommen wird. Die Bewegungsbeschränkungs-Scheibengruppe kann in einem Speicher 301, 303 oder 305 in dem Datenverarbeitungssystem 100A oder in einem Speicher in jedem der Kerne 230-1 bis 230-N gespeichert werden.
  • 10 ist ein Konzeptdiagramm, welches eine Abfolge von Bildern veranschaulicht, von welchen jedes zwei Kacheln gemäß einer beispielhaften Ausführungsform aufweist. 11 ist ein Konzeptdiagramm, welches eine Prozedur beziehungsweise einen Vorgang zum Verarbeiten der Abfolge von Bildern, welche in 10 gezeigt ist, durch zwei Kerne veranschaulicht.
  • Ein Pfeil, welcher in jedem der Mehrzahl von Bildern 640, 642, 644 und 646 gezeigt ist, zeigt eine Verarbeitungsrichtung oder eine Verarbeitungsreihenfolge einer Mehrzahl von Kacheln in der Mehrzahl von Bildern 640, 642, 644 und 646.
  • Der Controller 200A in 1 kann zwei Hardwarecodecs 230-1 und 230-2 aufweisen. Ein erster Kern CORE0 kann ein erster Hardwarecodec 230-1 sein, und ein zweiter Kern CORE1 kann ein zweiter Hardwarecodec 230-2 sein. In einigen beispielhaften Ausführungsformen können alle Kacheln in einem Bild durch einen einzelnen Kern verarbeitet werden.
  • Bezug nehmend auf 10 kann jedes der Mehrzahl von Bildern 640, 642, 644, 646 zwei Kacheln TILE1-1 und TILE1-2, TILE2-1 und TILE2-2, TILE3-1 und TILE3-2 und TILE4-1 und TILE4-2 jeweils aufweisen. Jede der Kacheln TILE1-1 und TILE1-2, TILE2-1 und TILE2-2, TILE3-1 und TILE3-2 und TILE4-1 und TILE4-2 kann einen oder mehrere Blöcke aufweisen. Jedes der Mehrzahl von Bildern 640, 642, 644, 646 kann eine erste Verarbeitungseinheit TILE1-1, TILE2-1, TILE3-1 und TILE4-1 und eine zweite Verarbeitungseinheit TILE2-1, TILE2-2, TILE3-2 und TILE4-2 aufweisen. Das heißt, dass beispielsweise eine erste Verarbeitungseinheit des Bilds 640 TILE1-1 aufweist, und eine zweite Verarbeitungseinheit von Bild 640 TILE1-2 aufweist. Hier kann jedes der Mehrzahl von Bildern 640, 642, 644, 646 ein zu codierender Frame beziehungsweise Rahmen, ein Originalbild, ein Roh-Bitstrom eines zu codierenden Bildes, ein zu decodierender Frame beziehungsweise Rahmen, ein codiertes Bild oder ein codierter Bitstrom EB, welcher durch die Empfängerschnittstelle 270 empfangen wird, etc. sein.
  • Operationen des ersten Kerns CORE0 und des zweiten Kerns CORE1 werden unter Bezugnahme auf die 1, 2, 10 und 11 beschrieben werden.
  • In einer ersten Zeitdauer T31 kann der erste Kern CORE0 die erste Kachel TILE1-1 des ersten Bildes 640 bearbeiten. Für eine parallele Verarbeitung kann eine Kachelverzögerung dem zweiten Kern CORE1 zugeordnet werden.
  • In einer zweiten Zeitdauer T32 kann der erste Kern CORE0 die zweite Kachel TILE1-2 des ersten Bildes 640 verarbeiten, und der zweite Kern CORE1 kann die erste Kachel TILE2-1 des zweiten Bildes 642 verarbeiten. Die Verarbeitung der ersten Kachel TILE2-1 und der zweiten Kachel TILE1-2 kann parallel in der zweiten Zeitdauer T2 durchgeführt werden. Wie in dem Fall, welcher obenstehend diskutiert ist, bezeichnet hier ”parallel”, dass es einen Überlapp in der Verarbeitung der ersten Kachel TILE2-1 und der zweiten Kachel TILE1-2 gibt. Das heißt, dass, während gepunktete Linien in 4, 6, 8, 11, 14 verwendet werden, diese Linien nur zur Erleichterung der Beschreibung vorgesehen sind, und nicht vorgesehen sind, um vorzuschlagen, dass die Startzeiten oder die Endzeiten für eine Verarbeitung exakt zusammen fallen. Beispielsweise sind die gepunkteten Linien in 5 nicht vorgesehen, um vorzuschlagen, dass die Startzeiten oder die Endzeiten für eine Verarbeitung der ersten Kachel TILE2-1 und der zweiten Kachel TILE1-2 exakt zusammen fallen. In einigen beispielhaften Ausführungsformen jedoch können die Startzeiten exakt zusammen fallen und/oder die Endzeiten können exakt zusammen fallen.
  • Zusätzlich kann in der zweiten Zeitdauer T32 der erste Kern CORE0 eine In-Loop-Filterung an einer Grenze der Kacheln TILE1-1 und TILE1-2 für jeden Block basierend auf einem Verarbeitungsergebnis der ersten Kachel TILE1-1 in dem ersten Bild 640 durchführen. Das heißt, dass in der zweiten Zeitdauer T32 der erste Kern CORE0 eine Verarbeitung der zweiten Kachel TILE1-2 und eine In-Loop-Filterung der Kacheln TILE1-1 und TILE1-2 durchführen kann, sodass keine zusätzliche Zeit für eine In-Loop-Filterung verwendet wird.
  • In einer dritten Zeitdauer T33 kann der erste Kern CORE0 die erste Kachel TILE3-1 des dritten Bildes 644 bearbeiten beziehungsweise verarbeiten, und der zweite Kern CORE1 kann die zweite Kachel TILE2-2 des zweiten Bildes 642 verarbeiten. Die Verarbeitung der ersten Kachel TILE3-1 und der zweiten Scheibe TILE2-2 kann parallel in der dritten Zeitdauer T33 durchgeführt werden.
  • Zusätzlich kann in der dritten Zeitdauer T33 der zweite Kern CORE1 eine In-Loop-Filterung an einer Grenze der Kacheln TILE2-1 und TILE2-2 für jeden Block basierend auf einem Verarbeitungsergebnis der ersten Kachel TILE2-1 in dem zweiten Bild 642 durchführen. Das heißt, dass in der dritten Zeitperiode T33 der zweite Kern CORE1 eine Verarbeitung der zweiten Kachel TILE2-2 durchführen kann und eine In-Loop-Filterung der Kacheln TILE2-1 und TILE2-2, sodass keine zusätzliche Zeit für eine In-Loop-Filterung verwendet wird.
  • In einer vierten Zeitperiode T34 kann jeder Kern der Kerne CORE0 und CORE1 fortfahren, jeweilige Kacheln auf einem ähnlichen Wege wie in der Operation beziehungsweise dem Betrieb in der dritten Zeitdauer T33 zu verarbeiten.
  • 12 ist ein Konzeptdiagramm, welches eine Abfolge von Bildern veranschaulicht, von welchen jedes zwei Kacheln aufweist, welche jeweils unter Verwendung von horizontaler Partitionierung partitioniert sind.
  • Ein Pfeil, welcher in jedem einer Mehrzahl von Bildern 650, 652, 654 und 656 gezeigt ist, veranschaulicht eine Verarbeitungsrichtung oder eine Verarbeitungsreihenfolge einer Mehrzahl von Kacheln in der Mehrzahl von Bildern 650, 652, 654 und 656.
  • Der Controller 200A in 1 kann zwei Hardwarecodecs 230-1 und 230-2 aufweisen. Ein erster Kern CORE0 kann ein erster Hardwarecodec 230-1 sein, und der zweite Kern CORE1 kann ein zweiter Hardwarecodec 230-2 sein. Operationen beziehungsweise der Betrieb des ersten Kerns CORE0 und des zweiten Kerns CORE1 werden unter Bezugnahme auf die 1, 2, 11 und 12 beschrieben werden.
  • Bezug nehmend auf 12 kann jedes der Mehrzahl von Bildern 650, 652, 654, 656 jeweils zwei Kacheln TILE1-1 und TILE1-2, TILE2-1 und TILE2-2, TILE3-1 und TILE3-2 und TILE4-1 und TILE4-2 aufweisen. Jede der Kacheln TILE1-1 und TILE1-2, TILE2-1 und TILE2-2, TILE3-1 und TILE3-2 und TILE4-1 und TILE4-2 können ein oder mehrere Blöcke aufweisen. Jedes der Mehrzahl von Bildern 650, 652, 654, 656 kann jeweils eine erste Verarbeitungseinheit TILE1-1, TILE2-1, TILE3-1 und TILE4-1 aufweisen und jeweils eine zweite Verarbeitungseinheit TILE2-1, TILE2-2, TILE3-2 und TILE4-2. Hier kann jedes der Mehrzahl von Bildern 650, 652, 654, 656 ein zu codierender Frame beziehungsweise Rahmen, ein Originalbild, ein Roh-Bitstrom eines Bildes, welches zu codieren ist, oder ein Rahmen beziehungsweise Frame, welcher zu decodieren ist, ein codiertes Bild oder ein codierter Bitstrom EB sein, welcher durch die Empfängerschnittstelle 270 empfangen wird, etc.
  • In einer ersten Zeitdauer T31 kann der erste Kern CORE0 die erste Kachel TILE1-1 des ersten Bildes 650 verarbeiten. Für eine parallele Verarbeitung kann eine Kachelverzögerung dem zweiten Kern CORE1 zugewiesen werden.
  • In einer zweiten Zeitdauer T32 kann der erste Kern CORE0 die zweite Kachel TILE1-2 des ersten Bildes 650 verarbeiten und der zweite Kern CORE1 kann die erste Kachel TILE2-1 des zweiten Bildes 652 verarbeiten. Die Verarbeitung der ersten Kachel TILE2-1 und der zweiten Kachel TILE1-2 kann parallel in der zweiten Zeitdauer T32 durchgeführt werden.
  • Zusätzlich kann in der zweiten Zeitdauer T32 der erste Kern CORE0 eine In-Loop-Filterung an einer Grenze der Kacheln TILE1-1 und TILE1-2 für jeden Block basierend auf einem Verarbeitungsergebnis der ersten Kachel TILE1-1 in dem ersten Bild 650 durchführen. Das heißt, dass in der zweiten Zeitdauer T32 der erste Kern CORE0 eine Verarbeitung der zweiten Kachel TILE1-2 und eine In-Loop-Filterung der Kacheln TILE1-1 und TILE1-2 durchführen kann, sodass keine zusätzliche Zeit für eine In-Loop-Filterung verwendet wird.
  • In einer dritten Zeitdauer T33 kann der erste Kern CORE0 die erste Kachel TILE3-1 des dritten Bildes 654 verarbeiten, und der zweite Kern CORE1 kann die zweite Kachel TILE2-2 des zweiten Bildes 652 verarbeiten. Die Verarbeitung der ersten Kachel TILE3-1 und der zweiten Scheibe TILE2-2 kann parallel in der dritten Zeitdauer T33 durchgeführt werden.
  • Zusätzlich kann in der dritten Zeitdauer T33 der zweite Kern CORE1 eine In-Loop-Filterung an einer Grenze der Kacheln TILE2-1 und TILE2-2 für jeden Block basierend auf einem Verarbeitungsergebnis der ersten Kachel TILE2-1 in dem zweiten Bild 652 durchführen. Das heißt, dass in der dritten Zeitdauer T33 der zweite Kern CORE1 eine Verarbeitung der zweiten Kachel TILE2-2 und eine In-Loop-Filterung der Kacheln TILE2-1 und TILE2-2 durchführen kann, sodass keine zusätzliche Zeit für eine In-Loop-Filterung verwendet wird.
  • In einer vierten Zeitdauer T34 kann jeder Kern der Kerne CORE0 und CORE1 fortfahren, jeweilige Kacheln auf einem ähnlichen Wege wie in der Operation in der dritten Zeitdauer T33 zu verarbeiten.
  • 13 ist ein Konzeptdiagramm, welches eine Abfolge von Bildern veranschaulicht, von welchen jedes jeweils vier Kacheln, welche sowohl horizontale als auch vertikale Partitionen haben, aufweist. 14a ist ein Konzeptdiagramm, welches eine Prozedur beziehungsweise einen Vorgang zum Verarbeiten der Abfolge von Bildern, welche in 13 gezeigt sind, durch zwei Kerne veranschaulicht.
  • Ein Pfeil, welcher in jedem einer Mehrzahl von Bildern 660, 662 und 664 gezeigt ist, veranschaulicht eine Verarbeitungsrichtung oder eine Verarbeitungsreihenfolge einer Mehrzahl von Kacheln in der Mehrzahl von Bildern 660, 662 und 664.
  • Der Controller 200A in 1 kann zwei Hardwarecodecs 230-1 und 230-2 aufweisen. Ein erster Kern CORE0 kann ein erster Hardwarecodec 230-1 sein, und ein zweiter Kern CORE1 kann ein zweiter Hardwarecodec 230-2 sein. In einigen beispielhaften Ausführungsformen können alle Kacheln in einem Bild durch einen einzelnen Kern verarbeitet werden. Operationen des ersten Kerns CORE0 und des zweiten Kerns CORE1 werden unter Bezugnahme auf die 1, 2, 13 und 14 beschrieben werden.
  • Bezug nehmend auf 13 kann jedes der Mehrzahl von Bildern 660, 662 und 664 jeweils vier Kacheln TILE1-1 bis TILE1-4, TILE2-1 bis TILE2-4 und TILE3-1 bis TILE3-4 aufweisen. Jede der Kacheln TILE1-1 bis TILE1-4, TILE2-1 bis TILE2-4 und TILE3-1 bis TILE3-4 können einen oder mehrere Blöcke aufweisen. Jedes der Mehrzahl von Bildern 660, 662 und 664 kann eine erste Verarbeitungseinheit aufweisen, welche jeweils zwei Kacheln TILE1-1 und TILE1-2, TILE2-1 und TILE2-2 und TILE3-1 und TILE3-2 hat, und eine zweite Verarbeitungseinheit, welche jeweils zwei Kacheln TILE1-3 und TILE1-4, TILE2-3 und TILE2-4 und TILE3-3 und TILE3-4 hat. Hier kann jedes der Mehrzahl von Bildern 660, 662 und 664 ein zu codierender Frame, ein Originalbild, ein Roh-Bitstrom eines zu codierenden Bildes, ein zu decodierender Frame beziehungsweise Rahmen, ein codiertes Bild oder ein codierter Bitstrom EB, welcher durch die Empfängerschnittstelle 270 empfangen wird, etc. sein.
  • In einer ersten Zeitdauer T51 kann der erste Kern CORE0 die erste Kachel TILE1-1 und die zweite Kachel TILE1-2 des ersten Bildes 660 verarbeiten und eine In-Loop-Filterung an einer Grenze der Kacheln TILE1-1 und TILE1-2 des ersten Bildes 660 für jeden Block basierend auf einem Verarbeitungsergebnis der ersten Kachel TILE1-1 durchführen. Für eine parallele Verarbeitung können zwei Kachelverzögerungen dem zweiten Kern CORE1 zugeordnet werden.
  • In einer zweiten Zeitdauer T52 kann der erste Kern CORE0 die dritte Kachel TILE1-3 und vierte Kachel TILE1-4 des ersten Bildes 660 verarbeiten, und der zweite Kern CORE1 kann die erste Kachel TILE2-1 und die zweite Kachel TILE2-2 des zweiten Bildes 662 verarbeiten. Die Verarbeitung der dritten Kachel TILE1-3 und der vierten Kachel TILE1-4 und die Verarbeitung der ersten Kachel TILE2-1 und der zweiten Kachel TILE2-2 können parallel in der zweiten Zeitdauer T52 durchgeführt werden. Wie in dem Fall, welcher obenstehend diskutiert ist, bezeichnet ”parallel” hier, dass es einen Überlapp in der Verarbeitung der Kacheln gibt. Das heißt, dass, während gepunktete Linien in den 4, 6, 8, 11, 14 verwendet sind, diese Linien nur zur Erleichterung der Beschreibung vorgesehen sind und nicht beabsichtigt sind, um vorzuschlagen, dass die Startzeiten oder die Endzeiten für eine Verarbeitung exakt zusammen fallen. In einigen beispielhaften Ausführungsformen jedoch können die Startzeiten exakt zusammen fallen und/oder die Endzeiten können exakt zusammen fallen.
  • Zusätzlich kann in der zweiten Zeitdauer T52 der erste Kern CORE0 eine In-Loop-Filterung an einer Grenze der Kacheln TILE1-1 und TILE1-3 für jeden Block basierend auf einem Verarbeitungsergebnis der ersten Kachel TILE1-1 in dem ersten Bild 660 durchführen.
  • In der zweiten Zeitdauer T52 kann der erste Kern CORE0 eine In-Loop-Filterung an einer Grenze der Kacheln TILE1-2 und TILE1-4 für jeden Block basierend auf einem Verarbeitungsergebnis der ersten Kachel TILE1-2 in dem ersten Bild 660 durchführen.
  • In der zweiten Zeitdauer T52 kann der erste Kern CORE0 eine In-Loop-Filterung an einer Grenze der Kacheln TILE1-3 und TILE1-4 für jeden Block basierend auf einem Verarbeitungsergebnis der ersten Kachel TILE1-3 in dem ersten Bild 660 durchführen.
  • In der zweiten Zeitdauer T52 kann der zweite Kern CORE1 eine In-Loop-Filterung an einer Grenze der Kacheln TILE2-1 und TILE2-2 des zweiten Bilds 662 für jeden Block basierend auf einem Verarbeitungsergebnis der ersten Kachel TILE2-1 durchführen.
  • Das heißt, dass die In-Loop-Filterung an den Grenzen der verarbeiteten Kacheln in der zweiten Zeitdauer T52 durchgeführt werden, sodass keine zusätzliche Zeit für eine In-Loop-Filterung verwendet wird.
  • In einer dritten Zeitdauer T53 können die Kerne CORE0 und CORE1 fortfahren, jeweilige Kacheln auf einem ähnlichen Wege wie in der Operation in der zweiten Zeitdauer T52 zu verarbeiten.
  • 15 ist ein Blockschaltbild, welches einen Hardwarecodec, welcher in 1 gezeigt ist, veranschaulicht.
  • Bezug nehmend auf die 1 und 15 kann der Hardwarecodec 230-1 eine Auswahlschaltung 701, einen Codierer 700, einen Decoder 800 und einen Speicher MEM1 aufweisen.
  • Die Auswahlschaltung 701 kann Bilddaten oder Videodaten INV zu dem Codierer 700 in Antwort auf ein Auswahlsignal SEL ausgeben, wenn das Auswahlsignal SEL einen ersten Pegel, beispielsweise einen niedrigen Pegel hat. Die Auswahlschaltung 701 kann einen codierten Bitstrom EB zu dem Decoder 800 in Antwort auf ein Auswahlsignal SEL ausgeben, wenn das Auswahlsignal einen zweiten Pegel, beispielsweise einen hohen Pegel hat.
  • Das Auswahlsignal SEL kann durch die CPU 210A vorgesehen sein. Die Bilddaten oder die Videodaten INV können durch die Kameraschnittstelle 250 vorgesehen sein und der codierte Bitstrom EB kann durch die Empfängerschnittstelle 270 oder die Speicherschnittstelle 240 vorgesehen sein.
  • Der Codierer 700 kann die Ausgabebilddaten oder Ausgabevideodaten INV von der Auswahleinheit 701 codieren und die codierten Bilddaten oder die codierten Videodaten zu dem Decoder 800 durch einen codierten Bitstrom ausgeben.
  • Der Decoder 800 kann den codierten Bitstrom EB, welcher von der Auswahlschaltung 701 ausgegeben wird, oder den codierten Bitstrom, welcher von dem Codierer 700 ausgegeben wird, decodieren und rekonstruierte Bilddaten oder rekonstruierte Videodaten RV erzeugen. Die rekonstruierten Bilddaten oder rekonstruierte Videodaten RV können auf der Anzeige 40 durch die Anzeigeschnittstelle 260 angezeigt werden.
  • In einigen beispielhaften Ausführungsformen können der Codierer 700 oder der Decoder 800 die rekonstruierten Bilddaten oder die rekonstruierten Videodaten RV in dem Speicher MEM1 speichern. Der Codierer 700 oder der Decodierer 800 können eine In-Loop-Filterung der gespeicherten rekonstruierten Bilddaten oder der gespeicherten rekonstruierten Videodaten in dem Speicher MEM1 durchführen.
  • In einigen beispielhaften Ausführungsformen kann jeder des Codierers 700 und des Decoders 800 eine In-Loop-Filterung aufweisen, welche gemäß einem H.264 Videocodierstandard oder HEVC Videocodierstandard oder einem beliebigen anderen Standard, welcher einen In-Loop-deblockierenden Filter unterstützt, definiert ist.
  • 16 ist ein Blockschaltbild eines Codierers, welcher in 15 gezeigt ist.
  • Bezug nehmend auf die 15 und 16 kann der Codierer 700 einen Vorhersager 710, einen Subtrahierer 720, einen Umwandler 730, einen Quantisierer 740, einen Entropiecodierer 750, einen inversen Quantisierer 760, einen inversen Umwandler 770, einen Addierer 780 und einen In-Loop-Filter 790 aufweisen.
  • Der Vorhersager 710 kann einen Bewegungsabschätzer 712 und einen Bewegungskompensator 714 aufweisen. Der Vorhersager 710 kann einen gegenwärtigen Block vorhersagen, einen vorhergesagten Block erzeugen und den vorhergesagten Block ausgeben. Insbesondere kann der Vorhersager 710 einen Pixelwert von jedem von Pixeln in dem gegenwärtigen Block vorhersagen und einen vorhergesagten Block erzeugen, welcher den vorgesagten Pixelwert von jedem der Pixel aufweist. Wenn eine Inter-Vorhersage durchgeführt wird, kann der Vorhersager 710 den Bewegungsabschätzer 712 und den Bewegungskompensator 714 aufweisen. Der Bewegungsabschätzer 712 kann ein Bewegungsvektorabschätzer genannt werden.
  • Der Bewegungsabschätzer 712 oder der Bewegungsvektorabschätzer 712 können einen Bewegungsvektor eines gegenwärtigen Blocks basierend auf wenigstens einem Referenzbild durch einen Block, welcher einem Blockmodus oder einem vordefinierten Blockmodus des gegenwärtigen Blocks entspricht, abschätzen, und den Bewegungsvektor des gegenwärtigen Blocks bestimmen. Eine Größe des Blocks kann 16 × 16, 16 × 8, 8 × 16, 8 × 8, 8 × 4, 4 × 8 oder 4 × 4 sein.
  • Der Bewegungskompensator 714 kann einen vorhergesagten Block basierend auf dem Bewegungsabschätzvektor des gegenwärtigen Blocks, welcher von dem Bewegungsabschätzer 712 ausgegeben wird, erzeugen, und den vorhergesagten Block ausgeben. Das heißt, dass der Bewegungskompensator 714 einen Block in dem Referenzbild, welches durch den gegenwärtigen Block adressiert ist, als einen vorhergesagten Block ausgeben kann.
  • Der Subtrahierer 720 kann den vorhergesagten Block von dem gegenwärtigen Block, welcher Videodaten INV hat, subtrahieren und einen verbleibenden Block erzeugen. Der Subtrahierer 720 kann eine Differenz zwischen jedem von Pixeln des gegenwärtigen Blocks und jedem von Pixeln des vorhergesagten Blocks berechnen und den verbleibenden Block, welcher verbleibende Signale aufweist, erzeugen.
  • Der Umwandler 730 kann die verbleibenden Signale von einer Zeitdomäne in eine Frequenzdomäne umwandeln und der Quantisierer 740 kann eine Ausgabe des Umwandlers 730 quantisieren und den quantisierten verbleibenden Block ausgeben. Der Umwandler 730 kann eine diskrete Kosinus-Transformation DCT (= Discrete Cosine Transform = diskrete Kosinus-Transformation) zum Transformieren beziehungsweise Umwandeln des verbleibenden Signals in die Frequenzdomain verwenden. Die verbleibenden Signale, welche in die Frequenzdomain umgewandelt sind, können ein Transformationskoeffizient sein.
  • Der Entropiecodierer 750 kann den quantisierten verbleibenden Block, welcher von dem Quantisierer 740 ausgegeben wird, codieren und einen codierten Bitstrom ausgeben.
  • Der inverse Umwandler 770 kann eine inverse Transformation beziehungsweise Umwandlung von einem inversen quantisierten verbleibenden Block durchführen und einen rekonstruierten verbleibenden Block erzeugen.
  • Der Addierer 780 kann den vorhergesagten Block von dem Vorhersager 710 und den rekonstruierten verbleibenden Block, welcher von dem inversen Umwandler 770 ausgegeben wird, addieren, und den gegenwärtigen Block rekonstruieren.
  • Der In-Loop-Filter 790 kann eine In-Loop-Filterung des rekonstruierten gegenwärtigen Blocks durchführen, und den gefilterten gegenwärtigen Block an den Vorhersager 710 ausgeben.
  • 17 ist ein Blockschaltbild eines Decoders, welcher in 15 gezeigt ist.
  • Bezug nehmend auf die 15 bis 17 kann der Decoder 800A einen Entropiedecoder 810A, einen inversen Quantisierer 820, einen inversen Umwandler 830, einen Addierer 850 und einen In-Loop-Filter 860A aufweisen.
  • Der Entropiedecoder 810A kann einen empfangenen codierten Bitstrom EBS oder einen codierten Bitstrom, welcher von dem Codierer 700 ausgegeben wird, empfangen, und einen quantisierten verbleibenden Block erzeugen.
  • Der inverse Quantisierer 820 kann eine inverse Quantisierung des quantisierten verbleibenden Blocks, welcher von dem Entropiedecoder 810A ausgegeben wird, durchführen, und einen inversen quantisierten verbleibenden Block erzeugen.
  • Der inverse Umwandler 830 kann eine inverse Umwandlung des inversen quantisierten verbleibenden Blocks durchführen, und einen rekonstruierten verbleibenden Block erzeugen.
  • Der Bewegungskompensator 840 kann einen gegenwärtigen Block basierend auf einem Bewegungsvektor vorhersagen, welcher in dem rekonstruierten Block enthalten ist, welcher von dem In-Loop-Filter 860A ausgegeben wird, und den vorhergesagten Block ausgeben.
  • Der Addierer 850 kann den gegenwärtigen Block durch ein Addieren des rekonstruierten verbleibenden Blocks, welcher von dem In-Loop-Filter 860 ausgegeben wird, und des vorhergesagten Blocks, welcher von dem Bewegungskompensator 840A ausgegeben wird, rekonstruieren, und den rekonstruierten gegenwärtigen Block ausgeben.
  • Der In-Loop-Filter 860A kann eine In-Loop-Filterung des rekonstruierten gegenwärtigen Blocks durchführen und den rekonstruierten gegenwärtigen Block RV ausgeben. Das heißt, dass der In-Loop-Filter 860A die rekonstruierten Videodaten RV durch einen Block ausgeben kann.
  • In einigen beispielhaften Ausführungsformen können die In-Loop-Filter 790 und 860A jeweils einen deblockierenden Filter und einen Sample Adaptiv Offset(SAO)-Filter aufweisen.
  • Die 18 und 22 sind Konzeptdiagramme, welche ein Verfahren zum Verarbeiten von Videodaten durch ein Modifizieren einer Bewegungskompensationsinformation gemäß beispielhaften Ausführungsformen veranschaulichen.
  • Bezug nehmend auf die 3, 4, 7, 8 und 18 bis 22 kann jedes Bild 610, 612, 614, 630, 632 oder 634 einen unterteilten Bereich aufweisen, welcher unabhängig codiert oder decodiert werden kann. Der unterteilte Bereich kann wenigstens eine Scheibe aufweisen. Es wird festgehalten, dass in der folgenden Beschreibung der 18 bis 22 nicht alle Bilder und Scheiben für die Kürze beschrieben werden werden. Beispielsweise sind Bilder 616 (3), 636 und 638 (7) und die Scheibe SLICE1-3 (7) hier nicht explizit beschrieben. Darüber hinaus wird das Verfahren zum Verarbeiten von Videodaten, welches in den 18 bis 22 veranschaulicht ist, hinsichtlich zweier Scheiben beschrieben. Das Verfahren ist jedoch auf beispielhafte Ausführungsformen, welche sich auf Kacheln beziehen, anwendbar.
  • Ein erstes Bild 610 oder 630 kann eine erste Scheibe SLICE1-1 und eine zweite Scheibe SLICE1-2 aufweisen, ein zweites Bild 612 und 632 kann eine dritte Scheibe SLICE2-1 und eine vierte Scheibe SLICE2-2 aufweisen, und ein drittes Bild 614 und 634 kann eine fünfte Scheibe SLICE3-1 und eine sechste Scheibe SLICE3-2 aufweisen.
  • Wie in 18 veranschaulicht ist, kann jede der fünften Scheibe SLICE3-1, der dritten Scheibe SLICE2-1 und der vierten Scheibe SLICE2-2 jeweils einen fünften Makroblock M5 aufweisen, einen dritten Makroblock M3 und einen vierten Makroblock M4.
  • Wenn das dritte Bild 614 oder 634 durch den ersten Kern CORE0 (in 4) oder den dritten Kern CORE2 (in 8) decodiert wird, kann der Decoder 800 oder 800A eine erste Bewegungskompensationsinformation beziehungsweise erste Bewegungskompensationsinformationen aus einem codierten Bitstrom, welcher dem fünften Makroblock M5 entspricht, extrahieren. Die erste Bewegungskompensation kann einen Referenzbildindex und/oder eine Referenzkoordinate aufweisen. Die erste Bewegungskompensationsinformation kann eine Referenzinformation beziehungsweise Referenzinformationen, wie beispielsweise einen Referenzindex oder einen Bewegungsvektor aufweisen, welcher eine Bewegungsverarbeitungsstandardspezifikation wie beispielsweise H.264 oder HEVC erfüllt.
  • Bezug nehmend auf 18 kann, wenn die erste Bewegungskompensationsinformation des fünften Makroblocks M5 in der fünften Scheibe SLICE3-1 sich auf eine Koordinate in der vierten Scheibe SLICE2-2 des zweiten Bildes 612 bezieht, welche parallel mit der fünften Scheibe SLICE3-1 decodiert wird, eine Decodieroperation der vierten Scheibe SLICE2-2 nicht beendet sein. Demnach kann das Datenverarbeitungssystem 100A die erste Kompensationsinformation beispielsweise eine Referenzkoordinate modifizieren, um eine Decodierabhängigkeit zwischen dem vierten Makroblock M4 in der vierten Scheibe SLICE2-2 und dem fünften Makroblock M5 in der fünften Scheibe SLICE3-1 zu vermeiden.
  • Beispielsweise kann das Datenverarbeitungssystem 100A einen X-Achsenwert modifizieren, während es einen Y-Achsenwert in der Referenzkoordinate der ersten Bewegungskompensationsinformation aufrecht erhält. Das heißt, dass das Datenverarbeitungssystem 100A die Referenzkoordinate modifizieren kann, um sich auf den dritten Makroblock M3 in dem Boden der dritten Scheibe SLICE2-1 zum Decodieren des fünften Makroblocks M5 zu beziehen. Demnach kann das Datenverarbeitungssystem 100A die fünfte Scheibe SLICE3-1 decodieren durch ein Bezugnehmen auf den dritten Makroblock M3 in der dritten Scheibe SLICE2-1 anstelle des vierten Makroblocks M4 in der vierten Scheibe SLICE2-2.
  • Durch ein Modifizieren der Bewegungskompensationsinformation zum Decodieren eines Makroblocks kann es einen Fehler beim Decodierergebnis des Makroblocks geben. Ein Verfahren zum Verringern des Decodierfehlers, welcher durch ein Modifizieren der Bewegungskompensationsinformation verursacht wird, wird später unter Bezugnahme auf die 23A und 23B beschrieben werden.
  • Bezug nehmend auf 19 kann, wie in 18 beschrieben ist, wenn eine erste Bewegungskompensationsinformation des fünften Makroblocks M5 in der fünften Scheibe SLICE3-1 sich auf eine Koordinate in der vierten Scheibe SLICE2-2 des zweiten Bildes 612 bezieht, welches parallel mit der fünften Scheibe SLICE3-1 decodiert wird, eine Decodieroperation der vierten Scheibe SLICE2-2 nicht beendet sein. Demnach kann das Datenverarbeitungssystem 100A die erste Kompensationsinformation, beispielsweise einen Referenzbildindex, modifizieren, um eine Decodierabhängigkeit zwischen dem vierten Makroblock M4 in der vierten Scheibe SLICE2-2 und dem fünften Makroblock M5 in der fünften Scheibe SLICE3-1 zu vermeiden.
  • Beispielsweise kann das Datenverarbeitungssystem 100A den Referenzbildindex der ersten Bewegungskompensationsinformation modifizieren, während er eine Referenzkoordinate der ersten Bewegungskompensationsinformation aufrecht erhält. Das heißt, dass das Datenverarbeitungssystem 100A den Referenzbildindex modifizieren kann, um auf den zweiten Makroblock M2 in der zweiten Scheibe SLICE1-2 Bezug zu nehmen, für ein Decodieren des fünften Makroblocks M5, wie in 19 gezeigt ist. Demnach kann das Datenverarbeitungssystem 100A die fünfte Scheibe SLICE3-1 durch ein Bezugnehmen auf den zweiten Makroblock M2 in der zweiten Scheibe SLICE1-2 anstelle des vierten Makroblocks M4 in der vierten Scheibe SLICE2-2 decodieren.
  • Bezug nehmend auf 20 kann das dritte Bild 614 ein Bild sein, welches vor dem zweiten Bild 612 angezeigt wird, und nach dem zweiten Bild 612 decodiert wird. In einem solchen Fall kann sich eine erste Bewegungskompensationsinformation des fünften Makroblocks M5 in der fünften Scheibe SLICE3-1 auf das erste Bild 610 und das zweite Bild 612 auf einem bidirektionalen Wege als Referenzbilder beziehen. Wenn der fünfte Makroblock M5 in der fünften Scheibe SLICE3-1 sich auf den ersten Makroblock M1 in der ersten Scheibe SLICE1-1 und den vierten Makroblock M4 in dem vierten Makroblock in der vierten Scheibe SLICE2-2 bezieht, kann eine Decodieroperation der vierten Scheibe SLICE2-2 nicht beendet sein. Demnach kann das Datenverarbeitungssystem 100A die erste Kompensationsinformation beispielsweise Referenzbildindizes modifizieren, um eine Decodierabhängigkeit zwischen dem vierten Makroblock M4 in der vierten Scheibe SLICE2-2 und dem fünften Makroblock M5 in der fünften Scheibe SLICE3-1 zu vermeiden.
  • Beispielsweise kann das Datenverarbeitungssystem 100A die Referenzbildindizes der ersten Bewegungskompensationsinformation modifizieren. Das heißt, dass das Datenverarbeitungssystem 100A die erste Kompensationsinformation von der bidirektionalen Referenz zu einer unidirektionalen Referenz modifizieren kann. Demnach kann das Datenverarbeitungssystem 100A den fünften Makroblock M5 in der fünften Scheibe SLICE3-1 durch ein Bezugnehmen auf nur den ersten Makroblock M1 in der ersten Scheibe SLICE1-1 decodieren ohne eine Bezugnahme auf den vierten Makroblock M4 in der vierten Scheibe SLICE2-2.
  • Bezug nehmend auf 21 kann das dritte Bild 614 ein Bild sein, welches vor dem zweiten Bild 612 angezeigt wird, und nach dem zweiten Bild 612 decodiert wird. Die erste Bewegungskompensationsinformation des fünften Makroblocks M5 in der fünften Scheibe SLICE3-1 kann sich auf das erste Bild 610 und das zweite Bild 612 in einem bidirektionalen Wege als Referenzbilder beziehen. Wenn der fünfte Makroblock M5 in der fünften Scheibe SLICE3-1 sich auf den ersten Makroblock M1 in der ersten Scheibe SLICE1-1 und den vierten Makroblock M4 in dem vierten Makroblock in der vierten Scheibe SLICE2-2 bezieht, kann eine Decodieroperation der vierten Scheibe SLICE2-2 nicht beendet sein. Demnach kann das Datenverarbeitungssystem 100A die erste Kompensationsinformation beispielsweise Referenzbildindizes und eine Referenzkoordinate modifizieren, um eine Decodierabhängigkeit zwischen dem vierten Makroblock M4 in der vierten Scheibe SLICE2-2 und dem fünften Makroblock M5 in der fünften Scheibe SLICE3-1 zu vermeiden.
  • Beispielsweise kann das Datenverarbeitungssystem 100A die Referenzbildindizes und die Referenzkoordinate der ersten Bewegungskompensationsinformation modifizieren, um sich auf den dritten Makroblock M3 in der dritten Scheibe SLICE2-1 (1) oder den zweiten Makroblock M2 in der zweiten Scheibe SLICE1-2 (2) zu beziehen. Das heißt, dass das Datenverarbeitungssystem 100A die erste Kompensationsinformation durch ein Aufrechterhalten der bidirektionalen Referenz modifizieren kann. Demnach kann das Datenverarbeitungssystem 100A den fünften Makroblock M5 in der fünften Scheibe SLICE3-1 durch ein Bezugnehmen auf den ersten Makroblock M1 in der ersten Scheibe SLICE1-1 und einen des dritten Makroblocks M3 in der dritten Scheibe SLICE2-1 oder des zweiten Makroblocks M2 in der zweiten Scheibe SLICE1-2 decodieren.
  • Bezug nehmend auf 22 kann, wenn die erste Bewegungskompensationsinformation des fünften Makroblocks M5 in der fünften Scheibe SLICE3-1 sich auf den vierten Block M4 in dem vierten Makroblock in der vierten Scheibe SLICE2-2 bezieht, eine Decodieroperation der vierten Scheibe SLICE2-2 nicht beendet sein. Demnach kann das Datenverarbeitungssystem 100A die erste Kompensationsinformation beispielsweise einen Referenzbildindex und eine Referenzkoordinate modifizieren; um eine Decodierabhängigkeit zwischen dem vierten Makroblock M4 in der vierten Scheibe SLICE2-2 und dem fünften Makroblock M5 in der fünften Scheibe SLICE3-1 zu vermeiden.
  • Beispielsweise kann das Datenverarbeitungssystem 100A den Referenzbildindex der ersten Bewegungskompensationsinformation mit derselben Referenzkoordinate modifizieren, um sich auf den zweiten Makroblock M2 in der zweiten Scheibe SLICE1-2 und den dritten Makroblock M3 in der dritten Scheibe SLICE2-1 zu beziehen. Das heißt, dass das Datenverarbeitungssystem 100A die erste Kompensationsinformation von der unidirektionalen Referenz zu einer bidirektionalen Referenz modifizieren kann. Demnach kann das Datenverarbeitungssystem 100A den fünften Makroblock M5 in der fünften Scheibe SLICE3-1 durch ein Bezugnehmen auf den zweiten Makroblock M2 in der zweiten Scheibe SLICE1-2 und den dritten Makroblock M3 in der dritten Scheibe SLICE2-1 decodieren.
  • Zum Zweck des einfachen Verständnisses beschreiben die 18 bis 22, dass der fünfte Makroblock M5 sich auf andere Makroblöcke beispielsweise M1, M2 oder M3 etc. bezieht. Ein Referenzblock jedoch (beispielsweise M1, M2 oder M3 etc.), auf welchen durch den fünften Makroblock M5 Bezug genommen wird, kann ein beliebiger Block sein unterschiedlich von einen Makroblock gemäß einem Videocodierstandard, und eine Blockgröße des Referenzblocks (beispielsweise M1, M2 oder M3 etc.), auf welche durch den fünften Block M5 Bezug genommen wird, kann gleich oder unterschiedlich von der Blockgröße des fünften Blocks M5 sein.
  • Beispielsweise kann, wenn die Blockgröße des fünften Makroblocks M5 16 mal 16 ist, die Blockgröße eines Referenzblocks (beispielsweise M1, M2 oder M3 etc.), auf welchen durch den fünften Makroblock M5 Bezug genommen wird, 4 mal 4 sein. Demnach muss der Referenzblock, auf welchen durch den fünften Makroblock M5 Bezug genommen wird, nicht immer ein Makroblock sein, welcher die gleiche Blockgröße hat, und er kann ein Unterblock kleiner als der Makroblock oder eine beliebige Kombination von Unterblöcken sein. Beispielsweise kann unter der Annahme in 18, dass die Blockgröße des fünften Makroblocks M5 16 × 16 ist, die Bewegungskompensationsinformation des fünften Makroblocks M5 modifiziert werden, um sich auf den dritten Makroblock M3 zu beziehen, dessen Größe 4 × 4 ist.
  • Zusätzlich kann die Bewegungskompensationsinformation eines Makroblocks einer Einheit eines Makroblocks oder einer Einheit eines Unterblocks kleiner als der Einheit des Makroblocks entsprechen. Demnach kann eine Bewegungskompensationsinformation, welche einem Makroblock entspricht, eine Mehrzahl von Bewegungskompensationsinformationen aufweisen, welche einer Mehrzahl von Unterblöcken, welche in dem Makroblock enthalten sind, entsprechen.
  • Wie in dem Verfahren zum Verarbeiten von Videodaten durch ein Modifizieren einer Bewegungskompensationsinformation in den 18 bis 22 beschrieben, kann der unterteilte Bereich in jedem Bild 610, 612, 614, 630, 632 oder 634 wenigstens eine Scheibe aufweisen. Wie jedoch obenstehend diskutiert, kann das Verfahren auch auf Kacheln angewandt werden. Im Fall, dass der unterteilte Bereich eine Mehrzahl von Kacheln aufweist, kann das Datenverarbeitungssystem 100A eine Bewegungskompensationsinformation modifizieren durch ein Ändern wenigstens eines eines X-Achsenwertes und eines Y-Achsenwertes einer Referenzkoordinate, wenn die Referenzkoordinate in einem Referenzbild gemäß einem unterteilten Format der Mehrzahl von Kacheln geändert wird.
  • Bezug nehmend auf die 18 bis 22 kann das Verfahren zum Verarbeiten von Videodaten durch das Datenverarbeitungssystem 100A die Bewegungskompensationsinformation gemäß einer Anzahl von Referenzbildern, einem Wert eines Bewegungsvektors und/oder einem Grenzübereinstimmungsfehler-Abschätzwert modifizieren. Der Grenzübereinstimmungsfehler-Abschätzwert bezeichnet eine Differenz in den Pixelwerten an der Grenze zwischen benachbarten decodierten Blöcken vor eine Deblockieroperation.
  • Beispielsweise kann das Datenverarbeitungssystem 100A die Bewegungskompensationsinformation eines gegenwärtigen Decodierblocks modifizieren, welcher zum Decodieren ausgewählt ist, um Bezug zu nehmen auf das jüngste vorangehende Bild für ein Referenzbild, wenn es eine Mehrzahl von Referenzbilderkandidaten gibt. Andererseits kann das Datenverarbeitungssystem 100A die Bewegungskompensationsinformation des gegenwärtigen Decodierblocks modifizieren, um Bezug zu nehmen auf ein Referenzbild oder eine Referenzkoordinate (oder Bewegungsvektor), welche(s) den Bewegungsvektor am kleinsten machen kann. Alternativ kann, wenn auf eine Mehrzahl von Makroblock- oder Unterblock-Kandidaten für ein Decodieren des gegenwärtigen Decodierblocks Bezug genommen werden kann, das Datenverarbeitungssystem 100A die Bewegungskompensationsinformation des gegenwärtigen Decodierblocks modifizieren, um Bezug zu nehmen auf einen der Makroblock- oder der Unterblock-Kandidaten, welcher eine minimale Differenz in den Pixelwerten an der Grenze zwischen benachbarten decodierten Makroblöcke oder benachbarten decodierten Unterblöcken vor eine Deblockieroperation hat. Hier kann der Pixelwert die Pixeldaten bezeichnen und kann ein Format gemäß einem von Datenformaten wie beispielsweise RGB, YUV oder YcbCr etc. haben.
  • Das Verfahren zum Verarbeiten von Videodaten, welches in den 18 bis 22 beschrieben ist, kann Fehler in Pixelwerten eines konstruierten Makroblocks verursachen, da die Modifikation eines Bewegungskompensationsvektors eines gegenwärtigen Decodierblocks ein Referenzbild oder eine Referenzkoordinate (oder Bewegungsvektor), welche durch ein Codieren der Videodaten definiert sind, verursachen kann, und demnach den gegenwärtigen Decodierblock veranlasst, Bezug zu nehmen auf einen unterschiedlichen Makroblock anders als einen Original-Makroblock, welcher durch eine Original-Bewegungskompensationsinformation definiert wird, vor dem Erzeugen einer modifizierten Bewegungskompensationsinformation. Demnach können die Pixel in dem konstruierten Makroblock Pixelfehler auch in dem Fall haben, in dem das Datenverarbeitungssystem einen Makroblock, welcher ähnliche Pixelwerte hat, einem Originalreferenz-Makroblock zuweist.
  • Die Fehler in den Pixelwerten können eine unnatürliche Grenzanzeige an den Grenzen zwischen rekonstruierten Blöcken verursachen. Hier können die Fehler in Pixelwerten in dem rekonstruierten Block über andere Blöcke benachbart zu dem rekonstruierten Block durch ein Durchführen einer In-Loop-Filterung an den Blockgrenzen verteilt werden.
  • Gemäß einer beispielhaften Ausführungsform kann es den Fehlern in Pixelwerten der rekonstruierten Blöcke, welche durch ein Modifizieren der Bewegungskompensationsinformation des rekonstruierten Blocks erzeugt werden, verboten sein, sich über andere benachbarte Blöcke an den Grenzen der rekonstruierten Blöcke zu verteilen. Die teilweise In-Loop-Filterung, welche die unvorteilhafte Verteilung von Fehlern an Grenzen adressiert, wird im Detail später unter Bezugnahme auf die 23A und 23B beschrieben werden.
  • Obwohl das Verfahren zum Verarbeiten von Videodaten durch ein Modifizieren einer Bewegungskompensationsinformation, welches in den 18 bis 22 beschrieben ist, veranschaulicht, dass jedes Bild 610, 612 und 614 eine Mehrzahl von Scheiben aufweist, von welchen jede eine Verarbeitungseinheit ist, kann das Verfahren zum Verarbeiten von Videodaten auf ein Bild 610, 612 und 614 angewandt werden, welches nur einen unterteilten Bereich hat und insbesondere nur eine Scheibe. Zusätzlich kann das Verfahren zum Verarbeiten von Videodaten durch ein Modifizieren einer Bewegungskompensationsinformation verwendet werden, wenn eine Mehrzahl von unterteilten Bereichen in einem Bild, beispielsweise Scheiben oder Kacheln durch eine Mehrzahl von Kernen decodiert wird.
  • Beispielsweise kann das Datenverarbeitungssystem 100A eine erste Bewegungskompensationsinformation von gegenwärtigen Decodierblöcken in einem Bild modifizieren, welches nur eine Scheibe hat, um den gegenwärtigen Decodierblock zu veranlassen, sich auf einen Bereich in einem Referenzbild zu beziehen, in dem eine Decodieroperation beendet ist, auch in dem Fall, in welchem der gesamte Bereich des Referenzbildes noch nicht decodiert ist, oder um die gegenwärtigen Decodierblöcke zu veranlassen, sich auf ein Bild zu beziehen, dessen Decodieren beendet ist.
  • Die 23A und 23B sind Konzeptdiagramme, welche eine teilweise In-Loop-Filterung gemäß einer beispielhaften Ausführungsform veranschaulichen.
  • 23A ist ein Konzeptdiagramm, welches eine In-Loop-Filterung veranschaulicht, welche zwischen benachbarten Blöcken durchgeführt wird. Ein Makroblock M1 kann eine In-Loop-Filterung durchführen durch ein Bezugnehmen auf Pixelwerte der benachbarten Blöcke an den Blockgrenzen, wie durch die doppelköpfigen Pfeile in 23A veranschaulicht ist.
  • 23B ist ein Konzeptdiagramm, welches eine teilweise In-Loop-Filterung veranschaulicht, welche für einen rekonstruierten Block durch ein Modifizieren einer ersten Bewegungskompensationsinformation des rekonstruierten Blocks durchgeführt wird. Bezug nehmend auf 23B kann ein Verfahren für eine Fehlerkompensation gemäß einer beispielhaften Ausführungsform eine In-Loop-Filterung für den gegenwärtigen Makroblock M1 durchführen, jedoch eine In-Loop-Filterung für benachbarte Makroblöcke des gegenwärtigen Makroblocks M1 auslassen. Die In-Loop-Filterung für den gegenwärtigen Makroblock M1 kann nur für Pixel an den Grenzen des gegenwärtigen Makroblocks M1 durchgeführt werden. Die beschränkte beziehungsweise eingeschränkte In-Loop-Filterung, welche obenstehend beschrieben ist, kann ”teilweise In-Loop-Filterung” genannt werden. Die teilweise In-Loop-Filterung kann eine In-Loop-Filterung für nur einen Teil der Grenzen des gegenwärtigen Makroblocks M1 durchführen.
  • Beispielsweise kann das Datenverarbeitungssystem 100A verhindern, dass die Fehler von Pixelwerten eines gegenwärtigen Decodierblocks M1 über benachbarte Blöcke an den Grenzen des gegenwärtigen Decodierblocks M1 verbreitet beziehungsweise verteilt werden, durch ein Durchführen einer In-Loop-Filterung für nur interne Pixel an der Grenze des gegenwärtigen Decodierblocks M1. Das Datenverarbeitungssystem 100A kann einen Deblockiereffekt an den Grenzen des gegenwärtigen Decodierblocks M1 durchführen durch ein Durchführen einer teilweisen In-Loop-Filterung gemäß dem vorliegenden erfinderischen Konzept.
  • Ein In-Loop-Filter, welcher eine teilweise In-Loop-Filterung durchführen kann, kann eine teilweise In-Loop-Filterung, welche in 23B beschrieben ist, durchführen, wenn ein empfangenes erstes Steuersignal aktiviert ist, und kann eine normale In-Loop-Filterung, welche in 23A beschrieben ist, durchführen, wenn das empfangene erste Steuersignal deaktiviert ist.
  • 24 ist ein Blockschaltbild, welches einen Decoder gemäß einer beispielhaften Ausführungsform veranschaulicht. Bezug nehmend auf die 24 kann ein Decoder 800B einen Entropiedecoder 81OB, einen inversen Quantisierer 820, einen inversen Umwandler 830, einen Bewegungskompensator 840B, einen Addierer 850 und einen In-Loop-Filter 860B aufweisen, welcher eine teilweise In-Loop-Filterung durchführt. Der Decoder 800B kann in wenigstens einem der Hardwarecodecs 230-1 bis 230-N, welche in 1 veranschaulicht sind, ausgeführt sein.
  • Wie in den 18 bis 23B beschrieben ist, kann der Decoder 800B ein erstes Steuersignal IIL für den In-Loop-Filter 860B vorsehen, wenn der Decoder 800B die Bewegungskompensationsinformation eines gegenwärtigen Decodierblocks modifiziert. Wie obenstehend diskutiert ist, kann ein Zustand des ersten Steuersignals IIL eine teilweise In-Loop-Filterung oder eine normale In-Loop-Filterung bestimmen.
  • Das erste Steuersignal kann von dem Entropiedecoder 81 OB wie in 24 gezeigt oder von dem Bewegungskompensator 840B vorgesehen sein. In solch einem Fall können der Entropiedecoder 81OB oder der Bewegungskompensator 840B einen Bewegungskompensations-Informationsmodifizierer 870 aufweisen. Beispielsweise kann, wenn der Decoder 800B einen codierten Bitstrom empfängt, der Entropiedecoder 810B eine erste Bewegungskompensationsinformation für ein Decodieren eines Makroblocks von dem empfangenen codierten Bitstrom extrahieren. Die erste Bewegungskompensationsinformation kann ein Referenzbild und eine Referenzkoordinate des Decodiermakroblocks oder von Unterblöcken des Decodiermakroblocks aufweisen.
  • Der Entropiedecoder 810B kann eine Decodiervorgeschichtsinformation beziehungsweise Decodiervorgeschichtsinformationen erzeugen, welche anzeigt, ob eine Decodieroperation eines Bildes, einer Scheibe oder einer Kachel, welche in dem codierten Bitstrom enthalten ist, beendet ist oder nicht. Die Decodiervorgeschichtsinformation kann in einem Puffer oder in einem Cachespeicher in dem Entropiedecoder 810B oder dem Decoder 800B gespeichert werden. Die Decodiervorgeschichtsinformation kann digitale Bits aufweisen, von welchen jedes einem Decodierergebnis des Bildes, der Scheibe oder der Kachel durch den Entropiedecoder 810 oder dem Decoder 800B entspricht.
  • Der Entropiedecoder 810B kann bestimmen, ob die erste Bewegungskompensationsinformation modifiziert werden sollte zum Erhöhen einer parallelen Verarbeitungsleistungsfähigkeit basierend auf der ersten Bewegungskompensationsinformation und der Decodiervorgeschichtsinformation, und kann ein erstes Steuersignal IIL für den In-Loop-Filter 860B vorsehen, wenn die erste Bewegungskompensationsinformation gemäß dem Bestimmungsergebnis modifiziert ist.
  • Die modifizierte Bewegungskompensationsinformation und das erste Steuersignal IIL können durch den Bewegungskompensator 840B anstelle des Entropiedecoders 810B vorgesehen werden. Hierin nachstehend werden zur Zweckmäßigkeit in der Erklärung die doppelte Erklärung derselben Struktur und Operationen wie diejenige gemäß den oben beschriebenen beispielhaften Ausführungsformen ausgelassen, und eine Erklärung wird getätigt über unterschiedliche Punkte zwischen den beispielhaften Ausführungsformen.
  • Die Decodiervorgeschichtsinformation kann in den Speichern MEM1 bis MEMn in 1 gespeichert werden und durch die Hardwarecodecs 230-1 bis 230-N gemeinsam verwendet werden oder kann in einem Speicher des Datenverarbeitungssystems 100A gespeichert werden.
  • 25 ist ein Blockschaltbild, welches ein Datenverarbeitungssystem gemäß einer beispielhaften Ausführungsform veranschaulicht. Bezug nehmend auf 25 kann eine Datenverarbeitungssystem 900 einen ersten Kern 230-1, einen zweiten Kern 230-2, eine Decodiervorgeschichts-Speichervorrichtung 910 und einen Bewegungskompensations-Informationsmodifizierer 920 aufweisen.
  • Die Decodiervorgeschichts-Speichervorrichtung 910 und der Bewegungskompensations-Informationsmodifizierer 920 können durch jeden des ersten und des zweiten Kerns 230-1 und 230-2 gemeinsam verwendet werden, während der Decoder 800B in 24 den Decodiervorgeschichts-Speicher und den Bewegungskompensations-Informationsmodifizierer 870 aufweist, welche unabhängig vorgesehen sind.
  • Die Decodiervorgeschichts-Speichervorrichtung 910 kann Decodiervorgeschichtsinformationen speichern, welche anzeigen, ob das Decodieren eines Bildes, einer Scheibe und/oder einer Kachel, welche durch jeden des ersten und des zweiten Kerns 230-1 und 230-2 decodiert werden, beendet ist oder nicht.
  • Der Bewegungskompensations-Informationsmodifizierer 920 kann Bewegungskompensationsinformationen eines gegenwärtigen Decodiermakroblocks von jedem des ersten und des zweiten Kerns 230-1 und 230-2 empfangen, und kann ein erstes Steuersignal IIL für eine teilweise In-Loop-Filterung und modifizierte Bewegungskompensationsinformationen für jeden des ersten und des zweiten Kerns 230-1 und 230-2 vorsehen, basierend auf den empfangenen Bewegungskompensationsinformationen und den Decodiervorgeschichtsinformationen, welche in der Decodiervorgeschichts-Speichervorrichtung 910 gespeichert sind.
  • Obwohl 25 zwei Kerne 230-1 und 230-2 veranschaulicht, können die Decodiervorgeschichts-Speichervorrichtung 910 und der Bewegungskompensations-Informationsmodifizierer 920 durch mehr als zwei Kerne geteilt beziehungsweise gemeinsam verwendet werden.
  • In einigen beispielhaften Ausführungsformen kann das Datenverarbeitungssystem 900 weiterhin einen In-Loop-Filter 930 aufweisen, welcher durch den ersten und zweiten Kern 230-1 und 230-2 gemeinsam verwendet wird. Wenn der erste und der zweite Kern 230-1 und 230-2 Daten eines decodierten Makroblocks für eine In-Loop-Filterung zu dem In-Loop-Filter 930 übertragen, kann der In-Loop-Filter 930 Daten des Makroblocks, welche durch den In-Loop-Filter 930 gefiltert sind, zu dem ersten und dem zweiten Kern 230-1 und 230-2 übertragen.
  • Hier kann der In-Loop-Filter 930 eine teilweise In-Loop-Filterung eines gegenwärtigen Decodierblocks in Antwort auf das erste Steuersignal IIL, welches von dem Bewegungskompensations-Informationsmodifizierer 920 empfangen wird, durchführen. Wenn das erste Steuersignal IIL aktiviert ist, kann der In-Loop-Filter 930 die teilweise In-Loop-Filterung des gegenwärtigen Decodierblocks durchführen und Daten, welche dem Makroblock entsprechen, welcher durch die teilweise In-Loop-Filterung gefiltert ist, zu dem ersten und dem zweiten Kern 230-1 und 230-2 übertragen. Wenn das erste Steuersignal IIL deaktiviert ist, kann der In-Loop-Filter 930 eine normale In-Loop-Filterung durchführen.
  • 26 ist ein Datenformat, welches einen codierten Bitstrom veranschaulicht, welcher Kompensationsinformationen gemäß beispielhaften Ausführungsformen aufweist. Bezug nehmend auf 26 kann ein Abschnitt eines codierten Bitstroms 1000 Bewegungskompensationsinformationen 1010 zugeordnet werden, welche einen Blocktyp 1010-1, einen Referenzbildindex 1010-2 und eine Referenz-X-Koordinate 1010-3 und eine Referenz-Y-Koordinate 1010-4 aufweisen. In einigen beispielhaften Ausführungsformen kann der Blocktyp 1010-1 ausgelassen werden.
  • Wie in den 20 bis 22 beschrieben ist, kann, wenn ein Decodierblock sich auf mehr als ein Bild bidirektional bezieht, die Bewegungskompensationsinformation 1010 den Blocktyp 1010-1 aufweisen, welcher einen Typ des Makroblocks anzeigt, einen Referenzbildindex 1010-2 gemäß dem Blocktyp 1010-1 und eine Referenzkoordinate, welche eine X-Koordinate 1010-3 und eine Y-Koordinate 1010-4 aufweist, die Bewegungskompensationsinformation 1010 ist jedoch nicht darauf beschränkt. Alternativ kann, wenn der Decodierblock sich nicht auf mehr als ein Bild bidirektional bezieht, die Bewegungskompensationsinformation 1010 den Blocktyp 1010-1 auslassen.
  • Eine Syntax, welche auf das Referenzbild bezogen ist, und die Referenzkoordinate können gemäß einer darauf bezogenen Videostandardspezifikation variieren. Beispielsweise kann die Syntax, welche auf die Bewegungskompensationsinformation gemäß dem H.264-Standard bezogen ist, eine Referenzbild-ID ref_idx_lx, welche ein Referenzbild des gegenwärtigen Decodierblocks anzeigt, und einen Differenzialbewegungsvektor mvd_lx aufweisen, welcher eine Koordinatendifferenz zwischen dem gegenwärtigen Decodierblock und einem Referenzblock des gegenwärtigen Decodierblocks aufweist.
  • Zusätzlich kann die Syntax einen Makroblock-Typ mb_type aufweisen, welcher eine unidirektionale Referenz oder eine bidirektionale Referenz anzeigt. Die Referenzbild-ID ref_idx_lx oder der Differenzialbewegungsvektor mvd_lx in Bezugnahme auf die 18 bis 22 kann modifiziert werden, und der Makroblock-Typ mb_type kann in Bezugnahme zu den 20 und 22 modifiziert werden. Der Makroblock-Typ mb_type kann dem Blocktyp 1010-1 in 26 entsprechen und die Referenzbild-ID ref_idx_lx kann dem Referenzbildindex 1010-2 in 26 entsprechen. Der Differenzialbewegungsvektor mvd_lx kann der X-Koordinate 1010-3 und der Y-Koordinate 1010-4 in 26 entsprechen.
  • 27 ist ein Blockschaltbild, welches ein Datenverarbeitungssystem gemäß einer beispielhaften Ausführungsform veranschaulicht.
  • Bezug nehmend auf 27 kann ein Datenverarbeitungssystem 100B einen Controller beziehungsweise eine Steuerung 200B, eine Mehrzahl von Speichern 301, 303, 305 und eine Anzeige 400 aufweisen. In einigen beispielhaften Ausführungsformen kann das Datenverarbeitungssystem 100B ferner eine Kamera 500 aufweisen.
  • Der Controller 200B kann in einer integrierten Schaltung (IC = Integrated Circuit = integrierte Schaltung), einem Ein-Chip-System (SoC = System on Chip = Ein-Chip-System), einem Anwendungsprozessor (AP = Application Processor = Anwendungsprozessor) und/oder einem mobilen AP etc. ausgeführt sein.
  • Der Controller 200B kann eine CPU 210A, eine GPU 220, eine Mehrzahl von Hardwarecodecs 230, eine Speicherschnittstelle (I/F = Interface = Schnittstelle) 240, eine Anzeigeschnittstelle (I/F) 260 und eine Empfängerschnittstelle (I/F) 270 aufweisen. Wenn das Datenverarbeitungssystem 100A ferner eine Kamera 500 aufweist, kann der Controller 200A ferner eine Kameraschnittstelle (I/F) 250 aufweisen.
  • Der Controller 200B, welcher in 27 gezeigt ist, ist gleich zu oder ähnlich zu dem Controller 200A, welcher in 1 gezeigt ist in Hinsicht auf die Struktur und den Betrieb mit Ausnahme der Mehrzahl von Codecs 231-1 bis 231-N, welche in einem Hardwarecodec enthalten sind.
  • Der Betrieb jedes der Mehrzahl von Codecs 231-1 bis 231-N kann gleich zu oder ähnlich zu dem Betrieb jedes der Mehrzahl von Hardwarecodecs 230-1 bis 230-N in 1 sein. Zusätzlich kann jeder der Mehrzahl von Codecs 231-1 bis 231-N einen Speicher haben, welcher jedem der Speicher MEM1 bis MEMN entspricht.
  • Jeder der Mehrzahl von Codecs 231-1 bis 231-N kann die Komponenten 701, 700 und 800 aufweisen, welche unter Bezugnahme auf die 15 bis 17 beschrieben sind. Der erste Kern CORE0, der zweite Kern CORE1 und der dritte Kern CORE2, welche in den 4 bis 14 beschrieben sind, können jeweils einem ersten Kern 231-1, einem zweiten Kern 231-2 und einem dritten Kern 231-3 entsprechen.
  • 28 ist ein Blockschaltbild, welches ein Datenverarbeitungssystem gemäß einer beispielhaften Ausführungsform veranschaulicht.
  • Bezug nehmend auf 28 kann ein Datenverarbeitungssystem 100C einen Controller 200C, eine Mehrzahl von Speichern 301, 303, 305 und eine Anzeige 400 aufweisen. In einigen beispielhaften Ausführungsformen kann das Datenverarbeitungssystem 100C ferner eine Kamera 500 aufweisen.
  • Der Controller 200C kann in einer integrierten Schaltung (IC), einem Ein-Chip-System (SoC), einem Anwendungsprozessor (AP) und/oder einem mobilen AP etc. ausgeführt sein.
  • Der Controller 200C kann eine CPU 210B, eine GPU 220, eine Mehrzahl von Hardwarecodecs 230, eine Speicherschnittstelle (I/F) 240, eine Anzeigeschnittstelle (I/F) 260 und eine Empfängerschnittstelle (I/F) 270 aufweisen. Wenn das Datenverarbeitungssystem 100C ferner eine Kamera 500 aufweist, kann der Controller 200C ferner eine Kameraschnittstelle (I/F) 250 aufweisen.
  • Der Controller 200C, welcher in 27 gezeigt ist, ist gleich zu oder ähnlich zu dem Controller 200A, welcher in 1 gezeigt ist, hinsichtlich der Struktur und des Betriebs mit der Ausnahme, dass die CPU 210B eine Mehrzahl von Kernen CORE1 bis COREN aufweist.
  • Der Betrieb von jedem der Mehrzahl von Kernen CORE1 bis COREN kann gleich sein zu oder ähnlich zu dem Betrieb jedes der Mehrzahl von Hardwarecodecs 230-1 bis 230-N in 1. Zusätzlich kann jeder der Mehrzahl von Codecs 231-1 bis 231-N einen Speicher (beispielsweise einen Cache) haben, welcher jedem der Speicher MEM1 bis MEMN entspricht.
  • Jeder der Mehrzahl von Kerne CORE1 bis COREN kann einen Softwarecodec ausführen. Der erste Kern CORE0, der zweite Kern CORE1 und der dritte Kern CORE2, welche in den 4 bis 14 beschrieben sind, können einem ersten Kern CORE1, einem zweiten Kern CORE2 und einem dritten Kern CORE2 in 28 entsprechen jeweils wenn N drei ist.
  • Der Sofwarecodec, welcher durch jeden der Kerne CORE1 bis COREN ausgeführt wird, kann ein Codieren, Decodieren, Codieren einschließlich In-Loop-Filterung oder Decodieren einschließlich In-Loop-Filterung unter Bezugnahme auf die 4 bis 14 durchführen.
  • 29 ist ein Flussdiagramm, welches ein Verfahren zum Verarbeiten von Videodaten durch das Datenverarbeitungssystem, welches in den 1, 18 und 19 gemäß einer beispielhaften Ausführungsform gezeigt ist, veranschaulicht. Das Verfahren zum Verarbeiten kann beispielsweise ein Codieren oder Decodieren sein.
  • Bezug nehmend auf die 1 bis 20 wird in Operation S100 jedes Bild einem Kern zugeordnet. Beispielsweise kann jedes eines ersten Bildes, eines zweiten Bildes und eines dritten Bildes in Videodaten einem eines ersten Kerns und eines zweiten Kerns zum Verarbeiten der Videodaten zugeordnet werden. Jedes des ersten Bilds, des zweiten Bilds und des dritten Bilds kann jeweils eine erste Scheibe (oder eine erste Kachel) und eine zweite Scheibe (oder eine zweite Kachel) aufweisen.
  • In Operation S110 kann eine erste Scheibe (oder eine erste Kachel) in dem ersten Bild durch den ersten Kern verarbeitet werden. In Operation S120 kann eine erste Scheibe (oder eine erste Kachel) in dem zweiten Bild durch den zweiten Kern parallel verarbeitet werden, während eine zweite Scheibe (oder eine zweite Kachel) des ersten Bilds durch den ersten Kern verarbeitet wird. In Operation S120 kann der erste Kern ferner eine In-Loop-Filterung der ersten Scheibe und der zweiten Scheibe des ersten Bildes basierend auf dem Verarbeitungsergebnis der ersten Scheibe des ersten Bildes durchführen. In Operation S130 kann eine erste Scheibe (oder eine erste Kachel) in dem dritten Bild durch den dritten Kern parallel verarbeitet werden, während eine zweite Scheibe (oder eine zweite Kachel) des zweiten Bildes durch den zweiten Kern verarbeitet wird. In Operation S130 kann der zweite Kern ferner eine In-Loop-Filterung der ersten Scheibe und der zweiten Scheibe des zweiten Bildes basierend auf dem Verarbeitungsergebnis der ersten Scheibe des zweiten Bildes durchführen.
  • Wie obenstehend beschrieben ist, kann das Verfahren zum Decodieren von Videodaten, welches in den 1 bis 14 und 18 bis 20 beschrieben ist, ähnlich für ein Verfahren zum Codieren der Videodaten durch ein Zuordnen jedes einer Mehrzahl von Bildern zu jedem einer Mehrzahl von Kernen verwendet werden und ein paralleles Verarbeiten der Mehrzahl von Bildern durch die Mehrzahl von Kernen.
  • 30 ist ein Flussdiagramm, welches ein Verfahren zum Verarbeiten von Videodaten gemäß einer anderen beispielhaften Ausführungsform veranschaulicht. In Operation S210 können Decodiervorgeschichtsinformationen jedes Kerns gespeichert werden. In Operation S220 kann eine Bewegungskompensationsinformation eines gegenwärtigen Decodierblocks extrahiert werden. In Operation S230 kann die Bewegungskompensationsinformation modifiziert werden. In Operation S240 kann der gegenwärtige Block basierend auf der modifizierten Bewegungskompensationsinformation decodiert werden. In Operation S250 kann eine interne In-Loop-Filterung durchgeführt werden.
  • Obwohl das vorliegende erfinderische Konzept unter Bezugnahme auf bestimmte beispielhafte Ausführungsformen davon beschrieben worden ist, wird durch Fachleute verstanden werden, dass verschiedene Änderungen in den Formen und Details daran getätigt werden können, ohne von dem Gedanken und Umfang des vorliegenden erfinderischen Konzepts, wie es durch die folgenden Ansprüche definiert ist, abzuweichen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • KR 10-2014-0168004 [0001]

Claims (20)

  1. Datenverarbeitungssystem (100A, 100B, 100C), das Folgendes aufweist: einen ersten Kern (CORE0), welcher konfiguriert ist, um ein erstes Bild (10, 610, 620, 630, 640, 650, 660) zu decodieren und um eine Decodiervorgeschichtsinformation des decodierten ersten Bildes (10, 610, 620, 630, 640, 650, 660) zu erzeugen; und einen zweiten Kern (CORE1), welcher konfiguriert ist, um die erste Bewegungskompensationsinformation (1010), welche in einem zweiten Bild (612, 622, 632, 642, 652, 662) enthalten ist, basierend auf der Decodiervorgeschichtsinformation des decodierten ersten Bildes (10, 610, 620, 630, 640, 650, 660) zu modifizieren, und um das zweite Bild (612, 622, 632, 642, 652, 662) basierend auf dem decodierten ersten Bild (10, 610, 620, 630, 640, 650, 660) und der modifizierten ersten Bewegungskompensationsinformation (1010) zu decodieren.
  2. Datenverarbeitungssystem (100A, 100B, 100C) nach Anspruch 1, wobei der zweite Kern (CORE1) konfiguriert ist, um die Decodiervorgeschichtsinformation des decodierten zweiten Bildes (612, 622, 632, 642, 652, 662) zu erzeugen, und der erste Kern (CORE0) konfiguriert ist, um eine zweite Bewegungskompensationsinformation (1010) zu modifizieren, welche in einem dritten Bild (614, 624, 634, 644, 654, 664) enthalten ist, basierend auf der Decodiervorgeschichtsinformation des decodierten zweiten Bildes (612, 622, 632, 642, 652, 662), und um das dritte Bild (614, 624, 634, 644, 654, 664) basierend auf der modifizierten zweiten Bewegungskompensationsinformation (1010) und einem des decodierten ersten Bildes (10, 610, 620, 630, 640, 650, 660) und des decodierten zweiten Bildes (612, 622, 632, 642, 652, 662) zu decodieren.
  3. Datenverarbeitungssystem (100A, 100B, 100C) nach Anspruch 2, wobei der erste Kern (CORE0) einen ersten Bewegungskompensation-Informationsmodifizierer (870, 920) aufweist, welcher konfiguriert ist, um die zweite Bewegungskompensationsinformation (1010) zu modifizieren, und der zweite Kern (CORE1) einen zweiten Bewegungskompensation-Informationsmodifizierer (870, 920) aufweist, welcher konfiguriert ist, um die erste Bewegungskompensationsinformation (1010) zu modifizieren.
  4. Datenverarbeitungssystem (100A, 100B, 100C) nach Anspruch 3, wobei der erste Kern (CORE0) einen ersten In-Loop-Filter (790, 860A, 860B, 930) aufweist, welcher mit dem ersten Bewegungskompensation-Modifizierer (870, 920) verbunden ist, und der zweite Kern (CORE1) einen zweiten In-Loop-Filter (790, 860A, 860B, 930) aufweist, welcher mit dem zweiten Bewegungskompensations-Modifizierer (870, 920) verbunden ist.
  5. Datenverarbeitungssystem (100A, 100B, 100C) nach Anspruch 4, wobei der erste In-Loop-Filter (790, 860A, 860B, 930) konfiguriert ist, um eine teilweise In-Loop-Filterung, welche eine deblockierende Operation nur in einem Block ist, welcher auf die modifizierte erste Bewegungskompensationsinformation (1010) bezogen ist, basierend auf einem ersten Steuersignal durchzuführen, welches von dem ersten Bewegungskompensation-Informationsmodifizierer (870, 920) empfangen wird, und der zweite In-Loop-Filter (790, 860A, 860B, 930) konfiguriert ist, um eine teilweise In-Loop-Filterung, welche eine deblockierende Operation nur in einem Block ist, welcher auf die modifizierte zweite Bewegungskompensationsinformation (1010) bezogen ist, basierend auf einem zweiten Steuersignal durchzuführen, welches von dem zweiten Bewegungskompensations-Informationsmodifizierer (870, 920) empfangen wird.
  6. Datenverarbeitungssystem (100A, 100B, 100C) nach Anspruch 2, wobei jedes des ersten Bildes (10, 610, 620, 630, 640, 650, 660), des zweiten Bildes (612, 622, 632, 642, 652, 662) und des dritten Bildes (614, 624, 634, 644, 654, 664) wenigstens einen unterteilten Bereich aufweisen.
  7. Datenverarbeitungssystem (100A, 100B, 100C) nach Anspruch 1, wobei das erste Bild (10, 610, 620, 630, 640, 650, 660) einen ersten unterteilten Bereich aufweist, die Decodiervorgeschichtsinformation des decodierten ersten Bildes (10, 610, 620, 630, 640, 650, 660) eine Decodiervorgeschichtsinformation des ersten unterteilten Bereichs aufweist, und der zweite Kern (CORE1) die erste Bewegungskompensationsinformation (1010) basierend auf der Decodiervorgeschichtsinformation des ersten unterteilten Bereichs modifiziert.
  8. Datenverarbeitungssystem (100A, 100B, 100C) nach Anspruch 7, wobei die modifizierte erste Bewegungskompensationsinformation (1010) eine modifizierte Referenzkoordinate aufweist, welche einer Referenzkoordinate entspricht, welche in der ersten Bewegungskompensationsinformation (1010) enthalten ist.
  9. Datenverarbeitungssystem (100A, 100B, 100C) nach Anspruch 7, wobei das zweite Bild (612, 622, 632, 642, 652, 662) einen zweiten unterteilten Bereich aufweist, wobei die Decodiervorgeschichtsinformation des decodierten zweiten Bildes (612, 622, 632, 642, 652, 662) eine Decodiervorgeschichtsinformation des zweiten unterteilten Bereichs aufweist, und der erste Kern (CORE0) die zweite Bewegungskompensationsinformation (1010) basierend auf der Decodiervorgeschichtsinformation des zweiten unterteilten Bereichs modifiziert.
  10. Datenverarbeitungssystem (100A, 100B, 100C) nach Anspruch 9, wobei die modifizierte zweite Bewegungskompensationsinformation (1010) einen modifizierten Referenzbildindex (1010-2) aufweist, welcher hinsichtlich eines Referenzbildindex' (1010-2), welcher in der zweiten Bewegungskompensationsinformation (1010) enthalten ist, modifiziert ist.
  11. Verfahren zum Decodieren einer Mehrzahl von Bildern in Videodaten, wobei das Verfahren Folgendes aufweist: ein Empfangen eines ersten Bildes (10, 610, 620, 630, 640, 650, 660), welches einen ersten unterteilten Bereich hat; ein Empfangen eines zweiten Bildes (612, 622, 632, 642, 652, 662), welches einen zweiten unterteilten Bereich hat; ein Extrahieren einer ersten Bewegungskompensationsinformation (1010), welche in dem zweiten Bild (612, 622, 632, 642, 652, 662) enthalten ist; ein Modifizieren der extrahierten ersten Bewegungskompensationsinformation (1010); und ein Decodieren des zweiten Bildes (612, 622, 632, 642, 652, 662) basierend auf dem ersten unterteilten Bereich und der modifizierten ersten Bewegungskompensationsinformation (1010).
  12. Verfahren nach Anspruch 11, wobei das Modifizieren der extrahierten ersten Bewegungskompensationsinformation (1010) ein Modifizieren einer Referenzkoordinate eines Referenzbildes aufweist, welches in der ersten Bewegungskompensationsinformation (1010) enthalten ist, basierend auf einer Decodiervorgeschichtsinformation des Referenzbildes bezogen auf die extrahierte erste Bewegungskompensationsinformation (1010).
  13. Verfahren nach Anspruch 12, wobei das erste Bild (10, 610, 620, 630, 640, 650, 660) einen dritten unterteilten Bereich unterschiedlich von dem ersten unterteilten Bereich aufweist, und das Modifizieren der Referenzkoordinate des Referenzbildes ein Ändern der Referenzkoordinate von einer ersten Koordinate, welche sich auf den ersten unterteilten Bereich bezieht, zu einer zweiten Koordinate, welche sich auf den dritten unterteilten Bereich bezieht, aufweist.
  14. Verfahren nach Anspruch 13, weiterhin aufweisend: ein Decodieren eines Blocks, welcher in dem zweiten unterteilten Bereich enthalten ist, basierend auf dem ersten Bild (10, 610, 620, 630, 640, 650, 660) und der modifizierten ersten Bewegungskompensationsinformation (1010); und ein Durchführen einer teilweisen In-Loop-Filterung des decodierten Blocks.
  15. Verfahren nach Anspruch 11, weiterhin aufweisend: ein Empfangen eines dritten Bildes (614, 624, 634, 644, 654, 664), welches einen dritten unterteilten Bereich hat; ein Extrahieren einer zweiten Bewegungskompensationsinformation (1010), welche in dem dritten Bild (614, 624, 634, 644, 654, 664) enthalten ist; ein Modifizieren der extrahierten zweiten Bewegungskompensationsinformation (1010); und ein Decodieren des dritten Bildes (614, 624, 634, 644, 654, 664) basierend auf der modifizierten zweiten Bewegungskompensationsinformation (1010).
  16. Verfahren nach Anspruch 15, wobei das Modifizieren der extrahierten zweiten Bewegungskompensationsinformation (1010) ein Modifizieren eines Referenzbildindex (1010-2) aufweist, welcher in der zweiten Bewegungskompensationsinformation (1010) enthalten ist, basierend auf einer Decodiervorgeschichtsinformation eines Referenzbildes, auf welches durch den Referenzbildindex (1010-2) Bezug genommen wird.
  17. Verfahren nach Anspruch 16, wobei das Modifizieren des Referenzbildindex' (1010-2) ein Ändern des Referenzbildindex' (1010-2) von einem zweiten Index, welcher sich auf das zweite Bild (612, 622, 632, 642, 652, 662) bezieht, zu einem ersten Index, welcher sich auf das erste Bild (10, 610, 620, 630, 640, 650, 660) bezieht, aufweist.
  18. Verfahren nach Anspruch 17, weiterhin aufweisend: ein Decodieren eines Blocks in dem dritten unterteilten Bereich basierend auf dem zweiten Bild (612, 622, 632, 642, 652, 662) und der modifizierten zweiten Bewegungskompensationsinformation (1010); und ein Durchführen einer teilweisen In-Loop-Filterung des decodierten Blocks.
  19. Verfahren nach Anspruch 15, wobei die extrahierte zweite Bewegungskompensationsinformation (1010) einen Referenzbildindex (1010-2) aufweist; und das Modifizieren der extrahierten zweiten Bewegungskompensationsinformation (1010) ein Modifizieren des Referenzbildindex (1010-2) und einer Referenzkoordinate eines Referenzbildes aufweist, auf welches durch den Referenzbildindex (1010-2) Bezug genommen wird, welcher in der extrahierten zweiten Bewegungskompensationsinformation (1010) enthalten ist, basierend auf einer Decodiervorgeschichtsinformation des ersten unterteilten Bereichs oder des zweiten unterteilten Bereichs bezogen auf den Referenzbildindex (1010-2) und die Referenzkoordinate des Referenzbildes.
  20. Verfahren nach Anspruch 19, wobei das erste Bild (10, 610, 620, 630, 640, 650, 660) einen vierten unterteilten Bereich unterschiedlich von dem ersten unterteilten Bereich aufweist, und das Modifizieren der extrahierten ersten Bewegungskompensationsinformation (1010) Folgendes aufweist: ein Modifizieren des Referenzbildindex' (1010-2) derart, dass der Referenzbildindex (1010-2) von einem zweiten Index, welcher sich auf das zweite Bild (612, 622, 632, 642, 652, 662) bezieht, zu einem ersten Index, welcher sich auf das erste Bild (10, 610, 620, 630, 640, 650, 660) bezieht, geändert wird; und ein Modifizieren der Referenzkoordinate des Referenzbildes derart, dass die Referenzkoordinate von einer ersten Koordinate, welche sich auf den vierten unterteilten Bereich bezieht, zu einer zweiten Koordinate, welche sich auf den ersten unterteilten Bereich bezieht, geändert wird.
DE102015117561.4A 2014-11-28 2015-10-15 Datenverarbeitungssystem, das Bewegungskompensationsinformation modifiziert, und Verfahren zum Decodieren von Videodaten mit demselben Pending DE102015117561A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020140168004A KR102273670B1 (ko) 2014-11-28 2014-11-28 움직임 보상 정보를 수정하는 데이터 처리 시스템과 데이터 처리 방법
KR10-2014-0168004 2014-11-28

Publications (1)

Publication Number Publication Date
DE102015117561A1 true DE102015117561A1 (de) 2016-06-02

Family

ID=55967924

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015117561.4A Pending DE102015117561A1 (de) 2014-11-28 2015-10-15 Datenverarbeitungssystem, das Bewegungskompensationsinformation modifiziert, und Verfahren zum Decodieren von Videodaten mit demselben

Country Status (5)

Country Link
US (1) US10080025B2 (de)
KR (1) KR102273670B1 (de)
CN (1) CN105657430B (de)
DE (1) DE102015117561A1 (de)
TW (1) TWI736525B (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180139464A1 (en) * 2016-11-17 2018-05-17 Mediatek Inc. Decoding system for tile-based videos
JP2022508245A (ja) 2018-11-27 2022-01-19 オーピー ソリューションズ, エルエルシー 文脈的区分化および処理のためのブロックベースのピクチャ融合
BR112021010167A2 (pt) * 2018-11-27 2021-08-17 Op Solutions, Llc medidas de atividade espacial baseadas em blocos para imagens
EP3664451B1 (de) 2018-12-06 2020-10-21 Axis AB Verfahren und vorrichtung zur codierung mehrerer bilder
CN114697675B (zh) * 2020-12-25 2024-04-05 扬智科技股份有限公司 解码显示***与其存储器访问方法
KR20230022061A (ko) * 2021-08-06 2023-02-14 삼성전자주식회사 디코딩 장치 및 그의 동작 방법

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1882093B (zh) * 1998-03-10 2011-01-12 索尼公司 利用编码历史信息的编码转换***
JP2000295616A (ja) 1999-04-08 2000-10-20 Matsushita Electric Ind Co Ltd 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法及びプログラム記録媒体
US8401084B2 (en) 2002-04-01 2013-03-19 Broadcom Corporation System and method for multi-row decoding of video with dependent rows
US8406301B2 (en) * 2002-07-15 2013-03-26 Thomson Licensing Adaptive weighting of reference pictures in video encoding
JP2005175997A (ja) * 2003-12-12 2005-06-30 Sony Corp 復号化装置、電子機器、コンピュータ、復号化方法、プログラム及び記録媒体
JP4374548B2 (ja) * 2005-04-15 2009-12-02 ソニー株式会社 復号装置および方法、記録媒体、並びに、プログラム
JP4789200B2 (ja) 2006-08-07 2011-10-12 ルネサスエレクトロニクス株式会社 動画符号化と動画復号とのいずれかを実行する機能モジュールおよびそれを含む半導体集積回路
CN101627634B (zh) 2006-10-16 2014-01-01 诺基亚公司 用于将可并行解码片用于多视点视频编码的***和方法
US8861603B2 (en) * 2007-08-28 2014-10-14 Samsung Electronics Co., Ltd. System and method for motion vector collection based on K-means clustering for motion compensated interpolation of digital video
JP5628155B2 (ja) * 2008-06-12 2014-11-19 トムソン ライセンシングThomson Licensing 動き補償の補間フィルタリング及び参照画像のフィルタリングのための局所的な適応フィルタリングの方法及び装置
JP2010034802A (ja) 2008-07-28 2010-02-12 Canon Inc 動画像符号化装置およびその制御方法
US9042455B2 (en) * 2008-08-19 2015-05-26 Thomson Licensing Propagation map
KR20100071865A (ko) 2008-12-19 2010-06-29 삼성전자주식회사 멀티 코어 프로세스 방식의 영상 신호 처리장치에서 영상 프레임 구성 및 복호화 방법과 그 영상 신호 처리장치
US20100329361A1 (en) * 2009-06-30 2010-12-30 Samsung Electronics Co., Ltd. Apparatus and method for in-loop filtering of image data and apparatus for encoding/decoding image data using the same
JP5253312B2 (ja) 2009-07-16 2013-07-31 ルネサスエレクトロニクス株式会社 動画像処理装置およびその動作方法
KR101504887B1 (ko) * 2009-10-23 2015-03-24 삼성전자 주식회사 데이터 단위 레벨의 독립적 파싱 또는 복호화에 따른 비디오 복호화 방법 및 그 장치, 그리고 데이터 단위 레벨의 독립적 파싱 또는 복호화를 위한 비디오 부호화 방법 및 그 장치
CN101710986B (zh) * 2009-11-18 2012-05-23 中兴通讯股份有限公司 基于同构多核处理器的h.264并行解码方法和***
US8879632B2 (en) * 2010-02-18 2014-11-04 Qualcomm Incorporated Fixed point implementation for geometric motion partitioning
EP2405661B1 (de) * 2010-07-06 2017-03-22 Google, Inc. Verlustrobuste Videoübertragung mit zwei Decodierern
RU2010135495A (ru) * 2010-08-24 2012-02-27 ЭлЭсАй Корпорейшн (US) Видеотранскодер с гибким управлением качеством и сложностью
KR101219220B1 (ko) 2010-10-20 2013-01-08 성균관대학교산학협력단 병렬 부호화를 위한 데이터 파티션 방법 및 이를 수행하는 프로그램을 기록한 기록매체
US9066102B2 (en) * 2010-11-17 2015-06-23 Qualcomm Incorporated Reference picture list construction for generalized P/B frames in video coding
CA2722993A1 (fr) 2010-12-01 2012-06-01 Ecole De Technologie Superieure Systeme d'ecodage video parallele multitrames et multitranches avec encodage simultane de trames predites
US20120263225A1 (en) 2011-04-15 2012-10-18 Media Excel Korea Co. Ltd. Apparatus and method for encoding moving picture
US9621905B2 (en) 2012-06-29 2017-04-11 Qualcomm Incorporated Tiles and wavefront parallel processing
US20140169481A1 (en) * 2012-12-19 2014-06-19 Ati Technologies Ulc Scalable high throughput video encoder
KR20140129624A (ko) * 2013-04-30 2014-11-07 주식회사 칩스앤미디어 동영상 처리 방법 및 장치
KR101676788B1 (ko) * 2014-10-17 2016-11-16 삼성전자주식회사 멀티코어 시스템 기반 비디오 병렬 복호화 방법 및 그 장치

Also Published As

Publication number Publication date
CN105657430B (zh) 2020-09-01
CN105657430A (zh) 2016-06-08
US20160156937A1 (en) 2016-06-02
KR20160064419A (ko) 2016-06-08
TWI736525B (zh) 2021-08-21
TW201631976A (zh) 2016-09-01
US10080025B2 (en) 2018-09-18
KR102273670B1 (ko) 2021-07-05

Similar Documents

Publication Publication Date Title
DE102015117561A1 (de) Datenverarbeitungssystem, das Bewegungskompensationsinformation modifiziert, und Verfahren zum Decodieren von Videodaten mit demselben
DE102015116544A1 (de) Anwendungs-Prozessor zum Durchführen von In-Loop-Filterung, Verfahren davon und System mit demselben
TWI826532B (zh) 基於歷史資訊的幀內模式編解碼
DE102019218837A1 (de) VERFAHREN UND SYSTE M ZUR NEURONALNETZ WERK-SCHLEIFENFILTERUNG ZUR VlDEOCODIERUNG
CN101662682B (zh) 视频编码技术
DE102016200001B4 (de) Verfahren, Systeme und Einrichtungen mit einem Kodierer für Bildverarbeitung
DE202016008257U1 (de) Bewegungsvektorkodierung mit dynamischen Referenzbewegungsvektoren
US9888245B2 (en) Image compression method and apparatus for performing amplitude decreasing processing
US9510021B2 (en) Method and apparatus for filtering pixel blocks
DE202016008175U1 (de) Adaptive gerichtete Intra-Prädiktion mit Blockgröße
DE102019209067A1 (de) Adaptive in-loop filtering for video coding
DE102020108428A1 (de) Codieren von Video unter Verwendung zweistufiger Intra-Suche
WO2023082834A1 (zh) 视频压缩方法、装置、计算机设备和存储介质
DE202016008210U1 (de) Adaptiver direktionaler Schleifenfilter
DE102016015996B3 (de) Anpassungsfähige Kachel-Daten-Grössenkodierung für Video- und Bildkompression
DE102014115013A1 (de) Videokodierverfahren und Vorrichtung, und Videodekodierverfahren und Vorrichtung, die eine Bewegungskompensation durchführen
TWI838406B (zh) 色度模式幀內編解碼
KR102090053B1 (ko) 픽셀블록 필터링 방법 및 장치
US10728557B2 (en) Embedded codec circuitry for sub-block based entropy coding of quantized-transformed residual levels
DE102011002325A1 (de) Einrichtung mit vertikalem und/oder horizontalem Cachespeicher und in einem Kodierer und/oder Dekodierer verwendete Verfahren
EP4404562A1 (de) Videokompressionsverfahren und -vorrichtung sowie computervorrichtung und speichermedium
TWI691850B (zh) 用於進行即時迴路內濾波的應用處理器、用於該應用處理器之方法以及包括該應用處理器的系統
DE202016008160U1 (de) Dynamischer Kodiermodus für Referenz-Bewegungsvektoren
US10440363B2 (en) Encoder performing quantization based on deadzone, and video processing system comprising the same
DE102022126701A1 (de) Niederfrequente nichttrennbare transformation und mehrfachtransformationsauswahl-deadlock-prävention

Legal Events

Date Code Title Description
R012 Request for examination validly filed