Method and apparatus for decoding encoded structured data from a bit-stream
AssigneeCanon Kabushiki Kaisha
InventorsYoueen Fablet, Hervé Ruellan, Romain Bellesort
Life of this patent
Estimating the term…
Abstract
A method for decoding encoded structured data from a bit-stream comprising a plurality of encoded data units having the steps of, obtaining unit information comprising positions of the encoded data units within the bit-stream, retrieving the encoded data units from the bit-stream based on the unit information, creating decoding tasks for decoding the retrieved encoded data units, assigning the created decoding tasks to cores of a multi-core decoder, based on estimated decoding costs of the encoded data units, running the tasks on their assigned cores to decode the encoded data units in parallel is disclosed. It is applied to the decoding of XML documents in the EXI format.
Claims20
A method for decoding encoded markup-language structured data from a bit-stream comprising a plurality of encoded data units comprising:
- obtaining unit information comprising positions of the encoded data units within the bit-stream;
- retrieving the encoded data units from the bit-stream, based on the unit information;
- creating decoding tasks for decoding the retrieved encoded data units;
- assigning the created decoding tasks to cores of a multi-core decoder in decreasing order of the estimated decoding costs, of the encoded data units, the estimated costs of an encoded data unit being an estimate of at least one of a number of entries or bytes composing the encoded data unit and a decoding time to decode the encoded data unit;
- running the tasks on their assigned cores to decode the encoded data units in parallel;
- and
- obtaining the markup-language structured data from decoded data units;
- an indexing table including entries that associate indexing references with respective decoded values, a new entry being added to the indexing table upon literally decoding an encoded value of an encoded data unit by associating an indexing reference with the literally decoded value;
- decoding an encoded data unit comprises resolving indexing references of the encoded data unit with entries of an indexing table to obtain decoded values associated with the indexing references in the indexing table and not resolving at least one indexing reference of the encoded data unit because the indexing reference is not vet available in the indexing table at the time it is subject to solving and becomes available in the indexing table by the decoding of another encoded data unit, and
- wherein the method further comprises, after decoding the encoded data units, post-processing the encoded data units to resolve unresolved indexing references, said resolving using the indexing references made available in the indexing table by the decoding of another unresolved during the decoding of the encoded data units.
An apparatus having a processor for decoding encoded markup-language structured data from a bit-stream comprising a plurality of encoded data units, comprising:
- a unit configured to obtain unit information comprising positions of the encoded data units within the bit-stream;
- a unit configured to retrieve the encoded data units from the bit-stream, based on the unit information;
- a unit configured to create decoding tasks for decoding the retrieved encoded data units;
- a unit configured to assign the created decoding tasks to cores of a multi-core decoder in decreasing order of estimated decoding costs, of the encoded data units, the estimated costs of an encoded data unit being an estimate of at least one of a number of entries or bytes composing the encoded data unit and a decoding time to decode the encoded data unit;
- a unit configured to run the tasks on their assigned cores to decode the encoded data units in parallel;
- and
- a unit configured to obtain the markup-language structured data the decoded data units;
- a unit configured to create an index table including entries that associate indexing references with respective decoded values, a new entry being added to the indexing table upon literally decoding an encoded value of an encoded data unit by associating an indexing reference with the literally decoded value;
- a unit configured to decode an encoded data unit comprises resolving indexing references of the encoded data unit with entries of an indexing table to obtain decoded values associated with the indexing references in the indexing table and not resolving at least one indexing reference of the encoded data unit because the indexing reference is not vet available in the indexing table at the time it is subject to solving and becomes available in the indexing table by the decoding of another encoded data unit, and
- a unit configured to post-process the encoded data units to resolve unresolved indexing references, after decoding the encoded data units, said resolving using the indexing references made available in the indexing table by the decoding of another unresolved during the decoding of the encoded data units.
A non-transitory computer readable storage medium storing computer-executable instructions for controlling an apparatus which, when executed by a computer, cause the computer to perform operations comprising:
- obtaining unit information comprising positions of the encoded data units within the bit-stream;
- retrieving the encoded data units from the bit-stream, based on the unit information;
- creating decoding tasks for decoding the retrieved encoded data units;
- assigning the created decoding tasks to cores of a multi-core decoder in decreasing order of estimated decoding costs, of the encoded data units, the estimated costs of an encoded data unit being an estimate of at least one of a number of entries or bytes composing the encoded data unit and a decoding time to decode the encoded data unit;
- and
- running the tasks on their assigned cores to decode the encoded data units in parallel;
- and
- obtaining the markup-language structured data from decoded data units;
- an indexing table including entries that associate indexing references with respective decoded values, a new entry being added to the indexing table upon literally decoding an encoded value of an encoded data unit by associating an indexing reference with the literally decoded value;
- decoding an encoded data unit comprises resolving indexing references of the encoded data unit with entries of an indexing table to obtain decoded values associated with the indexing references in the indexing table and not resolving at least one indexing reference of the encoded data unit because the indexing reference is not vet available in the indexing table at the time it is subject to solving and becomes available in the indexing table by the decoding of another encoded data unit, and
- wherein the method further comprises, after decoding the encoded data units, post-processing the encoded data units to resolve unresolved indexing references, said resolving using the indexing references made available in the indexing table by the decoding of another unresolved during the decoding of the encoded data units.
Dependencies are inferred from the claim text.