To generate DC-free channel code words composed of given number of symbols, based on non-DC-free code words, composed of fewer number of symbols, thereby reducing the mounting complexity for generating the code words.
Code words are selected respectively for each of a plurality of input symbol sets, and channel code words are generated, based on the selected code words and another input symbol set (added input symbol set). The channel code words define channel strings having a block digital sum of 0. In an embodiment, the channel code word is composed of two code words, which define channel strings with their respective sums being inverted codes, and the order of the two code words in the channel code word is determined by the added input symbol set.