code: public static int fromYCbCr(int y, int cb, int cr, int alpha) {
          int cbc = cb - YUV_OFFSET;
          int crc = cr - YUV_OFFSET;
          int r = y + crc + (crc >> 2) + (crc >> 3) + (crc >> 5);
          int g = y - ((cbc >> 2) + (cbc >> 4) + (cbc >> 5)) - ((crc >> 1) + (crc >> 3) + (crc >> 4) + (crc >> 5));
          int b = y + cbc + (cbc >> 1) + (cbc >> 2) + (cbc >> 6);
  
          /* Using float operations
          int r = (int) (y + 1.402 * (cr - YUV_OFFSET));
          int g = (int) (y - 0.344 * (cb - YUV_OFFSET) - 0.714 * (cr - YUV_OFFSET));
          int b = (int) (y + 1.772 * (cb - YUV_OFFSET));
          r = clamp(r);
          g = clamp(g);
          b = clamp(b);
          */
  
          return getARGB(r, g, b, alpha);
      }
docs: YCbCr conversion from: https://en.wikipedia.org/wiki/YUV
  
  @param y  - Y channel
  @param cb - CB channel
  @param cr - CR channel
  @return rgb