Method of and apparatus for scaling data arrays
AssigneeArm Limited
InventorsMichal Bogusz, Erik Persson
Life of this patent
Estimating the term…
Abstract
A scaling apparatus for scaling data arrays, such as images, comprises first horizontal scaling stage circuitry operable to scale a data array input to the scaling apparatus in the horizontal direction, one or more line memories for storing horizontal lines for a data array, wherein the or each line memory is for storing a horizontal line of data for the data array, vertical scaling stage circuitry operable to read data stored in the one or more line memories and to scale the read data in the vertical direction, and second horizontal scaling stage circuitry operable to scale a data array in the horizontal direction.
Claims19
A method of scaling a data array using a scaling apparatus that comprises one or more line memories, wherein the or each line memory is for storing a horizontal line of data for a data array, the method comprising:
- determining whether a horizontal size of an input data array is larger than the size of a line memory of the one or more line memories;
- performing a first horizontal scaling to downscale the input data array in the horizontal direction when it is determined that the horizontal size of the input data array is larger than the size of a line memory of the one or more line memories, thereby forming a horizontally scaled data array;
- storing horizontal lines of data for the horizontally scaled data array in the one or more line memories;
- reading stored data corresponding to the horizontally scaled data array from the one or more line memories and performing vertical scaling on the read data to scale the horizontally scaled data array in the vertical direction to form a vertically scaled data array;
- and
- selectively performing second horizontal scaling on the vertically scaled data array to scale the vertically scaled data array in the horizontal direction to form an output data array;
- and
- outputting the output data array.
A scaling apparatus for scaling data arrays comprising:
- first horizontal scaling stage circuitry operable to scale a data array input to the scaling apparatus in the horizontal direction;
- one or more line memories for storing horizontal lines for a data array received from the first horizontal scaling stage circuitry, wherein the or each line memory is for storing a horizontal line of data for the data array;
- vertical scaling stage circuitry operable to read data stored in the one or more line memories and to scale the read data in the vertical direction;
- and
- second horizontal scaling stage circuitry operable to scale in the horizontal direction a data array received from the vertical scaling stage circuitry;
- wherein the scaling apparatus comprises determination circuitry operable to determine whether the horizontal size of the input data array is larger than the size of a line memory, and wherein the first horizontal scaling stage circuitry is operable to downscale the input data array in the horizontal direction when it is determined that the horizontal size of the input data array is larger than the size of a line memory.
A non-transitory computer readable storage medium storing computer software code which when executing on a processor performs a method of scaling a data array using a scaling apparatus that comprises one or more line memories, wherein the or each line memory is for storing a horizontal line of data for a data array comprising:
- determining whether a horizontal size of an input data array is larger than the size of a line memory of the one or more line memories;
- performing a first horizontal scaling to downscale the input data array in the horizontal direction when it is determined that the horizontal size of the input data array is larger than the size of a line memory of the one or more line memories, thereby forming a horizontally scaled data array;
- storing horizontal lines of data for the horizontally scaled data array in the one or more line memories;
- reading stored data corresponding to the horizontally scaled data array from the one or more line memories and performing vertical scaling on the read data to scale the horizontally scaled data array in the vertical direction to form a vertically scaled data array;
- and
- selectively performing second horizontal scaling on the vertically scaled data array to scale the vertically scaled data array in the horizontal direction to form an output data array;
- and
- outputting the output data array.
Dependencies are inferred from the claim text.