function z = yiq2rgb(x) % L = 2^ceil(log2(max(max(x)))); % you may replace 255 with L-1 L = 256; x = double(x); y = x(:,:,1); i = x(:,:,2); q = x(:,:,3); r = 1.0*y + 0.956*i + 0.620*q; g = 1.0*y - 0.272*i - 0.647*q; b = 1.0*y - 1.108*i + 1.705*q; z(:,:,1) = r; z(:,:,2) = g; z(:,:,3) = b; z = round(z); k = z > L-1; z(k) = L-1; k = z < 0; z(k) = 0; z = uint8(z);