코덱 쪽은 FPS와 I-Frame 정도만 알고 있는..
초보 개발자입니다...
다름이 아니라... RAW Video 데이터를 카메라에서 받아서... ( 임베디드 리눅스 인코딩 )
PC 프로그램에서 Render 해주는 프로젝트를 진행 중인데... ( WIN 응용 프로그램 디코딩 )
코덱 쪽은 문외한이라서..
감히 질문 드려봅니다 ㅠ.ㅠ (살려주세요.)
1920 x 1080 해상도의 30fps 정도 되는 .. 화면을
실시간 인코딩 & 디코딩 할때 최적의 코덱은 무엇일까요 ㅠ.ㅠ???
현재 구현은..
VP8 코덱을 이용 했습니다...
VP9와 x265 는 cpu 사용률이 높아서.. 실시간에 적합하지 않은 것 같고.... (백그라운드로 다른 시스템 어플이 같이 돌아 가고 있어요 ㅠ.ㅠ)
x264 vs xp8 중에 고민을 하다...
vp8 이 화질은 좀 더 떨어지지만.... x264 보다 인코딩 속도가 더 빠르다고 (cpu 점유율 낮음) ... 구글링으로 본거 같은데... ( 맞는 얘기인가요...???? )
혹시 다른 코덱 추천 해주실 수 있는것 있을까요....???
구글신의 도움으로... ( 아래 프리셋을 사용 하고 있는데... Fast & Normal & High ) 3가지 프리셋 버전을 구현하라고 하는데... 코덱 지식이 없어서 갑갑합니다..ㅠ.ㅠ
void KHVPX_Encoder::SetNormalCodecParameters(vpx_codec_enc_cfg_t* config, int width, int height)
{
config->rc_target_bitrate = width * height * config->rc_target_bitrate / config->g_w / config->g_h;
config->g_timebase.num = 1;
config->g_timebase.den = 1000;
config->g_w = width;
config->g_h = height;
config->g_pass = VPX_RC_ONE_PASS;
config->g_lag_in_frames = 0;
config->kf_min_dist = 10000;
config->kf_max_dist = 10000;
config->g_threads = (Cpu_Core > 2) ? 2 : 1;
config->g_profile = 2;
config->rc_min_quantizer = 20;
config->rc_max_quantizer = 30;
}
vpx_codec_err_t res = vpx_codec_encode(codec, img, frame_cnt, 1, flag, VPX_DL_REALTIME);
바쁘신대 긴글 읽어주셔서 감사합니다..
(샤나님 좋은 프로그램 감사합니다.... ^^;;;)
(고수님들 도와주시면... 샤나님께 꼭 후원 하겠습니다....)