DE60125301T2 - Videosignaltranskodierung - Google Patents

Videosignaltranskodierung Download PDF

Info

Publication number
DE60125301T2
DE60125301T2 DE60125301T DE60125301T DE60125301T2 DE 60125301 T2 DE60125301 T2 DE 60125301T2 DE 60125301 T DE60125301 T DE 60125301T DE 60125301 T DE60125301 T DE 60125301T DE 60125301 T2 DE60125301 T2 DE 60125301T2
Authority
DE
Germany
Prior art keywords
coefficients
dct
blocks
mpeg
format
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 - Lifetime
Application number
DE60125301T
Other languages
English (en)
Other versions
DE60125301D1 (de
Inventor
Wanrong Plainsboro Lin
Dennis Somerset Bushmitch
David Alan Denville Braun
Raghuraman Brooklyn Mudumbai
Yao Matawan Wang
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.)
Panasonic Holdings Corp
Panasonic Corp of North America
Original Assignee
Matsushita Electronics Corp
Matsushita Electric Corp of America
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 Matsushita Electronics Corp, Matsushita Electric Corp of America filed Critical Matsushita Electronics Corp
Publication of DE60125301D1 publication Critical patent/DE60125301D1/de
Application granted granted Critical
Publication of DE60125301T2 publication Critical patent/DE60125301T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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

Description

  • HINTERGRUND DER ERFINDUNG
  • Die Erfindung bezieht sich auf ein Verfahren zum Umsetzen oder "Transcodieren" zwischen Formaten von komprimierten digitalen Signalen, die unter Verwendung einer Operation der diskreten Kosinustransformation (DCT) codiert wurden. Insbesondere bezieht sich die Erfindung auf ein Verfahren zum Transcodieren zwischen einem DV-komprimierten Signal und einem MPEG-komprimierten Signal ohne Durchführung einer Operation der inversen diskreten Kosinustransformation (IDCT).
  • Der Videokomprimierungsstandard der Moving Picture Experts Group (MPEG) ist eines der populärsten Formate bei der Erzeugung von digitalem Video zum Komprimieren oder Codieren eines Videosignals. Der MPEG-2-Standard wurde anfänglich als offener Standard von der internationalen Standardorganisation (ISO) vorgeschlagen und entwickelt, seine Hauptstärke ist seine Flexibilität und Komprimierungseffizienz. Der MPEG-2-Standard eignet sich gut für die Datenübertragung und -speicherung. Dieser Standard wurde so ausgelegt, dass ermöglicht wird, dass Videosignale in vielen verschiedenen Formaten komprimiert werden. Er wurde auch für Rundfunkanwendungen im Gedanken an ein Punkt-Mehrpunkt-Modell ausgelegt. An sich ist der MPEG-2-Codier-Decodier-Prozess sehr asymmetrisch, wobei der MPEG-2-Codierer beispielsweise weitaus komplexer ist als sein entsprechender Decodierer.
  • Das MPEG-2-Videokomprimierungsverfahren ist auch verlustbehaftet, d. h. signifikante Informationen gehen verloren, wenn das Signal komprimiert wird. Der Standard ist jedoch so ausgelegt, dass er das menschliche visuelle System ausnutzt, um diese Verluste zu verbergen. Trotzdem tritt eine signifikante Verschlechterung des Videobildes auf, wenn ein komprimiertes Signal erweitert, erneut komprimiert und wieder erweitert wird.
  • Folglich eignet sich die Komprimierung auf MPEG-Basis nicht gut für Erzeugungs- und/oder Aufbereitungsanwendungen. In einer Erzeugungs-/Aufbereitungsumgebung gäbe es so viele Codierschritte wie Decodierschritte und die für einfache Aufgaben (z. B. Aufbereiten auf Rahmenebene) beteiligte Verarbeitung wäre schwerfällig, da ein komplexer Codierprozess nach jeder Aufbereitung erforderlich wäre.
  • Auf Grund dieser Merkmale von MPEG wurde ein zweiter Standard Digitales Video (DV) als vorgeschlagener SMPTE-Standard entwickelt. Dieser Standard umfasst digitales Video mit 50 Mb/s (DV50) und digitales Video mit 25 Mb/s (DV25). Der DV-Standard wird typischerweise verwendet, um Daten für Erzeugungs-/Aufbereitungsanwendungen zu komprimieren. Die durch den DV-Standard definierten Komprimierungsverfahren wurden im Gedanken an ein Studioproduktionsszenario ausgelegt, so dass der Codierer und Decodierer von ungefähr ähnlicher Komplexität sind. Der DV-Standard verwendet Rahmen mit fester Größe und legt nicht so viel Betonung auf die Komprimierungseffizienz wie MPEG-2.
  • Detailliertere Merkmale des DV-Standards werden nachstehend für den Zweck der Erleichterung der Lehren der vorliegenden Erfindung kurz besprochen.
  • DV
  • Digitales Video DV50 besitzt eine konstante Bitrate von 50 Mb/s und ein Komprimierungsverhältnis von etwa 3,3:1. Das Chrominanzformat ist 4:2:2 und das Komprimierungsverfahren basiert auf der DCT-Operation. Alle Rahmen eines DV50-Signals werden unabhängig voneinander in Nutzinformationen mit fester Größe komprimiert (d. h. intracodiert). Sowohl das NTSC- als auch das PAL-Format werden vom DV50-Standard unterstützt.
  • 1 und 1A stellen einen beispielhaften DV-Codierungsprozess dar, der im Allgemeinen mit 1 bezeichnet ist. Es ist zu beachten, dass der DV-Standard nur eine Codierung innerhalb Rahmen verwendet, die die räumliche Redundanz im Bild durch Transformieren von Blöcken von Bildpixeln in den räumlichen Frequenzbereich durch die Verwendung der DCT ausnutzt. Der DV-Standard verwendet keine zeitliche Vorhersage. In dieser Hinsicht ist er ähnlich zum MPEG-2-Standard, der darauf beschränkt ist, nur innerhalb Rahmen oder I-Bilder zu codieren.
  • Der DV-Codierprozess auf der Blockebene codiert jedoch Teile von Rahmen, die relativ große Mengen einer Bewegung innerhalb Rahmen aufweisen, anders als Teile, die diese Art von Bewegung nicht aufweisen. Teile von Rahmen, die eine signifikante Bewegung zwischen ihren Feldern aufweisen, werden als zwei 4 × 8-Blöcke, einer von jedem Feld (248-Blöcke), codiert, während Teile von Rahmen, die keine signifikante Bewegung zwischen Feldern aufweisen, als 8 × 8-Blöcke (88-Blöcke) codiert werden. Die Beziehung zwischen den feldcodierten 248-Blöcken und den rahmencodierten 88-Blöcken wird nachstehend mit Bezug auf 2 beschrieben. Um Blöcke zu erfassen, die als 248-Blöcke codiert werden müssen, umfasst der DV-Codierprozess einen Detektor 2 für die Bewegung innerhalb Rahmen. Dieser Detektor steuert die DCT-Stufe 4, die Gewichtungsstufe 6 und die Abtaststufe 12.
  • Im Betrieb überwacht der Detektor 2 für die Bewegung innerhalb Rahmen die Felder von verschachtelten Rahmen, um eine schnelle Bewegung zwischen den zwei Feldern zu erfassen, die den Rahmen bilden. Ein Block von Bildpixeln von dem Rahmen wird auf einen Prozess 4 einer diskreten Kosinustransformation (DCT) angewendet, der die Pixel in DCT-Koeffizienten umsetzt. Der Gewichtungsblock 6 wendet Gewichtungsfaktoren auf die DCT-Koeffizienten als Teil des Quantisierungsprozesses an, wie nachstehend beschrieben. Die Gewichtungskoeffizienten werden parallel zu einem Quantisierungsprozess 8 und zu einem Quantisierungstabellen-Auswahlblock 10 angewendet. Auf der Basis der Werte der Koeffizienten wählt der Quantisierungstabellen Auswahlblock 10 eine vom Quantisierungsprozess 8 zu verwendende Quantisierungstabelle aus. Die Identität dieser Tabelle wird in den Bitstrom codiert. Unter Verwendung dieser Tabelle quantisiert der Prozess 8 die gewichteten Koeffizienten, die vom Gewichtungsprozess 6 geliefert werden, und legt das Ergebnis auf die Abtaststufe 12 an. Die Abtaststufe 12 tastet die Koeffizienten ab, um ihre Lauf-Amplituden-Kombinationen zu bestimmen. Schließlich werden die Blöcke von lauflängencodierten Koeffizienten an einen Codierer mit variabler Länge (VLC) 14 angelegt, in dem sie gemäß einem Code mit vorbestimmter variabler Länge oder Entropiecode codiert werden, um den Ausgangsbitstrom zu erzeugen.
  • Der Decodierprozess besteht aus einem VLC-Decodierer 16, der den vom VLC-Codierer 14 durchgeführten Prozess umgekehrt, einem Lauflängendecodierer 20, der die vom Abtaster 12 durchgeführte Lauflängenabtastung umkehrt, und einem inversen Quantisierer 22, der die vom Quantisierer 8 durchgeführte Quantisierungsoperation umkehrt. Um die Koeffizienten zu dequantisieren, identifiziert der Decodierer die Quantisierungstabelle, die vom Quantisierer 8 verwendet wurde, und wählt diese Tabelle im Quantisierungstabellen-Auswahlprozess 18 aus. Nachdem die DV-Daten dequantisiert wurden, wird die vom Prozess 6 angewendete Gewichtung im inversen Gewichtungsprozess 24 umgekehrt, um die DCT-Koeffi zienten, die vom Prozess 4 erzeugt wurden, zu reproduzieren, und diese Koeffizienten werden an einen Prozess 26 der inversen diskreten Kosinustransformation (IDCT) angelegt. Der in 1B gezeigte Decodierer erfasst, ob ein Block als 88-Block oder als 248-Block codiert ist, und ändert die Operation des inversen Abtastprozesses 20, des inversen Gewichtungsprozesses 24 und des IDCT-Prozesse 26 dementsprechend. Die Quantisierungs- und inversen Quantisierungsoperationen werden nachstehend mit Bezug auf die Tabellen 1, 2 und 3 genauer beschrieben.
  • Obwohl, wie vorstehend dargelegt, der DV-Standard an sich kein Bewegungskompensationsschema zwischen Rahmen verwendet, hat er eine Einrichtung zum Bearbeiten einer schnellen Bewegung. Wenn eine schnelle Bewegung im Inhalt vorliegt, kann es wahrnehmbare Unterschiede zwischen den zwei Halbbildern eines verschachtelten Rahmens und folglich eine "Bewegung innerhalb des Rahmens" geben. In einem solchen Fall kann nur eine geringfügige Korrelation zwischen den zwei Halbbildern im Rahmen vorliegen, so dass ein Komprimierungsverfahren auf Rahmenbasis, wie z. B. eine 88-DCT, unzufriedenstellende Ergebnisse erzeugen kann. Wenn eine Bewegung zwischen Rahmen oder innerhalb Rahmen vom Detektor 2 für innerhalb Rahmen erfasst wird, wird ein anderer DCT-Modus, der "248-DCT" genannt wird, verwendet, um die Codiereffizienz zu verbessern. In dieser Weise wird der 248-DCT-Modus adaptiv verwendet, um irgendeine Verschlechterung der Bildqualität in Videobildern mit einem Inhalt einer schnellen Bewegung zu unterdrücken.
  • Die Quantisierungsoperation gemäß dem DV-Standard ist eine mehrstufige Operation. Nachdem die Koeffizienten durch die diskrete Kosinustransformation verarbeitet wurden, werden die DCT-Koeffizienten in der Gewichtungsstufe 6 (in 1 gezeigt) skaliert. Die Gewichtungsstufe 6 verwendet eine Gewichtungsmatrix, die auf der Basis des DCT-Modus (88-DCT oder 248-DCT) gewählt wird.
  • Anstatt die Quantisierungsschrittgröße explizit für jeden Koeffizienten zu geben, wird insbesondere jeder DCT-Block in 4 Bereiche gemäß einem vorbestimmten Muster unterteilt (in 3 gezeigt). Dieses Muster ist für die 88-DCT und die 248-DCT unterschiedlich. Die Quantisierungsschrittgröße ist in jedem definierten Bereich dieselbe. Tabelle 1 zeigt die Quantisierungsschrittgröße für jeden Bereich, für verschiedene Klassen und Quantisierungstabellennummern. Für einen Koeffizienten im Bereich "2" wird beispielsweise, wenn die Klassennummer "1" ist und die Quantisierungstabellennummer "10" ist, die Quantisierungsschrittgröße folgendermaßen bestimmt. In Tabelle 1 befindet sich die Quantisierungsnummer "10" in der Spalte, die der Klasse "1" entspricht, und die Zeile, in der sich "10" befindet, ist als "Zeile X" bezeichnet. Als nächstes wird die Spalte, die dem Bereich "2" entspricht, identifiziert und als "Spalte Y" bezeichnet. Die Quantisierungsschrittgröße (in diesem Fall "2"), die für den Koeffizienten verwendet werden soll, ist am Übergang der Zeile X und Spalte Y zu finden.
  • Tabelle 1
    Figure 00050001
  • Eine unbedeutende Veränderung wird auf die Klasse 3 im vorstehend beschriebenen Prozess angewendet. Wenn eine Klassennummer von 3 für einen DCT-Block gewählt wird, dann wird eine zusätzliche Rechtsverschiebung um 1 Bitposition für jeden Koeffizienten nach dem Gewichtungsschritt durchgeführt. Der Grund für diese Verschiebung liegt darin, dass in der VLC-Codierungsstufe, die der Quantisierungsstufe folgt, kein AC-Koeffizient größer als 255 oder kleiner als –255 zugelassen ist und der Quantisierungsprozess für die Klasse 3 sicherstellen muss, dass die quantisierten AC-Koeffizienten in diesen Bereich fallen. Für diejenigen DCT-Blöcke, die die VLC-Codierungsanforderung nicht erfüllen können, mit anderen Klassennummern ist die Klasse 3 die einzige Wahl.
  • Innerhalb eines DCT-Blocks ist die Koeffizientenabtastreihenfolge dieselbe wie bei MPEG-2 für 88-DCT-Blöcke, folgt jedoch einer anderen Abtastreihenfolge für 248-DCT-Blöcke. Die gewählte Klassennummer und Quantisierungsnummer sind Fragen der Codiererentwurfswahl. Der DV-Standard gibt jedoch einige Richtlinien für die Klassenauswahl, die in den Tabellen 2 und 3 gezeigt sind.
  • Tabelle 2: Klassennummerauswahl und Quantisierungsrauschen
    Figure 00060001
  • Tabelle 3: Ein Beispiel der Klassifizierung zur Referenz
    Figure 00060002
  • Ein Makroblock in DV besteht aus 4 DCT-Blöcken, einschließlich 2 Luminanzblöcken (Y-Blöcken) und zwei Chrominanzblöcken (Cr und Cb), wie in 4 gezeigt. Makroblöcke sind ferner in Superblöcke organisiert, von denen jeder aus 27 Makroblöcken besteht, wie in 4A gezeigt. 4A zeigt auch die Weise, in der die Superblöcke in Bildrahmen formatiert werden. Der in 4A gezeigte Bildrahmen wird durch pseudozufälliges Auswählen von fünf Markoblöcken aus fünf Superblöcken und Gruppieren der ausgewählten Makroblöcke in ein Videosegment codiert. Diese Pseudozufallsauswahl ist auch als Umordnen bekannt. Die Blöcke werden umgeordnet, um die Verzerrung im Endbild, die durch Burst-Fehler im Datenstrom verursacht werden, zu minimieren.
  • Jedes Videosegment wird dann in 77 × 5 Bytes komprimiert, was exakt die Nutzinformationen von fünf DIF-Paketen (Digitalschnittstellenpaketen) sind. Wenn ein Videosegment als Seg(i, k) bezeichnet wird, dann ist die Reihenfolge von komprimierten Segmenten in einem Rahmen: Seg(0, 0), Seg(0, 1) ... Seg(0, 26), Seg(1, 0) ... Seg(n – 1, 26).
  • MPEG-2
  • Der Prozess des Codierens eines I-Rahmens gemäß dem MPEG-2-Standard ist in einigen Weisen ähnlich und in einigen Weisen vom gemäß dem DV-Standard verwendeten Prozess verschieden. Bei MPEG-2- werden 8 mal 8 Blöcke von Bildpixeln unter Verwendung einer Operation der diskreten Kosinustransformation (DCT) verarbeitet, um 8 mal 8 Blöcke von DCT-Koeffizienten zu erzeugen. Die Koeffizienten werden quantisiert, zickzackabgetastet, lauflängencodiert und mit variabler Länge codiert, um den Ausgangsbitstrom zu erzeugen. Die Blöcke von DCT-Koeffizienten werden in Makroblöcken angeordnet, wobei jeder Makroblock acht 8 mal 8 Blöcke umfasst. Die Makroblöcke werden wiederum in Scheiben angeordnet, wobei mehrere Scheiben ein Bild bilden. Es gibt zwei Variablen in der Quantisierung eines Blocks von DCT-Koeffizienten, die Quantisierungsmatrix und den Quantisiererskalenwert. Die Quantisierungsmatrix wird mit dem Bitstrom übertragen und kann sich für jedes Bild ändern. Die Quantisierungsmatrix definiert die relative Quantisierungsauflösung unter den DC-Koeffizienten und Koeffizienten mit niedrigerer Raumfrequenz gegen die Komponenten mit höherer Raumfrequenz von den DCT-Koeffizienten.
  • Der Quantisiererskalenwert kann sowohl im Scheibenkopf als auch im Makroblockkopf angegeben werden und kann sich folglich auf einer makroblockweisen Basis ändern. Der Quantisiererskalenwert ist ein Multiplikator, der die Werte in der Quantisierungsmatrix multipliziert. Ein größerer Wert für die Quantisiererskala drückt sich in einer gröberen Quantisierung aus. Der MPEG-2-Codierer stellt den Quantisiererskalenwert dynamisch ein, um die Datenrate des Bitstroms einzustellen. Wenn diese momentane Datenrate über einen ersten Schwellenwert zunimmt, erhöht der Codierer den Quantisiererskalenwert, um die DCT-Koeffizienten gröber zu quantisieren und somit die Datenrate zu verringern. Wenn die Datenrate unter einen zweiten Schwellenwert abfällt, verringert der Quantisierer den Quantisiererskalenwert, um die DCT-Koeffizienten feiner zu quantisieren.
  • Da sowohl MPEG-2 als auch DV charakteristische Vorteile schaffen, ist es denkbar, dass beide Standards langfristig gemeinsam existieren und einander in der Studioumgebung ergänzen. Wie aus der obigen Beschreibung zu erkennen ist, wurden der DV- und der MPEG-2-Standard ohne Betrachtung hinsichtlich ihrer Interoperabilität unabhängig voneinander entwickelt. Derzeit existieren anwendereigene Hardwaresysteme zum Transcodieren zwischen den zwei Formaten. Dennoch sind diese Systeme teuer und komplex, da sie Signale von einem Standard vollständig auf die Pixelebene decodieren und dann die Daten im anderen Standard erneut codieren.
  • Folglich besteht ein Bedarf für ein vereinfachtes Transcodierungsverfahren zum effizienten Mildern dieses Interoperabilitätsproblems in Echtzeit.
  • WO-A-0051357 und EP-A-0951184 beziehen sich auf das Transcodieren von codierten Bilddaten zwischen Bitströmen, die verschiedenen Bildkomprimierungsstandards entsprechen, unter Verwendung einer diskreten Kosinustransformation (DCT).
  • Einige spezielle Merkmale eines Komprimierungsverfahrens gemäß dem Digitalvideostandard (DV-Standard) sind in Fell-Bosenbeck F: "DV-Kompression – Grundlange und Anwendungen', Fernseh und Kinotechnik, VDE Verlag GmbH, Berlin, DE (06-19999), 53 (6), 336–340, 342–345) und De With P. H. N. et al: "Design considerations of the video compression system of the new DV camcorder standard", IEEE Transactions On Consumer Electronics, IEEE inc. New York, Us (01.11.1997), 43 (4), 1160–1179, erläutert.
  • Es ist eine Aufgabe der vorliegenden Erfindung, einen codierten Bildstrom von Bilddaten einer gewünschten Datenratenperiode zu schaffen.
  • Diese Aufgabe wird durch das Verfahren von Anspruch 1 erreicht. Spezielle Ausführungsformen sind in den abhängigen Ansprüchen dargelegt.
  • Die vorliegende Erfindung ist in einem Verfahren zum Transcodieren zwischen einem ersten und einem zweiten Standard verkörpert, die eine Operation einer diskreten Kosinustransformation (DCT) zum Komprimieren von Videodaten verwenden. Das Verfahren decodiert ein erstes Signal, das gemäß einem ersten Standard auf die Ebene von DCT-Koeffizienten komprimiert wurde, und codiert dann die Koeffizienten erneut, um ein komprimiertes Signal gemäß dem zweiten Standard zu erzeugen.
  • Gemäß einem Aspekt der Erfindung codiert der erste Standard Videorahmen unterschiedlich, wenn eine signifikante Bewegung zwischen den Feldern, die einen Rahmen bilden, besteht, als wenn keine solche Bewegung vorliegt. Gemäß einer Ausführungsform der Erfindung werden codierte Rahmen des ersten Signals, die eine Bewegung innerhalb Rahmen aufweisen, in ein Codierformat umgesetzt, das für Rahmen verwendet wird, die keine Bewegung innerhalb Rahmen aufweisen, bevor sie in den zweiten Standard umgesetzt werden.
  • Gemäß einem weiteren Aspekt der Erfindung ist der erste Standard DV und Rahmen im DV-codierten Signal, die als 248-Blöcke codiert wurden, werden in 88-Blöcke umgesetzt, nachdem das DV-Signal teilweise decodiert ist.
  • Gemäß einem weiteren Aspekt der Erfindung decodiert das Verfahren das erste Signal in einen Strom von DCT-Blöcken, in denen die Koeffizienten gemäß dem ersten Standard quantisiert sind. Quantisierte DCT-Koeffizienten im ersten Standard werden in quantisierte DCT-Koeffizienten im zweiten Standard umgesetzt, ohne dequantisiert zu werden, und dann in ein komprimiertes Signal gemäß dem zweiten Standard formatiert.
  • Gemäß noch einem weiteren Aspekt der Erfindung ist der erste Standard der DV-Standard und der zweite Standard ist der MPEG-2-Standard. Um das DV-Signal teilweise zu decodieren, wird die Codierung mit variabler Länge (VLC) der Koeffi zienten umgekehrt, um eine Folge von Blöcken von quantisierten DCT-Koeffizienten zu erhalten. Die quantisierten DCT-Koeffizienten im DV-Standard werden in quantisierte MPEG-2-Makroblöcke von Koeffizienten umgesetzt, ohne die Lauflängencodierung der Koeffizienten zu beeinflussen. Die quantisierten MPEG-Koeffizienten werden dann in eine MPEG-2-Folge von Videorahmen formatiert und gemäß dem MPEG-2-Standard mit variabler Länge codiert.
  • Gemäß einem weiteren Aspekt der Erfindung ist der erste Standard der DV-Standard und der zweite Standard ist der MPEG-2-Standard. Der DV-Standard codiert die Bilddaten in Blöcke mit fester Größe, Makroblöcke und Segmente. Die Makroblöcke und Segmente umfassen jeweilige Überlaufdaten, die Koeffizienten in einzelnen Blöcken darstellen, die nicht in die Blöcke mit fester Größe passen. Um die Datenrate des MPEG-Signals zu verringern, werden die Überlaufdaten zuerst in den Segmenten und dann in den Makroblöcken selektiv ignoriert. Das heißt die diesen Überlaufdaten entsprechenden Koeffizientenwerte können auf Null gesetzt werden.
  • Gemäß noch einem weiteren Aspekt der Erfindung ist der erste Standard der MPEG-2-Standard und der zweite Standard ist der DV-Standard.
  • Gemäß einem weiteren Aspekt der Erfindung werden MPEG-2-Blöcke in DV-Rahmenmodusblöcke umgesetzt und die DV-Rahmenmodusblöcke werden analysiert, um festzustellen, ob sie in DV-Feldmodusblöcke umgesetzt werden sollen. In Reaktion auf die Analyse werden ausgewählte der DV-Rahmenmodusblöcke in DV-Feldmodusblöcke umgesetzt.
  • Gemäß noch einem weiteren Aspekt der Erfindung vergleicht die Analyse, um festzustellen, ob ein Rahmenmodus-DV-Block in einen Feldmodus-DV-Block umgesetzt werden soll, einen Koeffizienten des Rahmenmodus-DV-Blocks mit einem vorbestimmten Schwellenwert.
  • KURZBESCHREIBUNG DER VERSCHIEDENEN ANSICHTEN DER ZEICHNUNGEN
  • Die vorangehende Zusammenfassung sowie die folgende ausführliche Beschreibung von beispielhaften Ausführungsformen der Erfindung werden besser verstanden, wenn sie in Verbindung mit den beigefügten Zeichnungen gelesen wer den. Für den Zweck der Erläuterung der Erfindung sind in den Zeichnungen verschiedene beispielhafte Ausführungsformen der Erfindung gezeigt. Es sollte jedoch selbstverständlich sein, dass die Erfindung nicht auf die gezeigten genauen Anordnungen und Instrumentalitäten begrenzt ist. In den Zeichnungen ist:
  • 1 ein Steuerablaufdiagramm eines DV-Codierungsprozesses;
  • 1A ein Steuerablaufdiagramm eines DV-Decodierungsprozesses;
  • 2 ein beispielhaftes Pixelblockdiagramm, das zum Beschreiben der Beziehung zwischen einem 248-DCT-Block und eine 88-DCT-Block nützlich ist;
  • 3 ein DCT-Blockmusterdiagramm, das Bereichsnummern für einen 248-DCT-Block und einen 88-DCT-Block zeigt;
  • 4 ein DCT-Blockmusterdiagramm, das eine Makroblockstruktur für einen 4:2:2-DV-Rahmen zeigt;
  • 4A ein Datenstrukturdiagramm, das eine Superblockstruktur für einen 4:2:2-DV-Rahmen darstellt;
  • 5 ein Datenstrukturdiagramm, das eine MPEG-2-4:2:2-Makroblockstruktur zeigt;
  • 6 ein Blockdiagramm eines Transcodierungssystems gemäß der vorliegenden Erfindung;
  • 7 ein allgemeines Ablaufdiagramm des Transcodierungssystems von 6;
  • 8 ein hierarchisches Ablaufdiagramm des Decodierungsprozesses des Transcodierungssystems von 6;
  • 9 ein hierarchisches Ablaufdiagramm des Codierungsprozesses des Transcodierungssystems von 6;
  • 10 ein Blockdiagramm eines MPEG-2-DV-Transcodierungssystems.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • Eine bestimmte Terminologie wird hierin nur der Zweckmäßigkeit halber verwendet und soll nicht als Begrenzung der vorliegenden Erfindung aufgefasst werden. Die Begriffe "intracodiert" und "intrarahmencodiert" sind als sich auf ein Codierschema beziehend definiert, das keine zeitliche Vorhersage beim Codieren eines Signals verwendet (d. h. alle Videorahmen werden unabhängig voneinander komprimiert). In den Zeichnungen werden dieselben Bezugszeichen zum Bezeichnen derselben Elemente in den ganzen verschiedenen Fig. verwendet.
  • Die vorliegende Erfindung betrifft ein Transcodierungssystem, das zwischen Codierformaten hauptsächlich auf der Basis derselben linearen orthogonalen Transformation, die als diskrete Kosinustransformation (DCT) bekannt ist, umsetzt. Der Transcodierer gemäß der vorliegenden Erfindung verwendet diese Allgemeinheit durch Rückgewinnen und Neuquantisieren dieser gemeinsamen DCT-Koeffizienten zum Transcodieren in ein gewünschtes Format. In dieser Weise ist es nicht erforderlich, das Signal vollständig zu decodieren, um die ursprünglichen Pixeldaten zurückzugewinnen.
  • Beispielhafte Videoformate, die vom Transcodierer der vorliegenden Erfindung unterstützt werden, sind Digitales Video (DV) und MPEG-2 4:2:2 Profile@Main Level (4:2:2@ML) mit nur I-Rahmen. Die Details des DV sind in einem vorgeschlagenen SMPTE-Standard mit dem Titel "Data Structure for DV Based Audio, Data and Compressed Video, 25 Mb/s and 50 Mb/s", 4. Entwurf, zu finden. Die Details über die MPEG-2-Standards sind in einem ISO-Standard mit dem Titel "ISO/IEC 13818-2 Information Technology-Generic Coding of Moving Pictures and Associated Audio Information: Video" zu finden.
  • Unterschiede zwischen Intrarahmen (MPEG-2 4:2:2) und DV
  • Wie vorstehend beschrieben, ist intracodiertes DV ein digitaler Videoaufzeichnungsstandard, der hauptsächlich für die Feldneuigkeitserfassung und Nachproduktion für Fernsehrundfunk entworfen ist. MPEG-2 ist ein sehr flexibles und "allgemeines" Videoformat, das zum Verteilen von komprimierten Videodaten zu Verbrauchern ausgelegt ist. Um sicherzustellen, dass die Implementierung effizient ist und dass die Aufbereitungsmerkmale unterstützt werden, verwenden die beispielhaften Ausführungsformen nur eine Codierung auf I-Rahmen-Basis im MPEG-Format.
  • Drei verschiedene Chrominanzformate werden von MPEG-2 unterstützt, die Formate 4:2:0, 4:2:2 und 4:4:4. Das am üblichsten verwendete MPEG-2-Format wird Main Profile@Main Level genannt, das auf Video in der CCIR-601-Auflösung im 4:2:0-Format abzielt. Um die Bedürfnisse der professionellen Studio- und Nachproduktionsumgebung mit Interoperabilität zu erfüllen, wurde jedoch ein neues Profil – 4:2:2 Profile@Main Level – definiert. Im Gegensatz zu anderen in MPEG definierten Profilen ist dieses Format ein nicht skalierbares Profil und besitzt keine hierarchische Beziehung zu anderen Profilen. Die professionelle Erweiterung von 4:2:2 Profile@Main level wird in der beispielhaften Ausführungsform der Erfindung verwendet, um das Chrominanzformat und die Bitrate von gemäß dem DV-Standard codierten Signalen anzupassen.
  • Ein Makroblock in MPEG-2 besteht aus 4 Y-Blöcken und 2 Cb- und 2 Cr-Blöcken, wie in 5 dargestellt. Der MPEG-2-Standard wurde hauptsächlich zum Zurechtkommen mit verschachteltem Video entwickelt. Die Pixel in Bildern von verschachteltem Video werden in abwechselnden vertikalen Positionen in der Bildebene abgetastet. Der Zweck von verschachteltem Video besteht darin, die vertikale Auflösung gegen eine erhöhte zeitliche Auflösung unter einer gegebenen Gesamtdatenrateneinschränkung einzutauschen. Folglich wird sowohl die räumliche als auch zeitliche Korrelation zwischen den Pixeln in benachbarten Zeilen von verschachtelten Rahmen verringert, was eine Verringerung der Codiereffizienz verursacht.
  • Ohne spezielle Behandlung für verschachteltes Video können zwei benachbarte Felder in ein Rahmenbild kombiniert und als progressiver Rahmen codiert werden. Alternativ kann jeweils eines der zwei Feldbilder codiert werden, als ob sie ein progressiver Rahmen wären. Spezielle Codiermodi sind in MPEG-2 entworfen, um die Codiereffizienz für verschachteltes Video zu verbessern. Diese umfassen Feldvorhersage, Feld-DCT und abwechselnde Abtastung (eine Modifikation der Zickzack-Abtastreihenfolge). Der Transcodierer der vorliegenden Erfindung nutzt diese Optionen nicht aus. Das heißt, der beispielhafte Transcodierer implementiert nur Operationen im Rahmenmodus in MPEG-2, wenn DV-Video in MPEG-2 transcodiert wird. Wenn dagegen von MPEG-2 in DV transcodiert wird, verarbeitet der beispielhafte Transcodierer nur im Rahmenmodus codierte MPEG-2-Bilder.
  • Wie nachstehend beschrieben, setzt folglich der teilweise DV-Decodierer, der in der beispielhaften Ausführungsform der Erfindung verwendet wird, beliebige 248-DCT-Blöcke in entsprechende 88-DCT-Blöcke um. Der nachstehend beschriebene teilweise DV-Codierer untersucht jeden 88-DCT-Block, der vom teilweisen MPEG-2-Decodierer geliefert wird, und setzt entsprechende Blöcke in 248-DCT-Blöcke für das DV-Signal um.
  • Wie vorstehend beschrieben, unterscheidet sich der Quantisierungsprozess in MPEG-2 beträchtlich vom DV-Standard. Unter dem MPEG-2-Standard bilden die Quantisierungsschritte für alle DCT-Koeffizienten eine 88-Matrix, die als Quantisierungsschrittmatrix bezeichnet wird. Sie wird folgendermaßen berechnet: QS = QW × Q_Scale/16 (1)wobei QS = Quantisierungsschrittmatrix (8 × 8); QW = Quantisierungsgewichtungsmatrix (8 × 8) und Q_Scale = Quantisierungsskala (eine ganze Zahl). QW kann sich auf einer bildweisen Basis ändern, während Q_Scale sich auf einer makroblockweisen Basis ändern kann. Wie vorstehend dargelegt, wird QW geändert, um den Rahmeninhalt zu nutzen, während Q_Scale dynamisch geändert wird, um die Datenrate des komprimierten Videosignals zu erhöhen oder zu verringern. in 4:2:2- oder 4:4:4-Videoströmen sind die QWs für die Luminanz- und Chrominanzblöcke verschieden, so dass insgesamt vier QWs vorliegen.
  • Zusätzlich zu Unterschieden in den Quantisierungsverfahren unterscheidet sich DV von MPEG-2 in anderen Weisen:
    • (1) Bei DV wird für jeden DCT-Block eine feste Anzahl von Bytes den DCT-codierten Daten zugewiesen. Ein Makroblock besteht aus 4 DCT-Blöcken, zwei Luminanzkomponentenblöcken und zwei Chrominanzkomponentenblöcken (ein Cr und ein Cb). Eine feste Anzahl von Bytes wird auch jedem Makroblock zugewiesen (geringfügig mehr als die Summe der Bytes, die seinen einzelnen vier DCT-Blöcken zugewiesen werden). Jeweils fünf Makroblöcke, die gemäß dem vordefinierten Umordnungsalgorithmus ausgewählt werden, bilden ein Videosegment und eine feste Anzahl von Bytes wird jedem Segment zugewiesen. Wenn einige DCT-Blöcke mehr Speicherplatz benötigen als den ihnen zugewiesenen, gibt es zwei Schritte zum Verteilen von "Überlauf"-Datenbits:
    • a) Verketten der übergelaufenen Bits der DCT-Blöcke innerhalb desselben Makroblocks und Verteilen der Bits zum ungenutzten Raum der anderen DCT-Blöcke im gleichen Makroblock.
    • b) Wenn nach Schritt (a) immer noch Überlaufbits für einige Makroblöcke in einem Segment vorliegen, dann Verketten dieser Überlaufbits und Verteilen derselben zum ungenutzten Raum der DCT-Blöcke im gleichen Segment.
  • Da eine feste Anzahl von Bytes jedem Block zugewiesen wird, werden der DC-Koeffizient und die Koeffizienten mit niedrigerer räumlicher Frequenz immer in dem dem Block zugeordneten Bereich gespeichert. Nur die Komponenten mit höchster räumlicher Frequenz werden in die Überlaufdaten verkettet. Wenn ein Bild ohne Rückgewinnen der Überlaufdaten decodiert wird, gehen folglich nur Informationen in Bezug auf diese Koeffizienten verloren. Dieses Schema minimiert die scheinbare Verzerrung, da das menschliche Auge gegen Fehler in den Komponenten mit hoher räumlicher Frequenz weniger empfindlich ist als gegen Fehler in der DC-Komponente oder in den Komponenten mit niedrigerer räumlicher Frequenz.
  • Da die Überlaufdaten innerhalb des Segments bleiben, ist jedes Segment von anderen Segmenten vollständig unabhängig. Aus der obigen Beschreibung folgt, dass während der Codierung eines DCT-Blocks und eines Makroblocks die ungenutzten Bits für die zukünftige Verwendung durch andere DCT-Blöcke im gleichen Makroblock oder im gleichen Segment bewahrt werden sollten.
  • Es ist zu beachten, dass MPEG-2 keine solche Einrichtung für "Überlauf" benötigt, da es keine Rahmen mit fester Größe aufweist. Jeder MPEG-2-DCT-Block kann so groß oder klein wie notwendig sein. Dies ist auch ein Kompromiss zwischen der Komprimierungseffizienz und der Zweckmäßigkeit von Rahmen mit fester Größe.
    • (2) Wie vorstehend beschrieben, übernimmt DV einen DCT-Modus, der 248-DCT genannt wird, um Rahmen zu codieren, die eine Bewegung innerhalb Rahmen aufweisen. MPEG-2 unterstützt auch einen Rahmen-DCT- und einen Feld-DCT-Modus. Der Einfachheit halber verwendet jedoch der Transcodierer der vorliegenden Erfindung nicht den Feld-DCT-Modus von MPEG-2. Im Transcodierer der vorliegenden Erfindung verwenden alle MPEG-2-DCT-Blöcke den 88-DCT-Modus. Daher wird eine Umsetzung in den 88-DCT-Modus in der beispielhaften Ausfüh rungsform der Erfindung durchgeführt, wenn ein 248-DCT-Block im DV-Bitstrom angetroffen wird. Der Prozess zum Umsetzen von 248-DCT-Blöcken in 88-DCT-Blöcke wird nachstehend im Abschnitt III beschrieben.
    • (3) Selbst für den 88-DCT-Modus in DV, der exakt dieselbe Koeffizientenreihenfolge wie die Rahmen-DCT in MPEG-2 aufweist, ist es nicht möglich, die quantisierten DCT-Koeffizienten im DV direkt zu verwenden, auf Grund des Unterschiedes der Quantisierungsprozesse zwischen den zwei Standards. Die MPEG-2-Quantisierungsgewichtungsmatrix wird auf einer bildweisen Basis gewählt und eine Quantisierungsskala wird auf einer makroblockweisen Basis gewählt. Das vorstehend beschriebene DV-Quantisierungsverfahren ist komplexer. Folglich ist es unmöglich, einfach eine geeignete MPEG-2-Gewichtungsmatrix zu wählen, die die direkte Wiederverwendung der quantisierten DV-DCT-Koeffizienten durch einfaches Einstellen der Gewichtungsskala für jeden Makroblock ermöglichen würde. Selbst wenn die Gewichtungsmatrizen in DV eine einfache Skalierungsbeziehung zu jener in MPEG-2 hätten, wäre es immer noch nicht möglich, die DV-Koeffizienten direkt in MPEG-2 wiederzuverwenden. Die Gewichtungsskala in MPEG-2 wird auf der Ebene eines Makroblocks (8 DCT-Blöcke) gewählt, wohingegen die entsprechenden Quantisierungsentscheidungen (Klassennummer und Quantisierungstabellennummer) auf der Ebene jedes DCT-Blocks in DV getroffen werden. Folglich werden in den beispielhaften Ausführungsformen der Erfindung die DCT-Koeffizienten erneut quantisiert.
  • Eine vollständige Dequantisierung und Neuquantisierung ist jedoch nicht erforderlich. Wenn eine MPEG-2-Gewichtungsmatrix so festgelegt wird, dass sie den 88 Bereichsnummern entspricht, die in 3 gezeigt sind, wobei Quantisierungsschritte von der ersten Zeile der DV-Quantisierungstabelle (Tabelle 1, der feinste Quantisierungsschritt) genommen werden, dann können die DCT-Koeffizienten wieder verwendet werden, indem einfach eine gewisse Bitverschiebung an den ursprünglichen quantisierten DV-DCT-Koeffizienten durchgeführt wird. Dies ist möglich, da die Quantisierungsschritte in DV immer Potenzen von 2 mal den feinsten Quantisierungsschritten sind. Da sowohl MPEG-2 als auch DV dieselbe Zickzack-Abtastreihenfolge für 88-DCT verwenden und da MPEG-2 und DV beide eine Lauflängencodierung verwenden, können außerdem die Lauflängen wieder verwendet werden. In jenen Fällen, in denen eine andere Quantisierungsschrittgröße als die feinste Schrittgröße für DV innerhalb des MPEG-Stroms verwendet wird, können einige von Null verschiedene DCT-Koeffizienten von DV in MPEG Null werden. In diesem Fall kann eine gewisse zusätzliche Verarbeitung verwendet werden, um zwei oder mehr Lauflängen zu einer zu kombinieren.
  • Software-Transcodierer
  • 6 stellt ein allgemeines Blockdiagramm eines Software-Transcodierers gemäß der vorliegenden Erfindung dar. Der Transcodierer umfasst ein Decodierermodul 30 und ein Codierermodul 40. Das Decodierermodul 30 nimmt Rahmen von DV-Daten als Eingangsdaten und erzeugt rohe DCT-Koeffizienten als Ausgangsdaten. Das Codierermodul 40 quantisiert die DV-DCT-Koeffizienten erneut in MPEG-2-DCT-Koeffizienten und codiert die Koeffizienten als MPEG-2-Daten. Obwohl der Transcodierer hierin als auf Softwarebasis beschrieben wird, liegt eine Hardware-Anpassung desselben innerhalb des Könnens von Fachleuten. Der Transcodierer verwendet die folgende vereinfachte Prozedur:
    • • Decodieren der (Lauflänge, quantisierte DCT) Kombinationen in DV, um zumindest teilweise dequantisierte, lauflängencodierte Koeffizienten zu erhalten
    • • Neuquantisieren der dequantisierten DCT-Koeffizienten
    • • Formatieren der DCT-Koeffizienten in Sequenzen von Bildrahmen
    • • Codieren der erneut quantisierten DCT-Koeffizienten mit der MPEG-2-VLC-Tabelle in einen MPEG-2-Bitstrom
  • Die Lauflängenberechnung in MPEG-2 kann weggelassen werden, zumindest für 88-DV-Blöcke, indem die Lauflängenwerte von den DV-Blöcken wieder verwendet werden. Wie nachstehend beschrieben, können diese Werte wieder verwendet werden, wenn die MPEG-Quantisierungsmatrix so definiert ist, dass sie der ersten Zeile der DV-Quantisierungstabelle entspricht. Mit einer MPEG-2-Gewichtungsmatrix, die den gröberen Quantisierungsschritten in DV entspricht, und einigen unbedeutenden Modifikationen an dem vorstehend beschriebenen Prozess können die Bitrate und Qualität des Ausgangs-MPEG-2-Stroms eingestellt werden. In der beispielhaften Ausführungsform der Erfindung wird eine teilweise Dequantisierung und Neuquantisierung nur verwendet, wenn 88-Format-Blöcke in DV in MPEG-Transcodierung umgesetzt werden. Wie nachstehend im Abschnitt III be schrieben, werden 248-DCT-Blöcke als Teil des Umsetzungsprozesses vollständig dequantisiert und erneut quantisiert.
  • I. Transcodieren von DV in MPEG-2 4:2:2 (nur I-Rahmen)
  • Auf der Basis der obigen Erörterung werden zwei Algorithmenvereinfachungen in den Transcodierer der vorliegenden Erfindung integriert. Auf Grund der wesentlichen Äquivalenz zwischen den DCTs in den zwei Standards kann erstens der Schritt der Durchführung einer inversen DCT (IDCT) vermieden werden. Mit anderen Worten, die DCT-Koeffizienten können ohne Umsetzen von Daten auf die Pixelebene wieder verwendet werden. Dies beseitigt die rechenintensiven Schritte der Durchführung einer IDCT und dann einer zweiten DCT. Da die DCT mit Rundung eine Quelle für Verluste im Codierprozess ist, ist der beispielhafte Transcodierungsprozess weniger verlustbehaftet als ein Prozess, der die DV-Daten vollständig in Pixel decodiert und dann die Pixel als MPEG-2-Bilder codiert. Wie vorstehend angegeben, sind zweitens eine inverse Quantisierung und Neuquantisierung nicht immer erforderlich. Für 88-DCT-Blöcke können die quantisierten DCT-Koeffizienten direkt verwendet werden.
  • Das Verfahren der Transcodierung von DV in MPEG-2 kann in zwei allgemeine Phasen unterteilt werden, die in 7 gezeigt sind: (A) teilweises Decodieren und (B) teilweises Codieren. Kurz gesagt werden in Schritt 71 von 7 die komprimierten DCT-Blöcke aus den DV-Segmenten extrahiert. In Schritt 72 werden die DCT-Koeffizienten mit variabler Länge decodiert und in Schritt 73 dequantisiert. In Schritt 74 werden beliebige 248-DCT-Blöcke in 88-DCT-Blöcke umgesetzt und in Schritt 75 werden die decodierten und dequantisierten DV-DCT-Blöcke in DCT-Blöcke und Makroblöcke für das MPEG-Signal umgruppiert. In den Schritten 76 und 77 werden die umgruppierten Koeffizienten quantisiert und in Schritt 78 werden die quantisierten Koeffizienten mit variabler Länge codiert, um den Ausgangsbitstrom zu erzeugen. In Schritt 79 wird die Datenrate des MPEG-Bitstroms überwacht, um ein Datenratensteuersignal zu erzeugen. Dieses Signal wird auf die Schritte 72, 76 und 77 angewendet. In Schritt 72 steuert das Signal, wie die DV-Überlaufdaten von den DV-Blöcken decodiert werden und folglich wie diese Daten verwendet werden, um MPEG-Blöcke zu erzeugen. In den Schritten 76 und 77 steuert das Signal den MPEG-Quantisierungsskalenfaktor, der für jeweilige Makroblöcke des MPEG-Signals verwendet wird.
  • Die kleinste Einheit, wo eine logische Entsprechung zwischen den DV- und MPEG-Daten besteht, ist ein Rahmen. In DV wird jeder Rahmen unabhängig von anderen codiert. Nur der I-Rahmen-Modus im MPEG-2-Format wird verwendet, um die Implementierung zu vereinfachen und die Aufbereitungsfähigkeiten von DV beizubehalten. Der grundlegende Transcodierungsprozess besteht daher aus dem teilweisen Decodieren von jedem DV-Rahmen, d. h. bis auf DCT-Koeffizienten, und dann dem erneuten Codieren der Rahmen in MPEG-2-I-Rahmen.
  • Das teilweise Decodieren umfasst im Allgemeinen:
    • (1) Sammeln von Überlaufdaten.
    • (2) VLC-Decodieren des DV-Stroms.
    • (3) Umsetzen von 248-DCT-Blöcken in DV in 88-DCT-Blöcke.
  • Beim teilweisen Decodieren werden, anstatt die Pixel des Videorahmens zu rekonstruieren, entsprechende DCT-Koeffizienten in Schritt 71 extrahiert und VLC-Lauflängen werden in Schritt 72 extrahiert. In den Codierphasenschritten 7378 werden die extrahierten DCT-Koeffizienten erneut in das MPEG-2-Format codiert, das nachstehend mit Bezug auf 9 genauer beschrieben wird.
  • In 8 ist der teilweise Decodierprozess als hierarchisches Ablaufdiagramm spezieller gezeigt. In einem Ablaufdiagramm dieser Art sind einige Blöcke in Bezug auf andere Blöcke vorgesehen. Der oberste Block stellt die ganze Operation dar. Unterblöcke, die von diesem Block vorgesehen sind, stellen Schritte dar, die durchgeführt werden, um die Operation zu vollenden. Jeder von diesen Unterblöcken kann wiederum weitere vorgesehene Unterblöcke aufweisen, die Schritte darstellen, die durchgeführt werden, um die Unterblockoperation zu vollenden.
  • In Schritt 801 des in 8 gezeigten hierarchischen Ablaufdiagramms wird eine Reihe von Videorahmen, die als DIF-Pakete codiert sind, empfangen und in Segmente zerlegt und decodiert. Schritt 801 wiederholt sich für jeden Videorahmen, bis das Ende der Videosequenz in Schritt 802 erfasst wird. Die Segmente werden wiederum in Schritt 803 decodiert. Jedes Segment umfasst fünf Makroblöcke. Folglich werden in Schritt 804 die einzelnen Makroblöcke der Segmente decodiert. In diesem Schritt werden irgendwelche Überlaufbits, die unter den Blö cken des Makroblocks und unter den Makroblöcken des Segments verteilt sind, wiedergewonnen und separat gespeichert. In Schritt 805 bestimmt der Makroblockdecodierprozess die Quantisierungsschrittgrößen, die für jeden Block verwendet werden. In Schritt 806813 werden die einzelnen Blöcke von DCT-Koeffizienten verarbeitet. In den Schritten 806810 werden die DCT-Koeffizienten mit variabler Länge aus den Blöcken extrahiert und der DCT-Modus des Blocks, 88 oder 248, wird identifiziert. In den Schritten 806810 werden auch die Überlaufbits verarbeitet, um die entsprechenden Koeffizientenwerte wiederzugewinnen, und diese Werte werden zu ihren jeweiligen Blöcken wiederhergestellt. In den Schritten 811, 812 und 813 werden die extrahierten Koeffizienten mit variabler Länge decodiert und zumindest teilweise dequantisiert, wie vorstehend beschrieben. Wenn sich ein Block im 248-Modus befindet, dann wird er in Schritt 814 in einen 88-Block umgesetzt, wie nachstehend im Abschnitt III beschrieben. Wenn ein Block von einem 248-Modus-Block in einen 88-Modus-Block umgesetzt wird, wird der 248-Block vollständig dequantisiert. Das Ergebnis des in 8 gezeigten Prozesses ist ein Strom von DCT-Koeffizienten, die zumindest teilweise dequantisiert sind. Diese Koeffizienten werden jedoch, wenn sie von 88-DV-Blöcken stammen, immer noch lauflängencodiert und in der Zickzack-Abtastreihenfolge für das 88-Block-Format verwendet.
  • Wie vorstehend beschrieben, werden Koeffizienten in 248-DV-Blöcken während des Transcodierungsprozesses vollständig dequantisiert. Koeffizienten in 88-Format-DV-Blöcken können auch vollständig dequantisiert werden. In beiden dieser Operationen werden die DV-Koeffizienten unter Verwendung einer Näherung der Dequantisierungsoperation vollständig dequantisiert. Im Wesentlichen beinhaltet der Quantisierungsprozess das Multiplizieren jedes DCT-Koeffizienten mit einem (Gleitkomma-)Gewichtungsfaktor und dann Skalieren desselben durch den entsprechenden Quantisierungsschritt. Da alle Quantisierungsschritte Potenzen von 2 sind, kann die Teilung einfach mittels Bitverschiebung ausgeführt werden. Ein Rundungsprozess ist enthalten, um kleinere Quantisierungsfehler zu erreichen. Die Prozesse der Quantisierung mit Rundung und Dequantisierung sind in den Gleichungen (2) gezeigt. Quantisierung: QDCT = (DCTCoeff·WFactor + Sign(DCTCoeff)·Quanstep)/Quanstep, wobei Sign(x) = {1, wenn x > 0; 0, wenn x = 0; –1, wenn x < 0} Dequantisierung: DCTCoeff = QDCT/WFactor·Quanstep (2) wobei QDCT der quantisierte DCT-Koeffizient ist, WFactor der Gewichtungsfaktor ist und Quanstep der Quantisierungsschritt ist.
  • Folglich wird eine Gleitkomma-Divisionsoperation als Teil der Dequantisierungsoperation durchgeführt. Die Implementierung der beispielhaften Ausführungsform der Erfindung nähert die Operationen von Gleichung (2) durch Gleichung (3). DCTCoeff = ((QDCT·IntFactor)·Quanstep) >> 15 (3)wobei IntFactor = ⌊32768/WFactor⌋ und ">> 15" eine Verschiebung zu niedrigerwertigen Bitpositionen um 15 Bits bedeutet.
  • Obwohl diese beispielhafte Ausführungsform der Erfindung die Koeffizienten unter Verwendung einer Näherung für den vollen Dequantisierungsalgorithmus vollständig dequantisiert, wird in Erwägung gezogen, dass die Koeffizienten nur teilweise dequantisiert werden können, wie vorstehend beschrieben.
  • Vorzugsweise wird eine einfache, optimale Prozedur zum Implementieren der VLC-Decodierung in Schritt 13 bereitgestellt. Idealerweise würde dies das VLC-Nachschlagen in nicht mehr als 2 CPU-Zyklen erreichen. Eine vorher gespeicherte Nachschlagetabelle wird verwendet, um einen Kompromiss zwischen Speicher und Effizienz zu erzielen. Da die Länge des VLC-Codeworts im Voraus nicht bekannt ist, sondern nur, dass es eine maximale Länge von 16 Bits besitzt, gibt die Nachschlagetabelle das korrekte Codewort für irgendeinen beliebigen Eingangsstrom zurück; in dieser beispielhaften Ausführungsform der Erfindung wird eine Tabelle mit der Größe 216 verwendet. Unter Verwendung dieser Tabelle wird die VLC-Decodierung zu einer einfachen Tabellennachschlageoperation, die unter Verwendung einer nativen Hardware-Implementierung auf PENTIUM® CPUs, die von Intel Corporation hergestellt werden, weiter vereinfacht werden kann.
  • II. MPEG-Bitratensteuerung über das DV-Decodierniveau
  • Der vorstehend beschriebene beispielhafte decodierer verarbeitet die Überlaufbits sowohl von den Segmenten als auch von den einzelnen Makroblöcken. Es wird jedoch in Erwägung gezogen, dass zum Steuern der Bitrate des codierten MPEG-2-Signals der teilweise Decodierprozess die Überlaufbits ignorieren kann, die den Segmenten oder sowohl den Segmenten als auch den Makroblöcken zugeordnet sind. Beim Ignorieren der Überlaufbits setzt der beispielhafte Prozess selektiv die Koeffizientenwerte, die den Überlaufbits entsprechen, auf Null. Um zu verstehen, wie die Überlaufbits während der Umsetzung verarbeitet werden, ist es hilfreich zu verstehen, wie die Überlaufbits während der anfänglichen Codieroperation erzeugt werden. Das Verfahren zum Verteilen der Überlaufblöcke unter den Makroblöcken oder unter den Segmenten wird nachstehend beschrieben.
  • Es gibt drei Ebenen der Bitratenverteilung in einem DV-Segment:
    • 1) Die Bits für jeden DCT-Block werden in den zugewiesenen Raum für den Block verteilt (1. Ebene).
    • 2) Die Überlaufbits der DCT-Blöcke werden innerhalb desselben Makroblocks verkettet und zum ungenutzten Raum der anderen DCT-Blöcke des Makroblocks verteilt (2. Ebene).
    • 3) Wenn nach der zweiten Ebene immer noch Überlaufbits für einige Makroblöcke in einem Segment vorliegen, dann werden diese Bits verkettet und zum ungenutzten Raum der DCT-Blöcke desselben Segments verteilt (3. Ebene).
  • Da die Blöcke lauflängencodiert und mit variabler Länge codiert werden, wird jeder Koeffizient in jedem Block festgelegt. Die Blöcke des Segments werden in einer vorbestimmten Reihenfolge codiert, wobei die Koeffizienten, die nicht in den Datenraum, der für einen speziellen Block zugeordnet ist, passen, in einer Liste gespeichert werden. Wenn nach dem Codieren eines Makroblocks Koeffizienten für diesen Makroblock in der Überlaufliste sind, versucht das Codierverfahren zuerst, diese Koeffizienten im verfügbaren Raum in irgendeinem der Blöcke desselben Makroblocks in einer vorbestimmter Reihenfolge anzuordnen. Wenn kein Raum gefunden werden kann, werden diese Koeffizienten dann in der Überlaufliste für das Segment gespeichert. Nachdem das Segment codiert wurde, werden diese Koeffizienten in verfügbaren Stellen in den restlichen Makroblöcken in einer vorbestimmten Reihenfolge gespeichert.
  • Die Überlaufbits können durch Umkehren des Prozesses wiedergewonnen werden. Wenn jeder Block decodiert wird, werden beliebige zusätzliche Daten in den Blöcken als Überlaufdaten identifiziert. Wenn ein decodierter Block nicht alle seine Koeffizienten enthält, blickt der Prozess zuerst auf zusätzliche Daten im gleichen Makroblock, um die Koeffizienten wiederzugewinnen. Irgendwelche Überlaufdaten, die verbleiben, nachdem der Makroblock vollständig decodiert wurde, sind Segmentüberlaufdaten. Sobald alle Makroblöcke im Segment in dieser Weise verarbeitet wurden, decodiert der Prozess dann die restlichen fehlenden Koeffizienten aus den Segmentüberlaufdaten.
  • Folglich kann beim Transcodieren des DV-Stroms in den MPEG-Strom die Bitrate des MPEG-Stroms sowohl durch Einstellen der Quantisierungsskala als auch durch Auswählen, welche Überlaufbits decodiert werden, gesteuert werden. Drei Optionen stehen entsprechend den drei Ebenen zur Handhabung von Überlaufbits zur Verfügung.
    • 1) Decodieren nur der Bits im zugewiesenen Raum für jeden DCT-Block. Dieses Verfahren erzeugt die niedrigste Bitrate und die niedrigste Datenqualität.
    • 2) Zusätzlich zu (a) Decodieren der Überlaufbits innerhalb jedes Makroblocks, nämlich der in der 2. Ebene verteilten Bits. Dies ergibt eine höhere Datenqualität und Bitrate im MPEG-Strom.
    • 3) Decodieren aller DV-Bits in den Blöcken und aller Überlaufbits. Dieses Verfahren erzeugt die höchste Qualität und höchste Bitrate.
  • III. 248-88-DCT-Umsetzung
  • 2 stellt die Beziehung zwischen einem Block von Pixeln (Block "P") und einem Block (Block "C") von 248-DCT-Koeffizienten dar. Abwechselnde Zeilen von Pixeln werden in zwei Unterblöcke P1 und P2 umgruppiert. Die Blöcke P1 und P2 werden einer 4 × 8-DCT unterzogen, um Blöcke von Koeffizienten C1 und C2 zu liefern. Diese zwei Blöcke werden dann erneut kombiniert, um den Endblock von 248-DCT-Koeffizienten zu ergeben. Mathematisch wird die Operation der Umsetzung von einem Block vom 248-Format-DCT-Koeffizienten in einen Block von 88-DCT-Koeffizienten folgendermaßen hergeleitet:
    • 1) Erhalten von C1 und C2 aus dem Block C unter Verwendung der Gleichungen (4):
      Figure 00240001
      wobei
      Figure 00240002
      ein Skalierungsfaktor ist und H eine konstante Matrix ist, die den festen DC-Versatz kompensiert, CT die Matrix von Koeffizienten vom oberen Teil des Blocks ist und CB die Matrix von Koeffizienten vom unteren Teil des Blocks ist, wie in 2 gezeigt.
    • 2) Berechnen von P1 und P2 durch Durchführen einer inversen 4 × 8-DCT gemäß Gleichung (5): P1 = T4 TC1T8; P2 = T4 TC2T8 (5)wobei T4 und T8 die 4-Punkt- bzw. 8-Punkt-DCT-Transformationsmatrix sind.
    • 3) Berechnen von P durch Umordnen der Zeilen von P1 und P2 gemäß Gleichung (6): P = A1P1 + A2P2 (6)wobei A1 und A2 die Matrizen sind, die beispielsweise eine Umordnungsoperation darstellen.
      Figure 00250001
    • 4) Schließlich Durchführen einer regulären DCT am Pixelblock P, um den 88-DCT-Block C zu erhalten, gemäß Gleichung (7): CT = T8PT8 T (7)
  • Das Folgende fasst die obigen Schritte zusammen.
    Figure 00250002
    wobei F1 = T8A1T4 T; F2 = T8A2T4 T
    Figure 00260001
    K = (F1 + F2)H
  • Im letzten obigen Schritt werden CT und C8 zu einer einzigen Matrix C kombiniert; F und K sind konstante Matrizen, die von F1, F2 und H abgeleitet sind, wie gezeigt.
  • Wie in Gleichung (8) gezeigt, kann diese Operation der Umsetzung von einem Block von Koeffizienten C248 im 248-Format in einen Block von Koeffizienten C88 im 88-Format mathematisch auf Gleichung (9) reduziert werden: C88 = FC248 + K (9)
  • Zuerst wird die Matrix F im Voraus berechnet und dann durch eine ganzzahlige Matrix mit einer Genauigkeit von etwa 4 Dezimalziffern genähert. Diese Matrix ist sehr knapp, d. h. nur ein kleiner Bruchteil ihrer Koeffizienten sind von Null verschieden. Die Matrix K besitzt auch nur den von Null verschiedenen DC-Koeffizienten. Daher kann die durch Gleichung (9) beschriebene Operation auf eine hart codierte Multiplikation mit den von Null verschiedenen Koeffizienten der F-Matrix und eine Addition der DC-Koeffizienten der K-Matrix reduziert werden.
  • IV. Umsetzung der decodierten DV-Koeffizienten in MPEG-2 4:2:2 Profile@Main Level
  • 9 ist ein hierarchisches Ablaufdiagramm, das Details des MPEG-2-Codierungsprozesses zeigt. Dieses Modul erzeugt einen MPEG-2-Videostrom aus einem Block von dequantisierten (oder zumindest teilweise dequantisierten) DCT-Koeffizienten.
  • In Schritt 901 wird der Datenstrom mit einem MPEG-2-Sequenzkopf identifiziert und dann wird in Schritt 902 jeder Bildrahmen durch einen MPEG-Bildkopf identifiziert. Der Prozess der Codierung eines Videorahmens umfasst die Schritte 902914, wie nachstehend beschrieben. Die Codierung von Videorahmen fährt fort, bis in Schritt 903 keine weiteren Videorahmen codiert werden sollen.
  • In Schritt 904 werden die DCT-Blöcke, die sich aus dem teilweisen Decodieren des DV-Signals ergeben haben, angeordnet, um Scheiben von MPEG-Makroblöcken jeweils mit einem Scheibenkopf zu bilden. In der beispielhaften Ausführungsform werden alle Rahmen als MPEG-2-intrarahmencodierte Daten (I-Rahmen) codiert. Folglich wird in Schritt 905 der Rahmen als I-Rahmen markiert. In den Schritten 906914 werden die einzelnen Makroblöcke unter Verwendung der Blöcke, die aus dem DV-Signal decodiert wurden, codiert. In den Schritten 907 und 908 wird der Makroblockkopf in den Bitstrom mit einem ersten Datenwert, der angibt, dass der Makroblock ein rahmencodierter 4:2:2-Makroblock ist, und einem zweiten Datenwert, der einen geeigneten Quantisierungsskalenwert für den Makroblock angibt, eingefügt.
  • In den Schritten 909914 werden die DV-Blöcke codiert und erneut quantisiert. In Schritt 910 wird der DC-Koeffizient codiert. In Schritt 911 werden die AC-Koeffizienten mit variabler Länge codiert. Die Codierung eines einzelnen Blocks fährt fort, bis in Schritt 914 64 Koeffizienten codiert wurden. Wenn dies geschieht, geht die Steuerung zu Schritt 909 über, um den nächsten Block zu codieren. Wenn acht Blöcke in Schritt 909 codiert wurden, geht die Steuerung zu Schritt 906 über, um den nächsten Makroblock zu codieren. Wenn eine Anzahl von Makroblöcken, die Bildpixeln entspricht, die sich über den Videorahmen (eine Scheibe) erstrecken, codiert wurden, geht die Steuerung zu Schritt 904 über, um die nächste Scheibe zu codieren.
  • In Schritt 912 werden die aus dem DV-Strom decodierten DCT-Koeffizienten als DCT-Koeffizienten gemäß dem MPEG-2-Standard erneut quantisiert. Wenn der codierte Block ein 248-Block war, der in einen 88-Block umgesetzt wurde, werden die Koeffizienten vollständig dequantisiert. Wenn jedoch der Block ursprünglich ein 88-Block im DV-Signal war, können die Koeffizienten in Schritt 911 quantisierte DV-Koeffizienten sein.
  • In Schritt 911 werden die vollständig dequantisierten Koeffizienten (rawCoeff) gemäß dem MPEG-Standard in quantisierte Koeffizienten (QuanDCT) unter Verwendung der MPEG-Quantisierungsmatrix (Qmatrix) und von Quantisierungsskalenwerten (Qscale) quantisiert, wie durch Gleichung (10) definiert: Qstep = Qmatrix[i][j] × Qscale QuanDCT = (16·rawCoeff + Sign(rawCoeff)·Qstep/2)/Qstep (10)
  • V. Teilweise Dequantisierung und Neuquantisierung
  • Wie vorstehend dargelegt, können, anstatt die DV-Koeffizienten vollständig zu dequantisieren und dann die MPEG-2-Koeffizienten erneut zu quantisieren, die quantisierten DV-Koeffizienten für Blöcke, die sich ursprünglich im 88-Format befanden, in quantisierte MPEG-2-Koeffizienten durch eine einfache Bitverschiebungsoperation umgesetzt werden. In diesem Umsetzungsprozess wird die MPEG-2-Gewichtungsmatrix so ausgewählt, dass sie der 88-DCT-Blocknummermatrix entspricht, die in 3 gezeigt ist, wobei die Quantisierungsschritte aus der ersten Zeile der DV-Quantisierungstabelle bestimmt werden (d. h. die feinste Schrittgröße). Die quantisierten DV-Koeffizienten können in quantisierte MPEG-2-Koeffizienten durch eine einfache Bitverschiebungsoperation an jedem Koeffizienten umgesetzt werden. Dies ist möglich, da die Quantisierungsschritte im DV-Standard immer eine Potenz von zweimal den feinsten Quantisierungsschritten sind.
  • VI. DCT-Modusauswahl im DCT-Bereich (MPEG-2 4:2:2 (nur I-Rahmen in DV))
  • Das Transcodieren von MPEG-2- in DV folgt aus der Symmetrie, wird jedoch nachstehend mit Bezug auf 10 kurz beschrieben. In der beispielhaften Ausführungsform der Erfindung werden die MPEG-Eingangsdaten auf intrarahmencodiert (I-Rahmen-codiert) und mit einem 4:2:2-Chrominanzformat begrenzt.
  • 10 stellt ein allgemeines Blockdiagramm eines Software-Transcodierers gemäß einem weiteren Aspekt der vorliegenden Erfindung dar. Der Transcodierer nimmt I-Rahmen von MPEG-2-Daten als Eingang und erzeugt rohe DCT-Koeffizienten, die dann verwendet werden, um das entsprechende DV-Signal zu erzeugen. Der Transcodierer quantisiert die MPEG-2-DCT-Koeffizienten erneut in DV-DCT-Koeffizienten und codiert die Koeffizienten als DV-Signal.
  • Wie zu erkennen ist, werden beim teilweisen Decodieren, anstatt die Pixel des Videorahmens zu rekonstruieren, entsprechende DCT-Blöcke in Schritt 101 extrahiert, jeder Makroblock der Scheibe wird decodiert, um DCT-Blöcke zu extrahieren. In Schritt 102 werden die Koeffizienten durch einen Decodierer mit variabler Länge und einen Lauflängendecodierer verarbeitet. In Schritt 103 wird die für jeden der DCT-Blöcke verwendete Quantisierungsschrittgröße bestimmt und die Koeffizienten werden dequantisiert. In Schritt 104 werden die Blöcke von MPEG-DCT-Koeffizienten in Blöcke von DV-Koeffizienten umgesetzt. In Schritt 105 werden die umgesetzten Blöcke in DV-Makroblöcke umgruppiert. In Schritt 106 werden die DV-Makroblöcke quantisiert und in Schritt 107 werden die quantisierten Makroblöcke mit variabler Länge codiert, um das DV-codierte Ausgangssignal zu erzeugen.
  • In der beispielhaften Ausführungsform der Erfindung werden die MPEG-2-Koeffizienten in Schritt 103 vollständig dequantisiert und die Blöcke von Koeffizienten werden dann gemäß dem DV-Standard in Schritt 106 erneut quantisiert. Da sowohl MPEG-2 als auch DV dieselbe Zickzack-Abtastreihenfoige für 88-DCT und dieselbe Lauflängencodierung verwenden, können außerdem die Lauflängen und die Koeffizientenreihenfolge wieder verwendet werden.
  • Unter Verwendung von nur dem I-Rahmen-Modus im MPEG-2-Format wird die Implementierung vereinfacht und die Aufbereitungseinrichtungen bleiben intakt. Der grundlegende Transcodierungsprozess besteht aus dem teilweisen Decodieren von jedem MPEG-2-Rahmen, d. h. bis auf DCT-Koeffizienten, und dann dem erneuten Codieren in das DV-Format. Das teilweise Decodieren umfasst im Allgemeinen:
    • (1) VLC-Decodieren des MPEG-2-Stroms.
    • (2) Dequantisieren der DCT-Koeffizienten
    • (3) Umsetzen von MPEG-Makroblöcken in DV-Makroblöcke
  • Nach dem Dequantisieren der MPEG-Rahmenmodus-DCT-Blöcke ist es erwünscht festzustellen, ob ein spezieller Block als 248-DV-Block codiert werden sollte. In der beispielhaften Ausführungsform der Erfindung wird jeder Rahmen modus-MPEG-Block analysiert, um festzustellen, ob er eine signifikante Bewegung innerhalb Rahmen aufweist. Da zwei DCT-Modi bei der DV-Codierung vorliegen (d. h. 88-Rahmenmodus und 248-Feldmodus), kann eine signifikante Verbesserung sowohl in der zeitlichen als auch räumlichen Auflösung durch Erkennen von MPEG-Blöcken, die zwei Felder kombinieren, die eine signifikante Bewegung innerhalb Rahmen aufweisen, und Codieren dieser Blöcke als 248-Blöcke im DV-Signal erreicht werden.
  • Die Kriterien für das Feststellen, ob ein MPEG-2-Block ein Kandidat für die erneute Codierung als DV-248-Block ist, wird nachstehend beschrieben. Es soll angenommen werden, dass ein Pixel-DCT-Block als P(x, y) (x, y = 0, 1 ... 7) bezeichnet wird, wobei x die vertikale Position ist, y die horizontale Position ist.
  • Im Pixelbereich folgt die Auswahl des DCT-Modus aus Gleichung (12)
  • Figure 00300001
  • Wenn Sum ≥ ein vorbestimmter Schwellenwert ist, wird der 248-DCT-Modus ausgewählt, ansonsten wird der 88-DCT-Modus ausgewählt.
  • Wenn nur 88-DCT-Koeffizienten aus dem MPEG-Strom decodiert werden, ist es unerwünscht, eine IDCT durchzuführen, um die Pixel wiederzugewinnen, und dann den vorstehend beschriebenen Prozess durchzuführen, nur um festzustellen, ob der Block als 248-DCT-Block codiert werden sollte. Vorzugsweise sollten diese Analyse und Auswahl im DCT-Bereich durchgeführt werden. Ein Pixel-DCT-Block Q(x, y) wird beispielsweise derart konstruiert, dass:
    Q(x, y) = a, wenn x gerade ist
    wobei a = Schwellenwert/Sum, wobei der Schwellenwert = 600 und
    Figure 00300002
    Q(x, y) = 0, wenn x ungerade ist
  • Unter Verwendung dieses DCT-Blocks ist Sum = der im Pixelbereich vorstehend definierte vorbestimmte Schwellenwert. Als nächstes wird die 88-DCT an Q(x, y) durchgeführt, um einen DCT-Koeffizienten DQ(m, n) (m, n = 0, 1 ... 7) zu erhalten. Es ist zu beachten, dass nur D(2v + 1,0) von Null verschieden ist (v = 0, 1, 2, 3) und DQ(7,0) signifikant größer ist als seine Gegenstücke in jenen 88-DCT-Blöcken, deren Modus im Pixelbereich ausgewählt wird. Folglich ist es vernünftig, den Absolutwert von DQ(7,0) als Index zu verwenden, um die Modusauswahlentscheidung im DCT-Bereich zu treffen.
  • Wenn der 88-DCT-Koeffizientenblock als D(m, n), m, n = 0, 1 ... 7, bezeichnet wird, ist daher der Auswahlprozess im DCT-Bereich:
    Wenn abs(D(7,0)) ≥ DQ(7,0), wird der 248-DCT-Modus ausgewählt (und die 88-248-DCT-Umsetzung wird durchgeführt), ansonsten wird die 88-DCT ausgewählt (d. h. D(m, n) bleibt intakt).
  • In Schritt 104 untersucht der beispielhafte Prozess jeden decodierten MPEG-Block, um festzustellen, ob er als 88- oder 248-DV-Block codiert werden sollte. Das Verfahren zum Umsetzen von 88-Koeffizientenblöcken in 248-Koeffizientenblöcke folgt aus dem vorstehend beschriebenen Prozess, der verwendet wird, um die 248-Blöcke in 88-Blöcke umzusetzen. Gleichung (13), die die Umsetzung von 88-Blöcken in 248-Blöcke beschreibt, kann aus Gleichung (9) hergeleitet werden. C248 = F–1(C88 – K) = F–1C88 – K88 (13)wobei K88 = F–1K. Die Erfinder haben festgestellt, dass FFT = 1,0002I, wobei I eine 8 mal 8 Identitätsmatrix ist. Folglich gilt F–1 ≈ FT und die Umsetzung von einem 88-Block in einen 248-Block kann durch Gleichung (14) genähert werden. C248 = FTC88 – FTK (14)
  • Folglich kann derselbe Prozess, der verwendet wird, um die 248-Blöcke von Koeffizienten in 88-Blöcke von Koeffizienten umzusetzen, verwendet werden, um 88-Blöcke von Koeffizienten in 248-Blöcke von Koeffizienten umzusetzen.
  • Obwohl die Erfindung hinsichtlich eines Transcodierungsprozesses beschrieben wurde, wird in Erwägung gezogen, dass die Erfindung als Computersoftware implementiert werden kann, die in einem computerlesbaren Träger wie z. B. einer Magnetplatte, einer optischen Platte, einer Hochfrequenzträgerwelle oder einer Audiofrequenzträgerwelle verkörpert ist.

