DE112018002110T5 - Systeme und verfahren für spiel-generierte bewegungsvektoren - Google Patents

Systeme und verfahren für spiel-generierte bewegungsvektoren Download PDF

Info

Publication number
DE112018002110T5
DE112018002110T5 DE112018002110.6T DE112018002110T DE112018002110T5 DE 112018002110 T5 DE112018002110 T5 DE 112018002110T5 DE 112018002110 T DE112018002110 T DE 112018002110T DE 112018002110 T5 DE112018002110 T5 DE 112018002110T5
Authority
DE
Germany
Prior art keywords
per
motion vectors
video
pixel
block motion
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112018002110.6T
Other languages
English (en)
Inventor
Michael Kopietz
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.)
Zenimax Media Inc
Original Assignee
Zenimax Media Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zenimax Media Inc filed Critical Zenimax Media Inc
Publication of DE112018002110T5 publication Critical patent/DE112018002110T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • EFIXED CONSTRUCTIONS
    • E05LOCKS; KEYS; WINDOW OR DOOR FITTINGS; SAFES
    • E05BLOCKS; ACCESSORIES THEREFOR; HANDCUFFS
    • E05B77/00Vehicle locks characterised by special functions or purposes
    • E05B77/54Automatic securing or unlocking of bolts triggered by certain vehicle parameters, e.g. exceeding a speed threshold
    • EFIXED CONSTRUCTIONS
    • E05LOCKS; KEYS; WINDOW OR DOOR FITTINGS; SAFES
    • E05BLOCKS; ACCESSORIES THEREFOR; HANDCUFFS
    • E05B79/00Mounting or connecting vehicle locks or parts thereof
    • E05B79/10Connections between movable lock parts
    • E05B79/20Connections between movable lock parts using flexible connections, e.g. Bowden cables
    • EFIXED CONSTRUCTIONS
    • E05LOCKS; KEYS; WINDOW OR DOOR FITTINGS; SAFES
    • E05BLOCKS; ACCESSORIES THEREFOR; HANDCUFFS
    • E05B83/00Vehicle locks specially adapted for particular types of wing or vehicle
    • E05B83/16Locks for luggage compartments, car boot lids or car bonnets
    • E05B83/24Locks for luggage compartments, car boot lids or car bonnets for car bonnets
    • EFIXED CONSTRUCTIONS
    • E05LOCKS; KEYS; WINDOW OR DOOR FITTINGS; SAFES
    • E05BLOCKS; ACCESSORIES THEREFOR; HANDCUFFS
    • E05B85/00Details of vehicle locks not provided for in groups E05B77/00 - E05B83/00
    • E05B85/20Bolts or detents
    • E05B85/24Bolts rotating about an axis
    • E05B85/243Bolts rotating about an axis with a bifurcated bolt
    • EFIXED CONSTRUCTIONS
    • E05LOCKS; KEYS; WINDOW OR DOOR FITTINGS; SAFES
    • E05BLOCKS; ACCESSORIES THEREFOR; HANDCUFFS
    • E05B85/00Details of vehicle locks not provided for in groups E05B77/00 - E05B83/00
    • E05B85/20Bolts or detents
    • E05B85/24Bolts rotating about an axis
    • E05B85/26Cooperation between bolts and detents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/527Global motion vector estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • EFIXED CONSTRUCTIONS
    • E05LOCKS; KEYS; WINDOW OR DOOR FITTINGS; SAFES
    • E05BLOCKS; ACCESSORIES THEREFOR; HANDCUFFS
    • E05B81/00Power-actuated vehicle locks
    • E05B81/12Power-actuated vehicle locks characterised by the function or purpose of the powered actuators
    • E05B81/16Power-actuated vehicle locks characterised by the function or purpose of the powered actuators operating on locking elements for locking or unlocking action
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F16ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
    • F16HGEARING
    • F16H59/00Control inputs to control units of change-speed-, or reversing-gearings for conveying rotary motion
    • F16H59/02Selector apparatus
    • F16H59/08Range selector apparatus
    • F16H59/10Range selector apparatus comprising levers
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F16ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
    • F16HGEARING
    • F16H63/00Control outputs from the control unit to change-speed- or reversing-gearings for conveying rotary motion or to other devices than the final output mechanism
    • F16H63/02Final output mechanisms therefor; Actuating means for the final output mechanisms
    • F16H63/30Constructional features of the final output mechanisms
    • F16H63/34Locking or disabling mechanisms
    • F16H63/36Interlocking devices
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/53Multi-resolution motion estimation; Hierarchical motion estimation

Abstract

Systeme und Verfahren zum integrierten Rendern von Grafik werden offenbart. In bestimmten Ausführungsformen verwenden die Systeme und Verfahren eine Grafik-Engine, eine Videocodierungsmaschine und eine Remote-Client-Codiermaschine, um Grafiken über ein Netzwerk zu rendern. Die Systeme und Verfahren beinhalten die Generierung von Pro-Pixel-Bewegungsvektoren, die in Pro-Block-Bewegungsvektoren am Grafikprozessor umgewandelt werden. Die Grafik-Engine speist diese Pro-Block-Bewegungsvektoren in eine Videocodiermaschine ein, sodass die Videocodiermaschine diese Vektoren in codierte Videodaten umwandeln kann, um sie an die Remote-Client-Codiermaschine zu übertragen.

