DE69328698T2 - Verfahren und Vorrichtung zur Bildcodierung - Google Patents
Verfahren und Vorrichtung zur BildcodierungInfo
- Publication number
- DE69328698T2 DE69328698T2 DE69328698T DE69328698T DE69328698T2 DE 69328698 T2 DE69328698 T2 DE 69328698T2 DE 69328698 T DE69328698 T DE 69328698T DE 69328698 T DE69328698 T DE 69328698T DE 69328698 T2 DE69328698 T2 DE 69328698T2
- Authority
- DE
- Germany
- Prior art keywords
- data
- code
- supplied
- bits
- circuit
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/24—Systems for the transmission of television signals using pulse code modulation
- H04N7/52—Systems 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
- H04N7/54—Systems 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 the signals being synchronous
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/65—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/146—Data rate or code amount at the encoder output
- H04N19/152—Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/577—Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/89—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
- H04N21/23614—Multiplexing of additional data and video streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
- H04N21/4346—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream involving stuffing data, e.g. packets or bytes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
- H04N21/4348—Demultiplexing of additional data and video streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/44—Processing 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/44004—Processing 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 video buffer management, e.g. video decoder buffer or video display buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network 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/63—Control 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/633—Control signals issued by server directed to the network components or client
- H04N21/6332—Control signals issued by server directed to the network components or client directed to client
- H04N21/6336—Control signals issued by server directed to the network components or client directed to client directed to decoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/24—Systems for the transmission of television signals using pulse code modulation
- H04N7/52—Systems 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
- H04N7/54—Systems 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 the signals being synchronous
- H04N7/56—Synchronising systems therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Image Processing (AREA)
Description
- Die vorliegende Erfindung bezieht sich auf ein Bildcodiergerät und ein Bildcodierverfahren; welches geeignet ist, komprimierte Bewegtbilddaten zu übertragen.
- Bei einem sogenannten Bildsignal-Übertragungssystem zum Übertragen eines Bewegtbildsignals zu entfernten Orten, beispielsweise zu einem TV-Konferenzsystem oder einem TV-Telefonsystem, wurde ein Bildsignal codiert, wobei die Zeilenkorrelation oder die Vollbildkorrelation des Bildsignals genutzt wird und wodurch die Übertragungseffektivität der signifikanten Information verbessert wurde, um den Übertragungsweg effektiv zu nutzen.
- Fig. 1 ist ein Blockdiagramm, welches ein Beispiel eines Aufbaus eines Bildcodiergeräts nach dem Stand der Technik zeigt, um Bilddaten zu codieren. Bilddaten, die codiert werden sollen, werden zu einer Bewegungsvektor-Ermittlungsschaltung 1 geliefert. Die Bewegungsvektor-Ermittlungsschaltung 1 verarbeitet die Bilddaten eines jeden Vollbilds als I- Bild, P-Bild oder B-Bild gemäß der vorher festgesetzten Sequenz. Es wird vorher festgelegt, welches Bild der I-, P-, B-Bilder eines Abbilds eines jeden Vollbilds, die nacheinander geliefert werden, verarbeitet werden soll. Bilddaten des zu verarbeitenden Vollbilds, beispielsweise des I-Bilds werden in einem Vorwärtsursprungs-Bildteil 2a gespeichert, während Bilddaten, die als B-Bild verarbeitet werden, in einem Referenzursprungs-Bildteil 2b gespeichert werden und Bilddaten, die als P-Bild verarbeitet werden sollen, in einem Rückwärtsursprungs-Bildteil 2c gespeichert werden.
- Wenn außerdem ein Abbild des Vollbilds als B-Bild oder P-Bild verarbeitet werden soll, werden die Bilddaten des ersten P-Bilds, die im Rückwärtsursprungs-Bildteil 2c gespeichert sind, zum Vorwärtsursprungs-Bildteil 2a übertragen, die Bilddaten des nächsten B- Bilds werden im Referenzursprungs-Bildteil 2b gespeichert und die Bilddaten des nächsten P- Bilds werden im Rückwärtsursprungs-Bildteil 2c gespeichert (Überschreibung). Diese Operationen werden wiederholt.
- Die Bewegungsvektor-Ermittlungsschaltung 1 unterteilt die Bilddaten des Vollbilds des B-Bilds, die im Referenzursprungs-Bildteil 2b gespeichert sind, in eine Blockeinheit von 8 · 8 Pixeln und ermittelt Bewegungsvektoren zwischen dem I-Bild, welches im Vorwärtsursprungs-Bildteil 2a gespeichert wurde, und dem P-Bild, welches im Rückwärtsursprungs-Bildteil 2c gespeichert wurde. Für das I-Bild wird der Bewegungs Vektor nicht ermittelt.
- Die Bewegungsvektor-Ermittlungsschaltung 1 unterteilt die Bilddaten des Vollbilds des P-Bilds, die im Referenzursprungs-Bildteil 2c gespeichert wurden, in eine Blockeinheit von 8 · 8 Pixeln und ermittelt die Bewegungsvektoren zwischen dem I-Bild, welches im Vorwärtsursprungs-Bildteil 2a gespeichert wurde, und dem P-Bild, welches im Rückwärtsursprungs-Bildteil 2c gespeichert wurde. Für das I-Bild wird der Bewegungsvektor nicht ermittelt.
- Die Bewegungsvektor-Ermittlungsschaltung 1 liefert die Bilddaten, von denen der Bewegungsvektor ermittelt wurde, in einer Blockeinheit zu einem Rechenbetriebsteil 3 in der nächsten Stufe in einer Makroblockeinheit.
- Das heißt, daß alle Vollbilddaten in N-Slices unterteilt werden, wie in Fig. 2(a) gezeigt ist, und jedes Slice so festgelegt wird, daß es M-Makroblöcke enthält, wie in Fig. 2(b) gezeigt ist. Jeder Makroblock besteht aus Luminanzsignaldaten Y1 bis Y4 und entsprechenden Farbdifferenzsignaldaten Cb und Cr des Blocks in einer Einheit von 8 · 8 Pixeln, wie in Fig. 2(c) gezeigt ist.
- In diesem Fall sind die Bilddaten im Slice fortlaufend in einer Makroblockeinheit angeordnet, so daß Bilddaten fortlaufend in der Blockeinheit innerhalb dieses Makroblocks in der Rasterabtast-Sequenz erscheinen.
- Hier verwendet der Makroblock als eine Einheit die Bilddaten (Y1 bis Y4) der 16 · 16 Pixel, die fortlaufend in der horizontalen und vertikalen Abtastrichtung für das Luminanzsignal angeordnet sind, wobei die Datenmenge für die jeweiligen zwei Farbdifferenzsignale Cb, Cr reduziert ist, und wobei ein Block von 8 · 8 Pixeln jeweils solchen Farbdifferenzsignalen zugeteilt ist.
- Die Bewegungsvektor-Ermittlungsschaltung 1 liefert die Bewegungsvektoren von vier Blöcken eines jeden Makroblocks zur Variabel-Längen-Codierschaltung 6 und einer Bewegungskompensationsschaltung 13 und erzielt eine Summe der Absolutwerte dieser Bewegungsvektoren und liefert dann ein Ergebnis zu einer Vorhersageentscheidungsschaltung 14.
- Die Vorhersageentscheidungsschaltung 14 setzt einen Intra-Vollbild-Vorhersagemodus (Modus ohne Bewegungskompensation) als Vorhersagemodus, wenn die Bewegungsvektor-Ermittlungsschaltung 1 die Bilddaten des I-Bilds vom Vorwärtsursprungs-Bildteil 2a liest (wenn eine Summe der Absolutwerte von Bewegungsvektoren, die von der Bewe gungsvektor-Ermittlungsschaltung 1 geliefert werden, gleich 0 ist), und schaltet einen Schalter 3d des Rechenbetriebsteils 2 auf den Kontakt a um. Dadurch werden die Bilddaten des I- Bilds zu einer DCT-Schaltung 4 geliefert und in einen DCT-Koeffizienten über die DCT-Verarbeitung (diskrete Kosinustransformation) transformiert. Dieser DCT-Koeffizient wird dann zu einer Quantisierungsschaltung 5 geliefert und danach zu einer Variabel-Längen-Codierschaltung 6 nach einer Quantisierung im Quantisierungsschritt entsprechend der Datenmenge, die sich im Sendepuffer 7 angesammelt hat (Pufferansammlungsmenge) geliefert.
- Die Variabel-Längen-Codierschaltung 6 setzt die Bilddaten (in diesem Fall die Daten des I-Bilds), die von der Quantisierungsschaltung 5 geliefert werden, in einen variablen Längencode um, beispielsweise den Huffman-Code, entsprechend einem Quantisierungsschritt, der von der Quantisierungsschaltung 5 geliefert wird, einem Vorhersagemodus, der von der Vorhersageentscheidungsschaltung 14 geliefert wird, und einem Bewegungsvektor, der von der Bewegungsvektor-Ermittlungsschaltung I geliefert wird, und liefert dann den variablen Längencode zum Sendepuffer 7.
- Der Sendepuffer 7 sammelt vorübergehend die Eingangsdaten und gibt diese zu einer Übertragungsdaten-Steuerschaltung 111 aus. Die Übertragungsdaten-Steuerschaltung 111 liefert die Daten, die vom Sendepuffer 7 geliefert werden, auf den Übertragungsweg.
- Inzwischen werden Daten des I-Bilds, die von der Quantisierungsschaltung 5 geliefert werden, dann zu einer Inversen Quantisierungsschaltung 9 geliefert und invers entsprechend dem Quantisierungsschritt, der von der Quantisierungsschaltung 5 geliefert wird, quantisiert. Ein Ausgangssignal der inversen Quantisierungsschaltung 9 wird zu einer IDCT- Schaltung 10 (inverse DCT) zur inversen DCT-Verarbeitung geliefert. Danach wird das Ausgangssignal zu einem Vorwärtsvorhersage-Bildteil 12a eines Vollbildspeichers 12 über das Rechenbetriebsteil 11 geliefert und dort gespeichert.
- Wenn die Bilddaten von Vollbildern, die nacheinander geliefert werden, beispielsweise die I-, B-, P-, B-, P-, B-, .... Bilder verarbeitet werden, verarbeitet die Bewegungsvektor-Ermittlungsschaltung 1 die Bilddaten des Vollbilds, die zuerst als I-Bild geliefert werden, und sie verarbeitet danach die Bilddaten des zweiten darauffolgenden Eingangsvollbilds als P-Bild, bevor die Bilddaten des nächsten Eingangsvollbilds als B-Bild verarbeitet werden. Der Grund dafür liegt darin, daß auf das B-Bild die Rückwärtsvorhersage folgen muß, und dieses nicht decodiert werden kann, wenn das P-Bild nicht vorher als Rückwärtsvorhersagebild vorbereitet ist.
- Daher ermittelt die Bewegungsvektor-Ermittlungsschaltung 1 nach dem I-Bild den Bewegungsvektor der Bilddaten des P-Bilds, welche im Rückwärtsursprungs-Bildteil 2c in der Einheit des Blocks von 8 · 8 Pixeln gespeichert sind. Danach wird eine Summe der Absolutwerte von Bewegungsvektoren des Blocks, der aus vier 8 · 8 Pixeln besteht, die einen Makroblock bilden, zur Vorhersageentscheidungsschaltung 14 von der Bewegungsvektor- Ermittlungsschaltung 1 geliefert. Die Vorhersageentscheidungsschaltung 14 setzt als Vorhersagemodus den Intra-Vollbild-Vorhersagemodus, wenn die Summe von Absolutwerten des Makroblocks dieses P-Bilds kleiner ist als ein vorher festgesetzter Referenzwert. Wenn außerdem die Summe größer ist als der Referenzwert, setzt die Vorhersageentsscheidungsschaltung 14 den Vorwärtsvorhersagemodus.
- Das Rechenbetriebsteil 3 schaltet den Umschalter 3d auf den Kontakt a um, wie oben erklärt wurde, wenn der Intra-Vollbild-Vorhersagemodus gewählt ist. Daher werden diese Daten auf den Übertragungsweg wie die Daten des I-Bilds über die DCT-Schaltung 4, die Quantisierungsschaltung 5, die Variabel-Längen-Codierschaltung 6, den Sendepuffer 7 und die Übertragungsdaten-Steuerschaltung 111 übertragen. Außerdem werden diese Daten zum Rückwärtsvorhersage-Bildteil 12b des Vollbildspeichers 12 über die inverse Quantisierungsschaltung 9, die IDCT-Schaltung 10 und das Rechenbetriebsteil 11 geliefert und darin gespeichert.
- Im Vorwärtsvorhersagemodus wird der Umschalter 3d auf den Kontakt b umgeschaltet. Dadurch werden Bilddaten (in diesem Fall das Bild des I-Bilds), die im Vorwärtsvorhersage-Bildteil 12a gespeichert wurden, gelesen und dann der Bewegungskompensation durch die Bewegungskompensationsschaltung 13 entsprechend dem Bewegungsvektor, der von der Bewegungsvektor-Ermittlungsschaltung 1 geliefert wird, unterworfen. Das heißt, daß die Bewegungskompensationsschaltung 13, wenn das Setzen des Vorwärtsvorhersagemodus von der Vorhersageentscheidungsschaltung 14 angewiesen wird, die Daten liest, um die Vorhersagebilddaten durch Verschieben der Leseadresse des Vorwärtsvorhersage-Bildteils 12a zu erzeugen, so viel wie das Maß entsprechend dem Bewegungsvektor von der Position, die der Position des Makroblocks entspricht, der nun von der Bewegungsvektor-Ermittlungsschaltung 1 ausgegeben wird.
- Die Vorhersagebilddaten, die von der Bewegungskompensationsschaltung 13 geliefert werden, werden dann zu einem Rechenbetriebsteil 3a geliefert. Das Rechenbetriebsteil 3a subtrahiert die Vorhersagebilddaten, die von der Bewegungskompensationsschaltung 13 geliefert werden, entsprechend dem Makroblock, der von der Bewegungsvektor-Ermittlungsschaltung 1 geliefert wird, von den Daten dieses Makroblocks, um eine Differenz zwischen diesen Daten auszugeben. Diese Differenzdaten werden zum Übertragungsweg über die DCT- Schaltung 4, die Quantisierungsschaltung 5, die Variabel-Längen-Codierschaltung 6, dem Sendepuffer 7 und der Übertragungsdaten-Steuerschaltung 111 übertragen. Außerdem werden diese Differenzdaten zum Rechenbetriebsteil 11 über die inverse Quantisierungsschaltung 9 und die IDCT-Schaltung 10 geliefert.
- Zu diesen Rechenbetriebsteil 11 werden die Daten, die mit den Vorhersagebilddaten identisch sind, die zum Rechenbetriebsteil 3a geliefert werden, ebenfalls geliefert. Das Rechenbetriebsteil 11 addiert die Vorhersagebilddaten, die von der Bewegungskompensationsschaltung 13 ausgegeben werden, zu den Differenzdaten, die von der IDCT-Schaltung 10 ausgegeben werden. Dadurch können die Bilddaten des ursprünglichen P-Bilds erhalten werden. Die Bilddaten dieses P-Bilds werden zum Rückwärtsvorhersage-Bildteil 12b des Vollbildspeichers 12 geliefert und darin gespeichert.
- Wie oben erklärt wurde, ermittelt, nachdem die Daten des I-Bilds und des P-Bilds im Vorwärtsvorhersage-Bildteil 12a bzw. im Rückwärtsvorhersage-Bildteil 12b gespeichert wurden, die Bewegungsvektor-Ermittlungsschaltung 1 den Bewegungsvektor des B-Bilds in der Blockeinheit. Die Vorhersageentscheidungsschaltung 14 setzt den Vorhersagemodus auf den Intra-Vollbild-Vorhersagemodus, den Vorwärtsvorhersagemodus, den Rückwärtsvorhersagemodus oder den Zweirichtungs-Vorhersagemodus gemäß einer Summe von Absolutwerten von Bewegungsvektoren von Blöcken, die den Makroblock bilden.
- Wie oben erklärt wird der Umschalter 3d auf den Kontakt a oder b während des Intra-Vollbild-Vorhersagemodus oder des Vorwärtsvorhersagemodus umgeschaltet. In diesem Fall wird die Verarbeitung ähnlich der für das P-Bild auch zur Datenübertragung ausgeführt.
- Wenn andererseits der Rückwärtsvorhersagemodus oder der Zweirichtungs-Vorhersagemodus gesetzt wird, wird der Umschalter 3d auf den Kontakt c bzw. d umgeschaltet.
- Während des Rückwärtsvorhersagemodus, wo der Umschalter 3d auf den Kontakt c umgeschaltet ist, werden Bilddaten (Bild des P-Bilds in diesem Fall), die im Rückwärtsvorhersage-Bildteil 12b gespeichert sind, gelesen, und die Bewegung wird durch die Bewegungskompensationsschaltung 13 entsprechend dem Bewegungsvektor, der von der Bewegungsvektor-Ermittlungsschaltung 1 ausgegeben wird, kompensiert. Das heißt, die Bewegungskompensationsschaltung 13 liest, wenn das Setzen des Rückwärtsvorhersagemodus von der Vorhersageentscheidungsschaltung 14 angewiesen ist, die Daten, um die Vorhersagebilddaten zu erzeugen, indem die Leseadresse des Rückwärtsvorhersage-Bildteils 12b so viel verschoben wird wie das Maß entsprechend dem Bewegungsvektor von der Position, die der Position des Makroblocks entspricht, der nun von der Bewegungsvektor-Ermittlungsschaltung 1 ausgegeben wird.
- Die Vorhersagebilddaten, die von der Bewegungskompensationsschaltung 13 ausgegeben werden, werden zu einem Rechenbetriebsteil 3b geliefert. Das Rechenbetriebsteil 3b subtrahiert die Vorhersagebilddaten, die von der Bewegungskompensationsschaltung 13 geliefert werden, von den Makroblockdaten, die von der Bewegungsvektor-Ermittlungsschaltung 1 geliefert werden, um eine Differenz zwischen diesen Daten auszugeben. Diese Differenzdaten werden zum Übertragungsweg über die DCT-Schaltung 4, die Quantisierungsschaltung 5, die Variabel-Längen-Codierschaltung 6, den Sendepuffer 7 und die Übertragungsdaten-Steuerschaltung 111 übertragen.
- Während des Zweirichtungs-Vorhersagemodus, wo der Umschalter 3d auf den Kontakt d umgeschaltet ist, werden Bilddaten (in diesem Fall das Bild des I-Bilds), die im Vorwärtsvorhersage-Bildteil 12a gespeichert sind, und Bilddaten (in diesem Fall das Bild des P-Bilds), die im Rückwärtsvorhersage-Bildteil 12b gespeichert sind, gelesen und der Bewegungskompensation durch die Bewegungskompensationsschaltung 13 entsprechend dem Bewegungsvektor, der von der Bewegungsvektor-Ermittlungsschaltung 1 ausgegeben wird, unterworfen. Wenn nämlich das Setzen des Zweirichtungs-Vorhersagemodus von der Vorhersageentscheidungsschaltung 14 angewiesen wird, liest die Bewegungskompensationsschaltung 13 Daten, um die Vorhersagebilddaten zu erzeugen, wobei die Leseadresse des Vorwärtsvorhersage-Bildteils 12a und des Rückwärtsvorhersage-Bildteils 12b so viel wie das Maß entsprechend dem Bewegungsvektor von der Position verschoben wird, die der Position des Makroblocks entspricht, der nun von der Bewegungsvektor-Ermittlungsschaltung 1 ausgegeben wird.
- Die Vorhersagebilddaten, die von der Bewegungskompensationsschaltung 13 ausgegeben werden, werden zu einem Rechenbetriebsteil 3c geliefert. Das Rechenbetriebsteil 3c subtrahiert die Vorhersagebilddaten, die von der Bewegungskompensationsschaltung 13 geliefert werden, von den Makroblockdaten, die von der Bewegungsvektor-Ermittlungsschaltung 1 geliefert werden, um eine Differenz auszugeben. Diese Differenzdaten werden zum Übertragungsweg über die DCT-Schaltung 4, die Quantisierungsschaltung 5, die Variabel-Längen-Codierschaltung 6, den Sendepuffer 7 und die Übertragungsdaten-Steuerschaltung 111 übertragen.
- Ein Bild des B-Bilds wird niemals als Vorhersagebild des anderen Bilds verwendet und wird daher nicht im Vollbildspeicher 12 gespeichert.
- Wie oben erklärt werden, wenn die Bilddaten als variabler Längencode übertragen werden, wenn ein einfaches stationäres Bild beispielsweise eine vergleichsweise längere Periode andauert, die zu übertragenden Daten manchmal knapp. In diesem Fall kann im Hinblick auf die Vermeidung eines Übertragungsdatenfehlers ein ungültiger Code den zu übertragenden Daten hinzugefügt werden. Dieser ungültige Code kann auch beispielsweise in der Einheit eines Slices oder Makroblocks hinzugefügt werden, wie in Fig. 2(a) bis 2(c) gezeigt ist.
- Fig. 3 zeigt ein Beispiel, wo ein ungültiger Code (ungültige Daten) der Slice-Einheit hinzugefügt ist. Jedes Slice ist mit einem Slice-Startcode an seinem Anfangsbereich versehen. Dieser Slice-Startcode ist durch einen Synchron-Code und einen Attribut-Code gebildet. Der Synchron-Code ist durch die Daten von zwei Bytes gebildet, wobei jedes Bit auf logische 0 gesetzt ist, und die Daten eines Bytes (drei Bytes insgesamt), wo das LSB auf logisch 1 gesetzt ist, und die anderen Bits auf logisch 0 gesetzt sind. Außerdem ist der Attribut-Code auf ein Byte festgelegt, wo der Code, der die Daten anzeigt, die die Slice-Daten betreffen, beispielsweise das Attribut des entsprechenden Slice, angeordnet ist. Daher ist der Slice- Startcode durch die Daten von vier Bytes insgesamt gebildet (32 Bits).
- Dieser Slice-Startcode ist der Slice-Einheit ohne bezug auf die Knappheit der Daten, die übertragen werden sollen, hinzugefügt.
- Der Ungültigkeitscode ist so hinzugefügt, daß so viele Daten, wo alle Bits auf logisch 0 gesetzt sind, vor dem Slice-Startcode in der Einheit des Bytes (8 Bits) wie erforderlich hinzugefügt werden. Dieser Code wird der Slice-Einheit nur hinzugefügt, wenn die zu übertragenden Daten knapp werden.
- Fig. 4 zeigt einen Ungültigkeitscode, der einem Block hinzugefügt wird. In diesem Fall wird nämlich die Gesamtzahl von 11 Bits, wo die oberen 7 Bits auf logisch 0 gesetzt sind und die unteren 4 Bits auf logisch 1 gesetzt sind, als eine Einheit des Ungültigkeitscodes angesehen, und dieser Ungültigkeitscode wird vor einem gültigen Code des Makroblocks gleich der vorgegebenen Anzahl von Einheiten hinzugefügt.
- In dem Fall, wo ein Ungültigkeitscode den Daten des Makroblocks hinzugefügt wird, wie in Fig. 4 gezeigt ist, kann die Übertragungsdaten-Steuerschaltung 11 l, die in Fig. 1 gezeigt ist, beispielsweise so aufgebaut sein, wie in Fig. 5 gezeigt ist. In diesem Fall werden die Daten, die vom Sendepuffer 7 geliefert werden, zu einem N/M-Umsetzer 121 geliefert, und dadurch werden die Daten, die in der Einheit von N Bits unterteilt sind, in Daten umgesetzt, die in der Einheit von M unterteilt sind. Die Daten, die vom N/M-Umsetzer 121 ausgegeben werden, werden zu einem Multiplexer (MUX) 122 geliefert und dort mit dem Ungültigkeitscode kombiniert, der von der Makroblock-Ungültigkeitscode-Erzeugungsschaltung 123 ausgegeben wird.
- Das heißt, die Makroblock-Ungültigkeitscode-Erzeugungsschaltung 123 erzeugt einen Ungültigkeitscode, der in Fig. 4 gezeigt ist, wo die oberen 7 Bits auf logisch 0 gesetzt sind, während die unteren 4 Bits auf logisch 1 gesetzt sind, und liefert diesen Ungültigkeitscode zum Multiplexer 122. Eine Steuerung 124 steuert den Multiplexer 122 entsprechend der Sendepufferinformation und wählt, wenn der Sendepuffer 7 keine Bereichsunterschreitung erzeugt, ein Ausgangssignal des N/M-Umsetzers 121 aus oder wählt einen Ungültigkeitscode aus, der von der Makroblock-Ungültigkeitscode-Erzeugungsschaltung ausgegeben wird, wenn man annimmt, daß der Sendepuffer 7 eine Bereichsunterschreitung erzeugt. Daher werden zu den Daten, die von dem Multiplexer 122 ausgegeben werden, Ungültigkeitscodes der gewünschten Anzahl von Einheiten gemischt.
- Fig. 6 ist nun eine Blockdarstellung, die ein Beispiel eines Aufbaus eines Bilddecodiergeräts zeigt, um Daten zu decodieren, die durch das Bildcodiergerät von Fig. 1 codiert wurden. Die codierten Bilddaten, die über den Übertragungsweg übertragen werden, werden durch eine nicht gezeigte Empfangsschaltung empfangen, vorübergehend in einem Empfangspuffer 32 gespeichert und dann zu einer Variabel-Längen-Decodierschaltung 33 einer Decodierschaltung 50 geliefert. Die Variabel-Längen-Decodierschaltung 33 decodiert die Daten, die vom Empfangspuffer 32 geliefert werden, durch die Variabel-Längen-Decodiermethode und liefert entsprechend den Bewegungsvektor und den Vorhersagemodus zur Bewegungskompensationsschaltung 3 8 und den Quantisierungsschritt zur Inversen Quantisierungsschaltung 34, und liefert außerdem die decodierten Bilddaten (durch die Variabel-Längen-Decodierung) zur Invers-Quantisierungsschaltung 34.
- Die Invers-Quantisierungsschaltung 34 quantisiert die Bilddaten, die von der Variabel-Längen-Decodierschaltung 33 geliefert werden, gemäß dem Quantisierungsschritt, der ebenfalls von der Variabel-Längen-Decodierschaltung 33 geliefert wird, invers, und liefert die quantisierten Daten zur IDCT-Schaltung 25. Die Daten (DCT-Koeffizient), die von der Inversen Quantisierungsschaltung 34 ausgegeben werden, werden der inversen DCT-Verarbeitung in der IDCT-Schaltung 35 unterworfen und dann zum Rechenbetriebsteil 36 geliefert.
- In dem Fall, wo die von der IDCT-Schaltung 35 gelieferten Bilddaten die Daten des I-Bilds sind, werden diese Daten von dem Rechenbetriebsteil 36 ausgegeben und zum Vorwärtsvorhersage-Bildteil 37a des Vollbildspeichers 37 geliefert und dort gespeichert, um Vorhersagebilddaten der Bilddaten (Daten des P- oder B-Bilds) zu erzeugen, die später zum Rechenbetriebsteil 36 geliefert werden.
- Außerdem werden diese Daten zu einer Anzeigeeinheit 40 geliefert, wo sie angezeigt werden, nachdem sie der D/A-Umsetzung in einem D/A-Umsetzer 39 unterworfen wurden.
- In dem Fall, wo die Bilddaten, die von der IDCT-Schaltung 35 geliefert werden, die Daten des P-Bilds sind, die die Bilddaten des vorhergehenden Vollbilds als Vorhersagebilddaten haben, werden die Bilddaten (Daten des I-Bilds) des vorhergehenden Vollbilds, die im Vorwärtsvorhersage-Bildteil 37a des Vollbildspeichers 37 gespeichert sind, gelesen und der Bewegungskompensation in der Bewegungskompensationsschaltung 38 entsprechend dem Bewegungsvektor unterworfen, der von der Variabel-Längen-Decodierschaltung 33 ausgegeben wird. In dem Rechenbetriebsteil 36 werden diese Bilddaten den Bilddaten (Differenzdaten) hinzugefügt, die von der IDCT-Schaltung 35 geliefert werden, bevor die hinzugefügten Daten ausgegeben werden. Die hinzugefügten Daten, d. h., die decodierten Daten des P-Bilds werden zum Rückwärtsvorhersage-Bildteil 37b des Vollbildspeichers 37 geliefert und dort gespeichert, um die Vorhersagebilddaten der Bilddaten (Daten des B-Bilds) zu erzeugen, die nachher zum Rechenbetriebsteil 36 geliefert werden.
- Da dieses P-Bild das Bild ist, welches nach dem nächsten B-Bild angezeigt werden muß, wird es in diesem Zeitpunkt noch nicht angezeigt.
- In dem Fall, wo die Bilddaten, die von der IDCT-Schaltung 35 geliefert werden, die Daten des B-Bilds sind, werden die Bilddaten (Vorwärtsvorhersagemodus) des I-Bilds, die in dem Vorwärtsvorhersage-Bildteil 37a des Vollbildspeichers 37 gespeichert sind, die Bilddaten (Rückwärtsvorhersagemodus) des P-Bilds, die im Rückwärtsvorhersage-Bildteil 37b gespeichert sind, oder beide Bilddaten (Zweirichtungs-Vorhersagemodus) entsprechend dem Vorhersagemodus gelesen, der von der Variabel-Längen-Decodierschaltung 33 geliefert wird, und der Bewegungskompensation in der Bewegungskompensationsschaltung 38 entsprechend dem Bewegungsvektor unterworfen, der von der Variabel-Längen-Decodierschaltung 33 ausgegeben wird.
- Wie oben erklärt werden Daten nach der Bewegungskompensation in der Bewegungskompensationsschaltung 38 mit einem Ausgangssignal der IDCT-Schaltung 35 im Rechenbetriebsteil 36 addiert. Dieses addierte Ausgangssignal wird zur Anzeigeeinheit 40 geliefert, um nach der D/A-Umsetzung im D/A-Umsetzer 39 angezeigt zu werden.
- Da jedoch dieses addierte Ausgangssignal die Daten des B-Bilds sind, werden diese nicht zur Erzeugung des Vorhersagebilds der anderen Bilder verwendet und daher nicht im Vollbildspeicher 37 gespeichert.
- Wenn das Bild des B-Bilds ausgegeben und angezeigt wird, werden die Bilddaten des P-Bilds, die im Rückwärtsvorhersage-Bildteil 37b gespeichert sind, gelesen und dann zum Rechenbetriebsteil 36 über die Bewegungskompensationsschaltung 38 geliefert. In diesem Fall jedoch wird die Bewegungskompensation nicht ausgeführt. Diese Daten werden zur Anzeigeeinheit 40 über den D/A-Umsetzer 3ß geliefert und angezeigt.
- Wenn ein Ungültigkeitscode hinzugefügt ist, wird dieser Ungültigkeitscode in der Variabel-Längen-Decodierschaltung 33 beseitigt.
- Bei dem herkömmlichen Gerät wird der addierte Ungültigkeitscode, wie oben erklärt wurde, als Teil des Datendecodierprozesses (Variabel-Längen-Decodierung) in der Variabel-Längen-Decodierschaltung 33 beseitigt. Wenn der Ungültigkeitscode in der Variabel- Längen-Decodierschaltung 33 beseitigt wird, werden als Folge davon Daten nicht zu jeder Schaltung nach der Invers-Quantisierungsschaltung 34 zu den nachfolgenden Stufen geliefert, was den Nachteil mit sich bringt, daß diese Schaltungen nicht für die Verarbeitung verwendet werden. Bei dem NTSC-System wird ein Bild eines Vollbilds auf der Anzeigeeinheit 40 in der Periode von 1/30 Sekunden angezeigt. Wenn jedoch der Ungültigkeitscode lang ist, kann jede Schaltung nach der Invers-Quantisierungsschaltung 34 nicht die Daten eines Vollbilds innerhalb der Periode von 1/30 Sekunden verarbeiten, wodurch die Anzeige des Bilds auf der Anzeigeeinheit 40 unterbrochen wird.
- Aus der EP-A 44 839 ist ein Bildcodier- und Decodiergerät bekannt, welches einen Empfangspuffer, einen Decodierer und eine Beseitigungseinrichtung umfaßt, um aus dem Datenstrom Ungültigkeitscodes zu beseitigen, die im Übertrager hinzugeführt wurden, um zu verhindern, daß die Übertragungsbitrate zu tief abfällt.
- Aus der US 5 121 205 ist ein System zum Synchronisieren von ersten und zweiten Videosignalen, die kombiniert werden sollen, bekannt. Dadurch ist die Verwendung eines einzigen Synchroncodes offenbart.
- Die vorliegende Erfindung wurde im Hinblick auf diesen Hintergrund vorgeschlagen, und es ist folglich eine Aufgabe der vorliegenden Erfindung, die Unterbrechung eines angezeigten Bilds zu vermeiden und wirksam den regulären Decodierprozeß zu realisieren. Diese Aufgabe wird durch ein Gerät und ein Verfahren gemäß den Ansprüchen 1 bzw. 4 gelöst.
- Die Merkmale und Vorteile der vorliegenden Erfindung werden aus der folgenden Beschreibung, die in Verbindung mit den beiliegenden Zeichnungen hergenommen werden sollte, deutlich, wobei:
- Fig. 1 eine Blockdarstellung ist, die ein Beispiel des Aufbaus eines Bildcodiergeräts nach dem Stand der Technik zeigt;
- Fig. 2(a) bis 2(c) Diagramme sind, um ein Format von Bilddaten zu erklären;
- Fig. 3 ein Diagramm ist, um ein Format von Ungültigkeitsdaten zu erklären, die zu dem existierenden Slice hinzugefügt werden sollen;
- Fig. 4 ein Diagramm ist, um ein Format von Ungültigkeitsdaten zu erklären, die dem existierenden Makroblock hinzugefügt werden sollen;
- Fig. 5 eine Blockdarstellung ist, die ein Beispiel des Aufbaus einer Übertragungsdaten-Steuerschaltung von Fig. 7 und 8 zeigt;
- Fig. 6 eine Blockdarstellung ist, die ein Beispiel des Aufbaus eines Bilddecodiergeräts nach dem Stand der Technik zeigt;
- Fig. 7 eine Blockdarstellung ist, die einen Aufbau einer Ausführungsform des Bildcodiergeräts nach der vorliegenden Erfindung zeigt;
- Fig. 8 eine Blockdarstellung ist, die einen Aufbau einer Ausführungsform einer Übertragungsdaten-Steuerschaltung von Fig. 7 zeigt;
- Fig. 9 ein Diagramm ist, um ein Format eines Stabstartcodes zu erklären, der durch eine Stabstartcode-Erzeugungsschaltung von Fig. 8 erzeugt wurde;
- Fig. 10 ein Flußdiagramm ist, um den Betrieb einer Steuerung von Fig. 8 zu erklären;
- Fig. 11 eine Blockdarstellung ist, die einen Aufbau eines Bilddecodiergeräts zeigt;
- Fig. 12 eine Blockdarstellung ist, die einen Aufbau einer Ausführungsform der Ungültigkeitscode-Beseitigungsschaltung von Fig. 11 zeigt;
- Fig. 13(a) bis 13(e) Zeitablaufdiagramme sind, um den Betrieb einer Ausführungsform der Ungültigkeitscode-Beseitigungsschaltung von Fig. 12 zu erklären;
- Fig. 14 ein Diagramm ist, um den Schreibbetrieb des 8/L-Umsetzers von Fig. 12 zu erklären;
- Fig. 15 eine Blockdarstellung ist, die einen Aufbau der zweiten Ausführungsform der Ungültigkeitscode-Beseitigungsschaltung von Fig. 11 zeigt;
- Fig. 16(a) bis 16(b) Diagramme sind, um den Betrieb einer Ausführungsform der Ungültigkeitscode-Beseitigungsschaltung von Fig. 15 zu erklären;
- Fig. 17 eine Blockdarstellung ist, die einen Aufbau der zweiten Ausführungsform der Übertragungsdaten-Steuerschaltung von Fig. 7 zeigt;
- Fig. 18 ein Diagramm ist, welches Übertragungsdaten zeigt, zu denen ein Ungültigkeitscode hinzugefügt ist, in Abhängigkeit von der Ausführungsform der Übertragungsdaten-Steuerschaltung von Fig. 17;
- Fig. 19 eine Flußdiagramm ist, um den Betrieb der Steuerung von Fig. 17 erklären;
- Fig. 20 eine Blockdarstellung ist, die einen Aufbau der dritten Ausführungsform der Ungültigkeitscode-Beseitigungsschaltung von Fig. 11 zeigt;
- Fig. 21 eine Blockdarstellung ist, die Details des Decodierers von Fig. 20 zeigt;
- Fig. 22(a) bis 22(e) Zeitablaufdiagramm sind, um den Betrieb einer Ausführungsform der Ungültigkeitscode-Beseitigungsschaltung von Fig. 20 zu erklären; und
- Fig. 23 eine Blockdarstellung ist, um einen Aufbau der vierten Ausführungsform der Ungültigkeitscode-Beseitigungsschaltung von Fig. 10 zu zeigen.
- Fig. 7 ist eine Blockdarstellung, die einen Aufbau einer Ausführungsform des Bildcodiergeräts nach der vorliegenden Erfindung zeigt. Die Elemente, die denjenigen eines existierenden Bildcodiergeräts entsprechen, welches in Fig. 1 gezeigt ist, sind mit den gleichen Bezugszeichen versehen. Das heißt, ein Bildcodiergerät nach der vorliegenden Erfindung hat grundsätzlich einen Aufbau, der ähnlich dem eines existierenden Bildcodiergeräts ist, wobei lediglich die Übertragungsdaten-Steuerschaltung 8 gegenüber der existierenden Übertragungsdaten-Steuerschaltung 111 verschieden ist.
- Fig. 8 zeigt ein Beispiel des Aufbaus der Übertragungsdaten-Steuerschaltung 8 von Fig. 7. Bei dieser Ausführungsform werden die Daten, die vom Sendepuffer 7 geliefert werden, zum N/M-Umsetzer 21 geliefert, und der Datenstrom, der in der Einheit von N Bits unterteilt ist, wird in den Datenstrom umgesetzt, der in der Einheit von M Bits unterteilt ist, und dann zum Multiplexer (MUX) 22 geliefert. Zu diesem Multiplexer 22 werden die Daten, die von der Ungültigkeitscode-Erzeugungsschaltung 23 oder der Stabstartcode-Erzeugungsschaltung 24 geliefert werden, selektiv durch den Multiplexer (MUX) 25 geliefert. Die Multiplexer 22 und 25 werden entsprechend einem Ausgangssignal von der Steuerung 26 umgeschaltet.
- Nun wird bei dieser Ausführungsform im Fall des Hinzufügens eines Ungültigkeitscodes zu einem Makroblock ein Format des Ungültigkeitscodes festgelegt, wie dies in Fig. 9 gezeigt ist. Der Ungültigkeitscode wird nämlich durch einen Stabstartcode und einen Einstellungscode gebildet. Der Stabstartcode besteht aus einem Synchron-Code und einem Stabstartcode. Der Synchroncode besteht aus 3-Byte-Daten insgesamt, die aus 2-Byte-Daten bestehen, wobei jedes Bit auf logisch 0 gesetzt ist, und 1-Byte-Daten, wobei das LSB auf logisch 1 und die anderen 7 Bits alle auf logisch 0 gesetzt sind. Dieser Synchroncode ist als eindeutiges Muster festgelegt, und er ist so festgelegt, daß irgendein weiteres Muster, welches das gleiche ist wie der Synchroncode, niemals erzeugt wird. Als Stabcode (angedeutet durch X in der Figur) wird die Information über diese Daten (Information, die den Beginn des Slice, des Vollbilds, der GOP usw. zeigen), beispielsweise des Datenattributs des entsprechenden Makroblocks eingefügt.
- Die Einstellungsdaten sind durch einen Ungültigkeitscode (eines knappen Informationsinhalts) in der Einheit eines Bytes gebildet, wobei jedes Bit auf logisch 0 gesetzt ist, und einen Code, der aus einer vorherbestimmten Anzahl von Bits zur Synchronisation besteht, in der Einheit von 8 Bits. Der Code für die Synchronisation in der Einheit von 8 Bits ist durch die Bits gebildet, beispielsweise, wie in Fig. 9 gezeigt ist, die ergänzt werden, um die verbleibenden Bits (1 Bit in dem Fall der Ausführungsform von Fig. 9), die nicht 8 Bits bilden können, wie der (gerade vorhergehende) gültige Code (angedeutet durch Sternchen * in der Figur) des Makroblocks, in die Daten in der Einheit von 8 Bits umzusetzen (daher die Daten von 7 Bits von logisch 0 bei der Ausführungsform von Fig. 9). Die Anzahl von Bytes, zu denen der Ungültigkeitscode (des knappen Informationsinhalts) hinzugefügt wird, kann frei bestimmt werden, und lediglich die erforderliche Anzahl von Ungültigkeitscodes braucht hinzugefügt werden.
- Das heißt, der Ungültigkeitscode (Ungültigkeitscode mit großem Informationsinhalt) umfaßt zumindest den Stabstartcode von 4 Bytes insgesamt, und wenn erforderlich, den Code zur Synchronisation in der Einheit von 8 Bits hinzuzufügen, wird dieser Synchroncode hinzugefügt. Wenn es außerdem erforderlich ist, den Ungültigkeitscode lang zu machen, wird der Ungültigkeitscode (des knappen Informationsinhalts) in der Einheit der vorgegebenen Anzahl von Bytes hinzugefügt.
- Anschließend wird der Betrieb mit Hilfe des Flußdiagramms von Fig. 10 erklärt. In Fig. 8 wird der Stabstartcode, der in Fig. 9 gezeigt ist, durch eine Stabstartcode-Erzeugungsschaltung 24 erzeugt, und die Einstellungsdaten werden durch eine Ungültigkeitscode- Erzeugungsschaltung 23 erzeugt. Eine Steuerung 26 steuert die Multiplexer 22, 25 entsprechend der Sendepufferinformation und der Byte-Abgleichinformation, die von einem Sendepuffer 7 geliefert werden.
- Das heißt, die Makroblockdaten, die von dem N/M-Umsetzer 21 geliefert werden, werden zuerst (Schritt S1) zum Übertragungsweg über einen Multiplexer 22 geliefert, und es wird (Schritt S2) in der Steuerung entschieden, ob es notwendig ist oder nicht, den Ungültigkeitscode den Makroblockdaten, die von dem N/M-Umsetzer 21 geliefert werden, auf der Basis der Sendepufferinformation (Betrag der gesammelten Daten des Sendepuffers 7), die vom Sendepuffer 7 geliefert wird, hinzuzufügen.
- Wenn die Steuerung 26 entschieden hat, daß es nicht notwendig ist, den Ungültigkeitscode den Makroblockdaten, die von dem N/M-Umsetzer 21 geliefert werden, hinzuzufügen, kehrt der Betrieb zurück zum Schritt S1, und die Makroblockdaten, die anschließend vom Sendepuffer 7 über den N/M-Umsetzer 21 geliefert werden, werden dann an den Übertragungsweg über den Multiplexer 22 ausgegeben.
- Wenn jedoch die Steuerung 26 entschieden hat, daß es notwendig ist, den Ungültigkeitscode den Makroblockdaten, die vom N/M-Umsetzer 21 geliefert werden, hinzuzufügen, wird der Multiplexer 22 umgeschaltet, um Daten, die vom Multiplexer 25 geliefert werden, auszuwählen.
- Gleichzeitig wird während der Zeitdauer von dem Zeitpunkt, wo der Multiplexer 25 umgeschaltet ist, ein Ausgangssignal der Ungültigkeitscode-Erzeugungsschaltung 23 auszuwählen, bis zu dem Zeitpunkt, wo die Steuerung 26 entschieden hat, daß es nicht notwendig ist, den Ungültigkeitscode den Makroblockdaten, die vom N/M-Umsetzer 21 geliefert werden, hinzuzufügen, ein Ausgangssignal der Ungültigkeitscode-Erzeugungsschaltung 23 an den Übertragungsweg über die Multiplexer 25 und 22 ausgegeben (Schritte S3 und S4).
- Gleichzeitig richtet die Steuerung 26 den Byte-Abgleich der Daten ein, die an den Übertragungsweg ausgegeben werden, auf der Basis der Byte-Abgleichinformation, die vom Sendepuffer 7 geliefert wird.
- Danach wird, wenn die Steuerung 26 entschieden hat, daß es nicht notwendig ist, den Ungültigkeitscode den Makroblockdaten, die vom N/M-Umsetzer 21 geliefert werden, hinzuzufügen, der Multiplexer 25 umgeschaltet, um ein Ausgangssignal der Stabstartcode- Erzeugungsschaltung 24 auszuwählen, wodurch lediglich ein Stabstartcode von der Stabstartcode-Erzeugungsschaltung 24 an den Übertragungsweg über die Multiplexer 25 und 22 (Schritt S5) ausgegeben wird.
- Hier kehrt der Betrieb zurück zum Schritt S1, und es werden die Verarbeitungen, die oben erklärt wurden (vom Schritt S1 bis zum Schritt S5) wiederholt.
- Wie oben beschrieben wird, wenn die Makroblockdaten wahrscheinlich eine Bereichsunterschreitung entsprechend der Information, die vom Sendepuffer 7 gesendet wird, erzeugen, der Multiplexer 22 gesteuert, und der Ungültigkeitscode (des großen Informationsinhalts) wird an den Übertragungsweg ausgegeben.
- Fig. 11 ist eine Blockdarstellung, die den Aufbau einer Bilddecodiergeräts zum Decodieren der Daten zeigt, die wie oben erklärt codiert und übertragen wurden. Die Bereiche, die denjenigen von Fig. 6 entsprechen, sind mit den gleichen Bezugszeichen versehen. Das heißt, das Bilddecodiergerät von Fig. 11 besitzt den Aufbau ähnlich dem von Fig. 6, mit der Ausnahme, daß eine Ungültigkeitscode-Beseitigungsschaltung 31 mit der vorhergehenden Stufe des Empfangspuffers 32 verbunden ist. Im Fall dieser Anordnung werden, nachdem der Ungültigkeitscode von den übertragenen Bilddaten in der Ungültigkeitscode-Beseitigungsschaltung 31 beseitigt ist, diese Daten zum Empfangspuffer 32 geliefert und dort gespeichert.
- Fig. 12 zeigt ein Beispiel des Aufbaus der Ungültigkeitscode-Beseitigungsschaltung 31. Bei dieser Anordnung werden die übertragenen Bilddaten (Bitstrom) zum M/8-Umsetzer 51 geliefert und dann in Daten umgesetzt, die in der Einheit von 8 Bits unterteilt sind, von den Daten, die in der Einheit von M Bits unterteilt sind. Im Fall der Übertragung über ein übliches Kommunikationsgerät wird M auf 1 gesetzt. Daher setzt in diesem Fall der M/8-Umsetzer 51 die Daten, die in der Einheit von 1 Bit unterteilt sind, in die Daten um, die in der Einheit von 8 Bits unterteilt sind. Ein Ausgangssignal des M/8-Umsetzers 51 wird einmal zu einem Register 52 zur Zeiteinstellung geliefert und dort gespeichert und danach zum 8/L-Umsetzer 53 geliefert, um die Daten, die in der Einheit von 8 Bits unterteilt sind, in die Daten, die in der Einheit von L Bits unterteilt sind, umzusetzen. Das L entspricht der Anzahl von Schreibbits des Empfangspuffers 32, der in der nachfolgenden Stufe vorgesehen ist.
- Ein Ausgangssignal des M/8-Umsetzers 51 wird außerdem zu einer Null-Ermittlungsschaltung 54 geliefert, und bei den Daten, die in der Einheit von 8 Bits unterteilt sind, wird entschieden, ob diese alle auf logisch 0 oder nicht gesetzt sind. Wenn alle Bits auf logisch 0 gesetzt sind, liefert die Null-Ermittlungsschaltung 54 ein Ermittlungssignal zu einem Zähler 55. Der Zähler 55 zählt das Ermittlungssignal, und dessen Zählwert wird zu einer Schreibsteuerung 56 geliefert. Die Schreibsteuerung 56 steuert den Schreibzustand des 8/L- Umsetzers 53 entsprechend dem gezählten Wert.
- Anschließend wird der Betrieb mit Hilfe des Zeitablaufdiagramms von Fig. 13(a) bis 13(e) erklärt (in diesen Figuren werden die Daten hexadezimal in Byte-Einheit ausgedrückt). Jede Schaltung arbeitet synchron mit einem Takt, wie in Fig. 13(a) gezeigt ist. Der M/8-Umsetzer 51 setzt die Eingangsdaten, die in der Einheit von M Bits unterteilt sind, in die Daten b um, die in der Einheit von 8 Bits (1 Byte) unterteilt sind (Fig. 13(b)), und liefert dann die Daten b sowohl zum Register 52 als auch zur Null-Ermittlungsschaltung 54.
- Die Null-Ermittlungsschaltung 54 liefert das Ermittlungssignal zum Zähler 55, wenn die Logik von 8 Bits, die zu liefern ist; insgesamt auf 0 gesetzt ist. Der Zähler 55 zählt die Anzahl von Ermittlungssignalen (Anzahl von Daten, wo 8 Bits immer auf logisch 0 gesetzt sind), die laufend (in der Taktperiode) von der Null-Ermittlungsschaltung 54 ausgegeben Werden, und liefert den Zählwert d (Fig. 13(d)) zur Schreibsteuerung 56.
- Der Zählwert des Zählers 55 wird zurückgesetzt, wenn das Ermittlungssignal nicht in der Taktperiode von der Null-Ermittlungsschaltung 54 ausgegeben wird. Der Zählwert des Zählers 55 wird dann zurückgesetzt, wenn zumindest eine Logik unter 8 Bits, die vom M/8-Umsetzer 51 ausgegeben werden, nicht Null ist.
- Wenn der Zählwert d des Zählers 55 den vorherbestimmten Wert (4 in dieser Ausführungsform) überstiegen hat, gibt die Schreibsteuerung 56 ein Steuersignal e (Fig. 13(e)) aus, um den Schreibbetrieb des Ausgangssignals c (Fig. 13(c)) des Registers 52 des 8/L-Umsetzers 53 zu verbieten.
- Die Daten, die vom M/8-Umsetzer 51 ausgegeben werden, werden um einen Takt durch das Register 52 verzögert und dann zum 8/L-Umsetzer 53 geliefert, jedoch, wenn jedes Bit von 8 Datenbits auf logisch 0 gesetzt ist, werden 3 Daten maximal in den 8/L-Umsetzer 53 geschrieben. Bei der Ausführungsform nach Fig. 13(a) bis 13(e) werden Drei-Byte-Daten von C1 bis C3 in den 8/L-Umsetzer 53 geschrieben, wobei jedoch verhindert wird, daß Daten von C4 bis C7 in den 8/L-Umsetzer 53 geschrieben werden. Als Folge davon liefert der 8/L- Umsetzer 53 nacheinander die Daten von C8 und C9 nach C 1 bis C3. Bei den übertragenen Daten wird der Stabstartcode durch C6 bis C9 gebildet, wobei jedoch in den Daten, die vom 8/L-Umsetzer 53 geliefert werden, der Stabstartcode durch C2, C3, C8, C9 gebildet wird.
- Die Schreibsteuerung 56 erlaubt Daten bis zu drei Bytes, wo alle Logiken auf 0 gesetzt sind, um durchzulaufen, da diese Daten vor einer Beseitigung geschützt werden müssen, da zwei Bytes erforderlich sind, den Stabstartcode zu bilden, und das verbleibende eine Byte notwendig ist, eine Synchronisation in der Einheit von 8 Bits einzurichten, wie dies mit Hilfe von Fig. 9 erklärt wurde.
- Daher wird bei dieser Anordnung der in Fig. 9 gezeigte Stabstartcode und der Ungültigkeitscode (0 in der Einheit von 8 Bits des knappen Informationsinhalts), der zwischen den Codes zur Synchronisation in der Einheit von 8 Bits eingefügt wurde, im wesentlichen beseitigt.
- Fig. 14 zeigt den wirklichen Datenschreibzustand. Wie in dieser Figur gezeigt ist, werden, wenn die Daten von 5 Bytes, wo alle Logiken auf 0 gesetzt sind, fortlaufend geliefert werden, Daten bis zu 3 Bytes in den 8/L-Umsetzer 53 geschrieben, wobei verboten wird, daß die vierten und fünften Daten dorthin geschrieben werden.
- Wie oben erklärt wurde, werden die Daten, von denen der Ungültigkeitscode beseitigt ist, zum Empfangspuffer 32 geliefert und dort gespeichert. In der Decodierschaltung 50 werden die Daten eines Vollbilds im Fall der Bilddaten des NTSC-Systems innerhalb der Periode von 1/30 s verarbeitet. Die Daten von 2 Bytes, wo alle Logiken, die die Synchroncodes im Stabstartcode bilden, 0 sind, und die Daten, wo die Logik zu Null für die Synchronisation in der Einheit von 8 Bits ist, werden in der Variablen-Längen-Codierschaltung 33 wie beim Stand der Technik beseitigt. Da jedoch die Länge etwa 2 Bytes kurz ist, wird eine längere Zeit niemals erforderlich, diese Daten zu beseitigen, und der gültige Code (codierte Bilddaten) kann effektiv verarbeitet werden.
- Hier wird die Verarbeitung in der Decodierschaltung 50 in der gleichen Weise wie beim Stand der Technik ausgeführt, und daher wird auf die Beschreibung des Betriebs hier verzichtet.
- Anschließend wird ein Beispiel der Aufbaus der Ungültigkeitscode-Beseitigungsschaltung 31 zur Beseitigung des Ungültigkeitscodes durch Umsetzen der übertragenen Daten, die in der Einheit von M Bits unterteilt sind, in die Daten, die in der Einheit von K Bits unterteilt sind, in Fig. 15 gezeigt. In dieser Figur sind die Bereiche, die denjenigen von Fig. 12 entsprechen, mit den gleichen Bezugszeichen versehen. Die übertragenen Bilddaten (Bitstrom) werden zu einem M/K-Umsetzer 61 geliefert und dann in die Daten umgesetzt, die in der Einheit von K Bits unterteilt sind, von den Daten, die in der Einheit von M Bits unterteilt sind. Ein Ausgangssignal des M/K-Umsetzers 61 wird zu einer Registergruppe 62 geliefert, die aus P K-Bit-Registern (nicht gezeigt) bestehen, die seriell zur Zeitablaufeinstellung geschaltet sind, und dann mit dem P-fachen der Taktperiode verzögert. Danach wird das Ausgangssignal zum K/L-Umsetzer 63 geliefert und dann in die Daten umgesetzt, die in der Einheit von L Bits unterteilt sind, von den Daten, die in der Einheit von K Bits unterteilt sind. Hier nimmt bei dieser Anordnung K einen Wert von 8 oder niedrigere Werte an, nämlich einen von 1, 2, 4 oder 8. Außerdem ist P durch 8/K festgelegt.
- Ein Ausgangssignal des M/K-Umsetzers 61 wird außerdem zur Null-Ermittlungsschaltung 64 geliefert, und dadurch wird entschieden, ob die Daten, die in der Einheit von K Bits unterteilt sind, alle auf logisch 0 oder nicht gesetzt sind. Wenn alle Bits auf logisch 0 gesetzt sind, gibt die Null-Ermittlungsschaltung 64 das Ermittlungssignal aus. Der Zähler 55 zählt die Anzahl von Ermittlungssignalen (die Anzahl von Daten, wo 8 Bits insgesamt durch logisch 0 gebildet sind), die fortlaufend von der Null-Ermittlungsschaltung 64 ausgegeben werden, und liefert diesen Zählwert zur Schreibsteuerung 65.
- Wenn der Zählwert des Zählers 55 den Wert überstiegen hat (die Ziffern unter dem Dezimalpunkt werden weggelassen), der durch das Teilen durch K erhalten wird, den Wert, der durch weiteres Addieren von 1 zu dem Wert, der gleich der Summe der Anzahl von 0 (23, (Fig. 9)) des Synchroncodes des Stabstartcodes ist, erhalten wird, die maximale Anzahl von 0 (7), die zur Byte-Synchronisation hinzugefügt sind, und die Anzahl von 0, (die durch die Anwendung bestimmt ist), bei denen erlaubt wird, daß sie zum letzten Bereich des gerade vorhergehenden Gültigkeitscodes (Fig. 9) werden, verbietet die Schreibsteuerung 65 das Schreiben des Ausgangssignals der Registergruppe 62 des K/L-Umsetzers 63.
- In dem Fall daher, wenn die Daten, wo die Anzahl von 0 im letzten Bereich des gerade vorhergehenden gültigen Codes beispielsweise 8 ist, wie in Fig. 16(a) gezeigt ist, da der Wert, der die Anzahl von 0 (23) des Synchroncodes des Stabstartcodes addiert, die maximale Anzahl von 0 (7), die zur Byte-Synchronisation hinzugefügt sind, und die Anzahl von 0 (8), die im letzten Bereich des gerade vorhergehenden gültigen Codes (Fig. 9) angeordnet werden dürfen, und 1 gleich 39 (= 23 + 7 + 8 +1) ist, verbietet die Schreibsteuerung 65 das Schreiben des Ausgangssignals der Registergruppe 62 des K/L-Umsetzers 63, um den Ungültigkeitscode (des knappen Informationsinhalts) zu beseitigen, wenn der Zählwert des Zählers 55 wie folgt wird:
- 39 (= 39/1) oder größer, wenn K = 1:
- 19 (= 39/2 wobei Ziffern unter dem Dezimalpunkt weggelassen sind) oder größer, wenn K = 2;
- 9 (= 39/4, wobei Ziffern unter dem Dezimalpunkt weggelassen sind) oder größer, wenn K = 4;
- 4 (= 39/8, wobei Ziffern unter dem Dezimalpunkt weggelassen sind) oder größer, wenn K = 8.
- In dem Fall von Fig. 16(a) jedoch sind die zu entfernenden Daten der Ungültigkeitscode von 2 Bytes (des knappen Informationsinhalts), der in der Einheit eines Bytes hinzugefügt wurde, jedoch, wie schon mit Hilfe von Fig. 13(a) bis 13(e) erklärt wurde, werden Nullen von zwei Bytes des Synchroncodes des Stabstartcodes tatsächlich beseitigt und der Synchroncode des Stabstartcodes wird durch Interpolation des Teils gebildet, wo Nullen mit Nullen des Ungültigkeitscodes (des knappen Informationsinhalts) beseitigt sind.
- Das heißt, im Fall von Fig. 16(a), wenn K = 1, werden Nullen von 2 Bytes entsprechend dem Zählwert von 39 oder höher, nämlich 39 bis 54 des Synchroncodes beseitigt, und der ursprüngliche Synchroncode wird durch den verbleibenden Synchroncode gebildet (einschließlich der Nullen entsprechend den Zählwerten von 16 bis 31 und 1 als LSB des Synchroncodes), und Nullen von 2 Bytes entsprechend den Zählwerten von 16 bis 31, nämlich der Ungültigkeitscode (des knappen Informationsinhalts) werden beseitigt.
- Außerdem werden, wenn K = 2, Nullen von 2 Bytes entsprechend dem Zählwert von 19 oder höher, nämlich 19 bis 26 des Synchroncodes beseitigt, und der ursprüngliche Synchroncode wird durch den verbleibenden Synchroncode und Nullen entsprechend dem Zählwert von 8 bis 15 gebildet. Wenn K = 4, werden Nullen von 2 Bytes entsprechend dem Zählwert von 9 oder höher, nämlich 9 bis 12 des Synchroncodes beseitigt, und der ursprüngliche Synchroncode wird durch den verbleibenden Synchroncode und Nullen entsprechend dem Zählwert von 4 bis 7 gebildet.
- Wenn K = 8, wird, wie mit Hilfe von Fig. 13(a) bis 13(e) erklärt wurde, der Ungültigkeitscode (des knappen Informationsinhalts) von 2 Bytes im wesentlichen beseitigt. Außerdem in dem Fall, wo die Daten, wo die Anzahl von Nullen, die im letzten Bereich des gerade vorhergehenden gültigen Codes angeordnet werden dürfen, beispielsweise 9 ist, wie in Fig. 16(b) gezeigt ist, geliefert werden, da der Wert, der die Anzahl von Nullen (23) des Synchroncodes des Stabstartcodes, die maximale Anzahl von Nullen (7), die zur Bit- Synchronisation addiert werden, die Anzahl von Nullen (9), die im letzten Bereich des gerade vorhergehenden gültigen Codes (Fig. 9) angeordnet sein dürfen, und 1 gleich 40 ist (= 23 + 7 + 9 + 1), verhindert die Schreibsteuerung 65 das Schreiben eines Ausgangssignals der Registergruppe 62 des K/L-Umsetzers 63, um im wesentlichen den Ungültigkeitscode (des knappen Informationsinhalts) wie im Fall von Fig. 16(b) zu beseitigen, wenn der Zählwert des Zählers 55 wie folgt ist:
- 40 (= 40/1, wobei die Ziffern unterhalb des Dezimalpunkts weggelassen sind) oder höher, wenn K = 1;
- 20 (= 40/2, wobei die Ziffern unterhalb des Dezimalpunkts weggelassen sind) oder höher, wenn K = 2;
- 10 (= 40/4, wobei die Ziffer unterhalb des Dezimalpunkts weggelassen sind) oder höher, wenn K = 4;
- 5 (= 40/8, wobei die Ziffern unterhalb des Dezimalpunkts weggelassen sind) oder höher, wenn K = 8.
- Anschließend zeigt nun Fig. 17 eine Blockdarstellung, die einen Aufbau der zweiten Ausführungsform der Übertragungsdaten-Steuerschaltung 8 des Bildcodiergeräts von Fig. 7 zeigt. In dieser Figur sind die Teile, die denjenigen von Fig. 8 entsprechen, mit den gleichen Bezugszeichen versehen.
- Bei dieser Ausführungsform werden die Daten, die vom Sendepuffer 7 geliefert werden, zum N/M-Umsetzer 21 geliefert, die Daten, die in der Einheit von N Bits unterteilt sind, werden dort in die Daten umgesetzt, die in der Einheit von M Bits unterteilt sind, und die umgesetzten Daten werden dann zu einem Multiplexer (MUX) 72 geliefert. Zu diesem Multiplexer 72 werden außerdem die Daten, die von der Stabstart-Codiererzeugungsschaltung 24 geliefert werden, geliefert. Der Multiplexer 72 kann gemäß einem Ausgangssignal der Steuerung 71 umgeschaltet werden.
- Bei dieser Ausführungsform ist zur Addition des Ungültigkeitscodes zum Makroblock das Format festgelegt, das in Fig. 18 gezeigt ist. Der Ungültigkeitscode wird nämlich durch zumindest einen Stabstartcode gebildet.
- Daher wird in diesem Fall der Stabstartcode hinzugefügt, so viel wie für den Ungültigkeitscode ohne Byte-Abgleich von Daten erforderlich ist (2 Stabstartcodes sind in Fig. 18 hinzugefügt).
- Anschließend wird der Betrieb mit Hilfe des Flußdiagramms von Fig. 19 erklärt. In Fig. 17 wird der Stabstartcode, der in Fig. 18 gezeigt ist, durch eine Stabstartcode-Erzeugungsschaltung 24 erzeugt, und die Steuerung 71 steuert den Multiplexer 72 gemäß der Sendepufferinformation, die vom Sendepuffer 7 geliefert wird.
- Das heißt, daß die Makroblockdaten, die vom N/M-Umsetzer 21 geliefert werden, zunächst (Schritt S11) an den Übertragungsweg über den Multiplexer 72 ausgegeben werden und die Steuerung 71 entscheidet (Schritt S12), ob es notwendig ist oder nicht, den Ungültigkeitscode den Makroblockdaten, die vom N/M-Umsetzer 21 geliefert werden, auf der Basis der Sendepufferinformation, die vom Sendepuffer 7 geliefert wird, hinzuzufügen. Wenn die Steuerung 71 entschieden hat, daß es nicht notwendig ist, den Ungültigkeitscode den Makroblockdaten, die vom N/M-Umsetzer 21 geliefert werden, hinzuzufügen, kehrt der Betrieb zurück zum Schritt S11, und die Makroblockdaten, die anschließend vom Sendepuffer 7 über den N/M-Umsetzer 21 geliefert werden, werden dann zum Übertragungsweg über den Multiplexer 72 ausgegeben.
- Wenn dagegen die Steuerung 71 entschieden hat, daß es notwendig ist, den Ungültigkeitscode zu den Makroblockdaten, die vom N/M-Umsetzer 21 geliefert werden, hinzuzufügen, wird der Multiplexer 72 umgeschaltet, um die Daten, die von der Stabstartcode-Erzeugungsschaltung 24 geliefert werden, auszuwählen.
- Bis die Steuerung 71 entscheidet, daß es nicht notwendig ist, den Ungültigkeitscode den Makroblockdaten, die vom N/M-Umsetzer 21 geliefert werden, hinzuzufügen, wird der Stabstartcode, der von der Stabstartcode-Erzeugungsschaltung 24 ausgegeben wird, an den Übertragungsweg über den Multiplexer 72 ausgegeben (Schritte S12 und S13).
- Wenn die Steuerung 71 entschieden hat, daß es nicht notwendig ist, den Ungültigkeitscode den Makroblockdaten, die vom N/M-Umsetzer 21 geliefert werden, hinzuzufügen, kehrt danach der Betrieb zurück zum Schritt S11, und der Multiplexer 72 wird umgeschaltet, um ein Ausgangssignal des N/M-Umsetzers 21 auszuwählen, und liefert die Daten des nächsten Makroblocks auf den Übertragungsweg.
- Wenn wie oben erklärt es wahrscheinlich ist, daß es vorkommt, daß Makroblockdaten entsprechend der Sendepufferinformation (Information über die Menge von gesammelten Daten des Sendepuffers 7) vom Sendepuffer 7 eine Bereichsunterschreitung haben, wird der Multiplexer 72 so gesteuert, daß er den Ungültigkeitscode (Ungültigkeitscode, der aus zumindest einem Stabstartcode besteht) an den Übertragungsweg ausgibt.
- Fig. 20 ist eine Blockdarstellung, die den Aufbau einer Ungültigkeitscode-Beseitigungsschaltung zeigt, um den Ungültigkeitscode von den Übertragungsdaten zu beseitigen, wo der Ungültigkeitscode durch die in Fig. 17 gezeigte Übertragungsdaten-Steuerschaltung 8 hinzugefügt wurde. In dieser Figur sind die Teile, die gleich denen in Fig. 12 sind, mit den gleichen Bezugszeichen versehen.
- Die übertragenen Bilddaten (Bitstrom) werden zum M/8-Umsetzer 51 geliefert und in die Daten umgesetzt, die in der Einheit von 8 Bits unterteilt sind, von den Daten, die in der Einheit von M Bits unterteilt sind. Ein Ausgangssignal des M/8-Umsetzers 51 wird dann zum Multiplexer 81 und zum Decodierer 83 geliefert. Der Multiplexer 81 wählt in der Einheit des Bits eines der Ausgangssignale vom M/8-Umsetzer 51 und der Registergruppe 82 auf der Basis des Modus des Steuersignals vom Decodierer 83 aus und gibt dieses aus. Ein Ausgangssignal des Multiplexers 81 wird zu einer Registergruppe 82 geliefert, die aus 8-Bit-Registern 82a bis 82d besteht und nacheinander zwischengespeichert und danach zum 8/L-Umsetzer 83, zum Multiplexer 81 und zum Decodierer 83 geliefert.
- Zum Decodierer 83 werden die Ausgangssignale der Register 82a bis 82c der Registergruppe 82 zusätzlich zu den Ausgangssignalen des M/8-Umsetzers 51 und der Registergruppe 82 (Ausgangssignal des Registers 82d) geliefert. Der Decodierer 83 ermittelt den Stabstartcode vom Ausgangssignal des M/8-Umsetzers 51 und Ausgangssignale der Register 82a bis 82d. Bei der Ermittlung des Stabstartcodes gibt der Decodierer 83 das Steuersignal des vorherbestimmten Modus an den Multiplexer 81 aus, und gibt außerdem das Ermittlungssignal an die Schreibsteuerung 84 aus.
- Die Schreibsteuerschaltung 84 steuert auf der Basis des Ermittlungssignals vom Decodierer 83 den Schreibzustand des 8/L-Umsetzers 53. Beim Empfang des Ermittlungssignals vom Decodierer 83 verbietet die Schreibsteuerung 84 das Schreiben eines Ausgangssignals vom Register 82d des 8/L-Umsetzers 53 lediglich für die Periode entsprechend von 4 Bytes der Stabstart-Codelänge.
- Anschließend wird der Betrieb erklärt. Die Eingangsdaten, die in der Einheit von M Bits unterteilt sind, werden im M/8-Umsetzer 51 in die Daten umgesetzt, die in der Einheit von 8 Bits (1 Byte) unterteilt sind. Diese Ausgangsdaten werden dann zur Registergruppe 82 über den Multiplexer 81 geliefert und dann nacheinander durch die Register 82a bis 82d zwischengespeichert.
- Die 8-Bit-Daten D vom M/8-Umsetzer 51 und die Daten DA bis DD von 8 Bits, die durch die Register 82a bis 82d zwischengespeichert wurden, werden zum Decodierer 83 geliefert. Der Decodierer 83 ermittelt den in Fig. 18 gezeigten Stabstartcode, wie später erklärt wird, aus den 40-Bit-Daten insgesamt einschließlich den 8-Bit-Daten D vom M/8-Umsetzer 51 und den Daten DA bis DD von 8 Bits, die durch die Register 82a bis 82d zwischengespeichert wurden.
- Wie nämlich in Fig. 21 gezeigt ist, besteht beispielsweise der Decodierer 83 aus den Decodierern 91a bis 81h, einem Codierer 92 und einem ODER-Gate 93. Die Daten DA bis DD von 8 Bits, die durch die Register 82a bis 82d zwischengespeichert wurden, werden zum Decodierer 91a geliefert.
- Hier wird jedes Bit der 8-Bit-Daten D (ähnlich DA, DB, DC, DD) nacheinander vom MSB als D[7], D[6], D[5], D[4], D[3], D[2], D[1], D[0] ausgedrückt. Außerdem werden die Daten, die aus den Bits D[X] bis D[X'] der 8-Bit-Daten D bestehen, als D[X : X'] (wobei X' > X) definiert. Daher wird beispielsweise für den Fall, die Daten D selbst auszudrücken, diese als D[7 : 0] anschließend ausgedrückt.
- Im Decodierer 91a wird der Abgleich zwischen den 32-Bit-Daten (anschließend als Daten {DD[7 : 0], DB[7 : 0], DB[7 : 0], DB[7 : 0], DA[7 : 0]} beschrieben) vorgenommen, wo die 8- Bit-Daten DA[7 : 0], bis DD[7 : 0], die entsprechend durch die Register 82a bis 82d gespeichert wurden, in der Sequenz von DD[7 : 0], DC[7 : 0], DB[7 : 0], DA[7 : 0] und dem Stabstartcode, der in die 32-Bit-Einheit unterteilt ist, wie in Fig. 18 gezeigt ist, angeordnet sind. Wenn der Abgleich zwischen den Daten {DD[7 : 0], DC[7 : 0], DB[7 : 0], DA[7 : 0] und dem Stabstartcode hergenommen wird, liefert der Decodierer 91a beispielsweise die Daten eines H Pegels unter den H- und L-Pegeln zum Codierer 92 oder zum ODER-Gate 93.
- Weiter werden zum Decodierer 91b die 8-Bit-Daten D[7 : 0] vom M/8-Umsetzer 51 und die Daten {DD[6 : 0], DC[7 : 0], DB[7 : 0], DA[7 : 0], D[7]} unter den 8-Bit-Daten DA[7 : 0] bis DD[7 : 0], die durch die Register 82a bis 82d zwischengespeichert wurden, geliefert.
- Im Decodierer 91b werden die Daten {DD[6 : 0], DC[7 : 0], DB[7 : 0], DA[7 : 0], D[7]} mit dem Stabstartcode in der Einheit von 32 Bits abgeglichen, wie in Fig. 18 gezeigt ist.
- Wenn der Abgleich zwischen den Daten
- {DD[6 : 0], DC[7 : 0], DB[7 : 0], DA[7 : 0], D[7]} und dem Stabstartcode erhalten wird, werden die Daten beispielsweise mit dem H-Pegel unter dem H-Pegel und dem L- Pegel zum Codierer 92 oder zum ODER-Gate 93 ausgegeben.
- Auf die gleiche Art und Weise wird der Abgleich in den Decodierern 91c bis zu den Decodierern 91h zwischen dem Stabstartcode in der Einheit von 32 Bits, wie in Fig. 18 gezeigt ist, und den Daten {{DD[5 : 0], DC[7 : 0], DB[7 : 0], DA[7 : 0], D[7 : 6]}, Daten {DD[4 : 0], DC[7 : 0], DB[7 : 0], DA[7 : 0], D[7 : 5]}, Daten {DD[3 : 0], DC[7 : 0], DB[7 0], DA[7 : 0], D[7 : 4]}, Daten {DD[2 : 0], DC[7 : 0], DB[7 : 0], DA[7 : 0], D[7 : 3]}, Daten {DD[1 : 0], DC[7 : 0], DB[7 : 0], DA[7 : 0], D[7 : 2]}, oder Daten {DD[0], DC[7 : 0], DB[7 : 0], DA[7 : 0], D[7 : 1]} erzielt.
- Wenn der Abgleich erreicht werden kann, werden beispielsweise die Daten des H- Pegels unter dem H-Pegel und dem L-Pegel zum Codierer 92 oder zum ODER-Gate 93 geliefert.
- Das heißt, daß der Abgleich zwischen dem Bitstrom der oberen 32 Bits, dem Bitstrom von 32 Bits vom oberen zweiten Bit ... und vom Bitstrom von 32 Bits vom oberen achten Bit der Daten (Daten {DD[7 : 0], DC[7 : 0], DB[7 : 0], DA[7 : 0], D[7 : 0]} von 40 Bits, die aus 5 Daten bestehen, die in der Einheit von 8 Bits unterteilt sind, die nacheinander vom M/8-Umsetzer 51 ausgegeben werden, und dem Stabstartcode von 32 Bits in den Decodierern 91a bis 91h erreicht werden kann.
- Wenn alle Ausgangssignale der Decodierer 91a bis 91h den L-Pegel haben, d. h., wenn der Stabstartcode nicht in den Daten von 40 Bits enthalten ist, die aus 5 Daten in der Einheit von 8 Bits bestehen, die nacheinander vom M/8-Umsetzer 51 ausgegeben werden, liefert der Codierer 92 das Steuersignal des Modus 0 zum Multiplexer 81 (Fig. 20). In diesem Fall wählt der Multiplexer 81 ein Ausgangssignal des M/8-Umsetzers 51 aus und liefert dieses Ausgangssignal zur Registergruppe 82.
- Wenn daher der Stabstartcode nicht in den 8-Bit-Daten enthalten ist, die aus 5 Daten in der Einheit von 8 Bits bestehen, die nacheinander vom M/8-Umsetzer 51 ausgegeben werden, wird ein Ausgangssignal des M/8-Umsetzers 51 nacheinander zum 8/L-Umsetzer 53 über den Multiplexer 81 und die Registergruppe 82 ausgegeben.
- Wenn ein Ausgangssignal des Decodierers 91a den hohen Pegel annimmt, d. h., wenn die oberen 32 Bits der 40-Bit-Daten, die aus 5 8-Bit-Dateneinheiten bestehen, die nacheinander vom M/8-Umsetzer 51 ausgegeben werden, den Stabstartcode bilden, gibt der Codierer 92 ein Steuersignal des Modus 0 zum Multiplexer 81 aus, und das ODER-Gate 93 dreht dieses Ausgangssignal auf den H-Pegel und liefert dieses H-Pegelsignal zur Schreibsteuerung 84 als Ermittlungssignal.
- In diesem Fall wählt der Multiplexer 81 ein Ausgangssignal des M/8-Umsetzers 51 aus und liefert dieses dann zur Registergruppe 82, und gleichzeitig verbietet die Schreibsteuerung 84 das Schreiben des Ausgangssignals der Registergruppe 82 des 81-Umsetzers 53 lediglich für die Periode von 4 Bytes (32 Bits) gleich der Stabstart-Codelänge.
- In diesem Fall können folglich die oberen 32 Bits, die durch die Register 82d bis 82a in der 8-Bit-Einheit unter den 40-Bit-Daten zwischengespeichert wurden, die nacheinander vom M/8-Umsetzer 51 ausgegeben werden, d. h., der Stabstartcode beseitigt werden.
- Wenn außerdem ein Ausgangssignal des Decodierers 91b den H-Pegel hat, d. h., wenn 32 Bits vom oberen zweiten Bit der 40-Bit-Daten, die aus 5 8-Bit-Dateneinheiten bestehen, den Stabstartcode bilden, gibt der Codierer 92 ein Steuersignal des Modus 1 zum Multiplexer 81 aus, und das ODER-Gate 93 dreht das Ausgangssignal auf den H-Pegel und liefert dieses H-Pegelausgangssignal zur Schreibsteuerung 84 als Ermittlungssignal.
- Beim Empfang des Steuersignals des Modus 1 wählt der Multiplexer 81 zunächst nur das obere eine Bit (die Anzahl von Bits in der gleichen Anzahl wie der Modus) DD[7] der Daten DD[7 : 0] aus, welche durch das Register 82 zwischengespeichert wurden, und wählt danach die unteren 7 Bits (die Anzahl von Bits gleich der Anzahl, die durch Subtraktion der Moduszahl von 8 Bits erhalten wird) D[6 : 0] der Daten D[7 : 0] aus, die vom M/8-Umsetzer 8 ausgegeben werden, und liefen die Daten von 8 Bits insgesamt zum Register 82a.
- D. h., daß die Daten {DD[7], D[6 : 0]} zum Register 82a geliefert werden.
- Gleichzeitig verbietet die Schreibsteuerung 84 das Schreiben von Ausgangssignalen von der Registergruppe 82 des 8/L-Umsetzers 53 nur für die Periode von 4 Bytes (32 Bits) gleich der Stabstart-Codelänge.
- Gemäß diesem Fall werden die oberen 32 Bits {DD[7 : 0], DC[7 : 0], DB[7 : 0], DA[7 : 0]}, die durch die Register 82d bis 82a gespeichert wurden, unter den 40-Bit-Daten {DD[7 : 0], DC[7 : 0], DB[7 : 0], DA[7 : 0], D[7 : 0]}, die nacheinander vom M/8-Umsetzer 51 ausgegeben werden, beseitigt, und die oben erwähnten Daten {DD[7], D[6 : 0]} werden an das Register 82a vom Multiplexer 81 ausgegeben.
- Es werden nämlich die Daten {DD[7], D[6 : 0]}, die durch Beseitigung der 32- Bit-Daten {DD[6 0], DC[7 : 0], DB[7 : 0], DA[7 : 0], D[7]} vom oberen zweiten Bit als Stabstartcode von den 40-Bit-Daten {DD[7 : 0], DC[7 : 0], DB[7 : 0], DA[7 : 0], D[7 : 0]} erhalten werden, die nacheinander vom M/8-Umsetzer 51 ausgegeben werden, an das Register 82a vom Multiplexer 81 ausgegeben.
- Wenn außerdem ein Ausgangssignal des Decodierers 81c auf den H-Pegel dreht, d. h., wenn die 32 Bits vom oberen dritten Bit der 40-Bit-Daten, die aus 5 8-Bit-Dateneinheiten bestehen, den Stabstartcode bilden, gibt der Codierer 92 ein Steuersignal des Modus 2 an den Multiplexer 81 aus, und das ODER-Gate 93 dreht das Ausgangssignal auf den H-Pegel und liefert dieses H-Pegelsignal zur Schreibsteuerung 84 als Ermittlungssignal. Beim Empfang des Steuersignals des Modus 2 wählt der Multiplexer 81 die oberen beiden Bits DD[7 : 6] der Daten DD[7 : 0], die durch das Register 82d zwischengespeichert wurden, aus, und wählt danach die unteren 7 Bits D[6 : 0] der Daten D[7 : 0] aus, die vom M/8-Umsetzer 8 ausgegeben wurden, um die Daten von 8 Bits insgesamt zum Register 82a zu liefern.
- Das heißt, daß die Daten {DD[7 : 6], D[5 : 0]} zum Register 82a geliefert werden.
- Gleichzeitig verbietet die Schreibsteuerung 84 das Schreiben des Ausgangssignals der Registergruppe 82 des 8/L-Umsetzers 53 lediglich für die Periode von 4 Bytes (32 Bits) wie die Stabstart-Codelänge.
- Daher werden in diesem Fall die oberen 32 Bits {DD[7 : 0], DC[7 : 0], DB[7 : 0], DA[7 : 0]}, die durch die Register 82d bis 82a unter den 40-Bit-Daten {DD[7 : 0], DC[7 : 0], DB[7 : 0], DA[7 : 0], D[7 : 0]} zwischengespeichert wurden, die nacheinander von dem M/8- Umsetzer 51 ausgegeben werden, beseitigt, und die oben erwähnten Daten {DD[7 : 6], D[5 : 0]} werden an das Register 82a vom Multiplexer 81 ausgegeben.
- Das heißt, die Daten {DD[7 : 6], D[5 : 0]} die durch Beseitigung der 32-Bit-Daten {DD[5 : 0], DC[7 : 0], DB[7 : 0], DA[7 : 0], D[7 : 6]} vom oberen dritten Bit als Stabstartcode von den 40-Bit-Daten {DD[7 : 0], DC[7 : 0], DB[7 : 0], DA[7 : 0], D[7 : 0]} erhalten werden, die nacheinander vom M/8-Umsetzer 51 ausgegeben werden, werden an das Register 82a vom Multiplexer 81 ausgegeben.
- Auf die gleiche Art und Weise wird, wenn ein Ausgangssignal von den Decodierern 91 bis 91h auf den H-Pegel dreht, das Schreiben von Daten, die durch die Register 82a bis 82d zwischengespeichert sind, zum 8/L-Umsetzer 53 verboten, und es wird das Eingangs signal zum Multiplexer 81 in der Einheit eines Bits ausgewählt. Dadurch wird der Stabstartcode von 40-Bit-Daten, die nacheinander in der Einheit von 8 Bits vom M/8-Umsetzer 51 ausgegeben werden, beseitigt.
- In Fig. 21 zeigen die Bezugszeichen, die der linken Seite des Codierers 92 zugeteilt sind, die Modi der Steuersignale, die ausgegeben werden, wenn das H-Pegeleingangssignal von den Decodierern 91a bis 91h aufgeprägt wird.
- Anschließend zeigt Fig. 22 ein Zeitablaufdiagramm, in einem Fall, wo zwei Stabstartcodes als Ungültigkeitscodes von den Übertragungsdaten beseitigt werden, die in Fig. 18 gezeigt sind. Die Daten (Fig. 22(b)), die vom M/8-Umsetzer 51 ausgegeben werden, werden zur Registergruppe 82 über den Multiplexer 81 geliefert, und die Daten, die vom M/8-Umsetzer 51 ausgegeben werden, werden nacheinander (Fig. 22(c) bis 22(D) durch die Register 82a bis 82d in der Registergruppe 82 im Taktzeitpunkt (Fig. 22(a)) zwischengespeichert. Im Fall von Fig. 22(a) bis 22(i) werden bei dem Takt T5 (Fig. 22(a)) die 32-Bit-Daten {DD[0], DC[7 : 0], DB[7 : 0], DA[7 : 0], D[7 : 1]} vom oberen achten Bit als ersten Stabstartcode von den 40-Bit-Daten {DD[7 : 0], DC[7 : 0], DB[7 : 0], DA[7 : 0], D[7 : 0]}, die aus 5 8-Bit-Dateneinheiten bestehen, nacheinander vom M/8-Umsetzer 51 ausgegeben.
- Daher nimmt in diesem Fallein Ausgangssignal des Decodierers 91h des Decodierers 83 einen H-Pegel an, und der Codierer 92 gibt ein Steuersignal des Modus 7 an den Multiplexer 81 aus, während das ODER-Gate 93 sein Ausgangssignal auf den hohen Pegel (H) dreht (Fig. 22(g)) und das Ausgangssignal zur Schreibsteuerung 84 als Ermittlungssignal liefert.
- Der Multiplexer 81 wählt beim Empfang des Steuersignals des Modus 7 (Fig. 22(i)) lediglich die oberen 7 Bits DD[7 : 1] der Daten DD[7 : 0] aus, die durch das Register 82d zwischengespeichert sind, und liefert diese zum Register 82a (dem Teil, der durch den Pfeil P in der Figur gezeigt ist), und wählt außerdem das untere eine Bit D[0] der Daten D[7 : 0] aus, die vom M/8-Umsetzer 8 ausgegeben werden, und liefert dann die 8-Bit-Daten zum Register 82a (dem Teil, der durch den Pfeil P' in der Figur angedeutet ist).
- Die Daten {DD[7 : 1], D[6]} (Fig. 22(c)), die aus den oberen 7 Bits DD [7 : 1] als gültiger Code (Bilddaten) (der Teil, der durch * in der Figur angedeutet ist) unter den Daten DD[7 : 0] (Fig. 22(D)) bestehen, die durch das Register 82d gespeichert sind, und das untere eine Bit D[0] der Daten D[7 : 0] (Fig. 22(b)), die vom M/8-Umsetzer 8 ausgegeben werden, werden zum Register 82a geliefert.
- Gleichzeitig wird das Schreiben eines Ausgangssignals (Fig. 22(f)) aus dem Register 82d des 8/L-Umsetzers 53 in die Schreibsteuerung 84 nur für die Periode von 4 Bytes (32 Bits) wie die Stabstart-Codelänge verboten, nämlich nur für die Periode vom Takt T5 bis T8 (Fig. 22(h)), und es wird der erste Stabstartcode beseitigt.
- Während dieser Periode (vom Takt T5 bis T8) werden die Daten {DD[T : 0], D[6]}, die zum Register 82a geliefert werden, nacheinander durch die Register 82a bis 82c zwischengespeichert und ebenfalls durch das Register 82d beim Takt T9 zwischengespeichert.
- Bei diesem Takt T9 (Fig. 22(a)) werden die 32-Bit-Daten {DD[0], DC[7 : 0], DB[7 : 0], DA[7 : 0], D[7 : 1]} vom oberen achten Bit als zweiten Stabstartcode aus den 40- Bit-Daten {DD[7 : 0], DC[7 : 0], DB[7 : 0], DA[7 : 0], D[7 : 0]} ermittelt, die aus 5 8-Bit- Dateneinheiten bestehen, die nacheinander vom M/8-Umsetzer 51 ausgegeben werden.
- Daher dreht in diesem Fall ein Ausgangssignal des Decodierers 91h des Decodierers 83 auf den H-Pegel, und der Decodierer 92 gibt ein Steuersignal des Modus 7 an den Multiplexer 81 aus, während das ODER-Gate 93 sein Ausgangssignal auf den H-Pegel dreht (Fig. 22(g)) und dieses zur Schreibsteuerung 84 als Ermittlungssignal liefert.
- Beim Empfang des Steuersignals des Modus 7 wählt der Multiplexer 81 zunächst (Fig. 22(i)) nur die oberen 7 Bits DD[7 : 1] der Daten DD[7 : 0], die durch das Register 82d gespeichert wurden, aus, auf die das Liefern dieser Daten zum Register 82a (der Teil, der durch den Pfeil Q in der Figur angedeutet ist) folgt, wählt dann das untere eine Bit D[0] der Daten D[7 : 0] aus, welches vom M/8-Umsetzer 8 ausgegeben wurde, und liefert dann die Daten von 8 Bits zum Register 82a (der Teil, der durch den Pfeil Q' in der Figur angedeutet ist).
- Das heißt, die Daten {DD[7 : 1], D[b]} (Fig. 22(c)); die aus den oberen 7 Bits DD[7 : 1] als gültiger Code (Bildcode) bestehen (der Teil, der durch * in der Figur angedeutet ist) unter den Daten DD[7 : 0] (Fig. 22(f)), die durch das Register 82d zwischengespeichert sind, und dem unteren einen Bit D[0] von den Daten D[7 : 0] (Fig. 22(b)), die vom M/8-Umsetzer ausgegeben werden, werden zum Register 82a geliefert.
- Gleichzeitig wird das Schreiben des Ausgangssignals (Fig. 22(f)) von dem Register 82d des 8/L-Umsetzers 53 in der Schreibsteuerung 84 für eine Periode von 4 Bytes (32 Bits) wie die Stabstart-Codelänge verboten, nämlich für die Periode des Taktes T9 bis T12 (Fig. 22(h)), und der zweite Stabstartcode wird beseitigt.
- Während dieser Periode (Takt T9 bis T12) werden die Daten {DD[7 : 1], D[6], die zum Register 82a geliefert werden, nacheinander durch die Register 82a bis 82c zwischengespeichert, und sie werden ebenfalls durch das Register 82d beim Takt T13 zwischengespeichert.
- Bei diesem Takt T13 wird das Schreibverbot des Ausgangssignals (Fig. 22(f)) des Registers 82d des 8/L-Umsetzers 53 gelöscht, das Ausgangssignal (Fig. 22(f)) des Registers 82d wird dann in den 8/L-Umsetzer geschrieben und dann in die Daten in der Einheit von L Bits umgesetzt, die dann zum Empfangspuffer 32 geliefert werden.
- Das heißt, es werden lediglich die Übertragungsdaten, von denen 2 Stabstartcodes als Ungültigkeitsdaten beseitigt wurden, nämlich die codierten Bilddaten (der Teil, der durch * beim Takt T13 und T14 von Fig. 22(f) angedeutet ist) zum Empfangspuffer 32 geliefert.
- Wie oben beschrieben kann gemäß der Ungültigkeitscode-Beseitigungsschaltung 31, die in Fig. 20 gezeigt ist, der Ungültigkeitscode, der lediglich aus zumindest dem einen Stabstartcode besteht, von den Übertragungsdaten, die nicht byte-abgeglichen sind, beseitigt werden.
- Außerdem kann der Ungültigkeitscode, der lediglich zumindest nur aus dem einen Stabstartcode besteht, von den Übertragungsdaten beseitigt werden, indem die Übertragungsdaten, die in der Einheit von M Bits unterteilt sind, in die Daten, die in der Einheit von K Bits unterteilt sind, umgesetzt werden.
- In diesem Fall wird die Ungültigkeitscode-Beseitigungsschaltung 31 so gebildet, wie in Fig. 23 gezeigt ist. In dieser Figur sind die Teile, die denen in Fig. 20 gleich sind, mit den gleichen Bezugszeichen versehen.
- Der M/K-Umsetzer 104 setzt die gelieferten übertragenen Daten in der Einheit von M Bits in die Daten in der Einheit von K Bits um und liefert diese K-Bitdaten zum Multiplexer 81 und zum Decodierer 102. Die Registergruppe 101 ist durch seriell-geschaltete P K- Bitregister (nicht gezeigt) gebildet und liefert dann das Ausgangssignal des Multiplexers 81 zum K/L-Umsetzer 63, zum Multiplexer 81 und zum Decodierer 102, nachdem dieses um das P-fache der Taktperiode verzögert ist.
- In diesem Fall ist jedoch P durch einen Wert festgelegt (Ziffern unterhalb des Dezimalpunkts sind weggelassen), der durch Teilen der Stabstart-Codelänge (32 Bits) durch K erhalten wird.
- Der Decodierer 102 ermittelt den Stabstartcode von einem Bitstrom, der aus dem Ausgangssignal des M/K-Umsetzers 104 und den Daten besteht, die jeweils durch die P Register, die die Registergruppe 101 bilden, besteht. Der Decodierer 102 liefert außerdem, wenn der Stabstartcode aus dem Bitstrom, der aus dem Ausgangssignal des M/K-Umsetzers 104 und dem Ausgangssignal der P Register besteht, die die Registergruppe 101 bilden, ermittelt wird, ein Ermittlungssignal zur Schreibsteuerung 103 und liefert außerdem das Steuersignal des vorherbestimmten Modus zum Multiplexer 81.
- Die Schreibsteuerung 103 steuert auf der Basis des Ermittlungssignals vom Decodierer 102 den Schreibbetrieb der Ausgabe der Registergruppe 101 des K/L-Umsetzers 63 (Ausgang des PLh-Registers als das Register in der Endgruppe unter diesen, die Registergruppe 101 bilden).
- In der Ungültigkeitscode-Beseitigungsschaltung 31, die wie oben erklärt aufgebaut ist, setzt der M/K-Umsetzer 104 zunächst die Eingangsübertragungsdaten von M-Bit- Dateneinheiten in K-Bit-Dateneinheiten um. Ein Ausgangssignal des M/K-Umsetzers 104 wird zum Codierer 102 und außerdem zur Registergruppe 101 über den Multiplexer 81 geliefert.
- Die Registergruppe 101 speichert nach und nach die K-Bit-Dateneinheiten mit den bestehenden P Registern und liefert die Daten zum K/L-Umsetzer 63 und zum Multiplexer 81.
- Außerdem werden die Ausgangssignale der P Register, die die Registergruppe 101 bilden, entsprechend zum Decodierer 102 zusammen mit einem Ausgangssignal des M/K-Umsetzers geliefert.
- Der Decodierer 102 ermittelt den Stabstartcode aus dem Bitstrom, der aus einem Ausgangssignal des M/K-Umsetzers 104 und den entsprechenden Ausgangssignalen der P- Register, die die Registergruppe 101 bilden, besteht. Dieser Decodierer 102 liefert, wenn ein Stabstartcode aus dem Bitstrom ermittelt wird, der aus dem Ausgangssignal des M/K-Umsetzers 104 und den entsprechenden Ausgangssignalen der P Register besteht, die die Registergruppe 101 bilden, ein Ermittlungssignal zur Schreibsteuerung 103, und liefert außerdem zum Multiplexer 81 von dem Bitstrom, aus einem Ausgangssignal des M/K-Umsetzers 104 und den entsprechenden Ausgangssignalen der P Register, die die Registergruppe 101 bilden, besteht, ein Steuersignal der Modusnummer, die durch die Ermittlungspositionsinformation in bezug auf die Ermittlungsposition des Stabstartcodes bestimmt ist (die Zahl, daß der Stabstartcode durch 32 Bits gebildet ist, wobei von dem Bit der Daten (P + 1) + K Bits begonnen wird, wo die Daten, die jeweils durch die P Register gespeichert sind, die die Registergruppe 101 bilden, mit den Daten angeordnet sind, durch das Register der letzten Gruppe gespeichert wurden, die an der obersten Position angeordnet sind, und ein Ausgangssignal des M/K-Umsetzers 104 an der untersten Position hinzugefügt wird).
- Im Multiplexer 81 wird das Ausgangssignals des M/K-Umsetzers 104 oder das Ausgangssignal der Registergruppe 101 (Ausgangssignal des P-ten Registers als Register in der Endgruppe unter diesen, die die Registergruppe 101 bilden) in der Einheit des Bits in der gleichen Weise wie Fig. 20 ausgewählt, um zur Registergruppe 101 ausgegeben zu werden, auf der Basis des Modus (Modusnummer) des Steuersignals vom Decodierer 102.
- Wenn nämlich der gerade vorhergehende gültige Code des Stabstartcodes durch das P-te Register der so gebildeten Registergruppe 101 wie oben erklärt zwischengespeichert wird, wird dieser gültige Code auf die Position unmittelbar nach dem Stabstartcode verschoben.
- Wenn gleichzeitig das Ermittlungssignal vom Decodierer 102 in der Schreibschaltung 103 empfangen wird, wird das Schreiben des Ausgangssignals der Registergruppe 101 des K/L-Umsetzers 63 (Ausgangssignal des P-ten Registers wie die Register der Endgruppe unter den Registern, die die Registergruppe 101 bilden) lediglich für die Periode von vier Bytes wie die Stabstart-Codelänge verboten und dadurch wird der Stabstartcode beseitigt.
- Wenn K = 1 ist, da der Stabstartcode und der Gültigkeitscode im Übertragungscode unabhängig im Register von K Bits, die die Registergruppe 101 bilden, gespeichert sind, nämlich ein Bit, sind der Stabstartcode und der Gültigkeitscode schon sozusagen getrennt, und daher ist es nicht länger erforderlich, den Multiplexer 81, die Signalleitungen 105 und 106 vorzusehen.
- Außerdem wird in diesem Fall ein Wert P auf den Wert gesetzt, der durch die Teilung des Stabstartcodes durch K erhalten wird, und außerdem durch Subtraktion einer 1 vom Wert, der durch die Teilung erhalten wird. Der Wert P wird bei dieser Ausführungsform nämlich zu 31.
- Bei dieser Ausführungsform wird ein Format des Ungültigkeitscodes, welches in der Einheit eines Slice oder Bilds hinzugefügt wird, gleich dem des Ungültigkeitscodes gesetzt, der der Makroblockeinheit hinzugefügt ist.
- Wenn somit der Ungültigkeitscode, der in der Einheit des Slice oder Bilds hinzugefügt ist, tatsächlich existiert, wird dieser Ungültigkeitscode in der Ungültigkeitscode-Beseitigungsschaltung 21 in der gleichen Weise wie der Ungültigkeitscode, der in der Einheit des Makroblocks hinzugefügt wurde, beseitigt.
- Wie oben erklärt werden ungültige Daten der übertragenen komprimierten Bilddaten beseitigt, bevor diese im Speicher gespeichert werden, und daher kann der Decodierprozeß durch die Decodiereinrichtung effektiv durchgeführt werden, und es kann eine Unterbrechung der Anzeige des Bilds vermieden werden.
- Außerdem werden die Ungültigkeitsdaten, die zu den Makroblockdaten hinzugefügt sind, durch den Stabstartcode gebildet, und daher können die ungültigen Daten vor dem Beginn der Decodieroperation beseitigt werden.
- Außerdem ist den ungültigen Daten, die dem Slice oder Makroblock hinzugefügt werden, das gemeinsame Format verliehen, und daher können diese ungültigen Daten mit der gemeinsamen Schaltung beseitigt werden, sogar wenn die ungültigen Daten zum Slice oder zum Makroblock hinzugefügt sind.
- Obwohl bevorzugte Ausführungsformen der vorliegenden Erfindung gezeigt und hier beschrieben wurden, versteht es sich für den Fachmann, daß diese Ausführungsformen lediglich ein Ausführungsbeispiel bilden. Zahlreiche Variationen, Veränderungen und Substitutionen werden dem Fachmann einfallen, ohne die Erfindung zu verlassen. Somit ist beabsichtigt, daß die Erfindung nur durch den Rahmen der beigefügten Patentansprüche begrenzt ist.
Claims (7)
1. Bildcodiergerät, welches umfaßt:
eine Einrichtung (61) zum Unterteilen von Bilddaten eines Vollbilds in mehrere
Makroblöcke, wobei ein Makroblock aus einer zweidimensionalen Anordnung von mehreren
Pixeln besteht;
eine Einrichtung (6) zum Codieren von Daten des Makroblocks, wobei ein
vorherbestimmtes Datenkompressionsverfahren verwendet wird;
eine Einrichtung zum Hinzufügen eines Ungültigkeitscodes zu den komprimierten
Daten des Makroblocks, um eine Bereichsunterschreitung von Daten in einem
Übertragungskanal zu verhindern, wobei die Hinzufügungseinrichtung umfaßt:
eine Startcode-Erzeugungseinrichtung (24) zum Erzeugen eines Startcodes, der
aus einem Synchroncode besteht, der festgelegt ist, ein Muster zu haben, welches nicht
innerhalb der Bilddaten erzeugt wird, und einen Code, um die Information über die Daten des
Makroblocks anzuzeigen; und
eine Hinzufügungseinrichtung (22, 25, 72) zum Hinzufügen des Startcodes, der
durch die Startcode-Erzeugungseinrichtung (24) ausgegeben wird, zu den komprimierten
Bilddaten des Makroblocks als Ungültigkeitscode.
2. Bildcodiergerät nach Anspruch 1, welches außerdem umfaßt:
eine Einstellungsdaten-Erzeugungseinrichtung (23) zum Erzeugen von
Einstellungsdaten, die aus logischen "0" für so viele wie eine gewünschte Anzahl von Bits bestehen;
und wobei die Hinzufügungseinrichtung (22, 25) außerdem die Einstellungsdaten
zu den Bilddaten des Makroblocks zu dem einen Startcode hinzufügt, der durch die Startcode-
Erzeugungseinrichtung (24) ausgegeben wird.
3. Bildcodiergerät nach Anspruch 1, wobei die Hinzufügungseinrichtung (22, 25)
zumindest einen von diesem Startcode, der von der Startcode-Erzeugungseinrichtung (24)
ausgegeben wird, hinzufügt.
4. Bildcodierverfahren, welches folgende Schritte umfaßt:
Teilen (61) von Bilddaten eines Vollbilds in mehrere Makroblöcke, wobei ein
Makroblock aus einer zweidimensionalen Anordnung von mehreren Pixeln besteht;
Codieren von Daten (6) des Makroblocks, wobei ein vorherbestimmtes
Datenkompressionsverfahren verwendet wird; und
Hinzufügen (22, 25) eines Ungültigkeitscodes zum Verhindern einer
Bereichsunterschreitung von Daten in einem Übertragungskanal,
wobei der Ungültigkeitscode in der Form eines Startcodes aus einem
Synchroncode besteht, der so ausgebildet ist, daß er ein Muster hat, welches nicht in den Bilddaten
erzeugt wird, und einem Code, der eine Information über ein Attribut des Makroblocks zeigt.
5. Bildcodierverfahren nach Anspruch 4,
wobei der Ungültigkeitscode durch Hinzufügen der Codes, die aus der
gewünschten Anzahl von logischen "0" in Einheiten von K Bits bestehen, zum Startcode
gebildet ist.
6. Bildcodierverfahren nach Anspruch 4,
wobei der Ungültigkeitscode nur durch zumindest einen von diesem Startcode
gebildet ist.
7. Bildcodierverfahren nach Anspruch 4,
welches den Schritt aufweist:
Teilen von Bilddaten eines Vollbilds in ein Slice, welches aus einer gewünschten
Anzahl von Zeilen besteht;
und Teilen von Bilddaten von einem Slice in mehrere Makroblöcke;
wobei ein Format des Ungültigkeitscodes, der den Daten von einem von diesem
Slice und diesem Makroblock hinzugefügt werden soll, gemeinsam festgelegt ist.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP35407192 | 1992-12-15 | ||
JP2747193A JP3341781B2 (ja) | 1992-12-15 | 1993-01-22 | 画像復号化装置および画像符号化装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69328698D1 DE69328698D1 (de) | 2000-06-21 |
DE69328698T2 true DE69328698T2 (de) | 2001-02-01 |
Family
ID=26365400
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69328698T Expired - Lifetime DE69328698T2 (de) | 1992-12-15 | 1993-12-15 | Verfahren und Vorrichtung zur Bildcodierung |
DE69324661T Expired - Lifetime DE69324661T2 (de) | 1992-12-15 | 1993-12-15 | Verfahren und Vorrichtung zur Bildcodierung und -decodierung |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69324661T Expired - Lifetime DE69324661T2 (de) | 1992-12-15 | 1993-12-15 | Verfahren und Vorrichtung zur Bildcodierung und -decodierung |
Country Status (5)
Country | Link |
---|---|
US (1) | US6014171A (de) |
EP (2) | EP0862331B1 (de) |
JP (1) | JP3341781B2 (de) |
KR (1) | KR940017884A (de) |
DE (2) | DE69328698T2 (de) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9405914D0 (en) * | 1994-03-24 | 1994-05-11 | Discovision Ass | Video decompression |
US5614952A (en) | 1994-10-11 | 1997-03-25 | Hitachi America, Ltd. | Digital video decoder for decoding digital high definition and/or digital standard definition television signals |
US6493838B1 (en) * | 1995-09-29 | 2002-12-10 | Kabushiki Kaisha Toshiba | Coding apparatus and decoding apparatus for transmission/storage of information |
US6571361B1 (en) * | 1995-09-29 | 2003-05-27 | Kabushiki Kaisha Toshiba | Encoder and decoder |
KR100685772B1 (ko) * | 1996-03-18 | 2007-02-26 | 가부시끼가이샤 도시바 | 부호화 장치 및 부호화 방법 |
CN1921375A (zh) * | 1996-03-18 | 2007-02-28 | 株式会社东芝 | 译码装置和译码方法 |
JPH1174868A (ja) | 1996-09-02 | 1999-03-16 | Toshiba Corp | 情報伝送方法およびその方法が適用される情報伝送システムにおける符号化装置/復号化装置、並びに符号化・多重化装置/復号化・逆多重化装置 |
EP0840517A3 (de) * | 1996-10-31 | 2003-09-10 | Matsushita Electric Industrial Co., Ltd. | Videodatenstromdekodierungsverfahren und -vorrichtung |
US6212236B1 (en) * | 1997-03-26 | 2001-04-03 | Matsushita Electric Industrial Co., Ltd. | Image decoding apparatus |
KR100487363B1 (ko) * | 1997-07-30 | 2005-06-16 | 엘지전자 주식회사 | 엠펙비디오디코더의전처리장치및이를활용한간이형비디오디코더 |
US6959045B2 (en) | 1997-12-30 | 2005-10-25 | Mediatek, Inc. | Reduced cost decoder using bitstream editing for image cropping |
US6522694B1 (en) * | 1998-10-09 | 2003-02-18 | Matsushita Electric Industrial Co., Ltd. | Programmable filter for removing stuffing bits from an MPEG-2 bit-stream |
US6366617B1 (en) * | 1998-10-09 | 2002-04-02 | Matsushita Electric Industrial Co., Ltd. | Programmable filter for removing selected user data from an MPEG-2 bit stream |
US20030112366A1 (en) * | 2001-11-21 | 2003-06-19 | General Instrument Corporation | Apparatus and methods for improving video quality delivered to a display device |
KR101590633B1 (ko) | 2008-11-11 | 2016-02-02 | 삼성전자주식회사 | 슬라이스 단위로 분할된 동영상을 처리하는 동영상 부호화/복호화장치 및 동영상 부호화/복호화방법 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2787599B2 (ja) * | 1989-11-06 | 1998-08-20 | 富士通株式会社 | 画像信号符号化制御方式 |
DE3939136A1 (de) * | 1989-11-27 | 1991-05-29 | Daimler Benz Ag | Verfahren zur decodierung von codierten bilddaten |
GB8929152D0 (en) * | 1989-12-22 | 1990-02-28 | Gen Electric | A digital augmentation system for actv-ii |
US5164828A (en) * | 1990-02-26 | 1992-11-17 | Sony Corporation | Video signal transmission and method and apparatus for coding video signal used in this |
US5243428A (en) * | 1991-01-29 | 1993-09-07 | North American Philips Corporation | Method and apparatus for concealing errors in a digital television |
US5212549A (en) * | 1991-04-29 | 1993-05-18 | Rca Thomson Licensing Corporation | Error concealment apparatus for a compressed video signal processing system |
US5247363A (en) * | 1992-03-02 | 1993-09-21 | Rca Thomson Licensing Corporation | Error concealment apparatus for hdtv receivers |
US5287178A (en) * | 1992-07-06 | 1994-02-15 | General Electric Company | Reset control network for a video signal encoder |
-
1993
- 1993-01-22 JP JP2747193A patent/JP3341781B2/ja not_active Expired - Lifetime
- 1993-12-14 US US08/167,415 patent/US6014171A/en not_active Expired - Lifetime
- 1993-12-14 KR KR1019930027697A patent/KR940017884A/ko not_active Application Discontinuation
- 1993-12-15 EP EP19980107161 patent/EP0862331B1/de not_active Expired - Lifetime
- 1993-12-15 EP EP19930120201 patent/EP0602621B1/de not_active Expired - Lifetime
- 1993-12-15 DE DE69328698T patent/DE69328698T2/de not_active Expired - Lifetime
- 1993-12-15 DE DE69324661T patent/DE69324661T2/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
DE69324661T2 (de) | 1999-09-30 |
DE69324661D1 (de) | 1999-06-02 |
JP3341781B2 (ja) | 2002-11-05 |
EP0602621A2 (de) | 1994-06-22 |
DE69328698D1 (de) | 2000-06-21 |
US6014171A (en) | 2000-01-11 |
EP0602621B1 (de) | 1999-04-28 |
EP0862331B1 (de) | 2000-05-17 |
JPH06237452A (ja) | 1994-08-23 |
EP0602621A3 (de) | 1994-12-21 |
KR940017884A (ko) | 1994-07-27 |
EP0862331A1 (de) | 1998-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69324993T2 (de) | Verfahren und Vorrichtung zum Quantisieren und Dequantisieren von Bildsignalen | |
DE69214638T2 (de) | Gerät zum komprimieren von video-daten | |
DE69624276T2 (de) | System und Verfahren zur variablen Längenkodierung von sich bewegenden Bildern | |
DE69027537T2 (de) | System zur synchronisierung von haupt- und hilfsvideosignalen | |
DE69333818T2 (de) | Verfahren und Vorrichtung zur Bilddatenkodierung | |
DE69116869T2 (de) | Digitale bildkodierung mit einer zufallsabtastung der bilder | |
DE69414899T2 (de) | Bildsignalverarbeitung | |
DE69328698T2 (de) | Verfahren und Vorrichtung zur Bildcodierung | |
DE69632231T2 (de) | Kodierung und Dekodierung von Bewegtbildern | |
DE3882469T2 (de) | Videokoder. | |
DE69227402T2 (de) | Signalverarbeitungseinrichtung mit hohem Wirkungsgrad und Verminderung des Einflusses von Fehlerausbreitungen | |
DE69735679T2 (de) | Verfahren zur Bilddecodierung | |
DE69333714T2 (de) | Speicher zur Verwendung im Dekodieren von Wörtern variabler Länge und Dekoder und Verfahren zur Verwendung in digitalen Kommunikationssystemen | |
DE69315174T2 (de) | Mehrzweckkodierer von Abbruchkoden und Lauflängen/Amplituden für eine Vorrichtung zum Verarbeiten eines digitalen Videosignals | |
DE69917971T2 (de) | Verfahren und Vorrichtung zur Verarbeitung von komprimierten Videodatenströmen | |
DE69330620T2 (de) | Verfahren und Einrichtung zur Bildkodierung | |
DE60027495T2 (de) | Video-codierverfahren und video-codiervorrichtung | |
DE19919600B4 (de) | Einrichtung und Verfahren zum Komprimieren von Bilddaten, die von einem Bildsensor empfangen werden, der ein Bayer-Muster aufweist | |
DE69622644T2 (de) | Bildbewegungssignalkodierung und entsprechende Dekodierung | |
DE69231678T2 (de) | Bewegungskompensierte Prädiktionseinrichtung | |
DE69624669T2 (de) | Videokodierer und -dekodierersystem und -methoden | |
DE69434395T2 (de) | Kodierung und/oder Dekodierung von sich bewegenden Bildern | |
DE69418372T2 (de) | Übertragung und Dekodierung von Bildsignalen | |
DE69535710T2 (de) | Dekodierer variabler Länge für bitgestopfte Daten | |
DE69735835T2 (de) | Dekodierer variabler Länge und Verfahren zur Dekodierung zweier Kodewörter pro Takt |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |