Введение

Varicode – это самосинхронизирующийся код, предназначенный для использования в PSK31. Он поддерживает все символы ASCII, но наиболее часто используемые в английском языке символы имеют более короткие коды. Пробел между символами обозначается последовательностью "00", что является реализацией кодирования Фибоначчи. Изначально Varicode был разработан для ускорения обмена сообщениями в реальном времени между пользователями через каналы связи с низкой пропускной способностью и распространяется бесплатно.

Ограничения

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

Знаки управления

Varicode Oct Dec Hex Abbr Description1010101011 000 0 00 NUL Символ NULL1011011011 001 1 01 SOH Начало заголовка1011101101 002 2 02 STX Начало текста1101110111 003 3 03 ETX Конец текста1011101011 004 4 04 EOT Конец передачи1101011111 005 5 05 ENQ Запрос1011101111 006 6 06 ACK Подтверждение1011111101 007 7 07 BEL Звонок1011111111 010 8 08 BS Возврат на один символ назад11101111 011 9 09 HT Горизонтальная табуляция11101 012 10 0A LF Перевод строки1101101111 013 11 0B VT Вертикальная табуляция1011011101 014 12 0C FF Перевод страницы11111 015 13 0D CR Возврат каретки1101110101 016 14 0E SO Сдвиг влево1110101011 017 15 0F SI Сдвиг вправо1011110111 020 16 10 DLE Символ экранирования канала передачи данных1011110101 021 17 11 DC1 Управление устройством 1 (XON)1110101101 022 18 12 DC2 Управление устройством 21110101111 023 19 13 DC3 Управление устройством 3 (XOFF)1101011011 024 20 14 DC4 Управление устройством 41101101011 025 21 15 NAK Отрицательное подтверждение1101101101 026 22 16 SYN Синхронный простой1101010111 027 23 17 ETB Конец блока передачи1101111011 030 24 18 CAN Отмена1101111101 031 25 19 EM Конец среды1110110111 032 26 1A SUB Замена1101010101 033 27 1B ESC Экранирование1101011101 034 28 1C FS Разделитель файлов1110111011 035 29 1D GS Разделитель групп1011111011 036 30 1E RS Разделитель записей1101111111 037 31 1F US Разделитель единиц1110110101 177 127 7F DEL Удаление

Печатные символы

Varicode Окт Дек Шест Глиф1 040 32 20 SP111111111 041 33 21 !101011111 042 34 22 "111110101 043 35 23 #111011011 044 36 24 $1011010101 045 37 25 %1010111011 046 38 26 &101111111 047 39 27 '11111011 050 40 28 (11110111 051 41 29 )101101111 052 42 2A *111011111 053 43 2B +1110101 054 44 2C ,110101 055 45 2D 1010111 056 46 2E .110101111 057 47 2F /10110111 060 48 30 010111101 061 49 31 111101101 062 50 32 211111111 063 51 33 3101110111 064 52 34 4101011011 065 53 35 5101101011 066 54 36 6110101101 067 55 37 7110101011 070 56 38 8110110111 071 57 39 911110101 072 58 3A :110111101 073 59 3B ;111101101 074 60 3C <1010101 075 61 3D =111010111 076 62 3E >1010101111 077 63 3F ? Varicode Окт Дек Шест Глиф1010111101 100 64 40 @1111101 101 65 41 A11101011 102 66 42 B10101101 103 67 43 C10110101 104 68 44 D1110111 105 69 45 E11011011 106 70 46 F11111101 107 71 47 G101010101 110 72 48 H1111111 111 73 49 I111111101 112 74 4A J101111101 113 75 4B K11010111 114 76 4C L10111011 115 77 4D M11011101 116 78 4E N10101011 117 79 4F O11010101 120 80 50 P111011101 121 81 51 Q10101111 122 82 52 R1101111 123 83 53 S1101101 124 84 54 T101010111 125 85 55 U110110101 126 86 56 V101011101 127 87 57 W101110101 130 88 58 X101111011 131 89 59 Y1010101101 132 90 5A Z111110111 133 91 5B [111101111 134 92 5C \111111011 135 93 5D ]1010111111 136 94 5E ^101101101 137 95 5F  Varicode Окт Дек Шест Глиф1011011111 140 96 60 '1011 141 97 61 a1011111 142 98 62 b101111 143 99 63 c101101 144 100 64 d11 145 101 65 e111101 146 102 66 f1011011 147 103 67 g101011 150 104 68 h1101 151 105 69 i111101011 152 106 6A j10111111 153 107 6B k11011 154 108 6C l111011 155 109 6D m1111 156 110 6E n111 157 111 6F o111111 160 112 70 p110111111 161 113 71 q10101 162 114 72 r10111 163 115 73 s101 164 116 74 t110111 165 117 75 u1111011 166 118 76 v1101011 167 119 77 w11011111 170 120 78 x1011101 171 121 79 y111010101 172 122 7A z1010110111 173 123 7B {110111011 174 124 7C 1010110101 175 125 7D }1011010111 176 126 7E ~

Длина символов

Начиная с однобитового кода "1", допустимые значения варикода могут быть сформированы добавлением префикса "1" или "10" к более короткому коду. Таким образом, количество кодов длины n равно числу Фибоначчи Fn. Varicode использует 88 значений длин до 9 бит и 40 из 55 кодов длины 10. Передаваемые коды на два бита длиннее из-за завершающего разделителя 00. + ASCII символы в зависимости от длины варикода:

Биты Коды Символы
1 1 SP
2 1 e
3 2 o t
4 3 a i n
5 5 LF CR l r s
6 8 c d f h m p u
7 13 , = A E I S T b g v w y
8 21 HT ( ) 0 1 2 3 : B C D F G L M N O P R k x
9 34 ! " # $ ' * + / 4 5 6 7 8 9 ; < > H J K Q U V W X Y [ \ ] j q z
10 40 NUL SOH STX ETX EOT ENQ ACK BEL BS VT FF SO SI DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EOM SUB ESC FS GS RS US % & ? @ Z ^ ` { } ~ DEL