Description

  • VERWANDTE ANMELDUNGEN
  • Die Anmeldung beansprucht den Vorteil der folgenden US-Provisionalanmeldungen Nr. 62/488,526, eingereicht am 21. April 2017, und Nr. 62/596,325, eingereicht am 8. Dezember 2017.
  • HINTERGRUND DER ERFINDUNG
  • Bei Remote-Gaming-Anwendungen, wobei ein serverseitiges Spiel von einem clientseitigen Spieler gesteuert wird, wird versucht, die Videoausgabe einer dreidimensionalen (3D)-Grafik-Engine in Echtzeit mit vorhandenen oder benutzerdefinierten Codierern zu codieren. Die interaktive Natur von Videospielen, insbesondere die Spieler-Rückmeldungsschleife zwischen Videoausgang und Spielereingang, macht das Spiel-Video-Streaming jedoch viel empfindlicher bezüglich Latenzzeiten als herkömmliches Video-Streaming. Bestehende Videocodierverfahren können Rechenleistung, und sonst aber wenig anderes, für eine Verkürzung der Codierzeit in Anspruch nehmen. Neue Verfahren zum Integrieren des Codierungsprozesses in den Videowiedergabeprozess können deutliche Verkürzungen der Codierungszeit bei gleichzeitiger Verringerung der Rechenleistung, Verbesserung der Qualität des codierten Videos und Beibehaltung des ursprünglichen Bitstream-Datenformats ermöglichen, um die Interoperabilität bestehender Hardwaregeräte zu erhalten.
  • Bestehende Videocodierstandards enthalten nur Farb- und Zeitinformationen in Bildsequenzen, um die Zeit, Größe oder Qualität der Videocodierung zu verbessern. Einige Codierungsstandards, wie beispielsweise die in der MPEG-Standardreihe, verwenden ein rechenintensives, blockbasiertes Bewegungsschätzverfahren, um die Objektbewegung, basierend auf den in einem Video enthaltenen Farbdaten, anzunähern. Diese blockbasierten Bewegungsschätzverfahren haben in der Vergangenheit zu einer signifikanten Verringerung der Größe des codierten Videos geführt, sind aber eine Quelle für signifikante Latenzzeiten in Echtzeit-Videostreaming-U mgebungen.
  • Das Integrieren des Codierungsprozesses in den Video-Renderprozess ermöglicht den Zugriff auf zusätzliche Datenquellen, die für die Verbesserung der Codierung genutzt werden können. So können beispielsweise einige 3D-Grafik-Engines, wie sie beispielsweise in einer Spielmaschine enthalten sind, bereits Bewegungsvektoren generieren, die die Bewegung jedes Pixels auf jedem Videobild perfekt beschreiben. Durch das Bereitstellen sowohl des endgültigen gerenderten Einzelbildes als auch durch das Einspeisen korrekt formatierter Bewegungsvektordaten in den Codierer kann der rechenintensivste und zeitaufwändigste Schritt im Video-Codierer, die Bewegungsschätzung, für jedes Zwischenbild übersprungen werden. Darüber hinaus sind die von der Grafik-Engine gelieferten Bewegungsvektoren genauer als die, die durch einen blockbasierten Bewegungsschätzalgorithmus angenähert werden, was die Qualität des codierten Videos verbessert.
  • Diese beiden Bereiche, Videocodierung und Echtzeit-Grafikdarstellung, werden traditionsgemäß getrennt und unabhängig voneinander betrieben. Durch das Integrieren von Grafik-Engine und Codierer kann, um die Stärken der einzelnen Module zu nutzen, die Codierungszeit so weit verringert werden, dass Streaming-Anwendungen unterstützt werden, die überempfindlich auf Latenzzeiten reagieren.
  • Diese und andere damit verbundene Vorteile der Erfindung werden sich angesichts der Mängel bei den nachfolgend beschriebenen Technologien zeigen.
  • Zum Beispiel enthüllt die veröffentlichte US-Patentanmeldung Nr. 2015/0228106 A1 („die '106-Veröffentlichung“) eine Technologie, die auf das Decodieren von Videodaten abzielt, um eine Sequenz von decodierten Blöcken eines Videobildes zu generieren. Die Technologie ermöglicht die Verwendung jedes decodierten Blocks eines Videobildes als separate Textur für entsprechende Polygone der geometrischen Oberfläche, da der decodierte Block von der Codiermaschine generiert wird. Die Technologie der '106-Veröffentlichung beschreibt das Integrieren zwischen einer Codiermaschine, die codierte Videodaten decodiert, um das abzugleichenden Videobild zu generieren, und einer 3D-Grafik-Engine, die das Anzeigebild teilweise rendert, indem sie die Texturabbildung des Videobildes auf die geometrische Oberfläche durchführt. Diese Technologie ist jedoch im Vergleich zur vorliegenden Erfindung unzureichend, zumindest, weil sie keine Grafik-Engine offenbart oder verwendet, die sowohl den endgültigen gerenderten Frame als auch ordnungsgemäß formatierte Bewegungsvektordaten für das Einspeisen in die Video-Codiermaschine bereitstellt, sodass die Video-Codiermaschine vor dem Übertragen codierter Videodaten an die Remote-Client-Codiermaschine keine Bewegungsschätzung durchführen muss. Im Gegensatz dazu bietet die Verbesserung der Computertechnologie durch die vorliegende Erfindung eine Verringerung der Codierungszeit und der Rechenleistung, eine Verbesserung der Qualität des codierten Videos und führt zur Beibehaltung des ursprünglichen Bitstrom-Datenformats, um die Interoperabilität zu erhalten.
  • Die veröffentlichte US-Patentanmeldung Nr. 2011/0261885 A1 („die '885-Veröffentlichung“) offenbart Systeme und Verfahren, die auf die Bandbreitenverringerung durch das Integrieren von Bewegungsschätzung und Makroblockcodierung abzielen. In diesem System kann die Bewegungsschätzung unter Verwendung abgerufener Videodaten durchgeführt werden, um bewegungsschätzungsbezogene Informationen, einschließlich Bewegungsvektoren, zu generieren. Diese Bewegungsvektoren können einem aktuellen Makroblock entsprechen, wenn entsprechende Videodaten im Puffer zwischengespeichert werden. Auch hier ist die '885-Veröffentlichungstechnologie im Vergleich zur vorliegenden Erfindung unzureichend, zumindest, weil sie keine Grafik-Engine offenbart oder verwendet, die sowohl den endgültigen gerenderten Frame als auch ordnungsgemäß formatierte Bewegungsvektordaten für das Einspeisen in die Videocodiermaschine bereitstellt, sodass die Videocodiermaschine vor dem Übertragen codierter Videodaten an die Remote-Client-Codiermaschine keine Bewegungsschätzung durchführen muss. Daher bietet die Technologie der '885-Veröffentlichung nicht die gleiche Verringerung der Codierungszeit und Rechenleistung sowie die Verbesserung der Qualität des codierten Videos, die die vorliegende Erfindung bietet.
  • Wie aus der obigen Diskussion über den Stand der Technik in dieser Technologie hervorgeht, besteht in der Technik ein Bedarf an einer Verbesserung der derzeitigen Computertechnologie im Zusammenhang mit der Videocodierung in Spielumgebungen.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Es ist daher eine Aufgabe der hierin offenbarten beispielhaften Ausführungsformen, um Nachteile in der Technik anzugehen und Systeme und Verfahren zum Generieren von Grafik bereitzustellen, die eine vernetzte Serverarchitektur verwenden, die eine Grafik-Engine, eine Videocodiermaschine und eine Remote-Client-Codiermaschine zum Übertragen codierter Videodaten verwendet, wobei die Grafik-Engine sowohl den endgültigen gerenderten Frame als auch korrekt formatierte Bewegungsvektordaten zum Einspeisen in die Videocodiermaschine bereitstellt.
  • Eine weitere Aufgabe der Erfindung besteht darin, Systeme und Verfahren zum Generieren von Grafik bereitzustellen, wobei die Videocodiermaschine keine Bewegungsschätzung durchführen muss, bevor sie codierte Videodaten an die Remote-Client-Codiermaschine überträgt.
  • Noch eine weitere Aufgabe der Erfindung besteht darin, Systeme und Verfahren zum Generieren von Grafik bereitzustellen, wobei die Grafik-Engine Pro-Pixel-Bewegungsvektoren in Pro-Block-Bewegungsvektoren umwandelt.
  • Noch eine weitere Aufgabe der Erfindung besteht darin, Systeme und Verfahren zum Generieren von Grafik bereitzustellen, wobei die Pro-Pixel-Bewegungsvektoren durch Verwendung eines Rechen-Shaders generiert werden, um die Pro-Pixel-Bewegungsvektoren zur Kamerageschwindigkeit hinzuzufügen, um ein Pro-Pixel-Ergebnis zu erhalten, und wobei das Pro-Pixel-Ergebnis in einem Bewegungsvektorpuffer gespeichert wird.
  • Noch eine weitere Aufgabe der Erfindung besteht darin, Systeme und Verfahren zum Generieren von Grafik bereitzustellen, wobei die Pro-Block-Bewegungsvektordaten von der Grafik-Engine in Echtzeit in die Videocodiermaschine gleichzeitig mit einem farbunterabgetasteten Videobild eingespeist werden.
  • Figurenliste
  • Eine umfassendere Würdigung der Erfindung und vieler der damit verbundenen Vorteile wird leicht erreicht, da diese durch Bezugnahme auf die folgende ausführliche Beschreibung besser verstanden wird, wenn sie im Zusammenhang mit den beigefügten Zeichnungen betrachtet wird. Es zeigen:
    • 1 ein Blockdiagramm, das eine 3D-Grafik-Engine veranschaulicht, die ein Video zur Codierung und Übertragung an einen Client rendert;
    • 2 ein Flussdiagramm, das die Schritte veranschaulicht, die zur Latenzverringerung durch Einspeisen von Bewegungsvektoren, die von der 3D-Grafik-Engine generiert werden, in den modifizierten Codierungsprozess von 4 erforderlich sind;
    • 3 ein Diagramm, das die Transformation von in der Grafik-Engine generierten Pro-Pixel-Bewegungsvektoren in Pro-Makroblock-Bewegungsvektoren zum Einspeisen in die Codiermaschine veranschaulicht; und
    • 4 ein Flussdiagramm, das die erforderlichen Änderungen an einem in 1 verwendeten Videocodierungsverfahren veranschaulicht.
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Bei der Beschreibung der bevorzugten Ausführungsformen der in den Zeichnungen gerenderten Erfindung wird aus Gründen der Übersichtlichkeit auf eine spezifische Terminologie zurückgegriffen. Die Erfindung soll sich jedoch nicht auf die so ausgewählten spezifischen Begriffe beschränken, und es muss verstanden werden, dass jeder spezifische Begriff alle technischen Äquivalente umfasst, die ähnlich arbeiten, um einen ähnlichen Zweck zu erfüllen. Mehrere bevorzugte Ausführungsformen der Erfindung werden zur Veranschaulichung beschrieben, wobei davon ausgegangen wird, dass die Erfindung auch in anderen Formen verkörpert werden kann, die nicht ausdrücklich in den Zeichnungen gerendert sind.
  • In Anwendungen, in denen eine 3D-Grafik-Engine Videos darstellt, die in Echtzeit codiert und übertragen werden sollen, können die Grafik-Engine und der Codierer enger gekoppelt werden, um die Gesamtrechenzeit und den Rechenaufwand zu verringern. Pro-Pixel-Bewegungsvektordaten, die bereits von der Grafik-Engine für jedes Videobild generiert wurden, können in Pro-Block-Bewegungsvektordaten umgewandelt und in die Codiermaschine eingespeist werden, um den Schritt der Bewegungsschätzung zu umgehen, der der komplexeste und rechenintensivste Schritt im Codierungsprozess ist. In Grafik-Engines, die den Rekonstruktionsfilter für plausible Bewegungsunschärfe verwenden, können bereits Pro-Pixel-Bewegungsvektoren für jedes Videobild berechnet werden. Die Konvertierung von Pro-Pixel-Bewegungsvektoren in Pro-Block-Bewegungsvektoren kann durchgeführt werden, indem man den mittleren Vektor für jeden Makroblock von 16×16 Pixeln findet. Die Konvertierung erfolgt in der 3D-Grafik-Engine, sodass nur ein kleiner Bruchteil der ursprünglichen Bewegungsvektordaten von der 3D-Grafik-Engine an die Codiermaschine übergeben werden muss. In Fällen, in denen die Grafik- und Codiermaschine den Speicher nicht gemeinsam nutzen, trägt dies auch dazu bei, den Verbrauch der Speicherbandbreite zu verringern. Die Pro-Block-Bewegungsvektoren werden in die Codiermaschine eingespeist und überspringen den Schritt der Bewegungsschätzung vollständig, ohne den Rest des Codierungsprozesses wesentlich zu verändern.
  • Die 1-4 veranschaulichen eine beispielhafte Technik zur Verbesserung der Videocodierung in Videostreaming-Anwendungen, wobei eine 3D-Grafik-Engine beim Darstellen eines Videobildes begleitende Bewegungsvektordaten generiert.
  • 1 veranschaulicht ein Beispielsystem, in dem Videos gerendert und codiert werden, um sie an einen entfernten Client 116 zu übertragen. Eine 3D-Grafik-Engine 100, die im Speicher 106 auf einer Serverarchitektur 120 läuft, übergibt die Videos und zusätzliche Bewegungsvektorinformationen über ein gerendertes Videobild an eine Codiermaschine 102 (hierin als Codec oder Codierer bezeichnet), die einen codierten Bitstrom 108 zur Übertragung an ein Client-Computersystem 116 generiert. Die Serverarchitektur 120 ist eine beliebige Kombination aus Hard- oder Software, die die Funktionen einer Grafik- und einer Codiermaschine unterstützen kann. In dem gegebenen Beispiel kann die Grafik-Engine 100 beispielsweise als Grafikprozessor implementiert werden, der die Videospielsoftware 104 ausführt, die in einen computerlesbaren Speicher 106 geladen wird, während die Codiermaschine 102 als CPU mit Videocodierungssoftware implementiert werden kann. Die Codiermaschine 102 generiert codierte Videodaten 108 zur Übertragung an ein entferntes Client-Computersystem 116, das eine entfernte Codiermaschine (Codec) 110 beinhaltet, die den Bitstrom zur Wiedergabe auf einer von einer Anzeigesteuerung 112 gesteuerten Anzeige 114 decodiert. Das Remote-Client-Computersystem 116 ist eine beliebige Kombination aus Hardware, Gerät oder Software, die die Decodierung und Anzeige des codierten Bitstroms 108 ermöglicht.
  • 2 veranschaulicht die Schritte, die erforderlich sind, um schnellere Codierungszeiten zu erreichen, indem bestehende Zusatzdaten aus dem Rendering-Prozess in den Videocodierungsprozess übernommen werden. In Schritt 202 müssen die zusätzlichen Daten zunächst als normales Betriebsmerkmal der Grafik-Engine 100 auf einem Server 120 generiert werden. Da GPUs immer leistungsfähiger und allgegenwärtiger geworden sind, ist die Generierung von Echtzeit-Pro-Pixel-Bewegungsvektoren zu einem häufigen Bestandteil moderner Videospiel-Maschinen geworden. Während des Renderings eines 2D-Video-Frames aus einer 3D-Szene generiert eine 3D-Grafik-Engine während des Farbgenerierungsprozesses zusätzliche Ausgaben, die als Input für spätere Postprozessläufe verwendet werden können. Die Zusatzausgaben können Informationen beinhalten, die in die Akkumulations-, Farb- oder Geschwindigkeitspuffer geschrieben werden, sowie drei Speicherplätze, die für die Zwischenspeicherung von Informationen über Pixeltiefe, Pixelfarbe und Pixelbewegung vorgesehen sind.
  • In einer allgemein verwendeten Implementierung von Bewegungsunschärfe, die als Rekonstruktionsfilter für plausible Bewegungsunschärfe bezeichnet wird, werden die Pro-Pixel-Geschwindigkeiten aus dem Velocity-Puffer zunächst in eine kleinere Anzahl von Kacheln abgetastet, wobei jede Kachel die maximale Geschwindigkeit aus der Pixelgruppe übernimmt. Die Kacheln werden dann mit den Pro-Pixel-Tiefen im Akkumulationspuffer maskiert und die Ergebnisse auf die Pro-Pixel-Farben im Farbpuffer angewendet, um Bewegungsunschärfe zu generieren. Es gibt mehrere Variationen der Rekonstruktionsfiltermethode, die die Treue, Leistung oder beides verbessern, aber die Konzepte bleiben ähnlich und ein Velocity-Puffer enthält die Pro-Pixel-Bewegung zwischen zwei benachbarten Frames. Obwohl „Geschwindigkeit“ der Begriff in der Terminologie der Grafik-Engine und „Bewegungsvektor“ der Begriff in der Terminologie der Videocodierung ist, sind die Begriffe funktional äquivalent und eine Pro-Pixel-Geschwindigkeit ist die gleiche Sache wie ein Pro-Pixel-Bewegungsvektor. Der Geschwindigkeitspuffer enthält die zusätzlichen Daten in Form von Pro-Pixel-Bewegungsvektoren, die im Videocodierungsprozess wiederverwendet werden.
  • In Schritt 204 konvertiert die Grafik-Engine 100, die sich auf dem Server 120 befindet, die Pro-Pixel-Bewegungsvektoren in Pro-Block-Bewegungsvektoren, basierend auf der Makroblockgröße, die beim Codieren verwendet werden soll. Der H.264-Codec verwendet standardmäßig 16x16-Pixel-Makroblöcke und hat die Möglichkeit, weiter zu unterteilen. Die 256 Pro-Pixel-Bewegungsvektoren können gemittelt werden, um einen einzigen mittleren Vektor zu erhalten, der als Pro-Block-Bewegungsvektor dient. Dieser Prozess wird im Zusammenhang mit 3 näher beschrieben.
  • In Schritt 206 werden die Pro-Makroblock-Bewegungsvektorinformationen in den Codierungsmotor/Codierer 102 eingespeist, der sich auf dem Server 120 befindet, wobei der Bewegungsschätzschritt umgangen wird. In Software-Implementierungen des Codierers kann der Schritt der Bewegungsschätzung vollständig deaktiviert werden, was zu einer erheblichen Zeitersparnis bei der CPU-Berechnung führt. Die Zeitersparnis in der CPU sollte die zusätzliche Zeit, die benötigt wird, um die Durchschnittsvektoren im Grafikprozessor zu berechnen (in Schritt 204) und an die CPU zu übertragen, mehr als ausgleichen.
  • Da die von der Grafik-Engine 100 gelieferten Pro-Block-Bewegungsvektoren mit denen austauschbar sind, die in einem typischen Bewegungsschätzschritt berechnet wurden, beginnt die Codierung in Schritt 208 ab dem Schritt 208 der Bewegungskompensation. Der Rest des Videocodierungsprozesses, wie er in Verbindung mit 4 näher beschrieben wird, unterscheidet sich nicht wesentlich von den typischen Schritten der Bewegungskompensation, Restberechnung und Codierung, die von einem Codierungsstandard durchgeführt werden, der Bewegungsschätzungstechniken verwendet.
  • 3 veranschaulicht im Detail die Transformation, die in der Grafik-Engine 100 stattfindet, von Pro-Pixel-Bewegungsvektoren zu Pro-Makroblock-Bewegungsvektoren. Während der Farbgenerierungsphase generiert eine 3D-Grafik-Engine 100 auf einem Server 120 Pro-Pixel-Bewegungsvektoren und speichert die Daten im Geschwindigkeitspuffer 300, der sich ebenfalls auf dem Server 120 befindet. Der Geschwindigkeitspuffer 300 kann Daten nur für dynamische Objekte enthalten, mit Ausnahme der Bewegungsinformationen, die durch die Bewegung der Spieler-Kamera übermittelt werden. Um Bewegungsvektorinformationen für jedes Pixel im Bildraum zu erhalten, kombiniert ein Rechen-Shader 302 die Vektoren im Geschwindigkeitspuffer 300 mit der Kamerageschwindigkeit für alle statischen Objekte, die nicht bereits im Geschwindigkeitspuffer enthalten sind, und speichert das Pro-Pixel-Ergebnis im Bewegungsvektorpuffer 304. Die Kamerageschwindigkeit ist die 2D-Projektion der Rotations- und Translationskamerabewegung während des Bildes. Spezifische Grafik-Engines können leicht unterschiedliche Methoden verwenden, um diese Pro-Pixel-Bewegungsvektoren für den gesamten Bildschirmraum zu berechnen, aber die Konzepte bleiben die gleichen.
  • Der H.264-Codierer verwendet eine Standard-Makroblockgröße von 16x16, kann aber in kleinere Größen bis hinunter zu 4x4 unterteilt werden. Im Beispiel (3) wird ein 4x4-Makroblock 306 als vereinfachtes Beispiel verwendet, aber das Verfahren sollte extrapoliert werden, um die im Codierer verwendete Makroblockgröße anzupassen. Für einen 4x4-Makroblock 306 sind 16 Pro-Pixel-Bewegungsvektoren 308 im Bewegungsvektorpuffer 304 gespeichert. Diese Pro-Pixel-Bewegungsvektoren 308 müssen in einen einzelnen Pro-Makroblock-Bewegungsvektor 310 umgewandelt werden, der in den Codierer eingespeist werden kann, um zur Bewegungskompensation verwendet zu werden, wie in 4 gerendert. Das arithmetische Mittel des Satzes der Pro-Pixel-Vektoren 308 ist ein Transformationsverfahren 312 mit geringer Rechenkomplexität und kurzer Rechenzeit.
  • Optionale Änderungen an der arithmetischen Mittelwert-Transformation 312 können vorgenommen werden, um die Qualität auf Kosten zusätzlicher Rechenkomplexität oder Leistung zu verbessern. So können beispielsweise Vektor-Medianfiltertechniken angewendet werden, um Diskontinuitäten im Vektorfeld des Makroblocks vor der arithmetischen Mittelwertbildung zu beseitigen, um sicherzustellen, dass der Pro-Makroblock-Bewegungsvektor 310 für die meisten Pixel im Makroblock 306 repräsentativ ist. Da der resultierende Pro-Makroblock-Bewegungsvektor von pixelgenauen Bewegungsvektoren abgeleitet ist, die ursprünglich auf der Grundlage bekannter Objekt-Bewegungsdaten berechnet wurden, werden diese Pro-Makroblock-Bewegungsvektoren immer eine genauere Darstellung sein als die, die von bestehenden blockbasierten Bewegungsschätzungsalgorithmen berechnet werden, die nur Bewegungen basierend auf Pixel-Farbdaten ableiten können.
  • 4 veranschaulicht ein Verfahren zum Überspringen des rechenkomplexen Bewegungsschätzprozesses durch Einspeisen von Bewegungsvektoren, die in der Grafik-Engine 100 des Servers 120 von 1 generiert wurden, in die Codiermaschine 102 des Servers 120 in 1. Wie im Folgenden ausführlich erläutert, wird der resultierende Bitstrom von codierten Videodaten 108 an das entfernte Client-Computersystem 116 übertragen. Das in 4 gerenderte Verfahren veranschaulicht den Codierungsprozess für ein einzelnes Zwischenbild, insbesondere ein P-Bild, wie es durch die MPEG-Familie von Videocodierstandards definiert ist. Die Intra-Frame (I-Frame)-Generierung wird nicht geändert, da die Bewegungskompensation 406 bei der I-Frame-Generierung nicht durchgeführt wird. Der farbunterabgetastete Video Frame 402 und die Pro-Block-Bewegungsvektordaten 404 werden von der Grafik-Engine 100 übertragen, sobald sie verfügbar sind. Die spielgenerierten Bewegungsvektoren 404 werden verwendet, um die Generierung von Bewegungsvektoren zu umgehen, die sonst in einem typischen Schritt der Bewegungsschätzung 426 auftreten würden, wie im AVC-Standard H.264/MPEG-4 beschrieben. Der Schritt zur Bewegungsschätzung 426 wird übersprungen und kann in einer Software-Implementierung der Codiermaschine deaktiviert werden. Das Überspringen des Schrittes 426 der blockbasierten Bewegungsschätzung führt zu einer signifikanten Verringerung der Codierungszeit, die die Zeit, die für die Konvertierung der Geschwindigkeitspufferdaten in das entsprechende Format benötigt wird, wie in Verbindung mit 3 beschrieben, mehr als ausgleicht.
  • Die Bewegungsvektoren 404, die bereits auf die entsprechende Makroblockgröße umgerechnet wurden, können sofort ohne Änderung der Bewegungskompensation 406 verwendet werden. Die Ergebnisse der Bewegungskompensation 406 werden mit dem eingegebenen farbunterabgetasteten Videoframe 402 zu dem Residualbild 430 kombiniert, das von den Residualtransformations- und Skalierungsschritten 408, Quantisierung 410 und Scannen von 412 Schritten verarbeitet wird, die typischerweise in bestehenden Hardware- oder Software-Videoencodern auftreten.
  • Die Deblocking-Schritte müssen durchgeführt werden, wenn der von der Implementierung gewählte Decodierungsstandard dies erfordert. Die Deblocking-Einstellungen 420 und das deblockierte Bild 428 werden berechnet, indem die Algorithmen des Codierungsstandards für die inverse Quantisierung 414, die inverse Transformation & Skalierung 416 und die Deblockierung 418 angewendet werden. Die gescannten Koeffizienten 412 werden mit den Deblocking-Einstellungen 420 kombiniert und im Entropie-Codierer 422 codiert, bevor sie als Bitstrom 108 an das Remote-Client-Computersystem 116 zur Decodierung am Codec 110 des Remote-Client-Computersystems übertragen werden. Das deblockierte Bild 428 wird zum Eingang für die Bewegungskompensation 406 des nächsten Bildes. Der Bitstrom (umfassend codierte Videodaten) 108 behält das gleiche Format bei, das durch den in der Implementierung verwendeten Codierungsstandard wie H.264/MPEG-4 AVC definiert ist. Dieses Beispiel ist spezifisch für den H.264/MPEG-4 AVC-Standard, kann im Allgemeinen für ähnliche Codierungsstandards verwendet werden, die Bewegungsschätzung 426 und Bewegungskompensation 406 Techniken verwenden.
  • BEISPIEL 1: Benchmark-Tests zur Demonstration von Verringerungen der Codierungszeit
  • Der Bewegungsschätzschritt in der traditionellen H.264-konformen Codierung ist in der Regel der rechenintensivste und zeitaufwändigste Schritt. Wie hierin erläutert, kann die Wiederverwendung von spielgenerierten Bewegungsvektoren zu einer deutlichen Verkürzung der Codierungszeit führen.
  • In der Testumgebung generierte die Grafik-Engine eine Ausgabe mit einer Auflösung von 1280x720 bei 60 Bildern pro Sekunde. Die Codierungszeiten wurden von einem x264-Codierer erfasst, der einfädig läuft. Die Ausführung des einfädigen Codierers führt zu längeren Codierzeiten als in der realen Welt, normalisiert die Messungen jedoch auf einen Kern, sodass sie direkt miteinander vergleichbar sind. Die Codierungszeiten wurden zunächst mit Hilfe einer unveränderten Bewegungsschätzung innerhalb des Codierers gemessen und dann in derselben Umgebung mit der aktivierten Funktion der spielgenerierten Bewegungsschätzung neu gemessen.
  • Es wurde ein Bereich mit geringer Bewegung ausgewählt, der eine First-Person-Player-Ansicht der Hände, der Waffe und einer stationären Wand des Spielers umfasst. Die Hände und Waffen des Spielers durchlaufen eine leichte „wackelige“ Animation, um eine kleine Menge an Pixelbewegung auf relativ kleinem Bildschirm zu generieren. Die Ergebnisse dieses Tests sind in Tabelle 1 unten wiedergegeben, die Latenzergebnisse mit und ohne die hierin beschriebenen spielgenerierten Bewegungsschätzungstechniken zeigt. Bei geringer Intensität, bei deaktivierter spielgenerierter Bewegungsschätzung, betrug die unveränderte Codierungszeit 12 ms. Wenn die vom Spiel generierte Bewegungsschätzung aktiviert war, wurde die Codierungszeit um 3 ms auf eine Codierungszeit von 9 ms verringert. Ähnliche Latenzverringerungen wurden für Szenarien mit durchschnittlicher und hoher Bewegungsintensität gezeigt, wobei die Latenz um 17,6 % für Szenarien mit durchschnittlicher Bewegungsintensität und zwischen 15 % und 30 % Latenzverringerungen in Szenarien mit hoher Latenz abnahm. Diese Ergebnisse zeigen eine deutlich signifikante Verringerung der Latenzzeit, wenn die spielgenerierte Bewegungsschätzung aktiviert ist. TABELLE 1: Latenzergebnisse bei unterschiedlichen Bewegungsintensitäten
    Bewegungsintensität x264-BewegungsSchätzung Spiel-generierte Bewegungsschätzung % Änderung
    Niedrig 12 ms 9 ms 25 %
    Mittel 17 ms 14 ms 17,6 %
    Hoch 20 ms - 27 ms 17 ms - 19 ms 15 % - 30 %
  • Die Testumgebung ergab auch, dass es zusätzliche Kosten bei der Konvertierung der spielgenerierten Pro-Pixel-Bewegungsvektoren in Pro-Makroblock-Bewegungsvektoren für den Codierer gibt. Diese Kosten sind jedoch deutlich geringer als die im vorherigen Abschnitt beschriebenen Zeiteinsparungen bei der Codierung. Da die Grafik-Engine Videos mit einer Auflösung von 1280x720 generiert, dauerte die Transformation des Bewegungsvektors von pro Pixel zu pro Makroblock 0,02 ms. Die Zeitersparnis des gemessenen Codierers ist um drei Größenordnungen größer als die Mehrkosten für die Verwendung von spielgenerierten Bewegungsvektoren zur Codierung.
  • Die vorstehende Beschreibung und die Zeichnungen sind nur als Illustration der Prinzipien der Erfindung zu betrachten. Die Erfindung ist nicht dazu bestimmt, durch die bevorzugte Ausführungsform eingeschränkt zu werden, und kann auf verschiedene Weise implementiert werden, die für eine der üblichen Fertigkeiten in der Kunst klar erkennbar sind. Zahlreiche Anmeldungen der Erfindung werden den Fachleuten leicht fallen. Daher ist es nicht erwünscht, die Erfindung auf die offenbarten spezifischen Beispiele oder die genaue Konstruktion und Funktionsweise zu beschränken. Vielmehr können alle geeigneten Modifikationen und Äquivalente herangezogen werden, die in den Anwendungsbereich der Erfindung fallen.
  • 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
    • US 2015/0228106 A1 [0007]
    • US 2011/0261885 A1 [0008]

Claims (20)

  1. Computerimplementiertes Verfahren zum Generieren von Grafiken, umfassend die folgenden Schritte: Generieren eines oder mehrerer Pro-Pixel-Bewegungsvektoren; Umwandeln des einen oder der mehreren Pro-Pixel-Bewegungsvektoren in einen oder mehrere Pro-Block-Bewegungsvektoren in einer Grafik-Engine; und Einspeisen der Pro-Block-Bewegungsvektoren in eine Videocodiermaschine, wobei die Videocodiermaschine die einen oder mehreren Pro-Block-Bewegungsvektoren in codierte Videodaten zur Übertragung an eine entfernte Client-Codiermaschine umwandelt.
  2. Verfahren nach Anspruch 1, wobei die einen oder mehreren Pro-Pixel-Bewegungsvektoren vor der Umwandlung in einem Geschwindigkeitspuffer gespeichert werden.
  3. Verfahren nach Anspruch 1, wobei die Generierung des einen oder der mehreren Pro-Pixel-Bewegungsvektoren die folgenden Schritte umfasst: Kombinieren des einen oder der mehreren Pro-Pixel-Bewegungsvektoren mit einer Kamerageschwindigkeit an einem Rechen-Shader, um ein Pro-Pixel-Ergebnis zu erhalten; und Speichern des Pro-Pixel-Ergebnisses in einem Bewegungsvektorpuffer.
  4. Verfahren nach Anspruch 1, wobei eine Grafik-Engine die Pro-Block-Bewegungsvektordaten in die Videocodiermaschine gleichzeitig mit einem oder mehreren farbunterabgetasteten Video-Frames in Echtzeit einspeist.
  5. Verfahren nach Anspruch 1, wobei die codierten Videodaten zur Wiedergabe auf einem entfernten Client-Computersystem decodiert werden.
  6. Verfahren nach Anspruch 1, wobei die Videocodiermaschine eine Bewegungskompensation und Residualtransformation durchführt, um die einen oder mehreren Pro-Block-Bewegungsvektoren in codierte Videodaten zu konvertieren.
  7. Verfahren nach Anspruch 1, wobei die videocodierten Daten zur Übertragung an die Remote-Client-Codiermaschine durch Anwenden von einem oder mehreren von inversen Quantisierungsalgorithmen, inverser Transformation und Skalierung und/oder Deblocking vorbereitet werden.
  8. Verfahren nach Anspruch 1, wobei die einen oder mehreren Pro-Pixel-Vektoren in einen oder mehrere Pro-Block-Bewegungsvektoren unter Verwendung eines Transformationsverfahrens, das ein arithmetisches Mittel anwendet, umgewandelt werden.
  9. Computerimplementiertes Grafikgenerierungssystem, bestehend aus einer oder mehreren Grafik-Engines und einer Videocodiermaschine, wobei die Grafik-Engine einen oder mehrere Pro-Pixel-Bewegungsvektoren generiert, die Pro-Pixel-Bewegungsvektoren in einen oder mehrere Pro-Block-Bewegungsvektoren umwandelt und die Pro-Block-Bewegungsvektoren direkt in die Videocodiermaschine einspeist, wobei die Videocodiermaschine die Pro-Block-Bewegungsvektoren in codierte Videodaten umwandelt und die codierten Videodaten an eine Remote-Client-Codiermaschine überträgt, die auf einem Remote-Client-Computersystem läuft.
  10. System nach Anspruch 9, wobei die einen oder mehreren Pro-Pixel-Bewegungsvektoren vor der Umwandlung in einem Geschwindigkeitspuffer gespeichert werden.
  11. System nach Anspruch 9, wobei die einen oder mehreren Pro-Pixel-Bewegungsvektoren durch Hinzufügen des einen oder der mehreren Pro-Pixel-Bewegungsvektoren zu einer Kamerageschwindigkeit an einem Rechen-Shader generiert werden, um ein Pro-Pixel-Ergebnis zu erhalten, und Speichern des Pro-Pixel-Ergebnisses in einem Bewegungsvektorpuffer.
  12. System nach Anspruch 8, wobei die Grafik-Engine die Pro-Block-Bewegungsvektordaten in die Videocodiermaschine gleichzeitig mit einem oder mehreren farbunterabgetasteten Video-Frames in Echtzeit einspeist.
  13. System nach Anspruch 9, wobei die Videocodiermaschine eine Bewegungskompensation und Residualtransformation durchführt, um die einen oder mehreren Pro-Block-Bewegungsvektoren in codierte Videodaten umzuwandeln.
  14. System nach Anspruch 9, wobei die videocodierten Daten zur Übertragung an die Remote-Client-Codiermaschine durch Anwenden von einem oder mehreren von inversen Quantisierungsalgorithmen, inverser Transformation und Skalierung und/oder Deblocking vorbereitet werden.
  15. System nach Anspruch 9, wobei die codierten Videodaten konfiguriert sind, um decodiert und auf einer von einer Anzeigesteuerung gesteuerten Anzeige wiedergegeben zu werden.
  16. System nach Anspruch 9, wobei die Grafik-Engine die einen oder mehreren Pro-Pixel-Vektoren in einen oder mehrere Pro-Block-Bewegungsvektoren unter Verwendung eines Transformationsverfahrens umwandelt, das ein arithmetisches Mittel anwendet.
  17. Computerimplementiertes Verfahren zum Generieren von Grafiken, umfassend die folgenden Schritte: Umwandeln des einen oder der mehreren Pro-Pixel-Bewegungsvektoren in einen oder mehrere Pro-Block-Bewegungsvektoren in einer Grafik-Engine, wobei die Pro-Block-Bewegungsvektordaten beim Empfang an eine Codiermaschine übertragen werden; und Empfangen eines oder mehrerer farbunterabgetasteter Video-Frames an einer Grafik-Engine, wobei die farbunterabgetasteten Video-Frames beim Empfangen an die Codiermaschine übertragen werden, wobei die Codiermaschine die Pro-Block-Bewegungsvektordaten und die farbunterabgetasteten Videobilder kombiniert, um Videodaten zur Übertragung an ein entferntes Client-Computersystem zu codieren, und wobei Bewegungsschätzberechnungen während der Codierung der Videodaten deaktiviert werden.
  18. Verfahren nach Anspruch 17, wobei die kombinierten Pro-Block-Bewegungsvektordaten und die farbunterabgetasteten Video-Frames ein Residualbild bilden.
  19. Verfahren nach Anspruch 18, wobei das Residualbild durch Residualtransformation und -skalierung, Quantisierung und/oder Abtastung vor dem Codieren weiterverarbeitet wird.
  20. Verfahren nach Anspruch 18, ferner umfassend die folgenden Schritte von: Berechnen einer inversen Quantisierung, inversen Transformation und Skalierung; und Deblocking des Residualbildes.
DE112018002110.6T 2017-04-21 2018-04-20 Systeme und verfahren für spiel-generierte bewegungsvektoren Pending DE112018002110T5 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762488526P 2017-04-21 2017-04-21
US62/488,526 2017-04-21
US201762596325P 2017-12-08 2017-12-08
US62/596,325 2017-12-08
PCT/US2018/028544 WO2018195405A1 (en) 2017-04-21 2018-04-20 Systems and methods for game-generated motion vectors

Publications (1)

Publication Number Publication Date
DE112018002110T5 true DE112018002110T5 (de) 2020-01-09

Family

ID=63854345

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018002110.6T Pending DE112018002110T5 (de) 2017-04-21 2018-04-20 Systeme und verfahren für spiel-generierte bewegungsvektoren

Country Status (15)

Country Link
US (5) US10567788B2 (de)
EP (1) EP3613015A4 (de)
JP (1) JP7135067B2 (de)
KR (4) KR20210148381A (de)
CN (1) CN110959169A (de)
AU (2) AU2018254550B2 (de)
BR (1) BR112019022007A2 (de)
CA (2) CA3059740A1 (de)
DE (1) DE112018002110T5 (de)
GB (1) GB2576846A (de)
MX (1) MX2021004095A (de)
RU (2) RU2735241C1 (de)
TW (3) TWI797550B (de)
WO (1) WO2018195405A1 (de)
ZA (2) ZA201907680B (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9830714B2 (en) 2014-06-27 2017-11-28 Samsung Electronics Co., Ltd. Graphics processing with advection to reconstruct missing sample data points
US11049269B2 (en) 2014-06-27 2021-06-29 Samsung Electronics Co., Ltd. Motion based adaptive rendering
US11736822B1 (en) 2020-02-28 2023-08-22 Apple Inc. Controlling an image sensor based on GPU temporal processing values
US11833419B2 (en) 2020-03-16 2023-12-05 Tencent America LLC Method and apparatus for cloud gaming
JP2022041553A (ja) * 2020-09-01 2022-03-11 ヤマハ株式会社 通信制御方法
CN113794887A (zh) * 2021-08-17 2021-12-14 镕铭微电子(济南)有限公司 一种游戏引擎中视频编码的方法及相关设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110261885A1 (en) 2010-04-27 2011-10-27 De Rivaz Peter Francis Chevalley Method and system for bandwidth reduction through integration of motion estimation and macroblock encoding
US20150228106A1 (en) 2014-02-13 2015-08-13 Vixs Systems Inc. Low latency video texture mapping via tight integration of codec engine with 3d graphics engine

Family Cites Families (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4501980A (en) 1982-06-04 1985-02-26 Motornetics Corporation High torque robot motor
JPH06129865A (ja) 1992-10-20 1994-05-13 Sumitomo Electric Ind Ltd シングルモ−ドファイバ型デポラライザとその製造方法及び光ファイバジャイロ
US5778190A (en) * 1995-07-21 1998-07-07 Intel Corporation Encoding video signals using multi-phase motion estimation
US5926221A (en) 1995-08-18 1999-07-20 Texas Instruments Incorporated Method and apparatus for improved video coding using a center-biased orthogonal search technique and a zero block predictor module
GB9623573D0 (en) * 1996-11-13 1997-01-08 Philips Electronics Nv Image segmentation
US6687405B1 (en) * 1996-11-13 2004-02-03 Koninklijke Philips Electronics N.V. Image segmentation
JP2001506820A (ja) 1996-11-27 2001-05-22 プリンストン ビデオ イメージ,インコーポレイテッド 画像テクスチャーテンプレートを用いた動き追跡
EP1075147A1 (de) 1999-08-02 2001-02-07 Koninklijke Philips Electronics N.V. Bewegungsschätzung
US6850571B2 (en) 2001-04-23 2005-02-01 Webtv Networks, Inc. Systems and methods for MPEG subsample decoding
EP1483741A2 (de) * 2002-03-01 2004-12-08 t5 Labs Ltd Zentralisierter interaktiver graphischer anwendungsserver
WO2004004359A1 (en) 2002-07-01 2004-01-08 E G Technology Inc. Efficient compression and transport of video over a network
US6903662B2 (en) 2002-09-19 2005-06-07 Ergodex Computer input device with individually positionable and programmable input members
US8054880B2 (en) 2004-12-10 2011-11-08 Tut Systems, Inc. Parallel rate control for digital video encoder with multi-processor architecture and picture-based look-ahead window
CN1578477B (zh) * 2003-07-16 2011-05-04 三星电子株式会社 用于色彩图像的视频编码/解码装置和方法
US20050094729A1 (en) * 2003-08-08 2005-05-05 Visionflow, Inc. Software and hardware partitioning for multi-standard video compression and decompression
US20050047504A1 (en) 2003-09-03 2005-03-03 Sung Chih-Ta Star Data stream encoding method and apparatus for digital video compression
US7724827B2 (en) 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US7408984B2 (en) 2003-09-17 2008-08-05 International Business Machines Corporation Method and system for multiple pass video coding
US20060230428A1 (en) 2005-04-11 2006-10-12 Rob Craig Multi-player video game system
JP4996603B2 (ja) * 2005-07-08 2012-08-08 タグ ネットワークス,インコーポレイテッド 事前符号化マクロブロックを使用するビデオゲームシステム
JP4178480B2 (ja) 2006-06-14 2008-11-12 ソニー株式会社 画像処理装置、画像処理方法、撮像装置および撮像方法
KR100919886B1 (ko) * 2006-12-06 2009-09-30 한국전자통신연구원 영상 복호기에서 움직임 벡터 특성을 이용한 움직임 보상스킵 제어 장치 및 그 방법
EP2177010B1 (de) 2006-12-13 2015-10-28 Quickplay Media Inc. Mobile medienplattform
JP4931223B2 (ja) 2007-03-30 2012-05-16 株式会社バンダイナムコゲームス 動きベクトル探索プログラム、情報記憶媒体、動きベクトル探索装置、及び、ネットワークシステム
US8069258B1 (en) 2007-09-11 2011-11-29 Electronic Arts Inc. Local frame processing to apparently reduce network lag of multiplayer deterministic simulations
US8127233B2 (en) 2007-09-24 2012-02-28 Microsoft Corporation Remote user interface updates using difference and motion encoding
KR20100099723A (ko) 2008-01-09 2010-09-13 미쓰비시덴키 가부시키가이샤 화상 부호화 장치, 화상 복호 장치, 화상 부호화 방법, 및 화상 복호 방법
EP2364190B1 (de) 2008-05-12 2018-11-21 GameFly Israel Ltd. Zentralisierter streaming-spielserver
US8154553B2 (en) 2008-05-22 2012-04-10 Playcast Media System, Ltd. Centralized streaming game server
US8208065B2 (en) 2008-07-30 2012-06-26 Cinnafilm, Inc. Method, apparatus, and computer software for digital video scan rate conversions with minimization of artifacts
US8678929B1 (en) 2008-08-01 2014-03-25 Electronics Arts Inc. Client-side prediction of a local game object to reduce apparent network lag of multiplayer simulations
US8854376B1 (en) 2009-07-30 2014-10-07 Lucasfilm Entertainment Company Ltd. Generating animation from actor performance
US8171154B2 (en) * 2009-09-29 2012-05-01 Net Power And Light, Inc. Method and system for low-latency transfer protocol
CN102577393B (zh) * 2009-10-20 2015-03-25 夏普株式会社 运动图像编码装置、运动图像解码装置、运动图像编码/解码系统、运动图像编码方法及运动图像解码方法
US9338523B2 (en) 2009-12-21 2016-05-10 Echostar Technologies L.L.C. Audio splitting with codec-enforced frame sizes
GB2480422B (en) * 2010-02-25 2014-07-09 Imagination Tech Ltd Object tracking using graphics engine derived vectors in a motion estimation system
US8427583B2 (en) * 2010-09-30 2013-04-23 Sharp Laboratories Of America, Inc. Automatic parameter control for spatial-temporal filter
KR20120088488A (ko) * 2011-01-31 2012-08-08 한국전자통신연구원 시간적 움직임 벡터 저장 방법 및 그 장치
JP5155462B2 (ja) 2011-08-17 2013-03-06 株式会社スクウェア・エニックス・ホールディングス 動画配信サーバ、動画再生装置、制御方法、プログラム、及び記録媒体
US8872895B2 (en) * 2011-09-30 2014-10-28 Deutsche Telekom Ag Real-time video coding using graphics rendering contexts
RU2487489C2 (ru) * 2011-10-18 2013-07-10 Федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский университет "МИЭТ" Способ поиска векторов перемещений в динамических изображениях
US10027982B2 (en) * 2011-10-19 2018-07-17 Microsoft Technology Licensing, Llc Segmented-block coding
JP5977023B2 (ja) 2011-11-07 2016-08-24 株式会社スクウェア・エニックス・ホールディングス 描画システム、プログラム、及び記録媒体
EP2850831A1 (de) 2012-05-14 2015-03-25 Luca Rossato Codierung und decodierung je nach mischen von probensequenzen im laufe der zeit
JP6787667B2 (ja) 2012-09-21 2020-11-18 ノキア テクノロジーズ オサケユイチア ビデオコーディングのための方法と装置
KR102137266B1 (ko) 2012-09-28 2020-07-23 삼성전자주식회사 움직임 벡터와 변이 벡터를 예측하는 영상 처리 방법 및 장치
US9984504B2 (en) * 2012-10-01 2018-05-29 Nvidia Corporation System and method for improving video encoding using content information
CN104704827B (zh) * 2012-11-13 2019-04-12 英特尔公司 用于下一代视频的内容自适应变换译码
WO2014120368A1 (en) 2013-01-30 2014-08-07 Intel Corporation Content adaptive entropy coding for next generation video
US9661351B2 (en) 2013-03-15 2017-05-23 Sony Interactive Entertainment America Llc Client side frame prediction for video streams with skipped frames
US9521425B2 (en) 2013-03-19 2016-12-13 Qualcomm Incorporated Disparity vector derivation in 3D video coding for skip and direct modes
US9079108B2 (en) 2013-05-31 2015-07-14 Empire Technology Development Llc Cache-influenced video games
US9313493B1 (en) * 2013-06-27 2016-04-12 Google Inc. Advanced motion estimation
US20150071357A1 (en) 2013-09-12 2015-03-12 Qualcomm Incorporated Partial intra block copying for video coding
US9648332B2 (en) 2013-10-28 2017-05-09 Qualcomm Incorporated Adaptive inter-color component residual prediction
KR101586125B1 (ko) * 2013-12-17 2016-02-02 세종대학교산학협력단 영상의 복호화/부호화 방법 및 장치
US9749642B2 (en) 2014-01-08 2017-08-29 Microsoft Technology Licensing, Llc Selection of motion vector precision
US9830714B2 (en) * 2014-06-27 2017-11-28 Samsung Electronics Co., Ltd. Graphics processing with advection to reconstruct missing sample data points
US9762919B2 (en) 2014-08-28 2017-09-12 Apple Inc. Chroma cache architecture in block processing pipelines
US9830888B2 (en) * 2014-11-10 2017-11-28 Dell Products, Lp Gaze driven display front of screen performance
US10237559B2 (en) * 2014-11-20 2019-03-19 Getgo, Inc. Layer-based video decoding
US10063866B2 (en) 2015-01-07 2018-08-28 Texas Instruments Incorporated Multi-pass video encoding
WO2016119046A1 (en) 2015-01-29 2016-08-04 Ecole De Technologie Superieure Methods and systems for determining motion vectors in a motion estimation process of a video encoder
TW201642655A (zh) 2015-04-21 2016-12-01 Vid衡器股份有限公司 基於藝術意向之視訊編碼
JP6910130B2 (ja) 2015-11-06 2021-07-28 三星電子株式会社Samsung Electronics Co.,Ltd. 3dレンダリング方法及び3dレンダリング装置
US10163183B2 (en) 2016-01-13 2018-12-25 Rockwell Collins, Inc. Rendering performance using dynamically controlled samples
US9705526B1 (en) 2016-03-17 2017-07-11 Intel Corporation Entropy encoding and decoding of media applications
US10109100B2 (en) 2016-03-25 2018-10-23 Outward, Inc. Adaptive sampling of pixels
US20180054613A1 (en) * 2016-08-22 2018-02-22 Mediatek Inc. Video encoding method and apparatus with in-loop filtering process not applied to reconstructed blocks located at image content discontinuity edge and associated video decoding method and apparatus
US10402932B2 (en) * 2017-04-17 2019-09-03 Intel Corporation Power-based and target-based graphics quality adjustment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110261885A1 (en) 2010-04-27 2011-10-27 De Rivaz Peter Francis Chevalley Method and system for bandwidth reduction through integration of motion estimation and macroblock encoding
US20150228106A1 (en) 2014-02-13 2015-08-13 Vixs Systems Inc. Low latency video texture mapping via tight integration of codec engine with 3d graphics engine

Also Published As

Publication number Publication date
GB2576846A (en) 2020-03-04
AU2020267252A1 (en) 2020-12-10
ZA201907680B (en) 2021-04-28
TWI691199B (zh) 2020-04-11
AU2018254550A1 (en) 2019-12-12
CA3059740A1 (en) 2018-10-25
TWI721816B (zh) 2021-03-11
CA3173525A1 (en) 2018-10-25
KR20210148381A (ko) 2021-12-07
EP3613015A4 (de) 2021-02-24
US20200404317A1 (en) 2020-12-24
US10701388B2 (en) 2020-06-30
RU2020134091A3 (de) 2021-05-18
JP2020518209A (ja) 2020-06-18
GB201916979D0 (en) 2020-01-08
KR20200019854A (ko) 2020-02-25
MX2021004095A (es) 2021-06-08
ZA202007051B (en) 2022-04-28
TW202025757A (zh) 2020-07-01
JP7135067B2 (ja) 2022-09-12
RU2760974C2 (ru) 2021-12-02
CN110959169A (zh) 2020-04-03
KR20220123141A (ko) 2022-09-05
US10567788B2 (en) 2020-02-18
EP3613015A1 (de) 2020-02-26
US20180310016A1 (en) 2018-10-25
RU2020134091A (ru) 2020-11-17
US11503326B2 (en) 2022-11-15
US20200141162A1 (en) 2020-05-07
WO2018195405A1 (en) 2018-10-25
US11381835B2 (en) 2022-07-05
AU2018254550B2 (en) 2020-09-24
AU2020267252B2 (en) 2022-01-27
US20230089232A1 (en) 2023-03-23
KR20240001278A (ko) 2024-01-03
BR112019022007A2 (pt) 2020-05-12
TW201844002A (zh) 2018-12-16
KR102617595B1 (ko) 2023-12-22
TW202131688A (zh) 2021-08-16
TWI797550B (zh) 2023-04-01
RU2735241C1 (ru) 2020-10-29
US20190230375A1 (en) 2019-07-25

Similar Documents

Publication Publication Date Title
DE112018002110T5 (de) Systeme und verfahren für spiel-generierte bewegungsvektoren
DE69831961T2 (de) Bildobjekterzeugungsverfahren für objektbasierte kodierungssysteme unter verwendung von masken und gerundeten mittelwerten
DE102013015821B4 (de) System und Verfahren zur Verbesserung der Videokodierung unter Verwendung von Inhaltsinformation
DE112008004040T5 (de) Verfahren und System zum Erhöhen einer Rahmenanzeigerate
DE102016125604A1 (de) Intelligente Sortierung der rekursiven Blockaufteilung für die erweiterte Intra-Prädiktion bei der Videocodierung
EP0956539B1 (de) Verfahren und anordnung zur codierung und decodierung eines digitalisierten bildes
DE102019201370A1 (de) Verarbeitung von multidirektionalen bildern in räumlich geordneten videokodieranwendungen
DE60107149T2 (de) Digitales Bildausgabegerät
DE112018002117T5 (de) Systeme und verfahren für verzögerte post-prozesse in der videocodierung
DE19717608B4 (de) Wahrnehmungsfehlerbearbeitungsverfahren und Bildkodierungsvorrichtung, welche dieses Verfahren verwendet
EP0941613B1 (de) Verfahren zur bildcodierung eines digitalisierten bildes
DE102013013190A1 (de) Erweitern von Vorhersagemodi und Leistungsvermögen von Video-Codecs
WO1998034406A1 (de) Verfahren und anordnung zur codierung und decodierung eines digitalisierten bildes
DE10218541A1 (de) Verfahren zur Videocodierung und Computerprogrammprodukt
EP1110407B1 (de) Verfahren und anordnung zur codierung und decodierung eines digitalisierten bildes mit anwendung eines gesamtbewegungsvektors
EP1101196A1 (de) Verfahren und anordnung zur bewegungsschätzung in einem digitalisierten bild mit bildpunkten
DE112019000210T5 (de) Würfelbasiertes Projektionsverfahren, welches unterschiedliche Abbildungsfunktionen auf unterschiedliche quadratische Projektionsflächen, unterschiedliche Achsen und/oder unterschiedliche Lagen einer Achse anwendet
EP0981909B1 (de) Verfahren und vorrichtung zur codierung und decodierung eines digitalisierten bildes
DE60208388T2 (de) Verfahren zur Berechnung von zeitlichen Wavelet-Koeffizienten eines GOP
DE19944300C2 (de) Verfahren, Anordnung und Computerprogrammerzeugnis zur Bewegungsschätzung bei der Codierung von einem Bildobjekt in einem Bild
DE19812118A1 (de) Verfahren zur Erhöhung der Auflösung eines Bildes
WO2001033827A2 (de) Verfahren und anordnung zur transformation eines bildblocks aus bildblockpunkten
DE102007012457A1 (de) Verfahren zur Klassifikation komprimierter Daten
EP1121810A1 (de) Verfahren und anordnung zur bearbeitung eines digitalisierten bildes
WO2000025232A1 (de) Verfahren und anordnung zur codierung, decodierung und übertragung eines digitalisierten bildes

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: GRUENECKER PATENT- UND RECHTSANWAELTE PARTG MB, DE