DE102015116544A1 - Anwendungs-Prozessor zum Durchführen von In-Loop-Filterung, Verfahren davon und System mit demselben - Google Patents

Anwendungs-Prozessor zum Durchführen von In-Loop-Filterung, Verfahren davon und System mit demselben Download PDF

Info

Publication number
DE102015116544A1
DE102015116544A1 DE102015116544.9A DE102015116544A DE102015116544A1 DE 102015116544 A1 DE102015116544 A1 DE 102015116544A1 DE 102015116544 A DE102015116544 A DE 102015116544A DE 102015116544 A1 DE102015116544 A1 DE 102015116544A1
Authority
DE
Germany
Prior art keywords
processing unit
core
processing
image
core0
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.)
Withdrawn
Application number
DE102015116544.9A
Other languages
English (en)
Inventor
Nyeong Kyu Kwon
Manjit Hota
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
Priority claimed from KR1020150025676A external-priority patent/KR102299573B1/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102015116544A1 publication Critical patent/DE102015116544A1/de
Withdrawn 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/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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • 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
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • 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

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 Anwendungsprozessor weist einen ersten Kern (CORE0), welcher konfiguriert ist, um ein erstes Bild (610, 620, 630, 640, 650, 660) zu verarbeiten, welches eine erste Verarbeitungseinheit und eine zweite Verarbeitungseinheit aufweist, und einen zweiten Kern (CORE1), welcher konfiguriert ist, um ein zweites Bild (611, 621, 631, 641, 651, 661) zu verarbeiten, welches eine dritte Verarbeitungseinheit und eine vierte Verarbeitungseinheit aufweist, auf, wobei der erste Kern (CORE0) und der zweite Kern (CORE1) konfiguriert sind, um eine Verarbeitung der zweiten Verarbeitungseinheit und der dritten Verarbeitungseinheit jeweils parallel durchzuführen.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNG
  • Diese Anmeldung beansprucht die Priorität der vorläufigen indischen Patentanmeldung Nr. 5269/CHE/2014, welche am 22. Oktober 2014 beim indischen Patentamt (Indian Patent Office) eingereicht wurde, und der koreanischen Patentanmeldung Nr. 10-2015-0025676 , welche am 24. Februar 2015 beim koreanischen Amt für gewerblichen Rechtsschutz (Korean Intellectual Property Office) eingereicht wurde, deren Offenbarung hiermit durch Bezugnahme in ihrer Gesamtheit mit eingebunden ist.
  • HINTERGRUNG
  • 1. TECHNISCHES GEBIET
  • Beispielhafte Ausführungsformen beziehen sich auf eine Halbleitervorrichtung und genauer auf einen Anwendungs-Prozessor, welcher mehrere Kerne zum Durchführen einer Echtzeit-In-Loop-Filterung aufweist, auf Verfahren davon und Systeme mit demselben.
  • 2. BESCHREIBUNG VERWANDTER FERTIGKEIT
  • Eine Scheibe bzw. Slice und eine Kachel bzw. Tile in einem Bild können eine Abhängigkeit in der Entropiecodierung oder die Entropiedecodierung verringern. Wenn jedoch eine Mehrzahl von Scheiben oder Kacheln in dem Bild durch eine Mehrzahl von Prozessoren parallel bearbeitet wird, kann eine Deblockieroperation der Mehrzahl von Scheiben oder Kacheln aufgehalten werden, 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 verarbeitet wird, die Deblockieroperation angehalten 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 bearbeitet wird.
  • KURZFASSUNG
  • Gemäß einem Aspekt einer beispielhaften Ausführungsform ist ein Anwendungs-Prozessor vorgesehen, welcher einen ersten Kern, welcher konfiguriert ist, um ein erstes Bild zu bearbeiten, welches eine erste Verarbeitungseinheit und eine zweite Verarbeitungseinheit aufweist, und einen zweiten Kern aufweist, welcher konfiguriert ist, um ein zweites Bild zu verarbeiten, welches eine dritte Verarbeitungseinheit und eine vierte Verarbeitungseinheit aufweist, wobei der erste Kern und der zweite Kern konfiguriert sind, um eine Verarbeitung der zweiten Verarbeitungseinheit und der dritten Verarbeitungseinheit jeweils parallel durchzuführen.
  • Der erste Kern kann das erste Bild in die erste Verarbeitungseinheit und die zweite Verarbeitungseinheit basierend auf einer Verarbeitungskomplexität des ersten Bildes unterteilen, der zweite Kern kann das zweite Bild in die dritte Verarbeitungseinheit und die vierte Verarbeitungseinheit basierend auf einer Verarbeitungskomplexität des zweiten Bildes unterteilen, und wenn eine Anzahl von Scheiben beziehungsweise Slices in der zweiten Verarbeitungseinheit unterschiedlich von einer Anzahl von Scheiben in der dritten Verarbeitungseinheit ist, vollendet der erste Kern die Verarbeitung der zweiten Verarbeitungseinheit in einer ersten Zeitdauer und der zweite Kern vollendet die Verarbeitung der dritten Verarbeitungseinheit in der ersten Zeitdauer.
  • Der erste Kern kann das erste Bild in die erste Verarbeitungseinheit und die zweite Verarbeitungseinheit basierend auf einer Verarbeitungskomplexität des ersten Bildes unterteilen, der zweite Kern kann das zweite Bild in die dritte Verarbeitungseinheit und die vierte Verarbeitungseinheit basierend auf einer Verarbeitungskomplexität des zweiten Bildes unterteilen, und wenn eine Anzahl von Kacheln beziehungsweise Tiles in der zweiten Verarbeitungseinheit unterschiedlich von einer Anzahl von Kacheln in der dritten Verarbeitungseinheit ist, vollendet der erste Kern die Verarbeitung der zweiten Verarbeitungseinheit in einer ersten Zeitdauer und der zweite Kern vollendet die Verarbeitung der dritten Verarbeitungseinheit in der ersten Zeitdauer.
  • Der erste Kern kann einen In-Loop-Filter aufweisen, welcher einem H.264-Videocodierstandard entspricht, und der zweite Kern verarbeitet die dritte Verarbeitungseinheit während der erste Kern die zweite Verarbeitungseinheit verarbeitet und eine In-Loop-Filterung eines verarbeiteten Blocks in der zweiten Verarbeitungseinheit unter Verwendung des In-Loop-Filters durchführt.
  • Der erste Kern kann einen In-Loop-Filter aufweisen, welcher einem hocheffizienten Videocodier(HEVC = High Efficient Video Coding = hocheffizienten Videocodier)-Standard entspricht, und der zweite Kern verarbeitet die dritte Verarbeitungseinheit während der erste Kern die zweite Verarbeitungseinheit verarbeitet und eine In-Loop-Filterung eines verarbeiteten Blocks in der zweiten Verarbeitungseinheit unter Verwendung des In-Loop-Filters durchführt.
  • Jede der ersten Verarbeitungseinheit, der zweiten Verarbeitungseinheit, der dritten Verarbeitungseinheit und der vierten Verarbeitungseinheit kann wenigstens eine Scheibe aufweisen.
  • Jede der ersten Verarbeitungseinheit, der zweiten Verarbeitungseinheit, der dritten Verarbeitungseinheit und der vierten Verarbeitungseinheit kann wenigstens eine Kachel aufweisen.
  • Der erste Kern kann in einem ersten Hardwarecodec ausgeführt sein, und der zweite Kern kann in einem zweiten Hardwarecodec ausgeführt sein.
  • Der erste Kern und der zweite Kern können in einem einzelnen Hardwarecodec ausgeführt sein.
  • Der erste Kern kann ein erster Kern einer zentralen Verarbeitungseinheit (CPU = Central Processing Unit = zentrale Verarbeitungseinheit) sein, und der zweite Kern kann ein zweiter Kern der CPU sein.
  • Die Verarbeitung der dritten Verarbeitungseinheit kann nach einer Verzögerung einer Verarbeitungszeit von der Verarbeitung der ersten Verarbeitungseinheit durchgeführt werden.
  • Gemäß einem Aspekt einer anderen beispielhaften Ausführungsform ist ein Ein-Chip-System (SoC = System on Chip = Ein-Chip-System) vorgesehen, welches eine Empfängerschnittstelle, welche konfiguriert ist, um ein erstes Bild zu empfangen, welches eine erste Verarbeitungseinheit und eine zweite Verarbeitungseinheit hat, und ein zweites Bild, welches eine dritte Verarbeitungseinheit und eine vierte Verarbeitungseinheit hat; einen ersten Kern, welcher konfiguriert ist, um das erste Bild zu verarbeiten; und ein zweiter Kern aufweist, welcher konfiguriert ist, um das zweite Bild zu verarbeiten, wobei der erste Kern und der zweite Kern konfiguriert sind, um eine Verarbeitung der zweiten Verarbeitungseinheit und der dritten Verarbeitungseinheit jeweils parallel durchzuführen.
  • Wenn eine Anzahl von Scheiben in der zweiten Verarbeitungseinheit unterschiedlich von einer Anzahl von Scheiben in der dritten Verarbeitungseinheit ist, kann der erste Kern das Verarbeiten der zweiten Verarbeitungseinheit in einer ersten Zeitdauer vollenden, und der zweite Kern kann die Verarbeitung der dritten Verarbeitungseinheit in der ersten Zeitdauer vollenden.
  • Wenn eine Anzahl von Kacheln in der zweiten Verarbeitungseinheit unterschiedlich von einer Anzahl von Kacheln in der dritten Verarbeitungseinheit ist, kann der erste Kern das Verarbeiten der zweiten Verarbeitungseinheit in einer ersten Zeitdauer vollenden, und der zweite Kern kann die Verarbeitung der dritten Verarbeitungseinheit in der ersten Zeitdauer vollenden.
  • Der erste Kern kann einen In-Loop-Filter aufweisen, welcher einem H.264-Videocodierstandard entspricht, und der zweite Kern kann die dritte Verarbeitungseinheit verarbeiten, während der erste Kern die zweite Verarbeitungseinheit verarbeitet und eine In-Loop-Filterung eines verarbeiteten Blocks in der zweiten Verarbeitungseinheit unter Verwendung des In-Loop-Filters durchführt.
  • Der erste Kern kann einen In-Loop-Filter aufweisen, welcher einem hocheffizienten Videocodier(HEVC = High Efficient Video Coding = hocheffizienten Videocodier)-Standard entspricht, und der zweite Kern kann die dritte Verarbeitungseinheit verarbeiten während der erste Kern die zweite Verarbeitungseinheit verarbeitet und eine In-Loop-Filterung eines verarbeiteten Blocks in der zweiten Verarbeitungseinheit unter Verwendung des In-Loop-Filters durchführt.
  • Gemäß einem Aspekt einer anderen beispielhaften Ausführungsform ist ein Datenverarbeitungssystem vorgesehen, welches eine Empfängerschnittstelle, welche konfiguriert ist, um ein erstes Bild zu empfangen, welches eine erste Verarbeitungseinheit und eine zweite Verarbeitungseinheit hat, und ein zweites Bild, welches eine dritte Verarbeitungseinheit und eine vierte Verarbeitungseinheit hat; einen ersten Kern, welcher konfiguriert ist, um das erste Bild zu verarbeiten; und ein zweiter Kern aufweist, welcher konfiguriert ist, um das zweite Bild zu verarbeiten, wobei der erste Kern und der zweite Kern konfiguriert sind, um eine Verarbeitung der zweiten Verarbeitungseinheit und der dritten Verarbeitungseinheit jeweils parallel durchzuführen.
  • Wenn eine Anzahl von Scheiben in der zweiten Verarbeitungseinheit unterschiedlich von einer Anzahl von Scheiben in der dritten Verarbeitungseinheit ist, kann der erste Kern das Verarbeiten der zweiten Verarbeitungseinheit in einer ersten Zeitdauer vollenden, und der zweite Kern kann die Verarbeitung der dritten Verarbeitungseinheit in der ersten Zeitdauer vollenden.
  • Wenn eine Anzahl von Kacheln in der zweiten Verarbeitungseinheit unterschiedlich von einer Anzahl von Kacheln in der dritten Verarbeitungseinheit ist, kann der erste Kern das Verarbeiten der zweiten Verarbeitungseinheit in einer ersten Zeitdauer vollenden, und der zweite Kern kann die Verarbeitung der dritten Verarbeitungseinheit in der ersten Zeitdauer vollenden.
  • Der erste Kern kann einen In-Loop-Filter aufweisen, welcher einem H.264-Videocodierstandard entspricht, und der zweite Kern kann die dritte Verarbeitungseinheit verarbeiten, während der erste Kern die zweite Verarbeitungseinheit verarbeitet und eine In-Loop-Filterung eines verarbeiteten Blocks in der zweiten Verarbeitungseinheit unter Verwendung des In-Loop-Filters durchführt.
  • Der erste Kern kann einen In-Loop-Filter aufweisen, welcher einem hocheffizienten Videocodier(HEVC = High Efficient Video Coding = hocheffizienten Videocodier)-Standard entspricht, und der zweite Kern kann die dritte Verarbeitungseinheit verarbeiten während der erste Kern die zweite Verarbeitungseinheit verarbeitet und eine In-Loop-Filterung eines verarbeiteten Blocks in der zweiten Verarbeitungseinheit unter Verwendung des In-Loop-Filters durchführt.
  • Die Empfängerschnittstelle kann eine drahtlose Schnittstelle sein.
  • Die Verarbeitung der dritten Verarbeitungseinheit kann nach einer Verzögerung von einer Verarbeitungszeit von der Verarbeitung der ersten Verarbeitungseinheit durchgeführt werden.
  • Gemäß einem Aspekt einer anderen beispielhaften Ausführungsform ist ein Verfahren zum Verarbeiten von Videodaten vorgesehen, welches ein Zuordnen eines ersten Bildes der Videodaten zu einem ersten Kern und eines zweiten Bildes der Videodaten zu einem zweiten Kern; ein Verarbeiten einer ersten Verarbeitungseinheit des ersten Bildes durch den ersten Kern; ein Verarbeiten einer zweiten Verarbeitungseinheit des ersten Bildes durch den ersten Kern; ein Verarbeiten einer dritten Verarbeitungseinheit des zweiten Bildes durch den zweiten Kern parallel mit der Verarbeitung der zweiten Verarbeitungseinheit durch den ersten Kern; und ein Durchführen einer In-Loop-Filterung der verarbeiteten ersten Verarbeitungseinheit und der verarbeiteten zweiten Verarbeitungseinheit basierend auf einem Verarbeitungsergebnis der ersten Verarbeitungseinheit aufweist.
  • Jede der ersten Verarbeitungseinheit, der zweiten Verarbeitungseinheit und der dritten Verarbeitungseinheit können wenigstens eine Scheibe oder Kachel aufweisen.
  • Die Videodaten können ungerade Bilder und gerade Bilder aufweisen und all die ungeraden Bilder der Videodaten können dem ersten Kern zugeordnet werden und all die geraden Bilder der Videodaten können dem zweiten Kern zugeordnet werden, bis die Verarbeitung der Videodaten vollendet ist.
  • Das Verfahren kann weiterhin ein Zuordnen eines dritten Bildes der Videodaten zu einem dritten Kern aufweisen; und ein Verarbeiten einer vierten Verarbeitungseinheit des dritten Bildes durch den dritten Kern parallel mit der Verarbeitung der dritten Verarbeitungseinheit des zweiten Bildes.
  • Gemäß einem Aspekt einer anderen beispielhaften Ausführungsform ist ein Anwendungs-Prozessor vorgesehen, welcher einen ersten Kern; und einen zweiten Kern aufweist, wobei der erste Kern einen ersten Satz von Blöcken eines ersten Bildes verarbeitet, während der zweite Kern keine Verarbeitung durchführt, und der erste Kern einen zweiten Satz von Blöcken des ersten Bildes verarbeitet, während der zweite Kern einen ersten Satz von Blöcken eines zweiten Bildes verarbeitet,.
  • Der erste Kern kann den zweiten Satz von Blöcken des ersten Bildes verarbeiten und der zweite Kern kann den ersten Satz von Blöcken eines zweiten Bildes parallel verarbeiten.
  • Der erste Kern kann ein Verarbeiten des zweiten Satzes von Blöcken des ersten Bildes zu derselben Zeit starten, zu der der zweite Kern das Verarbeiten des ersten Satzes von Blöcken des zweiten Bildes startet.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die obigen und andere Aspekte werde deutlicher werden durch ein Beschreiben von beispielhaften Ausführungsformen davon 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 Sequenz beziehungsweise Abfolge von Bildern veranschaulicht, welche jeweils zwei Scheiben aufweisen;
  • 4 ein Konzeptdiagramm ist, welches eine Prozedur beziehungsweise ein Verfahren zum Verarbeiten der Sequenz von Bildern, welche in 3 gezeigt ist, durch zwei Kerne veranschaulicht;
  • 5 ein Konzeptdiagramm ist, welches eine Sequenz von Bildern veranschaulicht, welche jeweils zwei Scheibengruppen aufweisen;
  • 6 ein Konzeptdiagramm ist, welches eine Prozedur zum Verarbeiten der Sequenz von Bildern, welche in 5 gezeigt ist, durch zwei Kerne veranschaulicht;
  • 7 ein Konzeptdiagramm ist, welches eine Sequenz von Bildern veranschaulicht, welche jeweils drei Scheiben aufweisen;
  • 8 ein Konzeptdiagramm ist, welches eine Prozedur zum Verarbeiten der Sequenz von Bildern, welche in 7 gezeigt ist, durch drei Kerne veranschaulicht;
  • 9 ein Konzeptdiagramm ist, welche eine Bewegungsvektorsuche gemäß einer beispielhaften Ausführungsform veranschaulicht;
  • 10 ein Konzeptdiagramm ist, welches eine Sequenz von Bildern veranschaulicht, von welchen jedes zwei Kacheln gemäß einer beispielhaften Ausführungsform aufweist;
  • 11 ein Konzeptdiagramm ist, welches eine Prozedur zum Verarbeiten der Sequenz von Bildern, welche in 10 gezeigt ist, durch zwei Kerne veranschaulicht;
  • 12 ein Konzeptdiagramm ist, welche eine Sequenz von Bildern veranschaulicht, von welchen jedes jeweils zwei Kacheln aufweist;
  • 13 ein Konzeptdiagramm ist, welches eine Sequenz von Bildern veranschaulicht, von welchen jedes jeweils vier Kacheln aufweist;
  • 14 ein Konzeptdiagramm ist, welches eine Prozedur zum Verarbeiten der Sequenz von Bildern, welche in 13 gezeigt ist, durch zwei Kerne veranschaulicht;
  • 15 ein Blockschaltbild ist, welches einen Hardwarecodec des Datenverarbeitungssystems, welches in 1 gezeigt ist, veranschaulicht;
  • 16 ein Blockschaltbild eines Codierers des Hardwarecodecs, welcher in 15 gezeigt ist, ist;
  • 17 ein Blockschaltbild eines Decoders des Hardwarecodecs, welcher in 15 gezeigt ist, ist;
  • 18 ein Blockschaltbild ist, welches ein Datenverarbeitungssystem gemäß einer beispielhaften Ausführungsform veranschaulicht;
  • 19 ein Blockschaltbild ist, welches ein Datenverarbeitungssystem gemäß einer beispielhaften Ausführungsform veranschaulicht; und
  • 20 ein Flussdiagramm ist, welches ein Verfahren zum Verarbeiten von Videodaten durch die Datenverarbeitungssysteme, welche in den 1, 18 und 19 gemäß beispielhaften Ausführungsformen gezeigt sind, veranschaulicht.
  • DETAILLIERTE BESCHREIBUNG VON BEISPIELHAFTEN AUSFÜHRUNGSFORMEN
  • Verschiedene beispielhafte Ausführungsformen werden nun vollständiger hierin nachstehend unter Bezugnahme auf die beigefügten Zeichnung beschrieben werden, in welchen beispielhafte Ausführungsformen gezeigt sind. Das vorliegende erfinderische Konzept kann jedoch in unterschiedlichen Formen ausgeführt werden und sollte nicht als auf die beispielhaften Ausführungsformen, welcher 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 beziehungsweise Bestandteile über die Beschreibung hinweg anzeigen. In den beigefügten Zeichnungen 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 einem anderen 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 Bezug genommen wird als ”direkt auf” einem anderen Element, keine zwischenliegenden Elemente gegenwärtig.
  • Räumlich relative Begriffe wie beispielsweise ”unterhalb”, ”unter”, ”unterer”, ”über”, ”oberer” und dergleichen können hierin zur Erleichterung der Beschreibung verwendet werden, um eine Beziehung eines Elements oder Merkmals zu (einem) anderen Element(en) oder Merkmal(en) wie in den Figuren veranschaulicht zu beschreiben. 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 abgebildet ist, zu umfassen. Beispielsweise werden, wenn die Vorrichtung in den Figuren umgedreht wird, Elemente, welche als ”unter” oder ”unterhalb” anderen Elementen oder Merkmalen beschrieben sind dann ”über” den anderen Elementen oder Merkmalen orientiert sein. Demnach kann der beispielhafte Begriff ”unter” sowohl eine Orientierung von über als auch unter umfassen. Die Vorrichtung kann anderweitig orientiert sein (um 90 Grad oder unteren anderen Orientierungen gedreht) und die räumlich relativen Deskriptoren, welche 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 dem Zusammenhang der folgenden Ansprüche sind zu betrachten, sodass sie sowohl den Singular als den Plural umfassen, solange nicht anderweitig hierin angezeigt oder deutlich durch den Zusammenhang widersprochen wird. Die Begriffe ”aufweisend”, ”habend”, ”einschließlich” und ”enthalten” sind als offen-endige Begriffe zu betrachten (das heißt bedeutend ”aufweisend, jedoch nicht beschränkt auf”), solange nicht anderweitig angemerkt.
  • Solange nicht anderweitig definiert, haben alle technischen und wissenschaftliche Begriffe, welcher hierin verwendet werden, dieselbe Bedeutung wie sie allgemein durch einen Fachmann, zu dessen Fachgebiet das vorliegende erfinderische Konzept gehört, verstanden werden. Es wird festgehalten, dass die Verwendung von einem und allen Beispielen oder beispielhaften Begriffen, welche hierin vorgesehen sind, lediglich beabsichtigt ist, um das vorliegende erfinderische Konzept besser auszuleuchten und nicht eine Beschränkung des Umfangs des vorliegenden erfinderischen Konzepts ist, solange nicht anderweitig spezifiziert. Weiterhin dürfen, solange 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 modifiziert beziehungsweise abgewandelt werden. Das heißt, die beispielhaften Ausführungsformen sind nicht beabsichtigt, um den Umfang des vorliegenden erfinderischen Konzepts zu beschränken, sondern umfassen alle Änderungen und Modifikationen, welche aufgrund einer Änderung im Herstellungsprozess verursacht sein können. Demnach sind Bereiche, welche in den Zeichnungen gezeigt sind, in einer schematischen Form veranschaulicht und die Formen von den Bereichen sind einfach auf dem Wege einer Veranschaulichung und nicht als eine Beschränkung präsentiert.
  • Verschiedene beispielhafte Ausführungsformen werden vollständig 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 einen oder mehrere unterteilte Bereiche beispielsweise Scheiben beziehungsweise Slices oder Kacheln beziehungsweise 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 bedeuten codieren, decodieren, codieren einschließlich einer In-Loop-Filterung oder decodieren einschließlich einer In-Loop-Filterung.
  • In verschiedenen beispielhaften Ausführungsformen kann ein Bild in Scheiben unterteilt sein. Die Scheiben definieren jeweils eine Sequenz beziehungsweise Abfolge einer ganzen Zahl von Makroblöcken (MBs) oder Kodierbaumeinheiten beziehungsweise Coding Tree Units (CTUs) 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, welche in mehr als einer Scheibe enthalten sind, aufweisen.
  • In einigen beispielhaften Ausführungsformen kann das 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 mit einem Videocodierstandard wie beispielsweise H.264, Hocheffizienzvideocodierung (HEVC = High Efficiency Video Coding) und so weiter kompatibel 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 Device = mobile Internetvorrichtung), einem Laptopcomputer, einem mobilien 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 weiterhin 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 Anwendungs-Prozessor (AP = Application Processor = Anwendungs-Prozessor) 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-/Schreiboperationen 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 Hardwarecodecs 230-1 bis 230-N, wobei N eine natürliche Zahl größer oder gleich 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 weiterhin eine Kamera 500 aufweist, kann der Controller 200A weiterhin eine Kameraschnittstelle (I/F) 250 aufweisen.
  • Die CPU 210A, die GPU 220, die Mehrzahl von Hardwarecodecs 230-1 bis 230-N, die Speicherschnittstelle 240, die Anzeigeschnittstelle 260 und die Empfängerschnittstelle 270 können Daten von-/zu-einander über einen Bus 210 ü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 Anwendungen zum Steuern von Operationen der GPU 220, der Mehrzahl von Hardwarecodecs 230-1 bis 230-N, der Speicherschnittstelle 240, der Kameraschnittstelle 250, der Anzeigeschnittstelle 260 und/oder 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 können im Wesentlichen dieselben sein, hinsichtlich der Struktur und des Betriebs. In einigen beispielhaften Ausführungsformen kann jeder der Mehrzahl von Hardwarecodecs 230-1 bis 230-N ein Kern genannt werden. Jeder der Mehrzahl von Hardwarecodecs 230-1 bis 230-N kann jeweils einen oder mehrere Speicher MEM1 bis MEMN aufweisen. Jeder der Speicher MEM1 bis MEMN kann Informationen von einem oder mehreren codierten und/oder decodierten Bildern speichern und/oder eine In-Loop-Filterung des einen oder 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 einen NAND-Flashschnittstelle sein. Wenn der dritte Speicher 305 eine eingebettete Multimediakarte (eMMC = embedded Multimedia Card = eingebettete Multimediakarte) ist, kann die dritte Speicherschnittstelle eine eMMC-Schnittstelle sein. Zur Zweckmäßigkeit der Beschreibung sind in 1 drei Speicherschnittstellen 241, 243 und 245 und 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 des vorliegenden erfinderischen Konzepts nicht durch die Anzahl von Speicherschnittstellen und Speichern, welche mit den Speicherschnittstellen verbunden sind, beschränkt.
  • Die Anzeigeschnittstelle 260 kann Daten, beispielsweise Videodaten, zu der Anzeige 400 unter einer Steuerung der CPU 210A, der GPU 220 oder jedes der Mehrzahl von Hardwarecodecs 230-1 bis 230-N übertragen. In einigen beispielhaften Ausführungsformen kann die Anzeigeschnittstelle 260 als eine serielle Anzeigeschnittstelle (DSI = Display Serial Interface = serielle Anzeigeschnittstelle) einer mobilen Industrieprozessorschnittstelle MIPI®, eine eingebettete Anzeigeport(eDP = embedded Display Port)-Schnittstelle oder eine High Definition Multimediaschnittstelle (HDMI = High Definition Multimedia Interface) etc. ausgeführt sein. Diese Schnittstellen sind jedoch 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 eine universelle serielle Busschnittstelle (USB = Universal Serial Businterface = universelle serielle Busschnittstelle), eine Ethernetschnittstelle, eine Bluetoothschnittstelle, ein Wi-Fi-Schnittstelle oder eine Long Term Evolution(LTETM)-Schnittstelle etc. ausgeführt sein. Diese Schnittstellen sind jedoch nur beispielhaft und die Empfängerschnittstelle 270 ist nicht darauf beschränkt.
  • Die Kameraschnittstelle 250 kann Bilddaten empfangen, welche von der Kamera 500 ausgegeben werden. In einigen beispielhaften Ausführungsformen kann die Kameraschnittstelle 250 eine serielle Kameraschnittstelle (CSI = Camera Serial Interface = serielle Kameraschnittstelle) einer 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 10 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 sind, dieselbe für jede Scheibe sein. Das Bild 10 kann ein zu decodierender Frame beziehungsweise Rahmen, ein Originalbild, ein Roh-Bitstrom eines Bildes, welches zu codieren ist, ein Frame, welcher zu decodieren ist, ein codiertes Bild oder ein codierter Bitstrom EB 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 Hocheffizienzvideocodier(HEVC = High Efficient Video Coding = Hocheffizienzvideocodier)-Standard kann der Block eine Coding Tree Einheit beziehungsweise Codierbaumeinheit (CTU = Coding Tree Unit) sein. In einigen beispielhaften Ausführungsformen kann das Bild 10 ein zu codierender Frame, ein Originalbild, ein Roh-Bitstrom eines zu codierenden Bildes, ein zu decodierender Frame, ein codiertes Bild oder ein codierter Bitstrom EB etc. sein.
  • Ein Codierer kann die Blöcke in einem Bild codieren und ein Decodierer beziehungsweise Decoder 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 Decodierer keine In-Loop-Filterung der Ränder des verarbeiteten ersten Blocks 0 durch, da es keinen Block vor dem bearbeiteten ersten Block 0 gibt. Andererseits kann nach dem Verarbeiten eines zweiten Blocks 1 in der ersten Scheibe SLICE1 der Codierer oder Decodierer eine In-Loop-Filterung des Randes des ersten Blocks 0 und des zweiten Blocks 1 basierend auf ersten Videodaten des ersten verarbeiteten Blocks 0 und zweiten Videodaten des verarbeiteten zweiten Blocks 1 durchführen. Das heißt, der Codierer oder Decodierer kann eine In-Loop-Filterung auf einer Blockgrenze durchführen. Hier bezeichnet eine Blockgrenze eine Grenze zwischen zwei Blöcken.
  • Nachdem ein 23. verarbeiteter Block 22 in der zweiten Scheibe SLICE2 verarbeitet ist, kann der Codierer oder der Decodierer eine In-Loop-Filterung des Randes des 23. verarbeiteten Blocks 22 in der zweiten SLICE2 und vorangehender Blöcke 14 und 21 in der ersten Scheibe SLICE1 basierend auf Videodaten der Blöcke 14, 21 und 23 durchführen. Das heißt, der Codierer oder Decodierer kann eine In-Loop-Filterung auf einer Scheibengrenze durchführen.
  • Nachdem ein 41. verarbeiteter Block 40 in der dritten Scheibe SLICE3 verarbeitet ist, kann der Codierer oder Decodierer eine In-Loop-Filterung des Randes des 41. verarbeiteten Blocks 40 in der dritten SLICE3 und des vorangehenden Blocks 32 in der ersten Scheibe SLICE2 basierend auf Videodaten des 33. Blocks 32 durchführen. Das heißt, der Codierer oder Decodierer kann eine In-Loop-Filterung auf einer Scheibengrenze durchführen. In anderen Worten gesagt kann eine In-Loop-Filterung eines gegenwärtigen verarbeiteten Blockes 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 einem Videocodierstandard von H.264 entspricht, eine In-Loop-Filterung für jeden Block durchführen. Gemäß beispielhaften Ausführungsformen kann ein Decoder, welcher einen In-Loop-Filter aufweist, welcher einem Videocodierstandard von HEVC entspricht, 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, Vorhersagemodusinformationen und/oder einem Quantisierungsparameter etc. durchgeführt werden. Die In-Loop-Filterung gemäß dem Videocodierstandard von HEVC kann basierend auf einem Bewegungsvektor, Vorhersagemodusinformationen, einem Quantisierungsparameter und/oder einer Mehrzahl von Parametern von einem SAO-Filter etc. durchgeführt werden. Der Vorhersagemodus kann Intra-Vorhersagemodusinformationen oder Inter-Vorhersagemodusinformationen aufweisen.
  • 3 ist ein Konzeptdiagramm, welches eine Sequenz beziehungsweise Abfolge von Bildern veranschaulicht, welche jeweils zwei Scheiben aufweisen. 4 ist ein Konzeptdiagramm, welches eine Prozedur beziehungsweise ein Verfahren zum Verarbeiten der Sequenz von Bildern, welche in 3 gezeigt sind, 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 Hardwarecodec 230-1 sein, und ein zweiter Kern CORE1 kann ein zweiter Hardwarecodec 230-2 sein. Der Codierer oder Decodierer, welche unter Bezugnahme auf 2 beschrieben sind, können 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. Jedes 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. Wenn 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, der zu codieren ist, bedeuten, ein Originalbild, einen Roh-Bitstrom von einem Bild, welches zu codieren ist, einen zu decodierenden Frame, ein codiertes Bild oder einen codierten Bitstrom EB, welcher von der Empfängerschnittstelle 270 empfangen wird, etc.
  • In einigen beispielhaften Ausführungsformen kann die CPU 210A die Empfängerschnittstelle 270 derart steuern, dass ein ungerades 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 können und gerade Bilder dem zweiten Kern CORE1 zugeordnet werden können.
  • Bezug nehmend auf 4 kann in einer ersten Zeitdauer T1 der erste Kern CORE0 die erste Scheibe 610-1 des ersten Bilds 610 verarbeiten. Die erste Scheibe 612-1 des zweiten Bildes 612 kann durch den zweiten Kern CORE1 in einer zweiten Zeitdauer T2 verarbeitet werden, nachdem die Verarbeitung der ersten Scheibe 610-1 des ersten Bildes 610 in der ersten Zeitdauer T1 durch den ersten Kern CORE0 vollendet 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. Die Verarbeitung 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 ”verarbeiten parallel durchgeführt”, dass es einen Überlapp in der Verarbeitung gibt. Demnach bezeichnet hier ”parallel”, dass es einen Überlapp bei 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 vorgesehen sind, um vorzuschlagen, dass die Startzeiten oder die Endzeiten für die Verarbeitung exakt zusammenfallen. Beispielsweise sind die gepunkteten Linien in 4 nicht vorgesehen, um vorzuschlagen, dass die Startzeiten oder die Endzeiten für die Verarbeitung der ersten Scheibe 612-1 und der zweiten Scheibe 610-2 exakt zusammenfallen. In einigen beispielhaften Ausführungsformen jedoch können die Startzeiten exakt zusammenfallen und/oder die Endzeiten können exakt zusammenfallen.
  • 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ärtig 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, der erste Kern CORE0 kann 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, sodass keine zusätzliche Zeit für die In-Loop-Filterung verwendet 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 können 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 auf 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-2 und die In-Loop-Filterung des Randes der ersten Scheibe 612-2 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 verwendet wird. Der zweite Kern CORE1 kann demnach eine 1-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 Sequenz beziehungsweise eine Abfolge von Bildern veranschaulicht, welche jeweils zwei Scheibengruppen aufweisen. 6 ist ein Konzeptdiagramm, welches eine Prozedur zum Verarbeiten der Sequenz von Bildern, welche in 5 gezeigt ist, durch zwei Kerne veranschaulicht.
  • 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 Kern CORE1 entsprechen können. Die Sequenz 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 der Verarbeitungskomplexität oder der Größe einer Mehrzahl von unterteilten Bereichen in dem Bild 620 unterteilen. 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 einer 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 durch eine Decodierzeit und/oder Codierzeit und/oder eine Größe von Scheiben in Einheiten von Blöcken eines Bildes etc. definiert sein.
  • Wenn m eine natürliche Zahl ist, welche gleich oder größer als 4 ist, kann in 5 der erste Kern CORE0 das Bild 624 ähnlich 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 jeweils in eine erste Verarbeitungseinheit und eine zweite Verarbeitungseinheit für die zwei Kerne CORE0 und CORE1 unterteilt zu sein, kann zum Zweck der zweckmäßigen beziehungsweise vorteilhaften Beschreibung der 5 und 6 eine Anzahl von Verarbeitungseinheiten in einem Bild gemäß einer Anzahl von Kernen für eine Verarbeitung der Einheiten variieren.
  • Beispielsweise können eine Verarbeitungszeit zum Verarbeiten der drei Scheiben SLICE1-3 bis SLICE1-5 durch den ersten Kern CORE0 und eine Verarbeitungszeit für ein Verarbeiten der zwei Scheiben SLICE2-1 bis SLICE2-2 durch den zweiten Kern CORE1 im Wesentlichen dieselben sein. Hier kann die Bedeutung von ”im Wesentlichen dieselbe” ”ähnlich, nahezu dieselbe, beinahe dieselbe oder dieselbe mit einer zulässigen Differenzspanne” einschließen.
  • 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, ein Originalbild, ein Roh-Bitstrom eines zu codierenden Bildes, ein zu decodierender Frame, ein codiertes Bild oder ein codierter Bitstrom EB sein, welcher über die Empfängerschnittstelle 270 etc. empfangen wird.
  • Sich 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 Bildes 620 verarbeiten. In der ersten Zeitdauer T11 kann der erste Kern CORE0 eine In-Loop-Filterung an beziehungsweise auf 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 ein erster Kern CORE0 eine In-Loop-Filterung auf einer Grenze der Scheiben SLICE1-2 und SLICE1-3 für jeden Block basierend auf dem Verarbeitungsergebnis der Scheibe SLICE1-2 durchführen. In der zweiten Zeitdauer T12 kann der erste Kern CORE0 eine In-Loop-Filterung auf 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 auf 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 Kern CORE1 eine In-Loop-Filterung für die zwei Scheiben SLICE2-1 und SLICE2-2 durchführen kann, sodass keine zusätzliche Zeit für die 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.
  • 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 T13 kann der erste Kern CORE0 eine In-Loop-Filterung auf 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 fünften Scheibe SLICE2-5 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 auf einer Grenze der Scheiben SLICE3-1 und SLICE3-2 für jeden Block basierend auf dem Verarbeitungsergebnis der Scheibe SLICE3-1 durchführen. Zusätzlich kann in der dritten Zeitdauer T13 der zweite Kern CORE1 eine In-Loop-Filterung auf einer Grenze der Scheiben SLICE2-2 und SLICE2-3 für jeden Block basierend auf dem Verarbeitungsergebnis der Scheibe SLICE2-2 durchführen. In der dritten Zeitdauer T13 kann der zweite Kern CORE1 eine In-Loop-Filterung auf 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 auf 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 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 kann eine In-Loop-Filterung für die drei Scheiben SLICE2-3 bis SLICE2-5 durchführen, sodass keine zusätzliche Zeit für eine In-Loop-Filterung verwendet wird, beispielsweise keine zusätzliche Zeit zum Sammeln verteilter Scheiben über den ersten Kern CORE0 und den zweiten Kern CORE1.
  • 7 ist ein Konzeptdiagramm, welches eine Sequenz von Bildern veranschaulicht, welche jeweils drei Scheiben aufweisen. 8 ist ein Konzeptdiagramm, welches eine Prozedur zum Verarbeiten der Sequenz 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 Kern CORE1 und einem dritten Kern CORE2 entsprechen können. Der Codierer und/oder Decodierer, welcher in 2 beschrieben ist, kann in jeden 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, ein Originalbild, ein Roh-Bitstrom eines zu codierenden Bildes, ein zu decodierender Frame, ein codiertes Bild oder ein codierter Bitstrom EB, welcher über 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 Bildes 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 kann parallel in der zweiten Zeitdauer T22 durchgeführt werden.
  • In der zweiten Zeitdauer T22 kann der erste Kern CORE0 eine In-Loop-Filterung auf 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 zugeordnet 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 Bildes 630 verarbeiten, der zweite Kern CORE1 kann die zweite Scheibe SLICE2-2 des zweiten Bildes 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 auf 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 auf 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 Bildes 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 eine Verarbeitung der Scheiben des ersten Bildes 630 beendet, der erste Kern CORE0 zu dem nächsten Bild in der Sequenz 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 auf 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 auf 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 eine Operation jedes Kerns der Kerne CORE0, CORE1 und CORE2 fortdauern beziehungsweise fortfahren, um jeweilige Scheiben in einer ähnlichen Art und Weise wie in der Operation in der ersten bis fünften Zeitdauer T21 bis T24 zu verarbeiten.
  • 9 ist ein Konzeptdiagramm, welches eine Bewegungsvektorsuche 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, wenn jede der Scheiben 612-2 und 614-1 parallel durch die unterschiedlichen Kerne CORE0 und CORE1 verarbeitet wird, der erste Kern sich nicht auf die zweite Scheibe 612-2 des zweiten Bildes 612 beziehen, welche nun verarbeitet wird. Ebenso kann die Scheibe 614-1 nicht in der Lage sein, sich auf wenige Bodenpixel der Scheibe 612-1 zu beziehen, wenn der Rand zwischen der Scheibe 612-1 und 612-2 unter einer In-Loop-Filteroperation zu der Zeit des Verarbeitens der Scheibe 614-1 ist (in dem H.264-Standart können die wenigen Bodenpixel sechs Pixel sein).
  • Das Datenverarbeitungssystem 100A kann das dritte Bild 614 codieren, um die Abhängigkeit zwischen den Scheiben SLICE2-2 und SLICE3-1 bei einem parallelen Verarbeiten durch ein Bestimmen eines Referenzbildes und einer Koordinate eines übereinstimmenden Blocks (oder Referenzblocks) basierend auf der Abhängigkeit zu vermeiden oder zu verringern. Beispielsweise kann, wenn die erste Scheibe 614-1 codiert ist, ein Bewegungsvektor des Makroblocks in der ersten Scheibe 614-1 bestimmt werden, um eine Abhängigkeit zu verhindern durch ein Veranlassen des Makroblocks, sich auf eine der Scheiben 610-1, 610-2 und 612-1 anstelle der zweiten Scheibe 612-2 mit einigen Restriktionen der Bodenpixel, welche durch die In-Loop-Filteroperation verarbeitet worden sind, zu beziehen. Als ein Ergebnis kann die Abhängigkeit bei einer parallelen Verarbeitung verringert werden.
  • Das Datenverarbeitungssystem 100A kann erzeugen und sich beziehen auf eine Bewegungsbeschränkungs-Scheibengruppe, um eine Abhängigkeit zwischen Scheiben, welche parallel verarbeitet werden zu verringern, wenn die Scheiben codiert werden. Die Bewegungseinschränkungs-Scheibengruppe kann Informationen zum Einschränken eines Referenzbildes oder eines Referenzbereichs des vorangehenden Bildes aufweisen, auf welches Bezug durch eine gegenwärtige Verarbeitungsscheibe genommen wird. Die Bewegungsbeschränkungs-Scheibengruppe kann in einem Speicher 301, 303 oder 305 in dem Datenverarbeitungssystem 100A oder in einem Speicher jedes der Kerne 230-1 bis 230-N gespeichert sein.
  • 10 ist ein Konzeptdiagramm, welches eine Sequenz von Bildern veranschaulicht, von welchen jedes zwei Kacheln gemäß einer beispielhaften Ausführungsform aufweist. 11 ist ein Konzeptdiagramm, welches eine Prozedur zum Verarbeiten der Sequenz von Bildern, welche in 10 gezeigt ist, durch zwei Kerne veranschaulicht.
  • Ein Pfeil, welcher in jedem einer Mehrzahl von Bildern 640, 642, 644 und 646 gezeigt ist, veranschaulicht 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 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 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 aufweisen, und eine zweite Verarbeitungseinheit TILE1-2, TILE2-2, TILE3-2 und TILE4-2. Das heißt, dass beispielsweise eine erste Verarbeitungseinheit von Bild 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, ein Originalbild, ein Roh-Bitstrom eines zu codierenden Bildes, ein zu decodierender Frame, 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 Bilds 640 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 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 den 4, 6, 8, 11, 14 verwendet werden, diese Linien nur vorgesehen sind zur Erleichterung der Beschreibung und nicht vorgesehen sind, um vorzuschlagen, dass die Startzeiten oder die Endzeiten für die Verarbeitung genau zusammenfallen. Beispielsweise sind die gepunkteten Linien in 11 nicht beabsichtigt, um vorzuschlagen, dass die Startzeiten oder die Endzeiten für eine Verarbeitung der ersten Kachel TILE2-1 und der zweiten Kachel TILE2-1 exakt zusammenfallen. In einigen beispielhaften Ausführungsformen jedoch können die Startzeiten exakt zusammenfallen und/oder die Endzeiten können exakt zusammenfallen.
  • Zusätzlich kann in der zweiten Zeitdauer T32 der erste Kern CORE0 eine In-Loop-Filterung auf 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 ein Verarbeiten 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 die In-Loop-Filterung verwendet wird.
  • In einer dritten Zeitdauer T33 kann der erste Kern CORE0 die erste Kachel 3-1 des dritten Bildes 644 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 auf 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 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 in einer ähnlichen Art und Weise wie in der Operation in der dritten Zeitdauer T33 zu verarbeiten.
  • 12 ist ein Konzeptdiagramm, welches eine Sequenz von Bildern veranschaulicht, von welchen jedes zwei Kacheln aufweist, welche jeweils unter Verwendung einer horizontalen Partitionierung partitioniert sind.
  • Ein Pfeil, welcher in jedem der 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 ein zweiter Kern CORE1 kann ein zweiter Hardwarecodec 230-2 sein. Operationen 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 kann einen 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, ein Originalbild, ein Roh-Bitstrom eines zu codierenden Bildes, ein zu decodierender Frame, ein codiertes Bild oder ein codierter Bitstrom EB, welcher durch die Empfängerschnittstelle 270 empfangen wird, etc. sein.
  • In einer ersten Zeitdauer T31 kann der erste Kern CORE0 die erste Kachel TILE1-1 des ersten Bilds 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 auf 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 ein Verarbeiten 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 die In-Loop-Filterung verwendet wird.
  • In einer dritten Zeitdauer T33 kann der erste Kern CORE0 die erste Kachel 3-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 auf 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 in einer ähnlichen Art und Weise wie in der Operation in der dritten Zeitdauer T33 zu verarbeiten.
  • 13 ist ein Konzeptdiagramm, welches eine Sequenz von Bildern veranschaulicht, von welchen jedes jeweils vier Kacheln aufweist, welche sowohl horizontale als auch vertikale Partitionen beziehungsweise Teile haben. 14 ist ein Konzeptdiagramm, welches eine Prozedur zum Verarbeiten der Sequenz von Bildern, welche in 13 gezeigt sind, durch zwei Kerne veranschaulicht.
  • Ein Pfeil, welcher in jedem der 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 kann 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-2 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, 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 Bilds 660 verarbeiten und eine In-Loop-Filterung auf 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 ersten Kern CORE1 zugeordnet werden.
  • In einer zweiten Zeitdauer T52 kann der erste Kern CORE0 die dritte Kachel TILE1-3 und die 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 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 oben diskutierten Fall bezeichnet hier ”parallel”, 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 werden, 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 zusammenfallen. In einigen beispielhaften Ausführungsformen jedoch können die Startzeiten exakt zusammenfallen und/oder die Endzeiten können exakt zusammenfallen.
  • Zusätzlich kann in der zweiten Zeitdauer T52 der erste Kern CORE0 eine In-Loop-Filterung auf 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 auf 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 auf 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 einer zweiten Zeitdauer T52 kann der zweite Kern CORE1 eine In-Loop-Filterung auf einer Grenze der Kacheln TILE2-1 und TILE2-2 des zweiten Bildes 662 für jeden Block basierend auf einem Verarbeitungsergebnis der ersten Kachel TILE2-1 durchführen.
  • Das heißt, dass die In-Loop-Filterung auf den Grenzen der verarbeiteten Kacheln in der zweiten Zeitdauer T52 durchgeführt wird, 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 in einer ähnlichen Art und Weise wie in der Operation in der zweiten Zeitdauer T52 zu verarbeiten.
  • 15 ist ein Blockschaltbild, welches einen Hardwarecodec veranschaulicht, welcher in 1 gezeigt ist.
  • 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 hat, beispielsweise einen niedrigen Pegel beziehungsweise Low-Pegel. Die Auswahlschaltung 701 kann einen codierten Bitstrom EBS an den Decoder 800 in Antwort auf ein Auswahlsignal SEL ausgeben, wenn das Auswahlsignal SEL einen zweiten Pegel, beispielsweise einen hohen Pegel beziehungsweise High-Pegel hat.
  • Das Auswahlsignal SEL kann durch die CPU 210A vorgesehen werden. Die Bilddaten oder die Videodaten INV können durch die Kameraschnittstelle 250 vorgesehen werden, und der codierte Bitstrom EBS kann durch die Empfängerschnittstelle 270 oder die Speicherschnittstelle 240 vorgesehen sein.
  • Der Codierer 700 kann die ausgegebenen Bilddaten oder die ausgegebenen Videodaten INV von der Auswahlschaltung 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 EBS, 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 Decoder 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-Deblockier-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 beziehungsweise Predictor 710, einen Subtraktor beziehungsweise 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 residuellen Block beziehungsweise 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 beziehungsweise inverse Transformierer 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 800 einen Entropiedecoder 810, einen inversen Quantisierer 820, einen inversen Umwandler 830, einen Addierer 850 und einen In-Loop-Filter 860 aufweisen.
  • Der Entropiedecoder 810 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 810 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 860 ausgegeben wird, und den vorhergesagten Block ausgeben.
  • Der Addierer 850 kann den gegenwärtigen Block rekonstruieren durch ein Addieren des rekonstruierten verbleibenden Blocks, welcher von dem In-Loop-Filter 860 ausgegeben wird, und des vorhergesagten Blocks, welcher von dem Bewegungskompensator 840 ausgegeben wird, und den rekonstruierten gegenwärtigen Block ausgeben.
  • Der In-Loop-Filter 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 die rekonstruierten Videodaten RV durch einen Block ausgeben kann.
  • In einigen beispielhaften Ausführungsformen können die In-Loop-Filter 790 und 860 jeweils einen De-Blockierfilter und einen Sample Adaptiv Offset(SAO)-Filter aufweisen.
  • 18 ist ein Blockschaltbild, welches ein Datenverarbeitungssystem gemäß einer beispielhaften Ausführungsform veranschaulicht.
  • Bezug nehmend auf 18 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), einem Anwendungs-Prozessor (AP) 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) 240, eine Anzeigeschnittstelle (I/F) 260 und eine Empfängerschnittstelle (I/F) 270 aufweisen. Wenn das Datenverarbeitungssystem 100A weiterhin eine Kamera 500 aufweist, kann der Controller 200A weiterhin eine Kameraschnittstelle (I/F) 250 aufweisen.
  • Der Controller 200B, welcher in 18 gezeigt ist, ist gleich 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 oder ähnlich dem Betrieb von jedem 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 beziehungsweise Bestandteile 701, 700 und 800, welche unter Bezugnahme auf die 15 bis 17 beschrieben sind, aufweisen. 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.
  • 19 ist ein Blockschaltbild, welches ein Datenverarbeitungssystem gemäß einer beispielhaften Ausführungsform veranschaulicht.
  • Bezug nehmend auf 19 kann ein Datenverarbeitungssystem 100C einen Controller beziehungsweise eine Steuerung 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 = Integrated Circuit = integrierte Schaltung), einem Ein-Chip-System (SoC), einem Anwendungs-Prozessor (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 weiterhin eine Kamera 500 aufweist, kann der Controller 200C weiterhin eine Kameraschnittstelle (I/F) 250 aufweisen.
  • Der Controller 200C, welcher in 18 gezeigt ist, ist gleich oder ähnlich zu dem Controller 200A, welcher in 1 gezeigt ist in Hinsicht auf die Struktur und den Betrieb mit Ausnahme dessen, dass die CPU 210B eine Mehrzahl von Kernen CORE1 bis COREN aufweist.
  • Der Betrieb beziehungsweise Operationen jedes der Mehrzahl von Kernen CORE1 bis COREN kann ähnlich oder gleich zu den Operationen beziehungsweise 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 (beispielsweise einen Cache) haben, welcher jedem der Speicher MEM1 bis MEMN entspricht.
  • Jeder der Mehrzahl von Kernen 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 jeweils einem ersten Kern CORE1, einem zweiten Kern CORE2 und einem dritten Kern CORE2 in 19 entsprechen wenn N drei ist.
  • Der Softwarecodec, 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.
  • 20 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 zugewiesen. 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 zugewiesen werden. Jedes des ersten Bildes, des zweiten Bildes und des dritten Bildes kann eine erste Scheibe (oder eine erste Kachel) und eine zweite Scheibe (oder eine zweite Kachel) jeweils 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 Bildes durch den ersten Kern verarbeitet wird. In Operation S120 kann der erste Kern weiterhin 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 weiter 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 Zuweisen jedes einer Mehrzahl von Bildern zu jedem einer Mehrzahl von Kernen und ein paralleles Verarbeiten der Mehrzahl von Bildern durch die Mehrzahl von Kernen verwendet werden.
  • Obwohl das vorliegende erfinderische Konzept unter Bezugnahme auf beispielhafte Ausführungsformen davon beschrieben wurde, 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-2015-0025676 [0001]

Claims (20)

  1. Anwendungs-Prozessor, der Folgendes aufweist: einen ersten Kern (CORE0), welcher konfiguriert ist, um ein erstes Bild (610, 620, 630, 640, 650, 660), welches eine erste Verarbeitungseinheit und eine zweite Verarbeitungseinheit aufweist, zu verarbeiten; und einen zweiten Kern (CORE1), welcher konfiguriert ist, um ein zweites Bild (611, 621, 631, 641, 651, 661), welches eine dritte Verarbeitungseinheit und eine vierte Verarbeitungseinheit aufweist, zu verarbeiten wobei der erste Kern (CORE0) und der zweite Kern (CORE1) konfiguriert sind, um eine Verarbeitung der zweiten Verarbeitungseinheit und der dritten Verarbeitungseinheit jeweils parallel durchzuführen.
  2. Anwendungs-Prozessor nach Anspruch 1, wobei der erste Kern (CORE0) konfiguriert ist, um das erste Bild (610, 620, 630, 640, 650, 660) in die erste Verarbeitungseinheit und die zweite Verarbeitungseinheit basierend auf einer Verarbeitungskomplexität des ersten Bildes (610, 620, 630, 640, 650, 660) zu unterteilen, der zweite Kern (CORE1) konfiguriert ist, um das zweite Bild (611, 621, 631, 641, 651, 661) in die dritte Verarbeitungseinheit und die vierte Verarbeitungseinheit basierend auf einer Verarbeitungskomplexität des zweiten Bildes (611, 621, 631, 641, 651, 661) zu unterteilen, und wenn eine Anzahl von Scheiben in der zweiten Verarbeitungseinheit unterschiedlich von einer Anzahl von Scheiben in der dritten Verarbeitungseinheit ist, der erste Kern (CORE0) konfiguriert ist, um die Verarbeitung der zweiten Verarbeitungseinheit in einer ersten Zeitdauer zu vollenden, und der zweite Kern (CORE1) konfiguriert ist, um die Verarbeitung der dritten Verarbeitungseinheit in der ersten Zeitdauer zu vollenden.
  3. Anwendungs-Prozessor nach Anspruch 1, wobei der erste Kern (CORE0) konfiguriert ist, um das erste Bild (610, 620, 630, 640, 650, 660) in die erste Verarbeitungseinheit und die zweite Verarbeitungseinheit basierend auf einer Verarbeitungskomplexität des ersten Bildes (610, 620, 630, 640, 650, 660) zu unterteilen, der zweite Kern (CORE1) konfiguriert ist, um das zweite Bild (611, 621, 631, 641, 651, 661) in die dritte Verarbeitungseinheit und die vierte Verarbeitungseinheit basierend auf einer Verarbeitungskomplexität des zweiten Bildes (611, 621, 631, 641, 651, 661) zu unterteilen, und wenn eine Anzahl von Kacheln in der zweiten Verarbeitungseinheit unterschiedlich von einer Anzahl von Kacheln in der dritten Verarbeitungseinheit ist, der erste Kern (CORE0) konfiguriert ist, um die Verarbeitung der zweiten Verarbeitungseinheit in einer ersten Zeitdauer zu vollenden, und der zweite Kern (CORE1) konfiguriert ist, um die Verarbeitung der dritten Verarbeitungseinheit in der ersten Zeitdauer zu vollenden.
  4. Anwendungs-Prozessor nach Anspruch 1, wobei der erste Kern (CORE0) einen In-Loop-Filter aufweist, welcher einem H.264 Videocodierstandard entspricht, und wobei der zweite Kern (CORE1) konfiguriert ist, um die dritte Verarbeitungseinheit zu verarbeiten, während der erste Kern (CORE0) die zweite Verarbeitungseinheit verarbeitet und eine In-Loop-Filterung eines verarbeiteten Blocks in der zweiten Verarbeitungseinheit unter Verwendung des In-Loop-Filters durchführt.
  5. Anwendungs-Prozessor nach Anspruch 1, wobei der erste Kern (CORE0) einen In-Loop-Filter aufweist, welcher einem Hocheffizienz(HEVC)-Videocodierstandard entspricht, und wobei der zweite Kern (CORE1) konfiguriert ist, um die dritte Verarbeitungseinheit zu verarbeiten, während der erste Kern (CORE0) die zweite Verarbeitungseinheit verarbeitet und eine In-Loop-Filterung eines verarbeiteten Blocks in der zweiten Verarbeitungseinheit unter Verwendung des In-Loop-Filters durchführt.
  6. Anwendungs-Prozessor nach Anspruch 1, wobei jede der ersten Verarbeitungseinheit, der zweiten Verarbeitungseinheit, der dritten Verarbeitungseinheit und der vierten Verarbeitungseinheit wenigstens eine Scheibe aufweist.
  7. Anwendungs-Prozessor nach Anspruch 1, wobei jede der ersten Verarbeitungseinheit, der zweiten Verarbeitungseinheit, der dritten Verarbeitungseinheit und der vierten Verarbeitungseinheit wenigstens eine Kachel aufweist.
  8. Anwendungs-Prozessor nach Anspruch 1, wobei der erste Kern (CORE0) in einem ersten Hardwarecodec ausgeführt ist, und der zweite Kern (CORE1) in einem zweiten Hardwarecodec ausgeführt ist.
  9. Anwendungs-Prozessor nach Anspruch 1, wobei der erste Kern (CORE0) ein erster Kern einer zentralen Verarbeitungseinheit (CPU) ist, und der zweite Kern (CORE1) ein zweiter Kern der CPU ist.
  10. Anwendungs-Prozessor nach Anspruch 1, wobei der zweite Kern (CORE1) konfiguriert ist, um die Verarbeitung der dritten Verarbeitungseinheit nach einer Verzögerung einer Verarbeitungszeit von dem Verarbeiten der ersten Verarbeitungseinheit durch den ersten Kern (CORE0) durchzuführen.
  11. Anwendungs-Prozessor nach Anspruch 1, wobei ein Abschnitt einer Verarbeitungszeit des Verarbeiten der zweiten Verarbeitungseinheit mit einem Abschnitt einer Verarbeitungszeit des Verarbeitens der dritten Verarbeitungseinheit überlappt.
  12. Ein-Chip-System, das Folgendes aufweist: eine Empfängerschnittstelle, welche konfiguriert ist, um ein erstes Bild (610, 620, 630, 640, 650, 660) zu empfangen, welches eine erste Verarbeitungseinheit und eine zweite Verarbeitungseinheit aufweist, und ein zweites Bild (611, 621, 631, 641, 651, 661), welches eine dritte Verarbeitungseinheit und eine vierte Verarbeitungseinheit aufweist; einen ersten Kern (CORE0), welcher konfiguriert ist, um das erste Bild (610, 620, 630, 640, 650, 660) zu verarbeiten; und einen zweiten Kern (CORE1), welcher konfiguriert ist, um das zweite Bild (611, 621, 631, 641, 651, 661) zu verarbeiten, wobei der erste Kern (CORE0) und der zweite Kern (CORE1) konfiguriert sind, um eine Verarbeitung der zweiten Verarbeitungseinheit und der dritten Verarbeitungseinheit jeweils parallel durchzuführen.
  13. Ein-Chip-System nach Anspruch 12, wobei, wenn eine Anzahl von Scheiben in der zweiten Verarbeitungseinheit unterschiedlich von einer Anzahl von Scheiben in der dritten Verarbeitungseinheit ist, der erste Kern (CORE0) konfiguriert ist, um die Verarbeitung der zweiten Verarbeitungseinheit in einer ersten Zeitdauer zu vollenden, und der zweite Kern (CORE1) konfiguriert ist, um die Verarbeitung der dritten Verarbeitungseinheit in der ersten Zeitdauer zu vollenden.
  14. Ein-Chip-System nach Anspruch 12, wobei, wenn eine Anzahl von Kacheln in der zweiten Verarbeitungseinheit unterschiedlich von einer Anzahl von Kacheln in der dritten Verarbeitungseinheit ist, der erste Kern (CORE0) konfiguriert ist, um die Verarbeitung der zweiten Verarbeitungseinheit in einer ersten Zeitdauer zu vollenden, und der zweite Kern (CORE1) konfiguriert ist, um die Verarbeitung der dritten Verarbeitungseinheit in der ersten Zeitdauer zu vollenden.
  15. Ein-Chip-System nach Anspruch 12, wobei der erste Kern (CORE0) einen In-Loop-Filter aufweist, welcher einem H.264 Videocodierstandard entspricht, und wobei der zweite Kern (CORE1) konfiguriert ist, um die dritte Verarbeitungseinheit zu verarbeiten, während der erste Kern (CORE0) die zweite Verarbeitungseinheit verarbeitet und eine In-Loop-Filterung eines verarbeiteten Blocks in der zweiten Verarbeitungseinheit unter Verwendung des In-Loop-Filters durchführt.
  16. Ein-Chip-System nach Anspruch 12, wobei der erste Kern (CORE0) einen In-Loop-Filter aufweist, welcher einem Hocheffizienz(HEVC)-Videocodierstandard entspricht, und wobei der zweite Kern (CORE1) konfiguriert ist, um die dritte Verarbeitungseinheit zu verarbeiten, während der erste Kern (CORE0) die zweite Verarbeitungseinheit verarbeitet und eine In-Loop-Filterung eines verarbeiteten Blocks in der zweiten Verarbeitungseinheit unter Verwendung des In-Loop-Filters durchführt.
  17. Verfahren zum Verarbeiten von Videodaten, das Folgendes aufweist: ein Zuweisen eines ersten Bildes (610, 620, 630, 640, 650, 660) der Videodaten zu einem ersten Kern (CORE0) und eines zweiten Bildes (611, 621, 631, 641, 651, 661) der Videodaten zu einem zweiten Kern (CORE1); ein Verarbeiten einer ersten Verarbeitungseinheit des ersten Bildes (610, 620, 630, 640, 650, 660) durch den ersten Kern (CORE0); ein Verarbeiten einer zweiten Verarbeitungseinheit des ersten Bildes (610, 620, 630, 640, 650, 660) durch den ersten Kern (CORE0); ein Verarbeiten einer dritten Verarbeitungseinheit des zweiten Bildes (611, 621, 631, 641, 651, 661) durch den zweiten Kern (CORE1) parallel mit dem Verarbeiten der zweiten Verarbeitungseinheit durch den ersten Kern (CORE0); und ein Durchführen einer In-Loop-Filterung der verarbeiteten ersten Verarbeitungseinheit und der verarbeiteten zweiten Verarbeitungseinheit basierend auf einem Verarbeitungsergebnis der ersten Verarbeitungseinheit.
  18. Verfahren nach Anspruch 17, wobei jede der ersten Verarbeitungseinheit, der zweiten Verarbeitungseinheit und der dritten Verarbeitungseinheit wenigstens eine Scheibe oder Kachel aufweist.
  19. Verfahren nach Anspruch 17, wobei die Videodaten ungerade Bilder und gerade Bilder aufweisen, wobei all die ungeraden Bilder der Videodaten dem ersten Kern (CORE0) zugewiesen werden und all die geraden Bilder der Videodaten dem zweiten Kern (CORE1) zugewiesen werden, bis die Verarbeitung der Videodaten vollendet ist.
  20. Verfahren nach Anspruch 17, weiterhin aufweisend: ein Zuweisen eines dritten Bildes (612, 622, 632, 642, 652, 662) der Videodaten zu einem dritten Kern (CORE2); und ein Verarbeiten einer vierten Verarbeitungseinheit des dritten Bildes (612, 622, 632, 642, 652, 662) durch den dritten Kern (CORE2) parallel mit dem Verarbeiten der dritten Verarbeitungseinheit des zweiten Bildes (611, 621, 631, 641, 651, 661).
DE102015116544.9A 2014-10-22 2015-09-30 Anwendungs-Prozessor zum Durchführen von In-Loop-Filterung, Verfahren davon und System mit demselben Withdrawn DE102015116544A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
IN5269/CHE/2014 2014-10-22
IN5269CH2014 2014-10-22
KR1020150025676A KR102299573B1 (ko) 2014-10-22 2015-02-24 실시간으로 인-루프 필터링을 수행할 수 있는 애플리케이션 프로세서, 이의 작동 방법, 및 이를 포함하는 시스템
KR10-2015-0025676 2015-02-24

Publications (1)

Publication Number Publication Date
DE102015116544A1 true DE102015116544A1 (de) 2016-04-28

Family

ID=55698702

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015116544.9A Withdrawn DE102015116544A1 (de) 2014-10-22 2015-09-30 Anwendungs-Prozessor zum Durchführen von In-Loop-Filterung, Verfahren davon und System mit demselben

Country Status (3)

Country Link
US (1) US10277913B2 (de)
CN (1) CN105554505B (de)
DE (1) DE102015116544A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014133481A1 (en) * 2013-02-26 2014-09-04 Hewlett-Packard Development Company, L.P. Multiview 3d telepresence
US10277913B2 (en) * 2014-10-22 2019-04-30 Samsung Electronics Co., Ltd. Application processor for performing real time in-loop filtering, method thereof and system including the same
CN110324625B (zh) * 2018-03-31 2023-04-18 华为技术有限公司 一种视频解码方法和装置
CN109862357A (zh) * 2019-01-09 2019-06-07 深圳威尔视觉传媒有限公司 低延迟的云游戏图像编码方法、装置、设备和存储介质
CN112514390B (zh) * 2020-03-31 2023-06-20 深圳市大疆创新科技有限公司 视频编码的方法和装置
US11734017B1 (en) 2020-12-07 2023-08-22 Waymo Llc Methods and systems for processing vehicle sensor data across multiple digital signal processing cores virtually arranged in segments based on a type of sensor
US20240040125A1 (en) * 2022-07-27 2024-02-01 Qualcomm Incorporated Tracking sample completion in video coding

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150025676A (ko) 2013-08-30 2015-03-11 주식회사 엠티티 제조가 용이한 led 조명장치의 led 조명냉각장치

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6055270A (en) * 1994-04-20 2000-04-25 Thomson Cosumer Electronics, Inc. Multiplexer system using constant bit rate encoders
US6963613B2 (en) * 2002-04-01 2005-11-08 Broadcom Corporation Method of communicating between modules in a decoding system
JP4374548B2 (ja) * 2005-04-15 2009-12-02 ソニー株式会社 復号装置および方法、記録媒体、並びに、プログラム
US8416857B2 (en) 2007-03-29 2013-04-09 James Au Parallel or pipelined macroblock processing
US8913670B2 (en) * 2007-08-21 2014-12-16 Blackberry Limited System and method for providing dynamic deblocking filtering on a mobile device
CN101137062A (zh) * 2007-09-20 2008-03-05 四川长虹电器股份有限公司 具有双核处理器的视频编码系统双核协同编码方法
JP5007259B2 (ja) * 2008-03-27 2012-08-22 ルネサスエレクトロニクス株式会社 画像符号化装置
JP5259625B2 (ja) 2008-05-23 2013-08-07 パナソニック株式会社 画像復号化装置、画像復号化方法、画像符号化装置、及び画像符号化方法
US8548061B2 (en) * 2008-08-05 2013-10-01 Panasonic Corporation Image decoding apparatus and image decoding method
JP2010109572A (ja) 2008-10-29 2010-05-13 Toshiba Corp 画像処理装置、及び方法
US8855191B2 (en) 2008-11-24 2014-10-07 Broadcast International, Inc. Parallelization of high-performance video encoding on a single-chip multiprocessor
KR20100071865A (ko) * 2008-12-19 2010-06-29 삼성전자주식회사 멀티 코어 프로세스 방식의 영상 신호 처리장치에서 영상 프레임 구성 및 복호화 방법과 그 영상 신호 처리장치
US20100169892A1 (en) * 2008-12-29 2010-07-01 Advanced Micro Devices, Inc. Processing Acceleration on Multi-Core Processor Platforms
CN101854538B (zh) * 2009-04-03 2012-06-27 联咏科技股份有限公司 运动图像处理方法及运动图像处理器
CN102687510B (zh) 2009-07-06 2014-11-05 松下电器产业株式会社 图像解码装置、图像编码装置、图像解码方法、图像编码方法及集成电路
JP5253312B2 (ja) 2009-07-16 2013-07-31 ルネサスエレクトロニクス株式会社 動画像処理装置およびその動作方法
US9525884B2 (en) * 2010-11-02 2016-12-20 Hfi Innovation Inc. Method and apparatus of slice boundary filtering for high efficiency video coding
US20120121018A1 (en) * 2010-11-17 2012-05-17 Lsi Corporation Generating Single-Slice Pictures Using Paralellel Processors
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
US9148669B2 (en) * 2011-03-10 2015-09-29 Sony Corporation High performance AVC encoder on a multi-core platform
US20120263225A1 (en) * 2011-04-15 2012-10-18 Media Excel Korea Co. Ltd. Apparatus and method for encoding moving picture
GB2493209B (en) * 2011-07-29 2016-02-17 Canon Kk Method and device for parallel decoding of scalable bitstream elements
US20140132837A1 (en) * 2011-09-05 2014-05-15 Cywee Group Limited Wireless video/audio data transmission system having i-frame only gop structure
US8958642B2 (en) 2011-10-19 2015-02-17 Electronics And Telecommunications Research Institute Method and device for image processing by image division
CN202696803U (zh) * 2012-02-08 2013-01-23 北京思比科微电子技术股份有限公司 一种图像编码传输控制芯片及系统
WO2014087861A1 (ja) * 2012-12-06 2014-06-12 ソニー株式会社 画像処理装置、画像処理方法、およびプログラム
US9621905B2 (en) 2012-06-29 2017-04-11 Qualcomm Incorporated Tiles and wavefront parallel processing
JP5995583B2 (ja) * 2012-07-26 2016-09-21 キヤノン株式会社 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法、及びプログラム
KR20140030473A (ko) * 2012-08-30 2014-03-12 삼성전자주식회사 멀티 뷰 영상 처리 방법 및 이를 수행하는 장치
JP6134281B2 (ja) * 2013-03-13 2017-05-24 三星電子株式会社Samsung Electronics Co.,Ltd. イメージを処理する電子装置及びその動作方法
CN103227919B (zh) * 2013-03-29 2015-11-25 苏州皓泰视频技术有限公司 一种基于多核处理器Tilera的SVC编码方法
JP2014207536A (ja) * 2013-04-12 2014-10-30 ソニー株式会社 画像処理装置および方法
US9628792B2 (en) * 2013-07-15 2017-04-18 Qualcomm Incorporated Cross-layer parallel processing and offset delay parameters for video coding
US9936207B2 (en) * 2013-10-14 2018-04-03 Qualcomm Incorporated Indication of parallel processing in video coding
KR20150057790A (ko) * 2013-11-20 2015-05-28 삼성전자주식회사 웨이브-프런트 어프로치에 기초한 비디오 프레임의 병렬 처리 방법
CN103838552B (zh) * 2014-03-18 2016-06-22 北京邮电大学 4g宽带通信系统多核并行流水线信号的处理系统和方法
US10277913B2 (en) * 2014-10-22 2019-04-30 Samsung Electronics Co., Ltd. Application processor for performing real time in-loop filtering, method thereof and system including the same

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150025676A (ko) 2013-08-30 2015-03-11 주식회사 엠티티 제조가 용이한 led 조명장치의 led 조명냉각장치

Also Published As

Publication number Publication date
US20160119635A1 (en) 2016-04-28
CN105554505B (zh) 2020-06-12
US10277913B2 (en) 2019-04-30
CN105554505A (zh) 2016-05-04

Similar Documents

Publication Publication Date Title
DE102015116544A1 (de) Anwendungs-Prozessor zum Durchführen von In-Loop-Filterung, Verfahren davon und System mit demselben
DE102015117561A1 (de) Datenverarbeitungssystem, das Bewegungskompensationsinformation modifiziert, und Verfahren zum Decodieren von Videodaten mit demselben
DE102019218837A1 (de) VERFAHREN UND SYSTE M ZUR NEURONALNETZ WERK-SCHLEIFENFILTERUNG ZUR VlDEOCODIERUNG
CN105474639B (zh) 视频编码装置、视频解码装置、视频系统、视频编码方法、视频解码方法以及程序
US9888245B2 (en) Image compression method and apparatus for performing amplitude decreasing processing
DE202016008175U1 (de) Adaptive gerichtete Intra-Prädiktion mit Blockgröße
DE112018000280T5 (de) Entblockungsfilterung für 360-video
DE202016008257U1 (de) Bewegungsvektorkodierung mit dynamischen Referenzbewegungsvektoren
US9510021B2 (en) Method and apparatus for filtering pixel blocks
DE102019209067A1 (de) Adaptive in-loop filtering for video coding
DE202016008178U1 (de) Bewegungsvektorvorhersage mittels eines vorhergehenden Einzelbildresiduums
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
CN102223538A (zh) 一种并行滤波的方法和装置
Egge et al. Using Daala intra frames for still picture coding
TWI691850B (zh) 用於進行即時迴路內濾波的應用處理器、用於該應用處理器之方法以及包括該應用處理器的系統
CN103731674A (zh) 一种h.264二维并行后处理去块滤波器硬件实现方法
DE102022126701A1 (de) Niederfrequente nichttrennbare transformation und mehrfachtransformationsauswahl-deadlock-prävention
US20230009225A1 (en) Media object compression/decompression with adaptive processing for block-level sub-errors and/or decomposed block-level sub-errors
CN112911312B (zh) 一种编码、解码方法、装置及其设备
US11363303B2 (en) Systems, methods, and apparatuses for processing video
DE202016008160U1 (de) Dynamischer Kodiermodus für Referenz-Bewegungsvektoren

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee