Усовершенствованное сжатие и шифрование файла Российский патент 2018 года по МПК H03M7/30 H04N19/94 H04N19/40 

Описание патента на изобретение RU2668708C1

ОБЛАСТЬ ТЕХНИКИ

Эта заявка относится к системе, способу, устройству и машиночитаемому носителю для усовершенствованного способа сжатия и шифрования файла.

ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯ

В области обработки данных и средств связи возрастают требования к передаче постоянно увеличивающегося объема данных. По мере увеличения пропускной способности каналов передачи данных неуклонно растет количество запросов потоковых видеофильмов, музыкальных файлов, игр и т.д. Хотя в последние годы быстро развивались новые технологии и многократно удваивалась пропускная способность каналов связи, все еще существуют узкие места, связанные с большим объемом передаваемых данных. Например, пользователи могут ощущать задержку при просмотре видеофильмов на своих смартфонах.

В качестве одного из способов решения указанной выше проблемы для улучшения связи между различными сетевыми узлами применяется сжатие данных перед передачей. Существуют различные способы сжатия данных, однако основной принцип заключается в кодировании последовательностей данных, то есть любого типа информации, с использованием меньшего количество битов, чем в исходном представлении этих данных. Такое сжатие может выполняться без потерь, то есть -без потери любой информации в процессе распаковки данных. Сжатие без потерь позволяет уменьшать количество битов путем идентификации и устранения статистической избыточности в текущих данных с помощью более краткого способа их представления, без потери какой-либо информации. Сжатие без потерь возможно, поскольку большинство данных характеризуется статистической избыточностью. Например, в видеофайле могут существовать области (пиксели) в изображении, которые не изменяют цвет в пределах нескольких видеокадров. Вместо кодирования нескольких следующих друг за другом видеокадров последовательностью "зеленый пиксель, зеленый пиксель, …" данные могут кодироваться следующим образом: "зеленый пиксель в следующих 43 видеокадрах". Такой способ является примером группового кодирования, однако существует множество схем уменьшения размера файла путем устранения избыточности, таких как способы сжатия Лемпела-Зива (LZ, Lempel-Ziv).

Другим способом является сжатие с потерями, с помощью которого уменьшается количество битов путем идентификации и удаления "лишней" информации. В основе такой схемы лежит предположение о том, что допускается потеря некоторой информации. Исключение несущественных деталей из источника данных может сэкономить область памяти. Схемы сжатия с потерями формируются согласно исследованию о том, как люди воспринимают интересующие их данные. Например, человеческий глаз более чувствителен к медленным изменениям яркости, чем к изменениям цвета. Одним из примеров сжатия с потерями является хорошо известный способ сжатия изображения в формате JPEG. Всегда существует компромисс между потерей информации и уменьшением размера.

Процесс уменьшения размера файла данных обычно называется сжатием данных, даже если формально происходит кодирование данных, то есть выполняется кодирование источника данных перед их сохранением или передачей. Преимущество сжатия заключается в том, что сокращаются ресурсы, используемые для сохранения, передачи и обработки данных. Однако для использования сжатых данных их необходимо распаковать, что требует некоторых дополнительных вычислительных или иных затрат при выполнении распаковки. Для получения значимого результата при сжатии данных необходимо добиться существенной степени сжатия, в результате чего возрастает сложность вычислений.

Было предпринято множество попыток сжатия данных. Требование к более эффективным способам уменьшения данных без потерь постоянно возрастает, по мере того как пользователи желают получать более высокое качество потоковых данных, поступающих в их устройства. В настоящее время пользователю не достаточно просто просматривать кинофильм на экране смартфона, он желает получать фильм с высокой четкостью (High Definition, HD). Таким образом, требуется более эффективный способ для совершенствования связи между различными сетевыми узлами путем сжатия данных. Соответственно, существует необходимость в усовершенствованных, возможно альтернативных, способах сжатия файла.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

Идея настоящей заявки состоит в решении проблем, перечисленных выше, путем реализации вычислительного устройства, содержащего память и контроллер, при этом указанный контроллер сконфигурирован для сжатия файла посредством преобразования по меньшей мере части указанного файла в число и преобразования числа в вектор показателей, содержащий по меньшей мере один показатель, при этом каждый показатель соответствует основанию в векторе оснований.

Согласно одному из вариантов осуществления контроллер также сконфигурирован для установки первого основания в векторе оснований в качестве текущего основания; нахождения показателя для текущего основания; включения показателя в вектор показателей; определения остатка путем вычитания из числа основания, возведенного в степень показателя; установки текущего основания в качестве следующего основания в векторе оснований, если текущее основание не является последним основанием в векторе оснований; установки числа в качестве остатка и поиска контроллером показателя для нового текущего основания; и, в противном случае, если текущее основание является последним основанием в векторе оснований, установки константы в качестве остатка и генерации представления, содержащего вектор показателей и константу. Кроме того, идея настоящей заявки состоит в решении проблем, перечисленных выше, путем реализации способа сжатия файла посредством преобразования по меньшей мере части указанного файла в число и преобразования числа в вектор показателей, содержащий по меньшей мере один показатель, при этом каждый показатель соответствует основанию в векторе оснований, в результате чего файл представляется вектором показателей.

Идея настоящей заявки состоит в решении проблем, перечисленных выше, путем реализации вычислительного устройства для распаковки файла, представленного вектором показателей, при этом указанное вычислительное устройство содержит контроллер, сконфигурированный для определения числа путем возведения каждого основания в векторе оснований в степень соответствующего показателя в векторе показателей, объединения результатов в число и преобразования указанного числа в файл.

Кроме того, идея настоящей заявки состоит в решении проблем, перечисленных выше, путем реализации способа распаковки файла, представленного вектором показателей, посредством определения числа путем возведения каждого основания в векторе оснований в степень соответствующего показателя в векторе показателей, объединения результатов в число и преобразования указанного числа в файл.

Кроме того, идея настоящей заявки состоит в решении проблем, перечисленных выше, путем реализации машиночитаемого носителя, закодированного с помощью инструкций, которые при исполнении процессором выполняют любой из способов, указанных выше.

Кроме того, идея настоящей заявки состоит в решении проблем, перечисленных выше, путем реализации вычислительного устройства, содержащего память и контроллер, при этом указанный контроллер сконфигурирован для шифрования файла, сжатого посредством преобразования по меньшей мере части указанного файла в число и преобразования числа в вектор показателей, содержащий по меньшей мере один показатель, при этом каждый показатель соответствует основанию в векторе оснований, в результате чего файл представляется вектором показателей, и указанный контроллер сконфигурирован для переупорядочения вектора показателей таким образом, чтобы зашифровать представление файла.

Кроме того, идея настоящей заявки состоит в решении проблем, перечисленных выше, путем реализации способа шифрования файла, сжатого посредством преобразования по меньшей мере части указанного файла в число и преобразования числа в вектор показателей, содержащий по меньшей мере один показатель, при этом каждый показатель соответствует основанию в векторе оснований, в результате чего файл представляется вектором показателей, и указанный контроллер сконфигурирован для переупорядочения вектора показателей таким образом, чтобы зашифровать представление файла.

Кроме того, идея настоящей заявки состоит в решении проблем, перечисленных выше, путем реализации машиночитаемого носителя, закодированного с помощью инструкций, которые при исполнении процессором выполняют способ, указанный выше.

