DE112018002110T5 - Systeme und verfahren für spiel-generierte bewegungsvektoren - Google Patents
Systeme und verfahren für spiel-generierte bewegungsvektoren Download PDFInfo
- 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
Links
- 230000033001 locomotion Effects 0.000 title claims abstract description 150
- 239000013598 vector Substances 0.000 title claims abstract description 103
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000005540 biological transmission Effects 0.000 claims abstract description 9
- 239000000872 buffer Substances 0.000 claims description 19
- 230000009466 transformation Effects 0.000 claims description 14
- 238000013139 quantization Methods 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000011426 transformation method Methods 0.000 claims 2
- 238000009877 rendering Methods 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 16
- 238000005516 engineering process Methods 0.000 description 10
- 230000009467 reduction Effects 0.000 description 8
- 230000006872 improvement Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- BUHVIAUBTBOHAG-FOYDDCNASA-N (2r,3r,4s,5r)-2-[6-[[2-(3,5-dimethoxyphenyl)-2-(2-methylphenyl)ethyl]amino]purin-9-yl]-5-(hydroxymethyl)oxolane-3,4-diol Chemical compound COC1=CC(OC)=CC(C(CNC=2C=3N=CN(C=3N=CN=2)[C@H]2[C@@H]([C@H](O)[C@@H](CO)O2)O)C=2C(=CC=CC=2)C)=C1 BUHVIAUBTBOHAG-FOYDDCNASA-N 0.000 description 1
- 238000012935 Averaging Methods 0.000 description 1
- 206010020751 Hypersensitivity Diseases 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- E—FIXED CONSTRUCTIONS
- E05—LOCKS; KEYS; WINDOW OR DOOR FITTINGS; SAFES
- E05B—LOCKS; ACCESSORIES THEREFOR; HANDCUFFS
- E05B77/00—Vehicle locks characterised by special functions or purposes
- E05B77/54—Automatic securing or unlocking of bolts triggered by certain vehicle parameters, e.g. exceeding a speed threshold
-
- E—FIXED CONSTRUCTIONS
- E05—LOCKS; KEYS; WINDOW OR DOOR FITTINGS; SAFES
- E05B—LOCKS; ACCESSORIES THEREFOR; HANDCUFFS
- E05B79/00—Mounting or connecting vehicle locks or parts thereof
- E05B79/10—Connections between movable lock parts
- E05B79/20—Connections between movable lock parts using flexible connections, e.g. Bowden cables
-
- E—FIXED CONSTRUCTIONS
- E05—LOCKS; KEYS; WINDOW OR DOOR FITTINGS; SAFES
- E05B—LOCKS; ACCESSORIES THEREFOR; HANDCUFFS
- E05B83/00—Vehicle locks specially adapted for particular types of wing or vehicle
- E05B83/16—Locks for luggage compartments, car boot lids or car bonnets
- E05B83/24—Locks for luggage compartments, car boot lids or car bonnets for car bonnets
-
- E—FIXED CONSTRUCTIONS
- E05—LOCKS; KEYS; WINDOW OR DOOR FITTINGS; SAFES
- E05B—LOCKS; ACCESSORIES THEREFOR; HANDCUFFS
- E05B85/00—Details of vehicle locks not provided for in groups E05B77/00 - E05B83/00
- E05B85/20—Bolts or detents
- E05B85/24—Bolts rotating about an axis
- E05B85/243—Bolts rotating about an axis with a bifurcated bolt
-
- E—FIXED CONSTRUCTIONS
- E05—LOCKS; KEYS; WINDOW OR DOOR FITTINGS; SAFES
- E05B—LOCKS; ACCESSORIES THEREFOR; HANDCUFFS
- E05B85/00—Details of vehicle locks not provided for in groups E05B77/00 - E05B83/00
- E05B85/20—Bolts or detents
- E05B85/24—Bolts rotating about an axis
- E05B85/26—Cooperation between bolts and detents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/527—Global motion vector estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/537—Motion estimation other than block-based
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/56—Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/587—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- E—FIXED CONSTRUCTIONS
- E05—LOCKS; KEYS; WINDOW OR DOOR FITTINGS; SAFES
- E05B—LOCKS; ACCESSORIES THEREFOR; HANDCUFFS
- E05B81/00—Power-actuated vehicle locks
- E05B81/12—Power-actuated vehicle locks characterised by the function or purpose of the powered actuators
- E05B81/16—Power-actuated vehicle locks characterised by the function or purpose of the powered actuators operating on locking elements for locking or unlocking action
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F16—ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
- F16H—GEARING
- F16H59/00—Control inputs to control units of change-speed-, or reversing-gearings for conveying rotary motion
- F16H59/02—Selector apparatus
- F16H59/08—Range selector apparatus
- F16H59/10—Range selector apparatus comprising levers
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F16—ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
- F16H—GEARING
- F16H63/00—Control 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/02—Final output mechanisms therefor; Actuating means for the final output mechanisms
- F16H63/30—Constructional features of the final output mechanisms
- F16H63/34—Locking or disabling mechanisms
- F16H63/36—Interlocking devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/186—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/53—Multi-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 veröffentlichte
US-Patentanmeldung Nr. 2011/0261885 A1 - 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 von4 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 in1 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 Client116 zu übertragen. Eine 3D-Grafik-Engine 100, die im Speicher106 auf einer Serverarchitektur120 läuft, übergibt die Videos und zusätzliche Bewegungsvektorinformationen über ein gerendertes Videobild an eine Codiermaschine102 (hierin als Codec oder Codierer bezeichnet), die einen codierten Bitstrom108 zur Übertragung an ein Client-Computersystem116 generiert. Die Serverarchitektur120 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-Engine100 beispielsweise als Grafikprozessor implementiert werden, der die Videospielsoftware104 ausführt, die in einen computerlesbaren Speicher106 geladen wird, während die Codiermaschine102 als CPU mit Videocodierungssoftware implementiert werden kann. Die Codiermaschine102 generiert codierte Videodaten108 zur Übertragung an ein entferntes Client-Computersystem116 , das eine entfernte Codiermaschine (Codec)110 beinhaltet, die den Bitstrom zur Wiedergabe auf einer von einer Anzeigesteuerung112 gesteuerten Anzeige114 decodiert. Das Remote-Client-Computersystem116 ist eine beliebige Kombination aus Hardware, Gerät oder Software, die die Decodierung und Anzeige des codierten Bitstroms108 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 Schritt202 müssen die zusätzlichen Daten zunächst als normales Betriebsmerkmal der Grafik-Engine100 auf einem Server120 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-Engine100 , die sich auf dem Server120 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. Die256 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 mit3 näher beschrieben. - In Schritt
206 werden die Pro-Makroblock-Bewegungsvektorinformationen in den Codierungsmotor/Codierer102 eingespeist, der sich auf dem Server120 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 Schritt204 ) 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 Schritt208 ab dem Schritt208 der Bewegungskompensation. Der Rest des Videocodierungsprozesses, wie er in Verbindung mit4 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-Engine100 stattfindet, von Pro-Pixel-Bewegungsvektoren zu Pro-Makroblock-Bewegungsvektoren. Während der Farbgenerierungsphase generiert eine 3D-Grafik-Engine 100 auf einem Server120 Pro-Pixel-Bewegungsvektoren und speichert die Daten im Geschwindigkeitspuffer300 , der sich ebenfalls auf dem Server120 befindet. Der Geschwindigkeitspuffer300 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-Shader302 die Vektoren im Geschwindigkeitspuffer300 mit der Kamerageschwindigkeit für alle statischen Objekte, die nicht bereits im Geschwindigkeitspuffer enthalten sind, und speichert das Pro-Pixel-Ergebnis im Bewegungsvektorpuffer304 . 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-Bewegungsvektoren308 im Bewegungsvektorpuffer304 gespeichert. Diese Pro-Pixel-Bewegungsvektoren308 müssen in einen einzelnen Pro-Makroblock-Bewegungsvektor310 umgewandelt werden, der in den Codierer eingespeist werden kann, um zur Bewegungskompensation verwendet zu werden, wie in4 gerendert. Das arithmetische Mittel des Satzes der Pro-Pixel-Vektoren308 ist ein Transformationsverfahren312 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-Bewegungsvektor310 für die meisten Pixel im Makroblock306 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-Engine100 des Servers120 von1 generiert wurden, in die Codiermaschine102 des Servers120 in1 . Wie im Folgenden ausführlich erläutert, wird der resultierende Bitstrom von codierten Videodaten108 an das entfernte Client-Computersystem116 übertragen. Das in4 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 Bewegungskompensation406 bei der I-Frame-Generierung nicht durchgeführt wird. Der farbunterabgetastete Video Frame402 und die Pro-Block-Bewegungsvektordaten404 werden von der Grafik-Engine100 übertragen, sobald sie verfügbar sind. Die spielgenerierten Bewegungsvektoren404 werden verwendet, um die Generierung von Bewegungsvektoren zu umgehen, die sonst in einem typischen Schritt der Bewegungsschätzung426 auftreten würden, wie im AVC-Standard H.264/MPEG-4 beschrieben. Der Schritt zur Bewegungsschätzung426 wird übersprungen und kann in einer Software-Implementierung der Codiermaschine deaktiviert werden. Das Überspringen des Schrittes426 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 mit3 beschrieben, mehr als ausgleicht. - Die Bewegungsvektoren
404 , die bereits auf die entsprechende Makroblockgröße umgerechnet wurden, können sofort ohne Änderung der Bewegungskompensation406 verwendet werden. Die Ergebnisse der Bewegungskompensation406 werden mit dem eingegebenen farbunterabgetasteten Videoframe402 zu dem Residualbild430 kombiniert, das von den Residualtransformations- und Skalierungsschritten408 , Quantisierung410 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 Bild428 werden berechnet, indem die Algorithmen des Codierungsstandards für die inverse Quantisierung414 , die inverse Transformation & Skalierung416 und die Deblockierung418 angewendet werden. Die gescannten Koeffizienten412 werden mit den Deblocking-Einstellungen420 kombiniert und im Entropie-Codierer422 codiert, bevor sie als Bitstrom108 an das Remote-Client-Computersystem116 zur Decodierung am Codec110 des Remote-Client-Computersystems übertragen werden. Das deblockierte Bild428 wird zum Eingang für die Bewegungskompensation406 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ätzung426 und Bewegungskompensation406 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)
- 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.
- Verfahren nach
Anspruch 1 , wobei die einen oder mehreren Pro-Pixel-Bewegungsvektoren vor der Umwandlung in einem Geschwindigkeitspuffer gespeichert werden. - 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. - 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. - Verfahren nach
Anspruch 1 , wobei die codierten Videodaten zur Wiedergabe auf einem entfernten Client-Computersystem decodiert werden. - 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. - 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. - 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. - 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.
- System nach
Anspruch 9 , wobei die einen oder mehreren Pro-Pixel-Bewegungsvektoren vor der Umwandlung in einem Geschwindigkeitspuffer gespeichert werden. - 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. - 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. - 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. - 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. - System nach
Anspruch 9 , wobei die codierten Videodaten konfiguriert sind, um decodiert und auf einer von einer Anzeigesteuerung gesteuerten Anzeige wiedergegeben zu werden. - 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. - 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.
- Verfahren nach
Anspruch 17 , wobei die kombinierten Pro-Block-Bewegungsvektordaten und die farbunterabgetasteten Video-Frames ein Residualbild bilden. - Verfahren nach
Anspruch 18 , wobei das Residualbild durch Residualtransformation und -skalierung, Quantisierung und/oder Abtastung vor dem Codieren weiterverarbeitet wird. - Verfahren nach
Anspruch 18 , ferner umfassend die folgenden Schritte von: Berechnen einer inversen Quantisierung, inversen Transformation und Skalierung; und Deblocking des Residualbildes.
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)
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)
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)
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 |
-
2018
- 2018-04-20 CA CA3059740A patent/CA3059740A1/en active Pending
- 2018-04-20 DE DE112018002110.6T patent/DE112018002110T5/de active Pending
- 2018-04-20 KR KR1020217038338A patent/KR20210148381A/ko not_active Application Discontinuation
- 2018-04-20 TW TW110103931A patent/TWI797550B/zh active
- 2018-04-20 EP EP18788077.8A patent/EP3613015A4/de active Pending
- 2018-04-20 CN CN201880040171.3A patent/CN110959169A/zh active Pending
- 2018-04-20 AU AU2018254550A patent/AU2018254550B2/en active Active
- 2018-04-20 RU RU2019136490A patent/RU2735241C1/ru active
- 2018-04-20 TW TW107113590A patent/TWI691199B/zh active
- 2018-04-20 KR KR1020197033912A patent/KR20200019854A/ko not_active Application Discontinuation
- 2018-04-20 KR KR1020237043929A patent/KR20240001278A/ko active Application Filing
- 2018-04-20 RU RU2020134091A patent/RU2760974C2/ru active
- 2018-04-20 JP JP2020507497A patent/JP7135067B2/ja active Active
- 2018-04-20 TW TW109107924A patent/TWI721816B/zh active
- 2018-04-20 BR BR112019022007-0A patent/BR112019022007A2/pt unknown
- 2018-04-20 CA CA3173525A patent/CA3173525A1/en active Pending
- 2018-04-20 KR KR1020227028903A patent/KR102617595B1/ko active IP Right Grant
- 2018-04-20 WO PCT/US2018/028544 patent/WO2018195405A1/en active Application Filing
- 2018-04-20 GB GB1916979.6A patent/GB2576846A/en not_active Withdrawn
- 2018-04-20 US US15/958,499 patent/US10567788B2/en active Active
-
2019
- 2019-03-01 US US16/290,468 patent/US10701388B2/en active Active
- 2019-10-18 MX MX2021004095A patent/MX2021004095A/es unknown
- 2019-11-20 ZA ZA2019/07680A patent/ZA201907680B/en unknown
-
2020
- 2020-01-07 US US16/736,490 patent/US11503326B2/en active Active
- 2020-04-13 US US16/847,493 patent/US11381835B2/en active Active
- 2020-11-12 ZA ZA2020/07051A patent/ZA202007051B/en unknown
- 2020-11-12 AU AU2020267252A patent/AU2020267252B2/en active Active
-
2022
- 2022-09-29 US US17/955,665 patent/US20230089232A1/en active Pending
Patent Citations (2)
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
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 |