Varicode

Varicode is a self-synchronizing code for use in PSK31. It supports all ASCII characters, but the characters used most frequently in English have shorter codes. The space between characters is indicated by a 00 sequence, an implementation of Fibonacci coding. Originally created for speeding up real-time keyboard-to-keyboard exchanges over low bandwidth links. Varicode is freely available.[1][2][3]

Limitations

  • Varicode provides somewhat weaker compression in languages other than English that use same characters as in English.

Varicode table

Control characters

VaricodeOctDecHexAbbrDescription
1010101011000000NULNull character
1011011011001101SOHStart of Header
1011101101002202STXStart of Text
1101110111003303ETXEnd of Text
1011101011004404EOTEnd of Transmission
1101011111005505ENQEnquiry
1011101111006606ACKAcknowledgment
1011111101007707BELBell
1011111111010808BSBackspace
11101111011909HTHorizontal Tab
11101012100ALFLine feed
1101101111013110BVTVertical Tab
1011011101014120CFFForm feed
11111015130DCRCarriage return
1101110101016140ESOShift Out
1110101011017150FSIShift In
10111101110201610DLEData Link Escape
10111101010211711DC1Device Control 1 (XON)
11101011010221812DC2Device Control 2
11101011110231913DC3Device Control 3 (XOFF)
11010110110242014DC4Device Control 4
11011010110252115NAKNegative Acknowledgement
11011011010262216SYNSynchronous Idle
11010101110272317ETBEnd of Trans. Block
11011110110302418CANCancel
11011111010312519EMEnd of Medium
1110110111032261ASUBSubstitute
1101010101033271BESCEscape
1101011101034281CFSFile Separator
1110111011035291DGSGroup Separator
1011111011036301ERSRecord Separator
1101111111037311FUSUnit Separator
11101101011771277FDELDelete

Printable characters

VaricodeOctDecHexGlyph
10403220SP
1111111110413321!
1010111110423422"
1111101010433523#
1110110110443624$
10110101010453725%
10101110110463826&
1011111110473927'
111110110504028(
111101110514129)
101101111052422A*
111011111053432B+
1110101054442C,
110101055452D-
1010111056462E.
110101111057472F/
1011011106048300
1011110106149311
1110110106250322
1111111106351333
10111011106452344
10101101106553355
10110101106654366
11010110106755377
11010101107056388
11011011107157399
11110101072583A:
110111101073593B;
111101101074603C<
1010101075613D=
111010111076623E>
1010101111077633F?
 
VaricodeOctDecHexGlyph
10101111011006440@
11111011016541A
111010111026642B
101011011036743C
101101011046844D
11101111056945E
110110111067046F
111111011077147G
1010101011107248H
11111111117349I
111111101112744AJ
101111101113754BK
11010111114764CL
10111011115774DM
11011101116784EN
10101011117794FO
110101011208050P
1110111011218151Q
101011111228252R
11011111238353S
11011011248454T
1010101111258555U
1101101011268656V
1010111011278757W
1011101011308858X
1011110111318959Y
1010101101132905AZ
111110111133915B[
111101111134925C\
111111011135935D]
1010111111136945E^
101101101137955F_
 
VaricodeOctDecHexGlyph
10110111111409660`
10111419761a
10111111429862b
1011111439963c
10110114410064d
1114510165e
11110114610266f
101101114710367g
10101115010468h
110115110569i
1111010111521066Aj
101111111531076Bk
110111541086Cl
1110111551096Dm
11111561106En
1111571116Fo
11111116011270p
11011111116111371q
1010116211472r
1011116311573s
10116411674t
11011116511775u
111101116611876v
110101116711977w
1101111117012078x
101110117112179y
1110101011721227Az
10101101111731237B{
1101110111741247C|
10101101011751257D}
10110101111761267E~

Character lengths

Beginning with the single-bit code "1", valid varicode values may be formed by prepending a "1" or "10" to a shorter code. Thus, the number of codes of length n is equal to the Fibonacci number Fn. Varicode uses the 88 values of lengths up to 9 bits, and 40 of the 55 codes of length 10.

As transmitted, the codes are two bits longer due to the trailing delimiter 00.

ASCII characters by varicode length
BitsCodesCharacters
11SP
21e
32o t
43a i n
55LF CR l r s
68- c d f h m p u
713, . = A E I S T b g v w y
821HT ( ) 0 1 2 3 : B C D F G L M N O P R k x
934! " # $ ' * + / 4 5 6 7 8 9 ; < > H J K Q U V W X Y [ \ ] _ j q z |
1040NUL 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

References

  1. Steven L Karty, N5SK. "PSK31 Spec". ARRL Website. Retrieved 18 Dec 2010.
  2. Peter Martinez, G3PLX. "PSK31: A New Radio-Teletype Mode" (PDF). Retrieved 28 Sep 2017.
  3. ITU Working Party 5A. "ITU-R M.2034: Telegraphic Alphabet for Data Communication by Phase Shift Keying at 31 Baud in the Amateur and Amateur-Satellite Services". International Telecommunication Union (approved Feb, 2013). Retrieved 21 Feb 2013.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.