УСТРОЙСТВО ДЛЯ КОМПРЕССИИ ДАННЫХ
DEVICE FOR COMPRESSION OF DATA

Изобретение относится к области вычислительной техники и предназначено для использования в системах обработки информации, а также может быть применено в блоках сжатия и распаковки данных без потерь в системах для рационального использования устройств хранения и передачи данных, обработки данных физических экспериментов.
1
2
1
1
1
2
2
2
n
n-1
n-2
Известен способ сжатия данных (RU №2386210 С2, МПК Н03М 7/40, Н03М 7/46, заявлено 04.08.2006, опубликовано 10.04.2010, Бюл. №10), в котором сжатие данных осуществляется с помощью кодера. В первом блоке памяти кодера хранятся предварительно записанные кодовые комбинации (КК) с числом разрядов n, где n=2, 3, 4, …, представляющие собой полный набор возможных входных кодовых комбинаций (КК). Во втором блоке памяти кодера хранятся предварительно записанные кодовые комбинации КК, однозначно соответствующие КК, с числом разрядов, меньшим или таким же, как в КК. Входной поток данных разделяют на КК с одинаковым числом разрядов n. КК последовательно вводят в кодер, идентифицируют путем сравнения с KK, отображают соответствующий выходной кодовой комбинацией КК. КК представляют собой последовательность групп с одинаковым числом разрядов n в каждой. Совокупное число кодовых комбинаций КК-m, где m=2, 3, 4, …, n=1, 2, 3, …. Число последовательных групп КК определяют как m, m, …. Разрядность КК2 в группе выравнивают за счет добавления незначащего нуля перед кодовой комбинацией.
0
1
0
1
c
с
1
0
1
c
2
0
1
Известен способ сжатия восстановления данных без потерь (RU №2403677 С1, МПК Н03М 7/30, заявлено 09.02.2009, опубликовано 10.11.2010, Бюл. №31), в котором используется сжатие данных, ранее подвергнутых сжатию. В сжимаемом потоке данных считают количество нулей n и количество единиц n, выбирают алгоритм присвоения неповторяющихся цифровых кодов всем возможным перестановкам с повторениями из n нулей и n единиц и нахождения соответствующей перестановки, которой присваивают цифровой код N, считают общее количество кодов n, определяют значения d=n+n-n и d=(n+n)/2, а для восстановления потока данных выполняют обратные операции.
Известно эффективное по использованию памяти адаптивное блочное кодирование (RU №2413360 С1, МПК Н03М 7/40, заявлено 14.11.2007, опубликовано 27.02.2011, Бюл. №6), в котором используется кодирование переменной длины (VLC) с низкой сложностью данных. Структура кода определяет группы кодовых слов в кодовом дереве, причем каждая из групп включает в себя кодовые слова, представляющие значения, имеющие одинаковые весовые коэффициенты, и кодовые слова упорядочиваются лексикографически относительно значений, представленных посредством кодовых слов. Кроме того, структура кода определяет первую и вторую подгруппу кодовых слов в каждой из групп, при этом первая подгруппа включает в себя кодовые слова, имеющие первую длину, а вторая подгруппа - вторую длину, отличную от первой длины. Затем формируют результат кодирования переменной длины, по меньшей мере, для одного из сохранений в запоминающем устройстве, передачи в устройство или представлении пользователю.
2
2
2
Известно кодирующее устройство (RU №153302 U1, МПК Н03М 7/30, заявлено 17.06.2014, опубликовано 10.07.2015, Бюл. №19), содержащее входной регистр, анализатор разрядов, блок управления ключами, блок ключей, ПЗУ, блок мультиплексоров, выходной регистр, а также тактовый генератор, делитель частоты, счетчик и выходной регистр со следующими соединениями: выход входного регистра 1-n соединен с входами анализатора разрядов и с блоком управления ключами, выходы 1-n анализатора соединены с информационными входами блока ключей, а выходы 1-n - с управляющими входами этого блока, выходы которого 1-n соединены с входами ПЗУ, а выходы 1-2n ПЗУ соединены с информационными входами блока мультиплексора, выходы которого 1-n являются выходами маркера устройства; выходы 3-8 входного регистра соединены с выходным регистром, выходы которого являются выходами информационных разрядов устройства; выход тактового генератора через счетчик соединен с управляющими входами блока мультиплексоров, а через делитель частоты - с управляющими входами: через выход 1 входного регистра, через выход 2 с блоком управления ключами, а через выход 3 с выходным регистром.
Недостатком данных устройств является схемная сложность, что затрудняет их применение.
1
2
L
1
2
L-1
1
2
L-1
1
2
L-1
1
2
L-1
1
2
L-1
1
2
L-1
1
2
L-1
1
2
L
1
2
L
1
1
2
L
1
2
L-1
1
L-2
2
L
1
2
L-1
1
2
L-1
1
L-2
2
L-1
2
L-2
1
1
1
2
L-1
1
2
L-1
1
2
L-1
1
2
L-1
L
L-1
1
2
L-1
1
2
L-1
Наиболее близким устройством того же назначения к заявленному изобретению по совокупности признаков является, принятое за прототип устройство для сжатия данных (RU №2622878 С1, МПК Н03М 7/30, заявлено 01.08.2016, опубликовано 20.06.2017, Бюл. №17), содержащее N входных символов D1, D2, …, DN по k разрядов соединенных с входным регистром данных 1, группу из L анализаторов символов 2, 2, …, 2, каждый из которых содержит первую группу из w элементов ИЛИ 3, первую группу из w элементов И 4 и блок счета количества единиц 5 (L - количество групп по w символов из k разрядов, причем N=L*w), группу из (L-1) сумматоров 6, 6, …, 6, группу из (L-1) схем сравнения 7, 7, …, 7, группу из (L-1) D-триггеров 8, 8, …, 8 с входом разрешения работы СЕ, асинхронным CLR и синхронным R входами установки в нулевое состояние, вторую группу из (L-1) элементов И 9, 9, …, 9, третий элемент И 10, четвертый элемент И 11, второй элемент ИЛИ 12, многовыходной блок приоритета 13, блок коммутаторов данных 14, выходной буфер 15, внешние входы задания количества символов w в группе 16, внешний вход EN разрешения работы 17, внешний вход С синхронизации 18, внешний вход CLR установки в нулевое состояние 19, внешние выходы устройства Q 20, а также внутреннюю шину данных DD из N символов по k разрядов, внутреннюю N разрядную шину маски символов М, внутреннюю L разрядную шину указателей групп символов U, причем внешний вход CLR установки в нулевое состояние 19 соединен с входами установки в нулевое состояние входного регистра 1 и выходного буфера 15, а также входами CLR асинхронной установки в нулевое состояние всех триггеров 8, 8, …, 8, внешний вход синхронизации 18 соединен с входами синхронизации С триггеров 8, 8, …, 8, входного регистра 1 и выходного буфера 15, внешний вход EN разрешения работы 17 соединен с входами разрешения работы СЕ триггеров 8, 8, …, 8 и выходного буфера 15, причем выходы входного регистра данных 1 соединены с внутренней шиной данных DD, из которой группами по w символов из k разрядов соединены с соответствующими входами первых групп из w элементов ИЛИ 3 анализаторов символов 2, 2, …, 2, в каждом из которых выходы первых групп из w элементов ИЛИ 3 соединены со вторыми входами соответствующих первых групп из w элементов И 4, выходы которых являются внутренней шиной маски символов М и соединены с входами блока счета количества единиц 5, выходы которых являются выходами анализаторов символов 2, 2, …, 2, выход первого анализатора символов 2 соединен с первой группой входов первого сумматора 6, выходы анализаторов символов, начиная со второго 2 до последнего 2 анализатора, соединены со вторыми группами входов соответствующих сумматоров 6, 6, …, 6, выходы сумматоров, начиная в первого 2 до предпоследнего 6 сумматора, соединены с первой группой входов последующего сумматора, начиная со второго 2 до последнего 2 сумматора, а также выходы (L-1) сумматоров 6, 6, …, 6 соединены со вторыми группами входов соответствующих (L-1) схем сравнения 7, 7, …, 7, первые группы входов которых соединены между собой и подключены к внешним входам 16 задания количества символов w в группе, выходы схем сравнения, начиная с первой 7 до предпоследней 7 схемы сравнения, соединены с информационными входами D соответствующих триггеров, начиная со второго 8 до последнего 8 триггера, и с первыми входами соответствующих элементов И второй группы, начиная со второго 9 до предпоследнего 9 элемента И, а информационный вход D первого триггера 8 соединен с первым входом первого элемента 9 из второй группы элементов И и подключен к логической единице, инверсные выходы NT, NT, …, NT триггеров 8, 8, …, 8 соединены с первыми входами первых групп из w элементов И 4 соответствующих (L-1) первых анализаторов символов 2, 2, …, 2 и вторыми входами соответствующих элементов И второй группы 9, 9, …, 9, первые входы первой группы из w элементов И 4 последнего анализатора символов 2 соединены с выходом последней схемы сравнения 7, который также соединен с первым входом третьего элемента И 10 и со вторым входом четвертого элемента И 11, выход которого соединен с входом разрешения работы СЕ входного регистра 1, третьи входы всех элементов второй группы элементов И 9, 9, …, 9 соединены между собой, соединены со вторым входом третьего элемента И 10 и подключены к выходу третьего элемента ИЛИ 12, входы которого соединены со всеми N разрядами внутренней шины маски символов М, которые также соединены со второй группой входов выходного буфера 15 и с входами многовыходного блока приоритета 13, у которого w групп выходов соединены с управляющими входами блока коммутаторов данных 14, информационные входы которого соединены с внутренней шиной данных DD, а выходы блока коммутаторов данных 14 соединены с третьей группой входов выходного буфера 15, выходы второй группы элементов И 9, 9, …, 9 и выход третьего элемента И 10 являются внутренней шиной указателей групп символов U и соединены с первой группой входов выходного буфера 15, выходы Q которого являются внешними выходами устройства 20.
1
2
L-1
1
2
L-1
Недостатками данного устройства являются схемная сложность, связанная с реализацией L блоков счета количества единиц 5 (L - количество групп по w символов из k разрядов, причем N=L*w), группы из (L-1) сумматоров 6, 6, …, 6, группы из (L-1) схем сравнения 7, 7, …, 7, аппаратные затраты на хранение указателей групп символов U и временные затраты при формировании и передаче сжатых групп, когда сумма ненулевых символов в трех соседних группах менее двойной размерности групп w, а в двух соседних группах превышает размерность групп w, например, когда в соседних группах содержится два, три и два ненулевых символа при размерности групп w=4, то требуется передача трех групп сжатых символов.
К причинам, препятствующим достижению указанного ниже технического результата, относятся большие аппаратные затраты и связи между ними, что приводит к уменьшению надежности и усложнению устройства.
Техническим результатом изобретения является простота реализации с одновременным уменьшением времени передачи данных, повышение информационной вместимости без потерь информации за счет сокращения необходимого объема памяти для хранения последовательности двоичных символов.
Указанный технический результат при осуществлении изобретения достигается тем, что в устройство для компрессии данных содержащее
1
2
N
1
2
N
1
2
N
N входных символов D1, D2, …, DN по k разрядов соединенных с входным регистром данных 1, первую группу из N элементов ИЛИ 2, 2, …, 2, первую группу из N элементов И 3, 3, …, 3, группу из N синхронных D-триггеров 10, 10, …, 10 с входом разрешения работы СЕ, асинхронным CLR и синхронным R входами установки в нулевое состояние, многовыходной блок приоритета 4, блок коммутаторов данных 11, выходной буфер 12, внешний вход С синхронизации 15, внешний вход CLR асинхронной установки в нулевое состояние 14, внешние выходы Q устройства 16, а также внутреннюю шину данных DD из N символов по k разрядов и внутреннюю N разрядную шину маски символов М,
1
2
N
причем внешний вход CLR асинхронной установки в нулевое состояние 14 соединен с входами CLR асинхронной установки в нулевое состояние входного регистра 1 и выходного буфера 12, а также входами CLR асинхронной установки в нулевое состояние всех триггеров 10, 10, …, 10,
1
2
N
внешний вход С синхронизации 15 соединен с входами синхронизации С всех триггеров 10, 10, …, 10, входного регистра 1 и выходного буфера 12,
1
2
N
1
2
N
выходы входного регистра данных 1 соединены с внутренней шиной данных DD, из которой группами из k разрядов по символам соединены с соответствующими входами одноименных символам элементам первой группы из N элементов ИЛИ 2, 2, …, 2, выходы которых соединены со вторыми входами одноименных элементов первой группы элементов И 3, 3, …, 3, выходы которых являются разрядами внутренней шины маски символов М, которые также соединены с первой группой входов выходного буфера 12,
1
2
(N-1)
1
2
W
1
2
W
i
i1
i2
i(N-i-1)
i1
i2
i(N-1)
i1
i2
i(N-i)
i
i1
i2
i(N+1-i)
i1
i2
i(N-i)
дополнительно введены элемент ИЛИ-НЕ 8, вторая группа из (N-1) элементов ИЛИ 9, 9, …, 9, а также введены внутренняя N разрядная шина выходов триггеров Т и группа из W внутренних шин указателей старших символов U1, U2, …, UW, в блок коммутатора данных введены W коммутаторов 11, 11, …, 11, а в многовыходной блок приоритета введены W каскадов 4, 4, …, 4, причем каждый i-й каскад 4 (i=1, 2, …, W, где W количество выходных символов) содержит группу из (N-1-i) элементов ИЛИ 5, 5, …, 5, группу из (N-i) элементов запрета И с одним инверсным входом 6, 6, 6 и группу из (N-i) элементов И 7, 7, …, 7, а также каждый i-й каскад 4 содержит группу из (N+1-i) входов запроса в i-й каскад А, А, …, A, шину Ui из (N+1-i) разрядов выходов указателей старших символов i-го ранга (1-й ранг имеет высший приоритет, а старший разряд имеет старший приоритет) и группу из (N-i) выходов запроса S, S, …, S в следующий (i+1)-й каскад,
11
12
1N
1
1
2
(W-1)
W
i1
i2
i(N-i)
(i+1)1,
(i+1)2
(i+1)(N-i)
причем разряды внутренней шины маски символов М соединены с соответствующими входами запроса A, А, …, А первого каскада 4, а в первых (W-1) каскадах 4, 4, …, 4, кроме последнего W-го каскада 4, (N-i) выходов запроса в следующий (i+1)-й каскад S, S, …, S соединены с соответствующими (N-i) входами запроса следующего (i+1)-го каскада A A, …, A,
i
i1
i2
i(N-i)
i(N-i+1)
i1
i2
i(N-i)
i1
i2
i(N-i-1
i1
i2
i(N-i-1)
i(N-i)
i(N-i+1)
i(N-i-1)
i
i1
i2
i(N-i-1)
i2
i2
i(N-i)
i(N-i+1)
i1
i2
i(N-i-2)
i2
i3
i(N-i-2)
i1
i2
i(N-i)
i1
i2
i(N-i)
i(N-i+1)
i1
i2
i(N-i)
i1
i2
i(N-i-1)
i(N-i)
i(N-i+1)
i1
i2
i(N-i)
i1
i2
i(N-i)
i
i1
i2
i(N-i)
i1
i2
i(N-i)
i(N+1-i)
i(N-i+1)
в многовыходном блоке приоритета 4 в каждом i-м каскаде 4 первые (N-i) входов A, A, …, A из группы входов запроса, кроме последнего входа запроса A, соединены с первыми прямыми входами соответствующих элементов 6, 6, …, 6 из группы элементов запрета И с одним инверсным входом, выходы всех элементов группы из (N-i-1) элементов ИЛИ 5, 5, …, 5) соединены со вторыми инверсными входами соответствующих первых (N-i-1) элементов 6, 6, …, 6 группы из элементов запрета И с одним инверсным входом, кроме последнего элемента 6, у которого второй инверсный вход соединен с последним (N-i+1) входом A группы запроса i-го каскада и вторым входом последнего элемента 5 из группы элементов ИЛИ, кроме того в каждом i-м каскаде 4 первые входы (N-i-1) элементов 5, 5, …, 5 из группы элементов ИЛИ соединены с соответствующими (N-i-1) входами A, A, …, A запроса в i-й каскад, начиная со второго входа запроса, кроме последнего входа запроса A, а вторые входы первых (N-i-2) элементов 5, 5, …, 5 из группы элементов ИЛИ соединены с выходами соответствующих последующих элементов 5, 5, …, 5 из группы элементов ИЛИ, причем в первых (W-1) каскадах, кроме последнего W-го каскада, вторые входы (N-i) элементов 7, 7, …, 7 из группы элементов И соединены с соответствующими первыми (N-i) входами запроса в i-й каскад А, А, …, А, кроме последнего входа запроса A, первые входы первых (N-i-1) элементов 7, 7, …, 7 из группы элементов И соединены с выходами соответствующих (N-i-1) элементов 5, 5, …, 5 из группы элементов ИЛИ, первый вход последнего элемента 7 из группы элементов И соединен с последним входом запроса A, а выходы (N-i) элементов 7, 7, …, 7 из группы элементов И являются группой из (N-i) выходов запроса S, S, …, S в следующий (i+1)-й каскад, кроме того, в каждом i-м каскаде 4 выходы (N-i) элементов 6, 6, …, 6 из группы элементов запрета И с одним инверсным входом являются первыми (N-i) разрядами соответствующей внутренней шины i-го ранга U, U, …, U из W внутренних шин указателей старших символов, а последний (N-i+1) разряд U соединен с последним (N-i+1) входом запроса в i-й каскад A,
w1
w2
w(N-i)
1
2
N
выходы запроса S, S, …, S в следующий (i+1)-й каскад последнего W-го каскада 4w соединены с входами элемента ИЛИ-НЕ 8, выход которого соединен с синхронными входами установки в нулевое состояние R всех триггеров 10, 10, …, 10 и входом разрешения работы СЕ входного регистра данных 1,
1
2
(N-1)
1
2
(N-1)
N
1N
причем соответствующие одноименные разряды группы из W внутренних шин указателей старших символов U1, U2, …, UW соединены с соответствующими входами одноименных элементов из второй группы из (N-1) элементов ИЛИ 9, 9, …, 9, выходы которых соединены с входами разрешения работы СЕ соответствующих одноименных триггеров 10, 10, …, 10, а вход разрешения работы СЕ последнего N-го триггера 10 соединен с последним старшим разрядом U первой внутренней шины U1 указателей старших символов,
1
2
N
1
2
N
1
2
N
инверсные выходы всех триггеров 10, 10, …, 10 соединены с информационными входами D соответствующих одноименных триггеров 10, 10, …, 10, а также являются разрядами внутренней N разрядной шины выходов триггеров Т, которая поразрядно соединена с первыми входами соответствующих одноименных элементов И первой группы из N элементов И 3, 3, …, 3,
1
2
W
i
1
2
W
информационные входы всех W коммутаторов 11, 11, …, 11 соединены с внутренней шиной данных DD, а управляющие входы каждого i-го коммутатора 11 соединены с соответствующей i-ой внутренней шиной Ui указателей старших символов, выходы всех W коммутаторов 11, 11, …, 11 соединены с соответствующими W группами входов из k разрядов, начиная со второй группы входов, выходного буфера 12, выходы Q которого являются внешними выходами устройства 16.
На фиг. 1 представлена схема предлагаемого устройства для компрессии данных при N=6 входных символов по k разрядов и количестве выходных символов W=3 по k разрядов. На фиг. 2 приведены форматы входных данных и внутренней шины маски М. На фиг. 3 приведен формат выходных данных.
В устройстве приняты следующие обозначения:
i1
i2
i(N+1-i)
A, A, …, A - группа из (N+1-i) входов запроса в i-й каскад (i=1, 2, …, W) многовыходного блока приоритета,
СЕ - вход разрешения работы,
CLR - вход установки в нулевое состояние,
D - информационный вход триггера,
D1, D2, …, D6 (DN) - N входных символов по k разрядов,
DD - внутренняя шина данных из N символов по k разрядов,
FZ - флаг нулевых символов (флаг нуля),
k - разрядность символов,
М - внутренняя N разрядная шина маски символов,
Q - выходная шина разрядностью N+W*k,
QD - выходные разряды данных W символов по k разрядов,
QM - выходные N разрядов маски символов,
R - вход синхронной установки триггера в нулевое состояние,
i1
i2
i(N-i)
S, S, …, S - группа из (N-i) выходов запроса в следующий (i+1)-й каскад,
Т - внутренняя N разрядная шина выходов триггеров,
U1, U2, …, UW - группа из W внутренних шин указателей старших символов по (N-i+1) разрядов,
W - количество выходных символов по k разрядов,
1 - входной регистр данных,
1
2
N
2, 2, …, 2 - первая группа из N элементов ИЛИ,
1
2
B
3, 3, …, 3 - первая группа из N элементов И,
1
2
W
4, 4, …, 4 - W каскадов многовыходного блока приоритета,
i1
i2
i(N-i-1)
5, 5, …, 5 - группа из (N-i-1) элементов ИЛИ каждого i-го каскада многовыходного блока приоритета,
i1
i2
i(N-i)
6, 6, …, 6 - группа из (N-i) элементов запрета И с одним инверсным входом каждого i-го каскада многовыходного блока приоритета,
i1
i2
i(N-i)
7, 7, …, 7 - группа из (N-i) элементов И каждого i-го каскада многовыходного блока приоритета,
8 - элемент ИЛИ-НЕ,
i1
i2
(N-1)
9, 9, …, 5 - вторая группа из (N-1) элементов ИЛИ,
1
2
N
10, 10, …, 10 - группа из N синхронных D-триггеров с входом разрешения работы СЕ, асинхронным и синхронным входами установки в нулевое состояние,
1
2
W
11, 11, …, 11 - W коммутаторов блока коммутаторов данных,
12 - выходной буфер,
13 - внешние входы данных D1, D2, …, D6 (DN),
14 - внешний вход CLR асинхронной установки в нулевое состояние,
15 - внешний вход С синхронизации,
16 - внешние выходы Q.
1
2
N
1
2
N
1
2
(N-1)
1
2
N
1
2
W
1
2
W
i
i1
i2
i(N-i-1)
i1
i2
i(N-i)
i1
i2
i(N-i)
Устройство для компрессии данных содержит N входных символов D1, D2, …, DN по k разрядов соединенных с входным регистром данных 1, первую группу из N элементов ИЛИ 2, 2, …, 2, первую группу из N элементов И 3, 3, …, 3, многовыходной блок приоритета 4, элемент ИЛИ-НЕ 8, вторую группу из (N-1) элементов ИЛИ 9, 9, …, 9, группу из N синхронных D-триггеров 10, 10, …, 10, блок коммутаторов данных 11, выходной буфер 12, а также введены внешний вход С синхронизации 15, внешний вход CLR асинхронной установки в нулевое состояние 14, внешние выходы Q устройства 16, внутренняя шина данных DD из N символов по k разрядов, внутренняя N разрядная шина маски символов М, внутренняя N разрядная шина выходов триггеров Т и группа из W внутренних шин указателей старших символов U1, U2, …, UW, причем в блок коммутатора данных введены W коммутаторов 11, 11, …, 11, а в многовыходной блок приоритета введены W каскадов 4, 4, 4, причем каждый i-й каскад 4 (i=1, 2, …, W, где W количество выходных символов), содержит группу из (N-1-i) элементов ИЛИ 5, 5, …, 5, группу из (N-i) элементов запрета И с одним инверсным входом 6, 6, …, 6 и группу из (N-i) элементов И 7, 7, …, 7.
Входной регистр данных 1 содержит N*k информационных разрядов и предназначен для хранения текущего массива N входных символов D1, D2, DN по k разрядов, а также содержит вход разрешения записи СЕ, вход синхронизации С и вход установки в нулевое состояние CLR. Выходы входного регистра данных 1 являются внутренней шиной данных DD.
1
2
N
В группе из N синхронных D-триггерах 10, 10, …, 10 каждый триггер также содержит вход синхронизации С, вход разрешения работы СЕ, асинхронный CLR и синхронный R входы установки в нулевое состояние.
Выходной буфер 12 содержит (W+1) группу информационных входов, вход синхронизации С и вход установки в нулевое состояние CLR.
1
2
Внешний вход CLR установки в нулевое состояние 14 соединен с входами установки в нулевое состояние входного регистра 1 и выходного буфера 12, а также входами CLR асинхронной установки в нулевое состояние всех триггеров 10, 10, …, 10.
1
2
Внешний вход С синхронизации 15 соединен с входами синхронизации С всех триггеров 10, 10, …, 10, входного регистра 1 и выходного буфера 12.
1
2
N
1
2
N
Разряды внутренней шиной данных DD группами из k разрядов по символам соединены с соответствующими входами одноименных символам элементам первой группы из N элементов ИЛИ 2, 2, …, 2, выходы которых соединены со вторыми входами одноименных элементов первой группы элементов И 3, 3, …, 3, выходы которых являются разрядами внутренней шины маски символов М, которые также соединены с первой группой входов выходного буфера 12.
i
i1
i2
i(N+1-i)
i1
i2
i(N-i)
Каждый i-й каскад 4 многовыходного блока приоритета содержит группу из (N+1-i) входов запроса в i-й каскад A, А, …, A, шину Ui из (N+1-i) разрядов выходов указателей старших символов i-го ранга (1-й ранг имеет высший приоритет, а старший разряд имеет старший приоритет) и группу из (N-i) выходов запроса S, S, …, S в следующий (i+1)-й каскад.
11
12
1N
1
1
2
(W-1)
W
i1
i2
i(N-1)
(i+1)1
(i+1)2
(i+1)(N-i)
Разряды внутренней шины маски символов М соединены с соответствующими входами запроса A, А, …, А первого каскада 4, а в первых (W-1) каскадах 4, 4, …, 4, кроме последнего W-го каскада 4, (N-i) выходов запроса в следующий (i+1)-й каскад S, S, …, S соединены с соответствующими (N-i) входами запроса следующего (i+1)-го каскада A, A, …, A.
i
i1
i2
i(N-i)
i(N-i+1)
i1
i2
i(N-i)
i1
i2
i(N-i-1)
i1
i2
i(N-i-1)
i(N-i)
i(N-i+1)
i(N-i-1)
i
i1
i2
i(N-i-1)
i1
i2
i(N-i)
i(N-i+1)
i1
i2
i(N-i-2)
i2
i3
i(N-i-2)
i1
i2
i(N-i)
i1
i2
i(N-i)
i(N-i+1)
i1
i2
i(N-i)
i1
i2
i(N-i-1)
i(N-i)
i(N-i+1)
i1
i2
i(N-i)
i1
i2
i(N-i)
i1
i2
i(N-i)
i1
i2
i(N-i)
i(N+1-i)
i(N-i+1)
В многовыходном блоке приоритета 4 в каждом i-м каскаде 4 первые (N-i) входов А, A, …, A из группы входов запроса, кроме последнего входа запроса A, соединены с первыми прямыми входами соответствующих элементов 6, 6, …, 6 из группы элементов запрета И с одним инверсным входом. Выходы всех элементов группы из (N-i-1) элементов ИЛИ 5, 5, …, 5 соединены со вторыми инверсными входами соответствующих первых (N-i-1) элементов 6, 6, …, 6 группы из элементов запрета И с одним инверсным входом, кроме последнего элемента 6, у которого второй инверсный вход соединен с последним (N-i+1) входом A группы запроса i-го каскада и вторым входом последнего элемента 5 из группы элементов ИЛИ. Кроме того, в каждом i-м каскаде 4 первые входы (N-i-1) элементов 5, 5, …, 5 из группы элементов ИЛИ соединены с соответствующими (N-i-1) входами A, A, …, A запроса в i-й каскад, начиная со второго входа запроса, кроме последнего входа запроса A, а вторые входы первых (N-i-2) элементов 5, 5, …, 5 из группы элементов ИЛИ соединены с выходами соответствующих последующих элементов 5, 5, …, 5 из группы элементов ИЛИ. Причем в первых (W-1) каскадах, кроме последнего W-го каскада, вторые входы (N-i) элементов 7, 7, …, 7 из группы элементов И соединены с соответствующими первыми (N-i) входами запроса в i-й каскад A, A, …, A, кроме последнего входа запроса A, первые входы первых (N-i-1) элементов 7, 7, …, 7, из группы элементов И соединены с выходами соответствующих (N-i-1) элементов 5, 5, …, 5 из группы элементов ИЛИ, первый вход последнего элемента 7 из группы элементов И соединен с последним входом запроса A. Выходы (N-i) элементов 7, 7, …, 7 из группы элементов И являются группой из (N-i) выходов запроса S, S, …, S в следующий (i+1)-й каскад. Кроме того, в каждом i-м каскаде 4i выходы (N-i) элементов 6, 6, …, 6 из группы элементов запрета И с одним инверсным входом являются первыми (N-i) разрядами соответствующей внутренней шины i-го ранга U, U, …, U из W внутренних шин указателей старших символов, а последний (N-i+1) разряд U соединен с последним (N-i+1) входом запроса в i-й каскад A.
w1
w2
w(N-i)
W
1
2
N
Выходы запроса S, S, …, S в следующий (i+1)-й каскад последнего W-го каскада 4 соединены с входами элемента ИЛИ-НЕ 8, выход которого соединен с синхронными входами установки в нулевое состояние R всех триггеров 10, 10, …, 10 и входом разрешения работы СЕ входного регистра данных 1.
1
2
i(N-1)
1
2
(N-1)
N
1N
Причем соответствующие одноименные разряды группы из W внутренних шин указателей старших символов U1, U2, …, UW соединены с соответствующими входами одноименных элементов из второй группы из (N-1) элементов ИЛИ 9, 9, …, 9, выходы которых соединены с входами разрешения работы СЕ соответствующих одноименных триггеров 10, 10, …, 10, а вход разрешения работы СЕ последнего N-го триггера 10 соединен с последним старшим разрядом U первой внутренней шины U1 указателей старших символов.
1
2
N
1
2
N
1
2
N
Инверсные выходы всех триггеров 10, 10, …, 10 соединены с информационными входами D соответствующих одноименных триггеров 10, 10, …, 10, а также являются разрядами внутренней N разрядной шины выходов триггеров Т, которая поразрядно соединена с первыми входами соответствующих одноименных элементов И первой группы из N элементов И 3, 3, …, 3.
1
2
W
i
1
2
W
Информационные входы всех W коммутаторов 11, 11, …, 11 соединены с внутренней шиной данных DD, а управляющие входы каждого i-го коммутатора 11 соединены с соответствующей i-ой внутренней шиной Ui указателей старших символов. Выходы всех W коммутаторов 11, 11, …, 11 соединены с соответствующими W группами входов из k разрядов, начиная со второй группы входов, выходного буфера 12, выходы Q которого являются внешними выходами устройства 16.
Принцип работы устройства состоит в следующем.
1
2
N
1
2
N
1
2
N
Входной массив данных D1, D2, …, DN содержит N символов по k разрядов (фиг. 2). Определяют ненулевые символы (в первой группе из N элементов ИЛИ 2, 2, …, 2) и формируют маску символов М из N разрядов. Каждый разряд маски символов М принимает единичное значение, если соответствующий символ ненулевой, или нулевое значение, если соответствующий символ нулевой, а также в зависимости от состояния соответствующего одноименного символу D-триггера из группы 10, 10, …, 10 (в первой группе из N элементов И 3, 3, …, 3).
1
2
W
1
2
W
Далее по значениям разрядов маски символов М в W каскадах 4, 4, …, 4 многовыходного блока приоритета формируются W групп соответствующего ранга приоритета (группа с меньшим номером имеет высший приоритет, а старший разряд в группе имеет старший приоритет), которые поступают на разряды группы из W внутренних шин указателей старших символов U1, U2, …, UW по (N-i+1) разрядов. На каждой шине Ui указателей старших символов устанавливается значение в единичном кодировании в коде «1 из N». В соответствии с приоритетом W коммутаторов блока коммутаторов данных 11, 11, …, 11 передают не более W соответствующих старших ненулевых символов входных данных D1, D2, …, DN на соответствующие группы входов выходного буфера 12 (ненулевые символы поступают в обратном порядке - старший ненулевой символ поступает на младшую группу входов), на первую группу входов которого поступают также значения маски символов М (фиг. 3). Запись в выходной буфер 12 выполняется по тактовому сигналу С.
1
2
(N-1)
1
2
N
1
2
N
1
2
N
Одновременно, в соответствии с единичными значениями разрядов внутренних шин U1, U2, …, UW указателей старших символов, на выходах второй группы из (N-1) элементов ИЛИ 9, 9, …, 9 формируются единичные значения, соответствующие выбранным ненулевым символам, которые поступают на входы разрешения СЕ синхронных D-триггеров 10, 10, …, 10, которые по тактовому сигналу С переключаются в единичное состояние, при единичном значении СЕ=1, или сохраняют состояние при нулевом значении СЕ=0. При этом по нулевым значениям на выходах триггеров 10, 10, …, 10 на следующем шаге блокируются выбранные и переданные символы - обнуляются соответствующие разряды в маске символов М (в первой группе из N элементов И 3, 3, …, 3) и проводится выборка следующих W ненулевых символов для передачи в выходной буфер 12.
W1
W2
W(N-i)
1
2
N
Если на выходах S, S, …, S запроса в следующий каскад W-го каскада UW будут установлены нулевые значения, что соответствует отсутствию не выбранных ненулевых символов, то на выходе элемента ИЛИ-НЕ 8 будет сформировано единичное значение флага нуля (флаг нулевых символов) FZ=1, по которому по тактовому сигналу С проводится синхронная установка в нулевое состояние всех триггеров 10, 10, …, 10 и разрешается прием следующего массива входных данных D1, D2, …, DN во входной регистр 1.
При всех нулевых символах входных данных D1, D2, …, DN в устройстве также на всех разрядах указателей старших символов U1, U2, …, UW формируются нулевые значения, формируется флаг нуля FZ=1 на выходе элемента ИЛИ-НЕ 8 и также разрешается прием следующего массива входных данных D1, D2, …, DN во входной регистр 1.
Предлагаемое устройство работает следующим образом.
1
2
N
1
2
N
При подаче единичного сигнала CLR на вход начальной установки устройства 14 в нулевое состояние устанавливаются входной регистр 1, группа из D-триггеров 10, 10, …, 10 и выходной буфер 12. При этом на инверсных выходах триггеров 10, 10, …, 10 будут установлены единичные значения, на выходах регистра 1 будут установлены нулевые значения, на всех разрядах внутренней шины маски символов М и на всех разрядах указателей старших символов U1, U2, …, UW также будут сформированы нулевые значения, а флаг нуля примет единичное значение FZ=1.
1
2
N
1
2
N
1
2
N
1
2
N
По тактовому сигналу С на внешнем входе 15 проводится запись первых входных данных D1, D2, …, DN в регистр 1, выходы которого образуют внутреннюю шину данных DD, к которой подключены по символам соответствующие входы первой группы элементов ИЛИ 2, 2, …, 2. Далее на выходах первой группы элементов ИЛИ 2, 2, …, 2 будут установлены единичные значения для ненулевых символов, и так как инверсных выходах триггеров 10, 10, …, 10 также установлены единичные значения, то на внутренней шине маски М сформируются единичные значения соответствующие всем ненулевым символам входного массива (на выходах первой группы из N элементов И 3, 3, …, 3).
Сигналы с выходов внутренней шины маски М являются входами запросов для многовыходного блока приоритета 4, который позволяет определить среди N входов запроса не только сигнал с наивысшим приоритетом, но также определить сигналы со вторым, третьим, W-м по старшинству приоритетами.
1
2
W
В соответствии со значениями N разрядов маски символов М в W каскадах 4, 4, …, 4 многовыходного блока приоритета формируются W групп соответствующего ранга приоритета на W внутренних шинах указателей старших символов U1, U2, …, UW по (N-i+1) разрядов в каждой i-ой шине Ui. При этом в каждой шине Ui будет установлено значение в единичном кодировании в виде унитарного кода «1 из N» в соответствии с приоритетом ненулевых символов, начиная со старших символов. Выходы группы с меньшим номером имеют высший приоритет, а старший разряд в группе имеет старший приоритет.
11
12
16
1N
1
1
11
12
14
1(N-2)
11
12
15
1(N-1)
16
1N
16
1N
11
12
16
Сигналы с внутренней шины маски символов М поступают на входы запроса A, А, …, A (А) первого каскада 4. В первом каскаде 4 на выходах группы элементов ИЛИ 5, 5, …, 5 (5), объединенных в цепочку, входной код запросов преобразуется в код «00…011..1», где левая (старшая) единица соответствует высшему приоритету (старшему ненулевому символу). Далее на выходе только одного элемента запрета И с одним инверсным входом 6, 6, …, 6 (6), на входы которого поданы значения «01», формируется единичное значение, указывающее на запрос с высшим приоритетом (старший ненулевой символ), а на остальных выходах будет установлено нулевое значение. Если установлен запрос с высшим приоритетом A (А), то единичное значение устанавливается на выходе старшего указателя U (U). Таким образом, на выходах U, U, …, U будет установлено значение в единичном кодировании в виде унитарного кода «1 из N» соответствующее запросу с наивысшим приоритетом (первому старшему ненулевому символу).
11
12
15
11
12
14
16
11
12
15
16
11
12
15
2
11
12
15
21
22
25
2
21
22
25
Далее так как на первые входы элементов И 7, 7, …, 7 с выходов элементов ИЛИ 5, 5, …, 5 и старшего запроса A поступает код «00…011..1», а на вторые входы входные сигналы запроса A, А, …, А, кроме старшего запроса A, то выходах S, S, …, S запроса в следующий второй каскад 4 будут установлены запросы с «исключенным» запросом с высшим приоритетом. Далее сигналы запросов S, S, …, S поступают на входы запроса А, А, …, А второго каскада 4, в котором аналогично на выходах U, U, …, U будет установлено значение в единичном кодировании в виде унитарного кода «1 из N» соответствующее запросу со вторым приоритетом (второму старшему ненулевому символу). Затем формируется результат в виде унитарного кода «1 из N» в третьем, четвертом, W-м каскадах, соответствующих следующим ненулевым символам в порядке старшинства.
1
2
W
Далее в соответствии с приоритетами на W внутренних шинах U1, U2, …, UW указателей старших символов W коммутаторов блока коммутаторов данных 11, 11, …, 11 выбирают до W ненулевых символов по k разрядов и передают их на входы выходного буфера 12.
1
2
(N-1)
1
2
N
Одновременно на выходах второй группы из (N-1) элементов ИЛИ 9, 9, …, 9 формируются единичные значения соответствующие выбранным ненулевым символам, которые поступают на входы разрешения СЕ синхронных D-триггеров 10, 10, …, 10.
1
2
N
По следующему тактовому сигналу С проводится запись выбранных W ненулевых символов в выходной буфер 12 и выдача на внешние выходы Q устройства, а также изменение состояния D-триггеров 10, 10, …, 10 на единичное значение при соответствующем единичном сигнале разрешения работы СЕ=1.
1
2
N
1
2
N
Далее по нулевым значениям на выходах триггеров 10, 10, …, 10 блокируются выбранные и переданные символы - обнуляются соответствующие разряды в маске символов М (в первой группе из N элементов И 3, 3, …, 3) и аналогично проводится выборка следующих W ненулевых символов для передачи в выходной буфер 12 и выдача на внешние выходы Q устройства.
1
2
N
Далее аналогично по каждому тактовому сигналу С проводится запись выбранных очередных W ненулевых символов в выходной буфер 12, а также изменение состояния D-тригтеров 10, 10, …, 10 на единичное значение при соответствующем единичном сигнале разрешения работы СЕ=1.
1
2
N
Одновременно в зависимости от наличия не выбранных ненулевых символов или их отсутствия формируется флаг нуля соответственно FZ=0 или FZ=1 (на выходе элемента ИЛИ-НЕ 8). При отсутствии не выбранных ненулевых символов и сформированном единичном значении флага нуля FZ=1 проводится синхронная установка в нулевое состояние всех триггеров 10, 10, …, 10 и по следующему тактовому сигналу С проводится запись следующего «нового» массива входных данных D1, D2, …, DN во входной регистр 1.
Далее проводится формирование групп по W ненулевых символов по k разрядов в соответствии с рассмотренным выше алгоритмом работы для «нового» массива данных.
Формирование групп по W ненулевых k разрядных символов и соответствующих значений N разрядной маски М, запись в выходной буфер 12 и выдача на внешние выходы Q устройства проводится за количество тактов кратное количеству W ненулевых символов в массиве входных данных.
Таким образом, в канал передачи на внешние выходы устройства 16 поступают:
- N разрядов маски символов QM,
- разряды данных выбранных приоритетных W ненулевых символов по k разрядов QD.
Выходной буфер 12 может быть реализован как регистр или как буфер FIFO. Блок коммутаторов данных 14 может быть реализован на матрице мультиплексоров.
Приведенное устройство для компрессии данных может быть эффективно применено в системах регистрации, сбора и обработки данных без потери информации в режиме реального времени в физических экспериментах.
В результате предлагаемое устройство позволяет экономить объем памяти, повышать эффективность использования ресурсов с одновременным уменьшением времени передачи данных, за счет исключения из входных данных нулевых символов.
Таким образом, вышеизложенные сведения позволяют сделать вывод, что предлагаемое устройство обеспечивает компрессию входных данных без потерь, обладает регулярностью узлов и связей, при этом упрощается конструкция и, следовательно, устройство соответствует заявляемому техническому результату - простота реализации с одновременным уменьшением времени передачи данных, повышение информационной вместимости без потерь информации за счет сокращения необходимого объема памяти для хранения последовательности двоичных символов.