IP Library Granted Patent US 7,388,996
Granted Patent B2
US 7,388,996 · App. 09/766,238 · Granted Jun 17, 2008

Method for filtering digital images, and a filtering device

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 7,388,996
App. No.
09/766,238
Granted
Jun 17, 2008
Kind
B2
Abstract

The invention relates to a method for reducing visual artefacts in a digital image, which is coded by blocks (B 1 , B 2 , B 3 , B 4 ) and then decoded. In the method filtering is performed to reduce visual artefacts due to a boundary (R 12 , R 13 , R 24 , R 34 ) between a current block and an adjacent block (B 1 , B 2 , B 3 , B 4 ). The filtering is performed after the current block (B 1 , B 2 , B 3 , B 4 ) is decoded and there is a boundary available for filtering between the current block and a previously decoded block.

Claims (112)

1. A method of encoding a digital image comprising a plurality of image blocks, the method comprising:

decoding a first encoded image block;

performing a filtering operation across a block boundary between the first decoded image block and a previously decoded image block adjacent to the first decoded image block such that the pixel value of at least one decoded pixel in the first decoded image block is modified by the filtering operation; and

performing a prediction for at least one pixel value of a second block, the second block adjacent to the first decoded image block, wherein the prediction is performed based on the modified pixel value of the first decoded image block by the filtering operation, wherein filtering is performed due to more than one boundary between the first decoded image block and previously decoded image blocks in a sequential boundary scanning order that is based on a scanning order used in the encoding process.

2. A method according to claim 1 , wherein the decoding of the first image block comprises performing motion compensated prediction with respect to a reference image.

3. A method according to claim 1 , wherein decoding of the first encoded image block comprises performing prediction with reference to a previously decoded image block adjacent to the first block.

4. A method according to claim 1 , wherein the filtering operation across the boundary between the first decoded image block and the previously decoded image block is performed immediately after the first image block is decoded.

5. A method according to claim 1 , wherein filtering operation across the boundary between the first decoded image block and a previously decoded image block adjacent to the first decoded image block is performed before performing the prediction for the second block.

6. A method according to claim 1 , wherein filtering is performed due to more than one boundary between the first decoded image block and previously decoded image blocks adjacent to the first decoded image block.

7. A method according to claim 6 , wherein filtering due to more than one boundary is performed sequentially on more than one boundary in a certain boundary scanning order.

8. A method according to claim 7 , wherein the order of filtering boundaries is selected such that a boundary to the left of the first decoded image block is filtered before a boundary to the top of the first decoded image block.

9. A method according to claim 1 , wherein image blocks, are grouped into macroblocks, and filtering is performed macroblock by macroblock according to a certain macroblock scanning order.

10. A method according to claim 9 , wherein filtering is performed for all boundaries within a macroblock before filtering to reduce visual artifacts is performed within the next macroblock in the macroblock scanning order.

11. A method according to claim 9 , wherein the digital image comprises a plurality of segments of image blocks and only boundaries between adjacent decoded image blocks that belong to the same segment are filtered.

12. A method according to claim 1 , wherein the digital image comprises a plurality of segments of image blocks and only boundaries between adjacent decoded image blocks that belong to the same segment are filtered.

13. A method according to claim 1 , wherein the prediction operation further comprises performing a prediction for at least one other pixel value of the second block based on a modified pixel value of a third block, the third block adjacent to the second image block, the modified pixel values of the third block obtained by a filtering operation performed across a block boundary between the third decoded image block and a previously decoded image block adjacent to the third block.

14. An encoder for encoding a digital image comprising a plurality of image blocks, the encoder configured to:

encode a first image block to form a first encoded image block;

decode the first encoded image block to form a first decoded image block;

the encoder comprising a filter arranged to perform a filtering operation across a block boundary between the first decoded image block and a previously decoded image block adjacent to the first decoded image block, such that a pixel value of at least one decoded pixel in the first decoded image block is modified by the filtering operation; and