Следует отметить, что путем поиска показателей снизу вверх, то есть попытки найти наибольший или (близкий к нему) показатель для каждого основания по порядку, предпочтительно начиная с наибольшего основания, достигается более быстрое уменьшение файла по сравнению, например, с поиском сверху вниз с повторными попытками нахождения подходящего основания.

Кроме того, поскольку порядок оснований согласно настоящему изобретению известен, также возможно улучшить шифрование, поскольку предоставлять основания с показателями не требуется, в отличие от системы, в которой в начале неизвестно количество пар показатель/основание.

Другие признаки и преимущества раскрытых вариантов осуществления становятся очевидными из последующего подробного описания, зависимых пунктов формулы изобретения, а также из чертежей.

В целом, все термины, используемые в формуле изобретения, должны интерпретироваться в соответствии с их обычными значениями, применяемыми в этой области техники, если в описании явно не указано иное. Все ссылки на "один/конкретный [элемент, устройство, компонент, средство, шаг и т.д.]" должны непосредственно интерпретироваться как ссылки на по меньшей мере один экземпляр элемента, устройства, компонента, средства, шага и т.д., если явно не указано иное. Шаги любого способа, раскрытого в этом описании, не обязательно должны выполняться в точности в том порядке, который указан при раскрытии, если явно не указано иное.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

Ниже настоящее изобретение подробно описывается со ссылкой на прилагаемые чертежи, на которых:

на фиг. 1 показано схематическое представление терминала в соответствии с изложенными идеями;

на фиг. 2 показано схематическое представление компонентов терминала в соответствии с изложенными идеями;

на фиг. 3 показано схематическое представление машиночитаемого носителя в соответствии с изложенными в этой заявке идеями;

на фиг. 4 показана блок-схема системы 400 сжатия/распаковки в соответствии с осуществлением идей настоящего изобретения;

на фиг. 5А показано схематическое представление 500 вектора показателей в соответствии с осуществлением идей настоящего изобретения;

на фиг. 5В показан соответствующий вектор оснований согласно осуществлению идей настоящего изобретения;

на фиг. 6 показан алгоритм выполнения общего способа уменьшения числа до вектора показателей, основанного на векторе оснований, в соответствии с осуществлением идей настоящего изобретения;

на фиг. 7 показано представление числа, в котором помечен старший значимый разряд в соответствии с осуществлением идей настоящего изобретения;

на фиг. 8 показан алгоритм выполнения общего способа определения наибольшего показателя путем нахождения старшего значимого разряда в соответствии с осуществлением идей настоящего изобретения;

на фиг. 9 показан алгоритм выполнения способа шифрования и дешифрования файла в соответствии с осуществлением идей настоящего изобретения;

на фиг. 10 показан алгоритм выполнения способа шифрования и дешифрования файла в соответствии с осуществлением идей настоящего изобретения;

на фиг. 11 показано схематическое представление многократного сжатия файла в соответствии с осуществлением идей настоящего изобретения; и

на фиг. 12 показан алгоритм выполнения способа шифрования и дешифрования файла в соответствии с осуществлением идей настоящего изобретения.

ПОДРОБНОЕ ОПИСАНИЕ

Далее более подробно описываются варианты раскрытия настоящего изобретения со ссылкой на прилагаемые чертежи, на которых показаны определенные варианты осуществления изобретения. Это изобретение, однако, может быть реализовано с использованием множества других вариантов, и возможности его реализации не должны ограничиваться приведенными в этом описании вариантами; точнее, эти варианты осуществления настоящего изобретения приведены в примерах, для того чтобы раскрытие изобретения было всесторонним и законченным и полностью передавало его объем для специалистов в этой области техники. В этом описании одинаковые цифровые ссылки соответствуют одинаковым элементам.

На фиг. 1 показано вычислительное устройство 100 в соответствии с описываемым вариантом осуществления. В соответствии с одним из вариантов осуществления вычислительное устройство 100 сконфигурировано для связи либо по проводной, либо по беспроводной сети. В соответствии с одним из вариантов осуществления вычислительное устройство 100 сконфигурировано для связи как по проводной, так и по беспроводной сети. К примерам такого вычислительного устройства 100 относятся следующие устройства: персональный компьютер, настольный или портативный, Интернет-планшет, мобильный телефон, смартфон, персональное информационное устройство, сервер, электронный ключ, межмашинное устройство (М2М) и рабочая станция, а также ряд других устройств.

Далее вычислительное устройство 100 описывается в упрощенном варианте на примере персонального компьютера 100. Персональный компьютер или терминал 100 содержит дисплей 110 и корпус 120. В корпусе расположен контроллер или CPU (не показанный на чертеже) и один или более машиночитаемых носителей (не показанных на чертеже), таких как запоминающие устройства и внутренняя память. К примерам запоминающих устройств относятся дисководы или жесткие диски. Терминал 100 также содержит по меньшей мере один порт данных. Порты данных могут быть проводными и/или беспроводными. К примерам портов данных относятся порты USB (Universal Serial Bus, универсальная последовательная шина), порты Ethernet или порты WiFi (соответствующие стандарту 802.11 IEEE). Порты данных сконфигурированы для предоставления терминалу 100 возможности установления связи с другими терминалами или сервером.

Терминал 100 также содержит по меньшей мере одно устройство ввода, такое как клавиатура 130. Другими примерами устройств ввода являются, помимо прочего, компьютерная мышь, сенсорные панели, сенсорные экраны или джойстики.

На фиг. 2 показано схематическое изображение общей структуры вычислительного устройства. Вычислительное устройство может представлять собой устройство, показанное на фиг. 1, или сервер. В соответствии с одним из вариантов осуществления вычислительное устройство представляет собой вычислительную аппаратуру, более подробно обсуждаемую ниже. В приведенном ниже описании вычислительное устройство раскрывается как терминал, показанный на фиг. 1. Терминал 100 содержит контроллер 210, который отвечает за все операции, выполняемые терминалом 100, и предпочтительно реализован с помощью любого коммерчески доступного CPU (Central Processing Unit, центральный процессор), DSP (Digital Signal Processor, цифровой сигнальный процессор) или любого другого электронного устройства с программируемой логикой. Контроллер 210 может быть реализован с использованием инструкций, которые позволяют выполнять аппаратные функции, например, посредством применения исполняемых компьютером программных инструкций в процессоре общего назначения или в специализированном процессоре, которые могут храниться на машиночитаемом носителе 240 (на диске, в памяти и т.д.) для выполнения их таким процессором. Вычислительное устройство 100 содержит память 240 для хранения компьютерных файлов. Компьютерные файлы хорошо известны в этой области техники и далее будут обозначаться просто как файлы. Контроллер 210 сконфигурирован для чтения инструкций из памяти 240 и выполнения этих инструкций с целью управления работой терминала 100. Память 240 может быть реализована с использованием любой общеизвестной технологии машиночитаемой памяти, такой как память ROM, RAM, SRAM, DRAM, CMOS, FLASH, DDR, EEPROM, флэш-память, жесткий диск, оптический носитель, или с помощью любой комбинации этих устройств.

Память 240 используется контроллером 210 в различных целях, одной из которых является хранение прикладных данных и программных инструкций 250 для различных программных модулей в терминале 100. Программные модули включают в свой состав операционную систему реального времени, драйверы для интерфейса 220 человек-машина, прикладные обработчики, а также различные приложения 250. Приложения 250 могут включать в свой состав приложение обработки сообщений, такое как электронная почта, приложение просмотра файлов, банковское приложение, а также другие различные приложения 250.

