DE60106640T2 - Prozessorzuweisung für kanäle in einem videomultiprozessorsystem - Google Patents

Prozessorzuweisung für kanäle in einem videomultiprozessorsystem Download PDF

Info

Publication number
DE60106640T2
DE60106640T2 DE60106640T DE60106640T DE60106640T2 DE 60106640 T2 DE60106640 T2 DE 60106640T2 DE 60106640 T DE60106640 T DE 60106640T DE 60106640 T DE60106640 T DE 60106640T DE 60106640 T2 DE60106640 T2 DE 60106640T2
Authority
DE
Germany
Prior art keywords
channels
complexity
channel
assigned
processor
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.)
Expired - Fee Related
Application number
DE60106640T
Other languages
English (en)
Other versions
DE60106640D1 (de
Inventor
Siu-Wai Wu
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.)
Arris Technology Inc
Original Assignee
Arris Technology Inc
General Instrument 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 Arris Technology Inc, General Instrument Corp filed Critical Arris Technology Inc
Publication of DE60106640D1 publication Critical patent/DE60106640D1/de
Application granted granted Critical
Publication of DE60106640T2 publication Critical patent/DE60106640T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/2365Multiplexing of several video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/2365Multiplexing of several video streams
    • H04N21/23655Statistical multiplexing, e.g. by controlling the encoder to alter its bitrate to optimize the bandwidth utilization
    • 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/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Signal Processing For Recording (AREA)