the encoder further configured to perform a prediction for at least one pixel value of a second block, the second block adjacent to the first decoded image block, wherein the prediction is performed based on the modified pixel value of the first block by the filtering operation, wherein filtering is performed due to more than one boundary between the first decoded image block and previously decoded image blocks in a sequential boundary scanning order that is based on a scanning order used in the encoding process.

15. An encoder according to claim 14 , wherein the encoder is configured to encode the first image block by performing motion compensated prediction with respect to a reference image.

16. An encoder according to claim 14 , wherein the encoder is configured to encode the first image block by performing prediction with reference to a previously encoded image block adjacent to the first block.

17. An encoder according to claim 14 , wherein the filter is arranged to operate immediately after the first image block is decoded.

18. An encoder according to claim 14 , wherein the filter is arranged to operate due to more than one boundary between the first decoded image block and previously decoded image blocks adjacent to the first decoded image block.

19. An encoder according to claim 18 , wherein the filter is arranged to operate due to more than one boundary by filtering the boundaries sequentially in a certain boundary scanning order.

20. An encoder according to claim 14 , wherein the filter is arranged to use the modified pixel value due to at least one other boundary between decoded image blocks.

21. An encoder according to claim 14 , wherein image blocks are grouped into macroblocks, and the filter is arranged to filter the image macroblock by macroblock according to a certain macroblock scanning order.

22. An encoder according to claim 21 , the encoder further arranged to encode and subsequently decode the image blocks of a macroblock in a certain block scanning order.

23. An encoder according to claim 21 , wherein the filter is arranged to operate immediately after the first image block is decoded.

24. An encoder according to claim 21 , wherein the filter is arranged to operate due to more than one boundary between the first decoded image block and previously decoded image blocks adjacent to the first decoded image blocks.

25. An encoder according to claim 24 , wherein the filter is further arranged operate due to more than one boundary by filtering the boundaries sequentially in a certain boundary scanning order.

26. An encoder according to claim 21 , wherein the digital image comprises a plurality of segments of image blocks and the filter is arranged to operate due to boundaries between adjacent decoded image blocks that belong to the same segment.

27. An encoder according to claim 14 , wherein the digital image comprises a plurality of segments of image blocks and the filter is arranged to operate due to boundaries between adjacent decoded image blocks that belong to the same segment.

28. An encoder according to claim 14 , wherein the encoder is further configured to perform a prediction for at least one other pixel value of the second block based on a modified pixel value of a third block, the third block adjacent to the second image block, the modified pixel values of the third block obtained by a filtering operation performed across a block boundary between the third decoded image block and a previously decoded image block adjacent to the third block.

29. A decoder for decoding an encoded digital image comprising a plurality of encoded image blocks, the decoder configured to:

decode a first encoded image block to form a first decoded image block;

the decoder comprising a filter arranged to perform a filtering operation across a block boundary between the first decoded image block and a previously decoded image block adjacent to the first decoded image block, such that pixel value of at least one decoded pixel in the first decoded image block is modified by the filtering operation; and

the decoder further configured to perform a prediction for at least one pixel value of a second block, the second block adjacent to the first decoded image block, wherein the prediction is performed based on the modified pixel value of the first block by the filtering operation, wherein filtering is performed due to more than one boundary between the first decoded image block and previously decoded image blocks in a sequential boundary scanning order that is based on a scanning order used in the encoding process.

30. A decoder according to claim 29 , wherein the decoder is configured to decode the first image block by performing motion compensated prediction with respect to a reference image.

31. A decoder according to claim 29 , wherein the decoder is configured to decode the first encoded image block by performing a prediction with reference to a previously decoded image block adjacent to the first block.

32. A decoder according to claim 29 , wherein the filter is arranged to operate immediately after the first image block is decoded.

33. A decoder according to claim 29 , wherein the filter is arranged to operate due to more than one boundary between the first decoded image block and previously decoded image blocks adjacent to the first decoded image block.

34. A decoder according to claim 33 , wherein the filter is arranged to operate due to more than one boundary by filtering the boundaries sequentially in a certain boundary scanning order.

