Image processing device and method
The present invention relates to an image processing device and method whereby deterioration of effects of filter processing due to local control of filter processing when encoding or decoding can be suppressed. A boundary control flag generating unit of a control information generating unit generates boundary control flags based on system specification information which a system specification managing unit manages. A control unit of an adaptive filter processing unit determines a processing method for filter processing to be performed as to pixels nearby a slice boundary following the value of the boundary control flag. For example, selection is made to perform filter processing straddling slices or to perform filter processing closed at the present slice. The present invention can be applied to an image processing device, for example.
1. An image decoding device comprising at least one processor and memory, the processor, working together with the memory, being configured to:
receive a bit stream of image data, the image data including an image block in a current slice of an image, and the image block including a target pixel adjacent to a slice boundary between the current slice and a neighboring slice;
decode, from the bit stream, a filter block flag indicating whether or not to perform a loop filtering process on the image block including the target pixel;
decode, from the bit stream, a boundary control flag indicating whether or not to use, in the loop filtering process, one or more pixels in the neighboring slice for filtering the target pixel in the current slice, wherein the one or more pixels in the neighboring slice are adjacent to the target pixel in the current slice;
when the filter block flag indicates not to perform the loop filtering process on the image block, omit performance of the loop filtering process on the image block; and
when the filter block flag indicates to perform the loop filtering process on the image block:
if the boundary control flag indicates to not use, in the loop filtering process, one or more pixels in the neighboring slice, perform the loop filtering process on the target pixel using one or more pixels in the current slice and assuming dummy values for one or more pixels in the neighboring slice, and
if the boundary control flag indicates to use, in the loop filtering process, one or more pixels in the neighboring slice, perform the loop filtering process on the target pixel using one or more pixels in the current slice and one or more pixels in the neighboring slice.
2. The image decoding device according to claim 1 , wherein the boundary control flag is included in a slice header of the current slice.
3. The image decoding device according to claim 1 , wherein the image decoding device further comprises a digital tuner, and wherein the processor, working together with the memory and the digital tuner, is further configured to receive a broadcast wave signal of a digital broadcast including the bit stream of image data.
4. The image decoding method according to claim 1 , wherein the target pixel is a selected pixel to be processed.
5. An image decoding method, comprising:
receiving a bit stream of image data, the image data including an image block in a current slice of an image, and the image block including a target pixel adjacent to a slice boundary between the current slice and a neighboring slice;
decoding, from the bit stream, a filter block flag indicating whether or not to perform a loop filtering process on the image block including the target pixel;
decoding, from the bit stream, a boundary control flag indicating whether or not to use, in the loop filtering process, one or more pixels in the neighboring slice for filtering the target pixel in the current slice, wherein the one or more pixels in the neighboring slice are adjacent to the target pixel in the current slice;
when the filter block flag indicates not to perform the loop filtering process on the image block, omit performing the loop filtering process on the image block; and
when the filter block flag indicates to perform the loop filtering process on the image block:
if the boundary control flag indicates to not use, in the loop filtering process, one or more pixels in the neighboring slice, performing the loop filtering process on the target pixel using one or more pixels in the current slice and assuming dummy values for one or more pixels in the neighboring slice, and
if the boundary control flag indicates to use, in the loop filtering process, one or more pixels in the neighboring slice, perform the loop filtering process on the target pixel using one or more pixels in the current slice and one or more pixels in the neighboring slice.
6. The image decoding method according to claim 5 , wherein the boundary control flag is included in a slice header of the current slice.
7. The image decoding method according to claim 5 , further comprising:
receiving a broadcast wave signal of a digital broadcast including the bit stream of image data.
8. A non-transitory computer readable medium encoded with a computer program that, when executed by a computer, causes the computer to implement an image decoding method comprising:
receiving a bit stream of image data, the image data including an image block in a current slice of an image, and the image block including a target pixel adjacent to a slice boundary between the current slice and a neighboring slice;
decoding, from the bit stream, a filter block flag indicating whether or not to perform a loop filtering process on the image block including the target pixel;
decoding, from the bit stream, a boundary control flag indicating whether or not to use, in the loop filtering process, one or more pixels in the neighboring slice for filtering the target pixel in the current slice, wherein the one or more pixels in the neighboring slice are adjacent to the target pixel in the current slice;
when the filter block flag indicates not to perform the loop filtering process on the image block, omit performing the loop filtering process on the image block; and
when the filter block flag indicates to perform the loop filtering process on the image block:
if the boundary control flag indicates to not use, in the loop filtering process, one or more pixels in the neighboring slice, performing the loop filtering process on the target pixel using one or more pixels in the current slice and assuming dummy values for one or more pixels in the neighboring slice, and
if the boundary control flag indicates to use, in the loop filtering process, one or more pixels in the neighboring slice, perform the loop filtering process on the target pixel using one or more pixels in the current slice and one or more pixels in the neighboring slice.
9. The non-transitory computer readable medium according to claim 8 , wherein the boundary control flag is included in a slice header of the current slice.
10. The non-transitory computer readable medium according to claim 8 , wherein the method further comprises:
receiving a broadcast wave signal of a digital broadcast including the bit stream of image data.
11. An image encoding device comprising at least one processor and memory, the processor, working together with the memory, being configured to:
encode a bit stream of image data, the image data including an image block in a current slice of an image, and the image block including a target pixel adjacent to a slice boundary between the current slice and a neighboring slice;
encode, in the bit stream, a filter block flag indicating whether or not to perform a loop filtering process on the image block including the target pixel;
encode, in the bit stream, a boundary control flag indicating whether or not to use, in the loop filtering process, one or more pixels in the neighboring slice for filtering the target pixel in the current slice, wherein the one or more pixels in the neighboring slice are adjacent to the target pixel in the current slice;
when the filter block flag indicates not to perform the loop filtering process on the image block, omit performance of the loop filtering process on the image block; and
when the filter block flag indicates to perform the loop filtering process on the image block:
if the boundary control flag indicates to not use, in the loop filtering process, one or more pixels in the neighboring slice, perform the loop filtering process on the target pixel using one or more pixels in the current slice and assuming dummy values for one or more pixels in the neighboring slice, and
if the boundary control flag indicates to use, in the loop filtering process, one or more pixels in the neighboring slice, perform the loop filtering process on the target pixel using one or more pixels in the current slice and one or more pixels in the neighboring slice.
12. The image encoding device according to claim 11 , wherein the boundary control flag is included in a slice header of the current slice.
13. The image encoding device according to claim 11 , wherein the image encoding device further comprises a camera, and wherein the processor, working together with the memory and the camera, is further configured to receive the image data from the camera.
14. An image encoding method, comprising:
encoding a bit stream of image data, the image data including an image block in a current slice of an image, and the image block including a target pixel adjacent to a slice boundary between the current slice and a neighboring slice;
encoding, in the bit stream, a filter block flag indicating whether or not to perform a loop filtering process on the image block including the target pixel;
encoding, in the bit stream, a boundary control flag indicating whether or not to use, in the loop filtering process, one or more pixels in the neighboring slice for filtering the target pixel in the current slice, wherein the one or more pixels in the neighboring slice are adjacent to the target pixel in the current slice;
when the filter block flag indicates not to perform the loop filtering process on the image block, omit performing the loop filtering process on the image block; and
when the filter block flag indicates to perform the loop filtering process on the image block:
if the boundary control flag indicates to not use, in the loop filtering process, one or more pixels in the neighboring slice, performing the loop filtering process on the target pixel using one or more pixels in the current slice and assuming dummy values for one or more pixels in the neighboring slice, and
if the boundary control flag indicates to use, in the loop filtering process, one or more pixels in the neighboring slice, perform the loop filtering process on the target pixel using one or more pixels in the current slice and one or more pixels in the neighboring slice.
15. The image encoding method according to claim 14 , wherein the boundary control flag is included in a slice header of the current slice.
16. The image encoding method according to claim 14 , further comprising:
receiving the image data from a camera.
17. A non-transitory computer readable medium encoded with a computer program that, when executed by a computer, causes the computer to implement an image encoding method comprising:
encoding a bit stream of image data, the image data including an image block in a current slice of an image, and the image block including a target pixel adjacent to a slice boundary between the current slice and a neighboring slice;
encoding, in the bit stream, a filter block flag indicating whether or not to perform a loop filtering process on the image block including the target pixel;
encoding, in the bit stream, a boundary control flag indicating whether or not to use, in the loop filtering process, one or more pixels in the neighboring slice for filtering the target pixel in the current slice, wherein the one or more pixels in the neighboring slice are adjacent to the target pixel in the current slice;
when the filter block flag indicates not to perform the loop filtering process on the image block, omit performing the loop filtering process on the image block; and
when the filter block flag indicates to perform the loop filtering process on the image block:
if the boundary control flag indicates to not use, in the loop filtering process, one or more pixels in the neighboring slice, performing the loop filtering process on the target pixel using one or more pixels in the current slice and assuming dummy values for one or more pixels in the neighboring slice, and
if the boundary control flag indicates to use, in the loop filtering process, one or more pixels in the neighboring slice, perform the loop filtering process on the target pixel using one or more pixels in the current slice and one or more pixels in the neighboring slice.
18. The non-transitory computer readable medium according to claim 17 , wherein the boundary control flag is included in a slice header of the current slice.
19. The non-transitory computer readable medium according to claim 17 , wherein the method further comprises:
receiving the image data from a camera.