Настоящее изобретение относится к кодированию числовых данных и передачи структур данных в телекоммуникационной системе, в частности в телекоммуникационной системе, основанной на IP-протоколе.
Конкретно, изобретение относится к способу, который может быть реализован с использованием компьютера для кодирования элемента числовых данных по преамбуле п.1 формулы изобретения, к способу кодирования структур данных по преамбуле п.4 формулы изобретения и к способу декодирования структур данных по преамбуле п.7 формулы изобретения.
При обменах, основанных на IP-протоколе, например, в клиент-серверных приложениях с ограниченной пропускной способностью, необходимо передавать данные, организованные в более или менее сложные структуры, в форме уникальной последовательности символов. Примером таких структур является сериализация объекта, структуры данных «общего назначения», организованные иерархически с незаданным числом уровней, и коллекции строк.
Для передачи этих структур данных обычно необходимо предусмотреть систему кодирования данных, которая не зависит от первоначальной природы элемента данных, приспособленную к кодированию структур в виде последовательности символов, позволяющих элементу данных быть эффективно восстановленным в первоначальный формат в его месте назначения.
Настоящее состояние области техники представлено технологиями, основанными на тегах, такими как язык XML.
К сожалению, известные способы кодирования отличаются жестким синтаксисом, который требует предварительной обработки данных.
Системы быстрого кодирования желательны в определенных областях связи, таких как спутниковая связь, или там, где требуется оптимизация ширины полосы пропускания, и, если данные являются буквенно-цифровыми, система позволяет результату кодирования быть анализируемым посредством простого текстового редактора вместо использования специальных сред отладки.
Задача настоящего изобретения - предоставить способ кодирования числовых данных в компьютере вместе со способами кодирования и декодирования структур данных соответствующим образом, которые преодолевают недостатки, известные в области техники.
Конкретная задача изобретения - предоставить эффективный способ сцепления строк для передачи в телекоммуникационной системе.
Согласно настоящему изобретению, эти задачи решаются посредством способа кодирования числовых данных в компьютере, имеющего характеристики, заявленные в п.1 формулы изобретения, способа кодирования структур данных, имеющего характеристики, заявленные в п.4 формулы изобретения, и способа декодирования структур данных, имеющего характеристики, заявленные в п.7 формулы изобретения.
Конкретные варианты осуществления изобретения описаны в зависимых пунктах формулы изобретения.
Другие объекты изобретения - это способ передачи данных, а также системы обработки и программа или набор программ, исполняемые посредством вышеуказанных систем для реализации заявленных способов.
Кратко, настоящее изобретение основано на принципе представления элемента числовых данных посредством позиционной системы счисления с заданным основанием, в которой элементы основания составляются из символов алфавита, которые могут быть представлены в компьютере в двоичной форме согласно кодированию ASCII, и предпочтительно посредством 26 символов английского алфавита.
Согласно изобретению, элемент числовых данных, другими словами, числовое значение или любое выражение, которое может быть выражено числовым значением, может быть представлено выражением, включающим в себя строчные символы алфавита, за исключением наименьшего значащего элемента, который представлен прописным символом алфавита.
Это преимущественно дает возможность представить элемент числовых данных в самосогласованном виде, другими словами, в таком виде, что размер в терминах количества символов элемента числовых данных очевиден из самого элемента данных, без априорного определения размеров поля хранения элемента данных и без использования разделительных символов полей.
Предлагаемое числовое представление является более компактным, чем шестнадцатеричная система счисления или десятичное представление, так как оно требует меньшего числа символов для представления того же элемента числовых данных. Это преимущество становится более значительным, когда представляемое число увеличивается.
Более того, так как число символов, применяемых для представления числа, не задано априори, не существует неиспользованных символов, другими словами, не использованных битов в поле.
Способ кодирования структур данных, согласно изобретению, основан на сцеплении строк, в котором для каждой строки поле данных предусматривается полезным для представления последовательности символов этой строки вместе с полем заголовка, указывающим число символов, составляющих поле полезных данных.
Поле заголовка строки имеет переменный размер и включает в себя элемент числовых данных, указывающий длину строки в символах, согласно предложенному методу представления.
Дополнительные характерные особенности и преимущества изобретения будут раскрыты более полно в последующем подробном описании одного варианта осуществления изобретения, предусмотренного путем неограничивающего примера, с конкретной ссылкой на способ, представляющий элемент числовых данных в компьютере, и на способ кодирования структур данных для сцепления строк.
Согласно изобретению, обеспечивается позиционная система счисления с заданным основанием для представления элемента числовых данных в компьютере, элементов основания в этой системе, представленных символами алфавита, и, конкретно, символами английского алфавита, каждый из которых представлен в двоичной кодировке, согласно стандарту ASCII посредством одного байта данных (используя 7 бит согласно первоначальному стандарту или 8 бит согласно расширенному стандарту ASCII), и идентифицируется в десятичном коде в диапазоне от 65 до 90 в прописной форме и посредством десятичных кодов в диапазоне от 97 до 122 в строчной форме.
Предпочтительно, все 26 символов алфавита используются, таким образом создается система счисления с основанием 26.
Следующее соответствие между числовым значением с десятичным основанием (или тем же значением с основаниями двоичной, восьмеричной или шестнадцатеричной системы счисления) и соответствующим символом в системе счисления с основанием 26 определяется в матрице преобразования, сохраняемой в компьютере:
Таким образом, для примера, десятичное числовое значение 27 может быть представлено выражением «bb» или «BB» в системе счисления с предлагаемым основанием 26.
Следует отметить, что в ASCII-стандарте строчный символ отличается от такого же прописного символа тем, что бит в позиции 6 двоичного кода, представленный символом, установлен в «0» (для прописной нотации) или «1» (для строчной нотации).
Следующее правило задается для представления окончательного элемента числовых данных, согласно способу представления, предлагаемому изобретением: элемент числовых данных представляется символами, определяемыми с основанием системы счисления 26 в строчной форме, за исключением элемента самого младшего разряда, который представлен в прописной форме.
Для того чтобы представить элемент числовых данных, сохраненный в одном из его регистров или ячеек памяти, компьютер читает числовое значение или выражение, указывающее числовое значение элемента данных, затем конвертирует представление из первоначального основания в целевое основание, предложенное изобретением, согласно хорошо известным правилам преобразования, используя матрицу преобразования, определенную выше, устанавливая значение бита в позиции 6 двоичного кода, который представляет все символы представления данных, за исключением символа, назначенного самому младшему элементу, в первое предопределенное двоичное значение, например, в значение «1» для строчной нотации, и устанавливая значение бита позиции 6 двоичного кода, который представляет конечный символ представления данных, другими словами, самый младший элемент, в другое двоичное значение, другими словами, значение «0» для прописной нотации.
Ясно, что вышеописанная информация предусмотрена исключительно с целью примера, и, соответственно, возможно рассматривать альтернативное использование обратного представления окончательного элемента числовых данных, в котором элемент числовых данных представлен прописными символами, за исключением самого младшего элемента, который представлен строчным символом алфавита.
Некоторые примеры числового представления показаны в следующей таблице, в которой значения, выраженные в различных числовых основаниях, показаны в каждой строке.
Число используемых символов равно 52, другими словами, 26 прописных букв и 26 строчных букв, и, таким образом, преимущественно возможно представить элемент числовых данных, который является самосогласованным, другими словами, чей размер, исходя из числа символов алфавита или битов, представляющих символы элемента числовых данных, может быть выведен из элемента числовых данных, который представлен.
Таким образом, возможно составить следующую строку, сформированную из последовательности четырех элементов числовых данных, представленных в системе счисления с основанием 26, закодированных как предложено изобретением: "abcDjxGpBC", использующую только биты полезной информации в регистрах памяти компьютера.
Следующие значения могут быть быстро выделены:
Очевидно, поэтому, что элемент числовых данных, выраженный с выбранным основанием, может быть преимущественно определен без требующих использования символов разделителей полей хранения данных, другими словами, символов, которые отличаются от (дополнительные к) этих формирующих представление элемента числовых данных, которые указывают границы между одним элементом числовых данных и следующим в представлении, и без требования априорного определения размерности поля хранения данных, предусмотренного для представления числовых данных.
Так как прописная и строчная нотация символов алфавита может отличаться в ASCII-стандарте значением бита в позиции 6 двоичного кода, представляющего символ, распознавание самого младшего элемента в выражении элемента числовых данных, и поэтому окончательного элемента числовых данных, является легким и быстрым, таким образом, позволяя быстро декодировать информацию, которая передается.
Представление, описанное выше, может служить как основа для реализации способа кодирования и соответствующего декодирования структур данных, основанных на сцеплении строк, приспособленных для передачи как последовательности символов посредством телекоммуникационной системы.
Инновационный способ сцепления содержит, для каждой строки структуры данных, которые должны быть переданы, обеспечение поля полезных данных для представления последовательности символов строки, и поля заголовка, связанного с ним, для указания элемента числовых данных, представляющего число символов, составляющих поле полезных данных.
Поле заголовка строки включает в себя элемент числовых данных, представленный в инновационной системе счисления, которая была описана, и поэтому имеет приспособленный размер, который изменяется в соответствии со связанной строкой, и более конкретно, имеет размер одного или более байт, в зависимости от числа символов алфавита, представляющих вышеуказанный числовой элемент данных.
В псевдокоде поля, формирующие каждую сцепленную строку, могут быть представлены как:
Base26(len(String))+String,
где:
"String" - последовательность символов, которые должны быть сцеплены;
"len(String)" - элемент числовых данных, указывающий число символов, составляющих строку; и
Base26() - функция, которая переводит элемент числовых данных в кодировку с основанием 26, которая описана.
Пример сцепленной строки:
"G123456HabcdefgbJnel mezzo del cammin di nostra vita"
Сцепленная строка:
Реализуемый компьютером способ декодирования сложных структур данных, содержащих сцепленные строки, полученные в форме последовательности символов телекоммуникационной системой, содержит:
чтение элемента числовых данных первого поля заголовка, закодированного в позиционной системе счисления, которая описана;
получение строки в форме последовательности символов, имеющих длину, определяемую значением элемента числовых данных, определенным на предыдущем шаге; и
повторение предыдущих шагов до тех пор, пока последовательность символов не исчерпается.
Следующие выводы могут быть описаны из этого примера:
- нет необходимости в способе вставки сцепленных строк, так как разделительный символ не используется;
- так как размер подстроки размещается в ее заголовке, использование буферов, которые должны их сохранять, оптимизируется в случае потокового декодирования;
- так как представление по основанию 26, согласно изобретению, основано на символах, которые могут быть представлены согласно стандарту ASCII, «печатаемого» типа, эти символы прозрачны для любого коммуникационного протокола.
Коллекция программных модулей, так называемых классов, адаптированных для выполнения представления элемента числовых данных согласно способу, предлагаемому изобретением, и для кодирования и декодирования структур данных согласно способу, предлагаемому изобретением, и сохраненные на диск или доступные в сети, формирует неотъемлемую библиотеку в телекоммуникационных системах для передачи сообщений по IP-протоколу между подсистемами, составляющих системы мониторинга и контроля (MCS) в спутниковой сети, отличающихся тем, что наблюдение за данными должно занимать минимально возможное количество полосы пропускания, заданной для трафика «данных пользователя».
Естественно, принцип изобретения остается одинаковым, формы воплощения и детали устройства могут широко меняться относительного того, что описано и проиллюстрировано, что было дано исключительно в качестве неограничивающего примера так, что тем самым не отступает от объема охраны настоящего изобретения, как определено в прилагаемой формуле изобретения.
Изобретение относится к кодированию числовых данных и передачи структур данных в телекоммуникационной системе, основанной на IP-протоколе. Способ описан для кодирования элемента числовых данных в позиционной системе счисления, основными элементами которой являются символы, которые представлены, согласно стандарту ASCII, в двоичной кодировке, в которой значение бита в позиции 6 двоичного кода, который представляет все символы представления элемента данных, за исключением символа, назначенного самому младшему элементу, установлено в первое предопределенное двоичное значение, и значение бита в позиции 6 двоичного кода, которое представляет символ, назначенный самому младшему элементу, установлено в другое двоичное значение. Так же описан способ кодирования и способ декодирования сложных структур данных, содержащих сцепленные строки для передачи в форме последовательности символов в телекоммуникационных системах, основанных на предоставлении поля заголовка строки, связанного с полем полезных данных для представления последовательности символов строки, в котором поле заголовка содержит сохраненное числовое значение элемента данных, представляющего число символов, составляющих поле полезных данных, которое кодируется в вышеупомянутой позиционной системе счисления. Технический результат - обеспечение оптимизации ширины полосы пропускания. 7 н. и 6 з.п. ф-лы.
1. Реализуемый компьютером способ кодирования элемента числовых данных, сохраненного в регистре или ячейке памяти, содержащий этапы:
считывания числового значения вышеупомянутого элемента данных, выраженного на основе предопределенного первоначального основания системы счисления,
преобразования представления элемента числовых данных посредством сохраненной матрицы преобразования, предназначенной для связи символов с основанием первой первоначальной позиционной системы счисления с символами с основанием целевой позиционной системы счисления,
отличающийся тем, что вышеупомянутая целевая позиционная система счисления имеет элементы основания, формирующиеся из символов алфавита, которые представляются, согласно стандарту ASCII, в двоичной кодировке, и при этом
способ включает в себя операцию установки значения бита в позиции 6 двоичного кода, который представляет все символы, представляющие элемент данных, за исключением символа, назначенного самому младшему значащему элементу, в первоначальное предопределенное двоичное значение, и установки значения бита в позиции 6 двоичного кода, который представляет символ, назначенный самому младшему значащему элементу, в другое двоичное значение.
2. Способ по п.1, в котором предопределенное значение бита в позиции 6 двоичного кода; которое представляет все символы, представляющие элемент данных, за исключением символа, назначенного самому младшему значащему элементу, имеет значение «1», и значение бита в позиции 6 двоичного кода, которое представляет символ, назначенный самому младшему элементу, имеет значение «0», так что самый младший значащий элемент выражения элемента числовых данных является символом алфавита в прописной нотации, а другие элементы, если они есть, являются символами алфавита в строчной нотации.
3. Способ по п.2, в котором вышеупомянутые символы алфавита содержат 26 символов английского алфавита, которые представлены, согласно стандарту ASCII, в двоичной кодировке и идентифицируются десятичными кодами в диапазоне от 65 до 90 в прописной форме и десятичными кодами - в диапазоне от 97 до 122 в строчной форме.
4. Реализуемый компьютером способ кодирования сложных структур данных, содержащих сцепленные строки, для их передачи как последовательность символов в телекоммуникационной системе,
отличающийся тем, что для каждой строки структуры данных, которые должны передаваться, способ содержит этапы:
предоставление поля заголовка для строки, связанного с полем полезных данных для представления последовательности символов упомянутой строки, причем вышеупомянутое поле заголовка имеет сохраненный элемент данных, представляющий число символов, которые составляют поле полезных данных; и
запись в вышеупомянутое поле заголовка элемента числовых данных, кодированного в позиционной системе счисления, основными элементами которой являются символы, которые представлены, согласно стандарту ASCII, в двоичной кодировке, причем значение бита в позиции 6 двоичного кода, который представляет все символы, представляющие элемент данных, за исключением символа, назначенного самому младшему значащему элементу, установлено в первое предопределенное двоичное значение, и значение бита в позиции 6 двоичного кода, который представляет символ, назначенный самому младшему значащему элементу, установлено в другое двоичное значение.
5. Способ по п.4, в котором предопределенное значение бита в позиции 6 двоичного кода, который представляет все символы, представляющие элемент данных, за исключением символа, назначенного самому младшему значащему элементу, имеет значение «1», и значение бита в позиции 6 двоичного кода, которое представляет символ, назначенный самому младшему значащему элементу, имеет значение «0», так что самый младший значащий элемент выражения элемента числовых данных является символом алфавита в прописной нотации, и другие элементы, если они есть, являются символами алфавита в строчной нотации.
6. Способ по п.5, в котором вышеупомянутые символы алфавита содержат 26 символов английского алфавита, которые представлены, согласно стандарту ASCII, в двоичной кодировке, и идентифицируются десятичными кодами в диапазоне от 65 до 90 в прописной форме, и десятичными кодами - в диапазоне от 97 до 122 в строчной форме.
7. Реализуемый компьютером способ декодирования сложных структур данных, содержащих сцепленные строки, принятых в форме последовательности символов в телекоммуникационной системе,
отличающийся тем, что каждая строка содержит поле заголовка, приспособленное хранить элемент числовых данных, представляющий число символов, которые составляют строку, и поле полезных данных, представляющее последовательность символов упомянутой строки,
и способ содержит этапы:
i) считывание элемента числовых данных первого поля заголовка, кодированного в позиционной системе счисления, основными элементами которой являются символы, которые представлены согласно стандарту ASCII в двоичной кодировке, в которой значение бита в позиции 6 двоичного кода, который представляет все символы, представляющие элемент данных, за исключением символа, назначенного самому младшему значащему элементу, установлено в первое предопределенное двоичное значение, и значение бита в позиции 6 двоичного кода, которое представляет символ, назначенный самому младшему значащему элементу, установлено в другое двоичное значение;
ii) получение строки как последовательности символов, имеющих длину, определенную посредством значения элемента числовых данных, определенных на шаге i); и
iii) повторение шагов i) и ii) до тех пор, пока последовательность символов не исчерпается.
8. Способ по п.7, в котором предопределенное значение бита в позиции 6 двоичного кода, которое представляет все символы, представляющие элемент данных, за исключением символа, назначенного самому младшему значащему элементу, имеет значение «1», и значение бита в позиции 6 двоичного кода, которое представляет символ, назначенный самому младшему значащему элементу, имеет значение «0», так что самый младший значащий элемент выражения элемента числовых данных является символом алфавита в прописной нотации, и другие элементы, если они есть, являются символами алфавита в строчной нотации.
9. Способ по п.8, в котором вышеупомянутые символы алфавита содержат 26 символов английского алфавита, которые представлены, согласно стандарту ASCII, в двоичной кодировке, и идентифицируются десятичными кодами в диапазоне от 65 до 90 в прописной форме, и десятичными кодами - в диапазоне от 97 до 122 в строчной форме.
10. Способ передачи данных, организованных в сложные структуры, включает в себя кодирование структур данных в качестве последовательности символов в передающей аппаратуре, согласно способу, определенному в пп.4-6, и декодирование последовательности символов в качестве структур данных в принимающей аппаратуре, согласно способу, определенному в пп.7-9.
11. Компьютерная система для кодирования элемента числовых данных, реализующая способ по пп.1-3.
12. Компьютерная система для кодирования структуры данных, реализующая способ по любому из по пп.4-6.
13. Компьютерная система для декодирования структуры данных, реализующая способ по пп.7-9.
СИСТЕМА УПЛОТНЕНИЯ И РАЗУПЛОТНЕНИЯ ДАННЫХ С НЕПОСРЕДСТВЕННЫМ ОБНОВЛЕНИЕМ КАТАЛОГА, КОТОРОЕ ЧЕРЕДУЮТ С ПОИСКОМ СТРОК | 1997 |
|
RU2190295C2 |
JP 2003087474 A, 20.03.2003 | |||
Способ обработки целлюлозных материалов, с целью тонкого измельчения или переведения в коллоидальный раствор | 1923 |
|
SU2005A1 |
Широтно-импульсный модулятор | 1976 |
|
SU917332A1 |
US 5812879A, 22.09.1998 | |||
Устройство для кодирования и декодирования цифрового телевизионного сигнала | 1988 |
|
SU1566485A1 |
Авторы
Даты
2012-12-20—Публикация
2008-07-10—Подача