(3, 0) 00110 (6, 0) 01100 (6, 1) 01101 01001 (7, 1) 01111 01011 (8, 1) 10001 010010 (9, 0) 10010 010111 (10, 1) 10101 0100101 (11, 1) 10111 0101110 (12, 0) 11000 01011101 (14, 1) 11101 01011100 (14, 0) 11100 demonstration, let us consider a significantly longer message, for instance the 200- bit-long sequence shown in Fig. 10.5. In this second example, I have purposefully overemphasized the bit-pattern redundancy at the beginning of the message to obtain 16 individual phrases of rapidly increasing size. The corresponding LZ codeword dictionary, as based on four-bit pointer addresses, is shown in Table 10.6. I have also continued the rest of the message by preferentially using the longest phrases previously identified and repeating them once in a while, again to emphasize redundancy. As a result, we obtain 34 phrases. Since each phrase corresponds to a five-bit LZ codeword (Table 10.6), the total LZ sequence length is 34 X 5 = 170 bits, as shown in Fig. 10.5. Thus, the LZ code has achieved a compression equal to 1 - 170/200 = 25% of the initial, 200- bit source message. From the codeword frequency analysis (Table 10.6), we can also calculate the entropy of the compressed-message source. As easily calculated from the table data, the result turns out to be H = 3.601 bit/word. Since the codeword length is L2 = 5 bits, this result corresponds to a coding efficiency of n = 3.601/5 = 70.03%. In this example, we have first generated a LZ codeword dictionary until the number of available pointer addresses was exhausted. We have then re-used the dictionary as a "static code" to process the rest of the message, which provided the compression effect. In reality, compression occurs even as the dictionary is generated and before memory- size exhaustion, but this effect is only observed in relatively long message sequences (see further). To emphasize, the LZ algorithm is not meant to be implemented as a static code past the point of memory saturation (although this remains a valid option), but to work as a dynamic code, regardl