Терминал 100 может также содержать пользовательский интерфейс 220, который в терминале 100, показанном на фиг. 1, состоит из дисплея 110, клавиатуры 130. Дисплей 110 может представлять собой сенсорный дисплей, на котором могут отображаться и использоваться виртуальные клавиши (не показанные на чертеже). Такие виртуальные клавиши могут заменяться любой или всеми физическими клавишами 130, и в этом описании различия между этими клавишами явно не указывается.

Пользовательский интерфейс (UI, User Interface) 220 также содержит один или более аппаратных контроллеров, которые совместно с драйверами UI взаимодействуют с дисплеем 110, клавиатурой 130, а также с другими различными устройствами ввода/вывода, такими как звуковая система, индикатор LED и т.д. Как известно, пользователь может управлять терминалом 100 через сформированный таким образом интерфейс человек-машина.

Терминал 100 также может содержать интерфейс 230 связи, который приспособлен для обеспечения связи терминала с другими устройствами. Интерфейс связи может представлять собой радиочастотный интерфейс, приспособленный для связи с использованием различных радиочастотных технологий. Примерами таких технологий, помимо прочего, являются WIFI, Bluetooth®, W-CDMA, GSM, UTRAN, LTE и NMT.

Кроме того или в альтернативном варианте, связь может осуществляться через проводной интерфейс 230, который приспособлен для обеспечения связи терминала с другими устройствами с использованием различных сетевых технологий. Примерами таких технологий, помимо прочего, являются USB, Ethernet и локальная сеть TCP/IP (Transport Control Protocol/Internet Protocol, транспортный протокол управления/Интернет-протокол).

Вычислительное устройство 100, таким образом, сконфигурировано для приема и/или передачи файла через интерфейс 230 связи.

На фиг. 3 показано схематическое изображение описанного выше машиночитаемого носителя. Машиночитаемый носитель 30 в этом варианте осуществления представляет собой диск 30 данных. В соответствии с одним из вариантов осуществления диск 30 данных является магнитным диском для хранения данных. Диск 30 данных сконфигурирован для переноса инструкций 31, которые после загрузки в контроллер, такой как процессор, выполняют способ или процедуру, соответствующие раскрытым выше вариантам осуществления. Диск 30 данных выполнен с возможностью подключения к устройству 32 чтения или интеграции в это устройство с целью чтения этим устройством инструкций для загрузки их в контроллер. Одним из таких примеров устройства 32 чтения в комбинации с одним (или несколькими) дисками 30 данных является жесткий диск. Следует отметить, что в качестве машиночитаемого носителя также могут использоваться другие носители, такие как компакт-диски, цифровые видеодиски, флэш-память или другие обычно используемые виды памяти. В таком варианте осуществления диск 30 данных представляет собой физический машиночитаемый носитель 30 одного из типов.

Инструкции 31 могут также загружаться в устройство 34 чтения компьютерных данных, такое как компьютер или другое устройство, способное читать компьютерные закодированные данные на машиночитаемом носителе, путем включения инструкций 31 в машиночитаемый сигнал 33, который передается по беспроводному (или проводному) интерфейсу (например, через Интернет) в устройство 34 чтения компьютерных данных для загрузки инструкций 31 в контроллер. В таком варианте осуществления машиночитаемый сигнал 33 представляет собой отличный от физического машиночитаемый носитель 30 одного из типов.

Инструкции могут храниться в памяти (явно не показанной на фиг. 3, но указанной с помощью ссылки 240 на фиг. 2) компьютера 34.

Термины компьютерная программа, инструкции, код и т.д. следует рассматривать как компоненты, охватывающие программное обеспечение для программируемого процессора или микропрограммное обеспечение, такое как, например, программируемые компоненты аппаратного устройства, инструкции для процессора или конфигурируемые настройки для непрограммируемого устройства, вентильной матрицы или программируемого логического устройства и т.д.

На фиг. 4 показана блок-схема системы 400 сжатия/распаковки в соответствии с осуществлением идей настоящего изобретения, содержащаяся по меньшей мере в одном вычислительном устройстве 100 или подлежащая выполнению в этом устройстве. Контроллер 210 вычислительного устройства 100 сконфигурирован для приема файла 410. Файл 410 может приниматься через интерфейс 230 связи или из памяти 240.

Контроллер 210 вычислительного устройства 100 сконфигурирован для обработки файла 410 с целью сжатия его для улучшения хранения или передачи сжатого файла 410. Технический эффект от этого состоит в том, что экономится пространство памяти и/или полоса пропускания.

В соответствии с одним из вариантов осуществления контроллер сконфигурирован для разбиения или разделения устройством 415 файла 410 на более мелкие части и сжатия каждой части по отдельности. Далее не делается различий между обработкой части файла или всего файла. В соответствии с вариантом осуществления, в котором части файла сжимаются отдельно, соответствующий контроллер конфигурируется для обработки частей по отдельности и соединения или, в противном случае, объединения частей файла, получаемых в результате распаковки сжатых частей. Одно из преимуществ разбиения на более мелкие части заключается в том, что для каждой из частей вычисления выполняются быстрее. Например, в случае частей размером 150 байт достигается коэффициент сжатия 4,7% для каждой части, что выражается в общем уровне сжатия в 4,7% с использованием только оснований {2, 3, 5, 7}.

Контроллер 210 сконфигурирован для сжатия файла 410 (или его части) путем применения средств 420 для преобразования файла 410 в число X. Согласно одному из вариантов осуществления контроллер сконфигурирован для преобразования файла 410 в десятичное число, то есть в число по основанию 10. Согласно одному из вариантов осуществления контроллер сконфигурирован для преобразования файла 410 в шестнадцатеричное число, то есть в число по основанию 16. В соответствии с одним из вариантов осуществления контроллер сконфигурирован для преобразования файла 410 в двоичное число, то есть в число по основанию 2. В таком варианте осуществления фактическое преобразование может быть представлено простым преобразованием файла в формат, который в большей степени подходит для выполнения с ним математических операций. В одном из таких вариантов осуществления формат преобразуется в строковый вектор.

Затем контроллер 210 использует средства 430 для преобразования числа X в вектор ехр показателей. Контроллер 210 сконфигурирован для преобразования числа X в вектор ехр показателей путем определения показателей для основания вектора оснований, при этом число X может быть представлено каждым элементом вектора base оснований, возведенным в степень соответствующего элемента вектора ехр показателей. Путем тщательного выбора оснований число X затем может быть выражено в гораздо более краткой форме по сравнению со своей естественной формой.

В качестве очевидного примера можно привести файл [1000000], соответствующий десятичному числу 256 (25610), который может быть выражен с помощью показателя 2 для соответствующего основания 16. При этом требуется передать или сохранить только [10]=210 (десятичное число 2) для достижения коэффициента сжатия 25%.

Контроллер 210 затем может сохранить или передать вектор показателей для последующего восстановления тем же или другим вычислительным устройством. Далее процесс сохранения представлен в виде передачи в память 240, и различия между сохранением в памяти 240 и передачей по интерфейсу 230 связи не делаются.

Контроллер 210 того же или иного вычислительного устройства сконфигурирован для приема вектора ехр показателей либо из памяти 240, либо через интерфейс 230 связи и для преобразования вектора ехр показателей в число путем применения средств 440 для преобразования вектора ехр показателей в число. Затем контроллер 210 применяет средства 450 для преобразования числа Хг в файл и, таким образом, распаковывает файл 410. В соответствии с вариантом осуществления, в котором сжата часть файла 410, контроллер сконфигурирован для распаковки частей файла и затем соединения или, в противном случае, объединения результирующих частей файла в полный файл. В частности, если векторы ехр показателей, соответствующие частям, принимаются не упорядоченными, контроллер 210 сконфигурирован для определения порядка и объединения частей в надлежащем порядке. Порядок может указываться порядковым номером, входящим в вектор ехр показателей, для числа, представляющего часть.

