DE60028942T2 - Videokodierung - Google Patents

Videokodierung Download PDF

Info

Publication number
DE60028942T2
DE60028942T2 DE60028942T DE60028942T DE60028942T2 DE 60028942 T2 DE60028942 T2 DE 60028942T2 DE 60028942 T DE60028942 T DE 60028942T DE 60028942 T DE60028942 T DE 60028942T DE 60028942 T2 DE60028942 T2 DE 60028942T2
Authority
DE
Germany
Prior art keywords
video
image
error
video data
decoded
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
DE60028942T
Other languages
English (en)
Other versions
DE60028942D1 (de
Inventor
Miska Hannuksela
Ari Hourunranta
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.)
Sisvel International SA
Original Assignee
Nokia Oyj
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=10847994&utm_source=***_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE60028942(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Nokia Oyj filed Critical Nokia Oyj
Publication of DE60028942D1 publication Critical patent/DE60028942D1/de
Application granted granted Critical
Publication of DE60028942T2 publication Critical patent/DE60028942T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17318Direct or substantially direct transmission and handling of requests
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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/164Feedback from the receiver or from the transmission channel
    • H04N19/166Feedback from the receiver or from the transmission channel concerning the amount of transmission errors, e.g. bit error rate [BER]
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • H04N19/895Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder in combination with error concealment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44008Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6375Control signals issued by the client directed to the server or network components for requesting retransmission, e.g. of data packets lost or corrupted during transmission from server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6377Control signals issued by the client directed to the server or network components directed to server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Color Television Systems (AREA)
  • Glass Compositions (AREA)
  • Television Systems (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Description

  • Diese Erfindung bezieht sich auf Videokodierung.
  • Eines der jüngsten Ziele in der mobilen Telekommunikation war die Erhöhung der Geschwindigkeit der Datenübertragung, um Multimediadienste über Funknetzwerke zu ermöglichen. Eine der Schlüsselkomponenten von Multimedia ist digitales Video. Digitales Video bietet sehr viele Vorteile gegenüber herkömmlichen analogen Systemen, unterstützt Dienste wie Video-Telefonie und Multimedia-Anwendungen. Jedoch ist ein Hauptproblem von digitalem Video, im Vergleich zu analogen Systemen, die Anforderung, die es an Kommunikations- und Speicher-Ressourcen stellt. Beispielsweise wird eine Bandbreite von ungefähr 160 Mbps benötigt um qualitativ hohes Breitband-Video zu übertragen, welches mit einer Bandbreite von ungefähr 5 MHz vergleichbarer Qualität eines analogen Videosystems, vergleichbar ist. Somit ist für die Nutzung von digitalem Video, für das digitale Signal, eine Reduzierung einer Menge von Daten notwendig.
  • Übertragung eines Videos umfasst einen andauernden Datenverkehr, welcher bewegte Bilder repräsentiert. Wie allgemein bekannt, ist die Datenmenge, die für die Übertragung von Bildern benötigt wird, hoch verglichen mit vielen anderen Medienarten, und bisher war die Verwendung von Video in Endgeräten mit niedrigen Bitraten vernachlässigbar. Jedoch wurde ein bemerkenswerter Fortschritt im Bereich von niedriger Bitraten-Video-Komprimierung erreicht. Annehmbare Videoqualität kann bei Bitraten von ungefähr 20 kbps erreicht werden.
  • Als Ergebnis dieser progressiven Reduzierung der Bitrate wird erwartet, dass Video bald ein realisierbarer Dienst wird, der Netzwerken mit beschränkter Bandbreite, wie zum Beispiel öffentlichen Telefonnetzen (PSTNS) und Mobiltelekommunikationsnetzwerken, angeboten wird. Bei Videofon-Anwendungen, die feste Netzwerke verwenden werden Fehler normalerweise durch das wiederholte Senden der Daten überwunden. Jedoch ist mobile Telefonie fehleranfällig gegenüber höheren Fehlerraten als PSTN und hat längere Umlaufverzögerungen. Diese längern Verzögerungen machen die Verwendung von wiederholter Übertragung bei Echtzeit-Mobil-Videofonie-Anwendungen undurchführbar. Wiederholte Übertragung ist auch bei höheren Situationen mit hoher Fehlerraten ineffektiv.
  • Eine Videosequenz besteht aus einer Folge von stehenden Bildern oder Rahmen. Datenreduzierung wird durch die Verwendung von Kompressionstechniken erreicht, um redundante Daten zu entfernen, während noch genügend Information empfangen wird, um das originale Bild mit akzeptabler Qualität reproduzieren zu lassen. Es gibt zwei Hauptarten von Redundanz bei Videosignalen: räumlich und zeitlich. Bei der Kodierung von Bildern werden Techniken, die ausschließlich räumliche Redundanz auswerten, als Intra-frame oder als I-frames bezeichnet (d.h. sie behandeln jeden Rahmen einzeln), während diejenigen, die zeitliche Redundanz auswerten, als inter-frame oder P-frames bezeichnet werden (d.h. sie behandeln Ähnlichkeiten der Rahmen). Die Letztere wertet ausnahmslos auch räumliche Redundanz aus, z.B. durch das Generieren von Bewegungs-Kompensations-Daten, welche die Bewegung (d.h. Verschiebung) zwischen ähnlichen Bereichen des derzeitigen und einem vorherigen Bild beschreibt. In dem Inter-Frame Fall ist das vorhergesagte (bewegungskompensierte) Bild kaum präzise genug und deswegen wird ein räumlich komprimiertes vorhergesagtes Fehlerbild wird ebenso mit jedem Inter-Rahmen assoziiert.
  • Es kann jedoch ausreichende Komprimierung normalerweise nicht durch das bloße Verringern der Redundanz der Sequenz bzw. Abfolge erreicht werden. Somit versuchen Videokodierer die Qualität derjenigen Teile der Videosequenz zu verringern, welche subjektiv am wenigsten wichtig sind. Zusätzlich wird die Redundanz des kodierten Bitstromes durch effizientes, verlustfreies Kodieren der Komprimierungsparameter und Koeffizienten reduziert. Die Haupttechnik ist die Verwendung von Codes mit variablen Längen, in denen jeder Wert durch das Verwenden eines eindeutigen Codewortes kodiert wird. Die kürzesten Kodewörter werden von solchen Werten zugewiesen, die statistisch am häufigsten auftreten.
  • Einige Videokodierungstechniken wurden entwickelt. Diese beinhalten Lauflängen-Kodierung, konditionale Ergänzung, Transformations-Kodierung, Huffmann-Kodierung und Differenzial-Phasencode-Modulation (DPCM). Viele von denen werden in Schlüssel-Standards, wie ITU-T-Empfehlungen JPEG, MPEG-1 und MPEG-2, und H.261/H.263, verwendet. JPEG definiert die Form von komprimierten Datenströmen für stehende Bilder; MPEG-1/MPEG2 sind für die Komprimierung von bewegten Bildern; H.261/H.263 wurden primär für Videotelefon- Anwendungen definiert, welche niedrige Bitraten-Kommunikations-Verbindungen (von der Größenordnung von einigen zehn kbit/s). Heutige Videotelefonie-Systeme wurden primär zur Verwendung in PSTN oder Paket-Netzwerken ausgelegt, und werden durch die ITU-T-Empfehlungen H.324 bestimmt, welche Niedrigbitraten-Multimedia-Kommunikation abdecken, H.245, welche Übertragungsprotokolle abdeckt, H.233, welche sich auf Multiplexierung bezieht und H.323, welche Videokonferenzen über herkömmliche lokale Netzwerke mit gemeinsam genutztem Medium abdecken. Die ersten mobilen Videokonferenzen werden auf H.324 basieren.
  • Komprimiertes Video wird leicht durch Übertragungsfehler verfälscht, hauptsächlich aus zwei Gründen. Erstens, wegen der Verwendung von temporärer, vorhersagender Differentialkodierung (Inter-Frames), wird ein Fehler sowohl räumlich als auch zeitlich fortgepflanzt. In der Praxis bedeutet dies, dass sobald ein Fehler auftritt, ist er für das menschliche Auge für relativ lange Zeit leicht sichtbar. Besonders anfällig sind Übertragungen bei niedrigen Bitraten, wobei es hierbei nur wenige Intra-kodierte Rahmen gibt (die Übertragung von Intra-kodierten Rahmen würde die temporäre Fehlerausbreitung aufhalten). Zweitens vergrößert die Verwendung von Kodes mit variabler Länge die der Fehler Anfälligkeit. Wenn ein Bitfehler das Codewort verändert, wird der Dekodierer die Kodewort-Synchronisation verlieren und auch die folgenden fehlerfreien Kodewörter inkorrekt dekodieren (umfassend mehrere Bits) bis zur nächsten Synchronisations(oder Start-)Code. Ein Synchronisations-Code ist ein Bitmuster, welches nicht aus irgendeiner erlaubten Kombination von anderen Codewörtern erzeugt werden kann und solche Codes werden in Intervallen dem Bitstrom zugefügt um erneute Synchronisation zu ermöglichen.
  • Nicht jedes Bit in einem komprimierten Videobitstrom hat die gleiche Wichtigkeit für die dekomprimierten Bilder. Manche Bits gehören zu Segmenten, welche wichtige Information wie den Typ des Bildes (z.B. Intra oder Inter), den Quanten-Wert und die optionalen Code-Arten, die verwendet wurden, definiert. In H.263 ist die wichtigste Information im Bild-Anfangsblock. Ein Übertragungsfehler im Header bzw. Anfangsblock des Bildes verursacht typischerweise eine gänzliche Missinterpretation der folgenden Bits, welche den Bildinhalt definieren. Durch die Verwendung von zeitlich vorhersagender Differential-Kodierung (Inter-Frames) wird der Fehler sowohl räumlich als auch zeitlich fortgepflanzt. Wenn deswegen ein Decoder einen verfälschten Bild-Anfangsblock erkennt, wird als typischer Ansatz das vorherige Bild auf dem Bildschirm eingefroren, ein Intra-Bild-Anforderung wird an das übertragende Enggerät gesendet und es wird auf den angeforderten Intra-Frame gewartet. Dies verursacht eine unangenehme Pause bei dem empfangenen Video.
  • Übertragungsfehler haben eine andere Ursache abhängig von dem zugrundeliegenden Netzwerk. In paketvermittelten Netzwerken sind Übertragungsfehler typischerweise Paketverluste (wegen der Stauung in den Netzwerkelementen). In leitungsvermittelten Netzwerken sind Übertragungsfehler typischerweise Bitfehler, wobei eine ,1' zur ,0' oder umgekehrt verfälscht wird, und in Funkkommunikationsnetzwerken treten Fehler eventuell in Bursts auf, was die Situation noch schwieriger macht.
  • Um einen Qualitätsverschlechterung in Bildern zu verhindern, durch Übertragungsfehler, verursacht, können erneute Übertragungen verwendet werden (wie oben beschrieben), Fehlererkennung (z.B. Cyclic Redundancy Checking (CRC) und/oder Fehlerkorrekturverfahren können angewendet werden und/oder Auswirkungen von den empfangenen fehlerhaften Daten verborgen werden. Im festen Netzwerken liefert erneuten Übertragungen eine sinnvolle Art und Weise Video-Datenströme vor Fehlern zu schützen, da Bitfehlerraten (BER) typischerweise in der Region um 10–6 sind. Jedoch machen große Umlaufverzögerungen, welche mit Funkübertragungen mit niedriger Bitrate und mittleren oder hohen Fehlerraten (z.B. 10–4 bis 10–3) verknüpft sind, es unausführbar erneute Übertragung zu benutzen, speziell bei Echtzeit-Funk-Videofon-Anwendungen. Fehlererkennungs- und Korrekturverfahren verlangen normalerweise große Overheads in Bezug auf die Daten, die übertragen werden müssen und der benötigten Speicher/Verarbeitungs-Fähigkeit. Folglich könnte für Anwendungen mit niedriger Bitrate das Verbergen von Fehlern als bevorzugte Art betrachtet werden, um Bilder zu schützen und Bilder aus den Übertragungsfehlern. Verfahren zum Verbergen von Fehlern bei Video sind typischerweise bei Übertragungsfehlern anwendbar, die durch Paketverlust und Bitverfälschung auftreten.
  • H.263 ist eine ITU-T-Empfehlung für die Videokodierung bei Kommunikation mit niedriger Bitrate, welche normalerweise Datenraten unter 64 kbps bedeuten. Die Empfehlung spezifiziert die Bitstrom-Syntax und das Dekodieren des Bitstromes. Momentan gibt es 2 Versionen von H.263. Version 1 besteht aus dem Kernalgorithmus und vier optionalen Kodierungsarten. H.263 Version 2 ist eine Erweiterung von Version 1, welche zwölf neue verhandelbare Kodierungsarten liefert.
  • Bilder werden als Helligkeits-(Luminanz, Y) und zwei Farb-Unterschieds-(Chrominanz)Komponenten (CB und CR) kodiert. Die Chrominanz-Bilder werden bei der halben Auflösung des Luminanz-Bildes entlang beider Koordinaten-Achsen abgetastet. Bilddaten werden auf einer B1ock/Block-Basis kodiert, wobei jeder Block 8 × 8 Pixel der Luminanz oder Chrominanz repräsentiert.
  • Jedes kodierte Bild, ebenso wie der entsprechend kodierte Bitstrom, ist in hierarchischer Struktur mit vier Schichten angeordnet, welche von unten nach oben lauten: Blockschicht, Makroblockschicht, Bildsegmentschicht und Bildschicht. Die Bildsegmentschicht kann entweder als Gruppe von Blöcken (GOB) oder als Scheibe angeordnet sein.
  • Blockschichtdaten bestehen aus gleichmäßig quantisierten diskreten Kosinus-Transformationskoeffizienten, welche in Zickzack-Form abgetastet werden, verarbeitet von einem Lauflängenkodierer und kodiert mit Codes variabler Länge.
  • Jeder Makroblock bezieht sich auf 16 × 16 Pixel von Chrominanz und den räumlich entsprechenden 8 × 8 Pixel von Chrominanz. Mit anderen Worten ein Makroblock besteht aus vier 8 × 8 Chrominanzblöcken und den zwei räumlich entsprechenden 8 × 8 Farbunterschiedblöcken. Jeder Inter-Makroblock ist mit Bewegungskompensationsdaten verknüpft, welche einen Bewegungsvektor umfassen, der die Position eines entsprechenden Bereiches im Referenzrahmen definiert, welcher am ehesten den Pixeln des Inter-Makroblockes gleicht. Die Intermakroblockdaten enthalten kodierte Vorhersagefehlerdaten für die Pixel des Makroblockes.
  • Normalerweise ist jedes Bild in Gruppen von Blöcken (GOBs) aufgeteilt. Eine Gruppe von Blöcken (GOB) enthält normalerweise eine Reihe von Makroblöcken. Daten für jeden GOB bestehen aus einem optionalen GOB Anfangsblock, gefolgt von Daten für die Makroblöcke innerhalb des GOBs.
  • Falls der optionale Scheiben-Struktur-Modus verwendet wird, wird jedes Bild in Scheiben anstelle von GOBs geteilt. Eine Scheibe enthält eine Anzahl von aufeinanderfolgenden Makroblöcken in Abtast-Reihenfolge. Daten für jede Scheibe bestehen aus einem Scheiben-Anfangsblock gefolgt von Daten für die Makroblöcke der Scheibe.
  • Die Bild-Schicht-Daten enthalten Parameter, die den gesamten Bildbereich beeinflussen und das Dekodieren der Bilddaten. Die kodierten Parameterdaten werden in sogenannten Bild-Anfangsblöcken angeordnet.
  • Bild und GOB(oder Scheiben-)Anfangsblöcke beginnen mit einem Synchronisierungskode. Kein anderes Kodewort oder erlaubte Kombination von Kodewörtern kann das gleiche Bitmuster wie die Synchronisierungskodes formen. Somit können die Synchronisationskodes zur Bitstromfehlererkennung und zur Re-Synchronisation nach Bitfehlern verwendet werden. Je mehr Synchronisierungskodes dem Bitstrom zugefügt werden, umso fehlerrobuster wird das System.
  • Die bekanntesten Fehler-Verbergungs bzw. Unterdrückungs-Techniken basieren auf räumlichen und zeitlichen Interpolationsverfahren. Räumliche Interpolation wird in Intra-Frames und intrakodierten Bereichen von Interframes verwendet. Räumliche Interpolation bedeutet, dass verlorene Bereiche von räumlich benachbarten Bereichen interpoliert werden. Dies kann zum Beispiel durch das Verwenden des entfernungsgewichteten Mittelwerts der begrenzenden Pixel erfolgen.
  • Fehler-Unterdrückung durch Verwenden von zeitlicher Interpolation wird häufiger verwendet bei niedriger Bitraten Videokodierung, da die Anzahl von Intra-Frames normalerweise ziemlich niedrig ist. Ein sehr einfaches zeitliches Interpolationsschema kopiert die verlorenen Bereiche von den gleichen Positionen des vorherigen Rahmens, d.h. es behandelt die verlorenen Blöcke als „nicht kodierte" Blöcke. Bei weiter fortgeschritteneren Verfahren wird Bewegungskompensation ausgeführt unter Verwendung entweder des Medians oder Mittelwerts der Bewegungsvektoren von räumlich benachbarten Blöcken. Es gab hier auch einige Vorschläge einen Grenz-Pixel-Vergleich zu verwenden, um die besten Bewegungsvektoren zu finden.
  • Bei niedrigen Auflösungen und niedrigen Bitraten ist die Korrelation zwischen räumlich benachbarten Blöcken oft ziemlich niedrig. Somit sind interpolierte Bewegungsvektoren basierend auf räumlich benachbarten Pixeldaten vielleicht weit entfernt von den ursprünglichen Werten. Das bedeutet, dass uni-direktionale Verbergungsverfahren oft die ursprünglichen Blöcke nicht wiederherstellen können. Weiterhin falls nur Bewegungsvektoren für die Verbergung verwendet werden, ohne zu versuchen die Blöcke der Vorhersage-Fehlerblöcke vorherzusagen, wird das Bild unscharf, da ein großes Ausmaß an Details verloren geht. In der Praxis bleiben bei der Verwendung der aktuellen Verbergungsverfahren Fehler oder inkorrekt unterdrückte Blöcke für eine ziemlich lange Zeit sichtbar.
  • Der Ausdruck Codec bezieht sich auf die Fähigkeit sowohl zu Kodieren als auch zu Dekodieren. Videokodierungsparameter des Algorithmus, welche das kodieren im Video-Codec steuern, sind normalerweise auf Basis der Umgebung vorgewählt, in welcher diese entworfen wurden, zu funktionieren. Das ist speziell vorteilhaft für Übertragungen über Kanäle, die fehleranfällig sind. Bei solchen Bedingungen werden die Kodierungsparameter so gewählt, um zu versuchen, dass die Auswirkung von Übertragungsfehlern auf die Bildqualität zu minimieren. Wo Fehler bei der Übertragung auftreten, produziert das resultierende dekodierte Video normalerweise zusätzliche Blockigkeit, unangenehme grüne und rosa Quadrate, zeitliches Stocken und manchmal karierte Muster.
  • Bei bestehenden Systemen sind zwei Parameter, die normalerweise in dem kodierenden Algorithmus voreingestellt sind, das Ausmaß von Intra-Aktualisierungs-Information und Häufigkeit der Startcodes. In PSTN-Netzwerken beginnt der Video-Codec die Kodierung mit einem ganzen Intra-Frame. Intra-Frame-Bilder werden kodiert ohne Bezug zu anderen Bildern, was bedeutet, dass diese jede nötige Information für deren Wiederherstellung durch den Dekoder umfassen und deshalb sind sie ein essentieller Eingangspunkt als Zugang zu einer Videosequenz. Weil der Informationsinhalt von Intra-Frames hoch ist, ist die Kompressionsrate ziemlich niedrig und deswegen braucht ein ganzer Intra-Frame eine beachtliche Anzahl von Datenbits um das Bild zu definieren. Als Resultat braucht die Übertragung eines ganzen Intra-Frames über Kanäle mit niedriger Bandbreite, sogar bei der Verwendung von kleinen Puffern, um Verzögerungen zu minimieren, lange Zeitspannen. Dies führt normalerweise dazu, dass der Dekoder das vorherige Bild auf dem Bildschirm eine Zeit lang einfriert, damit das folgende Bild aufholen kann. Somit als alternativer Ansatz, werden in aufeinanderfolgenden Bildern Anteile des Bildes erneuert (oder aufgefrischt) im Intra-Modus, anstatt das gesamte Bild auf einmal zu erneuern. Somit sagt man ist das Bild intra-aufgefrischt. Typischerweise tritt dies auf bei Makroblock-pro-Makroblock Basis von 16 × 16 Pixel auf. Falls die Raten mit der die Makroblöcke aufgefrischt werden niedrig sind, können Übertragungsfehler-Artefakte auf dem Bild erkannt werden für eine lange Zeit und werden nur verschwinden wenn der fehlerhafte Makroblock intra-aufgefrischt ist. In fehleranfälligen Netzwerken ist es deswegen notwendig die Anzahl von intra-auffrischenden Makroblöcken in jedem Rahmen oder die Rate, mit der die ganzen Intra-Rahmen gesendet werden, zu erhöhen.
  • Eine andere Technik zur Minimierung der Auswirkung von Übertragungsfehlern ist es, die Größe von betroffenen Bereichen zu reduzieren. Da der kodierte Bitstrom Kodewörter mit variabler Längenkodierung (VLC) enthält, verursacht ein Fehler im Bitstrom meistens, dass der Dekoder die Synchronisation mit VLC Kodewörtern verliert. Der Dekoder kann nur nach dem Erhalt eines Startkodes korrekt mit dem Dekodieren fortfahren. Typischerweise werden Startkodes am Anfang von kodierten Bildrahmen gefunden; jedoch die meisten Videokodierungsstandards erlauben ebenso Startkodes woanders in einem Bild einzufügen, zum Beispiel am Beginn jeder Zeile von Makroblöcken oder sogar öfter. Somit um die Größe der von den Übertragungsfehlern betroffenen Bereiche zu verringern, können Startcodes im Bild an häufigeren Stellen eingefügt werden. Die Dichte dieser Startcodes ist ein Kompromiss zwischen verringerter Bildqualität aufgrund einer gestiegenen Anzahl von Startcodes und der Bereichsgröße, welche von den Übertragungsfehlern beeinflusst wird. In fehleranfälligen Umgebungen ist es vorteilhaft etwas visuelle Bildqualität zu opfern, um den Bildbereich, der von Übertragungsfehlern betroffen ist, zu verringern.
  • Der allgemeine aktuelle Ansatz ist es, die Intra-Auffrisch-Information und Startcode-Parameter in den Algorithmus vorzuprogrammieren, welcher den Videokodierer steuert, abhängig von der erwarteten Stufe der Übertragungsfehler. Intra-Auffrisch-Daten und Startcodes sind relativ effektiv zum Abschwächen der Effekte der vorhersagbaren Übertragungsfehler, diese Ansätze haben jedoch bestimmte Schwächen. Im Prinzip stammen diese Schwächen von der Tatsache, dass tatsächliche Übertragungsfehler nicht immer vorhersagbar sind und in Situationen mit einer breiten Bandbreite zwischen dem vorhergesagten Übertragungsfehler und dem tatsächlichen Übertragungsfehler, werden die Intra-Auffrisch- und Startkode-Parameter nicht konsistent mit dem benötigten Niveau für diese Kodierungsparameter sein. Zum Beispiel, falls die Übertragungsfehler weniger als erwartet sind, dann wird das Niveau der Intra-Auffrisch-Daten oder Startcode-Wiederholung das Benötigte überschreiten, und der Überschuss wird somit redundant sein. Andererseits, wenn die Übertragungsfehler viel schlimmer als vorhergesagt sind, dann wird die Intra-Auffrisch- und Startcode-Information ungenügend sein und sich so weit ausbreiten, sowohl zeitlich als auch räumlich, in den dekodierten Bildern, so dass das Resultat eine schlechte Bildqualität sein wird.
  • Bei den bekannten H.324 Multimedia Endgeräten ist es möglich verschiedene Kommandos von einem empfangenden Dekodierer an einen übertragenden Kodierer über das H.245 Steuerprotokoll. Ein Kommando bzw. Befehl ist videoFastUpdatePicture, mit welchem der Dekodierer anfordert, dass der Kodierer in den schnellen Update Modus eintritt, bei der frühesten Möglichkeit, und das gesamte Bild zu erneuern. Das Protokoll definiert nicht wie der Kodierer das Erneuern ausführen soll. Das Protokoll definiert auch das Kommando videoFastUpdateGOB, welches den Kodierer auffordert, in den schnellen Update Modus einzutreten, so bald wie möglich, und den gesamten GOB zu erneuern; und videoFastUpdateMB, welches den Kodierer auffordert, in den schnellen Update Modus, so bald wie möglich, einzutreten und den gesamten Makroblock zu erneuern. Somit kann der Dekoder Bild, GOB oder Makroblock identifizieren, die zu erneuern sind.
  • In einer einfachen Implementierung wird ein Multimedia-Endgerät, welches H.324 entspricht, einen VideoFastUpdatePicture-Befehl- bzw. Kommando, jedes Mal senden, wenn ein Fehler erkannt wird. Ähnlich wird ein videoFastUpdateGOB-Kommando für jede verfälschte GOB gesendet.
  • Nach H.245 benötigt das anfordernde Endgerät eine Bestätigung vom Kodierer für jede gesendete Nachricht, und wenn die Bestätigung nicht gesendet wird, wird die Nachricht noch einmal übertragen. Das bedeutet, dass der Steuerkanal mit wiederholten Kommandos sehr überfüllt werden kann.
  • In H.263 Anhang 1 wird ein Rückkoppelungs-Mechanismus mit dem Namen „Error Tracking" vorgestellt, in dem das H.245-Protokoll verwendet wird, um Angaben zu übertragen, darüber welche Makroblöcke eines Rahmens als verfälscht empfangen werden. Der Videokodierer beobachtet die vorhergesagten Fehler in den vergangenen Z Rahmen. Basierend auf den H.245-Angaben und den Vorhersage-Fehler-Zählern kann der Videokodierer entscheiden, welcher Makroblock dieser im Intra-Modus erneuern wird.
  • Ein drittes bekanntes Rückkoppelungs-Videoübertragungssystem ist in H.-263 Anhang N definiert. Dies ist bekannt als Reference Picture Selection Modus. Dieses definiert Arten für einen Videodekodierer anzugeben, welche Bildsegmente (GOB oder Scheiben) verfälscht wurden und, basierend auf dieser Information, kann der Videokodierer die verfälschten Teile kodieren, unter Verwendung älterer Rahmen anstelle von dem neuesten. Der Dekodierer sendet eine negative Bestätigung (NACK) für jedes verfälschte Bildelement. Somit, falls ein ganzes Bild verfälscht ist, wird ein NACK für jedes Segment verfälscht. Alternativ kann der Dekodierer positive Rückkoppelung senden, d.h. welche Segmente unverfälscht empfangen wurden und der Kodierer kann nur diese heilen Bereiche zur Prognose verwenden.
  • US 5,528,284 beschreibt ein Verfahren zur Videodekodierung, in dem in Antwort auf einen Fehler in den empfangenen Daten für einen Videorahmen, wird ein (INTRA) Auffrischen eines ganzen Videorahmens (nicht nur ein Anteil) nur angefordert, falls die angeforderten Auffrisch-Daten vor der Ankunft eines geplanten (nicht speziell angeforderten) (INTRA) Auffrischens eintreffen. Dies verhindert dass unnötige (INTRA) Auffrisch-Anforderungen ausgegeben werden. Falls entschieden wird, eine Auffrisch-Anforderung für den gesamten Videorahmen auszugeben, werden alle kodierten Videodaten für den Rahmen, die bereits am Dekodierer eingereiht sind, abgebrochen, wie alle nachfolgend empfangenen Daten, bis die angeforderten (INTRA) Auffrisch-Daten empfangen werden. Während dieser Spanne, wird der Dekodierprozess eingefroren. Es gibt keine Messung der verstrichenen Zeit von der Übertragung von einer ersten Erneuerungs-Anforderungs-Nachricht. Dieses Dokument lehrt nicht oder schlägt nicht vor, dass eine weitere Erneuerungs-Anforderungs-Nachricht von einem Videodekodierer an einen Videodekoder übertragen wird, nur falls eine vorher festgesetzte Zeitspanne abgelaufen ist, seit eine vorherige Erneuerungs-Anforderungs-Nachricht für einen entsprechenden Teil der Videodaten von dem Videodekoder zu dem übertragendem Videodekoder übertragen wurde, um dadurch mehrfache Übertragungen von Erneuerungs-Anforderungs-Nachrichten für denselben fehlerhaften Anteil einzuschränken.
  • Ein Verfahren zur Videodekodierung, umfassend
    Empfangen von codierten Videodaten durch einen Videodekodierer,
    Dekodieren der Videodaten, um dekodierte Videodaten zu bilden, und
    Ermitteln, ob die dekodierten Videodaten einen Fehler enthalten und, wenn ermittelt wird, dass ein Fehler vorhanden ist, Senden einer Aktualisierungsanforderungsnachricht von dem Videodekodierer an einen sendenden Videokodierer, welche eine Aktualisierung von mindestens einem entsprechenden Teil der Videodaten anfordert, der den Fehler enthält, Ermitteln, ob nachfolgende dekodierte Daten für einen entsprechenden Teil der Videodaten einen Fehler enthalten, gekennzeichnet durch Ermitteln des Ablaufs einer vorbestimmten Zeitspanne seit der Übertragung der letzten Aktualisierungsanforderungsnachricht, und nur dann Übertragen einer weiteren Aktualisierungsanforderungsnachricht für den nachfolgenden entsprechenden Teil der Videodaten, wenn die vorbestimmte Zeitspanne abgelaufen ist, um damit eine mehrfache Übertragung von Aktualisierungsanforderungsnachrichten für den gleichen fehlerhaften Teil einzuschränken.
  • Die Aktualisierungsanforderungsnachrichten können die Aktualisierung eines vollständigen Bilds der Videosequenz anfordern. Zusätzlich oder alternativ können die Aktualisierungsanforderungsnachrichten die Aktualisierung eines Ausschnitts eines Bilds der Videosequenz anfordern.
  • Vorzugsweise ist die vorbestimmte Zeitspanne proportional zu der Umlaufverzögerung zwischen dem Videodekodierer und dem Videokodierer. Vorteilhafterweise ist die vorbestimmte Zeitspanne doppelt so lange wie die Umlaufverzögerung.
  • Vorzugsweise, umfassend ein Vergleichen des Ausmaßes an Änderung in den nachfolgenden Videodaten mit vorherigen Bilddaten für einen entsprechenden Bereich, und wobei die weitere Aktualisierungsanforderungsnachricht gesendet wird, wenn das Ausmaß an Änderung eine vorbestimmte Schwelle überschreitet, und die vorbestimmte Zeitspanne abgelaufen ist.
  • Vorzugsweise wird die weitere Aktualisierungsanforderungsnachricht gesendet, wenn das Ausmaß an Bewegung in einem vorherigen Bild eine vorbestimmte Schwelle überschreitet und die vorbestimmte Zeitspanne abgelaufen ist.
  • Vorzugsweise, wird ein Bereich eines Bilds, der einen Fehler enthält, auf ein Ermitteln eines Fehlers in den dekodierten Videodaten hin verborgen.
  • Vorzugsweise wird ein Bereich eines Bildes, der einen Fehler enthält, verborgen, auf die Bestimmung eines Fehlers in den dekodierten Videodaten hin, und wenn ermittelt wird, dass ein Fehler vorhanden ist, so dass ein Bild nicht dekodiert werden kann, werden alle Teile des Bildes als verborgen gekennzeichnet und das nächste Bild wird dekodiert.
  • Gemäß einem weiteren Aspekt der Erfindung, liefert die Erfindung eine Videodekodiervorrichtung, umfassend
    Mittel zum Empfangen von codierten Videodaten;
    Mittel zum Dekodieren der Videodaten, um dekodierte Videodaten zu bilden, Mittel zum Ermitteln, ob die dekodierten Videodaten einen Fehler enthalten, Mittel zum Senden einer Aktualisierungsanforderungsnachricht an einen sendenden Videokodierer, welche eine Aktualisierung für mindestens einen entsprechenden Teil der Videodaten anfordert, der den Fehler enthält, und Mittel zum Ermitteln, ob nachfolgende dekodierte Daten für einen entsprechenden Teil der Videodaten einen Fehler enthalten, und dadurch gekennzeichnet, dass sie Ermittlungsmittel umfasst, um das Ablaufen einer vorbestimmten Zeitspanne seit der Übertragung der vorherigen Aktualisierungsanforderungsnachricht zu ermitteln, und wobei die Dekodiervorrichtung eingerichtet ist, eine weitere Aktualisierungsanforderungsnachricht für den nachfolgenden entsprechenden Teil der Videodaten nur dann zu übertragen, wenn die vorbestimmte Zeitspanne abgelaufen ist, wodurch ein mehrfaches Übertragen einer Aktualisierungsanforderungsnachricht für den gleichen fehlerhaften Teil eingeschränkt wird.
  • Vorzugsweise umfasst die Vorrichtung Mittel zum Vergleichen des Ausmaßes an Änderung in den dekodierten Videodaten mit vorherigen Bilddaten für einen entsprechenden Bereich, und wobei der Dekodierer eingerichtet ist, die weitere Aktualisierungsanforderungsnachricht zu senden, wenn das Ausmaß an Änderung eine vorbestimmte Schwelle überschreitet und die vorbestimmte Zeitspanne abgelaufen ist.
  • Vorteilhafterweise wird die weitere Aktualisierungsanforderungsnachricht gesendet, wenn das Ausmaß an Bewegung in einem vorherigen Bild eine vorbestimmte Schwelle überschreitet und die vorbestimmte Zeitspanne abgelaufen ist.
  • Die Erfindung erstreckt sich auch auf eine Mobilfunkvorrichtung.
  • Die Erfindung wird nun beschrieben, in ausschließlich beispielhafter Weise, mit Bezug auf die beigefügt Zeichnung, in der
  • 1 ein Multimedia Mobil-Kommunikationssystem zeigt;
  • 2 ein Beispiel der Multimedia-Komponenten eines Multimedia-Endgeräts zeigt;
  • 3 ein Beispiel eines Video Codecs zeigt;
  • 4 ein Flussdiagramm ist, welches den Betrieb eines Videodekoders zeigt, gemäß einer ersten Ausführungsform der Erfindung;
  • 5 ein Flussdiagramm ist, welches den Betrieb auf der Bildebene eines Videodekoders zeigt, gemäß der Erfindung;
  • 6 ein Flussdiagramm ist, welches den Betrieb auf der GOB-Ebene eines Videodekoders zeigt, gemäß der Erfindung;
  • 7 ein Flussdiagramm ist, welches einen Makroblock-Dekodierungs-Algorithmus zeigt, welcher von einem Videodekoder ausgeführt wird, gemäß der Erfindung;
  • 8 ein Flussdiagramm ist, welches den Betrieb auf der Bildebene einer weiteren Ausführungsform eines Videodekoders gemäß der Erfindung zeigt;
  • 9 ein Flussdiagramm ist, welches den Betrieb auf der Bildebene eines Videokodierers gemäß der Erfindung zeigt; und
  • 10 ein Flussdiagramm ist, welches den Betrieb auf der GOB-Ebene eines Videokodierers gemäß der Erfindung zeigt.
  • Eine weitere Beschreibung der Erfindung wird in Bezug auf die H.324 Empfehlungen gemacht werden. Es ist jedoch nicht die Absicht, die Anmeldung der Erfindung darauf und ihre abhängigen Protokolle zu beschränken.
  • 1 zeigt ein typisches Multimedia-Mobilkommunikationssystem. Ein erstes Multimedia Mobil-Endgerät 1 kommuniziert mit einem zweiten Multimedia Mobil-Endgerät 2 über eine Funkverbindung 3 mit einem Mobilkommunikationsnetzwerk 4. Steuerdaten werden zwischen den beiden Endgeräten gesendet, wie auch die Multimediadaten.
  • 2 zeigt die typischen Multimediakomponenten eines Endgeräts 1, welches H.324 entspricht. Das Endgerät umfasst ein Video Codec 10 entsprechend H.263, ein Audio Codec entsprechend G.723, einen Daten-Protokollmanager 30 gemäß T.120, einen Steuermanager 40 entsprechend H.245, eine Multiplexer/Demultiplexer 50 entsprechend H.223 und ein Modem 60 (falls benötigt). Der Video Codec 10 empfängt Signale von einer Video-Aufnahme-Vorrichtung des Endgeräts (nicht gezeigt) (z.B. eine Kamera) zur Kodierung und empfängt Signale von einem entfernten Endgerät 2 zum Dekodieren und Anzeigen durch das Endgerät 1 auf einem Display 70. Der Audio Codec 20 empfängt Signale zum Kodieren von dem Mikrofon (nicht gezeigt) des Endgeräts 1 und empfängt Signale von einem entfernten Endgerät 2 zum Dekodieren und Wiedergeben durch einen Lautsprecher (nicht gezeigt) des Endgeräts 1.
  • Der Steuermanager 40 steuert den Betrieb des Video Codec 10, des Audio Codec 20 und des Daten-Protokoll-Managers 30. Jedoch, da die Erfindung sich auf den Betrieb des Video Codecs 10 bezieht, wird keine weitere Diskussion des Audio Codecs 20 und Protokollmanager 30 bereitgestellt.
  • 3 zeigt ein Beispiel eines Video Codecs 10 gemäß der Erfindung. Der Video Codec umfasst einen Kodierteil 100 und einen Dekodierteil 200. Der Kodierteil 100 umfasst einen Eingang 101 zum Empfangen eines Videosignals von einer Kamera oder Videoquelle (nicht gezeigt) von Endgerät 1. Ein Schalter 102 schaltet den Kodierer zwischen dem Intra-Modus der Kodierung und dem Inter-Modus.
  • Im Intra-Modus wird das Videosignal vom Eingang 101 nach DCT Koeffizienten transformiert durch einen DCT Umwandler 103. Die DCT Koeffizienten werden dann an einen Quantisierer 104 weitergeleitet, der die Koeffizienten quantisiert. Sowohl der Schalter 102 als auch der Quantisierer 104 werden von einem Kodier-Steuermanager 105 des Video Codecs gesteuert, der auch Rückkoppelungs-Steuerung vom empfangenden Endgerät 2 empfängt, mittels des H.245 Steuerungsmanagers 40.
  • Im Intermodus wird der Schalter 102 derart betrieben, dass er von einem Subtraktor 106 die Differenz zwischen dem Signal von dem Eingang 101 und einem vorherigen Bild annimmt, welches in einem Bildspeicher 107 gespeichert ist. Die Differenzdatenausgabe von dem Subtraktor 106 entspricht dem Vorhersagefehler zwischen dem gegenwärtigen Bild und dem vorherigen Bild, welches in dem Bildspeicher 107 gespeichert ist. Die Daten in dem Bildspeicher 107 werden erzeugt durch das Weiterleiten der Datenausgabe durch den Quantisierer durch einen inversen Quantisierer 108 und Anwenden einer inversen DCT Transformation 109 auf die invers quantisierten Daten. Die resultierenden Daten werden den Inhalten des Bildspeichers 107 durch den Addierer 110 hinzugefügt. Ein Bewegungsschätzer 111 kann Bewegungskompensationsdaten aus den Daten im Bildspeicher 107 auf konventionelle Art erzeugen.
  • Der Video Codec gibt die quantisierten DCT Koeffizienten 112a aus, der Quantisierungsindex 112b (d.h. die Details der verwendeten Quantisierung), ein Intra/Inter-Flag 112c, um den Modus der angewendeten Kodierung (I oder P/B) anzuzeigen, eine Übertragungsflag 112d, um die Anzahl von Rahmen, die kodiert werden, und der bzw. die Bewegungsvektoren 112e für das zu kodierende Bild anzuzeigen. Diese werden durch den Multiplexer 50 mit anderen Multimediasignalen zusammen gemultiplext.
  • Das Dekoderteil 200 des Video Codecs 10 umfasst einen inversen Quantisierer 120, einen inversen DCT Umwandler 121, einen Bewegungskompensator 122, einen Bildspeicher 123 und eine Steuerung bzw. einen Kontroller 124. Der Kontroller 124 empfängt Video Codec-Steuersignale, welche durch den Demultiplexer 50 aus dem kodierten Multimediastrom demultiplext werden. In der Praxis können der Kontroller 105 des Kodierers und der Kontroller 124 des Dekodierers derselbe Prozessor sein.
  • Wenn das Endgerät 1 angesehen wird, als dass es kodierte Videodaten von dem Endgerät 2 empfängt, wird der Betrieb von Video Codec 10 jetzt mit Bezug auf zuerst seine dekodierende Rolle beschrieben. Das Endgerät 1 empfängt ein Multimediasignal von dem übertragenden Endgerät 2. Der Demultiplexer 50 demultiplext das Multimediasignal und leitet die Videodaten zu dem Video Codec 10 und die H.245 Steuerdaten zu der H.245-Steuerung. Der Dekoder 200 des Video Codecs dekodiert die kodierten Videodaten durch inverse Quantisierung, inverse DCT Transformation und Bewegungskomenpensation der Daten. Die dekodierten Videodaten werden dann für eine Wiedergabe auf einem Display bzw. einer Anzeige 70 des empfangenden Endgeräts 1 ausgegeben. Der Kontroller 124 des Dekoders überprüft die Integrität der empfangenen Daten und könnte, falls ein Fehler erkannt wird, ein Erneuern bzw. Aktualisieren der verfälschten Daten von dem Kodierer des übertragenden Endgeräts 2 auf eine unten beschriebene Art anfordern.
  • Fehler in Videodaten treten eventuell auf der Bildebene, der GOB-Ebene oder der Makroblockebene auf. Fehlerüberprüfung kann auf jeder Ebene ausgeführt werden.
  • Ein Fehler auf der Bildebene bedeutet, dass das Bild nicht dekodiert werden kann und total verloren ist oder so verfälscht ist, dass es praktisch verloren ist. Ein Fehler auf der Bildebene kann auf eine oder mehrere Arten erkannt werden. 4 zeigt ein Flussdiagramm, welches ein Verfahren zur Erzeugung von Aktualisierungsnachrichten nach einer ersten Ausführungsform der Erfindung darstellt. Zuerst (300) beginnt der Dekoder ein empfangenes Bild zu dekodieren. Wenn der Bildanfangsblock verfälscht ist (302), oder ein unwahrscheinlicher bzw. unerwarteter Parameter gefunden wird, (zum Beispiel ein Inter-Flag ist gesetzt, wenn die Kodierungsart intra ist) wird das Bild als verloren erachtet.
  • Alternativ kann ein Fehler erfasst werden, durch Ermitteln der Art der in dem Bild verwendeten Kodierung, und falls die Kodierungsart intra war und mehr als Q Segmente als verfälscht bestimmt werden (304), wird das Bild als verloren erachtet. Die Segmente könnten GOBs, Scheiben oder Makroblöcke umfassen. Zum Beispiel im QCIF-Bildformat gibt es 9 GOBS pro Bild. Somit könnte ein Kriterium gesetzt werden, dass wenn beispielsweise mehr als 4 GOBs eines Bildes verfälscht sind, das Bild als verloren erachtet wird. Ob ein GOB verfälscht ist oder nicht, kann durch CRC festgestellt werden.
  • Alternativ wenn die zeitliche Fortpflanzung von Fehlern aufgetreten ist, über mehr als F Bilder (z.B. ein MB wurde nicht erneuert innerhalb einer festen Zeit X) und die verborgene Bereich größer geworden ist als eine bestimmte Schwelle, ohne erneuert worden zu sein (306), wird das das Bild als verloren erachtet. Um dies zu erreichen, beobachtet der Dekoder den Status (z.B. verborgen bzw. unterdrückt/inter/intra) des Makroblocks des Bildes während dem Dekodieren und erachtet das Bild als verloren, wenn mehr als eine vorherbestimmte Anzahl von Makroblöcken als verborgen gekennzeichnet sind.
  • Als Alternative wenn das gegenwärtige Bild N als verloren erachtet wird, ermittelt (307) der Kontroller 124, ob der Rahmen vor dem gegenwärtigen Rahmen (N – 1) viel Bewegung enthält oder viele Vorhersagefehler. Dies kann während dem Dekodieren des nächsten Bildes erreicht werden (N + 1) durch das Sammeln der Bewegungsvektoren für das nächste Bild (N + 1) und Berechnen der Versetzung repräsentiert für das gesamte Bild. Dies kann durch Berechnen der durchschnittlichen Bewegung repräsentiert durch die Bewegungsvektoren oder Zählen der Anzahl von Bewegungsvektoren, die mit dem Bild verknüpft sind, erfolgen. Wenn ermittelt wird, dass der Rahmen nach dem gegenwärtigen nicht viel Bewegung oder Vorhersagefehler enthält, wird das nächste Bild dekodiert (300). Anderenfalls ist es wahrscheinlich, dass das derzeitige Bild erforderlich ist, um ein annehmbares Bild zu erzeugen, d.h. das nächste Bild ist inter-kodiert und muss aus dem vorhergehenden korrekt dekodierten Bild vorhergesagt werden.
  • Wenn ein Fehler auf der Bildebene gefunden wird, ermittelt (308) der Kontroller ob der Bildinhalt sich stark geändert hat seit dem letzten Erneuern des Bildes. Dies kann erreicht werden durch das Erzeugen von Histogrammen der Chrominanz und/oder Luminanz-Pixelwerte des gegenwärtigen Rahmens und eines vorherigen erfolgreich dekodierten Bildes und Vergleichen der Histogramme. Als Alternative können die Gradientensummen der zwei Bilder verglichen werden. Die Gradientensumme repräsentiert für jedes Bild die Summe der Differenzen zwischen Luminanzwerten benachbarter Pixel in der x und y Richtung. Falls das vorliegende Bild als stark geändert erachtet wird, dann ermittelt (312) der Kontroller 124, ob mehr als eine Spanne T abgelaufen ist seitdem ein früherere Bild-Aktualisierung gesendet wurde. Wenn ja wird eine videoFastUpdatePicture-Nachricht an das übertragende Endgerät 2 gesendet (314). Der Dekoder fährt dann fort das nächste Bild (300) zu dekodieren ohne auf die Antwort vom Kodierer auf das Aktualisierungskommando zu warten.
  • T ist proportional zu der Umlaufverzögerung des Kommunikationsweges zwischen den beiden Kommunikationsendgeräten 1, 2 welches durch den H.245 Protokollmanager 40 gemessen werden kann. Ein typischer Wert für T ist zweimal die Umlaufverzögerung. Der Wert von T wird bestimmt, um die Umlaufverzögerung zwischen dem empfangenden Dekoder und dem übertragenden Dekoder zu ermöglichen und der Zeit, die von dem übertragenden Kodierer benötigt wird, um auf die Aktualisierungskommandos zu antworten.
  • Es ist nicht notwendig, alle Schritte 302, 304, 306, und 307 auszuführen: jeder kann alleine verwendet werden oder andere Verfahren der Fehlererkennung können verwendet werden.
  • 5 ist ein Flussdiagramm, welches den Betrieb auf der Bildebene eines Dekoders gemäß einer zweiten Ausführungsform der Erfindung zeigt. Zuerst (400) wird das nächste Bild dekodiert. Wenn der Dekoder das Bild (402) nicht dekodieren kann, hat das Bild den Zustand „verloren". Der Dekoder wird diese Entscheidung zurückgeben, wenn der Bildanfangsblock unwiederbringlich ist. In diesem Fall inspiziert der Dekoderkontroller 124 das vorherige empfangene und erfolgreich dekodierte Bild (N – m) und ermittelt die Bewegungsmenge in dem vorherigen Bild (404). Dies kann erreicht werden zum Beispiel durch Berechnen des gesamten Ausmaßes von Versetzung, welche durch die Bewegungsvektoren repräsentiert wird, die mit den MBs des vorherigen erfolgreich dekodierten Bildes (N – m) verknüpft sind. Falls diese Bewegung weniger als oder gleich einer vorbestimmten Schwelle D ist, wird ein „Check Next Picture" Flag auf 1 gesetzt (406) und das nächste Bild (N + 1) wird dekodiert (400). Wenn die Bewegung größer als eine vorbestimmte Schwelle D ist, dann wird das Bild für verfälscht gehalten und alle MBs werden als verfälscht markiert (408). Dies wird erreicht durch das Setzen des Status aller Makroblöcke in dem Bild auf „verborgen". Der Kontroller 124 ermittelt dann (410) ob mehr als eine Spanne T1 abgelaufen ist, seit ein vorheriges Bildaktualisierungskommando gesendet wurde. Wenn ja, wird eine videoFastUpdatePicture-Nachricht an den übertragenenden Kodierer gesendet (412). In allen Fällen wird der „Check Next Picture" Flag auf 0 gesetzt (414) und das nächste Bild wird dekodiert (400).
  • T1 kann proportional zur Umlaufverzögerung des Kommunikationsweges zwischen den beiden Kommunikationsendgeräten 1, 2, sein, welche durch den H.245 Protokollmanager 40 gemessen werden kann. Ein angemessener Wert für T1 ist zweimal die Umlaufverzögerung.
  • Wenn es der Dekoder es geschafft hat, die Bildanfangsblockdaten erfolgreich zu dekodieren (402), werden die GOBs des Bildes dekodiert (500) (siehe 6). Gemäß H.263 ist die Einbeziehung eines GOB-Anfangsblocks optional. Wenn er weggelassen wird, führt der Dekodierer keine Integritätsüberprüfung auf der GOB-Ebene durch und dekodiert sofort den Anfangsblock und Daten der MBs der GOB.
  • Wie in 7 gezeigt, während jeder GOB eines Bildes dekodiert wird, wird der Status jedes MBs des GOB ermittelt (602). Wenn ein Makroblock verfälscht oder verloren ist, wird die MB verborgen unter Verwendung bekannter Fehlerverbergungs- bzw. Unterdrückungstechniken und der Status des MB wird auf den Status „verborgen" (604) gesetzt. Für andere MBs ermittelt der Dekoder die Art von MB aus dem Makroblockanfangsblock. Für intra-kodierte MBs wird der Status auf „aktualisieren" gesetzt (606). Der Kontroller 124 behält eine Aufzeichnung (608) des Status der MBs für jeden GOB und jedes Bild. Für inter-kodierte MBs wird der Status von dem entsprechenden MB des vorherigen Rahmens kopiert, welcher dekodiert wurde.
  • Zurück zu 6, wenn alle MBs eines GOB dekodiert wurden (soweit der Dekoder das konnte), die Anzahl von verborgenen MBs im GOB, die dekodiert wird, wird ermittelt durch Untersuchen der MB Status-Aufzeichnungen (608/502). Wenn die Anzahl von verborgenen MBs weniger als eine vorher festgesetzte Schwelle M (503) ist, dann wird die nächste GOB dekodiert (501). Falls jedoch die Anzahl von verborgenen MBs größer als ein vorher festgelegte Schwelle M (503) ist, dann überprüft (504) der Kontroller 124 ob eine GOB-Aktualisierung vorher durch den Dekoder angewiesen worden war. Falls ein Aktualisierungs-Kommando vorher gesendet worden war, ermittelt (505) der Kontroller 124, ob mehr als eine Spanne T2 abgelaufen ist seit die vorherige GOB-Aktualisierung gesendet wurde. Wenn ja wird ein videoFastUpdateGOB-Kommando gesendet (506). Wenn nicht, wird der nächste GOB dekodiert (501). T2 ist auch proportional zur Umlaufverzögerung des Kommunikationspfades zwischen den beiden Kommunikationsendgeräten 1, 2, welche von dem H.245 Protokollmanager 40 gemessen werden kann. Ein typischer Wert für T2 ist zweimal die Umlaufverzögerung.
  • Wenn keine GOB-Aktualisierung gesendet worden war (504), überprüft der Kontroller, ob der GOB verfälscht ist (507). Dies kann durch CRC bestimmt werden, Bitfehlerrate oder durch Untersuchen des GOB-Anfangsblocks (falls vorhanden). Wenn der GOB als nicht verfälscht erachtet wird, wird der nächste GOB dekodiert (501). Wenn der GOB als verfälscht erachtet wird, werden die benachbarten (z.B. vorherige GOBs) untersucht (508), um zu sehen, ob diese viele intra-kodierte MBs enthielten. Wenn ja, ist es wahrscheinlich, dass der vorliegende verfälschte GOB auch viele intra-kodierte MBs enthielt. Der Kontroller 124 ermittelt (505) dann, ob mehr als eine Spanne T2 abgelaufen ist seitdem die letzte GOB-Aktualisierung gesendet wurde. Falls ja, wird ein videoFastUpdateGOB gesendet (506). Wenn nicht, wir der nächste GOB dekodiert (501). Wenn es festgestellt wird, dass die benachbarten GOBs nicht viele intra-kodierte MBs enthielten, dann wird die Anzahl von Bits in dem gegenwärtigen GOB gezählt (509) und mit einer Schwelle B verglichen. Typischerweise besteht ein QCIF GOB aus ungefähr 200 Bits und einer typischer Wert für B kann 500 Bits sein. Wenn die Anzahl der Bits im GOB die Schwelle B überschreitet, dann ermittelt (505) der Kontroller 124, ob mehr als eine Zeitspanne T2 abgelaufen ist seit die vorherige GOB-Aktualisierung gesendet wurde. Wenn ja, wird ein videoFastUpdateGOB gesendet (506). Wenn nicht, wird der nächste GOB dekodiert (501). Falls die Anzahl von Bits eine Schwelle B nicht überschreitet, wird der nächste GOB dekodiert (501). Dieser Prozess geht weiter bis der letzte MB des letzten GOB eines Bildes dekodiert wurde (510), an welchem Punkt der Dekodierungsprozess bei Schritt 420 von 5 weitergeht.
  • Somit können einige GOB-Aktualisierungs-Kommandos für ein einziges Bild gesendet werden. Ein separater Zeitnehmer wird für jeden GOB des Bildes aufrechterhalten und ein GOB-Aktualisierungs-Kommando ist nur mehr als Zeit T2, die abgelaufen ist seit ein GOB-Aktualisierungs-Kommando für diesen GOB eines Bildes gesendet wurde. Zum Beispiel nach dem Dekodieren von Bild N, wurden beispielsweise Aktualisierungskommandos für GOBs 1 und 5 gesendet. Bei der Dekodierung von Bild N + 1, sogar wenn GOBs 1 und 5 als verfälscht befunden wurden, werden GOB-Aktualisierungs-Kommandos für diese GOBs nicht gesendet, weil seit einem Aktualisierungskommando bezüglich dieser GOBs, das vorher gesendet wurde, nicht die Spanne T2 abgelaufen ist.
  • Wenn einmal alle die GOBs eines Bildes dekodiert wurden (500), wird die gesamte Anzahl von verborgenen MBs aus den MB Status Aufzeichnungen (608) festgestellt (420). Wenn die Anzahl von verborgenen MBs als größer als eine Schwelle C festgestellt (422) wurde, dann ermittelt (410) der Kontroller 124, ob mehr als eine Spanne T1 abgelaufen ist, seit eine vorherige Bildaktualisierung gesendet wurde. Wenn ja, wird eine videoFastUpdatePicture-Nachricht an den übertragenden Kodierer gesendet (412) und das nächste Bild wird dekodiert (400). In beiden Fällen wird die „Check Next Picture Flag" auf 0 gesetzt (414).
  • Wenn von der Anzahl von unterdrückten MBs in dem Bild festgestellt wird (422), dass sie weniger als C aber größer als Null ist, dann ermittelt (424) der Kontroller 124 ob sich das gegenwärtige Bild wesentlich geändert hat. Dies kann erreicht werden in einer konventionellen Art z.B. durch Vergleichen der Histogramme des gegenwärtigen Rahmens und eines vorherigen Rahmens, welcher erfolgreich dekodiert wurde und/oder Vergleichen der Gradientensummen der beiden Rahmen. Wenn das gegenwärtige Bild als wesentlich geändert eingeschätzt wird, dann ermittelt (410) der Kontroller 124 ob mehr als eine Spanne T1 verstarichen ist, seitdem eine vorherige Bildaktualisierung gesendet wurde. Wenn ja, wird eine vidoeFastUpdatePicture-Nachricht an das zu übertragende Endgerät 2 gesendet (412). Wenn das gegenwärtige Bild nicht als wesentlich geändert eingeschätzt wird, dann wird „Check Next Picture Flag" auf 0 gesetzt (414) und das nächste Bild wird dekodiert (400).
  • Wenn die Anzahl an verborgenen MBs im Bild als Null ermittelt (422) wird, wird die „Check Next Picture Flag" geprüft (426). Wenn die Flag nicht gesetzt ist (d.h. = 0), wird das nächste Bild dekodiert (400). Wenn jedoch die Flag gesetzt ist (d.h. = 1), bedeutet dies, dass das vorherige Bild (N – 1) verloren wurde. Das gegenwärtige Bild (N) wird somit mit dem davor erfolgreich dekodierten Bild (N – n) (wobei n ein Integer ist und größer als 1) verglichen und die Änderung im Bildinhalt wird ermittelt (424) wie vorher beschrieben.
  • Gemäß der oben beschriebenen Ausführungsform, wird ein GOB-Aktualisierungs-Kommando für einen GOB gesendet, sofern nicht bereits ein Aktualisierungs-Kommando für den betreffenden GOB innerhalb der Zeit T2 gesendet wurde. In ähnlicher Weise wird ein Bild-Aktualisierungs-Kommando für jedes Bild gesendet, sofern nicht bereits ein solches Aktualisierungs-Kommando bereits innerhalb der Zeit T1 gesendet wurde. Somit ist es möglich sowohl GOB-Aktualisierungs-Kommando(s) und ein Bild-Aktualisierungs-Kommando für das gleiche Bild zu senden. Nach einer anderen Ausführungsform der Erfindung werden die Aktualisierungs-Kommando(s) erzeugt, jedoch nicht gesendet bis das gesamte Bild dekodiert wurde (soweit dies möglich ist). Wenn entschieden wird, ein Bild-Aktualisierungs-Kommando für das gegenwärtige Bild zu senden, das dekodiert wird, dann werden alle GOB- Aktualisierungs-Kommando(s) für das gleiche Bild nicht gesendet. Somit wird bei Schritt 506 ein GOB-Aktualisierungs-Kommando erzeugt, aber nicht gesendet, und wie in 8 gezeigt, ermittelt der Kontroller 124 bei Schritt 428, ob ein Bild-Aktualisierungs-Kommando für das vorliegende Bild, gesendet wurde, welches dekodiert wird. Wenn ja, werden die GOB-Aktualisierungs-Kommando(s) für das gegenwärtige Bild ignoriert. Wenn nicht, werden die GOB-Aktualisierungs-Kommando(s) für das gegenwärtige Bild gesendet (430). Dekodieren des nächsten Bildes wird dann ausgeführt (400).
  • Der Betrieb des Kodierteiles des Video Codecs des übertragenden Endgeräts 2 wird jetzt beschrieben. Das erste Bild wird kodiert, wie ein Intra-Frame, wobei die folgenden Rahmen als Intra-Frames kodiert werden bis entweder ein Szenenwechsel bewirkt, dass ein Intra-Frame kodiert wird oder eine gezwungene Aktualisierung gestartet wird, wie gesetzt durch die vorbestimmten Parameter des Kodierers oder eine Aktualisierungs-Nachricht von dem empfangenden Endgerät 1 empfangen wird.
  • Wenn das übertragende Endgerät 2 eine Aktualisierungs-Nachricht empfängt, antwortet der Kodierteil durch Aktualisierung des Teiles des Bildes, welcher in der Nachricht von dem empfangenden Endgerät 1 angefordert wurde. Somit, wenn das empfangende Endgerät 1 ein videoFastUpdatePicture-Kommando gesendet hat, aktualisiert der Kodierer des übertragenden Endgeräts 2 das gesamte Bild. Wenn das empfangende Endgerät 1 ein videoFastUpdatePicture-Kommando gesendet hat, aktualisiert der Kodierer des übertragenden Endgeräts 2 das gesamte GOB.
  • 9 ist ein Flussdiagramm, welches zeigt wie ein Kodierer gemäß der Erfindung auf ein Bild Aktualisierungs(videoFastUpdatePicture)Kommando reagiert. Das übertragende Endgerät 2 überwacht (800) Codec-Rückkoppelungs-Nachrichten (z.B. gesendet über einen H.245-Steuerkanal) von dem empfangenden Endgerät 1, durch den Steuerungsmanager 40 und den Kontroller 105 des Video Codecs. Wenn ein Aktualisierungs-Kommando empfangen wird (802) von dem Kodierer 100, überprüft (804) der Kontroller 105, ob dies innerhalb von 5 Sekunden (z.B. 5 Sekunden) vom Start der Übertragung geschieht. Wenn ja, beauftragt (806) der Kontroller den Kodierer das gesamte Bild zu erneuern in dem Intra-kodierten Format. Dies bringt den Schalter 102 dazu, den Subtrahierer 106 auszuschalten und den Kodierer 100 das gesamte nächste Bild des hereinkommenden Videos von dem Eingang 101 als ein Intra-Frame zu kodieren.
  • Wenn mehr als S Sekunden abgelaufen sind, sobald ein Bild-Aktualisierungs-Kommando empfangen wird, ermittelt (808) der Kontroller 105 ob das übertragende Endgerät 2 mehr als R Aktualisierungsanforderungen in einer vorher festgesetzten Zeitspanne I empfangen hat. Wenn ja, schaltet der Kontroller den Schalter 102 in den Intra-Modus und das gesamte Bild wird im Intra-kodierten Format aktualiesiert (806). Anderenfalls aktiviert der Kontroller den Intra-Modus-Zustand des Schalters 102 auf einer Makroblock-für-Makroblock-Basis (810), damit alle Makroblöcke im Intra-Format auf einer Makroblock-für-Makroblock-Basis kodiert werden, über aufeinander folgende Bilder. Wenn der Dekodierer derart vorprogrammiert ist, so dass der vorgegebene Aktualisierungs-Prozess (nach den ersten S Sekunden) zum Erneuern auf einer Makroblock-mal-Makroblock-Basis vorgesehen ist, und der empfangende Dekodierer keine aufeinanderfolgende Makroblock-Aktualisierung akzeptiert, wird der empfangende Dekodierer viele videoFastUpdatePicture-Kommandos an den übertragenden Kodierer senden. Der Betriebs-Schritt 808 versichert somit, dass der Kodierer schließlich das gesamte Bild im Intra-Format aktualisiert. Geeignete Werte für R und I sind 10 bzw. 5 Sekunden.
  • 10 ist ein Flussdiagramm welches zeigt wie der Kodierer 100 des übertragenden Endgeräts 2 auf ein videoFastUpdatePictureGOB-Kommando reagiert. Rückkoppelungs-Nachrichten, welche vom empfangenden Endgerät 1 gesendet werden (z.B. über einen H.245 Steuerkanal) werden überwacht (900) vom Steuerungsmanager 40 und dem Kontroller 105 des Kodiererteils 100 des übertragenden Endgeräts 2. Wenn ein videoFastUpdatePictureGOB-Kommando von dem Kodierer 100 empfangen wird (902), identifiziert (904) der Kontroller 105 die angeforderten Makroblöcke des GOB, welche sich am meisten geändert haben. Die MBs des GOB, welche sich am meisten geändert haben, werden zuerst aktualisiert (906) durch Intra-Kodierung. Diese MBs können identifiziert werden durch Berücksichtigen, Pixel für Pixel, der Luminanzwerte der Pixel eines MB des GOB des nächsten zu kodierenden und eines vorhergehenden Bildes, eine Summe der Quadrate der Differenzen zwischen den Pixeln des nächsten Bildes und des vorherigen Bildes wird gebildet. Der Kodierer, kodiert im Intra-Modus, die MBs zuerst, welche die höchsten Differenzen aufweisen. Die anderen MBs der GOB werden aktualisiert durch Kodieren der entsprechenden MB in der entsprechenden GOB in den folgenden Bildern.
  • Der Kontroller 105 des Kodierers 100 verfolgt auch die zeitliche Fortpflanzung von verfälschten MBs. Somit, wenn ein videoFastUpdateGOB-Kommando empfangen wird, kann der Kodierer auch die MBs aktualisieren, die von den verfälschten GOB vorhergesagt wurden, für die ein videoFastUpdateGOB-Kommando von dem Dekodierer gesendet wurde.

Claims (13)

  1. Verfahren zur Videodekodierung, umfassend Empfangen von codierten Videodaten durch einen Videodekodierer, Dekodieren der Videodaten, um dekodierte Videodaten zu bilden, und Ermitteln, ob die dekodierten Videodaten einen Fehler enthalten und, wenn ermittelt wird, dass ein Fehler vorhanden ist, Senden einer Aktualisierungsanforderungsnachricht von dem Videodekodierer an einen sendenden Videokodierer, welche eine Aktualisierung von mindestens einem entsprechenden Teil der Videodaten anfordert, der den Fehler enthält, Ermitteln, ob nachfolgende dekodierte Daten für einen entsprechenden Teil der Videodaten einen Fehler enthalten, gekennzeichnet durch Ermitteln des Ablaufs einer vorbestimmten Zeitspanne seit der Übertragung der letzten Aktualisierungsanforderungsnachricht, und nur dann Übertragen einer weiteren Aktualisierungsanforderungsnachricht für den nachfolgenden entsprechenden Teil der Videodaten, wenn die vorbestimmte Zeitspanne abgelaufen ist, um damit eine mehrfache Übertragung von Aktualisierungsanforderungsnachrichten für den gleichen fehlerhaften Teil einzuschränken.
  2. Verfahren nach Anspruch 1, wobei die Aktualisierungsanforderungsnachrichten die Aktualisierung eines vollständigen Bilds der Videosequenz anfordern.
  3. Verfahren nach Anspruch 1, wobei die Aktualisierungsanforderungsnachrichten die Aktualisierung eines Ausschnitts eines Bilds der Videosequenz anfordern.
  4. Verfahren nach Anspruch 1, 2 oder 3, wobei die vorbestimmte Zeitspanne proportional zu der Umlaufverzögerung zwischen dem Videodekodierer und dem Videokodierer ist.
  5. Verfahren nach irgendeinem der vorhergehenden Ansprüche, umfassend ein Vergleichen des Ausmaßes an Änderung in den nachfolgenden dekodierten Videodaten mit vorherigen Bilddaten für einen entsprechenden Bereich, und wobei die weitere Aktualisierungsanforderungsnachricht gesendet wird, wenn das Ausmaß an Änderung eine vorbestimmte Schwelle überschreitet, und die vorbestimmte Zeitspanne abgelaufen ist.
  6. Verfahren zur Videodekodierung nach irgendeinem der vorhergehenden Ansprüche, wobei die weitere Aktualisierungsanforderungsnachricht gesendet wird, wenn das Ausmaß an Bewegung in einem vorherigen Bild eine vorbestimmte Schwelle überschreitet, und die vorbestimmte Zeitspanne abgelaufen ist.
  7. Verfahren zur Videodekodierung nach Anspruch 1, wobei ein Bereich eines Bilds, der einen Fehler enthält, auf ein Ermitteln eines Fehlers in den dekodierten Videodaten hin verborgen wird.
  8. Verfahren zur Videodekodierung nach Anspruch 7, wobei, wenn ermittelt wird, dass ein Fehler vorhanden ist, so dass ein Bild nicht dekodiert werden kann, alle Teile des Bilds als verborgen gekennzeichnet werden und das nächste Bild dekodiert wird.
  9. Videodekodiervorrichtung (200), umfassend Mittel (50, 60) zum Empfangen von codierten Videodaten; Mittel (120, 121, 123, 124) zum Dekodieren der Videodaten, um dekodierte Videodaten zu bilden, Mittel (124) zum Ermitteln, ob die dekodierten Videodaten einen Fehler enthalten, Mittel (124) zum Senden einer Aktualisierungsanforderungsnachricht an einen sendenden Videocodierer, welche eine Aktualisierung für mindestens einen entsprechenden Teil der Videodaten anfordert, der den Fehler enthält, und Mittel zum Ermitteln, ob nachfolgende dekodierte Daten für einen entsprechenden Teil der Videodaten einen Fehler enthalten, und dadurch gekennzeichnet, dass sie Ermittlungsmittel umfasst, um das Ablaufen einer vorbestimmten Zeitspanne seit der Übertragung der vorherigen Aktualisierungsanforderungsnachricht zu ermitteln, und wobei die Dekodiervorrichtung eingerichtet ist, eine weitere Aktualisierungsanforderungsnachricht für den nachfolgenden entsprechenden Teil der Videodaten nur dann zu übertragen, wenn die vorbestimmte Zeitspanne abgelaufen ist, wodurch ein mehrfaches Übertragen einer Aktualisierungsanforderungsnachricht für den gleichen fehlerhaften Teil eingeschränkt wird.
  10. Vorrichtung nach Anspruch 9, umfassend Mittel zum Vergleichen des Ausmaßes an Änderung in den nachfolgenden dekodierten Videodaten mit vorherigen Bilddaten für einen entsprechenden Bereich, und wobei der Dekodierer eingerichtet ist, die weitere Aktualisierungsanforderungsnachricht zu senden, wenn das Ausmaß an Änderung eine vorbestimmte Schwelle überschreitet und die vorbestimmte Zeitspanne abgelaufen ist.
  11. Vorrichtung nach Anspruch 9 oder 10, wobei die weitere Aktualisierungsanforderungsnachricht gesendet wird, wenn das Ausmaß an Bewegung in einem vorherigen Bild eine vorbestimmte Schwelle überschreitet und die vorbestimmte Zeitspanne abgelaufen ist.
  12. Mobilfunkvorrichtung, umfassend eine Dekodiervorrichtung nach irgendeinem der Ansprüche 9 bis 11.
  13. Mobilfunkvorrichtung, die eingerichtet ist, um nach dem Dekodierverfahren der Ansprüche 1 bis 8 zu arbeiten.
DE60028942T 1999-02-18 2000-02-16 Videokodierung Expired - Lifetime DE60028942T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB9903676A GB2347038A (en) 1999-02-18 1999-02-18 A video codec using re-transmission
GB9903676 1999-02-18
PCT/EP2000/001328 WO2000049810A1 (en) 1999-02-18 2000-02-16 Video coding

Publications (2)

Publication Number Publication Date
DE60028942D1 DE60028942D1 (de) 2006-08-03
DE60028942T2 true DE60028942T2 (de) 2007-02-15

Family

ID=10847994

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60028942T Expired - Lifetime DE60028942T2 (de) 1999-02-18 2000-02-16 Videokodierung

Country Status (11)

Country Link
US (1) US6611561B1 (de)
EP (2) EP1657935B1 (de)
JP (1) JP4603695B2 (de)
CN (3) CN1642288A (de)
AT (1) ATE331391T1 (de)
AU (1) AU2805600A (de)
DE (1) DE60028942T2 (de)
ES (1) ES2267498T3 (de)
GB (1) GB2347038A (de)
PT (1) PT1157562E (de)
WO (1) WO2000049810A1 (de)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI113124B (fi) 1999-04-29 2004-02-27 Nokia Corp Tiedonsiirto
JP3483806B2 (ja) * 1999-07-28 2004-01-06 松下電器産業株式会社 動画像信号の符号化装置及び符号化方法
FR2809917B1 (fr) * 2000-05-30 2002-08-30 Cit Alcatel Codage d'image par segments avec prediction du mouvement
GB2366464A (en) * 2000-08-14 2002-03-06 Nokia Mobile Phones Ltd Video coding using intra and inter coding on the same data
KR100396892B1 (ko) * 2000-10-05 2003-09-03 삼성전자주식회사 비디오 mp3 시스템, 축소 비디오데이터 생성장치와생성방법 및 축소 비디오데이터 복원장치 및 복원방법
JP2002191048A (ja) * 2000-12-22 2002-07-05 Ando Electric Co Ltd 動画符号通信評価方法及び動画符号通信評価装置
US7133455B2 (en) * 2000-12-29 2006-11-07 Intel Corporation Providing error resilience and concealment for video data
WO2002071640A1 (en) * 2001-03-05 2002-09-12 Intervideo, Inc. Systems and methods for encoding and decoding redundant motion vectors in compressed video bitstreams
BRPI0212000B1 (pt) * 2001-08-23 2017-12-12 Polycom, Inc. "system and method for processing video data"
FR2829635A1 (fr) * 2001-09-07 2003-03-14 Cit Alcatel Procede de compression d'images d'animations
US7149248B2 (en) * 2001-09-12 2006-12-12 Broadcom Corporation Command packet system and method supporting improved trick mode performance in video decoding systems
US7020203B1 (en) * 2001-12-21 2006-03-28 Polycom, Inc. Dynamic intra-coded macroblock refresh interval for video error concealment
ES2355083T3 (es) * 2002-03-27 2011-03-22 British Telecommunications Public Limited Company Codificación y transmisión de vídeo.
CN102291585A (zh) * 2002-07-15 2011-12-21 诺基亚有限公司 用于视频序列中错误隐藏的方法
US7260269B2 (en) * 2002-08-28 2007-08-21 Seiko Epson Corporation Image recovery using thresholding and direct linear solvers
KR100548316B1 (ko) * 2002-11-08 2006-02-02 엘지전자 주식회사 동영상 에러 보정 방법 및 장치
US9192859B2 (en) * 2002-12-10 2015-11-24 Sony Computer Entertainment America Llc System and method for compressing video based on latency measurements and other feedback
US20110181686A1 (en) * 2003-03-03 2011-07-28 Apple Inc. Flow control
US7827458B1 (en) * 2003-03-03 2010-11-02 Apple Inc. Packet loss error recovery
US20040252761A1 (en) * 2003-06-16 2004-12-16 Dilithium Networks Pty Limited (An Australian Corporation) Method and apparatus for handling video communication errors
US7796499B2 (en) * 2003-12-05 2010-09-14 Telefonaktiebolaget L M Ericsson (Publ) Method of and system for video fast update
CN100562106C (zh) * 2004-01-23 2009-11-18 日本电气株式会社 运动图像通信装置、运动图像通信***及运动图像通信方法
JP2006060813A (ja) 2004-08-20 2006-03-02 Polycom Inc ビデオデコーダにおける誤り隠蔽
KR100678050B1 (ko) 2004-10-27 2007-02-02 삼성전자주식회사 이동 통신 시스템에서 영상 데이터를 송수신하기 위한장치 및 방법
CN100461859C (zh) * 2004-11-12 2009-02-11 乐金电子(昆山)电脑有限公司 移动终端客户端及识别并还原解码器错误运行的方法
WO2006080910A1 (en) * 2005-01-24 2006-08-03 Thomson Licensing Video error detection technique using a crc parity code
TW200633539A (en) * 2005-03-09 2006-09-16 Pixart Imaging Inc Estimation method of motion vector based on distance weighted searching sequence
US9237347B2 (en) * 2005-03-21 2016-01-12 The Regents Of The University Of California Systems and methods for video compression for low bit rate and low latency video communications
CN100459717C (zh) * 2005-04-20 2009-02-04 华为技术有限公司 基于h.264的压缩视频传输误码消除方法
US9661376B2 (en) * 2005-07-13 2017-05-23 Polycom, Inc. Video error concealment method
US8670437B2 (en) * 2005-09-27 2014-03-11 Qualcomm Incorporated Methods and apparatus for service acquisition
US8229983B2 (en) * 2005-09-27 2012-07-24 Qualcomm Incorporated Channel switch frame
US7827467B2 (en) * 2006-01-04 2010-11-02 Nokia Corporation Method for checking of video encoder and decoder state integrity
US8325822B2 (en) 2006-01-20 2012-12-04 Qualcomm Incorporated Method and apparatus for determining an encoding method based on a distortion value related to error concealment
US8861585B2 (en) 2006-01-20 2014-10-14 Qualcomm Incorporated Method and apparatus for error resilience algorithms in wireless video communication
US20070189383A1 (en) * 2006-02-15 2007-08-16 Samsung Electronics Co., Ltd. Method and system for appending redundancy to uncompressed video for transmission over wireless communication channels
US8699810B2 (en) 2006-06-26 2014-04-15 Qualcomm Incorporated Efficient fixed-point approximations of forward and inverse discrete cosine transforms
US8606023B2 (en) 2006-06-26 2013-12-10 Qualcomm Incorporated Reduction of errors during computation of inverse discrete cosine transform
US8300698B2 (en) * 2006-10-23 2012-10-30 Qualcomm Incorporated Signalling of maximum dynamic range of inverse discrete cosine transform
KR101089072B1 (ko) * 2006-11-14 2011-12-09 퀄컴 인코포레이티드 채널 전환용 시스템 및 방법
CA2669153A1 (en) * 2006-11-15 2008-05-22 Qualcomm Incorporated Systems and methods for applications using channel switch frames
CN101291434A (zh) * 2007-04-17 2008-10-22 华为技术有限公司 多视编解码方法及装置
FR2930387B1 (fr) 2008-04-17 2010-09-24 Canon Kk Procede de traitement d'un flux de donnees codes
KR100949917B1 (ko) * 2008-05-28 2010-03-30 한국산업기술대학교산학협력단 적응적 인트라 예측을 통한 고속 부호화 방법 및 시스템
US20090303309A1 (en) * 2008-06-04 2009-12-10 Pantech Co., Ltd. Mobile terminal and method for transmitting video data in video telephony system
US8780986B2 (en) * 2008-06-06 2014-07-15 Apple Inc. Refresh pixel group selection and coding adjustment
CN101742437B (zh) * 2009-12-11 2013-08-07 中兴通讯股份有限公司 移动视频的通信方法及服务端、服务器
US9246830B2 (en) * 2011-10-05 2016-01-26 Futurewei Technologies, Inc. Method and apparatus for multimedia queue management
US8904024B2 (en) * 2012-08-03 2014-12-02 Ittiam Systems (P) Ltd System and method for low delay fast update for video streaming
US9407923B2 (en) 2013-05-20 2016-08-02 Gamefly Israel Ltd. Overconing lost IP packets in streaming video in IP networks
JP6720517B2 (ja) * 2015-12-15 2020-07-08 セイコーエプソン株式会社 回路装置、電気光学装置、電子機器、移動体
JP6897059B2 (ja) * 2016-10-26 2021-06-30 セイコーエプソン株式会社 回路装置、電気光学装置、電子機器及び移動体
US10778247B2 (en) 2015-12-15 2020-09-15 Seiko Epson Corporation Circuit device, electro-optical device, electronic apparatus, mobile body, and error detection method
JP6840994B2 (ja) * 2016-10-26 2021-03-10 セイコーエプソン株式会社 回路装置、電気光学装置、電子機器、移動体及びエラー検出方法
CN108574684B (zh) * 2017-03-14 2020-08-28 大唐移动通信设备有限公司 一种解压缩的方法和装置
US10291936B2 (en) 2017-08-15 2019-05-14 Electronic Arts Inc. Overcoming lost or corrupted slices in video streaming
CN115079673B (zh) * 2022-07-05 2024-06-11 重庆赛力斯凤凰智创科技有限公司 一种故障上传方法、装置、设备及存储介质

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2093649T3 (es) * 1990-02-06 1997-01-01 Alcatel Italia Sistema, estructura de paquete y dispositivo para procesar la informacion suministrada por un codificador de señal.
JPH04170184A (ja) * 1990-10-12 1992-06-17 Mitsubishi Electric Corp 画像伝送装置
US5455629A (en) * 1991-02-27 1995-10-03 Rca Thomson Licensing Corporation Apparatus for concealing errors in a digital video processing system
JPH06237451A (ja) * 1993-02-10 1994-08-23 Hitachi Ltd 動画通信方式および端末装置
US5737022A (en) * 1993-02-26 1998-04-07 Kabushiki Kaisha Toshiba Motion picture error concealment using simplified motion compensation
CN1080067C (zh) * 1993-07-19 2002-02-27 英国电讯有限公司 视频图象中的错误检测
WO1995003674A1 (en) * 1993-07-19 1995-02-02 British Telecommunications Public Limited Company Detecting errors in video images
JPH07322248A (ja) * 1994-05-30 1995-12-08 Matsushita Electric Ind Co Ltd 動画像データの伝送方法および伝送装置
US5550847A (en) * 1994-10-11 1996-08-27 Motorola, Inc. Device and method of signal loss recovery for realtime and/or interactive communications
JPH0993592A (ja) * 1995-07-13 1997-04-04 Matsushita Electric Ind Co Ltd 画像符号化装置
JP3630474B2 (ja) * 1995-07-14 2005-03-16 沖電気工業株式会社 動画像伝送システム及び動画像伝送装置
US5768533A (en) * 1995-09-01 1998-06-16 National Semiconductor Corporation Video coding using segmented frames and retransmission to overcome channel errors
US5910827A (en) * 1997-02-26 1999-06-08 Kwan; Katherine W. Video signal decoding arrangement and method for improved error concealment
JPH10247901A (ja) * 1997-03-04 1998-09-14 Matsushita Electric Ind Co Ltd 再送制御方法
US6091775A (en) * 1997-04-17 2000-07-18 Sharp Kabushiki Kaisha Video-coding device and video-decoding device
JP3905969B2 (ja) * 1998-01-30 2007-04-18 株式会社東芝 動画像符号化装置および動画像符号化方法
US6104757A (en) * 1998-05-15 2000-08-15 North Carolina State University System and method of error control for interactive low-bit rate video transmission
US6304295B1 (en) * 1998-09-18 2001-10-16 Sarnoff Corporation Region-based refresh strategy for video compression

Also Published As

Publication number Publication date
EP1157562B1 (de) 2006-06-21
US6611561B1 (en) 2003-08-26
CN1192635C (zh) 2005-03-09
WO2000049810A1 (en) 2000-08-24
EP1657935A3 (de) 2009-03-18
ATE331391T1 (de) 2006-07-15
PT1157562E (pt) 2006-11-30
CN1340275A (zh) 2002-03-13
JP2002537736A (ja) 2002-11-05
EP1657935A2 (de) 2006-05-17
EP1157562A1 (de) 2001-11-28
EP1657935B1 (de) 2016-06-29
ES2267498T3 (es) 2007-03-16
DE60028942D1 (de) 2006-08-03
AU2805600A (en) 2000-09-04
GB9903676D0 (en) 1999-04-14
CN1642288A (zh) 2005-07-20
JP4603695B2 (ja) 2010-12-22
CN1897697A (zh) 2007-01-17
GB2347038A (en) 2000-08-23

Similar Documents

Publication Publication Date Title
DE60028942T2 (de) Videokodierung
DE60020243T2 (de) Videokodierung
DE69921108T2 (de) Verfahren und vorrichtung zur adaptiven codierung eines videodatenstroms
DE69434668T2 (de) Adaptives Codierungs- und Decodierungsverfahren mit variabler Länge für Bilddaten
US7693220B2 (en) Transmission of video information
DE19635116C2 (de) Verfahren zur Videokommunikation
DE60023576T2 (de) Verfahren und Vorrichtung zur Bewegtbilddatentranscodierung
US6744924B1 (en) Error concealment in a video signal
DE69822975T2 (de) Gerät und verfahren zum kodieren/dekodieren von bewegtbildern und speichermedium zum speichern kodierter bewegtbilddaten
EP1754378A1 (de) Verfahren und einrichtung zum codieren digitaler videodaten
DE19801143C2 (de) Verfahren für die Dekodierung von Videodaten
DE60221807T2 (de) Lauflängenkodierung nichtkodierter makroblöcke
DE10296787B4 (de) Selektive Prädikation für ein Intra-Codieren eines Videodatenblocks
KR102424258B1 (ko) 비디오를 인코딩하기 위한 방법 및 인코더 시스템
DE102008059028B4 (de) Verfahren und Vorrichtung zur Erzeugung eines Transportdatenstroms mit Bilddaten
DE10035109A1 (de) Terminal und Verfahren zum Transportieren von Standbildern
DE112007001773T5 (de) Videocodierung
EP2196031A2 (de) Verfahren zum alternieren der entropiecodierung
JPH06133303A (ja) 動画像符号化装置
DE69736926T2 (de) Videokodierer, -dekodierer und Übertragungssystem
JP3779066B2 (ja) 動画像符号化装置
DE10296360T5 (de) Video-Bitstrom-Reiniger
DE69726417T2 (de) Verfahren und Vorrichtung zur Kodierung von Bewegtbildern
EP0665691A2 (de) Verfahren zur Minimierung der zeitlichen Verzögerung bei der Übertragung bewegter Bilder mit niedrigen Datenraten
CN117692650A (zh) 图像编码/解码方法、电子设备和计算机可读存储介质

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
R082 Change of representative

Ref document number: 1157562

Country of ref document: EP

Representative=s name: BECKER, KURIG, STRAUS, DE

R081 Change of applicant/patentee

Ref document number: 1157562

Country of ref document: EP

Owner name: SISVEL INTERNATIONAL S.A., LU

Free format text: FORMER OWNER: NOKIA CORP., ESPOO, FI

Effective date: 20120808

R082 Change of representative

Ref document number: 1157562

Country of ref document: EP

Representative=s name: BECKER, KURIG, STRAUS, DE

Effective date: 20120808