The goal of source coding is to compress the data generated by an information source. Data compression helps saving valuable resources such as transmission bandwidth and storage memory. Hence, coding a source by a code with minimum possible average codelength is more desirable. In many applications such as video compression, decoding has to be done without delay. This requirement is satisfied by employing prefix-free codes, i.e., codes in which no codeword is the prefix of another codeword. It is well known that the necessary and sufficient condition for the existence of a prefix-free code can be expressed by the Kraft inequality. This constraint on the codeword lengths makes the entropy as a lower bound on the average codeword length. Therefore, the performance of a code is usually evaluated by its redundancy, which is defined as the difference between the average codelength and the entropy. Regardless of the probability distribution of the source, the redundancy of the optimal prefix-free code is less than 1 bit per symbol. Due to the sensitivity of prefix-free codes to transmission error, fix-free codes are used in various applications, instead. In fix-free codes, no codeword is the prefix or suffix of any other codeword. In addition to their error resilience, fix-free codes enable bidirectional decidability of the streams of codewords. Therefore, fix-free codes are used in video standards such as H.263+ and MPEG-4. It has been shown that ?_(i=1)^n?2^(?-l?_i ) ?5/8 is the sufficient condition for the existence of a fix-free code for lengths (l_1,…,l_n ). The most important consequence of this sufficient condition is that the redundancy of the optimal fix-free code cannot be greater than 1.0817 bits per symbol. However, in general, decoding of fix-free codes requires two tables or two trees. This takes up twice as much memory as when decoding prefix-free codes. Hence, in order to benefit from the advantages of fix-free codes with limited memory, symmetric fix-free codes were introduced. In these codes, as the name implies, the codewords not only possess the fix-free property, but are also symmetric. However, the symmetry of the codewords is achieved at the cost of more redundancy. In this thesis, we show that for some sources, the symmetry property can impose a great amount of redundancy on the fix-free codes. In order to overcome this issue, in this thesis, we propose a new ltr" Key Words: Fix-Free Code, Symmetric Fix-Free Code, Quasi-Symmetric Fix-Free Code.