DE69636337T2 - System zur änderung kodierter videorahmen - Google Patents

System zur änderung kodierter videorahmen Download PDF

Info

Publication number
DE69636337T2
DE69636337T2 DE69636337T DE69636337T DE69636337T2 DE 69636337 T2 DE69636337 T2 DE 69636337T2 DE 69636337 T DE69636337 T DE 69636337T DE 69636337 T DE69636337 T DE 69636337T DE 69636337 T2 DE69636337 T2 DE 69636337T2
Authority
DE
Germany
Prior art keywords
bits
video
frame
areas
information
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
DE69636337T
Other languages
English (en)
Other versions
DE69636337D1 (de
Inventor
Faramarz Waltham AZADEGAN
Jay Lawrenceville YOGESHWAR
Sheau-Bao Cranbury NG
David Mount Holly LEHMANN
Mikhail Riverdale TSINBERG
Hiroaki Ichikawa-shi UNNO
Hideki Kanazawa-ku MIMURA
Tetsuya Komea-shi KITAMURA
Christopher J. Los Angeles COOKSON
Greg B. Redondo Beach THAGARD
Andrew Drusin Canoga Park ROSEN
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.)
Toshiba Corp
Time Warner Cable Enterprises LLC
Original Assignee
Toshiba Corp
Time Warner Entertainment Co LP
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 Toshiba Corp, Time Warner Entertainment Co LP filed Critical Toshiba Corp
Publication of DE69636337D1 publication Critical patent/DE69636337D1/de
Application granted granted Critical
Publication of DE69636337T2 publication Critical patent/DE69636337T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/804Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components
    • H04N9/806Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components with processing of the sound signal
    • H04N9/8063Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components with processing of the sound signal using time division multiplex of the PCM audio and PCM video signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • G11B27/034Electronic editing of digitised analogue information signals, e.g. audio or video signals on discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/34Indicating arrangements 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/36Monitoring, i.e. supervising the progress of recording or reproducing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/162User input
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • 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
    • 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
    • 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
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/92Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N5/926Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback by pulse code modulation
    • H04N5/9261Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback by pulse code modulation involving data reduction
    • H04N5/9262Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback by pulse code modulation involving data reduction using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation
    • H04N7/52Systems for transmission of a pulse code modulated video signal with one or more other pulse code modulated signals, e.g. an audio signal or a synchronizing signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/804Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components
    • H04N9/8042Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components involving data reduction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2537Optical discs
    • G11B2220/2562DVDs [digital versatile discs]; Digital video discs; MMCDs; HDCDs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/90Tape-like record carriers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/90Tape-like record carriers
    • G11B2220/91Helical scan format, wherein tracks are slightly tilted with respect to tape direction, e.g. VHS, DAT, DVC, AIT or exabyte
    • G11B2220/913Digital audio tape [DAT] format
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/30Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on the same track as the main recording
    • G11B27/3027Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on the same track as the main recording used signal is digitally coded
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/32Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier
    • G11B27/327Table of contents
    • G11B27/329Table of contents on a disc [VTOC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Diese Anmeldung ist mit der US-Patentanmeldung Nr. 08/438,014 mit dem Titel "Verfahren und System zum Ersetzen von Abschnitten eines kodierten Datenstrom", die am 8. Mai 1995 eingereicht wurde (WO-A-97 03 443), verwandt. Diese Anmeldung ist ferner mit den vier nachstehend aufgeführten Patentanmeldungen, mit denen sie gemeinsam eingereicht ist, verwandt: US-Patentanmeldung Nr. 08/XXX,XXX mit dem Titel "Audiovisuelle Kodierungssystem mit einer reduzierten Anzahl an Audiokodierern" (WO-A-96 36 173), US-Patentanmeldung Nr. 08/XXX,XXX mit dem Titel "Verfahren und System für einen Bediener zur manuellen Änderung der Qualität einer zuvor kodierten Videosequenz" (WO-A-96 35 998), US-Patentanmeldung Nr. 08/XXX,XXX mit dem Titel "Ratengesteuertes digitales Videoeditierverfahren und System zur Steuerung einer Bitzuweisung eines Videokodierers durch eine Änderung von Quantisierungspegeln" (WO-A-96 35 998) sowie die US-Patentanmeldung Nr. 08/XXX,XXX mit dem Titel "Videokodierverfahren und System zur Kodierung mit Hilfe eines Ratenquantisiermodels" (EP-A-742 674), die jeweils am 6. Juni 1995 eingereicht wurden.
  • HINTERGRUND DER ERFINDUNG
  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft Videokodiersysteme, wie beispielsweise MPEG-Videokodierer, und insbesondere Videokodiersysteme, bei denen ein Benutzer die Qualität des kodierten Videos manuell steuern kann.
  • Beschreibung des Standes der Technik
  • Dem Gebiet der Videokodierung wurde in den letzten Jahren große Aufmerksamkeit geschenkt. Es wurde zahlreiche Algorithmen entwickelt, um die Redundanz bei der Komprimierung der Videosignale zum Zwecke der Übertragung oder der Speicherung effizient abzubauen.
  • Die US-A-5 128 776 offenbart ein System zur Steuerung der Qualität eines digital kodierten Videos durch Kodieren eines Rahmens des Videos in ein digitales Format mit Hilfe von Quantisiererwerten und Identifizieren von Bereichen des Rahmens des kodierten Videos mit Qualitäten, die geändert werden sollen.
  • Die EP-A-330 455 offenbart ein System zur Steuerung der Qualität eines digital kodierten Videos durch Identifizieren erster Bereiche des Rahmens des Videos mit Qualitäten, die sich bezüglich der Qualitäten der anderen Bereiche des Rahmens unterscheiden, anschließendes Bestimmen wenigstens eines Quantisiererwerts für die ersten Bereiche und der Anzahl an Bits für die ersten Bereiche, unter Verwendung der identifizierten Bereiche, und anschließendes Kodieren des Rahmens in das digital komprimierte Format mit Hilfe des wenigstens einen Quantisiererwerts und der Anzahl an Bits für die ersten Bereiche.
  • An die Entwicklung der Algorithmen ist der Wunsch geknüpft, die best mögliche Videoqualität zu erzielen, wenn diese von einem Betrachter beurteilt wird. Im Allgemeinen wird dies anhand von Videokodieralgorithmen in Übereinstimmung mit den folgenden zwei verschiedenen Ansätzen versucht.
  • Bei dem ersten Ansatz wird ein mathematischer Verschwommenheitsgrad zur Optimierung des Kodierers ver wendet. Dieser Ansatz ist attraktiv, da die mathematischen Tools dazu verwendet werden können, um in gewisser Hinsicht die Leistung des Kodierers zu optimieren. Der Verschwommenheitsgrad berücksichtigt jedoch nicht direkt das visuelle Ansprechverhalten des Menschen. Bei dem zweiten Ansatz ist der Algorithmusentwickler stark auf das Feedback des Menschen bei der Erstellung einiger Richtlinien für einen automatischen Kodierprozess angewiesen. Es werden bestimmte Matrizen und Gewichtungsfaktoren entwickelt, um das visuelle Ansprechverhalten des Menschen für den bestimmten Algorithmus imitieren. In diesem Fall ist nicht einzig der Prozess zur Erstellung der Gewichtungskriterien zeitaufwendig und kostenintensiv, sondern ebenso die Ergebnisse dieses Prozesses gegebenenfalls für einen Betrachter nicht zufrieden stellend.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Es ist folglich Aufgabe dieser Erfindung, ein neues Videokodiersystem bereitzustellen, bei dem ein Benutzer die Qualität eines kodierten Videos steuert.
  • Es ist ferner Aufgabe dieser Erfindung, es einem Benutzer zu ermöglichen, die Qualität eines kodierten Videos für bestimmte Bereiche innerhalb eines Rahmens zu steuern.
  • Es ist weiterhin Aufgabe dieser Erfindung, es einem Benutzer zu ermöglichen, die Bildqualität von Bereichen innerhalb von Rahmen zu ändern, wobei die angepassten Rahmen den gleichen Betrag an Speicherkapazität wie das ursprüngliche kodierte Video verbrauchen.
  • Diese und weitere Aufgaben werden durch ein Verfahren und ein System gelöst, bei welchem die Qualität des kodierten Videos in verschiedenen Bereichen eines Rahmens manuell von einem Benutzer gesteuert wird, wie in den unabhängigen Ansprüchen 1 und 15 beansprucht. Das Video wird vorzugsweise anfangs, bei Beginn des Kodierungsprozesses, in Übereinstimmung mit einem automatischen Prozess ohne Benutzereingriff kodiert. Anschließend prüft eine Person das kodierte Video und zeigt manuell an, dass die Qualität der bestimmten Bereiche innerhalb eines Videorahmens geändert werden soll. Dies wird vorzugsweise von dem Benutzer erfüllt, der eine ganze Zahl zwischen –5 und +5 verschiedenen Bereichen des Rahmens zuordnet. Wenn es Bereiche gibt, denen nicht speziell eine Priorität zugewiesen ist, werden diese Bereiche vorzugsweise derart berücksichtigt, dass sie eine "Don't Care"-Qualität aufweisen, und dass ihre Qualität durch einen automatischen Prozess angepasst wird, so dass die Gesamtzahl an Bits für den Rahmen vor und nach den Qualitätsänderungen gleich ist.
  • Da das endgültige Speichermedium des kodierten Videos, wie beispielsweise eine optische Disk, eine begrenzte Speicherkapazität aufweist, ist die Gesamtanzahl an Bits für das kodierte Video und die Qualität oder die Auflösung des Videos begrenzt. Folglich müssen Bits aus anderen Bereichen genommen werden, um die Qualität eines Bereichs zu erhöhen. Nachdem die das Video prüfende Person die Qualitätsprioritäten an die verschiedenen Bereiche vergeben hat, werden neue Quantisiererwerte auf der Grundlage der Benutzereingabe und der alten Quantisiererwerte für jeden Makroblock mit einer Benutzereingabe berechnet. Auf der Grundlage der neuen Quantisiererwerte wird die Anzahl an Bits für jeden Rahmen berechnet. Anschließend werden die Gesamtanzahl an Bits für den Rahmen mit den von dem Benutzer gewählten Qualitäten und die Anzahl an Bits der ursprünglichen Kodierung des Rahmen analysiert, um zu bestimmen, ob die Differenz zwischen der Anzahl an Bits für die neue Kodierung und die ursprüngli che Kodierung des Rahmens dicht genug beieinander liegen. Wenn die Bitdifferenz einen Schwellenwert überschreitet, wird ein Korrekturverfahren ausgeführt, so dass die Quantisiererpegel der Makroblöcke des Rahmens derart angepasst werden, dass die Gesamtzahl an Bits des von dem Benutzer geänderten Rahmens ausreichend nahe bei der Anzahl an Bits der ursprünglichen Kodierung des Rahmens liegt.
  • Nachdem die Anzahl an Bits bestimmt worden ist, werden die Videorahmen erneut kodiert, wobei die neu bestimmten Quantisiererwerte verwendet werden, welche der von dem Benutzer eingegebenen Qualität entsprechen. Während des erneuten Kodierens wird ein Feinabstimmungsprozess ausgeführt, welcher die Anzahl an Bits für jeden Rahmen der Anzahl an Bits der ursprünglichen Kodierung des Rahmens annähert.
  • Die Erfindung ermöglicht es einem Benutzer, einen Bereich in einem Rahmen und einen entsprechenden Bereich in einem folgenden Rahmen zu markieren. Anschließend wird eine Interpolation vorgenommen, so dass Rahmen zwischen den neuen Rahmen einen Bereich aufweisen, der mit Hilfe der zwei Rahmen bestimmt wird. Nach dieser automatischen Interpolation kann der Benutzer die interpolierten Bereiche anschließend entweder in der Größe, dem Ort oder der Priorität ändern oder den Bereich löschen. Das auf einem digitalen Speichermedium gespeicherte kodierte Video bildet ebenso einen Teil der Erfindung.
  • KURZE BESCHREIBUNG DER ZEICHNUNG
  • Weitere Eigenschaften und Vorteile der Erfindung werden aus der nachfolgenden detaillierten Beschreibung, die unter Bezugnahme auf die beigefügte Zeichnung gemacht wurde, näher ersichtlich. In der Zeichnung zeigt/zeigen:
  • 1A ein Blockdiagramm der Kodierersystemarchitektur;
  • 1B Vorrichtungen zur Gewinnung von zu kodierenden akustischen und optischen Signalen (Audio und Video) und Vorrichtungen zum Schreiben und Übertragen der von dem Kodiersystem erzeugten, kodierten audiovisuellen Daten;
  • 2 ein Ablaufdiagramm mit dem allgemeinen Betrieb des in der 1 gezeigten Systems;
  • 3 ein Ablaufdiagramm eines in dem Einrichtzustand ausgeführten Prozesses;
  • 4 einen in dem Komprimierungszustand ausgeführten Prozesses;
  • 5 den in dem Editierzustand ausgeführten Prozess;
  • 6 einen für den Start-, den End- und den Austrittszustand ausgeführten Prozess;
  • 7 ein Ablaufdiagramm, dass eine Möglichkeit, die Anzahl an Audiokodierern zu bestimmen, die zur Kodierung einer vorbestimmten Anzahl an Audiotracks erforderlich ist, wobei ein Multipassvideokodierer verwendet wird, und den Prozess zur gleichzeitigen Ausführung eine Audio- und Multipassvideokodierung;
  • 8A8D das Sequenzschichtprotokolldateiformat;
  • 9A9C das Bildschichtprotokolldateiformat;
  • 10A und 10B die Voll- und die Kurzform des Makroblockschichtprotokolldateiformats;
  • 11 einen Prozess zur Verwendung der Information innerhalb der Protokolldateien;
  • 12 den allgemeinen Prozess, der während der manuellen Anpassung der Bildqualität für verschiedene Zeitspannen ausgeführt wird;
  • 13 eine Benutzerschnittstelle, die dazu verwendet wird, die Parameter zur Änderung der Bildqualität über verschiedene Zeitspannen einzugeben;
  • 14 das allgemeine Verfahren zur Berechnung der Anzahl an Bits, die mit der gewünschten Bildqualität verbunden sind;
  • 15 den Prozess, der zur Verarbeitung von Abschnitten mit einer von einem Benutzer gewählten höchsten oder niedrigsten Priorität verwendet wird;
  • 16A und 16B ein Ablaufdiagramm zur Berechnung der Anzahl an Bits, die gewünschten Bildqualitäten entsprechen, die keine höchste oder niedrigste Priorität aufweisen;
  • 17 ein Ablaufdiagramm des Prozesses, der dazu verwendet wird, um zu überprüfen, ob sich ein Unterlauf aus der Änderung der Bildqualität ergibt;
  • 18 ein Ablaufdiagramm zur Bestimmung, ob ein Pufferunterlauf in Rahmen nach dem Editiersegment aufgrund von innerhalb des Editiersegments vorgenommenen Änderungen auftritt;
  • 19A und 19B zwei verschiedene Beispiele, die zeigen, wie die Bitraten des kodierten Videos durch die von einem Benutzer gewählte Qualität geändert werden;
  • 20 den allgemeinen Prozess, der während der manuellen Anpassung der Bildqualität für verschiedene Bereiche innerhalb eines Rahmens ausgeführt wird;
  • 21 ein Beispiel von verschiedenen Bereichen mit von einem Benutzer gewählten Prioritäten in einem Videorahmen;
  • 22 ein Diagramm, welches die von einem Benutzer gewählten Prioritäten im Vergleich zu dem Teil der ursprünglichen Quantisiererwerte, der für die gewählte Priorität verwendet wird;
  • 23 einen Prozess zur Bestimmung, ob die Differenz zwischen der Anzahl an Bits, die aus den von dem Benutzer gewählten Prioritäten resultiert, und der Anzahl an Bits, die aus der ursprünglichen Kodierung eines Rahmens resultiert, annehmbar ist oder ob ein Korrekturverfahren ausgeführt werden muss;
  • 24A24C einen Prozess zur Korrektur eines Rahmens, wenn bestimmt wird, dass er zu viele Bits aufweist und folglich die Quantisiererpegel der Makroblöcke inkrementiert werden, um die Anzahl an Bits zu reduzieren;
  • 25A25C einen Prozess zur Korrektur einer zu geringen Anzahl an Bits in einem Rahmen durch eine Reduzierung der Quantisiererpegel der Makroblöcke innerhalb eines Rahmens zur Erhöhung der Anzahl an Bits;
  • 26 ein Ablaufdiagramm des allgemeinen Prozesses zum Laden der erwarteten Anzahl an Bits, die in jedem der Sätze von n Makroblöcken verwendet wird, aus dem Speicher, und anschließend für jeden Satz von n Makroblöcken ein erneutes Codieren, Zählen der resultierenden Anzahl an Bits, Berechnen der Genauigkeit der Schätzung auf der Grundlage der erwarteten Anzahl und erzeugten Anzahl an Bits und Anpassen der vorher zugewiesenen Quantisierungspegel der nächsten n Makroblöcke, so dass diese nahe der Zielgröße der Reihe von Rahmen bleibt;
  • 27A ein Bild eines Rahmens, welches die vorher zugewiesenen Quantisierungspegel zeigt;
  • 27B ein Bild des in der 27A gezeigten Rahmens, wenn jeder Satz Makroblöcke erneut kodiert, ein erster Korrekturfaktor berechnet und der erste Korrekturfaktor zu dem zweiten Satz von Makroblöcken addiert worden ist;
  • 27C ein Bild des in der 27B gezeigten Rahmen nachdem der zweite Satz von Makroblöcken erneut codiert, ein zweiter Korrekturfaktor berechnet und der zweite Korrekturfaktor zu dem dritten Satz von Makroblöcken addiert worden ist;
  • 27D ein Bild des in der 27A gezeigten Rahmens, wenn jeder Satz von Makroblöcken zwei Anteile aufweist und der erste Satz von Makroblöcken erneut kodiert worden ist, ein erste Korrekturfaktor berechnet worden ist und der erste Korrekturfaktor zu dem zweiten Satz von Makroblöcken addiert worden ist;
  • 28A einen Rahmen, der zwei verschiedene Bereiche aufweist, deren Quantisierungspegel geändert sind;
  • 28B ein Bild mit zwei möglichen Kodierungen des in der 28A gezeigten Rahmens, welches die Änderung in der Anzahl an Bits in einem Videodatenstrom zeigt, der dazu verwendet wird, die zwei verschiedenen Bereiche darzustellen, deren Quantisierungspegel geändert wurden;
  • 29 einen Videodatenstrom, welcher die Änderung in der Anzahl an Bits, die dazu verwendet wird, eine Reihe an Bildern darzustellen, bei denen die Gesamtlänge der erneut kodierten Reihe der ursprünglichen Reihenlänge entspricht, zeigt;
  • 30 ein Ablaufdiagramm, das darstellt, wie ein Korrekturfaktorindex mit Hilde eines geschätzten Verhältnisses aus einer Verhältnisnachschlagetabelle bestimmt wird;
  • 31 ein Ablaufdiagramm, das darstellt, wie ein Korrekturfaktor mit Hilfe eines Korrekturfaktorindex aus einer Korrekturfaktortabelle gewählt wird;
  • 32 ein Ablaufdiagramm, das darstellt, wie ein Korrekturfaktor mit Hilfe sowohl eines Schätzverhältnisses und der Anzahl an verbleibenden nicht erneut kodierten Makroblocksätzen berechnet wird;
  • 33A einen Abschnitt eines ursprünglichen Videos in einem kodierten Format;
  • 33B einen Abschnitt eines neuen Videos in einem nicht kodierten Format, das in das ursprünglich kodierte Video zu wechseln ist;
  • 33C den nicht kodierten neuen Abschnitt des Video mit nicht kodierten Abschnitten des ursprünglichen Videos an dessen Ende;
  • 33D das in der 33C gezeigte Video in einem kodierten Format, das in das ursprüngliche Video zu wechseln ist;
  • 33E das ursprüngliche kodierte Video mit dem darin eingesetzten kodierten Video;
  • 34 einen Prozess zum Einsetzen eines Videoabschnitts in den kodierten Videodatenstrom, woraus ein Video mit weniger Dekodierartefakten resultiert;
  • 35A einen nicht kodierten neuen Abschnitt des Videos mit einem nicht kodierten Abschnitt des ursprünglichen Videos an dem Bandende;
  • 35B einen Abschnitt des kodierten Videos, das in das in der 33A gezeigte ursprünglich kodierte Video einzusetzen ist;
  • 35C das in der 33A gezeigte ursprünglich kodierte Video mit dem in der 35B gezeigten eingesetzten kodierten Video;
  • 36 einen Prozess zur Verringerung von Dekodierartefakten, wenn ein kodierter Videodatenstrom editiert wird, indem das Auswechselvideo mit Hilfe eines Geschlossene-GOP-Modus kodiert wird;
  • 37A einen Rahmen eines Rohvideos, das zwei Quantisierungspegel aufweist, die ihm zugewiesen sind, um Quantisierungspegel im Verhältnis zu Bitratenmodellen in der Vorkodierungsphase zu erzeugen;
  • 37B einen Rahmen mit vier Quantisierunspegeln, die in einem Rotationsmuster zugewiesen werden;
  • 37C einen Rahmen mit vier Quantisierunspegeln, die in einer Blockformation verteilt werden;
  • 38 ein Ablaufdiagramm, welches den Prozess zur Gewinnung von Videosignalen und deren Vorkodierung zur Bestimmung einer Bitrate für jeden in der Vorkodierungsphase bestimmten Quantisierungspegel darstellt;
  • 39 zwei aufgenommene Rahmen und die diesen zugeordneten Quantisierungspegel im Verhältnis zu den Bitraten;
  • 40 eine Gliederung des endgültigen Formats der kodierten Daten, das letztendlich auf einer optischen Disk beinhaltet ist;
  • 41 die Diskinformationsdatei 908 der 40;
  • 42 die Dateimanagementinformationsinhalte der in der 40 gezeigten Dateien;
  • 43 die Details der in den Dateien der 40 gespeicherten Daten;
  • 44A ein Datenpaket, dessen Daten kein Füllpaket benötigen und 44B ein Datenpaket, das ein Paket zum Auffüllen benötigt;
  • 45 ein Wiedergabeinformationspaket;
  • 46 die in der Datensuchinformation 996 der 45 beinhaltete Information;
  • 47 die allgemeine Information der 46;
  • 48 die Synchronnachbildungsinformation der 46;
  • 49 ein Videopaket;
  • 50 die Beziehung zwischen einer Gruppe von Bildern (GOP) und einer Reihe von Videopaketen;
  • 51A ein Audiopaket, das entsprechend der MPEG-Audiokodierspezifikation kodiert ist;
  • 51B ein Audiopaket, das entsprechend eine AC-3- oder linearen PCM-Audiokodierung aufgebaut ist;
  • 52 die Beziehung zwischen dem kodierten Audiodatenstrom und den Audiopaketen;
  • 53 den Aufbau einer Unterbildeinheit;
  • 54 den Aufbau eines Unterbildpakets;
  • 55 den Aufbau einer Unterbildeinheit in Bezug auf Unterbildpakete; und
  • 56 einen Übergang zwischen dem Anzeigen einer Unterbildeinheit n und einer Unterbildeinheit n+1.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Die vorliegende Erfindung betrifft ein digitales Videokodiersystem, das eine Mehrzahl von Komponenten und funktionellen Aspekten beinhaltet. Die nachstehende Beschreibung ist zur Verdeutlichung der verschiedenen Systemkomponenten in die folgenden Abschnitte eingeteilt:
    • I. Einleitung
    • II. Systemkomponenten
    • III. Allgemeiner Systembetrieb
    • IV. Systemalternativen
    • V. Verringerung der Anzahl an Audiokodierern bei gleich bleibender optimaler Kodiereffizienz
    • VI. Logdateien zum Speichern von Information des kodierten Videos, und Loginterpretiererhilfsmittel für einen Zugriff auf die Logdateien und das kodierte Video
    • VII. Qualitätsänderung des kodierten Videos A. Änderung der Qualität in Zeitabschnitten B. Qualitätsänderung in Rahmenbereichen
    • VIII. Erneutes Kodieren des Videos nach einer Qualitätsänderung A. Bitzuordnungssteuerung, wenn die Qualität innerhalb eines einzigen Rahmens geändert worden ist B. Erneutes Kodieren bei gleichzeitiger Vermeidung einer Dekodierung von Artefakten an Editierpunkten 1. Zurücksetzen des Kodierers in den Zustand der ursprünglichen Kodierung 2. Erneutes Kodieren in einem Geschlossene-GOP-Modus
    • IX. Ratenquantisierermodellierung zur Kodierung
    • X. Kombinierung von Audio-, Video- und digitalen Unterbildsignalen mit Hilfe von Datenstrukturen
  • I. EINLEITUNG
  • Das offenbarte System betrifft ein digitales, audiovisuelles Kodiersystem, das ebenso als digitales Kompressionssystem bekannt ist. Die hierin offenbarten Ideen können auf ein beliebiges Kodierschema und insbesondere auf MPEG-2 (Moving Picture Experts Group), das ursprünglich als ISO/IEC 13818-2 bekannt ist, ISO/IEC 13818-1, welches die MPEG-1 Systeminformation spezifiziert, und den MPEG-2 Vorgänger, MPEG-1 (ISO/IEC 11172-Video) angewandt werden. MPEG-1 und MPEG-2 werden nachstehend einheitlich als "MPEG" bezeichnet. Der MPEG-Standard spezifiziert einzig die Syntax des komprimierten oder kodierten Videodatenstroms, jedoch die Art und Weise der Kompression. Es sollte beachtet werden, dass der Kodierprozess nachstehend auch als Kompressionsprozess bezeichnet wird, da ein kodierter MPEG-Datenstrom ein komprimierter Datenstrom ist. Das System betrifft ferner die Kodierung von Audiosignalen, die mit Hilfe von Dolby AC-3 oder dem MPEG-2 Standard, so wie er in der ISO/IEC 13818-3 definiert ist, ausgeführt werden kann.
  • MPEG-Videokompression ist eine temporäre, kausal prädiktive Kompression. Wenn der MPEG-Kodierer ein neues Videobild empfängt, vergleicht er das neue Videobild mit einem erwarteten Bild, welches der Kodierer auf der Grundlage der vorher kodierten Bilder erzeugt hat. Der Term "kausal" prädiktive Kodierung wird verwendet, da die Vorhersage auf der Grundlage von vorher übertragener Information ausgeführt wird, und der Term "temporäre", kausal prädiktive Kodierung wird verwendet, da die Vorher sage im Hinblick auf temporäre Bildeinheiten ausgeführt wird. Das Vorhersageverfahren schließt das Schätzen der Bewegung von Beriechen innerhalb eines Videobildes mit ein. Folglich wird die temporäre Vorhersage manchmal auch als bewegungskompensierte Vorhersage bezeichnet.
  • Das Ergebnis des Vergleichs zwischen dem alten und dem neuen Bild stellt neue Information dar, die in dem späteren Videobild beinhaltet ist. Die neue Information, die ebenso als "Restinformation" bezeichnet wird, wird anschließend einer Reihe von Informationsverdichtungsprozessen unterzogen. Zunächst wird eine lineare mathematische Transformation, die als diskrete Kosinustransformation (DCT) bekannt ist, ausgeführt. Die DCT-Operation wandelt die Pixelrestinformation in eine Reihe von Koeffizienten. Bei der MPEG-Kompression wird die DCT über Blöcke von 8×8 Pixel ausgeführt. Die DCT-Koeffizienten sind ebenso in 8×8-Zahlenarrays angeordnet. Diese Koeffizienten werden anschließend einzeln auf der Grundlage einer Quantsierungsschrittgröße oder eines q-Pegels zu einem Satz von Genauigkeitsgraden quantisiert (oder gerundet). Der Quantisierungsprozess erzeugt gewöhnlich sehr viele Koeffizienten mit dem Wert Null. Dieser Prozess ist am meisten für die Zuführung von Kodierartefakten, die ferner als Quantisierungsrauschen bezeichnet werden, verantwortlich.
  • Die quantisierten Koeffizienten werden anschließend mit Hilfe einer Kombination aus Lauflängekodierung der nullwertigen Koeffizienten und Kodierung mit variabler Länge der resultierenden Paare aus zwei Zahlen, von denen jede den Lauflängenwert bzw. den "nicht Null Koeffizientenwert" darstellt. Die Kodes für diese "Lauflängen-Nicht-Null-Wert-Paare" bilden zusammen mit anderer Overheadinformation den komprimierten digitalen Datenstrom, welcher dem Videobild entspricht. Aufgrund der physikalischen Einschränkungen, wie beispielsweise der Ausgangsdatenrate oder der Speicherkapazität, ist es erforderlich, den Quantisierungsgrad derart zu ändern, dass ein geeigneter Kompressionsbetrag erzielt wird. Dies wird nachstehend als Puffer-Feedback bezeichnet.
  • Ein MPEG-konformer Dekodierer liest den kodierten, digitalen Datenstrom und führt Operationen aus, welche dem Kodierprozess gegenüberstehen.
  • Gewöhnlich ist die Gesamtanzahl an Bits in dem digitalen Datenstrom im Wesentlichen geringer als die Gesamtanzahl an Bits, die dafür erforderlich ist, die Videobilder darzustellen, so dass eine Kompression erzielt wird. Es ist jedoch wichtig, zu erkennen, dass eine solche Kompression, wie beispielhaft durch die MPEG-Videokodierung erläutert, keineswegs frei von Verzerrung oder Artefakten ist. Der grundsätzliche Ursprung der Kompression von Artefakten ist, wie vorstehend erwähnt, der Quantisierungsprozess.
  • Das offenbarte System ist auf eine dynamische Anpassung des Quantisierungsgrads während der Kompression oder des Kodierprozesses gerichtet. Insbesondere wird eine Anpassung in Übereinstimmung mit von einem menschlichen Bediener vorgesehenen Befehlen ausgeführt. Die Anpassungen können auf Teile einer längeren Videosequenz oder auf die gesamte Videosequenz angewandt werden.
  • II. SYSTEMKOMPONENTEN
  • Nachstehend wird auf die Zeichnung Bezug genommen, in der gleiche Teile mit gleichen Bezugszeichen versehen sind. 1A zeigt ein Blockdiagramm mit der Systemarchitektur des Kodierers. Es sollte beachtet werden, dass der Videokodierprozess ein komplexer Prozess ist, der eine Anzahl an verschiedenen Vorrichtungen benötigt, die synchron arbeiten, um das Kodieren und Editieren ohne Unterbrechung oder Fehler zu erzielen. Die Audio- und Videokodierung kann jedoch auch getrennt ausgeführt werden, solange die geeigneten Zeitkodes verwendet werden. Obgleich in der 1A vier Arbeitsstationen dargestellt sind, arbeitet der Benutzer oder Bediener des Kodiersystems gewöhnlich nur mit einer Tastatur und einer Arbeitsstation. Die Arbeitsstationen umfassen herkömmliche, einem allgemeinen Zweck dienende Computerkomponenten, wie beispielsweise einen Prozessor, ein RAM, ein ROM, eine Netzwerkschnittstelle, eine Festplatte, eine Tastatur, einen Monitor und weitere herkömmliche Komponenten.
  • Eine Arbeitsstation 30 dient als die Systemsteuerungsstation, die in der bevorzugten Ausführungsform einer Sun SPARC20 Unix Arbeitsstation entspricht. Die Arbeitsstation 30 ist mit einem Graphikkonsolenanzeigenmonitor 31 so wie herkömmlichen Arbeitsstationseingabevorrichtungen, wie beispielsweise einer Tastatur 32 und einem Anzeigegerät 33, das einer Maus oder irgendeiner anderen Anzeigevorrichtung entspricht, ausgerüstet. Der Benutzer interagiert primär über eine graphische Benutzerschnittstelle (GUI), die auf der Konsolenanzeige 31 angezeigt ist, mit der Arbeitsstation 30.
  • Die Arbeitsstation 30 ist mit den anderen Arbeitsstationen 40, 10 und 20, die nachstehend beschrieben werden, verbunden und steuert diese. Die Arbeitsstation 30 kommuniziert ferner mit der Audioschnittstelleneinheit 72 und der digitalen Videoaufnahme- und Speichervorrichtung 60, die ebenso nachstehend beschrieben werden. Die Arbeitsstation 30 ist über eine serielle Schnittstelle, wie durch den Standard RS-232 der Electronic Industries Association (EIA) definiert, mit der Arbeitsstation 40 verbunden. Gleichermaßen ist die Arbeitsstation 30 über ein serielles RS-232 mit der Audioschnittstelleneinheit 72 verbunden. Die Verbindung zwischen der Arbeitsstation 30 und der digitalen Videoaufnahme- und Speichervorrichtung 60 erfolgt über eine S-Bus Schnittstelle allgemeiner Norm.
  • Mit der Arbeitsstation 40 ist ein Rahmen-Jogger 41 verbunden, um es dem Benutzer zu ermöglichen, das Video von einem der beiden VTRs 51 und 52 an der Stelle zu positionieren, an welcher das Editieren ausgeführt werden soll. Das System ist in der Lage, von einem Benutzer eingegebene Zeitkodes zu verwenden, um die Position des Videos zu steuern. Die Jog-Steuereinheit verbessert jedoch die Benutzerfreundlichkeit des Systems, indem sie die Verwendung eines Jog-Drehknopfes zur Positionierung des Videos ermöglicht. Die Arbeitsstation 30 steuert, ob das angezeigte Video auf dem Videoanzeigemonitor 61 von der digitalen Videoaufnahme- und Speichervorrichtung 60 und/oder der Aufnahme-VTR 52 kommt.
  • Die Videokodiervorrichtung 50 ist ein digitaler Videokodierer, der eine Kompression entsprechend dem MPEG-1-, MPEG-2- oder einem anderen Videokompressionsstandard ausführt. Ein handelsüblicher MPEG-1 Kodierer ist der Sony RTE-3000. Ein MPEG-2 Kodierer kann in Übereinstimmung mit der Lehre der am 27. Dezember eingereichten japanischen Patentanmeldung Nr. 6-326435 (JP-A-8-186 821) aufgebaut werden. Die Arbeitsstation 10 steuert die Videokodiervorrichtung 50 direkt über die S-Bus Schnittstelle allgemeiner Norm und empfängt Befehle von der Arbeitsstation 30 über eine Standardnetzwerkeinrichtung, wie beispielsweise ein Ethernet-Netzwerk. Während des Kodierprozesses unterstützt die Arbeitsstation 10 die Echtzeitausführung des Videokodiersteuerprogramms der Videokodiervorrichtung 50. In der bevorzugten Ausführungs form ist die Arbeitsstation 10 eine Sun SPARC20 Unix Arbeitsstation.
  • Die Arbeitsstation 10 spricht auf Befehle von der zentralen Arbeitsstation 30 an, um mit dem Kompressionsprozess zu beginnen. Während des Kompressionsprozesses steuert die Arbeitsstation 10 den Grad der auf bestimmte Bereiche des Videosignals angewandten Quantisierung dynamisch. Die bestimmten Berieche, für welche die Quantisierung geändert wird, erstreckt sich über räumliche und/oder zeitliche Bereiche. Die genaue Steuerung der Quantisierung wird nachstehend näher beschrieben.
  • Das in die Videokodiervorrichtung 50 eingegebene Video stammt von einer Kassette in dem Wiedergabe-VTR 51. Der Wiedergabe-VTR 51 ist ein Videoabspielgerät nach dem digitalen Videostandard ITU-R 601 (früher als CCIR 601 Videostandard bekannt). Dieser Standard kann sowohl auf NTSC- als auch auf PAL-Systeme angewandt werden. Es wird angemerkt, dass das Band in dem Wiedergabe-VTR 51 elektromagnetische Information beinhaltet, die verschiedene Bilder und Szenen darstellen, die über eine Video- oder eine Filmkamera aufgenommen oder von einem Computer erzeugt worden sind. Der Wiedergabe-VTR 51 arbeitet unter der Steuerung der Arbeitsstation 40. Das kodierte Ausgangssignal der Videokodiervorrichtung 50 wird zur Speicherung auf einer oder mehreren Festplatten 21 an eine Arbeitsstation 20 übertragen.
  • Zur Darstellung von Videodaten, die von der Videokodiervorrichtung 50 kodiert und ausgegeben worden sind, ist ein digitaler Videodekodierer, wie beispielsweise ein MPEG-2 Dekodierer erforderlich. Derzeit (Zeitpunkt dieser Anmeldung) weisen die realisierten Systeme jedoch keinen getrennten MPEG-2 Dekodierer auf, da solch ein Dekodierer während der frühen Entwicklungsstufen des Systems nicht leicht verfügbar gewesen ist. Folglich gibt die Videokodiervorrichtung 50 nicht einzig einen MPEG-2 Videodatenstrom an die Arbeitsstation 20, sondern es wird ebenso ein dekodiertes Videobild, welches den kodierten MPEG-2 Daten entspricht, von der Videokodiervorrichtung 50 an dem Aufnahme-VTR 52 ausgegeben. Der Aufnahme-VTR 52 ist über den digitalen Videosignalverbinder allgemeiner Norm, der als die D1-Schnittstelle bekannt und von der Arbeitsstation 40 gesteuert wird, mit der Videokodiervorrichtung 50 verbunden. Sowohl der Wiedergabe-VTR 51 als auch der Aufnahme-VTr-52 sind in geeigneter Weise unter Verwendung von fachgerechten Ampex DCT Videorekordern realisiert.
  • Das Audiosignal wird beispielsweise in das Dolby AC-3 Format oder alternativ in ein MPEG-2 konformes Format gemäß dem ISO/IEC 13818-3 Standard, kodiert und komprimiert. Die Audioquellen für das Kodierungssystem sind vier digitale Tonband-(DAT)-geräte 71a, 71b, 71c und 71d. Die Studioqualität aufweisenden DAT-Spieler sind handelübliche Sony-Geräte. Die DAT-Geräte 71a-71d sind über das Industriestandardprotokoll RS-422 mit der Arbeitsstation 40 verbunden und werden über das Industriestandardprotokoll RS-422 von der Arbeitsstation 40 angesteuert. Die von den DAT-Geräten 71a-71d ausgegebenen Audiosignale werden an die Audiokodierer 70a, 70b, 70c bzw. 70d gegeben. Diese Audiokodierer sind mit Hilfe der handelsüblichen DOLBY AC-3 DP 525 Kodierer realisiert und werden von der Audioschnittstelleneinheit 72 angesteuert. Die Audiokodierung beginnt und endet gewöhnlich an bestimmten Zeitkodes. Die Audioschnittstelleneinheit 72 empfängt von der Arbeitsstation 30 Befehle, wie beispielsweise Kodierstart- und Kodierendzeitkodes, über die RS-232 Verbindung zwischen beiden. Ferner multiplext die Audioschnittstelleneinheit 72 die verschiedenen digital komprimierten Audiodaten in einen einzigen digitalen Datenstrom, der an die Arbeitsstation 20 übertragen wird. Die Arbeitsstation 20 demultiplext den empfangenen digitalen Audiodatenstrom in mehrere Dateien, welche den komprimierten digitalen Daten entsprechen, die von den Audiokodiervorrichtungen 70 ausgegeben wurden. Die Videokodiervorrichtung 50 stellt auf der Grundlage ihres Videosynchronisierungssignals an die Audioschnittstelleneinheit 72 ein Synchronisierungssignal bereit. Das sync-Signal ermöglicht, dass der Audiodatenstrom mit dem von der Videokodiervorrichtung 50 ausgegebenen Videodatenstrom synchronisiert wird.
  • Die Arbeitsstation 30 ist dazu ausgelegt, die Audioschnittstelleneinheit 72 dazu zu veranlassen, eine Kopie der Audiodaten von irgendeiner der verschiedenen Audiokodiervorrichtungen 701-70d an den Audiodekodierer 73 zu geben. Der Audiodekodierer 73 dekodiert das komprimierte Audiosignal derart, dass ein Benutzer das Audiosignal über einen Lautsprecher 75 hören kann. Der menschliche Benutzer wählt durch eine Interaktion mit der graphischen Benutzerschnittstelle auf der Konsolenanzeige 31 über die Tastatur 32 oder das Zeigegerät 33 die zu überwachende Audiokodiervorrichtung. Die Audioschnittstelleneinheit 72 ist als Hardware aufgebaut, die dazu ausgelegt ist, die vorstehend beschriebenen Funktionen auszuführen. Diese Hardware entspricht einem oder mehreren programmierten Mikroprozessoren und/oder herkömmlichen Schaltungselementen, die angeordnet sind, um die offenbarten Funktionen zu erzielen.
  • Die Arbeitsstation 40 entspricht der Studioeinrichtungssteuerungsstation und gibt geeignete Befehle zur Steuerung von sowohl dem Wiedergabe-Videorekorder 51 als auch den digitalen Tonbandgeräten 71a-71d zusammen mit dem Aufnahme-Videorekorder 52. Die Arbeitsstation 40 veranlasst ebenso die digitale Videoaufnahme- und Speichervorrichtung 60 dazu, an einem geeigneten Zeitpunkt mit der Aufnahme eines Videos zu beginnen. Die Verbindungen zwischen der Arbeitsstation 40 und den verschiedenen Video- und Tonbandlaufwerken erfolgt über das Industriestandardprotokoll RS-422. Dieses Protokoll ermöglicht es jedem Tonbandlaufwerk, die Arbeitsstation 40 über seine momentane Tonbandlage in einem Standardzeitkodeformat zu informieren. Die Arbeitsstation 40 verwendet solch eine Information, um die verschiedenen Tonbandlaufwerke derart zu synchronisieren, dass die Video- und Audioinformation korrekt abgespielt und aufgenommen wird. In der vorliegenden Ausführungsform entspricht die Arbeitsstation 40 einem gewöhnlichen IBM-kompatiblen PC, auf dem DOS und Ensemble Pro läuft, wobei Ensemble Pro ein handelsübliches Computerprogramm der Editierung Technologies Corporation, Moorpark, Kalifornien, ist. Es wird angemerkt, dass das Programm Ensemble Pro geringfügig modifiziert wurde, so dass die Arbeitsstation 30 über einen RS-232 Kommunikationsanschluss mit dem auf der Arbeitsstation 40 laufenden Programm Ensemble Pro kommunizieren kann. Diese Modifikation ist über die Editing Technologies Corporation käuflich erhältlich oder kann ohne größeren Aufwand von einem auf diesem Gebiet vertrauten Fachmann vorgenommen werden.
  • Eine digitale Videoaufnahme- und Speichervorrichtung 60 erfüllt zwei Funktionen innerhalb des Kodiersystems; erstens verwendet diese Vorrichtung ihr Aufnahme- und Speichervermögen, um einen geeigneten "Vorher-Nachher"-Vergleich der manuellen Editierung vorzusehen, die auf das Videosignal angewandt wurde, und zweitens stellt sie eine graphische Überlagerungseigenschaft für die Videoanzeige bereit. Diese graphische Überlagerungseigenschaft wird beispielsweise während der räumlichen Editierphase verwendet, um es dem menschlichen Benutzer zu ermöglichen, die Interessenbereiche zu definieren, in de nen die Quantisierung und folglich die Anzahl an zugeordneten Bits geändert wird.
  • In der vorliegenden Erfindung ist die digitale Videoaufnahme- und Speichervorrichtung als handelsübliches auf DRAM basierendes Videoprodukt VS6000 von Viewgraphics, Mountain View, Kalifornien, realisiert. Der digitale Videoeingang dieser Vorrichtung erfolgt über den Industriestandard D1 mit einer ITU-R-601 (früher CCIR 601) Bildauflösung. Der Ausgang der digitalen Videoaufnahme- und Speichervorrichtung 60 ist über drei getrennte Analogsignale mit den Farbkomponenten Rot, Grün und Blau des Videosignals mit dem Videoanzeigemonitor 61 verbunden. Die Graphiküberlagerungsinformation wird von der digitalen Videoaufnahme- und Speichervorrichtung 60 verarbeitet, und zwar vor der Erzeugung des endgültigen Analogsignals, das von der digitalen Videoaufnahme- und Speichervorrichtung 60 ausgegeben und folglich zusammen mit den anderen Videodaten für den menschlichen Benutzer auf dem Videoanzeigemonitor 61 erkennbar sein wird.
  • Die unter der Unix-Umgebung laufende Arbeitsstation 30 bildet deren graphischen Fenster unter Verwendung der digitalen Videoaufnahme- und Speichervorrichtung 60 auf de, Videoanzeigemonitor 61 ab. Hierdurch kann der menschliche Benutzer graphische Operation (z.B. Rechtecke zeichnen) auf der graphischen Überlagerungsebene der auf dem Monitor 61 angezeigten Anzeige vornehmen. Die Vorrichtung 60 stellt die Überlagerungsfunktion bereit. Die Überlagerung wird in einem Videospeicher ausgeführt, und zwar bevor die Information in dem Speicher in ein analoges Videosignal gewandelt wird, welches den Monitor ansteuert. In dem von dem System verwendeten VS6000 gibt es eine 8-bit-Speicherebene am oberen Ende des Videospeichers. Auf dieser 8-bit-Ebene kann der Computer Graphiken oder Text beliebiger Farbe zeichnen. Eine der "Farben" auf dieser 8-bit-Ebene ist die transparente Farbe. Jedes Pixel auf die Überlagerungsebene, welches die transparente Farbe aufweist, wird den Wert des Videospeichers darunter annehmen. Gewöhnlich wird der größte Teil der Überlagerungsebene mit der transparenten Farbe ausgefüllt, neben graphischen Darstellungen (z.B. Linien, Text usw.), die keine transparenten Farben verwenden. Folglich wird ein Anzeigespeicher gebildet, der aus sowohl dem Videospeicher als auch dem Überlagerungsgraphikspeicher besteht. Letztendlich wird der Anzeigespeicher in ein analoges Signal zum Anzeigen auf dem Monitor 61 gewandelt. Der menschliche Benutzer verwendet gewöhnlich das Zeigegerät 33 zusammen mit der Tastatur 32, um derartige graphische Operationen und Bearbeitungen der so erzeugten graphischen Objekte auszuführen.
  • Eine Arbeitsstation 20 empfängt digitale Datenströme von der Videokodiervorrichtung 50 sowie der Audioschnittstelleneinheit 72. Die Arbeitsstation 20 ist über eine Ethernet-Verbindung mit der Arbeitsstation 30 verbunden. Die Arbeitsstation 20 ist ferner über die Industriestandard-S-Bus-Schnittstelle mit der Videokodiervorrichtung 50 und der Audioschnittstelleneinheit 72 verbunden. Die empfangenen digitalen Datenströme werden als einzelne Dateien auf einer oder mehreren Festplatten 21 gespeichert. Einzelne Direkt-Speicherzugriffs-(DMA)-Karten werden bei der Übertragung der aufgenommenen digitalen Datenströme an die Festplatten 21 verwendet. Für lange Videosequenzen, die große Mengen an digitalen Daten ergeben, können die Festplatten 21 unter Verwendung handelsüblicher Festplatten, wie beispielsweise der SPARCstorage Array X655A/G5 von Sun Microsystems, realisiert werden. Die Arbeitsstation 20 ist in dieser Ausführungsform ein handelsüblicher SPARCserver 1000 von Sun Microsystems.
  • Die Arbeitsstation 20 formatiert ferner die den komprimierten Video- und Audiodaten entsprechenden Dateien in eine einzige formatierte Datei, die zum Transport oder zur Übertragung zu der Dekodierungsvorrichtung geeignet ist. Das endgültige Medium ist vorzugsweise diskgestützt, wobei die Formatierung dann in Übereinstimmung mit dem entsprechenden Diskformat vorgenommen wird. Üblicherweise wird die formatierte Datei mit Hilfe irgendeines digitalen Zwischenspeichermittel, wie beispielsweise eines digitalen Tonbands, an eine Einrichtung gegeben, in welcher die Übertragung zu dem endgültigen Übertragungsmedium oder den endgültigen Übertragungsmedien stattfindet. Die in der Zeichnung gezeigten digitalen Speichervorrichtungen 22 dienen solch einem Zweck. In der vorliegenden Ausführungsform weisen die digitalen Speichervorrichtungen 22 ein handelsübliches 8mm Exabyte Tonbandlaufwerk auf. Die Schnittstelle der digitalen Speichervorrichtung 22 ist die Industriestandard-Kleinrechnersystemschnittstelle (SCSI).
  • Es ist bekannt, dass mehrere SCSI-Vorrichtungen an den gleichen SCSI-Bus angeschlossen werden können. Folglich können die digitalen Speichervorrichtungen 22 weitere SCSI-Vorrichtungen, wie beispielsweise das handelsübliche digitale lineare Tonband-(DLT)-Laufwerk, ein magnetooptisches (MO) Plattenlaufwerk oder ein Diskettenlaufwerk aufweisen. Diese Konfigurationen können leicht angepasst werden und dienen dazu, einen flexiblen Aufnahmemechanismus für Hilfsdaten bereitzustellen, die gegebenenfalls vor oder während der Formatierungsstufe benötigt werden. Beispielsweise ist bei der Filmproduktion oftmals Untertitelinformation auf einem Medium verfügbar, das eine der vorstehend erwähnten SCSI-Vorrichtungen benötigt. In solchen Fällen werden die Hilfsdaten über in der Arbeitsstation 20 ausgeführte Software gelesen und derart bearbeitet, dass sie in den formatierten Dateien beinhal tet sind. Die Hilfsdaten können Untertiteldaten beinhalten, die das US-Close-Caption Format aufweisen. Die Hilfsdaten können irgendwelche gewünschten Daten, wie beispielsweise Programmkodes oder Nachschriftdaten, aufweisen.
  • 1B zeigt ein audiovisuelles Kodiersystem 98, welches dem in der 1A gezeigten System entspricht. In der 1B wird das an das Kodiersystem gegebene Videosignal von einer Kamera 80 und das Audiosignal von einem Mikrofon 82 geliefert. Ein die visuelle und mögliche Toninformation beinhaltender Film wird über die Übertragungsvorrichtung 88, die ein Licht zum Beleuchten des Films und einen Lichtdetektor zum Erfassen der Bilder des Film aufweist, zu dem Kodiersystem 98 übertragen. Die Information von den Eingabevorrichtungen 80, 82 und 88 wird in einem elektromagnetischen Format gespeichert, bevor sie von dem Kodiersystem 98, wie beispielsweise einem Audio- oder Videorekorder, kodiert wird. Die Ton- und Videobänder werden von dem in der 1A gezeigten System kodiert.
  • Der endgültige, von dem Kodiersystem erzeugte digitale Datenstrom wird an eine Einrichtung 90, die optische Disks presst, oder einen Brenner 84, der optische Disks beschreibt, gesendet oder über den Fernsehsender 86 an einen Fernsehempfänger oder einen Digitalempfänger übertragen. Das Pressen und Erzeugen von optischen Disks wird auf bekannte und handelsübliche Art und Weise unter Verwendung von beispielsweise einer Masterdisk ausgeführt. Die kodierte Information ist ebenso in Verbindung mit einem "Film-auf-Abruf-System" verwendbar. Der kodierte Datenstrom wird schließlich durch den Kodierprozessen entsprechende Dekodierprozesse dekodiert und die audiovisuelle Information auf einem Fernseher oder einem Monitor für den Benutzer angezeigt. Die Dekodiervorrich tungen weisen digitale Videodiskabspielgeräte auf, welche die kodierten Disks zum Anzeigen auf einem Fernseher oder Monitor dekodieren.
  • Aus der 1B ist ersichtlich, dass das Kodiersystem akustische Signale und Bilder darstellende elektrische Signale eingibt und die elektrischen Signale in ein neues Format wandelt, und dass die Signale schließlich dekodiert werden, um die ursprüngliche Information, welche kodiert worden ist, wiederherzustellen.
  • III. SYSTEMBETRIEB
  • 2 zeigt ein Ablaufdiagramm mit dem allgemeinen Betrieb des in der 1A gezeigten Systems. Das System durchläuft während seines Betriebszyklus, wie in der 2 gezeigt, verschiedene "Zustände". Die dunklen durchgezogenen Linien zeigen den normalen Betriebspfad, die durchgezogenen Linien einen Unterbrechungsausgangspfad und die gestrichelten Linien einen Überbrückungspfad.
  • Die erste Operation des Systems tritt in dem Konfigurationszustand 100 auf. Dieser Schritt ermöglicht die Eingabe zu bestimmender Parameter vor dem Eintritt in den Kompressionszustand 102. In dem Kompressionszustand 102 wird ein auf einem Band in dem Wiedergabe-VTR 51 gespeichertes Videobild von der Videokodiervorrichtung 50 in ein digital komprimiertes Format kodiert.
  • Auf den Kompressionszustand 102 folgende kann der Benutzerden Kompressionsprozess auf der Grundlage der Bildqualität der vorher komprimierten Daten in dem Editierzustand 104 manuell editieren. Hierdurch kann der Benutzer die Bildqualität in Bereichen eines Videorahmens oder über die Zeit heraufsetzen oder herabsetzen. Es sollte beachtet werden, dass der Term "Editieren" nicht bedeutet, dass die Szenen selbst zu dem Bilddatenstrom hinzugefügt oder von dem Bilddatenstrom entfernt werden. In der vorliegenden Anmeldung bedeutet der Term "Editieren" eine Änderung der Quantisierung und folglich der Qualität des Videos. Nach der Bildbearbeitung in dem Editierzustand 104 ist es erforderlich, den Kompressionsvorgang erneut in dem Kompressionszustand 102 auszuführen, um die Daten in Übereinstimmung mit den neuen, vom Benutzer festgelegten Parametern zu kodieren.
  • Wenn der Benutzer mit der editierten Form des Videos zufrieden ist, wird sämtliche Information, einschließlich des Audiosignals, des Videosignals und weiterer Information, wie beispielsweise Untertitel, zusammen in dem Formatierzustand 106 in einem gewünschten Format kombiniert. Der Endzustand 108 löscht alle temporären Dateien, und der Prozess endet in dem Ausgangszustand 110. Die einzelnen, in der 2 gezeigten Zustände werden nachstehend näher unter Bezugnahme auf die 3 bis 6 beschrieben.
  • 3 zeigt die in dem Konfigurationszustand 100 ausgeführten Schritte. Schritt 120 beginnt mit dem Konfigurationszustand und Schritt 122 initialisiert das System. Dieser Schritt startet die Ausführung der in der Arbeitsstation 30 beinhalteten Systemsteuerungssoftware und anderer Programme, wie beispielsweise eines Programms für eine graphische Benutzerschnittstelle (GUI), das für die auf der Konsolenanzeige 31 gezeigte Benutzerschnittstelle verantwortlich ist und über die Tastatur 32 und das Zeigegerät 33 eingegebene Parameter aufweist. Ferner fragt die Systemsteuerungssoftware während des Schritts 122 in der Arbeitsstation 30 weitere Vorrichtungen, einschließlich der verfügbaren Vorrichtungen des Systems, zur Bestimmung des Systemzustands ab.
  • Schritt 124 zeigt über die GUI Information für den Benutzer an. Es werden eine Begrüßungsnachricht, das System betreffende Information für den Kodierprozess verwendete Parameter und das Vorhandensein irgendwelcher vorher kodierten Dateien angezeigt. Die angezeigte Systeminformation beinhaltet die mit dem System verbundenen Vorrichtungen, einschließlich der Audiokodierer, VTRs, Tonbandlaufwerke sowie deren Konfiguration. Wenn das System vorher kodierte Dateien aufweist, wird Information für den Benutzer angezeigt, welche die zur Erzeugung des Films verwendeten Audio- und Videokodierparameter beschreibt.
  • Anschließend gibt Schritt 126 Information von dem Benutzer, wie beispielsweise einen Befehl zum Starten der Kodierung mit Hilfe von Standard- oder benutzerdefinierten Systemparametern, irgendwelche Änderungen der Systemparameter oder eine Bestätigung, dass die gewählten Parameter annehmbar sind, ein. Der Benutzer gibt ferner die Start- und die Endzeitpunktkodes für den Kodiervorgang ein.
  • Anschließend verarbeitet Schritt 128 die Eingangsdaten, indem er die Eingangsdaten von der graphischen Benutzerschnittstelle an die Systemsteuerungssoftware überträgt, um sie für den Kodier- und Kompressionsvorgang vorzubereiten. Der Konfigurationszustand endet in Schritt 130.
  • 4 zeigt den in dem Kompressionszustand 102 ausgeführten Prozess. Entsprechend des normalen Betriebsablaufs hat der Benutzer bereits ein Video und irgendeine beigefügte Audiosequenz, die in dem Konfigurationszustand zu komprimieren sind, bestimmt. Der Benutzer muss dann einen Befehl an das System gegen, so dass dieses ein au tomatischen oder Autokompressionsverfahren ausführt. Die Videokompression während des Autokompressionsverfahrens ermöglicht es dem Benutzer nicht, den dynamischen Quantisierungsprozess über die Zeit oder innerhalb eines Videorahmens zu steuern. Sie ist als Anfangskompressionslauf gedacht, bei welcher die Kodierungsentscheidungen auf der Grundlage eines von der Videokodiervorrichtung 50 berechneten Zielmaßes getroffen werden. Wenn die Autokompression bereits ausgeführt worden ist, kann der Benutzer die Quantisierung in einem Editierkompressionsmodus manuell entweder räumlich (über einen Rahmen oder ein Video) oder zeitlich (über eine Videosequenz) anpassen.
  • In dem Kompressionszustand auf den Schritt 140 folgend bereitet der Schritt 142 den Kompressionsvorgang vor. Bei diesem Vorgang werden die Parameter für dem Kompressionsprozess, wie beispielsweise die Zeitkodes des Videos und irgendwelche begleitenden Audiosignale, die zu komprimieren sind, zusammen mit den Kompressionsparametern von der Arbeitsstation 30 über die Arbeitsstation 10 zu der Videokodiervorrichtung 50 heruntergeladen.
  • Anschließend bestimmt der Schritt 144 die Art der gewünschten Kompression. Die erste Zeitinformation wird komprimiert, wobei der Kompressionsprozess automatisch und ohne Benutzereinwirkung ausgeführt wird. Schritt 146 bereitet den Autokompressionsprozess vor. Während dieser Vorbereitung bestimmt die Arbeitsstation 30, welcher der digitalen Tonbandabspielgeräte 71a-71d und der zugehörigen Audiosignalkodiervorrichtungen 701-70d verwendet werden sollen. Ferner veranlasst die Arbeitsstation 30 die Arbeitsstation 20 dazu, die Bitdatenstromaufnahme von dem Ausgang der Videokodiervorrichtung 50 und der Audiokodierer 80a-70d über die Audioschnittstelleneinheit 72 vorzubereiten. Ferner werden der Wiedergabe-VTR 51, der Aufnahme-VTR 52 und die DAT-Spieler 71a-71d auf die geeig nete Startposition der Bänder gespult. Anschließend meldet die Arbeitsstation 40 dem Wiedergabe-Videorekorder 51, dem Aufnahme-Videorekorder 52 und den DAT-Spielern 71a-71d in Schritt 148, dass sie mit dem Spulen beginnen sollen. Anschließend kodiert der Schritt 150 die Videodaten in Übereinstimmung mit dem gewünschten Format, wie beispielsweise einem MPEG-1 oder MPEG-2 Format, unter Verwendung der Videokodiervorrichtung 50. Ferner werden die Audiodaten in Übereinstimmung mit dem gewünschten Format, wie beispielsweise dem Dolby AC-3 Format, kodiert. Es ist erforderlich, Logdateien zu erzeugen, die später bei dem manuellen Editierprozess helfen. Die Logdateien zeigen die Parameter der kodierten Videodaten an, die benötigt werden, um zu einem späteren Zeitpunkt die Videodaten zu editieren. Der Kodierprozess wird in Schritt 160 gestoppt, wenn der geeignete Zeitkode erreicht ist. Dieser Zeitkode kann das Ende der zu kodierenden Information oder ein von einem Benutzer bestimmter Zeitpunkt sein, der nicht dem Ende der Videosequenz entspricht.
  • Wenn Schritt 144 bestimmt, dass der Autokompressionsprozess bereits ausgeführt worden ist, und dass ein Benutzer es wünscht, die Bildqualität von einem oder mehreren Videorahmen unter Verwendung der während des Editierzustands bestimmten Parameter manuell zu ändern, wie es nachstehend unter Bezugnahme auf die 5 beschrieben wird, bestimmt Schritt 144, dass der Editierkompressionsvorgang auszuführen ist. Schritt 152 bereitet den Editierkompressionsvorgang vor, der ein Spielen des Wiedergabe-VTRs 51 auf den gewünschten Startpunkt beinhaltet, welcher dem Punkt entspricht, an welchem das manuelle Editieren beginnt. Ferner wird die Audioeinrichtung deaktiviert, da es nicht mehr erforderlich ist, die Audioinformation zu ändern, wenn sie einmal in dem Autokompressionsvorgang kodiert wurde. Anschließend spult Schritt 154 den Wiedergabe-VTR 51 und den Aufnahme-VTR 52.
  • Anschließend beginnt der Schritt 156 damit, die Videodaten in Übereinstimmung mit den Parametern, die von dem Benutzer in dem in 5 beschriebenen Editierzustand bestimmt wurden, zu kodieren. Die Editierkompression wird in Schritt 160 beendet, wenn der Endzeitkode erreicht wird. Schritt 162 zeigt eine Nachricht für den Benutzer, dass die Kompression und die Kodierung abgeschlossen ist, woraufhin der Prozess in Schritt 164 endet.
  • 5 zeigt den in dem Editierzustand 104 ausgeführten Prozess. Das Editieren, auf welches Bezug genommen wird, ist gemäß vorstehender Beschreibung kein herkömmliches Editieren eines Videos, bei dem Szenen innerhalb eine Videosequenz entfernt, gekürzt oder innerhalb bewegt werden; der Editierzustand in der vorliegenden Offenbarung bezieht sich auf das Ändern der Qualität eines Abschnitts oder einer Zeitsequenz des Videos, indem die Quantisierung des Videos manuell eingestellt wird.
  • Nach dem Starten des Editierzustands in Schritt 170, fragt Schritt 172 einen Benutzer, ob dieser es wünscht, das Video manuell über eine Änderung der Bitzuordnung des kodierten Videos zu editieren. Wünscht der Benutzer es nicht, die Bitzuordnung zu ändern, endet der Prozess in Schritt 188. Wünscht der Benutzer es, die Bitzuordnung zu ändern, bestimmt der Benutzer das zu editierende Videosegment in Schritt 174. Dies wird ausgeführt, indem eine Zeitspanne des Videos, während der die Bildqualität geändert werden soll, gewählt wird. Anschließend bestimmt Schritt 176, ob der Benutzer eine räumliche oder eine zeitliche Editierung wünscht. Bei der räumlichen Editierung wird die Quantisierung oder Zuordnung der Bits innerhalb eines Videorahmens geändert, während die Quantisierung oder Zuordnung der Bist bei der zeitlichen Editierung über eine Zeitspanne geändert wird. Wenn der Benutzer die räumliche Editierung wünscht, schreitet der Ablauf zu Schritt 178 voran, der Bereiche innerhalb eines zu editierenden Rahmens eingibt. Ebenso wird der relative Grad der anzuwendenden Änderung eingegeben. Bei der vorliegenden Erfindung wird eine ganzzahlige Skalierung von –5 bis +5, einschließlich der Zahl Null, verwendet, um den relativen Änderungsbetrag anzuzeigen. Ein Benutzer markiert einen Bereich des Videos mit der Tastatur 32 und/oder dem Zeigegerät 33 und bestimmt eine der ganzen Zahlen zwischen einschließlich –5 und +5. Es ist ferner möglich, dass der Benutzer anzeigt, dass der vorher eingestellt Quantisierungspegel für einen Bereich nicht geändert werden soll. Wenn der Benutzer beispielsweise eine erhöhte Bitzuordnung für andere Bereiche für einen bestimmten Bereich wünscht, ist es nicht erforderlich, dass die Bitzuordnung für andere Bereich herabgesetzt werden muss. Wenn der Benutzer einen Bereich auf nicht veränderbar setzt (nachstehend auch als geschützter Bereich bezeichnet), so werden die benötigten Bits für den Bereich mit der verbesserten Qualität nicht aus dem geschützten Bereich genommen.
  • Wenn Schritt 176 bestimmt, dass der Benutzer eine zeitliche Editierung wünscht, so schreitet der Ablauf zu Schritt 180 voran, der eingibt, wie de Zeitspannen zu editieren sind. Gleich der räumlichen Editierung bestimmt der Benutzer für die zeitliche Editierung ganzzahlige Werte zwischen –5 und +5, welche den relativen Grad der auf eine bestimmte Videosequenz anzuwendenden Änderung anzeigen. Die Änderung wirkt sich auf die gesamte Zeitspanne aus, die gewählt worden ist.
  • Nachdem entweder die räumliche oder die zeitliche Editierung in Schritt 178 bzw. 180 ausgeführt worden ist, kodiert und komprimiert der Schritt 182 die Videoszene erneut in beispielsweise ein MPEG-2 Format, und zwar in Übereinstimmung mit den manuell eingegebenen Parametern. Die vorher kodierten Daten werden neben die neu editierten Daten auf dem Videoanzeigemonitor 61 angezeigt, so dass der Benutzer die geänderte Qualität dicht nebeneinander vergleichen kann.
  • Wenn der Benutzer das zu editierende Segment anzeigt, wird das Video von dem VTR 52 an die Speichervorrichtung 60 übertragen, wobei höchstens die Hälfte des gesamt verfügbaren Speichers in der Speichervorrichtung 60 genutzt wird. Das Segment entspricht dem "Vorher"-Segment. Während des Editierkompressionsprozesses wird der Bitdatenstrom von der Arbeitsstation 20 erfasst und als von der Hauptvideobitdatenstromdatei getrennt Diskdatei gespeichert. Die Hauptvideobitdatenstromdatei entspricht dem komprimierten Bitdatenstrom für den gesamten Film. Das editierkomprimierte Video wird in dem VTR 52 aufgenommen. Während des Kodierprozesses sieht der Benutzer das Bild gleichzeitig auf dem VTR 52 aufgenommene Bild. Sollte der Benutzer das Bild nach der Kodierung sehen wollen, so kann der VTR als Wiedergabegerät verwendet werden. Sollte der Benutzer einen "Vorher-Nachher"-Vergleich wünschen, so wird das entsprechende Segment anschließend von dem VTR 52 an die Speichervorrichtung 60 übertragen, wobei es die verbleibende Hälft des Gesamtspeichers der Vorrichtung 60 nutzt.
  • Auf diese Kodierung folgend bestimmt der Benutzer, ob das geänderte Video beibehalten werden soll. Sollte der Benutzer sich gegen das "Nach"-Segment entscheiden, so ist der Hauptbitdatenstrom nicht vorhanden und wird der editierkomprimierte Bitdatenstrom gelöscht.
  • Um es dem VTR 52 zu ermöglichen, den Hauptbitdatenstrom wiederzugeben, wird eine zusätzliche Autokompression mit dem editierten Segment ausgeführt, einzig zur Aufnahme des "Vor"-Segments. Alternativ kann die Vorrichtung 60 verwendet werden, um das "Vor"-Segment zurück zu dem VTR 52 zu übertragen. Sollte der Benutzer entscheiden, das "Nach"-Segment zu behalten, so muss die Hauptbitdatenstromdatei gemäß nachstehender Beschreibung aktualisiert werden, so dass sie die editierkomprimierte Bitdatenstromdatei aufweist.
  • Wenn der Benutzer in Schritt 184 bestimmt, dass das Video akzeptabel ist, werden die vorher kodierten Daten durch die neu kodierten Daten ersetzt. Dieser Schritt wird nachstehend in einem getrennten Abschnitt näher beschrieben. Nachdem vorher kodierten Daten durch die neu kodierten Daten ausgetauscht wurden, bestimmt der Schritt 192, ob der Benutzer eine weitere Editierung wünscht. Wird eine weitere Editierung gewünscht, so kehrt der Ablauf zurück zu Schritt 174. Wenn der Benutzer die Editierung des Videos abgeschlossen hat, schreitet der Prozess zu Schritt 188 voran, welcher den Editierzustand beendet.
  • Wenn der Benutzer in Schritt 184 bestimmt, dass das Video nicht akzeptabel ist, kann er den Editiervorgang in Schritt 186 verlassen, so dass die Editieränderungen nicht aufgenommen werden, oder das Video erneut editieren. Das Video wird erneut editiert, indem die Benutzer bei der Editierung neue Parameter wählen. Dies ist ebenso möglich, wenn der Benutzer es wünscht, ein neues Videosegment zu bestimmten, das editiert werden soll.
  • Wenn der Benutzer mit der Kompression (Autokompression alleine oder Autokompression in Verbindung mit Editierkompression) zufrieden ist, sind die einzelnen Dateien, einschließlich des komprimierten Videos, des komp rimierten Audiosignals und beliebiger weiterer Dateien, bereit, in das endgültige Format formatiert zu werden, und es wird in den Formatierzustand eingetreten. Die Hilfsdaten können Information, wie beispielsweise Untertitel, die in der endgültig formatierten Datei beinhaltet sein sollen, aufweisen. In dem in der 6 gezeigten Ablaufdiagramm liest die Arbeitsstation 20 nach dem Eintreten in den Formatierzustand in Schritt 200 dann, wenn der Benutzer entscheidet, die Hilfsdaten aufzunehmen, die Hilfsdaten aus den digitalen Speichervorrichtungen 22, die beispielsweise ein Diskette in einem Diskettenlaufwerk aufweisen. Anschließend kombiniert der Schritt 204 die Hilfsdaten mit dem kodierten Audio- und Videosignal, um die endgültig formatierte Datei zu erzeugen. Der von dem System erzeugte endgültige digitale Bitdatenstrom kann als 'Programmdatenstrom' gemäß dem Standard ISO/IEC 13818-1 aufgebaut sein. Alternativ kann der endgültige Bitdatenstrom ein beliebiges Format, wie beispielsweise das Direkt-Satelliten-DDS-Format, ein VBR-(variable Bitrate)-Format, das zur Verwendung auf einer optischen Disk geeignet ist, oder ein beliebiges anderes Format aufweisen. Da das kodierte Video und das kodierte Audiosignal gegebenenfalls getrennt voneinander gespeichert wird, ermöglicht das System, dass das gleiche kodierte Video/Audiosignal i verschiedene endgültige Formate kodiert werden kann. Dies wird entweder mit Hilfe eines Formatierers, der verschiedene Formate erzeugen kann, oder mit Hilfe von einzelnen Formatieren erzielt. Schritt 206 speichert die formatierte Datei auf der Disk 21.
  • In Schritt 208 wird in den Endzustand eingetreten, welcher die formatierte Datei in Schritt 210 auf ein Band in den digitalen Speichervorrichtungen 22 schreibt. Anschließend wird in Schritt 212 in den Ausgangszustand eingetreten, welcher die temporären Dateien, die nicht länger benötigt werden, löscht. Im Falle einer vorzeiti gen Abbruchanforderung, wie beispielsweise vor Beendigung des Kompressionsprozesses, wird ein Abbruchverfahren in der Arbeitsstation 30 ausgeführt, welches die Abspielgeräte für das Audio- und Videoband stoppt und ferner mögliche fehlerhafte Dateien löscht. Anschließend endet der Prozess in Schritt 216.
  • IV. SYSTEMALTERNATIVEN
  • Vorstehend sind die bevorzugten Systemkomponenten zusammen mit ihren Funktionsweisen beschrieben worden. Selbstverständlich kann eine alternative Hardware für die in den 1A und 1B offenbarte Hardware verwendet werden. Die Videokodiervorrichtung 50 ist vorzugsweise, wenn verfügbar, ein MPEG-2 Videokodierer. Es kann jedoch auch ein handelsüblicher Kodierer nach dem Standard ISO/IEC 11172, der auch als MPEG-1 Videokodierer bekannt ist, verwendet werden. Der MPEG-1 Kodierer muss in geeigneter Weise modifiziert werden, so dass das MPEG-1 Puffermanagementmodule von einer externen Quelle, wie beispielsweise der Arbeitsstation 10, angesteuert werden kann. Ferner muss ebenso die Eingangsvideounterstützung vergrößert werden, so dass sie Video mit einer Auflösung nach dem Standard ITU-R 601 (früher CCIR 601) mit einschließt. Derartige Modifikationen können von Fachleuten, die mit der digitalen Videokodierung vertraut sind, ohne größere Schwierigkeiten vorgenommen werden.
  • Obgleich in der 1A vier Tonbandgeräte und vier Audiokodierer abgebildet sind, kann das das Audiosystem auf einfache Art und Weise anders aufgebaut werden. Es kann beispielsweise ein handelsüblicher digitaler 8 mm Audiospieler anstelle der Mehrzahl an DAT-Spielern verwendet werden. Wenn ein einzelner digitaler TASCAM Audiospieler verwendet wird, wird nur ein einziges RS-422 Steuerungssignal von der Arbeitsstation 40 benötigt, wo bei acht getrennte Audiokanäle gleichzeitig unterstützt werden können. Die Audiokodierer müssen dann in der Lage sein, acht Audioeingangssignale gleichzeitig annehmen zu können, und die Audioschnittstelleneinheit 72 muss ferner modifiziert werden, um die Audiodatenströme, die von vier auf acht erhöht sind, aufnehmen zu können.
  • Alternativ zu der gleichzeitigen Audio- und Videokodierung kann die Audio- und Videokodierung an getrennten Zeitpunkten und/oder getrennten Orten ausgeführt und zu einem späteren Zeitpunkt in das endgültige Format kombiniert werden. Hierfür sind Zeitkodes erforderlich, die bereits bekannt sind, wie beispielsweise das SMPTE-(Society of Motion Picture and Television Engineers)-Zeitkodeformat. Die Zeitkodes werden von einem Videorekorder, einer Arbeitsstation oder einem einzelnen unabhängigen Zeitkodegenerator erzeugt.
  • Der Aufnahme-VTR 52 kann ausgelassen werden, wenn ein Videodekodierer verfügbar und mit der Arbeitsstation 20 verbunden ist. In diesem Fall würde das rekonstruierte Video aus den Diskdateien auf den Disks 21 und nicht von der Videokodiervorrichtung 50 während der Kompressionsphase erzeugt werden. Das Auslassen des Aufnahme-VTRs 52 würde das System deutlich kostengünstiger machen, sowohl bezüglich der Gerätekosten als auch bezüglich der Bandkosten.
  • Ferner kann die Fähigkeit, graphische Operationen auf der graphischen Überlagerungsebene des angezeigten Videos auszuführen, mit Hilfe der handelsüblichen X-Terminal Option auf der Konsolenanzeige unterstützt werden. Beispielsweise kann die Konsolenanzeige 31 durch einen X-Terminal ausgetauscht werden, der in der Lage ist, ein Video mit einem graphischen Überlagerungsfenster anzuzeigen. Ein handelsüblicher Multimedia-Anzeigeterminal, wie beispielsweise die HDSV View Station von Human Design Systems of King of Prussia, Pennsylvania, stellt die erforderlichen Eigenschaften bereit. Anschließend kann das Video des Videodekodierers zum Anzeigen und für manuelle Editierbereichsbestimmungsoperationen an den X-Terminal gegeben werden. Das Profiqualität aufweisende Video des Videodekodierers sollte jedoch auf einem professionellen Monitor, wie beispielsweise dem in der 1A gezeigten Monitor 61 gezeigt werden, um es dem menschlichen Benutzer zu ermöglichen, die Qualität des rekonstruierten Videosignals beurteilen zu können.
  • V. VERRINGERUNG DER ANZAHL AN AUDIOKODIERERN BEI GLEICH BLEIBENDER OPTIMALER KODIEREFFIZIENZ
  • 1A zeigt, wie vorstehend beschrieben, ein Kodiersystem mit einer Multipassvideokodiervorrichtung 50 und vier Einpassaudiokodierern 70a, 70b, 70c und 70d. Der Wiedergabe-VTR 51 liefert das zu kodierende Videosignal an die Videokodiervorrichtung 50, und die digitalen Tonband-(DAT)-Spieler 71a-71d liefern die zu kodierenden Audiosignale an die entsprechenden Einpassaudiokodierer 70a-70d.
  • Die bevorzugte Ausführungsform der Erfindung kodiert acht Audiotracks in dem endgültig formatierten audiovisuellen Datenstrom. Jeder Audiotrack weist einen oder mehrere Tonkanäle auf. Ein Audiotrack kann beispielsweise linke und rechte Kanäle aufweisen, obgleich die Audiotracks Audiosignale in einer anderen Anordnung aufweisen können. 7 zeigt die Art und Weise der Bestimmung der Anzahl an Audiokodierern zum Ausführen der effizientesten audiovisuellen Kodierung und die Art und Weise zum Ausführen dieser audiovisuellen Kodierung. In der 7 bestimmt der Schritt 240 nach Beginn des Ablaufs die Anzahl P an für die Videokodierung erforder lichen Durchgängen P. Zur Kodierung des Videos in ein MPEG Format sind gewöhnlich zwei oder mehr als zwei Durchgänge erforderlich, um das Video zu kodieren. Bei der vorliegenden Erfindung liegt die bevorzugte Anzahl an Durchgängen bei zwei, wobei ebenso drei oder mehr als drei Durchgänge verwendet werden können. Anschließend bestimmt Schritt 242 die Anzahl T an zu kodierenden Audiotracks. Bei der vorliegenden Erfindung liegt die Anzahl an Audiotracks vorzugsweise bei acht, obgleich eine von acht verschiedene Anzahl an Audiotracks kodiert werden kann. Anschließend berechnet Schritt 244 die Anzahl AE an Einpasskodieren, die zum Ausführen der effizientesten audiovisuellen Kodierung benötigt werden. Die Anzahl an Audiokodierern unumgänglich gleich der Anzahl an zu kodierenden Audiotracks geteilt durch die Anzahl an für die Videokodierung erforderlichen Durchgänge. In der bevorzugten Ausführungsform entsprechen acht Audiotracks geteilt durch zwei Durchgänge für den Kodierer vier erforderlichen Audiokodierern. Wenn die berechnete Anzahl an Audiokodierern keine ganze Zahl ist, ist es erforderlich, die berechnete Anzahl an Audiokodierern auf eine ganze Zahl aufzurunden. Wenn beispielsweise nur sieben Audiotracks für einen Zweipassvideokodierer zu kodieren sind, wird 7/2 = 3.5 auf die nächst höhere ganze Zahl 4 aufgerundet. Während des von diesem System ausgeführten Kodierprozesses nutzt ein Videodurchgang nur drei der Audiokodierer, während der andere Videodurchgang alle vier Audiokodierer nutzt. Es sollte beachtet werden, dass die Schritte 240 bis 244 nur bei der ersten Gestaltung des System vorgenommen werden müssen, und dass es nicht erforderlich ist, die Anzahl der Einpassaudiokodierer jedes Mal zu berechnen, wenn eine audiovisuelle Arbeit kodiert werden soll. Ferner werden die Schritte 240, 242 und 244 entweder von einem Computer, wie beispielsweise der Arbeitsstation 30 computer-/maschinenimplementiert oder von einem Benutzer oder Entwickler des audiovisuellen Kodiersystems bestimmt.
  • Nachdem die Anzahl an Audiokodierern bestimmt und das audiovisuelle Kodiersystem aufgebaut worden ist, kann der audiovisuelle Kodierprozess beginnen. Schritt 246 setzt ZÄHLER gleich eins (1). ZÄHLER ist eine Variable, die zum Zählen jedes Durchgangs des Videokodiersystems verwendet wird. Anschließend führt Schritt 248 den ersten Videokodierdurchgang, während er eine Einpasskodierung bezüglich einiger, jedoch nicht aller Audiotracks ausführt. Sind beispielsweise acht Audiotracks und ein Zweipassvideokodierer vorhanden, so können vier Audiokodierer während des ersten Durchgangs verwendet werden. Anschließend inkrementiert Schritt 252 den ZÄHLER um eins. Schritt 252 führt den nächsten Videokodierdurchgang aus, während er die Einpassaudiokodierung der nicht kodierten Audiotracks mit Hilfe der gleichen Audiokodierer, die in Schritt 248 verwendet wurden, ausführt. Beispielsweise können die vier während des zweiten Videokodierdurchgangs verwendeten Audiokodierer in Schritt 248 die Audiotracks 5 bis acht kodieren. Anschließend bestimmt Schritt 254, ob der ZÄHLER gleich der Anzahl P an erforderlichen Videokodierdurchgängen ist. In der bevorzugten Ausführungsform gibt es einzig zwei Videokodierdurchgänge, und folglich würde der Prozess enden. Andernfalls kehrt der Ablauf zurück, um die Schleife der Schritt 250, 252 und 254 auszuführen.
  • Die Erfindung ist nicht auf einen Zweipasskodierer für eine audiovisuelle Arbeit mit acht Audiotracks beschränkt. Beispielsweise kann ein Dreipassvideokodierer mit sechs Audiotracks verwendet werden. In solch einer Situation liegt die effizienteste Anzahl an Audiokodierern bei drei (6/2 = 3). Wenn ein Zweipasskodierer verwendet wird und insgesamt sechs Audiotracks zu kodieren sind, liegt die effizienteste Anzahl an Audiokodierern bei drei. Alternativ kann ein Dreipassvideokodierer in einem System verwendet werden, in welchem fünf Audiotracks zu kodieren sind. Dieses alternative System benötigt zwei Einpassaudiokodierer, wobei einer der Videokodierdurchgänge arbeitet, während nur einer der Audiokodierer verwendet wird, und wobei die anderen beiden Videokodierdurchgänge auftreten, während beide der Audiokodierer verwendet werden. Fachleuten wird aus der hierin offenbarten Lehre ersichtlich sein, andere Kombinationen aus Videokodierern und Anzahl an Audiotracks möglich sind.
  • Ein wichtiger Aspekt der vorliegenden Erfindung zum Erreichen einer maximalen Effizienz liegt darin, dass die Audiokodierung stets ausgeführt wird, wenn ein Durchgang der Videokodierung stattfindet, und dass ein Durchgang der Videokodierung stets ausgeführt wird, wenn die Audiokodierung stattfindet. Bei dieser Anordnung werden stets zumindest einige der Audiokodierer während jedes Durchgangs der Videokodieroperation verwendet. Soll dann, wenn die Anzahl an Audiotracks nicht gerade durch die Anzahl an Audiokodierern teilbar ist (d.h. es ist ein Rest vorhanden, wenn die Anzahl an zu kodierenden Audiotracks durch die Anzahl an Videodurchgängen geteilt wird), während des gesamtem Prozesses eine maximale Effizienz erreicht werden, wird es eine Anzahl an ungenutzten Videokodierern geben, die gleich der Anzahl an Videodurchgängen minus dem Rest ist. Für beispielsweise einen Dreipassvideokodierer und vier Audiotracks sind zwei Audiokodierer erforderlich, und es entsteht ein Rest von 1 (z.B. 4/3 = 1 mit einem Rest von 1). Folglich kann es dann, wenn eine maximale Effizienz erreicht werden und die Audiokodierung gleichzeitig mit der Dreipassvideokodierung abgeschlossen werden soll, nicht mehr als zwei (z.B. 3 Videodurchgänge minus einem Rest von 1 ist gleich 2) Male geben, bei denen die Audiokodierer nicht genutzt werden. Die zwei Male, bei denen die Kodierer nicht genutzt werden, können in demselben Durchgang auftreten (zwei verschiedene Audiokodierer sind in dem gleichen Videokodierdurchgang ungenutzt), was bedeuten würde, dass die anderen zwei Videokodierdurchgänge in dem obigen Beispiel jeweils alle der Audiokodierer nutzen, oder dass es zwei Videokodierdurchgänge mit einem ungenutzten Audiokodierer gibt. In diesen zwei Durchgängen können die gleichen oder verschiedene Audiokodierer nicht genutzt werden.
  • XI. LOGDATEIEN ZUM SPEICHERN VON INFORMATION DES KODIERTEN VIDEOS, UND LOGINTERPRETIERERHILFSMITTEL FÜR EINEN ZUGRIFF AUF DIE LOGDATEIEN UND DAS KODIERTE VIDEO
  • Das offenbarte Kodiersystem kodiert zunächst Video in ein komprimiertes digitales Format, wie beispielsweise MPEG-2, MPEG-1 oder ein anderes digitales Videokodierformat. Diese Kodierung wird vorstehen in Abschnitt II in Bezug auf die Systemkomponenten und in Abschnitt III in Bezug auf den allgemeinen Systembetrieb beschrieben. Die kodierten Videodaten werden anschließend in einem digitalen Format auf beispielsweise einer Festplatte gespeichert.
  • Während des digitalen Videokodierprozesses werden Statistiken und andere Information des Videos erzeugt und in Logdateien gespeichert. Fachleuten, die mit der MPEG-Kodierung vertraut sind, kennt die Art der Statistiken und der Information, welche das Video beschreibt, und weiß, wie diese Statistiken und die Information zu erzeugen sind. In einem herkömmlichen Kodiersystem werden Information und Daten dieser Art erzeugt, jedoch gewöhnlich nach der Videokodierung wieder gelöscht. Bei der vorliegenden Erfindung wird diese erzeugte Information, wie beispielsweise die gesamten zur Kodierung eines Bildes verwendeten Bits, der gemittelte Fehler bei der Kodierung eines Bildes, die mittlere Quantisiererskalierung für jedes Bild usw., nach dem Kodierprozess aus dem System-RAM an Logdateien gegeben. Beispiele der von der vorliegenden Erfindung verwendeten Logdateien sind in den 8A bis 10B gezeigt. Diese Logdateien sind insbesondere in einem VBR-System von Nutzen und werden während eines Anfangsdurchgangs (Durchgängen) des Videokodierers erzeugt. Die Logdateien werden anschließend während des letzten Kodierdurchgangs und während späteren Editierens und erneuten Kodierens des Videos verwendet.
  • Es gibt drei verschiedene Arte von Logdateien, die von der vorliegenden Erfindung verwendet werden können; eine Sequenzebenenlogdatei, eine Bilebenenlogdatei und eine Makroblockebenenlogdatei. Jede dieser Logdateien beschreibt Statistiken und Information ihrer jeweiligen Ebene. Es gibt zwei verschiedene Arten von Makroblockebenenlogdateiformaten; das in der 10A gezeigte vollständige Format und das in der 10B gezeigte kurze Format. Das vollständige Format wird verwendet, wenn detaillierte Information der Makroblockebene gewünscht wird, und das kurze Format wird verwendet, wenn es nicht erforderlich ist, den Track von allen Details des Makroblocks zu behalten. Aufgrund der hohen Anzahl an Makroblöcken in einem zweistündigen Film verbrauchen die Makroblocklogdateien eine Menge der vorhandenen Speicherkapazität. Folglich kann es dann, wenn nicht genügend Speicherkapazität vorhanden ist, passieren, dass es nicht möglich ist, die Makroblockdateien des vollständigen oder des kurzen Formats zu speichern. Wenn es jedoch erforderlich ist, die Makroblockinformation zu erhalten, so kann diese rekonstruiert werden, indem das kodierte Video dekodiert wird, oder indem andere Mittel angewandt werden.
  • Es sollte beachtet werden, dass viele der Details der in den 8A bis 10B gezeigten Logdateiformate nicht von Bedeutung sind, und dass sie Dateiformate nur zur Veranschaulichung der Daten, die gegebenenfalls während des Kodierprozesses erzeugt werden, vorgesehen sind. Einige der Information in den Logdateien ist jedoch wichtig, da sie während des Prozesses zur Änderung der Videoqualität verwendet wird. Zum Bestimmen eines Editierpunktes des kodierten Videos ist es, wie nachstehend beschrieben wird, erforderlich, die Anzahl an von früheren Bildern verbrauchten Bits zu addieren. Die aufsummierte Information ist in den 9B und 9C gezeigt und gehört zu der Anzahl an Bits für jedes Bild (generated_bit_picture), der Anzahl an Bits für den Sequenzheader (bits_sequence_header), der Anzahl an Bits für den Gruppe-an-Bildern-(GOP)-Header (bits_GOP_header) und die Anzahl an zum Auffüllen verwendeten Bits oder zum Füllen der Leerstellen verwendeten Bits (stuffing_size).
  • 11 zeigt ein Ablaufdiagramm mit verschiedenen Funktionen, die mit Hilfe der Logdateien ausgeführt werden. Nach der ersten Kodierung eines Videosegments liest Schritt 270 in den Bild- und Sequenzebenenlogdateien, die aus dem automatischen Lauf des Videokodierers erzeugt wurden und in den 8A bis 9C gezeigt sind. Anschließend erzeugt Schritt 272 eine Indextabelle, welche die Byte-Offsets der Logdateiaufnahmen für jedes in dem kodierten Video aufgenommenen Bildes zeigt. Es werden zwei Tabellen erzeugt; eine, die durch die Rahmennummer eingeteilt ist, und eine andere, die durch den Zeitkode eingeteilt ist. Die Zeitkodeindextabelle weist den Byte-Offset in der Logdatei von jedem Bild auf und ist in einer ansteigenden Reihenfolge der Zeitkodes geordnet. Gleichermaßen weist die Bildrahmenindextabelle die Byte-Offsets in der Logdatei auf, die in der ansteigenden Rei henfolge der Eingangsbildnummern geordnet sind (von dem Kodierer aus gesehen).
  • Die erzeugten Indextabellen helfen dabei, schnell die Loginformation eines gewünschten Bildes oder Makroblocks zu wählen. Obgleich Aufnahmen festgelegter Größe dazu verwendet werden, die Sequenz, das Bild oder die Makroblockdaten in der Logdatei zu speichern, ordnet der Kodierer die ankommenden Bilder erneut an, bevor er sie kodiert. Ferner werden dann, wenn mit einer Film-(24 Rahmen pro Sekunde)-Quelle umgegangen wird, die 3:2 auf 30 Rahmen pro Sekunde heruntergesetzt wurde, werden bestimmte Zeitkodes übersprungen. Die Indextabellen stellen ein Mittel bereit, mit dem schnell die geeigneten Daten lokalisiert werden können, trotz der erneuten Anordnung der Bilder und dem Überspringen der Zeitkodes.
  • Es sollte beachtet werden, dass das vorliegende Kodiersystem kein Verzeichnis oder Index mit der Anzahl der kodierten Bits, die bei der Kodierung jedes Bildes verwendet werden, aufweist, da sich das kodierte Video häufig ändert, wenn verschiedene Rahmen und Zeitspannen des Videos manuell in ihrer Qualität geändert werden. Die Logdateien, welche die Information des kodierten Video beschreiben, sind jedoch Aufnahmen fester Größe, und folglich ist es einfach, ein Verzeichnis oder ein Index mit der Information in den Logdateien zu halten, und zwar selbst dann, wenn die Qualität der Bilder oder der Zeitspannen geändert wird.
  • Auf die Erzeugung der Indextabellen folgend ermöglich es der Schritt 274 dem Benutzer, schnell verschiedene Information aus den Logdateien zu erhalten, wobei verschiedene Logdateihilfsmittel, die in den Blöcken 276, 278 und 280 gezeigt sind, verwendet werden. Werden Aufnahmen in den Logdateien benötigt, so wird der er zeugte Index verwendet, um die gewünschte Aufnahme in der Logdatei zu bestimmen, und die komplette Aufnahme aus der Logdatei gezogen. Diese Aufnahme wird anschließend zur Abfrage der gewünschten individuellen Parameter analysiert. Der Prozess des Analysierens der einzelnen Aufnahmen mit Hilfe der Indextabelle ist die Grundlage für alle anderen Loginterpretiererhilfsmittel. Die Analyseverfahren sind bekannt, und es ist einem auf diesem Gebiet vertrautem Fachmann bewusst, wie die gewünschte Information aus einer organisierten Datei abzufragen ist.
  • Schritt 276 ist das Logdateischneide- und Logdateieinfügehilfsmittel. Auf die manuelle Änderung der Quantisierung (und der Bildqualität) innerhalb eines Rahmens oder über Zeitspannen muss der ursprüngliche Satz an Logdateien aktualisiert werden, um mit den Änderungen übereinzustimmen, die während der Editierung aufgetreten sind. Das Logdateischneide- und Logdateieinfügehilfsmittel lokalisiert Offsets in den Logdateien, welche mit den editierten Segmentzeitkodes übereinstimmen, und ersetzt die Information in den Logdateien durch die neue Information, welche mit dem neu kodierten Video übereinstimmt. Der Prozess der erneuten Kodierung wird nachstehend im Abschnitt VIII beschrieben.
  • Schritt 278 zeigt ein Hilfsmittel zum Erhalten von Parametern, um ein Editieren des digital kodierten Bitdatenstroms zu ermöglichen. Nachdem das Video anfangs kodiert wurde und ein Benutzer es wünscht, die Qualität von Rahmen oder einer Zeitspanne des Videos zu ändern, ist es erforderlich, die geeigneten Teile in dem kodierten Video, welche entfernt und durch das neu kodierte Video mit der gewünschten Qualität ersetzt werden sollen, zu bestimmen.
  • Die Byte-Offsets für die Editierpunkte in dem Bitdatenstrom des kodierten Videos werden bestimmt, indem ein ansteigender Zähler des Bytes, die zum Kodieren jedes Bildes verwendet werden, bis zu den Bildern, welche dem Editierpunkt entsprechen, berechnet wird. Zum Bestimmen der Gesamtanzahl an Bytes oder Bits von dem Beginn der Datei, an der sich ein bestimmtes Bild befindet, wird die Anzahl an Bits, die zum Kodieren jedes der vorherigen Bilder verwendet werden, summiert. Die Information, die aus der summierten Bildlogdatei erhalten wird, ist die Anzahl Bi an Bits, die zum Kodieren des iten Bildes verwendet wird, die Anzahl Si an Bits mit dem Sequenzheader, die Anzahl Gi an Bits, die zum Kodieren des Gruppe-An-Bildern-(GOP)-Headers verwendet wird, und die Anzahl Ti an Bits, die zum Auffüllen verwendet wird. Der Bit-Offset für das N-te Bild wird mit Hilfe der nachstehende Gleichung (1) berechnet.
  • Figure 00490001
  • Der Byte-Offset wird einfach dadurch berechnet, dass der Bit-Offset durch acht geteilt wird. Als Alternative zur Verwendung der Logdateien zum Bestimmen des Adressen-Offsets in dem kodierten Videodatenstrom könnte ein Bitdatenstromdekodierer zum Erzeugen eines Bild-Offsets aufweisenden Verzeichnisses verwendet werden. Dieser Ansatz ist jedoch mühsam, da der Dekodierer nach jedem Editieren den gesamten Bitdatenstrom durchlaufen muss, um das Verzeichnis zu aktualisieren.
  • Schließlich stellt der Schritt 280 ein Hilfsmittel zum Runden von Zeitkodes zum Anfang oder zum Ende des nächsten Gruppe-an-Bildern (GOP). Sämtliches Schneiden des kodierten Bitdatenstroms oder Editieren wird an den Grenzen einer Gruppe-an-Bildern (GOP) ausgeführt. Die GOP-Grenzen sind dem das Editieren des Videos ausführenden Benutzer jedoch unbekannt. Sobald der Benutzer die Editiersegmentstart- und die Editiersegmentendpunkte bestimmt hat, berechnet das System die GOP-Grenzen. Die GOP-Grenze wird festgelegt, indem der Bildebenenparameter, der auch GOP-Zahl genannt wird und in jeder Bildaufnahme gespeichert ist, betrachtet wird. Durch ein schrittweises Verfolgen aufeinander folgende Aufnahmen der Bildebenenlogdatei, wird der Ort, an dem sich die GOP-Zahl (GOP_number) in der 9B ändert, als GOP-Grenze bestimmt.
  • Da die Logdateien und die Logdateihilfsmittel eng mit der Videokodierung verbunden sind, werden die Logdateien auf einer Festplatte in der Arbeitsstation 10 der 1A gespeichert und die Logdateihilfsmittel von der Arbeitsstation 10 ausgeführt. Alternativ kann die Arbeitsstation 30 oder irgendein anderes Verarbeitungssystem die Logdateien aufweisen und die Logdateihilfsmittel ausführen.
  • VII. Qualitätsänderung des kodierten Videos
  • A. Änderung der Qualität in Zeitabschnitten
  • Das von dem Kodiersystem erzeugte kodierte Video ist dafür vorgesehen, auf ein endgültiges digitales Speichermedium, wie beispielsweise eine optische Disk, geschrieben zu werden. Das kodierte Video auf der Disk ist mit einer variablen Bitrate (VBR) kodiert, was die Möglichkeit großer Änderungen in den Bitraten unter den verschiedenen Abschnitten des Videos bietet, verglichen mit einer Konstantbitraten-(CBR)-Operation. Da es die VBR-Kodierung ermöglich, verschiedenen Bildern eine deutlich verschiedene Anzahl an Bits zuzuweisen, kann die Bildqualität über die Zeit verändert werden. Ferner bietet VBR die Möglichkeit der erneuten Zuweisung von Datenraten zu einigen benutzerdefinierten Abschnitten des Video in einer Größenordnung, die mit einer CBR-Operation nicht möglich ist. Es würden extrem große Puffer an den Dekodieren erforderlich sein, um selbiges mit einer CBR zu erzielen.
  • Das Kodiersystem ermöglicht das, was nachstehend als manuelles Editieren bezeichnet wird, wobei das manuelle Editieren kein Kürzen oder Verlängern von Szenen oder Austauschen verschiedener Szenen in einem Film, sondern das Ändern der Bildqualität ist. Die Bildqualität kann, wie in diesem Abschnitt noch beschrieben wird, über die Zeit geändert werden, wobei dieser Vorgang als zeitliches Editieren oder manuelles zeitliches Editieren bezeichnet wird. In einem anderen Abschnitt wird das Ändern der Bildqualität in Datenrahmen durch eine Verschiebung von Bits von einem Abschnitt eines Rahmens zu einem anderen Abschnitt eines Rahmens beschrieben, wobei dieser Vorgang als räumliches Editieren oder manuelles räumliches Editieren bezeichnet wird.
  • Bei dem zeitlichen Editieren oder der Bitneuzuweisung unter verschiedenen Abschnitten eines Editiersegment müssen drei wesentliche Bedingungen erfüllt sein. Diese drei Bedingungen sind:
    • 1. Die Gesamtkapazität für den/das zu editierende(n) Film/Video überschreitet nicht die zugewiesene Kapazität;
    • 2. Es gibt keinen Pufferunterlauf innerhalb des Editiersegments; und
    • 3. Es gibt keinen durch die zeitliche Editierung verursachten Pufferunterlauf außerhalb des Editiersegments.
  • Die Bedingung 1 wird derart durch die erneute Kodierung des Editiersegments gehandhabt, dass das resultierende editierte Segment die gleiche Anzahl an Bits wie das ursprünglich kodierte Segment aufweist. Es sollte beachtet werden, dass ein Editiersegment die gesamte Zeitspanne betrachtet wird. Verschiedenen Zeitspannen innerhalb des Editiersegments werden von einem Benutzer Qualitäten zugewiesen, wobei diese Zeitspannen des Editiersegments einfach als Abschnitte oder Zeitspannen bezeichnet werden.
  • Um zu bestimmen, ob eine Unterlaufbedingung auftreten wird, ist es erforderlich, die Zielbits mit Hilfe eines Models des Dekodierers zu überprüfen. Bei der VBR-Operation des Kodierers wird eine modifizierte Version des Video-Puffer-Prüfer-(VBV)-Models verwendet. Dieses Model wird nachstehend als das einfach modifizierte Model für eine VBR bezeichnet und kann für ein digitales Speichermedium (DSM) verwendet werden. VBV- und VBR-Modus sind bekannt und in dem MPEG-2 Standard definiert, wobei sie insbesondere in dem Anhang C, Abschnitt C.3.2. der ISO/IEC 13818-2 gefunden werden können.
  • Bei dem VBV-Model für die VBR kann der Puffer voll verbleiben, ist jedoch bezüglich eines Unterlaufens beschränkt. Ferner füllt der Puffer bei einer konstanten Rate Rmax auf, bis er voll ist, woraufhin keine Bits zu dem Puffer übertragen werden, bis er damit beginnt, sich zu leeren. In jedem Rahmenintervall werden die zum Dekodieren eines Rahmens erforderlichen Bits aus dem Puffer entfernt. Unter Beachtung dieser Tatsache wird ersichtlich, dass in einem VBR-Modus ein Pufferunterlauf durch eine Zuweisung zu vieler Bits zu einer Reihe an Bilder verursacht wird. Wenn die Bits der Bilder aus dem Puffer entfernt werden, leert sich der Puffer und unterläuft, wenn eine hohe Anzahl an Bits von Bildern hoher Qualität mit einer Rate entfernt wird, die über der Rate liegt, mit welcher der Puffer gefüllt wird. Um einen Unterlauf zu verhindern wird die Anzahl an Bits, die zum Kodieren eines Bildes verwendet wird, verringert. Eine Verringerung der Anzahl an Bits für ein Bild verringert die Rate, mit welcher die Bits aus dem Puffer entfernt werden, während die Füllrate unverändert gehalten wird. Ein Pufferüberlauf kann für die VBR nicht auftreten, da die Bitdatenstromübertragung zu dem VBV-Puffer dann, wenn die VBV-Belegung voll ist, unmittelbar gestoppt wird. Dies bedeutet, dass kein Pufferüberlauf, sondern lediglich eine Situation auftritt, bei welcher der Puffer voll ist. Das für die VBR einfach modifizierte VBV-Model, wie in dem Anhang C, Abschnitt C.3.2. der ISO/IEC 13818-2 beschrieben, sieht wie folgt aus:
    • 1. Das bit_rate Feld im sequenz_header beschreibt die max_bit_rate.
    • 2. Der VBV ist zunächst leer. Nach Auffüllen des VBV-Puffers (d.h. des VBV-Pufferumfangs) bei der Rate von max_bit_rate beginnt der Dekodierprozess. Die Bilddaten werden unmittelbar entfernt und gleich dem in dem internationalen Standard MPEG-2 definierte VBV-Model der CBR dekodiert.
    • 3. Der Bitdatenstrom wird mit der Rate der max_bit_rate an den VBV-Puffer gegeben, bis der VBV-Puffer voll ist. Wenn die VBV-Pufferbelegung voll ist, wird die Bitdatenstromübertragung an den VBV unmittelbar gestoppt. Auf die Entfernung der Daten für das nächste Bild beginnt unmittelbar die Bitdatenstromübertragung.
    • 4. Der VBV-Puffer sollte nicht unterlaufen.
    • 5. Jedes Feld VBV_Verzögerung wird auf FFFF gesetzt.
  • Das Ändern der Qualität des Videos über Abschnitte der Zeit erfordert ein Addieren oder Entfernen von Bits zu/aus den Videorahmen. Nachstehend ist eine Beschreibung hinsichtlich der Anzahl an Bits, die zu einem Abschnitt des Videos addiert bzw. aus einem Abschnitt des Videos entfernt werden, gegeben. Die Anzahl an Bits, die zu einem Abschnitt des Videos addiert bzw. aus einem Abschnitt des Videos entfernt werden, hängt von der effektiven Bitrate des betrachteten Videorahmens ab. Die effektive Bitrate R wird wie folgt berechnet: R = (Gesamtzahl zugewiesener Bits/Anzahl an Rahmen)·Frame_Rate (2)
  • Da die Gesamtzahl an zugewiesenen Bits direkt proportional zu der Bitrate ist, weist die Anzahl an zugewiesenen Bits, abgesehen von den unterschiedlichen Einheiten, die gleiche Bedeutung wie die Bitrate auf. Wenn eine garantierte minimale Rate Rmin auf irgendeinen Abschnitts des Videos angewandt wird, ist die maximale Anzahl an Bits, die aus dem Abschnitt 'i' genommen werden kann: Ti = (Ri – Rmin)·Ni/Frame_Rate (3)
  • Wobei Ni die Anzahl an Rahmen in einem Abschnitt 'i' und Ri die effektive Rate des gleichen Abschnitts ist. Das garantierte Minimum wird benötigt, um einen minimalen Qualitätslevel für den Abschnitt zu sichern. Gleichermaßen wird die maximale Anzahl an Bits, die zu einem gegebenen Abschnitt 'j' addiert werden kann, wie folgt berechnet: Tj = (Rmax – Rj)·Nj/Frame_Rate (4)
  • Wobei Rmax die maximale Rate oder die Rate, bei welcher der Puffer aufgefüllt wird, wenn er nicht voll ist, und Nj die Anzahl an Rahmen des Abschnitts j ist.
  • Nachstehend wird die Änderung der Bildqualität in Zeitabschnitten (zeitliches Editieren) unter Bezugnahme auf die 12 und die Figuren, auf die in der 12 Bezug genommen wird, beschrieben. Nach Beginn des Prozesses führt der Schritt 281 eine automatische Videokodierung ohne irgendwelche Benutzereinwirkungen aus, wie vorstehend in den Abschnitten II und II beschrieben. Es sollte beachtet werden, dass es für die automatische Kodierung eine maximale und eine minimale Rate für den erzeugten Datenstrom gibt. Die maximale Bitrate wird durch das Vermögen des Videodekodierers bestimmt, wobei Rmax beispielsweise bei 8 Mbits/s liegt. Die minimale Bitrate kann von dem Benutzer in Abhängigkeit der gewünschten minimalen Bildqualität bestimmt werden. Ein typische minimale Bitrate Rmin liegt bei 3 Mbits/s. Vorzugsweise wird Rmin auf einen Wert gesetzt, der sich von der mittleren Kodierrate unterscheidet und ein wenig unterhalb dieser liegt, so dass Abschnitte des Videos eine geringere Bitrate und Abschnitte des Videos eine höhere Bitrate aufweisen können. Wenn Rmin auf einen Wert leicht unterhalb der mittleren Kodierrate des Videos gesetzt wird, wird das resultierende kodierte Video eine ziemlich konstante Qualität aufweisen. Wenn Rmax = 8 Mbits/s und Rmin annähernd 3 Mbits/s ist, sollte der Mittelwert des Videos üblicherweise bei 3.5 bis 5 Mbits/s liegen.
  • Auf die automatische Videokodierung in Schritt 281 folgend ist es erforderlich, eine Ratenquantisiererfunktion zu bestimmen. Der Prozess der Erfindung bestimmt, wie viele Bits erforderlich sind, um eine gewünschte Qualität zu erhalten, wobei ein Quantisiererwert bei einer erneuten Kodierung gesetzt werden muss, um eine gewünschte Bitrate zu erzielen. Die Ratenquantisiererfunktion kann auf eine herkömmliche Weise berechnet werden, wie es beispielsweise in den folgenden Artikeln beschrieben wird: "Bit Allocation for Dependent Quantization with Applications to Multiresolution and MPEG Video Disclosures" von Ramchandran et al von IEEE Transactions über Bildverarbeitung, Band 3, Nr. 5, September 1994, Seiten 533 bis 545, "Bit Allocation for Dependent Quantization with Applications to MPEG Video Coders" von Ramchandran et al, IEEE ICASSP, 1993, Seiten V-381 bis V-384, und "Joint Multi-channel Bit-Rate Control for Multiplexed MPEG Video using Rate-Distortion Curves" von Reininger, vorgetragen 1994 bei einer Videokonferenz in Princeton.
  • Anschließend gibt der Schritt 284 die Benutzerqualitätseinstellungen für die gewählten Zeitspannen ein. Die Benutzer gibt Prioritäten für verschiedene Abschnitte, die schließlich zur Steuerung der Quantisierung der Bilder verwendet werden, ein. Die Quantisierung steuert die ebenso als Auflösung bezeichnete Bildqualität für verlustbehaftete MPEG Kodierungen. 13 zeigt eine Benutzerschnittstelle, die verwendet wird, um die Information zum Ändern der Videoqualität in Zeitabschnitten zu erfassen. Anfangs gibt ein Benutzer die Zeitspanne für das gesamte Editiersegment, in welchem die Qualität geändert werden soll, ein. Die Eingabe dieser Information wird nicht in der Benutzerschnittstelle der 13 angezeigt, sondern wird eingegeben, bevor die Benutzerschnittstelle der 13 angezeigt wird. Bei dem in der 13 gezeigten Beispiel liegt die Zeitspanne für das Editiersegment, das geändert werden soll, beispielsweise zwischen den Zeitpunkten 0 und 5 Minuten. Nachdem der Benutzer die gesamte Zeitspanne des Editiersegments beschrieben hat, werden anschließend kleineren Zeitspannen innerhalb des Editiersegments verschiedene Prioritäten in dem Bereich zwischen –5 bis +5 zugewiesen, einschließlich einer Priorität P, die anzeigt, dass die Qualität dieser Zeitspanne geschützt ist und nicht geändert werden sollte. Die Priorität "keine" ist gleichbedeutend mit der Priorität P. Das Kodiersystem ist nicht auf das vorstehend beschriebene Eingabeschema beschränkt, und es können andere Bereiche oder Symbole verwendet werden, um die vom Benutzer gewünschten Prioritäten einzugeben.
  • Zusätzlich zu der Zuweisung der Prioritäten gibt der Benutzer ebenso die minimale Bitrate ein. Diese Bitrate kann sich von der minimalen Bitrate unterscheiden, die zum Kodieren des Videos während der automatischen Videokodierung in Schritt 281 verwendet wird. Eine weitere Eigenschaft der Benutzerschnittstelle besteht darin, dass sie es dem Benutzer ermöglicht, eine "Hintergrundpriorität" zu setzen, was bedeutet, dass die Zeitspannen innerhalb der gewählten Zeitspannen, denen von dem Benutzer keine Priorität zugewiesen wurden, diese Hintergrundpriorität aufweisen. Wenn beispielsweise in der 13 der Hintergrundpriorität der Wert "1" zugewiesen wird, so würde der unbestimmten Zeitspanne 00:03:20:01 bis 00:03:59:99 automatisch eine Priorität von "1" zugewiesen werden, ohne dass der Benutzer die Priorität für diesen bestimmten Abschnitt manuell zuweist.
  • Auf der unteren Hälfte der in der 13 gezeigten Schnittstelle wird der "Einfügen" Block dazu verwendet, eine neue Zeitspanne innerhalb des Editiersegments zu erzeugen, der "Wideraufruf" Block dazu verwendet, eine vorher erzeugte Zeitspanne zu ändern, "Aktualisierung" dazu verwendet, die Änderungen in der Zeitspanne zu speichern, und "Löschen" dazu verwendet, eine Zeitspanne zu löschen.
  • Es ist wichtig, daran zu denken, dass das endgültige digitale Speichermedium für das kodierte Video, wie beispielsweise eine optische Disk, eine begrenzte Speicherkapazität aufweist, die idealerweise bis auf die Kapazität gefüllt wird, wenn die automatisch kodierten Daten auf die Disk geschrieben werden. Folglich muss immer dann, wenn die Bildqualität verbessert und die Bitrate für eine bestimmte Zeitspanne erhöht wird, ein Abschnitt des Videos vorhanden sein, in dem die Qualität verringert ist, um die erforderliche zusätzliche Speicherkapazität für die Zeitspanne zu liefern, deren Qualität verbessert wurde. Folglich ist es in der bevorzugten Ausführungsform der Erfindung nicht möglich, nur einer Zeitspanne eine hohe Bildqualität zuzuweisen, ohne eine anderen Zeitspanne eine verschiedene Bildqualität zuzuweisen, da die zur Verbesserung der Qualität erforderlichen Bits aus einem anderen Abschnitt des Videos genommen werden müssen. Das Segment des Videos, welches editiert worden ist, sollte folglich wenigstens einen Abschnitt mit einer Priorität aufweisen, die sich von dem Hintergrundabschnitt unterscheidet und nicht als "geschützter" Abschnitt markiert ist, so dass die zeitliche manuelle Editierung angemessen ablaufen kann. Ferner resultieren die von dem Benutzer gewählten Qualitäten nicht jedes Mal, wenn sie gewählt werden, in der gleichen Qualität und Bitrate, sondern die Qualität eines bestimmten Abschnitts hängt ebenso von den für die anderen Abschnitte zugewiesenen Prioritäten und den Längen der anderen Abschnitte ab, was aus einem Verständnis des Prozesses zum Bestimmen der modifizierten Anzahl an Bits für die Bilder innerhalb des Editiersegments ersichtlich sein wird.
  • Eine von dem vorliegenden Kodiersystem genutzte Eigenschaft liegt darin, dass ein Betrachter während des automatischen Kodierprozesses oder zu einem späteren Zeitpunkt das kodierte Video anschauen kann. Wenn der Betrachter das kodiere Video abschaut, kann er eine Funktion, wie beispielsweise das Pressen des Auslöseschalters oder "Klicken" einer graphischen Benutzerschnittstelle auf eine auf dem Bildschirm angezeigte "Taste", um die für ihn interessanten Punkte oder Bereiche des Videos zu speichern, ohne das Video stoppen zu müssen oder die für ihn interessanten Zeitkodes herausschreiben zu müssen. Diese für ihn interessanten Punkte können zu einem späteren Zeitpunkt von dem Benutzer aufgerufen und näher betrachtet werden, ohne dass der gesamte Film noch einmal angeschaut werden muss. Hierdurch können Punkte innerhalb des kodierten Video, die ein Benutzer möglicherweise ändern will, auf einfache und effiziente Art und Weise bestimmt werden. Diese Funktion wird durch das Speichern eines Zeitkodes, welcher der Position innerhalb des kodierten Videos entspricht, an welchem der für den Benutzer interessante Punkt oder der Bereich auftritt, erzielt.
  • Nachdem der Benutzer die gewünschten Qualitätseinstellungen in Schritt 284 eingegeben hat, berechnet der Schritt 286 die modifizierten Bits für jeden Rahmen auf der Grundlage der Benutzereingabe. Dieser Prozess wird nachstehend näher unter Bezugnahme auf die 14 bis 16B beschrieben. Das allgemeine Verfahren zum Ändern der Bitraten der Zeitspannen innerhalb des Editiersegments ist in dem in der 14 gezeigten Ablaufdiagramm gezeigt. Um die Bitrate auf der Grundlage der Benutzereingabe zu berechnen, bildet der Schritt 302 die Benutzereingabe, die in dem Bereich zwischen –5 und +5 lag, in dem Bereich zwischen 10 und 0 ab. Die anfängliche Eingabe von –5 entspricht der abgebildeten Einstellung von 10 und der minimalen Qualität, und die Eingabe von +5 entspricht der abgebildeten Einstellung von 0 und der maximalen Qualität. Ferner entspricht eine eingegebene Qualitätswahl von 0 einer abgebildeten Einstellung von 5 usw. Der Zweck des in Schritt 302 ausgeführten Abbildens besteht darin, dass die Anzahl der zugewiesenen Bits proportional zu e (2.71828...) ist, wobei sie auf eine Leistung der Größe –1 erhöht wird, die mit der abgebildeten Einstellung multipliziert wird. Hierbei liegt e–10 unter e0, so dass die Anzahl an Bits für die Einstellungen mit den geringeren Prioritäten geringer als für die höheren Prioritäten ist. Der Prozess zum Bestimmen der Zielbits, die mit den Prioritäten in dem Bereich von –4 bis +4 übereinstimmen, wird nachstehend näher unter Bezugnahme auf die 16A und 16B beschrieben.
  • Schritt 304 bestimmt, ob irgendwelche "geschützten" Abschnitt vorhanden sind. Ein geschützter Abschnitt ist ein Abschnitt, in welchem die Qualität des Bildes nicht gegenüber der vorherigen automatischen Kodierung geändert werden sollte. Wenn geschützte Abschnitte vorhanden sind, schreitet der Ablauf zu Schritt 306 voran, bei welchem die Anzahl an Bits, die für die erneute Kodierung der geschützten Abschnitte zugewiesen ist, derart gesetzt wird, dass sie gleich der vorherigen Anzahl an Bits ist, die aus der anfänglichen automatischen Kodierung resultieren. Auf diese Weise wird sich die Bildqualität der geschützten Abschnitte nicht ändern.
  • Schritt 308 bestimmt, ob irgendwelche Abschnitte vorhanden sind, die auf die maximale oder minimale Qualität gesetzt sind. Die maximale Qualität entspricht einer Benutzereingabe von +5 und die minimale Qualität entspricht einer Benutzereingabe von –5. Für die maximale und für die minimale Bildqualität ist es wünschenswert, ein kodiertes Video zu erhalten, welches die höchste bzw. die niedrigste Videoqualität aufweist und gleichzeitig noch die Videopufferbedingungen erfüllt und nicht die Speicherkapazität des das kodierte Video aufweisenden Medium überschreitet. Wenn Abschnitte vorhanden sind, die auf die maximale oder die minimale Qualität gesetzt sind, schreitet der Ablauf zu Schritt 310 voran, welcher die modifizierte Anzahl an Bits für den maximalen oder den minimalen Fall berechnet. Diese Prozess ist näher in der 15 gezeigt.
  • In der 15 startet der Prozess zum Bestimmen der Anzahl an für den maximalen und für den minimalen Fall zugewiesenen Bits in Schritt 320, indem Abschnitten des Videos, denen die abgebildeten Prioritäten von 10 bzw. 0 zugewiesen sind, die minimale und die maximale Rate zugewiesen wird. Schritt 302 der 14 führte dieses Abbilden aus, und der Rest der Beschreibung der zeitlichen Editierung wird sich auf die abgebildeten Prioritäten beziehen, solange nicht speziell davon abgewichen wird. Die maximale Datenrate ist, wie vorstehend beschrieben, durch das Vermögen des Dekodierers beschränkt und kann bei beispielsweise 8 Mbits/s liegen. Die minimale Datenrate wird, wie durch die in der 13 gezeigte Benutzerschnittstelle dargestellt eingegeben und kann unter oder über der minimalen Bitrate, die während des automatischen Kodiermodus verwendet wird und gewöhnlich bei 3 Mbits/s liegt, liegen.
  • Schritt 322 bestimmt anschließend, ob irgendwelche Abschnitte mit einer abgebildeten Priorität zwischen 1 und 9 vorhanden sind. Dies bedeutet, dass zusätzlich zu einer zugewiesenen maximalen oder minimalen Qualität andere, von dem Benutzer zugewiesene dazwischen liegende Qualitäten vorhanden sind. Wenn andere abgebildete Prioritäten vorhanden sind, schreitet der Ablauf zu Schritt 324 voran, welcher die mittlere Bitrate für alle Abschnitt mit den abgebildeten Prioritäten zwischen 1 und 9 berechnet. Wenn dieser Mittelwert außerhalb eines zulässigen Bereichs (zwischen der maximalen und der minimalen Bitrate) liegt, schreitet der Ablauf zu Schritt 328 voran. In Schritt 328 wird die maximale Rate, welche der Rate entspricht, die die höchste Bildqualität vorsieht, verringert, wenn der Mittelwert unter der minimalen Rate liegt. Durch die Verringerung der maximalen Bitrate stehen mehr Bits für die nicht-maximum und nicht-minimum Situationen (abgebildete Prioritäten zwischen 1 und 9) zur Verfügung, wodurch der Mittelwert in oder näher an den gewünschten Bereich gesetzt wird. Alternativ wird die minimale Datenrate dann, wenn der Mittelwert über der maximalen Rate liegt, erhöht, wodurch die Anzahl an Bits für die nicht-maximum und die nicht-minimum Situationen (z.B. Prioritäten zwischen 1 und 9) verringert wird. Auf den Schritt 328 folgend kehrt der Ablauf zu Schritt 324 zurück, bei dem die Schleife mit den Schritten 324, 326 und 328 wiederholt wird, bis der Mittelwert in dem Bereich liegt. Ferner werden die maximale und die minimale Bitrate angepasst, um sicherzustellen, dass die "geschützten" Bereiche die gleichen Bits wie vor der Qualitätsanpassung empfangen.
  • Wenn der Mittelwert in Schritt 326 derart bestimmt wird, dass er in dem Bereich liegt, schreitet der Ablauf zu Schritt 330 voran, welcher die berechnete maximale und minimale Rate den Abschnitten mit den abgebildeten Prioritäten von 10 bzw. 0 zuordnet. Die verbleibenden Bits werden anschließend in Schritt 332 auf Abschnitte verteilt, die nicht geschützt sind und auch nicht unter die Maximal- oder Minimalsituation fallen. Auf diese Videoabschnitte mit den abgebildeten Bereichen zwischen 1 und 9 und die Art und Weise, mit welcher die Datenraten geändert werden, wird später noch unter Bezugnahme auf die 16A und 16B eingegangen.
  • Wenn Schritt 322 bestimmt, dass keine Abschnitte mit abgebildeten Prioritäten zwischen 1 und 9 vorhanden sind, was bedeutet, dass einzig Abschnitte mit einer mi nimalen oder maximalen Priorität oder geschützte Abschnitte vorhanden sind, passt Schritt 340 die minimale und die maximale Rate nach Bedarf an, bis die endgültige Zuordnung des Bits gleich der anfänglichen Zuordnung der Bits aus der automatische Kodierung ist. Es gibt zwei alternative Weisen, Schritt 340 auszuführen. Bei der ersten ist die maximale Bitrate Rmax auf beispielsweise 8 Mbits/s festgelegt. Die gesamten Bits für das gesamte Editiersegment sind bekannt und folglich wird einfach die minimale Datenrate Rmin angepasst, um die gleiche Gesamtzahl an Bits zu erhalten, die auch während der automatischen Kodierung erhalten wurde. Wenn es keine Möglichkeit gibt, Rmin derart anzupassen, dass die vorherige Gesamtzahl an Bits erhalten wird, wird dann die maximale Datenrate Rmax angepasst, um die Gesamtzahl an Bits zu erhalten, die auch während der automatischen Kodierung erhalten wurde.
  • Alternativ weist der Schritt 340 dem Abschnitt mit der maximalen Qualität eine Priorität von 1 und dem Abschnitt mit der minimalen Qualität eine Priorität von 9 zu und führt den in den 16A und 16B gezeigten Zuweisungsalgorithmus aus, um die neuen Bitraten für die Zeitspannen des Editiersegments zu bestimmen. Schritt 342 weist die Datenraten, die in Übereinstimmung mit den anschließend erläuterten 16A und 16B berechnet wurden, den Abschnitten mit den niedrigsten und höchsten zugewiesenen Qualitäten zu, woraufhin der Prozess der 15 endet.
  • Nachdem Schritt 308 und Schritt 310, wenn dies erforderlich war, ausgeführt worden sind, bestimmt der Schritt 312, ob irgendwelche Anschnitte eine abgebildete Priorität zwischen 1 und 9 aufweisen. Wenn dies zutrifft, schreitet der Ablauf zu Schritt 314 voran, welcher die modifizierte Anzahl an Bits für die abgebildeten Priori täten zwischen 1 und 9, wie detailliert in den 16A und 16B beschrieben, berechnet.
  • Der erste Schritt in der 16A ist die Bestimmung der Größe eines gemeinsamen Bitpools, der verwendet werden soll. Anfangs werden von allen Abschnitten mit einer abgebildeten Priorität zwischen 1 und 9, die nicht geschützt sind, eine bestimmte Anzahl an Bits entfernt. Ein Faktor k1, der Neuverteilungstiefe genannt wird, wird zu diesem Zweck verwendet und beispielsweise auf 0.4 gesetzt, was bedeutet, dass 40 % der vorher zugeordneten Bits (d.h. aus dem automatischen Kodierungsdurchlauf) aus jedem Abschnitt, der nicht geschützt oder mit der maximalen oder minimalen Qualität markiert ist, entfernt werden.
  • Anschließend bestimmt der Schritt 362 den Grad, mit welchem die vom Benutzer gewählte Qualität die Qualität beeinflussen wird. Eine Variable k3, die Dynamikbereichsfaktor genannt wird, wird gesetzt und bestimmt die Qualitätsänderung, die aus dem Prioritäten resultieren wird. In Abhängigkeit der Einstellung von k3 kann eine Priorität von beispielsweise 2 verschiedene Qualitätsänderungen, wie beispielsweise einen relativ geringen Anstieg der Qualität oder einen relativ großen Anstieg der Qualität bewirken. Gewöhnlich wird der Dynamikbereichsfaktor k3 auf 1.0 gesetzt.
  • Zur Verwendung der vom Benutzer gewählten Priorität auf die Neuverteilung der Bits wird ein exponentiales Verhältnis der Form exp(-Priorität/k3) genutzt. Der Dynamikbereichsfaktor k3 in dem Exponenten bestimmt die Form der Exponentialkurve. Die Kurve wird für hohe Werte des Dynamikbereichsfaktors steiler, wodurch das Missverhältnis der in den Abschnitten mit den sich ändernden Prioritäten neu zugewiesenen Bits effektiv erhöht wird. Diese negative Exponential bedeutet, dass sich die dem Abschnitt zugewiesenen Bits dann, wenn der Absolutwert der abgebildeten Prioritäten zunimmt (Abschnitte geringerer Priorität, verringern, d.h. eine abgebildete Priorität von eins weist die höchste Priorität und die ansteigenden Zahlen bis 9 weisen eine geringere Priorität auf.
  • Schritt 364 normiert die vom Benutzer gewählten Prioritäten. Dies bedeutet, dass die vom Benutzer gewählten Prioritäten dazu verwendet werden, die relative Priorität jedes Abschnitts zu bestimmen. Zunächst wird Ei berechnet. Ei = exp(–pi/k3) (5)wobei pi die abgebildete vom Benutzer gewählten Priorität und i die Abschnittszeitspannennummer innerhalb des Editiersegments ist, ausschließlich der Zeitspannen, die geschützt sind oder eine maximale oder minimale Qualität aufweisen. Anschließend wird der Prioritätsnormierungsfaktor k2 berechnet. k2 = ΣNi=1 Ei (6)wobei N die Nummer des Abschnitts ist. Der Prioritätsnormierungsfaktor wird benötigt, um sicherzustellen, dass die Summe aller in Übereinstimmung mit den Prioritäten neu zugewiesenen Bits stets dem gemeinsamen Pool an verfügbaren Bits gleichkommt.
  • Die relative Priorität jedes Abschnitts wird anschließend wie folgt berechnet. Ri = Ei/k2 (7)
  • Da Ri der Anteil der relativen Priorität für den iten Abschnitt ist, wird die Summe alle Ri eins sein.
  • Schritt 366 normiert anschließend die Größen der Abschnitte. Dies ist erforderlich, da die Zeitspannen mit den zugewiesenen Prioritäten verschiedene Größen aufweisen und die Bits proportional zu der Größe der verschiednen Abschnitte verteilt werden sollten. Zunächst wird der Bruch Ti der Anzahl an Rahmen in jeder Zeitspanne über die gesamte Anzahl an editierten Rahmen (Rahmen mit einer nicht geschützten nicht-max oder nicht-min Priorität) wie folgt bestimmt. Ti = Ni/N (8)wobei Ni die Anzahl an Rahmen in der iten Zeitspanne und N die Gesamtzahl an Rahmen in dem Editiersegment ist; das sind alle Rahmen, die geändert wurden und denen eine Priorität zugewiesen wurde, die nicht geschützt ist und keine maximale oder minimale Priorität aufweist.
  • Anschließend wird der Größennormierungsfaktor k4 gemäß der nachstehenden Gleichung berechnet. k4 = ΣNi=1 (Ti·Ri) (9)wobei N die Anzahl der Abschnitte ist. Von Schritt 366 in der 16A schreitet der Ablauf zu Schritt 368 in der 16B.
  • In der 16B bestimmt der Schritt 368 den gemeinsamen Bitpool gemäß der nachstehenden Gleichung. c = ΣNi=1 (k1·Bi) (10) wobei Bi die Gesamtzahl an Bits, die während des automatischen Kodierverfahrens des iten Abschnitts verwendet werden, plus aller in Schritt 332 der 15 verteilten Bits entspricht. Die Summierung erfolgt über 'N' Abschnitte.
  • Schritt 370 bestimmt anschließend die Zielanzahl an für jeden Abschnitt zugewiesenen Bits gemäß der nachstehenden Gleichung. Fi = C·Ti·Ri/k4 + (1 – k1)·Bi (11)
  • Die Zielanzahl an Bits für jeden Abschnitt Fi ist gleich einem prozentualen Anteil des gemeinsamen Bitpools plus der ursprünglichen Anzahl an Bits (Bi) verringert um die an den gemeinsamen Bitpool gegebenen Bits. Der prozentuale Anteil an Bits von dem gemeinsamen Bitpool basiert auf dem Bruch der Gesamtzahl an Rahmen jedes Abschnitts (Ti), der relativen Priorität des Abschnitts (Ri) und dem Größennormierungsfaktor (k4), der von der Priorität eines Abschnitts abhängt, der mit seinem entsprechenden Bruch an Rahmen, die für jeden der Abschnitte summiert werden, multipliziert ist.
  • Es ist möglich, dass die Zielanzahl an für jeden Abschnitt zugewiesenen Bits, wie in Schritt 370 berechnet, nicht zwischen der maximalen und der minimalen Datenrate liegt. Trifft dies zu, so verringert Schritt 372 die Neuverteilungstiefe k1 um 0.01, und der Ablauf kehrt zu Schritt 368 zurück, um den gemeinsamen Bitpool erneut zu berechnen, und zu Schritt 370 zurück, um die Zielanzahl an Bits erneut zu berechnen. Die Schleife der Schritt 368, 370, 372 und 374 wird solange ausgeführt, bis die in Schritt 370 berechnete als Ziel gesetzte Anzahl an Bits zwischen der maximalen und der minimalen Datenrate liegt.
  • Schritt 376 berechnet anschließend den Bitnormierungsfaktor Si und die Normierungsfaktoren für innere und nicht-innere Rahmen SIi bzw. SNi. Innere und nicht-innere Rahmen benötigen verschiedene Anzahlen an Bits, um die gewünschte Qualität zu erzielen. Zunächst wird der Bitnormierungsfaktor Si gemäß der nachstehenden Gleichung berechnet. Si = Fi/Bi (12)
  • Anschließend werden die Normierungsfaktoren für die inneren und nicht-inneren Bilder berechnet. Der innere Normierungsfaktor SIi wird gemäß der nachstehenden Gleichung berechnet. SIi = Si – (If·Si') (13)
  • Große innere Rahmen können eventuell einen Pufferunterlauf verursachen, und der innere Faktor If sieht einen Sicherheitsfaktor vor, indem er die Änderung der Bitzuweisung des inneren Bildes auf 20 % beschränkt, wenn If = 0.8 ist (d.h. SIi ist auf den Bereich 0.8 < SIi < 1.2 beschränkt). Es sollte beachtet werden, dass Si' = Si – 1.0. Der nicht-innere Bitnormierungsfaktor SNi wird gemäß der nachstehenden Gleichung berechnet. SNi = Si – (–If ·Si'·BIi/BNi) (14)wobei BIi und BNi die gesamten inneren und nicht-inneren Bits über den iten Abschnitt vom Bildtyp sind.
  • Schließlich wird die Anzahl an für jeden Rahmen zu verwendenden Bits unter Verwendung der ursprünglichen Anzahl an Bits multipliziert mit einem geeigneten Normierungsfaktor (entweder der innere oder der nicht-innere Normierungsfaktor) bestimmt. Der Prozess der 16B (und ebenso der 14) endet anschließend.
  • Zu diesem Zeitpunkt ist die modifizierte Anzahl an Bits für jeden Rahmen berechnet worden und Schritt 286 der 12 beendet. Es ist jedoch möglich, dass die geänderte Anzahl an Bits für die Rahmen einen Pufferunterlauf verursacht, oder dass sich die Belegung der Anzahl an Bits an der Endkante des Editiersegments derart geändert hat, dass anschließende Rahmen außerhalb des Editiersegment einen Unterlauf aufweisen. Diese Situationen werden nach Bedarf in Schritt 288 der 12, der näher in der 17 dargestellt ist, überprüft und korrigiert.
  • 17 zeigt den Prozess zum Überprüfen und Korrigieren eines Pufferunterlaufs und zum Überprüfen und Korrigieren möglicher Probleme aufgrund eine Bitneuzuweisung an der Endkante des Editiersegments. In der 17 tastet der Schritt zunächst die Bitzuweisung für jeden der Rahmen des Editiersegments ab. Schritt 392 überprüft anschließend mit Hilfe des vorstehend beschriebenen VBV-Models einen Unterlauf für die neue Bitverteilung. Es wird eine Liste an Punkten erzeugt, an denen Unterlaufprobleme vorhanden sind (u_flow Liste), und es wird die Anzahl an Bits, die erforderlich ist, um jeden Unterlauf zu beseitigen, bestimmt und in u_val gespeichert. Es ist wichtig, nicht zu vergessen, dass ein Unterlauf aufgrund eines Bildes auftritt, das durch zu viele Bits dargestellt wird. Wenn ein Bild mit einer hohen Qualität, das durch eine hohe Anzahl an Bits dargestellt wird, von dem Dekodierer aus dem Puffer gelesen wird, wird eine hohe Anzahl an Bits aus dem Puffer entfernt, wenn das Bild dekodiert wird, und können diese Bits nicht schnell genug wieder aufgefüllt werden. Folglich werden zur Beseitigung eines Unterlaufs Bits aus Bildern entfernt. Ferner er zeugt Schritt 392 eine Liste mit Punkten, an denen der Puffer voll ist und speichert diese Punkte in einer u_flow Liste. Es sollte beachtet werden, dass gemäß obiger Beschreibung kein Problem bei einem vollen Puffer auftritt, da die Daten dann, wenn der Puffer voll wird, nicht länger an den Puffer übertragen werden.
  • Schritt 394 überprüft die Pufferbelegung an der Endkante des Editiersegments. In dem VBR-Betriebsmodus ist es möglich, dass sich die Pufferbelegung an der Endkante des editierten Segments von der des Laufs, der modifiziert wurde, selbst dann unterscheidet, wenn das editierte Segment durch exakt die gleiche Anzahl an Bits ersetzt wird. Dies rührt von der Eigenart des VBV-Models für die VBR her. Folglich ist es wichtig, die Pufferbelegungsbedingungen zu überprüfen. Es ist ziemlich unkompliziert, zu zeigen, dass es keine Probleme gibt, wenn die Pufferbelegung an der Endkante eines Editiersegments exakt die gleiche oder höhere als vor der Neuverteilung der Bits ist. Wenn die Pufferbelegung exakt der vorherigen entspricht, ist dann die der folgenden Rahmen ebenso exakt die des vorherigen Laufs, der bereits auf VBV-Verletzungen überprüft worden ist. Wenn die Belegung höher als vorher ist, besteht die Möglichkeit, dass der Puffer während folgender Rahmen voll wird, wobei dies ein zulässiger Zustand ist, gleich wenn der Puffer voll ist, so dass Daten nicht länger an den Puffer geliefert werden und ein Unterlauf nicht auftritt. Es tritt jedoch ein dritter Fall auf, wenn die Pufferbelegung an der Endkante verglichen mit dem vorherigen Durchlauf niedriger ist. Hierdurch kann ein Pufferunterlauf in folgenden Rahmen verursacht werden, weshalb dieser Zustand genau überprüft werden muss.
  • Es gibt zwei verschieden Weisen, auf welche der letzte Rahmendes Editiersegments behandelt werden kann, um einen Pufferunterlauf in Rahmen außerhalb des Puffersegments zu verhindern. Der erste Ansatz ist der leichtere von beiden. Wenn die Anzahl an Bits des letzten Rahmens des Editiersegments in einer Pufferbelegung resultiert, die höher oder gleich der ursprünglichen Kodierung ist (in den Logdateien gespeichert), treten keine Unterlaufprobleme auf und muss folglich nichts unternommen werden. Wenn die Anzahl an Bits in dem Puffer für den letzten Rahmen des Editiersegments geringer als die Anzahl an Bits in dem Puffer für das ursprünglich kodierte Segment ist, kann diese reduzierte Anzahl an Bits gegebenenfalls einen Unterlauf für Rahmen außerhalb des Editiersegments verursachen, und zwar in Abhängigkeit der Inhalte der Rahmen nach dem Editiersegment. Anstelle die Anzahl an Bits zu bestimmen, die benötigt werden, um das Auftreten eines Unterlaufs zu verhindern, wird die Belegung des Puffers für den letzten Rahmen des Editiersegments einfach derart angepasst, dass sie der Belegung für die ursprüngliche Kodierung entspricht. Aus Sicherheitsgründen kann die Pufferbelegung oder Pufferfülle für das Ende des Editiersegments auf einen Wert von 10 % oberhalb der Belegung der ursprünglichen Kodierung erhöht werden, um sicherzustellen, dass kein Unterlauf auftreten kann. Wenn die Pufferbelegung des letzten Rahmens des Editiersegments derart erhöht werden muss, dass sie auf einem Pegel der ursprünglichen Kodierung aufweist, muss die Anzahl an Bits des Endrahmens verringert werden, so wie es in Schritt 398 ausgeführt wird. Der letzte Rahmen wird als Unterlaufpunkt behandelt und in einer u_lauf Liste platziert, und die Anzahl an Bits, die aus dem letzten Rahmen genommen werden müssen, um den Pufferpegel auf den Pegel der ursprünglichen Kodierung zu erhöhen, werden zu u_val addiert.
  • Ein zweiter Ansatz zur Handhabung eines möglichen Unterlaufs, der durch die erneute Kodierung des Editier segments verursacht wird, ist ein iterativer Prozess, welcher den minimal möglichen Pegel des Puffers für den letzten Rahmen des Editiersegments, der keinen Pufferunterlaufzustand außerhalb des Editierrahmens verursacht, schätzt. Dies wird von einem Prozess vorgenommen, welcher die größtmögliche Differenz zwischen der Pufferbelegung der ursprünglichen Kodierung und der Pufferbelegung der erneuten Kodierung für den letzten Rahmen des Editiersegments schätzt.
  • In dem in der 18 gezeigten Ablaufdiagramm wird die Pufferbelegung der ursprünglichen Kodierung mit B0 beschrieben und in den Logdateien der ursprünglichen Kodierung gespeichert. Die Pufferbelegung in einem Rahmen 'i' hinter der Grenze des Editiersegments ist Bi, mit I = 1 ... n, wobei 'n' dem letzten Rahmen in dem zu kodierenden Film entspricht. Im Gegensatz zum ersten Ansatz, bei dem der Pufferpegel der erneuten Kodierung einfach auf wenigstens den Punkt gesetzt wird, den er für die ursprüngliche Kodierung hatte, muss bei dem zweiten Ansatz bestimmt werden, wie viel niedriger als die ursprüngliche Kodierung die Pufferbelegung für die erneute Kodierung gehen kann, ohne dass Unterlaufbedingungen für einen der nachfolgenden Rahmen erzeugt werden. Die neue niedrige Pufferbelegung an der Grenze, welche diese Bedingung erfüllt, soll B0' sein. Dies ist die minimal zulässige Pufferbelegung an der Editiersegmentgrenze. Die Möglichkeit, eine Pufferbelegung zu haben, die geringer ist als die des vorherigen Durchlaufs, entsteht als Folge der Tatsache, dass die Differenz in späteren Rahmenintervallen nach dem Editiersegment aufgenommen wird, und folglich tritt kein Unterlauf auf.
  • Beginnend mit Schritt 420 in der 18 soll angenommen werden, dass die Pufferbelegung B0' des erneut kodierten Videos des letzten Rahmens des Editiersegments Null ist, ohne dass später ein unterlauf erzeugt wird. Dies ist die großzügigste Schätzung für B0', da es möglich ist, dass die Pufferbelegung höher sein muss, um einen Pufferunterlauf zu verhindern, wobei die Pufferbelegung jedoch nicht unter dem Wert Null liegen kann. Der Prozess der 18 wird jedoch überprüfen, ob die Belegung von Null für den letzten Rahmen des erneute kodierten Editiersegments einen Unterlauf erzeugt, und wenn dies so ist, die Pufferbelegung an dem Ende des Editiersegments erhöhen, bis ein Wert von B0' ermittelt ist, der keinen Unterlauf erzeugt.
  • Der in der 18 gezeigte Prozess berechnet die geschätzte Pufferbelegungsdifferenz X' zwischen der ursprünglichen Kodierung und der erneuten Kodierung. X' = B0 – B0' (15)
  • Die Differenz X' wird als Schätzwert bezeichnet, da die Differenz nicht endgültig bestimmt werden kann, bis sichergestellt ist, dass X' überprüft und nach Bedarf angepasst worden ist, bis alle Möglichkeiten eines Unterlaufs ausgeschlossen worden sind. Das in der 18 gezeigte Verfahren nimmt sich einen Rahmen zurzeit vor, d.h. I = 1. Für den ersten Rahmen ist die geschätzte Differenz mit B0' gleich Null einfach der Wert der Pufferbelegung für den ersten Rahmen der ursprünglichen Kodierung, so wie in Schritt 422 berechnet. X' = B0 (16)
  • Anschließend bestimmt der Schritt 424 die Anzahl an Bits, die von den Rahmen rechts zu dem Grenzrahmen aufgenommen werden. Die Anzahl an aufgenommenen Bits ist eine Phrase, die dazu verwendet wird, um auf die Bits Bezug zu nehmen, die von Rahmen nach dem Editiersegment der ursprünglichen Kodierung in dem Puffer platziert werden könnten, jedoch tatsächlich nicht während der ursprünglichen Kodierung in dem Puffer platziert worden sind, da der Puffer voll war und folglich keine Bits mehr annehmen konnte. Die Größe Δti beschreibt die Zeitspanne des iten Rahmens der ursprünglichen Kodierung nach dem Editiersegment während der der Puffer voll war und nun aufgrund des reduzierten Werts von B0' zusätzliche Bits aufnehmen kann. Die Zeitspanne Δti muss kürzer als die Zeitspanne eines Rahmens sein, da der Puffer nicht für einen gesamten Rahmen voll sein kann, und ist länger oder gleich dem Wert Null. Die Zeitspanne Δti ist Null, wenn der Puffer während der ursprünglichen Kodierung nicht einmal voll gewesen ist. Folglich gilt: 1/P > Δti ≥ 0 (17)wobei 'P' die in Rahmen pro Sekunde gemessene Bildrate ist und gewöhnlich bei 30 Rahmen pro Sekunde liegt. Die Gesamtzahl an Bits rechts des Editiersegment, die aufgrund der Tatsache, dass der Puffer voll war, aufgenommen werden, wird wie folgt berechnet: α1 = Σik=1 ΔtkRmax (18)wobei Rmax die Füllrate des Puffers ist.
  • Schritt 426 bestimmt, ob das Verfahren zum Bestimmen des Pufferbelegungspegels des letzten Rahmens des Editiersegments enden kann. Wenn die Summe der von dem iten Rahmen aufgenommenen Bits X' überschreitet, d.h., wenn ai > X' ist, wird dann das Verfahren gestoppt, da der Puffer durch spätere Rahmen aufgefüllt werden kann, so dass ein Pufferunterlauf nicht auftreten wird und Schritt 428 ausgeführt wird. Alternativ wird der geschätzte Wert von X' dann, wenn der letzte Rahmen n er reicht ist (i = n), kein Unterlaufproblem bis zum Ende des Videos verursachen.
  • Wenn die Antwort von Schritt 426 "Nein" ist, berechnet der Schritt 430 die Anzahl an Bits bi, die zur Aufnahme verblieben, wie folgt: bi = X' – ai (19)
  • Schritt 432 bestimmt anschließend, ob bi > Bi, wobei Bi die Pufferbelegung für den iten Rahmen nach dem Editiersegment ist. Wenn bi > Bi ist, ist der geschätzte Wert der Differenz X' zu groß und verursacht einen Unterlauf, da mehr Bits zur Aufnahme zurückbleiben als die momentane Pufferbelegung 'Bi' zulässt. Folglich können unter den Bits, die zur Aufnahme zurückbleiben, nur 'Bi' Bits aufgenommen werden, ohne einen Unterlauf zu verursachen. Anschließend muss der Schätzwert X' der Differenz in Schritt 434 abgestimmt werden. In Schritt 434 wird der abgestimmte Wert von X' als die zur Aufnahme verbleibenden Bits plus die absorbierten Bits berechnet. X' = Bi + ai (20)
  • Wenn der Schritt 432 bestimmt, dass bi ≤ Bi ist, ist kein Unterlaufproblem vorhanden, da die Pufferbelegung an den iten Rahmen größer als die Bits ist, die zur Aufnahme verbleiben, besteht kein Bedarf daran, den Schätzwert von X' zu ändern und schreitet der Ablauf zu Schritt 436 voran. In Schritt 436 wird der nächste Rahmen überprüft (i wird um 1 inkrementiert) und die Schleife mit den Schritten 424, 426, 430, 432, 434 und 436 wiederholt, bis die Bestimmung von Schritt 426 eine positive Antwort aufweist.
  • Wenn Schritt 426 eine positive Antwort aufweist, ist der Schätzwert X' annehmbar und die minimal zulässige Pufferbelegung B0' an der Grenz des Editiersegments in Schritt 428 folglich: B0' = B0 – X' (21)
  • Wenn die aktuelle Pufferbelegung des erneut kodierten Rahmens des Editiersegments geringer als B0' ist, wird eine Unterlaufsituation bedingt durch die Neuzuweisung des Bits auftreten. In diesem Fall wird der letzte Rahmen als Unterlaufpunkt in der u_flow Liste markiert und die Anzahl an Bits, die aus dem letzten Rahmen des Editiersegments genommen werden muss, um den Unterlaufzustand (die Differenz zwischen der Anzahl an Bits für das geänderte Video und der Anzahl an Bits B0', welche die minimal zulässige Pufferbelegung ergeben) zu verhindern, in u_val platziert, wie vorstehend für den Schritt 392 beschrieben.
  • Es sollte beachtet werden, dass es für das Kodiersystem der vorliegenden Erfindung wünschenswert ist, die Pufferbelegung für alle Punkte in dem Video zu wissen, und dass diese Information in den Logdateien gespeichert ist. Wenn die Pufferbelegung in dem letzten Rahmen des Editiersegments jedoch verringert wird, könnte die Pufferbelegung für Rahmen nach dem Editiersegment geändert werden, wodurch die Pufferbelegungsinformation in den Logdateien ungenau wird und folglich eine Korrekturmaßnahme durchzuführen ist, welche die Pufferbelegung für Rahmen nach dem Editiersegment erneut berechnet.
  • Es wird Bezug auf den in der 17 gezeigten Prozess genommen, in dem der Schritt 396 anschließend bestimmt, ob irgendwelche Einträge in der u_flow Liste vorhanden sind. Wenn keine vorhanden sind, gibt es keine Un terlaufprobleme, woraufhin der Prozess der 17 endet. Wenn Einträge in der u_flow Liste vorhanden sind, schreitet der Ablauf zu Schritt 398 voran, der Abschnitte links jeder Position in der u_flow Liste bis zu dem nächsten o_flow Punkt als geschützt markiert, und es werden Bits gleich der entsprechenden Anzahl an Bits in u_val aus diesen Abschnitten entfernt. Da ein Pufferunterlauf durch zu viele Bits in einem oder mehreren Rahmen verursacht wird, löst eine Verringerung der Anzahl an Bits in den Rahmen das Unterlaufproblem. Um einer deutlichen Reduzierung der Bildqualität vorzubeugen, die durch die Entfernung von Bits zur Verhinderung eines Unterlaufs verursacht wird, werden diese Bits nicht nur aus dem Rahmen an dem Unterlaufpunkt, sondern ebenso aus allen Rahmen zurück bis zu dem letzten Punkt, an welchem der Puffer voll war, entfernt. Hierdurch kann die höchste Bildqualität bei gleichzeitiger Verhinderung eines Unterlaufs bereitgestellt werden.
  • Diese in Schritt 398 entfernten Bits werden anschließend gleichmäßig auf die Abschnitte, die in Schritt 400 nicht als geschützt markiert wurden, verteilt, und der in der 17 gezeigte Prozess beginnt erneut. Die Verteilung der Bits in Schritt 400 garantiert nicht, dass der Unterlauf kein Problem mehr sein wird, weshalb es erforderlich ist, die Unterlaufbedingungen erneut mit Hilfe des gesamten Prozesses der 17 iterativ zu überprüfen.
  • Nach Abschluss des in der 17 gezeigten Prozesses ist der in der 12 gezeigte Schritt 288 abgeschlossen und wird der in der 12 gezeigte Schritt 290 ausgeführt. Schritt 290 bestimmt mit Hilfe der in Schritt 282 bestimmten Ratenquantisiererfunktion den mittleren Quantisiererwert für jeden Rahmen. Die Anzahl an gewünschten Bits ist vorher in Schritt 286 berechnet und überprüft worden, um zu sehen, ob in Schritt 288 Unterlaufprobleme existieren, wobei der Quantisiererwert bestimmt werden muss, um die Daten derart neu zu kodieren, dass sie die Gesamtzahl an Bits aufweisen. Dieser wird einfach mit Hilfe der Ratenquantisiererfunktion und durch Bestimmen des Quantisiererwerts durch Nachsehen der Rate bestimmt.
  • Um den Quantisiererpegel auf einer Bild-neben-Bild Basis zu bestimmen, ist in Schritt 282 eine Ratenquantisiererfunktion (RQF) bestimmt worden. Um diese Funktion zu schätzen, sind zwei Datenpunkte für jedes Bild erforderlich. Die RQF wird durch die nachstehende Gleichung beschrieben. R = X·Q(–g) + H (22)wobei R die Anzahl an Bits ist, die zum Kodieren eines Bildes erforderlich ist, Q die Quantisierskalierung ist und X, g und H die Bild-neben-Bild Basiskodierkenngrößen sind. H beschreibt die Bits, die von der Quantisiererskalierung unabhängig sind, so dass H die Bits, die von dem Header, den Bewegungsvektoren, den DC-Koeffizienten usw. genutzt werden, beschreibt. X und g werden aus einem Paar von Datenpunkten geschätzt, welche den zum Kodieren des Bildes verwendeten AC-Koeffizientenbits für eine vorgegebene Quantisiererskalierung entsprechen.
  • Der erste Durchlauf des Kodierers kann dazu verwendet werden, die zwei Datenpunkte für jedes kodierte Bild in der Videosequenz zu erzeugen. Dies kann durch ein Paar alternierender Quanisiererstaffelwerte erfolgen, die für jeden Makroblock in dem Bild verwendet werden. Deise werden verarbeitet, um die Ratenquantisierermodelparameter 'X' und 'g' zu berechnen. Diese zwei Parameter können zusammen mit dem Wert von H in einer Datei gespeichert werden, und zwar einer pro Rahmen des kodierten Videos.
  • Um die Quantisiererskalierung zu bestimmen, welche die Zielbits erzeugt, die einem bestimmten kodierten Rahmen des Videos zugewiesen sind, wird die obige Gleichung mit der Größe 'R', welche die Zielbits beschreibt, verwendet und werden die Werte von (X, g, H) aus der gespeicherten Datei, welche der vorstehend beschriebenen Logdatei entsprechen kann, gelesen. Der Wert von 'Q', der für diese Gleichung am geeignetsten ist, entspricht der gewünschten Quantisiererskalierung.
  • Anschließend kodiert der Schritt 292 die geänderten Abschnitte des Video mit Hilfe der in Schritt 290 bestimmten Quantisiererwerte erneut. Es sollte beachtet werden, dass die erneut kodierten Segmente des vorher kodierten Videos Kodierartefaktprobleme verursachen können, wenn während der erneuten Kodierung nicht bestimmten Verfahren gefolgt wird. Die Details des Neukodierungsprozesses zur Vermeidung von Kodier- und Dekodierartefakten werden nachstehend in einem getrennten Abschnitt beschrieben. Nachdem das Video erneut kodiert wurde, wird es für das vorher kodierte Video in den Bitdatenstrom eingesetzt, woraufhin der Prozess endet.
  • Der Benutzer kann das Video, wie vorstehend unter Bezugnahme auf die 5 beschrieben, betrachten, nachdem es erneut kodiert wurde, um zu bestimmen, ob es akzeptabel ist. Wenn es nicht akzeptabel ist, muss der Benutzer das neu kodierte Video nicht akzeptieren und kann damit fortfahren, das vorher kodierte Video zu verwenden. Wenn der Benutzer das neue kodierte Video als annehmbar bewertet, wird das neu kodiert Video das vorher kodierte Video ersetzen. Der Benutzer kann anschlie0end ein neues Segment des Videos editieren, und zwar entweder räumlich oder zeitlich, wie in der 5 gezeigt.
  • Die 19A und 19B zeigen zwei verschiedene Beispiele mit Bitraten aus einer ursprünglichen Videokodierung und nachdem der Benutzer manuell Qualitätsprioritäten eingegeben hat. In den 19A und 19B wird die Bitrate (mit einem Maßstab von 106, was Megabits anzeigt) gegenüber einer Gruppe-an-Bildern Anzahl geplottet. In den abgebildeten Beispielen weist eine GOP 15 Bilder auf und ist jede GOP pro 0.5 Sekunden angezeigt. Ferner stellen die durchgezogenen Linien die ursprüngliche Kodierung und die gestrichelten Linien die Kodierung, nachdem der Benutzer die Qualität des Bildes manuell angepasst hat, dar.
  • Die 19A zeigt eine Kodierung mit fünf verschiedenen Prioritätsbereichen, die Prioritäten von 2, –3, 3, 0 aufweisen und geschützt sind. Die Zeitspanne mit der Priorität von 3 verwendet mehr Bits nach der erneuten Kodierung als die ursprüngliche Kodierung. Da die Prioritäten lediglich in einem relativen Verhältnis zueinander stehen, weist der Abschnitt mit einer Priorität von 2 keine deutlich erhöhte Bitrate auf, während die Abschnitt mit –3 und 0 eine reduzierte Bitrate aufweisen. Der geschützte Bereich sollte eine Bitrate ausweisen, die vor und nach der erneuten Kodierung gleich ist.
  • 19B zeigt ein zweites Beispiel mit Bereichen, die vom Benutzer gewählte Prioritäten von 0, 2, 0, 4 bzw. 0 aufweisen. Da die Prioritäten, wie vorstehend beschrieben, relativ zueinander sind, bedeutet eine Priorität von Null nicht, dass die Bitrate unverändert ist, sonder einfach eine Priorität relativ zu den anderen Abschnitten mit Prioritäten von 2 und 4 ist. Um dem Abschnitt mit der Priorität von 4 eine höhere Bitrate zu verleihen, werden die drei Abschnitt mit der vom Benutzer gewählten Priorität von 0 verringert, und der Abschnitt mit einer Priorität von 2 weist vor und nach der Kodierung annähernd die gleiche Bitrate auf.
  • Die Verarbeitung der zeitlichen manuelle Editierung findet in der bevorzugten Ausführungsform der Erfindung in der Arbeitsstation 30 der 1A statt. Da die zeitliche manuelle Editierung jedoch nicht während des Videokodierprozesses stattfindet, kann auch die Arbeitsstation 10 die Berechnungen der zeitlichen manuellen Editierung ausführen, ohne die Geschwindigkeit des Videokodierprozesses herabzusetzen.
  • Es sollte beachtet werden, dass die vorliegende Erfindung detailliert bezüglich einer Änderung der Bildqualität verschiedener Zeitsegmente innerhalb eines Editiersegments beschrieben wurde. Es ist natürlich möglich, dieses Konzept derart zu erweitern, dass die Qualität von Abschnitten, die sich nicht in dem gleichen Zeitsegment befinden, geändert wird. Beispielsweise ist es möglich, die Lehre der vorliegenden Erfindung anzuwenden, um die Qualität der letzten 5 Minuten eines Film zu Kosten der ersten 5 Minuten zu verbessern. Wenn es, wie vorstehend beschrieben, gewünscht wird, die Qualität von Zeitspannen außerhalb eines einzelnen Editiersegments zu ändern, muss der Benutzer die für ihn interessanten Segmente nacheinander anschauen und überprüfen, die Bits erneut zuweisen und sicherstellen, dass die Beschränkungen bezüglich der Gesamtzahl an Bits für den Film sowie die Pufferbelegung an der Endkante jedes Abschnitts innerhalb der beschriebenen Beschränkungen liegen. Ein auf diesem Gebiet vertrauter Fachmann könnte dies ohne große Schwierigkeiten auf der Grundlage der hierin offenbarten Lehre ausführen.
  • Die zeitliche manuelle Editierung ist dahingehend beschrieben worden, dass die Anzahl an Bits für die ursprüngliche Kodierung des Editiersegments gleich der Anzahl an Bits für die erneute Kodierung des Editiersegments gehalten werden soll. Wenn es jedoch erwünscht ist, kann das erneut kodierte Editiersegment weniger Bits verbrauchen, oder wenn ausreichend Speicherkapazität vorhanden ist, kann die Anzahl an Bits für das erneute kodierte Segment die Anzahl an Bits der ursprünglichen Kodierung überschreiten. Ferner ist es möglich, die ursprüngliche Kodierung des Videos derart auszuführen, dass sie nicht den gesamten verfügbaren Speicherplatz auf dem endgültigen digitalen Speichermedium verbraucht. Folglich kann die Gesamtzahl an Bits nach der erneuten Kodierung irgendeinen Betrag verbrauchen, der über oder unter der ursprünglichen Kodierung liegt, wie beispielsweise einen Betrag zwischen 0 und 20 % mehr oder wenigen, was 5 % und 1 % mehr oder weniger Bits umfasst.
  • Die zeitliche Editierung ist bezüglich der Änderung des Videos nach der Kodierung beschrieben worden. Die hierin offenbarte Lehre kann jedoch auf System angewandt werden, bei denen keine anfängliche Kodierung vorgenommen wird. Ferner kann die Kehre der zeitlichen manuellen Editierung, welche die Nutzung eines gemeinsamen Bitpools betrifft, auf beispielsweise das Konzept der räumlichen manuellen Editierung für die Videorahmen angewandt werden. Ferner kann die Art, mit welcher die räumliche manuelle Editierung, wie vorstehend beschrieben, die einzelnen Rahmen verarbeitet, auf eine Reihe an Rahmen angewandt werden, um eine zeitliche Qualitätseditierung zu erzielen.
  • B. QUALITÄTSÄNDERUNG INNERHALB VON RAHMENBEREICHEN
  • 20 zeigt das allgemeine Verfahren zum Änderung der Qualität von Beriechen innerhalb eines oder mehrerer Rahmen. Nach Beginn des Verfahren führt Schritt 450 eine automatische Videokodierung aus, welche das eingegebene Video in ein komprimiertes digitales Format, wie beispielsweise ein MPEG-Format oder ein anderes Format kodiert, wie vorstehend in der Abschnitten bezüglich der Systemkomponenten und des allgemeinen Systembetriebs beschrieben. Schritt 452 zeigt das kodierte Video einem Benutzer und Schritt 454 ermöglicht es dem Benutzer, Befehle einzugeben, die Qualitätsänderungen für Berieche innerhalb eines oder mehrerer Rahmen anzeigen.
  • 21 zeigt einen Rahmen eines Videos, das auf einem Monitor, wie beispielsweise dem in der 1 gezeigten Videoanzeigemonitor 61, gezeigt wird. Der in der 21 gezeigte Videorahmen ist derart dargestellt, dass er einen Baum 465, eine Person 467, einen Vogel 468 und zwei Wolken 471 aufweist.
  • In der 21 sind Bereiche innerhalb des Rahmens derart definiert, dass sie den Bereich 466, welcher den Baum umgibt, den Bereich 469, welcher die Person umgibt, und den Bereich 470, welcher den Bereich 469 überlappt und den Vogel 468 und den Kopf der Person 467 beinhaltet, umfassen. Diese Bereiche sind mit Hilfe des in der 1A gezeigten graphischen Zeigegeräts 33 gezeichnet worden. Die von dem Benutzer in der 21 gesetzten Qualitätsprioritäten können –5 für den Bereich 466, welche den Baum beinhaltet, +2 für den Bereich 469, welcher die Person beinhaltet, und +4 für den Beriech 470, welcher den Vogel und den Kopf der Person beinhaltet, umfassen. Die anderen Bereiche des in der 21 gezeigten Videorahmens weisen keine vom Benutzer bestimmten Prioritäten auf und werden folglich mit der "Don't Care"-Priorität bestimmt. Die "Don't Care"-Bereiche sind, wie nachstehend beschrieben, Bereiche, die nach der Änderung der Quantisiererpegel für die vom Benutzer bestimmten Bereiche als erstes modifiziert werden, um die Gesamtzahl an Bits für die Kodierung des Rahmens, einschließlich der vom Benutzer definierten Prioritäten, derart anzupassen, dass sie gleich der Anzahl an Bits sind, die aus der ursprünglichen Kodierung des Rahmens resultieren. Wenn der Benutzer die Qualität der Bereiche des Rahmens nicht ändern will, markiert er diese Bereiche so, dass sie die Priorität Null aufweisen.
  • In der bevorzugten Ausführungsform der Erfindung erzeugt der Benutzer dann, wenn er die Prioritätsbereiche innerhalb eines Videorahmens definiert, zunächst mit Hilfe eines graphischen Zeigegeräts rechteckige Bereiche auf einem angezeigten Rahmen des Video. Die später definierten Bereiche werden auf zuvor definierten Bereichen angeordnet oder können zuvor definierte Bereich überlappen. Obgleich die vorliegende Erfindung bezüglich einer Definierung von rechteckigen Beriechen beschrieben worden ist, kann die Lehre der Erfindung natürlich auf einen beliebig geformten Bereich, einschließlich von Bereichen mit Kurven, wie beispielsweise Kreise oder Ellipsen, mehreckige Bereiche, wie beispielsweise ein Achteck oder ein Sechseck, oder irgendeine andere vom Benutzer gebildete Form, die Kurven und/oder gerade Linien mit einschließt, angewandt werden. Auf die Definierung jedes Bereichs hin definiert der Benutzer die Priorität für den Bereich. Alternativ kann der Benutzer die Form alle Bereiche definieren und anschließend die Prioritäten für diese Bereiche zuweisen.
  • Wenn der Benutzer zunächst die Prioritäten innerhalb eines Bereichs definiert, entsprechen die Bereiche den Pixelanordnungen. Der nachstehend beschriebene Prozess für die Zuweisung von Prioritäten arbeitet jedoch auf einer Makroblock-Basis, wobei ein Makroblock eine in der digitalen Videokodierung verwendete Einheit ist. Wenn sich ein Makroblock innerhalb oder auf dem Außenumfang eines vom Benutzer definierten Bereich befindet, so wird diesem Makroblock folglich die Priorität des Bereichs zugewiesen. Ein auf diesem Gebiet vertrauter Fachmann kann die dem vom Benutzer definierten Beriech entsprechenden Makroblock mit Hilfe einfacher Mathematik auf einfache Art und Weise bestimmen. Für den Außenumfang eines vom Benutzer definierten Bereichs kann als Alternative zum einfachen Einschließen eines Makroblocks in einen vom Benutzer definierten Bereich, wenn sich der Außenumfang des Bereichs mit dem Makroblock überschneidet, ein anspruchsvollerer Prozess zum Bestimmen, ob der Makroblock in den Beriech mit eingeschlossen werden sollte, ausgeführt werden, indem der Makroblock in den vom Benutzer definierten Bereich mit eingeschlossen wird, wenn mehr als 50 % des Makroblocks innerhalb des vom Benutzer definierten Bereichs liegen, und indem der Makroblock aus dem vom Benutzer definierten Bereich ausgeschlossen wird, wenn weniger als 50 % des Makroblocks innerhalb des vom Benutzer definierten Bereichs liegen.
  • Nachdem die Bereiche und ihre Prioritäten definiert worden sind, kann der Benutzer die Überlappungen der Bereiche ändern, wenn er dies wünscht. Beispielsweise kann der Benutzer den in der 21 gezeigten Bereich 469 "anklicken", während er eine vorbestimmte Funktionstaste hält, und den Bereich 469 derart ändern, dass er über dem Bereich 470 liegt, so dass die gesamte Person die Priorität des Bereichs 469 und einzig der Vogel 468 die dem Bereich 470 zugewiesene Priorität aufweist. Den überlappenden Bereichen wird eine Stapelpriorität verliehen, wenn sie von dem Benutzer eingegeben werden. Diese Stapelpriorität wird nach Bedarf angepasst, wenn vom Be nutzer definierte Bereiche hinzugefügt, gelöscht oder modifiziert werden.
  • Nachdem die Bereiche definiert worden sind, kann der Benutzer die Bereiche ferner nach Wunsch neu formen oder mit Hilfe des graphischen Zeigegeräts 33 bewegen. Ferner können die Bereiche, welche von dem Benutzer definiert worden sind, mit Hilfe des graphischen Zeigegeräts 33 entfernt werden. Es sollte beachtet werden, dass, obgleich die Bereiche gelöscht sind, einzig die vom Benutzer definierten Prioritäten und nicht die ursprünglichen Videodaten innerhalb des entfernten Bereichs gelöscht sind.
  • Während oder nach der automatischen Kodierung kann der Benutzer, wie in dem obigen Abschnitt über die Änderung der Qualität in Zeitabschnitten beschrieben, das kodierte Video überprüfen und immer dann, wenn ein Rahmen oder eine Zeitspanne auftritt, der/die ihn interessiert, einfach eine Taste auf einer Tastatur drücken oder über eine andere Vorrichtung anzeigen, dass ihn der bestimmte Rahmen oder die bestimmte Zeitspanne interessiert. Später kann der Benutzer zu diesem Rahmen oder der bestimmen Zeitspanne zurückkehren und die Zeitspanne ausführlich untersuchen und Eigenschaften innerhalb dieser Zeitspanne nach Bedarf ändern.
  • Der Prozess eines Benutzer, der Bereiche innerhalb eines Videorahmens definiert, wurde vorstehend für den einfachen Fall beschrieben, bei dem es einzig eines Datenrahmen gibt, der von dem Benutzer definiert wird. Es ist jedoch ziemlich mühsam, Datenrahmen in einer Videosequenz bei einem Rahmen pro Zeit zu bearbeiten, und folglich ermöglicht die Erfindung es, dass der Benutzer einen Bereich in einer ersten Zeitspanne und einen entsprechenden Bereich in einer späteren Zeitspanne definiert. An schließend wird eine Interpolation ausgeführt, so dass alle Videorahmen zwischen dem ersten Rahmen und dem letzten Rahmen automatisch Bereiche aufweisen, welche den vom Benutzer definierten Bereichen für den ersten und den letzten Rahmen entsprechen, und denen die gleichen Prioritäten wie dem ersten Bereich und/oder dem letzten Bereich oder eine Priorität auf der Grundlage der Prioritäten des ersten und des letzten Rahmen zugewiesen wird. Ferner werden die Stapelprioritäten der überlappenden Bereich während der Interpolation aufrechterhalten. Nachdem die Bereiche der Zwischenrahmen automatisch erzeugt wurden, kann der Benutzer anschließend die automatisch erzeugten Bereiche ändern, indem er nach Bedarf die Prioritäten ändert, die Formen der Bereiche ändert, neue Bereiche hinzufügt oder die Bereiche löscht.
  • Nachstehend ist ein Beispiel für den Ablauf der Interpolation gegeben. Zunächst wählt der Benutzer beispielsweise Prioritätsbereiche für zwei Rahmen an den Zeitpunkten t_1 und t_n. Nachdem der Benutzer einen Bereich in dem Rahmen t_1 und einen entsprechenden Bereich in t_n zugewiesen hat, werden die Koordinaten dieser zwei Bereiche über dazwischenliegende Rahmen interpoliert, um Bereichsbestimmungen für alle Rahmen zwischen t_1 und t_n zu erhalten. Die Interpolation kann nicht einzig für den aktuell definierten Bereich, sondern ebenso für die Qualitätspriorität ausgeführt werden. Für die Interpolation wird eine einfache lineare Funktion verwendet. Es soll angenommen werden, dass ein Benutzer einen Bereich A eines Rahmens t_1 mit einem Punkt a_1 definiert hat, und dass es einen entsprechenden Punkt a_n in dem entsprechenden Bereich A in dem Rahmen t_a gibt, wobei die entsprechenden Punkte in den dazwischen liegenden Rahmen a_2, a_3, ..., a_(n-1) eine horizontale Ordinate aufweisen, die wie folgt definiert ist: a_i(h) = a_1(h) + (a_n(h) – a_1(h)) × (i-1)/(n-1) (23)und eine vertikale Ordinate aufweisen, die wie folgt definiert ist: a_i(v) = a_1(v) + (a_n(v) – a_1(v)) × (i-1)/(n-1) (24)wobei h und v eine horizontalen und einer vertikalen Ordinate des in Frage kommenden Punktes entsprechen. In diesem Prozess werden einzig die Eckpunktes eines den Bereich definierenden Vielecks verwendet und die Eckpunkte interpoliert. Die Bereiche werden anschließend durch die Eckpunkte definiert. Es können von der linearen Interpolation verschiedene Interpolationsverfahren angewandt werden.
  • Die obige Interpolation kann so oft wie erforderlich ausgeführt werden, bis alle Bereiche für alle Rahmen in dem zu editierenden Segment angemessen definiert sind. Ferner kann dieser Prozess rekursiv bezüglich eines Feinabstimmungsprozesses sein, welcher derart erfolgt, dass ein Benutzer die Größe eines durch die Interpolation bestimmten Bereichs für einen Zwischenrahmen bewegen oder ändern kann, und die Interpolation für den ersten Rahmen und den Zwischenrahmen, der geändert worden ist, erneut und anschließend für den Zwischenrahmen und den letzten Rahmen ausgeführt wird. Die Interpolation wird primär zum Definieren von Bereichen verwendet, die sich über Rahmen bewegen. Die Erfindung umfasst jedoch ebenso das Definieren von Bereich, die stationär sind und in einer Reihe von Rahmen verwendet werden.
  • Nachdem die Bereiche definiert worden sind und der Benutzer die Prioritäten eingegeben hat, werden die neuen Quantisiererwert für jeden Makroblock in Schritt 456 der 20 auf der Grundlage der von dem Benutzer eingegebenen Priorität und dem alten Quantisiererwert des Makroblocks geschätzt oder bestimmt. Dies wird in Übereinstimmung mit dem in der 22 gezeigten Verhältnis bestimmt, welches den Anteil des ursprünglichen Quantisiererwerts, der mit jeder der von dem Benutzer gewählten Prioritäten verwendet wird, zeigt. Wenn der Benutzer beispielsweise eine Priorität von Null eingibt, so liegt der resultierende Anteil des ursprünglichen Quantisiererwerts, der verwendet wird, bei 1, was bedeutet, dass es keine Änderung bezüglich des ursprünglichen Quantisiererwert gibt. Wenn der Benutzer eine Priorität von –3 wählt, liegt der Anteil des ursprünglichen Quantisiererwerts bei 1.58, was bedeutet, dass der ursprünglichen Quantisiererwert für den Makroblock mit der Priorität von 3 mit 1.58 multipliziert wird, um den resultierenden Quantisiererwert zu bestimmen. Da die Priorität von –3 eine verringerte Qualität bedeutet, muss der Quantisiererpegel erhöht werden, um eine verringerte Qualität zu erzielen, was bedeutet, dass weniger Bits für den Makroblock verwendet werden. Wenn demgegenüber eine positive Priorität von beispielsweise 3 von dem Benutzer eingegeben wird, wird der Quantisiererwert eines Makroblock von der ursprünglichen automatischen Kodierung mit 0.42 multipliziert, wodurch der Quantisiererpegel verringert wird. Ein reduzierter Quantisiererpegel bedeutet, dass mehr Bits benötigt werden, um das Bild innerhalb des Makroblocks darzustellen, wodurch die Bildqualität verbessert wird. Die Punkte auf der in der 22 gezeigten Linie sind (–5, 100), (–4, 1.75), (–3, 1.58), (–2, 1.42), (–1, 1.25), (0, 1), (1, 0.72), (2, 0.58), (3, 0.42), (4, 0.25) und (5, 0.01). Die in der 22 gezeigte Abbildung basiert auf einer stückweisen linearen Beziehung zwischen den q-Pegeln und der Priorität. Die in der 22 bestimmten Punkte sind durch experimentieren bestimmt worden, und verschiedene Anteile können nach Bedarf bezüg lich der vom Benutzer gewählten Prioritäten verwendet werden.
  • Die Prioritäten von –5 und 5 sind dafür gedacht, die niedrigste bzw. Höchste Priorität zu erhalten. Die niedrigste Priorität resultiert aus einem maximal zulässigen Quantisiererpegel von 112, wenn die nicht lineare Quantisiererskalierung für die MPEG-2 Kodierung verwendet wird. Ferner wird der niedrigste Quantisiererpegel dazu verwendet, die höchste Qualität von 1 zu erzielen. Folglich kann das in der 22 gezeigte Verhältnis zu Werten führen, die außerhalb der aktuell zulässigen q-Skalierung liegen, wobei die berechneten q-Werte dann einfach an ihren Sättigungswert gelegt werden. Es soll beispielsweise angenommen werden, dass ein Makroblock anfangs eine Quantisierungsskalierung von 20 aufweist und der Benutzer eine Priorität von –5 für den Makroblock wählt. Der Quantisiererwert 20 multipliziert mit 100 ergibt einen neuen Quantisiererpegel von 2000, der außerhalb der Quantisiererskalierung liegt, weshalb der maximale oder Sättigungsquantisiererwert verwendet wird.
  • Zusätzlich zur Verwendung des vorstehend beschriebenen Sättigungspegels trifft die Erfindung eine Vorkehrung für die I-, P- und B-Rahmen der MPEG-Kodierung. Die vorliegenden Erfindung beschränkt den höchsten Quantisiererpegel für den I-Rahmen für die nicht linearen Quantisiererfälle auf 96 und auf 58, wenn die lineare Quantisiererskalierung verwendet wird. Gleichermaßen liegt der höchste Quantisiererpegel für den B- und den P-Rahmen für die nicht lineare Quantisiererskalierung bei 112 und für die linearen Quantisiererskalierungsfälle bei 62. Die lineare und die nicht lineare Quantisiererskalierung sind in dem MPEG-Standard definiert. Der niedrigste Quantisiererpegel, der für jeden der I-, P- und B-Rahmen verwendet wird, ist 1. Natürlich können die vom Benutzer bestimmten Eingaben und der Anteil der ursprünglichen Quantisiererwerte, die in der 22 abgebildet sind, modifiziert werden, um die Benutzeranforderungen zu erfüllen.
  • Nachdem der Schritt 456 die neuen Quantisiererwerte für jeden Makroblock berechnet hat, bestimmt der Schritt 458 die Anzahl an Bits für jeden Rahmen, die aus den in Schritt 456 bestimmten Quantisiererwerten resultiert. Dieser Schritt ist wichtig, da in der bevorzugten Ausführungsform der Erfindung die gleiche Anzahl an Bits für jeden Rahmen erhalten werden muss, nachdem die Qualität einiger Bereiche verbessert und die Qualität anderer Bereiche herabgesetzt wurde. Um die Anzahl an aus den neuen Quantisiererwerten resultierenden Bits zu bestimmen, ist es erforderlich, dass eine Funktion zur Verfügung steht, die in geeigneter Weise den Quantisiererpegel gegenüber der resultierenden Anzahl an Bits für jeden Makroblock schätzt. Um die Beziehung zwischen der resultierenden Anzahl an Bits gegenüber dem Quantisiererpegel zu bestimmten, wurde eine Untersuchung der empirischen Ergebnis des Videodekodierers, wie beispielsweise eines MPEG-2 Kodierers, ausgeführt, so dass die bestimmte Beziehung auf aktuellen empirischen Ergebnissen basiert. Es wurden Simulationen für verschiedene Quantisiererpegel und Rahmenarten unter Verwendung einer Anzahl von Videosequenzen ausgeführt. Auf der Grundlage dieser Ergebnisse ist die folgende Beziehung zwischen dem Quantisiererpegel (q) für einen Makroblock und der Anzahl an Bits (b), die bei einer Kodierung dieses Makroblocks verwendet wird, in Abhängigkeit der Rahmenart bestimmt worden. log(b) = log(q) + n (25)wobei m = –0.75 für die I-Rahmen und –1.0 für die B- und P-Rahmen ist. Ferner ist n = 15, 14.5 und 13.8 für die I- P bzw. B-Rahmen. Diese Werte sind, wie vorstehend beschrieben, über eine Anzahl von Videosequenzen gemittelt. Die obige Gleichung dient als gute Annäherung, um das Verhalten des Kodierers vorauszusagen, wobei die Beziehung zwischen der Anzahl an Bits und dem Quantisiererpegel in dem Logbereich linear ist. Natürlich können, wenn genau, andere Verhältnisse zwischen dem Quantisiererpegel und der Anzahl an resultierenden Bits verwendet werden, um die Anzahl an Bits zu bestimmen, die aus einem vorgegebenen Quantisiererpegel resultiert, einschließlich der anderen hierin beschriebenen Ratenquantisiererfunktion.
  • Der obige Prozess beschreibt, wie die Anzahl an aus einem vorgegebenen Quantisiererpegel resultierenden Bits bestimmt werden kann. Wenn jedoch mehr als eine Kodierung verwendet wird, ist es möglich, die Datenrate gegenüber der Quantisiererfunktion mit Hilfe der Information aus der neuen Kodierung weiter zu verfeinern. Während des anfänglichen automatischen Kodierprozesses gibt es einen ersten Videokodierdurchgang, der dazu verwendet wird, Statistiken des zu kodierenden Videos zu gewinnen. Anschließend wird während des zweiten Videodurchgangs, welcher der eigentlichen Kodierung entspricht, ein weitere aktueller Punkt des Daten gegenüber der Quantisiererfunktion gewonnen, wie beispielsweise in einem b-versus-q-Diagramm, entsprechend der obigen Gleichung, welche die Anzahl an Bits b beschreibt, die ais einem vorgegebenen q-Pegel erzeugt werden. Nachdem die Daten in Übereinstimmung mit der vom Benutzer gewählten Auswahlen erneut kodiert worden sind, wird das resultierende, erneut kodierte Video entweder von dem Benutzer angenommen oder abgelehnt, und zwar in Abhängigkeit der Tatsache, ob es die gewünschten Qualitätsverbesserungen erfüllt. Jede erneute Kodierung erzeugt aktuelle Daten für das geschätzte Verhältnis des q-Pegels gegenüber den Bits. Ist die neue q-Pegel-Zuweisung q' gegeben, so wird eine bestimmte Da tenrate für diesen Punkt basierend auf den zusätzlichen durch die erneute Kodierung erhaltenen Daten genauer. Wenn der neue Quantisiererpegel q' zwischen beliebige zwei Punkte fällt, vie vorher bestimmt worden sind, ist es möglich eine lineare Interpolation in dem Logbereich auszuführen, um einen Schätzwert für die Anzahl an von dem Kodierer auszugebenden Bits mit dem neuen q-Pegel zu erzielen. Wenn der neue Quantisiererpegel q' nicht zwischen die zwei bestimmten q-Pegel fällt, kann das Model dazu verwendet werden, um eine Extrapolation von dem nächsten q-Pegel zu dem neuen Quantisiererpegel q' auszuführen, um die Anzahl an dem Kodierzeitpunkt zu erzeugenden Bits zu schätzen. Es sollte beachtet werden, dass die Wahrscheinlichkeit, mit der ein besserer Schätzwert für die Ausgangsbits des Kodierers erzielt wird, mit der Anzahl von Malen zunimmt, mit welcher die Daten erneut kodiert werden,.
  • Nachdem die Anzahl an Bits für jeden Rahmen, die aus den geschätzten Quantisiererwerten resultiert, in Schritt 458 der 20 bestimmt worden ist, bestimmt der Schritt 460, ob die geschätzte Anzahl an Bits nahe genug an der ursprünglichen Anzahl an Bits für den Rahmen liegt und korrigiert die Anzahl an Bits nach Bedarf. Dies wird in Übereinstimmung mit dem in den 23 bis 25C gezeigten Prozess ausgeführt.
  • Wenn der Schritt 460 ausgeführt wird, bestimmt der Schritt 472 der 23 zunächst die Differenz zwischen der geschätzten Anzahl an Bits uns der Anzahl an Bits der ursprünglichen Kodierung. Dies wird gemäß der nachstehenden Gleichung berechnet. D = B' – B (26) wobei B' die geschätzte Anzahl an Bits des modifizierten Rahmens, B die Anzahl an Bits des Rahmens, die aus der ursprünglichen Kodierung resultieren, und D die Differenz ist. Es ist natürlich möglich, einen Wert für B zu verwenden, der sich von der Anzahl an aus der ursprünglichen Kodierung resultierenden Bits unterscheidet. Wenn ein Benutzer beispielsweise die Gesamtzahl an Bits für einen Rahmen erhöhen will, kann er B auf eine Anzahl setzen, der einem vorbestimmten Betrag entspricht, der über einer Anzahl an aus der ursprünglichen Kodierung resultierenden Bits liegt. Gleichermaßen kann der Benutzer B auf einen unter der ursprünglichen Anzahl an Bits des Rahmens liegenden Wert setzen. Folglich kann der erneut kodierte Rahmen in Abhängigkeit der Speicherbedingungen, der Bedingungen hinsichtlich der minimalen Qualität und der Möglichkeit des Videopufferunterlaufs mehr oder weniger Bits als die ursprüngliche Kodierung verbrauchen. Wenn Bereiche eines Rahmens nicht bezüglich ihrer Quantisiererwerte geändert wurden, ist es ferner möglich, einzig die Anzahl an Bits zu analysieren, die aus Bereichen resultieren, deren Quantisiererwerte geändert wurden, und die Bereiche zu ignorieren, die nicht geändert wurden. Anschließend analysiert der Schritt 474 diese Differenz, und wenn bestimmt wird, dass zu viele Bits vorhanden sind, schreitet der Ablauf für den in den 24A bis 24C gezeigten Prozess zu B voran, um den Quantisiererpegel der Makroblöcke zu erhöhen, so dass sich die Anzahl an Bits verringert. Wenn Schritt 474 bestimmt, dass in dem modifizierten Rahmen zu wenige Bits vorhanden sind, wird der Quantisierungspegel der Makroblöcke des neuen Rahmens verringert, um in Übereinstimmung mit dem in den 25A bis 25C gezeigten Prozess F mehr Bist zu erzeugen. Wenn die Differenz demgegenüber innerhalb eines annehmbaren Schwellenwerts liegt, müssen die Quantisierungspegel der Makroblöcke nicht modifiziert werden und kehrt der Prozess zu Schritt 462 in der 20 zurück.
  • Wenn die Anzahl an Bits in dem Rahmen für das erneut kodierte Video gleich gehalten wird, können die Bits als von einem Bereich in einem anderen verschoben betrachtet werden.
  • In Schritt 474 wird die Differenz D analysiert, um sie mit einem Schwellenwert T zu vergleichen. Der Schwellenwert ist auf 0.001 × B gesetzt, was bedeutet, dass die Differenz dann, wenn die Anzahl an Bits, die aus der Änderung der Qualität des Bereichs resultieren, unter 0.001 des Gesamtzahl an Bits liegen, annehmbar ist und der Prozess stoppen kann. Natürlich kann der Stoppschwellenwert, der anzeigt, dass die Differenz annehmbar ist, auf andere Art bestimmt werden, nach Bedarf erhöht oder verringert werden oder auf sowohl der ursprünglichen Anzahl an Bits für den Rahmen als auch auf der resultierenden Anzahl an Bits, die aus den vom Benutzer gewählten Prioritäten resultiert, basieren.
  • Der in den 24A bis 24C gezeigte Prozess und die 25A bis 25C weisen eine deutliche Ähnlichkeit auf, mit der Ausnahme, dass die 24A bis 24B dazu verwendet werden, die Anzahl an Bits zu verringern, die aus den vom Benutzer gewählten Qualitäten resultieren, und dass die 25A bis 25C dazu verwendet werden, die Anzahl an Bits zu erhöhen, die aus den vom Benutzer gewählten Qualitäten resultieren. Nachstehend ist ein allgemeiner Überblick über die in den 24A bis 25C ausgeführten Prozesse gegeben, bevor diese Prozess näher beschrieben werden. Zunächst werden die Makroblock in einem Rahmen als eine der vier folgenden Typen gekennzeichnet: "Don't Care", "Negative Priorität", "Positive Priorität" und "Nicht Ändern". Wenn einem Bereich keine Priorität von einem Benutzer zugewiesen wurde, oder wenn es das System dem Benutzer ermöglicht, einen "Don't Care"-Zustand zuzuweisen, so wird dieser Be reich als "Don't Care"-Typ angesehen. Wenn der Benutzer eine Priorität zwischen einschließlich –5 und –1 zuweist, werden die Makroblöcke innerhalb dieser Bereiche als "Negative Priorität" angesehen. Wenn einem Bereich eine Priorität zwischen einschließlich 1 und 5 zugewiesen wird, werden diese Bereiche als eine "Positive Priorität" aufweisend angesehen. Zuletzt werden alle Bereiche, denen eine Priorität von 0 zugewiesen ist, oder dann, wenn das System es dem Benutzer ermöglicht, auf irgendeine andere Weise anzuzeigen, dass ein Bereich bezüglich seiner Qualität nicht geändert werden soll, die Makroblöcke dieser Bereiche als "Don't Care"-Typ angesehen.
  • Jeder der Makroblöcke innerhalb jedes der vier Makroblocktypen wird mit einem Index i gekennzeichnet, so dass jeder der vier Typen seinen eigenen Satz an Indices aufweist. Der Index i von Null wird dem ersten Makroblock und der Index von N-1 wird den letzten Makroblock zugewiesen, wobei N die Gesamtzahl der Makroblöcke innerhalb eines Bereichstyps ist. Für alle "Don't Care"-Bereiche ist beispielsweise jeder der Makroblöcke innerhalb dieser Bereiche zwischen 0 und N-1 eingeteilt. Es sollte beachtet werden, dass dann wenn mehr als zwei verschiedene "Don't Care"-Bereiche vorhanden sind, keine zwei verschiedenen Indices i = 0 für die "Don't Care"-Bereiche vorhanden sind. Für alle "Don't Care"-Bereiche gibt es nur einen Makroblock mit einem Index von 0, einen Makroblock mit einem Index von 1 usw.
  • Wenn zu viele Bits in dem Rahmen vorhanden sind, nachdem der Benutzer die Priorität der Bereiche bestimmt hat, müssen die Quantisiererpegel für den Rahmen erhöht werden, um die Anzahl an Bits für den Rahmen zu verringern. Der ursprüngliche Quantisiererwert für den Makroblock wird aus der Makroblockebenenlogdatei mit einem Format genommen, wie es in einer der beiden 10A oder 10B gezeigt ist. Alternativ kann der Kodierer nochmals laufen gelassen werden, um die Quantisiererwerte zu bestimmen, wenn sie nach dem ursprünglichen Lauf des Kodierers nicht gespeichert worden sind. Eine weitere alternative besteht darin, den kodierten Bitdatenstrom zu dekodieren, um die Quantisiererwerte der ursprünglichen Kodierung zu bestimmen. Die Art und Weise, wie das Verfahren zur Verringerung der Anzahl an Bits arbeitet, sieht so aus, dass der Quantisiererpegel für jeden Makroblock des "Don't Care"-Typs um einen Quantisiererpegel erhöht wird, und zwar bei einem Makroblock zur Zeit. Wenn das Problem hierdurch nicht gelöst werden kann, wird jeder Makroblock des "Don't Care"-Typs nochmals bezüglich seines q-Pegels um eins erhöht, und zwar bei einem Makroblock zurzeit. Es wird ein vorbestimmter maximaler Quantisiererpegel gesetzt, wobei die Quantisiererpegel von keinem der Makroblöcke über diesen Pegel erhöht werden kann. Wenn alle Makroblöcke des "Don't Care"-Typs diesen maximalen Pegel erreichen, werden anschließend die Bereiche "Negativer Priorität" und "Positiver Priorität" auf die gleiche Weise um eins erhöht. Zunächst werden alle Makroblöcke negativer Priorität um einen Quantisiererpegel erhöht, und wenn das Bitdifferenzproblem hierdurch nicht gelöst werden kann, werden anschließend die Makroblöcke mit der "Positiven Priorität" bezüglich ihrer Quantisiererpegel um eins erhöht. Wenn das Problem hierdurch nicht gelöst wird, werden anschließend erneut die Quantisiererpegel der Makroblöcke "Negativer Priorität" um eins erhöht, und wenn das Problem hierdurch nicht gelöst werden kann, werden anschließend die Makroblöcke "Positiver Priorität" bezüglich ihres Quantisiererpegels um eins erhöht. Dieser Prozess dauert an, bis alle Makroblöcke des Typs "Negativer Priorität" und "Positiver Priorität" bezüglich ihres Quantisiererpegels auf den vorstehend beschriebenen maximalen Pegel erhöht worden sind. Wenn das Bitdifferenzproblem hierdurch nicht gelöst wer den kann, werden anschließend die Makroblöcke des Typs "Don't Care" bezüglich ihrer Quantisiererpegel um einem Quantisierungspegel zurzeit erhöht, bis das Bitdifferenzproblem gelöst ist. Mit aller Wahrscheinlichkeit wird das Bitdifferenzproblem korrigiert sein, bevor die Quantisierungspegel des "Don't Care"-Typs anfangen, sich zu ändern. Ein ähnlicher Prozess findet statt, wenn der Rahmen mit den vom Benutzer gewählten Prioritäten zu wenige Bits aufweist und der Quantisierungspegel der Makroblöcke verringert werden muss, um die Anzahl an Bits in Übereinstimmung mit dem in den 25A bis 25C gezeigten Prozess zu erhöhen.
  • Nachstehend wird das in der 24A gezeigte Ablaufdiagramm beschrieben, dass in der 23 ausgeführt wird, wenn zu viele Bits vorhanden sind. Der Prozess beginnt in der 24A mit dem Schritt 480, welcher den Blocktyp auf den "Don't Care"-Typ setzt. Anschließend setzt der Schritt 482 den Index der Makroblöcke auf den Startpunkt, was bedeutet, dass der Index i gleich Null gesetzt wird. Anschließend wird der Schritt 486 ausgeführt, der bestimmt, ob der Quantisiererpegel des in Frage kommenden Makroblocks (Makroblock mit dem Index i) den Makroblocktyp aufweist, der eingestellt worden ist (das erste Mal in dem Ablaufdiagramm der erste Makroblock des "Don't Care"-Typs), den maximal vordefinierten Quantisiererpegel aufweist. Der maximale Quantisiererpegel für diesen Korrekturprozess sollte nicht zu hoch gesetzt sein, so dass eine deutliche Verringerung der Qualität für die Makroblöcke, die korrigiert werden, auftritt. Vorzugsweise sollte die Qualität verringert werden, um die Anzahl an Bits gleichmäßig zu verringern, so dass, wenn möglich, keine hohe Differenz in der Qualität der Makroblöcke auftritt. Folglich wird das Maximum auf einen Quantisierungspegel von 62 gesetzt, wenn die lineare Quantisierungsskalierung verwendet wird, und auf 112 gesetzt, wenn die nicht lineare Quantisierungsskalierung für beispielsweise die MPEG-2 Kodierung verwendet wird. Es können jedoch auch andere Werte für den maximalen Quantisiererwert verwendet werden. Wenn der Quantisiererpegel des in Frage kommenden Makroblocks in Schritt 486 derart bestimmt wird, dass er nicht dem Maximum entspricht, inkrementiert der Schritt 488 den Quantisiererpegel des in Frage kommenden Makroblocks um einen Quantisierungspegel. Anschließend berechnet der Schritt 490 den Bitschätzwert für den Rahmen unter Verwendung der vorstehend beschriebenen Bitratenquantisiererfunktion erneut. Anschließend inkrementiert der Schritt 490 den Index der Makroblöcke. Wenn der Index des Makroblocks anzeigt, dass der letzte Makroblock des Makroblocktyps noch nicht verarbeitet worden ist, springt der Ablauf zu Schritt 484 zurück. Andernfalls schreitet der Ablauf von Schritt 492 zu Schritt 498 voran, welcher den Blockindex auf Null setzt, was den ersten Makroblock anzeigt.
  • Wenn der Ablauf zu Schritt 484 zurückkehrt, wird der in Schritt 490 erneut berechnete Bitschätzwert, dazu verwendet, die vorstehend beschriebene Differenz D erneut zu berechnen, welche gemäß obiger Beschreibung mit einem Schwellenwert verglichen wird. Wenn der Bitschätzwert nicht länger zu hoch liegt, ist die Anzahl an Bits für den die vom Benutzer gewählten Prioritäten aufweisenden Rahmen korrigiert worden und kehrt der Ablauf zu dem Aufrufprozess zurück. Andernfalls schreitet der Prozess zu Schritt 486 voran, der erneut bestimmt, ob der Quantisiererwert des in Frage kommenden Makroblocks (mit dem Index i) bei einem Maximum liegt.
  • Wenn der Schritt 486 bestimmt, dass der Quantisiererwert des in Frage kommenden Makroblocks bei einem Maximum liegt, ist der Quantisiererpegel dieses Makroblocks nicht zu erhöhen und inkrementiert der Schritt 494 anschließend den Block i um eines. Wenn der Schritt 496 bestimmt, dass der Index des Makroblocktyps den letzten Block nicht passiert hat, kehrt der Ablauf zurück zu Schritt 486, um zu bestimmen, ob der Block mir dem inkrementierten Index einen maximalen Quantisiererwert aufweist. Wenn der Schritt 496 andernfalls bestimmt, dass der Makroblock der letzte Makroblock des in Frage kommenden Makroblocktyps ist, wird der Schritt 498 ausgeführt, welcher den Blockindex auf den ersten Makroblock zurücksetzt (i = 0). Anschließend schreitet der Ablauf zu dem in der 24b gezeigten Prozess C.
  • In der 24B überprüft der Schritt 500, ob der Blocktyp vom "Don't Care"-Typ ist. Wenn der Blocktyp vom "Don't Care"-Typ ist, bestimmt der Schritt 502, ob alle "Don't Care"-Makroblöcke den maximalen q-Pegel aufweisen. Wenn alle der "Don't Care"-Makroblöcke den maximalen q-Pegel aufweisen, kann keine weitere Anpassung bezüglich der Makroblöcke vom "Don't Care"-Typ vorgenommen werden, und folglich wird der Makroblocktyp in Schritt 504 zu "Negative Priorität" geändert, und der Prozess kehrt zurück zu dem in der 24A gezeigten Prozess D, woraufhin der Schritt 484 ausgeführt wird. Wenn der Schritt 502 demgegenüber bestimmt, dass nicht alle Makroblöcke des "Don't Care"-Typs den maximalen q-Pegel aufweisen, kehrt der Prozess zu dem Prozess D zurück, ohne den Typ des Makroblocks, der modifiziert wird, zu ändern. Dieses Verfahren dauert an, bis des resultierende Anzahl an Bits für den Rahmen innerhalb des Schwellenwerts liegt, oder bis alle Makroblöcke des "Don't Care"-Typs auf den maximalen Quantisierungspegel gesetzt sind, was dazu führt, dass der Blocktyp zu "Negative Priorität" gewechselt wird.
  • Wenn Schritt 500 bestimmt, dass der Blocktyp nicht "Don't Care" ist, bestimmt der Schritt 506, ob der Blocktyp "Negative Priorität" ist. Wenn der Blocktyp "Negative Priorität" ist, bestimmt der Schritt 508, ob alle Blöcke mit "Positive Priorität" einen maximalen q-Pegel aufweisen. Wenn das Ergebnis der Bestimmung von Schritt 508 negativ ist, wird Schritt 510 ausgeführt, um den Blocktyp auf "Positive Priorität" zu setzen, woraufhin der Ablauf zu dem in der 24A gezeigten Prozess schreitet.
  • Wenn der Schritt 508 bestimmt, dass alle Makroblöcke mit "Positive Priorität" den maximalen q-Pegel aufweisen, überprüft der Schritt 512, ob alle Blöcke des Typs "Negative Priorität" einen maximalen q-Pegel aufweisen. Weisen sie dies nicht, so wird der Blocktyp nicht gewechselt, und der Ablauf kehrt zu dem in der 24A gezeigten Prozess D zurück. Wenn alle Makroblöcke des Typs "Negative Priorität" in Schritt 512 derart bestimmt werden, dass sie den maximalen q-Pegel aufweisen, weisen alle "Don't Care"-, "Negative Priorität"- und "Positive Priorität"-Makroblöcke den maximalen Quantisierungspegel auf, woraufhin der Blocktyp in Schritt 514 auf "Nicht Ändern" gesetzt wird. Anschließend schreitet der Ablauf zu dem in der 24A gezeigten Prozess D.
  • Der Prozess E und der Schritt 520 der 24C werden ausgeführt, wenn in dem in der 24B gezeigten Schritt 506 eine negative Bestimmung erfolgt. Der Schritt 520 bestimmt, ob der Blocktyp "Positive Priorität" ist. Wenn dies so ist, bestimmt der Schritt 522, ob alle Blöcke des Typs "Negative Priorität" einen maximalen Q-Pegel aufweisen. Wenn dies nicht so ist, wird der Blocktyp auf "Negative Priorität" gewechselt, woraufhin der Ablauf zu dem in der 24A gezeigten Prozess D zurückkehrt. Wenn der Schritt 522 bestimmt, dass alle Blöcke des Typs "Negative Priorität" den maximalen q-Pegel aufweisen, überprüft der Schritt 526, ob alle Blöcke des Typs "Posi tive Priorität" den maximalen q-Pegel aufweisen. Wenn dies nicht der Fall ist, kehrt der Ablauf ui dem in der 24A gezeigten Prozess D zurück. Andernfalls weisen alle Blöcke des Typs "Negative Priorität" und "Positive Priorität" zusammen mit den Blöcken "Don't Care" den maximalen Quantisierungspegel auf, woraufhin der Schritt 528 den Blocktyp auf "Nicht Ändern" setzt und der Ablauf zu dem in der 24A gezeigten Prozess D zurückkehrt.
  • Wenn der Schritt 520 bestimmt, dass der Blocktyp nicht "Positive Priorität" ist, muss der Blocktyp folglich "Nicht Ändern" sein und bestimmt der Schritt 530, ob alle Blöcke des Typs "Nicht Ändern" den maximalen q-Pegel aufweisen. Ist dies der Fall, ist ein Fehler vorhanden, da sämtliche Blocktypen auf den maximalen Quantisierungspegel gesetzt worden sind, ohne das Problem der zu vielen Bits in dem Rahmen mit den vom Benutzer gewählten Prioritäten zu lösen. Das Setzen alle Blöcke auf den vordefinierten maximalen q-Pegel sollte in einer Anzahl an Bits resultieren, welche die ursprüngliche Kodierung des Rahmens nicht überschreitet. Wenn die Bestimmung in Schritt 530 negativ ist, kehrt der Ablauf zu dem in der 24A gezeigten Prozess D zurück.
  • Wenn der in der 23 gezeigte Prozess bestimmt, dass in dem Rahmen mit den von dem Benutzer gewählten Prioritätsbereichen zu wenige Bits vorhanden sind, wird der in den 25A bis 25C gezeigte Prozess ausgeführt. Die 25A bis 25C basieren mit der Ausnahme, dass die Quantisierungspegel verringert anstatt erhöht werden, um die Anzahl an Bits für den Rahmen zu erhöhen, und dass die Quantisierungspegel der Makroblöcke einen vorbestimmten minimalen Pegel, wie beispielsweise einen Quantisiererpegel von 1, nicht überschreiten können, wenn sie verringert werden, auf dem in den 24A bis 24C gezeigten Prozess. Da der in den 25A bis 25C gezeigte Prozess mit Ausnahme der vorstehend aufgeführten Unterschiede dem in den 24A bis 24C gezeigten Prozess entspricht, werden die 25A bis 25C der Kürze halber nicht beschrieben.
  • Der in den 23 bis 25C beschriebene Korrekturprozess ist eine Art, auf welche die Erfindung funktionieren kann. Es sind jedoch alternative Verfahren zur Anpassung der Quantisierungspegel der verschiedenen Makroblocktypen möglich. Anstelle die Quantisierungspegel der "Negative Priorität"- und "Positive Priorität"-Makroblöcke, wie vorstehend beschrieben, gleichzeitig zu ändern, können die Makroblöcke der Typen "Negative Priorität", "Positive Priorität" und "Nicht Ändern" einheitlich geändert werden. Sind zu viele Bits vorhanden, können die Quantisiererpegel der Typen "Negative Priorität" alternativ erhöht werden, bis der maximale Quantisierungspegel erreicht ist, woraufhin die Quantisierungspegel für die Makroblöcke vom Typ "Positive Priorität" erhöht werden. Wenn die Anzahl an Bits des Rahmens mit den vom Benutzer gewählten Prioritäten zu gering ist, können andersherum die Quantisiererpegel der Makroblöcke vom Typ "Positive Priorität" verringert werden, um die Anzahl an Bits zu erhöhen, bevor die Quantisierungspegel der Makroblöcke vom Typ "Negative Priorität" verringert werden. Im letzteren der zwei Fälle kann das Ändern der Makroblöcke vom Typ "Don't Care" vor, während oder nach der Änderung der Makroblöcke vom Typ "Negative Priorität" oder "Positive Priorität" erfolgen.
  • Auf die Ausführung des in den 23A bis 25C gezeigten Prozesses hin kehrt der Ablauf zu dem in der 20 gezeigten Prozess zurück, welcher das Video mit Hilfe der neuen Quantisiererwerte neu kodiert. Diese erneute Kodierung während eine Feinabstimmung der Quantisiererwerte unter Verwendung eine Ratensteuerungsfunktion ausgeführt, um die resultierende Anzahl an Bits für die erneute Kodierung der Rahmen so nahe wie möglich an der Anzahl an Bits für die ursprüngliche Kodierung der Rahmen zu halten. Der Ratensteuerungsprozess wird nachstehend näher in einem getrennten Abschnitt beschrieben. Während des Neukodierungsprozesses können ferner Kodierartefakte auftreten, und folglich kann ein spezielles Verfahren ausgeführt werden, um diese Kodierartefakte, wie nachstehend in einem getrennten Abschnitt näher beschrieben, zu reduzieren.
  • Der Prozess für die räumliche manuelle Editierung erfolgt in der Arbeitsstation 30 der 1A der bevorzugten Ausführungsform der Erfindung. Da die räumliche manuelle Editierung jedoch nicht gleichzeitig mit dem Videokodierprozess erfolgt, kann die Arbeitsstation 10 die Berechnungen der zeitlichen manuellen Editierung ausführen, ohne dass die Geschwindigkeit des Videokodierprozesses verlangsamt wird. Es sollte beachtet werden, dass die vorliegende Erfindung detailliert bezüglich der Änderung der Bildqualität verschiedener Bereiche innerhalb eines Rahmens beschrieben worden ist. Natürlich ist es möglich, das Konzept der vorliegenden Anmeldung derart zu erweitern, dass Bits innerhalb eines Bereichs eines Rahmens in einen Bereich eines anderen Rahmens verschoben werden. Ferner kann die räumliche manuelle Editierung in Verbindung mit der vorstehend beschriebenen zeitlichen manuellen Editierung angewandt werden.
  • Die räumliche manuelle Editierung ist dahingehend beschrieben worden, dass sie die Anzahl an Bits des Rahmens, dem ein Benutzer räumliche Prioritäten zugewiesen hat, gleich der ursprünglichen Kodierung des Rahmens hält. Wenn es erforderlich ist, kann das erneut kodierte Editiersegment jedoch eine vorbestimmte Anzahl an Bits verbrauchen, die über oder unter der ursprünglichen An zahl an Bits des Rahmens ist, wenn ausreichend Speicherkapazität vorhanden ist. In diesen Fällen ist es wünschenswert, die Anzahl l an Bits zu kennen, mit welcher der geänderte Rahmen geändert werden kann, und folglich werden die in den 24A bis 25C gezeigten Prozessen ablaufen, bis die gesetzte Differenz erzielt wird. Folglich kann die Gesamtzahl an Bits für die erneute Kodierung eines beliebigen Rahmens einen beliebigen Betrag größer oder kleiner der ursprünglichen Kodierung verbrauchen, beispielsweise zwischen 0 und 20 % mehr oder weniger, was sowohl 5 % als auch 1 % mehr oder weniger Bits umfasst.
  • Die Beschreibung des räumlichen manuellen Editierung ist bezüglich der Änderung des Videos nach der Kodierung ausgeführt worden. Die hierin offenbarte Lehre kann jedoch auch auf System angewandt werden, die keinen anfänglichen Kodierungsprozess aufweisen.
  • Die räumliche manuelle Editierung arbeitet derart, dass ein Quantisiererwert auf der Grundlage der vom Benutzer gewählten Priorität zugewiesen wird und anschließend die Quantisierungspegel der Makroblöcke des Rahmens nach Bedarf angepasst werden, um die gleiche Anzahl an Bits für den Rahmen zu erzielen, die auch vorher erzielt worden ist. Die in dem obigen Abschnitt beschriebene zeitliche manuelle Editierung entfernt demgegenüber einen gemeinsamen Pool an Bits aus Abschnitten des Videos verteilt diese Bits aus dem Pool erneut in Übereinstimmung mit den vom Benutzer gewählten Prioritäten. Die gesamte Lehre, die sich auf den Prozess bezieht, bei welchem die räumliche manuelle Editierung bezüglich eines Rahmens ausgeführt wird, kann auf das Konzept zur Änderung der Qualität von Rahmen des Videos über die Zeit, wie vorstehend in dem Abschnitt der zeitlichen manuellen Editierung beschrieben, angewandt werden, und vice versa.
  • Beispielsweise ist die räumliche manuelle Editierung dahingehend beschrieben worden, dass sie Quantisiererpegel modifiziert, um die Änderungen in der Qualität zu erzielen, während in dem Abschnitt der zeitlichen Editierung die Bitanzahlen angepasst werden. Da die Anzahl an Bits für einen Rahmen oder Makroblock direkt von Quantisierungspegeln abhängt, erzielt die Modifikation der Bitanzahlen und Quantisierungspegel die gleichen Resultate, und folglich kann die zeitliche und die räumliche Editierung die Anzahl an Bits und/oder die Quantisierungspegeln modifizieren.
  • VIII. ERNEUTES KODIEREN DES VIDEOS NACH EINER QUALITÄTSÄNDERUNG
  • A. Bitzuordnungssteuerung, wenn die Qualität innerhalb eines einzigen Rahmens geändert worden ist
  • Zur Steuerung der Bitrate in der Videokodier-vorrichtung 50 der 1A lädt eine Steuereinheit, wie beispielsweise die Arbeitsstation 10, oder irgendeine spezialisierte Hardware, welche die gleiche Steuerungsfunktion aufweist, Quantisierungspegel bzw. q-Pegel und eine geschätzte bzw. erwartete Anzahl an Bits pro Slice in einen ratengesteuerten Kodierer. Der Kodierer beginnt anschließend mit der Kodierung, und die Quantisierungspegel werden nach einer Messung der Genauigkeit der erzeugten Anzahl an Bits verglichen mit der vorher bestimmten geschätzten Anzahl an Bits angepasst. Die geschätzte Anzahl an Bits wird unter Verwendung einer Ratenquantisiererfunktion bestimmt, wie vorstehend in den Abschnitten bezüglich der räumlichen und der zeitlichen manuellen Editierung beschrieben. Dieser Prozess wird sequentiell mit einem Satz von n Makroblöcken zurzeit, wobei jeder Satz durch MB(i)gekennzeichnet ist, und wobei gilt: 1 ≤ i ≤ (Gesamtzahl an Makroblöcken/n) (27)
  • Bei der erneuten Kodierung des letzten Satzes an Makroblöcken gewährleistet die Steuereinheit, dass die Gesamtzahl an erzeugten Bits in dem Prozess der erneuten Kodierung geringer als die ursprünglich kodierte Länge ist, da jede kleinere Überschätzung der Anzahl an Bist, die erzeugt werden, mit Hilfe einer Pufferauffüllung aufgenommen werden kann.
  • 26 zeigt ein Ablaufdiagramm, das ein Verfahren zur erneuten Kodierung eines Satzes an digitalen Videorahmen mit vorher zugewiesenen Quantisierungspegels veranschaulicht. Die vorher zugewiesenen Quantisierungspegel werden auf der Grundlage der Tatsache, wie genau ein Quantisierermodel die Anzahl an Bits, die durch eine erneute Kodierung erzeugt werden würden, gegenüber der aktuellen Anzahl an erzeugten Bits schätzt, angepasst. In der 26 beginnt der ratengesteuerte Kodierprozess in Schritt 700 und bestimmt anschließend durch Setzen von i = 1 in Schritt 702 den ersten Satz von n Makroblöcken als den momentanen Satz von Makroblöcken. Schritt 704 lädt die kompletten Satz der geschätzten Anzahl an Bits EB(i), die bei der erneuten Kodierung jedes Satz von Makroblöcken MB(i) verwendet wird. MB(i) wird anschließend in Schritt 706 erneut kodiert und die Anzahl an aktuell erzeugten Bits als GB(i) gespeichert. Die prozentuale Differenz zwischen den erzeugten Bits GB(i) und den geschätzten Bits EB(i) wird in Schritt 708 als Schätzverhältnis PB(i) = GB(i)/EB(i) berechnet. Ferner kann das System die die kumulativ geschätzte Anzahl an Bits EB'(i) und die kumulativ erzeugte Anzahl an Bits GB'(i) für alle erneut kodierten Makroblocksätze berechnen, wobei EB'(1) = EB(1), GB'(1) = GB(1), EB'(i) = EB'(i-1) + EB(i) und GB'(i) = GB'(i-1) + GB(i) für i ≥ 2 ist. Folglich kann PB(i) als Alternativ zu dem gezeigten Schritt 708 mit Hilfe der kumulativ geschätzten Anzahl an Bits EB'(i) und der kumulativ erzeugten Anzahl an Bits GB'(i) unter Verwendung von PB(i) = GB'(i)/EB'(i) berechnet werden. Dies stellt eine genauere Angabe dahingehend bereit, wie der Prozess des erneuten Kodierens insgesamt die als Ziel gesetzte Anzahl an Bits erreicht, anstelle einer Angabe, wie genau ein bestimmter Makroblocksatz kodiert worden ist. In Schritt 710 wird das Schätzverhältnis dazu verwendet, einen Korrekturfaktor für die q-Pegel in dem nächsten Makroblocksatz MB(i+1) zu bestimmen.
  • Dieser Korrekturfaktor wird mit Hilfe eines oder zweier Verfahren bestimmt. Das erste Korrekturfaktorbestimmungsverfahren schreitet durch eine einzige geordnete Liste an Verhältnissen in einer Tabelle mit Verhältniswerten, die auch als Verhältnisnachschlagetabelle bezeichnet wird, und bestimmt, zwischen welche zwei Verhältnisse das Schätzverhältnis fällt. Der Index j der größeren der beiden Zahlen in der Tabelle wird als Korrekturfaktorindex verwendet. Der Korrekturfaktorindex wird zum Nachschlagen eines Korrekturfaktors Δi in einer Korrekturfaktortabelle verwendet, indem das jte Element in der Tabelle als der Korrekturfaktor verwendet wird, und der nächste Makroblocksatz MB(i+1) wird durch Δi angepasst. Die Verhältnisnachschlagetabelle RT beinhaltet beispielsweise die geordneten Werte:
    RT = {0.85, 0.90, 0.95, 1.0, 1.05, 1.10, 1.15, 1.2, 1.5}
    und die Korrekturfaktortabelle CT beinhaltet die Werte:
    CT = {–3, –2, –1 0, 1, 2, 3, 4, 9}.
  • 30 zeigt ein Ablaufdiagramm mit einem Prozess zur Bestimmung eines Korrekturfaktorindex aus einer Verhältnisnachschlagetabelle unter Verwendung eines Schätzverhältnisses. Es soll zur Veranschaulichung angenommen werden, dass PB(i) = 0.87 ist. Der Index j wird anfangs in Schritt 722 auf 1 gesetzt. Der Prozess zum Vergleichen von PB(i) mit RT (j) hat begonnen und in Schritt 724 wird PB(i) = 0.87 mit RT (1) = 0.85 verglichen, so wie in der obigen Nachschlagetabelle definiert. Da 0.87 größer als 0.85 ist, schreitet der Prozess zu Schritt 726. Da in Schritt 726 bestimmt wird, dass verbleibende Indices vorhanden sind, schreitet die Steuerung zu Schritt 728 voran, und j wird um 1 inkrementiert. Zurückkehrend zu Schritt 724 ist PB(i) nun kleiner als RT(2), so dass die Steuerung zu Schritt 730 schreitet, welche die Suche nach dem Korrekturfaktorindex beendet.
  • 31 zeigt ein Ablaufdiagramm zum Nachschlagen eines Werts in einer Nachschlagtabelle, dem ein Index in der Tabelle gegeben ist. In der 31 wird der Index j, der 2 ist, zum Bestimmen des Korrekturfaktors in Übereinstimmung mit dem ersten Verfahren dazu verwendet, den entsprechenden Eintrag in CT nachzuschlagen. Durch ein Lesen der zweiten Position in CT wird der Korrekturfaktor in Schritt 726 als –2 bestimmt. Folglich werden die q-Pegel von MB(i+1) um –2 geändert- Gleichermaßen entspricht der Index 7 dann, wenn PB(i) = 1.12 ist, dem ersten Eintrag in RT, der größer als PB(i) ist, so dass der Korrekturfaktor in CT an der siebten Position 3 ist. Folglich werden die q-Pegel von MB(i+1) um 3 geändert, d.h. indem 3 zu dem q-Pegel von MB(i+1) addiert wird.
  • Das zweite Korrekturfaktorbestimmungsverfahren nutzt mit der Ausnahme, dass der prozentuale Anteil an Makroblöcken, die erneut kodiert worden sind, als zweiter Parameter bei der Bestimmung des Korrekturfaktors verwendet wird, einen dem ersten Verfahren ähnlichen Prozess. Ferner wird der Korrekturfaktor nicht aus einer Tabelle, sondern aus einer Matrix gelesen. Durch die Verwendung des prozentualen Anteils der Makroblocksätze, die kodiert worden sind, oder des prozentualen Anteil der nicht erneut kodierten Makroblocksätze können nach Bedarf eine graduellere Korrektur an dem Anfang einer Reihe von Rahmen und deutlichere Änderungen an dem Ende vorgenommen werden. Hierdurch kann das System Änderungen zwischen dem Quantisierermodel und der aktuellen Anzahl an erzeugten Bits genauer korrigieren. Durch die Verwendung eines inversen Verhältnisses zwischen der Anzahl an Makroblocksätzen, die zur erneuten Kodierung verbleiben, und der Korrekturbedeutung, und der Annahme, dass eine Überschätzung in einem Makroblocksatz durch eine Unterschätzung in einem anderen Makroblocksatz aufgehoben wird, werden nicht erforderliche Korrekturen vermieden.
  • Als Beispiel für eine Korrekturfaktormatrix CTM des zweiten Korrekturfaktorverfahrens soll angenommen werden, das CTM wie folgt definiert ist:
    Figure 01100001
  • Wenn das Schätzverhältnis am Anfang einer Reihe an Rahmen eine Überschätzung der Anzahl an erforderlichen Bits anzeigt, so müssen nicht alle nicht genutzten Bits unmittelbar dem nächsten Slice zugewiesen werden. Hätte MB(i+1) unmittelbar die nicht genutzten Bits verbraucht, würde ein MB(k), wobei k ≥ i + 1 ist, der mehr Bits als geschätzt verbraucht hat, MB(k+1) zu einem nicht erfor derlichen höheren Quantisierungspegel zwinge. Die nicht genutzten Bits hätten in dem Prozess der erneuten Kodierung von MB(i) nach vorne getragen werden können, bis sich gebraucht würden und anschließend, und anschließend von MB(k) verbraucht werden.
  • 32 zeigt ein Ablaufdiagramm einer Berechnung des Korrekturfaktors mit Hilfe von sowohl eines Schätzverhältnisses als auch der Anzahl an verbleibenden nicht erneut kodierten Makroblocksätzen. Bei einer Überschätzung der Anzahl an erforderlichen Bits, d.h., wenn im Voraus bestimmt wurde, dass der Korrekturfaktor j für PB(i) = 0.87 gleich 2 ist, bestimmt der Schritt 744 der 32, dass die Überschätzung im ersten Prozent des Neukodierprozesses auftritt. Das Element an (2, 1) von CTM ist –1 und wird folglich als der Korrekturfaktor gewählt. Dies mindert den früheren Korrektureffekt in dem Neukodierprozess, der in dem ersten Verfahren –2 gewesen wäre. Wenn jedoch 99 % des Neukodierprozesses ausgeführt worden sind und das Schätzverhältnis PB(i) = 1.12 ist, würde das Element (99, 7), welches 3 ist, gewählt werden, wodurch vollständig an dem Ende des Neukodierprozesses korrigiert werden würde.
  • Mit erneuter Bezugnahme auf die 27A bis 27C wird ein Rahmen mit vorher zugewiesenen q-Pegeln als weiteres Beispiel gezeigt, bei welchem die Anzahl an Makroblöcken in einem Satz gleich der Anzahl an Makroblöcken in einem einzelnen Slice ist. Die geschätzte Anzahl an Bits EB(i) wird gemäß der vorstehenden Beschreibung berechnet und in einen Speicher geladen, der in dem Ratensteuerungsprozess für MB(i), den in der 27 gezeigten Makroblock i verwendet wird, woraufhin MB(i) tatsächlich erneut kodiert wird. Die Anzahl an erzeugten Bits GB (i) wird bestimmt, das Schätzverhältnis berechnet und der Korrekturfaktor Δi nachgeschlagen. Die Makroblö cke von MB(i+2) werden anschließend, wie in 27B gezeigt, um Δi korrigiert und der Prozess für MB(i+1) wiederholt. 27C zeigt die Änderung in MB(i+2) nachdem die Länge von MB(i+1) geschätzt und berechnet und sein Schätzverhältnis bestimmt worden ist. Dieser Prozess wird fortgeführt, bis alle Makroblöcke und Teilmakroblöcke neu kodiert und korrigiert worden sind.
  • Die 27A bis 27D zeigen ein weiteres Beispiel. Bei diesem Beispiel ist die Anzahl an Makroblöcken pro Satz gleich der Anzahl an Makroblöcken in zwei Slicen. Auf die Berechnung von EB(i), GB(i) und PB(i) folgend werden die Makroblöcke von MB(i+1), der zwei Slice aufweist, wie in 27D gezeigt, um Δi korrigiert. Dieser Prozess zur erneuten Kodierung und Korrektur wird wie indem vorherigen Beispiel fortgeführt, bis alle Makroblöcke erneut kodiert worden sind.
  • Die durch den Neukodierungsprozess bewirkten Änderungen sind in den 28A und 28B gezeigt. Zwei Bereiche gleicher Größe, der Bereich A und der Bereich B, des Rahmens N werden zunächst mit Hilfe einer fast gleichen Anzahl an Bits kodiert. Der Benutzer bestimmt, dass die Qualität des Bereichs A herabgesetzt und die Qualität des Bereichs B verbessert werden soll. Die Anzahl an für die ursprüngliche Kodierung verwendeten Bits soll jedoch vorzugsweise so nahe an der Anzahl an Bits für die erneute Kodierung liegen, wie möglich. Nach der erneuten Kodierung des Rahmens N weist der Rahmen N die gleiche Anzahl an Bytes auf, die auch in der ursprünglichen Kodierung erzeugt wurde, der Beriech A jedoch mit weniger Bits kodiert ist und der Bereich B die zusätzlichen Bits nutzt. Hierdurch wird, wie von dem Benutzer gewünscht, die Qualität des Bereichs B herabgesetzt und die Qualität des Bereichs B verbessert. Der Ratensteuerungsprozess der vorliegenden Erfindung ist dazu ausgelegt, die erneut kodierte Anzahl an Bits des Rahmens so nahe wie möglich der ursprünglichen Anzahl an Bits anzugleichen, indem er kleinere Fehler in der geschätzten Anzahl an Bits, die mit Hilfe der Ratenquantisiererfunktion bestimmt wurde, korrigiert.
  • 29 zeigt Änderungen eines digitalen Videodatenstroms durch einer erneute Zuweisung von Bits aus einer Mehrzahl an Rahmen auf eine zweite Mehrzahl an Rahmen. Obgleich der individuellen Rahmengrößenänderung sollte die Gesamtgröße des Satzes an Rahmen gleich bleiben. Die Ratensteuereinheit ermöglicht es, dass die Anzahl an Bits für die erneute Kodierung der Mehrzahl an Rahmen feinabgestimmt wird, so dass sie selbst dann, wenn die zum Bestimmen der geschätzten Anzahl an Bits verwendete Ratenquantisiererfunktion leicht fehlerbehaftet ist, gleich der Anzahl an Bits aus der ursprünglichen Kodierung ist.
  • B. ERNEUTES KODIEREN BEI GLEICHZEITIGER VERMEIDUNG EINER DEKODIERUNG VON ARTEFAKTEN AN EDITIERPUNKTEN
  • 1. Zurücksetzen des Kodierers in den Zustand der ursprünglichen Kodierung
  • Mit Hilfe der vorstehend beschriebenen zeitlichen und der vorstehend beschriebenen räumlichen Qualitätseditieroperation kann die Qualität des Videos durch eine erneute Kodierung des Videos mit neuen Quantisiererwerten geändert werden. Ein einfaches Einsetzen des erneut kodierten Videos in das ursprüngliche Video kann jedoch in nicht akzeptablen Dekodierartefakten resultieren, die als sichtbare Störung an dem Editierpunkt des Video erscheinen. Diese sichtbaren Störungen treten selbst dann auf, wenn das neue Segment, welches eingesetzt wird, die richtige Syntax, wie beispielsweise eine MPEG-2 Syntax, auf weist und die Pufferbedingungen entlang der Editiergrenze erfüllt sind. Das Problem resultiert aus der Nichtverfügbarkeit des letzten Referenzrahmens (der letzte P-Rahmen), welcher dem Editiersegment vorangeht, und einem verschiedenen Referenzrahmen (der letzte P-Rahmen) an dem Ende des Editiersegments. Dies verursacht ein Missverhältnis zwischen der Kodierung und der Dekodierung des ersten Satzes an B-Rahmen am Anfang des Editiersegments und in dem ersten Satz an B-Rahmen, die unmittelbar auf das Editiersegment folgen.
  • Um die Editierung des digital kodierten und komprimierten Video angemessen ausführen zu können, ist es zunächst erforderlich, die richtigen Positionen in dem kodierten Bitdatenstrom zu bestimmen, welche den gewünschten Editierpunkten entsprechen. Dieser Prozess ist vorstehend in dem Abschnitt VI über die Hilfsmittel für einen Zugriff auf das kodierte Video beschrieben worden. Gemäß obiger Beschreibung wird dies ausgeführt, indem die Anzahl an Bits, die für jeden vorherkodierten Rahmen verwendet wird, addiert wird, um den Bit-Offset für das in Frage kommende Bild zu bestimmen. Alternativ könnte ein Verzeichnis verwendet werden, um Information, welche den exakten Ort eines bestimmten Rahmen oder einer bestimmten Zeitspanne in dem kodierten Bitdatenstrom anzeigt, anzeigt.
  • Die 33A bis 33E zeigen Zeitperioden eines Videos, die als Beispiele zur Erläuterung des Betriebs der Erfindung verwendet werden. In der 33A ist ein ursprünglicher Abschnitt O eines kodierten Video gezeigt. Es wird gewünscht, die kodierte Zeitspanne von 5m 0s bis 10m 0s (fünf Minuten, null Sekunden bis zehn Minuten, null Sekunden) durch einen anderen Abschnitt des Videos zu tauschen. 33B zeigt einen neuen Abschnitt N des nicht kodierten Videos, der in das kodierte Video der 33A eingesetzt werden soll. Die gestrichelte Linien in den 33B und 33C werden zum Kennzeichnen des nicht kodierten Videos und die durchgezogenen Linien in den 33A, 33D und 33E zum Kennzeichnen des kodierten Videos verwendet.
  • Wenn nur der Abschnitt des neuen Videos, der in der 33B gezeigt ist, mit Hilfe eines normalen MPEG-2 Modus kodiert, in dem eine GOP auf eine vorherige GOP hingewiesen hat, und in das in der 33A gezeigte Video eingesetzt worden ist, würden Dekodierartefakte an den Editierpunkten 5m 0s und 10m 0s bedingt durch den Mangel an einem genauen Referenzrahmen auftreten, der für die in der MPEG-2 Videokompression verwendete bidirektionale Kodierung erforderlich ist. Dieses Problem tritt sowohl an dem Punkt fünf Minuten als auch an dem Punkt zehn Minuten auf, die von der Erfindung auf unterschiedliche Weise behandelt werden, und zwar basierend auf der Tatsachen, dass der Anfang einer GOP auf eine vorhergehende GOP verweist, ein Ende der GOP jedoch nicht voraus auf die nächste GOP verweist.
  • Artefakte können an dem Anfang einer GOP verhindert werden, indem der letzte P-Rahmen der vorhergehenden GOP, der als Referenzrahmen für die letzten zwei B-Rahmen der GOP verwendet wird, erneut erzeugt wird. Dies wird erzielt, indem beispielsweise eine GOP des ursprünglichen Videos an dem Anfang des einzusetzenden Videos angeordnet und dieses Video von 4m 58.5s bis 4m 59s in der 1 gezeigt wird. In den Beispielen ist eine GOP gleich eine halbe Sekunde lang, wobei andere Zeitspannen für die GOPs möglich sind. Der Kodierer wird für diesem Abschnitt erneut mit den gleichen Quantisiererwerten, die auch für die ursprüngliche Kodierung verwendet wurden, laufen gelassen, um den letzten P-Rahmen der GOP unmittelbar vor 4m 59s zu erzeugen. Sämtliche aus der erneuten Kodierung des kurzen Videoabschnitts resultierende Information kann mit Ausnahme des letzten P-Rahmens gelöscht werden.
  • Zur Verhinderung von Dekodierartefakten an dem Ende des Editiersegments wird eine zweite Zeitspanne (z.B. von 10m 0s bis 10m 1s in der 33C) des ursprünglichen Videos an das Ende des einzusetzenden neuen Videos gesetzt und dieses eine zweite Segment mit Hilfe der gleichen Quantisiererwerte kodiert, die auch während der ursprünglichen Kodierung verwendet wurden. Würde diese eine zweite Zeitspanne nicht an das Ende des Videos gesetzt werden, würden die zwei B-Bilder unmittelbar nach der 10m 0s Markierung dann, wenn 10m 0s der Trennpunkt zwischen zwei GOPs ist, zurück auf ein Referenzbild verweisen, das sich zwischen vor und nach der Editierung geändert hat. Obgleich die Beispiele dahingehend beschrieben wurden, dass Videozeitspannen einer halben Sekunde oder einer Sekunde zu dem neuen Abschnitt hinzugefügt werden, kann das Konzept auf das Hinzufügen von GOPs verallgemeinert werden.
  • Obgleich die Dekodierartefakte nicht länger an der 10 Minuten Markierung auftauche, da der Editierpunkt an dem Ende nun der 10m 1s Punkt ist, muss berücksichtigt werden, ob bei 10m 1s Dekodierartefakte auftreten. Sichtbare Dekodierartefakte werden nicht auftreten, da die zwei B-Rahmen unmittelbar nach der 10m 1s Markierung zurück auf im Wesentlichen den gleichen Referenzrahmen verweisen, auf den sie auch zuvor verwiesen haben. Obgleich die zwei B-Rahmen unmittelbar nach der 10m 0s Markierung nicht auf den gleichen Referenzrahmen verweisen, auf den sie vorher verwiesen haben, sind die zwei B-Rahmen erneut kodiert worden und verweisen folglich in geeigneter Weise zurück auf einen neuen Referenzrahmen. Folglich werden an den Punkten 10m 0s oder 10m 1s keine sichtbaren Dekodierartefakte auftreten.
  • Die zwei GOPs (eine Sekunde), die an das Ende in der 33 gesetzt werden, sollten ausreichend Zeit für den letzten P-Rahmen sein, um annähernd der ursprünglichen Kodierung zu entsprechen. Wenn garantiert werden könnte, dass die exakt gleichen Quantisiererwerte bei der erneuten Kodierung des ursprünglichen Videos nach dem 10 Minuten Punkt verwendet werden, sollte eine GOP (eine halbe Sekunde) ausreichen, um ein in geeigneter Weise ein richtig kodiertes Referenzbild zu erzeugen. Vorzugsweise werden jedoch zwei GOPS verwendet, um eine geeignete Qualität sicherzustellen. Obgleich vorzugsweise die gleichen Quantisiererwerte wie bei der ursprünglichen Kodierung verwendet werden, kann es in der Praxis kleinere Abweichungen von den ursprünglichen Quantisiererwerten geben, so dass folglich zwei GOPs bevorzugt werden.
  • Zusätzlich zu den ursprünglichen Zeitspannen des Videos, die zwischen 4m 58.5s und 4m 59s und zwischen 10m 0s und 10m 1s verwendet werden, zeigt die 33C ein zusätzliches ursprüngliches Video von 4m 59s bis 5m 0s. Bei diesem Video kommt es nicht darauf an, Dekodierartefakte zu verhindern, und folglich könnte die eine halbe Sekunde zum Bestimmen des letzten P-Rahmens unmittelbar vor der 5m 0s Markierung verwendet werden (z.B. von 4m 59.5s bis 5m 0s). Die 4m 59.5s bis 5m 0s Zeitspanne wird jedoch zu dem neuen Video hinzugefügt, um jede Chance auszuschließen, dass der Benutzer es wahrnimmt, dass sich die manuelle Änderung der Qualität auf einen Bereich hinter der Editiergrenze auswirkt. Diese Sinnestäuschung resultiert aus der Tatsache, dass die Kodierreihenfolge für Rahmen an dem Anfang einer MPEG-GOP IBB ist, die Rahmen jedoch als BBI angezeigt werden. Die eine Sekunde Zeitspanne wird mithilfe der gleichen Quantisiererwerte kodiert, die auch während der ursprünglichen Kodierung dieser Zeitspanne verwendet wurden. Nachstehend wird be schrieben, wie die vorher verwendeten Quantisiererwerte erhalten werden. Wenn die eine Sekunde Zeitspanne nicht von 4m 59s bis 5m 0s hinzugefügt wurde, würde das in der 33D gezeigte eingesetzte kodierte Video bei 5m 0s beginnen.
  • die aus der Kodierung des in der 33C gezeigten Videos resultierenden Nutzdaten sind in der 33D als Austauschdaten S, die von 4m 59s bis 10m 1s laufen, gezeigt. Diese Austauschdaten S werden anschließend in die ursprünglich kodierten Daten, die in der 33A gezeigt sind, eingesetzt, wodurch der in der 33E gezeigte endgültige Bitdatenstrom erzeugt wird.
  • Die nicht kodierte und die kodierte Information, die in der 33A gezeigt ist, entspricht einem Videosignal der bevorzugten Ausführungsform, kann jedoch auch ein Audiosignal oder irgendeine Art von Information sein, die frühere und/oder spätere Information nutzt, um die kodierte Information zu dekodieren.
  • Der neue Videoabschnitt der 33B wird aus irgendeiner Videosignalquelle erhalten und kann durch den vorstehend beschriebenen zeitlichen oder räumlichen Editierprozess erzeugt werden. Das in der 33C von 4m 59s bis 5m 0s und 10m 0s bis 10m 1s gezeigte ursprüngliche Video ist das ursprüngliche Video mit den gleichen Quantisiererwerten, die für die ursprüngliche Kodierung verwendet wurden. Dieses Video an den Enden des neuen Videos N in der 33C wird einfach erzielt, indem der zeitliche Editierprozess verwendet und die Qualität der Endabschnitte, wie vorstehend in dem Abschnitt über die zeitliche manuelle Editierung beschrieben, auf geschützt gesetzt wird, was bedeutet, dass die Quantisiererwerte gleich bleiben. Alternativ ist es möglich, die Erfindung dazu zu verwenden, einen Abschnitt des Video herauszu schneiden und kein neues Videosignal einzusetzen. In diesem Fall würde in der 33B kein Videosignal vorhanden sein und das 'N'-Segment und dessen entsprechende Kodierung in den 33C bis 33E fehlen. Solange der letzte P-Rahmen vor dem Editiersegment angemessen aufgebaut ist und eine halbe bis eine Sekunde (eine GOP oder zwei GOPs) des ursprünglichen Videos an das Ende des neuen zu kodierenden Videos gesetzt und mit den gleichen Quantisiererskalierungen kodiert wird, die auch bei der ursprünglichen Kodierung verwendet wurden, wird in keiner Situation ein sichtbares Dekodierartefakt erscheinen.
  • 34 zeigt ein Ablaufdiagramm des bezüglich der 33A bis 33E beschriebenen Prozesses. Nach Beginn des Prozesses kodiert der Schritt 78ß das Video in das komprimierte Format, um das in der 33A gezeigte kodierte Video zu erzeugen. Schritt 782 bestimmt den neuen Abschnitt des Videos, der sich in einem nicht kodierten Format befindet, das in das kodierte Video einzusetzen ist. Dieser neue Abschnitt des Videos ist in den 33B und 33C als N gezeigt und kann Szenen darstellen, die mit oder nicht mit dem ursprünglichen Rahmen zusammenhängen, oder eine von dem ursprünglichen Rahmen verschiedene Zeitspanne aufweisen. Der Start- und der Endpunkt des einzusetzenden Videos liegt bei 5m 0s bzw. bei 10m 0s. Der tatsächliche Start- und der tatsächliche Endpunkt der endgültigen einzusetzenden Kodierung kann jedoch, wie in der 33D gezeigt, verschieden sein.
  • Schritt 784 setzt aus den vorstehend beschriebenen Gründen Zeitspannen nicht kodierten Videos an den Enden der kodierten neuen Abschnitte des Videos, um Dekodierartefakte an den Editierpunkt 5m 0s und 10m 0s zu verhindern. Diese hinzugefügten Zeitspannen gehen von 4m 59s bis 5m 0s und von 10m 0s bis 10m 1s, obgleich die Zeitspanne von 4m 59s bis 5m 0s nicht von Bedeutung ist.
  • Schritt 786 bestimmt den P-Rahmen unmittelbar vor dem Editierpunkt. Da das in der 33E eingesetzte Video von 4m 50s bis 10m 1s geht, muss der letzte P-Rahmen unmittelbar vor 4m 50s bestimmt werden. Dieser P-Rahmen wird bestimmt, indem der Kodierer für die Zeitspanne von 4m 58.5s bis 4m 50s mit den Quantisiererwerten, die zur ursprünglichen Kodierung des P-Rahmens verwendet wurden, laufen gelassen wird. Die Quantisiererwerte werden bestimmt, indem die ursprünglichen Quantisiererwerte aus der Makroblockdatei mit dem in der 10A oder 10B gezeigten Format abgefragt werden. Die Quantisiererwerte für jeden Makroblock eines gesamten Films verbrauchen jedoch einen großen Betrag an Speicherkapazität, weshalb es gegebenenfalls nicht zweckmäßig ist, die Quantisiererwerte zu speichern. Alternativ können die Quantisiererwerte einfach mit Hilfe des Ratensteuerungszustands erzeugt werden, der sich auf die Videopuffer für die I-, P- und B-Rahmen, die Zielbits für das in der Bildebenenlogdatei der 9B als allocated_bit gezeigte Bild, den Aktivierungspegel des Bildes, das als mean_activity in der 9c gespeichert ist, und den Aktivierungspegel der Makroblöcke, die während der Kodierung von dem Kodierer berechnet werden, bezieht. Der Ratensteuerungszustand wird, wie in der unteren Hälfte der 9c gezeigt, als S1_i, S2_i, S1_p, S2_p, S1_b und S2_b, die jeweils die Ratensteuerungszustandsinformation für die I, P- und B-Videopuffer speichern in der Bildebenenlogdatei gespeichert. Ein Fachmann, der mit dem Gebiet der Videokodierung vertraut ist, könnte auf der Grundlage der hierin offenbarte Lehre ohne große Schwierigkeiten die Quantisiererwerte für den gewünschten P-Rahmen bestimmen.
  • Als alternative Methode zur Bestimmung der Quantisiererwerte des Referenzrahmens und/oder des kodierten Rahmens an sich kann die kodierte Version des Re ferenzrahmens in dem kodierten Referenzdatenstrom auf bekannte Weise dekodiert werden. Ferner können beliebige andere Verfahren zum Erzielen des benötigten Referenzrahmens ausgeführt werden.
  • Nach Erhalt des Referenz-P-Rahmens wird das Video in Schritt 788 kodiert, wobei die gleichen Quantisiererpegel wie bei der ursprünglichen Kodierung des Endabschnitts beibehalten werden. Die Quantisiererpegel werden auf die vorstehend beschriebene Weise erhalten. Das resultierende kodierte Video ist in der 33D gezeigt.
  • Schritt 790 setzt anschließend das neu kodierte Video in das ursprünglich kodierte Video, wodurch, wie in der 33E gezeigt, das endgültige Produkt erhalten wird. Dieses das eingesetzte kodierte Video aufweisende kodierte Video weist minimale Dekodierartefakte an den Editierpunkten auf.
  • 2. Erneutes Kodieren in einem Geschlossene-GOP-Modus
  • Alternativ zu dem in den 33A bis 34 beschriebenen Verfahren kann für die Kodierung des Anfangs des neuen Videos eine unterschiedliches Verfahren ausgeführt und dennoch Dekodierartefakte verringert werden. In diesem Verfahren entspricht die Methode, mit welcher die Endkante des Videos behandelt wird, der vorstehend unter Bezugnahme auf die 33A bis 34 beschriebenen Methode.
  • Als Beispiel dieser alternativen Ausführungsform soll die 33A als das ursprüngliche kodierte Video und die 33B als das nicht kodierte Video, das in die 33A einzusetzen ist, verwendet werden. An die Anfangskante der 33B wird kein ursprüngliches nicht kodiertes Video gesetzt, während an das Ende der 33B, wie bezüglich der 33C beschrieben, zwei GOPs (eine Sekunde) des ursprünglichen nicht kodierten Videos gesetzt werden, wobei das zu kodierende Video in der 35A gezeigt ist.
  • Wenn der Kodierer das in der 35A gezeigte Video in dem Geschlossene-GOP-Modus für die erste GOP des Videos kodiert, während er die Bits für die B-Rahmen ohne ein zweites Referenzbild erhöht, werden die sichtbaren Dekodierartefakte an dem Anfangseditierpunkt beseitigt. Die Kodierung des Endabschnitts mit Hilfe der gleichen Quantisiererpegel, die auch für die ursprüngliche Kodierung verwendet wurden, von 10m 0s bis 10m 1s entspricht der vorstehend unter Bezugnahme auf die 33A bis 34 beschriebenen Kodierung, wobei das resultierende kodierte Video in der 35B gezeigt ist. Der Geschlossene-GOP-Modus ist im Abschnitt 6.3.8. des Standards MPEG-2 beschrieben. Das Geschlossene-GOP-Modus-Flag wird auf 1 gesetzt, was anzeigt, dass kodierte B-Rahmen mit Hilfe von einzig einer Rückabschätzung kodiert worden sind, und dass der Referenzrahmen der vorherigen GOP nicht verwendet wurde. Da jedoch gewöhnlich einer der Referenzrahmen, der für die bidirektionalen Rahmen verwendet wird, nicht verfügbar ist, werden die B-Rahmen eine verringerte Qualität aufweisen, sofern kein Verfahren ausgeführt wird, mit welchem die verringerte Qualität behoben wird.
  • Zum Lösen des Problems der verringerten Qualität der in dem Geschlossene-GOP-Modus kodierten B-Rahmen wird die Anzahl an Bits für die nur eine Prognoserichtung aufweisenden B-Rahmen derart erhöht, dass die Qualität des Rahmen im Wesentlichen nicht verringert wird. Da der B-Rahmen nur eine Prognoserichtung aufweist, wird die Anzahl an Bits vorzugsweise auf annähernd die Anzahl an Bits erhöht, die für gewöhnliche P-Rahmen verwendet wer den. Die Anzahl an Bits kann jedoch in Abhängigkeit der gewünschten Bildqualität variieren.
  • Das kodierte Video der 35B kann, wie in der 35C beschrieben, direkt in das vorher kodierte Video eingesetzt werden.
  • 36 zeigt ein Ablaufdiagramm mit dem Prozess zur Verwendung des Geschlossene-GOP-Modus. In der 36 wird das Video in Schritt 800 in das komprimierte Format kodiert und der neue Abschnitt des Videos, der in das kodierte Video einzusetzen ist, in Schritt 802 bestimmt, und zwar auf die gleiche Weise, wie es bezüglich der Schritt 780 und 782 beschrieben wurde. Anschließend fügt der Schritt 804 nach Bedarf GOPs (eine GOP oder zwei GOPs) des nicht kodierten Videos an die Endkante des neuen Videoabschnitts.
  • Schritt 786 kodiert anschließend das Video. Die erste GOP des neuen Videos wird in dem Geschlossene-GOP-Modus kodiert, und die Anzahl an Bits für die bidirektional vorhergesagten Rahmen, denen ein Referenzrahmen fehlt, wird auf annähernd die Anzahl an Bits erhöht, die für Rahmen, für die eine Richtung vorhergesagt ist, wie P-Rahmen, verwendet werden. Wenn die Gesamtzahl an Bits für das kodierte Video gleich bleiben soll, müssen die zusätzlichen Bits, die für den bidirektionalen Rahmen benötigt werden, aus anderen Rahmen entfernt werden. Dies kann auf die vorstehend in den Abschnitten über die räumliche und/oder zeitlich manuelle Editierung beschriebene Weise erreicht werden. Anschließend wird der Rest des neuen Abschnitts des Video normal kodiert. Zuletzt wird die hinzugefügte Zeitspanne an der Endkante des neuen Videos mit Hilfe der gleichen Quantisiererwerte kodiert, die auch während der ursprünglichen Kodierung der hinzugefügten Zeitspanne verwendet wurden, um Dekodierarte fakte an dem Endpunkt des Editiersegments zu verhindern. Schließlich wird das neu kodierte Video in Schritt 808 in das ursprünglich kodierte Video eingesetzt.
  • Durch beide der vorstehend beschriebenen und in den 34 und 36 gezeigten Prozesse weist die endgültige Version des die eingesetzten kodierten Abschnitte aufweisenden kodierten Videos eine verringerte Anzahl an Dekodierartefakten auf, und folglich werden die sichtbaren Videostörungen verringert, wodurch die Qualität des Videos verglichen mit dem Fall, bei dem keine Korrekturschritte zur Verhinderung der Dekodierartefakte vorgenommen werden, verbessert wird. Die vorstehend beschriebenen Beispiele beziehen sich auf Editierpunkte an den Grenzen von GOPs. Die obige Lehre kann jedoch auch auf Editierungen angewandt werden, die sich nicht an GOP-Grenzen befinden.
  • Der Prozess zur Verringerung von Dekodierartefakten wird mit Hilfe der Arbeitsstationen 10, 30 und 40 zusammen mit dem Wiedergabe-VTR 51 und dem Videokodiervorrichtung 50 ausgeführt. Es sind jedoch auch andere Hardware-Alternativen möglich, und die obige Ausgestaltung der Erfindung kann mit Hilfe eines allgemeinen Computers oder einer bestimmten Hardware zum Ausführen des Prozesses realisiert werden. Die Berechnungen zur Bestimmung der Editierpunkte und zur Bestimmung des Videos, das an das Ende des neuen Abschnitts des zu kodierenden Video zu setzen ist, werden entweder in der Arbeitsstation 10 oder in der Arbeitsstation 30 ausgeführt.
  • IX. RATENQUANTISIERERMODELLIERUNG ZUR KODIERUNG
  • Um die Anzahl an Bits, die benötigt werden, um eine Reihe von Makroblocks, die aus einem Kodierprozess resultieren, genau darstellen zu können, kann ein Rahmen mit Hilde verschiedener Quantisierunspegel, die typischen Quantisierunspegeln für einen Rahmen entsprechen, vorkodiert werden. Der Rahmen kann anschließend tatsächlich mit Hilfe der typischen Quantisierungspegel als auch anderer Quantisierungspegel kodiert werden, In der bevorzugten Ausführungsform, die in der 1A gezeigt ist, lädt die Arbeitsstation 10 vorbestimmte Quantisierungspegel in die Videokodiervorrichtung 50. Die Videokodiervorrichtung 50 führt anschließend die Vorkodierung aus. Das genauste Verfahren zur Erzeugung eines Quantisierungsmodels würde eine Kodierung jedes Rahmens bei jedem möglichen Quantisierungspegel und ein Aufnehmen der Statistiken bezüglich der resultierenden Anzahl an verwendeten Bits umfassen. Dieser Prozess würde jedoch n Durchgänge über das Rohvideo erfordern, wobei n die Gesamtzahl an Quantisierungspegeln ist, die zum Kodieren des Rohvideos verwendet werden. Da dieses Verfahren zu viel Zeit benötigt, stellt diese Erfindung ein verbessertes Verfahren bereit, das mit dem optimalen Verfahren vergleichbare Ergebnisse in einem Bruchteil der für das herkömmliche Verfahren benötigten Zeit hervorbringt. Das Verfahren umfasst ein Zuweisen verschiedener Quantisierungspegel auf verschiedene Teile einer Mehrzahl von Rahmen, so dass während einer Vorkodierungsphase eine maßgebliche Bitrate gegenüber einem Quantisierungspegelmittelwert für jeden der Mehrzahl von Rahmen berechnet werden kann. Hierdurch werden n-1 Kodierungen für jeden Rahmen gespart, während genaue Quantisierungspegel versus Bitratenstatistiken erzeugt werden. Diese Statistiken können anschließend interpoliert werden, um die Anzahl an Bits zu schätzen, die von einem Makroblock verwendet werden, dessen Quantisierungspegel versus Bitrate nicht in dem Vorkodierprozess bestimmt worden ist. In zwei alternativen Ausführungsformen kodiert das Verfahren eine Mehrheit von Rahmen aus dem Rohvideo vor oder alle Rahmen des Rohvideos vor.
  • 37 zeigt einen Rahmen eines Rohvideos, der zwei verschiedene Quantisierungspegel aufweist, die einem Makroblock während des Vorkodierprozesses auf einer Makroblockbasis zugewiesen werden, so dass eine Zweipunktquantisierungspegel-versus-Bitrate-Linie für die Mehrzahl von Rahmen erzeugt wird und die Ergebnisse für die Mehrzahl von Rahmen gespeichert werden. In alternativen Ausführungsformen können die Quantisierungspegel in Makroblockgruppen oder -streifen zugewiesen werden. 37B zeigt die gleichförmige Verteilung der vier Quantisierungspegel entlang eines Rahmens, bei welchem die Quantisierungspegel an verschiedenen Positionen in dem Rahmen zugewiesen sind, um statistische Unregelmäßigkeiten basierend auf der Position zu vermeiden. In dem gezeigten Rahmen ist der erste Quantisierungspegel für jede Reihe j in der Reihe qj mod 4. Dies ergibt eine Vierpunktquantisierungspegel-versus-Bitraten-Kennlinie. 37C zeigt den gleichen Prozess wie 37B, jedoch sind die Quantisierungspegel blockweise angeordnet. Obgleich ein einziger Durchgang dieses Prozesses eine genaue Quantisierungspegel-versus-Bitraten-Kennlinie erzeugt, wird dieser Prozess in einer alternativen Ausführungsform eine Anzahl von Malen über die Mehrzahl von Rahmen wiederholt, um genauere Statistiken zu erzeugten, die sich den Statistiken annähern, die durch eine Analyse jedes Rahmens an jedem Quantisierungspegel gewonnen würde.
  • 38 zeigt den allgemeinen Prozess zur Bestimmung Quantisierungspegel-versus-Bitraten-Kennlinie einer Mehrzahl von Rahmen. Der Prozess startet in Schritt 850 und wird in Schritt 852 fortgesetzt, in dem die Videosignale erhalten werden, welche das Rohvideo darstellen, das vorkodiert werden soll. In Schritt 854 zeigt der Prozess an, dass der erste Rahmen, i = 1, wobei i der Rahmenindex ist, vorkodiert werden soll. Anschließend werden in Schritt 856 die Quantisierungspegel für den Rahmeni=1 gleichmäßig entlang des Rahmens zugewiesen, um statistische Unregelmäßigkeiten zu verhindern. In Schritt 858 wird der Rahmeni=1 mit Hilfe der in Schritt 856 zugewiesenen Quantisierungspegel vorkodiert. Die Ergebnisse von Schritt 858 werden in Schritt 860 bestimmt, so dass die Bitraten für jeden in Schritt 856 zugewiesenen Quantisierungspegel für den Rahmeni=1 aufgenommen werden. In schritt 862 bestimmt das Verfahren, ob alle der Mehrzahl von Rahmen vorkodiert worden sind oder nicht. Da nur ein Rahmen vorkodiert wurde, schreitet der Prozess zu Schritt 866 voran, bei welchem er den zweiten Rahmen als den zu kodierenden Rahmen kennzeichnet, indem er den Rahmenindex i um eins inkrementiert. Die Steuerung kehrt anschließend zu Schritt 856 zurück, welcher dem Rahmeni=2 Quantisierungspegel zuweist. Der Prozess der Zuweisung, Vorkodierung und Bestimmung der Bitraten in den Schritten 856, 858, 860 und 862 wird für alle verbleibenden Rahmen fortgeführt. Wenn der Schritt 862 bestimmt, dass alle der Mehrzahl von Rahmen vorkodiert sind, endet der Prozess, indem er zu Schritt 864 voranschreitet. Wenn der Schritt 864 erreicht ist, wird eine Quantisierungspegel-versus-Bitraten-Kennlinie mit Hilfe der in Schritt 856 zugewiesenen Quantisierungspegel und deren zugehörigen Bitraten angenähert.
  • Auf die Erzeugung der Quantisierungspegel-versus-Bitraten-Kennlinien für die Mehrzahl von Rahmen eines Rohvideos hin schreitet der Prozess zu einem Kodierprozess voran, durch den Teile des Rohvideos kodiert werden, um auf ein digitales Speichermedium, wie beispielsweise eine CD, zu passen. Es kann ein, eine Mehrzahl oder die Mehrheit aller Rohvideosegmente in dieser zweiten Phase kodiert werden. Wenn die Rohvideosegmente automatisch zu kodieren sind, nutzt ein Kodierer ein Aktivierungsmaß jedes Makroblock zusammen mit einer entsprechenden Quantisierungspegel-versus-Bitraten-Kennlinie, um die den Mak roblöcken jedes Rahmens in dem Segment zuzuweisenden Quantisierungspegel zu bestimmen. Anschließend werden alle Rahmen in den Segmenten kodiert und eine resultierende Anzahl an Bits dieser mit einer geschätzten Anzahl an Bits auf der Grundlage der zugewiesenen Quantisierungspegel verglichen. Wenn die resultierende Anzahl an Bits deutlich von der erwarteten Anzahl an Bits abweicht, versucht der automatische Kodierer, die Abweichung durch eine Änderung der Quantisierungspegel des nächsten zu kodierenden Makroblocksatzes auszugleichen. Dieser sequentielle Prozess ermöglicht es einem automatischen Kodierer, die Segmente des gesamten Rohvideos derart zu kodieren, dass sie einer Zielanzahl an Bits entsprechen.
  • Ferner können die Quantisierungspegel-versus-Bitraten-Kennlinien der späteren Rahmen in einer Videosequenz dazu verwendet werden, die Qualität innerhalb eines resultierenden digitalen Videos zu regulieren. Der Rahmen N ist, wie in der 39 gezeigt, dafür bekannt, für die gleichen Quantisierungspegel weniger Bits als der Rahmen M zu erzeugen. Folglich benötigt der Rahmen M mehr Bits, um ein Bild mit der gleichen Qualität wie ein Rahmen N zu erzeugen. Wenn der Rahmen N mit einer gewünschten Qualität kodiert wird, ohne alle seiner zugewiesenen Bits zu verbrauchen, kann der Kodierer die zusätzlichen Bits weiter tragen, um bei der Kodierung des Rahmens M verwendet zu werden, der mehr Bits pro Zeiteinheit für die gleiche Qualität benötigt. Diese Fähigkeit steht nicht in Systemen mit nur einem einzigen Rahmenübertragungspuffer zur Verfügung, wenn M > N + 1 ist.
  • X. KOMBINIERUNG VON AUDIO-, VIDEO- UND DIGITALEN UNTERBILDSIGNALEN MIT HILFE VON DATENSTRUKTUREN
  • Der obige Abschnitt dieser Patentanmeldung ist primär auf die Verfahren gerichtet, die während der Kodierung der audiovisuellen Information zur Erzeugung kodierter und komprimierter digitaler audiovisueller Signale verwendet werden. Um die Audio- und Videoinformation zu kombinieren, zu speichern und anschließend zu dekodieren, um die audiovisuelle Information beispielsweise auf einem Fernseher wiederherzustellen oder zu rekonstruieren, ist es erforderlich, die Audioinformation, die Videoinformation sowie weitere Information, die kodiert worden ist, zu kombinieren und zu verschachteln, so dass sie gespeichert und anschließend dekodiert werden kann. Das Kombinieren der Audio-, Video- und weiteren Information ist vorstehend kurz als Formatierungsprozess beschrieben worden, der in der Arbeitsstation 20 der 1A auftritt. Der Formatierungsprozesses sowie die resultierenden Datenstrukturen und Datensignale werden nachstehend näher beschrieben.
  • Es wird auf die 1A Bezug genommen, in welcher das MPEG-Video und das kodierte Audiosignal auf der Disk 21 gespeichert sind. Ferner ist Unterbildinformation, die Untertitel und/oder graphische Darstellungen umfasst, die angezeigte werden und/oder einer Oberfläche des Videos überlagert werden, im Voraus von beispielsweise einer getrennten Arbeitsstation kodiert worden und die kodierte Unterbildinformation auf einem digitalen Speichermedium, wie beispielsweise einer Diskette, einem Band oder einer anderen Art von Disk, gespeichert worden. Diese gespeicherte Unterbildinformation wird von einer der digitalen Speichervorrichtungen 22 gelesen, in einem Formatierungsprozess mit dem kodierten Audio und Video auf der Disk 21 kombiniert und von der Arbeitsstation 20 zu einem einzigen Datenstrom formatiert. Das Ausgangssignal des Formatierungsprozesses wird auf der Disk 21 gespeichert und anschließend auf ein digitales Band der digitalen Speichervorrichtungen 22 geschrieben. Das Band wird anschließend dazu verwendet, optische Disks mit Hilfe bekannter Fertigungsverfahren für optische Disks zu erzeugen. Folglich bezieht sich die Erfindung nicht nur auf die Kodierung der akustischen und visuellen Daten, sondern ebenso auf einen Prozess und ein System zur Kombinierung kodierter Audio-, Video und Unterbilddaten zu einem Datenstrom, das digitale Speichermedium und darauf vorhandene Datenstrukturen, welche die formatierte Audio-Video- und Unterbildinformation speichern, und ferner auf einen Dekodierprozess und einem Dekodierer, welcher die Audio-, Video- und Unterbildinformation trennt und wiederherstellt, um sie einem Benutzer oder Verbraucher zu zeigen. Es sollte beachtet werden, dass die Datenstrukturen auf der optischen Disk oder innerhalb der formatierten Daten bestimmte elektronische Strukturelemente betreffen, die einen physikalischen Aufbau von in dem Speicher gespeicherter Information vermitteln. Diese bestimmten elektronischen Strukturelemente sind auf einer optischen Disk gespeichert, die für ein Video-On-Demand-System verwendet werden kann, oder können mit Hilfe eines digitalen Videorekorders für einen Benutzer oder Verbraucher dekodiert werden.
  • Vor der Beschreibung der bestimmten Eigenschaften des Formataufbaus der Disk oder anderer Datenträger für die kodierte audiovisuelle Information werden bekannte, von der Erfindung genutzte Standards beschrieben. Der Standard ISO/IEC 13818-1 beschreibt Systemaspekte von MPEG-Video und MPEG-Audio. Der Standard ISO/IEC 13818-1, der nachstehend als MPEG-Systembeschreibung bezeichnet wird, beschreibt den grundsätzlichen Multiplexierungsansatz für Video- und Audiodatenströme. Diese Datenströmen werden aufgebrochen und in Pakete geteilt, die Packetized-Elementary-Stream-(PES)-Pakete genannt werden. Diese Pakete verschiedener Datenströme umfassen Audio- und Videodatenströme mit einer gemeinsamen Zeitbasis und werden zu einem einzelnen Datenstrom kombiniert. Die MPEG-Sys tembeschreibung beschreibt ferner die Verwendung eines transparenten Datenstroms, welche ein oder mehrere Programme mit einer oder mehreren Zeitbasen zu einem einzelnen Datenstrom kombiniert. Die MPEG-Systembeschreibung beschreibt die Verwendung von Darstellungszeitstempeln (PTS), die zur Synchronisierung mehrerer einfacher Datenströme verwendet werden. Die Zeitstempel sind gewöhnlich in Einheiten von 90 kHz und werden in Verbindung mit einer Systemtaktreferenz (SCR), der Programmtaktreferenz (PCR) und einer optionalen Elementardatenstromtaktreferenz (ESCR) verwendet. Eine vollständige Beschreibung mit den Details über die Formatierung der Daten in Übereinstimmung mit der MPEG-Systembeschreibung ist in der ISO (IEC 13818-1 gegeben.
  • Zusätzlich zur Verwendung eines auf ISO/IEC 13818-1 basierenden Formatierungsprozesses werden die Daten ferner in Übereinstimmung mit dem Standard ISO 9660, 1988, Information Processing-Volume and file strucute of CD-ROM für Information interchange, formatiert und gespeichert. Dieser Standard beschreibt, wie der Diskinhalt und der Dateiaufbau organisiert ist.
  • Die derzeit bevorzugte Ausführungsform der optischen Disk zur Speicherung der Audio-, Video- und Unterbilddaten ist eine Einschicht-Doppelseiten-Disk mit einer Kapazität von 5 Gigabytes pro Seite und eine Gesamtspeicherkapazität von 10 Gigabytes. Zukünftige Formate werden eine mehrschichtige Disk ermöglichen, durch welche die Speicherkapazität erhöht werden kann, und zusätzlich zu eine Nurlesedisk kann ebenso eine einmal beschreibbare und einer überschreibbare Technologie verwendet werden. Weitere Aspekte der Disk, die mit der vorliegenden Erfindung verwendet werden kann, sind in der am 13. September 1994 eingereichten US-Patentanmeldung Nr. 08/304,849 mit dem Titel "Optical Disk and Optical Disk Apparatus" (US- A-5,459,712) beschrieben. Der Außendurchmesser der Disk liegt vorzugsweise bei 120 mm.
  • 40 zeigt den Aufbau des formatierten Ausgangssignal der Arbeitsstation 20, der letztendlich auf der optischen Disk enthalten ist. Dieser Aufbau 900 weist einen Einleitungsabschnitt 902 auf. Der Einleitungsbereich weist einzelne Felder auf, die eine anschließende Verarbeitung der von der Disk gelesenen Daten steuern. Beispielhafte Einleitungsinformation in dem Einleitungsbereich 900 ist in der 3 des US-Patents 5,400,077 von Cookson et al. Dargestellt.
  • Der Systembereich 904 und die Datenträgermanagementinformation 906 entsprechen dem Standard ISO 9660. Die Datenträgermanagementinformation 906 weist einen Primärinhaltsdeskriptor, einen Inhaltsdeskriptorsatzabschluss, Verzeichnissaufnahmen und Pfadtabellenaufnahmen auf. Der Primärinhaltsdeskriptor weist Basisinformation des Diskinhalts, wie beispielsweise einen Deskriptortyp, der anzeigt, ob die Disk eine Videodisk oder eine Audiodisk ist, eine Standardkennung, die anzeigt, welchem Standard die Disk entspricht, eine Systemkennung, eine Inhaltskennung, die Inhaltsgröße, die logische Blockgröße, die Pfadtabellengröße usw. auf. Diese und weitere Felder des System bereich und der Datenträgermanagementinformation sind näher in dem Standard ISO 9660 beschrieben und werden nachstehend der Kürze halber ausgelassen. Ferner gibt es nach Bedarf einen Zusatzinhaltsdeskriptor, welcher dem Standard ISO 9660 entspricht.
  • Der Inhaltsdeskriptorsatzabschluss weist den Inhaltsdeskriptortyp, die Standardkennung und die Inhaltsdeskriptorversion auf. Das Verzeichnis nimmt verschiedene Verzeichnisinformation der Disk in Übereinstimmung mit dem Standard ISO 9660 auf. Die Pfadtabelle nimmt eine L- Pfadtabelle und eine M-Pfadtabelle in Übereinstimmung mit dem Standard ISO 9660 auf.
  • Die Diskinformationsdatei 908 weist ferner Information über den Inhalt der Disk und Menüinformation auf, die ein Benutzer wählen kann, wenn er die optische Disk abspielt. Die Details der Diskinformationsdatei 908 werden unter Bezugnahme auf die 41 beschrieben.
  • Jede Disk weist minimal eine Datei 910 und maximal 99 Dateien auf. Wenn beispielsweise zwei verschiedene audiovisuelle Programme auf der Disk vorhanden sind, würde die Diskinformationsdaten 908 die Information aufweisen, die erforderlich ist, um ein Menü für den Benutzer zu erzeugen, über das er die gewünschte der zwei Dateien wählen kann. Die Dateien werden unter Bezugnahme auf die 42 bis 56 näher beschrieben. Der Endbereich 916 kann allerdings noch weitere Information, welche die Disk beschreibt, wie eine Verarbeitung auszuführen ist, oder zugehörige Disks betreffende Information aufweisen.
  • 41 zeigt die Diskinformationsdatei 908 der 40. Die Diskinformationsdatei 908 weist Dateimanagementinformation 920 und Menüdaten 922 auf, die Information zu Öffnen eines Menüs entspricht, über das ein Benutzer interagieren kann. Die Menüdaten weisen Videodaten, Audiodaten und Unterbilddaten auf. Die Dateimanagementinformation 920 weist eine Dateimanagementtabelle 924, Diskaufbauinformation 928 und eine Menüzelleninformationstabelle 930 auf, die eine Mehrzahl von Menüzelleninformationsfeldern 932 und 934 beinhaltet.
  • Die Dateimanagementtabelle 924 weist Information bezüglich jeden Aspekts der Diskinformationsdatei auf. In der Dateimanagementtabelle 924 beinhaltet ist ein Datei name, welcher die gleichen Inhalte beschreibt, wie die entsprechende Dateikennung in der entsprechenden Verzeichnisaufnahme der Inhaltsmanagementinformation 906 zur Erkennung eines Dateinamens. Die Dateikennung identifiziert den Typ der Datei, der in diesem Fall eine Diskaufbauinformationsdatei ist. Es ist ein Feld vorhanden, welches die Größe der Datei mit Hilfe der Anzahl logischer Blöcke beschreibt. Nachstehend wird der Term "logischer Block" gemäß ISO 9660 verwendet. Es gibt einen Eintrag, welcher die Größe der Dateimanagementtabelle mit Hilfe eine Anzahl logischer Blöcke beschreibt, eine Startadresse der Diskaufbauinformation 926, welche die relative logische Blocknummer von dem Kopf der Datei verwendet, eine Startadresse der Menüaufbauinformation 928, die mit Hilfe der relativen logischen Blocknummer von dem Kopf der Datei beschrieben wird, eine Startadresse der Menüzelleninformationstabelle 930, welche die relative logische Blocknummer von dem Kopf der Datei verwendet. Wenn keine Menüdaten vorhanden sind, wird der Wert für dieses Feld gleich Null sein. Es gibt ein Feld, welches die Startadresse der Menüdaten 922 mit Hilfe der relativen logischen Blocknummer des Kopfes der Datei beschreibt. Wenn keine Menüdaten vorhanden sind, weist dieser Eintrag den Wert Null auf.
  • Die Dateimanagementtabelle 924 weist ferner ein Feld auf, das Videomerkmale des Videos für die Menüdaten beschreibt. Diese Information umfasst, ob der Videokompressionsmodus MPEG-1 oder MPEG-2 war, die Rahmenrate des Videos (entweder 29.97 Rahmen pro Sekunde oder 25 Rahmen pro Sekunde), ein Feld, das anzeigt, ob das Anzeigeseitenverhältnis 3/4 oder 9/16 ist, und ein Anzeigemodusfeld, das anzeigt, dass sowohl Pan-Scan- als auch Letter-Box-Modus zulässig sind, das anzeigt, dass der Pan-Scan-Modus zulässig, jedoch der Letter-Box-Modus gesperrt ist, oder das anzeigt, dass der Pan-Scan-Modus gesperrt, jedoch der Letter-Box-Modus zulässig ist.
  • Gleich dem Feld, welches die Videomerkmale beschreibt, ist ein Feld vorhanden, welches den Audiodatenstrom in der Dateimanagementtabelle 924 beschreibt. In diesem Feld ist eine Anzeige des Audiokodiermodus vorhanden, die beinhaltet, ob das Audiosignal gemäß Dolby AC-3 kodiert wurde, ob das Audiosignal ein MPEG-Audiosignal ist oder ob das Audiosignal ein lineares PCM-Signal (16 Bits bei 48 kHz) ist. Es ist ferner eine Anzeige dafür vorhanden, ob das Audiosignal ein Mono-, Stereo- oder digitales Surroundsignal ist.
  • Die Dateimanagementtabelle 924 weist ferner ein Feld auf, welches die Unterbilddatenstrommerkmale für die Menüdaten 922 beschreibt. Dieses Feld zeigt einen Lauflängenunterbildkodiermodus an, der, wie nachstehend beschrieben, für die Unterbilder verwendet wird. Die Dateimanagementtabelle 924 weist ferner ein Feld auf, das 16 Sätze an Farbpaletten beschreibt, die in allen Unterbildern für das Menü verwendet werden. Die Palletennummer von 1 bis 16 weist ein Helligkeitssignal Y, ein Farbunterschiedssignal Cr = R – Y und ein Farbunterschiedssignal Cb = B – Y auf.
  • Die Diskaufbauinformation 926 weist Konfigurationsinformation der Video- und Audiodateien auf, die auf der Disk gespeichert sind. Die Diskaufbauinformation 926 weist ferner einen Dateinamen auf, welcher die gleichen Inhalte wie die entsprechende Dateikennung in der Verzeichnisaufnahme, die zur Erkennung eines Dateinamens verwendet wird, beschreibt. Es gibt ein Dateikennungsfeld, welches die Datei als eine Diskaufbauinformationsdatei erkennt. Es gibt ein Feld zum Anzeigen der Anzahl an Dateien auf der Disk, wie beispielsweise der Dateien 910 und 914, die in der 40 gezeigt sind. Es gibt ferner ein Feld, welches den Typ jede Datei anzeigt, einschließlich der Tatsache, ob die Datei sowohl Video- als auch Audioinformation oder nur Audioinformation aufweist, und ob die Datei eine Karaoke-Datei ist oder nicht.
  • Die Diskaufbauinformation 926 weist ferner ein Feld auf, welches die Unterbild- und Audioinformation in dem Datenfeld beschreibt. Innerhalb dieses Feldes ist die Anzahl an Unterbildkanälen angezeigt. Jeder Unterbildkanal kann verendet werden, um verschiedene Unterbildinformation, wie beispielsweise verschiedene Unterbildsprachen, anzuzeigen. Es gibt ferner eine Anzeige für die Anzahl an Audiodatenströmen, eine Anzeige für den Sprachenkode jedes Unterbildkanals in der Reihenfolge der Kanalnummer, eine sequentielle Beschreibung des Sprachenkodes des Audiodatenstroms in der Reihenfolge der Audiodatenstromnummer, und eine Beschreibung der übergeordneten Managementinformation und der Winkelinformation der Dateien. Die übergeordnete bzw. Elternmanagementinformation wird dazu verwendet, den übergeordneten Pegel einer bestimmten Sequenz anzuzeigender Information zu beschreiben. Innerhalb einer Sequenz ist der maximale übergeordnete Pegel bestimmter Zellen beinhaltet. Die Pegel variieren zwischen 1 und 5, wobei mit steigendem Pegel die Beschränkungen hinsichtlich dessen, was gesehen und gehört wird, zunehmen. Die Details der Sequenz und der Zellen und des übergeordneten Managementschemas werden nachstehend beschrieben. Es gibt ferner ein Feld, welches die Anzahl der Winkel eine Videosequenz beschreibt. Wenn beispielsweise ein Musikvideo mit drei verschiedenen Kameraeinstellungen über das gesamte Musikvideo gedreht wurde, kann der Benutzer wählen, aus welchem bestimmen Kamerawinkel er das Video sehen will. Es gibt ferner ein Feld, welches die Anzahl an Programmen in einer Sequenz anzeigt.
  • Die Menüaufbauinformation 928 weist die Startzellennummer jedes Menütyps auf. Eine Anzeigesequenz weist eine Mehrzahl von Zellen auf. Eine Sequenz kann beispielsweise bis zu 256 Zellen aufweisen. Eine Zelle ist eine ganze Zahl der GOPs (Gruppe-an-Bildern) zwischen einem Wiedergabeinformations-(PBI)-Paket, das später noch beschrieben wird, und einem Paket unmittelbar vor dem nächsten PBI-Paket. Die Daten für das Video werden in Zellen als Aufnahmeeinheit getrennt, in denen die Daten nacheinander nachgebildet werden sollten. Eine Zelle weist die Information zum Anzeigen auf und wird in Abhängigkeit ihres Zweckes geteilt, Vorzugsweise weisen das erste Audiopaket und der erste Unterbildpaket in einer Zelle einen Darstellungszeitstempel (PTS) auf, der nahe an einem PTS in dem Videokopfpaket liegt, das hinter einem PBI-Paket an dem Kopf einer Zelle aufgenommen ist. Verschiedene Zellen werden in Abhängigkeit des gewünschten Winkels und er übergeordneten Beschränkung des Programms angezeigt. Es soll beispielsweise angenommen werden, dass ein für jüngeres Publikum nicht geeigneter Abschnitt vorhanden ist. Es gibt zwei Sequenzen, die sich Zellen teilen, und zwar in Abhängigkeit des übergeordneten Managementpegels bzw. -niveaus, der gesehen werden kann. Beispielsweise können für ein nicht eingeschränktes Sehen die Zellen 1, 2, 3 und 5 für eine bestimmte Sequenz gesehen werden. Für ein eingeschränktes Sehniveau können die für die Sequenz gezeigten Zellen 1, 2, 4 und 5 sein.
  • Betrachtet man die verschiedenen Winkel, so ist es möglich, dass jedes Video mit einer Mehrzahl von Kamerawinkeln aufgenommen wird, die gleichzeitig ablaufen und deren für die Wiedergabe benötigte Zeit im Wesentlichen gleich ist. Jeder Winkel ist aus einer Zelle aufgebaut, die Winkelzelle genannt wird. Ein Satz mit einer Mehrzahl von Winkelzellen, die gleichzeitig ablaufen wird Winkel block genannt. Wenn ein Winkelblock an einer Mehrzahl von Positionen in der Sequenz definiert ist, müssen die Anzahl von Winkelzellen und der Kamerawinkel jeder Winkelnummer über den Winkelblock gesehen gleich sein.
  • Eine Menüzelle ist die Zelle, welche den Menübildschirm bildet, welcher den Benutzer über die Inhalte jedes Videos oder jeder Audiodatei in einer Lautstärke informiert. Ein Satz von Menüzellen wird zusammen als Daten für das Menü in der Diskinformationsdatei aufgenommen. Die Menüzellentypen, die ebenso als Menütypen bezeichnet werden, sind in Titelmenü, Programmmenü, Audiomenü, Unterbildmenü und Winkelmenü klassifiziert. Ein Menübildschirm weist ein Video für das Menü auf. Wahlelemente werden auf dem Bildschirm der Wiedergabeeinrichtung angezeigt und als Unterbilddaten der Menüzelle aufgenommen.
  • Die Menüzelleninformationstabelle 920 ist eine Tabelle, in der eine Mehrzahl von Menüzelleninformation gespeichert ist, wie beispielsweise 932 und 934 in der 41. Ein Menübildschirm umfasst eine Menüzelle. Die Menüzellinformation umfasst eine Mehrzahl von Feldern. Ein erstes Feld zeigt, ob ein Kopieren von Information der Disk erlaubt ist oder nicht, den Pegel bzw. das Niveau des Elternmanagements, den Menüzellentyp, wie beispielsweise, ob das Menü ein Titelmenü, ein Programmmenü, ein Audiomenü, ein Unterbildmenü oder ein Winkelmenü ist, und den Sprachenkode des Menüs an. Jeder Sprache wird ein Kode zugewiesen und der in dem Sprachenkodeunterfeld auftauchende bestimmte Kode zeigt die in dem Menü verwendete Sprache an.
  • Es gibt ferner ein Feld, welches die Anfangsnummer der Wählelemente, die von dem Unterbild auf dem Menübildschirm angezeigt werden, und die Anzahl der Wählele mente beschreibt. Die Wählelementstartnummer beschreibt die kleinste Anzahl von Wählelementen auf dem Menübildschirm, wobei es ein Feld, das anzeigt, ob es eine nächste Seite des Menüs gibt oder nicht, und eine Nummer gibt, welche die Anzahl an zu wählenden Elementen zwischen 1 und 16 anzeigt. Die Menüzelleninformation weist ferner die unteren 32 Bits der Systemtaktreferenz (SRC) in dem Anfangspaket der Menüzelle, ein Feld, welches die Anfangsadresse der Menüzelle mit einer relativen logischen Blocknummer von dem Kopf der Datei beschreibt, und ein Feld auf, welches die Anzahl an logischen Blöcken beschreibt, welche die Menüzelle bilden.
  • Die Menüdaten 922 weisen die aktuelle, für das Menü angezeigte Information auf. Diese Information ist auf die gleiche Weise wie die Information in den Dateien 910 und 914 der 40 aufgebaut, und folglich wird eine nähere Beschreibung jedes Aspekts der Menüdaten 922 aus Gründen der Redundanz ausgelassen. Die Elemente, die auf dem Menübildschirm gewählt sind, werden durch die Unterbildinformation gebildet. Die Verarbeitung der Menüwahlen durch einen Diskspieler wird mit Hilfe eines einem Computerkode ausführenden Mikroprozessors ausgeführt. Wenn eine Menüwahl für einen Titel getroffen wurde, wird das Ergebnis der Wahl von dem Anfang der Datei oder der Sequenznummer, welche der gewählten Titelnummer entspricht, wiedergegeben. Für Programmmenüwahlen wird das gewählte Programm vom Anfang des gewählten Programms an wiedergegeben. Für Audiowahlen aus dem Menü, wird der Audiodatenstrom derart eingestellt, dass er dem gewählten Audiodatenstrom entspricht. Gleichermaßen wird die Unterbildkanalnummer für Unterbildmenüwahlen gleich dem ge- wählten Unterbildkanal gesetzt. Zuletzt ändert eine Winkelwahl aus dem Menu die Winkelzellennummer derart, dass sie gleich der gewählten Nummer ist. Weitere Information kann, wie vorstehend beschrieben, in Menüs beinhaltet und über diese gewählt werden.
  • Die Dateien, wie beispielsweise die Datei 910 der 40 weisen, wie in der 42 gezeigt, zwei Abschnitte auf; die Dateimanagementinformation 940 und die zum Anzeigen von Video-, Audio- oder Unterbildinformation verwendeten aktuellen Daten 942. Die Dateimanagementinformation 940 weist vier Hauptkomponenten auf; die Dateimanagementtabelle 944, die Sequenzinformationstabelle 946, die Zelleninformationstabelle 948 und eine Datensuchkarte 950.
  • Die Dateimanagementtabelle 944 weist Information bezüglich jeden Aspekts der Datei 910 auf. Diese Information umfasst ein Feld für den Dateinamen, welcher den gleichen Inhalt wie die entsprechende Dateikennung in der Verzeichnisaufnahme zur Erkennung des Dateinamens, die Dateikennung, die anzeigt, dass die Datei sowohl Audio- als auch Videoinformation aufweist, die durch die Anzahl an logischen Blöcken definierte Größe der Datei, die Größe der Dateimanagementtabelle, die Anzahl an Sequenzen für die Datei, die Anzahl an Zellen für die Datei, die Anzahl an Diskaufbauinformations-(DSI)-paketen, eine Anfangsadresse der Sequenzinformationstabelle 946, eine Anfangsadresse der Zelleninformationstabelle 948, eine Anfangsadresse der Datensuchkarte, eine Anfangsadresse der Daten 942, ein Feld, welches die Videomerkmale der Daten 942 beschreibt, welche den Videokompressionsmodus, wie beispielsweise MPEG-1 oder MPEG-2 umfasst, die Rahmenrate, einschließlich, ob die Rahmenrate bei 29.97 Rahmen pro Sekunde oder bei 25 Rahmen pro Sekunde liegt, ein Anzeigeseitenverhältnis, das anzeigt, ob das Anzeigeseitenverhältnis bei 3/4 oder bei 9/6 liegt, oder ob es der Anzeigemodus das Pan-Scan- und/oder das Letter-Box-Format zulässt.
  • Die Dateimanagementinformation weist ferner ein Feld, welches die Anzahl an Audiodatenströmen in der Datei beschreibt, die Audiodatenstrommerkmale, wie beispielsweise den Audiokodiermodus, den Audiomodus, wie beispielsweise den Mono-, Stereo- oder digitalen Surroundmodus, den Audiotyp, der anzeigt, ob eine bestimmte Sprache umfasst ist oder nicht, und ein Feld für einen bestimmten Kode auf, welcher die Kodenummer der Sprache anzeigt.
  • Die Dateimanagementtabelle 944 weist ferner ein Feld, welches die Anzahl an Unterbildkanälen beschreibt, ein Feld, welches die Unterbildkanalmerkmale beschreibt, wie beispielsweise ein Feld, das anzeigt, dass eine Lauflängenkodierung der Unterbilder verwendet wird, und ob eine bestimmte Sprache vorhanden ist oder nicht, und die Sprache auf, die bestimmt ist. Ferner gibt es ein Feld, welches die Y-, Cr- und CB-Farbe für die 16 Farbpaletten, die in allen Unterbildkanälen der Datei verwendet werden, anzeigt. Es gibt ferner ein Feld, welches die Größe der Sequenzinformationstabelle beschreibt, ein Feld, welches die kleinste Zellennummer und die Nummer der folgenden aufeinander folgenden Zellen und den Bereich der Zellennummern, die innerhalb einer Sequenz der Datei verwendet werden, beschreibt. Die innerhalb einer Sequenz verwendeten Zellennummern sollten in einem Satz an Nummern beinhaltet sein, der herausgefunden wird, indem 32 aufeinander folgende Nummern einen Satz bilden lassen und die kleinste Zellennummer als erste Nummer der in der Sequenz verwendeten Zellen platziert wird. Dieses Feld umfasst ein Unterfeld, welches die Anzahl an in der Sequenz verwendeten Zellen und die kleinste in der Sequenz verwendete Zellennummer aufweist.
  • Die Sequenzinformationstabelle 946 weist eine Mehrzahl von Sequenzinformationseinträgen 952 und 954 auf. Eine Sequenz entspricht der Reihenfolge, in der Zellen innerhalb des durch diese Sequenz bestimmten Bereichs wahlweise wiedergegeben werden. Es gibt zwei Arten von Sequenzen; Abschluss und Verbindung. Eine Abschluss-Sequenz wird beendet, nachdem sie wiedergegeben wurde. Verbindungs-Sequenzen werden sequentiell wiedergegeben. Die Sequenzinformationsnummer, wie beispielsweise die durch das Bezugszeichen 952 angezeigte Sequenzinformation 1 und die durch 954 angezeigte Sequenzinformation i, ist gleich der Sequenznummer und in der beschriebenen Reihenfolge beginnend mit 1 in der Sequenzinformationstabelle nummeriert. Die Sequenzinformationseinträge der Sequenzinformationstabelle sind in der Reihenfolge Abschluss-Sequenzen oder Verbindungs-Sequenzen beschrieben. Jede Sequenzinformation weist ein Feld, welches den Sequenztyp anzeigt, die Anzahl der beinhalteten Programme, die Anzahl der beinhalteten Zellen, die Sequenzwiedergabezeit, die Anzahl der Verbindungs-Sequenzen, die verbindbare Sequenzanzahl und Sequenzsteuerungsinformation auf.
  • Das Sequenztypfeld der Sequenzinformation beschreibt ein Kopier- und Elternmanagement der Sequenz. Es gibt ein Unterfeld, das anzeigt, ob Kopieren erlaubt oder verboten ist, ein Unterfeld, welches das Niveau des Elternmanagements zwischen 1 und 5 bestimmt, ein Unterfeld, welches den Sequenztyp anzeigt, der einer Abschluss-Sequenz, einer Verbindungs-Kopfsequenz, einer Verbindungs-Mittelsequenz oder einer Verbindungs-Endsequenz entsprechen kann. Es gibt ferner ein Anwendungstypunterfeld, das anzeigt, ob die Sequenz für eine Karaoke-Anwendung genutzt werden soll oder nicht.
  • Das Programmanzahlfeld beschreibt die Programmanzahl, die bis zu 100 in einer Sequenz entsprechen kann.
  • Das Zellanzahlfeld beschreibt die Gesamtzahl an Zellen in einer bestimmten Sequenz, die bis zu 256 Zellen entsprechen kann. Die Sequenz- oder Wiedergabezeit beschreibt die Gesamtwiedergabezeit dieser Sequenz in Einheiten pro Stunde, Minute, Sekunde und Videorahmen.
  • Das Verbindungstypsequenzanzahlfeld weist die Anzahl an Sequenzen, die unmittelbar nach ihnen verbunden werden kann, wobei die maximale Anzahl bei 8 liegt. Das Verbindungssequenznummernfeld beschreibt die Sequenznummern der verbindbaren Sequenzen und das Niveau für das Elternmanagement der Sequenz für die bestimmten Nummern. Die Wählnummern der verbindbaren Sequenzen werden von eins an in der beschriebenen Reihenfolge zugewiesen. Dieses Feld weist Unterfelder für die Elternmanagementnummer und ein Unterfeld für die Sequenznummer auf. Das letzte Feld der Sequenzinformation ist die Sequenzsteuerungsinformation, welche die Zellen beschreibt, die in der Wiedergabereihenfolge in der Sequenz beinhaltet sind. Dieses Feld wird ferner dazu verwendet, die Winkelblöcke zu beschreiben, die einem Satz mehrerer Zellen entsprechen. Die Wiedergabezeit dieser Zellen ist im Wesentlichen gleich. Jeder Wiedergabeabschnitt ist durch eine Zelle aufgebaut. Ein Winkelblock weist maximal neun Zelle auf, wobei die erste Zelle mit 1 nummeriert ist. Die Unterfelder der Sequenzsteuerungsinformation weisen eine Programmnummer auf, die ein Programm als Wiedergabeeinheit definiert, das mehrere Zellen kombiniert, die aufeinander folgend wiedergegeben werden. Es gibt ein Unterfeld für die Zellwiedergabesteuerung, das anzeigt, ob sequentiell zu der folgenden Zelle voranzuschreiten ist, pausiert wird, oder ob das Ende einer Sequenz erreicht ist. Es gibt ein Blockmodusunterfeld, das anzeigt, ob ein Block keine Konfigurationszelle ist, und ob es eine erste Zelle der Blockkonfiguration gibt, ob es eine Zelle in einer Blockkonfiguration oder eine letzte Zelle in einer Block konfiguration ist. Es gibt ein Blocktypunterfeld, das anzeigt, ob es keinen Block gibt, oder ob es einen Winkelblock gibt. Zuletzt gibt es ein Unterfeld, welches die Zellnummern der wiederzugebenden Zellen anzeigt.
  • Die Dateimanagementinformation 940 weist ferner eine Zellinformationstabelle 948 mit einer Mehrzahl von Zellinformationseinträgen 956 und 958 auf. Jeder Zellinformationseintrag weist Zelltypeninformation auf, die anzeigt, ob ein Kopieren erlaubt oder verboten ist, sowie das Niveau des Elternmanagements. Es gibt ferner ein Feld, welches die Zellenwiedergabezeit anzeigt, welche die Gesamtzellwiedergabezeit der Zellen pro Stunde, Minute, Sekunde oder Videorahmen beschreibt. Es gibt ein Feld, welches die unteren 32 Bits der Systemtaktreferenz beschreibt, die in dem ersten Paket der Zelle beschrieben ist, ein Feld, welches die Adresse am Anfangspunkt der Zelle mit der relative logischen Blocknummer von dem Anfang der Datei beschreibt, und ein Feld, welches die Anzahl an logischen Blöcken in der Zelle beschreibt.
  • Der letzte Abschnitt der Dateimanagementinformation 940 ist die Datensuchkarte 950. Die Datensuchkarte weist eine Mehrzahl von Zeigern der Datensuchinformationspakete 960 und 962 auf. Diese Zeiger, die nachstehend als Wiedergabeinformations-(PBI)-paketzeiger bezeichnet werden, geben die Adresse des in den Daten 942 vorhandenen Wiedergabeinformationspakets an. Um einen Vorspulmodus oder einen Rückspulmodus auszuführen, und um eine Betrachtung der Information zu ermöglichen, ist es am besten, sich auf Intra-Bilder in der MPEG-2 Videosequenz zu verlassen. Diese Intra-Bilder werden mit Hilfe von Wiedergabeinformationspaketen innerhalb der Daten 942, deren Adressen in der Datensuchkarte beinhaltet sind, lokalisiert. Das PBI-Paket wird nachstehend näher beschrieben.
  • Die Daten 942 der Datei 910, die in der 43 gezeigt ist, weist verschachtelte Pakete mit Wiedergabeinformation (PBI), Video-, Unterbild- und Audioinformation auf. Beispielsweise weisen die Daten in der 43 Wiedergabeinformation 940, Videoinformation 942 und 944, Unterbildinformation 946, Audioinformation 948 usw. auf. Der Aufbau der Information innerhalb der Daten 942 und eine Darstellungszeit entsprechen dem Programmdatenstrom, der in dem MPEG-Systemstandard (ISO/IEC 13818-1) definiert ist. Die Wiedergabeinformation und die Unterbildinformation und die Methode, mit welcher diese Information gespeichert, kodiert und dekodiert wird, bilden jedoch einen Teil der vorliegenden Erfindung.
  • Die verschiedene Information, welche die Daten 942 in der 43 bildet, weist Informationspakete auf. Beispielhafte Pakete 970A und 970B sind in den 44A und 44B gezeigt. Jedes Paket weist einen Paketheader 972A oder 972B und ein Paket 982A oder 982B auf, das Video-, Audio-, Unterbild- oder Wiedergabeinformationsdaten beinhaltet.
  • Der Aufbau des Pakets 970A wird verwendet, wenn das Paket 982A zwischen 2034 und 2027 Bytes belegt. Das Auffüllfeld 980A ermöglich ein Auffüllen von einem bis acht Bytes, um die Gesamtgröße des Pakets auf 2048 Bytes zu bringen. Wenn das Paket für Video-, Audio-, Unterbild- oder Wiedergabeinformation unter 2027 Bytes liegt, wird ein in der 44Bb gezeigter Paketaufbau 970B verwendet, der ein Auffüllpaket von einem Byte und ein Paket zum Füllen 984 aufweist, wodurch sich eine Gesamtzahl an Bytes von 2034 für die Pakete 982B und 984B ergibt. Die Paketheader 972A und 972B weisen jeweils ein Paketanfangsfeld 974, eine Systemtaktreferenz 976, ein Multiplex-(MUX)-ratenfeld 978 und ein Auffüllfeld 980 auf. Die Pakete in den 44A und 44B sind gemäß ISO/IEC 13818 aufgebaut und in §2.5.3.4 des Standards bezüglich der Bedeutungsdefinition der Felder in einem Programmdatenstrompaket beschrieben.
  • 45 zeigt ein Wiedergabeinformations-(PBI)-Paket. Der Paketheader ist wie bezüglich der 44A und 44B beschrieben aufgebaut. Der Systemheader 986 der 45 ist gemäß den Anforderungen des in der ISO/IEC 13818-1 beschriebenen Programmdatenstromsystemheaders aufgebaut. Die Bedeutungsdefinition der Felder innerhalb des Systemheaders ist in §2.5.3.6 der ISO/IEC 13818-1 beschrieben.
  • Der Paketheader 988 ist gemäß den Feldern aufgebaut, die in der Bedeutungsdefinition der Felder in einem PES-Paket dargelegt sind, das in §2.4.3 der ISO/IEC 13818-1 beschrieben ist. In dem Paketheader 988 werden jedoch einzig Felder bis zu dem Darstellungszeitstempel benötigt.
  • Das Wiedergabeinformationspaket weist ferner ein Unterdatenstrom-ID-Feld 990 auf. Dies ist ein 8-Bit-Feld, welches die Kennung des Unterdatenstroms anzeigt. Die unterschiedlichen Kennungen, die verwendet werden können, sind ein Unterbilddatenstrom, ein Videoaustastungsinformations-(VBI)-datenstrom, ein AC-3 Datenstrom oder ein linearer PCM-Datenstrom. Es ist ferner möglich, andere Datenströme, wie beispielsweise einen MPEG-Audiounterdatenstrom zu beinhalten. Da die Unterdatenstrom-ID 990 den Daten der Videoaustastungsinformation 992 vorausgeht, wird die Unterdatenstrom-ID derart eingestellt, dass sie anzeigt, dass die folgende Information ein Videoaustastungsinformationsdatenstrom ist. Die Daten der Videoaustastungsinformation 992 können gemäß dem Standard ISO/IEC 13818-1 aufgebaut sein und die für die ISO/IEC 13818-1 erforderliche Semantik erfüllen.
  • Ferner in dem in der 45 gezeigten Wiedergabeinformationspaket beinhaltet ist ein Paketheader 994 für ein Datensuchinformationspaket, welches die Daten der Datensuchinformation 996 beinhaltet. Der Paketheader 994 weist einen Paketanfangskodevorspann mit einem 24-Bit-Wert von 000001h, eine Datenstromkennung, die anzeigt, dass die Datensuchinformation 996 nicht vorher definierten Standards entspricht, und ein eine Paketlänge anzeigendes Feld auf. Da die Datensuchinformation 996 nicht in dem MPEG-Standard offenbart ist, zeigt die Datenstrom-ID an, dass die folgende Information eine nicht öffentlicher Art von Datenstrom ist.
  • Der bestimmte Inhalt der Daten der in der 45 gezeigten Datensuchinformation 996 ist in der 46 gezeigt. Die Datensuchinformation 996 weist allgemeine Information 100, Winkeladresseninformation 1020, Markierungsinformation 1022, Synchronwiedergabeinformation 1024 und PBI-Paketadresseninformation 1036 auf.
  • Die allgemeine Information 100 ist näher in der 47 gezeigt. Die Datensuchinformation dient, wie vorstehend beschrieben, dazu, eine schnelle Suche des digital kodierten Video zu ermöglichen, und insbesondere dazu, eine schnelle Suche der Position eines Intra-Bildes für Trick-Modi zu ermöglichen, die während einer Videokodierung ausgeführt werden. Folglich ist das in der 46 gezeigte Wiedergabeinformationspaket das Kopfpaket jeder Gruppe-an-Bildern (GOP) und unmittelbar vor dem mit einem I-Bild beginnenden Videokopfpaket zugeordnet. Die allgemeine Information 1000 weisen einen Zeitstempel der GOP 1002 auf, welcher dem Wiedergabeanfangszeitpunkt eines I-Bildes entspricht. Als nächstes kommt eine Systemtaktreferenz (SCR) der PBI. Diese beschreibt die unteren 32 Bits der SCR, die in dem PBI-Paketheader beschrieben ist. 1006 zeigt die Endadresse des I-Bilders und beschreibt die relative logische Blocknummer von dem Beginn der Datei, der Adresse des Pakets, auf welcher die endgültigen Daten des I-Bildes aufgenommen werden. Die Zellennummer wird in einem Feld 1008 gespeichert und beschreibt den Zellennummer, zu welcher die GOP gehört. Das Feld 1010 beschreibt die Elternmanagementinformation, welche das Beschränkungsniveau und ferner die Tatsache, ob ein Kopieren erlaubt ist oder nicht, umfasst. Das Feld 1012 schließlich beschreibt die PBI-Paketadresse, welche der Adresse dieses PBI-Pakets entspricht, wobei es die relative logische Blocknummer von dem Kopf der Datei nutzt.
  • Das Feld 1020 der in 46 gezeigten Datensuchinformation 996 entspricht der Winkeladresseninformation. Die Winkeladresseninformation weist Adresseninformation von weiteren Winkeln auf. Die Winkeladresseninformation weist neun Felder auf, von denen jedes zu einer verschiedenen Winkelzellnummer gehört. Für jedes Feld in der Winkeladressinformation 1020 beschreibt das Feld in der Winkeladresseninformation dann, wenn eine Zelle, zu der ein bestimmtes Paket gehört, einen Winkelblock bildet, die Adresse des PBI-Pakets für die Winkelzellnummer, welche den dichtesten Videoanfangsdarstellungszeitstempel aufweist, der nicht den Videoanfangsdarstellungszeitstempel der entsprechenden Datensuchinformation überschreitet. Wenn keine Winkelzelle vorhanden ist, oder wenn kein Winkelblock gebildet wird, wird die Winkeladresseninformation für eine bestimmte Zelle auf null gesetzt.
  • Der dritte Abschnitt der Datensuchinformation 996 ist die Markierungsinformation 1022. Die Markierungsinformation beschreibt die Position von Auswahlelementen auf dem Menüanzeigebildschirm und deren Farbe und Kon trast, die geändert werden, wenn sie gewählt werden. Diese Information wird einzig dann verwendet, wenn die Zelle Teil eines Menü ist. Die Markierungsinformation weist ein Feld auf, welches die Auswahlelementanfangsnummer und die Anzahl an Elementen, die von den Unterbild auf dem Menübildschirm angezeigt werden, beschreibt. Die bestimmten Unterfelder der Auswahlelementanfangsadresse und der Anzahl an Elementen weist ein Unterfeld, welche die kleinste Anzahl an Auswahlelementen auf dem Menübildschirm beschreibt, ein Unterfels, welches beschreibt, ob eine nächste Seite des Menüs vorhanden ist oder nicht, und ein Unterfeld auf, welches die Anzahl an Auswahlelementen auf dem Menübildschirm beschreibt. Das zweite Feld der Markierungsinformation beinhaltet die Position, Farbe und den Kontrast der Auswahlelemente. Dieses Feld beschreibt einen rechteckigen Anzeigebereich für jedes Auswahlelemente auf dem Menübildschirm und die entsprechende Farbe und den entsprechenden Kontrast, die geändert werden, wenn das Feld angewählt wird. Der Rechteckige Anzeigebereich ist in einer X-Y-Ebene definiert. Information in diesem Feld, welche die Position, Farbe und den Kontrast des Auswahlelements beschriebt, umfasst ein Definieren des rechteckigen Bereichs des Menüs und Information darüber, wie die verschiedenen Pixelarten bei einer Auswahl zu ändern sind. Ein Unterbild ermöglich, wie nachstehend noch näher beschrieben wird, vier verschiedene Pixelart. Es gibt erste und zweite Markierungspixel, die verwendet werden können, um Text oder andere Information anzuzeigen, Musterpixel, die verwendet werden, um Muster, wie beispielsweise Strichzeichnungen oder andere graphische Muster, anzuzeigen, und Hintergrundpixel. Wenn diese vier verschiedenen Informationsarten markiert oder gewählt werden, ist es erforderlich, die Farbe, die gewählt wird, wenn das Element markiert wird, und ebenso den Kontrast der Pixel bei einer Markierung zu kennen. Folglich gibt es acht verschiedene Unterfelder, innerhalb derer die Markierungsinformation die Farbe und den Kontrast der vier verschiedenen Pixelarten beschreibt, wenn diese gewählt werden.
  • Das fünfte Element in der Datensuchinformation 996 ist die Synchronwiedergabeinformation 1024. Die Synchronwiedergabeinformation 1024 ist näher in der 48 gezeigt. Die Synchronwiedergabeinformation dient dazu, die Startzeit und die Adressinformation des Audiosignals und des Unterbilds, das mit den Videodaten synchronisiert ist, zu ermitteln. Die in der 48 gezeigte Synchronwiedergabeinformation 1024 weist die Audiopaketadresse 1026 auf, welche das Ziel des Darstellungszeitstempels des Audiosignals ist. Das höchstwertigste Bit dieses Feldes zeigt an, ob sich das Audiopaket vor oder hinter dieser PBI befindet. Der Darstellungszeitstempel (PTS) des Audiosignals 1028 beschreibt den PTS des Audiopakets mit der Wiedergabeanfangszeit direkt nach der Wiedergabeanfangszeit des I-Bildes mit dem relativen Darstellungs- zeitstempel des Videoanfangs-PTS. Der Darstellungszeitstempel des Audiosignals ermöglicht es, dass bis zu acht Audiodatenströme den Darstellungszeitstempel im Voraus speichern. Ferner kann es ein Unterfeld geben, dass anzeigt, ob das Audiopaket Audiorahmen, die während der GOP nachgebildet werden, aufweist oder nicht. Wenn kein Audiosignal für das Bild vorhanden ist, ist es nicht erforderlich, den Darstellungszeitstempel des Audiosignals zu speichern oder dekodieren. Da es bis zu acht Audiokanäle gibt, weist jeder Audiokanal eine entsprechendes Adressfeld und ein entsprechendes Zeitstempelfeld auf.
  • Die Datenstruktur 1024 weist ferner eine Unterbildpaketadresse 1030 auf, welche die Adresse des anstehenden Unterbildpakets relativ zu dem PBI-Paket beschreibt. Der Darstellungszeitstempel des Unterbildes beschriebt die Synchronisation der entsprechenden Unter bildinformation. Es gibt Unterfelder, die anzeigen, ob eine Unterbildeinheit, die während der GOP-Wiedergabe wiedergegeben werden soll, vorhanden ist oder nicht, ob die Darstellungsanfangszeit des Unterbildes vor dem Videodarstellungszeitstempel liegt oder nicht, und die eine Erzeugungsanfangszeit einer Unterbildeinheit, die während der GOP-Wiedergabe wiedergeben wird, und die Wiedergabeendzeit einer Unterbildeinheit, die während der GOP-Wiedergabe wiedergegeben bzw. nachgebildet wird, anzeigen. Da in einem einzigen Datenstrom bis zu 32 Unterbilder beinhaltet sein können, weist jedes vorhandene Unterbild ein entsprechendes Adressenfeld und Zeitstempelfeld auf.
  • Der letzte, in der 46 gezeigte Abschnitt der Datensuchinformation 996 ist die PBI-Paketadressinformation. Die PBI-Paketadressinformation weist Adressen von anderen PBI-Paketen innerhalb der Datei auf und ermöglicht es, dass anderen PBI-Pakete schnell lokalisiert werden können. Die PBI-Paketadressinformation beschreibt die Adresse der umgebenden PBI-Pakete mit Hilfe einer relativen logischen Blocknummer. Die PBI-Paketadressinformation weist zwei Feld auf, welche die folgende bzw. die vorherige Paketadresse beschreiben. Es gibt fünfzehn Felder, die mit Hilfe der relativen logischen Blocknummer des momentanen PBI-Paketadresse die Adresse des PBI-Pakets definieren, das zu der GOP gehört, die unmittelbar vor der GOP vorhanden ist, mit einer akkumulierten Wiedergabezeit zwischen n × 0.5 Sekunden und (n+1) × 0.5 Sekunden, wobei dann, wenn mehr als ein PBI-Paket in diesen Bereich fällt, das PBI-Paket gewählt wird, das am nächsten zu n × 0.5 Sekunden liegt, 1 ≤ n ≤ 15.
  • Es gibt fünfzehn Felder, die mit Hilfe der relativen logischen Blocknummer von der momentanen PBI-Paketadresse die Adresse PBI-Pakets definieren, das zu der GOP gehört, mit einer akkumulierten Wiedergabezeit zwischen n × 0.5 Sekunden und (n+1) × 0.5 Sekunden, wobei dann, wenn mehr als ein PBI-Paket in diesen Bereich fällt, das PBI-Paket gewählt wird, das am nächsten zu n × 0.5 Sekunden liegt, –15 ≤ n ≤ –1.
  • Es gibt zwei Felder, die mit Hilfe der relativen logischen Blocknummer von der momentanen PBI-Paketadresse die Adresse PBI-Pakets definieren, das zu der GOP unmittelbar vor der GOP gehört, mit einer akkumulierten Wiedergabezeit zwischen n × 0.5 Sekunden und [n × 0.5 + 1] Sekunden, wobei dann, wenn mehr als ein PBI-Paket in diesen Bereich fällt, das PBI-Paket gewählt wird, das am nächsten zu n × 0.5 Sekunden liegt, n = 20 oder n = 60.
  • Es gibt zwei Felder, die mit Hilfe der relativen logischen Blocknummer von der momentanen PBI-Paketadresse die Adresse PBI-Pakets definieren, das zu der GOP gehört, mit einer akkumulierten Wiedergabezeit zwischen n × 0.5 Sekunden und [n × 0.5 + 1] Sekunden, wobei dann, wenn mehr als ein PBI-Paket in diesen Bereich fällt, das PBI-Paket gewählt wird, das am nächsten zu n × 0.5 Sekunden liegt, n = –20 oder n = –60.
  • 49 zeigt den Aufbau eines Videopakets 1040. Das Videopaket weist einen Paketheader 972, der gemäß den Headern 972A und 972B der 44A und 44B aufgebaut ist. Der Paketheader 1046 für das Video ist gemäß dem Standard ISO/IEC 13818-1 aufgebaut, gleich den Videodaten 1048. Die Videodaten 1048, die als MPEG-Videosignale dargestellt sind, sind jedoch vorzugsweise in Übereinstimmung mit dem hierin beschriebenen Verfahren kodiert.
  • Eine MPEG-kodierte Gruppe-an-Bildern ist mit dem Bezugszeichen 1050 in der 50 gezeigt. Die Methode, mit welcher diese GOP 1050 in eine Mehrzahl an Videopaketen 1040 geteilt wird, um den Videodatenstrom 1060 zu er zeugen, ist in dem unteren Abschnitt der 50 gezeigt. Die GOP 1050 wird in angemessene Einheit geteilt, die in die Videopakete passen. Das letzte Videopaket 1040G, das Videopaket j, nimmt nicht die vollen 2048 Bytes ein, die für jedes der Pakete verwendet werden, und folglich findet ein Auffüllen statt, um das letzt Videopaket j auf 2048 Bytes anzupassen.
  • 51A zeigt ein Videopaket für ein MPEG-Audiosignal. Dieses Videopaket 1080 weist einen Paketheader 972, einen Paketheader 1084, der in Übereinstimmung mit den MPEG-Anforderungen aufgebaut ist, und die kodierten MPEG-Audiodaten 1086 auf.
  • 51B zeigt ein Audiopaket 1090, das in Übereinstimmung mit entweder linearem PCM-Audio oder Dolby AC-3 Audio aufgebaut ist. Für das in der 51B gezeigte Paket ist der Paketheader 972 gemäß obiger Beschreibung angeordnet, der Paketheader 1094 in Übereinstimmung mit den MPEG-Anforderungen aufgebaut, mit dem stream_id Feld, dass gesetzt ist, um einen privaten Audiodatenstrom entsprechend linearer PCM oder AC-3 anzuzeigen. Die Unterdatensstrom-ID 1096 zeigt an, ob die Audiodaten für eine lineare PCM oder AC-3 (oder MPEG) bestimmt sind. Der Audiorahmenzeiger 1098 weist die Anzahl an Rahmenheadern auf, welche die Anzahl an Audiorahmenheadern innerhalb des Audiopakets anzeigen, und weist ferner einen Erstzugriffseinheitszeiger auf, welcher den Kopf der ersten Zugriffseinheit des Audiorahmens unter Verwendung einer relativen Bytezahl von dem letzten Byte des Zeigers anzeigt. Es ist üblich, ein lineares PCM-Audiosignal in Audiorahmen zu teilen, von denen jeder einen Rahmenheader und Rahmendaten aufweist. Der Audiorahmenzeiger 1098 kann auf die gleiche Weise mit dolby AC-3 verwendet werden. Die Audiodaten 110 sind in Übereinstim mung mit dem entsprechenden Audiokodierverfahren aufgebaut.
  • 52 zeigt einen kodierten Audiodatenstrom 1100. Dieser Audiodatenstrom wird in einen Datenstrom mit Audiopaketen 1120 gewandelt, die einzelne Pakete 1122 aufweisen. Jedes Paket ist 2048 Bytes lang, wobei das letzte Audiopaket 1122G, das Audiopaket j, durch Auffüllen von Bits auf eine Länge von 2048 Bytes angepasst ist.
  • Eine neue Eigenschaft der vorliegenden Erfindung ist die Verwendung von Unterbildern und die Verschachtelung der Unterbildpaket mit Audio- und Videoinformation. Unterbildinformation ermöglicht die Anzeige beliebiger graphischer Information sowie ein Überlappen der Unterbildinformation über dem MPEG-Video. Ein großer Unterschied zwischen der Unterbildinformation, die von der vorliegenden Erfindung verwendet wird, und den herkömmlichen Untertiteln besteht darin, dass die Unterbildinformation eine Rastergraphik ist, während die Untertitel Zeichenkodes übermitteln, um Zeichen innerhalb von Zeichensätzen, die in dem Dekodierer gespeichert sind, anzuzeigen. Folglich ist die herkömmliche Untertitelung auf den Zeichensatz innerhalb des Dekodierers beschränkt. Da die Unterbildinformation "Bit-Mapped" ist, kann jede Art von Zeichen, einschließlich von Zeichen/Buchstaben eine Fremdsprache, angezeigt werden, ohne dass Zeichensätze für jede Sprache in dem Dekodierer gespeichert werden müssen.
  • Jeder Anzeigebildschirm mit Unterbildinformation wird als Unterbildeinheit bezeichnet. Es gibt eine Unterbildeinheit 1140, die in der 53 gezeigt ist. Eine Unterbildeinheit weist einen Bildschirm mit "Bit-Mapped"-Pixeldaten auf, und dieser Bildschirm mit den Pixeldaten wird über eine Mehrzahl von Videorahmen angezeigt. Die Unterbildeinheit 1140 weist einen Unterbildeinheitsheader 1142 auf. Der Unterbildeinheitsheader 1141 weist ein Feld auf, welches die Größe der Unterbildeinheit und die Anfangsadresse der Anzeigesteuerungssequenztabelle 1146 anzeigt, und zwar relativ zu der Byteanzahl von dem Kopf der Unterbildeinheit.
  • Die Pixeldaten 1144 entsprechen lauflängenkomprimierter Pixelinformation. Die Pixel können Hintergrundpixel, welche den Hintergrund der angezeigten Information bilden, Musterpixel, welche es ermöglichen, die Anzeigemuster innerhalb des Unterbilds anzuzeigen, einschließlich von graphischen Linienzeichnungen, und zwei Arten von Markierungspixeln sein, die es ermöglichen, Darstellungen oder Zeichen anzuzeigen, die zwei verschiedene Merkmale aufweisen. Die Pixelinformation kann mit Hilfe herkömmlicher Graphikgenerierungsverfahren erzeugt werden. Die Lauflängenkomprimierung wird in Übereinstimmung mit der folgenden Regel ausgeführt. Wenn ein bis drei Pixel der gleichen Art folgen, wird die Anzahl an Pixeln in den ersten zwei Bits und die Pixeldaten in den folgenden zwei Bits eingegeben. Die vier Bits werden als eine Einheit betrachtet. Wenn vier bis fünfzehn Pixel der gleichen Art folgen, wird in den ersten zwei Bits null bestimmt und die Anzahl an Pixeln in den folgenden vier Bits und die Pixeldaten in den nächsten zwei Bits eingegeben. Die acht Bits werden als eine Einheit betrachtet. Wenn sechzehn bis dreiundsechzig Pixel der gleichen Art folgen, wird in den ersten vier Bits null bestimmt und die Anzahl an Pixeln in den folgenden sechs Bits und die Pixeldaten in den nächsten zwei Bits eingegeben. Die zwölf Bits werden als eine Einheit betrachtet. Wenn vierundsechzig bis 255 Pixel der gleichen Art folgen, wird in den ersten sechs Bits null bestimmt und die Anzahl an Pixeln in den folgenden acht Bits und die Pixeldaten in den nächsten zwei Bits eingegeben. Die sechzehn Bits werden als eine Einheit betrachtet. Wenn die gleichen Pixel bis zum Ende eine Linie folgen, wird in den ersten vierzehn Bits null bestimmt und die Pixeldaten in den folgenden zwei Bits beschrieben. Die sechzehn Bits werden als eine Einheit betrachtet. Wenn der Byteabgleich nicht erfolgt, wenn die Beschreibung für die Pixel auf einer Linie abgeschlossen ist, werden Dummy-Daten von vier Bits zum Abgleichen eingefügt. Es ist ferner möglich, andere Kompressionsmechanismen zu verwenden, um die Bilddaten gemäß obiger Beschreibung darzustellen. Beispielsweise können JPEG- oder GIFF-Formate verwendet werden, um die Unterbildabbildungen darzustellen.
  • Die Anzeigesteuerungssequenztabelle 1146 weist eine Mehrzahl von Anzeigesteuerungssequenzen 1146A, 1146B, 1146C usw., auf, die in chronologischer Reihenfolge beschreiben, in welcher die Steuerungsequenzen auftreten. Die Anzeigesteuerungssequenztabelle weist Information dahingehend auf, wie die Information in der Unterbildeinheit angezeigt wird, Beispielsweise können Wörter, die eine einzelne Unterbildeinheit bilden, nacheinander oder in Gruppen im Zeitablauf erscheinen, oder es können sich deren Farben ändern, was dann von Nutzen ist, wenn Unterbilder verwendet werden, um Karaokeinformation anzuzeigen.
  • Jede Anzeigesteuerungssequenz (DCSQ) ermöglicht es, die über eine Zeitspanne, während welcher die Unterbildeinheit angezeigt wird, auszuführenden Pixeldaten über Befehle zu ändern. Das erste Feld einer Anzeigesteuerungssequenz ist eine Anzeigeanfangszeit. Dieses Feld beschreibt den Ausführungsanfangszeitpunkt des Anzeigesteuerungsbefehls, der in der DCSQ beinhaltet ist, die eine relative PTS von der PTS aufweist, die in dem Unterbildpaket beschrieben ist, mit einem Unterbildeinheitsheader. Von dem ersten Videorahmen nach dem beschriebenen Ausführungsanfangszeitpunkt wird die Anzeigesteuerung in Übereinstimmung mit dem DCSQ-Anzeigesteuerungsanfangszeitpunkt gestartet. Das zweite Feld jeder DCSQ ist die Adresse der folgenden Anzeigesteuerungssequenz. Dieses Feld beschreibt die Anfangsadresse der folgenden DCSQ mit der relativen Bytezahl von der ersten Unterbildeinheit. Wenn keine folgende DCSQ vorhanden ist, beschreibt dieses Feld die Anfangsadresse dieser DCSQ mit einer relativen Bytezahl von der ersten Unterbildeinheit. Anschließend weist die DCSQ eine oder mehrere Anzeigesteuerungsbefehle auf. Diese Befehle ermöglichen es, dass die Merkmale und die Anzeige der Pixeldaten gesteuert und geändert werden können. Die Befehle umfassen einen Befehl zum gezielten Starten der Anzeige einer Unterbildeinheit, ungeachtet des Ein/Aus-Zustands des Unterbilds. Wenn beispielsweise ein Benutzer ein Menü bedient, um Unterbilder auszuschalten, ist es möglich, die Einstellungen des Benutzer durch Setzen dieses Befehls zu überschreiben. Ein anderer Befehl startet die Anzeige einer aktualisierten Unterbildeinheit. Dieser Befehle muss einmal in jeder DCSQ auftauchen. Es gibt Befehle zum Einstellen der Farben und des Kontrasts der vorstehend beschriebenen vier Pixelarten, einschließlich der zwei Arten von Markierungspixeln, der Musterpixel und der Hintergrundpixel. Es gibt einen Befehl, welcher den rechteckigen Anzeigebereich und die Position der das Unterbild bildenden Pixeldaten einstellt. Dieser Befehl ermöglicht die Einstellung der oberen und der unteren X- und Y-Koordinaten. Es gibt ferner einen Befehl, der dazu verwendet wird, die Kopfadresse der zum Anzeigen verwendeten Pixeldaten einzustellen. Über diesem Befehl kann die Kopfadresse von sowohl dem oberen als auch dem unteren Feld eingegeben werden. In den erweiterten Feldern wird jede Kopfadresse der Pixeldaten für das obere Feld und für das untere Feld mit der relativen Bytezahl von dem Kopf der Einheit verwendet. Die ersten Pixeldaten stellen den ersten Pixel auf der Linie dar.
  • Dieser Befehl muss wenigsten in der ersten DCSQ, der DCSQ0, verwendet werden.
  • Es gibt einen Befehl, der in einer DCSQ auftauchen kann, um die Farbe und den Kontrast der Pixeldaten zu ändern. Dieser Befehl sollte nicht verwendet werden, wenn die Markierungsinformation der Datensuchinformation verwendet wird. Der Befehl zum Ändern der Farbe und des Kontrasts der Pixeldaten weist Pixelsteuerungsdaten zum Steuern der Farbe und des Kontrasts der Pixeldaten währen der Anzeige auf. Der Inhalt der Steuerung, die in den Pixelsteuerungsdaten beschrieben ist, wird für jeden Videorahmen nach dem bestimmten Anfangszeitpunkt ausgeführt und fortgesetzt, bis neue Pixelsteuerungsdaten antreffen, oder bis eine neue Unterbildeinheit antrifft. Die Pixelsteuerungsdaten weisen Liniensteuerungsinformation auf, die zum Bestimmen von Linien dient, auf denen die gleiche Änderung vorgenommen wird. Pixelsteuerungsinformation kann ferner dazu verwendet werden, eine Position auf einer Linie zu bestimmten, an welcher die Änderung vorgenommen wird. Der Liniensteuerungsbefehl ermöglicht die Änderung der Anfangsliniennummer, der Anzahl an Änderungspunkten und der Änderungsabschlussliniennummer. Die Pixelsteuerungsinformation weist die Änderungsanfangspixelnummer und die neue Farbe und den neuen Kontrast für die Markierungspixel 1 und 2, die Musterpixel und die Hintergrundpixel auf. Es gibt ferner einen Befehl, welcher das Ende einer Anzeigesteuerungssequenz anzeigt. Jede DCSQ muss bei diesem Befehl enden.
  • Über eine Zeitspanne der Videorahmen, wie beispielsweise für einen Film, gibt es mehrere verschiedene Unterbildeinheiten, die verwendet werden können. Die Unterbildeinheiten sind, wie in 54 gezeigt, in Unterbildpakete 1150 geteilt. Das Unterbildpaket weist einen Paketheader 972, wie vorstehend beschrieben, einen Pa ketheader, welcher den MPEG-Systemanforderungen entspricht, eine Unterdatenstrom-ID, die anzeigt, dass die folgenden Baten Unterbilddaten sind, und die Unterbilddaten 1158 an sich auf.
  • Die Unterbildeinheiten, wie beispielsweise die Unterbildeinheit 1140, sind, wie in 55 gezeigt, in Unterbildpakete 150 geteilt. Das letzte Unterbildpaket 1050G ist durch Auffüllen an die 2048 Byte angepasst.
  • 56 zeigt die Methode, auf die aufeinander folgende Unterbildeinheiten angezeigt werden. Wenn der Zeitpunkt gleich dem Zeitpunkt einer PTS ist, die in einem Neuen Unterbildpaket beschrieben ist, wird die Unterbildeinheit, die momentan angezeigt wird (1160), gelöscht (1162), und dann, wenn der durch die Anzeigesteuerungssequenz der nächsten Unterbildeinheit bestimmte Zeitpunkt auftritt, dieses Unterbild angezeigt wird (1164). Zwischen 1160 und 1162 gibt es eine Trennlinie zwischen der Unterbildeinheit n und der Unterbildeinheit n+1. Diese Trennlinie tritt bei der PTS auf, die in dem Paketheader der Unterbildeinheit n+1 beschrieben ist. Der aktuelle Anzeigezeit für die Untereinheit n+1 wird in der DCSQ des Unterbildes n+1 dargelegt.
  • Die Erzeugung der für die Unterbildinformation verwendeten Pixeldaten kann mit Hilfe eines Computers ausgeführt werden, um Bitmaps der Information zu erzeugen, die angezeigt werden soll. Der Prozess zur Erzeugung von Pixelinformation ist bekannt.
  • Die 40 bis 56 heben die Datenstrukturen hervor, die zum Kodieren von Audio-, Video- und Unterbildinformation verwendet werden. Durch die Offenbarung der in den 40 bis 56 gezeigten Datenstrukturen kann der Fachmann im Bereich der MPEG-Kodierung und ins besondere mit Hilde des MPEG-Standards ISO/IEC 13818-1 kodierte Audio- und Videosignale und Unterbilder in die Datenstruktur kodieren. Auch die Dekodierung der Datenstrukturen zum Erzeugen der Video-, Audio-, und Unterbildinformation kann mit dem Wissen über die Strukturen in welchen die Datengespeichert sind, von einem Fachmann dieses Gebietes vorgenommen werden.
  • Ein beispielhafter Videodekodierer, der einen Teil der vorliegenden Erfindung ausmacht, weist ein Lesegerät für eine optische Disk auf, welches die auf der optischen Disk gespeichert Daten liest. Die gelesene Information wird mit Hilfe herkömmlicher Analyseverfahren analysiert, um sie zu dekodieren. Die Video-, Audio-, Unterbild- und PBI-Pakete müssen alle dekodiert werden. Das Video kann mit Hilfe von handelsüblichen MPEG-Kodierern kodiert werden, gleich den Audiopaketen, die herkömmliche Dekodierer verwenden. Die Unterbildinformation wird dekodiert, indem Unterbildeinheiten aus den Unterbildpaketen erzeugt werden, und zwar invers zu ihrer Kodierung. Es kann speziell aufgebaute Hardware oder ein allgemeiner Mikrocomputer, der über eine Software-Kodierung programmiert ist, verwendet werden, um die Unterbildinformation zu dekodieren. Die Wiedergabeinformationspakete weisen, wie in 45 gezeigt, Datensuchinformation 996 auf. Die Datensuchinformation wird mit Hilfe eines programmierten Mikroprozessor verarbeitet und unterscheidet sich von den Audio-, Video- und Unterbilddekodierern. Da die Menüfunktionen ebenso von einem programmierten Mikroprozessor ausgeführt werden, werden die Markierungsinformation 1022, die in der Datensuchinformation beinhaltet ist, und alle weiteren Menüfunktionen von dem programmierten Mikroprozessor und nicht von dem Unterbilddekodierer ausgeführt. Weitere Information bezüglich der Datenstrukturen, des Kodierprozesses und des Dekodierpro zesses ist in den japanischen Patentanmeldungen 7-81298 (EP-A-737 009) und 7-85693 (EP-A-739 975) offenbart.
  • Das Kodiersystem der vorliegenden Erfindung ermöglicht die Steuerung der Qualität innerhalb von Bildern. Diese Steuerung ist dahingehend von Bedeutung, dass Personen, die eine endgültige Version eines Videos generieren, dieses endgültige Produkt des Kodiersystems genau steuern können. Obgleich digitale Videokodierung Dekodierartefakte hervorruft, die es in einem analogen Video nicht gibt, wird das endgültig Produkt folglich durchaus annehmbar sein. Die in jedem der obigen Abschnitt offenbarte Lehre ist auf die anderen Abschnitt anwendbar.
  • Die Bestimmungen, Berechnungen und Schritte der vorliegenden Erfindung können, wie es einem Fachmann ersichtlich sein wird, leicht mit Hilfe eines herkömmlichen allgemeinen digitalen Computers, der in Übereinstimmung mit der Lehre der vorliegenden Erfindung programmiert ist, realisiert werden. Eine geeignete Software-Kodierung kann, wie es dem Fachmann auf diesem Gebiet ersichtlich sein wird, problemlos mit Hilfe der hierin offenbarten Lehre von qualifizierten Programmieren erstellt werden.
  • Die Erfindung kann ferner, wie es dem Fachmann auf diesem Gebiet ersichtlich sein wird, durch die Erstellung von anmeldungsspezifischen ICs oder Zusammenschalten von herkömmliche Komponenten aufweisenden Schaltungen realisiert werden.
  • Die vorliegende Erfindung umfasst ein Computerprogrammprodukt, das einem Speichermedium entspricht, das Befehle aufweist, die dazu verwendet werden können, einen Computer so zu programmieren, dass er einen Prozess der Erfindung ausführt. Das Speichermedium kann, ohne darauf beschränkt zu sein, eine beliebige Art von Disk, einschließlich von Disketten, optischen Disks, CD-ROMs und magnetooptischen Disks, ROMs, RAMs, EPROMs, EEPROMs, magnetische oder optische Karten oder eine beliebige Art von Medium aufweisen, das dazu ausgelegt ist, elektronische Befehle zu speichern. Die vorliegende Erfindung umfasst ferner ein Computerprogrammprodukt auf, das einem Speichermedium entspricht, das kodierte Daten aufweist, die von der vorliegenden Erfindung ausgeben werden und auf irgendeinem der vorstehend beschriebenen Datenträger, der zum Speichern elektronischer Befehle oder Daten ausgelegt ist, gespeichert sind.

Claims (28)

  1. Verfahren zur Qualitätssteuerung von digital kodierten Videodaten, mit den Schritten: – Kodieren eines Video-Rahmens in ein digital komprimiertes Format mit Hilfe von Quantisiererwerten; – manuelles Identifizieren von Bereichen des kodierten Video-Rahmens, die Qualitäten aufweisen, die verändert werden sollen; – Bestimmen von neuen Quantisiererwerten für die Bereiche und/oder einer neuen Anzahl an Bits für die Bereiche mit Hilfe der identifizierten Bereiche und einer vorher bestimmten Anzahl an Bits; und – erneutes Kodieren des Video-Rahmens in das digital komprimierte Format mit Hilfe der neuen Quantisiererwerte und/oder der neuen Anzahl an Bits für die Bereiche.
  2. Verfahren nach Anspruch 1, das ferner die Schritte umfasst: – Vergleichen einer resultierenden Anzahl an Bits, die sich aus den neuen Quantisiererwerten und/oder der neuen Anzahl an Bits für die Bereiche ergibt, mit einer vorher bestimmten Anzahl an Bits; und – Einstellen der neuen Quantisiererwerte und/oder der neuen Anzahl an Bits für die Bereiche mit Hilfe eines Ergebnisses des Vergleichsschritts, um die resultierende Anzahl an Bits derart zu ändern, dass sie sich der vorher bestimmten Anzahl an Bits annähert, wobei – der Schritt des erneuten Kodierens den Video-Rahmen mit Hilfe der durch den Einstellschritt eingestellten neuen Quantisiererwerte und/oder der durch den Einstellschritt eingestellten neuen Anzahl an Bits für die Bereiche erneut kodiert.
  3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass der Einstellschritt die resultierende Anzahl an Bits derart ändert, dass sie sich einer Anzahl an für die Kodierung des Rahmens verwendeten Bits annähert.
  4. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass der Bestimmungsschritt eine neue Anzahl an Bits für die Bereiche bestimmt.
  5. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass der Bestimmungsschritt neue Quantisiererwerte für die Bereiche bestimmt.
  6. Verfahren nach Anspruch 1, das ferner den Schritt des Entfernens von Bits aus den Bereichen und des Setzens der entfernten Bits in einen gemeinsamen Bit-Pool umfasst, wobei der Bestimmungsschritt die neue Anzahl an Bits durch Verteilen von Bits aus dem Bit-Pool bestimmt.
  7. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der Bestimmungsschritt die Anzahl an Bits für die Bereiche derart bestimmt, dass eine Gesamtzahl an aus den Bereichen des Rahmens entfernten Bits einer Gesamtzahl an den Bereichen des Rahmens hinzugefügten Bits entspricht.
  8. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass der Einstellschritt die neuen Quantisiererwerte von Makroblöcken einstellt, um die resultierende Anzahl an Bits der vorher bestimmten Anzahl an Bits anzunähern.
  9. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass – der Identifizierungsschritt das Identifizieren eines Bereichs für einen ersten Rahmen und eines entsprechenden Bereichs für einen letzten Rahmen umfasst; und – das Verfahren ferner den Schritt des Bestimmens von Bereichen für zwischen dem ersten und dem letzten Rahmen liegenden Rahmen mit Hilfe des ersten und des letzten Rahmens umfasst.
  10. Verfahren nach Anspruch 1, das ferner den Schritt des Übertragens von Daten, welche das erneut kodierte Video in dem digital komprimierten Format darstellen, zu einem Speichermedium umfasst.
  11. Verfahren nach Anspruch 10, dadurch gekennzeichnet, dass der Schritt der Datenübertragung ein Erzeugen einer die Daten aufweisenden optischen Disk umfasst.
  12. Verfahren nach Anspruch 11, dadurch gekennzeichnet, dass der Schritt der Datenübertragung ein Pressen einer optischen Disk umfasst.
  13. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der Bestimmungsschritt nach dem Schritt des Identifizierens von Bereichen automatisch und ohne Bedienereingriff ausgeführt wird.
  14. Verfahren nach Anspruch 1, das ferner den Schritt des Gewinnens des in das digital komprimierte Format zu kodierenden Videos mit Hilfe einer Kamera umfasst.
  15. System zur Qualitätssteuerung von digital kodierten Videodaten, mit: – einer Einrichtung zum Kodieren eines Video-Rahmes in ein digital komprimiertes Format mit Hilfe von Quantisiererwerten; – einer Einrichtung zum manuellen Identifizieren von Bereichen des kodierten Video-Rahmens, die Qualitäten aufweisen, die verändert werden sollen; – einer Einrichtung zum Bestimmen von neuen Quantisiererwerten für die Bereiche und/oder einer neuen Anzahl an Bits für die Bereiche mit Hilfe der identifizierten Bereiche und einer vorher bestimmten Anzahl an Bits; und – einer Einrichtung zum erneuten Kodieren des Video-Rahmens in das digital komprimierte Format mit Hilfe der neuen Quantisiererwerte und/oder der neuen Anzahl an Bits für die Bereiche.
  16. System nach Anspruch 15, das ferner aufweist: – eine Einrichtung zum Vergleichen einer resultierenden Anzahl an Bits, die sich aus den neuen Quantisiererwerten und/oder der neuen Anzahl an Bits für die Bereiche ergibt, mit einer vorher bestimmten Anzahl an Bits; und – eine Einrichtung zum Einstellen der neuen Quantisiererwerte und/oder der neuen Anzahl an Bits für die Bereiche mit Hilfe eines Ergebnisses der Vergleichseinrichtung, um die resultierende Anzahl an Bits derart zu ändern, dass sie sich der vorher bestimmten Anzahl an Bits annähert, wobei – die Einrichtung zum erneuten Kodieren den Video-Rahmen mit Hilfe der durch den Einstellschritt eingestellten neuen Quantisiererwerte und/oder der durch den Einstellschritt eingestellten neuen Anzahl an Bits für die Bereiche erneut kodiert.
  17. System nach Anspruch 15, dadurch gekennzeichnet, dass die Einstelleinrichtung die resultierende Anzahl an Bits derart ändert, dass sie sich einer Anzahl an für die Kodierung des Rahmens durch die Kodierungseinrichtung verwendeten Bits annähert.
  18. System nach Anspruch 16, dadurch gekennzeichnet, dass die Bestimmungseinrichtung eine neue Anzahl an Bits für die Bereiche bestimmt.
  19. System nach Anspruch 16, dadurch gekennzeichnet, dass die Bestimmungseinrichtung neue Quantisiererwerte für die Bereiche bestimmt.
  20. System nach Anspruch 15, das ferner eine Einrichtung zum Entfernen von Bits aus den Bereichen und zum Setzen der entfernten Bits in einen gemeinsamen Bit-Pool aufweist, wobei die Bestimmungseinrichtung die neue Anzahl an Bits durch Verteilen von Bits aus dem Bit-Pool bestimmt.
  21. System nach Anspruch 15, dadurch gekennzeichnet, dass die Bestimmungseinrichtung die Anzahl an Bits für die Bereiche derart bestimmt, dass eine Gesamtzahl an aus den Bereichen des Rahmens entfernten Bits einer Gesamtzahl an den Bereichen des Rahmens hinzugefügten Bits entspricht.
  22. System nach Anspruch 16, dadurch gekennzeichnet, dass die Einstelleinrichtung die neuen Quantisiererwerte von Makroblöcken einstellt, um die resultierende Anzahl an Bits der vorher bestimmten Anzahl an Bits anzunähern.
  23. System nach Anspruch 15, dadurch gekennzeichnet, dass – die Identifizierungseinrichtung eine Einrichtung zum Identifizieren eines Bereichs für einen ersten Rahmen und eines entsprechenden Bereichs für einen letzten Rahmen aufweist; und – das System ferner eine Einrichtung zum Bestimmen von Bereichen für zwischen dem ersten und dem letzten Rahmen liegenden Rahmen mit Hilfe des ersten und des letzten Rahmens aufweist.
  24. System nach Anspruch 15, das ferner eine Einrichtung zum Übertragen von Daten, welche das erneut kodierte Video in dem digital komprimierten Format darstellen, zu einem Speichermedium aufweist.
  25. System nach Anspruch 24, dadurch gekennzeichnet, dass die Einrichtung zur Datenübertragung eine Einrichtung zum Erzeugen einer die Daten aufweisenden optischen Disk aufweist.
  26. System nach Anspruch 25, dadurch gekennzeichnet, dass die Einrichtung zur Datenübertragung eine Einrichtung zum Pressen einer optischen Disk aufweist.
  27. System nach Anspruch 15, dadurch gekennzeichnet, dass die Bestimmungseinrichtung nach einer Identifizierung der Bereiche durch die Identifizierungseinrichtung automatisch und ohne Bedienereingriff arbeitet.
  28. System nach Anspruch 15, das ferner eine Kamera zur Gewinnung des in das digital komprimierte Format zu kodierenden Videos aufweist.
DE69636337T 1995-05-08 1996-04-19 System zur änderung kodierter videorahmen Expired - Lifetime DE69636337T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US43801495A 1995-05-08 1995-05-08
US438014 1995-05-08
US08/466,391 US5819004A (en) 1995-05-08 1995-06-06 Method and system for a user to manually alter the quality of previously encoded video frames
US466391 1995-06-06
PCT/US1996/005208 WO1996036170A1 (en) 1995-05-08 1996-04-19 System for altering the encoded video frames

Publications (2)

Publication Number Publication Date
DE69636337D1 DE69636337D1 (de) 2006-08-24
DE69636337T2 true DE69636337T2 (de) 2007-10-11

Family

ID=27031504

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69636337T Expired - Lifetime DE69636337T2 (de) 1995-05-08 1996-04-19 System zur änderung kodierter videorahmen

Country Status (8)

Country Link
US (1) US5819004A (de)
EP (1) EP0824824B1 (de)
JP (2) JP3253971B2 (de)
KR (1) KR100283384B1 (de)
AU (1) AU708027B2 (de)
CA (1) CA2201516C (de)
DE (1) DE69636337T2 (de)
WO (1) WO1996036170A1 (de)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6134383A (en) 1995-04-11 2000-10-17 Kabushiki Kaisha Toshiba Recording medium, recording apparatus and recording method for recording data into recording medium, and reproducing apparatus and reproducing method for reproducing data from recording medium
US5838874A (en) * 1995-05-08 1998-11-17 Kabushiki Kaisha Toshiba Audiovisual encoding system with a reduced number of audio encoders
US5684714A (en) * 1995-05-08 1997-11-04 Kabushiki Kaisha Toshiba Method and system for a user to manually alter the quality of a previously encoded video sequence
US5612900A (en) * 1995-05-08 1997-03-18 Kabushiki Kaisha Toshiba Video encoding method and system which encodes using a rate-quantizer model
US6026232A (en) * 1995-07-13 2000-02-15 Kabushiki Kaisha Toshiba Method and system to replace sections of an encoded video bitstream
US5623424A (en) * 1995-05-08 1997-04-22 Kabushiki Kaisha Toshiba Rate-controlled digital video editing method and system which controls bit allocation of a video encoder by varying quantization levels
US6324334B1 (en) * 1995-07-07 2001-11-27 Yoshihiro Morioka Recording and reproducing apparatus for recording and reproducing hybrid data including text data
EP0788101B1 (de) * 1995-08-21 2000-07-05 Matsushita Electric Industrial Co., Ltd. Multimedia optische platte, die ein dynamisches schalten zwischen wiedergabeausgangen und wiedergabegeraten ermoglicht
EP0830023B1 (de) 1996-03-29 2001-12-12 Matsushita Electric Industrial Co., Ltd. Optische multimediascheibe mit verbesserter interaktiver wiedergabe sowie aufnahmeverfahren und -vorrichtung
JP4059355B2 (ja) * 1996-04-04 2008-03-12 パイオニア株式会社 情報記録装置及び情報記録方法並びに情報再生装置及び情報再生方法
US6161115A (en) * 1996-04-12 2000-12-12 Avid Technology, Inc. Media editing system with improved effect management
EP0814619A3 (de) * 1996-06-21 1999-05-12 Hitachi, Ltd. Magnetische Aufnahme- und Wiedergabesteuervorrichtung
US6134378A (en) * 1997-04-06 2000-10-17 Sony Corporation Video signal processing device that facilitates editing by producing control information from detected video signal information
US6160953A (en) * 1997-04-21 2000-12-12 Victor Company Of Japan, Ltd. DVD-compatible optical recording disk conveying audio signals encoded both as PCM data and as single bit stream data generated by sigma-delta modulation, and encoder apparatus and decoder apparatus for same
US6012053A (en) * 1997-06-23 2000-01-04 Lycos, Inc. Computer system with user-controlled relevance ranking of search results
US6507672B1 (en) * 1997-09-10 2003-01-14 Lsi Logic Corporation Video encoder for digital video displays
KR100554432B1 (ko) * 1997-09-17 2006-11-17 마츠시타 덴끼 산교 가부시키가이샤 광디스크용 재생장치 및 재생방법
US6487364B2 (en) 1997-09-17 2002-11-26 Matsushita Electric Industrial Co., Ltd. Optical disc, video data editing apparatus, computer-readable recording medium storing an editing program, reproduction apparatus for the optical disc, and computer-readable recording medium storing a reproduction program
CA2247637A1 (en) * 1997-09-17 1999-03-17 Matsushita Electric Industrial Co., Ltd. Video data editing apparatus, optical disc for use as a recording medium of a video data editing apparatus, and computer-readable recording medium storing an editing program
JP3597689B2 (ja) * 1998-01-21 2004-12-08 株式会社東芝 情報記録媒体及び情報記録媒体処理装置
EP2261920A3 (de) * 1998-02-23 2011-03-09 Kabushiki Kaisha Toshiba Informationsaufzeichnungsmedium, Informationswiedergabeverfahren und -vorrichtung, und Informationsaufzeichnungsverfahren
US6178204B1 (en) * 1998-03-30 2001-01-23 Intel Corporation Adaptive control of video encoder's bit allocation based on user-selected region-of-interest indication feedback from video decoder
AU758390B2 (en) * 1998-07-27 2003-03-20 Webtv Networks, Inc. Remote computer access
US8189662B2 (en) * 1999-07-27 2012-05-29 Microsoft Corporation Selection compression
US7360230B1 (en) 1998-07-27 2008-04-15 Microsoft Corporation Overlay management
JP2000125136A (ja) * 1998-10-19 2000-04-28 Internatl Business Mach Corp <Ibm> 画像データ圧縮装置およびその方法
US6850565B2 (en) * 1998-12-18 2005-02-01 Intel Corporation Real time bit rate control system
US6400852B1 (en) * 1998-12-23 2002-06-04 Luxsonor Semiconductors, Inc. Arbitrary zoom “on -the -fly”
EP1021048A3 (de) * 1999-01-14 2002-10-02 Kabushiki Kaisha Toshiba System zur Aufnahme von digitalem Video und Aufnahmemedium
JP3715533B2 (ja) * 1999-02-05 2005-11-09 株式会社東芝 ストリーム情報の情報記憶媒体、その記録方法、再生方法、記録装置および再生装置
US6614470B1 (en) * 1999-02-26 2003-09-02 Sony Corporation Devices and methods for processing digital image data compatible with a television receiver
CN1204751C (zh) * 1999-04-13 2005-06-01 松下电器产业株式会社 编码数据变换方法、再编码方法、再编码系统以及数据记录媒体
JP2001014837A (ja) * 1999-06-29 2001-01-19 Funai Electric Co Ltd 記録媒体再生装置
US7283965B1 (en) * 1999-06-30 2007-10-16 The Directv Group, Inc. Delivery and transmission of dolby digital AC-3 over television broadcast
US6532593B1 (en) * 1999-08-17 2003-03-11 General Instrument Corporation Transcoding for consumer set-top storage application
JP4211153B2 (ja) * 1999-09-17 2009-01-21 ソニー株式会社 記録装置および方法
GB2356508B (en) * 1999-11-16 2004-03-17 Sony Uk Ltd Data processor and data processing method
JP2001285765A (ja) * 2000-03-29 2001-10-12 Nec Corp 放送番組蓄積方式
US6553150B1 (en) * 2000-04-25 2003-04-22 Hewlett-Packard Development Co., Lp Image sequence compression featuring independently coded regions
US6693648B1 (en) 2000-11-22 2004-02-17 Campus Crusade For Christ, Inc. Pointer interactive apparatus
US7248778B1 (en) * 2001-03-16 2007-07-24 Gateway Inc. Automated video editing system and method
JP3918447B2 (ja) * 2001-03-30 2007-05-23 三菱電機株式会社 動画像受信装置および動画像送信装置
WO2002100112A1 (en) * 2001-06-03 2002-12-12 Seelive Ltd. System and method for rapid video compression
US7194195B1 (en) * 2001-07-17 2007-03-20 Advanced Micro Devices, Inc. Software based digital video recorder device
US20030093515A1 (en) * 2001-11-14 2003-05-15 Kauffman Marc W. Quality of service control of streamed content delivery
US20030174228A1 (en) * 2002-03-14 2003-09-18 Brake Wilfred F. System for user-selectable image pre-processing in a digital camera
US7787741B2 (en) * 2002-04-23 2010-08-31 Gateway, Inc. Prioritized content recording and storage management
US7433532B2 (en) * 2002-05-01 2008-10-07 Kestrel Corporation Max entropy optimized retinal camera
JP4010284B2 (ja) * 2002-07-31 2007-11-21 富士通株式会社 動画再生装置及び動画再生方法
US8250034B2 (en) * 2004-04-14 2012-08-21 Verisign, Inc. Method and apparatus to provide visual editing
US8577683B2 (en) * 2008-08-15 2013-11-05 Thomas Majchrowski & Associates, Inc. Multipurpose media players
FR2889381A1 (fr) * 2005-07-28 2007-02-02 Thomson Licensing Sas Procede et dispositif de determination de parametres de quantification dans une image
TWI297994B (en) * 2005-12-08 2008-06-11 Inst Information Industry Encoder, method for adjusting decoding calculation, and computer readable record medium therefor
US7940653B2 (en) * 2006-08-29 2011-05-10 Verizon Data Services Llc Audiovisual data transport protocol
US7817557B2 (en) * 2006-08-29 2010-10-19 Telesector Resources Group, Inc. Method and system for buffering audio/video data
US9239958B2 (en) * 2007-11-09 2016-01-19 The Nielsen Company (Us), Llc Methods and apparatus to measure brand exposure in media streams
US20090162024A1 (en) * 2007-12-20 2009-06-25 Geevee, Inc. Intra-Media Demarcation
CN102483849A (zh) * 2009-08-12 2012-05-30 汤姆森许可贸易公司 基于感兴趣区域来减少图像序列中的伪像的系统和方法
US11553211B2 (en) * 2013-01-03 2023-01-10 Disney Enterprises, Inc. Heuristic detection of potential digital media artifacts and defects in digital media assets
US9924164B2 (en) * 2013-01-03 2018-03-20 Disney Enterprises, Inc. Efficient re-transcoding of key-frame-aligned unencrypted assets
US10003799B2 (en) 2013-08-13 2018-06-19 Beamr Imaging Ltd Quality driven video re-encoding
US10070173B2 (en) 2016-12-22 2018-09-04 Arris Enterprises Llc Video encoder customization through use of crowdsourcing and program metadata
CN107274291B (zh) * 2017-06-21 2020-08-04 况客科技(北京)有限公司 跨平台的估值表解析方法、存储介质及应用服务器
US11645234B2 (en) * 2019-04-17 2023-05-09 International Business Machines Corporation Rule-based collections of subset(s) of metadata in response to a trigger event occurring
US11184648B2 (en) * 2019-08-30 2021-11-23 Rovi Guides, Inc. Systems and methods for providing content during reduced streaming quality
US11704891B1 (en) 2021-12-29 2023-07-18 Insight Direct Usa, Inc. Dynamically configured extraction, preprocessing, and publishing of a region of interest that is a subset of streaming video data
US11509836B1 (en) 2021-12-29 2022-11-22 Insight Direct Usa, Inc. Dynamically configured processing of a region of interest dependent upon published video data selected by a runtime configuration file
US11778167B1 (en) 2022-07-26 2023-10-03 Insight Direct Usa, Inc. Method and system for preprocessing optimization of streaming video data

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1197005A (en) * 1981-09-29 1985-11-19 Norio Suzuki System comprising a preliminary processing device controlled in accordance with an amount of information stored in a buffer
US4729044A (en) * 1985-02-05 1988-03-01 Lex Computing & Management Corporation Method and apparatus for playing serially stored segments in an arbitrary sequence
US4746994A (en) * 1985-08-22 1988-05-24 Cinedco, California Limited Partnership Computer-based video editing system
JPH0720228B2 (ja) * 1987-04-30 1995-03-06 日本電気株式会社 画像の圧縮記録システム
US4785349A (en) * 1987-10-05 1988-11-15 Technology Inc. 64 Digital video decompression system
US4951140A (en) * 1988-02-22 1990-08-21 Kabushiki Kaisha Toshiba Image encoding apparatus
US5016113A (en) * 1988-04-04 1991-05-14 Pioneer Electronic Corporation Apparatus for reproducing and processing picture information including graphic codes from a recording medium
US5164839A (en) * 1988-12-27 1992-11-17 Explore Technology, Inc. Method for handling audio/video source information
US5128776A (en) * 1989-06-16 1992-07-07 Harris Corporation Prioritized image transmission system and method
JPH03129987A (ja) * 1989-10-14 1991-06-03 Sony Corp 映像信号符号化装置及び映像信号符号化方法
EP0423979B1 (de) * 1989-10-20 1997-07-09 Sony Corporation Anordnung zum Aufzeichnen eines Videosignals mit hoher Auflösung
US5218672A (en) * 1990-01-19 1993-06-08 Sony Corporation Of America Offline editing system with user interface for controlling edit list generation
JP2969782B2 (ja) * 1990-05-09 1999-11-02 ソニー株式会社 符号化データ編集方法及び符号化データ編集装置
US5237648A (en) * 1990-06-08 1993-08-17 Apple Computer, Inc. Apparatus and method for editing a video recording by selecting and displaying video clips
US5390027A (en) * 1990-08-23 1995-02-14 Matsushita Electric Industrial Co., Ltd. Television program recording and reproducing system using program data of text broadcast signal
US5150208A (en) * 1990-10-19 1992-09-22 Matsushita Electric Industrial Co., Ltd. Encoding apparatus
JP3012698B2 (ja) * 1991-01-29 2000-02-28 オリンパス光学工業株式会社 画像データの符号化装置および符号化方法
US5249053A (en) * 1991-02-05 1993-09-28 Dycam Inc. Filmless digital camera with selective image compression
US5191645A (en) * 1991-02-28 1993-03-02 Sony Corporation Of America Digital signal processing system employing icon displays
US5333212A (en) * 1991-03-04 1994-07-26 Storm Technology Image compression technique with regionally selective compression ratio
EP0537322A1 (de) * 1991-04-18 1993-04-21 Eastman Kodak Company Neuquantisierung eines digitalen Bildsignales mit minimalen sichtbaren Störungen
JP3189861B2 (ja) * 1992-11-13 2001-07-16 ソニー株式会社 動画像符号化装置および方法
DE69222102T2 (de) * 1991-08-02 1998-03-26 Grass Valley Group Bedienerschnittstelle für Videoschnittsystem zur Anzeige und interaktive Steuerung von Videomaterial
US5144424A (en) * 1991-10-15 1992-09-01 Thomson Consumer Electronics, Inc. Apparatus for video data quantization control
US5231484A (en) * 1991-11-08 1993-07-27 International Business Machines Corporation Motion video compression system with adaptive bit allocation and quantization
US5355450A (en) * 1992-04-10 1994-10-11 Avid Technology, Inc. Media composer with adjustable source material compression
JP3298915B2 (ja) * 1991-12-28 2002-07-08 ソニー株式会社 符号化装置
KR100206261B1 (ko) * 1992-02-28 1999-07-01 윤종용 디지탈 vtr의 영상신호 대역 압축장치
US5283646A (en) * 1992-04-09 1994-02-01 Picturetel Corporation Quantizer control method and apparatus
EP0567697A1 (de) * 1992-04-29 1993-11-03 Yiu Keung Chan Methode für Bildkompression im Raumbereich
JP3093458B2 (ja) * 1992-07-23 2000-10-03 株式会社東芝 可変レート符・復号化装置
US5404316A (en) * 1992-08-03 1995-04-04 Spectra Group Ltd., Inc. Desktop digital video processing system
US5367341A (en) * 1992-10-20 1994-11-22 Canon Information Systems, Inc. Digital video editor having lost video frame protection
JP3106749B2 (ja) * 1992-12-10 2000-11-06 ソニー株式会社 適応型ダイナミックレンジ符号化装置
US5373327A (en) * 1993-02-25 1994-12-13 Hewlett-Packard Company Detection, correction and display of illegal color information in a digital video signal
JPH06326435A (ja) * 1993-05-11 1994-11-25 Noritake Co Ltd 半導体装置搭載基板
JPH0785693A (ja) * 1993-09-20 1995-03-31 Fujitsu Ltd 半導体記憶装置
US5630006A (en) * 1993-10-29 1997-05-13 Kabushiki Kaisha Toshiba Multi-scene recording medium and apparatus for reproducing data therefrom
US5463565A (en) * 1993-10-29 1995-10-31 Time Warner Entertainment Co., L.P. Data block format for software carrier and player therefor
US5400077A (en) * 1993-10-29 1995-03-21 Time Warner Entertainment Co., L.P. System for generating multiple aspect ratio video signals from motion picture disk recorded in a single aspect ratio
JPH07212767A (ja) * 1994-01-21 1995-08-11 Matsushita Electric Ind Co Ltd 画像データ圧縮装置
JP3005147B2 (ja) * 1994-02-24 2000-01-31 シャープ株式会社 動画像符号化装置
CA2145914A1 (en) * 1994-05-27 1995-11-28 Alexandros Eleftheriadis Model-assisted coding of video sequences at low bit rates
JP3734286B2 (ja) * 1994-12-27 2006-01-11 株式会社東芝 動画像符号化装置及び動画像伝送装置
JPH08331561A (ja) * 1995-03-30 1996-12-13 Canon Inc 画像処理装置
US5684714A (en) * 1995-05-08 1997-11-04 Kabushiki Kaisha Toshiba Method and system for a user to manually alter the quality of a previously encoded video sequence
US6026232A (en) * 1995-07-13 2000-02-15 Kabushiki Kaisha Toshiba Method and system to replace sections of an encoded video bitstream
US5612900A (en) * 1995-05-08 1997-03-18 Kabushiki Kaisha Toshiba Video encoding method and system which encodes using a rate-quantizer model
US5838874A (en) * 1995-05-08 1998-11-17 Kabushiki Kaisha Toshiba Audiovisual encoding system with a reduced number of audio encoders
US5623424A (en) * 1995-05-08 1997-04-22 Kabushiki Kaisha Toshiba Rate-controlled digital video editing method and system which controls bit allocation of a video encoder by varying quantization levels

Also Published As

Publication number Publication date
KR100283384B1 (ko) 2001-03-02
AU5547596A (en) 1996-11-29
EP0824824A4 (de) 1998-09-09
CA2201516A1 (en) 1996-11-14
CA2201516C (en) 2003-06-10
JP3321457B2 (ja) 2002-09-03
DE69636337D1 (de) 2006-08-24
JP3253971B2 (ja) 2002-02-04
EP0824824B1 (de) 2006-07-12
EP0824824A1 (de) 1998-02-25
WO1996036170A1 (en) 1996-11-14
AU708027B2 (en) 1999-07-29
US5819004A (en) 1998-10-06
JPH11505092A (ja) 1999-05-11
JP2000316136A (ja) 2000-11-14

Similar Documents

Publication Publication Date Title
DE69636337T2 (de) System zur änderung kodierter videorahmen
JP3361009B2 (ja) ビデオ符号化方法および速度量子化モデルを利用して符号化を行うシステム
US5623424A (en) Rate-controlled digital video editing method and system which controls bit allocation of a video encoder by varying quantization levels
US6026232A (en) Method and system to replace sections of an encoded video bitstream
US5684714A (en) Method and system for a user to manually alter the quality of a previously encoded video sequence
JP3710820B2 (ja) オーディオエンコーダの数が低減されるオーディオ映像エンコードシステム
JP3445278B6 (ja) エンコードされたビデオビットストリームのセクションを交換するための方法及びシステム

Legal Events

Date Code Title Description
8364 No opposition during term of opposition