In the intra prediction, a prediction block may be generated after a filter is applied to reference samples. At this time, it may be determined whether a filter should be applied to reference samples, depending on the intra prediction mode and/or the size of a current block.
A PU may have various sizes/shapes. For example, in case of the inter prediction, a PU may have sizes such as 2N×2N, 2N×N, N×2N, and N×N. In case of the intra prediction, a PU may have sizes such as 2N×2N and N×N (where N is an integer). The PU having a size of N×N may be set to be used in only a specific case. For example, the PU having a size of N×N may be set to be used for only a coding unit having the smallest size or may be set to be used for only the intra prediction. In addition to the PUs having the above-mentioned sizes, PUs having sizes such as N×mN, mN×N, 2N×mN, and mN×2N (where m<1) may be additionally defined and used.
Residual values (a residual block or a residual signal) between the generated prediction block and the original block are input to the transform module 115. The prediction mode information, the motion vector information, and the like used for the prediction are encoded along with the residual values by the entropy encoding module 130 and are transmitted to the decoder.
The transform module 115 performs a transform process on the residual block by transform units and generates transform coefficients. The transform unit in the transform module 115 may be a TU and may have a quad tree structure. The size of the transform unit may be determined within a predetermined range of largest and smallest sizes. The transform module 115 may transform the residual block using a DCT (Discrete Cosine Transform) and/or a DST (Discrete Sine Transform).