コード例 #1
0
ファイル: enc.c プロジェクト: siqiaochen/openjxr
void enc_tile(jxr_t *p, rect_t *tile)
{
    rect_t mb_window[2];
    rect_t is_tile_edge;
    uint32_t mby, mbx;

    enc_tile_header(p->out, &p->param);
    //printf("%d, %d, %d, %d\n", tile->left, tile->right, tile->top, tile->bottom);
    for (mby = tile->top; mby <= tile->bottom; mby++) {
        for (mbx = tile->left; mbx <= tile->right; mbx++) {
            //printf("(%3d, %3d)", mbx, mby);
            
            check_tile_edge(&is_tile_edge, mbx, mby, tile);
            calc_rect(mb_window, mbx, mby, p->param.mb_width, p->param.mb_height);
            //printf("%d, %d, %d, %d\n", mb_window[0].left, mb_window[0].right, mb_window[0].top, mb_window[0].bottom);
            enc_mb_stage1(p, mb_window, &is_tile_edge, mbx, mby);
            enc_mb_stage2(p, tile, &is_tile_edge, mbx, mby);
            //printf("\n");
            //if (mbx == 0 && mby == 1) exit(0);
        }
    }
    
    write_align(&p->out[0]);
    if (get_flag(p->param.flags, FREQUENCY_MODE_CODESTREAM_FLAG)) {
        write_align(&p->out[1]);
        write_align(&p->out[2]);
        write_align(&p->out[3]);
    }

    int mbs = (tile->right - tile->left + 1) * (tile->bottom - tile->top + 1);
    int tb = get_total_bits(p->out);
    //printf("|Total : %d[bits]|MBs : %d| %3.2f[bits/MB]|Comp. Ratio %f|\n", tb, mbs, (float)tb/mbs, (float)tb/(mbs*6144));
}
コード例 #2
0
ファイル: format.c プロジェクト: renatomaia/TIER
static int writer_align(lua_State* L)
{
	writer_t* writer	= lua_touserdata(L, 1);
	lua_Integer integer	= luaL_checkinteger(L, 2);
	write_align(writer, integer);
	return 0;
}