160 likes | 176 Views
Learn about Optimum Odd Detection Trees (OODT) for data compression and error detection. Dive into Huffman Coding, Hamming-Huffman Trees, ODC, and ODT methods for efficient encoding and noise protection. Explore algorithms and complexities. Discover future research directions.
E N D
Optimum Odd Detection Trees (OODT): Data Compression And Error Detection Integration Paulo Eustáquio Duarte Pinto (UERJ) Jayme L. Szwarcfiter (UFRJ) Fábio Protti (UFRJ)
The Data Compression (original) problem: Convert a input data stream into another with a smaller size. General solution: assign short codes to frequent events and long codes to rare events. Statistical Methods: Input: An alphabet A = (a1 , a2 ,... an) and a vector (f1 , f2 ,... fn) of corresponding frequencies Output: A Code C = (c1 , c2 ,... cn) for A which minimizes F = (d i . f i ), where d i is the length of c i.
The (original) solution: Huffman Coding (1952) Creates a prefix variable-size code, using a greedy algorithm with complexity O(n. log n). Huffman Trees: strictly binary rooted trees, with encoding in the leaves. Example: a1 = b f1 = 10 a2 = c f2 = 6 a3 = d f3 = 3 a4 = e f4 = 2 Code: b = 1 c = 01 d = 001 e = 000 b c e d
Error Detection/Correction on data transmission Noise Source Channel Decoding Reception Encoding Redundancy Encoded Message (Two different operations)
Integrating Compressing And Error Detection Proposal: Hamming-Huffman Trees (Hamming 1980) How to combine the source compression of Huffman encoding with the noise protection of Hamming encoding? Example: HHT which detects 1 bit error Code: b = 11 c = 0000 d = 0011 b c d
Integrating Compressing And Error Detection How much error can be detected? 1 bit - HHT k bits - k-HHT odd number of bits - ODT (Odd Detection Trees) < m = maximum length of encoding (?) Example of a 2-HHT Code: b = 0111 c = 0000 c b
Odd Detection Codes (ODC) and Odd Detection Trees - (ODT) ODC - a prefix variable size code where allodd number of changed bits can be detected. ODT: strictly binary rooted tree related to an ODC, with 3 kinds of nodes: internal nodes, encoding leaves and error leaves. Example: ODT which detects all odd changed bits Code: b = 11 c = 0000 d = 0011 b c d
Optimum Odd Detection Codes (OODC) and Optimum Odd Detection Trees (OODT) Basic Property: Any OODC, C, is equivalent to another, C’, where all encodings have even parity. Example: OODT where all encodings have even parity Code: b = 11 c = 0000 d = 0011 b c d
Optimum Odd Detection Trees (OODT) for equal frequencies Only two kinds of trees: subfull ODT or k-complete ODT (k = 2, 3) Subfull ODTs = ODTs of minimum height where all encoding leaves are at the same level. k-complete ODT: encoding leaves are on 2 levels; second level has only full ODT subtrees. Example of an subfull ODT for 3 encodings d b c
Optimum Odd Detection Trees (OODT) for equal frequencies Example of an 2-complete ODT for 5 encodings d e f b c The OODT is subfull iff n > (2/3).2d , d = log2 n , otherwise is 2-complete
OODT - general case - A DP algorithm Five basic properties in OODT/OODF: 1. Given 2 encodings, c1, c2, if (f1 f2 ) => (d1 d2 ) 2. An OODT can be seen as an OODF, if we “look” only to the levels below the first one where there is an encoding leaf. 3. In an OODT with n encoding leaves, the minimum depth of the leaf with greatest frequency is 2 and the maximum is (log2 n +1). 4. In an OODF with p encoding leaves and q roots (q > 1), the minimum depth of the leaf with greatest frequency is 0 and if (p > 2q), the maximum is ( log2 ((p - 2)/ (q - 1)) + 1) and not 1. 5. If we remove the encoding leaf with the greatest frequency, at the depth 0 of a OODF, F(p, q), (q > 1), the remaining forest F’(p-1, q-1) is an OODF.
OODT - general case - A DP Algorithm Example of an OODT for a1 = b f1 = 4 a2 = c f2 = 5 a3 = d f3 = 6 a4 = e f4 = 7 a5 = f f5 = 8 d e f c b Possible depths of leaf f: 2, 3, 4 Forest for (b, c, d, e) with 3 roots is OODF.
OODT - general case - A DP algorithm T(p, q) = 0, if (p q); , if (q = 0); Min{T(p - 1, q - 1), T(p - 1), q.2k-1 -1) + k.( fj) } 1 j p, 2 k dm(p, q), if (p > q) dm(p, q) = (log2 p +1), if q = 1 = ( log2 ((p - 2)/ (q - 1)) + 1) , if q > 1 We are interested in T(n, 1).
OODT- general case - A DP Algorithm Example: A b c d e f g h F 1 1 1 1 1 20 75 T(p,q) 1 0 - - - - - - 2 4 0 - - - - - 3 9 4 0 - - - - 4 12 8 4 0 - - - 5 19 12 8 4 0 - - 6 69 19 12 8 4 0 - 7 269 69 19 12 8 4 0 Complexity of the algorithm: O( n2 log2 n)
OODT- general case - A DP Algorithm Example: A b c d e f g h F 1 1 1 1 1 20 75 Code: b = 000000010 c = 000000001 d = 0000011 e = 0000101 f = 0000110 g = 0011 h = 11 An OODT subtree 2-complete with 5 leaves h g
OODT - Future Works 1. Characterization of Hamming-Huffman Trees 2. Characterization of k-Hamming-Huffman Trees 3. Determination of how much error can be detected 4. Comparative study HHT x Huffman Trees 5. Improvement of OODT algorithm(?)