DE60130180T2 - Verfahren zur kodierung und dekodierung, aufzeichnungsmedium und programm - Google Patents

Verfahren zur kodierung und dekodierung, aufzeichnungsmedium und programm Download PDF

Info

Publication number
DE60130180T2
DE60130180T2 DE2001630180 DE60130180T DE60130180T2 DE 60130180 T2 DE60130180 T2 DE 60130180T2 DE 2001630180 DE2001630180 DE 2001630180 DE 60130180 T DE60130180 T DE 60130180T DE 60130180 T2 DE60130180 T2 DE 60130180T2
Authority
DE
Germany
Prior art keywords
decoding
frame
buffer
data stream
decoder
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
DE2001630180
Other languages
English (en)
Other versions
DE60130180D1 (de
Inventor
Mamoru Shinagawa-ku Ueda
Koki c/o LSI Systems Kawasaki-shi Kanesaka
Takumi c/o LSI Systems Kawasaki-shi Ohara
Takeshi c/o LSI Systems Kawasaki-shi Yamamoto
Kazuhiro c/o LSI Systems Kawasaki-shi Mizuno
Toshikazu c/o LSI Systems Kawasaki-shi Morita
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.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Application granted granted Critical
Publication of DE60130180D1 publication Critical patent/DE60130180D1/de
Publication of DE60130180T2 publication Critical patent/DE60130180T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video 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
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Description

  • Technisches Gebiet
  • Diese Erfindung bezieht auf eine Decodierungsvorrichtung, ein Decodierungsverfahren und einem Aufzeichnungsmedium und besonders auf eine Decodierungsvorrichtung, ein Decodierungsverfahren und ein Aufzeichnungsmedium, die die Realisierung eines Videodecoders ermöglichen, der zu 4:2:2P@HL konform ist und fähig zum Durchführen der Echtzeitoperation in einer praktischen Schaltkreis-Dimension ist.
  • Bisheriger Stand der Technik
  • Das MPEG2 (MPEG2 = Moving Picture Coding Experts Group/Moving Pictures Experts Group2 = Bewegtbilder-Kodierungsexpertengruppe/Bewegtbilder-Expertengruppe 2) Videosystem ist ein Kodierungssystem hoher Effizienz für die Videosignale, die durch die ISO/IEC 13818-2 (ISO = International Standards Organization/International Electrotechnical Commission = internationale Standard-Organisation/internationale elektrotechnische Kommission) und die ITU-T Empfehlungen H.262 (ITU-T = International Telecommunication Union-Telecommunication sector = internationale Telekommunikatrionsunion Nachrichtentechnik Sektion) vorgeschrieben werden.
  • Ein MPEG2-kodierter Strom wird durch das Profil eingestellt, das in Übereinstimmung mit einer Kodierungstechnik und dem Level festgestellt wird, der durch die Zahl der zu bearbeitenden Pixel bestimmt wird, und wird folglich zu einer breiten Vielzahl von Anwendungen konform gemacht. Bespielweise ist MP@ML (MP@ML = Main Profile Main Level = Hauptprofil-Hauptniveau) eine der Kategorien, die praktisch für DVB (DVB = digital video broadcast = digitale Videoausstrahlung) und DVD (DVD = digital versatile disk = digitale vielseitige Scheibe) benutzt wird. Das Profil und der Level werden durch sequence_extension beschrieben, wie später in Bezug auf 5 beschrieben wird.
  • Für die Produktion der Videosignale an einer Sendestation wird 4:2:2P (4:2:2 Profil) vorgeschrieben, in dem Farbdifferenzignale des Bildschirmes in Übereinstimmung mit dem 4:2:2 Format verarbeitet werden, ähnlich dem herkömmlichen Basisband, während eine obere Begrenzung der Übertragungsgeschwindigkeit erhöht wird. Außerdem wird HL (HL = High Level = hoher Pegel) vorgeschrieben, um mit hochauflösenden Videosignalen der nächsten Generation zu recht zu kommen.
  • 1 zeigt typische Kategorien von MPEG2- und oberen Begrenzungswerten der verschiedenen Parameter in den jeweiligen Kategorien. In 1 werden die Übertragungsgeschwindigkeit, die Zahl von Abtastwerten pro Zeile, die Zahl von Zeilen pro Rahmen, die Rahmenfrequenz und der obere Begrenzungswert der Abtastwertverarbeitungszeit in Bezug auf 4:2:2P@HL gezeigt (4:2:2 Profil hoher Level), 4:2:2P@ML (4:2:2 Profil-Haupt-Level), MP@HL (Hauptprofil-Hochlevel), MP@HL – 1440 (Hauptprofil-Hochlevel – 1440), MP@ML (Hauptprofil – Hauptlevel), MP@LL (Hauptprofil-Niedriglevel) und SP@ML (einfacher Profil-Hauptlevel).
  • Bezug nehmend auf 1, beträgt der obere Begrenzungswert der Übertragungsgeschwindigkeit für 4:2:2P@HL 300 (Mbits/sek) und der obere Begrenzungswert der Zahl der zu verarbeitenden Pixeln 62.668.800 (Abtastwerte/sek). Einerseits ist der obere Begrenzungswert der Übertragungsgeschwindigkeit für MP@ML 15 (Mbits/sek) und der obere Begrenzungswert der Zahl der zu verarbeitenden Pixel 10.368.000 (Abtastwerte/sek). Das heißt, es wird verstanden, dass ein Videodecoder für die Decodierung von 4:2:2P@HL-Videos die Verarbeitungsfähigkeit benötigt, die 20-mal der Übertragungsgeschwindigkeit und ungefähr sechsmal der Zahl der zu verarbeitenden Pixeln entspricht, im Vergleich mit einem Videodecoder für die Decodierung des MP@ML-Videos.
  • 2 zeigt die Level-Struktur eines MPEG2-Videobitstromes.
  • Am Anfang einer Bildschicht, die die oberste Schicht ist, wird sequence_header beschrieben. Sequence_header definiert Headerdaten der MPEG-Bitstromsequenz. Wenn sequence_header am Anfang der Sequenz nicht von sequence_extension gefolgt wird, wird die Vorschrift von ISO/IEC 11172-2 auf diesen Bitstrom angewendet. Wenn sequence_header am Anfang der Sequenz vom sequence_extension gefolgt wird, kommt sequence_extension sofort nach allen sequence_headers, die nachher erzeugt werden. Im Falle der 2 kommt sequence_extension sofort nach allen sequence_headers.
  • Sequence_extension definiert Erweiterungsdaten einer Sequenzschicht des MPEG-Bitstromes. Sequence_extension wird nur sofort nach sequence_header erzeugt und soll nicht direkt vor sequence_end_code kommen, das am Ende des Bitstromes kommt, um einen Rahmenverlust nach der Decodierung und nach Rahmen-Neuordnung zu verhindern. Wenn sequence_extension im Bitstrom erzeugt wird, kommt picture_coding_extension sofort nach jedem picture_header.
  • Eine Mehrzahl von Bilden ist in GOP (group_of_picture) enthalten. GOP_header definiert Headerdaten einer GOP-Schicht des MPEG Bit-Stroms. In diesem Bitstrom werden Daten-Elemente beschrieben, die durch picture_header und picture_coding_extension definiert werden. Ein Bild ist als picture_data kodiert, das picture_header und picture_coding_extension folgt. Der erste kodierte Rahmen, der GOP_header folgt, ist ein kodierter I-Rahmen (Das heißt, dass die erste Bild von GOP_header ein I-Bild ist.). Die ITU-T Empfehlung H.262 definiert verschiedene Zusätze zusätzlich zu sequence_extension und zu picture_coding_extension. Diese verschiedenen Zusätze werden nicht hier gezeigt oder beschrieben.
  • Picture header definiert Headerdaten der Bildschicht des MPEG-Bitstromes und picture_coding_extension definiert Zusatzdaten der Bildschicht des MPEG-Bitstromes.
  • Picture_data beschreibt die Daten-Elemente, die auf eine Teil-Schicht und einer Macroblock-Schicht des MPEG Bitstromes bezogen sind. Picture_data wird in eine Mehrzahl der Teile geteilt und jeder Teil wird in eine Mehrzahl von Macroblocks (macro_block) geteilt, wie in 2 gezeigt ist.
  • Ein macro_block wird durch 16×16 Pixeldaten festgesetzt. Der erste Macroblock und der letzte Macroblock eines Teils/eines Schnittes/einer Scheibe sind nicht Zeilensprung-Macroblocks (die Macroblocks, die keine Daten enthalten). Ein Macroblock wird durch 16×16 Pixeldaten festgesetzt. Jeder Block wird durch 8×8 Pixeldaten festgesetzt. In einem Rahmenbild, für die eine DCT-Rahmencodierung (DCT = discrete cosine transform = disktrete Cosinus-Transformation) und eine DCT-Bereichscodierung verwendet werden können, unterscheidet sich die interne Struktur eines Macroblock zwischen Rahmencodierung und Bereichscodierung.
  • Ein Macroblock umfasst einen Abschnitt einer Helligkeits-Komponente und einer Farbdifferenzkomponente. Die Bezeichnung „Macroblock" hat eine aus den nachfolgenden Bedeutungen: Informationquelle, decodierte Daten und eine entsprechende Komponente der kodierten Daten. Ein Macroblock hat drei Farbdifferenz-Formate von 4:2:0, 4:2:2 und 4:4:4. Die Reihenfolge der Blöcke in einem Macroblock unterscheidet sich abhängig von dem Farbdifferenz-Format.
  • 3A zeigt einen Macroblock im Falle des 4:2:0-Formats. Ein Macroblock wird im 4:2:0-Format durch vier Helligkeitsblöcke (Y) und zwei Farbdifferenzblöcke (Cb, Cr) gebildet (d.h., je ein Block). 3B zeigt einen Macroblock im Falle des 4:2:2-Formats. Ein Macroblock im 4:2:2-Format wird durch vier Helligkeitsblöcke (Y) und vier Farbdifferenzblöcke (Cb, Cr) gebildet (d.h., je zwei Blöcke).
  • Für jeden Macroblock ist eine Vorschätzungskodierungsverarbeitung durch mehrere Verfahren möglich. Der Vorhersage-Modus ist grob in zwei Typen der Bereichsvorhersage und der Rahmenvorhersage eingeteilt. In der Bereichsvorhersage werden Daten von einem oder eine Mehrzahl von Bereichen verwendet, die vorher decodiert wurden und die Vorhersage wird in Bezug auf jeden Bereich durchgeführt. In der Rahmenvorhersage wird eine Vorhersage eines Rahmens durchgeführt, indem ein oder eine Mehrzahl von Rahmen verwendet wird, die vorher decodiert werden. In einem Bereichsbild sind alle Vorhersagen Bereichsvorhersagen. In einem Rahmenbild kann eine Vorhersage andererseits durch Bereichsvorhersage oder Rahmenvorhersage durchgeführt werden und das Vorhersage-Verfahren wird für jeden Macroblock ausgewählt. In der Vorhersagecodierungsverarbeitungsoperation eines Macroblocks können zwei Typen von speziellen Vorhersage-Modi verwendet werden, das heißt 16×8 Bewegungsausgleich und doppelt teilerfremd, anders als Bereichsvorhersage und Rahmenvorhersage.
  • Bewegungsvektorinformation und andere Zusatzinformation werden zusammen mit einem Vorhersagestörungsignal jedes Macroblocks kodiert. Durch Kodierung des Bewegungsvektors wird der letzte Bewegungsvektor, der kodiert wird, indem ein variabler Längecode verwendet wird, als Vorhersagevektor verwendet und ein differentialer Vektor wird vom Vorhersagevektor kodiert. Die maximale Lange eines Vektors, der angezeigt werden kann, kann für jedes Bild programmiert werden. Die Berechnung eines passenden Bewegungsvektors wird von einem Codierer durchgeführt.
  • Nach picture_data werden sequence_header und sequence_extension eingeordnet. Die Daten-Elemente, die durch sequence_header und sequence_extension beschrieben werden, sind genau dieselben wie die Daten-Elemente, die durch sequence_header und sequence_extension am Anfang der Videostromsequenz beschrieben werden. Der Zweck des Beschreibens der gleichen Daten im Strom ist wieder, solch eine Situation zu vermeiden, dass, wenn die Bitstromempfangseinheit bei einem halben Teil des Datenstromes das Empfangen beginnt (z.B. ein Bitstrom-Teil, der der Bild-Schicht entspricht), die Daten der Sequenz-Schicht nicht empfangen werden und folglich der Strom nicht decodiert werden kann.
  • Nach den Daten-Elementen, die durch den letzten sequence_header und das sequence_extension definiert werden, das heißt, am Ende des Datenstromes, sequence_end_code mit 32 Bits wird beschrieben, was das Ende der Sequenz anzeigt.
  • Die jeweiligen Daten-Elemente werden jetzt im Detail mit Bezug auf 4 bis 12 beschrieben.
  • 4 zeigt die Daten-Struktur von sequence_header. Die Daten-Elemente, die im sequence_header umfasst sind, sind sequence_header_code, horizontal_size_value, vertical_size_value, aspect_ratio_information, frame_rate_code, bit_rate_value, marker_bit, vbv_buffer_size_value, constrained_parameter, Kennmarke, load_intra_quantiser_matrix, intra_quantiser_matrix, load_non_intra_quantiser_matrix und non_intra_quantiser_matrix.
  • Sequence_header_code kennzeichnet die Daten, die den Startsynchronisationscode der Sequenz-Schicht ausdrückt. Horizontal_size_value kennzeichnet Daten der unteren 12 Bits, welche die Zahl der Pixel in der horizontalen Richtung des Bildes ausdrücken. Vertical_size_value kennzeichnet Daten der unteren 12 Bits, welche die Zahl der vertikalen Spalten der Bild ausdrücken. Aspect_ratio_information kennzeichnet die Daten, die das Längenverhältnis der Pixel oder das Längenverhältnis des Anzeigeschirms ausdrücken. Frame_rate_code kennzeichnet die Daten, die den Anzeigezyklus des Bildes ausdrücken. Bit_rate_value kennzeichnet Daten der unteren 18 Bits, welche die Übertragungsgeschwindigkeit für das Begrenzen der Quantität der erzeugten Bits ausdrücken.
  • Marker_bit kennzeichnet die Bit-Daten, die eingesetzt werden, um Startcodeemulation zu verhindern. Vbv_buffer_size_value kennzeichnet Daten der unteren 10 Bits, die einen Wert für die Bestimmung der Größe eines virtuellen Puffers VBV ausdrücken (Videopuffer-Verifizierer) zum Kontrollieren die Quantität der erzeugten Codes. Constrained_parameter_flag kennzeichnet Daten, die kennzeichnen, dass jeder Parameter innerhalb einer Begrenzung ist. Load_non_intra_quantiser_matrix kennzeichnet Daten, die das Bestehen von nicht in einem MB quantisierten Matrixdaten kennzeichnet.
  • Load_intra_quantiser_matrix kennzeichnet Daten, die das Bestehen der in MB quantisierten Matrixdaten kennzeichnet. Intra_quantiser_matrix kennzeichnet Daten, die den Wert der in MB quantisierten Matrix kennzeichnet. Non_intra_quantiser_matrix kennzeichnet Daten, die den Wert der nicht in MB quantisierten Matrix kennzeichnet.
  • 5 zeigt die Daten-Struktur von sequence_extension. Sequence_extension umfasst Daten-Elemente wie extension_start_code, extension_start_code_identifier, profile_and_level_indication, progressive_sequence, chroma_formst, horizontal_size_extension, vertical_size_extension, bit_rate_extension, marker_bit, vbv_buffer_size_extension, low_delay, frame_rate_extension_n und frame_rate_extension_d.
  • Extension_start_code kennzeichnet die Daten, die den Anfangssynchronisationscode der Zusatzdaten ausdrücken. Extension start_code_identifier kennzeichnet Daten, die ausdrücken, welche Zusatzdaten gesendet werden sollen. Profile_and_level_indication kennzeichnet Daten zum Kennzeichnen des Profils und des Levels der Videodaten. Progressive_sequence kennzeichnet Daten, die kennzeichnen, dass die Videodaten der Reihe nach gescannt werden (schrittweise Bild). Chroma_formst kennzeichnet Daten zum Kennzeichnen des Farbdifferenz-Formats der Videodaten. Horizontal_size_extension kennzeichnet Daten der oberen zwei Bits, die dem horizontal_size-Wert des Sequenz Headers hinzuaddiert werden. Vertical_size_extension kennzeichnet Daten der oberen zwei Bits, die dem vertical_size_value des Sequenz-Headers hinzuaddiert werden.
  • Bit_rate_extension kennzeichnet Daten der höheren 12 Bits, die dem bit_rate_value des Sequenz-Header hinzuaddiert werden. Marker_bit kennzeichnet die Bitdaten, die eingesetzt werden, um Startcodeemulation zu verhindern. Vbv_buffer_size_extension kennzeichnet Daten der höheren 8 Bits, die dem vbv_buufer_size_value des Sequenz-Headers hinzugefügt werden. Low_delay kennzeichnet Daten, die kennzeichnen, dass kein B-Bild enthalten ist. Frame_rate_extension_n kennzeichnet Daten zum Erhalten der Rahmenrate in Verbindung mit frame_rate_code des Sequenz-Headers. Frame_rate_extension_d kennzeichnet Daten zum Erhalten der Rahmenrate in Verbindung mit frame_rate_code des Sequenz-Headers.
  • 6 zeigt die Daten-Struktur des GOP_header. Die Daten-Elemente, die GOP_header bilden, umfassen group_start_code, time_code, closed_gop und broken_link.
  • Group_start_code kennzeichnet Daten, die die Startcodesynchronisation der GOP-Schicht kennzeichnen. Time_code kennzeichnet einen Zeitcode, der die Zeit des führenden Bildes des GOP kennzeichnet. Closed_gop kennzeichnet ein Flag, das kennzeichnet, dass die Bilden innerhalb des GOP von anderen GOPs unabhängig reproduziert werden können. Broken_link kennzeichnet ein Flag, das kennzeichnet, dass das führende B-Bild im GOP nicht für das Editieren oder dergleichen genau reproduziert werden kann.
  • 7 zeigt die Daten-Struktur von picture_header. Die Daten-Elemente, die auf picture_header bezogen werden, umfassen picture_start_code, temporal_reference, picture_coding_type, vbv_delay, full_pel_forward_vector, forward_f_code, full_pel_backwardvector und backward_f_code.
  • Picture_start_code kennzeichnet die Daten, die den Startsynchronisationscode der Bild-Schicht ausdrücken. Temporal_reference kennzeichnet Daten der Nummer, die die Anzeigereihenfolge der Bilder kennzeichnet und die am führenden Teil des GOP rückgesetzt wird. Picture_coding_type kennzeichnet Daten, die den Bild-Typ kennzeichnen. Vbv_delay kennzeichnet Daten, die den Ausgangszustand eines virtuellen Puffers zu der Zeit des zufälligen Zugriffs kennzeichnen. Full_pel_forward_vector, forward_f_code, full_pel_backward_vector und backward_f_code sind festgelegte Daten, die in MPEG2 nicht verwendet werden.
  • 8 zeigt die Daten-Struktur von picture_coding_extension. Picture_coding_extension umfasst Daten-Elemente wie extension_start_code ein, extension_start_code_identifier, f_code [0] [0], f_code [0] [1], f_code [1] [0], f_code [1] [1], intra_dc_precision, picture_structure, top_field_first, frame_pred_frame_dct, concealment_motion_vectors, q_scale_type, intra_vlc_format, alternate_scan, repeat_first_field, chroma_420_type, progressive_frame, composite_display_flag, v_axis, field_sequence, sub_carrier, burst_amplitude und sub_carrier_phase.
  • Extension_start_code kennzeichnet der Startcode, der den Anfang der Zusatzdaten der Bild-Schicht kennzeichnet. Extension_start_code_identifier kennzeichnet ein Code, der anzeigt, welche Zusatzdaten gesendet werden sollen. F_code [0] [0] kennzeichnet Daten, welche die horizontale Bewegung der den horizontalen Bewegungsvektorsuchbereich in Vorwärtsrichtung ausdrücken. F_code [0] [1] kennzeichnet Daten, welche den vertikalen Bewegungsvektorsuchbereich in Vorwärtsrichtung ausdrücken. F_code [1] [0] kennzeichnet Daten, welche den horizontalen Bewegungsvektorsuchbereich in rückwärtige Richtung ausdrücken. F_code [1] [1] kennzeichnet Daten, welche den vertikalen Bewegungsvektorsuchbereich in rückwärtige Richtung ausdrücken.
  • Intra_dc_precision kennzeichnet Daten, welche die Präzision eines DCT-Koeffizienten ausdrücken. Durch ein Ausführen der DCT auf die Matrix f, welche die Helligkeits- und Farbdifferenzignale der jeweiligen Pixel im Block darstellt, wird eine 8×8 DCT-Koeffizientmatrix F erhalten. Der Koeffizient an der oberen linken Ecke der Matrix F wird als DCT-Koeffizient bezeichnet. Der DCT-Koeffizient ist ein Signal, das die durchschnittliche Helligkeit und den durchschnittlichen Farbdifferenz innerhalb des Blockes kennzeichnet. Picture_structure kennzeichnet Daten, die kennzeichnen, ob die Bild-Struktur eine Rahmen-Struktur oder eine Bereichsstruktur ist. Im Falle der Bereichsstruktur zeigen die Daten von picture_structure auch an, ob es einen oberen Bereich oder einen unteren Bereich handelt. Top_field_first kennzeichnet Daten, die kennzeichnen, ob der erste Bereich ein oberer Bereich oder ein unterer Bereich im Falle der Rahmen-Struktur ist. Frame_pred_frame_dct kennzeichnet Daten, die kennzeichnen, dass eine Vorhersage der Rahmen-Modus DCT nur für den Rahmen-Modus im Falle der Rahmen-Struktur gültig ist. Concealment_motion_vectors kennzeichnet Daten, die kennzeichnen, dass ein Bewegungsvektor für das Verbergen eines Übertragungsfehlers an einen Intra-Macroblock angehängt wird.
  • Q_scale_type kennzeichnet Daten, die kennzeichnen, ob eine lineare Quantelungskala oder eine nichtlineare Quantelungsskala zu verwenden ist. Intra_vlc_format kennzeichnet Daten, die kennzeichnen, ob oder nicht eine andere zweidimensionale VLC (VLC = variable length coding = variable Längencodierung) für den Intra-Macroblock zu verwenden ist. Alternate_scan kennzeichnet Daten, die die Auswahl kennzeichnen, ob Zickzack-Abtastung oder alternierende Abtastung verwendet werden soll. Repeat_first_field kennzeichnet Daten, die in einem 2:3 Pull-Down verwendet werden. Chroms_420_type kennzeichnet Daten, die den gleichen Wert wie das folgende progressive_frame im Falle 4:2:0 Signalformat zeigen oder anderenfalls 0 anzeigen. Progressive_frame Signalformat Daten, die kennzeichnen, ob das Bild der Reihe nach gescannt wird oder ein verschachtelter Bereich ist. Composite_display_flag kennzeichnet Signalformat-Daten, die kennzeichnen, ob das Ursprungssignal ein zusammengesetztes Signal ist oder nicht. V_axis, field_sequence, sub_carrier, burst_amplitude und sub_carrier_phase sind die verwendeten Daten, wenn das Ursprungssignal ein zusammengesetztes Signal ist.
  • 9 zeigt die Daten-Struktur von picture_data. Die Daten-Elemente, die durch die picture_data()-Funktion definiert werden sind die Daten-Elemente, die durch die Schnitt()-Funktion definiert werden. Mindestens wird ein Daten-Element, das durch die Schnitt()-Funktion definiert wird im Bitstrom beschrieben.
  • Die Schnitt()-Funktion wird durch Daten-Elemente wie slice_start_code, quantiser_scale_code, intra_slice_flag, intra_slice, reserved_bits, extra_bit_slice und extra_information_slice und die Macroblock()-Funktion definiert, wie in 10 gezeigt.
  • Slice_start_code kennzeichnet den Anfangscode, der den Anfang der Daten-Elemente anzeigt, die durch die Schnitt()-Funktion definiert sind. Quantiser_scale_code kennzeichnet die Daten, die die Quantisierungsschrittgröße für die Macroblocks festsetzt, die auf der Teil-Schicht bestehen. Wenn quantiser_scale_code für jeden Macroblock eingestellt wird, werden vorzugsweise die Daten des Macroblock_quantiser_scale_code verwendet, die für jeden Macroblock eingestellt sind.
  • Intra_slice_flag ist ein Flag der anzeigt, ob intra_slice und reserved_bits im Bitstrom bestehen oder nicht. Intra_slice sind Daten, die kennzeichnen, ob ein nicht-intra-Macroblock in der Teil-Schicht besteht oder nicht. Wenn einer der Macroblocks in der Teil-Schicht ein nicht-intra-Macroblock ist, hat intra_slice einen Wert „0". Wenn alle Macroblocks in der Teil-Schicht nicht-intra-Macroblocks sind, hat intra slice einen Wert „1". Reserved_bits sind Daten von sieben Bits, die einen Wert „0" haben. Extra_bit_slice ist ein Flag, das das Bestehen der zusätzlichen Information kennzeichnet. Wenn es von extra_information_slice gefolgt wird, wird extra_bit_slice auf „1" eingestellt. Wenn es keine zusätzliche Information gibt, wird extra_bit_slice auf „0" eingestellt.
  • Neben diesen Daten-Elementen werden Daten-Elemente, die durch die Macroblock () Funktion definiert werden, beschrieben. Die Macroblock () Funktion ist eine Funktion für das Beschreiben der Daten-Elemente wie Macroblock_escape, Macroblock_address_increment, quantiser_scale_code und marker_bit, und für das Beschreiben der Daten-Elemente, die durch die Macroblock_modes() Funktion, die motion_vectors () Funktion und die coded_block_pattern () Funktion definiert werden, wie in 11 gezeigt.
  • Macroblock_escape ist ein festgelegter Bitstring, der kennzeichnet, ob die horizontale Differenz zwischen einem Bezugsmacroblock und dem vorhergehenden Macroblock nicht kleiner als 34 oder kleiner als 34 ist. Wenn der horizontale Unterschied zwischen dem Bezugsmacroblock und dem vorhergehenden Macroblock nicht kleiner als 34 ist, wird dem Wert von Macroblock_address_increment 33 hinzugefügt. Macroblock_address_increment sind Daten, die den horizontalen Unterschied zwischen dem Bezugsmacroblock und dem vorhergehenden Macroblock kennzeichnen. Wenn ein Macroblock_escape vor Macroblock_address_increment besteht, ist der Wert, der durch Hinzufügen von 33 zum Wert von Macroblock_address_increment erhalten wird, die Daten, die den tatsächlichen horizontalen Unterschied zwischen dem Bezugsmacroblock und dem vorhergehenden Macroblock kennzeichnen.
  • Quantiser_scale_code sind Daten, die die Quantelungs-Schrittgröße, die für jeden Macroblock eingestellt wird, kennzeichnet und nur besteht, wenn Macroblock_quant „1" ist. Für jede Teil -Schicht wird slice_quantiser_scale_code eingestellt, der die Quantelungs-Schrittgröße der Teil-Schicht kennzeichnet. Jedoch wenn scale_code für den Bezugsmacroblock eingestellt wird, wird diese Quantelungs-Schrittgröße ausgewählt.
  • Neben Macroblock_address_increment werden die Daten-Elemente beschrieben, die durch die Macroblock_modes () Funktion beschrieben werden. Wie in 12 gezeigt, ist die Macroblock_modes () Funktion eine Funktion für das Beschreiben der Daten-Elemente wie Macroblock_type, frame_motion_type, field_motion_type und dct_type. Macroblock_type sind Daten, die den Kodierungs-Typ des Macroblocks kennzeichnen.
  • Wenn Macroblock_motion_forward oder Macroblock_motion_backward „1" ist, ist die Bildstruktur eine Rahmen-Struktur, und frame_pred_frame_dct ist „0", ein Daten-Element, das frame_motion_type ausdrückt, wird neben dem Daten-Element beschrieben, das Macroblock_type ausdrückt. Dieses frame_pred_frame_dct ist ein Flag das kennzeichnet, ob ein frame_motion_type im Bitstrom besteht oder nicht.
  • Frame_motion_type ist ein Zwei-Bit-Code, der den Vorhersage-Typ der Macroblocks im Rahmen kennzeichnet. Für einen bereichsbasierten Vorhersage-Typ, der zwei Vorhersagevektoren hat, ist frame_motion_type „00". Für einen bereichsbasierten Vorhersage-Typ, der einen Vorhersagevektor hat, ist frame_motion_type „01". Für einen Rahmen-basierten Vorhersage-Typ, der einen Vorhersagevektor hat, ist frame_motion_type „10". Für einen doppelten Hauptvorhersage-Typ, der einen Vorhersagevektor hat, ist frame_motion_type „11".
  • Field_motion_type ist ein Zwei-Bit-Code, der die Bewegungsvorhersage der Macroblocks in dem Bereich kennzeichnet. Für einen bereichsbasierten Vorhersage-Typ, der einen Vorhersagevektor hat, ist field_motion_type „01". Für einen 18×8 Macroblock-basierten Vorhersage-Typ, der zwei Vorhersagevektoren hat, ist field_motion_type „10". Für einen doppelten Hauptvorhersage-Typ, der einen Vorhersagevektor hat, ist field_motion_type „11".
  • Wenn die Bild-Struktur eine Rahmen-Struktur ist, zeigt frame_pred_frame_dct an, dass frame_motion_type in dem Bitstrom besteht und frame_pred_frame_dct zeigt an, dass dct_type im Bitstrom besteht; ein Daten-Element, das dct_type ausdrückt, wird nahe bei dem Daten-Element beschrieben, das Macroblock_type ausdrückt. Dct_type sind Daten, die kennzeichnen, ob DCT ein Rahmen-DCT-Modus oder ein Feld-DCT-Modus ist.
  • In dem MPEG2-Strom werden die Daten-Elemente, die oben beschrieben werden, durch spezielle Bit-Muster begonnen, die Startcodes genannt werden. Unter anderen Umständen sind diese Startcodes spezifizierte Bitmuster, die nicht im Bitstrom erscheinen. Jeder Startcode wird durch ein Startcodepräfix und einen darauf folgenden Startcode-Wert festgesetzt. Der Startcodepräfix ist eine Bitkette „0000 0000 0000 0000 0000 0001". Der Startcode-Wert ist eine acht-Bit Ganzzahl, die den Typ des Startcodes kennzeichnet.
  • 13 zeigt den Wert jedes Startcodes von MPEG2. Viele Startcodes werden durch einen Startcode-Wert dargestellt. Jedoch wird slice start code durch eine Mehrzahl von Startcode-Werten 01 zu AF dargestellt. Diese Startcode-Werte drücken die vertikale Position in Bezug auf den Teil aus. Alle diese Startcodes werden so justiert, dass sie Byte-basiert sind, indem man eine Mehrzahl von Bits „1" vor dem Startcodepräfix einsetzt, dass das erste Bit des Startcodepräfixes das erste Bit des Bytes wird.
  • 14 ist ein Blockdiagramm, welches die Schaltkreis-Struktur eines MPEG Videodecoders zeigt, der zum herkömmlichen MP@ML konform ist.
  • Der MPEG-Videodecoder umfasst die folgenden Komponenten-Elemente: einen IC (IC = integrated circuit = integrierten Schaltkreis) 1, der einen Strom-Eingangsschaltkreis 11, einen Puffer-Steuerungsschaltkreis 12, einen Taktgeber-Schaltkreis 13, einen Startcode-Detektionsschaltkreis 14, einen Decoder 15, einen Bewegungs-Ausgleichs-Schaltkreis 16 und einen Anzeigen-Ausgangs-Schaltkreis 17 umfasst; und einen Puffer 2, der einen Strom-Puffer 21 und einen Video-Puffer 22 aufweist und aus z.B. einem DRAM (dynamischen Arbeitsspeicher) gebildet ist.
  • Der Strom-Eingangs-Schaltkreis 11 des IC 1 empfangt eine Eingabe eines hocheffizient-codierten Stromes und liefert den kodierten Strom an den Puffer-Steuerungs-Schaltkreis 12. Der Puffer-Steuerungs-Schaltkreises 12 leitet den eingegebenen kodierten Strom zum Strom-Puffer 21 des Puffers 2 entsprechend einem Basis-Taktgeber, der vom taktgebenden Schaltkreis 13 erzeugt wird. Der Strom-Puffer 21 hat eine Kapazität von 1.835.008 Bits, welches eine VBV Puffergröße ist, die für die MP@ML-Decodierung erforderlich ist. Der kodierte Strom, der im Strom-Puffer 21 gespeichert wird, wird sequentiell von den ersten eingeschriebenen Daten unter der Steuerung des Puffer-Steuerungs-Schaltkreises 12 ausgelesen und wird an den Startcode-Detektionsschaltkreis 14 geliefert. Der Startcode-Dektektionsschaltkreis 14 ermittelt einen Startcode, wie mit Bezug auf 13 vom eingegebenen Strom beschrieben wird und gibt den ermittelten Startcode und den eingegebenen Strom an den Decoder 15 aus.
  • Der Decoder 15 decodiert den eingegebenen Strom auf der Grundlage einer MPEG Syntax. Zuerst decodiert der Decoder 15 einen Headerparameter einer Bild-Schicht in Übereinstimmung mit dem eingegebenen Startcode, dann teilt er eine Schnitt-Schicht in Macroblocks auf der Grundlage von den decodierten Headerparametern, decodiert dann die Macroblocks, und gibt den sich ergebenden Vorhersagevektor und -Pixel an den Bewegungs-Ausgleichs-Schaltkreis 16 aus.
  • In Übereinstimmung mit MPEG wird die Kodierungs-Leistungsfähigkeit durch das Erreichen des bewegungskompensierten Unterschiedes zwischen angrenzenden Bildern durch Verwendung der zeitlichen Redundanz der Bilder verbessert. Im MPEG Videodecoder werden, in Bezug auf pixelverwendenden Bewegungsausgleich, Pixeldaten eines Bezugsbildes durch den Bewegungsvektor eines laufend decodierten Pixels hinzugefügt, um den Bewegungsausgleich durchzuführen und die Daten zu den Bilddaten vor Kodierung zu decodieren.
  • Wenn die Macroblocks, die vom Decoder 15 ausgegeben sind, nicht den Bewegungsausgleich benutzen, schreibt der Bewegungs-Ausgleichs-Schaltkreis 16 die Pixeldaten zum Video-Puffer 22 des Puffers 2 über den Puffer-Steuerungs-Schaltkreis 12, die er so für den Anzeige-Ausgang aufbereitet und die er auch für den Fall aufbereitet, dass die Pixeldaten als Bezugsdaten für ein anderes Bild verwendet werden.
  • Wenn die Macroblocks, die vom Decoder 15 ausgegeben werden, den Bewegungsausgleich benutzen, liest der Bewegungs-Ausgleichs-Schaltkreis 16 die Bezugspixeldaten vom Videopuffer 22 des Puffers 2 über den Puffer-Steuerungs-Schaltkreis 12 aus, in Übereinstimmung mit einem Vorhersagevektor, der vom Decoder 15 ausgegeben wird. Dann fügt der Bewegungs-Ausgleichs-Schaltkreis 16 die Anzeigebezugspixeldaten den Pixeldaten hinzu, die vom Decoder 15 geliefert werden und führt so den Bewegungsausgleich durch. Der Bewegungs-Ausgleichs-Schaltkreis 16 schreibt die bewegungs-kompensierten Pixeldaten auf den Videopuffer 22 des Puffers 2 über den Puffer-Steuerungs-Schaltkreis 12, um sie so für die Anzeigen-Ausgabe vorzubereiten und auch für den Fall vorzubereiten, in dem die Pixeldaten als Bezugsdaten für ein anderes Bild verwendet werden.
  • Der Anzeigen-Ausgangs-Schaltkreis 17 erzeugt ein synchrones taktgebendes Signal für das Ausgeben der decodierten Bilddaten, liest dann die Pixeldaten vom Videopuffer 22 über den Puffer-Steuerungs-Schaltkreis 12 auf Basis dieses Takts aus und gibt ein decodiertes Videosignal aus.
  • Wie oben beschrieben, hat der MPEG2-Strom eine hierarchische Struktur. Die Datenquantität der Daten des sequence_header zum picture_coding_extension der Bild-Schicht, die mit Bezug auf 2 beschrieben ist, wird nicht sehr viel geändert, selbst wenn das Profil und der Level, der mit Bezug auf 1 beschrieben wird, verändert werden. Andererseits hängen die Datenquantitäten der Datenschicht und der folgenden Schichtenschnitte von der Zahl der zu kodierenden Pixel ab.
  • Bezug nehmend auf 1 ist die Zahl der Macroblocks die in ein Bild in HL verarbeitet werden ungefähr sechsmal so groß als in ML. Vielmehr wird mit Bezug auf 3B die Anzahl der Blöcke, die in einen Macroblock im 4:2:2P Format verarbeitet werden 4/3 so viel als in MP.
  • Das heißt, wenn ein kodierter Strom von 4:2:2P@HL durch den Videodecoder konform zu MP@ML decodiert werden soll, der entsprechend 14 beschrieben wird, wird die Puffergröße des Strom-Puffers 21 wegen der Zunahme der VBV-Puffergröße und der Zahl der Pixel unzureichend. Außerdem kann die Steuerung durch den Puffer-Steuerungs-Schaltkreis 12 wegen der Zunahme der Übertragungsgeschwindigkeit nicht mit der Zunahme der Anzahl von Zugriffen des Eingangstromes zum Strom-Puffer 21, und die Zunahme der Anzahl von Zugriffen zum Videopuffer 22 durch den Bewegungs-Ausgleichs-Schaltkreis 16 nicht wegen der Zunahme der Anzahl an Pixel mithalten. Außerdem kann die Verarbeitung durch den Decoder 15 nicht mit der Zunahme der Übertragungsgeschwindigkeit und der Zunahme der Anzahl an Macroblocks und Blöcken mithalten.
  • Der neueste Fortschritt in der Halbleitertechnik hat die Arbeitsgeschwindigkeit sowohl der Signalverarbeitungs-Schaltkreise als auch der Schaltkreise des Informationsspeichers (Puffer) erheblich verbessert. Jedoch wurde in der gegenwärtigen MP@ML Decodierungstechnik, die Decodierung von 4:2:2P@HL noch nicht erzielt. Im Allgemeinen erhöht eine solche Hochgeschwindigkeits-Signalverarbeitung die Schaltkreisgröße sehr und führt zu einer Zunahme der Anzahl von Komponenten-Teilen und einer Zunahme an Leistungsverbrauch.
  • Die US 5,532,744 offenbart Techniken zum Decodieren eines hierarchisch codierten Videosignal-Bitstroms, der eine Anzahl von individuellen Decoder-Modulen einsetzt, die parallel geschaltet sind. Vor einem Decodieren wird ein Bitstrom initial analysiert und die Teile zwischen den Decoder-Modulen aufgeteilt. Ein Schnitt-Parser teilt die Teile zu jedem Decoder-Module zu. Die separaten Daten-Ströme von jedem der Decoder-Module werden dann einem Rahmen-Puffer zugeführt.
  • Die US 5,557,332 offenbart eine Technik zum Decodieren eines digitalen Videosignals, welches eine Parallelverarbeitung verwendet. Rahmen des Videosignals werden in Teile geteilt, welche aus einer Sequenz von Markoblöcken bestehen. Ein Demultiplexer sammelt vorherbestimmte Teile an einem Code-Puffer, der mit einem Decodier-Schaltkreis verbunden ist. Die Anzahl der Makroblöcke in jedem Teil ist fest vorgegeben, so dass es für keinen der Decoder nötig sein wird zu warten, da eine Ergebnis-Dekodierung, die durch den Decoder durchgeführt wird, synchronisiert wird. In dieser Weise gibt jeder Decoder simultan genau die Blöcke von Teilen aus, die dorthin weitergegeben wurden.
  • Offenbarung der Erfindung
  • Angesichts des vorstehenden Standes der Technik ist es Gegenstand der vorliegenden Erfindung, die Realisierung eines Videodecoders zu ermöglichen, der zu 4:2:2P@HL konform ist, das in Realzeit mit einer praktikablen Schaltkreisgröße arbeiten kann, indem es die neueste Halbleitertechnik verwendet.
  • Eine Decodierungs-Vorrichtung gemäß der vorliegenden Erfindung ist in Anspruch 1 beansprucht.
  • Die Decodierungs-Vorrichtung kann weiterhin ein erstes Puffer-Mittel zum Abpuffern des kodierten Stromes, ein Lese-Mittel zum Auslesen eines Startcodes, der den Anfang einer vorbestimmten Informationsmaßeinheit kennzeichnet, die im kodierten Strom vom kodierten Strom umfasst ist und die Position-Information ausliest, die sich auf die Stelle bezieht, wo der Startcode zur ersten Puffereinrichtung gehalten wird, ein zweites Puffer-Mittel zum Abpuffern des Startcodes und zum Auslesen der Positions-Information durch das Lese-Mittel und eine abpuffernde Steuerungs-Vorrichtung für das Steuern des Pufferns des kodierten Stromes durch das erste Puffer-Mittel und das Puffer des Startcodes und der Position-Information durch das zweite Puffer-Mittel umfassen.
  • Der kodierte Strom kann ein MPEG2-kodierter Strom sein, der durch ISO/IEC 13818-2 und die ITU-T Empfehlungen H.262 vorgeschrieben ist.
  • Die Decodierungs-Vorrichtung kann weiterhin umfassen: Auswähl-Mittel zum Auswählen von des Startcodes und der Positionsinformation durch das zweite Halte-Mittel, Auswählmittel zum Auswählen von vorbestimmten Bilddaten aus der Mehrzahl an Bilddaten, die durch die Mehrzahl der Decodierungs-Mittel decodiert und ausgegeben wurden, Bewegungs-Ausgleichs-Mittel zum Empfangen der Eingabe der Bilddaten, die durch die Auswahl-Mittel ausgewählt wurden und wenn nötig den Bewegungsausgleich durchführen, dritte Halte-Mittel zum Halten der durch die Auswahlmittel ausgewählten Bilddaten oder den Bilddaten, an welchen die Bewegungs-Kompensation durch die Bewegungs-Kompensation-Mittel ausgeführt wird, zweite Halte-Kontroll-Mittel zum Steuern des Haltens, durch das dritte Halte-Mittel, von Bilddaten die durch das Auswahl-Mittel ausgewählt wurden oder von Bilddaten, an denen eine Bewegungs-Kompensation durch das Bewegungs-Kompensations-Mittel ausgeführt wird, unabhängig von dem ersten Halte-Steuer-Mittel.
  • Ein Decodierungs-Verfahren entsprechend der vorliegenden Erfindung ist in Anspruch 18 beansprucht.
  • Ein Programm entsprechend der vorliegenden Erfindung, das in einem Speicher-Medium gespeichert ist, ist in Anspruch 22 beansprucht.
  • Ein Programm gemäß der vorliegenden Erfindung wird in Anspruch 21 beansprucht.
  • In der Decodierungs-Vorrichtung, dem Decodierungs-Verfahren und -Programm wird ein kodierter Strom dekodiert und der Dekodierungs-Prozess wird derart gesteuert damit es parallel ausgeführt werden kann.
  • In Ausführungsbeispielen wird ein kodierter Strom durch eine Mehrzahl von Teil-Decodern decodiert und der Dekodierungs-Prozess wird durch eine Mehrzahl von Teil-Decodern parallel ausgeführt.
  • In Ausführungsbeispielen wird ein quellencodierter Strom für jeden Teil dekodiert, der ein Bild aus dem quellencodierten Strom bildet. Die Dekodierungs-Stati der Mehrzahl von Teil-Decodern werden überwacht und die Mehrzahl von Teil-Decodern wird gesteuert. Die Teile werden so der Mehrzahl von Teil-Decodern zugewiesen, dass die schnellste Ausführung des Dekodierungs-Prozesses erreicht wird, die durch die Teil-Decoder ausgeführt werden, ohne Rücksicht auf die Reihenfolge der Teile, die in dem Bild enthalten sind.
  • In Ausführungsbeispielen wird der quellencodierte Strom für jeden Teil dekodiert, der ein Bild aus dem quellencodierten Strom bildet. Die Dekodierungs-Stati der Mehrzahl von Teil-Decodern werden überwacht und die Mehrzahl der Teil-Decoder wird gesteuert. Der Teil, der dekodiert wird, wird dem Teil-Decoder aus der Mehrzahl von Teil-Decodern zugewiesen, der die Dekodierung beendete, ohne Rücksicht auf die Reihenfolge der Teile, die in dem Bild enthalten sind.
  • Kurze Beschreibung der Zeichnungen
  • 1 veranschaulicht obere Begrenzungswerte von Parametern, die auf dem Profil und dem Level in MPEG2 basieren.
  • 2 veranschaulicht die hierarchische Struktur eines MPEG-Bit-Stromes.
  • 3A und 3B veranschaulichen eine Macroblock Schicht.
  • 4 veranschaulicht die Daten-Struktur von sequence_header.
  • 5 veranschaulicht die Daten-Struktur von sequence_extension.
  • 6 veranschaulicht die Daten-Struktur von GOP_header.
  • 7 veranschaulicht die Daten-Struktur von picture_header.
  • 8 veranschaulicht die Daten-Struktur von picture_coding_extension.
  • 9 veranschaulicht die Daten-Struktur von picture_data.
  • 10 veranschaulicht die Daten-Struktur eines Teils.
  • 11 veranschaulicht die Daten-Struktur eines Macroblock.
  • 12 veranschaulicht die Daten-Struktur von Macroblock modes.
  • 13 veranschaulicht Startcodes.
  • 14 kennzeichnet ein Blockdiagramm, welches die Struktur eines Videodecoders für die Decodierung eines kodierten Stromes herkömmlicher MP@ML zeigt.
  • 15 kennzeichnet ein Blockdiagramm, welches die Struktur eines Bildschirmdecoders gemäß der vorliegenden Erfindung zeigt.
  • 16 kennzeichnet ein Flussdiagramm zum Erklären der Verarbeitung durch einen Teildecoder-Steuerungs-Schaltkreis.
  • 17 veranschaulicht ein spezifisches Beispiel der Verarbeitung durch einen Teildecoder-Steuerungs-Schaltkreis.
  • 18 kennzeichnet ein Flussdiagramm, das die Entscheidungsverarbeitung von Teildecodern durch einen Bewegungs-Ausgleichs-Schaltkreis erklärt.
  • 19 veranschaulicht ein spezifisches Beispiel der Entscheidungsverarbeitung von Teildecodern durch einen Bewegungs-Ausgleichs-Schaltkreis.
  • 20 kennzeichnet ein Blockdiagramm, das die Struktur eines Wiedergabegeräts zeigt, das den MPEG Videodecoder von 15 hat.
  • 21 zeigt die Bildsstruktur eines MPEG-Video-Signals, das in einen Codierer eingegebenen und dann kodiert wird.
  • 22 zeigt ein Beispiel einer MPEG-Bild-Kodierung, die eine Zwischenrahmenvorhersage verwendet.
  • 23 veranschaulicht die Decodierungsverarbeitung für den Fall, in dem ein MPEG-kodierter Strom in Vorwärtsrichtung reproduziert wird.
  • 24 veranschaulicht die Decodierungsverarbeitung in dem Fall, in dem ein MPEG-kodierter Strom in Rückwärtsrichtung reproduziert wird.
  • Bester Modus für das Durchführen der Erfindung
  • Ein bevorzugtes Ausführungsbeispiel der vorliegenden Erfindung wird jetzt mit Bezug auf die Zeichnungen beschrieben.
  • 15 kennzeichnet ein Blockdiagramm, welches die Schaltkreis-Struktur eines MPEG Videodecoders gemäß der vorliegenden Erfindung zeigt.
  • Der MPEG-Videodecoder von 15 umfasst die folgenden Aufbau-Elemente: einen IC 31, gebildet durch einen Strom-Eingangs-Schaltkreis 41, einen Startcode-Erkennungs-Schaltkreis 42, einen Strom-Puffer-Steuerungs-Schaltkreis 43, einen Takterzeugungs-Schaltkreis 44, einen Bild-Decoder 45, einen Teil-Decodier-Steuerungs-Schaltkreis 46, Teildecoder 47 bis 49, einen Bewegungs-Ausgleichs-Schaltkreis 50, einen Helligkeits-Puffer-Steuerungs-Schaltkreis 51, einen Farbdifferenz-Puffer-Steuerungs-Schaltkreis 52 und einen Anzeigen-Ausgangs-Schaltkreis 53; einen Puffer 32, gebildet durch einen Strom-Puffer 61 und einen Startcode-Puffer 62 und gebildet aus z.B. einem DRAM; einem Videopuffer 33, gebildet durch einen Helligkeits-Puffer 71 und einen Farbdifferenz-Puffer 72 und gebildet aus z.B. einem DRAM; einen Controller 34; und einen Antrieb 35.
  • Der Strom-Eingangs-Schaltkreis 41 empfangt die Eingabe eines hoch-effizient kodierten Stromes und stellt den kodierten Strom dem Startcode-Erkennungs-Schaltkreis 42 zur Verfügung. Der Startcode-Erkennungs-Schaltkreis 42 liefert den eingegebenen kodierten Strom an den Strom-Puffer-Steuerungs-Schaltkreis 43. Der Startcode-Erkennungs-Schaltkreis 42 ermittelt auch einen Startcode, wie mit Bezug auf 13 beschrieben, erzeugt dann eine Startcode-Information einschließlich des Typs des Startcodes und einen Schreibpointer, welcher die Position anzeigt, in der der Startcode auf den Strom-Puffer 61 auf Grundlage von dem ermittelten Startcode geschrieben wird, und liefert die Startcode-Information an den Strom-Puffer-Steuerungs-Schaltkreis 43.
  • Der Taktgeberschaltkreis 44 erzeugt einen Basistakt, der zweimal so groß wie der des Taktgeberschaltkreises 13 ist, der mit Bezug auf 14 beschrieben wird, und liefert den Basistakt an den Strom-Puffer-Steuerungs-Schaltkreis 43. Der Strom-Puffer-Steuerungs-Schaltkreis 43 schreibt den eingegebenen kodierten Strom zum Strom-Puffer 61 des Puffers 32 und schreibt die eingegebene Startcode-Information in den Startcode-Puffer 62 des Puffers 32 entsprechend dem Basistakt, der vom Taktgeberschaltkreis 44 erzeugt wird.
  • In dem Fall, in dem der MPEG-Videodecoder einen MPEG kodierten Strom von 4:2:2P@HL in Vorwärtsrichtung reproduzieren kann, hat der Strom-Puffer 61 mindestens eine Kapazität von 47.185.920 Bits, welches eine VBV-Puffergröße ist, die für die Decodierung von 4:2:2P@HL gefordert wird. In dem Fall, in dem der MPEG-Videodecoder Rückwärts-Wiedergabe durchführen kann, hat der Strom-Puffer 61 mindestens eine Kapazität zum Aufzeichnen von Daten von zwei GOPs.
  • Der Bilddecoder 45 liest die Startcode-Information vom Startcode-Puffer 62 über den Strom-Puffer-Steuerungs-Schaltkreis 43 aus. Wenn beispielsweise die Decodierung gestartet ist, da sie mit sequence_header startet, welches mit Bezug auf 2 beschrieben wird, liest der Bilddecoder 45 einen Schreibpointer aus, der dem sequence_header code entspricht, welches der Startcode ist, der mit Bezug auf 4 beschrieben wird, vom Startcode-Puffer 62 und liest sequence_header aus und decodiert es vom Strom-Puffer 61 auf der Grundlage des Schreibpointers. Darauf folgend liest der Bilddecoder 45 sequence_extension, GOP_header, picture_coding_extension und dergleichen vom Strom-Puffer 61 aus und decodiert es, ähnlich dem Lesen von sequence_header.
  • An dem Punkt, an dem der Bilddecoder 45 den ersten slice start code vom Startcode-Puffer 62 ausliest, sind alle notwendigen Parameter für die Decodierung des Bildes zur Verfügung gestellt. Der Bilddecoder 45 decodiert die Parameter der decodierten Bild-Schicht zum Teil-Decoder-Steuerungs-Schaltkreis 46.
  • Der Teil-Decoder-Steuerungs-Schaltkreis 46 empfangt die Eingabe der Parameter der Bild-Schicht und liest die Startcode-Information des entsprechenden Teils vom Startcode-Puffer 62 über den Strom-Puffer-Steuerungs-Schaltkreis 43 aus. Der Teil-Decoder-Steuerungs-Schaltkreis 46 umfasst auch ein Register, welches die Ordnungszahl eines Teils im kodierten Strom umfasst, welcher durch einen der Teildecoder 47 bis 49 decodiert werden soll, und liefert die Parameter der Bild-Schicht und des Schreibpointers des Teils, welche in der Startcode-Information enthalten war, an einen der Teildecoder 47 bis 49. Die Verarbeitung, in der der Teildecoder-Steuerungs-Schaltkreis 46 einen Teildecoder auswählt, um die Decodierung in den Teildecodern 47 bis 49 durchzuführen, wird später mit Bezug auf 16 und 17 beschrieben.
  • Der Teildecoder 47 wird durch einen Macroblock-Erkennenden-Schaltkreis 81, einen Vektor-Decodierenden-Schaltkreis 82, einen Entquantelungs-Schaltkreis 83 und einen inversen DCT-Schaltkreis 84 gebildet. Der Teildecoder 47 liest den entsprechenden Teil vom Strom-Puffer 61 über den Strom-Puffer-Steuerungs-Schaltkreis 43 auf der Grundlage des Schreibpointers des Teils aus, der vom Teildecoder-Steuerungs- Schaltkreis 46 eingegeben wird. Dann decodiert der Teildecoder 47 den Auslese-Teil entsprechend den Parametern der Bild-Schicht, die vom Teildecoder-Steuerungs-Schaltkreis 46 eingegeben werden und gibt die decodierten Daten an den Bewegungs-Ausgleichs-Schaltkreis 50 aus.
  • Der Macroblock-Ermittlungs-Schaltkreis 81 trennt Macroblöcke der Teil-Schicht, decodiert den Parameter jedes Macroblocks, liefert den mit variabler Länge kodierte Vorhersage-Modus und den Vorhersagevektor eines jeden Macroblocks an den Vektor-Decodierungs-Schaltkreis 82 und liefert mit variabler Länge kodierte Koeffizienz-Daten an den Dequantelungs-Schaltkreis 83. Der Vektor-Decodierungs-Schaltkreis 82 decodiert den mit variabler Länge kodierten Vorhersage-Modus und den Vorhersagevektor jedes Macroblocks und stellt so den Vorhersagevektor wieder her. Der Entquantelungs-Schaltkreis 83 decodiert die mit variabler Länge kodierten Koeffizienten-Daten und liefert die decodierten Koeffizienten-Daten an den inversen DCT-Schaltkreis 84. Der inverse DCT-Schaltkreis 84 führt eine inverse DCT auf den decodierten Koeffizienten-Daten durch und stellt so die Original-Pixeldaten vor der Codierung wieder her.
  • Der Teildecoder 47 fordert beim Bewegungs-Ausgleichs-Schaltkreis 50 an, den Bewegungs-Ausgleich auf den decodierten Macroblock durchzuführen (das heißt, ein Signal, bezeichnet durch REQ in 15, auf 1 einzustellen). Der Teildecoder 47 empfangt ein Signal, das die Annahme der Anforderung anzeigt, den Bewegungs-Ausgleich (das heißt, ein Signal bezeichnet durch ACK in 15) vom Bewegungs-Ausgleichs-Schaltkreis 50 durchzuführen und liefert den decodierten Vorhersagevektor und die decodierten Pixel zum Bewegungs-Ausgleichs-Schaltkreis 50. Nachdem Empfang der Eingabe des ACK-Signals und dem Liefern des decodierten Vorhersagevektor und der decodierten Pixel an den Bewegungs-Ausgleichs-Schaltkreis 50, verändert der Teildecoder 47 das REQ-Signal von 1 nach 0. Dann, an dem Punkt, wenn die Decodierung des folgenden eingegebenen Macroblocks endet, verändert der Teildecoders 47 das REQ-Signal von 0 nach 1.
  • Schaltkreise eines Macroblock-Erkennungs-Schaltkreises 85 zu einem inversen DCT-Schaltkreis 88 des Teildecoders 48 und Schaltkreise von einem Macroblock-Erkennungs-Schaltkreis 89 zu einem inversen DCT-Schaltkreis 92 des Teildecoders 49 führen die Verarbeitung ähnlich zu der Verarbeitung aus, die durch die Schaltkreise vom Macroblock-Erkennungs-Schaltkreis 81 zum inversen DCT-Schaltkreis 84 des Teildecoders 47 durchgeführt wird und wird daher nicht weiter im Detail beschrieben.
  • Der Bewegungs-Ausgleichs-Schaltkreis 50 hat drei Register Reg_REQ_A, Reg_REQ_B und Reg_REQ_C welche anzeigen ob der Bewegungs-Ausgleich der Daten, die von den Teildecodern 47 bis 49 eingegeben wurden, beendet ist oder nicht. Der Bewegungs-Ausgleichs- Schaltkreis 50 wählt einen geeigneten Teildecoder 47 bis 49 mit Bezug auf die Werte dieser Register, empfangt dann einen Bewegungs-Ausgleichs-Durchführungs-Auftrag (das heißt, gibt ein ACK-Signal zu einem REQ-Signal aus und empfängt die Eingabe eines Vorhersagevektors und eines Pixels) und führt die Bewegungs-Ausgleichs-Verarbeitung durch. In diesem Fall, nachdem der Bewegungs-Ausgleich für irgendeinen der Teildecoder 47 bis 49, der ein REQ-Signal von 1 an einem vorbestimmten Zeitpunkt aufweist, einmal für jeden der Teildecoder 47 bis 49 endet, empfangt der Bewegungs-Ausgleichs-Schaltkreis 50 den nächstfolgenden Auftrag zum Bewegungs-Ausgleich. Zum Beispiel selbst wenn der Teildecoder 47 aufeinanderfolgend Bewegungs-Ausgleichs-Aufträge herausgibt, kann der Bewegungs-Ausgleichs-Schaltkreis 50 nicht den zweiten Bewegungs-Ausgleichs-Auftrag vom Teildecoder 47 annehmen, bis der Bewegungs-Ausgleich für den Teildecoder 48 und den Teildecoder 49 endet. Der Prozess, in welchem der Bewegungs-Ausgleichs-Schaltkreis 50 einen der Teildecoder 47 bis 49 auswählt, um einen Bewegungs-Ausgleiches auf der Ausgabe des vorgewählten Teildecoders durchzuführen, wird später mit Bezug auf 18 und 19 beschrieben.
  • Wenn der Macroblock, der von einem der Teildecoder 47 bis 49 eingegeben wird, nicht den Bewegungs-Ausgleich verwendet, falls die Pixeldaten Helligkeitsdaten sind, schreibt der Bewegungs-Ausgleichs-Schaltkreis 50 die Pixeldaten in den Helligkeits-Puffer 71 des Video-Puffers 33 über den Helligkeits-Puffer-Steuerungs-Schaltkreis 51 ein und wenn die Pixeldaten Farbdifferenz-Daten sind, schreibt der Bewegungs-Ausgleichs-Schaltkreis 50 die Pixeldaten in den Farbdifferenz-Puffer 72 des Video-Puffers 33 über den Farbdifferenz-Puffer-Steuerungs-Schaltkreis 52 ein. So bereitet sich der Bewegungs-Ausgleichs-Schaltkreis 50 zur Anzeigeausgabe vor und bereitet sich auch für den Fall vor, in dem die Pixeldaten als Referenzdaten für ein anderes Bild verwendet werden.
  • Wenn der Macroblock, der von einem der Teildecoder 47 bis 49 ausgegeben wird, den Bewegungs-Ausgleich benutzt, wenn die Pixeldaten Helligkeitsdaten sind, liest der Bewegungs-Ausgleichs-Schaltkreis 50 ein Bezugs-Pixel vom Helligkeits-Puffer 71 über den Helligkeits-Puffer-Steuerungs-Schaltkreis 51 in Übereinstimmung mit dem Vorhersagevektor ein, der von dem entsprechenden der Teildecoder 47 bis 49 eingegeben wird, und wenn die Pixeldaten Farbdifferenz-Daten sind, liest der Bewegungs-Ausgleichs-Schaltkreis 50 die Bezugspixeldaten vom Farbdifferenz-Puffer 72 über den Farbdifferenz-Puffer-Steuerungs-Schaltkreis 52 ein. Dann fügt der Bewegungs-Ausgleichs-Schaltkreis 50 die ausgelesenen Referenz-Pixel-Daten den Pixeldaten hinzu, die von dem entsprechen der Teildecoder 47 bis 49 geliefert werden und führt so den Bewegungs-Ausgleich durch.
  • Wenn die Pixeldaten Helligkeitsdaten sind, schreibt der Bewegungs-Ausgleichs-Schaltkreis 50 die Pixeldaten, an denen ein Bewegungs-Ausgleich durchgeführt wird, in den Helligkeits-Puffer 71 über den Helligkeits-Puffer-Steuerungs-Schaltkreis 51 ein. Wenn die Pixeldaten Farbdifferenz-Daten sind, schreibt der Bewegungs-Ausgleichs-Schaltkreis 50 die Pixeldaten, an denen Bewegungs-Ausgleich durchgeführt wird, in den Farbdifferenz-Puffer 72 über den Farbdifferenz-Puffer-Steuerungs-Schaltkreis 52 ein. So bereitet sich der Bewegungs-Ausgleichs-Schaltkreis 50 für die Anzeigeausgabe vor und bereitet auch sich für den Fall vor, in dem die Pixeldaten als Bezugsdaten für ein anderes Bild verwendet werden.
  • Der Anzeigen-Ausgabe-Schaltkreis 53 erzeugt ein synchrones Takt-Signal zum Ausgeben der decodierten Bild-Daten, liest dann die Helligkeitsdaten vom Helligkeits-Puffer 71 über den Helligkeits-Puffer-Steuerungs-Schaltkreis 51 aus und liest die Farbdifferenz-Daten vom Farbdifferenz-Puffer 72 über den Farbdifferenz-Puffer-Steuerungs-Schaltkreis 52 in Übereinstimmung mit der Taktung aus. Die Anzeigen-Ausgabe-Schaltkreis 52 gibt folglich die Daten als decodiertes Videosignal aus.
  • Das Laufwerk 35 ist mit der Steuereinheit 34 verbunden, und falls nötig, führt das Laufwerk 35 die Übertragung und die Annahme von Daten zu und von einer magnetischen Scheibe 101, einer optischen Scheibe 102, einer magnet-optischen Scheibe 103 und einem Halbleiterspeicher 104 durch, welche hierauf geladen werden. Die Steuereinheit 34 steuert den Betrieb des oben beschriebenen ICs 31 und des Laufwerks 35. Zum Beispiel kann die Steuereinheit 34 den IC 31 veranlassen, die Verarbeitung in Übereinstimmung mit den Programmen durchzuführen, die auf der magnetischen Scheibe 101, der optischen Scheibe 102, der magneto-optischen Scheibe 103 und dem Halbleiterspeicher 104 gespeichert sind, der auf dem Laufwerk geladen ist.
  • Die Verarbeitung durch den Teildecoder-Steuerungs-Schaltkreis 46 wird jetzt mit Bezug auf das Flussdiagramm aus 16 beschrieben.
  • Im Schritt S1 stellt der Teildecoder-Steuerungs-Schaltkreis 46 den Wert des Registers auf N = 1 ein, das die Ordnungszahl des Teils anzeigt, der im kodierten Strom verarbeitet wird. Im Schritt S2, stellt der Teildecoder-Steuerungs-Schaltkreis 46 fest, ob der Teildecoder 47 beim Verarbeiten ist oder nicht.
  • Wenn im Schritt S2 festgestellt wird, dass der Teildecoder 47 nicht beim Verarbeiten ist, liefert der Teildecoder-Steuerungs-Schaltkreis 46 im Schritt S3 den Parameter der Bild-Schicht und des Schreibpointers des Teils N, die in der Startcode-Information an den Teildecoder 47 eingeschlossen ist, und veranlasst den Teildecoder 47, den Teil N zu decodieren. Die Verarbeitung gehen dann zu Schritt S8.
  • Wenn im Schritt S2 festgestellt wird, dass der Teildecoder 47 beim Verarbeiten ist, stellt der Teildecoder-Steuerungs-Schaltkreis 46 im Schritt S4 fest, ob der Teildecoder 48 beim Verarbeiten ist, oder nicht. Wenn im Schritt S4 festgestellt wird, dass der Teildecoder 48 nicht beim Verarbeiten ist, liefert der Teildecoder-Steuerungs-Schaltkreis 46 im Schritt S5 den Parameter der Bild-Schicht und des Schreibpointers des Teils N, die in der Startcode-Information an den Teildecoder 48 eingeschlossen ist, und veranlasst den Teildecoder, den Teil N zu decodieren. Die Verarbeitung geht dann zu Schritt S8.
  • Wenn im Schritt S4 festgestellt wird, dass der Teildecoder 48 beim Verarbeiten ist, stellt der Teildecoder-Steuerungs-Schaltkreis 46 im Schritt S6 fest, ob der Teildecoder 49 beim Verarbeiten ist oder nicht. Wenn im Schritt S6 festgestellt wird, dass der Teildecoder 49 beim Verarbeiten ist, geht die Verarbeitung zum Schritt S2 zurück und die darauf folgende Verarbeitung wird wiederholt.
  • Wenn im Schritt S6 festgestellt wird, dass der Teildecoder 49 nicht beim Verarbeiten ist, liefert der Teildecoder-Steuerungs-Schaltkreis 46 im Schritt S7 den Parameter der Bild-Schicht und des Schreibpointers des Teils N, die in der Startcode-Information an den Teildecoder 49 eingeschlossen ist, und veranlasst den Teildecoder 49, den Teil N zu decodieren. Die Verarbeitung gehen dann zu Schritt S8.
  • Im Schritt S8 stellt der Teildecoder-Steuerungs-Schaltkreis 46 den Wert der Register auf N = N+1 ein, welches die Ordnungszahl des Teils anzeigt, die im kodierten Strom verarbeitet wird. Im Schritt S9 stellt der Teildecoder-Steuerungs-Schaltkreis 46 fest, ob die Decodierung aller Teile beendet ist oder nicht. Wenn im Schritt S9 festgestellt wird, dass die Decodierung aller Teile nicht beendet ist, geht die Verarbeitung zum Schritt S2 zurück und die folgende Verarbeitung wird wiederholt. Wenn im Schritt S9 festgestellt wird, dass die Decodierung aller Teile beendet ist, endet die Verarbeitung.
  • 17 zeigt ein spezifisches Beispiel der Verarbeitung durch den Teildecoder-Steuerungs-Schaltkreis 46, der mit Bezug auf 16 beschrieben wird. Wie oben beschrieben, werden die Daten der Bild-Schicht durch den Bild-Decoder 45 und den Parameter der Bild-Schicht decodiert, die an den Teildecoder-Steuerungs-Schaltkreis 46 geliefert wird. In diesem Fall, im Schritt S1, der mit Bezug auf 16 beschrieben wird, stellt der Teildecoder-Steuerungs-Schaltkreis 46 den Wert der Register auf N = 1 ein. Im Schritt S2 wird festgestellt, dass der Teildecoder 47 nicht beim Verarbeiten ist. Folglich liefert im Schritt S3 der Teildecoder-Steuerungs-Schaltkreis 46 den Parameter der Bild-Schicht und des Schreibpointers eines Teils 1, der in der Startcode-Information enthalten ist an den Teildecoder 47 und veranlasst den Teildecoder 47, den Teil N zu decodieren (wobei N = 1). Im Schritt S8 stellt der Teildecoder-Steuerungs-Schaltkreis 46 den Wert der Register auf N = N+1 ein. Im Schritt S9 wird festgestellt, dass die Decodierung aller Teile nicht beendet ist. Folglich geht die Verarbeitung zu Schritt S2 zurück.
  • Im Schritt S2 wird festgestellt, dass der Teildecoder 47 beim Verarbeiten ist. Im Schritt S4 wird festgestellt, dass der Teildecoder 48 nicht beim Verarbeiten ist. Folglich liefert im Schritt S5 der Teildecoder-Steuerungs-Schaltkreis 46 den Parameter der Bild-Schicht und des Schreibpointers eines Teils 2 an den Teildecoder 48 und veranlasst den Teildecoder 48, den Teil N zu decodieren (wobei N = 2). Im Schritt S8 stellt der Teildecoder-Steuerungs-Schaltkreis 46 den Wert der Register auf N = N+1 ein. Im Schritt S9 wird festgestellt, dass die Decodierung aller Teile nicht beendet ist: folglich geht die Verarbeitung zu Schritt S2 zurück.
  • Im Schritt S2 wird festgestellt, dass der Teildecoder 47 beim Verarbeiten ist, und im Schritt S4 wird festgestellt, dass der Teildecoder 48 beim Verarbeiten ist. Im Schritt S6 wird festgestellt, dass der Teildecoder 49 nicht beim Verarbeiten. Folglich liefert im Schritt S7 der Teildecoder-Steuerungs-Schaltkreis 46 den Parameter der Bild-Schicht und des Schreibpointers eines Teils 3 an den Teildecoder 49 und veranlasst den Teildecoder 49, den Teil N zu decodieren (wobei N = 3). Im Schritt S8 stellt der Teildecoder-Steuerungs-Schaltkreis 46 den Wert der Register auf N = N+1 ein. Im Schritt S9 wird festgestellt, dass die Decodierung aller Teile nicht beendet ist. Folglich geht die Verarbeitung zu Schritt S2 zurück.
  • Nach dem Ausführen der Decodierungs-Verarbeitung des eingegebenen Teils, geben die Teildecoder 47 bis 49 ein Signal aus, welches die Beendigung der Decodierungs-Verarbeitung dem Teildecoder-Steuerungs-Schaltkreis 46 anzeigt. Das heißt, bis ein Signal, welches die Beendigung der Decodierungs-Verarbeitung des Teils anzeigt, von einem der Teildecoder 47 bis 49 eingegeben wird, sind alle Teildecoder 47 bis 49 beim Verarbeiten und bearbeiten folglich die Prozesse der Schritte S2, S4 und S6 wiederholt. Wenn der Teildecoder 48 ein Signal ausgibt, welches die Beendigung des Decodierungsprozesses dem Teildecoder-Steuerungs-Schaltkreis 46 zu der Taktung, die durch A in 17 angezeigt wird, anzeigt, wird im Schritt S4 festgestellt, dass der Teildecoder 48 nicht beim Verarbeiten ist. Folglich liefert im Schritt S5 der Teildecoder-Steuerungs-Schaltkreis 46 den Schreibpointer eines Teils 4 an den Teildecoder 48 und veranlasst den Teildecoder 48, den Teil N zu decodieren (wo N = 4). Im Schritt S8 setzt der Teildecoder-Steuerungs-Schaltkreises 46 den Wert der Register auf N = N+1. Im Schritt S9 wird festgestellt, dass die Decodierung aller Teile nicht beendet ist. Folglich geht die Verarbeitung zu Schritt S2 zurück.
  • Der Teildecoder-Steuerungs-Schaltkreis 46 wiederholt die Verarbeitung der Schritte S2, S4 und S6, bis der nächste Eingang eines Signals, welches die Beendigung der Decodierungs-Verarbeitung kennzeichnet, von einem der Teildecoder 47 bis 49 empfangen wird. In 17 wird, da der Teildecoder-Steuerungs-Schaltkreis 46 den Eingang eines Signal-Kennzeichnens empfangt, welches das Ende der Decodierung des Teils 3 vom Teildecoder 49, zu dem Takt, der durch B angezeigt wird, anzeigt, wird im Schritt S6 festgestellt, dass der Teildecoder 49 beim Verarbeiten ist. Im Schritt S7 liefert der Teildecoder-Steuerungs-Schaltkreis 46 den Schreibpointer eines Teils 5 an den Teildecoder 49 und veranlasst den Teildecoder 49, den Teil N zu decodieren (wo N = 5). Im Schritt S8 stellt der Teildecoder-Steuerungs-Schaltkreis 46 den Wert der Register auf N = N+1 ein. Im Schritt S9 wird festgestellt, dass die Decodierung aller Teile nicht beendet ist. Folglich geht die Verarbeitung zu Schritt S2 zurück. Eine ähnliche Verarbeitung wird bis zur Decodierung des letzten Teil-Endes wiederholt.
  • Da der Teildecoder-Steuerungs-Schaltkreis 46 die Teile für die Decodierungs-Verarbeitung mit Bezug auf die Verarbeitungs-Stati der Teildecoder 47 bis 49 zuteilt, kann die Mehrzahl der Decoder effizient verwendet werden.
  • Die Entscheidungs-Verarbeitung der Teildecoder durch den Bewegungs-Ausgleichs-Schaltkreis 50 wird jetzt mit Bezug auf das Flussdiagramm von 18 beschrieben.
  • Im Schritt S21 initialisiert der Bewegungs-Ausgleichs-Schaltkreis 50 die internen Register Reg_REQ_A, Reg_REQ_B und Reg_REQ_C. Das heißt, er setzt Reg_REQ_A = 0, Reg_REQ_B = 0 und Reg_REQ_C = 0.
  • Im Schritt S22 stellt der Bewegungs-Ausgleichs-Schaltkreis 50 fest, ob alle Registerwerte 0 sind oder nicht. Wenn im Schritt S22 festgestellt wird, dass alle Registerwerte nicht 0 sind (das heißt, mindestens ein Registerwert ist 1), geht die Verarbeitung zu Schritt S24.
  • Wenn im Schritt S22 festgestellt wird, dass alle Registerwerte 0 sind, aktualisiert der Bewegungs-Ausgleichs-Schaltkreis 50 im Schritt S23 die Registerwerte aufgrund von REQ-Signalen, die von den Teildecodern 47 bis 49 eingegeben werden. Genauer, wenn ein REQ-Signal vom Teildecoder 47 ausgegeben ist, wird Reg_REQ_A = 1 eingestellt. Wenn ein REQ-Signal vom Teildecoder 48 ausgegeben ist, wird Reg_REQ_B = 1 eingestellt. Wenn ein REQ-Signal vom Teildecoder 49 ausgegeben ist, wird Reg_REQ_C = 1 eingestellt. Die Verarbeitung geht dann zu Schritt S24.
  • Im Schritt S24 stellt der Bewegungs-Ausgleichs-Schaltkreis 50 fest, ob Reg_REQ_A 1 ist oder nicht. Wenn im Schritt S24 festgestellt wird, dass Reg_REQ_A 1 ist, übermittelt der Bewegungs-Ausgleichs-Schaltkreis 50 im Schritt S25 ein ACK-Signal an den Teildecoder 47 und stellt Reg_REQ_A = 0 ein. Der Teildecoders 47 gibt einen Vorhersagevektor, welcher durch den Vektor-Decodierenden-Schaltkreis 82 decodiert wird, und die Pixel, an denen ein inverses DCT durch den inversen DCT-Schaltkreis 84 durchgeführt wird, an den Bewegungs-Ausgleichs-Schaltkreis 50 aus. Die Verarbeitung geht dann zu Schritt S30.
  • Wenn im Schritt S24 festgestellt wird, dass Reg_REQ_A nicht 1 ist, stellt der Bewegungs-Ausgleichs-Schaltkreis 50 im Schritt S26 fest, ob Reg_REQ_B 1 ist oder nicht. Wenn im Schritt S26 festgestellt wird, dass Reg_REQ_B 1 ist, übermittelt der Bewegungs-Ausgleichs-Schaltkreis 50 im Schritt S27 ein ACK-Signal an den Teildecoder 48 und stellt Reg_REQ_B = 0 ein. Der Teildecoder 48 gibt einen Vorhersagevektor an den Vektor-Decodier-Schaltkreis 86 und die Pixel, an denen eine inverse DCT durch den inversen-DCT-Schaltkreis 88 durchgeführt wird, an den Bewegungs-Ausgleichs-Schaltkreis 50 aus. Die Verarbeitung geht dann zu Schritt S30.
  • Wenn im Schritt S26 festgestellt wird, dass Reg_REQ_B nicht 1 ist, stellt der Bewegungs-Ausgleichs-Schaltkreis 50 im Schritt S28 fest, ob Reg_REQ_C 1 ist oder nicht. Wenn im Schritt S28 festgestellt wird, dass Reg_REQ_C nicht 1 ist, geht die Verarbeitung zum Schritt S22 zurück und die nachfolgende Verarbeitung werden wiederholt.
  • Wenn im Schritt S28 festgestellt wird, dass Reg_REQ_C 1 ist, übermittelt der Bewegungs-Ausgleichs-Schaltkreis 50 im Schritt S29 ein ACK-Signal an den Teildecoder 49 und stellt Reg_REQ_C = 0 ein. Der Teildecoder 49 gibt einen Vorhersagevektor durch den Vektor-Decodier-Schaltkreis 90 und die Pixel, an denen eine inverse DCT durch den inversen-DCT-Schaltkreis 92 durchgeführt wird, an den Bewegungs-Ausgleichs-Schaltkreis 50 aus. Die Verarbeitung geht dann zu Schritt S30.
  • Im Schritt S30 stellt der Bewegungs-Ausgleichs-Schaltkreis 50 fest, ob der Macroblock, der von einem der Teildecoder 47 bis 49 eingegeben wird, den Bewegungs-Ausgleich benutzt oder nicht.
  • Wenn im Schritt S30 festgestellt wird, dass der Macroblock den Bewegungs-Ausgleich benutzt, führt der Bewegungs-Ausgleichs-Schaltkreis 50 im Schritt S31 die Bewegungs-Ausgleichs-Verarbeitung an dem eingegebenen Macroblock durch. Genauer, in Übereinstimmung mit dem Vorhersagevektor, welcher von einem entsprechenden der Teildecoder 47 bis 49 ausgegeben wird, wenn die Pixeldaten Helligkeitsdaten sind, liest der Bewegungs-Ausgleichs-Schaltkreis 50 Bezugspixeldaten vom Helligkeits-Puffer 71 über den Helligkeits-Puffer-Steuerungs-Schaltkreis 51 aus und wenn die Pixeldaten Farbdifferenz-Daten sind, liest der Bewegungs-Ausgleichs-Schaltkreis 50 Bezugspixeldaten vom Farbdifferenz-Puffer 72 über den Farbdifferenz-Puffer-Steuerungs-Schaltkreis 52 aus. Dann fügt der Bewegungs-Ausgleichs-Schaltkreis 50 die ausgelesenen Bezugspixeldaten den Pixeldaten hinzu, die von einem entsprechenden der Teildecoder 47 bis 49 geliefert werden und führt so den Bewegungs-Ausgleich durch.
  • Wenn die Pixeldaten Helligkeitsdaten sind, schreibt der Bewegungs-Ausgleichs-Schaltkreis 50 die bewegungs-kompensierten Pixeldaten in den Helligkeits-Puffer 71 über den Helligkeits-Puffer-Steuerungs-Schaltkreis 51. Wenn die Pixeldaten Farbdifferenzdaten sind, schreibt der Bewegungs-Ausgleichs-Schaltkreis 50 die bewegungs-kompensierten Pixeldaten in den Farbdifferenz-Puffer 72 über den Farbdifferenz-Puffer-Steuerungs-Schaltkreis 52. So bereitet sich der Bewegungs-Ausgleichs-Schaltkreis 50 für eine Anzeigenausgabe vor und bereitet sich auch für den Fall vor, in dem die Pixeldaten als Bezugsdaten für ein anderes Bild verwendet werden. Die Verarbeitung geht dann zum Schritt S22 zurück und die nachfolgende Verarbeitung wird wiederholt.
  • Wenn im Schritt S30 festgestellt wird, dass der Macroblock nicht den Bewegungs-Ausgleich benutzt, schreibt der Bewegungs-Ausgleichs-Schaltkreis 50 im Schritt S32 die Pixeldaten in den Helligkeits-Puffer 71 über den Helligkeits-Puffer-Steuerungs-Schaltkreis 51, wenn die Pixeldaten Helligkeitsdaten sind, und schreibt die Pixeldaten in den Farbdifferenz-Puffer 72 über den Farbdifferenz-Puffer-Steuerungs-Schaltkreis 52, wenn die Pixeldaten Farbdifferenz-Daten sind. So bereitet sich der Bewegungs-Ausgleichs-Schaltkreis 50 für die Anzeigenausgabe vor und bereitet auch sich für den Fall vor, in dem die Pixeldaten als Bezugsdaten für ein anderes Bild verwendet werden. Die Verarbeitung geht dann zum Schritt S22 zurück und die nachfolgende Verarbeitung wird wiederholt.
  • 19 zeigt ein spezifisches Beispiel der Entscheidungs-Verarbeitung des Decoders durch den Bewegungs-Ausgleichs-Schaltkreis 50, der oben mit Bezug auf 18 beschrieben wird.
  • Wenn festgestellt wird, dass alle Registerwerte des Bewegungs-Ausgleichs-Schaltkreises 50 durch die Verarbeitung des Schrittes S22 von 18 bei Takt C, der in 19 gezeigt wird, 0 sind, geben alle Teildecoder 47 bis 49 REQ-Signale aus. Folglich werden die Registerwerte auf Reg_REQ_A = 1, auf Reg_REQ_B = 1 und auf Reg_REQ_C = 1 durch die Verarbeitung im Schritt S23 aktualisiert. Da durch die Verarbeitung des Schrittes S24 festgestellt wird, dass Reg_REQ_A gleich 1 ist, gibt der Bewegungs-Ausgleichs-Schaltkreis 50 im Schritt S25 ein ACK-Signal zum Teildecoder 47 aus und stellt Reg_REQ_A = 0 ein. Der Bewegungs-Ausgleichs-Schaltkreis 50 empfangt dann den Eingang des Vorhersagevektors und das Pixel vom Teildecoder 47 und führt den Bewegungs-Ausgleich 1 durch.
  • Nachdem der Bewegungs-Ausgleich 1 endet, das heißt am Takt D, der in 19 gezeigt ist, geht die Verarbeitung zum Schritt S22 zurück. Im Takt D, der in 19 gezeigt ist, wird ein REG-Signal vom Teildecoder 47 ausgegeben. Da die Registerwerte jedoch Reg_REQ_A = 0, Reg_REQ_B = 1 und Reg_REQ_C = 1 sind, und im Schritt S22 festgestellt wird, dass alle Registerwerte nicht 0 sind, geht die Verarbeitung zu Schritt S24 und die Registerwerte werden nicht aktualisiert.
  • Im Schritt S24 wird festgestellt, dass Reg_REQ_A gleich 0 ist und es wird im Schritt S26 festgestellt, dass Reg_REQ_B gleich 1 ist. Folglich gibt der Bewegungs-Ausgleichs-Schaltkreis 50 in Schrittes S27 ein ACK-Signal zum Teildecoder 48 aus und stellt Reg_REQ_B = 0 ein. Der Bewegungs-Ausgleichs-Schaltkreis 50 empfangt dann den Eingang des vorbestimmten Vektors und das Pixel vom Teildecoder 48 und führt den Bewegungs-Ausgleich 2 durch.
  • Nachdem der Bewegungs-Ausgleich 2 endet, d.h. bei Takt E, der in 19 gezeigt ist, geht die Verarbeitung zum Schritt S22 zurück. Am Takt E, der in 19 gezeigt ist, wird ein REG-Signal vom Teildecoder 47 ausgegeben. Da die Registerwerte jedoch Reg_REQ_A = 0, Reg_REQ_B = 0 und Reg_REQ_C = 1 sind, und im Schritt S22 festgestellt wurde, dass alle Registerwerte nicht 0 sind, werden die Registerwerte nicht aktualisiert, ähnlich zum Fall der Taktung D.
  • Im Schritt S24 wird festgestellt, dass Reg_REQ_A gleich 0 ist und im Schritt S26 wird festgestellt, dass Reg_REQ_B gleich 0 ist. Im Schritt S28 wird festgestellt, dass Reg_REQ_C gleich 1 ist. Folglich gibt der Bewegungs-Ausgleichs-Schaltkreis 50 im schritt S29 ein ACK-Signal zum Teildecoder 49 aus und stellt Reg_REQ_C = 0 ein. Der Bewegungs-Ausgleichs-Schaltkreis 50 empfangt dann den Eingang des vorbestimmten Vektors und das Pixel vom Teildecoder 49 und führt den Bewegungs-Ausgleich 3 durch.
  • Nach dem der Bewegungs-Ausgleich 3 endet, das heißt am Takt F, der in 19 gezeigt ist, geht die Verarbeitung zum Schritt S22 zurück. Am Takt F werden, da die Registerwerte Reg_REQ_A = 0, Reg_REQ_B = 0 und Reg_REQ_C = 0 sind, die Registerwerte auf Reg_REQ_A = 1, auf Reg_REQ_B = 1 und auf Reg_REQ_C = 0 im Schritt S23 aktualisiert.
  • Dann wird im Schritt S24 festgestellt, dass Reg_REQ_A gleich 1 ist und der Bewegungs-Ausgleich 4 wird durch ähnliche Verarbeitungsschritte durchgeführt.
  • Indem er solche Verarbeitungsschritte wiederholt, führt der Bewegungs-Ausgleichs-Schaltkreis 50 den Bewegungs-Ausgleich beim Entscheiden zwischen den Teildecodern 47 bis 49 durch.
  • Wie oben beschrieben, können die Decoder vom Bilddecoder 45 bis zu dem Teildecoder 49 im MPEG-Videodecoder von 15, da der Startcode-Puffer 62 zur Verfügung gestellt wird, auf den Strom-Puffer 61 zugreifen, ohne auf das Ende der Verarbeitung der anderen Decoder zu warten. Die Teildecoder 47 bis 49 können durch die Prozessierung des Teildecoder-Steuerungs-Schaltkreis 46 zum simultanen Arbeiten veranlasst werden. Außerdem kann der Bewegungs-Ausgleichs-Schaltkreis 50 einen geeigneten Teildecoder auswählen, auf den Helligkeits-Puffer 71 und den Farbdifferenz-Puffer 72 zugreifen, die von einander getrennt sind, und den Bewegungs-Ausgleich durchführen. So wird im MPEG-Videodecoder nach 15 die Decodierungs-Verarbeitungs-Leistung und die Zugriffleistung auf die Puffer verbessert und die Decodierungs-Verarbeitung von 4:2:2P@HL wird ermöglicht.
  • Der Rahmenpufferbetrieb im Fall, in dem ein MPEG-Strom, der dem MPEG Videodecoder von 15 zugeführt wird, decodiert und reproduziert wird, wird jetzt beschrieben.
  • 20 ist ein Blockdiagramm, welches die Struktur eines Wiedergabegeräts zeigt, das den MPEG Videodecoder von 15 aufweist. Die Teile, die denen von 15 entsprechen, werden durch die gleichen Ziffern bezeichnet und werden nicht weiter im Detail beschrieben werden.
  • Ein MPEG-kodierter Strom wird auf einer Festplatte 112 aufgezeichnet. Ein Servo-Schaltkreis 111 steuert die Festplatte 112 unter der Steuerung des Controllers 34 und ein nicht gezeigter MPEG Strom, der durch eine Daten-Leseneinheit ausgelesen wurde, wird einem Wiedergabe-Schaltkreis 121 des IC 31 zugeführt.
  • Der Wiedergabe-Schaltkreis 121 schließt die Schaltkreise vom Strom-Eingang-Schaltkreis 4.1 zum Taktgeber-Schaltkreis 44 ein, der mit Bezug auf 15 beschrieben wird. Bei der Vorwärts-Wiedergabe gibt der Wiedergabe-Schaltkreises 121 den MPEG-Strom in der eingegebenen Reihenfolge als reproduziertem Strom zu einem MPEG Videodecoder 122 aus. Bei der Rückwärts-Wiedergabe (inverse Wiedergabe), ordnet der Wiedergabe-Schaltkreis 122 den eingegebenen MPEG-kodierten Strom in einer passenden Reihenfolge für Rückwiedergabe durch Verwendung des Strom-Puffers 61 neu, indem er den Strom-Puffer 61 und dann den neu geordneten MPEG-kodierten Strom als ein reproduzierter Strom zum MPEG Videodecoder 122 ausgibt.
  • Der MPEG-Videodecoder 122 umfasst die Schaltkreise vom Bild-Decoder 45 zum Anzeige-Ausgangs-Schaltkreis 53, der mit Bezug auf 15 beschrieben wird. Durch die Verarbeitung am Bewegungs-Ausgleichs-Schaltkreis 50, liest der MPEG-Videodecoder 122 einen decodierten Rahmen aus dem Video-Puffer 33 als ein Bezugsbild aus, wenn nötig, führt dann einen Bewegungs-Ausgleich durch decodiert jeden Bild-(Rahmen) des eingegebenen reproduzierten Stromes in Übereinstimmung mit dem oben beschriebenen Verfahren und speichert jedes decodierte Bild im Video-Puffer 33. Außerdem liest durch die Verarbeitung am Anzeige-Ausgang-Schaltkreis 53 der MPEG Videodecoder 122 der Reihe nach die Rahmen aus, die im Video-Puffer 33 und in den Ausgängen gespeichert werden und zeigt die Rahmen auf einer Anzeige-Einheit oder Anzeige-Vorrichtung an, die nicht gezeigt ist.
  • In diesem Beispiel wird der MPEG-kodierte Strom, der auf der Festplatte 112 gespeichert wurde, decodiert, ausgegeben und anzeigt. Im Wiedergabegerät oder in einem Aufzeichnungs-/Wiedergabegerät, das den MPEG-Videodecoder von 15 aufweist, sogar mit einer anderen Struktur von der aus 20 (z.B. eine Struktur, in der der MPEG-Videodecoder 122 die Funktion hat, einen kodierten Strome ähnlich dem Strom-Puffer 61 zu halten und die Funktion, um Rahmen ähnlich zum Wiedergabe-Schaltkreis 121 neu zu ordnen), wird ein eingegebener MPEG-kodierter Strom decodiert und durch eine im Wesentlichen gleiche Verarbeitung ausgegeben.
  • Als Selbstverständlichkeit können verschiedene andere Aufzeichnungsmedien als eine Festplatte 112 wie eine Bildplatte, eine magnetische Scheibe, eine Magnetoptikscheibe, ein Halbleiterspeicher und ein Magnetband als das Informationsspeicher-Medium für die Speicherung des kodierten Stromes verwendet werden.
  • Die Bild Struktur eines MPEG-vorbestimmten kodierten Bildes wird jetzt mit Bezug auf 21 und 22 beschrieben.
  • 21 zeigt die Bild-Struktur eines MPEG-Videosignals, das an einen Codierer einzugegeben ist und zu kodieren ist (Kodierungs-Vorrichtung), die nicht gezeigt ist. Ein Rahmen 12 ist ein intra-kodierter Rahmen (I-Bild), der kodiert wird, ohne sich auf ein anderes Bild zu beziehen. Solch ein Rahmen stellt einer kodierten Reihenfolge einen Zugriffspunkt als Decodierungs-Anfangspunkt zur Verfügung, aber seine Kompressionsrate ist nicht sehr hoch.
  • Rahmen P5, P8, Pb und PET sind vorwärts vorbestimmende kodierte Rahmen (P-Bilder), die effizienter als ein I-Bild durch Bewegungs-Ausgleichs-Vorhersage von einem vergangenen I-Bild oder P-Bild kodiert werden. P-Bilder selbst werden auch als Bezugsbilder für eine Vorhersage benutzt. Rahmen B3, B4, ..., Bd sind bidirektional vorbestimmende kodierte Rahmen. Diese Rahmen sind effizienter als I-Bild und P-Bilder komprimiert aber erfordern bidirektionale Bezugsbilder der Vergangenheit und der Zukunft. B-Bilder werden nicht als Bezugsbilder für eine Vorhersage benutzt.
  • 22 zeigt ein Beispiel der Kodierung eines MPEG-Videosignals (MPEG-kodierter Strom) wobei die Zwischenblockvorhersage verwendet wird, durchgeführt von einem Kodierer, der nicht gezeigt ist, um die MPEG-kodierten Bilder zu erzeugen, die mit Bezug auf 21 beschrieben werden.
  • Ein eingegebenes Videosignal wird in GOPs (Gruppen von Bildern) geteilt, z.B. besteht jede Gruppe aus 15 Rahmen. Der dritte Rahmen vom Anfang jedes GOP wird als I-Bild benutzt, und nachfolgende Rahmen, die in Abständen von zwei Rahmen erscheinen, werden als P-Bilder benutzt. Die anderen Rahmen werden als B-Bilder (M = 15, N = 3) benutzt. Ein Rahmen B10 und ein Rahmen B11, die die B-Bilder sind, die Rückwärtsvorhersage für die Kodierung erfordern, werden vorübergehend im Puffer gespeichert und in einem Rahmen I12, der eine I-Bild ist, zuerst kodiert.
  • Nach der Kodierung der Enden des Rahmens I12, werden der Rahmen B10 und der Rahmen B11, der vorübergehend im Puffer gespeichert ist, mit dem Rahmen I12 als Bezugsbild kodiert. Ein B-Bild sollte mit Bezug auf beide, das letzte und das zukünftigen Bezugsbilder kodiert werden. Jedoch in Bezug auf die B-Bilder, die keine Bilder haben, auf die sich für die Vorwärtsvorhersage bezogen werden kann, wie die Rahmen B10 und B11, wird ein geschlossenes GOP-Flag gesetzt und Kodierung wird durchgeführt, indem nur eine rückwärtige Vorhersage verwendet wird, ohne eine Vorwärtsvorhersage zu verwenden.
  • Ein Rahmen B13 und ein Rahmen B14, eingegeben, die während der Durchführung der Kodierung des Rahmens B10 und des Rahmens B11 eingegeben werden, werden im Videopuffer gespeichert. Ein Rahmen P15, der nach den Rahmen B13 und B14 eingegeben wird, wird mit Bezug auf den Rahmen I12 als Vorwärtsvorhersagebild kodiert. Der Rahmen B13 und der Rahmen B14, der vom Videopuffer ausgelesen wird, werden mit Bezug auf den Rahmen I12 als Vorwärtsvorhersagebild und mit Bezug auf den Rahmen P15 als Rückwärtsvorhersagebild kodiert.
  • Dann werden ein Rahmen B16 und ein Rahmen B17 im Videopuffer gespeichert. Ähnlich wird ein P-Bild mit Bezug auf ein vorher kodiertes I-Bild oder P-Bild als Vorwärtsvorhersagebild kodiert, und eine B-Bild wird vorübergehend im Videopuffer gespeichert und dann mit Bezug auf ein vorher kodiertes I-Bild oder P-Bild als Vorwärtsvorhersagebild oder Rückwärtsvorhersagebild kodiert.
  • In dieser Weise generieren Bilddaten, die über einer Mehrzahl von GOPs kodiert werden, einen kodierten Strom. Auf der Festplatte 112 von 20, wird ein MPEG-kodierter Strom, der durch das oben beschriebene Verfahren kodiert wurde, aufgezeichnet.
  • Wenn ein gewöhnliches Bild DCT-transformiert wird, hat eine DCT-Koeffizientmatrix, die durch zu der zeit der Kodierung durch eine DCT-Transformation erreicht wird, solch eine Eigenschaft um, dass sie einen großen Wert für eine Niederfrequenz-Komponente und einen kleinen Wert für eine Hochfrequenz-Komponente hat. Kompression von Information, durch Verwendung dieser Eigenschaft, ist Quantelung (jeder DCT-Koeffizient wird durch eine bestimmte Quantelungmaßeinheit geteilt und die Dezimalstellen werden heraus gerundet). Die Quantelungmaßeinheit wird als 8×8-Quantisierungstabelle erstellt, und ein kleiner Wert für eine Niederfrequenz-Komponente und ein großer Wert für eine Hochfrequenz-Komponente werden festgelegt. Resultierend aus der Quantelung werden die Komponenten der Matrix fast 0, außer einer oberen linken Komponente. Die Quantisierungs-ID, die der Quantelungsmatrix entspricht, wird den komprimierten Daten hinzugefügt und auf diese Weise auf die Decoderseite geschickt. Das heißt, der MPEG-Videodecoder 122 aus 20 decodiert den MPEG-kodierten Strom mit Bezug auf die Quantelungsmatrix von der Quantelungs-ID.
  • Auf 23 bezugnehmend, werden jetzt die Verarbeitung beschrieben, in denen ein kodierter Strom einschließlich GOPs von GOP1 zu GOP3 an den Wiedergabe-Schaltkreis 121 eingegeben wird und durch den MPEG-Videodecoder 122 decodiert für den Fall des Wiedergebens der Videodaten in der Vorwärtsrichtung von der Festplatte 112. 23 zeigt ein Beispiel von MPEG-Decodierung die eine Zwischenblockvorhersage nutzt.
  • Ein MPEG-Videostrom, der zum Wiedergabe-Schaltkreis 121 der Festplatte 112 für Vorwärtswiedergabe eingegeben wird, wird zum MPEG-Videodecoder 122 als ein reproduzierter Strom der gleichen Bildanordnung wie die eingegebene Reihenfolge durch die Verarbeitung am Wiedergabe-Schaltkreis 121 ausgegeben. Am MPEG-Videodecoder 122 wird der reproduzierte Strom in Übereinstimmung mit der Vorgehensweise decodiert, das mit Bezug auf 15 bis 19 beschrieben wird, und dann im Videopuffer 33 gespeichert wird.
  • Der erste eingegebene Rahmen I12 ist ein I-Bild und erfordert folglich kein Bezugsbild für die Decodierung. Der Pufferbereich im Videopuffer 33, in dem der Rahmen I12, der durch den MPEG-Videodecoder 122 decodiert wird, gespeichert wird, wird als Puffer 1 bezeichnet.
  • Die folgenden Rahmen B10 und B11, die dem MPEG-Videodecoder 122 zugeführt werden, sind B-Bilder. Jedoch da ein geschlossenes GOP-Flag gesetzt wird, werden diese Rahmen B10 und B11 mit Bezug auf den Rahmen decodiert I12, der im Puffer 1 des Videopuffers 33 als Rückbezugsnamebild gespeichert ist und dann im Videopuffer 33 gespeichert wird. Der Pufferbereich, in dem der decodierte Rahmen B10 gespeichert wird, ist als Puffer 3 bezeichnet.
  • Durch die Verarbeitung am Anzeige-Ausgangs-Schaltkreis 53, wird der Rahmen B10 vom Puffer 3 des Videopuffers 33 ausgelesen und an eine nicht gezeigte Display-Einheit ausgegeben und dort angezeigt. Der folgende decodierte Rahmen B1 wird im Puffer 3 des Videopuffers 33 (das heißt, neu in Puffer 3 geschrieben) gespeichert, dann ausgelesen, und auf die nicht dargestellte Display-Einheit ausgegeben und dort angezeigt.
  • Danach wird der Rahmen I12 vom Puffer 1 ausgelesen und wird an die Display-Einheit, die nicht dargestellt ist, ausgegeben und darauf angezeigt. Zu diesem Zeitpunkt wird der folgende Rahmen P15 mit Bezug auf den Rahmen I12 decodiert, der im Puffer 1 des Videopuffers 33 als Bezugsbild gespeichert ist, und dann in einem Puffer 2 des Videopuffers 33 gespeichert.
  • Wenn kein geschlossenes GOP-Flag für den Rahmen B10 und den Rahmen B11 gesetzt wird, werden der Rahmen B10 und der Rahmen B11 nicht decodiert, weil es keine Bild gibt, das als Vorwärtsreferenzbild benutzt werden kann. In solch einem Fall wird der Rahmen I12 zuerst vom Anzeige Ausgang-Schaltkreis 53 ausgegeben und angezeigt.
  • Der folgende eingegebene Rahmen B13 wird mit Bezug auf den Rahmen I12 decodiert, der im Puffer 1 des Videopuffers 33 als Vorwärtsreferenzbild gespeichert ist und wird mit Bezug auf den Rahmen P15, der im Puffer 2 als Rückbezugsnahmebild gespeichert ist und wird dann im Puffer 3 gespeichert. Während der Rahmen B13 vom Puffer 3 des Videopuffers 33 ausgelesen wird und die Ausgangsanzeige-Verarbeitung durch den Anzeige-Ausgangs-Schaltkreis 53 durchgeführt wird, wird der folgende eingegebene Rahmen B14 mit Bezug auf den Rahmen I12, der im Puffer 1 des Videopuffers 33 als Vorwärtsbezugsbild gespeichert ist, und mit Bezug auf den Rahmen P15, der im Puffer 2 als Rückbezugsnahmebild gespeichert ist, decodiert und wird dann im Puffer 3 gespeichert. Durch die Verarbeitung am Anzeige-Ausgangs-Schaltkreis 53 wird der Rahmen B14 vom Puffer 3 des Videopuffers 33 ausgelesen und wird ausgegeben und angezeigt.
  • Der folgende eingegebene Rahmen P18 wird mit Bezug auf den Rahmen P15 decodiert, der im Puffer 2 als Vorwärtsbezugsbild gespeichert ist. Nach der Decodierung der Enden des Rahmens B14 wird der Rahmen I12, der im Puffer 1 gespeichert ist, nicht benutzt, während ein Bezugsbild und folglich der decodierte Rahmen P18 im Puffer 1 des Videopuffers 33 gespeichert wird. Dann, zu dem Zeitpunkt wenn der Rahmen P18 im Puffer 1 gespeichert wird, wird der Rahmen P15 vom Puffer 2 ausgelesen, ausgegeben und angezeigt.
  • Ähnlich werden die folgenden Rahmen des GOP1 der Reihe nach decodiert, dann in den Puffer 1 bis 3 gespeichert, der Reihe nach ausgelesen und angezeigt.
  • Wenn ein führender Rahmen I22 des GOP2 eingegeben wird, erfordert der Rahmen I22, der ein I-Bild ist, nicht das Bezugsbild für die Decodierung und folglich decodiert wie er ist, wird er im Puffer 2 gespeichert. Zu diesem Zeitpunkt wird ein Rahmen P1e des GOP1 ausgelesen, ausgegeben und angezeigt.
  • Ein Rahmen B20 und ein Rahmen B21; welche nacheinander eingegeben werden, werden mit Bezug auf den Rahmen P1e im Puffer 1 als Vorwärtsbezugsbild und mit Bezug auf den Rahmen I22 im Puffer 2 als Rückwärtsbezugsbild decodiert, dann der Reihe nach im Puffer 3 gespeichert, ausgelesen und angezeigt. Auf diese Weise wird das B-Bild am führenden Ende des GOP mit Bezug auf die P-Bild des vorhergehenden GOP als Vorwärtsbezugsbild decodiert.
  • Ähnlich werden die folgenden Rahmen des GOP2 der Reihe nach decodiert, gespeichert dann der Reihe nach in den Puffer 1 bis 3 ausgelesen und angezeigt. Dann werden die Rahmen des GOP3 und das folgende GOPs der Reihe nach ähnlich decodiert, dann in den Puffer 1 bis 3 gespeichert und der Reihe nach ausgelesen und angezeigt.
  • In der oben beschriebenen Verarbeitung führt der MPEG-Videodecoder 122 die Decodierungs-Verarbeitung mit Bezug auf die Quantelungs-ID durch.
  • Der Fall des Durchführens der Rückwiedergabe im Wiedergabegerät, das mit Bezug auf 20 beschrieben wird, wird jetzt beschrieben.
  • In der herkömmlichen Rückwiedergabe kann nur ein unnatürliches Wiedergabebild erhalten werden, in dem nur ein Rahmen der 15 Rahmen angezeigt wird, da nur ein I-Bild herausgenommen und decodiert wird.
  • Andererseits kann der Wiedergabe-Schaltkreis 121 von 20 einen reproduzierten Strom erzeugen, während die Reihenfolge der Rahmen des GOP geändert wird, die dem Strom-Puffer 61 auf der Grundlage des Startcodes zugeführt wird, der im Startcode-Puffer 62 aufgezeichnet ist, und die MPEG-Videodecoders 122 alle 15 Rahmen decodieren kann.
  • Jedoch ist es für eine Rückwiedergabe nicht genug, dass der Wiedergabe-Schaltkreis 121 einen reproduzierten Strom einfach durch ein Aufheben der Reihenfolge der Rahmendes GOP erzeugt, der dem Strom-Puffer 61 auf der Grundlage von dem Startcode eingegeben wird, der im Startcode-Puffer 62 aufgezeichnet ist.
  • Zum Beispiel wird mit Bezug auf 22 beschrieben, dass im Fall des Durchführen der Rückwiedergabe des GOP2 und des GOP1 des MPEG-kodierten Stroms, der erste auszugebende und anzuzeigende Rahmen ein Rahmen P2e sein muss. Die Decodierung des Rahmens P2e erfordert einen Hinweis auf einem Rahmen P2b als Vorwärtsbezugsbild und die Decodierung des Rahmens P2b erfordert einen Hinweis auf einem Rahmen P28 als Vorwärtsbezugsbild. Da die Decodierung des Rahmens P28 auch ein Vorwärtsbezugsbild erfordert, müssen all die I-Bilder und P-Bilder des GOP2 decodiert werden, um den Rahmen P2e zu decodieren, auszugeben und anzuzeigen.
  • Um den zuerst in der Rückwiedergabe anzuzeigenden Rahmen P2e zu decodieren; kann auch ein anderes Verfahren betrachtet werden, in dem der gesamte GOP2 der Reihe nach vom letzten Rahmen decodiert und im Videopuffer 33 gespeichert und dann ausgelesen wird. In solch einem Fall jedoch benötigt der Videopuffer 33 einen Pufferbereich für ein GOP (15 Rahmen).
  • Obwohl es möglich ist, die Rahmen von den Rahmen P2e bis zum Rahmen I22 zu decodieren und zu reproduzieren, erfordert mit diesem Verfahren außerdem das Decodieren der ersten zwei Rahmen des GOP2, das heißt, der Rahmen B21 und der Rahmen B20, die schließlich in umgekehrter Reproduktion angezeigt werden sollen, den Rahmen P1e von GOP1 als Vorwätsreferenzbild. Um den Rahmen P1e des GOP1 zu decodieren, sind alle I-Bilder und P-Bilder des GOP1 notwendig.
  • Das heißt, mit diesem Verfahren, kann Rückwiedergabe aller Rahmen von einem GOP nicht durchgeführt werden, während der Videopuffer 33 einen Pufferbereich für 15 Rahmen erfordert.
  • Im Fall, in dem das Codieren mit M = 15 und N = 3 durchgeführt wird, wie oben mit Bezug auf 22 beschrieben ist, enthält ein GOP eine Gesamtmenge von fünf Rahmen der I-Bilder und der P-Bilder.
  • Dadurch, dass ermöglicht wird, dass der Strom-Puffer 61 Rahmen von mindestens zwei GOPs speichert und dass ermöglicht wird, dass die Bestimmung der Reihenfolge der Rahmen des reproduzierten Stroms erfolgt, der durch den Wiedergabe-Schaltkreis 121 auf der Basis der Decodierungsreihenfolge zur umgekehrten Wiedergabe durch den MPEG-Videodecoder 122 erzeugt wird und die Speicherung von Rahmen von mindestens der Anzahl, die dem Video-Puffer 33 durch die „gesamte Anzahl von I-Bild(ern) und P-Bild(ern) eingeschlossen einen GOP+2" ausgedrückt wird, können alle Rahmen einschließlich des Rahmens über GOPs kontinuierlich in die rückwärtige Richtung reproduziert werden.
  • Bezug nehmend auf 24 werden jetzt die Decodierungsverarbeitung im Falle der Rückwiedergabe der Bild-Daten von GOP1 zu GOP3 von der Festplatte 112 beschrieben. 24 zeigt einen exemplarischen Betrieb des MPEG Rückwiedergabedecoders. Der Controller 34 steuert den Servo-Schaltkreis 111, um zuerst einen MPEG-kodierten Strom des GOP3 und dann von der Festplatte 112 zum Wiedergabe-Schaltkreis 121 einen MPEG-kodierten Strom des GOP2 auszugeben. Der Wiedergabe-Schaltkreis 121 speichert den MPEG-kodierten Strom des GOP3 und speichert dann den MPEG-kodierten Strom des GOP2 zum Strom-Puffer 61.
  • Der Wiedergabe-Schaltkreis 121 liest einen führenden Rahmen I32 des GOP3 vom Strom-Puffer 61 und gibt von den Ausgängen den führenden Rahmen I32 als ersten Rahmen des reproduzierten Stromes zum MPEG-Videodecoder 122 aus. Da der Rahmen I32 eine I-Bild ist und keine Bezugsbilder für die Decodierung erfordert, wird der Rahmen I32 durch den MPEG-Videodecoder 122 decodiert und im Videopuffer 33 gespeichert. Der Bereich des Videopuffers 33, in dem der decodierte Rahmen I32 gespeichert wird, ist als Puffer 1 bezeichnet.
  • Die Daten der entsprechenden Rahmen werden auf der Grundlage von Parameter decodiert, die im Header und in den Zusatzdaten mit Bezug auf 2 beschrieben werden. Wie oben beschrieben, werden die Parameter durch den Bild-Decoder 45 des MPEG-Videodecoders 122 decodiert, dann an den Teildecoder-Steuerungs-Schaltkreis 46 geliefert und für die Decodierungs-Verarbeitung verwendet. Im Falle des Decodieren des GOP1, wird die Decodierung durchgeführt, indem die Parameter der oberen Schichten verwendet werden, die im sequence_header, im sequence_extension und im GOP_header des GOP1 beschrieben werden (z.B. die oben beschriebene Quantelungsmatrix). Im Falle des Decodieren des GOP2 wird die Decodierung durchgeführt, indem die Parameter der oberen Schichten verwendet werden, die im sequence_header, im sequence_extension und im GOP_header des GOP2 beschrieben werden. Im Falle des Decodieren des GOP3; wird die Decodierung durchgeführt, indem die Parameter der oberen Schichten verwendet werden, die im sequence_header, im sequence_extension und in GOP_header des GOP3 beschrieben werden.
  • In der Rückwiedergabe jedoch liefert, da die Decodierung nicht für jedes GOP ausgeführt wird, der MPEG-Videodecoder 122 die oberen Schichtparameter an den Controller 34, wenn das I-Bild zuerst in den entsprechenden GOPs decodiert wird. Der Controller 34 hält die gelieferten oberen Schichtparameter in seinem internen Informationsspeicher, der nicht gezeigt ist.
  • Der Controller 34 überwacht die Decodierungsverarbeitung, die durch den MPEG-Videodecoder 122 durchgeführt wird, dann liest er die oberen Schichtparameter, entsprechend dem Rahmen, der verarbeitet wird, vom internen Informationsspeicher aus und liefert den oberen Schichtparameter an den MPEG Videodecoder 122, um eine passende Decodierungsverarbeitung zu verwirklichen.
  • In 24 stellen die Zahlen über den Rahmenzahlen des reproduzierten Stromes Quantelung-IDs dar. Jeder Rahmen des reproduzierten Stromes wird auf der Grundlage von der Quantelungs-ID, ähnlich zur Vorwärtsdecodierung decodiert, die mit Bezug auf 23 beschrieben wird.
  • In der vorliegenden Ausführungsform hat der Controller 34 einen internen Informationsspeicher, um die oberen Schichtkodierungparameter zu halten. Jedoch kann ein Informationsspeicher zur Verfügung gestellt werden, der an den Controller 34 angeschlossen ist, damit der Controller 34 die oberen Schichtkodierungparameter im externen Informationsspeicher auch ohne einen internen Informationsspeicher halten kann und die oberen Schichtkodierungparameter auslesen und an den MPEG-Videodecoder 122 liefern kann.
  • Ein Informationsspeicher zum Halten der oberen Schichtkodierungparameter von GOPs kann im MPEG-Videodecoder 122 auch zur Verfügung gestellt werden. Außerdem, wenn die Codierungsumstände wie die oberen Schichtkodierungparameter bekannt sind, die Codierungbedingungen im MPEG-Videodecoder 122 im Voraus eingestellt werden. Alternativ, wenn bekannt ist, dass die oberen Schichtkodierungparameter nicht zwischen GOPs schwanken, können die Codierungsparameter in dem MPEG-Videodecoder 122 nur einmal am Anfang des Betriebes eingestellt werden, anstatt die oberen Schichtkodierungparameter für jeden GOP auszulesen und die Parameter im MPEG-Videodecoder 122 für jeden Rahmen durch den Controller 34 einzustellen.
  • Der Wiedergabe-Schaltkreis 121 liest einen Rahmen P35 vom Strom-Puffer 61 aus und gibt den Rahmen P35 als den folgende Rahmen des reproduzierten Stromes zum MPEG-Videodecoder 122 aus. Der Rahmen P35 wird durch den MPEG-Videodecoder 122 mit Bezug auf den Rahmen I32 decodiert, der im Puffer 1 als Vorwärtsbezugsbild aufgenommen ist und wird dann im Videopuffer 33 gespeichert. Der Bereich im Videopuffer 33, in dem der decodierte Rahmen P35 gespeichert wird, wird als Puffer 2 bezeichnet.
  • Der Wiedergabe-Schaltkreis 121 liest der Reihe nach einen Rahmen P38, einen Rahmen P3b und einen Rahmen P3e vom Strom-Puffer 61 aus und gibt diese Rahmen als ein reproduzierter Strom aus. Jede dieser P-Bilder wird durch den MPEG-Videodecoder 122 mit Bezug auf das vorangehende decodierte P-Bild als Vorwärtsbezugsbild decodiert und wird dann im Videopuffer 33 gespeichert. Die Bereiche im Videopuffer 33, in dem diese decodierten P-Bild-Rahmen gespeichert ist, werden als Puffer 3 bis 5 bezeichnet.
  • An diesem Punkt sind alle I-Bilder und P-Bilder des GOP3 im Videopuffer 33 decodiert und gespeichert worden.
  • Nachher liest der Wiedergabe-Schaltkreis 121 einen Rahmen I22 des GOP2 vom Strom-Puffer 61 aus und gibt den Rahmen I22 als ein reproduzierter Strom aus. Der Rahmen I22, der ein I-Bild ist, wird durch den MPEG-Videodecoder 122, ohne irgendein Bezugsbild zu erfordern, decodiert und wird dann im Videopuffer 33 gespeichert. Der Bereich, in dem der decodierte Rahmen 122 gespeichert wird, wird als Puffer 6 bezeichnet. Am Zeitpunkt, wenn der Rahmen 122 im Puffer 6 gespeichert wird, wird der Rahmen P3e des GOP3 vom Puffer 5 ausgelesen, dann ausgegeben und anzeigt als das erste Bild der Rückwiedergabe.
  • Der Wiedergabe-Schaltkreis 121 liest einen Rahmen B3d des GOP3 vom Strom-Puffer 61 aus, das heißt, denjenigen Rahmen der in der Rückrichtung der B-Bilder des GOP3 zu reproduzieren ist, und gibt den Rahmen B3d als reproduzierter Strom aus. Der Rahmen B3d wird durch den MPEG-Videodecoder 122 mit Bezug auf den Rahmen P3b im Puffer 4 als Vorwärtsbezugsbild und mit Bezug auf den Rahmen P3e im Puffer 5 als Rückwärtsbezugsbild decodiert und wird dann im Videopuffer 33 gespeichert. Der Bereich, in dem der decodierte Rahmen B3d gespeichert wird, wird als Puffer 7 bezeichnet.
  • Nachdem eine Rahmen-/Bereichskonversion und eine Anpassung an die synchrone Taktung der Videoausgabe durchgeführt wurden, wird der Rahmen B3d, der im Puffer 7 gespeichert ist, ausgegeben und anzeigt. An dem gleichen Zeitpunkt wie die Anzeige des Rahmens B3d, liest der Wiedergabe-Schaltkreis 121 einen Rahmen B3c des GOP3 vom Strom-Puffer 61 aus und gibt den Rahmen B3c zum MPEG-Videodecoder 122 aus. Ähnlich zum Rahmen B3d, wird der Rahmen B3c durch den MPEG-Videodecoder 122 mit Bezug auf den Rahmen P3b im Puffer 4 als Vorwärtsbezugsbild und mit Bezug auf den Rahmen P3e im Puffer 5 als Rückwärtsbezugbild decodiert.
  • Der Rahmen B3d, der vorher decodiert und ausgegeben wird, ist ein B-Bild und es wird sich folglich nicht auf diesen zur Decodierung eines anderen Rahmens bezugen. Folglich wird der decodierte Rahmen P3c anstatt des Rahmens B3d im Puffer 7 gespeichert (das heißt, überschrieben im Puffer 7). Nachdem die Rahmen/Bereichskonversion und die Anpassung an die synchrone Taktung der Videoausgabe und durchgeführt wurden, wird der Rahmen P3c ausgegeben und angezeigt.
  • Der Wiedergabe-Schaltkreis 121 liest einen Rahmen P25 des GOP2 vom Strom-Puffer 61 aus und gibt den Rahmen P25 zum MPEG-Videodecoder 122 aus. Der Rahmen P25 des GOP2 wird durch den MPEG-Videodecoder 122 mit Bezug auf den Rahmen I22 im Puffer 6 als Vorwärtsbezugsbild decodiert. Da der Rahmen P3e, der im Puffer 5 gespeichert ist, nicht mehr als Bezugsbild benutzt wird, wird der decodierte Rahmen P25 anstatt des Rahmens P3e im Puffer 5 gespeichert. Dann zum gleichen Zeitpunkt wie die Informationsspeicherung des Rahmens P25 in dem Puffer 5, wird der Rahmen P3b im Puffer 4 ausgelesen und angezeigt.
  • Der Wiedergabe-Schaltkreis 121 liest einen Rahmen B3a des GOP3 vom Strom-Puffer 61 aus und gibt den Rahmen B3a als reproduzierter Strom aus. Der Rahmen B3a wird durch den MPEG-Videodecoder 122 mit Bezug auf den Rahmen P38 im Puffer 3 als Vorwärtsbezugbild und mit Bezug auf den Rahmen P3b im Puffer 4 als Rückwärtsbezugsbild decodiert und wird dann im Puffer 7 des Videopuffers 33 gespeichert.
  • Nachdem eine Rahmen-/Bereichskonversion und Anpassung an die synchrone Taktung der Videoausgabe durchgeführt wurde, wird der Rahmen B3a, der im Puffer 7 gespeichert wird, ausgegeben und angezeigt. Zum gleichen Zeitpunkt die Anzeige des Rahmens B3a, liest der Wiedergabe-Schaltkreis 121 einen Rahmen B39 des GOP3 vom Strom-Puffer 61 aus und gibt den Rahmen B39 zum MPEG-Videodecoder 122 aus. Ähnlich dem Rahmen B3a, wird der Rahmen B39 durch den MPEG-Videodecoder 122 mit Bezug auf den Rahmen P39 im Puffer 3 als Vorwärtsbezugsbild und mit Bezug auf den Rahmen P3b im Puffer 4 als Rückwärtsbezugsbild decodiert. Der Rahmen B39 wird dann anstatt des Rahmens B3a im Puffer 7 gespeichert. Nachdem eine Rahmen-Bereichskonversion und Anpassung an die synchrone Taktung der Videoausgabe durchgeführt wurde, wird der Rahmen B39 ausgegeben und angezeigt.
  • Der Wiedergabe-Schaltkreis 121 liest einen Rahmen P28 des GOP2 vom Strom-Puffer 61 aus und gibt den Rahmen P28 zum MPEG-Videodecoder 122 aus. Der Rahmen P28 des GOP2 wird durch den MPEG-Videodecoder 122 mit Bezug auf den Rahmen P25 im Puffer 5 als Vorwärtsbezugsbild decodiert. Da der Rahmen P3b, der im Puffer 4 gespeichert wird, nicht mehr als Bezugsbild benutzt wird, wird der decodierte Rahmen P28 anstatt des Rahmens P3b im Puffer 4 gespeichert. Zum selben Zeitpunkt, an dem der Rahmen P28 im Puffer 4 angespeichert wird, wird der Rahmen P38 im Puffer 3 ausgelesen und angezeigt.
  • In dieser Weise wird zum Zeitpunkt, an dem das I-Bild oder das P-Bild des GOP2 in dem Puffer 33 decodiert und gespeichert wird, das I-Bild oder das P-Bild des GOP3 vom Puffer 33 ausgelesen und angezeigt.
  • Ähnlich wie in 24 gezeigt, werden die restlichen B-Bilder des GOP3 und die restlichen P-Bilder des GOP2 in der Reihenfolge B37, B36, P2b, B34, B33 und P2e decodiert. Die decodierten B-Bilder werden im Puffer 7 gespeichert und werden der Reihe nach ausgelesen und angezeigt. Die decodierten P-Bilder des GOP2 werden der Reihe nach in einem den Puffer 1 bis 6 gespeichert, in denen ein Rahmen mit abgeschlossener Bezugnahme gespeichert wurde, und zu diesem Zeitpunkt wird das P-Bild des GOP3, das bereits in einem der Puffer 1 bis 6 gespeichert ist, ausgelesen und zwischen B-Bildern ausgegeben, um der Reihenfolge der Rückwiedergabe zu entsprechen.
  • Der Wiedergabe-Schaltkreis 121 liest einen Rahmen B31 des GOP3 aus und liest dann einen Rahmen B30 vom Strom-Puffer 61 aus gibt diese Rahmen an den MPEG-Videodecoder 122 aus. Da der Rahmen P2e als ein Vorwärtsbezugsbild und der Rahmen I32 als ein Rückwärtsbezugbild, die für die Decodierung des Rahmens B31 und des Rahmens B30 notwendig sind, im Puffer 2 bzw. im Puffer 1 gespeichert werden, können die ersten zwei Rahmen des GOP3, das heißt, die letzten, die in der Rückwiedergabe anzuzeigen sind, auch durch den MPEG-Videodecoder 122 decodiert werden.
  • Der decodierte Rahmen B31 und der Rahmen B30 werden der Reihe nach in dem Puffer 7 gespeichert. Nachdem eine Rahmen-/Bereichskonversion und Anpassung an die synchrone Taktung der Video-Ausgabe durchgeführt wurden, werden der Rahmen B31 und der Rahmen B30 ausgegeben und anzeigt.
  • Nachdem alle Rahmen des GOP3 vom Strom-Puffer 61, ausgelesen wurden, steuert der Controller 34 der Abhängigkeitsschaltung 111 zum Auslesen des GOP1 von der Festplatte 112 uns zum liefern von diesem an den Wiedergabe-Schaltkreis 121. Der Wiedergabe-Schaltkreis 121 führt eine vorbestimmte Verarbeitung aus, um den Startcode des GOP1 zum Startcode-Puffer 62 extrahieren und aufnehmen zu können. Der Wiedergabe-Schaltkreis 121 liefert und speichert auch den kodierten Strom des GOP1 an den Strom-Puffer 61.
  • Dann liest der Wiedergabe-Schaltkreis 121 einen Rahmen I12 des GOP1 vom Strom-Puffer 61 aus und gibt den Rahmen I12 als ein reproduzierter Strom zum MPEG-Videodecoder 122 aus. Der Rahmen I12 ist ein I-Bild und folglich wird er durch den MPEG-Videodecoder 122 decodiert, ohne sich auf irgendein anderes Bild zu beziehen. Der Rahmen I12 wird zum Puffer 1 ausgegeben und anstatt des Rahmens I32 im Puffer 1 gespeichert, der nicht mehr als Bezugsbild in der folgenden Verarbeitung benutzt wird. An diesem Punkt wird der Rahmen P2e ausgelesen und vom Puffer 2 ausgegeben und die Rückwiedergabeanzeige des GOP2 wird begonnen.
  • Der Wiedergabe-Schaltkreis 121 liest dann einen Rahmen B2d von GOP2 vom Strom-Puffer 61 aus, das heißt, der erste in der Rückwiedergabe der B-Bilder des GOP2, und gibt den Rahmen B2d als reproduzierter Strom aus. Der Rahmen B2d wird durch den MPEG-Videodecoder 122 mit Bezug auf den Rahmen P2b im Puffer 3 als Vorwärtsbezugsbild und mit Bezug auf den Rahmen P2e im Puffer 2 als Rückwärtsbezugbild decodiert und wird dann im Videopuffer 33 gespeichert. Der decodierte Rahmen B2d wird im Puffer 7 gespeichert. Nachdem eine Rahmen-Bereichskonversion und Anpassung an die synchrone Taktung der Video-Ausgabe durchgeführt wurde, wird der Rahmen B2d ausgegeben und anzeigt.
  • Ähnlich werden die restlichen B-Bilder des GOP2 und die restlichen P-Bilder des GOP1 in der Reihenfolge B2c, P15, B2a, B29, P18, B27, B26, P1b, B24, B23, P1e, P21 und P20 decodiert. Diese Bilder werden der Reihe nach in einem der Puffer 1 bis 7 gespeichert, in denen ein Rahmen mit abgeschlossener Bezugsnahme gespeichert wurde, ausgelesen und in der Reihenfolge der Rückwiedergabe ausgegeben. Schließlich werden die restlichen B-Bilder des GOP1 decodiert und der Reihe nach in den Puffer 7 gespeichert und ausgelesen und in der Reihenfolge der Rückwiedergabe ausgegeben, obwohl dies nicht gezeigt ist.
  • In den Verarbeitung, die mit Bezug auf 24 beschrieben werden, wird die Rückwiedergabe mit der gleichen Geschwindigkeit wie der normalen Wiedergabe durchgeführt. Jedoch, wenn der Wiedergabe-Schaltkreis 121 den reproduzierte Strom zum MPEG-Videodecoder 122 mit einer Geschwindigkeit ausgibt, die 1/3 der Geschwindigkeit der normalen Wiedergabe entspricht und der MPEG-Videodecoder 122 die Decodierungsverarbeitung von nur einem Rahmen in einer Verarbeitzeit durchführt, die normalerweise drei Rahmen entspricht und verursacht, dass die nicht gezeigte Display-Einheit oder Anzeige-Vorrichtung nicht den gleichen Rahmen in einer Anzeige-Zeit anzeigen, welche normalerweise für drei Rahmen vorgesehen ist, werden Vorwärtswiedergabe und Rückwiedergabe mit einer 1/3-Tupel-Geschwindigkeit durch ähnliche Verarbeitung ermöglicht.
  • Außerdem, wenn der Anzeige-Ausgangs-Schaltkreis 53 wiederholt den gleichen Rahmen ausgibt, wird eine so genannte ruhige Wiedergabe ermöglicht. Durch ein Verändern der Daten-Ausgaberate von dem Wiedergabe-Schaltkreis 121 zum MPEG-Videodecoder 122 und der Verarbeitungsgeschwindigkeit des MPEG-Videodecoders 122, werden eine Vorwärtswiedergabe und eine Rückwiedergabe mit einer an einer 1/n-Tupel-Geschwindigkeit (wobei n eine willkürliche Zahl ist) durch eine ähnlichen Verarbeitung ermöglicht.
  • Das heißt, im Wiedergabegerät gemäß der vorliegenden Erfindung, ist eine glatte Trick-Wiedergabe mit einer willkürlichen Geschwindigkeit bei der Rückwiedergabe mit einer normalen Laufgeschwindigkeit, in der Rückwiedergabe bei einer 1/n-Tupel-Geschwindigkeit, ruhige Wiedergabe, Vorwärtswiedergabe mit einer 1/n-Tupel-Geschwindigkeit und Vorwärtswiedergabe mit einer normalen Geschwindigkeit möglich.
  • Da der MPEG-Videodecoder 122 ein Decoder ist, der zu MPEG2 4:2:2P@HL kompatibel ist, hat er die Fähigkeit, einen MPEG2 MP@ML-kodierten Strom mit einer Sextuple-Geschwindigkeit zu decodieren. Folglich, wenn der Wiedergabe-Schaltkreis 121 einen reproduzierten Strom zum MPEG-Videodecoder 122 ausgibt, der aus einem MPEG2 MP@ML- kodierten Strom erzeugt wurde, mit einer Geschwindigkeit, die sechs mal die Geschwindigkeit der normalen Wiedergabe ist, wird Vorwärtswiedergabe und Rückwärtswiedergabe mit einer Sextuple-Geschwindigkeit durch eine ähnlichen Verarbeitung ermöglicht, indem bewirkt wird, dass die nicht gezeigte Display-Unit oder Anzeige-Vorrichtung, jeden der extrahierten sechs Rahmen anzuzeigen.
  • Das heißt, im Wiedergabegerät gemäß der vorliegenden Erfindung, ist glatte Trick-Wiedergabe eines MPEG2 MP@ML-kodierten Stromes mit einer willkürlichen Geschwindigkeit in der Rückwiedergabe mit einer sextuple-Geschwindigkeit, in der Rückwärtswiedergabe mit der normalen Geschwindigkeit, in der Rückwiedergabe mit einer 1/n-Tupel-Geschwindigkeit, in der ruhigen Wiedergabe, in der Vorwärtswiedergabe mit einer 1/n-Tupel-Geschwindigkeit, in der Vorwärtswiedergabe mit einer normalen Geschwindigkeit und in der Vorwärtswiedergabe mit einer Sextuple-Geschwindigkeit möglich.
  • Wenn der MPEG-Videodecoder 122 die Fähigkeit hat, mit einer N-Tupel-Geschwindigkeit zu decodieren, ist glatte Trick-Wiedergabe mit einer willkürlichen Geschwindigkeit, in der Rückwiedergabe mit einer N-Tuple-Geschwindigkeit, Rückwiedergabe mit einer normalen Geschwindigkeit, Rückwiedergabe mit einer 1/n- Tupel Geschwindigkeit, ruhige Wiedergabe, Vorwärtswiedergabe mit einer 1/n-Tupel-Geschwindigkeit, Vorwärtswiedergabe mit einer normalen Geschwindigkeit und Vorwärtswiedergabe mit einer N-Tupel-Geschwindigkeit im Wiedergabegerät gemäß der vorliegenden Erfindung möglich.
  • So kann z.B. in der Überprüfung der Videosignale der Inhalt von Videomaterial leicht überprüft werden. Im Verbessern der Leistungsfähigkeit der Videomaterialüberprüfungsarbeit und in der Videosignal-Schnittarbeit kann ein Editierpunkt passend gewonnen werden und die Leistungsfähigkeit der Effizienz der Editierarbeit kann verbessert werden.
  • Die oben beschriebene Reihe der Verarbeitung kann durch Software durchgeführt werden. Ein Programm, das solche Software bildet, wird von einem Aufzeichnungsmedium zu einem Computer in der dafür vorgesehenen Hardware übertragen oder wird zu einem universellen PC übertragen, der verschiedene Funktionen durchführen kann, indem auf ihm verschiedene Programme installiert werden.
  • Dieses Aufzeichnungsmedium wird durch ein Verpackungs-Medium gebildetn, auf welchem das Programm gespeichert ist, und das verteilt wird, um das Programm dem Benutzer separat vom Computer zur Verfügung zu stellen, wie eine magnetische Scheibe 101 (einschließlich einer Diskette), eine optische Scheibe 102 (einschließlich CD-ROM (kompakten Scheibe mit einem Nur-lesbaren-Informationsspeicher) und DVD (digitale vielseitige Scheibe)), eine magnetoptische Scheibe 103 (einschließlich MD (Mini-Scheibe))oder einen Halbleiterspeicher 104, wie in 15 oder 20 gezeigt ist.
  • In dieser Spezifikation schließen die Schritte, die das Programm beschreiben, das auf dem Aufzeichnungsmedium gespeichert ist, nicht nur die Verarbeitung ein, die der beschriebenen Reihenfolge nacheinander durchgeführt wird, aber auch die Verarbeitung, die aber nicht notwendigerweise nacheinander durchgeführt wird, aber parallel oder einzeln durchgeführt wird.
  • Entsprechend der ersten Decodierungsvorrichtung, dem Decodierungsverfahren und dem Programm der vorliegenden Erfindung, wird ein kodierter Strom decodiert und die Decodierungsverarbeitung wird parallel durchgeführt. Folglich kann ein Videodecoder verwirklicht werden, der zu 4:2:2P@HL kompatibel ist und zum Durchführen eines Echtzeit-Ablaufs auf einer praktikablen Schaltkreisgröße fähig ist.
  • Entsprechend der zweiten Decodierungsvorrichtung, dem Decodierungsverfahren und dem Programm der vorliegenden Erfindung, wird ein kodierter Strom durch eine Mehrzahl der Teildecoder decodiert und die Decodierungsverarbeitung wird in durch die Mehrzahl der Teildecoder parallel durchgeführt. Folglich kann ein Videodecoder verwirklicht werden, der zu 4:2:2P@HL kompatibel und ist zum Durchführen des Echtzeit-Ablaufs in einer praktikablen Schaltkreisgröße fähig ist.
  • Entsprechend der dritten Decodierungsvorrichtung, dem Decodierungsverfahren und dem Programm der vorliegenden Erfindung, wird ein quellencodierter Strom für jeden Teil decodiert, der ein Bild des quellencodierten Stromes bildet, und die Decodierungs-Stati einer Mehrzahl der Teildecoder werden überwacht, während die Mehrzahl der Teildecoder gesteuert werden und so die Teile zur Mehrzahl der Teildecoder zuweisen, um die schnellsten Decodierungsverarbeitung zu verwirklichen, die durch die Teildecoder ungeachtet der Reihenfolge der Teile durchgeführt werden, die in dem Bild enthalten sind. Folglich kann ein Videodecoder verwirklicht werden, der zu 4:2:2P@HL kompatibel ist und ist zum Durchführen des Echtzeit-Ablaufs in einer praktikablen Schaltkreisgröße fähig ist.
  • Entsprechend der vierten Decodierungsvorrichtung, dem Decodierungsverfahren und dem Programm der vorliegenden Erfindung, wird ein quellencodierter Strom für jeden Teil decodiert, der ein Bild des quellencodierten Stromes bildet, und die Decodierungs-Stati einer Mehrzahl der Teildecoder werden überwacht, während die Mehrzahl der Teildecoder gesteuert werden und so den zu decodierenden Teil dem Teildecoder zuweisen, der die Decodierung in einer Mehrzahl der Teildecoder, ungeachtet der Reihenfolge des Teils beendete, der in dem Bild enthalten war. Folglich kann ein Videodecoder verwirklicht werden, der zu 4:2:2P@HL kompatibel ist und ist zum Durchführen des Echtzeit-Ablaufs in einer praktikablen Schaltkreisgröße fähig ist.

Claims (23)

  1. Decodiervorrichtung (31) zum Decodieren eines codierten Datenstroms mit mehreren Informationseinheiten, wobei die Vorrichtung umfasst: mehrere Decodiereinrichtungen (47, 48, 49), die jeweils ausgebildet sind, eine vorbestimmte Informationseinheit des codierten Datenstromes zu decodieren; und eine Decodiersteuereinrichtung (46) zum Steuern der mehreren Decodiereinrichtungen, um diese parallel zu betreiben, wobei jede der mehreren Decodiereinrichtungen ausgebildet ist, um ein Signal, das das Ende der Decodierverarbeitung in der vorbestimmten Informationseinheit angibt, an die Decodiersteuereinrichtung auszugeben, und wobei die Decodiersteuereinrichtung ausgebildet ist, um abhängig von dem Signal eine weitere vorbestimmte Informationseinheit des codierten Datenstroms der Decodiereinrichtung bereitzustellen, die das Signal, das das Ende der Decodierverarbeitung angibt, ausgegeben hat.
  2. Decodiervorrichtung nach Anspruch 1, weiterhin umfassend: eine erste Puffereinrichtung (61) zum Puffer des codierten Datenstroms; eine Ausleseeinrichtung (42) zum Auslesen eines Startcodes, der den Start einer vorbestimmten Informationseinheit, die in dem codierten Datenstrom enthalten ist, angibt, aus dem codierten Datenstrom und zum Auslesen einer Positionsinformation mit Bezug auf die Position, an der der Startcode in der ersten Puffereinrichtung gespeichert ist; eine zweite Puffereinrichtung (62) zum Puffer des Startcodes und der Positionsinformation, die durch die Ausleseeinrichtung ausgelesen werden; und eine Puffersteuereinrichtung (43) zum Steuern des Pufferns des codierten Datenstroms durch die erste Puffereinrichtung und des Pufferns des Startcodes und der Positionsinformation durch die zweite Puffereinrichtung.
  3. Decodiervorrichtung nach Anspruch 1, wobei der codierte Datenstrom einem MPEG2-codierter Datenstrom entspricht, der durch ISO/IEC 13818-2 und die ITU-T-Empfehlungen H.262 beschrieben ist.
  4. Decodiervorrichtung nach Anspruch 1, weiterhin umfassend: eine Auswahleinrichtung zum Auswählen von vorbestimmten Bilddaten aus mehreren decodierten und durch die mehreren Decodiereinrichtungen ausgegebenen Bilddaten; und eine Bewegungskompensationseinrichtung (50) zum Empfangen der Bilddaten, die durch die Auswahleinrichtung ausgewählt sind, und zum Durchführen einer Bewegungskompensation, wenn erforderlich.
  5. Decodiervorrichtung nach Anspruch 4, wobei die Decodiereinrichtung ein Endsignal an die Auswahleinrichtung ausgibt, das angibt, dass die Decodierverarbeitung beendet worden ist; und wobei die Auswahleinrichtung eine Speichereinrichtung zum Speichern von Werten, die ihre jeweiligen Verarbeitungsstati der mehreren Decodiereinrichtungen entsprechen, aufweist, die Werte, die in der Speichereinrichtung gespeichert sind, die der Decodiereinrichtung entspricht, die das Endsignal, das angibt, dass die Decodierverarbeitung beendet worden ist, ausgibt, von einem ersten zu einem zweiten Wert ändert, wenn alle Werte in der Speichereinrichtung dem ersten Wert entsprechen, eines der Bilddaten auswählt, die durch die Decodiereinrichtung decodiert werden, für die die entsprechenden Werte, die in der Speichereinrichtung gespeichert sind, dem zweiten Wert entsprechen; und den Wert, der in der Speichereinrichtung gespeichert ist, die der Decodiereinrichtung entspricht, die die ausgewählten Bilddaten decodiert hat, in den ersten Wert ändert.
  6. Decodiervorrichtung nach Anspruch 4, weiterhin umfassend: eine Speichereinrichtung (33) zum Speichern der Bilddaten, die von der Auswahleinrichtung ausgewählt sind, oder der Bilddaten, auf die eine Bewegungskompensation durch die Bewegungskompensationseinrichtung durchgeführt worden ist, und eine Speichersteuereinrichtung (51, 52) zum Steuern des Speicherns der Bilddaten, die durch die Auswahleinrichtung ausgewählt sind, oder der Bilddaten, auf die die Bewegungskompensation durch die Bewegungskompensationseinrichtung durchgeführt wird, durch die Speichereinrichtung.
  7. Decodiervorrichtung nach Anspruch 6, wobei die Speichereinrichtung separat eine Helligkeitskomponente und Farbdifferenzkomponenten der Bilddaten speichert.
  8. Decodiervorrichtung nach Anspruch 6, die weiterhin eine Änderungseinrichtung umfasst, um die Reihenfolge der Rahmen des codierten Datenstroms, die der Decodiereinrichtung zugeführt werden, zu ändern, wobei die Speichereinrichtung mindestens zwei Rahmen mehr als die Anzahl von Rahmen, die durch die Summe der intra-codierten Rahmen und der vorwärts-prädiktiv codierten Rahmen innerhalb einer Bildsequenz erhalten wird, speichern kann, und wobei die Änderungseinrichtung die Reihenfolge der Rahmen des codierten Datenstroms so ändern kann, dass eine vorbestimmte Reihenfolge für die umgekehrte Wiedergabe des codierten Datenstroms erstellt wird.
  9. Decodiervorrichtung nach Anspruch 8, die weiterhin eine Ausgabeeinrichtung zum Auslesen und Ausgeben der Bilddaten, die durch die Speichereinrichtung gespeichert sind, umfasst, wobei die vorbestimmte Reihenfolge einer Reihenfolge der intra-codierten Rahmen, des vorwärts prädiktiven codierten Rahmen und eines bidirektional prädiktiven codierten Rahmens entspricht und wobei die Reihenfolge innerhalb des bidirektional prädiktiv codierten Rahmen der Umkehrung der Codierungsreihenfolge entspricht und wobei die Ausgabeeinrichtung die bidirektional prädiktiv codierten Rahmen, die durch die Decodiereinrichtung decodiert sind und durch die Speichereinrichtung gespeichert sind, sequenziell ausliest und ausgibt, und die intra-codierten Rahmen oder die vorwärts prädiktiv codierten Rahmen, die durch die Speichereinrichtung gespeichert sind, zu einem vorbestimmten Zeitpunkt ausliest und die intra-codierten Rahmen oder die vorwärts prädiktiv codierten Rahmen an eine vorbestimmte Position zwischen den bidirektional prädiktiv codierten Rahmen einfügt und ausgibt.
  10. Decodiervorrichtung nach Anspruch 9, wobei die vorbestimmte Reihenfolge einer Reihenfolge entspricht, in der ein intra-codierter Rahmen oder ein vorwärts prädiktiv codierter Rahmen der vorangehenden Bildsequenz, die durch die Decodiereinrichtung decodiert worden ist, durch die Speichereinrichtung zu einem Zeitpunkt gespeichert wird, wenn der intra-codierte Rahmen oder der vorwärts prädiktiv codierte Rahmen durch die Ausgabeeinrichtung ausgegeben wird.
  11. Decodiervorrichtung nach Anspruch 8, weiterhin umfassend: eine Aufzeichnungseinrichtung (35) zum Aufzeichnen einer notwendigen Information zum Decodieren des codierten Datenstroms; und eine Steuereinrichtung (34) zum Steuern des Aufzeichnens der Information durch die Aufzeichnungseinrichtung und das Bereitstellen der Information an die Decodiereinrichtung; wobei der codierte Datenstrom die Information umfasst, und wobei die Steuereinrichtung die notwendige Information zum Decodieren durch die Decodiereinrichtung auswählt und die notwendige Information der Decodiereinrichtung bereitstellt.
  12. Decodiervorrichtung nach Anspruch 11, wobei die an die Decodiereinrichtung durch die Steuereinrichtung bereitgestellte Information einem Codierparameter der oberen Schicht entspricht, der einem durch die Decodiereinrichtung decodierten Rahmen entspricht.
  13. Decodiervorrichtung nach Anspruch 6, weiterhin umfassend eine Ausgabeeinrichtung zum Auslesen und Ausgeben der Bilddaten, die durch die Speichereinrichtung gespeichert werden, wobei die Decodiereinrichtung in der Lage ist, den codierten Datenstrom mit einer N-fachen Geschwindigkeit der Verarbeitungsgeschwindigkeit, die für die normale Wiedergabe notwendig ist, zu decodieren, und die Ausgabeeinrichtung in der Lage ist, die Bilddaten von jeweils N Rahmen der durch die Speichereinrichtung gespeicherten Bilddaten auszugeben.
  14. Decodiervorrichtung nach Anspruch 1, weiterhin umfassend: eine erste Speichereinrichtung (41) zum Speichern des codierten Datenstroms; eine Ausleseeinrichtung (42) zum Auslesen eines Startcodes, der den Start einer vorbestimmten Informationseinheit angibt, die in dem codierten Datenstrom enthalten ist, aus dem codierten Datenstrom und zum Auslesen einer Positionsinformation, die sich auf die Position bezieht, bei der der Startcode in der ersten Speichereinrichtung gespeichert ist; eine zweite Speichereinrichtung (62) zum Speichern des Startcodes und der Positionsinformation, die durch die Ausleseeinrichtung ausgelesen werden; eine erste Speichersteuereinrichtung (43) zum Steuern des Speicherns des codierten Datenstroms durch die erste Speichereinrichtung und des Speicherns des Startcodes und der Positionsinformation durch die zweite Speichereinrichtung; eine Auswahleinrichtung zum Auswählen von vorbestimmten Bilddaten der mehreren Bilddaten, die durch die mehreren Decodiereinrichtungen decodiert und ausgegeben werden; eine Bewegungskompensationseinrichtung (50) zum Empfangen der Bilddaten, die durch die Auswahleinrichtung ausgewählt werden und zum Durchführen der Bewegungskompensation sofern notwendig; eine dritte Speichereinrichtung (71, 72) zum Speichern der Bilddaten, die durch die Auswahleinrichtung ausgewählt sind, oder der Bilddaten, auf die eine Bewegungskompensation durch die Bewegungskompensationseinrichtung durchgeführt wird; und eine zweite Speichersteuereinrichtung (51, 52) zum Steuern des Speicherns von Bilddaten, die durch die Auswahleinrichtung ausgewählt sind, oder der Bilddaten, auf die die Bewegungskompensation durch die Bewegungskompensationseinrichtung durchgeführt wird, durch die dritte Speichereinrichtung unabhängig von der ersten Speichersteuereinrichtung.
  15. Decodiervorrichtung nach Anspruch 1, wobei die mehreren Decodiereinrichtungen mehrere Teile-Decodierer zum Decodieren des codierten Datenstroms umfassen; und wobei die Decodiersteuereinrichtung eine Teile-Decodierersteuereinrichtung umfasst, um die mehreren Teile-Decodierer so anzusteuern, dass diese parallel arbeiten.
  16. Decodiervorrichtung nach Anspruch 1, wobei die mehreren Decodiereinrichtungen mehrere Teile-Decodierer zum Decodieren des quellencodierten Datenstroms für jeden Teil, der ein Bild des quellencodierten Datenstroms besteht, umfassen; und wobei die Decodiersteuereinrichtung eine Steuereinrichtung zum Überwachen der Decodierstati der mehreren Teile-Decodierer und zum Steuern der mehreren Teile-Decodierer umfasst; wobei die Steuereinrichtung die Teile der mehreren Teilede-Dodierer so alloziiert, um die schnellste Decodierung des Bildes durch die Teile-Decodierer ungeachtet der Reihenfolge der Teile, die in dem Bild enthalten sind, zu realisieren.
  17. Decodiervorrichtung nach Anspruch 1, wobei die mehreren Decodiereinrichtungen umfassen: mehrere Teile-Decodierer zum Decodieren des quellencodierten Datenstroms für jeden Teil, der aus einem Bild des quellencodierten Datenstroms besteht; und wobei die Decodiersteuereinrichtung umfasst: eine Steuereinrichtung zum Überwachen der Decodierstati der mehreren Teile-Decodierer und zum Steuern der mehreren Teile-Decodierer; wobei die Steuereinrichtung den zu decodierenden Teil an den Teile-Decodierer alloziiert, der das Codieren der mehreren Teile-Decodierer beendet hat, ungeachtet der Reihenfolge der Teile, die in dem Bild enthalten sind.
  18. Decodierverfahren zum Decodieren eines codierten Datenstroms mit mehreren Informationseinheiten, wobei das Verfahren folgende Schritte umfasst: Decodieren von mehreren vorbestimmten Informationseinheiten des codierten Datenstroms; Steuern der Verarbeitung der mehreren vorbestimmten Informationseinheiten, die parallel ausgeführt werden sollen, durch entsprechende mehrere parallele Decodierer; Ausgeben eines jeweiligen Signals, das das Ende des Decodierens von jeder jeweiligen vorbestimmten Informationseinheit angibt, von jedem der parallelen Decodierer; und Bereitstellen einer weiter vorbestimmten Informationseinheit des codierten Datenstroms zum Decodieren durch einen entsprechenden der parallelen Decodierer abhängig von jedem entsprechenden Signal.
  19. Decodierverfahren nach Anspruch 18, wobei der Schritt des Decodierens umfasst: Steuerschritte zum Steuern des Decodierens durch mehrere Teile-Decodierer zum Decodieren des codierten Datenstroms; und wobei der Schritt des Steuerns umfasst: einen Teile-Decodiersteuerschritt zum Steuern der Decodiersteuerschritte, die parallel ausgeführt werden sollen.
  20. Decodierverfahren nach Anspruch 18, wobei der codierte Datenstrom einen quellencodierten Datenstrom umfasst, wobei der Schritt des Decodierens umfasst: einen Decodierverarbeitungssteuerschritt zum Steuern des Decodierens des quellencodierten Datenstroms für jeden Teil, der aus einem Bild des quellencodierten Datenstroms besteht, durch mehrere Teiledecodierer; und wobei der Schritt des Steuerns umfasst: einen Steuerschritt zum Überwachen der Decodierstati der mehreren Teiledecodierer und zum Steuern der mehreren Teiledecodierer; wobei bei der Verarbeitung des Steuerschritts die Teile den mehreren Teile-Decodierern so alloziiert werden, so dass das schnellste Decodieren realisiert wird, das durch die Teile-Decodierer ausgeführt wird, ungeachtet der Reihenfolge der Teile, die in dem Bild enthalten sind.
  21. Decodierverfahren nach Anspruch 18, wobei der codierte Datenstrom einen quellencodierten Datenstrom umfasst, wobei der Schritt des Decodierens einem Decodierverarbeitungssteuerschritt des Steuerns des Decodierens des quellencodierten Datenstroms für jeden Teil, der auf einem Bild des quellencodierten Datenstroms besteht, durch mehrere Teiledecodierer umfasst; und wobei der Schritt des Steuerns einen Steuerschritt des Überwachens der Decodierstati der mehreren Teile-Decodierer und des Steuerns der mehreren Teile-Decodierer umfasst; wobei bei der Verarbeitung des Steuerschritts der Teil zum Decodieren an den Teile-Decodierer, der das Decodieren beendet hat, durch die Verarbeitung des Decodierverarbeitungssteuerschritts der mehreren Teiledecodierer ungeachtet der Reihenfolge der Teile, die in dem Bild enthalten sind, alloziiert wird.
  22. Programm, das von einem Computer ausgeführt werden kann, das eine Decodiervorrichtung zum Decodieren eines codierten Datenstroms steuert, wobei das Programm ausgebildet ist, die Verfahrensschritte eines der Ansprüche 18 bis 20 auszuführen.
  23. Aufzeichnungsmedium mit einem darauf aufgezeichneten computerlesbaren Programm, wobei das computerlesbare Programm für eine Decodiervorrichtung zum Decodieren eines codierten Datenstroms ausgebildet ist, wobei das computerlesbare Programm das Programm nach Anspruch 22 umfasst.
DE2001630180 2000-04-14 2001-04-13 Verfahren zur kodierung und dekodierung, aufzeichnungsmedium und programm Expired - Lifetime DE60130180T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2000112951 2000-04-14
JP2000112951 2000-04-14
PCT/JP2001/003204 WO2001080567A1 (en) 2000-04-14 2001-04-13 Decoder and decoding method, recorded medium, and program

Publications (2)

Publication Number Publication Date
DE60130180D1 DE60130180D1 (de) 2007-10-11
DE60130180T2 true DE60130180T2 (de) 2008-05-15

Family

ID=18625011

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2001630180 Expired - Lifetime DE60130180T2 (de) 2000-04-14 2001-04-13 Verfahren zur kodierung und dekodierung, aufzeichnungsmedium und programm

Country Status (8)

Country Link
US (2) US20020114388A1 (de)
EP (1) EP1187489B1 (de)
JP (2) JP5041626B2 (de)
KR (1) KR100796085B1 (de)
CN (1) CN1223196C (de)
CA (1) CA2376871C (de)
DE (1) DE60130180T2 (de)
WO (1) WO2001080567A1 (de)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7292772B2 (en) * 2000-05-29 2007-11-06 Sony Corporation Method and apparatus for decoding and recording medium for a coded video stream
GB2377840A (en) * 2001-07-18 2003-01-22 Sony Uk Ltd Audio/video recording and multiplexing apparatus
ES2610430T3 (es) 2001-12-17 2017-04-27 Microsoft Technology Licensing, Llc Codificación por omisión de macrobloques
CN1618235A (zh) * 2002-01-22 2005-05-18 微软公司 用于防止起始码模仿和数据填充的方法和系统
US7003035B2 (en) 2002-01-25 2006-02-21 Microsoft Corporation Video coding methods and apparatuses
US20040001546A1 (en) 2002-06-03 2004-01-01 Alexandros Tourapis Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation
US7280700B2 (en) * 2002-07-05 2007-10-09 Microsoft Corporation Optimization techniques for data compression
US7154952B2 (en) 2002-07-19 2006-12-26 Microsoft Corporation Timestamp-independent motion vector prediction for predictive (P) and bidirectionally predictive (B) pictures
FR2842979B1 (fr) * 2002-07-24 2004-10-08 Thomson Licensing Sa Procede et dispositif de traitement de donnees numeriques
US7606308B2 (en) * 2003-09-07 2009-10-20 Microsoft Corporation Signaling macroblock mode information for macroblocks of interlaced forward-predicted fields
US8064520B2 (en) 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US7092576B2 (en) * 2003-09-07 2006-08-15 Microsoft Corporation Bitplane coding for macroblock field/frame coding type information
WO2005034517A1 (en) * 2003-09-17 2005-04-14 Thomson Licensing S.A. Adaptive reference picture generation
JP4705921B2 (ja) 2004-01-20 2011-06-22 パナソニック株式会社 量子化マトリクスおよび動画像の復号化方法、復号化装置、プログラムおよび記録媒体
US7933327B2 (en) * 2004-01-30 2011-04-26 Panasonic Corporation Moving picture coding method and moving picture decoding method
EP2373033A3 (de) 2004-01-30 2011-11-30 Panasonic Corporation Bildcodierungs- und -Decodierungsverfahren, Vorrichtung und Programm dafür
CN101677382B (zh) * 2004-04-28 2013-01-09 松下电器产业株式会社 流产生装置和流产生方法
US8855059B2 (en) 2004-05-13 2014-10-07 Qualcomm Incorporated Method and apparatus for allocation of information to channels of a communication system
CN1306822C (zh) * 2004-07-30 2007-03-21 联合信源数字音视频技术(北京)有限公司 一种基于软硬件协同控制的视频解码器
WO2006016418A1 (ja) * 2004-08-11 2006-02-16 Hitachi, Ltd. 符号化ストリーム記録媒体、画像符号化装置、及び画像復号化装置
JP4438059B2 (ja) * 2004-08-24 2010-03-24 キヤノン株式会社 画像再生装置及びその制御方法
JP4453518B2 (ja) * 2004-10-29 2010-04-21 ソニー株式会社 符号化及び復号装置並びに符号化及び復号方法
EP1843344B1 (de) * 2005-01-28 2012-08-15 Panasonic Corporation Wiedergabevorrichtung, programm und wiedergabeverfahren
US9077960B2 (en) 2005-08-12 2015-07-07 Microsoft Corporation Non-zero coefficient block pattern coding
JP4182442B2 (ja) 2006-04-27 2008-11-19 ソニー株式会社 画像データの処理装置、画像データの処理方法、画像データの処理方法のプログラム及び画像データの処理方法のプログラムを記録した記録媒体
US20080253449A1 (en) * 2007-04-13 2008-10-16 Yoji Shimizu Information apparatus and method
US8254455B2 (en) 2007-06-30 2012-08-28 Microsoft Corporation Computing collocated macroblock information for direct mode macroblocks
US8731065B2 (en) 2008-01-24 2014-05-20 Nec Corporation Dynamic image stream processing method and device, and dynamic image reproduction device and dynamic image distribution device using the same
US7949775B2 (en) 2008-05-30 2011-05-24 Microsoft Corporation Stream selection for enhanced media streaming
US8189666B2 (en) 2009-02-02 2012-05-29 Microsoft Corporation Local picture identifier and computation of co-located information
CN102349102A (zh) * 2009-03-13 2012-02-08 松下电器产业株式会社 语音解码装置及语音解码方法
KR20110017303A (ko) * 2009-08-13 2011-02-21 삼성전자주식회사 회전변환을 이용한 영상 부호화, 복호화 방법 및 장치
US9561730B2 (en) 2010-04-08 2017-02-07 Qualcomm Incorporated Wireless power transmission in electric vehicles
US10343535B2 (en) 2010-04-08 2019-07-09 Witricity Corporation Wireless power antenna alignment adjustment system for vehicles
US10244239B2 (en) * 2010-12-28 2019-03-26 Dolby Laboratories Licensing Corporation Parameter set for picture segmentation
WO2013108634A1 (ja) * 2012-01-18 2013-07-25 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法及び画像符号化プログラム、並びに画像復号装置、画像復号方法及び画像復号プログラム
JP2013168932A (ja) * 2012-01-18 2013-08-29 Jvc Kenwood Corp 画像復号装置、画像復号方法及び画像復号プログラム
JP6276199B2 (ja) * 2012-01-20 2018-02-07 ソニー株式会社 有意性マップ符号化の計算量低減
US10271069B2 (en) 2016-08-31 2019-04-23 Microsoft Technology Licensing, Llc Selective use of start code emulation prevention
JPWO2018142596A1 (ja) * 2017-02-03 2019-02-07 三菱電機株式会社 符号化装置、符号化方法および符号化プログラム
CN111066325B (zh) 2017-09-26 2023-08-22 松下电器(美国)知识产权公司 编码装置、解码装置、编码方法和解码方法

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5379070A (en) * 1992-10-02 1995-01-03 Zoran Corporation Parallel encoding/decoding of DCT compression/decompression algorithms
US5381145A (en) * 1993-02-10 1995-01-10 Ricoh Corporation Method and apparatus for parallel decoding and encoding of data
AU5632394A (en) * 1993-03-05 1994-09-08 Sony Corporation Apparatus and method for reproducing a prediction-encoded video signal
JP3871348B2 (ja) * 1993-03-05 2007-01-24 ソニー株式会社 画像信号復号化装置及び画像信号復号化方法
CA2145363C (en) * 1994-03-24 1999-07-13 Anthony Mark Jones Ram interface
US5510842A (en) * 1994-05-04 1996-04-23 Matsushita Electric Corporation Of America Parallel architecture for a high definition television video decoder having multiple independent frame memories
JP3250588B2 (ja) * 1994-07-12 2002-01-28 ソニー株式会社 データ再生装置
US5532744A (en) * 1994-08-22 1996-07-02 Philips Electronics North America Corporation Method and apparatus for decoding digital video using parallel processing
JP2863096B2 (ja) * 1994-08-29 1999-03-03 株式会社グラフィックス・コミュニケーション・ラボラトリーズ 並列処理による画像復号装置
US5623311A (en) * 1994-10-28 1997-04-22 Matsushita Electric Corporation Of America MPEG video decoder having a high bandwidth memory
JP3034173B2 (ja) * 1994-10-31 2000-04-17 株式会社グラフィックス・コミュニケーション・ラボラトリーズ 画像信号処理装置
JPH08205142A (ja) * 1994-12-28 1996-08-09 Daewoo Electron Co Ltd ディジタルビデオ信号への符号化/復号化装置
EP0720372A1 (de) * 1994-12-30 1996-07-03 Daewoo Electronics Co., Ltd Vorrichtung zur parallelen Kodierung/Dekodierung von digitalen Bildsignalen
US5959690A (en) * 1996-02-20 1999-09-28 Sas Institute, Inc. Method and apparatus for transitions and other special effects in digital motion video
JPH1056641A (ja) * 1996-08-09 1998-02-24 Sharp Corp Mpegデコーダ
JPH10145237A (ja) * 1996-11-11 1998-05-29 Toshiba Corp 圧縮データ復号装置
JPH10150636A (ja) * 1996-11-19 1998-06-02 Sony Corp 映像信号再生装置及び映像信号の再生方法
JPH10178644A (ja) * 1996-12-18 1998-06-30 Sharp Corp 動画像復号装置
US6201927B1 (en) * 1997-02-18 2001-03-13 Mary Lafuze Comer Trick play reproduction of MPEG encoded signals
JPH10257436A (ja) * 1997-03-10 1998-09-25 Atsushi Matsushita 動画像の自動階層構造化方法及びこれを用いたブラウジング方法
JPH10262215A (ja) * 1997-03-19 1998-09-29 Fujitsu Ltd 動画像復号装置
JP3662129B2 (ja) * 1997-11-11 2005-06-22 松下電器産業株式会社 マルチメディア情報編集装置
JP3961654B2 (ja) * 1997-12-22 2007-08-22 株式会社東芝 画像データ復号化装置及び画像データ復号化方法
JP3093724B2 (ja) * 1998-04-27 2000-10-03 日本電気アイシーマイコンシステム株式会社 動画像データ再生装置及び動画像データの逆再生方法
JPH11341489A (ja) * 1998-05-25 1999-12-10 Sony Corp 画像復号化装置とその方法
WO1999065027A2 (en) * 1998-06-05 1999-12-16 Koninklijke Philips Electronics N.V. Recording and reproduction of an information signal in/from a track on a record carrier
JP4427827B2 (ja) * 1998-07-15 2010-03-10 ソニー株式会社 データ処理方法、データ処理装置及び記録媒体

Also Published As

Publication number Publication date
EP1187489B1 (de) 2007-08-29
US20020114388A1 (en) 2002-08-22
CA2376871C (en) 2012-02-07
KR20020026184A (ko) 2002-04-06
JP2011172243A (ja) 2011-09-01
CN1366776A (zh) 2002-08-28
EP1187489A1 (de) 2002-03-13
CA2376871A1 (en) 2001-10-25
JP2001359107A (ja) 2001-12-26
WO2001080567A1 (en) 2001-10-25
CN1223196C (zh) 2005-10-12
DE60130180D1 (de) 2007-10-11
US20090010334A1 (en) 2009-01-08
JP5041626B2 (ja) 2012-10-03
KR100796085B1 (ko) 2008-01-21
EP1187489A4 (de) 2005-12-14

Similar Documents

Publication Publication Date Title
DE60130180T2 (de) Verfahren zur kodierung und dekodierung, aufzeichnungsmedium und programm
DE60123168T2 (de) MPEG-Dekoder
DE69633641T2 (de) Verfahren und Vorrichtung zum Ausführen einer Suchoperation während des Aufführens von digitalen audiovisuellen Informationen
DE69836195T2 (de) Digitaler camcorder mit mpeg-2-kompatibler videokompression
DE69727372T2 (de) System und verfahren zur erzeugung von trickwiedergabe-videodatenströmen aus einem komprimierten normalwiedergabe-videodatenstrom
DE60104013T2 (de) Transkodierung von progressiv-kodierten i-slice-aufgefrischten mpeg datenströmen für trickmodi
DE69627069T2 (de) Wiedergabe von kodierten Daten bei Rückwärtswiedergabebetrieb
DE69629957T2 (de) Gerät und Verfahren zur Kodierung von digitalen Videodaten
DE69233538T2 (de) Gerät zur Verarbeitung von bandkomprimierten Signalen für Aufnahme/Wiedergabe
DE69824896T2 (de) Prediktives Bilddekodierungsverfahren
DE69535631T2 (de) Aufzeichnung und Wiedergeben von Digitaldaten
DE69633838T2 (de) Kodierung und Dekodierung von Bewegtbildern
DE69936264T2 (de) Verfahren und vorrichtung zur verwaltung einer multimediadatei
DE69636337T2 (de) System zur änderung kodierter videorahmen
DE69629921T2 (de) Trickwiedergabesteuerung für vorkodiertes video
DE69836890T2 (de) System zur Kodierung und Aufzeichnung einer Vielzahl von Bildern
DE69835211T2 (de) Umschaltung zwischen komprimierten videobitströmen
DE19755345C2 (de) Umgekehrtes Abspielen von Videosignalen im MPEG-Standard
DE69825638T2 (de) Verfahren für Bilddekodierung
DE10392280T5 (de) Verfahren und Vorrichtung zum Unterstützen von AVC in MP4
DE69433537T2 (de) Vorrichtung zur Dekodierung von Bewegtbilddaten
DE19946683B4 (de) Decodiersystem für komprimierte Datenströme zum gleichzeitigen Reproduzieren stabiler Bilder, Verfahren zum Decodieren komprimierter Datenströme und Informationsspeichermedium zum Speichern von das Verfahren darstellenden Programmbefehlen
DE19680974B3 (de) Vorrichtung und Verfahren zum Komprimieren von Audio- und/oder Videodaten
DE69629442T2 (de) Verfahren und Einrichtung zur Kodierung digitaler Videosignale
DE60210080T2 (de) Vorrichtung zur Detektion eines Wasserzeichens

Legal Events

Date Code Title Description
8364 No opposition during term of opposition