Контроллер 210 сконфигурирован для извлечения основания вектора оснований из памяти (или через интерфейс связи), и если как контроллер, сжимающий файл, так и контроллер, распаковывающий файл (который может представлять собой тот же самый контроллер), имеет доступ к одинаковому вектору base оснований, то число можно простым образом восстановить путем несложной операции возведения элементов вектора base оснований в степень элементов вектора ехр показателей и объединения частичных результатов.

На фиг. 5А показано схематическое представление 500 вектора ехр показателей. Каждый элемент вектора ехр показателей представлен (битовым) полем представления 500. В примере, показанном на фиг. 5А, вектор ехр показателей содержит порядковый номер n, масштабное число N, показатели а, b, с и т.д. и константу K.

Следует отметить, что порядковый номер n, масштабное число N и/или константа K являются необязательными компонентами. Основными элементами вектора ехр показателей являются показатели а, b, с и т.д.

Согласно одному из вариантов осуществления вектор ехр показателей может также содержать множество показателей для одного или нескольких оснований. Например, вектор ехр показателей может представлять собой вектор {n, N, а1 а2, b, c1, с2, K} для вектора base оснований, содержащего основания {А, В, С}.

Согласно одному из вариантов осуществления вектор ехр показателей может также содержать константы ci для каждого основания в векторе оснований. Эти константы ci являются масштабными константами.

На фиг. 5В показан соответствующий вектор base оснований. В примере, показанном на фиг. 5В, вектор оснований содержит основания А, В, С и т.д.

Число, соответствующее файлу, может быть восстановлено путем объединения оснований в векторе base оснований, возведенных в степень с показателями из вектора ехр показателей, и сложения, умножения или комбинации этих операций.

Для восстановления числа может использоваться одна из следующих общих формул:

X=N*(Аа⊕ Вb⊕ Сс)+K, где ⊕ представляет собой операцию объединения, такую как умножение или сложение.

Как было отмечено выше, каждому основанию могут соответствовать несколько показателей. В таком случае для вычисления числа X может использоваться более общая формула:

X=N*(ΣAai ⊕ ΣВbi ⊕ Сci)+K, где ai представляет собой показатель(-и) для основания А, bi представляет собой показатель(-и) для основания В, и ci представляет собой показатель(-и) для основания С. В альтернативном варианте вектор base оснований может содержать дублированные основания, которые могут использоваться первой формулой. То же справедливо для представленных ниже формул.

Для уменьшения количества необходимых вычислений, уменьшения размеров показателей и улучшения разрешения при сжатии может использоваться масштабный коэффициент.

Для варианта осуществления, в котором каждая пара основание-показатель также масштабируется, используется следующая общая формула:

X=N*(ΣciАаi ⊕ ΣciBbi ⊕ ΣciCci)+K, где ci являются масштабными коэффициентами.

В альтернативном варианте масштабируется сумма для каждого основания (что соответствует всем одинаковым масштабным коэффициентам для одного основания, ci=cj), и общая формула выглядит следующим образом:

X=N*(caΣАаi ⊕ cbΣBbi ⊕ ccΣCci)+K, где са является масштабным коэффициентом для основания А.

Для комбинаций масштабирования формула выглядит следующим образом:

X=N*(caΣciАаi ⊕ cbΣciBbi ⊕ ccΣciCci)+K

Следует также отметить, что в формуле могут содержаться рекурсивные или повторяющиеся элементы. Для иллюстрации этого выбрано следующее представление:

X=Nt*ΣNj*(caΣciАаi ⊕ cbΣciBbi ⊕ ccΣciCci)+K,

где Nj и Kj представляют собой множитель и константу для каждого повторения, и Nt и Kt представляют собой множитель и константу для суммарной формулы. Как отмечалось выше, все коэффициенты масштабирования, множители и/или константы, а также основания не обязательно явно должны входить в формулу.

Константа К может использоваться для указания того, что число нечетное и, таким образом, сводить обработку только к уменьшению четных чисел, которые затем могут содержать бит, указывающий, являлось ли в действительности перед уменьшением число нечетным или четным (из нечетного числа затем может вычитаться -1 перед уменьшением и добавляться +1 при восстановлении). Константа K, таким образом, может состоять из нескольких частей, а именно: одной части для указания нечетности/четности и одной части для указания возможного остатка. Кроме того, может существовать одна константа (набор констант) для каждого повторения формулы, как указано в приведенном выше представлении.

Операция объединения ⊕ может также использоваться для указания сегментированного или частичного вычисления, которое обычно обозначается круглыми скобками. Безусловно, это также может быть представлено некоторыми основаниями, появляющимися многократно. Например (константы, масштабные коэффициенты и множители исключены из этого примера, однако следует отметить, что они также могут включаться в формулу таким образом, как это показано в указанном выше представлении):

Ааbс) также можно выразить следующим образом: Аа * Вbас

Если это вычисление должно повторяться на нескольких шагах, представление может выглядеть следующим образом:

ΣAjaj(Bjbj+Cjcj)=A1a1(B1b1+C1c1)+A2a2(B2b2+C2c2)…

и может быть выражено следующим образом:

ΣAjaj*Bjbj+Ajaj*Cjcj=A1a1B1b1+A1a1C1c1+A2a2B2b2+A2a2C2c2

Следует отметить, что хотя в формулы, указанные выше, входят только три основания, возможно любое количество оснований. Количество оснований может сохраняться небольшим, например меньше 10 или меньше 5, для достижения более высокого коэффициента сжатия, поскольку чем меньше оснований, тем короче векторы показателей.

Для устранения отрицательных констант основания, показатели которых равны 0, могут игнорироваться и не вносить, таким образом, вклад в сумму при сложении оснований, то есть, когда ⊕ = +. В альтернативном варианте значение сохраняемых определенных показателей могут увеличиваться на единицу, и основание затем может возводится в степень с показателем, уменьшенным на 1.

Основания, выбираемые для векторов оснований, связанны с вопросами проектирования и могут выбираться с учетом размера файлов, подлежащих сжатию, степени и скорости сжатия. Например, чем больше основания, тем короче векторы показателей и тем быстрее выполняется сжатие, однако при этом не достигается хорошее разрешение, требующее больших констант, и, возможно, порядкового номера. Большим основаниям также соответствуют более короткие показатели. Чем меньше основания, тем выше разрешение, но, возможно, меньше степень сжатия.

Согласно варианту осуществления основания разносятся для обеспечения разрешения и ускорения сжатия, поскольку с помощью больших оснований быстрее уменьшается число X.

Основания могут возрастать экспоненциально:

А=10(=101), В=100(=102), С=1000(=103)

А=10, В=100(=А2), С=10000(=В2)

или линейно:

А=10, В=20, С=30

А=2, В=3, С=5

Если основания представляют собой простые числа, устраняются циклы, связанные с делением. К примерам таких векторов оснований относятся: {2, 3, 5, 7} (линейный) и {2, 31, 127, 1027} (экспоненциальный).

