DE19958962B4 - Codierer für variable Länge, Codierungsverfahren hierfür und Bitpaketierverfahren - Google Patents
Codierer für variable Länge, Codierungsverfahren hierfür und Bitpaketierverfahren Download PDFInfo
- Publication number
- DE19958962B4 DE19958962B4 DE19958962A DE19958962A DE19958962B4 DE 19958962 B4 DE19958962 B4 DE 19958962B4 DE 19958962 A DE19958962 A DE 19958962A DE 19958962 A DE19958962 A DE 19958962A DE 19958962 B4 DE19958962 B4 DE 19958962B4
- Authority
- DE
- Germany
- Prior art keywords
- code
- information
- length
- value
- code length
- 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 - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 21
- 238000012856 packing Methods 0.000 title description 2
- 239000000872 buffer Substances 0.000 claims abstract description 50
- 238000004891 communication Methods 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005265 energy consumption Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- 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/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- 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/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
VLC
mit:
– einem VLC-Codegenerator (100) zum Erzeugen und Ausgeben von Codeinformation und Codelängeninformation unter Verwendung eingegebener Symbole;
– einem Codepuffer (200) zum Speichern von Codeinformation vom VLC-Codegenerator (100) und zum Ausgeben derselben mit konstanter Rate;
– einem Längenpuffer (300) zum Speichern der Codelängeninformation vom VLC-Codegenerator und zum Ausgeben derselben mit konstanter Rate; und
– einem Bitpaketierer (400, 600) zum Empfangen und Ausgeben der Codeinformation vom Codepuffer auf Grundlage der Codelängeninformation, wobei der Bitpaketierer (400) ein Lesesignal zum Codepuffer (200) und zum Längenpuffer (300) zur Steuerung der Ausgabe der Codeinformation und Codelängeninformation ausgibt und folgendes aufweist:
– ein Parallel-Seriell-Register (420) zum parallelen Lesen der Codeinformation beim Empfang eines Lesesignals und anschließendem seriellen Ausgeben der Codebits der Codeinformation; und
– einen ersten Zähler (410) zum Lesen der Codelängeninformation beim Empfang des Lesesignals und zum Zählen der ausgegebenen Codebits einer Codeinformation;
– wobei das Lesesignal...
– einem VLC-Codegenerator (100) zum Erzeugen und Ausgeben von Codeinformation und Codelängeninformation unter Verwendung eingegebener Symbole;
– einem Codepuffer (200) zum Speichern von Codeinformation vom VLC-Codegenerator (100) und zum Ausgeben derselben mit konstanter Rate;
– einem Längenpuffer (300) zum Speichern der Codelängeninformation vom VLC-Codegenerator und zum Ausgeben derselben mit konstanter Rate; und
– einem Bitpaketierer (400, 600) zum Empfangen und Ausgeben der Codeinformation vom Codepuffer auf Grundlage der Codelängeninformation, wobei der Bitpaketierer (400) ein Lesesignal zum Codepuffer (200) und zum Längenpuffer (300) zur Steuerung der Ausgabe der Codeinformation und Codelängeninformation ausgibt und folgendes aufweist:
– ein Parallel-Seriell-Register (420) zum parallelen Lesen der Codeinformation beim Empfang eines Lesesignals und anschließendem seriellen Ausgeben der Codebits der Codeinformation; und
– einen ersten Zähler (410) zum Lesen der Codelängeninformation beim Empfang des Lesesignals und zum Zählen der ausgegebenen Codebits einer Codeinformation;
– wobei das Lesesignal...
Description
- Die Erfindung betrifft einen Videocodierer, spezieller einen solchen für variable Länge sowie ein im Videocodierer ausgeführtes Codierverfahren. Ferner betrifft sie ein Bitpaketierverfahren zum Eingeben von Codeinformation für einen derartigen Codierer. Die Erfindung ist insbesondere bei drahtloser Kommunikation wie für Mobilstationen oder Mobiltelefone anwendbar, die gleichzeitig sowohl Sprach- als auch Bildübertragungsdienste erfordern.
- In einem Kommunikationssystem codiert ein Videocodierer im Allgemeinen vor der Codierung zu übertragende Bildsignale. Der Videocodierer kann einen Codierer für variable Länge (VLC = variable length coder) verwenden, um Koeffizienten zu codieren, die durch diskrete Cosinustransformation (DCT) verarbeitet und durch einen Quantisierer quantisiert wurden. Ein einen VLC verwendendes Codiersystem ist in "An Entropy Coding System for Digital HDTV Applications", IEEE Transactions on Circuits and Systems for Video Technology, Vol. 1, No. 1, S. 147–155 (März 1991) offenbart.
- Im Allgemeinen codiert ein VLC die Eingangsdaten zu Codes variabler Länge, verkettet die Codes und segmentiert sie in eine vorbestimmte Codelänge des VLC. Die vorbestimmte Codelänge ist größer als oder gleich groß wie die maximale Codelänge des VLC.
1 zeigt einen typischen VLC gemäß dem Stand der Technik mit einem VLC-Codegenerator10 , einem Bitpaketierer20 und einem Kanalpuffer30 . Der VLC-Codegenerator10 erzeugt und überträgt Codeinformation und Codelängeninformation an den Bitpaketierer20 . Der Bitpaketierer20 sammelt die empfangene Codeinformation für die Dauer der vorbestimmten Codelänge des VLC und gibt die angesammelte Codeinformation an den Kanalpuffer30 aus. Der Kanalpuffer30 speichert dann den Bitstrom der Codeinformation ein und gibt sie mit konstanter Rate an einen folgenden Prozessor aus. - Auch beinhaltet eine typische Konstruktion des Bitpaketierers
20 , wie sie in2 dargestellt ist, zwei Umlaufregister21 und22 , einen Akkumulator23 , mehrere Register24 –28 und ein Flipflop (F/F)29 . Um die Codeinformation zu verketten und in vorbestimmte Codelänge zu segmentieren, führt der Bitpaketierer20 eine Bitpaketierung der Codeinformation aus, das Umlaufregister21 verkettet die eingegebenen Codes zum in das Register eingespeicherten Bitstrom, und das Umlaufregister22 segmentiert den Bitstrom entsprechend der vorbestimmten Codelänge. Der Akkumulator23 addiert die eingegebenen Codelängen und informiert das Umlauf register22 beim Erreichen der vorbestimmten Codelänge. D.h., dass vom Addierer23 jedesmal dann ein Freigabesignal an das 1-Bit-Flipflop (F/F) übertragen wird, wenn der Akkumulator23 die vorbestimmte Codelänge erreicht hat. Dieses Signal informiert den Kanalpuffer30 dahingehend, die Codes vom Bitpaketierer20 zu lesen und zu speichern. - Der oben erläuterte Bitpaketierer
20 kann pro Systemtaktsignal einen Eingangscode verarbeiten, und er arbeitet effektiv hinsichtlich einer Verarbeitung von Übertragungssignalen hoher Auflösung. Jedoch ist die Realisierung des oben erläuterten VLG sehr kompliziert. Dadurch, dass der Bitpaketierer 2 Umlaufregister und einen Addierer verwendet, benötigt alleine er zahlreiche Logikgatter. Im Ergebnis kann der VLC nicht als kompaktes Bauteil realisiert werden, und sein Energieverbrauch ist hoch. - So kann der bekannte VLC für Vorrichtungen effektiv arbeiten, die Hochgeschwindigkeitsverarbeitung wie für Digital-HDTV benötigen, jedoch ist er für kompakte Vorrichtungen wie Mobiltelefone in einem Mobilkommunikationssystem, die minimalen Energieverbrauch und kompakte Größe benötigen, nicht zweckdienlich.
- Die
US 5,557,271 A beschreibt einen variablen Längencodierer und einen variablen Längendecodierer mit internen Registern und einer Vielzahl von Barrel-Shiftern. Es sind Adder angeordnet, wobei Eingangsdaten aus einem ersten Register sequentiell zugeführt und mit dem nächsten Taktsignal in ein weiteres Register verschoben werden. Die Ausgangsdaten des ersten Registers und zweiten Registers werden temporär in ein weiteres Register geschoben, welches die Daten parallel zu einem Dekodierschaltkreis ausgibt. - Der Artikel von LEI,S., SUN, M.-T.: An Entropy Coding System for Digital HDTV Applications, beschreibt einen VLC-Codierer und drei Barrel-Shifter. Ein erster Barrel-Shifter kettet die Codeworte zusammen, die in einem zweiten Barrel-Shifter in 16-Bit-Worte für den Ausgang segmentiert werden. Der dritte Barrel-Shifter dient zusammen mit einem Register als 4-Bit-Akkumulator. Ein Enable-Signal, welches einem RLC-Codierer zugeführt wird, der vor dem VLC-Codierer angeordnet ist, zeigt an, ob Daten vom RLC-Codierer verfügbar sind oder nicht. Der VLC-Code-Generator und der Bit-Packetierer und sämtliche Puffer werden von einem gemeinsamen Codiertakt in Verbindung mit einem Systemtakt synchron getaktet. Die Daten von dem Code-Puffer und dem Längen-Puffer werden an den Bit-Packetierer jeweils bei Beenden einer Schiebeoperation übergeben.
- Der Erfindung liegt die Aufgabe zugrunde, einen vereinfachten VLC für einen Videocodierer sowie ein zugehöriges Codierverfahren und ein Bitpaketierverfahren zu schaffen.
- Diese Aufgabe ist hinsichtlich des Codierers durch die Lehre des beigefügten Anspruchs 1, hinsichtlich des Codierverfahrens durch die Lehre des beigefügten Anspruchs 10 und hinsichtlich des Bitpaketierverfahrens durch die Lehre des beigefügten Anspruchs 18 gelöst.
- Bei einer Ausführungsform empfängt ein zweiter Bitpaketierer Codeinformation vom ersten Bitpaketierer. Ein Kanalpuffer speichert die Codeinformation vom zweiten Bitpaketierer ein und gibt die Codes mit konstanter Rate aus.
- Beim erfindungsgemäßen Codierverfahren zur Verwendung durch einen VLC werden eingegebene Codeinformation und Codelängeninformation in einem Puffer gespeichert und die gespeicherte Codeinformation wird auf Grundlage der Codelängeninformation ausgegeben.
- Der bekannte Bitpaketierer benötigt komplizierte Hardware mit zahlreichen Logikgattern. Demgegenüber ermöglicht die Erfindung die Realisierung eines Bitpaketierers mit einem einzelnen Parallel-Seriell-Register und einem einzelnen Zähler, wodurch geringer Energieverbrauch und kompakte Größe erzielbar sind. So ist die Erfindung gut auf dem Gebiet der Mobilkommunikation, wie Kleinzonen-Mobiltelefonen, anwendbar.
- Zusätzliche Merkmale und Aufgaben der Erfindung werden in der folgenden Beschreibung dargelegt und gehen teilweise aus dieser hervor, ergeben sich aber andererseits auch beim Ausüben der Erfindung. Die Aufgaben und andere Vorteile der Erfindung werden durch die Maßnahmen erzielt, wie sie speziell in der Beschreibung, den Ansprüchen und den beigefügten Zeichnungen dargelegt sind.
- Es ist zu beachten, dass sowohl die vorstehende allgemeine Beschreibung als auch die folgende detaillierte Beschreibung beispielhaft und erläuternd für die beanspruchte Erfindung sind.
- Die Zeichnungen, die beigefügt sind, um das Verständnis der Erfindung zu fördern, veranschaulichen Ausführungsbeispiele der Erfindung und dienen zusammen mit der Beschreibung dazu, deren Prinzipien zu erläutern.
-
1 zeigt einen bekannten VLC; -
2 zeigt einen Bitpaketierer im VLC der1 ; -
3 zeigt ein Ausführungsbeispiel eines erfindungsgemäßen VLC; -
4 zeigt einen im VLC der3 verwendeten Bitpaketierer; -
5 zeigt ein anderes Ausführungsbeispiel eines erfindungsgemäßen VLC; -
6 zeigt einen im VLC der5 verwendeten Bitpaketierer; und -
7 zeigt den Betrieb des Bitpaketierers in5 . - Gemäß der Erfindung kann ein VLC unter Verwendung von einem oder zwei Bitpaketierern, abhängig von der zu verarbeitenden Informationsmenge, realisiert werden. Auch wird jeder Bitpaketierer einfach unter Verwendung eines Registers und eines Zählers realisiert.
- Nun werden bevorzugte Ausführungsbeispiele der Erfindung unter Bezugnahme auf die beigefügten Zeichnungen im Einzelnen erläutert.
- Der in
3 dargestellte VLC gemäß einem ersten Ausführungsbeispiel der Erfindung verfügt über einen VLC-Codegenerator100 zum Erzeugen und Ausgeben von Codeinformation und Codelängeninformation unter Verwendung eines eingegebenen Symbols; einen Codepuffer200 zum Speichern der Codeinforma tion vom VLC-Codegenerator100 und zum Ausgeben der Codeinformation mit konstanter Rate; einen Längenpuffer300 zum Speichern der Codelängeninformation vom VLC-Codegenerator100 und zum Ausgeben der Codelängeninformation mit konstanter Rate; und einen Bitpaketierer400 zum Ausgeben der Codeinformation auf Grundlage der Codelängeninformation. - Abhängig von einem Kanaltaktsignal liest der Bitpaketierer
400 die Codeinformation und gibt für eine Dauer auf Grundlage dieser Codelänge Codebits aus. Danach liest der Bitpaketierer die nächste Codeinformation und fährt damit fort, Codebits auf Grundlage der neu gelesenen Codelänge auszugeben. Speziell beinhaltet der Bitpaketierer400 ein Parallel-Seriell-Register420 und einen Abwärtszähler410 , wie es in4 dargestellt ist. Das Parallel-Seriell-Register420 liest die Codeinformation vom Codepuffer200 auf parallele Weise. Gleichzeitig liest der Abwärtszähler410 die Codelängeninformation, und er zählt für jedes vom Parallel-Seriell-Register420 ausgegebene Codebit nach unten. D.h., dass der Abwärtszähler410 ausgehend vom gelesenen Codelängenwert bis auf den Wert null herunterzählt. Pro Zählvorgang gibt das Parallel-Seriell-Register420 ein Codebit der aus dem Codepuffer200 gelesenen Codeinformation seriell aus. - In
7 ist der Abtastvorgang des Bitpaketierers400 in den ersten vier Spalten der dortigen Tabelle dargestellt. Zu einem Zeitpunkt 0, nämlich beim Empfangen des gelesenen Signals, lesen das Parallel-Seriell-Register420 und der Abwärtszähler410 den Code bzw. die Codelängeninformation aus dem Codepuffer200 bzw. dem Längenpuffer300 . Zu einem Zeitpunkt 1 speichert das Parallel-Seriell-Register420 den Wert 000xxxxx ein, und der Abwärtszähler410 speichert den Wert 2 ein. Es wird darauf hingewiesen, dass die signifikante Bitlänge 3 ist, jedoch liest der Abwärtszähler410 ein Bit weniger als es dem aktuellen Wert entspricht, d.h. 2. Zu einem Zeitpunkt 2 wird der gespeicherte Bitstrom nach links eingestellt oder verschoben, und das Parallel-Seriell-Register420 speichert 00xxxxxx ein. Das höchstsignifikante Bit (MSB), d.h. das Bit ganz links, wird vom VLC ausgegeben. Der im Abwärtszähler410 gespeicherte Wert fällt von 2 auf 1. Zu einem Zeitpunkt 3 wird der gespeicherte Bitstrom erneut nach links eingestellt und das Parallel-Seriell-Register420 speichert 0xxxxxxx, während der Abwärtszähler 0 speichert. - Zu einem Zeitpunkt 4 ist die zum Zeitpunkt 0 gelesene Codeinformation vollständig ausgegeben und es wird ein neues Lesesignal erzeugt. Im Wesentlichen informiert der Zählwert 0 den Bitpaketierer
400 darüber, dass die Codeinformation ausgegeben ist und ein neues Lesesignal zu erzeugen ist. So lesen, beim Empfangen des Lesesignals, das Parallel-Seriell-Register420 und der Abwärtszähler410 die nächste Codeinformation 01xxxxxx und die Codelängeninformation 1 aus dem Codepuffer200 bzw. dem Längenpuffer300 . Danach wird der im Parallel-Seriell-Register420 gespeicherte Bitstrom nach links eingestellt und seriell ausgegeben, bis der Zählwert 0 wird, zu welchem Zeitpunkt wiederum neue Codeinformation gelesen wird. Demgemäß gibt der Bitpaketierer400 die Codeinformation auf Grundlage der Codelängeninformation aus dem VLC aus. - Beim in
5 dargestellten zweiten Ausführungsbeispiel eines erfindungsgemäßen VLC sind ein VLC-Codegenerator100 , ein Codepuffer200 und ein Längenpuffer300 vorhanden, wie beim in3 dargestellten ersten Ausführungsbeispiel. Ferner verfügt der VLC über einen Bitpaketierer600 zum Lesen und Speichern der Codeinformation sowie einen Kanalpuffer500 zum Speichern der Codeinformation vom Bitpaketierer600 und zum Ausgeben derselben mit konstanter Rate. - Wie es in
6 dargestellt ist, besteht der Bitpaketierer600 im Wesentlichen aus zwei Bitpaketierern, wobei der erste dem Bitpaketierer400 des in3 dargestellten ersten Ausführungsbeispiels entspricht. Insbesondere beinhaltet der Bitpaketierer600 ein Parallel-Seriell-Register420 zum Lesen und Ausgeben der Codeinformation aus dem Codepuffer200 ; einen ersten Abwärtszähler410 zum Abwärtszählen ausgehend vom gelesenen Codelängenwert; ein Seriell-Parallel-Register620 zum Empfangen und Verketten von Codebits vom Parallel-Seriell-Register420 ; und einen zweiten Abwärtszähler610 zum Zählen von Bits für die vorbestimmte Codelänge. Das Parallel-Seriell-Register420 und der erste Abwärtszähler410 arbeiten auf dieselbe Weise wie in3 , mit der Ausnahme, dass der im Parallel-Seriell-Register420 gespeicherte Bitstrom entsprechend dem Systemtaktsignal an das Seriell-Parallel-Register620 ausgegeben wird. - Das Seriell-Parallel-Register
620 verkettet und speichert den eingegebenen Bitstrom vom Parallel-Seriell-Register420 bis die vorbestimmte Codelänge erreicht ist. Wenn der eingegebene Bitstrom in das Seriell-Parallel-Register620 eingespeichert ist, zählt der zweite Abwärtszähler610 von einem Wert, der um eins kleiner als die vorbestimmte Codelänge ist, bis auf 0. Wenn z.B. die vorbestimmte Codelänge 8 ist, zählt der zweite Abwärtszähler von 7 bis auf 0. Jedesmal dann, wenn der zweite Abwärtszähler610 den Wert 0 erreicht, erreicht der im Seriell-Parallel-Register620 gespeicherte Bitstrom die vorbestimmte Codelänge und wird auf parallele Weise an den Kanalpuffer500 ausgegeben. Dann gibt der Kanalpuffer500 die Codeinformation mit konstanter Rate aus. -
7 ist eine Tabelle, die einen Abtastvorgang des Bitpaketierers600 zeigt, wobei die vorbestimmte Codelänge 8 ist. Ähnlich wie in3 werden zu einem Zeitpunkt 0 die Codeinformation und die Längeninformation gelesen. Zu einem Zeitpunkt 1 speichert das Parallel-Seriell-Register420 den Wert 000xxxxx, während der Abwärtszähler410 den Wert 2 einspeichert. Zu einem Zeitpunkt 2 speichert das Parallel-Seriell-Register420 den Wert 00xxxxxx ein, während der Abwärtszähler410 den Wert 1 einspeichert. Auch empfängt das Seriell-Parallel-Register620 zu einem Zeitpunkt 2 das MSB vom Parallel-Seriell-Register420 und speichert den Bitstrom xxxxxxx0 ein. Wenn das Seriell-Parallel-Register620 das MSB empfängt, beginnt der zweite Abwärtszähler610 mit dem Abwärtszählen ausgehend von 7. - Für jeden Zählwert empfängt das Seriell-Parallel-Register
620 die MSBs vom Parallel-Seriell-Register420 und verkettet sie. Im Ergebnis wird das Seriell-Parallel-Register620 mit dem geringstsignifikanten Bit (LSB), d.h. dem Bit ganz rechts, aufgefüllt, wenn der in ihm gespeicherte Bitstrom nach links eingestellt wird. Wenn der zweite Abwärtszähler610 den Zählwert 0 erreicht, erreicht die Summe der im Seriell-Parallel-Register620 gespeicherten Bits die vorbestimmte Codelänge. So wird zu einem Zeitpunkt 9 der Bitstrom vorbestimmter Codelänge 00001100 vom Seriell-Parallel-Register620 des Bitpaketierers600 an den Kanalpuffer500 ausgegeben. Danach, zu einem Zeitpunkt10 , beginnt der zweite Zähler610 ausgehend von 7 zu zählen, während das Seriell-Parallel-Register620 weiterhin das MSB vom Parallel-Seriell-Register420 empfängt und die MSBs verkettet. - Unter Verwendung eines Codepuffers zum Speichern der Codeinformation und eines Längenpuffers zum Speichern der Längeninformation vereinfacht die Erfindung den Bitpaketierer eines VLC auf erhebliche Weise. Obwohl das Ausführungsbeispiel gemäß der
5 zusätzliche Logikgatter im Vergleich zum VLC gemäß der3 benötigt, ist das beim Bitpaketierer der5 verwendete Betriebstaktsignal ein solches mit einem Systemtakt in der Größenordnung MHz, was viel höher als der bisherige Kanaltakt von ungefähr 10–100 kHz ist. Dem gemäß kann die Größe des Speichers im Codepuffer200 und im Längenpuffer300 der5 kleiner als bisher sein. - Im Ergebnis kann der in
4 dargestellte VLC mit einfachem Bitpaketierer400 verwendet werden, wenn die zu verarbeitende Informationsmenge klein ist. Wenn jedoch eine große Menge an Information zu speichern und zu verarbeiten ist, kann angesichts der Speichergrößen des Codepuffers und des Längenpuffers der VLC mit Bitpaketierer600 , wie in6 dargestellt, dazu verwendet werden, die Gesamtspeichergröße zu verringern, selbst bei komplizierterer Hardware. - Die in den
3 und5 dargestellten Ausführungsbeispiele eines erfindungsgemäßen VLC verwenden einen Abwärtszähler, jedoch kann in den Bitpaketierern400 und600 auch ein Aufwärtszähler verwendet werden. In diesem Fall würde ein erster Aufwärtszähler den Abwärtszähler410 ersetzen, und ein zweiter Aufwärtszähler würden den Abwärtszähler610 ersetzen. Genauer gesagt, würde, wenn das Parallel-Seriell-Register420 die Codeinformation liest und ausgibt, der erste Aufwärtszähler die Codelängeninformation lesen und nach oben zählen, bis der Wert der gelesenen Codelänge erreicht ist. Es kann ein Komparator vorhanden sein, um anzuzeigen, wann die gelesene Codelänge erreicht ist, wobei das Seriell-Parallel-Register620 und der Aufwärtszähler den nächsten Code bzw. die nächste Codelänge lesen, wenn die Codelänge erreicht ist. Hinsichtlich des Abwärtszählers610 kann der zweite Aufwärtszähler denselben einfach ersetzen und für die vorbestimmte Codelänge nach oben statt nach unten zählen. Demgemäß zählt der zweite Abwärtszähler für die vorbestimmte Codelänge 7 von 0 auf 7, wobei der im Seriell-Parallel-Register620 gespeicherte Bitstrom an den Kanalpuffer500 ausgegeben wird, wenn 7 erreicht wird. - Zusammengefasst gesagt, vereinfacht die Erfindung durch Ver wenden gesonderter Code- und Längenpuffer den Bitpaketierer eines VLC. Demgemäß verfügt der vereinfachte VLC über viel niedrigeren Energieverbrauch als ein bekannter VLC, und er kann in einer kompakten Vorrichtung wie einem Mobiltelefon bei drahtloser Kommunikation realisiert werden. Auch kann die Erfindung bei einer Technik zum Verarbeiten und Übertragen von Bildern mit einer Übertragungsrate von 10 bis 100 kbps realisiert werden.
Claims (18)
- VLC mit: – einem VLC-Codegenerator (
100 ) zum Erzeugen und Ausgeben von Codeinformation und Codelängeninformation unter Verwendung eingegebener Symbole; – einem Codepuffer (200 ) zum Speichern von Codeinformation vom VLC-Codegenerator (100 ) und zum Ausgeben derselben mit konstanter Rate; – einem Längenpuffer (300 ) zum Speichern der Codelängeninformation vom VLC-Codegenerator und zum Ausgeben derselben mit konstanter Rate; und – einem Bitpaketierer (400 ,600 ) zum Empfangen und Ausgeben der Codeinformation vom Codepuffer auf Grundlage der Codelängeninformation, wobei der Bitpaketierer (400 ) ein Lesesignal zum Codepuffer (200 ) und zum Längenpuffer (300 ) zur Steuerung der Ausgabe der Codeinformation und Codelängeninformation ausgibt und folgendes aufweist: – ein Parallel-Seriell-Register (420 ) zum parallelen Lesen der Codeinformation beim Empfang eines Lesesignals und anschließendem seriellen Ausgeben der Codebits der Codeinformation; und – einen ersten Zähler (410 ) zum Lesen der Codelängeninformation beim Empfang des Lesesignals und zum Zählen der ausgegebenen Codebits einer Codeinformation; – wobei das Lesesignal erzeugt wird, wenn der Zählerstand einen vorbestimmten Wert erreicht hat, der anzeigt, dass alle Codebits der Codeinformation ausgelesen wurden. - VLC nach Anspruch 1, dadurch gekennzeichnet, dass der erste Zähler ein Abwärtszähler (
410 ) ist, der ausgehend von einem Wert, der um eins kleiner als die Codelänge ist, auf 0 zählt, und wobei das Lesesignal ausgegeben wird, wenn der Abwärtszähler den Wert 0 erreicht hat. - VLC nach Anspruch 1, dadurch gekennzeichnet, dass der erste Zähler ein Aufwärtszähler ist, der von 0 auf einen Wert zählt, der um eins kleiner als die Codelänge ist, und wobei das Lesesignal ausgegeben wird, wenn der Aufwärtszähler den Wert erreicht hat, der um eins kleiner als die Codelänge ist.
- VLC nach Anspruch 1, dadurch gekennzeichnet, dass der Bitpaketierer ferner folgendes aufweist: – ein Seriell-Parallel-Register (
620 ), das die Codebits vom Parallel-Seriell-Register (420 ) empfängt und ausgibt; – einen zweiten-Zähler (610 ) zum Zählen für die Dauer einer vorbestimmten Codelänge und – einen Kanalpuffer (500 ) zum Speichern der vom Seriell-Parallel-Register ausgegebenen Codebits und zum Ausgeben derselben mit konstanter Rate; – wobei das Seriell-Parallel-Register die empfangenen Codebits verkettet, während der zweite Zähler für die Dauer der vorbestimmten Codelänge zählt, und es die verketteten Codebits an den Kanalpuffer ausgibt, wenn der zweite Zähler einen vorbestimmten Zählwert erreicht hat. - VLC nach Anspruch 4, dadurch gekennzeichnet, dass der erste Zähler ein Abwärtszähler (
410 ) ist, der ausgehend von einem Wert, der um eins kleiner als die Codelänge ist, auf 0 zählt, und wobei das Lesesignal ausgegeben wird, wenn der Abwärtszähler den Wert 0 erreicht hat. - VLC nach Anspruch 4, dadurch gekennzeichnet, dass der erste Zähler ein Aufwärtszähler ist, der von 0 auf einen Wert zählt, der um eins kleiner als die Codelänge ist, und wobei das Lesesignal ausgegeben wird, wenn der Aufwärtszähler den Wert erreicht hat, der um eins kleiner als die Codelänge ist.
- VLC nach Anspruch 4, dadurch gekennzeichnet, dass der zweite Zähler (
610 ) ein Abwärtszähler ist, der von einem Wert, der um eins kleiner als die vorbestimmte Codelänge ist, auf null zählt, wobei das Seriell-Parallel-Register (620 ) die verketteten Codebits ausgibt, wenn der Abwärtszähler den Wert 0 erreicht. - VLC nach Anspruch 4, dadurch gekennzeichnet, dass der zweite Zähler ein Aufwärtszähler ist, der ausgehend von 0 bis auf einen Wert zählt, der um eins kleiner als die vorbestimmte Codelänge ist, wobei das Seriell-Parallel-Register die verketteten Codebits ausgibt, wenn der Abwärtszähler den Wert erreicht hat, der um eins kleiner als die vorbestimmte Codelänge ist.
- VLC nach Anspruch 4, dadurch gekennzeichnet, dass das Seriell-Parallel-Register (
620 ) MSBs vom Parallel-Seriell-Register (420 ) empfängt. - Verfahren zum Codieren von Eingangssymbolen mit variabler Länge, das die folgenden Schritte aufweist: (a) Erzeugen und Ausgeben von Codeinformation und Codelängeninformation zu den eingegebenen Symbolen; (b) Speichern der Codeinformation in einem Codepuffer (
200 ) und Ausgeben derselben mit konstanter Rate; (c) Speichern der Codelängeninformation in einem Längenpuffer (300 ) und Ausgeben derselben mit konstanter Rate und (d) Empfangen der Codeinformation in und Ausgeben aus dem Codepuffer (200 ) auf Grundlage der Codelängeninformation und Erzeugen eines Lesesignals im Bitpacketierer (400 ) für den Codepuffer (200 ) und den Längenpuffer (300 ) zur Steuerung der Ausgabe der Codeinformation und der Codelängeninformation, wobei Schritt (d) enthält: – paralleles Lesen der Codeinformation und der Codelängeninformation beim Empfang des Lesesignals – serielles Ausgeben der Codebits der Codeinformation aus dem Parallel-Seriell-Register, – Zählen der ausgegebenen Codebits einer Codeinformation, und – bei Erreichen eines vorherbestimmten Zählerstandes, der anzeigt, dass alle Codebits der Codeinformation ausgelesen wurden, Erzeugen des Lesesignals. - Verfahren nach Anspruch 10, dadurch gekennzeichnet, dass beim Zählen ausgehend von einem Wert, der um eins kleiner als die Codelänge ist, auf null gezählt wird, wobei das Lesesignal ausgegeben wird, wenn der Zählwert den Wert 0 erreicht hat.
- Verfahren nach Anspruch 10, dadurch gekennzeichnet, dass beim Zählen ausgehend von 0 auf einen Wert gezählt wird, der um eins kleiner als die Codelänge ist, wobei das Lesesignal ausgegeben wird, wenn der Zählwert den Wert erreicht hat, der um eins kleiner als die Codelänge ist.
- Verfahren nach Anspruch 10, dadurch gekennzeichnet, dass der Schritt (d) die folgenden Unterschritte aufweist: (dd) Zählen für die Dauer einer vorbestimmten Codelänge; (de) Empfangen und verketten der Codebits, während für die Dauer der vorbestimmten Codelänge gezählt wird; (df) Ausgeben und Speichern der verketteten Codebits an einem Puffer, wenn der Zählwert in (dd) einen vorbestimmten Wert erreicht hat; und (dg) Ausgeben der gespeicherten Codebits aus (df) mit konstanter Rate.
- Verfahren nach Anspruch 13, dadurch gekennzeichnet, dass beim Zählen ausgehend von einem Wert, der um eins kleiner als die Codelänge ist, auf null gezählt wird, wobei das Lesesignal ausgegeben wird, wenn der Zählwert den Wert 0 erreicht hat.
- Verfahren nach Anspruch 13, dadurch gekennzeichnet, dass beim Zählen ausgehend von 0 auf einen Wert gezählt wird, der um eins kleiner als die Codelänge ist, wobei das Lesesignal ausgegeben wird, wenn der Zählwert den Wert erreicht hat, der um eins kleiner als die Codelänge ist.
- Verfahren nach Anspruch 13, dadurch gekennzeichnet, dass in (dd) ausgehend von einem Wert, der um eins kleiner als die vorbestimmte Codelänge ist, auf 0 gezählt wird, wobei in (df) die verketteten Codebits ausgegeben werden, wenn der Zählwert den Wert 0 erreicht hat.
- Verfahren nach Anspruch 13, dadurch gekennzeichnet, dass in (dd) ausgehend von 0 auf einen Wert gezählt wird, der um eins kleiner als die vorbestimmte Codelänge ist, wobei in (df) die verketteten Codebits ausgegeben werden, wenn der Zählwert den Wert erreicht hat, der um eins kleiner als die vorbestimmte Codelänge ist.
- Bitpaketierverfahren für in einen VLC eingegebene Codeinformation in einer Vorrichtung für drahtlose Kommunikation mit den folgenden Schritten: – paralleles Lesen der Codeinformation und von Codelängeninformation beim Empfang eines Lesesignals; – serielles Ausgeben der Codebits; – Zählen der ausgegebenen Codebits einer Codeinformation, und – bei Erreichen eines vorherbestimmten Zählerstandes, der anzeigt, dass alle Codebits der Codeinformation ausgelesen wurde, Erzeugen des Lesesignals.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1998/61814 | 1998-12-30 | ||
KR1019980061814A KR100335138B1 (ko) | 1998-12-30 | 1998-12-30 | 비디오코더의가변부호화기및이를이용한코딩방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE19958962A1 DE19958962A1 (de) | 2000-07-20 |
DE19958962B4 true DE19958962B4 (de) | 2007-03-01 |
Family
ID=19568511
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19958962A Expired - Fee Related DE19958962B4 (de) | 1998-12-30 | 1999-12-07 | Codierer für variable Länge, Codierungsverfahren hierfür und Bitpaketierverfahren |
Country Status (3)
Country | Link |
---|---|
US (1) | US6339386B1 (de) |
KR (1) | KR100335138B1 (de) |
DE (1) | DE19958962B4 (de) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8913667B2 (en) * | 1999-11-09 | 2014-12-16 | Broadcom Corporation | Video decoding system having a programmable variable-length decoder |
US6483446B1 (en) * | 2001-11-02 | 2002-11-19 | Lockheed Martin Corporation | Variable-length message formats and methods of assembling and communicating variable-length messages |
US6573846B1 (en) * | 2001-12-31 | 2003-06-03 | Apple Computer, Inc. | Method and apparatus for variable length decoding and encoding of video streams |
US7681013B1 (en) | 2001-12-31 | 2010-03-16 | Apple Inc. | Method for variable length decoding using multiple configurable look-up tables |
US7034849B1 (en) * | 2001-12-31 | 2006-04-25 | Apple Computer, Inc. | Method and apparatus for image blending |
WO2003085494A2 (en) * | 2002-04-01 | 2003-10-16 | Broadcom Corporation | Video decoding system |
US6707397B1 (en) * | 2002-10-24 | 2004-03-16 | Apple Computer, Inc. | Methods and apparatus for variable length codeword concatenation |
US6707398B1 (en) * | 2002-10-24 | 2004-03-16 | Apple Computer, Inc. | Methods and apparatuses for packing bitstreams |
US7212681B1 (en) * | 2003-01-15 | 2007-05-01 | Cisco Technology, Inc. | Extension of two-dimensional variable length coding for image compression |
US7194137B2 (en) * | 2003-05-16 | 2007-03-20 | Cisco Technology, Inc. | Variable length coding method and apparatus for video compression |
KR100975062B1 (ko) * | 2003-12-27 | 2010-08-11 | 삼성전자주식회사 | 가변길이 부호화 장치 및 가변길이 부호화 방법 |
KR100556340B1 (ko) * | 2004-01-13 | 2006-03-03 | (주)씨앤에스 테크놀로지 | 영상 부호화 장치 |
US7499596B2 (en) | 2004-08-18 | 2009-03-03 | Cisco Technology, Inc. | Amplitude coding for clustered transform coefficients |
US7499595B2 (en) * | 2004-08-18 | 2009-03-03 | Cisco Technology, Inc. | Joint amplitude and position coding for photographic image and video coding |
US7454073B2 (en) | 2004-06-15 | 2008-11-18 | Cisco Technology, Inc. | Video compression using multiple variable length coding processes for multiple classes of transform coefficient blocks |
US7471841B2 (en) | 2004-06-15 | 2008-12-30 | Cisco Technology, Inc. | Adaptive breakpoint for hybrid variable length coding |
US7471840B2 (en) * | 2004-08-18 | 2008-12-30 | Cisco Technology, Inc. | Two-dimensional variable length coding of runs of zero and non-zero transform coefficients for image compression |
US7492956B2 (en) * | 2004-08-18 | 2009-02-17 | Cisco Technology, Inc. | Video coding using multi-dimensional amplitude coding and 2-D non-zero/zero cluster position coding |
US7454076B2 (en) * | 2004-06-15 | 2008-11-18 | Cisco Technology, Inc. | Hybrid variable length coding method for low bit rate video coding |
US7680349B2 (en) * | 2004-08-18 | 2010-03-16 | Cisco Technology, Inc. | Variable length coding for clustered transform coefficients in video compression |
US7620258B2 (en) * | 2004-08-18 | 2009-11-17 | Cisco Technology, Inc. | Extended amplitude coding for clustered transform coefficients |
US7242328B1 (en) * | 2006-02-03 | 2007-07-10 | Cisco Technology, Inc. | Variable length coding for sparse coefficients |
KR100902007B1 (ko) * | 2007-02-28 | 2009-06-11 | 삼성전자주식회사 | 비디오 스트림 처리 장치 |
US8171188B2 (en) * | 2008-11-16 | 2012-05-01 | Andes Technology Corporation | Method of handling successive bitstream extraction and packing and related device |
US10775206B2 (en) * | 2016-05-24 | 2020-09-15 | Quicklogic Corporation | Sensor hub batch packing |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5079548A (en) * | 1989-09-20 | 1992-01-07 | Fujitsu Limited | Data packing circuit in variable length coder |
US5146220A (en) * | 1990-04-05 | 1992-09-08 | Canon Kabushiki Kaisha | Data conversion method and apparatus for converting undefined length data to fixed length data |
US5436626A (en) * | 1990-03-26 | 1995-07-25 | Bell Communications Research, Inc. | Variable-length codeword encoder |
US5557271A (en) * | 1993-09-23 | 1996-09-17 | Goldstar Co., Ltd. | Variable length coder and variable length decoder |
US5652583A (en) * | 1995-06-30 | 1997-07-29 | Daewoo Electronics Co. Ltd | Apparatus for encoding variable-length codes and segmenting variable-length codewords thereof |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4805722A (en) | 1987-06-26 | 1989-02-21 | William Keating | Anti theft system for motor vehicles and the like |
US5245428A (en) * | 1991-05-10 | 1993-09-14 | U.S. Philips Corporation | Television system for transmitting picture signals in a digital format |
US5519260A (en) | 1993-03-19 | 1996-05-21 | Washington; Valdemar L. | Vehicle security system using drivers license, time of day and passive tag |
US5686765A (en) | 1993-03-19 | 1997-11-11 | Driver Id Llc | Vehicle security system including fingerprint and eyeball part identification |
DE4333586A1 (de) | 1993-10-01 | 1995-04-06 | Michael Kohne | Elektronische Diebstahlsicherung für Kraftfahrzeuge |
DE4332411A1 (de) | 1993-09-23 | 1995-03-30 | Bayerische Motoren Werke Ag | Diebstahlschutz für Kraftfahrzeuge mit mehreren Steuergeräten für Fahrzeugkomponenten |
JP3811183B2 (ja) * | 1993-11-30 | 2006-08-16 | ジーイー・テクノロジイ・ディベロップメント,インコーポレイテッド | データストリームを処理する装置及び方法 |
FR2713173B1 (fr) | 1993-12-03 | 1996-02-16 | Joseph Signor | Véhicule automobile à système de protection vis-à-vis du vol à carte à puce. |
DE4424735C2 (de) | 1994-07-13 | 1996-05-30 | Siemens Ag | Diebstahlschutzsystem |
DE19515123C1 (de) | 1995-04-25 | 1996-08-22 | Orga Kartensysteme Gmbh | Vorrichtung zur Sicherung von Gegenständen |
US5835145A (en) * | 1996-01-19 | 1998-11-10 | Lsi Logic Corporation | Conversion system using programmable tables for compressing transform coefficients |
DE29602609U1 (de) | 1996-02-15 | 1997-06-12 | Bosch Gmbh Robert | Erweiterte elektronische Chipkarteneinrichtung |
JP2870515B2 (ja) * | 1996-12-27 | 1999-03-17 | 日本電気株式会社 | 可変長符号化装置 |
-
1998
- 1998-12-30 KR KR1019980061814A patent/KR100335138B1/ko not_active IP Right Cessation
-
1999
- 1999-10-15 US US09/418,573 patent/US6339386B1/en not_active Expired - Lifetime
- 1999-12-07 DE DE19958962A patent/DE19958962B4/de not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5079548A (en) * | 1989-09-20 | 1992-01-07 | Fujitsu Limited | Data packing circuit in variable length coder |
US5436626A (en) * | 1990-03-26 | 1995-07-25 | Bell Communications Research, Inc. | Variable-length codeword encoder |
US5146220A (en) * | 1990-04-05 | 1992-09-08 | Canon Kabushiki Kaisha | Data conversion method and apparatus for converting undefined length data to fixed length data |
US5557271A (en) * | 1993-09-23 | 1996-09-17 | Goldstar Co., Ltd. | Variable length coder and variable length decoder |
US5652583A (en) * | 1995-06-30 | 1997-07-29 | Daewoo Electronics Co. Ltd | Apparatus for encoding variable-length codes and segmenting variable-length codewords thereof |
Non-Patent Citations (2)
Title |
---|
Lei, S., Sun, M.-T.: An Entropy Coding System for Digital HDTV Applications. In: IEEE Transactions on circuits and systems for video technology, vol. 1, no. 1, march 1991, p. 147-155 * |
Tietze, U., Schenk, Ch.: Halbleiterschaltungs- technik. Springer Verlag. 9. Aufl., 1998 * |
Also Published As
Publication number | Publication date |
---|---|
DE19958962A1 (de) | 2000-07-20 |
US6339386B1 (en) | 2002-01-15 |
KR100335138B1 (ko) | 2002-11-27 |
KR20000045256A (ko) | 2000-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE19958962B4 (de) | Codierer für variable Länge, Codierungsverfahren hierfür und Bitpaketierverfahren | |
DE4314741C2 (de) | Dekodierer für Einheiten von Huffman-kodierten Daten | |
DE19536401B4 (de) | Verfahren und Einrichtung zum Codieren und Decodieren von Daten | |
DE60100416T2 (de) | Dekoder für Kode variabler Länge | |
DE69333714T2 (de) | Speicher zur Verwendung im Dekodieren von Wörtern variabler Länge und Dekoder und Verfahren zur Verwendung in digitalen Kommunikationssystemen | |
DE19531049C2 (de) | Verfahren zum Komprimieren von Daten und Codierungsvorrichtung | |
DE4217009C1 (de) | Hochgeschwindigkeitsdekodierer für Codes veränderlicher Länge | |
DE4217008C2 (de) | HDTV-Dekodierer | |
DE4446072A1 (de) | Verfahren und Einrichtung zum parallelen Codieren und Decodieren von Daten | |
EP1550219B1 (de) | Verfahren und anordnung zur arithmetischen enkodierung und dekodierung von binären zuständen sowie ein entsprechendes computerprogramm und ein entsprechendes computerlesbares speichermedium | |
DE60128359T2 (de) | Erneute benützung von feste checksuminformationen bei datenkopfkomprimierung | |
EP1258085B1 (de) | Verfahren zum anpassen der einem turbo-codierer zuzuführenden datenblöcke und entsprechende kommunikationsvorrichtung | |
WO2003094529A2 (de) | Verfahren von transformations-koeffizienten in bild-oder videokodierern | |
DE102009044555A1 (de) | Verfahren und Vorrichtung zum Durchführen einer CRC-Prüfung | |
DE69923259T2 (de) | Digitaler Filter | |
EP1472888B1 (de) | Kontextsensitive kodierung und dekodierung eines videodatenstroms | |
EP1323313B1 (de) | Verfahren und anordnung zum übertragen eines vektors | |
EP0628183B1 (de) | Schaltungsanordnung zum digitalen multiplizieren von integer-zahlen | |
DE4441293C2 (de) | Verfahren und Schaltungsanordnung zum Lesen von Codewörtern variabler Länge aus einem Datenspeicher mit fester Wortlänge | |
DE60314139T2 (de) | Verfahren und system zur längenvariablen decodierung und vorrichtung zur positionsbestimmung von codewörtern | |
DE3545106C2 (de) | ||
DE19960269A1 (de) | Übertragungsverfahren mit Kanalcodierung mit wirksamer und modularer Verschachtelung für Turbocodes | |
EP0303978B1 (de) | Verfahren und Schaltungsanordnung zur Verbesserung der Auflösung von digitalen Signalen | |
DE10220888B4 (de) | Binärbildkomprimierungsverfahren und Verfahren zur Binärbildwiederherstellung | |
DE3417262C2 (de) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8127 | New person/name/address of the applicant |
Owner name: LG ELECTRONICS INC., SEOUL/SOUL, KR |
|
8127 | New person/name/address of the applicant |
Owner name: LG-NORTEL CO. LTD., SEOUL, KR |
|
8364 | No opposition during term of opposition | ||
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |
Effective date: 20110701 |