Claims (10)

  1. Verfahren zum Transcodieren eines ersten codierten Videosignals, das unter Verwendung einer Operation einer diskreten Kosinustransformation, die DCT-Operation genannt wird, in ein erstes Videoformat komprimiert worden ist, in ein zweites codiertes Videosignal, das unter Verwendung einer DCT-Operation in ein zweites Videoformat, das von dem ersten Videoformat verschieden ist, komprimiert wird, wobei das erste codierte Videosignal Blöcke mit fester Blockgröße aus Koeffizienten der diskreten Kosinustransformation enthält, die Daten enthalten, die als Überlaufkoeffizientendaten identifiziert werden, die in Bezug auf die Daten, die von der Blockgröße mit fester Länge aufgenommen werden können, zu viel sind, wobei das Verfahren umfasst: Decodieren (7173) des ersten codierten Videosignals, um einen Strom von DCT-Koeffizienten-Blöcken in dem ersten Format zu erhalten; Umformatieren (74, 75) der DCT-Koeffizienten-Blöcke, die aus dem ersten codierten Videosignal erhalten werden, in DCT-Koeffzizienten-Blöcke für das zweite Format; und Codieren (7678) der DCT-Koeffizienten-Blöcke mit dem zweiten Format, um das zweite codierte Videosignal zu erhalten, dadurch gekennzeichnet, dass der Schritt des Umformatierens (74, 75) den Schritt umfasst, bei dem in Reaktion auf ein Datenraten-Steuersignal Überlaufkoeffizienten in den DCT-Koeffizienten-Blöcken des ersten Formats wahlweise ignoriert werden, um die Datenrate des zweiten Signals zu steuern; und dass das Verfahren ferner den Schritt des Überwachens (79) der Datenrate des zweiten Signals umfasst, um das Datenraten-Steuersignal zu erzeugen.
  2. Verfahren nach Anspruch 1, bei dem eine Mehrzahl der DCT-Koeffizienten-Blöcke des ersten codierten Videosignals eine Mehrzahl von Koeffizienten enthält, die in Übereinstimmung mit einer Zickzack-Abtastung geordnet sind, und der Schritt des Umformatierens der DCT-Koeffizienten-Blöcke, die aus dem ersten codierten Videosignal erhalten werden, in DCT-Koeffizienten-Blöcke mit dem zweiten Format den Schritt des Beibehaltens der Zickzack- Abtastreihenfolge der mehreren Koeffizienten für eine entsprechende Mehrzahl von Blöcken von DCT-Koeffizienten in dem zweiten Format umfasst.
  3. Verfahren nach Anspruch 2, bei dem eine Mehrzahl der DCT-Koeffizienten-Blöcke des ersten codierten Videosignals lauflängencodiert ist und der Schritt des Umformatierens der DCT-Koeffizienten-Blöcke, die aus dem ersten codierten Videosignal erhalten werden, in DCT-Koeffizienten-Blöcke mit dem zweiten Format den Schritt des Beibehaltens der Lauflängencodierung der Mehrzahl von Koeffizienten für eine entsprechende Mehrzahl von Blöcken von DCT-Koeffizienten in dem zweiten Format umfasst.
  4. Verfahren nach Anspruch 1, bei dem: das erste Videosignal gemäß einem digitalen Videostandard, der als DV-Standard bezeichnet wird und eine Quantisierungstabelle besitzt, die veränderliche Quantisierungsschrittgrößen definiert, codiert ist und das zweite Signal gemäß einem "Moving Pictures Expert Group"-Standard, der als MPEG-Standard bezeichnet wird und eine Quantisierungsmatrix besitzt, codiert ist; und der Schritt des Umformatierens der DCT-Koeffizienten-Blöcke, die aus dem DV-Videosignal erhalten werden, in DCT-Koeffizienten-Blöcke für das MPEG-Videosignal die folgenden Schritte umfasst: Setzen der MPEG-Quantisierungsmatrix, damit sie einer feinsten Quantisierungsschrittgröße in der DV-Quantisierungstabelle entspricht; und Multiplizieren quantisierter DCT-Koeffizienten von dem DV-Videosignal mit entsprechenden Faktoren, um entsprechende quantisierte DCT-Koeffizienten für das MPEG-Videosignal zu erzeugen.
  5. Verfahren nach Anspruch 4, bei dem die jeweiligen Faktoren jeweils Zweierpotenzen sind und der Schritt des Multiplizierens der quantisierten DCT-Koeffizienten mit den jeweiligen Faktoren den Schritt des Verschiebens jedes DCT-Koeffizienten um eine Anzahl von Bitpositionen, die der jeweiligen Zweierpotenz entspricht, umfasst.
  6. Verfahren nach Anspruch 1, bei dem: das erste Videosignal gemäß einem digitalen Videostandard codiert ist und das zweite Videosignal gemäß einem "Moving Pictures Expert Group"-Standard codiert ist; die DCT-Blöcke des DV-Signals entweder in einem 248-Format oder in einem 88-Format codiert sind und das Verfahren ferner den Schritt des Umformatierens der DV-Blöcke mit dem 248-Format in DV-Blöcke mit dem 88-Format gemäß der folgenden Gleichung: C88 = FC248 + Kumfasst, wobei C88 der Block der DV-Koeffizienten mit dem 88-Format ist, C248 der Block der DV-Koeffizienten mit dem 248-Format ist und F ein Vektor ist, der durch die folgende Gleichung definiert ist:
    Figure 00350001
    wobei a = 1024/1448, F1 = T8A1TT_4, F2 = T8A2TT_4, T8 die 8-Punkt-DCT-Transformation ist, T4 die 4-Punkt-DCT-Transformationsmatrix ist und A1 und A2 die folgenden Matrizen sind:
    Figure 00350002
    K = (F1 + F2)Hwobei H eine konstante Matrix ist, die einen festen Gleichspannungsversatz zwischen dem DV-Koeffizienten und den MPEG-2-Koeffizienten kompensiert.
  7. Computerlesbarer Träger, der Computerprogrammbefehle enthält, wobei die Computerprogrammbefehle einen Universalcomputer dazu veranlassen, ein Verfahren nach einem der vorhergehenden Ansprüche auszuführen.
  8. Verfahren nach einem der Ansprüche 1 bis 5, bei dem das erste codierte Videosignal gemäß einem digitalen Videostandard in das zweite codierte Videosignal, das gemäß einem "Moving Pictures Expert Group"-Standard codiert ist, codiert worden ist, wobei das erste codierte Videosignal Makroblock-Segmente besitzt, wobei jeder Makroblock mehrere Blöcke mit fester Blockgröße aus Koeffizienten einer diskreten Kosinustransformation enthält, wobei wenigstens ein Block von DCT-Koeffizienten Überlaufkoeffizientendaten enthält, die in Bezug auf die Daten, die von der Blockgröße mit fester Länge aufgenommen werden können, zu viel sind, wobei die überschüssigen Daten entweder a) in einem nicht verwendeten Raum in anderen Blöcken des Makroblocks, der den wenigstens einen Block enthält, oder b) in einem nicht verwendeten Raum in anderen Makroblöcken des Segments, das den wenigstens einen Block enthält, gespeichert sind, wobei der Decodierungsschritt den folgenden Schritt umfasst: Erhalten einer Mehrzahl von Listen von Überlauf-Makroblockkoeffizienten und einer Liste von Überlaufsegmentkoeffizienten; und der Schritt des wahlweisen Ignorierens von Überlaufkoeffizienten in den DCT-Koeffizienten-Blöcken des DV-Formats den Schritt des wahlweisen Setzens auf null entweder a) der Koeffizienten in den mehreren Listen von Überlauf-Makroblockkoeffizienten oder b) von Koeffizienten in der Liste von Überlaufsegmentkoeffizienten.
  9. Verfahren nach Anspruch 8, bei dem der Schritt des Umformatierens der DCT-Koeffizienten-Blöcke, die von dem DV-codierten Videosignal erhalten werden, in DCT-Koeffizienten-Blöcke für das MPEG-Format die folgenden Schritte umfasst: Setzen auf null lediglich der Koeffizienten in der Liste von Überlaufsegmentkoeffizienten in Reaktion auf das Datenratensteuersignal, das einen ersten Wert besitzt; und Setzen auf null sowohl der Koeffizienten in der Liste von Überlaufsegmentkoeffizienten als auch der Koeffizienten in den mehreren Listen von Überlauf-Makroblockkoeffizienten in Reaktion auf das Datenratensteuersignal, das einen von dem ersten Wert verschiedenen zweiten Wert besitzt.
  10. Verfahren nach Anspruch 8, bei dem: der Schritt des Codierens der DCT-Koeffizienten-Blöcke im MPEG-Format, um das zweite codierte Videosignal zu erhalten, den Schritt des Quantisierens der DCT-Koeffizienten-Blöcke im MPEG-Format in Übereinstimmung mit einem Quantisierungsskalenfaktor, um Ausgangsdaten zu erzeugen, die quantisierte Koeffizientenwerte repräsentieren, umfasst; und der Schritt des Umformatierens der DCT-Koeffizientenblöcke, die aus dem DV-codierten Videosignal erhalten werden, in DCT-Koeffizienten-Blöcke für das MPEG-Format den Schritt des Einstellens des Quantisierungsskalenfaktors, um die Ausgangsdaten des MPEG-Codierungsschrittes hinsichtlich der Bitanzahl zu verringern, umfasst.
