Inline Image Rotation Using Tile-Based Buffering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing graphics hardware in computing devices, particularly mobile devices, faces challenges in efficiently rotating images due to the high resource requirements of large buffers, which consume significant silicon area and power, leading to increased costs and reduced battery life.

Innovation Solution

The implementation of an inline rotation mechanism within a graphics processing pipeline that partitions the source image into tiles, using a fetch unit to generate pixel addresses and store pixels in tile buffers, allowing for efficient rotation by processing and storing pixels on a tile-by-tile basis, reducing the need for large buffers and minimizing power consumption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If large buffers are utilized to rotate an image, then image rotation can be performed, but silicon area and power consumption increase

Engineering Contradiction:
Improveimage rotation capabilityVSAvoidsilicon area
Core Design Contradiction:
ProductivityVSArea of stationary object

Solution Approach 1:

The source image is divided into multiple tiles, and each tile is processed independently through the graphics processing pipeline. This segmentation allows the system to handle image rotation using small tile buffers instead of a large buffer for the entire image, thereby reducing silicon area requirements while maintaining rotation functionality

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transforms the traditional approach of rotating the entire image at once into processing individual tiles in a systematic sequence. By introducing the dimension of tile-by-tile processing with coordinated buffer management, the system achieves rotation functionality with reduced memory requirements

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If large buffers are utilized to rotate an image, then image rotation can be performed, but power consumption increases

Engineering Contradiction:
Improveimage rotation capabilityVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by stationary object

Solution Approach 1:

By dividing the image into tiles and processing them sequentially through the graphics pipeline, the system activates only the necessary buffer portions for each tile rather than maintaining large buffers in constant power state. This reduces overall power consumption while preserving image rotation functionality

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system uses only the minimum necessary buffer space required for processing individual tiles rather than allocating full buffer capacity for the entire image. This partial action approach reduces power consumption by keeping smaller memory structures active during processing

Inventive Principle:
Principle #16Partial or excessive action

3Productivity

If large buffers are utilized to rotate an image, then image rotation can be performed, but device cost increases

Engineering Contradiction:
Improveimage rotation capabilityVSAvoiddevice cost
Core Design Contradiction:
ProductivityVSEase of manufacture

Solution Approach 1:

The tile-based segmentation approach enables the use of smaller, less expensive buffer memory structures in the graphics hardware. By processing images in tiles rather than requiring full-image buffers, the patent reduces the amount of expensive silicon real estate needed, thereby lowering manufacturing costs while maintaining rotation functionality

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8797359B2Inline image rotation
Publication Date: 2014.08.05 APPLE INC
  • US8797359B2 patent drawing
  • US8797359B2 patent drawing
  • US8797359B2 patent drawing

AI summary

Methods and apparatus for performing an inline rotation of an image. The apparatus includes a rotation unit for reading pixels from a source image in an order based on a specified rotation to be performed. The source image is partitioned into multiple tiles, the tiles are processed based on where they will be located within the rotated image, and each tile is stored in a tile buffer. The target pixel addresses within a tile buffer are calculated and stored in a lookup table, and when the pixels are retrieved from the source image by the rotation unit, the lookup table is read to determine where to write the pixels within a corresponding tile buffer.