• Home
  • Raw
  • Download

Lines Matching full:tile

25  * tile (but taking care to pass the full frame stride length to
27 * to convert each tile back-to-back when possible (see note below
42 * reusable temporary tile buffer and then rotating with the 8x8
58 * With rotation or flipping, tile order changes between input and
93 /* dimensions of one tile */
103 /* start Y or packed offset of this tile */
105 /* offset from start to tile in U plane, for planar formats */
107 /* offset from start to tile in V plane, for planar formats */
123 struct ipu_image_tile tile[MAX_TILES]; member
182 /* next tile to process */
184 /* where to place converted tile in dest image */
187 /* mask of completed EOF irqs at every tile conversion */
403 * Also determine the number of tiles necessary to guarantee that no tile
443 * we were converting with a single tile. The bottom right output pixel in calc_image_resize_coefficients()
528 * Limit input seam position to make sure that the downsized input tile in find_best_seam()
563 * start the input tile at, 19.13 fixed point. in find_best_seam()
600 * Tile left edges are required to be aligned to multiples of 8 bytes
612 * Tile top edge alignment is only limited by chroma subsampling.
664 * tiles are in a row, and output tile top position and height are set.
678 in_tile = &in->tile[tile_idx]; in fill_tile_column()
679 out_tile = &out->tile[ctx->out_tile_map[tile_idx]]; in fill_tile_column()
697 * tiles are in a column, and output tile left position and width are set.
710 in_tile = &in->tile[tile_idx]; in fill_tile_row()
711 out_tile = &out->tile[ctx->out_tile_map[tile_idx]]; in fill_tile_row()
729 * top / left pixels of each tile.
865 /* Up to 4096x4096 input tile size */ in calc_tile_dimensions()
871 struct ipu_image_tile *tile; in calc_tile_dimensions() local
876 tile = &image->tile[ctx->out_tile_map[i]]; in calc_tile_dimensions()
878 tile = &image->tile[i]; in calc_tile_dimensions()
880 tile->size = ((tile->height * image->fmt->bpp) >> 3) * in calc_tile_dimensions()
881 tile->width; in calc_tile_dimensions()
884 tile->stride = tile->width; in calc_tile_dimensions()
885 tile->rot_stride = tile->height; in calc_tile_dimensions()
887 tile->stride = in calc_tile_dimensions()
888 (image->fmt->bpp * tile->width) >> 3; in calc_tile_dimensions()
889 tile->rot_stride = in calc_tile_dimensions()
890 (image->fmt->bpp * tile->height) >> 3; in calc_tile_dimensions()
898 tile->width, tile->height, tile->left, tile->top); in calc_tile_dimensions()
900 if (!tile->width || tile->width > max_width || in calc_tile_dimensions()
901 !tile->height || tile->height > max_height) { in calc_tile_dimensions()
902 dev_err(priv->ipu->dev, "invalid %s tile size: %ux%u\n", in calc_tile_dimensions()
904 "output", tile->width, tile->height); in calc_tile_dimensions()
913 * Use the rotation transformation to find the tile coordinates
914 * (row, col) of a tile in the destination frame that corresponds
915 * to the given tile coordinates of a source frame. The destination
916 * coordinate is then converted to a tile index.
969 * Fill the out_tile_map[] with transformed destination tile indeces.
974 unsigned int row, col, tile = 0; in calc_out_tile_map() local
978 ctx->out_tile_map[tile] = in calc_out_tile_map()
980 tile++; in calc_out_tile_map()
991 unsigned int row, col, tile = 0; in calc_tile_offsets_planar() local
1009 top = image->tile[tile].top; in calc_tile_offsets_planar()
1014 y_col_off = image->tile[tile].left; in calc_tile_offsets_planar()
1030 image->tile[tile].offset = y_off; in calc_tile_offsets_planar()
1031 image->tile[tile].u_off = u_off; in calc_tile_offsets_planar()
1032 image->tile[tile++].v_off = v_off; in calc_tile_offsets_planar()
1056 unsigned int row, col, tile = 0; in calc_tile_offsets_packed() local
1065 row_off = image->tile[tile].top * stride; in calc_tile_offsets_packed()
1068 col_off = (image->tile[tile].left * bpp) >> 3; in calc_tile_offsets_packed()
1072 image->tile[tile].offset = offset; in calc_tile_offsets_packed()
1073 image->tile[tile].u_off = 0; in calc_tile_offsets_packed()
1074 image->tile[tile++].v_off = 0; in calc_tile_offsets_packed()
1104 * Either round to closest for the next tile's first pixel to minimize seams
1106 * avoid sampling beyond the edges of the input image for this tile's last
1122 * Slightly modify resize coefficients per tile to hide the bilinear
1123 * interpolator reset at tile borders, shifting the right / bottom edge
1143 in_tile = &ctx->in.tile[tile_idx]; in calc_tile_resize_coefficients()
1144 out_tile = &ctx->out.tile[ctx->out_tile_map[tile_idx]]; in calc_tile_resize_coefficients()
1178 in_tile = &ctx->in.tile[tile_idx]; in calc_tile_resize_coefficients()
1179 out_tile = &ctx->out.tile[ctx->out_tile_map[tile_idx]]; in calc_tile_resize_coefficients()
1200 in_tile = &ctx->in.tile[tile_idx]; in calc_tile_resize_coefficients()
1201 out_tile = &ctx->out.tile[ctx->out_tile_map[tile_idx]]; in calc_tile_resize_coefficients()
1235 in_tile = &ctx->in.tile[tile_idx]; in calc_tile_resize_coefficients()
1236 out_tile = &ctx->out.tile[ctx->out_tile_map[tile_idx]]; in calc_tile_resize_coefficients()
1298 unsigned int tile) in init_idmac_channel() argument
1308 tile_idx[0] = ctx->out_tile_map[tile]; in init_idmac_channel()
1311 tile_idx[0] = tile; in init_idmac_channel()
1316 width = image->tile[tile_idx[0]].height; in init_idmac_channel()
1317 height = image->tile[tile_idx[0]].width; in init_idmac_channel()
1318 stride = image->tile[tile_idx[0]].rot_stride; in init_idmac_channel()
1323 width = image->tile[tile_idx[0]].width; in init_idmac_channel()
1324 height = image->tile[tile_idx[0]].height; in init_idmac_channel()
1327 image->tile[tile_idx[0]].offset; in init_idmac_channel()
1330 image->tile[tile_idx[1]].offset; in init_idmac_channel()
1343 tile_image.u_offset = image->tile[tile_idx[0]].u_off; in init_idmac_channel()
1344 tile_image.v_offset = image->tile[tile_idx[0]].v_off; in init_idmac_channel()
1383 static int convert_start(struct ipu_image_convert_run *run, unsigned int tile) in convert_start() argument
1390 unsigned int dst_tile = ctx->out_tile_map[tile]; in convert_start()
1396 dev_dbg(priv->ipu->dev, "%s: task %u: starting ctx %p run %p tile %u -> %u\n", in convert_start()
1397 __func__, chan->ic_task, ctx, run, tile, dst_tile); in convert_start()
1404 dest_width = d_image->tile[dst_tile].height; in convert_start()
1405 dest_height = d_image->tile[dst_tile].width; in convert_start()
1407 dest_width = d_image->tile[dst_tile].width; in convert_start()
1408 dest_height = d_image->tile[dst_tile].height; in convert_start()
1411 row = tile / s_image->num_cols; in convert_start()
1412 col = tile % s_image->num_cols; in convert_start()
1420 __func__, s_image->tile[tile].width, in convert_start()
1421 s_image->tile[tile].height, dest_width, dest_height, rsc); in convert_start()
1425 s_image->tile[tile].width, in convert_start()
1426 s_image->tile[tile].height, in convert_start()
1437 IPU_ROTATE_NONE, false, tile); in convert_start()
1442 IPU_ROTATE_NONE, true, tile); in convert_start()
1446 ctx->rot_mode, true, tile); in convert_start()
1450 IPU_ROTATE_NONE, false, tile); in convert_start()
1457 ctx->rot_mode, false, tile); in convert_start()
1627 ctx->in.tile[cur_tile].width != ctx->in.tile[next_tile].width || in ic_settings_changed()
1628 ctx->in.tile[cur_tile].height != ctx->in.tile[next_tile].height || in ic_settings_changed()
1629 ctx->out.tile[cur_tile].width != ctx->out.tile[next_tile].width || in ic_settings_changed()
1630 ctx->out.tile[cur_tile].height != ctx->out.tile[next_tile].height) in ic_settings_changed()
1676 * not done, place the next tile buffers. in do_tile_complete()
1683 src_tile = &s_image->tile[ctx->next_tile]; in do_tile_complete()
1685 dst_tile = &d_image->tile[dst_idx]; in do_tile_complete()
1707 src_tile = &s_image->tile[ctx->next_tile + 1]; in do_tile_complete()
1709 dst_tile = &d_image->tile[dst_idx]; in do_tile_complete()
1722 ctx->eof_mask = 0; /* clear EOF irq mask for next tile */ in do_tile_complete()
2178 * only one tile (the whole image can be converted in a single in ipu_image_convert_prepare()
2182 * for every tile, and therefore would have to be updated for in ipu_image_convert_prepare()
2186 * sized tiles or different resizing coefficients per tile in ipu_image_convert_prepare()
2193 if (ctx->in.tile[i].width != ctx->in.tile[0].width || in ipu_image_convert_prepare()
2194 ctx->in.tile[i].height != ctx->in.tile[0].height || in ipu_image_convert_prepare()
2195 ctx->out.tile[i].width != ctx->out.tile[0].width || in ipu_image_convert_prepare()
2196 ctx->out.tile[i].height != ctx->out.tile[0].height) { in ipu_image_convert_prepare()
2215 unsigned long intermediate_size = d_image->tile[0].size; in ipu_image_convert_prepare()
2218 if (d_image->tile[i].size > intermediate_size) in ipu_image_convert_prepare()
2219 intermediate_size = d_image->tile[i].size; in ipu_image_convert_prepare()