Если одно из оснований равно основанию системы счисления формата числа (например, основание 2 для двоичных чисел, 10 - для десятичных чисел и т.д.) и это основание объединяется с помощью умножения, то несложно отыскать показатель, возможно не самый большой, но по меньшей мере близкий к нему, путем простого вычисления количества конечных нулей в представлении, в результате чего устраняются операции деления.

В соответствии с одним из вариантов осуществления показатель для каждого основания (или по меньшей мере одного основания) может сопровождаться постоянной масштабирования для этого основания. Это позволяет быстрее выполнять сжатие/уменьшение числа X, особенно для больших чисел X (или больших остатков числа X по мере его уменьшения). Например, если число 220 должно уменьшаться с использованием оснований А=10, В=100, то число может быть выражено как 2; 1; 2; 1 или в двоичном виде как 10; 1; 10; 1 или 101101 с использованием представления X=саАаbВb, и ехр={са; a; cb; b}, что короче, чем 11011100. Если то же число выражается без масштабных коэффициентов, то есть с использованием представления X=Ааb+K и ехр={а; b; K}, то число 220 может быть выражено как {1; 1; 11011110}. В альтернативном варианте может использоваться общее масштабирование, то есть представление Х=N(Aa+Bb)+K и ехр={N; а; b; K}, которое выражается в виде {10; 1; 1}. Как можно видеть, использование масштабных коэффициентов может в значительной степени уменьшить размер вектора показателей, или по меньшей мере - элементов вектора показателей. Преимущество использования масштабных коэффициентов связано с тем фактом, что применение только показателей может привести к тому, что увеличение показателя может выразиться в слишком большом изменении, в то время как простое масштабирование может быстро уменьшить число, и поскольку масштабные коэффициенты всегда меньше оснований (или необходимость в них отсутствует), они не требуют большого пространства, и, таким образом, существенно не удлиняют размер вектора показателей.

Использование множества показателей для одного основания становится выгодным, если число или остаток числа гораздо больше, чем наибольшее или следующее основание. Затем возможно подобрать несколько пар основание-показатель в пределах числа для заданного основания.

На фиг. 6 показан алгоритм выполнения общего способа уменьшения числа до вектора ехр={са, a, cb, b, …, cd, d} показателей, основанного на векторе base={А, В, D} оснований. Число может быть получено в результате преобразования файла (или части файла). Следует отметить, что масштабные коэффициенты необязательны, индивидуальны или являются общими. Кроме того, следует отметить, что также возможно использование множества показателей (и масштабных коэффициентов) по меньшей мере для одного основания, что рассматривается как альтернативное раскрытие, хотя этот вариант не выражен в представлении, показанном в примере на фиг. 6.

Способ начинается с приема на шаге 610 числа X. Затем на шаге 620 определяется показатель для основания. В одном из примеров определяется (следующий) наибольший показатель. В одном из примеров определяется показатель для (следующего) наибольшего основания. В одном из примеров определяется наибольший показатель для наибольшего основания. В примере, показанном на фиг. 6, найдено наибольшее значение d для основания D. Показатель d может быть найден путем многократного деления числа X на основание D. Показатель d в альтернативном варианте можно найти с помощью справочной таблицы. Показатель d в альтернативном варианте можно найти путем определения старшего значимого разряда (msp, most significant position) для числа X. Эта альтернатива подробно описывается ниже со ссылкой на фиг. 7 и 8.

После нахождения наибольшего показателя на шаге 630 может быть определен масштабный коэффициент (если таковой используется) путем деления числа X на наибольшее значение основания D, возведенного в степень d, и округления результата. В используемом представлении cd=Trunc(X/Dd).

Затем на шаге 640 определяется остаток Xres путем вычитания основания, возведенного в степень показателя и умноженного на масштабный коэффициент, из числа, то есть Xres=X-cdDd. Либо в представлении логических операций: Xres=Modula(X/Dd). Согласно варианту осуществления, в котором основания должны объединяться посредством умножения, остаток определяется с помощью деления. В обоих случаях остаток определяется путем уменьшения числа на основание, возведенное в степень показателя.

Помимо этого, если для основания, обрабатываемого в текущий момент, находится несколько показателей, осуществляется возврат для нахождения наибольшего показателя для основания с использованием остатка Xres в качестве числа X, то есть на шаге 645 X приравнивается к Xres.

Затем на шаге 650 определяется, существуют ли еще основания в векторе base оснований, для которых необходимо найти показатели. Если это так, то далее выполняется уменьшение остатка с использованием следующего меньшего основания, то есть на шаге 660 выполняется операция X=Xres, и в качестве основания выбирается basek-1, где k представляет собой индекс текущего основания с учетом того, что вектор оснований упорядочен по возрастанию. В результате (другие) показатели с, b, а… включаются в вектор ехр показателей. Если оснований больше не существует, то на шаге 670 остаток приравняется к константе K, то есть выполняется операция K=Xres, и на шаге 680 формирование вектора ехр завершается, после чего этот вектор может быть сохранен или передан для последующего извлечения с целью восстановления числа X.

На шаге 690 для распаковки вектора показателей в число X, вектор ехр показателей просто подставляется в формулу, используемую для сжатия. В качестве формулы может использоваться любая из формул, приведенных выше.

В соответствии с вариантом раскрытия, описанным выше, наибольший показатель для основания может быть найден путем поиска старшего значимого разряда числа X. На фиг. 7 показано представление числа X, в котором помечен старший значимый разряд. Для двоичного представления числа X, старший значимый разряд представляет собой старший 1-битовый разряд. В примере, приведенном на фиг. 7, показано число Х=109, состоящее из 8 бит, при этом старший значимый разряд (msp) соответствует биту в позиции 2. В примере, показанном на фиг. 7, нумерация для поиска старшего значимого разряда осуществляется начиная с младшей позиции по направлению к старшей позиции, однако следует отметить, что нумерация может не играть существенную роль. В одном из вариантов осуществления используется только справочная таблица. В соответствии с одним из вариантов осуществления она, тем не менее, используется для определения показателя путем его вычисления на основе msp.

На фиг. 8 показан алгоритм выполнения общего способа определения наибольшего показателя путем нахождения старшего значимого разряда.

Для нахождения msp контроллер вычислительного устройства может просто выполнить на шаге 810 поиск в представлении числа X первого ненулевого элемента. Поскольку число X представляет собой не просто какое-либо число, а (часть) файла, вероятность того, что это число будет состоять из одних нулей или начинаться множеством нулей, невелика, и, таким образом, поиск msp выполняется достаточно быстро и требует только несколько сравнений.

Затем на шаге на шаге 820 осуществляется поиск наибольшего показателя. Показатель можно найти в справочной таблице. Ниже показан пример такой таблицы для ситуации, изображенной на фиг. 7, для двоичного числа X (=109) и основания =7).

Наибольший показатель в альтернативном варианте может быть найден путем вычисления с использованием текущего основания вектора base оснований, основания системы счисления (двоичная, десятичная, шестнадцатеричная, …) числа X и msp.

Для основания В, показателя е и основания D системы счисления наибольший показатель можно рассчитать следующим образом:

В альтернативном варианте показатель е или по меньшей мере показатель, близкий к показателю е, может быть быстро определен, поскольку основание, используемое для уменьшения (то есть элемент(ы) основания вектора base оснований) известны, и основание системы счисления представления числа также известно, в соответствии с чем корень степени D из основания В может определяться предварительно. Показатель е затем может быть определен следующим образом:

или в альтернативном варианте: , где выражения или могут определяться предварительно для ускорения вычислений.