35. A decoder according to claim 29 , wherein the filter is arranged to use the modified pixel value when filtering due to at least one other boundary between decoded image blocks.

36. A decoder according to claim 29 , wherein the image blocks are grouped into macroblocks, each macroblock comprising a certain number of image blocks, and the filter is arranged to filter the image macroblock by macroblock according to a certain macroblock scanning order.

37. A decoder according to claim 36 , wherein the decoder is further arranged to decode the encoded image blocks of a macroblock in a certain block scanning order.

38. A decoder according to claim 36 , further arranged to decode all the encoded image blocks of a given macroblock in the macroblock scanning order before decoding the encoded image blocks of the next macroblock in the macroblock scanning order.

39. A decoder according to claim 36 , wherein the filter is arranged to operate immediately after the first encoded image block is decoded.

40. A decoder according to claim 39 , wherein the filter is arranged to operate due to more than one boundary between the first decoded image block and previously decoded image blocks adjacent to the first decoded image block.

41. A decoder according to claim 40 , wherein the filter is further arranged to operate due to more than one boundary by filtering the boundaries sequentially in a certain boundary scanning order.

42. A decoder according to claim 36 , wherein the digital image comprises a plurality of segments of image blocks and the filter is arranged to operate due to boundaries between adjacent decoded image blocks that belong to the same segment.

43. A decoder according to claim 29 , wherein the digital image comprises a plurality of segments of image blocks and the filter is arranged to operate due to boundaries between adjacent decoded image blocks that belong to the same segment.

44. A decoder according to claim 29 , wherein the decoder is further configured to perform a prediction for at least one other pixel value of the second block based on a modified pixel value of a third block, the third block adjacent to the second image block, the modified pixel values of the third block obtained by a filtering operation performed across a block boundary between the third decoded image block and a previously decoded image block adjacent to the third block.

45. A terminal device comprising an encoder for encoding a digital image comprising a plurality of image blocks, the encoder configured to:

encode a first image block to form a first encoded image block;

decode the first encoded image block to form a first decoded image block;

perform a filtering operation across a block boundary between the first decoded image block and a previously decoded image block adjacent to the first decoded image block, such that the pixel value of at least one decoded pixel in the first decoded image block is modified by the filtering operation; and

perform a prediction for at least one pixel value of a second block, the second block adjacent to the first decoded image block, wherein the prediction is performed based on the modified pixel value of the first block by the filtering operation, wherein filtering is performed due to more than one boundary between the first decoded image block and previously decoded image blocks in a sequential boundary scanning order that is based on a scanning order used in the encoding process.

46. A terminal device according to claim 45 , wherein the terminal device is a mobile terminal.

47. A terminal according to claim 45 , wherein the terminal device is a wireless terminal of a mobile communications system.

48. A storage medium comprising a computer program for operating a computer as an encoder for encoding a digital image comprising a plurality of image blocks, which are grouped into macroblocks, each macroblock comprising a certain number of image blocks, the computer program comprising:

program code for encoding a first image block to form a first encoded image block;

program code for decoding the first encoded image block to form a first decoded image block;

program code for implementing a filtering operation across a block boundary between the first decoded image block and a previously decoded image block adjacent to the first decoded image block, such that pixel value of at least one decoded pixel in the first decoded image block is modified by the filtering operation; and,

program code for performing a prediction for at least one pixel value of a second block, the second block adjacent to the first decoded image block,

wherein the prediction is performed based on the modified pixel value of the first block by the filtering operation, wherein filtering is performed due to more than one boundary between the first decoded image block and previously decoded image blocks in a sequential boundary scanning order that is based on a scanning order used in the encoding process.

49. A storage medium comprising a computer program for operating a computer as a decoder for decoding an encoded digital image, said encoded digital image comprising a plurality of encoded image blocks grouped into macroblocks, each macroblock comprising a certain number of image blocks, the computer program comprising:

program code for decoding a first encoded image block to form a first decoded image block;