DE60125301T 2000-10-03 2001-09-13 Videosignaltranskodierung Expired - Lifetime DE60125301T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US677901 2000-10-03
US09/677,901 US6944226B1 (en) 2000-10-03 2000-10-03 System and associated method for transcoding discrete cosine transform coded signals

Publications (2)

Publication Number Publication Date
DE60125301D1 DE60125301D1 (de) 2007-02-01
DE60125301T2 true DE60125301T2 (de) 2007-06-21

Family

ID=24720549

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60125301T Expired - Lifetime DE60125301T2 (de) 2000-10-03 2001-09-13 Videosignaltranskodierung

Country Status (4)

Country Link
US (1) US6944226B1 (de)
EP (1) EP1195993B1 (de)
JP (1) JP2002199402A (de)
DE (1) DE60125301T2 (de)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4297235B2 (ja) * 2000-03-17 2009-07-15 パナソニック株式会社 信号記録装置、信号記録方法、信号再生装置、信号再生方法、および記録媒体
US7376341B2 (en) * 2001-07-12 2008-05-20 Thomson Licensing Modifying video signals by converting non-intra pictures
US7262806B2 (en) * 2001-11-21 2007-08-28 Broadcom Corporation System and method for aligned compression of interlaced video
US7042942B2 (en) * 2001-12-21 2006-05-09 Intel Corporation Zigzag in-order for image/video encoder and decoder
US8284844B2 (en) 2002-04-01 2012-10-09 Broadcom Corporation Video decoding system supporting multiple standards
US7277486B2 (en) * 2002-05-03 2007-10-02 Microsoft Corporation Parameterization for fading compensation
US7609767B2 (en) * 2002-05-03 2009-10-27 Microsoft Corporation Signaling for fading compensation
US7009655B2 (en) * 2002-07-23 2006-03-07 Mediostream, Inc. Method and system for direct recording of video information onto a disk medium
KR100556357B1 (ko) * 2002-12-04 2006-03-03 엘지전자 주식회사 디지털 비디오 포맷을 지원하는 엠펙 비디오 디코딩 시스템
EP1445958A1 (de) * 2003-02-05 2004-08-11 STMicroelectronics S.r.l. Quanitizierungsverfahren und System zum Beispiel für MPEG-Applikationen und Computerprogramm dafür
US7715482B2 (en) * 2003-08-14 2010-05-11 Broadcom Corporation System and method for generating pseudo MPEG information from digital video information
US7489362B2 (en) 2003-03-04 2009-02-10 Broadcom Corporation Television functionality on a chip
WO2004112400A1 (en) * 2003-06-16 2004-12-23 Matsushita Electric Industrial Co., Ltd. Coding apparatus, coding method, and codebook
US20050036549A1 (en) * 2003-08-12 2005-02-17 Yong He Method and apparatus for selection of scanning mode in dual pass encoding
US8009739B2 (en) * 2003-09-07 2011-08-30 Microsoft Corporation Intensity estimation/compensation for interlaced forward-predicted fields
ES2363772T3 (es) * 2003-09-23 2011-08-16 Thomson Licensing Técnica de adición de ruido de confort video.
EP1569458A1 (de) * 2004-02-12 2005-08-31 Matsushita Electric Industrial Co., Ltd. Kodierung und Dekodierung von Videobildern mit nichtlinearer Quantisierung
FR2867633B1 (fr) * 2004-03-10 2006-07-14 Canon Kk Procedes et dispositifs de codage et de transcodage de donnees
US8731054B2 (en) * 2004-05-04 2014-05-20 Qualcomm Incorporated Method and apparatus for weighted prediction in predictive frames
US8140849B2 (en) * 2004-07-02 2012-03-20 Microsoft Corporation Security for network coding file distribution
US7756051B2 (en) * 2004-07-02 2010-07-13 Microsoft Corporation Content distribution using network coding
DE102004038110B3 (de) * 2004-08-05 2005-12-29 Siemens Ag Verfahren zum Codieren und Decodieren, sowie Codier- und Decodiervorrichtung zur Videocodierung
KR100586026B1 (ko) * 2005-03-25 2006-06-02 한국전자통신연구원 디지털 홀로그램 부호화 또는/및 복호화 장치 및 그 방법
JP4251650B2 (ja) * 2005-03-28 2009-04-08 株式会社カシオ日立モバイルコミュニケーションズ 画像処理装置及びプログラム
US20070071026A1 (en) * 2005-09-23 2007-03-29 Rivulet Communications, Inc. Compressed video packet scheduling system
CN101401435A (zh) * 2006-02-13 2009-04-01 株式会社东芝 运动图像编码/译码方法、装置以及程序
CN100442853C (zh) * 2006-06-01 2008-12-10 上海交通大学 游程解码、反扫描、反量化和反变换的方法及装置
US20080144505A1 (en) * 2006-11-03 2008-06-19 Michael Anthony Isnardi Method and Apparatus for Bitrate Reduction
KR100902007B1 (ko) * 2007-02-28 2009-06-11 삼성전자주식회사 비디오 스트림 처리 장치
US20100091842A1 (en) * 2007-10-19 2010-04-15 Hiroshi Ikeda Coding rate conversion apparatus, coding rate conversion method, and integrated circuit
US8022367B2 (en) * 2009-05-21 2011-09-20 Liberty Hardware Mfg. Corp. Multipoint sensing system
US8731373B2 (en) * 2009-06-30 2014-05-20 Rovi Technologies Corporation Managing and editing stored media assets
US8891627B1 (en) 2011-04-18 2014-11-18 Google Inc. System and method for coding video using color segmentation
US9510019B2 (en) 2012-08-09 2016-11-29 Google Inc. Two-step quantization and coding method and apparatus
US20190090005A1 (en) * 2017-09-21 2019-03-21 Comcast Cable Communications, Llc Low Latency Adaptive Bitrate Linear Video Delivery System

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3428033B2 (ja) * 1992-02-19 2003-07-22 株式会社日立製作所 ディジタルvtr
US5940130A (en) * 1994-04-21 1999-08-17 British Telecommunications Public Limited Company Video transcoder with by-pass transfer of extracted motion compensation data
JPH0991463A (ja) 1995-07-14 1997-04-04 Matsushita Electric Ind Co Ltd 画像編集装置
JPH09247614A (ja) 1996-03-14 1997-09-19 Matsushita Electric Ind Co Ltd 画像信号処理装置
US6141447A (en) * 1996-11-21 2000-10-31 C-Cube Microsystems, Inc. Compressed video transcoder
WO1999023834A1 (en) 1997-11-05 1999-05-14 Sony Corporation Method for converting digital signal and apparatus for converting digital signal
US6507673B1 (en) * 1998-03-06 2003-01-14 Divio, Inc. Method and apparatus for video encoding decision
US6219457B1 (en) * 1998-05-26 2001-04-17 Silicon Graphics, Inc. Method and system for decoding data encoded in a variable length code word
US6618442B1 (en) * 1998-12-29 2003-09-09 Intel Corporation Method and apparatus for transcoding digital video signals
EP1155573A1 (de) 1999-02-25 2001-11-21 Sarnoff Corporation Transkodierung zwischen unterschiedlichen dct-basierten bildkompressionstandards
US6483876B1 (en) * 1999-12-28 2002-11-19 Sony Corporation Methods and apparatus for reduction of prediction modes in motion estimation

