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 PDF

Info

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
Application number
DE19958962A
Other languages
English (en)
Other versions
DE19958962A1 (de
Inventor
Hyun Duk Songnam Cho
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ericsson LG Co Ltd
Original Assignee
LG Nortel Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by LG Nortel Co Ltd filed Critical LG Nortel Co Ltd
Publication of DE19958962A1 publication Critical patent/DE19958962A1/de
Application granted granted Critical
Publication of DE19958962B4 publication Critical patent/DE19958962B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods 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/91Entropy 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...

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-Codegenerator 10, einem Bitpaketierer 20 und einem Kanalpuffer 30. Der VLC-Codegenerator 10 erzeugt und überträgt Codeinformation und Codelängeninformation an den Bitpaketierer 20. Der Bitpaketierer 20 sammelt die empfangene Codeinformation für die Dauer der vorbestimmten Codelänge des VLC und gibt die angesammelte Codeinformation an den Kanalpuffer 30 aus. Der Kanalpuffer 30 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 in 2 dargestellt ist, zwei Umlaufregister 21 und 22, einen Akkumulator 23, mehrere Register 2428 und ein Flipflop (F/F) 29. Um die Codeinformation zu verketten und in vorbestimmte Codelänge zu segmentieren, führt der Bitpaketierer 20 eine Bitpaketierung der Codeinformation aus, das Umlaufregister 21 verkettet die eingegebenen Codes zum in das Register eingespeicherten Bitstrom, und das Umlaufregister 22 segmentiert den Bitstrom entsprechend der vorbestimmten Codelänge. Der Akkumulator 23 addiert die eingegebenen Codelängen und informiert das Umlauf register 22 beim Erreichen der vorbestimmten Codelänge. D.h., dass vom Addierer 23 jedesmal dann ein Freigabesignal an das 1-Bit-Flipflop (F/F) übertragen wird, wenn der Akkumulator 23 die vorbestimmte Codelänge erreicht hat. Dieses Signal informiert den Kanalpuffer 30 dahingehend, die Codes vom Bitpaketierer 20 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 der 1;
  • 3 zeigt ein Ausführungsbeispiel eines erfindungsgemäßen VLC;
  • 4 zeigt einen im VLC der 3 verwendeten Bitpaketierer;
  • 5 zeigt ein anderes Ausführungsbeispiel eines erfindungsgemäßen VLC;
  • 6 zeigt einen im VLC der 5 verwendeten Bitpaketierer; und
  • 7 zeigt den Betrieb des Bitpaketierers in 5.
  • 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-Codegenerator 100 zum Erzeugen und Ausgeben von Codeinformation und Codelängeninformation unter Verwendung eines eingegebenen Symbols; einen Codepuffer 200 zum Speichern der Codeinforma tion vom VLC-Codegenerator 100 und zum Ausgeben der Codeinformation mit konstanter Rate; einen Längenpuffer 300 zum Speichern der Codelängeninformation vom VLC-Codegenerator 100 und zum Ausgeben der Codelängeninformation mit konstanter Rate; und einen Bitpaketierer 400 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 Bitpaketierer 400 ein Parallel-Seriell-Register 420 und einen Abwärtszähler 410, wie es in 4 dargestellt ist. Das Parallel-Seriell-Register 420 liest die Codeinformation vom Codepuffer 200 auf parallele Weise. Gleichzeitig liest der Abwärtszähler 410 die Codelängeninformation, und er zählt für jedes vom Parallel-Seriell-Register 420 ausgegebene Codebit nach unten. D.h., dass der Abwärtszähler 410 ausgehend vom gelesenen Codelängenwert bis auf den Wert null herunterzählt. Pro Zählvorgang gibt das Parallel-Seriell-Register 420 ein Codebit der aus dem Codepuffer 200 gelesenen Codeinformation seriell aus.
  • In 7 ist der Abtastvorgang des Bitpaketierers 400 in den ersten vier Spalten der dortigen Tabelle dargestellt. Zu einem Zeitpunkt 0, nämlich beim Empfangen des gelesenen Signals, lesen das Parallel-Seriell-Register 420 und der Abwärtszähler 410 den Code bzw. die Codelängeninformation aus dem Codepuffer 200 bzw. dem Längenpuffer 300. Zu einem Zeitpunkt 1 speichert das Parallel-Seriell-Register 420 den Wert 000xxxxx ein, und der Abwärtszähler 410 speichert den Wert 2 ein. Es wird darauf hingewiesen, dass die signifikante Bitlänge 3 ist, jedoch liest der Abwärtszähler 410 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-Register 420 speichert 00xxxxxx ein. Das höchstsignifikante Bit (MSB), d.h. das Bit ganz links, wird vom VLC ausgegeben. Der im Abwärtszähler 410 gespeicherte Wert fällt von 2 auf 1. Zu einem Zeitpunkt 3 wird der gespeicherte Bitstrom erneut nach links eingestellt und das Parallel-Seriell-Register 420 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-Register 420 und der Abwärtszähler 410 die nächste Codeinformation 01xxxxxx und die Codelängeninformation 1 aus dem Codepuffer 200 bzw. dem Längenpuffer 300. Danach wird der im Parallel-Seriell-Register 420 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 Bitpaketierer 400 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-Codegenerator 100, ein Codepuffer 200 und ein Längenpuffer 300 vorhanden, wie beim in 3 dargestellten ersten Ausführungsbeispiel. Ferner verfügt der VLC über einen Bitpaketierer 600 zum Lesen und Speichern der Codeinformation sowie einen Kanalpuffer 500 zum Speichern der Codeinformation vom Bitpaketierer 600 und zum Ausgeben derselben mit konstanter Rate.
  • Wie es in 6 dargestellt ist, besteht der Bitpaketierer 600 im Wesentlichen aus zwei Bitpaketierern, wobei der erste dem Bitpaketierer 400 des in 3 dargestellten ersten Ausführungsbeispiels entspricht. Insbesondere beinhaltet der Bitpaketierer 600 ein Parallel-Seriell-Register 420 zum Lesen und Ausgeben der Codeinformation aus dem Codepuffer 200; einen ersten Abwärtszähler 410 zum Abwärtszählen ausgehend vom gelesenen Codelängenwert; ein Seriell-Parallel-Register 620 zum Empfangen und Verketten von Codebits vom Parallel-Seriell-Register 420; und einen zweiten Abwärtszähler 610 zum Zählen von Bits für die vorbestimmte Codelänge. Das Parallel-Seriell-Register 420 und der erste Abwärtszähler 410 arbeiten auf dieselbe Weise wie in 3, mit der Ausnahme, dass der im Parallel-Seriell-Register 420 gespeicherte Bitstrom entsprechend dem Systemtaktsignal an das Seriell-Parallel-Register 620 ausgegeben wird.
  • Das Seriell-Parallel-Register 620 verkettet und speichert den eingegebenen Bitstrom vom Parallel-Seriell-Register 420 bis die vorbestimmte Codelänge erreicht ist. Wenn der eingegebene Bitstrom in das Seriell-Parallel-Register 620 eingespeichert ist, zählt der zweite Abwärtszähler 610 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ähler 610 den Wert 0 erreicht, erreicht der im Seriell-Parallel-Register 620 gespeicherte Bitstrom die vorbestimmte Codelänge und wird auf parallele Weise an den Kanalpuffer 500 ausgegeben. Dann gibt der Kanalpuffer 500 die Codeinformation mit konstanter Rate aus.
  • 7 ist eine Tabelle, die einen Abtastvorgang des Bitpaketierers 600 zeigt, wobei die vorbestimmte Codelänge 8 ist. Ähnlich wie in 3 werden zu einem Zeitpunkt 0 die Codeinformation und die Längeninformation gelesen. Zu einem Zeitpunkt 1 speichert das Parallel-Seriell-Register 420 den Wert 000xxxxx, während der Abwärtszähler 410 den Wert 2 einspeichert. Zu einem Zeitpunkt 2 speichert das Parallel-Seriell-Register 420 den Wert 00xxxxxx ein, während der Abwärtszähler 410 den Wert 1 einspeichert. Auch empfängt das Seriell-Parallel-Register 620 zu einem Zeitpunkt 2 das MSB vom Parallel-Seriell-Register 420 und speichert den Bitstrom xxxxxxx0 ein. Wenn das Seriell-Parallel-Register 620 das MSB empfängt, beginnt der zweite Abwärtszähler 610 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-Register 420 und verkettet sie. Im Ergebnis wird das Seriell-Parallel-Register 620 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ähler 610 den Zählwert 0 erreicht, erreicht die Summe der im Seriell-Parallel-Register 620 gespeicherten Bits die vorbestimmte Codelänge. So wird zu einem Zeitpunkt 9 der Bitstrom vorbestimmter Codelänge 00001100 vom Seriell-Parallel-Register 620 des Bitpaketierers 600 an den Kanalpuffer 500 ausgegeben. Danach, zu einem Zeitpunkt 10, beginnt der zweite Zähler 610 ausgehend von 7 zu zählen, während das Seriell-Parallel-Register 620 weiterhin das MSB vom Parallel-Seriell-Register 420 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äß der 3 benötigt, ist das beim Bitpaketierer der 5 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 Codepuffer 200 und im Längenpuffer 300 der 5 kleiner als bisher sein.
  • Im Ergebnis kann der in 4 dargestellte VLC mit einfachem Bitpaketierer 400 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 Bitpaketierer 600, wie in 6 dargestellt, dazu verwendet werden, die Gesamtspeichergröße zu verringern, selbst bei komplizierterer Hardware.
  • Die in den 3 und 5 dargestellten Ausführungsbeispiele eines erfindungsgemäßen VLC verwenden einen Abwärtszähler, jedoch kann in den Bitpaketierern 400 und 600 auch ein Aufwärtszähler verwendet werden. In diesem Fall würde ein erster Aufwärtszähler den Abwärtszähler 410 ersetzen, und ein zweiter Aufwärtszähler würden den Abwärtszähler 610 ersetzen. Genauer gesagt, würde, wenn das Parallel-Seriell-Register 420 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-Register 620 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ählers 610 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-Register 620 gespeicherte Bitstrom an den Kanalpuffer 500 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)

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. VLC nach Anspruch 4, dadurch gekennzeichnet, dass das Seriell-Parallel-Register (620) MSBs vom Parallel-Seriell-Register (420) empfängt.
  10. 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.
  11. 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.
  12. 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.
  13. 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.
  14. 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.
  15. 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.
  16. 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.
  17. 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.
  18. 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.
DE19958962A 1998-12-30 1999-12-07 Codierer für variable Länge, Codierungsverfahren hierfür und Bitpaketierverfahren Expired - Fee Related DE19958962B4 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 日本電気株式会社 可変長符号化装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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