示例#1
0
文件: analysis.c 项目: soywiz/nwebp
static int MBAnalyzeBestUVMode(VP8EncIterator* const it) {
  int best_alpha = -1;
  int best_mode = 0;
  const int max_mode = (it->enc_->method_ >= 3) ? MAX_UV_MODE : 4;
  int mode;
  VP8MakeChroma8Preds(it);
  for (mode = 0; mode < max_mode; ++mode) {
    const int alpha = VP8CollectHistogram(it->yuv_in_ + U_OFF,
                                          it->yuv_p_ + VP8UVModeOffsets[mode],
                                          16, 16 + 4 + 4);
    if (alpha > best_alpha) {
      best_alpha = alpha;
      best_mode = mode;
    }
  }
  VP8SetIntraUVMode(it, best_mode);
  return best_alpha;
}
示例#2
0
static int MBAnalyzeBestUVMode(VP8EncIterator* const it) {
    int best_alpha = DEFAULT_ALPHA;
    int best_mode = 0;
    const int max_mode = (it->enc_->method_ >= 3) ? MAX_UV_MODE : 4;
    int mode;
    VP8MakeChroma8Preds(it);
    for (mode = 0; mode < max_mode; ++mode) {
        VP8Histogram histo = { { 0 } };
        int alpha;
        VP8CollectHistogram(it->yuv_in_ + U_OFF,
                            it->yuv_p_ + VP8UVModeOffsets[mode],
                            16, 16 + 4 + 4, &histo);
        alpha = GetAlpha(&histo);
        if (IS_BETTER_ALPHA(alpha, best_alpha)) {
            best_alpha = alpha;
            best_mode = mode;
        }
    }
    VP8SetIntraUVMode(it, best_mode);
    return best_alpha;
}