When upsampling, you have to deal with interpolation in order to predict missing pixels. As you do not know all 256*256 pixels with only 16*16 pixels, it uses some kind of "averaging" closest pixels to compute all pixels.
imresize uses bilinear interpolation by default. You can change to bicubic interpolation to have more "sharp" edges, but it will be blurred anyway. Nearest-neighbor interpolation will give you a "block" effect so no blur but big [16 16] squares. It is up to your choice. See documentation ofimresize:www.mathworks.com/help/images/ref/imresize.html
Yup. I know it works. Thanks for the quick response. This is a short version of the algorithm which I am implementing. And the whole algorithm revolves around resizing the image to 16X16 and the conversion to ycbcr. So not resizing is out of question.