Если на шаге 830 определяется, что показатель равен 0, то выбирается следующее меньшее основание, и в соответствии с этим основанием определяется показатель либо по справочной таблице, либо в результате описанных выше вычислений. В случае больших чисел, то есть больших файлов, таблица связи показателей с msp может соответствующим образом сокращаться путем исключения всех элементов с нулевым показателем. В этом случае таблица, соответствующая примеру, показанному на фиг. 7, выглядит следующим образом:

В альтернативном варианте таблица может содержать как показатель, так и соответствующее основание. В таком случае в результате определения, является ли показатель нулевым, константа К выбирается в качестве числа, что совпадает с тем случаем, когда отсутствуют меньшие основания. В примере, показанном на фиг. 7 и 8, предполагается, что определяется только один показатель для каждого основания, однако та же методика может использоваться для множества показателей, соответствующих одному или более основаниям. В общем случае использование множества показателей можно рассматривать как наличие вектора оснований с дублированными основаниями. Это верно также для варианта раскрытия, описанного выше со ссылкой на фиг. 6.

Как показано на фиг. 8, после определения на шаге 830, является ли показатель нулевым, выполняется шаг 835 определения, существуют ли еще основания. Если основания существуют, то осуществляется переход к следующему основанию. Если основания отсутствуют, то на шаге 850 константа К устанавливается равной числу X и обработка последовательностей показателей завершается.

Если определяется, что показатель не равен нулю, то показатель найден, и далее способ выполняется таким же образом, как показано на фиг. 6 после нахождения показателя на шаге 620.

Если основание нацело делится на основание системы счисления, то основание, возведенное в степень показателя (Dd), может быть рассчитано с помощью последовательности сдвигов, и временные ресурсы на выполнение операций умножения не требуются.

Таким образом, выше раскрыт способ сжатия файла путем преобразования его в число (или в ряд отдельных чисел, каждое из которых соответствует части файла) и уменьшения числа до вектора ехр показателей с использованием формулы и вектора base оснований. Затем файл для сохранения или передачи может быть представлен только вектором показателей. Для выполнения обратной операции распаковки файла требуется только информация об основаниях в векторе оснований и о любых масштабных коэффициентах и способах их применения.

Должно быть очевидно, что поскольку невозможно распаковать файл без знания оснований, порядка показателей, без сведений о применении масштабных коэффициентов и т.д., возможно также зашифровать файл с использованием изложенного в этом описании способа.

Как известно, открытые схемы шифрования пользуются спросом в этой области техники, и согласно этим схемам формулы, используемые для шифрования, публично раскрываются. Это также создает преимущества для схемы сжатия, представленной в данном описании, поскольку она может иметь достаточно широкое применение. Однако путем простого тайного согласования с другой стороной порядка, в котором должны передаваться элементы вектора показателей, файл может быть зашифрован, а также сжат.В особенности для больших файлов, которые следует разделять на меньшие части, практически невозможно расшифровать, корректно ли выполнится распаковка в случае переупорядочения комбинации показателей, поскольку в результате формируется только часть целого файла, и в связи с этим трудно проверить корректность выполнения распаковки.

Одно из преимуществ разбиения на более мелкие части заключается в том, что для каждой из частей вычисления выполняются быстрее. Например, в случае частей файла размером 150 байт достигается коэффициент сжатия 4,7% для каждой части, что выражается в общем уровне сжатия в 4,7% с использованием только вектора оснований {N, 2, 3, 5, 7, K}.

На фиг. 9 показан алгоритм выполнения способа шифрования и дешифрования файла в соответствии с идеями настоящего изобретения. Файл сжимается на шаге 910 таким образом, как это указано выше, в результате чего формируется вектор ехр показателей.

Вектор ехр показателей переупорядочивается на шаге 920, и, таким образом, сжатый файл эффективно шифруется, после чего он сохраняется или передается на шаге 930.

В альтернативном варианте, как показано в виде пунктирного прямоугольника, вектор показателей на шаге 920 не переупорядочивается. В таком варианте осуществления основания и их порядок не разглашаются.

Перед распаковкой файла на шаге 950 вектор ехр показателей может быть снова упорядочен на шаге 940 для согласования с подлежащей использованию формулой либо путем фактического переупорядочения вектора ехр показателей, либо путем применения соответствующей формулы.

Следует отметить, что хотя в приведенном раскрытии настоящего изобретения предполагается переупорядочение вектора показателей, те же идеи могут применяться к переупорядочению вектора base оснований, то есть к использованию либо устройством сжатия, либо распаковщиком другой формулы, которая в сущности соответствует переупорядочению вектора показателей.

Следует отметить, что сжатие выполняется независимо от того, хранится ли в тайне вектор показателей и/или вектор оснований, и/или он обрабатывается с учетом порядка, поскольку сжатие само по себе служит также для шифрования соответствующего файла.

Согласно одному из вариантов осуществления, в особенности тому, в котором файл разбивается на несколько частей, вектор base оснований также может передаваться или сохраняться. Затем для распаковки файла может использоваться общая формула с учетом формата вектора ехр показателей и вектора base оснований таким образом, чтобы показатели могли сопоставляться с соответствующим основанием. Одним из примеров такого общего формата является формат, в котором каждый элемент вектора ехр показателей соответствует основанию в векторе base оснований, расположенному в том же порядке. Другим примером является формат, в котором каждая пара элементов вектора ехр показателей образует масштабный коэффициент и показатель, соответствующий основанию в векторе base оснований, расположенному в том же порядке.

В таком варианте осуществления, как вектор оснований, так и вектор показателей могут быть переупорядочены для обеспечения большего количества возможных схем шифрования. Кроме того, вектор показателей (и возможно вектор оснований) может переупорядочиваться различным образом для каждой части файла. Переупорядочение может основываться на формуле или выполняться в соответствии с таблицей. Например, для файла 1 Мбайт, разбитого на части по 150 байт (соответствует десятичному числу из 400 разрядов), вектора оснований, содержащего четыре основания, и при использовании масштабных коэффициентов получается 4!*8!=967680 возможностей для каждой части файла, а в целом - 967680*6991 [=1 Мбайт/150 байт]=6765050880 возможностей. В сочетании с передачей частей файла в перемешанном порядке количество возможностей возрастает в еще большей степени.

Для дешифрования файла вектор показателей может быть либо снова переупорядочен для восстановления исходного порядка, либо дешифрование может основываться на переупорядоченном векторе оснований. В альтернативном варианте или дополнительно порядок и/или основания не разглашаются.

Согласно варианту осуществления, в котором вектор base оснований сохраняется или передается как часть сжатого файла, основания могут динамически выбираться на основе msp. Например, если существует множество начальных нулей (небольшое значение msp), выбираются меньшие основания, в то время как при больших значениях msp выбираются большие основания. Это приводит отчасти к меньшей степени сжатия, но к увеличению скорости сжатия с адаптированным разрешением.

Поскольку согласно идеям настоящего изобретения вектор ехр показателей (возможно, включающий скалярные величины и/или константы) подлежит передаче, автор изобретения пришел к выводу, что вектор показателей, представленный файлом, также может непосредственно (в дальнейшем) сжиматься или шифроваться.

Таким образом, согласно одному из вариантов осуществления способ и устройство, реализующее способ, конфигурируются для продолжения сжатия (и/или шифрования) вектора ехр показателей (возможно, включающего скалярные величины и/или константы) до тех пор, пока не будет достигнут требуемый коэффициент сжатия.