program code for implementing a filtering operation across a block boundary between the first decoded image block and a previously decoded image block adjacent to the first decoded image block such that pixel value of at least one decoded pixel in the first decoded image block is modified by filtering operation; and

program code for performing a prediction for at least one pixel value of a second block, the second block adjacent to the first decoded image block, wherein the prediction is performed based on the modified pixel value of the first block by the filtering operation, wherein filtering is performed due to more than one boundary between the first decoded image block and previously decoded image blocks in a sequential boundary scanning order that is based on a scanning order used in the encoding process.

50. A terminal device comprising an encoder for encoding a digital image comprising a plurality of image blocks which are grouped into macroblocks, each macroblock comprising a certain number of image blocks, the encoder configured to:

encode a first image block to form a first encoded image block;

decode the first encoded image block to form a first decoded image block;

perform a filtering operation across a block boundary between the first decoded image block and a previously decoded image block adjacent to the first decoded image block, such that pixel value of at least one decoded pixel in the first decoded image block is modified by the filtering operation; and

perform a prediction for at least one pixel value of a second block, the second block adjacent to the first decoded image block, wherein the prediction is performed based on the modified pixel value of the first block by the filtering operation, wherein filtering is performed due to more than one boundary between the first decoded image block and previously decoded image blocks in a sequential boundary scanning order that is based on a scanning order used in the encoding process.

51. A terminal device according to claim 50 , wherein the terminal device is a mobile terminal.

52. A terminal according to claim 50 , wherein the terminal device is a wireless terminal of a mobile communications system.

53. A terminal device comprising a decoder for decoding an encoded digital image, said encoded digital image comprising a plurality of encoded image blocks, the decoder configured to:

decode a first encoded image block to form a first decoded image block;

perform a filtering operation across a block boundary between the first decoded image block and a previously decoded image block adjacent to the first decoded image block, such that pixel value of at least one decoded pixel in the first decoded image block is modified by the filtering operation; and

perform a prediction for at least one pixel value of a second block, the second block adjacent to the first decoded image block, wherein the prediction is performed based on the modified pixel value of the first block by the filtering operation, wherein filtering is performed due to more than one boundary between the first decoded image block and previously decoded image blocks in a sequential boundary scanning order that is based on a scanning order used in the encoding process.

54. A terminal device according to claim 53 , wherein the terminal device is a mobile terminal.

55. A terminal according to claim 53 , wherein the terminal device is a wireless terminal of a mobile communications system.

56. A terminal device comprising a decoder for decoding an encoded digital image, said encoded digital image comprising a plurality of encoded image blocks grouped into macroblocks, each macroblock comprising a certain number of image blocks, the decoder configured to:

decode a first encoded image block to form a first decoded image block;

perform a filtering operation across a block boundary between the first decoded image block and a previously decoded image block adjacent to the

first decoded image block such that pixel value of at least one decoded pixel in the first decoded image block is modified by the filtering operation; and

perform a prediction for at least one pixel value of a second block, the second block adjacent to the first decoded image block, wherein the prediction is performed based on the modified pixel value of the first block by the filtering operation, wherein filtering is performed due to more than one boundary between the first decoded image block and previously decoded image blocks in a sequential boundary scanning order that is based on a scanning order used in the encoding process.

57. A terminal device according to claim 56 , wherein the terminal device is a mobile terminal.

58. A terminal according to claim 56 , wherein the terminal device is a wireless terminal of a mobile communications system.

59. A method of decoding an encoded digital image comprising a plurality of image blocks, the method comprising:

decoding a first image block;

performing a filtering operation across a block boundary between the first decoded image block and a previously decoded image block such that the pixel value of at least one decoded pixel in the first decoded image block is modified by the filtering operation; and

performing a prediction for at least one pixel value of a second block, the second block adjacent to the first decoded image block, wherein the prediction is performed based on the modified pixel value of the first block by the filtering operation, wherein filtering is performed due to more than one boundary between the first decoded image block and previously decoded image blocks in a sequential boundary scanning order that is based on a scanning order used in the encoding process.

