DE112009002346T5 - Verarbeitung von Videodaten in Geräten mit eingeschränkten Ressourcen - Google Patents

Verarbeitung von Videodaten in Geräten mit eingeschränkten Ressourcen Download PDF

Info

Publication number
DE112009002346T5
DE112009002346T5 DE112009002346T DE112009002346T DE112009002346T5 DE 112009002346 T5 DE112009002346 T5 DE 112009002346T5 DE 112009002346 T DE112009002346 T DE 112009002346T DE 112009002346 T DE112009002346 T DE 112009002346T DE 112009002346 T5 DE112009002346 T5 DE 112009002346T5
Authority
DE
Germany
Prior art keywords
logic
short
video images
signal
average
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE112009002346T
Other languages
English (en)
Inventor
Asaf Hargil
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE112009002346T5 publication Critical patent/DE112009002346T5/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

Eine Videoverarbeitungseinheit kann eine Videoverarbeitungslogik umfassen, um die Verbesserungsoperation, die von der Videoverarbeitungseinheit ausgeführt wird, zu steuern. Die Videoverarbeitungslogik kann einen kurzzeitigen Bildratendurchschnittswert in Artwort auf den Erhalt von mehreren Videobildern bestimmen. Weiterhin kann die Videoverarbeitungslogik eine Ableitung des kurzzeitigen Bildratenwertes erzeugen. Die Videoverarbeitungslogik kann dann das Überwachen einer Prozessornutzung aktivieren, wenn die Ableitung des kurzzeitigen Bildratenwertes unterhalb eines ersten Schwellenwertes ist. Die Videoverarbeitungslogik kann dann die Leistung des Renderings der mehreren Videobilder reduzieren, wenn ein Durchschnittswert der Prozessornutzung oberhalb eines zweiten Schwellenwertes liegt. Während des Wiederherstellens der Leistung kann die Videoverarbeitungslogik die Verbesserungsoperationen schrittweise nach dem Feststellen der verfügbaren Prozessorressourcen wiederherstellen.