На фиг. 10 показан алгоритм такого способа, возможно, выполняемого вычислительным устройством. На шаге 1010 принимается файл, который преобразуется в число X (возможно частями, как обсуждалось выше), и число X сжимается в вектор Е показателей (возможно, включающий скалярные величины и/или константы). Вектор Е показателей представлен файлом (структурой), который сравнивается с исходным файлом (или его частью). Если устанавливается, что коэффициент сжатия (определяемый на шаге 1030 как размер вектора показателей, деленный на размер файла (или его части)) не меньше порогового уровня, например равен 5%, 10%, 15%, 20% или находится в диапазоне от 0 до 25%, вектор Е показателей преобразуется в число X', которое сжимается, в результате чего образуется новый вектор Е показателей. На шаге 1020 определяется коэффициент сжатия нового вектора Е' в сравнении с исходным файлом (частью файла), и если на шаге 1030 определяется, что он выше порогового уровня, процедура повторяется до тех пор, пока не будет достигнут требуемый уровень сжатия.

Это позволяет добиться компромисса между размером части, сложностью вычислений и подлежащей определению скоростью вычислений.

Например, сложность вычислений при поиске вектора показателей возрастает при увеличении частей файла, при этом коэффициент сжатия для небольших частей выше, чем для больших. Путем многократного сжатия можно достичь компромисса между размером части и скоростью вычисления. Это основано на том, что сложность вычисления возрастает нелинейно по отношению к размеру части, в то время как повторение сжатия находится в линейной зависимости от сложности.

На фиг. 11 показано схематическое представление многократного сжатия размера файла X (части файла). В результате выполнения каждой отдельной операции сжатия достигается коэффициент сжатия, равный 67%, посредством чего результирующие векторы показателей сжимаются до 67%, 44%, 30% и 20%, соответственно.

Для распаковки файла на шаге 1015 добавляется бит распаковки перед каждой операцией сжатия. Бит распаковки указывает, следует ли в дальнейшем выполнять распаковку (1 указывает на то, что последующая распаковка необходима, 0 - на то, что распаковка завершена). По мере распаковки файла вектор показателей (возможно, включающий скалярные величины и/или константы) принимается на шаге 1210 и распаковывается на шаге 1220. Бит распаковки проверяется на шаге 1230, и если он указывает на продолжение распаковки (бит=1), то распаковка повторяется. Если бит распаковки указывает на завершение распаковки (бит=0), распаковка завершается.

Настоящее изобретение было описано выше, в основном, с помощью ссылки на несколько вариантов его осуществления. Однако специалистам в этой области техники несложно предложить отличающиеся от раскрытых выше варианты осуществления, которые в той же мере возможно включить в объем настоящего изобретения, описываемый прилагаемой формулой изобретения.

Похожие патенты RU2668708C1

название год авторы номер документа
КАНАЛЬНОЕ КОДИРОВАНИЕ НА ОСНОВЕ КОМПЛЕКСНОГО ПРЕОБРАЗОВАНИЯ С ЧАСТОТНЫМ КОДИРОВАНИЕМ С РАСШИРЕННОЙ ПОЛОСОЙ 2007
  • Мехротра Санджив
  • Чэнь Вэй-Гэ
RU2555221C2
КАНАЛЬНОЕ КОДИРОВАНИЕ НА ОСНОВЕ КОМПЛЕКСНОГО ПРЕОБРАЗОВАНИЯ С ЧАСТОТНЫМ КОДИРОВАНИЕМ С РАСШИРЕННОЙ ПОЛОСОЙ 2007
  • Мехротра Санджив
  • Чэнь Вэй-Гэ
RU2422987C2
ПРОЦЕССОР НЕЙРОННОЙ СЕТИ, ИСПОЛЬЗУЮЩИЙ СЖАТИЕ И РАСПАКОВКУ ДАННЫХ АКТИВАЦИИ ДЛЯ СНИЖЕНИЯ ИСПОЛЬЗОВАНИЯ ПРОПУСКНОЙ СПОСОБНОСТИ ПАМЯТИ 2018
  • Коркери, Джозеф Леон
  • Ланделл, Бенджамин Элиот
  • Уолл, Ларри Марвин
  • Макбрайд, Чэд Боллинг
  • Амбардекар, Амол Ашок
  • Петр, Джордж
  • Сидола, Кент Д.
  • Бобров, Борис
RU2767447C2
ОБРАБОТКА ИЗОБРАЖЕНИЙ НА ОСНОВЕ ВЕСОВ 2006
  • Стрем Якоб
RU2407222C2
РЕЖИМ ГЕОМЕТРИЧЕСКОГО РАЗДЕЛЕНИЯ ПРИ КОДИРОВАНИИ ВИДЕОДАННЫХ 2020
  • Чэнь Льень-Фэй
  • Ли Сян
  • Ли Гуйчунь
  • Лю Шань
RU2773732C1
ОПТИМИЗАЦИЯ РЕШЕНИЙ, КАСАЮЩИХСЯ МНОГОЧИСЛЕННЫХ ОБЪЕКТОВ, ПРИ НАЛИЧИИ РАЗЛИЧНЫХ ОСНОВОПОЛАГАЮЩИХ НЕОПРЕДЕЛЕННОСТЕЙ 2006
  • Хит Дэвид
  • Нараянан Кешав
  • Каллик Алвин Стэнли
RU2417443C2
АНАЛИЗ МНОГОЧИСЛЕННЫХ ОБЪЕКТОВ С УЧЕТОМ НЕОПРЕДЕЛЕННОСТЕЙ 2006
  • Нараянан Кешав
  • Хит Дэвид Э.
  • Каллик Алвин Стэнли
RU2413992C2
ОПТИМИЗАТОР ПРОИЗВОДСТВА ДЛЯ УПРАВЛЕНИЯ ЦЕПОЧКАМИ ПОСТАВОК 2006
  • Харпер Чарльз Нили
RU2458398C2
СПОСОБ И УСТРОЙСТВО КРОСС-КОМПОНЕНТНОГО ЛИНЕЙНОГО МОДЕЛИРОВАНИЯ ДЛЯ ВНУТРЕННЕГО ПРЕДСКАЗАНИЯ 2019
  • Руфицкий, Василий Алексеевич
  • Чен, Цзянле
  • Ма, Сян
  • Филиппов, Алексей Константинович
RU2786086C1
КОДЕР, ДЕКОДЕР И СООТВЕТСТВУЮЩИЕ СПОСОБЫ С ИСПОЛЬЗОВАНИЕМ АДАПТИВНОГО КОНТУРНОГО ФИЛЬТРА 2020
  • Котра, Ананд Меер
  • Эсенлик, Семих
  • Чен, Цзянле
  • Гао, Хань
  • Ван, Бяо
RU2823558C2

Иллюстрации к изобретению RU 2 668 708 C1

Реферат патента 2018 года Усовершенствованное сжатие и шифрование файла

Изобретение относится к способу сжатия и шифрования файлов. Технический результат заключается в получении более эффективного способа сжатия данных без потерь. Технический результат достигается за счет устройства, содержащего память и контроллер, сконфигурированный для сжатия файла посредством преобразования части указанного файла в число и преобразования числа в вектор показателей. Каждый показатель соответствует основанию в векторе оснований, в результате чего файл представляется вектором показателей. Контроллер сконфигурирован для установки первого основания в векторе оснований в качестве текущего основания, нахождения показателя для текущего основания, включения показателя в вектор показателей, определения остатка путем вычитания из числа основания, возведенного в степень показателя. Причем если текущее основание не является последним основанием в векторе оснований, то текущее основание устанавливается в качестве следующего основания в векторе оснований, число в качестве остатка и осуществляется поиск показателя для нового текущего основания; если текущее основание является последним основанием в векторе оснований, то в качестве остатка устанавливается константа и осуществляется генерация представления, содержащего вектор показателей и константу, в результате чего часть указанного файла преобразуется в число. 2 н. и 14 з.п. ф-лы, 13 ил.

