libyuv

Bitmap(RGB)→VP8の変換にYUVを経由しなければいけないようで、まずはYUVへの変換をテスト。
libyuv/libyuv - Git at Google
各種RGB系、YUV系画像の相互変換、回転等が可能らしい。
とりあえずライブラリをビルドして、4x4のBitmapを変換してみる。

libyuv:

make -f linux.mk CC=gcc CXX=g++
#include <stdio.h>
#include <stdlib.h>

void bgr2yuv(){

  // 青 緑
  // 白 赤 の4x4 bitmap RGB24(BGRの順)
  unsigned char rgb[] = {
  	0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00,
  	0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00,
  	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF,
  	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00};

  int width = 4, height = 4;
  unsigned char *yuv;
  yuv = (char*)malloc(width*height+width*height/4*2);
  int uOffset = width*height, vOffset = width*height + (width*height)/4;
  FILE *yuvFile;

  RGB24ToI420( rgb, width*3, yuv, width,
  	yuv+uOffset, width/2, yuv+vOffset, width/2,
  	width, height);

  for (int j=0;j<height;j++) {
	for (int i=0; i<width;++i) {
		printf("%3d %3d(%d) %3d(%d)| ", yuv[j*width+i],
			yuv[uOffset+width/2*(int)(j/2)+(int)(i/2)],width/2*(int)(j/2)+(int)(i/2),
			yuv[vOffset+width/2*(int)(j/2)+(int)(i/2)],width/2*(int)(j/2)+(int)(i/2));
	}
	printf("\n");
  }

  	if ((yuvFile = fopen("test.yuv", "wb")) == NULL)
        printf("Error opening test.yuv\n");
    if (fwrite(yuv, width*height+width*height/4*2, 1, yuvFile) < 1)
    	printf("Error writing test.yuv");
    fclose(yuvFile);

  //result
/*
 41 240(0) 110(0)|  41 240(0) 110(0)| 144  54(1)  34(1)| 144  54(1)  34(1)|
 41 240(0) 110(0)|  41 240(0) 110(0)| 144  54(1)  34(1)| 144  54(1)  34(1)|
235 128(2) 128(2)| 235 128(2) 128(2)|  82 100(3) 212(3)|  82 100(3) 212(3)|
235 128(2) 128(2)| 235 128(2) 128(2)|  82 100(3) 212(3)|  16 100(3) 212(3)|
 青=(41  240  110)、緑=(144   54   34)、白=(235  128  128)、赤=(82  100  212)
*/

}

int main() {
	bgr2yuv();
	return 0;
}
gcc libyuvtest.c libyuv.a
a.exe
 41 240(0) 110(0)|  41 240(0) 110(0)| 144  54(1)  34(1)| 144  54(1)  34(1)|
 41 240(0) 110(0)|  41 240(0) 110(0)| 144  54(1)  34(1)| 144  54(1)  34(1)|
235 128(2) 128(2)| 235 128(2) 128(2)|  82 100(3) 212(3)|  82 100(3) 212(3)|
235 128(2) 128(2)| 235 128(2) 128(2)|  82 100(3) 212(3)|  16 100(3) 212(3)|