A METHOD FOR EFFICIENT VARIABLE LENGTH DECODING
Embodiments of the present invention perform efficient decoding of variable length codes statically defined by a coding standard for a wide range of source data. According to the disclosed method, special data structures (decoding tables) are created. A bit set size is associated with each decoding...
Gespeichert in:
Hauptverfasser: | , , , |
---|---|
Format: | Patent |
Sprache: | eng ; fre |
Schlagworte: | |
Online-Zugang: | Volltext bestellen |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Zusammenfassung: | Embodiments of the present invention perform efficient decoding of variable length codes statically defined by a coding standard for a wide range of source data. According to the disclosed method, special data structures (decoding tables) are created. A bit set size is associated with each decoding table. Each decoding table contains a decoded value, actual code length, reference to another table (from the set of created tables), and validity indicator for each bit combination that can be formed from the number of bits equal to the bit set size. An active decoding table is selected. Then the number of bits equal to the bit set size associated with the active decoding table is read from a bit stream. The active decoding table is indexed with the actual value of bits read to obtain the decoded value, actual code length, reference to another table, and validity indicator. The validity indicator is then checked to determine whether the decoded value obtained is valid. If the decoded value is indicated to be invalid, the decoding table that is referenced by the currently active table is selected to become active, and the decoding process continues. Otherwise, the bit steam is adjusted in accordance with the actual code length obtained and the bit set size associated with the decoding tables that were active during the decoding. The decoded value is then returned.
Divers modes de réalisation de l'invention permettent de décoder efficacement des codes de longueur variable définis statiquement par une norme de codage destinée à un large éventail de données source. Le procédé décrit comporte les étapes consistant à : produire des structures de données spéciales (tables de décodage) ; associer une taille d'ensemble de bits à chaque table de décodage, chacune des tables contenant une valeur décodée, une longueur de code réelle, une référence à une autre table (de l'ensemble de tables produites) et un indicateur de validité pour chaque combinaison de bits pouvant être formée à partir du nombre de bits égal à la taille de l'ensemble de bits ; sélectionner une table de décodage active ; et extraire d'un train de bits le nombre de bits égal à la taille de l'ensemble de bits associée à la table de décodage active ; indexer la table de décodage active à la valeur réelle de bits lue afin d'obtenir la valeur décodée, la longueur de code réelle, la référence à une autre table et l'indicateur de validité ; vérifier ensuite l'indicateur de validité pour déterminer si la valeur |
---|