Формула изобретения RU 2 668 708 C1

1. Вычислительное устройство (100), содержащее память (240) и контроллер (210), при этом указанный контроллер (210) сконфигурирован для сжатия файла (410) посредством

преобразования по меньшей мере части указанного файла (410) в число (X) и

преобразования числа (X) в вектор (ехр) показателей, содержащий по меньшей мере один показатель, при этом каждый показатель соответствует основанию в векторе (base) оснований, в результате чего файл (410) представляется вектором (ехр) показателей, при этом указанный контроллер сконфигурирован для

установки первого основания в векторе оснований в качестве текущего основания;

нахождения показателя для текущего основания;

включения показателя в вектор (ехр) показателей;

определения остатка (Xres) путем вычитания из числа (X) основания, возведенного в степень показателя;

если текущее основание не является последним основанием в векторе (base) оснований, то

установки текущего основания в качестве следующего основания в векторе (base) оснований;

установки числа (X) в качестве остатка (Xres) и поиска контроллером (210) показателя для нового текущего основания; и, в противном случае,

если текущее основание является последним основанием в векторе (base) оснований, то

установки константы (K) в качестве остатка (Xres) и генерации представления, содержащего вектор (ехр) показателей и константу, в результате чего

указанная по меньшей мере часть указанного файла (410) преобразуется в число (X).

2. Вычислительное устройство (100) по п. 1, отличающееся тем, что показатель является наибольшим показателем.

3. Вычислительное устройство (100) по любому из предшествующих пунктов, отличающееся тем, что контроллер (210) также сконфигурирован для поиска показателя с помощью справочной таблицы.

4. Вычислительное устройство (100) по любому из предшествующих пунктов, отличающееся тем, что контроллер (210) также сконфигурирован для поиска показателя с помощью возможного повторяющегося деления.

5. Вычислительное устройство (100) по любому из предшествующих пунктов, отличающееся тем, что контроллер (210) также сконфигурирован для поиска показателя на основе старшего значимого разряда (msp, most significant position), при этом старший значимый разряд (msp) представляет собой позицию первого ненулевого элемента в представлении числа (X).

6. Вычислительное устройство (100) по п. 5, отличающееся тем, что контроллер (210) также сконфигурирован для поиска показателя на основе старшего значимого разряда (msp) с помощью справочной таблицы.

7. Вычислительное устройство (100) по п. 5, отличающееся тем, что контроллер (210) также сконфигурирован для поиска показателя на основе старшего значимого разряда (msp) посредством вычисления корня степени текущего основания из основания системы счисления представления, возведенного в степень старшего значимого разряда (msp).

8. Вычислительное устройство (100) по п. 5, отличающееся тем, что контроллер (210) также сконфигурирован для поиска показателя на основе старшего значимого разряда (msp) посредством вычисления корня степени основания системы счисления представления из текущего основания и умножения его на старший значимый разряд (msp).

9. Вычислительное устройство (100) по любому из предшествующих пунктов, отличающееся тем, что контроллер (210) также сконфигурирован для определения масштабного коэффициента для текущего основания путем деления числа (X) на текущее основание, возведенное в степень показателя, а затем - определения остатка (Xres) путем вычитания из числа (X) основания, возведенного в степень показателя и умноженного на масштабный коэффициент.

10. Вычислительное устройство (100) по любому из предшествующих пунктов, отличающееся тем, что контроллер (210) также сконфигурирован для уменьшения числа (X) путем вычитания основания, возведенного в степень показателя, из числа (X).

11. Вычислительное устройство (100) по любому из предшествующих пунктов, отличающееся тем, что по меньшей мере два показателя в векторе (ехр) показателей соответствуют одинаковому основанию в векторе (base) оснований.

12. Вычислительное устройство (100) по любому из предшествующих пунктов, отличающееся тем, что вектор (base) оснований содержит дублированные основания.

13. Вычислительное устройство по любому из предшествующих пунктов, отличающееся тем, что контроллер (210) также сконфигурирован для шифрования файла (410) путем переупорядочения вектора (ехр) показателей.

14. Вычислительное устройство по любому из предшествующих пунктов, отличающееся тем, что контроллер (210) также сконфигурирован для преобразования указанного файла (410) в указанное число (X) путем интерпретации представления файла в виде числа (X).

15. Вычислительное устройство (100), содержащее память (240) и контроллер (210), при этом указанный контроллер (210) сконфигурирован для шифрования файла (410) посредством

преобразования по меньшей мере части указанного файла (410) в число (X) и

преобразования числа (X) в вектор (ехр) показателей, содержащий по меньшей мере один показатель, при этом каждый показатель соответствует основанию в векторе (base) оснований, в результате чего файл (410) представляется вектором (ехр) показателей, при этом указанный контроллер сконфигурирован для

установки первого основания в векторе оснований в качестве текущего основания;

нахождения показателя для текущего основания;

включения показателя в вектор (ехр) показателей;

определения остатка (Xres) путем вычитания из числа (X) основания, возведенного в степень показателя;

если текущее основание не является последним основанием в векторе (base) оснований, то

установки текущего основания в качестве следующего основания в векторе (base) оснований;

установки числа (X) в качестве остатка (Xres) и поиска контроллером (210) показателя для нового текущего основания; и, в противном случае,

если текущее основание является последним основанием в векторе (base) оснований, то

установки константы (K) в качестве остатка (Xres) и генерации представления, содержащего вектор (ехр) показателей и константу, в результате чего

указанная по меньшей мере часть указанного файла (410) преобразуется в число (X),

при этом указанный контроллер также сконфигурирован для

переупорядочения вектора (ехр) показателей, в результате чего представление файла (410) шифруется.

16. Вычислительное устройство (100) по п. 15, отличающееся тем, что контроллер также сконфигурирован для переупорядочения вектора (base) оснований.

Документы, цитированные в отчете о поиске Патент 2018 года RU2668708C1

Пресс для выдавливания из деревянных дисков заготовок для ниточных катушек 1923
  • Григорьев П.Н.
SU2007A1
СИСТЕМА И СПОСОБ ПОСЛЕДОВАТЕЛЬНОГО ПРЕОБРАЗОВАНИЯ И КОДИРОВАНИЯ ЦИФРОВЫХ ДАННЫХ 2003
  • Мальвар Энрике С.
RU2321063C2
ГИБКОЕ КВАНТОВАНИЕ 2007
  • Ту Чэнцзе
  • Сринивасан Сридхар
RU2476000C2
СПОСОБ ИЗГОТОВЛЕНИЯ ДЕКОРАТИВНЫХ ДРЕВЕСНЫХ ИЗДЕЛИЙ И ЕГО ВАРИАНТЫ 1993
  • Иванов Павел Сергеевич
  • Киселев Владимир Николаевич
  • Киселев Николай Григорьевич
RU2065811C1
Многоступенчатая активно-реактивная турбина 1924
  • Ф. Лезель
SU2013A1
US 5867603 A, 02.02.1999.

RU 2 668 708 C1

Авторы

Ревелль Элиза

Даты

2018-10-02Публикация

2015-11-25Подача