Способ и устройство для кодирования и декодирования исходных данных с использованием сжатия символов

1. Способ кодирования входных данных (D1) в кодере (50) для генерации соответствующих кодированных данных (Е2), включающий:
(a) анализ символов, представленных во входных данных (D1), и разделение и/или преобразование входных данных (D1) с получением одного или более фрагментов данных;
(b) генерацию, в зависимости от появления символов, по меньшей мере одного из следующего: одной или более кодовых таблиц, одной или более частотных таблиц, одной или более таблиц длин кодовых слов, одной или более таблиц вероятностей, для символов, представленных в одном или более фрагментах данных;
(c) вычисление одного или более наборов индексов, связывающих символы в каждом фрагменте данных с элементами по меньшей мере в одном из следующего: в одной или более кодовых таблицах, в одной или более частотных таблицах, в одной или более таблицах длин кодовых слов, в одной или более таблицах вероятностей;
(d) объединение информации одного или более наборов индексов, относящихся к символам в каждом фрагменте данных, с по меньшей мере одним из следующего: одной или более частотными таблицами, одной или более кодовыми таблицами, одной или более таблицами длин кодовых слов, одной или более таблицами вероятностей, информацией, указывающей на одну или более таких таблиц, с получением кодированных данных (Е2);
(e) сжатие символов в одной или более таблиц с получением кодированных данных.
2. Способ по п. 1, отличающийся тем, что по меньшей мере одна из одной или более таблиц заранее задана.
3. Способ по п. 1 или 2, включающий доставку кодированных данных (Е2), содержащих информацию одного или более наборов индексов, относящихся к символам в каждом фрагменте данных, вместе с по меньшей мере одним из следующего: одной или более частотными таблицами, одной или более кодовыми таблицами, одной или более таблицами длин кодовых слов, одной или более таблицами вероятностей, информацией, указывающей на одну или более таких таблиц, а также сжатыми символами.
4. Кодер (50), предназначенный для кодирования входных данных (D1) для генерации соответствующих кодированных данных (Е2), содержащий:
(a) анализатор для анализа символов, представленных во входных данных (D1), и разделения и/или преобразования входных данных (D1) с получением одного или более фрагментов данных;
(b) генератор для генерации, в зависимости от появления символов, по меньшей мере одного из следующего: одной или более кодовых таблиц, одной или более частотных таблиц, одной или более таблиц длин кодовых слов, одной или более таблиц вероятностей для символов, представленных в одном или более фрагментах данных;
(c) процессор для вычисления одного или более наборов индексов, связывающих символы в каждом фрагменте данных с элементами по меньшей мере в одном из следующего: в одной или более кодовых таблицах, в одной или более частотных таблицах, в одной или более таблицах длин кодовых слов, в одной или более таблицах вероятностей;
(d) сборщик данных для объединения информации одного или более наборов индексов, относящихся к символам в каждом фрагменте данных, с по меньшей мере одним из следующего: одной или более частотными таблицами, одной или более кодовыми таблицами, одной или более таблицами длин кодовых слов, одной или более таблицами вероятностей, с информацией, указывающей на одну или более таких таблиц, для генерации с получением кодированных данных (Е2), с получением кодированных данных; и
(e) компрессор для сжатия символов в одной или более таблиц с получением кодированных данных (Е2).
5. Кодер (50) по п. 4, отличающийся тем, что он способен осуществлять доставку кодированных данных (Е2), содержащих информацию одного или более наборов индексов, относящихся к символам в каждом фрагменте данных, вместе с по меньшей мере одним из следующего: одной или более частотными таблицами, одной или более кодовыми таблицами, одной или более таблицами длин кодовых слов, одной или более таблицами вероятностей, информацией, указывающей на одну или более таких таблиц, а также сжатыми символами.
6. Кодер (50) по п. 5, отличающийся тем, что он способен осуществлять доставку по меньшей мере одной из одной или более таблиц с помощью способа, согласно которому по меньшей мере одна из одной или более таблиц может быть сохранена для последующего повторного использования.
7. Кодер (50) по любому из пп. 4-6, отличающийся тем, что он способен разделять входные данные (D1) на множество фрагментов данных и применять параллельную архитектуру процессоров для по существу параллельной обработки множества фрагментов данных.
8. Кодер (50) по п. 4, отличающийся тем, что он способен осуществлять динамическое переключение между объединением фрагментов данных в некодированном виде или в кодированном виде в кодированные данные (Е2), в зависимости от достижимого коэффициента сжатия фрагментов данных при включении их в кодированные данные (Е2).
9. Компьютерное программное изделие, содержащее машиночитаемый носитель информации, на котором хранятся машиночитаемые инструкции, исполняемые вычислительным устройством, содержащим аппаратные средства обработки, для выполнения способа по любому из пп. 1-3.
10. Способ, выполняемый в декодере (60), для декодирования кодированных данных (Е2), сгенерированных кодером (50) по любому из пп. 4-8, для генерации соответствующих декодированных данных (D3), при этом способ включает:
(i) прием кодированных данных (Е2) и выделение из них информации одного или более наборов индексов вместе с по меньшей мере одним из следующего: одной или более кодовыми таблицами, одной или более частотными таблицами, одной или более таблицами длин кодовых слов, одной или более таблицами вероятностей, информацией, указывающей на одну или более из этих таблиц;
(ii) вычисление, на основе одного или более наборов индексов, соответствующих символов в по меньшей мере одном из следующего: одном или более фрагментах данных, сжатых символах элементов в одной или более кодовых таблицах, одной или более частотных таблицах, одной или более таблицах длин кодовых слов, одной или более таблицах вероятностей;
(iii) восстановление из символов одного или более фрагментов данных с использованием информации из по меньшей мере одного из следующего: одной или более кодовых таблиц, одной или более частотных таблиц, одной или более таблиц длин кодовых слов, одной или более таблиц вероятностей; и
(iv) объединение и/или преобразование одного или более фрагментов данных для генерации декодированных данных (D3).
11. Способ по п. 10, отличающийся тем, что по меньшей мере одна из одной или более таблиц заранее задана.
12. Способ по п. 10, включающий перекодирование декодированных данных (D3) для генерации соответствующих перекодированных данных (D4) и/или генерацию соответствующих перекодированных данных (D4) из кодированных данных (Е2).
13. Способ по любому из пп. 10-12, включающий прием кодированных данных (Е2) из множества источников данных и объединение данных, полученных из этих источников, для восстановления кодированных данных (Е2).
14. Декодер (60), предназначенный для декодирования кодированных данных (Е2), сгенерированных кодером (50) по любому из пп. 4-8, для генерации соответствующих декодированных данных (D3), при этом декодер (60) способен:
(i) принимать кодированные данные (Е2) и выделять из них информацию одного или более наборов индексов вместе с по меньшей мере одним из следующего: одной или более кодовыми таблицами, одной или более частотными таблицами, одной или более таблицами длин кодовых слов, одной или более таблицами вероятностей, информацией, указывающей на одну или более из этих таблиц;
(ii) вычислять на основе одного или более наборов индексов соответствующие символы в по меньшей мере одном из следующего: одном или более фрагментах данных, сжатых символах элементов в одной или более кодовых таблицах, одной или более частотных таблицах, одной или более таблицах длин кодовых слов, одной или более таблицах вероятностей;
(iii) восстанавливать из символов один или более фрагментов данных с использованием информации из по меньшей мере одного из следующего: одной или более кодовых таблиц, одной или более частотных таблиц, одной или более таблиц длин кодовых слов, одной или более таблиц вероятностей; и
(iv) объединять и/или преобразовывать один или более фрагментов данных для генерации декодированных данных (D3).
15. Декодер (60) по п. 14, включающий также транскодер (70) для перекодировки декодированных данных (D3) для генерации соответствующих перекодированных данных (D4) и/или генерации соответствующих перекодированных данных (D4) из кодированных данных (Е2).
16. Декодер (60) по п. 14, отличающийся тем, что он способен принимать по меньшей мере одну из одной или более таблиц с помощью способа, согласно которому по меньшей мере одна из одной или более таблиц сохраняется для последующего повторного использования.
17. Декодер (60) по любому из пп. 14-16, отличающийся тем, что он способен объединять множество из одного или более фрагментов данных для генерации декодированных данных (D3) путем применения параллельной архитектуры процессоров для по существу параллельной обработки множества фрагментов данных.
18. Декодер (60) по п. 14, отличающийся тем, что он способен осуществлять динамическое переключение между генерацией одного или более фрагментов данных в некодированном виде или в кодированном виде в кодированные данные (Е2), в зависимости от достижимого коэффициента распаковки фрагментов данных при включении их в кодированные данные (Е2).
19. Декодер (60) по п. 14, отличающийся тем, что он способен распаковывать одну или более кодовых таблиц, включенных в кодированные данные (Е2).
20. Декодер (60) по п. 14, отличающийся тем, что он способен принимать одну или более кодовых таблиц таким образом, чтобы одна или более кодовых таблиц могла быть использована в декодере (60) для декодирования переданных впоследствии данных.
21. Декодер (60) по п. 14, отличающийся тем, что он способен извлекать из кодированных данных (Е2) один или более идентификационных кодов, указывающих, откуда доступны одна или более кодовых таблиц через одну или более баз данных и/или одну или более баз данных на прокси-сервере.
22. Декодер (60) по п. 14, отличающийся тем, что он способен принимать кодированные данные (Е2) из множества источников данных и объединять данные, полученные из этих источников, для восстановления кодированных данных (Е2).
23. Кодек (100), содержащий по меньшей мере один кодер (50) по п. 4 для кодирования входных данных (D1) для генерации соответствующих кодированных данных (Е2) и по меньшей мере один декодер (60) по п. 14 для декодирования кодированных данных (Е2) для генерации декодированных выходных данных (D3).
24. Кодек (100) по п. 23, отличающийся тем, что по меньшей мере один кодер (50) и по меньшей мере один декодер (60) пространственно разделены друг с другом и связаны друг с другом через сеть передачи данных.
25. Кодек (100) по п. 23, отличающийся тем, что сеть передачи данных сконфигурирована как одноранговая сеть связи.
26. Кодек (100) по п. 23, отличающийся тем, что кодер (50) и декодер (60) симметрично обрабатывают данные, проходящие через них.