60. A method according to claim 59 , wherein the decoding of the first image block comprises performing motion compensated prediction with respect to a reference image.

61. A method according to claim 59 , wherein the decoding of the first image block comprises performing prediction with reference to a previously coded image block adjacent to the first block.

62. A method according to claim 59 , wherein the filtering operation across the boundary between the first decoded image block and the previously decoded image block is performed immediately after the first image block is decoded.

63. A method according to claim 59 , wherein the filtering operation across the boundary between the first decoded image block and the previously decoded image block is performed immediately before performing the prediction for the second block.

64. A method according to claim 59 , wherein the filtering operation is performed due to more than one boundary between the first decoded image block and previously decoded image blocks adjacent to the first decoded image block.

65. A method according to claim 59 , wherein the prediction operation further comprises performing a prediction for at least one other pixel value of the second block based on a modified pixel value of a third block, the third block adjacent to the second image block, the modified pixel values of the third block obtained by a filtering operation performed across a block boundary between the third decoded image block and a previously decoded image block adjacent to the third block.

66. A method according to claim 59 , wherein the image blocks are grouped into macroblocks, and the filtering operation between the first decoded image block and the previously decoded image block is performed for all boundaries within a macroblock before filtering is performed within the next macroblock in the scanning order.

67. A method according to claim 59 , wherein the digital image comprises a plurality of segments of image blocks and the filtering is performed due to boundaries between adjacent decoded image blocks that belong to the same segment.

68. An encoder for encoding a digital image comprising a plurality of image blocks, the encoder comprising:

means for encoding a first image block to form a first encoded image block;

means for decoding the first encoded image block to form a first decoded image block;

means for performing a filtering operation across a block boundary between the first decoded image block and a previously decoded image block adjacent to the current decoded image block, such that pixel value of at least one decoded pixel in the first decoded image block is modified by the filtering operation; and

means for performing a prediction for at least one pixel value of a second block, the second block adjacent to the first decoded image block, wherein the prediction is performed based on the modified pixel value of the first block by the filtering operation, wherein filtering is performed due to more than one boundary between the first decoded image block and previously decoded image blocks in a sequential boundary scanning order that is based on a scanning order used in the encoding process.

69. A decoder for decoding an encoded digital image comprising a plurality of encoded image blocks, the decoder comprises:

means for decoding a first encoded image block to form a first decoded image block;

means for performing a filtering operation across a block boundary between the first decoded image block and a previously decoded image block adjacent to the first decoded image block, such that pixel value of at least one decoded pixel in the first decoded image block is modified by the filtering operation; and

means for performing a prediction for at least one pixel value of a second block, the second block adjacent to the first decoded image block, wherein the prediction is performed based on the modified pixel value of the first block by the filtering operation, wherein filtering is performed due to more than one boundary between the first decoded image block and previously decoded image blocks in a sequential boundary scanning order that is based on a scanning order used in the encoding process.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 9, 2018
From: INTELLECTUAL VENTURES ASSETS 72 LLC
To: NORDIC INTERACTIVE TECHNOLOGIES LLC
Reel/Frame 045757/0502 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 4, 2018
From: CALLAHAN CELLULAR L.L.C.
To: INTELLECTUAL VENTURES ASSETS 72 LLC
Reel/Frame 045718/0107 →
MERGER Recorded Sep 25, 2015
From: AMOSMET INVESTMENTS LLC
To: CALLAHAN CELLULAR L.L.C.
Reel/Frame 036687/0605 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 17, 2009
From: NOKIA CORPORATION
To: AMOSMET INVESTMENTS LLC
Reel/Frame 023525/0518 →
CHANGE OF NAME Recorded Sep 30, 2009
From: NOKIA MOBILE PHONES LIMITED
To: NOKIA CORPORATION
Reel/Frame 023304/0017 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2001
From: LAINEMA, JANI; DOBRIN, BOGDAN-PAUL; KARCZEWICZ, MARTA
To: NOKIA MOBILE PHONES LTD.
Reel/Frame 011714/0060 →