Description

  • HINTERGRUND DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich auf ein System mit einem oder mehreren Prozessoren, wie beispielsweise für das Transcodieren von digitalen Videosignalen.
  • Üblicherweise ist es notwendig, eine Bitrate von digitalen Videoprogrammen, die z. B. an Teilnehmerendgeräte in einem Kabelfernsehnetz oder dergleichen bereitgestellt werden, einzustellen. Beispielsweise kann eine erste Gruppe von Signalen an einer Kopfstelle über eine Satellitenübertragung empfangen werden. Der Kopfstellenbetreiber möchte möglicherweise ausgewählte Programme an die Teilnehmer weiterleiten, während er Programme (z. B. Werbesendungen oder anderen Inhalt) von einer örtlichen Quelle wie beispielsweise Speichermedien oder einer örtlichen Direkteinspeisung hinzufügt. Zusätzlich ist es häufig notwendig, Programme innerhalb einer insgesamt verfügbaren Kanalbandbreite bereitzustellen.
  • Demgemäß ist ein statistischer Remultiplexer (stat remux) oder Transcoder entwickelt worden, der vorkomprimierte Videobitströme handhabt, indem er sie bei einer spezifizierten Bitrate erneut komprimiert. Auf ähnliche Weise handhabt der stat mux nicht komprimierte Videodaten, indem er sie bei einer gewünschten Bitrate komprimiert.
  • In derartigen Systemen wird eine Reihe von Kanälen von Daten von einer Reihe von Prozessoren, die parallel angeordnet sind, verarbeitet. Jeder Prozessor kann typischerweise mehrere Kanäle von Daten unterbringen. Es können allerdings in einigen Fällen, wie beispielsweise für hochauflösendes Fernsehen, das viele Berechnungen erfordert, Anteile von Daten aus einem einzelnen Kanal unter mehreren Prozessoren verteilt werden.
  • Es besteht daher ein Bedarf an einem verbesserten Mehrprozessorsystem. Ein derartiges System sollte eine Anzahl von individuellen Transcodern verwenden, die Daten von einer Anzahl von eingehenden Datenkanälen verarbeiten. Das System sollte die individuellen Transcoder dynamisch verteilen, um Videoframedaten von den Kanälen zu verarbeiten.
  • Die vorliegende Erfindung stellt ein Prozessorsystem mit dem Obengenannten und anderen Vorteilen bereit.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich auf ein System mit einem oder mehreren Prozessoren, wie beispielsweise für das Transcodieren von digitalen Videosignalen.
  • In einem Mehrprozessorsystem werden den Prozessoren auf der Basis der geschätzten Verarbeitungsanforderung jedes individuellen Kanals Videokanäle dynamisch zugeteilt. Derartige Verteilung hat die Maximierung der Benutzung der Verarbeitungsressourcen zum Ziel, während die Verschlechterung der Videoqualität auf Grund des Verarbeitens minimiert wird. Je größer die Verarbeitungsleistung (d. h. Transcoderdurchsatz), desto geringer ist die Verschlechterung.
  • Ein bestimmtes Verfahren gemäß der Erfindung zur Verarbeitung einer ersten Vielzahl von Kanälen von Videodaten an einer zweiten Vielzahl von Prozessoren umfasst die folgenden Schritte: Erfassen einer Stichprobe von Daten von jedem Kanal, Erhalten eines Maßes einer Komplexität für jeden Kanal auf der Basis seiner Stichprobe, Zuteilen jedes Kanals mindestens einem der Prozessoren zur Verarbeitung und Führen einer laufenden Summe einer akkumulierten Komplexität für jeden Prozessor gemäß der Komplexität des/der ihm zugeteilten Kanals/Kanäle.
  • Die Kanäle werden den Prozessoren in einer Reihenfolge zugeteilt, die auf der Komplexität der Kanäle basiert, so dass Kanäle mit relativ hoher Komplexität vor Kanälen mit relativ niedriger Komplexität zugeteilt werden.
  • Zusätzlich empfängt der Prozessor mit der geringsten akkumulierten Komplexität die nächste Kanalzuteilung.
  • Eine entsprechende Vorrichtung wird ebenfalls vorgestellt.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 stellt ein Mehrprozessorsystem gemäß der Erfindung dar.
  • 2 stellt ein Verfahren zur Zuteilung von Kanälen von komprimierten Daten an einen Transcoder in einem Mehrtranscodersystem gemäß der Erfindung dar.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich auf ein System mit einem oder mehreren Prozessoren, wie beispielsweise für das Transcodieren von digitalen Videosignalen.
  • 1 stellt ein Mehrprozessorsystem, das im Allgemeinen bei 100 gezeigt ist, gemäß der Erfindung dar.
  • L-Kanäle von komprimierten Daten werden einem Schalter 130, der zu einem Demultiplexer analog ist, bereitgestellt. Die Kanäle können über einen Transportmultiplex, z. B. bei einer Kabelfernsehkopfstelle bereitgestellt sein. Einige der Kanäle können über einen entfernten Verteilungsort, wie beispielsweise über einen Satelliten, empfangen werden, während andere Kanäle lokal bereitgestellt sein können, wie beispielsweise lokal eingefügte Werbesendungen oder anderes lokales Programmieren. Herkömmliche Demodulations-, Dienstetrennungs-, Pufferungsschritte und dergleichen werden nicht gezeigt, sollten aber dem Fachmann ersichtlich sein.
  • Der Schalter 130, unter der Kontrolle eines Reglers 155, leitet die Kanäle an einen der M-Transcoder, z. B. Transcoder 1 (160), Transcoder 2 (170), ..., Transcoder M (180).
  • Die transcodierten Daten werden über einen Bus 190 ausgegeben, an einem Mux 195 multiplexiert und über einen Transmitter 197 übertragen, z. B. an eine Terminalgesamtheit in einem Kabelfernsehnetz.
  • Eine Stichprobe (z. B. Segment) von jedem Kanal wird auch einem Analysator 140, der einen zugehörigen Speicher 145 verwendet, um die Stichproben zu speichern und sie zu analysieren, bereitgestellt. Die Ergebnisse dieser Analyse werden von dem Regler 155 beim Zuteilen der Kanäle an die verschiedenen Transcoder 160, 170,..., 180 verwendet. Die individuellen Transcoder 160, 170,..., 180 werden hier auch als "Transcoder core Processing Elements" („Transcoderkernverarbeitungselemente") oder TPE bezeichnet.
  • Die TPE werden verteilt, um die eingehenden Video-Frames in den verschiedenen Kanälen zu verarbeiten, wenn eine Neukonfiguration erforderlich ist, z. B. wenn die Eingabekanäle sich verändern (z. B. auf Grund von Hinzufügen, Entfernen oder Ersetzen). Es sei bemerkt, dass L kleiner als, gleich oder größer als M sein kann. Das heißt, ein TPE kann mehr als einen Kanal verarbeiten, z. B. für normal auflösendes Fernsehen (SDTV) oder ein Einzelkanal kann von mehr als einem TPE verarbeitet werden, z. B. für hochauflösendes Fernsehen (HDTV), das berechnungsmäßig viel intensiver ist.
  • An den TPE werden die Kanäle zur Verwendung beim Verarbeiten syntaktisch analysiert, um die Bildarten darin zu decodieren, z. B. I-, P- oder B-Bilder, wie vom MPEG-Standard bekannt.
  • Die Erfindung minimiert die Transcodierartefakte, die der Einschränkung unterliegen, dass der durchschnittliche Durchsatz, der für das Transcodieren jedes Frames an dem TPE erforderlich ist, die vorhandene Verarbeitungsleistung des TPE nicht überschreitet.
  • Die Verteilung von Kanälen unter den Transcoderkernverarbeitungselementen (TPE).
  • 2 stellt ein Verfahren zur Zuteilung von Kanälen von komprimierten Daten an TPE in einem Mehrtranscodersystem gemäß der Erfindung dar.
  • Das Ziel der Verteilungstechnik der vorliegenden Erfindung ist es, die Arbeitsbelastung gleichmäßig unter den TPE zu verteilen, um diese Ressourcen (d. h. den vorhanden Durchsatz der TPE) maximal zu benutzen. Diese Verteilungstechnik wird durchgeführt, indem der Analysator 140 während der Inbetriebnahme oder des Neukonfigurationsablaufs verwendet wird. Die Inbetriebnahme ist selbsterklärend. Die Neukonfiguration tritt auf, wenn ein oder mehrere Kanäle am Mehrprozessor 100 hinzugefügt, gelöscht oder ersetzt werden.
  • Sobald die Verteilungstechnik abgeschlossen ist, werden die Ergebnisse an den Regler 155 übermittelt.
  • An der Box 200 werden die Transcoder initialisiert, so dass ein zugehöriger akkumulierter Komplexitätswert und ein akkumulierter Auflösungswert auf Null zurückgesetzt werden. Diese Initialisierung wird jedesmal durchgeführt, wenn der Verteilungsalgorithmus durchgeführt wird.
  • Bei Box 210 erfasst der Bitstromanalysator 140 in seinem zugehörigen Speicher 145 eine Stichprobe von Eingabebitstrom von jedem Videokanal (Box 210). Dieses Segment ist vorzugsweise ein Minimum einer Bildsequenz (GOP). Eine Stichprobendauer einer Sekunde (30 Frames) wurde erfolgreich verwendet. Der Bitstromanalysator 140 schätzt die Datenverarbeitungszyklusanforderung (z. B. Komplexität (Comp[i]) wie unten besprochen) für jeden Kanal auf der Basis von den Bildarten (I, B oder P) und eine Auflösung der Frames in den erfassten Stichproben, die als die durchschnittliche Anzahl von Makroblöcken pro Sekunde in dem Eingabebitstrom (d. h. eine durchschnittliche Makroblockfrequenz) definiert ist. Die Höhe, Breite und Bildfrequenzinformationen der Bilder sind von den MPEG-Bitstromanfangsblöcken erhältlich. Aus diesen Parametern kann die Makroblockfrequenz abgeleitet werden. Insbesondere Makroblockfrequenz = (Breite des Bilds/16) * (Höhe des Bilds/16) * Bildfrequenz. Die MB-Frequenz variiert, wenn sich die Bildfrequenz oder die Videoauflösung ändert, was im MPEG-Bitstrom selten passiert.
  • Es wird vermutet, dass die erfasste Stichprobe eine angemessene Darstellung der Eigenschaften des Eingabebitstroms ist. Daher wird angenommen, dass jeder Kanal eine Komplexität aufweist, die die gleiche wie die berechnete Komplexität ihrer Stichprobe ist. Gemäß der Erfindung wird ein Komplexitätsmaß für jeden i-ten Kanal als eine Funktion der Anzahl von B-Frames und die Auflösung (Box 220) ermittelt. Insbesondere kann das folgende Komplexitätsmaßformat verwendet werden, obwohl andere Komplexitätsmaße auch geeignet sein können. Comp[i]= F(M[i]) * Res[i] * U[i] * GCBR (Eingabebitrate[i] – Ausgabebitrate[i]),wobei M[i] (M = 1, 2, 3 oder höher ist) eine ist, plus das Verhältnis zwischen der Anzahl von B-Frames und der Anzahl („#") von P- und I-Frames in dem Segment (d. h. 1 + #B / (#P + #I); Res[i], die Kanalauflösung, die durchschnittliche Anzahl von Makroblöcken pro Sekunde (d. h. eine durchschnittliche Makroblockfrequenz); und U[i] ist ein Benutzer geregelter Parameter, der eine Priorität des Kanals, wenn es erwünscht ist, festlegt. Für einen höheren Prioritäts-, durchschnittlichen Prioritäts- oder niedrigeren Prioritätskanal wird U[i] > 1, U[i] = 1 bzw. U[i] < 1 eingestellt.
  • Es sei bemerkt, dass die Anzahl von Makroblöcken von Frame-zu-Frame in dem MPEG-Standard fest ist. Verschiedene Videoprogrammanbieter verwenden jedoch unterschiedliche Auflösungen (z. B. Vollauflösung, halbe Horizontalauflösung oder ¾ Horizontalauflösung). Da die Eingabekanäle von verschiedenen Quellen kommen können, können sie verschiedene Ausflösungen aufweisen. Kanäle, die die gleiche Auflösung und die gleiche GOP-Struktur aufweisen, werden die gleiche Komplexität haben. Die Auflösung und die GOP-Struktur variieren jedoch oft unter den Kanälen.
  • Wenn sowohl die Eingabe als auch die Ausgabe des Kanals Festbitraten, (CBR) sind, kann ein weiterer Faktor die GCBR ( ), die durch den Unterschied zwischen der Eingabe- und Ausgabebitrate ermittelt wird, angewendet werden. Der Analysator 140 kann die Eingabebitrate, z. B. unter Verwendung eines Bitzählers ermitteln, und die Ausgabebitrate wird vom Benutzer eingestellt.
  • Versuchs- oder Analysedaten können verwendet werden, um die Funktionen F () und GCBR ( ) zu ermitteln. Zum Beispiel: F (M) = (alpha * (M-1) + 1) 1 M, wobei alpha (z. B. 0,75) das Verhältnis der nominalen Komplexität eines B-Frames zur nominalen Komplexität eines P-Frames ist. Ein weiteres Beispiel: GCBR (R) = beta * R, wobei beta = 0,25 pro Mbps ist.
  • Sobald die Komplexitätsschätzungen berechnet sind, kann an Box 230 ein „gieriger" Iterationsalgorithmus verwendet werden, um die Kanäle an die TPE wie folgt zuzuteilen. Während des Zuteilungsablaufs wird ein akkumulierter Komplexitätswert für jedes TPE beobachtet werden, der eine Summe aus dem Komplexitätsmaß jedes Kanals, der eines TPE zugeteilt ist, ist (Mehrkanäle können einem TPE zugeteilt sein). Die akkumulierte Komplexität ist ein Anzeichen für die Verarbeitungszyklen, die von jedem TPE verbraucht werden, wenn die Kanäle ihm zugeteilt sind. Wahlweise wird auch eine akkumulierte Auflösung, die eine Summe der Auflösung jedes Kanals ist, der einem TPE zugeteilt ist, beobachtet.
  • Für das Zuteilen der Kanäle zu den TPE, wird ein Array von Komplexitätswerten, Comp [], in absteigender Reihenfolge angeordnet. Für die Zuteilung eines Anfangskanals wird der nicht zugeteilte Kanal der höchsten Komplexität einem ersten TPE, wie beispielsweise TPE 160, zugeteilt. Das erste zugeteilte TPE kann willkürlich oder auf eine beliebig zuvor festgelegte Art und Weise gewählt werden, da alle TPE zu diesem Zeitpunkt eine gleiche akkumulierte Komplexität von Null aufweisen.
  • Wenn es einen Gleichstand in den Komplexitätswerten der Kanäle gibt, wird im Allgemeinen der Kanal mit der höchsten Auflösung ausgewählt. Wenn es wieder einen Gleichstand gibt, wird die niedrigere Kanalanzahl gewählt, andernfalls wird willkürlich aus den gebundenen Kanälen gewählt.
  • Für die Zuteilung von Kanälen nach dem Anfangskanal wird das TPE, das den niedrigsten Wert akkumulierter Komplexität aufweist, gewählt. Wenn es einen Gleichstand gibt, wird das TPE mit der niedrigsten akkumulierten Auflösung ausgewählt. Wenn es wieder einen Gleichstand gibt, wird das TPE mit der kleineren Anzahl von Kanälen, die ihm schon zugeteilt sind, ausgewählt. Wenn es wieder einen Gleichstand gibt, wird das TPE mit einer niedrigeren TPE-Anzahl oder andernfalls willkürlich aus den gebundenen TPE ausgewählt.
  • An Box 240 wird eine Überprüfung vorgenommen, um zu ermitteln, ob die Zuteilung des Kanals zu einer Überlastung des TPE führen wird. Dies kann vorkommen, wenn eine Summe der akkumulierten Auflösung und die Auflösung des gewählten Kanals eine zuvor festgelegte obere Grenze (z. B. 121,500), die für die Verarbeitungsleistung des TPE spezifisch ist, überschreitet. Angenommen, dass ein TPE zum Beispiel höchstenfalls drei Kanäle der Vollauflösung (720×480 Pixel) mit 16×16 Makroblöcken bearbeiten kann, ist die Gesamtauflösung 3*(720/16)*(480/16)*30 = 121, 500 Makroblöcke. Zusätzlich kann eine obere Grenze der maximalen Anzahl von Kanälen, die einem TPE zugeteilt sind, das wieder für das TPE-Design spezifisch ist, auferlegt werden.
  • Wenn bei Box 250 ermittelt wird, dass die Zuteilung des Kanals mit der höchsten Komplexität unter den nicht zugeteilten Kanälen zu einer Überlastungsbedingung führen würde, wird der Kanal dem Transcoder mit der nächst niedrigsten akkumulierten Komplexität zugeteilt.
  • Wenn keine derartige Überlastungsbedingung vorhanden ist, wird die akkumulierte Komplexität des TPE, dem gerade durch die Komplexität des zugeteilten Kanals (Box 260) ein Kanal zugeteilt wurde, erhöht. Die akkumulierte Auflösung des TPE wird durch die Auflösung des zugeteilten Kanals auch erhöht.
  • Es sei bemerkt, dass die akkumulierte Komplexität und die akkumulierte Auflösung für ein TPE relevante Konzepte sind, wenn mehr als ein Kanal einem TPE zugeteilt ist, was für diesen Fall hier angenommen wird. Wenn lediglich ein einzelner Kanal einem TPE zugeteilt ist, sind die akkumulierte Komplexität und die akkumulierte Auflösung die gleiche wie die Komplexität bzw. Auflösung des zugeteilten Kanals, und es gibt keine Bedenken wegen der Überlastung des TPE, angenommen, dass die Verarbeitungsleistung für den einen Kanal angemessen ist.
  • Wenn alle Kanäle einem Transcoder zugeteilt worden sind, ist der Ablauf an Box 270 abgeschlossen und es wird bis zur nächsten Neukonfiguration (Box 280) gewartet, wenn der Ablauf, angefangen bei Box 200, wiederholt wird. Wenn zusätzliche Kanäle noch zugeteilt werden müssen, fährt die Verarbeitung an Box 230 wieder fort, indem der restliche nicht zugeteilte Kanal mit der höchsten Komplexität zu einem TPE mit der niedrigsten akkumulierten Komplexität, ohne ein TPE zu überlasten, zugeteilt wird.
  • Im Wesentlichen werden die Kanäle in einer Reihenfolge vom höchsten Komplexitätskanal zum niedrigsten Komplexitätskanal zugeteilt. Zudem wird für jede Zuteilung der Transcoder mit der niedrigsten akkumulierten Komplexität zu dem Zeitpunkt gewählt.
  • Es sei bemerkt, dass für das vorliegende Beispiel angenommen wird, dass ein Kanal von lediglich einem TPE verarbeitet wird. Wenn die Anzahl von Kanälen geringer als oder gleich wie die Anzahl von TPE ist, dann wird ein Kanal einem TPE zugteilt. Es ist auch möglich, die Erfindung bis zu dem Fall zu erweitern, bei dem es Kanäle (z. B. HDTV-Kanäle) gibt, die mehr als ein TPE zur Verarbeitung benötigen. Wenn der TPE der niedrigsten akkumulierten Komplexität durch den HDTV-Kanal überlastet würde, würde insbesondere bei Box 240 ein kleiner Teil (Anteil) von diesem Kanal zugeteilt, um das TPE nur auf seinen Höchstdurchsatz (Box 230) aufzufüllen. Dann wird wieder an Box 230 für den nächsten Kanalzuteilungszyklus der Rest des Kanals dem TPE der nächst niedrigsten akkumulierten Komplexität zugeteilt (oder ein anderer kleiner Teil des Kanals wird zugeteilt, wenn es wieder notwendig ist, eine Überlastungsbedingung zu vermeiden), bis der gesamte Kanal zugeteilt ist.
  • Im Allgemeinen werden der NDTV-Kanal oder die Kanäle zuerst der erforderlichen Anzahl von TPE zugeteilt. Dann wird, wie erläutert, der restliche TPE-Durchsatz den Kanälen zugeteilt, die lediglich einen kleinen Teil des Durchsatzes eines TPE zur Verarbeitung benötigen.
  • Es sei bemerkt, dass nicht alle Kanäle synchron (z. B. Frame ausgerichtet) sein müssen, und die von dem Analysator 140 verwendete Stichprobe nicht an einer Framegrenze starten und enden muss. Die Stichprobe des Eingabebitstroms sollte von ausreichender Länge sein, so dass sie die Statistik des zugehörigen Kanals genau darstellt. Zudem sei bemerkt, dass die Analyse nur auf den Bitstromstichproben durchgeführt wird und nicht in Echtzeit sein muss.
  • Demgemäß ist ersichtlich, dass die vorliegende Erfindung ein effizientes Videoprozessorsystem bereitstellt, worin Datenkanäle auf der Basis eines Kanalkomplexitätsmaßes Prozessoren zugeteilt werden, um die Verwendung der Prozessorressourcen zu maximieren.
  • Obwohl die Erfindung in Verbindung mit verschiedenen bevorzugten Ausführungsformen beschrieben worden ist, versteht es sich, dass verschiedene Modifikationen und Anpassungen daran vorgenommen werden können, ohne den Bereich der Erfindung, wie in den Ansprüchen aufgeführt, zu verlassen.
  • Zum Beispiel kann die Erfindung mit Codierern (die nicht komprimierte Quellendaten codieren) sowie mit Transcodern verwendet werden. Zum Beispiel kann man in einer Codieranwendung die Menge an Bewegung in dem Eingabevideo verwenden, um die „Komplexität" eines Kanals zu schätzen und dann die Verarbeitungsressourcen zu verteilen, um eine Anzahl von Kanälen unter Verwendung des hier beschriebenen Verteilungsalgorithmus zu codieren.
  • Während in der besprochenen Implementation die TPE zusätzlich identisch sind, könnte der Algorithmus modifiziert werden, um die TPE von verschiedener Verarbeitungsleistung zu bearbeiten. Anstatt das TPE mit der niedrigsten akkumulierten Komplexität zu wählen, könnte man insbesondere in Block 230 in 2 das TPE mit der niedrigsten Prozentsatzbenutzung, die als die (akkumulierte Komplexität/maximale Komplexität, die das TPE handhaben kann) definiert ist.
  • Es sei auch bemerkt, dass Audiodaten durch die hier besprochenen Video codierenden und transcodierenden Ausführungsformen führen, aber das Konzept der Prozessorverteilung könnte auf Audio oder andere Artenvon Daten angewendet werden.

Claims (24)

  1. Ein Verfahren zur Verarbeitung einer ersten Vielzahl von Kanälen von Videodaten an einer zweiten Vielzahl von Prozessoren, das die folgenden Schritte beinhaltet: Erfassen einer Stichprobe von Daten von jedem Kanal; Erhalten eines Maßes einer Komplexität für jeden Kanal auf der Basis seiner Stichprobe; Zuteilen jedes Kanals mindestens einem der Prozessoren zur dortigen Verarbeitung; und Führen einer laufenden Summe einer akkumulierten Komplexität für jeden Prozessor gemäß der Komplexität des/der ihm zugeteilten Kanals/Kanäle; wobei: die Kanäle den Prozessoren in einer Reihenfolge zugeteilt werden, die auf der Komplexität der Kanäle basiert, so dass Kanäle mit relativ hoher Komplexität vor Kanälen mit relativ niedriger Komplexität zugeteilt werden.
  2. Verfahren gemäß Anspruch 1, wobei: die Kanäle den Prozessoren so zugeteilt werden, dass der Prozessor mit der geringsten akkumulierten Komplexität eine nächste Kanalzuteilung empfängt.
  3. Verfahren gemäß Anspruch 1, wobei: die Kanäle den Prozessoren so zugeteilt werden, dass der Prozessor mit einem geringsten Anteil von Benutzung eine nächste Kanalzuteilung empfängt.
  4. Verfahren gemäß einem der Ansprüche 1 bis 3, wobei: die Prozessoren jeweilige Transcoder zum Transcodieren des/der ihnen zugeteilten Kanals/Kanäle beinhalten.
  5. Verfahren gemäß einem der Ansprüche 1 bis 4, wobei: jede der Stichproben eine Vielzahl von Video-Frames beinhaltet.
  6. Verfahren gemäß einem der Ansprüche 1 bis 5, wobei: das Maß der Komplexität für jede Stichprobe eine Funktion einer Bildsequenzstruktur davon ist.
  7. Verfahren gemäß einem der Ansprüche 1 bis 5, wobei: das Maß der Komplexität für jede Stichprobe eine Funktion einer Pixelauflösung davon ist.
  8. Verfahren gemäß einem der Ansprüche 1 bis 5, wobei: das Maß der Komplexität für jede Stichprobe eine Funktion einer Bildfrequenz davon ist.
  9. Verfahren gemäß einem der Ansprüche 1 bis 5, wobei: das Maß der Komplexität für jede Stichprobe eine Funktion einer durchschnittlichen Makroblockfrequenz davon ist.
  10. Verfahren gemäß einem der Ansprüche 1 bis 5, wobei: das Maß der Komplexität für jede Stichprobe eine Funktion einer Kanalpriorität davon ist.
  11. Verfahren gemäß einem der Ansprüche 1 bis 5, wobei: das Maß der Komplexität für jede Stichprobe, die eine erste Festbitrate aufweist, wenn sie dem zugehörigen Prozessor zugeteilt ist, und eine zweite, andere Festbitrate, wenn sie an dem zugehörigen Prozessor verarbeitet wird, eine Funktion eines Unterschieds zwischen der ersten und zweiten Festbitrate ist.
  12. Verfahren gemäß einem der Ansprüche 1 bis 5, wobei: das Maß der Komplexität für jede Stichprobe eine Funktion eines Verhältnisses von einer Anzahl B-Frames zu einer Anzahl P-Frames und I-Frames davon ist.
  13. Verfahren gemäß einem der Ansprüche 1 bis 12, wobei: die laufende Summe akkumulierter Komplexität für jeden Prozessor durch die Komplexität des/der ihm zugeteilten Kanals/Kanäle erhöht wird.
  14. Verfahren gemäß einem der Ansprüche 1 bis 13, das den folgenden weiteren Schritt beinhaltet: Verhindern, dass ein jeweiliger Kanal einem jeweiligen Prozessor zugeteilt wird, wenn eine solche Zuteilung zur Überlastung des jeweiligen Prozessors führt.
  15. Verfahren gemäß einem der Ansprüche 1 bis 14, wobei: die Kanäle mindestens einen besonderen Kanal umfassen, der mehr als einen Prozessor zur Verarbeitung erfordert; und eine Vielzahl von Anteilen des besonderen Kanals jeweiligen Prozessoren zugeteilt wird, so dass mindestens ein erster Anteil einen Höchstdurchsatz eines jeweiligen Prozessors verbraucht.
  16. Verfahren gemäß Anspruch 15, wobei: der besondere Kanal Daten für hochauflösendes Fernsehen beinhaltet.
  17. Verfahren gemäß einem der Ansprüche 1 bis 16, wobei: die Kanäle den Prozessoren in einer Reihenfolge zugeteilt werden, so dass der komplexeste Kanal, oder ein ausgewählter einer Vielzahl von gleichermaßen komplexesten Kanälen, zuerst zugeteilt wird, und der am wenigsten komplexe Kanal, oder ein ausgewählter einer Vielzahl von gleichermaßen am wenigsten komplexen Kanälen, zuletzt zugeteilt wird.
  18. Verfahren gemäß Anspruch 17, das die folgenden weiteren Schritte beinhaltet: Erhalten eines Maßes einer Auflösung für jeden Kanal auf der Basis seiner Stichprobe; und Führen einer laufenden Summe einer akkumulierten Auflösung für jeden Prozessor gemäß der Auflösung des/der ihm zugeteilten Kanals/Kanäle.
  19. Verfahren gemäß Anspruch 18, wobei: aus einer Vielzahl von gleichermaßen komplexesten Kanälen derjenige mit der höchsten Auflösung zuerst zugeteilt wird.
  20. Verfahren gemäß Anspruch 18 oder 19, wobei: aus einer Vielzahl von gleichermaßen am wenigsten komplexen Kanälen derjenige mit der niedrigsten Auflösung zuletzt zugeteilt wird.
  21. Verfahren gemäß einem der Ansprüche 18 bis 20, das den folgenden weiteren Schritt beinhaltet: Verhindern, dass ein jeweiliger Kanal einem jeweiligen Prozessor zugeteilt wird, wenn eine solche Zuteilung bewirkt, dass die Summe von: (a) der akkumulierten Auflösung des jeweiligen Prozessors und (b) der Auflösung des jeweiligen Kanals eine zuvor festgelegte obere Grenze überschreitet.
  22. Verfahren gemäß einem der Ansprüche 17 bis 21, wobei: die Kanäle den Prozessoren so zugeteilt werden, dass der Prozessor mit der geringsten akkumulierten Komplexität eine nächste Kanalzuteilung empfängt.
  23. Verfahren gemäß Anspruch 22, wobei: wenn eine Vielzahl von Prozessoren die gleiche akkumulierte Auflösung aufweist, derjenige mit der geringsten akkumulierten Auflösung die nächste Kanalzuteilung empfängt.
  24. Eine Vorrichtung zum Verarbeiten einer ersten Vielzahl von Kanälen von Videodaten an einer zweiten Vielzahl von Prozessoren, die Folgendes beinhaltet: ein Mittel zum Erfassen einer Stichprobe von Daten von jedem Kanal; ein Mittel zum Erhalten eines Maßes einer Komplexität für jeden Kanal auf der Basis seiner Stichprobe; ein Mittel, um jeden Kanal mindestens einem der Prozessoren zur dortigen Verarbeitung zuzuteilen; und ein Mittel zum Führen einer laufenden Summe einer akkumulierten Komplexität für jeden Prozessor gemäß der Komplexität des/der ihm zugeteilten Kanals/Kanäle; wobei: d ie Kanäle den Prozessoren in einer Reihenfolge zugeteilt werden, die auf der Komplexität der Kanäle basiert, so dass Kanäle mit relativ hoher Komplexität vor Kanälen mit relativ niedriger Komplexität zugeteilt werden.
DE60106640T 2000-09-20 2001-08-20 Prozessorzuweisung für kanäle in einem videomultiprozessorsystem Expired - Fee Related DE60106640T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/666,902 US7039115B1 (en) 2000-09-20 2000-09-20 Processor allocation for channels in a video multi-processor system
US666902 2000-09-20
PCT/US2001/041796 WO2002025955A1 (en) 2000-09-20 2001-08-20 Processor allocation for channels in a video multi-processor system

Publications (2)

Publication Number Publication Date
DE60106640D1 DE60106640D1 (de) 2004-11-25
DE60106640T2 true DE60106640T2 (de) 2005-10-20

Family

ID=24675978

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60106640T Expired - Fee Related DE60106640T2 (de) 2000-09-20 2001-08-20 Prozessorzuweisung für kanäle in einem videomultiprozessorsystem

Country Status (11)

Country Link
US (1) US7039115B1 (de)
EP (1) EP1327359B1 (de)
JP (1) JP2004509582A (de)
KR (1) KR20040004379A (de)
CN (1) CN1198468C (de)
AT (1) ATE280471T1 (de)
AU (1) AU2001289151A1 (de)
CA (1) CA2422249C (de)
DE (1) DE60106640T2 (de)
TW (1) TW533742B (de)
WO (1) WO2002025955A1 (de)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7181070B2 (en) * 2001-10-30 2007-02-20 Altera Corporation Methods and apparatus for multiple stage video decoding
CN1308839C (zh) * 2002-10-11 2007-04-04 国际商业机器公司 多处理器系统中的线程分配系统和分配方法
WO2004092888A2 (en) * 2003-04-07 2004-10-28 Modulus Video, Inc. Scalable array encoding system and method
US7898951B2 (en) * 2003-08-13 2011-03-01 Jones Farm Technology 2, Llc Encoding and transmitting variable bit streams with utilization of a constrained bit-rate channel
US7822123B2 (en) * 2004-10-06 2010-10-26 Microsoft Corporation Efficient repeat padding for hybrid video sequence with arbitrary video resolution
US9071847B2 (en) * 2004-10-06 2015-06-30 Microsoft Technology Licensing, Llc Variable coding resolution in video codec
US8243820B2 (en) * 2004-10-06 2012-08-14 Microsoft Corporation Decoding variable coded resolution video with native range/resolution post-processing operation
US7839933B2 (en) * 2004-10-06 2010-11-23 Microsoft Corporation Adaptive vertical macroblock alignment for mixed frame video sequences
US7956930B2 (en) 2006-01-06 2011-06-07 Microsoft Corporation Resampling and picture resizing operations for multi-resolution video coding and decoding
US20070177519A1 (en) * 2006-01-30 2007-08-02 Thomsen Jan H Systems and methods for transcoding bit streams
US8068541B2 (en) * 2006-01-30 2011-11-29 Jan Harding Thomsen Systems and methods for transcoding bit streams
DE102006009033B4 (de) * 2006-02-27 2013-10-24 Infineon Technologies Ag Signal-Wandel-Vorrichtung, insbesondere Analog-Digital-Wandel-Vorrichtung, und Verfahren zum Betreiben einer Signal-Wandel-Vorrichtung
CN100502503C (zh) * 2006-03-31 2009-06-17 中山大学 一种实现多码流同时输出的转码系统及方法
TW200813086A (en) * 2006-05-11 2008-03-16 Hoffmann La Roche Immunereconstituted mouse
US8107571B2 (en) * 2007-03-20 2012-01-31 Microsoft Corporation Parameterized filters and signaling techniques
KR101520027B1 (ko) 2007-06-21 2015-05-14 삼성전자주식회사 움직임 추정 방법 및 장치
JP2009044537A (ja) 2007-08-09 2009-02-26 Osaka Univ 映像ストリーム処理装置及びその制御方法、プログラム、記録媒体
US8687685B2 (en) 2009-04-14 2014-04-01 Qualcomm Incorporated Efficient transcoding of B-frames to P-frames
KR20130101900A (ko) * 2012-03-06 2013-09-16 삼성전자주식회사 전자 장치 및 인코딩 방법
CN106851336B (zh) * 2017-02-07 2020-04-14 上海网达软件股份有限公司 一种动态资源分配的音视频文件转码方法及系统

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5887115A (en) 1993-01-13 1999-03-23 Hitachi America, Ltd. Method and apparatus for implementing a video tape recorder for recording digital video signals having either a fixed or variable data transmission rate
US5477397A (en) 1993-02-23 1995-12-19 Matsushita Electric Corporation Of America Digital high definition television receiver with features that facilitate trick-play modes on a digital VCR
KR950014858B1 (ko) 1993-06-04 1995-12-16 대우전자주식회사 디지탈 영상 기록장치
US5446726A (en) * 1993-10-20 1995-08-29 Lsi Logic Corporation Error detection and correction apparatus for an asynchronous transfer mode (ATM) network device
US6870886B2 (en) * 1993-12-15 2005-03-22 Koninklijke Philips Electronics N.V. Method and apparatus for transcoding a digitally compressed high definition television bitstream to a standard definition television bitstream
US5838686A (en) 1994-04-22 1998-11-17 Thomson Consumer Electronics, Inc. System for dynamically allocating a scarce resource
JPH0837662A (ja) 1994-07-22 1996-02-06 Hitachi Ltd 画像符号化復号化装置
US5617142A (en) 1994-11-08 1997-04-01 General Instrument Corporation Of Delaware Method and apparatus for changing the compression level of a compressed digital signal
US5614955A (en) 1994-11-09 1997-03-25 Michael I. Rackman Compressed digital multi-channel video communications system having one or more auxiliary channels to accomodate high bit rates
US5619733A (en) 1994-11-10 1997-04-08 International Business Machines Corporation Method and apparatus for synchronizing streaming and non-streaming multimedia devices by controlling the play speed of the non-streaming device in response to a synchronization signal
US5623312A (en) 1994-12-22 1997-04-22 Lucent Technologies Inc. Compressed-domain bit rate reduction system
US5513181A (en) * 1995-02-17 1996-04-30 At&T Corp. Multi-signal multi-coder transcoder
US5694170A (en) 1995-04-06 1997-12-02 International Business Machines Corporation Video compression using multiple computing agents
JP4223571B2 (ja) 1995-05-02 2009-02-12 ソニー株式会社 画像符号化方法及び装置
US5768594A (en) * 1995-07-14 1998-06-16 Lucent Technologies Inc. Methods and means for scheduling parallel processors
US5650860A (en) 1995-12-26 1997-07-22 C-Cube Microsystems, Inc. Adaptive quantization
GB9611455D0 (en) 1996-05-29 1996-08-07 Digi Media Vision Ltd Method and apparatus for processing a digital signal
US5933500A (en) 1996-05-31 1999-08-03 Thomson Consumer Electronics, Inc. Adaptive decoding system for processing encrypted and non-encrypted broadcast, cable or satellite video data
US5925092A (en) * 1996-12-02 1999-07-20 Motorola, Inc. Satellite cluster with synchronized payload processors and method for use in space-based systems
EP0851656A1 (de) 1996-12-23 1998-07-01 HE HOLDINGS, INC. dba HUGHES ELECTRONICS System und Verfahren zur hochauflösenden Videokompression mit Bildtäfelung
US6038256A (en) 1996-12-31 2000-03-14 C-Cube Microsystems Inc. Statistical multiplexed video encoding using pre-encoding a priori statistics and a priori and a posteriori statistics
US5949490A (en) 1997-07-08 1999-09-07 Tektronix, Inc. Distributing video buffer rate control over a parallel compression architecture
US6181742B1 (en) * 1998-01-26 2001-01-30 International Business Machines Corporation Single pass target allocation for video encoding
JPH11252550A (ja) 1998-03-02 1999-09-17 Sony Corp デイジタル信号符号化装置、デイジタル信号復号化装置、デイジタル信号伝送装置及び方法
US6298090B1 (en) * 1998-06-04 2001-10-02 U.S. Philips Corporation System for detecting redundant images in a video sequence by comparing two predetermined threshold values
US6259733B1 (en) * 1998-06-16 2001-07-10 General Instrument Corporation Pre-processing of bit rate allocation in a multi-channel video encoder
US6167084A (en) 1998-08-27 2000-12-26 Motorola, Inc. Dynamic bit allocation for statistical multiplexing of compressed and uncompressed digital video signals
WO2000021302A1 (en) 1998-10-02 2000-04-13 General Instrument Corporation Method and apparatus for providing rate control in a video encoder
US6151362A (en) * 1998-10-30 2000-11-21 Motorola, Inc. Joint rate control for stereoscopic video coding
US6275536B1 (en) * 1999-06-23 2001-08-14 General Instrument Corporation Implementation architectures of a multi-channel MPEG video transcoder using multiple programmable processors
US6490320B1 (en) * 2000-02-02 2002-12-03 Mitsubishi Electric Research Laboratories Inc. Adaptable bitstream video delivery system
US6493388B1 (en) * 2000-04-19 2002-12-10 General Instrument Corporation Rate control and buffer protection for variable bit rate video programs over a constant rate channel
US6643327B1 (en) * 2000-05-05 2003-11-04 General Instrument Corporation Statistical multiplexer and remultiplexer that accommodates changes in structure of group of pictures

Also Published As

Publication number Publication date
DE60106640D1 (de) 2004-11-25
AU2001289151A1 (en) 2002-04-02
US7039115B1 (en) 2006-05-02
WO2002025955A1 (en) 2002-03-28
ATE280471T1 (de) 2004-11-15
CA2422249C (en) 2012-02-07
TW533742B (en) 2003-05-21
CN1198468C (zh) 2005-04-20
EP1327359A1 (de) 2003-07-16
EP1327359B1 (de) 2004-10-20
CN1461567A (zh) 2003-12-10
CA2422249A1 (en) 2002-03-28
JP2004509582A (ja) 2004-03-25
KR20040004379A (ko) 2004-01-13

Similar Documents

Publication Publication Date Title
DE60106640T2 (de) Prozessorzuweisung für kanäle in einem videomultiprozessorsystem
DE69221028T2 (de) Puffersteuerung für einen Kanal mit variabler Bitrate
DE4228220B4 (de) Vorrichtung zur hierarchischen Unterteilung von Videosignalen
DE60114650T2 (de) Adaptive videobestellung
DE60131993T2 (de) Verfahren und gerät zur bestimmung der übertragungsbitrate in einem statistischen multiplexer
DE69229773T2 (de) Statistischer Multiplexer für ein Multikanal-Bildkomprimierungssystem und Demultiplexer
DE69607696T2 (de) Vorrichtung und verfahren zur transkodierung von videosignalen
DE4228221B4 (de) Vorrichtung zur Aufteilung von Videosignalen zwischen zwei Kanälen
DE69938093T2 (de) Steuerung der Datenrate für einen MPEG-Transcoder ohne a-priori Kenntnis des Bildtyps
DE3751416T2 (de) Bildcodiersystem zum Ueberwachen einer Informationsmenge durch Bildung eines Histogramms.
DE69011422T2 (de) Paketstruktur und Übertragung der von einem Videosignal-Kodierer erzeugten Information.
DE69414899T2 (de) Bildsignalverarbeitung
DE4233543B4 (de) Vorrichtung zur Steuerung der Quantisierung von Videodaten
DE69718864T2 (de) Umordnen von Segmenten eines zu übertragenden Datenstromes zur Optimierung einer Reaktionszeit eines Empfängers
DE69425010T2 (de) Prioritätsverarbeitung von kodierten Bildsignalen
DE69527577T2 (de) Bildkodierungsgerät mit mehreren Kodierern
DE60217171T2 (de) Verfahren, System und Vorrichtung zur Datenübertragung
DE69431292T2 (de) Kanalpuffersteuerung in videodekodern
DE69730419T2 (de) System zur Verteilung komprimierter Videosignale, mit statistischem Multiplexer mit Transkodierern
DE69111264T2 (de) Verbesserungen von Systemen zur Hybrid-Kodierung eines Videosignals.
DE69921108T2 (de) Verfahren und vorrichtung zur adaptiven codierung eines videodatenstroms
DE69836890T2 (de) System zur Kodierung und Aufzeichnung einer Vielzahl von Bildern
DE69412431T2 (de) Vorrichtung zur Kodierung eines Videosignals
DE60211790T2 (de) Videokodierung mit konstanter Qualität
EP0946056A1 (de) Verfahren zum Erhöhen der Speicherkapazität für Serviceinformation in einem Empfäger für digitale TV-Sendungen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee