Lines Matching defs:image

5  * Queued image conversion support, with tiling and rotation.
12 #include <video/imx-ipu-image-convert.h>
21 * The image converter attempts to split up a conversion when
62 * output image. Tiles are numbered row major from top left to bottom
63 * right for both input and output image.
160 /* Source/destination image data and rotation mode */
187 /* where to place converted tile in dest image */
484 * Rotation and image offsets are out of scope.
490 * alignment, or pixel alignment due to image format
492 * alignment, or pixel alignment due to image format or rotator
855 struct ipu_image_convert_image *image)
863 if (image->type == IMAGE_CONVERT_IN) {
871 const unsigned int row = i / image->num_cols;
872 const unsigned int col = i % image->num_cols;
874 if (image->type == IMAGE_CONVERT_OUT)
875 tile = &image->tile[ctx->out_tile_map[i]];
877 tile = &image->tile[i];
879 tile->size = ((tile->height * image->fmt->bpp) >> 3) *
882 if (image->fmt->planar) {
887 (image->fmt->bpp * tile->width) >> 3;
889 (image->fmt->bpp * tile->height) >> 3;
895 image->type == IMAGE_CONVERT_IN ? "Input" : "Output",
902 image->type == IMAGE_CONVERT_IN ? "input" :
985 struct ipu_image_convert_image *image)
989 const struct ipu_image_pixfmt *fmt = image->fmt;
997 H = image->base.pix.height;
999 y_stride = image->stride;
1007 for (row = 0; row < image->num_rows; row++) {
1008 top = image->tile[tile].top;
1012 for (col = 0; col < image->num_cols; col++) {
1013 y_col_off = image->tile[tile].left;
1026 image->tile[tile].offset = y_off;
1027 image->tile[tile].u_off = u_off;
1028 image->tile[tile++].v_off = v_off;
1035 image->type == IMAGE_CONVERT_IN ?
1047 struct ipu_image_convert_image *image)
1051 const struct ipu_image_pixfmt *fmt = image->fmt;
1057 stride = image->stride;
1060 for (row = 0; row < image->num_rows; row++) {
1061 row_off = image->tile[tile].top * stride;
1063 for (col = 0; col < image->num_cols; col++) {
1064 col_off = (image->tile[tile].left * bpp) >> 3;
1068 image->tile[tile].offset = offset;
1069 image->tile[tile].u_off = 0;
1070 image->tile[tile++].v_off = 0;
1077 image->type == IMAGE_CONVERT_IN ?
1089 struct ipu_image_convert_image *image)
1091 if (image->fmt->planar)
1092 return calc_tile_offsets_planar(ctx, image);
1094 return calc_tile_offsets_packed(ctx, image);
1102 * avoid sampling beyond the edges of the input image for this tile's last
1291 struct ipu_image_convert_image *image,
1303 if (image->type == IMAGE_CONVERT_OUT) {
1312 width = image->tile[tile_idx[0]].height;
1313 height = image->tile[tile_idx[0]].width;
1314 stride = image->tile[tile_idx[0]].rot_stride;
1319 width = image->tile[tile_idx[0]].width;
1320 height = image->tile[tile_idx[0]].height;
1321 stride = image->stride;
1322 addr0 = image->base.phys0 +
1323 image->tile[tile_idx[0]].offset;
1325 addr1 = image->base.phys0 +
1326 image->tile[tile_idx[1]].offset;
1335 tile_image.pix.pixelformat = image->fmt->fourcc;
1338 if (image->fmt->planar && !rot_swap_width_height) {
1339 tile_image.u_offset = image->tile[tile_idx[0]].u_off;
1340 tile_image.v_offset = image->tile[tile_idx[0]].v_off;
1354 image->fmt->planar && image->fmt->uv_height_dec == 2)
1923 struct ipu_image *image,
1928 ic_image->base = *image;
1931 ic_image->fmt = get_format(image->pix.pixelformat);
1984 /* image converter does not handle fields */
2020 /* set input/output strides and image sizes */
2174 * only one tile (the whole image can be converted in a single
2261 * Carry out a single image conversion run. Only the physaddr's of the input
2262 * and output image buffers are needed. The conversion context must have
2366 /* Unprepare image conversion context */
2399 * "Canned" asynchronous single image conversion. Allocates and returns
2440 /* "Canned" synchronous single image conversion */