DE69825710T2 - Audio-Video Dekodierungssystem - Google Patents

Audio-Video Dekodierungssystem Download PDF

Info

Publication number
DE69825710T2
DE69825710T2 DE69825710T DE69825710T DE69825710T2 DE 69825710 T2 DE69825710 T2 DE 69825710T2 DE 69825710 T DE69825710 T DE 69825710T DE 69825710 T DE69825710 T DE 69825710T DE 69825710 T2 DE69825710 T2 DE 69825710T2
Authority
DE
Germany
Prior art keywords
state
header analysis
data
processor
audio
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
DE69825710T
Other languages
English (en)
Other versions
DE69825710D1 (de
Inventor
Shigeki Neyagawa-shi Fujii
Shintarou Amagasaki-shi Nakatani
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 Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of DE69825710D1 publication Critical patent/DE69825710D1/de
Application granted granted Critical
Publication of DE69825710T2 publication Critical patent/DE69825710T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/44Receiver circuitry for the reception of television signals according to analogue transmission standards
    • H04N5/60Receiver circuitry for the reception of television signals according to analogue transmission standards for the sound signals
    • 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
    • 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/423Methods 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 characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Description

  • ALLGEMEINER STAND DER TECHNIK
  • 1. Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft Digitalsignalverarbeitung und insbesondere eine Medienverarbeitungsvorrichtung, die komprimierte Videodaten und komprimierte Audiodaten entkomprimiert und auch Videodaten und Audiodaten zum Durchführen von Grafikverarbeitung komprimieren kann.
  • 2. Beschreibung des Standes der Technik
  • Bei der Entwicklung von Komprimierungs-/Entkomprimierungs-Techniken für digitale Videodaten und den Verbesserungen in der LSI- (Large Scale Integration/Großintegrations-) Technologie in den vergangenen Jahren gelangten verschiedene Medienverarbeitungsschaltungen zu hoher Wertschätzung. Beispiele dafür sind ein Decoder, der komprimierte Video- und Audiodaten decodiert (entkomprimiert), eine Codiereinrichtung, die Video- und Audiodaten komprimiert und ein Grafikprozessor, der Grafiken verarbeitet.
  • Als ein Beispiel für herkömmliche Techniken decodiert ein AV- (audiovisueller) Decoder Videodaten und Audiodaten, die nach MPEG- (Moving Pictures Expert Group) Standard komprimiert wurden. Dieser AV-Decoder verwendet zwei Prozessoren, wobei ein Prozessor Videodaten decodiert, und der andere Prozessor Audiodaten decodiert.
  • 1 zeigt eine Darstellung der Decodierverarbeitung, die von diesem AV-Decoder durchgeführt wird. In 1 stellt die vertikale Achse die Zeit dar, und die horizontale Achse stellt die jeweilige rechnerische Komplexität der Video-Decodierung dar, die von dem Videoprozessor durchgeführt wird und der Audio-Decodierung, die von dem Audioprozessor durchgeführt wird.
  • Der Videoprozessor führt alternativ eine sequenzielle Verarbeitung für komprimierte Videodaten in Makroblockeinheiten und eine Decodierverarbeitung für die tatsächlichen Videodaten durch. Der Teil der sequenziellen Verarbeitung der Video-Decodierung analysiert den Header-Teil eines Makroblocks, der verarbeitet wird, und wird daher im Folgenden als die "Header-Analyse" bezeichnet. Die Decodierverarbeitung decodiert die komprimierten Videodaten in einem Makroblock und wird daher im Folgenden als "Block-Decodierung" bezeichnet. Von diesen erfordert die Header-Analyse eine Beurteilung verschiedener Zustände und weist eine geringe rechnerische Komplexität auf. Die Block-Decodierung decodiert die Codes mit variabler Länge in einem MPEG-Strom unter Verwendung der verschiedenen Typen von Daten, die durch die Header-Analyse erzeugt werden, und führt auch eine IQ- (Inverse Quantization/Umkehrquantisierung) und IDCT- (Inverse Discrete Cosine Transform/umgekehrte diskrete Kosinustransformation) Verarbeitung in Blockeinheiten aus. Diese bedeutet, dass die Block-Decodierung eine hohe rechnerische Komplexität aufweist.
  • Der Audioprozessor führt alternativ eine sequenzielle Verarbeitung für komprimierte Audiodaten und eine Decodierverarbeitung für die tatsächlichen Audiodaten aus.
  • Die vorher genannte Technik weist die folgenden Probleme auf.
  • Das erste Problem sind die Herstellungskosten dieses AV-Decoders. Insbesondere der Videoprozessor muss ein Hochleistungsprozessor sein, der eine Echtzeitverarbeitung an einer große Menge von Videodaten durchführen kann. Dies bedeutet, dass ein Prozessor mit einer hohen Taktgeschwindigkeit verwendet werden muss. Solche Prozessoren sind teuer.
  • Wenn die vorher beschriebene Medienverarbeitungsvorrichtung in einem AV-Decoder verwendet wird, der in einem digitalen (Satelliten-) Rundfunkempfänger (der als STB (Set Top Box) bezeichnet wird) oder einem DVD- (Digital Versatile/Video Disc) Spieler bereitgestellt wird, werden MPEG-Ströme eingegeben, die auf einer Rundfunkwelle empfangen oder von einer Diskette ausgelesen werden. Der AV-Decoder decodiert diese MPEG-Ströme und gibt Videosignale und Audiosignale jeweils an eine Anzeigevorrichtung und Lautsprecher aus. Diese Reihe von Prozessen erfordert eine enorme Menge an Verarbeitung. Aus diesem Grund bestand ein zunehmender Bedarf hinsichtlich ei ner Medienverarbeitungsvorrichtung, die diese enorme Menge von Verarbeitungen effizient durchführen kann.
  • Das Dokument zum Stand der Technik EP-A-0 710 029 offenbart einen Signalprozessor, der eine Vielzahl von Verarbeitungsschaltungen zum Durchführen verschiedener Arten von Verarbeitung umfasst, die sich voneinander unterscheiden. Der Prozessor enthält des Weiteren eine Speicherschaltung, die allgemein für jeweilige Verarbeitungsschaltungen bereitgestellt ist, und eine Steuerschaltung zum Durchführen einer Zugriffssteuerung zwischen den jeweiligen Verarbeitungsschaltungen und der Speicherschaltung. Insbesondere offenbart das Dokument Verarbeitungsschaltungen, die jeweils einen Audio-Verarbeitungsblock zum Durchführen der Audio-Decodierung und einen Codier-/Decodierblock zum Durchführen der Video-Decodierung enthalten.
  • EP-A-0 714 213 offenbart einen MPEG2-Transport-Decoder und beschreibt insbesondere die Anwendungen von Unterbrechungen bei der Audio- und Video-Decodierung.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Es ist eine erste Aufgabe der vorliegenden Erfindung, eine Medienverarbeitungsvorrichtung bereitzustellen, die eine Reihe von Prozessen ausführt, die sich aus der Eingabe von Stromdaten, die komprimierte Video- und komprimierte Audiodaten ausdrücken, der Decodierung der Daten und der Ausgabe des Ergebnisses zusammensetzen, wobei die Medienverarbeitungsvorrichtung eine hohe Leistung aufweist, ohne mit einer hohen Taktgeschwindigkeit zu arbeiten. Dadurch werden die Herstellungskosten für die Medienverarbeitungsvorrichtung reduziert.
  • Die erste Aufgabe kann durch eine Medienverarbeitungsvorrichtung erreicht werden, die einen Datenstrom decodiert, der komprimierte Audiodaten und komprimierte Videodaten enthält, um Videodaten und Audiodaten zu erhalten, wobei die Medienverarbeitungsvorrichtung Folgendes umfasst: eine sequenzielle Verarbeitungseinheit zum Durchführen eines Header-Analyseprozesses an den komprimierten Videodaten, und einen Audio-Decodierprozess an den komprimierten Audiodaten, wobei der Header-Analyseprozess vor dem Audio-Decodierprozess Priorität erhält und eine Header-Analyse für einen vorbestimmten Block ist, der in den komprimierten Videodaten in dem Datenstrom enthal ten ist, und der Audio-Decodierprozess ein Decodierprozess für die komprimierten Audiodaten und eine Routinenverarbeitungseinheit zum Durchführen eines Decodierprozesses für die komprimierten Videodaten neben dem Header-Analyseprozess ist, wobei die Routinenverarbeitungseinheit parallel zur sequenziellen Verarbeitungseinheit arbeitet.
  • Bei der angegebenen Konstruktion wird die Verarbeitungslast des Decodierens von komprimierten Videodaten gemeinsam von der sequenziellen Verarbeitungseinheit und der Routinenverarbeitungseinheit getragen, so dass die Verarbeitungslast geringer ist als wenn die gesamte Decodierung wie herkömmlicherweise von einem einzelnen Prozessor verarbeitet würde. Damit wird die gesamte Verarbeitungseffizienz gesteigert. Die sequenzielle Verarbeitungseinheit führt den Header-Analyseprozess mit Vorrang vor dem Audio-Decodierprozess aus, so dass der Decodierprozess der Routinenverarbeitungseinheit, der auf der Header-Analyse basiert, ohne Verzögerung durchgeführt wird. Dies beschleunigt die gesamte Verarbeitung der Medienverarbeitungsvorrichtung. Der Audio-Decodierprozess erfordert beträchtlich weniger Verarbeitung als der Decodierprozess für die komprimierten Videodaten und wird von der sequenziellen Verarbeitungseinheit zwischen Header-Analyseprozessen durchgeführt, was ebenfalls zu einer höheren Verarbeitungseffizienz führt. Infolgedessen erreicht die Medienverarbeitungsvorrichtung der vorliegenden Erfindung eine hohe Leistung, ohne mit einer hohen Taktfrequenz zu arbeiten, wodurch die Herstellungskosten der Medienverarbeitungsvorrichtung reduziert werden.
  • Hier kann die sequenzielle Verarbeitungseinheit einen Prozessor und einen Speicher umfassen, der einen Header-Analysethread, einen Audio-Decodierthread und einen Thread-Umschaltthread speichert, wobei der Prozessor die Threads in dem Speicher abarbeitet, um Folgendes auszuführen: eine Header-Analyseeinheit, die den Header-Analyseprozess als ein Ergebnis dessen ausführt, dass der Prozessor den Header-Analysethread in dem Speicher abarbeitet; eine Audio-Decodiereinheit, die den Audio-Decodierprozess als ein Ergebnis dessen ausführt, dass der Prozessor den Audio-Decodierprozess in dem Speicher abarbeitet; und eine Steuereinheit, die ein Umschalten eines Threads steuert, der dem Prozessor zugewiesen ist, so dass der Header-Analyseprozess Vorrang vor dem Audio-Decodierprozess erhält, wobei die Steuereinheit das Abarbeiten des Steuer-Threads durch den Prozessor ausführt.
  • Bei der gegenwärtigen Konstruktion weist die Steuereinheit dem Prozessor Threads zu, so dass der Header-Analyseprozess mit Priorität abgearbeitet wird. Infolgedessen schaltet die Medienverarbeitungsvorrichtung zwischen dem Header-Analyseprozess und dem Audio-Decodierprozess um und kann somit Datenströme mit hoher Effizienz verarbeiten.
  • Hier kann die Steuereinheit Folgendes umfassen: eine Unterbrechungserkennungseinheit zum Erkennen des Auftretens von irgendeiner von einer Vielzahl von Unterbrechungen, die ein Umschalten von Threads verursacht; eine Zustandsmanagementeinheit zum Verwalten eines Zustands der Header-Analyseeinheit und eines Zustands der Audio-Decodiereinheit auf der Basis eines Typs einer erkannten Unterbrechung, wobei jeder Zustand einer von einem Ausführungszustand, einem Wartezustand und einem Bereitschaftszustand ist; und eine Umschalteinheit zum Umschalten, wenn sich der Zustand der Header-Analyseeinheit von dem Wartezustand in den Bereitschaftszustand geändert hat, wobei dem Prozessor für den Header-Analysethread ein Thread zugewiesen ist.
  • Bei der angegebenen Konstruktion weist die Steuereinheit eine Unterbrechungserkennungseinheit, eine Zustandsmanagementeinheit und eine Umschalteinheit auf. Die Unterbrechungserkennungseinheit erkennt Unterbrechungen. Die Zustandsmanagementeinheit verwaltet Änderungen in den Zuständen des Header-Analyseprozesses und des Audio-Decodierprozesses, die durch Unterbrechungen verursacht werden, die von der Unterbrechungserkennungseinheit erkannt werden. Die Umschalteinheit weist den Header-Analysethread zu dem Prozessor zu, wenn sich der Zustand der Header-Analyseeinheit in den Bereitschaftszustand ändert. Infolgedessen ist die Steuereinheit ein System, das durch Unterbrechungen aktiviert wird, so dass es nicht notwendig ist, konstant zu überwachen, welcher von der Header-Analyseeinheit und dem Audio-Decodierprozess in den Ausführungszustand gesetzt werden soll.
  • Hier kann die Zustandsmanagementeinheit Folgendes umfassen: eine Zustandstabelle zum Speichern des Zustands der Header-Analyseeinheit und des Zustands der Audio-Decodiereinheit; und eine Zustandsaktualisierungseinheit zum Aktualisieren der Zustandstabelle basierend auf dem Typ der erkannten Unterbrechung.
  • Hier kann der vorbestimmte Block ein Makroblock sein, der in den komprimierten Videodaten in dem Datenstrom enthalten ist, und die Unterbrechungserkennungseinheit ist in der Lage, einen Unterbrechungstyp 1 und einen Unterbrechungstyp 2 zu erkennen, wobei der Unterbrechungstyp 1 von der Header-Analyseeinheit nach Abschließen des Header-Analyseprozesses für einen Makroblock ausgegeben wird, und der Unterbrechungstyp 2 von der Routinenverarbeitungseinheit nach Abschließen des Decodierprozesses für einen Makroblock ausgegeben wird, wobei die Zustandsaktualisierungseinheit den Zustand der Header-Analyseeinheit in der Zustandstabelle in den Wartezustand ändert, wenn die Unterbrechungserkennungseinheit den Unterbrechungstyp 1 erkannt hat, und den Status des Zustands der Header-Analyseeinheit in der Zustandtabelle in den Bereitschaftszustand ändert, wenn die Unterbrechungserkennungseinheit den Unterbrechungstyp 2 erkannt hat.
  • Wenn bei der angegebenen Konstruktion die Unterbrechungserkennungseinheit den Unterbrechungstyp 1 oder 2 erkennt, aktualisiert die Zustandsaktualisierungstabelle den Zustand der Header-Analyseeinheit in der Zustandstabelle in den Wartezustand oder den Bereitschaftszustand. Wenn der Zustand des Header-Analyseprozesses in den Bereitschaftszustand geändert wurde, weist die Schalteinheit dem Prozessor den Header-Analysethread zu. Dies bedeutet, dass, wenn die Decodierung des Header-Teils von der Routinenverarbeitungseinheit abgeschlossen worden ist, der Header-Analyseprozess kurz darauf beginnen wird. Dies verbessert die Verarbeitungseffizienz.
  • Wenn sich die Header-Analyseeinheit hier in dem Wartezustand befindet, und sich der Zustand der Audio-Decodiereinheit von dem Wartezustand in den Bereitschaftszustand geändert hat, kann die Umschalteinheit einen Thread, der dem Prozessor zugewiesen ist, in den Audio-Decodierthread umschalten.
  • Wenn bei der angegebenen Konstruktion der Zustand der Header-Analyseeinheit zum Bereitschaftszustand wird, weist die Umschalteinheit den Header-Analysethread dem Prozessor zu, selbst wenn sich die Audio-Decodiereinheit gegenwärtig in dem Ausführungszustand befindet. Dies bedeutet, dass der Header-Analyseprozess mit Vorrang vor dem Audio-Decodierprozess abgearbeitet wird, wodurch sich die gesamte Verarbeitungseffizienz der Medienverarbeitungsvorrichtung erhöht.
  • Hier kann die Routinenverarbeitungseinheit Folgendes enthalten: eine Datenkonvertierungseinheit zum Durchführen einer Decodierung variabler Länge an den komprimierten Videodaten; eine Recheneinheit zum Durchführen einer Umkehrquantisierung und einer umgekehrten diskreten Kosinustransformation für Bildblöcke, die sich aus der Decodierung variabler Länge ergeben; und eine Synthetisiereinheit zum Durchführen eines Bewegungskompensationsprozesses durch Synthetisieren von Bildblöcken, die sich aus der umgekehrten diskreten Kosinustransformation mit zuvor decodierten Bildblöcken ergeben, um decodierte Bilddaten zu erzeugen, und die Header-Analyseeinheit kann enthalten: eine Einholeinheit zum Einholen von Header-Informationen, die einer Decodierung variabler Länge unterzogen wurden, durch Ausgeben einer Anzeige an die Datenkonvertierungseinheit; eine Analyseeinheit zum Durchführen einer Analyse an den eingeholten Header-Informationen und anschließendes Berechnen der Bewegungsvektoren; eine Benachrichtigungseinheit zum Benachrichtigen der Routinenverarbeitungseinheit über Parameter, die durch die Analyse der Analyseeinheit erhalten wurden; und eine Startanzeigeeinheit zum Ausgeben einer Startanzeige an die Datenkonvertierungseinheit an einem vorbestimmten Punkt während der Header-Analyseverarbeitung, wobei die Startanzeige veranlasst, dass die Datenkonvertierungseinheit eine Decodierung variabler Länge an komprimierten Bilddaten neben den Header-Informationen startet.
  • Bei der angegebenen Konstruktion wird die Decodierverarbeitung der komprimierten Videodaten zwischen der Analyseeinheit und der Routinenverarbeitungseinheit aufgeteilt. In der Routinenverarbeitungseinheit wird die auf eine Routinenberechnung von Daten konzentrierte Verarbeitung von einer Pipeline-Architektur durchgeführt, welche die Datenkonvertierungseinheit, die Recheneinheit und die Synthetisiereinheit enthält. In der Header-Analyseeinheit führt die Analyseeinheit die Header-Analyse durch, die verarbeitet, was zu einer Zustandsbeurteilung gehört, und die Benachrichtigungseinheit benachrichtigt die Routinenverarbeitungseinheit über die Parameter, die als Analyseergebnis erhalten wurden. Dies bedeutet, dass der Decodierprozess für die komprimierten Videodaten basierend auf der Art der Verarbeitung in Routinenberechnungsverarbeitung und Zustandsbeurteilungsverarbeitung aufgeteilt wird, wodurch die Verarbeitung durch die Routinenverarbeitungseinheit bei hoher Geschwindigkeit durchgeführt werden kann. Da die Header-Analyseeinheit der Datenkonvertierungseinheit den Start einer Decodierung variabler Länge für Blöcke an einem vorbestimmten Punkt während der Analyse anzeigt, kann die Routinenverarbeitungseinheit eher mit ihrer Verarbeitung beginnen. Dadurch wird die Gesamtzeit reduziert, die von der Decodierverarbeitung, (der kombinierten Verarbeitung der sequenziellen Verarbeitungseinheit und der Routinenverarbeitungseinheit), für einen Makroblock beansprucht wird.
  • Hier kann die Startanzeigeeinheit die Startanzeige ausgeben, bevor die Analyseeinheit die Bewegungsvektoren berechnet, und die Benachrichtigungseinheit kann die Synthetisiereinheit über die berechneten Bewegungsvektoren benachrichtigen.
  • Bei der angegebenen Konstruktion gibt die Startanzeigeeinheit einen Start einer Decodierung variabler Länge vor der Berechnung von Bewegungsvektoren durch die Analyseeinheit an. Dies reduziert die Gesamtzeit, die zum Decodieren jedes Makroblocks beansprucht wird, um die Zeit, die zum Berechnen der Bewegungsvektoren beansprucht wird.
  • Hier kann die Steuereinheit Folgendes enthalten: eine Unterbrechungserkennungseinheit zum Erkennen eines Auftretens einer Unterbrechung, die ein Umschalten von Threads verursacht; eine Fehlerverarbeitungseinheit, die veranlasst, dass die Routinenverarbeitungseinheit Daten verwirft, die sich auf einen vorbestimmten Block beziehen, wenn eine Fehlerunterbrechung durch die Unterbrechungserkennungseinheit erkannt worden ist, und einen Zustand der Header-Analyseeinheit in einen Bereitschaftszustand ändert; und eine Zustandsmanagementeinheit zum Verwalten eines Zustands der Header-Analyseeinheit und eines Zustands der Audio-Decodiereinheit basierend auf einem erkannten Unterbrechungstyp, wobei jeder Zustand einer von einem Ausführungszustand, einem Wartezustand und einem Bereitschaftszustand ist; und eine Umschalteinheit zum Umschalten eines dem Prozessor zugewiesenen Threads auf den Header-Analysethread, wenn sich der Zustand der Header-Analyseeinheit von dem Wartezustand in den Bereitschaftszustand geändert hat.
  • Bei der angegebenen Konstruktion enthält die Steuereinheit eine Fehlerverarbeitungseinheit zusätzlich zu der Unterbrechungserkennungseinheit, Zustandsmanagementeinheit und Umschalteinheit. Wenn eine Fehlerunterbrechung erkannt worden ist, setzt die Fehlerverarbeitungseinheit jede Komponente in der Routinenverarbeitungseinheit zurück und setzt die Header-Analyseeinheit in den Bereitschaftszustand. Infolgedessen wird der Header-Analysethread dem Prozessor zugewiesen, und die Header-Analyse wird für einen Makroblock in dem nächsten Slice durchgeführt. Dies bedeutet, dass, wenn ein Fehler aufgetreten ist, die Steuereinheit in der vorliegenden Medienverarbeitungsvorrichtung dem Prozessor den Header-Analysethread reibungslos zuweisen kann, wodurch die gesamte Verarbeitungseffizienz verbessert wird.
  • Hier kann der vorbestimmte Block ein Makroblock sein, der in den komprimierten Videodaten in dem Datenstrom enthalten ist, wobei die Unterbrechungserkennungseinheit in der Lage sein kann, einen Unterbrechungstyp 1, einen Unterbrechungstyp 2, einen Unterbrechungstyp 3 und einen Unterbrechungstyp 4 zu erkennen, wobei der Unterbrechungstyp 1 von der Header-Analyseeinheit nach Abschließen des Header-Analyseprozesses für einen Makroblock ausgegeben wird, der Unterbrechungstyp 2 von der Routinenverarbeitungseinheit nach Abschließen des Decodierprozesses für einen Makroblock ausgegeben wird, der Unterbrechungstyp 3 von der Datenkonvertierungseinheit ausgegeben wird, wenn ein Fehler während einer Decodierung variabler Länge aufgetreten ist, und der Unterbrechungstyp 4 von der Synthetisiereinheit ausgegeben wird, wenn ein Fehler während des Bewegungskompensationsprozesses aufgetreten ist, wobei die Zustandsaktualisierungseinheit den Zustand der Header-Analyseeinheit in der Zustandstabelle in den Wartezustand ändern kann, wenn die Unterbrechungserkennungseinheit den Unterbrechungstyp 1 erkannt hat und den Status des Zustands der Header-Analyseeinheit in der Zustandstabelle in den Bereitschaftszustand ändert, wenn die Unterbrechungserkennungseinheit den Unterbrechungstyp 2 erkannt hat, und wobei, wenn einer des Unterbrechungstyps 3 und des Unterbrechungstyps 4 von der Unterbrechungserkennungseinheit erkannt worden ist, die Fehlerverarbeitungseinheit die Routinenverarbeitungseinheit veranlassen kann, die Daten zu verwerfen, die mit einem vorbestimmten Block in Bezug stehen, und die Zustandsaktualisierungseinheit den Zustand der Header-Analyseeinheit in den Bereitschaftszustand ändern kann.
  • Wenn bei der angegebenen Konstruktion bei der Decodierung variabler Länge durch die Datenkonvertierungseinheit oder während des Bewegungskompensationsprozesses durch die Synthetisiereinheit ein Fehler aufgetreten ist, setzt die Fehlerverarbeitungseinheit jede Komponente in der Routinenverarbeitungseinheit zurück und setzt anschließend die Header-Analyseeinheit in ihren Bereitschaftszustand. Infolgedessen wird der Header-Analysethread dem Prozessor zugewiesen, und die Header-Analyse wird für einen Makroblock in dem nächsten Slice durchgeführt. Dies bedeutet, dass die Steuer einheit in der vorliegenden Medienverarbeitungsvorrichtung in der Lage ist, dem Prozessor den Header-Analysethread reibungslos zuzuweisen, selbst wenn ein Fehler aufgetreten ist, wodurch die gesamte Verarbeitungseffizienz verbessert wird.
  • Die Unterbrechungserkennungseinheit kann hier in der Lage sein, acht Unterbrechungstypen zu erkennen, die von Typ 1 bis Typ 8 nummeriert sind, wobei ein Unterbrechungstyp 1 durch die Header-Analyseeinheit nach Abschließen des Header-Analyseprozesses für einen vorbestimmten Block ausgegeben wird, ein Unterbrechungstyp 2 von der Routinenverarbeitungseinheit nach Abschließen des Decodierprozesses für einen vorbestimmten Block ausgegeben wird, ein Unterbrechungstyp 3 von der Header-Analyseeinheit nach Abschließen des Header-Analyseprozesses für jeden vorbestimmten Block in einem Frame ausgegeben wird, ein Unterbrechungstyp 4 von der Datenkonvertierungseinheit ausgegeben wird, wenn die Decodierung variabler Länge für die Header-Informationen nicht fertig ist, wenn die Einholeinheit die Anzeige ausgibt, ein Unterbrechungstyp 5 ein vertikales Synchronisationssignal ist, das von außerhalb der Medienverarbeitungsvorrichtung eingegeben wird, ein Unterbrechungssignal 6 von der Datenkonvertierungseinheit nach dem Unterbrechungstyp 4 ausgegeben wird, wenn die Decodierung variabler Länge für die Header-Informationen fertig ist, ein Unterbrechungstyp 7 von dem Speicher ausgegeben wird, wenn der Speicher keine Daten aufweist, die von der Audio-Decodiereinheit angefordert wurden, und ein Unterbrechungstyp 8 von dem Speicher nach dem Unterbrechungstyp 7 ausgegeben wird, wenn die von der Audio-Decodiereinheit angeforderten Daten in den Speicher eingegeben worden sind, wobei die Zustandsaktualisierungseinheit den Zustand der Header-Analyseeinheit in der Zustandtabelle in den Wartezustand ändert, wenn die Unterbrechungserkennungseinheit irgendeinen des Unterbrechungstyps 1, des Unterbrechungstyps 3 und des Unterbrechungstyps 4 erkannt hat, den Zustand der Header-Analyseeinheit in der Zustandtabelle in den Bereitschaftszustand ändert, wenn die Unterbrechungserkennungseinheit irgendeinen des Unterbrechungstyps 2, des Unterbrechungstyps 5 und des Unterbrechungstyps 6 erkannt hat, den Zustand der Audio-Decodiereinheit in der Zustandstabelle in den Wartezustand ändert, wenn die Unterbrechungserkennungseinheit den Unterbrechungstyp 7 erkannt hat, und den Zustand der Audio-Decodiereinheit in der Zustandstabelle in den Bereitschaftszustand ändert, wenn die Unterbrechungserkennungseinheit den Unterbrechungstyp 8 erkannt hat.
  • Bei der angegebenen Konstruktion aktualisiert die Zustandsaktualisierungseinheit die Zustände der Header-Analyseeinheit und der Audio-Decodiereinheit in Übereinstimmung mit der Erkennung der Unterbrechungen des Typs 1 bis 8 durch die Unterbrechungserkennungseinheit. Als Folge dieser Aktualisierung veranlasst die Umschalteinheit, dass der Header-Analysethread und der Audio-Decodierthread dem Prozessor zugewiesen werden, wobei der Header-Analysethread Priorität erhält. Die Steuereinheit ist in der Lage, dem Prozessor den Header-Analysethread und den Audio-Decodierthread reibungslos zuzuweisen, selbst wenn die verschiedenen Unterbrechungstypen auftreten, wodurch die gesamte Verarbeitungseffizienz verbessert wird.
  • Die angegebene Aufgabe der vorliegenden Erfindung kann auch durch ein rechnerlesbares Speichermedium erfüllt werden, das ein Programm speichert, welches veranlasst, dass ein Rechner einen Datenstrom mit komprimierten Audiodaten und komprimierten Videodaten decodiert, um Videodaten und Audiodaten zu erhalten, wobei das Programm Folgendes enthält: einen Header-Analyseprozess zum Analysieren eines Headers eines vorbestimmten Blocks, der in den komprimierten Videodaten in dem Datenstrom enthalten ist; einen Audio-Decodierprozess zum Decodieren der komprimierten Audiodaten in dem Datenstrom; einen Steuerprozess zum Umschalten zwischen der Header-Analyseverarbeitung und dem Audio-Decodierprozess, wobei die Header-Analyseverarbeitung Priorität erhält; und einen Routinenprozess zum Durchführen eines Decodierprozesses für die komprimierten Videodaten in dem Datenstrom, wobei der Decodierprozess den Header-Analyseprozess nicht enthält.
  • Hier kann der Rechner eine Medienverarbeitungsvorrichtung sein, die einen ersten Prozessor und einen zweiten Prozessor aufweist, wobei der erste Prozessor den Header-Analyseprozess, den Audio-Decodierprozess und den Steuerprozess ausführt, und der zweite Prozessor den Routinenprozess ausführt.
  • Bei der angegebenen Konstruktion räumt der erste Prozessor der Ausführung des Header-Analyseprozesses Priorität ein und führt somit den Header-Analyseprozess ohne Verzögerung aus. Wenn eine Ausführung des Header-Analyseprozesses nicht möglich ist, führt der erste Prozessor den Audio-Decodierprozess aus, wodurch der Verarbeitungsdurchsatz erhöht wird. Da der erste Prozessor die Header-Analyseverarbeitung ohne Verzögerung ausführt, kann der zweite Prozessor die Verarbeitungsergebnisse des Header-Analyseprozesses schnell empfangen und somit schnell mit dem Routinenprozess beginnen.
  • Hier kann der Steuerprozess Folgendes enthalten: einen Unterbrechungserkennungsprozess zum Erkennen von einer Unterbrechung, die ein Umschalten zwischen dem Header-Analyseprozess und dem Audio-Decodierprozess verursacht, und von einem Unterbrechungstyp; einen Zustandsmanagementprozess zum Verwalten eines Zustands des Header-Analyseprozesses und eines Zustands des Audio-Decodierprozesses basierend auf dem Unterbrechungstyp, der erkannt worden ist, wobei jeder Zustand einer von einem Ausführungszustand, einem Wartezustand und einem Bereitschaftszustand ist; und eine Umschalteinheit zum Umschalten, wenn sich der Zustand des Header-Analyseprozesses von dem Wartezustand in den Bereitschaftszustand geändert hat, eines von dem ersten Prozessor ausgeführten Prozesses von dem Audio-Decodierprozess in den Header-Analyseprozess.
  • Bei der angegebenen Konstruktion beginnt der erste Prozessor mit dem Header-Analyseprozess, sobald der Header-Analyseprozess in den Bereitschaftszustand wechselt. Dadurch wird die gesamte Verarbeitungseffizienz verbessert.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Diese und andere Ziele, Vorteile und Merkmale der Erfindung gehen aus der folgenden Beschreibung derselben in Verbindung mit den folgenden begleitenden Zeichnungen hervor, die eine spezielle Ausführungsform der Erfindung veranschaulichen:
  • 1 zeigt eine Darstellung der Decodierungsverarbeitung, die von einem herkömmlichen AV-Decoder durchgeführt wird;
  • 2 ist ein Blockschaltbild, das die gesamte Konstruktion einer Medienverarbeitungsvorrichtung in einer Ausführungsform der vorliegenden Erfindung zeigt;
  • 3 zeigt Makroblöcke als Teil der hierarchischen Konstruktion eines MPEG-Stroms;
  • 4 ist ein Blockschaltbild, das die Konstruktion der Medienverarbeitungsvorrichtung detaillierter zeigt;
  • 5 zeigt die Details der Header-Analyseverarbeitung, die durch den Prozessor 7 ausgeführt wird, und die Steuerung der anderen Komponenten in der Medienverarbeitungsvorrichtung, die durch den Prozessor 7 ausgeführt wird;
  • 6 zeigt die Betriebs-Zeitsteuerung der verschiedenen Komponenten der Decodierverarbeitungseinheit 1002, wobei die horizontale Achse die Zeit darstellt;
  • 7 ist ein Zeitsteuerungsdiagramm, das die Betrebs-Zeitsteuerung der Hauptkomponenten der Decodierverarbeitungseinheit zeigt;
  • 8 zeigt die Software-Konfiguration des Prozessors 7;
  • 9 ist eine Tabelle, welche die verschiedenen Unterbrechungssignale zeigt, die von dem Betriebssystem erkannt werden;
  • 10 zeigt den Zustandsübergang des Video-Threads;
  • 11 zeigt den Zustandsübergang des Audio-Threads;
  • 12 zeigt eine Beispiels-Zustandstabelle;
  • 13 ist ein Ablaufdiagramm, das den Auswahlprozess zeigt, in dem das Betriebssystem einen Thread wählt, der dem Prozessor 7 zugeordnet werden soll;
  • 14A und 14B zeigen die detaillierten Arbeitsvorgänge, die von den verschiedenen Komponenten der Decodierverarbeitungseinheit während eines Decodiervorgangs basierend auf 7 durchgeführt werden;
  • 15A und 15B zeigen die Arbeitsvorgänge, die von der Code-Konvertierungseinheit 9 durchgeführt werden, wenn ein VLD-Fehler aufgetreten ist; und
  • 16A und 16B zeigen die Arbeitsvorgänge, die durch die Pixel-Lese/Schreib-Einheit durchgeführt werden, wenn ein Bewegungskompensationsfehler aufgetreten ist.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
  • Das Folgende ist eine Beschreibung einer Medienverarbeitungsvorrichtung der vorliegenden Erfindung, wobei die Beschreibung der Ausführungsform in die folgenden Abschnitte unterteilt wurde.
    • 1 Der Gesamtaufbau der Medienverarbeitungsvorrichtung 1.1 Die Eingabe/Ausgabe-Verarbeitungseinheit 1.2 Die Decodierverarbeitungseinheit 1.2.1 Die sequenzielle Verarbeitungseinheit 1.2.2 Die Routinenverarbeitungseinheit
    • 2 Der Aufbau der Medienverarbeitungsvorrichtung 2.1 Der Aufbau der Eingabe/Ausgabe-Verarbeitungseinheit 2.2 Der Aufbau der Decodierverarbeitungseinheit 2.2.1 Die sequenzielle Verarbeitungseinheit 2.2.1.1 Header-Analyseverarbeitung 2.2.1.2 Audio-Decodierverarbeitung 2.2.2 Die Routinenverarbeitungseinheit
    • 3 Betriebs-Zeitsteuerung der Komponenten
    • 4 Betriebssystem OS (Operating System) der Routinenverarbeitungseinheit 4.1 Unterbrechungssignale 4.2 Zustandsübergang von Threads 4.2.1 Video-Thread 4.2.2 Audio-Thread 4.3 Thread-Verarbeitung 4.4 Zuweisung zu dem Prozessor 4.5 Fehlerverarbeitung
    • 5 Betrieb 5.1 Betrieb der Eingabe/Ausgabe-Verarbeitungseinheit 5.2 Betrieb der Decodierverarbeitungseinheit 5.2.1 Standardbetrieb 5.2.2 Betrieb für einen VLD-Fehler 5.2.3 Betrieb für einen Bewegungskompensationsfehler
  • Bevorzugte Ausführungsform
  • Die Medienverarbeitungsvorrichtung der vorliegenden Ausführungsform ist in einer STB, einem DVD-Gerät, einem DVD-RAM-Gerät zur Aufzeichnung/Wiedergabe oder Ähnlichem vorgesehen. Die Medienverarbeitungsvorrichtung empfängt eine Eingabe von MPEG-Strömen als komprimierte Video- und Audiodaten von der Satellitenausstrahlung oder der DVD und führt eine Entkomprimierungsverarbeitung durch, (die im Folgenden als "Decodierung" bezeichnet wird), bevor die Videosignale und Audiosignale an externe Ausgabevorrichtungen ausgegeben werden.
  • 1. Der Gesamtaufbau der Medienverarbeitungsvorrichtung
  • 2 ist ein Blockschaltbild, das den gesamten Aufbau einer Medienverarbeitungsvorrichtung der Ausführungsform der vorliegenden Erfindung zeigt.
  • Eine Medienverarbeitungsvorrichtung 1000 setzt sich zusammen aus einer Eingabe/Ausgabe-Verarbeitungseinheit 1001, einer Decodierverarbeitungseinheit 1002 und einer Speichersteuereinrichtung 6. Die Medienverarbeitungsvorrichtung 1000 führt die Eingabe/Ausgabe-Verarbeitung und Decodierverarbeitung parallel durch. Die Medienverarbeitungsvorrichtung 1000 verwendet einen externen Speicher 3 als einen Arbeitsspeicher zum temporären Speichern eines MPEG-Stroms und von decodierten Audiodaten und als einen Bildspeicher zum Speichern von decodierten Videodaten.
  • 1.1 Die Eingabe/Ausgabe-Verarbeitungseinheit
  • Die Eingabe/Ausgabe-Verarbeitungseinheit 1001 führt eine Eingabe/Ausgabe-Verarbeitung durch, die nicht in Synchronisation mit dem Betrieb der Medienverarbeitungsvorrichtung 1000 erfolgt. Die Eingabe-/Ausgabeverarbeitung umfasst: (a) Eingeben eines MPEG-Stroms, der asynchron und extern eingegeben wird, und temporäres Speichern des MPEG-Stroms in dem externen Speicher 3; (b) Bereitstellen eines in dem externen Speicher 3 gespeicherten MPEG-Stroms für die Decodierverarbeitungseinheit 1002; und (c) Auslesen von decodierten Video- und Audiodaten aus dem externen Speicher 3 und Ausgeben jeweils der decodierten Videodaten und der decodierten Audiodaten an eine (nicht dargestellte) Anzeigevorrichtung in Übereinstimmung mit den jeweiligen Ausgabegeschwindigkeit.
  • 1.2 Die Decodierverarbeitungseinheit
  • Die Decodierverarbeitungseinheit 1002 decodiert den MPEG-Strom, der von der Eingabe/Ausgabe-Verarbeitungseinheit bereitgestellt wird, und speichert die decodierten Videodaten und decodierten Audiodaten in dem externen Speicher 3. Dieser Betrieb der Decodierverarbeitungseinheit 1002 wird unabhängig von und parallel zu dem Betrieb der Eingabe/Ausgabe-Verarbeitungseinheit 1001 durchgeführt. Da die Decodierverarbeitung der komprimierten Videodaten in einem MPEG-Strom eine hohe rechnerische Komplexität aufweist und eine Reihe von Prozessen umfasst, enthält die Decodierverarbeitungseinheit 1002 eine sequenzielle Verarbeitungseinheit 1003 und eine Routinenverarbeitungseinheit 1004, welche die Verarbeitungslast der Decodierverarbeitungseinheit 1002 gemeinsam tragen. Die sequenzielle Verarbeitungseinheit 1003 führt eine Header-Analyseverarbeitung an den Makroblock-Headern der komprimierten Videodaten aus, während die Routinenverarbeitungseinheit 1004 die Decodierung der komprimierten Videodaten durchführt, die der tatsächliche Dateninhalt der Makroblöcke sind. In der Decodierverarbeitungseinheit 1002 wird jeder Makroblock mit komprimierten Videodaten einer Verarbeitung durch die sequenzielle Verarbeitungseinheit 1003 und der Routinenverarbeitungseinheit 1004 einmal unterzogen.
  • Das Folgende ist eine Beschreibung der Beziehung zwischen den komprimierten Videodaten in einem MPEG-Strom und den Makroblöcken.
  • 3 ist eine Darstellung einer hierarchischen Struktur, die das Verhältnis zwischen einem MPEG-Strom und Makroblöcken zeigt. Die erste Ebene in der Hierarchie zeigt den Fluss des MPEG-Stroms, während die zweite Ebene ein Ein-Sekunden-Segment des MPEG-Stroms zeigt. Dieses Ein-Sekunden-Segment enthält eine Vielzahl von Frames, die I- (Interne), P- (Prädikative) oder B- (Bidirektional prädikative) Bilder sind.
  • Die dritte Ebene in der Hierarchie zeigt einen der Frames. Jeder Frame enthält einen Bild-Header und eine Vielzahl von Slices. Die vierte Ebene in der Hierarchie zeigt einen der Slices. Jeder Slice enthält einen Slice-Header und eine Vielzahl von Makroblöcken. Die fünfte Ebene zeigt einen der Makroblöcke. Jeder Makroblock enthält einen Makroblock-Header und sechs Blöcke. Diese sechs Blöcke setzen sich zusammen aus vier Luminanzblöcken und zwei Chrominanzblöcken, wobei jeder Block ein Bild ist, das sich aus 8·8 Pixeln zusammensetzt. Diese sechs Blöcke entsprechen dem Dateninhalt des Makroblocks.
  • Die Datenkonstruktion der ersten bis fünften Ebene in 3 wurde detailliert in vielen bekannten Publikationen beschrieben, wie beispielsweise Pointo Zukaishiki Saishin MPEG Kyokasho (Latest MPEG techniques – An Illustrated Reader), veröffentlicht von ASCII Publishing, Co.
  • Die Decodierverarbeitung für komprimierte Audiodaten, (die im Folgenden als "Audio-Decodierung" bezeichnet wird), erfordert im Vergleich weniger Verarbeitung als die Decodierverarbeitung für komprimierte Videodaten. Dementsprechend führt die sequenzielle Verarbeitungseinheit 1003 die Audio-Decodierverarbeitung in dem Zeitraum zwischen der Header-Analyseverarbeitung für einen Makroblock und der Header-Analyseverarbeitung für den folgenden Makroblock durch.
  • Wie vorher beschrieben, führt die sequenzielle Verarbeitungseinheit 1003 sowohl die Header-Decodierverarbeitung als auch die Audio-Decodierverarbeitung durch. Die sequenzielle Verarbeitungseinheit 1003 führt diese zwei Prozesse nacheinander aus, indem ein Programm ausgeführt wird, das die erforderlichen Arbeitsvorgänge enthält und der Header-Decodierverarbeitung Priorität einräumt. Diese Prozesse werden insgesamt im Folgenden als die "sequenzielle Verarbeitung" bezeichnet.
  • Die Routinenverarbeitungseinheit 1004 führt die Decodierverarbeitung für den Dateninhalt der Makroblöcke durch. Diese Verarbeitung wird routinemäßig für jeweils einen Makroblock durchgeführt und bringt eine beträchtliche Rechenmenge für verschiedene Prozesse mit sich. Diese Verarbeitung wird im Folgenden als "Routinenverarbeitung" bezeichnet.
  • 1.2.1 Die sequenzielle Verarbeitungseinheit
  • Die sequenzielle Verarbeitungseinheit 1003 enthält einen Prozessor und einen Speicher. Der Prozessor führt die Audio-Decodierverarbeitung und Header-Analyseverarbeitung durch, wobei Letzteres mit Priorität geschieht, indem die Thread-Programme (im Folgenden "Threads") ausgeführt werden, die in dem Speicher gespeichert sind. In der sequenziellen Verarbeitungseinheit 1003 steuert ein Betriebssystem OS (Operating System) die Ausführung der Audio-Decodierverarbeitung und Header-Analyseverarbeitung so, dass der Letzteren Priorität eingeräumt wird. In dieser Spezifikation bezieht sich der Begriff "Thread" auf ein modulares Programm, das in einer Vielfach-Thread-Architektur ausgeführt wird.
  • Die Header-Analyseverarbeitung umfasst die Analyse der Header-Informationen eines Makroblocks und die Berechnung von Bewegungsvektoren. Der Header eines Makroblocks ist für die Decodierung des Dateninhalts des Makroblocks erforderlich. Die sequenzielle Verarbeitungseinheit 1003 überträgt die Informationen, die durch die Analyse eines Makroblock-Headers erhalten werden, an die Routinenverarbeitungseinheit 1004. Die Bewegungsvektoren, auf die hier verwiesen wird, sind Vektoren, die einen rechtwinkligen 8·8 Pixel großen Bereich in einem Referenz-Frame angeben und so zeigen, welcher rechtwinklige Bereich in dem Referenz-Frame verwendet wurde bis zu dem Zeitpunkt, an dem die in dem vorliegenden Block vorgegebenen Differenzwerte berechnet wurden.
  • Die Audio-Decodierverarbeitung setzt sich aus der Analyse des Headers der komprimierten Audiodaten und der Decodierung des Dateninhalts der komprimierten Audiodaten zusammen. Diese Prozesse werden unabhängig voneinander von der sequenziellen Verarbeitungseinheit 1003 durchgeführt. Dies bedeutet, dass die Audio-Decodierverarbeitung vorübergehend gestoppt und leichter erneut gestartet werden kann als die Header-Analyseverarbeitung. Die Audio-Decodierverarbeitung weist auch eine geringe rechnerische Komplexität auf und kann so innerhalb des Zeitintervalls zwischen der Header-Analyseverarbeitung der aufeinander folgenden Makroblock-Header durchgeführt werden. Aus diesem Grund ist die sequenzielle Verarbeitungseinheit 1003 so konstruiert, dass sie der Header-Analyseverarbeitung vor der Audio-Decodierverarbeitung Priorität einräumt.
  • Ausführlicher bedeutet dies, dass, wenn die Header-Analyseverarbeitung ausgeführt werden kann, das Betriebssystem die Steuerung so durchführt, dass die Header-Analyseverarbeitung definitiv durchgeführt wird. Wenn die sequenzielle Verarbeitungseinheit 1003 die Audio-Decodierverarbeitung zu einem solchen Zeitpunkt durchführt, veranlasst das Betriebssystem, dass die sequenzielle Verarbeitungseinheit 1003 die Audio-Decodierverarbeitung aussetzt und die Header-Analyseverarbeitung ausführt.
  • 1.2.2 Die Routinenverarbeitungseinheit
  • Die Routinenverarbeitungseinheit 1004 führt einen Code-Decodierungsprozess variabler Länge (VLD), einen Umkehrquantisierungsprozess (IQ), einen umgekehrten diskreten Kosinustransformationsprozess (IDCT) und einen Bewegungskompensationsprozess (MC) an dem Dateninhalt eines Makroblocks als die Routinenverarbeitung durch. Die Routinenverarbeitungseinheit 1004 führt diese Prozesse in der angegebenen Reihenfolge unter Verwendung einer Pipeline-Architektur durch. Die Routinenverarbeitungseinheit 1004 führt die VLD-Verarbeitung an dem Makroblock-Header sowie an dem Dateninhalt des Makroblocks durch und gibt die durch die VLD-Verarbeitung an dem Makroblock-Header erhaltenen Daten an die sequenzielle Verarbeitungseinheit 1003 aus.
  • Beim Durchführen der Bewegungskompensation speichert die Routinenverarbeitungseinheit 1004 die decodierten Blöcke über die Speichersteuereinrichtung 6 in dem externen Speicher 3, der als der Frame-Speicher dient.
  • 2 Der Aufbau der Medienverarbeitungsvorrichtung
  • 4 ist ein Blockschaltbild, das die detaillierte Struktur der Medienverarbeitungsvorrichtung 1000 zeigt.
  • 2.1 Der Aufbau der Eingabe/Ausgabe-Verarbeitungseinheit
  • Wie in 4 gezeigt, setzt sich die Eingabe/Ausgabe-Verarbeitungseinheit 1001 aus einer Strom-Eingabeeinheit 1, einem Pufferspeicher 2, einem Eingabe/Ausgabe-Prozessor 5, (im Folgenden als "E/A-Prozessor 5" bezeichnet), einer Direkt-Speicherzugriff-Steuereinrichtung DMAC (Direct Memory Access Controller) 5a, einer Video-Ausgabeeinheit 12, einer Audio-Ausgabeeinheit 13 und einer Zentralrechner-Schnittstelleneinheit 14 zusammen.
  • Die Strom-Eingabeeinheit 1 wandelt MPEG-Datenströme, die sequenziell von außen eingegeben werden, in parallele Daten um, (die im Folgenden als "MPEG-Daten" bezeichnet werden). Damit erfasst die Strom-Eingabeeinheit 1 einen Startcode einer Bildgruppe GOP (Group of Pictures) aus einem MPEG-Datenstrom und informiert den E/A-Prozessor 5 darüber. Die Bildgruppen, auf die hier verwiesen wird, enthalten jeweils ein internes Bild (I-picture) und entsprechen einem MPEG-Datenstrom, der äquivalent zu Videodaten mit einer Wiedergabezeit von etwa 0,5 Sekunden ist. Wenn der E/A-Prozessor 5 von der Strom-Eingabeeinheit 1 darüber informiert wird, dass eine Bildgruppe erfasst worden ist, veranlasst er, dass die umgewandelten MPEG-Daten zum Pufferspeicher 2 übertragen werden.
  • Der Pufferspeicher 2 speichert temporär die von der Strom-Eingabeeinheit 1 übertragenen MPEG-Daten. Die in dem Pufferspeicher 2 gespeicherten MPEG-Daten werden dann gemäß der Steuerung durch den E/A-Prozessor 5 über die Speichersteuereinrichtung 6 an den externen Speicher 3 übertragen.
  • Der externe Speicher 3, der sich aus SDRAM- (Synchronous Dynamic Random Access Memory) Chips zusammensetzt, speichert vorübergehend die MPEG-Daten, die über die Speichersteuereinrichtung 6 von dem Pufferspeicher 2 übertragen werden. Außerdem speichert der externe Speicher 3 die decodierten Videodaten, (die im Folgenden auch als "Frame-Daten" bezeichnet werden), und die decodierten Audiodaten.
  • Der E/A-Prozessor 5 steuert die Daten-Eingaben/-Ausgaben zwischen der Strom-Eingabeeinheit 1, dem Pufferspeicher 2, dem externen Speicher 3, (der über die Speichersteuereinrichtung 6 verbunden ist), und einem FIFO-Speicher 4. Im Einzelnen steuert der E/A-Prozessor Datentransfers (DMA-Transfers) auf den folgenden Pfaden (1) bis (4):
    • (1) Strom-Eingabeeinheit 1 → Pufferspeicher 2 → Speichersteuereinheit 6 → externer Speicher 3;
    • (2) externer Speicher 3 → Speichersteuereinheit 6 → FIFO-Speicher 4;
    • (3) externer Speicher 3 → Speichersteuereinheit 6 → Pufferspeicher 2 → Video-Ausgabeeinheit 12; und
    • (4) externer Speicher 3 → Speichersteuereinheit 6 → Pufferspeicher 2 → Audio-Ausgabeeinheit 13.
  • Der E/A-Prozessor 5 steuert die Übertragungen von Videodaten und Audiodaten getrennt, die in den MPEG-Daten auf den vorher angegebenen Pfaden enthalten sind. Die Pfade (1) und (2) werden für die Übertragung der MPEG-Daten verwendet, die noch zu decodieren sind. Der E/A-Prozessor 5 überträgt die komprimierten Videodaten und die komprimierten Audiodaten auf den Pfaden (1) und (2) getrennt. Der Pfad (3) wird für decodierte Videodaten verwendet, und der Pfad (4) für die decodierten Audiodaten. Hier werden die decodierten Videodaten und die decodierten Audiodaten jeweils zu der (nicht gezeigten) externen Anzeigevorrichtung und der (nicht gezeigten) Ausgabevorrichtung in Übereinstimmung mit den jeweiligen Ausgabegeschwindigkeiten für diese Vorrichtungen übertragen.
  • Die Direkt-Speicherzugriff-Steuereinrichtung DMAC 5a führt die folgenden Übertragungen in Übereinstimmung mit der Steuerung durch den E/A-Prozessor 5 aus: DMA-Transfer zwischen dem Pufferspeicher 2 und jedem von Strom-Eingabeeinheit 1, Video-Ausgabeeinheit 12 und Audio-Ausgabeeinheit 13; DMA-Transfer zwischen dem Pufferspeicher 2 und dem externen Speicher 3; und DMA-Transfer zwischen dem externen Speicher 3 und dem FIFO-Speicher 4.
  • Die Video-Ausgabeeinheit 23 fordert den E/A-Prozessor 5 auf, Daten auszugeben in Übereinstimmung mit der Ausgabegeschwindigkeit (beispielsweise einem Zyklus des horizontalen Synchronisationssignals Hsync) der externen Anzeigevorrichtung (beispielsweise Bildschirmanzeige (Kathodenstrahlröhre)), und gibt dann die Videodaten, die von dem E/A-Prozessor 5 auf dem Pfad (3) eingegeben wurden, an die Anzeigevorrichtung aus.
  • Die Audio-Ausgabeeinheit 13 fordert den E/A-Prozessor 5 auf, Daten auszugeben in Übereinstimmung mit der Ausgabegeschwindigkeit der externen Audio-Ausgabevorrichtung, und gibt dann die Audiodaten, die von dem E/A-Prozessor 5 auf dem Pfad (4) eingegeben wurden, an die Audio-Ausgabevorrichtung (wie beispielsweise einen D/A- (Digital-Analog-) Wandler, einen Audioverstärker und ein Paar von Lautsprechern aus.
  • Die Zentralrechner-Schnittstelleneinheit 14 ist eine Schnittstelle, die für die Kommunikation mit einem externen Zentralrechner-Prozessor verwendet wird, wie beispielsweise einem Prozessor, der die Gesamtsteuerung in dem Fall übernimmt, in dem die Medienverarbeitungsvorrichtung in einer DVD-Wiedergabevorrichtung bereitgestellt ist. In dieser Kommunikation sendet der Zentralrechner-Prozessor Anweisungen, wie beispielsweise Decodierstart, Stopp, Schnellsuche vorwärts/rückwärts und Rückwärts-Wiedergabe (reverse reproduction), die sich auf die Decodierung von MPEG-Strömen beziehen.
  • 2.2 Der Aufbau der Decodierverarbeitungseinheit
  • Die in 4 gezeigte Decodierverarbeitungseinheit 1002 enthält den FIFO-Speicher 4, die sequenzielle Verarbeitungseinheit 1003 und die Routinenverarbeitungseinheit 1004. Die Decodierverarbeitungseinheit 1002 führt diese Decodierverarbeitung an den MPEG-Daten durch, die von der Eingabe/Ausgabe-Verarbeitungseinheit 1001 über den FIFO-Speicher 4 bereitgestellt werden. Die sequenzielle Verarbeitungseinheit 1003 enthält einen Prozessor 7 und einen internen Speicher 8. Die Routinenverarbeitungseinheit 1004 enthält eine Code-Übersetzungseinheit 9, eine Pixel-Berechnungseinheit 10, eine Pixel-Lese/Schreib-Einheit 11, einen Zwischenspeicher 200 und einen Zwischenspeicher 201.
  • Der FIFO-Speicher 4 enthält zwei FIFOs, (die im folgenden als der "Video-FIFO" und der "Audio-FIFO" bezeichnet werden), und speichert die komprimierten Videodaten und die komprimierten Audiodaten, die von dem externen Speicher 3 gemäß der Steuerung durch den E/A-Prozessor 5 in einem FIFO- (first-in first-out) Format übertragen werden.
  • 2.2.1 Die sequenzielle Verarbeitungseinheit
  • Der Prozessor 7 führt das in dem internen Speicher 8 gespeicherte Betriebssystem aus und schaltet zwischen dem Ausführen eines Programms für die Header-Analyseverarbeitung und einem Programm für die Audio-Decodierverarbeitung gemäß der Steuerung um, die von dem Betriebssystem durchgeführt wird. Beide dieser Programme sind in dem internen Speicher 8 gespeichert. Die Header-Analyseverarbeitung und Audio-Decodierverarbeitung werden im Folgenden im Detail beschrieben.
  • 2.2.1.1 Header-Analyseverarbeitung
  • 5 zeigt die Details der Header-Analyseverarbeitung des Prozessors 7, und wie der Prozessor 7 die anderen Komponenten steuert. Es ist anzumerken, dass jedes Datenset in dem Makroblock-Header, das in abgekürzter Form in 5 gezeigt wurde, in der vorher genannten Veröffentlichung erläutert ist und daher in dieser Spezifikation nicht beschrieben wird.
  • Der Prozessor 7 gibt Befehle an die Code-Übersetzungseinheit 9 aus und erhält sukzessiv die Daten, die sich aus der VLD-Verarbeitung an dem Header ergeben. In Übereinstimmung mit den erhaltenen Daten stellt der Prozessor 7 dann die verschiedenen Datenarten in die Code-Übersetzungseinheit 9, die Pixel-Berechnungseinheit 10 und die Pixel-Lese/Schreib-Einheit 11, damit der Makroblock decodiert werden kann.
  • In 5 gibt der Prozessor 7 einen Befehl an die Code-Übersetzungseinheit 9 aus, um eine Makroblock-Adresserhöhung MBAI (MacroBlock Address Increment) (Schritt S101) zu erhalten, und erhält so die Makroblock-Adresserhöhung von der Code-Übersetzungseinheit 9. Wenn der vorliegende Makroblock basierend auf dieser Makroblock-Adresserhöhung ein übersprungener Makroblock ist, (nämlich, wenn der gegenwärtig zu decodierende Makroblock der gleiche ist wie der entsprechende Makroblock in dem vorhergehenden Frame), ist der vorliegende Makroblock ausgelassen worden, und der Prozessor fährt mit Schritt S118 fort. Wenn der vorliegende Makroblock kein übersprungener Makroblock ist, fährt der Prozessor 7 mit der Header-Analyse (Schritt S102, S103) fort.
  • Im Anschluss daran gibt der Prozessor 7 einen Befehl aus, um den Makroblock-Typ MBT (MacroBlock Type) zu erhalten, und erhält den Makroblock-Typ von der Code-Übersetzungseinheit 9. Der Prozessor 7 verwendet diesen Makroblock-Typ, um zu beurteilen, ob die Abtastart der Blöcke in dem Makroblock eine Zickzack-Abtastung oder eine alternierende Abtastung ist, und informiert die Pixel-Berechnungseinheit 10 über die korrekte Lesereihenfolge für den Zwischenspeicher 200 (Schritt S104).
  • Der Prozessor 7 beurteilt dann anhand der erhaltenen Daten in dem Header, ob ein räumlich-zeitlicher Wichtungs-Code STWC (Spatial Temporal Weight Code) vorhanden ist (Schritt S105), und gibt, falls dies so ist, einen Befehl aus, um den räumlich-zeitlichen Wichtungs-Code zu erhalten (Schritt S106).
  • Auf die gleiche Weise erhält der Prozessor 7 den Frame-Bewegungstyp FrMT (Frame Motion Type), den Feld-Bewegungstyp FiMT (Field Motion Type), den diskreten Kosinustransformationstyp DCT (DCT Type), den Quantifikator-Skalierungscode QSC (Quantifier Scale Code), den Bewegungsvektor MV (Motion Vector) und das codierte Blockmuster CBP (Coded Block Pattern) (Schritt S107 bis S116).
  • Damit informiert der Prozessor 7 die Pixel-Lese/Schreib-Einheit 11 über die Analyseergebnisse von Frame-Bewegungstyp, Feld-Bewegungstyp und diskretem Kosinustransformationstyp, informiert die Pixel-Berechnungseinheit 10 über das Analyseergebnis des Quantifikator-Skalierungscodes, und informiert die Code-Übersetzungseinheit 9 über das Analyseergebnis des codierten Blockmusters. Damit werden die Informationen, die für die Verarbeitung von Umkehrquantisierung IQ, umgekehrter diskreter Kosinustransformation ICDT und Bewegungskompensation MC erforderlich sind, in die Code-Übersetzungseinheit 9, Pixel-Berechnungseinheit 10 und Pixel-Lese/Schreib-Einheit 11 gestellt.
  • Als nächstes gibt der Prozessor 7 der Code-Übersetzungseinheit 9 eine Signalisierung, mit der VLD-Verarbeitung des Dateninhalts des Makroblocks zu beginnen (Schritt S117). Beim Empfangen dieser VLD-Startsignalisierung beginnt die Code-Übersetzungseinheit 9 mit der VLD-Verarbeitung.
  • Der Prozessor 7 berechnet die Bewegungsvektoren in Übereinstimmung mit den Bewegungsvektordaten (Schritt S118) und informiert die Pixel-Lese/Schreib-Einheit 11 über das Berechnungsergebnis (Schritt S119).
  • Der Grund, warum der Prozessor 7 die VLD-Startsignalisierung (Schritt S117) vor dem Durchführen der Verarbeitung in Zusammenhang mit Bewegungsvektoren ausgibt, ist wie folgt.
  • In der Routinenverarbeitungseinheit 1004 wird die Pipeline-Verarbeitung in der Reihenfolge Code-Übersetzungseinheit 9 → Pixel-Berechnungseinheit 10 → Pixel-Lese/Schreib-Einheit 11 durchgeführt. In dieser Pipeline-Verarbeitung führen die verschiedenen Komponenten der Routinenverarbeitungseinheit 1004 eine Verarbeitung erst nach dem Empfangen der Daten durch, die durch die Header-Analyseverarbeitung an dem Makroblock-Header erzeugt werden.
  • Wenn die Verarbeitung in Schritt S116 in 5 beendet ist, kann die Pixel-Lese/Schreib-Einheit 11 ihre Verarbeitung nicht durchführen, da sie die Daten für die Bewegungsvektoren noch nicht erhalten hat, obwohl die Code-Übersetzungseinheit 9 und Pixel-Berechnungseinheit 10 die erforderlichen Daten empfangen haben, um mit ihren jeweiligen Prozessen zu beginnen.
  • Aus diesem Grund wird die Routinenverarbeitung zuerst gestartet, so dass die Bewegungsvektoren berechnet werden können, während die Code-Übersetzungseinheit 9 und Pixel-Berechnungseinheit 10 ihre Prozesse durchführen. Danach wird die Pixel-Lese/Schreib-Einheit über das Berechnungsergebnis informiert. Dies bedeutet, dass in dieser Ausführungsform die Decodierverarbeitung für einen Makroblock in einer kürzeren Zeit abgeschlossen werden kann, wodurch die Verarbeitungseffizienz der Decodierverarbeitungseinheit 1002 verbessert wird.
  • Schließlich sendet der Prozessor 7 ein Signal Header-Analyse Ende an das Betriebssystem (Schritt S120). Beim Abschließen der Header-Analyseverarbeitung für alle Makroblöcke in einem Frame sendet der Prozessor 7 jedoch ein Signal Frame Ende an das Betriebssystem anstatt ein Signal Header-Analyse Ende. Mit dem Senden dieses Sig nals schließt der Prozessor 7 die Header-Analyse für die komprimierten Videodaten in einem Makroblock ab.
  • 2.2.1.2 Audio-Decodierverarbeitung
  • Bei der Audio-Decodierverarbeitung analysiert der Prozessor 7 den Header-Teil und den Datenteil der komprimierten Audiodaten, die aus dem FIFO-Speicher 4 ausgelesen werden, führt den Decodierprozess durch und mischt das Decodierungsergebnis für Audiokanäle abwärts. Danach gibt der Prozessor 7 die Audiodaten, die durch diese Reihe von Prozessen erhalten wurden, über die Speichersteuereinrichtung 6 an den externen Speicher 3 aus.
  • 2.2.2 Die Routinenverarbeitungseinheit
  • 6 zeigt die Betriebszeitsteuerung der verschiedenen Komponenten der Decodierverarbeitungseinheit 1002. In 6 stellt die horizontale Achse die Zeit dar.
  • Die Code-Übersetzungseinheit 9 führt eine Decodierung variabler Länge an den komprimierten Videodaten durch, die aus dem FIFO-Speicher 4 ausgelesen werden. Wie in dieser Figur gezeigt, überträgt die Code-Übersetzungseinheit 9 den Header-Teil, (der durch die unterbrochene Linie in 6 dargestellt wird), an den Prozessor 7, und überträgt die Makroblockdaten, (die sechs, durch die durchgezogenen Linien dargestellten Blöcke, die sich aus den Luminanzblöcken Y0 bis Y3 und den Chrominanzblöcken Cb, Cr zusammensetzen), über den Zwischenspeicher 200 an die Pixel-Berechnungseinheit 10. Nach dem Durchführen der Decodierung durch die Code-Übersetzungseinheit 9 sind die Makroblockdaten Daten, welche die räumlichen Frequenzkomponenten aufweisen.
  • Während der VLD-Verarbeitung des Header-Teils arbeitet die Code-Übersetzungseinheit 9 parallel zu der Header-Analyseverarbeitung des Prozessors 7. Beim Empfangen eines Befehls, der verschiedene Arten von Daten von dem Prozessor 7 abfragt, gibt die Code-Übersetzungseinheit 9 die abgefragten Daten an den Prozessor 7 aus. Beim Abschließen der Decodierung variabler Länge für einen Makroblock gibt die Code-Übersetzungseinheit 9 ein Signal VLD Ende an den Prozessor 7 aus.
  • Der Zwischenspeicher 200 speichert Daten, welche die räumlichen Frequenzkomponenten für einen Block (8 × 8 Pixel) aufweisen, der von der Code-Übersetzungseinheit 9 eingegeben worden ist.
  • Die Pixel-Berechnungseinheit 10 führt die Umkehrquantisierungs- und umgekehrte diskrete Kosinustransformations-Verarbeitung an den Blockdaten durch, die von der Code-Übersetzungseinheit 9 über den Zwischenspeicher 200 in Blockeinheiten übertragen worden sind. Das von der Pixel-Berechnungseinheit 10 angegebene Verarbeitungsergebnis, d.h. Daten, die Pixel-Luminanzwerte oder -differenzen im Fall eines Luminanzblocks darstellen, und Daten, die Pixel-Chrominanzwerte oder -differenzen im Fall eines Chrominanzblocks darstellen, werden über den Zwischenspeicher 201 an die Pixel-Lese/Schreib-Einheit 11 übertragen.
  • Der Zwischenspeicher 210 speichert Pixeldaten von einem Block (8 × 8 Pixel).
  • Die Pixel-Lese/Schreib-Einheit 11 führt die Bewegungskompensationsverarbeitung an dem Verarbeitungsergebnis durch, das von der Pixel-Berechnungseinheit 10 in Blockeinheiten angegeben wird. Insbesondere für prädikative Bilder (P-pictures) oder bidirektional prädikative Bilder (B-pictures) extrahiert die Pixel-Lese/Schreib-Einheit 11 einen rechtwinkligen Bereich, der von dem Bewegungsvektor angegeben wird, aus dem decodierten Referenz-Frame in dem externen Speicher 3 über die Speichersteuereinrichtung 6 und mischt den extrahierten rechtwinkligen Bereich mit dem Block, der von der Pixel-Berechnungseinheit 10 verarbeitet wurde, um ein ursprüngliches Blockbild zu erhalten. Dieses Decodierungsergebnis der Pixel-Lese/Schreib-Einheit 11 wird über die Speichersteuervorrichtung 6 in dem externen Speicher 3 gespeichert.
  • 3 Betriebs-Zeitsteuerung der Komponenten
  • Das Folgende ist eine Beschreibung der Betriebszeitsteuerung der verschiedenen Komponenten der sequenziellen Verarbeitungseinheit 1003 und der vorher beschriebenen Routinenverarbeitungseinheit.
  • 7 ist eine grafische Zeitablauf-Darstellung der Betriebszeitsteuerung der Hauptkomponenten der Decodierverarbeitungseinheit 1002. Es ist zu beachten, dass die hori zontale Achse in 7 die Zeit darstellt, wobei t0 ~ t4 verschiedene Punkte (Zeitpunkte) auf der Zeitachse darstellen.
  • In 7 führt der Prozessor 7 zuerst die Header-Analyseverarbeitung für einen Makroblock durch, (die sich aus der Analyse der Header-Informationen und Berechnung der Bewegungsvektoren zusammensetzt (t0 ~ t2).
  • Damit schließt der Prozessor 7 die Analyse der Header-Informationen (t1) ab und gibt, bevor mit dem Berechnen der Bewegungsvektoren begonnen wird, eine VLD-Startsignalisierung für den Dateninhalt des Makroblocks an die Code-Übersetzungseinheit 9 aus. Nach Beendigung der gesamten Header-Analyseverarbeitung, (das heißt, nach Beendigung der Berechnung der Bewegungsvektoren), beginnt der Prozessor 7 die Audio-Decodierverarbeitung (t2). Wenn die Code-Übersetzungseinheit 9 die Decodierung variabler Länge für den Dateninhalt des Makroblocks abgeschlossen hat (t3), setzt der Prozessor 7 die Audio-Decodierverarbeitung aus und beginnt die Header-Analyseverarbeitung für den nächsten Makroblock.
  • Beim Abschließen der Header-Analyse für einen ersten Makroblock führt der Prozessor 7 die Audio-Decodierverarbeitung statt der Header-Analyse für den nächsten Makroblock durch. Dies geschieht aus dem folgenden Grund. Beim Durchführen der Header-Analyse muss der Prozessor 7 einen Befehl an die Code-Übersetzungseinheit 9 für Informationen für den Header-Teil ausgeben, der durch die VLD-Verarbeitung der Code-Übersetzungseinheit 9 erzeugt wird. Wenn der Prozessor 7 die Header-Analyse durchführt, muss die Code-Übersetzungseinheit 9 demzufolge in der Lage sein, die VLD-Verarbeitung an dem Header-Teil durchzuführen. Wenn jedoch der Prozessor die Header-Analyseverarbeitung abgeschlossen hat, führt die Code-Übersetzungseinheit 9 die VLD-Verarbeitung an dem Dateninhalt des Makroblocks durch und ist somit nicht in der Lage, die VLD-Verarbeitung an dem nächsten Header-Teil durchzuführen.
  • Die Code-Übersetzungseinheit 9 führt die VLD-Verarbeitung an dem Makroblock-Header parallel zu der Header-Analyseverarbeitung durch, die von dem Prozessor 7 durchgeführt wird (t0 ~). Als nächstes empfängt die Code-Übersetzungseinheit 9 die VLD-Startsignalisierung von dem Prozessor 7 und beginnt die VLD-Verarbeitung an dem Dateninhalt des Makroblocks (t1). Beim Abschließen der VLD-Verarbeitung für den Daten inhalt des Makroblocks gibt die Code-Übersetzungseinheit 9 ein Signal VLD Ende an die sequenzielle Verarbeitungseinheit 1003 aus. Infolgedessen setzt der Prozessor 7 die Audio-Decodierverarbeitung aus und beginnt mit der Header-Analyseverarbeitung des nächsten Makroblock-Headers (t3).
  • Die Pixel-Berechnungseinheit 10 und Pixel-Lese/Schreib-Einheit 11 führen jeweils die im Folgenden beschriebenen Prozesse nach den Prozessen der Code-Übersetzungseinheit 9 und der Pixel-Berechnungseinheit 10 in einer Pipeline-Architektur durch.
  • Wie durch die vorher beschriebene Prozesszeitsteuerung gezeigt, räumt der Prozessor 7 der Ausführung der Header-Analyse Priorität ein, so dass jede Komponente der Routinenverarbeitungseinheit 1004 die verschiedenen Arten von Daten, die zum Decodieren eines Makroblocks erforderlich sind, empfangen kann und den Makroblock ohne Verzögerung verarbeiten kann. Durch den Betrieb in einer Pipeline-Architektur kann jede Komponente der Routinenverarbeitungseinheit 1004 mit Hochgeschwindigkeit verarbeiten. Der Prozessor 7 nutzt das Intervall zwischen der Header-Analyse eines Makroblocks und der Header-Analyse des nächsten Makroblocks zum Durchführen der Audio-Decodierverarbeitung. Damit wird die unbelegte Zeit des Prozessors 7 reduziert und somit die gesamte Verarbeitungseffizienz verbessert.
  • Während der Header-Analyseverarbeitung gibt der Prozessor 7 eine VLD-Startsignalisierung für den Dateninhalt des Makroblocks an die Code-Übersetzungseinheit 9 aus, wenn die Analyse der Header-Informationen abgeschlossen ist (t1). Damit wird die VLD-Startzeit vorverlegt, was bedeutet, dass die Zeit, die zum Decodieren eines gesamten Makroblocks benötigt wird, um die Zeit reduziert werden kann, um welche die VLD-Startzeit vorverlegt wird.
  • 4 Betriebssystem OS (Operating System) der Routinenverarbeitungseinheit
  • Der Prozessor 7 führt ein Betriebssystem aus, um die verschiedenen Prozesse mit der vorher beschriebenen Prozesszeitsteuerung effizient ausführen zu lassen. Das Betriebssystem erfasst Unterbrechungssignale, wie beispielsweise die Signale, die am Ende der Header-Analyseverarbeitung oder am Ende der VLD-Verarbeitung für den Dateninhalt eines Makroblocks ausgegeben werden, und schaltet basierend auf diesen Signa len zwischen der Header-Analyse und der Audio-Decodierverarbeitung um. Wie vorher erwähnt, wird der Header-Analyseverarbeitung Priorität eingeräumt.
  • 8 zeigt die Software-Konfiguration des Prozessors 7.
  • In 8 ist der Video-Thread ein Thread, der den Prozessor 7 die Header-Analyseverarbeitung ausführen lässt. Der Audio-Thread ist ein Thread, der den Prozessor 7 die Audio-Decodierverarbeitung ausführen lässt. Der Unbelegt-Thread (idle thread) ist ein Thread, der vom Prozessor 7 ausgeführt wird, um den Prozessor in einen unbelegten Zustand zu versetzen, wenn die Header-Analyseverarbeitung oder die Audio-Decodierverarbeitung nicht ausgeführt werden.
  • Das Betriebssystem ist zwischen dem Prozessor 7 und den Threads positioniert und verwaltet die Zustände der Threads, die sich aufgrund von Unterbrechungen ändern. Jeder Thread befindet sich in einem von drei möglichen Zuständen: einem Ausführungszustand, einem Wartezustand und einem Bereitschaftszustand. Auf der Basis der Änderungen der Zustände der Threads weist das Betriebssystem einen der Threads zu dem Prozessor 7 zu, wobei dem Video-Thread Priorität eingeräumt wird. Wenn ein Fehler entweder in der Header-Analyseverarbeitung oder der Routinenverarbeitung aufgetreten ist, führt das Betriebssystem eine Fehlerverarbeitung durch.
  • 4.1 Unterbrechungssignale
  • 9 ist eine Tabelle, die verschiedene Unterbrechungssignale darstellt, die von dem Betriebssystem erfasst werden. Die zweite Spalte in 9 zeigt die verschiedenen Arten von Unterbrechungssignalen. Die dritte Spalte zeigt die Komponente, die jede spezielle Art von Unterbrechungssignal ausgibt. Die vierte Spalte zeigt die Ursachen der verschiedenen Arten von Unterbrechungssignalen. Es ist zu beachten, dass die erste Spalte dieser Tabelle Identifikationsnummern enthält, die jeder Art von Unterbrechung zugeordnet worden sind, um die folgende Erläuterung zu vereinfachen.
    • ➀ Das Signal Header-Analyse Ende ist ein Signal, das der Prozessor 7 beim Abschließen der Header-Analyseverarbeitung für einen Makroblock ausgibt.
    • ➁ Das Signal Frame Ende ist ein Signal, das der Prozessor 7 anstatt des Signals ➀ Header-Analyse Ende beim Abschließen der Header-Analyseverarbeitung für den letzten Makroblock in einem Frame ausgibt.
    • ➂ Das Signal VLD belegt ist ein Signal, das die Code-Übersetzungseinheit 9 ausgibt. Normalerweise überträgt die Code-Übersetzungseinheit 9 nach dem Empfang eines vom Prozessor 7 ausgegebenen Befehls Daten an den Prozessor 7. Wenn die Code-Übersetzungseinheit 9 die VLD-Verarbeitung der angeforderten Daten jedoch noch nicht abgeschlossen hat, gibt sie ein Signal VLD belegt anstelle der Daten aus.
    • ➃ Das Signal VLD Ende ist ein Signal, das die Code-Übersetzungseinheit 9 beim Abschließen der VLD-Verarbeitung für einen Makroblock ausgibt.
    • ➄ Das vertikale Synchronisationssignal ist ein Signal, das die Medienverarbeitungsvorrichtung 1000 von außen empfängt. Dieses Signal wird verwendet, um den Zyklus zum Decodieren der Makroblöcke in einem Frame mit dem vertikalen Synchronisationssignal abzustimmen.
    • ➅ Das Signal VLD bereit ist ein Signal, das die Code-Übersetzungseinheit 9 nach der Ausgabe des Signals ➂ VLD belegt ausgibt, um anzugeben, dass sie die VLD-Verarbeitung an den vorliegenden Daten abgeschlossen hat.
    • ➆ Das Signal Audiodaten belegt ist ein Signal, das der FIFO-Speicher 4 ausgibt, wenn der FIFO-Speicher 4 vom Prozessor 7 die Anweisung erhalten hat, komprimierte Audiodaten auszugeben, die entsprechenden komprimierten Audiodaten aber erst noch vom externen Speicher 3 empfangen muss.
    • ➇ Das Signal Audiodaten bereit ist ein Signal, das der FIFO-Speicher 4 nach der Ausgabe des Signals ➆ Audiodaten belegt beim Empfangen der entsprechenden komprimierten Audiodaten von dem externen Speicher 3 ausgibt.
    • ➈ Das Signal VLD-Fehler ist ein Signal, das die Code-Übersetzungseinheit 9 ausgibt, wenn ein Fehler in der VLD-Verarbeitung aufgetreten ist.
    • ➉ Das Signal Bewegungskompensationsfehler ist ein Signal. Das die Pixel-Lese/Schreib-Einheit 11 ausgibt, wenn ein Fehler in der Bewegungskompensationsverarbeitung auftritt.
  • 4.2 Zustandsübergang von Threads
  • Die Zustände von Video-Thread und Audio-Thread ändern sich wie im Folgenden beschrieben, wenn die in 9 gezeigten Unterbrechungssignale ➀ bis ➇ generiert werden.
  • 4.2.1 Video-Thread
  • 10 zeigt den Zustandsübergang des Video-Threads. Die Unterbrechungssignale ➀ ~ ➂ und ➃ ~ ➅, die direkt neben den Pfeilen in 10 eingetragen sind, zeigen die Unterbrechungssignale, welche die durch die Pfeile gezeigten Übergange verursachen. Die Legenden, die als (1) bis (3) im Wartezustands-Oval angegeben sind, zeigen spezifische Ursachen für Wartezustände. Diese Ursachen (1) bis (3) entsprechen jeweils Unterbrechungssignalen ➀ ~ ➂ und Unterbrechungssignalen ➃ ~ ➅.
  • Im Einzelnen, wenn der Prozessor 7 die Header-Analyse eines Makroblocks abgeschlossen hat, (was durch das Signal ➀ Header-Analyse Ende gekennzeichnet wird), wechselt der Video-Thread von dem Ausführungszustand in den Wartezustand. Das Ende der VLD-Verarbeitung des Dateninhalts des Makroblocks durch die Code-Übersetzungseinheit 9 wird abgewartet (Legende (1)), und wenn die VLD-Verarbeitung beendet ist, (was durch das Signal ➃ VLD Ende gekennzeichnet wird), bewegt sich der Video-Thread von dem Wartezustand in den Bereitschaftszustand.
  • Auf die gleiche Weise, wenn der Prozessor 7 die Header-Analyse aller Makroblöcke in einem Frame abgeschlossen hat, (was durch das Signal ➁ Frame Ende gekennzeichnet wird), wechselt der Video-Thread von dem Ausführungszustand in den Wartezustand. Die Eingabe eines vertikalen Synchronisationssignals von außen wird abgewartet (Legende (2)), und wenn das vertikale Synchronisationssignal eingegeben ist, (was durch das Signal ➇ Vertikal Ende gekennzeichnet wird), wechselt der Video-Thread von dem Wartezustand in den Bereitschaftszustand.
  • Wenn die Code-Übersetzungseinheit 9 ein Signal VLD belegt ausgibt, (was durch das Unterbrechungssignal ➂ gekennzeichnet wird), wechselt der Video-Thread von dem Ausführungszustand in den Wartezustand, und das Ende der VLD-Verarbeitung für die fraglichen Daten wird abgewartet (Legende (3)). Wenn die Code-Übersetzungseinheit 9 das Signal VLD bereit ausgibt, (was durch das Unterbrechungssignal ➅ gekennzeichnet wird), wechselt der Video-Thread von dem Wartezustand in den Bereitschaftszustand.
  • 4.2.2 Audio-Thread
  • 11 zeigt den Zustandsübergang des Audio-Threads.
  • Die Unterbrechungssignale ➆, ➇, die direkt neben den Pfeilen in 11 eingetragen sind, zeigen die Unterbrechungssignale, welche die von den Pfeilen gezeigten Übergänge verursachen. Das Unterbrechungssignal ➆, der als Legende (4) gezeigte Wartefaktor und das Unterbrechungssignal ➇ entsprechen einander.
  • Im Einzelnen, wenn der FIFO-Speicher 4 ein Signal Audiodaten belegt ausgibt, (was durch das Unterbrechungssignal ➆ gekennzeichnet wird), wechselt der Audio-Thread von dem Ausführungszustand in den Wartezustand, und die Bereitstellung von Daten durch den FIFO-Speicher 4 wird abgewartet (gezeigt durch die Legende (4)). Wenn der FIFO-Speicher 4 das Signal Audiodaten bereit ausgibt, (was durch das Unterbrechungssignal ➇ gekennzeichnet wird), wechselt der Audio-Thread von dem Wartezustand in den Bereitschaftszustand.
  • 4.3 Thread-Verarbeitung
  • Das Betriebssystem weist eine Zustandstabelle auf, in der jeder Thread zusammen mit seinem aktuellen Zustand angegeben ist. Wenn die Unterbrechungssignale ➀ bis ➇ erfasst werden, schreibt das Betriebssystem den Inhalt der Zustandstabelle in Übereinstimmung mit dem Typ des Unterbrechungssignals um. Auf diese Weise verwaltet das Betriebssystem den Zustand von jedem Thread.
  • 12 zeigt ein Beispiel der Zustandstabelle. In 12 zeigt die erste Spalte den Typ des Threads, während die zweite Spalte den aktuellen Zustand des Threads anzeigt. Wenn als ein Beispiel das Betriebssystem das Signal ➀ Header-Analyse Ende erfasst, ändert das Betriebssystem den Zustand des Video-Threads von "Ausführen" in "Warten", wie in 10 gezeigt.
  • Das Betriebssystem schreibt den Inhalt der Zustandstabelle in Übereinstimmung mit dem Zustandsübergang von Zuständen gemäß den Unterbrechungen um, wie in den 10 und 11 gezeigt.
  • 4.4 Zuweisung zu dem Prozessor
  • Nach dem Umschreiben des Zustandstabelle auf der Basis von Unterbrechungen führt das Betriebssystem den Auswahlprozess durch, der den Thread auswählt, der dem Prozessor 7 zugewiesen werden soll.
  • 13 ist ein Ablaufdiagramm, das den Auswahlprozess zeigt, in dem das Betriebssystem einen Thread wählt, der dem Prozessor 7 zugeordnet werden soll.
  • Zuerst nimmt das Betriebssystem Bezug auf die Zustandstabelle und beurteilt, ob sich der Video-Thread in dem Ausführungszustand befindet (Schritt 121). Ist dies der Fall. schließt das Betriebssystem den Auswahlprozess ab.
  • Wenn das Betriebssystem in Schritt 121 feststellt, dass sich der Video-Thread nicht in dem Ausführungszustand befindet, beurteilt das Betriebssystem als nächstes, ob sich der Video-Thread in dem Bereitschaftszustand befindet (Schritt 122). Wenn dies der Fall ist, ändert das Betriebssystem den Zustand des Audio-Threads von dem Ausführungszustand in den Wartezustand und setzt anschließend den Video-Thread in den Ausführungszustand. Damit veranlasst das Betriebssystem, dass der Prozessor 7 von der Verarbeitung eines aktuellen Threads auf die Verarbeitung eines Video-Threads umschaltet (Schritte 123, 124).
  • Wie vorher beschrieben, schließt das Betriebssystem, nachdem es festgestellt hat, dass sich der Video-Thread in dem Ausführungszustand befindet, den Auswahlprozess ab. Stellt das Betriebssystem jedoch fest, dass sich der Video-Thread in dem Bereitschaftszustand befindet, setzt es den Video-Thread in den Ausführungszustand, um den Video-Thread mit Priorität ausführen zu lassen.
  • Wird in Schritt 122 festgestellt, dass sich der Video-Thread nicht in dem Bereitschaftszustand befindet, was bedeutet, dass sich der Video-Thread in dem Wartezustand befindet, beurteilt das Betriebssystem, ob der Audio-Thread sich in dem Bereitschaftszustand befindet (Schritt 125).
  • Wird in Schritt 125 festgestellt, dass sich der Audio-Thread in dem Bereitschaftszustand befindet, setzt das Betriebssystem den Audio-Thread in den Ausführungszustand (Schritt 126).
  • Wird in Schritt 125 festgestellt, dass sich der Audio-Thread nicht in dem Bereitschaftszustand befindet, was bedeutet, dass sich der Video-Thread und der Audio-Thread in dem Wartezustand befinden, veranlasst das Betriebssystem, dass der Prozessor 7 ein Programm ausführt, das als ein Unbelegt-Thread bezeichnet wird, der keinerlei Verarbeitung enthält (Schritt 127).
  • 4.5 Fehlerverarbeitung
  • Beim Erfassen des Signals ➈ VLD-Fehler oder des Signals ➉ Bewegungskompensationsfehler, die in 9 dargestellt sind, veranlasst das Betriebssystem, dass der Prozessor 7 die Verarbeitung des Threads aussetzt, der gerade verarbeitet wird, und führt eine Fehlerverarbeitung durch. Bei der Fehlerverarbeitung gibt das Betriebssystem ein Rücksetzsignal an die Pixel-Berechnungseinheit 10 und die Pixel-Lese/Schreib-Einheit 11 der Routinenverarbeitungseinheit 1004 aus. Als Folge werden alle der Daten verworfen, die sich auf die Decodierung des aktuellen Makroblocks beziehen. Beim Empfangen des Rücksetzsignals, das zu diesem Zeitpunkt eingegeben wird, führt die Pixel-Lese/Schreib-Einheit 11 einen Fehlerkompensationsprozess durch. Hier ist der Fehlerkompensationsprozess ein Prozess, der einen Makroblock in einer entsprechenden Position in einem vorhergehenden Frame aus dem externen Speicher 3 ausliest, so dass ein Makroblock in dem nächsten Slice decodiert werden kann.
  • Nach dem Ausgeben des Rücksetzsignals schreibt das Betriebssystem die Zustandstabelle so um, dass sich der Video-Thread in dem Bereitschaftszustand befindet. Als Folge setzt das Betriebssystem dann den Video-Thread in den Ausführungszustand, indem der in 13 dargestellte Auswahlprozess durchgeführt wird. Der Prozessor 7 wird dann dem Video-Thread zugewiesen und führt somit die Header-Analyse des Makroblocks in dem nächsten Slice aus.
  • 5 Betrieb
  • Das Folgende ist eine Beschreibung des Betriebs der Medienverarbeitungsvorrichtung 1000, deren Konstruktion vorher beschrieben wurde.
  • 5.1 Betrieb der Eingabe/Ausgabe-Verarbeitungseinheit
  • In der Eingabe/Ausgabe-Verarbeitungseinheit 1001 führt der Eingabe/Ausgabe-Prozessor 5 die Steuerung so durch, dass die MPEG-Ströme, die asynchron von der Strom-Eingabeeinheit 1 eingegeben werden, temporär über den Pufferspeicher 2 und die Speichersteuereinrichtung 6 in dem externen Speicher 3 gespeichert werden. Die eingegebenen MPEG-Ströme werden auch in dem FIFO-Speicher 4 über die Speichersteuereinrichtung 6 gespeichert. Hier liefert der Eingabe/Ausgabe-Prozessor 5 komprimierte Videodaten und komprimierte Audiodaten in Übereinstimmung mit der restlichen Datenmenge in dem FIFO-Speicher 4. Auf diese Weise stellt der Eingabe/Ausgabe-Prozessor 5 sicher, dass eine konstante Menge von komprimierten Videodaten und komprimierten Audiodaten in dem FIFO-Speicher 4 vorhanden ist. Dies bedeutet, dass Überschüsse und Mangel an Daten in dem FIFO-Speicher 4 vermeiden werden, und dass sich die Decodier-Verarbeitungseinheit 1002 auf die Decodierverarbeitung konzentrieren kann, ohne die asynchrone Eingabe und Ausgabe von Daten berücksichtigen zu müssen. Es ist anzumerken, dass der bisher beschriebene Betrieb von der Eingabe/Ausgabe-Verarbeitungseinheit 1001 unabhängig von und parallel zu der Verarbeitung der Decodier-Verarbeitungseinheit 1002 durchgeführt wird.
  • 5.2 Betrieb der Decodierverarbeitungseinheit
  • Die Decodier-Verarbeitungseinheit 1002 veranlasst, dass die von der Code-Übersetzungseinheit 9, der Pixel-Berechnungseinheit 10 und der Pixel-Lese/Schreib-Einheit 11 decodierten MPEG-Stromdaten in dem FIFO-Speicher 4 gespeichert werden. 14A bis 16B zeigen die Decodierverarbeitung ab dem FIFO-Speicher 4 für den Fall, dass kein Fehler auftritt (Standardbetrieb), für den Fall, dass ein VLD-Fehler auftritt und den Fall, dass ein Bewegungskompensationsfehler auftritt.
  • 5.2.1 Standardbetrieb
  • 14A und 14B zeigen, basierend auf 7, die detaillierten Arbeitsvorgänge, die von den verschiedenen Komponenten der Decodier-Verarbeitungseinheit während eines Decodiervorgangs durchgeführt werden.
  • Wie in 14A und 14B gezeigt, wechselt der Prozessor 7 unter der Steuerung des Betriebssystems wiederholt zwischen der Header-Analyseverarbeitung, die für den Video-Thread durchgeführt wird, und der Audio-Decodierverarbeitung, die für den Audio-Thread durchgeführt wird. Dieses Umschalten des Betriebs des Prozessors 7 basiert auf dem Signal ➀ Header-Analyse Ende und dem Signal ➃ VLD Ende.
  • Im Einzelnen führt der Prozessor 7 die Header-Analyse eines Makroblocks durch. Nachdem er die Code-Übersetzungseinheit 9, die Pixel-Berechnungseinheit 10 und die Pixel-Lese/Schreib-Einheit 11 über das Analyse-Ergebnis informiert hat, weist der Prozessor 7 die Code-Übersetzungseinheit 9 an, mit der VLD-Verarbeitung des Makroblocks zu beginnen. Danach berechnet der Prozessor 7 die Bewegungsvektoren und gibt das Berechnungsergebnis an die Pixel-Lese/Schreib-Einheit 11 aus. Abschließend gibt der Prozessor 7 das Signal ➀ Header-Analyse Ende aus.
  • Beim Erfassen des Signals ➀ Header-Analyse Ende führt das Betriebssystem den in 13 dargestellten Auswahlprozess durch und setzt den Audio-Thread in den Ausführungszustand. Dies führt dazu, dass der Prozessor 7 die Audio-Decodierverarbeitung beginnt. Der Prozessor 7 speichert die Audiodaten, die aus der Decodierung resultieren, temporär in dem internen Speicher 8. Die Speichersteuereinrichtung 6 unterwirft diese Daten dann einer DMA- (Direct Memory Access/Direktspeicherzugriff-) Übertragung zum externen Speicher 3.
  • Beim Erfassen des Signals ➃ VLD Ende während der Audio-Decodierverarbeitung setzt das Betriebssystem den Video-Thread zunächst in den Bereitschaftszustand und setzt durch Ausführen des in 13 dargestellten Auswahlprozesses den Audio-Thread in den Bereitschaftszustand und den Video-Thread in den Ausführungszustand. Als Folge beginnt der Prozessor 7 mit der Header-Analyse des nächsten Makroblocks.
  • Beim Empfang einer VLD-Startsignalisierung für einen Makroblock vom Prozessor 7 führt die Code-Übersetzungseinheit 9 die VLD-Verarbeitung an dem Dateninhalt des Makroblocks aus und speichert die decodierten Blöcke aus dem Makroblock in den Zwischenspeicher 200. Beim Abschließen der VLD-Verarbeitung gibt die Code-Übersetzungseinheit 9 das Signal ➃ VLD Ende aus.
  • Parallel zum Betrieb der Code-Übersetzungseinheit 9 führt die Pixel-Berechnungseinheit 10 die Umkehrquantisierungs- und umgekehrte diskrete Kosinustransformations-Verarbeitung an jedem Block in den Makroblockdaten durch, die in dem Zwischenspeicher 200 gespeichert sind, und speichert die Ergebnisse in dem Zwischenspeicher 201.
  • Parallel zu der Verarbeitung der Pixel-Berechnungseinheit 10 schneidet die Pixel-Lese/Schreib-Einheit 11 einen rechtwinkligen Bereich aus dem Referenz-Frame in dem externen Speicher 3 aus und führt eine Blocksynthese, wie in den 14A und 14B gezeigt, basierend auf den Blockdaten in dem Zwischenspeicher 210 und den Bewegungsvektoren durch, die während der Header-Analyseverarbeitung vom Prozessor 7 empfangen wurden. Die Pixel-Lese/Schreib-Einheit 11 speichert dann die Ergebnisse der Blocksynthese über die Speichersteuereinrichtung 6 in dem externen Speicher 3.
  • Der vorher genannte Betrieb gilt für den Fall, dass ein verarbeiteter Makroblock kein übersprungener Makroblock ist. Wenn ein übersprungener Makroblock verarbeitet wird, arbeiten weder die Code-Übersetzungseinheit 9 noch die Pixel-Berechnungseinheit 10, sondern es ist nur die Pixel-Lese/Schreib-Einheit 11 in Betrieb. Da ein übersprungener Makroblock das gleiche Bild ist wie ein rechtwinkliger Bereich in dem Referenz-Frame, kopiert die Pixel-Lese/Schreib-Einheit 11 diesen als das decodierte Bild in den externen Speicher 3.
  • In diesem Fall wird das Signal ➃ VLD Ende, das von der Code-Übersetzungseinheit 9 an den Prozessor 7 ausgegeben wird, gemäß dem folgenden Verfahren generiert. Ein logisches UND wird für ein Signal berechnet, das angibt, dass der Prozessor 7 ein Steuersignal an die Pixel-Lese/Schreib-Einheit 11 gesendet hat, um die Bewegungskompensation zu beginnen, ein Signal, das angibt, dass die Bewegungskompensation für die Pixel-Lese/Schreib-Einheit 11 möglich ist, und ein Signal, das angibt, dass der aktuelle Makroblock ein übersprungener Makroblock ist. Danach wird ein logisches ODER als das Ergebnis dieses logischen UND und eines Signals EOMB (End Of MacroBlock/Makroblock Ende) angenommen, das an das Ende eines Makroblocks angehängt ist, und das Ergebnis wird als das Signal ➃ VLD Ende in den Prozessor 7 eingegeben.
  • 5.2.2 Betrieb für einen VLD-Fehler
  • 15A und 15B zeigen den Arbeitsvorgang, der von der Code-Übersetzungseinheit 9 durchgeführt wird, wenn ein VLD-Fehler aufgetreten ist.
  • Wie in 15A und 15B gezeigt, veranlasst das Betriebssystem beim Erfassen eines Signals ➈ VLD-Fehler, das von der Code-Übersetzungseinheit 9 während der Header-Analyseverarbeitung des Prozessors 7 ausgegeben wird, dass die Fehlerverarbeitung durchgeführt wird, und gibt somit ein Rücksetzsignal an die Pixel-Berechnungseinheit 10 und die Pixel-Lese/Schreib-Einheit 11 aus. Beim Empfang dieses Rücksetzsignals verwerten die Pixel-Berechnungseinheit 10 und die Pixel-Lese/Schreib-Einheit 11 die Daten, die sich auf den Makroblock beziehen, der decodiert wird. Nach der Fehlerverarbeitung setzt das Betriebssystem den Video-Thread in den Bereitschaftszustand. Dies bedeutet, dass in dem in 13 dargestellten Auswahlprozess das Betriebssystem den Video-Thread in den Ausführungszustand setzt und so den Prozessor 7 veranlasst, mit der Header-Analyse eines Makroblocks in dem nächsten Slice zu beginnen.
  • Der Betrieb danach ist der Gleiche wie in 14a und 14B und wird daher nicht beschrieben.
  • 5.2.3 Betrieb für einen Bewegungskompensationsfehler
  • 16A und 16B zeigen den Arbeitsvorgang, der von der Pixel-Lese/Schreib-Einheit 11 durchgeführt wird, wenn ein Bewegungskompensationsfehler aufgetreten ist.
  • Wie in 16A und 16B gezeigt, gibt das Betriebssystem beim Erfassen eines Signals ➉ Bewegungskompensationsfehler, das von der Pixel-Lese/Schreib-Einheit 11 während der Audio-Decodierverarbeitung des Prozessors 7 ausgegeben wurde, ein Rücksetzsignal an die Code-Übersetzungseinheit 9, die Pixel-Berechnungseinheit 10 und die Pixel-Lese/Schreib-Einheit 11 aus. Als ein Ergebnis verwerten die Code-Übersetzungseinheit 9, die Pixel-Berechnungseinheit 10 und die Pixel-Lese/Schreib-Einheit 11 die Daten, die sich auf den Makroblock beziehen, der decodiert wird. Nach dem Beenden der Fehlerverarbeitung setzt das Betriebssystem den Video-Thread in den Bereitschaftszustand. Dies bedeutet, dass in dem in 13 dargestellten Auswahlprozess das Betriebssystem den Video-Thread in den Ausführungszustand setzt und so den Prozessor 7 veranlasst, mit der Header-Analyseverarbeitung eines Makroblocks in dem nächsten Slice zu beginnen.
  • Der Betrieb danach ist der Gleiche wie in 14a und 14B und wird daher nicht beschrieben.
  • Mit der vorher beschriebenen Konstruktion teilt die Medienverarbeitungsvorrichtung der vorliegenden Erfindung die Decodierverarbeitung für komprimierte Videodaten zwischen der sequenziellen Verarbeitungseinheit 1003 und der Routinenverarbeitungseinheit 1004 in der Decodier-Verarbeitungseinheit 1002 auf. Verglichen mit herkömmlichen Techniken, bei denen die gesamte Decodierung von komprimierten Videodaten von einem Prozessor durchgeführt wird, kann die Last der sequenziellen Verarbeitungseinheit 1003 und der Routinenverarbeitungseinheit 1004 reduziert werden, wodurch die gesamte Effizienz der Verarbeitung erhöht wird.
  • Die sequenzielle Verarbeitungseinheit führt die Header-Analyseverarbeitung für jeden Makroblock mit Priorität durch, wodurch Verzögerungen bei der Decodierverarbeitung der Routinenverarbeitungseinheit, die basierend auf den Ergebnissen der Header-Ana lyse durchgeführt wird, vermieden werden. Da für die Audio-Decodierverarbeitung relativ wenig Verarbeitung erforderlich ist im Vergleich zur Decodierung von Videodaten, wird diese Audio-Decodierverarbeitung durch die sequenzielle Verarbeitungseinheit zwischen der Header-Analyseverarbeitung durchgeführt. Als Folge kann die Verarbeitung in einer kürzeren Zeit abgeschlossen werden. Da sich die Verarbeitungseffizienz erhöht, kann die Decodier-Verarbeitungseinheit 1002 die vollständige Decodierung von MPEG-Strömen durchführen, ohne einen Prozessor mit einem Hochgeschwindigkeits-Betriebstakt zu verwenden. Wenn, als ein spezielles Beispiel, die vorliegende Medienverarbeitungsvorrichtung mit einem einzigen LSI-Chip ausgeführt ist, kann die vollständige Decodierung von MPEG-Strömen mit einem Prozessor erreicht werden, dessen Betriebstakt kleiner ist als 100 MHz. In Tests stellte sich heraus, dass ein 54-MHz-Prozessor ausreichend war.
  • Es ist anzumerken, dass die vorliegende Erfindung durch einen normalen Rechner ausgeführt werden kann, der eine Standard-CPU (Central Processing Unit/Zentraleinheit) und einen digitalen Signalprozessor DSP (Digital Signal Processor) enthält. In diesem Fall werden ein Header-Analyseprogramm, ein Audio-Decodierprogramm, ein Betriebssystemprogramm und ein Routinenverarbeitungsprogramm vorher in dem Hauptspeicher des Arbeitsplatzrechners installiert. Das Header-Analyseprogramm führt die Header-Analyse für jeden Makroblock durch, der in den komprimierten Videodaten enthalten ist. Das Audio-Decodierprogramm decodiert die komprimierten Audiodaten. Das Betriebssystemprogramm schaltet zwischen dem Header-Analyseprogramm und dem Audio-Decodierprogramm um, wobei Ersterem Priorität eingeräumt wird. Das Routinenverarbeitungsprogramm führt die Decodierverarbeitung für komprimierte Videodaten neben der Header-Analyse durch. In einem solchen Rechner führt die Standard-CPU das Header-Analyseprogramm, das Audio-Decodierprogramm und das Betriebssystemprogramm aus, während der digitale Signalprozessor das Routinenverarbeitungsprogramm ausführt. Dies bedeutet, dass in der Ausführungsform die Standard-CPU die sequenzielle Verarbeitung der sequenziellen Verarbeitungseinheit 1003 ausführt, während der digitale Signalprozessor die Routinenverarbeitung der Routinenverarbeitungseinheit 1004 ausführt.
  • Bei der vorher genannten Konfiguration führt die Standard-CPU das Header-Analyseprogramm ohne Verzögerung durch und führt das Audio-Decodierprogramm in der nicht belegten Zeit zwischen aufeinanderfolgenden Ausführungen des Header-Analyseprogramms durch. Dies erhöht den Durchsatz der Standard-CPU. Da die Standard-CPU das Header-Analyseprogramm ohne Verzögerungen durchführt, kann der digitale Signalprozessor die Analyse-Ergebnisse des Header-Analyseprogramms außerdem schnell empfangen und beginnt somit rasch mit der Ausführung des Routinenverarbeitungsprogramms.
  • Obwohl die vorliegende Erfindung vollständig beispielhaft beschrieben wurde unter Bezugnahme auf die begleitenden Zeichnungen, ist anzumerken, dass verschiedene Änderungen und Modifizierungen innerhalb des Umfangs der Ansprüche im Anhang für den Fachmann offenkundig sind.

Claims (17)

  1. Medienverarbeitungsvorrichtung (1000), die einen Datenstrom mit komprimierten Audiodaten und komprimierten Videodaten decodiert, wobei die Medienverarbeitungsvorrichtung Folgendes umfasst: ein sequentielles Verarbeitungsmittel (1003), das einen Headeranalyseprozess an den komprimierten Videodaten und einen Audiodecodierprozess an den komprimierten Audiodaten durchführt; ein Routinenverarbeitungsmittel (1004) zum Durchführen eines Decodierprozesses für die komprimierten Videodaten abgesehen von dem Headeranalyseprozess; dadurch gekennzeichnet, dass das sequentielle Verarbeitungsmittel mit einem Prozessor (7) den Headeranalysevorgang Block für Block und den Audiodecodierprozess durchführt; wobei der Headeranalyseprozess für einen Block nach dem Empfang einer Startanzeige für den Block gestartet wird; wobei der Audiodecodierprozess während Intervallen zwischen dem Abschluss eines Headeranalyseprozesses für einen Block und dem Empfang einer Startanzeige für einen nächsten Block durchgeführt wird; wobei das Routinenverarbeitungsmittel den Decodierprozess Block für Block mit einem anderen Mechanismus als dem Prozessor (7) durchführt; und wobei der Decodierprozess für den Block mit Daten, die mit dem an dem Block durchgeführten Headeranalyseprozess erhalten wurden, und zum Ausgeben einer Startanzeige für einen nächsten Block an das sequentielle Verarbeitungsmittel nach dem Anfang und vor dem Ende des Decodierprozesses an dem Block durchgeführt wird.
  2. Medienverarbeitungsvorrichtung nach Anspruch 1, wobei das sequentielle Verarbeitungsmittel einen Speicher (8) beinhaltet, der einen Headeranalysethread, einen Audiodecodierthread und einen Threadumschaltthread speichert, wobei der Prozessor die Threads in dem Speicher durchführt, um Folgendes zu realisieren: ein Headeranalysemittel, das den Headeranalyseprozess infolge dessen durchführt, dass der Prozessor den Headeranalysethread in dem Speicher ausführt; ein Audiodecodiermittel, das den Audiodecodierprozess infolge dessen durchführt, dass der Prozessor den Audiodecodierthread in dem Speicher ausführt; und ein Steuermittel, das die Umschaltung eines dem Prozessor zugewiesenen Thread so steuert, dass der Headeranalyseprozess Priorität gegenüber dem Audiodecodierprozess erhält, wobei das Steuermittel von dem den Threadumschaltthread ausführenden Prozessor realisiert wird.
  3. Medienverarbeitungsvorrichtung nach Anspruch 2, wobei das Steuermittel Folgendes beinhaltet: ein Unterbrechungserkennungsmittel zum Erkennen des Auftretens von einer aus einer Mehrzahl von Unterbrechungen, wobei Unterbrechungstyp 1 vom Headeranalysemittel und Unterbrechungstyp 2 vom Routinenverarbeitungsmittel ausgegeben wird; ein Zustandsmanagementmittel zum Verwalten eines Zustands des Headeranalysemittels und eines Zustands des Audiodecodiermittels auf der Basis eines Typs einer erkannten Unterbrechung, wobei jeder Zustand ein Ausführungszustand, ein Wartezustand oder ein Bereitschaftszustand ist; und Umschaltmittel zum Umschalten, wenn der Zustand des Headeranalysemittels vom Wartezustand in den Bereitschaftszustand gewechselt ist, eines dem Prozessor zugewiesenen Thread auf den Headeranalysethread.
  4. Medienverarbeitungsvorrichtung nach Anspruch 3, wobei das Zustandsmanagementmittel Folgendes beinhaltet: eine Zustandstabelle zum Speichern des Zustands des Headeranalysemittels und des Zustands des Audiodecodiermittels; und Zustandsaktualisierungsmittel zum Aktualisieren der Zustandstabelle auf der Basis des erkannten Unterbrechungstyps.
  5. Medienverarbeitungsvorrichtung nach Anspruch 4, wobei der vorbestimmte Block ein Makroblock ist, der in den komprimierten Videodaten im Datenstrom enthalten ist, wobei Unterbrechungstyp 1 vom Headeranalysemittel nach Abschluss des Headeranalyseprozesses für einen Makroblock und Unterbrechungstyp 2 vom Routinenverarbeitungsmittel nach dem Anfang und vor dem Ende des Decodierprozesses für einen Makroblock ausgegeben wird; wobei das Zustandsaktualisierungsmittel den Zustand des Headeranalysemittels in der Zustandstabelle in den Wartezustand ändert, wenn das Unterbrechungserkennungsmittel Unterbrechungstyp 1 erkannt hat, und den Zustand des Headeranalysemittels in der Zustandstabelle in den Bereitschaftszustand ändert, wenn das Unterbrechungserkennungsmittel Unterbrechungstyp 2 erkannt hat.
  6. Medienverarbeitungsvorrichtung nach Anspruch 3, 4 oder 5, wobei das Headeranalysemittel im Wartezustand ist und der Zustand des Audiodecodiermittels vom Wartezustand in den Bereitschaftszustand gewechselt ist, das Umschaltmittel einen dem Prozessor zugewiesenen Thread auf den Audiodecodierthread umschaltet.
  7. Medienverarbeitungsvorrichtung nach Anspruch 2, wobei das Routinenverarbeitungsmittel Folgendes beinhaltet: ein Datenkonvertierungsmittel zum Ausführen einer Decodierung variabler Länge an den komprimierten Videodaten; ein Rechenmittel zum Ausführen einer Umkehrquantisierung und einer umgekehrten diskreten Kosinustransformation an Bildblöcken, die von der Decodierung variabler Länge resultieren; und Synthetisiermittel zum Ausführen eines Bewegungskompensationsprozesses durch Synthetisieren von Bildblöcken, die von der umgekehrten diskreten Kosinustransformation mit zuvor decodierten Bildblöcken resultieren, um decodierte Bilddaten zu erzeugen, wobei das Headeranalysemittel Folgendes beinhaltet: Einholmittel zum Einholen von Headerinformationen, die einer Decodierung variabler Länge unterzogen wurden, durch Ausgeben einer Anzeige an das Datenkonvertierungsmittel; Analysemittel zum Durchführen einer Analyse an den eingeholten Headerinformationen und dann Berechnen von Bewegungsvektoren; Avisierungsmittel zum Avisieren des Routinenverarbeitungsmittels über Parameter, die durch die Analyse des Analysemittels erhalten wurden; und Startanzeigemittel zum Ausgeben einer Startanzeige an das Datenkonvertierungsmittel an einem vorbestimmten Punkt während der Headeranalyseverarbeitung, wobei die Startanzeige veranlasst, dass das Datenkonvertierungsmittel eine Decodierung variabler Länge an komprimierten Bildaten außer den Headerinformationen startet.
  8. Medienverarbeitungsvorrichtung nach Anspruch 7, wobei das Startanzeigemittel die Startanzeige ausgibt, bevor das Analysemittel die Bewegungsvektoren berechnet, und das Avisierungsmittel das Synthesemittel über die berechneten Bewegungsvektoren avisiert.
  9. Medienverarbeitungsvorrichtung nach Anspruch 8, wobei das Steuermittel Folgendes beinhaltet: Unterbrechungserkennungsmittel zum Erkennen des Auftretens von einer aus einer Mehrzahl von Unterbrechungen, wobei Unterbrechungstyp 1 vom Headeranalysemittel, Unterbrechungstyp 2 vom Routinenverarbeitungsmittel, Unterbrechungstyp 3 vom Datenkonvertierungsmittel und Unterbrechungstyp 4 vom Synthetisierungsmittel ausgegeben wird; Fehlerverarbeitungsmittel, um zu veranlassen, dass das Routinenverarbeitungsmittel Daten in Bezug auf einen vorbestimmten Block verwirft, und einen Zustand des Headeranalysemittels in einen Bereitschaftszustand ändert, wenn das Unterbrechungserkennungsmittel eine Fehlerunterbrechung erkannt hat; und Zustandsmanagementmittel zum Verwalten eines Zustands des Headeranalysemittels und eines Zustands des Audiodecodiermittels auf der Basis eines erkannten Unterbrechungstyps, wobei jeder Zustand ein Ausführungszustand, ein Wartezustand oder ein Bereitschaftszustand ist; und Umschaltmittel zum Umschalten eines dem Prozessor zugewiesenen Thread auf den Headeranalysethread, wenn der Zustand des Headeranalysemittels vom Wartezustand in den Bereitschaftszustand gewechselt ist.
  10. Medienverarbeitungsvorrichtung nach Anspruch 9, wobei das Zustandsmanagementmittel Folgendes beinhaltet: eine Zustandstabelle zum Speichern des Zustands des Headeranalysemittels und des Zustands des Audiodecodiermittels; und ein Zustandsaktualisierungsmittel zum Aktualisieren der Zustandstabelle auf der Basis des erkannten Unterbrechungstyps.
  11. Medienverarbeitungsvorrichtung nach Anspruch 10, wobei der vorbestimmte Block ein Makroblock ist, der in den komprimierten Videodaten im Datenstrom enthalten ist, wobei Unterbrechungstyp 1 vom Headeranalysemittel nach Abschluss des Headeranalyseprozesses für einen Makroblock ausgegeben wird, wobei Unterbrechungstyp 2 vom Routinenverarbeitungsmittel nach dem Anfang und vor dem Ende des Decodierprozesses für einen Makroblock ausgegeben wird, wobei Unterbrechungstyp 3 vom Datenkonvertierungsmittel ausgegeben wird, wenn ein Fehler während einer Decodierung variabler Länge aufgetreten ist, wobei Unterbrechungstyp 4 vom Synthetisierungsmittel ausgegeben wird, wenn ein Fehler während des Bewegungskompensationsprozesses aufgetreten ist, wobei das Zustandsaktualisierungsmittel den Zustand des Headeranalysemittels in der Zustandstabelle in den Wartezustand ändert, wenn das Unterbrechungserkennungsmittel Unterbrechungstyp 1 erkannt hat, und den Zustand des Headeranalysemittels in der Zustandstabelle in den Bereitschaftszustand ändert, wenn das Unterbrechungserkennungsmittel Unterbrechungstyp 2 erkannt hat, und wobei, wenn das Unterbrechungserkennungsmittel Unterbrechungstyp 3 oder Unterbrechungstyp 4 erkannt hat, das Fehlerverarbeitungsmittel das Routinenverarbeitungsmittel veranlasst, Daten in Bezug auf einen vorbestimmten Block zu verwerfen, und das Zustandsaktualisierungsmittel den Zustand des Headeranalysemittels in den Bereitschaftszustand ändert.
  12. Medienverarbeitungsvorrichtung nach Anspruch 7, wobei das Steuermittel Folgendes beinhaltet: ein Unterbrechungserkennungsmittel zum Erkennen des Auftretens von einer aus einer Mehrzahl von Unterbrechungen, wobei Unterbrechungstyp 1 vom Headeranalysemittel nach Abschluss des Headeranalyseprozesses für einen vorbestimmten Block ausgegeben wird, wobei Unterbrechungstyp 2 vom Routinenverarbeitungsmittel nach dem Anfang und vor dem Ende des Decodierprozesses für einen vorbestimmten Block ausgegeben wird, wobei Unterbrechungstyp 3 vom Headeranalysemittel nach Abschluss des Headeranalyseprozesses für jeden vorbestimmten Block in einem Frame ausgegeben wird, wobei Unterbrechungstyp 4 vom Datenkonvertierungsmittel ausgegeben wird, wenn die Decodierung variabler Länge für die Headerinformationen nicht fertig ist, wenn das Erhaltungsmittel die Anzeige ausgibt, wobei Unterbrechungstyp 5 ein vertikales Synchronisationssignal ist, das von außerhalb der Medienverarbeitungsvorrichtung eingegeben wird, wobei Unterbrechungstyp 6 vom Datenkonvertierungsmittel nach Unterbrechungstyp 4 ausgegeben wird, wenn die Decodierung variabler Länge für die Headerinformationen abgeschlossen ist, wobei Unterbrechungstyp 7 vom Speicher ausgegeben wird, wenn der Speicher keine Daten hat, die vom Audiodecodiermittel angefordert wurden, und wobei Unterbrechungstyp 8 vom Speicher nach Unterbrechungstyp 7 ausgegeben wird, wenn die Daten, die vom Audiodecodiermittel ausgegeben wurden, in den Speicher eingegeben wurden; Zustandsmanagementmittel zum Verwalten eines Zustands des Headeranalysemittels und eines Zustands des Audiodecodiermittels auf der Basis eines erkannten Unterbrechungstyps, wobei jeder Zustand ein Ausführungszustand, ein Wartezustand oder ein Bereitschaftszustand ist; und Umschaltmittel zum Umschalten, wenn der Zustand des Headeranalysemittels vom Wartezustand in den Bereitschaftszustand gewechselt ist, eines dem Prozessor zugewiesenen Threads auf den Headeranalysethread.
  13. Medienverarbeitungsvorrichtung nach Anspruch 12, wobei das Zustandsmanagementmittel Folgendes beinhaltet: eine Zustandstabelle zum Speichern des Zustands des Headeranalysemittels und des Zustands des Audiodecodiermittels; und Zustandsaktualisierungsmittel zum Aktualisieren der Zustandstabelle auf der Basis des erkannten Unterbrechungstyps.
  14. Medienverarbeitungsvorrichtung nach Anspruch 13, wobei das Zustandsaktualisierungsmittel den Zustand des Headeranalysemittels in der Zustandstabelle in den Wartezustand ändert, wenn das Unterbrechungserkennungsmittel Unterbrechungstyp 1, Unterbrechungstyp 3 oder Unterbrechungstyp 4 erkannt hat, den Zustand des Headeranalysemittels in der Zustandstabelle in den Bereitschaftszustand ändert, wenn das Unterbrechungserkennungsmittel Unterbrechungstyp 2, Unterbrechungstyp 5 oder Unterbrechungstyp 6 erkannt hat, den Zustand des Audiodecodiermittels in der Zustandstabelle in den Wartezustand ändert, wenn das Unterbrechungserkennungsmittel Unterbrechungstyp 7 erkannt hat, und den Zustand des Audiodecodiermittels in der Zustandstabelle in den Bereitschaftszustand ändert, wenn das Unterbrechungserkennungsmittel Unterbrechungstyp 8 erkannt hat.
  15. Rechnerlesbares Speichermedium, das ein Programm speichert, das einen Computer veranlasst, einen Datenstrom zu decodieren, der komprimierte Audiodaten und komprimierte Videodaten enthält, wobei das Programm Folgendes umfasst: einen Headeranalyseprozess zum Analysieren eines Headers eines in dem Datenstrom enthaltenen Blocks; einen Audiodecodierprozess zum Decodieren der komprimierten Audiodaten in dem Datenstrom; einen Steuerprozess zum Umschalten zwischen der Headeranalyseverarbeitung und dem Audiodecodierprozess; und einen Routinenprozess zum Ausführen eines Decodierprozesses für die komprimierten Videodaten in dem Datenstrom, und wobei der Decodierprozess den Headeranalyseprozess nicht beinhaltet; dadurch gekennzeichnet, dass: der Headeranalyseprozess Block für Block durchgeführt wird, beginnend für den Block nach dem Empfang einer Startanzeige für den Block; wobei der Audiodecodierprozess während Intervallen zwischen dem Abschluss eines Headeranalyseprozesses für einen Block und dem Empfang einer Startanzeige für einen nächsten Block durchgeführt wird; der Routinenprozess den Decodierprozess Block für Block durchführt; und der Decodierprozess für den Block mit Daten, die von dem an dem Block durchgeführten Headeranalyseprozess erhalten wurden, und zum Ausgeben einer Startanzeige für einen nächsten Block durchgeführt wird, der in dem Headeranalyseprozess nach dem Anfang und vor dem Ende des Decodierprozesses an dem Block verarbeitet werden soll.
  16. Rechnerlesbares Speichermedium nach Anspruch 15, wobei der Computer eine Medienverarbeitungsvorrichtung ist, die einen ersten Prozessor und einen zweiten Prozessor hat, wobei der erste Prozessor den Headeranalyseprozess, den Audiodecodierprozess und den Steuerprozess ausführt und der zweite Prozessor den Routinenprozess ausführt.
  17. Rechnerlesbares Speichermedium nach Anspruch 16, wobei der Steuerprozess Folgendes beinhaltet: einen Unterbrechungserkennungsprozess zum Erkennen eines Unterbrechungstyps aus einer Mehrzahl von Unterbrechungstypen; einen Zustandsmanagementprozess zum Verwalten eines Zustands des Headeranalyseprozesses und eines Zustands des Audiodecodierprozesses auf der Basis des erkannten Unterbrechungstyps, wobei jeder Zustand ein Ausführungszustand, ein Wartezustand oder ein Bereitschaftszustand ist; und ein Umschaltprozess zum Umschalten, wenn der Zustand des Headeranalyseprozesses vom Wartezustand in den Bereitschaftszustand gewechselt ist, eines vom ersten Prozessor ausgeführten Prozesses vom Audiodecodierprozess auf den Headeranalyseprozess.
DE69825710T 1997-11-28 1998-11-27 Audio-Video Dekodierungssystem Expired - Lifetime DE69825710T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP32743497 1997-11-28
JP32743497 1997-11-28

Publications (2)

Publication Number Publication Date
DE69825710D1 DE69825710D1 (de) 2004-09-23
DE69825710T2 true DE69825710T2 (de) 2005-07-14

Family

ID=18199130

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69825710T Expired - Lifetime DE69825710T2 (de) 1997-11-28 1998-11-27 Audio-Video Dekodierungssystem

Country Status (5)

Country Link
US (1) US6782368B2 (de)
EP (1) EP0919953B1 (de)
KR (1) KR100562116B1 (de)
CN (1) CN1199471C (de)
DE (1) DE69825710T2 (de)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6980331B1 (en) * 1999-12-02 2005-12-27 Lucent Technologies Inc. Automatic send to embedded fax/e-mail address
US6847687B2 (en) * 2000-03-08 2005-01-25 Matsushita Electric Industrial Co., Ltd. Audio and video processing apparatus
JP2002041285A (ja) * 2000-07-28 2002-02-08 Toshiba Corp データ処理装置およびデータ処理方法
EP1217843B1 (de) * 2000-12-19 2012-11-28 Canon Kabushiki Kaisha Bildverarbeitungsverfahren, -vorrichtung und Aufzeichnungsmedium
ATE388438T1 (de) * 2001-12-14 2008-03-15 Nxp Bv Verfahren zur datenverarbeitung
FR2842058B1 (fr) * 2002-07-08 2004-10-01 France Telecom Procede de restitution d'un flux de donnees multimedia sur un terminal client, dispositif, systeme et signal correspondants
DE10230812B4 (de) * 2002-07-08 2004-11-25 T-Mobile Deutschland Gmbh Verfahren zur Übertragung von zusätzlichen Informationen bei Verwendung eines Verfahrens zur Komprimierung von Daten mittels einer priorisierenden Pixelübertragung
US20040008701A1 (en) * 2002-07-11 2004-01-15 Giacomini Peter J. Hierarchical finite-state machines
US7349435B2 (en) * 2002-07-11 2008-03-25 Bay Microsystems, Inc. Multiport overhead cell processor for telecommunications nodes
ATE389997T1 (de) * 2002-12-16 2008-04-15 Alcatel Lucent Mehrkanaliges netzknoten und verfahren zur vermittlung/leitweglenkung den daten
US7272658B1 (en) * 2003-02-13 2007-09-18 Adobe Systems Incorporated Real-time priority-based media communication
US7555540B2 (en) * 2003-06-25 2009-06-30 Microsoft Corporation Media foundation media processor
JP4699685B2 (ja) 2003-08-21 2011-06-15 パナソニック株式会社 信号処理装置及びそれを用いた電子機器
JP2005234794A (ja) * 2004-02-18 2005-09-02 Matsushita Electric Ind Co Ltd ファイルシステム制御装置
BRPI0509985A (pt) * 2004-04-21 2007-10-16 Dolby Lab Licensing Corp formato de fluxo de bits de áudio no qual a sintaxe do fluxo de bits é descrita por uma travessia ordenada de uma estrutura de dados de hierarquia em árvore
US7672573B2 (en) * 2004-05-13 2010-03-02 Sunplus Technology Co., Ltd. Shared memory architecture and method in an optical storage and recording system
KR100710305B1 (ko) * 2005-06-07 2007-04-23 엘지전자 주식회사 비디오 디코딩 장치의 데이터 관리기
US7827554B2 (en) * 2005-06-20 2010-11-02 Microsoft Corporation Multi-thread multimedia processing
EP1911278A2 (de) 2005-08-04 2008-04-16 Nds Limited Fortschrittliches digital-tv-system
US7992074B2 (en) * 2005-09-13 2011-08-02 Mitsubishi Electric Corporation Decoding device
JP4769665B2 (ja) * 2006-08-29 2011-09-07 パナソニック株式会社 音楽再生装置および音楽再生端末
DE102007005866B4 (de) 2007-02-06 2021-11-04 Intel Deutschland Gmbh Anordnung, Verfahren und Computerprogramm-Produkt zum Anzeigen einer Folge von digitalen Bildern
US8411734B2 (en) * 2007-02-06 2013-04-02 Microsoft Corporation Scalable multi-thread video decoding
US9648325B2 (en) 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
US20090086824A1 (en) * 2007-09-28 2009-04-02 Mediatek Inc. Video Decoding Apparatus and Systems
US8443175B2 (en) * 2009-07-10 2013-05-14 Via Technologies, Inc. Microprocessor with first processor for debugging second processor
US8762779B2 (en) 2010-01-22 2014-06-24 Via Technologies, Inc. Multi-core processor with external instruction execution rate heartbeat
US8495344B2 (en) * 2010-01-22 2013-07-23 Via Technologies, Inc. Simultaneous execution resumption of multiple processor cores after core state information dump to facilitate debugging via multi-core processor simulator using the state information
US8885729B2 (en) 2010-12-13 2014-11-11 Microsoft Corporation Low-latency video decoding
US9706214B2 (en) 2010-12-24 2017-07-11 Microsoft Technology Licensing, Llc Image and video decoding implementations
US8639919B2 (en) 2011-01-18 2014-01-28 Via Technologies, Inc. Tracer configuration and enablement by reset microcode
SG10201408609SA (en) 2011-06-30 2015-02-27 Microsoft Technology Licensing Llc Reducing latency in video encoding and decoding
US8731067B2 (en) 2011-08-31 2014-05-20 Microsoft Corporation Memory management for video decoding
US9621908B2 (en) * 2011-09-06 2017-04-11 Mediatek Inc. Dynamic load balancing for video decoding using multiple processors
US9819949B2 (en) 2011-12-16 2017-11-14 Microsoft Technology Licensing, Llc Hardware-accelerated decoding of scalable video bitstreams
US9985996B2 (en) * 2013-09-09 2018-05-29 Avago Technologies General Ip (Singapore) Pte. Ltd. Decoupling audio-video (AV) traffic processing from non-AV traffic processing
US9137285B2 (en) * 2013-10-21 2015-09-15 Broadcom Corporation Adaptive audio video (AV) stream processing
WO2019127432A1 (zh) * 2017-12-29 2019-07-04 深圳市大疆创新科技有限公司 视频解码器及其制造方法,数据处理电路、系统和方法
EP3777168B1 (de) * 2018-03-29 2023-07-05 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Beschleunigung der videokodierung und -dekodierung

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR950009680B1 (ko) 1992-05-19 1995-08-25 주식회사금성사 영상 압축/신장 시스템의 영상 디코더
JP2528446B2 (ja) 1992-09-30 1996-08-28 株式会社ハドソン 音声画像処理装置
JP3255308B2 (ja) * 1992-12-18 2002-02-12 ソニー株式会社 データ再生装置
US5949891A (en) * 1993-11-24 1999-09-07 Intel Corporation Filtering audio signals from a combined microphone/speaker earpiece
JPH08115567A (ja) * 1994-08-26 1996-05-07 Toko Inc 画像送信装置
JP2863096B2 (ja) * 1994-08-29 1999-03-03 株式会社グラフィックス・コミュニケーション・ラボラトリーズ 並列処理による画像復号装置
US6330644B1 (en) * 1994-10-27 2001-12-11 Canon Kabushiki Kaisha Signal processor with a plurality of kinds of processors and a shared memory accessed through a versatile control means
KR0166935B1 (ko) * 1994-11-23 1999-03-20 구자홍 엠펙2 트랜스포트 디코더 장치
US5596369A (en) * 1995-01-24 1997-01-21 Lsi Logic Corporation Statistically derived method and system for decoding MPEG motion compensation and transform coded video data
JPH08298663A (ja) 1995-04-26 1996-11-12 Canon Inc 画像処理方法及びその装置
JP3729540B2 (ja) 1995-09-08 2005-12-21 株式会社ルネサステクノロジ 画像処理装置
US6018765A (en) * 1996-01-23 2000-01-25 Storage Concepts, Inc. Multi-channel multimedia data server
EP0790557A2 (de) * 1996-02-14 1997-08-20 Matsushita Electric Industrial Co., Ltd. Taskverwaltungsgerät
JP3279186B2 (ja) * 1996-06-21 2002-04-30 日本電気株式会社 動画像データの再生制御方式
KR100500002B1 (ko) * 1996-08-27 2005-09-08 마츠시타 덴끼 산교 가부시키가이샤 복수의명령흐름을독립적으로처리하고,명령흐름단위로처리성능을유연하게제어하는멀티스레드프로세서
US6226291B1 (en) * 1996-11-01 2001-05-01 Texas Instruments Incorporated Transport stream packet parser system
US5959684A (en) * 1997-07-28 1999-09-28 Sony Corporation Method and apparatus for audio-video synchronizing
KR100236310B1 (ko) * 1997-10-24 1999-12-15 전주범 디지탈방송 수신기에 있어서 방송신호 저장 및 재생장치와 그방법
US6012116A (en) * 1997-12-31 2000-01-04 Sun Microsystems, Inc. Apparatus and method for controlling data, address, and enable buses within a microprocessor

Also Published As

Publication number Publication date
EP0919953A3 (de) 2000-09-20
CN1199471C (zh) 2005-04-27
US6782368B2 (en) 2004-08-24
DE69825710D1 (de) 2004-09-23
EP0919953A2 (de) 1999-06-02
KR19990045632A (ko) 1999-06-25
CN1230081A (zh) 1999-09-29
EP0919953B1 (de) 2004-08-18
US20030014264A1 (en) 2003-01-16
KR100562116B1 (ko) 2006-05-25

Similar Documents

Publication Publication Date Title
DE69825710T2 (de) Audio-Video Dekodierungssystem
DE69634052T2 (de) Schaltung zur Bewegtbilddecodierung
DE19756210C2 (de) Verfahren und Vorrichtung zum Decodieren eines codierten MPEG-Videodatenstroms
DE69735402T2 (de) System und Methode zur Bewegungskompensation mit Hilfe eines Schrägziegelspeicherformats für verbesserte Effizienz
DE69633815T2 (de) Vorrichtung zur Codierung und Decodierung eines digitalen Bildsignales
DE69937816T2 (de) Datenverarbeitungsgerät und Verfahren
DE69738494T2 (de) Videokodierungs- und Videodekodierungsvorrichtung
DE60130180T2 (de) Verfahren zur kodierung und dekodierung, aufzeichnungsmedium und programm
DE69632231T2 (de) Kodierung und Dekodierung von Bewegtbildern
DE69214638T2 (de) Gerät zum komprimieren von video-daten
DE69827548T2 (de) Anordnung zur Vorverarbeitung für MPEG-2-Kodierung
DE19702048C2 (de) Skalierbarer Videocodierer gemäß MPEG2-Standard
US7751480B2 (en) Video encoding and video/audio/data multiplexing device
DE60123168T2 (de) MPEG-Dekoder
DE60318771T2 (de) Verwaltung der Softwarekomponenten in einem Bildverarbeitungssystem
US20040240548A1 (en) Video encoding device
DE69434395T2 (de) Kodierung und/oder Dekodierung von sich bewegenden Bildern
DE69833443T2 (de) Vorrichtungen und verfahren zum kodieren und dekodieren von bildern
DE19860507A1 (de) Videocodierverfahren, Videodecoder und digitales Fernsehsystem unter Verwendung eines solchen Verfahrens und eines solchen Decoders
DE10113880B4 (de) Verfahren zur Komprimierung und Dekomprimierung von Videodaten
EP0776574B1 (de) Verfahren zur decodierung komprimierter video-daten mit reduziertem speicherbedarf
DE60029828T2 (de) Verfahren und vorrichtung zur dekodierung von videosignalen mittels eines multiprozessorsystems
DE60312711T2 (de) Verfahren und vorrichtung zur codierung von bild- und/oder audiodaten
DE10392281T5 (de) Verfahren und Vorrichtung zum Untersützten von AVC in MP4
DE4408522C2 (de) Vorrichtung zur Bilddatenverarbeitung und Verfahren zur Verarbeitung von Bilddaten

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: PANASONIC CORP., KADOMA, OSAKA, JP