Description

  • HINTERGRUND
  • Eine Videodatenverarbeitungseinheit kann in einem digitalen System wie beispielsweise einer Einheit mit eingeschränkten Ressourcen vorgesehen sein. In einem Ausführungsbeispiel kann das ressourceneingeschränkte Gerät sich auf einen Satz von Geräten beziehen, welche begrenzte Ressourcen wie beispielsweise Verarbeitungszyklen, Speicher und Bandbreite zum Datentransfer aufweisen. Die ressourceneingeschränkten Geräte können Mobiltelefone, digitale persönliche Assistenten (PDA), mobile Internetgeräte (MID), Kameras, Camcorders, DVD-Spieler (digital versatile disc player), CD-Spieler (compact disc players) und andere ähnliche Geräte umfassen.
  • Die ressourceneingeschränkten Geräte, welche Videodaten verarbeiten, können kleine Anzeigen umfassen, um die Videos darzustellen. Die kleine Größe der Anzeigen kann das Videobetrachtungserlebnis beim Nutzer von ressourceneingeschränkten Geräte begrenzen. Um solche Einschränkungen beim Betrachten von Videos zu vermeiden oder zu reduzieren, können die Videoverarbeitungsgeräte Videoverbesserungstechniken anwenden. Zusätzliche Ressourcen können verwendet werden, um die Verbesserungstechniken durchzuführen. Ein Abgleichen der Videoverarbeitungsleistung an die verfügbaren Ressourcen auf dem ressourceneingeschränkten Gerät kann genutzt werden, um gleichbleibende Servicequalitätswerte (QoS) aufrecht zu erhalten.
  • KURZBESCHREIBUNG DER FIGUREN
  • Die Erfindung, die hierin beschrieben wird, wird mit Hilfe von Beispielen illustriert und ist in keiner Weise durch die beigefügten Figuren eingeschränkt. Der Einfachheit halber und der Klarheit der Figuren wegen sind in den Figuren Elemente nicht notwendigerweise maßstabsgetreut dargestellt. Z. B. sind die Abmaße einiger Elemente relativ zu anderen Elementen der Klarheit wegen vergrößert. Sofern geeignet, werden außerdem Bezugszeichen wiederholt in den Figuren genutzt, um entsprechende oder analoge Elemente zu kennzeichnen.
  • 1 zeigt eine Videoverarbeitungslogik 100 entsprechend einem Ausführungsbeispiel, die eine Verarbeitung von Videodaten auf ressourceneingeschränkten Geräten unterstützt.
  • 2 zeigt eine Leistungsmanagementlogik 160 gemäß einem Ausführungsbeispiel, die eine Auswahl von Videoverbesserungstechniken unterstützt, um die verfügbaren Ressourcen auf dem ressourceneingeschränkte Gerät abzustimmen.
  • 3 zeigt einen Flowchart gemäß einem Ausführungsbeispiel, der ein Auswahlverfahren für Videoverbesserungstechniken darstellt, um die verfügbaren Ressourcen auf dem ressourceneingeschränkten Gerät abzustimmen.
  • 4 zeigt ein erstes ressourceneingeschränktes Gerät gemäß einem Ausführungsbeispiel, das eine Auswahl von Videoverbesserungstechniken unterstützt, um verfügbare Ressourcen auf dem ressourceneingeschränkten Gerät abzustimmen.
  • 5 zeigt ein zweite ressourceneingeschränktes Gerät gemäß einem Ausführungsbeispiel, das eine Auswahl von Videoverbesserungstechniken unterstützt, um verfügbare Ressourcen auf dem ressourceneingeschränkten Gerät abzustimmen.
  • DETAILLIERTE BESCHREIBUNG
  • Die folgende Beschreibung beschreibt Techniken zum Verarbeiten von Videodaten in ressourceneingeschränkten Geräten. In der folgenden Beschreibung werden verschiedene spezifische Details wie beispielsweise logische Implementierungen, Ressourcen-Partitionierungen oder -Teilungen oder Vervielfachung von Implementierungen, Arten und Wechselbeziehungen von Systemkomponenten und logische Partitionierungen oder Integrationsmöglichkeiten dargelegt, um ein gründlicheres Verständnis der vorliegenden Erfindung zu erreichen. Der Fachmann wird jedoch erkennen, dass die Erfindung auch ohne solche spezifischen Details ausführbar ist. Bei anderen Beispielen sind Kontrollstrukturen, Tor-Niveau-Schaltungen (gate level circuits) und vollständige Softwareinstruktionssequenzen nicht im Detail gezeigt, um die Erfindung nicht zu verdecken. Der Fachmann wird in der Lage sein, zusammen mit der beiliegenden Beschreibung die adäquate Funktionalität ohne unnötiges Experimentieren zu implementieren.
  • Die Bezugnahme in der Beschreibung auf „ein Ausführungsbeispiel” oder „ein beispielhaftes Ausführungsbeispiel” weist darauf hin, dass das beschriebene Ausführungsbeispiel ein besonderes Merkmal, Struktur oder Charakteristik umfassen kann, aber nicht jedes Ausführungsbeispiel wird notwendigerweise das besondere Merkmal, Struktur oder Charakteristik umfassen. Außerdem beziehen sich derartige Formulierungen nicht notwendigerweise auf das gleiche Ausführungsbeispiel. Weiterhin wird darauf verwiesen, dass wenn ein bestimmtes Merkmal, Struktur oder Charakteristik in Kombination mit einem Ausführungsbeispiel beschrieben wird, dass es in dem Wissen des Fachmanns liegt, solch ein Merkmal, Struktur oder Charakteristik in Verbindung mit anderen Ausführungsbeispielen zu kombinieren, ob sie nun explizit beschrieben ist oder nicht.
  • Ausführungsbeispiele der vorliegenden Erfindung können in Hardware, Firmware, Software oder jede Kombination davon implementiert sein. Ausführungsbeispiele der Erfindung können ebenso als Instruktionen oder Befehle auf einem maschinenlesbaren Medium gespeichert sein, welche durch einen oder mehrere Prozessoren gelesen und ausgeführt werden können. Ein maschinenlesbares Medium oder Speichermedium kann jeden Mechanismus zum Speichern und Übertragen von Informationen in maschinenlesbarer Form (z. B. durch ein Computergerät) umfassen.
  • Ein maschinenlesbares Speichermedium kann beispielsweise einen Nur-Lese-Speicher (read only memory, ROM); einen Arbeitsspeicher (RAM); ein magnetisches(Disketten-)Speichermedium; ein optisches Speichermedium; einen Flashspeicher; elektrische, optische Formen von Signalen umfassen. Im weiteren können Firmware, Software, Routinen und Instruktionen hierin durch das Ausführen bestimmter Aktionen beschrieben werden. Es sollte jedoch beachtet werden, dass solche Beschreibungen nur der Einfachheit dienen und dass solche Aktionen tatsächlich Ergebnis sind von Computergeräten, Prozessoren, Controller und anderen Einheiten sind, die die Firmware, Software, Routinen und Instruktionen ausführen.
  • 1 zeigt ein Ausführungsbeispiel für eine Videoverarbeitungslogik 100. Die Videoverarbeitungslogik VPL 100 kann beispielsweise eine Decoderlogik 120, eine Verbesserungslogik 140 (eine sogenannte Enhance-Logik) und eine Leistungsmanagementlogik 160 (sogenannte Performance-Management-Logik) umfassen. Bei einem Ausführungsbeispiel können die grafischen und/oder Videoprozesstechniken, die hierin in Bezug auf die VPL 100 beschrieben werden, in unterschiedlichen Hardwarearchitekturen implementiert sein. Beispielsweise können grafische und/oder Videofunktionalitäten in einem Chipsatz integriert sein. Alternativ kann ein eigenständiger Grafik- und/oder Videoprozessor genutzt werden. In einem weiteren Ausführungsbeispiel sind die Grafik- und/oder Videofunktionen durch oder in einem Standardprozessor implementiert, der beispielweise einen Multikernprozessor umfassen kann. In einem weiteren Ausführungsbeispiel können die Funktionen in einem Haushaltselektronikgerät, wie beispielsweise in einem mobilen Internetgerät, mobilem Telefon, Unterhaltungselektronikgerät und anderen derartigen Geräten implementiert sein.
  • Bei einem Ausführungsbeispiel kann die Decoderlogik 120 Composite-Videodaten wie beispielsweise sogenanntes Streaming-Video (einen Bilddatenstrom) nach dem Erhalten der Composite-Videodaten decodieren. In einem Ausführungsbeispiel können die decodierten Videodaten für die Verbesserungslogik 140 bereitgestellt werden. In einem weiteren Ausführungsbeispiel kann die Decoderlogik 120 die Helligkeits- und die Farbkomponenten von den erhaltenen Composite-Videodaten trennen. In einem weiteren Ausführungsbeispiel kann die Decoderlogik 120 die Videodaten basierend auf dem PAL (Phase-Alternating-Line) oder dem NTSC (National Television System Committee) oder dem SECAM (Sequential Colour with Memory) Standard oder andere solchen Standards verarbeiten.
  • Bei einem anderen Ausführungsbeispiel kann die Verbesserungslogik 140 die decodierten Daten empfangen und eine oder mehrere VideoBildverbesserungsoperationen ausführen, um die Qualität des Videos zu verbessern. Bei einem weiteren Ausführungsbeispiel können die VideoBildverbesserungsoperationen ein Skalieren, ein Rauschunterdrücken, eine automatische Farbverbesserung, eine Schärfenverbesserung, eine Verbesserung des Kontrastes, ein Feststellen einer Hautfarbtönung, eine Gesamtfarbkontrolle, eine Bildratenkonvertierung und andere Änderungen umfassen, um das Videobetrachtungserlebnis bei dem Nutzer zu verbessern. Bei einem weiteren Ausführungsbeispiel kann die Verbesserungslogik 140 die Video/Bildverbesserungen unter Nutzung von einem oder mehreren Verbesserungstechniken durchführen.
  • Bei einem weiteren Aufführungsbeispiel kann die Skalierungsoperation unter Nutzung einer beispielhaften bilinearen Interpolation, oder einer beispielhaften Poly-Phasenfiltertechnik ausgeführt werden. Bei einem weiteren Ausführungsbeispiel kann die Poly-Phasenfiltertechnik nur rechenintensiv ausgeführt werden, aber kann dann eine bessere Qualität des skalierten Videos liefern als beispielsweise die bilineare Interpolation. Bei einem weiteren Ausführungsbeispiel kann die Verbesserungslogik 140 alle, oder einige oder keine der Verbesserungsoperationen ausführen, und zwar basierend auf Kontrollsignalen, die von der Leistungsmanagementlogik 160 empfangen werden. Bei einem weiteren Ausführungsbeispiel kann die Verbesserungslogik 140 eine Technik von mehreren verfügbaren Techniken auswählen, um die Verbesserungsoperation basierend auf Auswahlparametern durchzuführen, die durch die Performancemanagementlogik 160 vorgegeben werden.
  • Bei einem Ausführungsbeispiel kann die Verbesserungslogik 140 ein Kontroll- oder Steuersignal empfangen, welches anzeigt, dass zwei Verbesserungsoperationen (z. B. Skalierungs- und Farbkorrekturen) durchzuführen sind. Ebenso kann das Kontrollsignal einen Auswahlwert umfassen, um anzuzeigen, dass eine bilineare Interpolation-Verbesserungstechnik bei dem Ausführen der Skalierungsoperation zu nutzen ist. Bei einem weiteren Ausführungsbeispiel kann die Verbesserungslogik 140 das Kontrollsignal empfangen und die Skalierungsoperation unter Nutzung der bilinearen Interpolationstechnik ausführen. Bei einem weiteren Ausführungsbeispiel kann die Verbesserungslogik 140 ebenfalls eine Farbkorrekturoperation in Antwort auf das Erhalten des Kontrollsignals ausführen. Die Verbesserungslogik 140 kann jedoch weitere Verbesserungsoperationen für das Videosignal überspringen.
  • Bei weiteren Ausführungsbeispielen kann die Leistungsmanagementlogik 160 den CPU-Auslastungszustand überwachen, wenn die Leistungsmanagementlogik 160 vermutet, dass ein CPU-Sättigungszustand vorliegt. Bei weiteren Ausführungsbeispielen kann die Leistungsmanagementlogik 160 periodisch die Ableitung des kurzzeitigen (oder kurzfristigen) Bildratendurchschnitts (y'[n]) bestimmen. Bei weiteren Ausführungsbeispielen kann die Leistungsmanagementlogik 160 eine Überwachung der CPU-Nutzung aktivieren, wenn (y'[n]) kleiner ist als ein erster Schwellenwert. Bei einem Ausführungsbeispiel kann die Leistungsüberwachungslogik 160 die Videoperformance (oder Bildleistung) reduzieren, wenn der Kurzzeitdurchschnitt der CPU-Nutzung (Durchschnittswert der Prozessornutzung) oberhalb eines zweiten Schwellenwerts liegt. Bei weiteren Ausführungsbeispielen kann die CPU-Nutzung (Prozessornutzung oder -auslastung) zum Ausführen anderer Applikationen wie beispielsweise einem automatischen Backup erhöht werden, so dass die verfügbaren CPU-Ressourcen zum Ausführen von Verbesserungsoperationen reduziert werden.
  • Bei weiteren Ausführungsbeispielen kann die Leistungsmanagementlogik 160 Kontrollsignale generieren, die der Verbesserungslogik 140 basierend auf dem Wert der Ableitung des kurzzeitigen Bildratendurchschnitt und des kurzzeitigen durchschnittlichen CPU-Nutzungswertes bereitgestellt werden. Bei weiteren Ausführungsbeispielen kann die Leistungsmanagementlogik 160 ein Kontrollsignal generieren, welches ein Selektions- oder Auswahlfeld umfasst. Bei weiteren Ausführungsbeispielen kann das Selektionsfeld (Feld für den Selektionswert) ein 6-Bit-Feld umfassen, in welchem die ersten vier Bits mit dem niedrigstwertigen Bit (LSB = least significant bit, am weitesten rechts stehendem Bit) einen Operationsidentifizierer darstellen (z. B. 0001 für Skalieren, 0010 für Rauschreduktion, 0011 für automatische Farbverbesserung, 0100 für Schärfenverbesserung, 0101 für Kontrastverbesserung, 0110 für Erfassung eines Hautfarbtons, 0111 für Gesamtfarbkontrolle, und 1000 für Bildratenkonvertierung). Bei einem weiteren Ausführungsbeispiel kann das fünfte und sechste Bit den Deaktivierungs-/Aktivierungszustand oder einen Auswahlwert für die Verbesserungstechnik, die während der Verbesserungsoperation angewandt werden soll, umfassen.
  • Bei weiteren Ausführungsbeispielen kann die Leistungsmanagementlogik 160 feststellen, dass basierend auf den zur Verfügung stehenden Ressourcen zwei Verbesserungsoperationen (z. B. Skalierungs- und Hauttonerfassungsoperation) ausgeführt werden. Bei weiteren Ausführungsbeispielen kann die Leistungsmanagementlogik 160 ein Kontrollsignal generieren, welches ein erstes Selektionsfeld mit einem Wert gleich 010001 und ein zweites Selektionsfeld mit einem Wert 010110 umfasst. Bei weiteren Ausführungsbeispielen können die vier Bits (0001) angefangen vom LSB des ersten Selektionsfeldes anzeigen, dass die Skalierungsoperation auszuführen ist und das fünfte und sechste Bit (= 01) anzeigen, dass eine bilineare Interpolationstechnik genutzt werden kann, um die Skalierungsoperation auszuführen. In ähnlicher Weise kann bei einem weiteren Ausführungsbeispiel die vier Bits (0110) angefangen mit dem LSB des zweiten Selektionsfeldes anzeigen, dass die Hautfarbtondetektion ausgeführt wird und das fünfte und sechste Bit (= 01) anzeigen, dass eine Wahrscheinlichkeitsverteilung der Farbraumtechnik genutzt wird, um die Hautfarbtonoperation auszuführen.
  • Bei einem Ausführungsbeispiel kann die Leistungsmanagementlogik 160 die verfügbaren Ressourcen überwachen und die Verbesserungsoperationen Stück für Stück basierend auf dem Umfang der zur Verfügung stehenden Ressourcen wiederherstellen (wieder aktivieren). Bei einem Ausführungsbeispiel kann die Leistungsmanagementlogik 160 die Verbesserungsoperationen zum Verbessern der Darstellung der Videodaten für den Nutzer wiederherstellen.
  • Ein Ausführungsbeispiel für die Leistungsmanagementlogik 160, die die Operation der Verbesserungslogik 140 kontrollieren/steuern kann, ist in der 2 gezeigt. In einem Ausführungsbeispiel kann die Leistungsmanagementlogik 160 eine Schnittstelle 210, einen Frameschätzer 230 (Framevorhersageeinheit), eine CPU-Überwachungslogik 250, eine Wiederherstellungslogik 260 und eine Kontrolllogik 290 umfassen. Bei einem Ausführungsbeispiel kann die Leistungsüberwachungslogik unter Nutzung eines Satzes von Softwareinstruktionen implementiert sein. Bei einem anderen Ausführungsbeispiel kann die Leistungslogik 160 unter Nutzung von Mikrokontrollern implementiert sein und in noch weiteren Ausführungsbeispielen kann die Leistungsmanagementlogik 160 unter Nutzung von frei programmierbaren Feldarrays (FPGA = field programmable gate arrays) oder als eine anwendungsspezifische integrierte Schaltung (ASIC = application specific integrated circuit) oder als eine Kombination davon oder ähnlichen Ansteuerungen implementiert sein.
  • Bei einem weiteren Ausführungsbeispiel kann die Schnittstelle 210 Videobilder von der Verbesserungslogik 140 empfangen und die Videobilder für den Frameschätzer 230 bereitstellen. Bei einem weiteren Ausführungsbeispiel kann die Schnittstelle 210 ein Signal an die Kontrolllogik 290 nach dem Empfang der Videobilder senden. Bei einem weiteren Ausführungsbeispiel kann die Schnittstelle 210 Kontrollsignale der Kontrolllogik 290 empfangen und Kontrollsignale an die Verbesserungslogik 140 und/oder an die Decoderlogik 120 weiterleiten. Bei weiteren Ausführungsbeispielen kann die Schnittstelle 210 Umwandlungen beim koppeln der Leistungsmanagementlogik 160 an die Decoderlogik 120 und an die Verbesserungslogik 140 ausführen.
  • Bei weiteren Ausführungsbeispielen kann der Frameschätzer 230 Videobilder empfangen und die gegenwärtige Bildrate (CFR), die Kurzzeitbildrate (y[n]) und eine Ableitung der Kurzzeitbildrate (y'[n]) bestimmen und die Werte für die Kontrolllogik 290 bereitstellen. Bei einem Ausführungsbeispiel kann der Frameschätzer 230 die gegenwärtige Bildrate (CFR) unter Nutzung der Gleichung (1) wie folgt bestimmen: CFR = (Bildnummer des gegenwärtigen Bildes – Bildnummer des Bilder, dass vor T Sekunden empfangen wurde)/T Gleichung (1) wobei '/' die Divisionsoperation und '–' die Subtraktionsoperation darstellt Bei weiteren Ausführungsbeispielen kann der Frameschätzer 230 den kurzzeitigen Bildratendurchschnitt (y[n]) unter Nutzung der geschätzten Bildrate (x[n]) zur Zeit 'n' bestimmen. Bei einem Ausführungsbeispiel kann der Frameschätzer 230 ein Filter mit unendlicher Impulsantwort (IIR = Infinite Impulse Response) umfassen, um (y[n]) zu bestimmen. Bei einem Ausführungsbeispiel kann der Frameschätzer 230 (y[n]) unter Nutzung der Gleichung (2) wie folgt bestimmen: y[n] = 0,4 * x[n] + 0,6 * y[n – 1] Gleichung (2) wobei '*' die Multiplikationsoperation und '+' den Additionsoperator darstellt.
  • Bei einem Ausführungsbeispiel kann der Frameschätzer 230 die Ableitung des kurzzeitigen Bildratendurchschnitts unter Nutzung des kurzzeitigen Bildratendurchschnitts (y[n]) bestimmen. Bei einem Ausführungsbeispiel kann der Frameschätzer 230 eine Mittelungslogik umfassen, welche (y'[n]) unter Nutzung der Gleichung (3) wie folgt bestimmt: y'[n] = (y[n] – y[n – 1])/T Gleichung (3) wobei '/' den Divisionsoperator und '–' den Subtraktionsoperation darstellen.
  • Bei einem Ausführungsbeispiel kann die CPU-Überwachungslogik 250 die CPU überwachen und bestimmen, dass die Konfiguration basierend auf ein ,Start-Überwachung'-Signal zu verringern ist, welches von der Kontrolllogik 290 empfangen wird. Bei einem Ausführungsbeispiel kann die CPU-Überwachungslogik 250 anfangen, periodisch die CPU-Nutzung zu überwachen. Bei einem Ausführungsbeispiel kann das 'Start-Überwachung'-Signal empfangen werden, wenn die Ableitung des kurzzeitigen Bildratendurchschnitts (y'[n]) einen negativen Wert erreicht. Bei einem Ausführungsbeispiel kann die CPU-Überwachungslogik 250 ein Signalsample (a[n]) über die CPU-Nutzung empfangen und den kurzzeitigen Bildratendurchschnitt der CPU-Nutzung (s[n]) unter Nutzung des IIR-Filters, wie in der Gleichung (4) gezeigt, bestimmen: s[n] = 0,5 * a[n] + 0,5 * s[n – 1] Gleichung (4)
  • Bei einem Ausführungsbeispiel kann die CPU-Überwachungslogik 250 den Kurzzeit-CPU-Nutzungsdurchschnittswert (s[n]) für die Kontrolllogik 290 bereitstellen.
  • Bei einem Ausführungsbeispiel kann die Wiederherstellungslogik 260 nach dem Erhalt des 'Aktiviere Wiederherstellung'-Signals von der Kontrolllogik 290 aktiviert werden. Bei einem Ausführungsbeispiel kann die Wiederherstellungslogik 260 den kurzzeitigen CPU-Nutzungsdurchschnitt (s[n]) von der CPU-Überwachungslogik 250 empfangen und die zur Verfügung stehenden Ressourcen bestimmen. Bei einem Ausführungsbeispiel kann die Wiederherstellungslogik 260 das 'Wiederherstellungs-EO'-Signal erzeugen und das Wiederherstellungs-EO-Signal an die Kontrolllogik 290 senden. Bei einem Ausführungsbeispiel kann die Wiederherstellungslogik 260 den Wert von s[n] mit dem zweiten Schwellenwert vergleichen und, wenn s[n] unterhalb eines Sicherheitsabstandes von einem Schwellenwert liegt, kann die Wiederherstellungslogik 260 die 'EO-Wiederherstellung' starten. Bei einem Ausführungsbeispiel kann der EO-Teil in dem Signal die wiederherzustellende Verbesserungsoperation (EO = enhancement Operation) anzeigen. Bei einem Ausführungsbeispiel kann die Wiederherstellungslogik 260 die Verbesserungsoperationen eine nach der anderen wiederherstellen, um die Möglichkeit zu vermeiden, dass die CPU in den Sättigungszustand zurückfällt in Folge eines plötzlichen Anstieges des Ressourceverbrauchs, wenn alle oder viele Verbesserungsoperationen zur gleichen Zeit wiederhergestellt werden.
  • Bei einem Ausführungsbeispiel kann die Kontrolllogik 290 die gegenwärtige Bildrate (CFR), die Kurzzeitbildrate (y[n]) und eine Ableitung der kurzzeitigen Bildrate (y'[n]) von dem Frameschätzer 230 erhalten. Bei einem Ausführungsbeispiel kann die Kontrolllogik 290 die Ableitung des kurzzeitigen Bildratendurchschnitt (y'[n]) mit dem ersten Schwellenwert vergleichen und das 'Start-Überwachung'-Signal erzeugen. Bei einem Ausführungsbeispiel kann die Kontrolllogik 290 (y'[n]) überprüfen und kann das Start-Überwachung-Signal erzeugen, wenn der Wert von (y'[n]) negativ ist.
  • Bei einem Ausführungsbeispiel kann die Kontrolllogik 290 den Kurzzeit-CPU-Auslastungsdurchschnitt (s[n]) empfangen und ein 'Performancereduktionssignal' erzeugen, wenn der Kurzzeit-CPU-Nutzungsdurchschnitt (s[n]) einen zweiten Schwellenwert überschreitet. Bei einem Ausführungsbeispiel kann die Kontrolllogik 290 Verbesserungsoperationen bestimmen, die übersprungen werden können, und ebenso die Verbesserungsoperationen bestimmen, die durchgeführt werden können. Bei einem Ausführungsbeispiel kann die Kontrolllogik 290 die Techniken bestimmen, die zum Ausführen der ausgewählten Verbesserungsoperationen verwendet werden.
  • Bei einem Ausführungsbeispiel kann die Kontrolllogik 290 Kontrollsignale erzeugen, die Auswahlwerte umfassen und die die Kontrollsignale an die Verbesserungslogik 140 senden. Bei einem Ausführungsbeispiel kann die Kontrolllogik 290 bestimmen, alle Verbesserungsoperationen zu überspringen. Bei einem Ausführungsbeispiel kann die Kontrolllogik 290 bestimmen, dass z. B. zwei Verbesserungsoperationen wie beispielsweise die Skalierungsoperationen und die Hautfarbtonfeststellungsoperation auszuführen sind. Bei einem weiteren Ausführungsbeispiel kann die Skalierungsoperation unter Nutzung einer bilinearen Interpolation und die Hautfarbtonfeststellung unter Nutzung einer Wahrscheinlichkeitsverteilung von Farbraumtechniken ausgeführt werden. Bei einem weiteren Ausführungsbeispiel kann die Kontrolllogik 290 Kontrollsignale mit Selektionswerten, die kodiert sind, um die selektierten Verbesserungsoptionen zu identifizieren, erzeugen. Bei einem weiteren Ausführungsbeispiel kann die Kontrolllogik 290 schnell die Leistung verringern, um die verfügbaren CPU-Ressourcen anzupassen.
  • Bei einem weiteren Ausführungsbeispiel kann die Kontrolllogik 290 die Wiederherstellungslogik 260 nach dem Senden des ,Start-Überwachung'-Signals an die CPU-Überwachungslogik 250 aktivieren. Bei einem weiteren Ausführungsbeispiel kann die Kontrolllogik 250 die Wiederherstellungslogik 260 durch Senden des ,Aktiviere-Wiederherstellung'-Signal aktivieren. Bei einem weiteren Ausführungsbeispiel kann die Kontrolllogik 290 das ,EO-Wiederherstellung'-Signal von der Wiederherstellungslogik 260 empfangen und die Verbesserungslogik 140 dazu veranlassen, die Verbesserungsoperation, die durch das ,EO-Wiederherstellung'-Signal angezeigt wird, auszuführen.
  • Ein Ausführungsbeispiel für die Performancemanagementlogik 160, die die Verarbeitung von Videodaten in ressourceneingeschränkten Einheiten oder Geräten steuert, ist in 3 gezeigt.
  • Block 310: die Performancemanagementlogik 160 kann die Bilder erhalten. Bei einem Ausführungsbeispiel kann die Schnittstelle 210 ein Signal an die Kontrolllogik 290 nachdem Erhalt der Bilder senden.
  • Block 315: die Kontrolllogik 290 kann bestimmen, ob eine periodische oder ausgewählte Bildratenabschätzung zu nutzen ist und die Steuerung wird an Block 230 weitergeleitet, wenn die Bildratenabschätzung ausgeführt wird, und ansonsten an dem Block 340 weitergeleitet.
  • Block 320: der Frameschätzer 230 kann die aktuelle Bildrate (CFR) abschätzen. In einem Ausführungsbeispiel kann der Frameschätzer 230 die aktuelle Bildrate unter Nutzung der Gleichung (1), wie oben beschrieben, bestimmen.
  • Block 325: der Frameschätzer 230 kann die kurzzeitigen Bildraten (y[n]) abschätzen. Bei einem weiteren Ausführungsbeispiel kann der Frameschätzer 230 (y[n]) unter Nutzung der Gleichung (2) wie oben beschrieben, bestimmen.
  • Block 330: der Frameschätzer 230 kann die Ableitung (y'[n]) der kurzzeitigen Bildrate (y[n]) abschätzen. Bei einem weiteren Ausführungsbeispiel kann der Frameschätzer 230 die Größe (y'[n]) unter Nutzung der Gleichung (3) wie oben beschrieben, bestimmen.
  • Block 335: die Kontrolllogik 290 kann bestimmen, ob die Größe (y'[n]) kleiner ist als ein erster Schwellenwert und die Steuerung an den Block 340 weitergeben, falls (y'[n]) nicht kleiner ist als der erste Schwellenwert, und an Block 370 weitergeben, falls die Größe (y'[n]) kleiner ist als der erste Schwellenwert.
  • Block 340: die Kontrolllogik 290 kann überprüfen, ob die CPU-Überwachung aktiviert ist, und die Kontrolle an den Block 375 weitergeben, falls die CPU-Überwachung aktiviert ist, und an den Block 345 weitergeben, falls die CPU-Überwachung nicht aktiviert ist.
  • Block 345: die Kontrolllogik 290 kann überprüfen, ob die Konfiguration sich geändert hat und die Steuerung an den Block 350 weiterleiten, falls die Konfiguration geändert wurde, und ansonsten wird die Kontrolle zurückgeben. Bei einem weiteren Ausführungsbeispiel kann die Kontrolllogik 290 das ,Aktiviere-Wiederherstellung'-Signal an die Wiederherstellungslogik 260 in Antwort auf die Feststellung senden, dass die Konfiguration sich änderte.
  • Block 350: die Wiederherstellungslogik 260 kann überprüfen, ob die Ressourcen zur Verfügung stehen, und zwar in Antwort auf das Erhalten des ,Aktiviere-Wiederherstellung'-Signal, und die Steuerung an den Block 355 weitergeben, wenn die Ressourcen verfügbar sind und die Steuerung zurückgeben in den anderen Fällen.
  • Block 355: die Wiederherstellungslogik 260 kann überprüfen, ob die Wiederherstellungswartezeit abgelaufen ist, und die Steuerung an den Block 360 weitergeben, wenn die Wiederherstellungszeit abgelaufen ist und ansonsten die Steuerung zurückgeben.
  • Block 360: die Kontrolllogik 260 kann eine erste Verbesserungsoperation wiederherstellen und einen Wartezeitgeber für eine zweite Verbesserungsoperation setzen. Bei einem weiteren Ausführungsbeispiel kann die Kontrolllogik 290 die Verbesserungsoperation eine nach der anderen in Antwort auf das Erhalten des ,EO-Wiederherstellung'-Signals von der Wiederherstellungslogik 260 wiederherstellen.
  • Block 370: die CPU-Überwachungslogik 250 kann beim Erhalten des ,Aktiviere-Wiederherstellung'-Signals von der Kontrolllogik 290 aktiviert werden.
  • Block 375: die CPU-Überwachungslogik 250 kann den kurzzeitigen Durchschnittswert der CPU-Nutzung (s[n]) unter Nutzung der Gleichung (4) bestimmen und kann den CPU-Nutzungsdurchschnittswert an die Kontrolllogik 290 senden.
  • Block 380: die Kontrolllogik 290 kann überprüfen, ob die Größe s[n] oberhalb des zweiten Schwellenwertes ist, und die Steuerung an den Block 385 weitergeben, wenn die Größe s[n] oberhalb des zweiten Schwellenwertes ist, und ansonsten an den Block 390 weitergegeben.
  • Block 385: die Kontrolllogik 290 kann bewirken, dass die Performance der Videoverarbeitung reduziert wird. Bei einem weiteren Ausführungsbeispiel kann die Kontrolllogik 290 bewirken, dass alle oder viele der Verbesserungsoperationen übersprungen werden, und kann ebenso bewirken, dass die Technik ausgewählt wird, die weniger Ressourcen verbraucht.
  • Block 390: die Kontrolllogik 290 kann bestimmen, ob die CPU-Überwachung fortgesetzt wird und ob die Steuerung an die CPU-Überwachung zurückgegeben wird, wenn die CPU-Überwachung fortzuführen ist, und ansonsten an den Block 395 weitergegeben wird.
  • Block 395: die Kontrolllogik 290 kann die CPU-Überwachung deaktivieren.
  • Wie in der 4 gezeigt, weist ein Computersystem 400 einen Standardprozessor 402 auf, der einen SIMD(single instruction multiple data)-Prozessor und eine grafische Verarbeitungseinheit (GPU) 405 umfasst. Der Prozessor 402 kann in einem Ausführungsbeispiel die Verbesserungsoperationen zusätzlich zu verschiedenen anderen Aufgaben ausführen oder eine Sequenz von Instruktionen speichern, um Verbesserungsoperationen in einem Maschinenlesbaren Speicher 425 bereitzustellen. Die Sequenz von Befehlen kann jedoch ebenfalls in dem Speicher 420 oder in jedem anderen geeigneten Speichermedium gespeichert werden.
  • Während in der 4 eine separate grafische Verarbeitungseinheit 405 gezeigt ist, kann in weiteren Ausführungsbeispielen eine grafische Verarbeitungseinheit 405 zum Ausführen der Verbesserungsoperation als ein weiteres Beispiel genutzt werden. Der Prozessor 402, der das Computersystem 400 betreibt, kann ein Einkern- oder Mehrkernprozessor sein, der an die Logik 430 koppelt. Die Logik 430 kann an eine oder mehrere I/O-Geräte 460 gekoppelt sein, die eine Schnittstelle zu dem Computersystem 400 bereitstellen. Die Logik 430 kann beispielsweise in einem Ausführungsbeispiel eine Chipsatz-Logik sein. Die Logik 430 koppelt an den Speicher 420, der jede Art von Speicher umfassen kann, einschließlich optischen, magnetischen oder einen Halbleiterspeicher. Die grafische Verarbeitungseinheit 405 ist über einen Bildpuffer an eine Anzeige/Display 440 gekoppelt.
  • In einem Ausführungsbeispiel kann die Videoverarbeitungslogik VPL 410 mit der Logik 430 ausgestattet sein. Bei einem weiteren Ausführungsbeispiel kann die VPL 410 den CPU-Nutzungszustand überwachen, wenn die VPL 410 einen CPU-Sättigungszustand vermutet. Bei einem weiteren Ausführungsbeispiel kann die VPL 410 periodisch die Ableitung des kurzzeitigen Bildratendurchschnittswertes (y'[n]) bestimmen. Bei einem weiteren Ausführungsbeispiel kann die VPL 410 die Überwachung der CPU-Nutzung aktivieren, wenn die Größe (y'[n]) geringer als ein erster Schwellenwert ist. Bei einem weiteren Ausführungsbeispiel kann die VPL 410 die Videoleistung verringern, wenn der Kurzzeit-Durchschnittswert der CPU-Nutzung s[n] oberhalb des zweiten Schwellenwertes liegt.
  • Bei einem weiteren Ausführungsbeispiel kann die VPL 410 die verfügbaren Ressourcen überwachen und kann die Verbesserungsoperationen Stück für Stück wiederherstellen, basierend auf dem Umfang der zur Verfügung stehenden Ressourcen. Bei einem weiteren Ausführungsbeispiel kann die VPL 410 die Verbesserungsoperationen wiederherstellen, um die Darstellung der Videodaten für einen Nutzer zu verbessern.
  • Die Video/Bildverarbeitungstechniken, die hierin beschrieben sind, können in unterschiedlichen Hardwarearchitekturen implementiert sein. Zum Beispiel können grafische Funktionalitäten innerhalb eines Chipsatzes integriert sein. Alternativ können ebenfalls diskrete grafische Prozessoren benutzt werden. Als ein weiteres Ausführungsbeispiel können die grafischen Funktionen durch einen Standardprozessor implementiert werden, einschließlich eines Multikernprozessors oder als ein Satz von Softwareinstruktionen, die auf einem maschinenlesbaren Medium gespeichert sind.

Claims (30)

  1. Ein Verfahren umfassend: Bestimmen eines kurzzeitigen Bildratendurchschnittswertes (y[n]) in Antwort auf einen Erhalt von mehreren Videobildern, Erzeugen einer Ableitung des kurzzeitigen Bildratendurchschnittes (y'[n]) unter Nutzung des kurzzeitigen Bildratendurchschnittswertes, Aktivieren der Überwachung einer Prozessornutzung, wenn die Ableitung des kurzzeitigen Bildratendurchschnitts unterhalb eines ersten Schwellenwertes liegt, Verringern der Leistung des Renderings der mehreren Videobilder, wenn ein Durchschnittswert der Prozessornutzung oberhalb eines zweiten Schwellenwertes liegt, und schrittweises Wiederherstellen der Leistung, nachdem bestimmt wurde, dass Prozessorressourcen zur Verfügung stehen.
  2. Verfahren nach Anspruch 1, wobei der kurzzeitige Bildratendurchschnittswert (y[n]) unter Nutzung einer geschätzten Bildrate (x[n]) zu einem Zeitpunkt ,n' bestimmt wird.
  3. Verfahren nach Anspruch 2, wobei der kurzzeitige Bildratendurchschnittswert (y[n]) unter Nutzung eines Filters mit unendlicher Impulsantwort bestimmt wird.
  4. Verfahren nach Anspruch 1, wobei der Prozessorsättigungszustand angezeigt wird, wenn die Ableitung des kurzzeitigen Bildratendurchschnittes unterhalb des ersten Schwellenwertes liegt.
  5. Verfahren nach Anspruch 4, wobei die Prozessorressourcen nicht für das Durchführen von Verbesserungsoperationen zur Verfügung stehen, wenn der Durchschnittswert der Prozessornutzung oberhalb des zweiten Schwellenwertes liegt.
  6. Verfahren nach Anspruch 1, wobei die Leistung reduziert wird, indem die Verbesserungsoperationen, die an den mehreren Videobildern vor dem Rendering der mehreren Videobildern durchgeführt werden, übersprungen werden.
  7. Verfahren nach Anspruch 6, wobei die Leistung verringert wird, indem eine Teilmenge der Verbesserungsoperationen, die an den mehreren Videobildern durchgeführt werden, bevor die mehreren Videobilder gerendert werden, übersprungen werden.
  8. Vorrichtung mit folgenden Merkmalen: eine Decoderlogik zum Erzeugen mehrerer Videobilder in Antwort auf ein Erhalten eines Videosignals, eine Verbesserungslogik, die an die Decoderlogik koppelt, wobei die Verbesserungslogik ausgebildet ist, um Verbesserungsoperationen basierend auf mehreren Kontrollsignale durchzuführen, und eine Leistungmanagementlogik, die an die Verbesserungslogik koppelt, wobei die Leistungmanagementlogik weiter Folgendes umfasst: einen Frameschätzer, wobei der Frameschätzer ausgebildet ist, um einen kurzzeitigen Bildratendurchschnittswert in Antwort auf das Erhalten von mehreren Videobildern zu bestimmen und um eine Ableitung des kurzzeitigen Bildratendurchschnitts unter Nutzung des kurzzeitigen Bildratenwertes zu erzeugen, eine Kontrolllogik, die an den Frameschätzer koppelt, wobei die Kontrolllogik ausgebildet ist: um ein erstes Signal zum Aktivieren einer Überwachung der Prozessornutzung zu erzeugen, wenn die Ableitung des kurzzeitigen Bildratendurchschnittes unterhalb eines ersten Schwellenwertes liegt, um ein zweites Signal zu erzeugen, um die Leistung des Renderings der mehreren Videobilder zu reduzieren, wenn der Durchschnittswert der Prozessornutzung oberhalb eines zweiten Schwellenwertes liegt, um ein drittes Signal zu erzeugen, um die Verfügbarkeit von Prozessorressourcen zu bestimmen, und ein fünftes Signal zu erzeugen, um Verbesserungsoperationen in Antwort auf das Erhalten eines vierten Signals schrittweise erneut bereitzustellen, wobei das vierte Signal erzeugt wird, wenn Prozessorressourcen verfügbar sind.
  9. Vorrichtung nach Anspruch 8, wobei der Frameschätzer ausgebildet ist, um kurzzeitige Bildratendurchschnittswerte (y[n]) unter Verwendung einer geschätzten Bildrate (y[n]) zu einem Zeitpunkt 'n' zu bestimmen.
  10. Vorrichtung nach Anspruch 9, wobei der Frameschätzer ausgebildet ist, um den kurzzeitigen Bildratendurchschnittswert (y[n]) unter Nutzung eines Filters mit unendlicher Impulsantwort zu bestimmen.
  11. Vorrichtung nach Anspruch 8, weiter umfassend einen Prozessorüberwachungslogik, wobei die Prozessorüberwachungslogik ausgebildet ist, um die Überwachung der Prozessornutzung zu aktivieren, wenn die Ableitung des kurzzeitigen Bildratendurchschnitts unterhalb des ersten Schwellenwertes liegt.
  12. Vorrichtung nach Anspruch 11, wobei die Prozessorressourcen nicht für das Durchführen der Verbesserungsoperationen zur Verfügung stehen, wenn der Durchschnittswert der Prozessornutzung oberhalb des zweiten Schwellenwertes liegt.
  13. Vorrichtung nach Anspruch 8, wobei die Verbesserungslogik ausgebildet ist, um die Leistung in Antwort auf das Erhalten des zweiten Signals zu reduzieren, wobei die Verbesserungslogik ausgebildet ist, um die Leistung zu verringern, indem die Verbesserungsoperationen, die an den mehreren Videobildern vor dem Rendering der mehreren Videobildern durchgeführt werden, übersprungen werden.
  14. Vorrichtung nach Anspruch 13, wobei die Verbesserungslogik ausgebildet ist, um die Leistung zu reduzieren, indem eine Untermenge von Verbesserungsoperationen, die an den mehreren Videobildern ausgeführt werden, bevor die mehreren Videobilder gerendert werden, übersprungen werden.
  15. Vorrichtung nach Anspruch 8, weiter umfassend eine Wiederherstellungslogik, wobei die Wiederherstellungslogik ausgebildet ist, um das vierte Signal zu erzeugen, wenn Ressourcen zum Ausführen der Verbesserungsoperationen zur Verfügung stehen.
  16. Vorrichtung nach Anspruch 15, wobei die Verbesserungslogik ausgebildet ist, Verbesserungsoperationen in Antwort auf das Erhalten des fünften Signals durchzuführen.
  17. Ein maschinenlesbares Speichermedium mit einer Vielzahl von Befehlen, die in Antwort auf das Ausführen in einem Prozessor Folgendes bewirken: Bestimmen eines kurzzeitigen Bildratendurchschnittswertes in Antwort auf das Erhalten von mehreren Videobildern, Erzeugen einer Ableitung des kurzzeitigen Bildratendurchschnitts unter Nutzung des kurzzeitigen Bildratenwertes, Aktivieren der Überwachung der Prozessornutzung, wenn die Ableitung der kurzzeitigen Bildrate unterhalb eines ersten Schwellenwertes liegt, Verringern der Leistung für das Rendern der mehreren Videobilder, wenn der Durchschnittswert der Prozessornutzung oberhalb eines zweiten Schwellenwertes liegt, und schrittweises Wiederherstellen der Leistung nachdem bestimmt wurde, dass Prozessorressourcen zur Verfügung stehen.
  18. Maschinenlesbares Medium nach Anspruch 17, wobei der kurzzeitige Bildratendurchschnittswert (y[n]) unter Nutzung einer geschätzten Bildrate (x[n]) zu einem Zeitpunkt 'n' bestimmt wird.
  19. Maschinenlesbares Medium nach Anspruch 18, wobei der kurzzeitige Bildratendurchschnittswert (y[n]) unter Nutzung eines Filters mit unendlicher Impulsantwort bestimmt wird.
  20. Maschinenlesbares Medium nach Anspruch 17, wobei ein Abfall in der Servicequalität zum Rendern der mehreren Videobilder in Folge der Sättigung in dem Durchschnittswert der Prozessornutzung auftritt, wenn die Ableitung des kurzzeitigen Bildratendurchschnitts unterhalb des ersten Schwellenwertes liegt.
  21. Maschinenlesbares Medium nach Anspruch 20, wobei die Prozessorressourcen, die für das Ausführen der Verbesserungsoperation zur Verfügung stehen, geringer sind als die erforderlichen Prozessorressourcen, wenn der Durchschnittswert der Prozessornutzung oberhalb des zweiten Schwellenwertes liegt.
  22. Maschinenlesbares Medium nach Anspruch 17, wobei die Leistung verringert wird, indem die Verbesserungsoperationen, die auf die mehreren Videobildern vor dem Rendern der Videobilder angewandt werden, übersprungen werden.
  23. Maschinenlesbares Medium nach Anspruch 22, wobei die Leistung verringert wird, indem eine Untermenge von Verbesserungsoperationen, die auf die mehreren Videobildern angewendet werden, bevor die mehreren Videobildern gerendert werden, übersprungen werden.
  24. Ein System mit: mehreren Prozessoren, einer Logik, die an die mehreren Prozessoren koppelt, wobei die Logik eine Videoverarbeitungslogik umfasst, und mehrere Input-Output-Einheiten, die an die Logik koppeln, wobei die Videoverarbeitungslogik ausgebildet ist, um mehrere Videobilder in Antwort auf das Erhalten eines Videosignals zu erzeugen und um Verbesserungsoperationen basierend auf mehreren Kontrollsignalen auszuführen, wobei die Videoverarbeitungslogik ausgebildet ist, um einen kurzzeitigen Bildratendurchschnittswert in Antwort auf das Erhalten von mehreren Videobildern zu bestimmen und um eine Ableitung des kurzzeitigen Bildratendurchschnittes unter Nutzung des kurzzeitigen Bildratenwertes zu erzeugen, um ein erstes Signal zu erzeugen, um eine Überwachung der Prozessornutzung zu aktivieren, wenn die Ableitung des kurzzeitigen Bildratendurchschnittes unterhalb eines ersten Schwellenwertes liegt, um ein zweites Signal zu erzeugen, um die Leistung des Renderings der mehreren Videobilder zu reduzieren, wenn ein Durchschnittswert der Prozessornutzung oberhalb eines zweiten Schwellenwertes liegt, um ein drittes Signal zu generieren, um die Verfügbarkeit von Prozessorressourcen zu bestimmen, und um ein fünftes Signal zu generieren, um in Antwort auf das Erhalten des vierten Signals schrittweise Verbesserungsoperationen erneut bereitzustellen, wobei das vierte Signal erzeugt wird, wenn Prozessorressourcen zur Verfügung stehen.
  25. System nach Anspruch 24, wobei die Videoverarbeitungslogik ausgebildet ist, um den kurzzeitigen Bildratendurchschnittswert (y[n]) unter Verwendung einer geschätzten Bildrate (x[n]) zu einem Zeitpunkt 'n' unter Nutzung eines Filters mit unendlicher Impulsantwort zu bestimmen.
  26. System nach Anspruch 24, wobei die Videoverarbeitungslogik ausgebildet ist, um die Überwachung der Prozessornutzung zu aktivieren, wenn die Ableitung des kurzzeitigen Bildratendurchschnitts unterhalb des ersten Schwellenwertes liegt.
  27. System nach Anspruch 26, wobei die Prozessorressourcen nicht zur Verfügung stehen, um Verbesserungsoperationen durchzuführen, wenn der Durchschnittswert der Prozessornutzung oberhalb des zweiten Schwellenwertes liegt.
  28. System nach Anspruch 24, wobei die Videoverarbeitungslogik ausgebildet ist, um die Leistung in Antwort auf das Erhalten des zweiten Signals zu reduzieren, wobei die Verbesserungslogik ausgebildet ist, um die Leistung durch ein Überspringen von Verbesserungsoperationen, die auf die mehreren Videobilder angewandt werden, bevor die mehreren Videobilder gerendert werden, zu überspringen.
  29. System nach Anspruch 28, wobei die Videoverarbeitungslogik ausgebildet ist, um die Leistung zu reduzieren, indem eine Untermenge von Verbesserungsoperationen übersprungen wird, die auf die mehreren Videobildern angewandt werden, bevor die mehreren Videobildern gerendert werden.
  30. System nach Anspruch 24, wobei die Videoverarbeitungslogik ausgebildet ist, um das vierte Signal zu erzeugen, wenn Ressourcen zum Ausführen von Verbesserungsoperationen zur Verfügung stehen und um die Verbesserungsoperationen in Antwort auf das Erhalten des fünften Signals auszuführen.
DE112009002346T 2008-12-02 2009-11-23 Verarbeitung von Videodaten in Geräten mit eingeschränkten Ressourcen Withdrawn DE112009002346T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/326,654 2008-12-02
US12/326,654 US20100135417A1 (en) 2008-12-02 2008-12-02 Processing of video data in resource contrained devices
PCT/US2009/065487 WO2010065365A2 (en) 2008-12-02 2009-11-23 Processing of video data in resource contrained devices

Publications (1)

Publication Number Publication Date
DE112009002346T5 true DE112009002346T5 (de) 2012-06-14

Family

ID=42222802

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112009002346T Withdrawn DE112009002346T5 (de) 2008-12-02 2009-11-23 Verarbeitung von Videodaten in Geräten mit eingeschränkten Ressourcen

Country Status (4)

Country Link
US (1) US20100135417A1 (de)
CN (1) CN102171651B (de)
DE (1) DE112009002346T5 (de)
WO (1) WO2010065365A2 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9183580B2 (en) * 2010-11-04 2015-11-10 Digimarc Corporation Methods and systems for resource management on portable devices
US8483286B2 (en) * 2010-10-27 2013-07-09 Cyberlink Corp. Batch processing of media content
KR20130108882A (ko) * 2012-03-26 2013-10-07 삼성전자주식회사 복수의 트랜스코딩 수행시 로드 밸런싱을 위한 스케줄링 장치 및 방법
US9311640B2 (en) 2014-02-11 2016-04-12 Digimarc Corporation Methods and arrangements for smartphone payments and transactions
CN104461520B (zh) * 2014-11-25 2018-04-03 广州酷狗计算机科技有限公司 动画的播放帧频调整方法及装置
CN106211511A (zh) * 2016-07-25 2016-12-07 青岛海信电器股份有限公司 跑马灯滚动速度的调整方法及显示装置
CN109361950B (zh) * 2018-11-27 2022-02-22 Oppo广东移动通信有限公司 视频处理方法、装置、电子设备及存储介质
US11574273B2 (en) * 2020-12-21 2023-02-07 Sling TV L.L.C. Systems and methods for automated evaluation of digital services

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5832125A (en) * 1995-12-07 1998-11-03 Intel Corporation Bit rate control using short-term and long-term performance characterization
US6118817A (en) * 1997-03-14 2000-09-12 Microsoft Corporation Digital video signal encoder and encoding method having adjustable quantization
US6115420A (en) * 1997-03-14 2000-09-05 Microsoft Corporation Digital video signal encoder and encoding method
US6535238B1 (en) * 2001-10-23 2003-03-18 International Business Machines Corporation Method and apparatus for automatically scaling processor resource usage during video conferencing
US7281041B2 (en) * 2002-10-31 2007-10-09 Hewlett-Packard Development Company, L.P. Method and apparatus for providing a baselining and auto-thresholding framework
US7512658B2 (en) * 2004-02-26 2009-03-31 International Business Machines Corporation Providing a portion of an electronic mail message based upon a transfer rate, a message size, and a file format
US7519510B2 (en) * 2004-11-18 2009-04-14 International Business Machines Corporation Derivative performance counter mechanism
KR20080106246A (ko) * 2006-02-15 2008-12-04 코닌클리케 필립스 일렉트로닉스 엔.브이. 디스플레이된 이미지들에서의 압축 아티팩트들의 감소, 인코딩 파라미터들의 분석
JP4171927B2 (ja) * 2006-09-19 2008-10-29 船井電機株式会社 液晶パネル、プラズマ表示パネルおよびワイド型液晶テレビジョン
KR100819404B1 (ko) * 2006-10-27 2008-04-04 삼성전자주식회사 휴대용 단말기에서 부화면 디코딩 방법 및 장치
US7715481B2 (en) * 2006-11-29 2010-05-11 Ipera Technology, Inc. System and method for allocation of resources for processing video
US8789052B2 (en) * 2007-03-28 2014-07-22 BlackBery Limited System and method for controlling processor usage according to user input
US8279946B2 (en) * 2007-11-23 2012-10-02 Research In Motion Limited System and method for providing a variable frame rate and adaptive frame skipping on a mobile device
US20090315886A1 (en) * 2008-06-19 2009-12-24 Honeywell International Inc. Method to prevent resource exhaustion while performing video rendering

Also Published As

Publication number Publication date
CN102171651A (zh) 2011-08-31
CN102171651B (zh) 2015-05-20
WO2010065365A2 (en) 2010-06-10
WO2010065365A3 (en) 2010-08-26
US20100135417A1 (en) 2010-06-03

Similar Documents

Publication Publication Date Title
DE112009002346T5 (de) Verarbeitung von Videodaten in Geräten mit eingeschränkten Ressourcen
DE102013021991B4 (de) Adaptiver Filtermechanismus zur Entfernung von Kodierbildfehlern in Videodaten
DE112006002124B4 (de) Verfahren zum Verbessern der Kontrastverstärkung
DE60307942T2 (de) Digitale Rauschverminderungstechniken
DE102020123396A1 (de) Verfahren und system für inhaltsadaptives entrauschen zum videocodieren
DE102009046945A1 (de) Optimale Energienutzung beim Codieren von Datenströmen
DE102019209067A1 (de) Adaptive in-loop filtering for video coding
US8493499B2 (en) Compression-quality driven image acquisition and processing system
CN112351280B (zh) 视频编码方法、装置、电子设备及可读存储介质
EP2563019B1 (de) Verfahren und vorrichtung zur komprimierung und verschlüsselung von bilddaten
DE102020133238A1 (de) An das menschliche sehsystem angepasste videocodierung
CN110766637B (zh) 一种视频处理方法、处理装置、电子设备及存储介质
CN110708570B (zh) 视频的编码码率确定方法、装置、设备及存储介质
DE112015006587T5 (de) Adaptive Batch-Codierung für Slow-Motion-Videoaufzeichnung
DE112013007509T5 (de) Verfahren, Einrichtung und System zum Auswählen von Audio-Video-Daten zum Streamen
CN114827662A (zh) 视频分辨率自适应调节方法、装置、设备和存储介质
DE102016006539A1 (de) Systeme und Verfahren zum reibungslosen Wechseln zwischen komprimierten Video-Datenströmen
CN111429357A (zh) 训练数据确定方法、视频处理方法、装置、设备及介质
DE102019215911A1 (de) Adaptive inhaltsquantisierung zur videocodierung
CN113728354A (zh) 一种图像处理方法及装置
CN113297937A (zh) 一种图像处理方法、装置、设备及介质
DE102020128902A1 (de) Bewegungsadaptive video-codierung
DE60122382T2 (de) Vorrichtung und verfahren zur bereitstellung einer nützlichkeitsmetrik auf der grundlage der codierung von informationen zur verbesserung von videosignalen
CN110378860A (zh) 修复视频的方法、装置、计算机设备和存储介质
DE112018002117T5 (de) Systeme und verfahren für verzögerte post-prozesse in der videocodierung

Legal Events

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