IP Library Granted Patent US 9,819,951
Granted Patent B2
US 9,819,951 · App. 14/432,896 · Granted Nov 14, 2017

Image processing method, devices and system

Inventor: Christian Markus Makela (Tampere, FI)
Assignee: Nokia Technologies Oy
H04N19/436G06F17/145G06F17/148G06T1/20H04N19/42H04N19/63H04N19/635H04N19/645
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,819,951
App. No.
14/432,896
Granted
Nov 14, 2017
Kind
B2
Abstract

The invention relates to methods, devices, systems and computer program products where input image data is received for processing in a computer system, a first transform is carried out to the input image data, the transform being done in a first direction with respect to the input image data, to obtain first transformed image data, a transposing operation is carried out to the first transformed image data to obtain first transposed image data, and a second transform is carried out to the first transposed image data, the second transform being done in a second direction with respect to the input image data, to obtain second transformed image data. The first transform and the second transform may be carried out in a processor in a parallel manner, and the transposing operation may be carried out at least partially using registers of the processor.

Claims (56)

1. A method, comprising:

receiving input image data,

performing a first transform to said input image data in a first direction to obtain first transformed image data,

performing a transposing operation to said first transformed image data by a matrix transposition or by rotation through a predefined angle to obtain first transposed image data, and

performing a second transform to said first transposed image data, said second transform in a second direction, to obtain second transformed image data from which an image is able to be formed, wherein the first transform and the second transform are two dimensional vertical discrete wavelet transforms (DWT) that use a vector computing architecture or a single instruction multiple data architecture (SIMD) to load and store data as a vector.

2. A method according to claim 1 , comprising:

performing said first transform and said second transform in a processor, wherein each of multiple columns of the said input image of the first transform and each of multiple columns of the said first transposed image data are processed in a parallel manner respectively, and

performing transposing operation at least partially using registers of said processor.

3. A method according to claim 2 , comprising:

performing said transposing operation by swapping element values of registers in register pairs iteratively such that individual element values are moved to transpose positions with respect to an image block being processed.

4. A method according to claim 1 , comprising:

performing a transposing operation to said second transformed image data.

5. A method according to claim 1 , wherein said input image data is an image block of an image, and said image is processed in a block-by-block manner, and said method comprises:

performing a block transposing operation to said second transformed image data with respect to the image.

6. A method according to claim 1 , comprising:

processing said second transformed image data thereby causing said input image data to be filtered, and

forming an inverse transform of the processed second transformed image data to obtain filtered image data.

7. A method according to claim 1 , wherein said first and second transforms are performed in a processor having the SIMD architecture.

8. An apparatus comprising at least one processor, and memory including computer program code, the memory and the computer program code configured to, with the at least one processor, cause the apparatus to perform at least the following:

receive input image data for processing in a computer system,

perform a first transform to said input image data, said transform in a first direction, to obtain first transformed image data,

perform a transposing operation to said first transformed image data by a matrix transposition or by a rotation through a predefined angle to obtain first transposed image data, and

perform a second transform to said first transposed image data, said second transform in a second direction, to obtain second transformed image data from which an image is able to be formed, wherein the first transform and the second transform are two dimensional vertical discrete wavelet transforms (DWT) that use a vector computing architecture or a single instruction multiple data architecture (SIMD) to load and store data as a vector.

9. An apparatus according to claim 8 , comprising computer program code to cause the apparatus to:

perform said first transform and said second transform in a processor , wherein each of multiple columns of the said input image of the first transform and each of multiple columns of the said first transposed image data are processed in a parallel manner respectively, and

perform said transposing operation at least partially using registers of said processor.

10. An apparatus according to claim 9 , comprising computer program code to cause the apparatus to:

perform said transposing operation by swapping element values of registers in register pairs iteratively such that individual element values are moved to transpose positions with respect to the image block being processed.

11. An apparatus according to claim 8 , comprising computer program code to cause the apparatus to:

perform a transposing operation to said second transformed image data.

12. An apparatus according to claim 8 , wherein said input image data is an image block of an image, and said image is processed in a block-by-block manner, and said apparatus comprises computer program code to cause the apparatus to:

perform a block transposing operation to said second transformed image data with respect to the image data.

13. An apparatus according to claim 8 , comprising computer program code to cause the apparatus to:

process said second transformed image data and thereby to cause said input image data to be filtered, and

form an inverse transform of the processed second transformed image data to obtain filtered image data.

14. An apparatus according to claim 8 , wherein said first and second transforms are arranged to be performed in a processor of the apparatus having the SIMD architecture.

15. A computer program product embodied on a non-transitory computer readable medium, comprising computer program code configured to, when executed on at least one processor, cause an apparatus or a system to:

receive input image data for processing in a computer system,

perform a first transform to said input image data, said transform in a first direction, to obtain first transformed image data,

perform a transposing operation to said first transformed image data by a matrix transposition or by a rotation through a predefined angle to obtain first transposed image data, and

perform a second transform to said first transposed image data, said second transform in a second direction, to obtain second transformed image data from which an image is able to be formed, wherein the first transform and the second transform are two dimensional vertical discrete wavelet transforms (DWT) that use a vector computing architecture or a single instruction multiple data architecture (SIMD) to load and store data as a vector.

16. A computer program product according to claim 15 , comprising computer program code to cause the apparatus or system to:

perform said first transform and said second transform in a processor, wherein each of multiple columns of the said input image of the first transform and each of multiple columns of the said first transposed image data are processed in a parallel manner respectively, and

perform said transposing operation at least partially using registers of said processor.

17. A computer program product according to claim 16 , comprising computer program code to cause the apparatus or system to:

perform said transposing operation by swapping element values of registers in register pairs iteratively such that individual element values are moved to transpose positions with respect to the image block being processed.

18. A computer program product according to claim 15 , comprising computer program code to cause the apparatus or system to:

perform a transposing operation to said second transformed image data.

19. A computer program product according to claim 15 , wherein said input image data is an image block of an image, and said image is processed in a block-by-block manner, and said computer program product comprises computer program code to cause the apparatus or system to:

perform a block transposing operation to said second transformed image data with respect to the image data.

20. A computer program product according to claim 15 , comprising computer program code to cause the apparatus or system to:

process said second transformed image data and thereby to cause said input image data to be filtered, and

form an inverse transform of the processed second transformed image data to obtain filtered image data.

21. A method according to claim 1 wherein performing a transposing operation comprises transposing columns of said first transformed image data to rows and rows of said first transformed image data to columns.

22. An apparatus according to claim 8 wherein performing a transposing operation comprises transposing columns of said first transformed image data to rows and rows of said first transformed image data to columns.

23. A computer program product according to claim 15 wherein performing a transposing operation comprises transposing columns of said first transformed image data to rows and rows of said first transformed image data to columns.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2017
From: NOKIA CORPORATION
To: NOKIA TECHNOLOGIES OY
Reel/Frame 040983/0829 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 1, 2015
From: MAKELA, CHRISTIAN MARKUS
To: NOKIA CORPORATION
Reel/Frame 035311/0941 →
Continuity (1)
Related Publication 20150281714A1 · Oct 1, 2015