Also Published As

Publication number Publication date
DE60125301D1 (de) 2007-02-01
JP2002199402A (ja) 2002-07-12
EP1195993B1 (de) 2006-12-20
EP1195993A3 (de) 2003-08-06
EP1195993A2 (de) 2002-04-10
US6944226B1 (en) 2005-09-13

Similar Documents

Publication Publication Date Title
DE60125301T2 (de) Videosignaltranskodierung
DE60305325T2 (de) System und verfahren zur ratenverzerrungsoptimierten datenpartitionierung zur videocodierung unter verwendung von rückwärtsadaption
DE69535228T2 (de) Bildumsetzungsvorrichtung
DE69738494T2 (de) Videokodierungs- und Videodekodierungsvorrichtung
DE69913990T2 (de) System zum editieren komprimierter bildsequenzen
DE60114812T2 (de) Videoformat konvertierung und transkodierung von mpeg-2 in mpeg-4
EP0833517B1 (de) Feste oder adpative unverschachtelte Transformationskodierung für Bild- und Intravideokodierung
EP0687111B1 (de) Verfahren zur Codierung/Decodierung eines Datenstroms
DE69937462T2 (de) Effiziente macroblockheaderkodierung zur videokompression
DE69233620T2 (de) Adaptive Kodierung und Dekodierung von Vollbildern und Halbbildern von Videosignalen
DE69633129T2 (de) Waveletbaum-bildcoder mit überlappenden bildblöcken
DE19758761B4 (de) Verfahren zum Intrakodieren eines von einer Pixelmatrix gebildeten Bildes
DE60309375T2 (de) Parametrisierung für verlauf-kompensation
DE69813349T2 (de) Vorrichtung zur Kontrolle der Datenmenge und Kodierer dieselbige anwendend
DE10392268T5 (de) Auf einem Strom basierender Bitraten-Codeumsetzer für MPEG-codiertes Video
WO2008140949A1 (en) Methods and systems for rate-distortion optimized quantization of transform blocks in video encoding
US6865229B1 (en) Method and apparatus for reducing the “blocky picture” effect in MPEG decoded images
DE60300591T2 (de) Verfahren und Vorrichtung zur Dekomprimierung von Bildern durch Transkodierung in komprimierte Bewegtbilder
DE60309039T2 (de) Verfahren und vorrichtung zur optimierung der bildschärfe während der kodierung
JP4541896B2 (ja) 多重記述符合化のための装置及び方法
DE10204617B4 (de) Verfahren und Vorrichtungen zur Kompression und Dekompression eines Videodatenstroms
KR20010078393A (ko) 스케일 가능한 코딩방법
DE10296787T5 (de) Selektive Prädikation für ein Intra-Codieren eines Videodatenblocks
DE60210757T2 (de) Vorrichtung zur videokodierung und -aufzeichnung
DE69909880T2 (de) Dekodierung eines komprimierten digitalen Bildsignals

Legal Events

Date Code Title Description
8364 No opposition during term of opposition