Abstract: Disclosed is an image processing device enabling further parallelization of processing during application of a deblocking filter. The disclosed image processing device is provided with: a decoding unit for decoding an image from an encoding stream; a determination unit for performing determination processing for determining whether to apply a deblocking filter to a neighboring block that neighbors the block boundary of an image decoded by the aforementioned decoding unit; a filtering unit for applying the deblocking filter to the neighboring block to which the aforementioned determination unit determined that the deblocking filter was to be applied; and a control unit which lets the aforementioned determination unit implement the aforementioned determination processing for a vertical block boundary and a horizontal block boundary using as reference pixels the pixels in the aforementioned neighboring block of the reconstructed image.
The present disclosure relates to an image processing apparatus and an image processing method.
BACKGROUND
[0002]
Is one H. standard specifications of the image coding method In 264 / AVC, in order to suppress deterioration of image quality due to block distortion occurring at the time of encoding the image, the deblocking filter to the block boundary is applied to, for example, each block of 4 × 4 pixels. Amount of processing required for this deblocking filter is great, for example, it is also said to occupy 50% of the total throughput of the decoding of the image.
[0003]
The standardization of the next generation of the image coding method HEVC (High Efficiency Video Coding), in JCTVC-A119 (see Non-Patent Document 1), applying a deblocking filter for each block of 8 × 8 pixels or more Size it has been proposed to. In the proposed approach in JCTVC-A119, that the block size of the minimum unit of the deblocking filter is expanded, parallel execute the filtering process for a plurality of block boundaries in the same direction within one macroblock it is possible to become.
CITATION
Non-patent literature
[0004]
非特許文献1 : K.Ugur (Nokia), K.R.Andersson (LM Ericsson), A.Fuldseth (Tandberg Telecom), "JCTVC-A119:Video coding technology proposal by Tandberg, Nokia, and Ericsson", Documents of the first meeting of the Joint Collaborative Team on Video Coding (JCT-VC), Dresden, Germany, 15-23 April, 2010.
Summary of the Invention
Problems that the Invention is to Solve
[0005]
However, even adopting the method proposed in JCTVC-A119, dependency between the processing of the processing and horizontal block boundary in the vertical direction of the block boundary is left. Therefore, to parallelize the processing for different directions of the block boundary within a macroblock (or one of the coding units), and to parallelize the processing between the macroblock is still difficult. Accordingly, even in the above method, it is difficult to say that issues such as reduction in delay or data rate caused significant amount of processing time of the application of the deblocking filter is satisfactorily resolved.
[0006]
Therefore, the technology according to the present disclosure allows for a further parallelization of processing in the application of the deblocking filter, is intended to provide an image processing apparatus and an image processing method.
Means for Solving the Problems
[0007]
According to the present disclosure, a decoding unit for decoding an image from encoded stream, determination processing whether to apply the deblocking filter to the adjacent block adjacent to the block boundary in the image to be decoded by the decoding unit perform a determination unit that, the filtering unit applying a deblocking filter to the adjacent blocks is determined to apply the deblocking filter by the determination unit, the determination processing for vertical block boundary and the horizontal block boundary, said Li construct images using pixels of neighboring blocks as reference pixels, and a control unit for executing the judging unit, an image processing apparatus including a is provided.
[0008]
The image processing device mentioned above may be typically realized as an image decoding apparatus for decoding an image.
[0009]
Further, according to the present disclosure, performing the decoding the picture from the encoded stream, the determination processing whether to apply the deblocking filter to the adjacent block adjacent to the block boundary in the image to be decoded and , references and applying a deblocking filter to the adjacent blocks is determined to apply the deblocking filter in the determination process, the pixels of the neighboring blocks of the determination process is re construct an image of the vertical block boundaries and the horizontal block boundary as it will be executed by using as a pixel, the determination processing image processing method comprising controlling a is provided.
[0010]
Further, according to the present disclosure, the determination unit that performs determination processing whether to apply the deblocking filter to the adjacent block adjacent to the block boundary in the image to be locally decoded when encoding the encoding target image If, by the judgment unit and a filtering unit applying a deblocking filter to the determined neighboring block and applying a deblocking filter, the determination processing for vertical block boundary and the horizontal block boundary, the adjacent blocks of the re-construct the image using the pixel as a reference pixel, and the control to be executed by the determination unit section, using the filtered image by the filtering unit, an encoding unit for encoding the encoding target image, the image processing apparatus comprising It is provided.
[0011]
The image processing device mentioned above may be typically realized as an image encoding device for encoding an image.
[0012]
Further, according to the present disclosure, it executes determination processing whether to apply the deblocking filter to the adjacent block adjacent to the block boundary in the image to be locally decoded when encoding the encoding target image and , references and applying a deblocking filter to the adjacent blocks is determined to apply the deblocking filter in the determination process, the pixels of the neighboring blocks of the determination process is re construct an image of the vertical block boundaries and the horizontal block boundary as will be executed by using as a pixel, and controlling the determination process, using the filtered image by the deblocking filter, encoding the encoding target image, the image processing method comprising the It is provided.
Effect of the invention
[0013]
As described above, according to the image processing apparatus and image processing method according to the present disclosure, it is possible to further parallelization of processing in the application of the deblocking filter.
BRIEF DESCRIPTION OF THE DRAWINGS
[0014]
Is a block diagram showing an example of the configuration of FIG. 1 the image coding apparatus according to an embodiment.
Is a block diagram showing an example of the configuration of FIG. 2 the image decoding apparatus according to an embodiment.
3 is an explanatory diagram showing an example of pixels adjacent to each other across the border.
FIG. 4 is an explanatory view for explaining reference pixels of the filtering necessity determination process in the existing technique.
FIG. 5 is an explanatory diagram for explaining pixels to be updated by the filtering process.
6 is an explanatory diagram for describing Designation edge for description of the embodiments.
7 is an explanatory view for explaining parallel processing in the existing technique.
8 is a first explanatory diagram for describing dependencies between processes in existing techniques.
9 is a second explanatory diagram for describing dependencies between processes in existing techniques.
FIG. 10 is an explanatory diagram for explaining an example of a sequence of processing in the existing method.
11 is a first explanatory diagram for explaining reference pixels in the filtering necessity determining process according to the first embodiment.
12 is a second explanatory diagram for describing a reference pixel in the filtering necessity determining process according to the first embodiment.
13 is an explanatory diagram for describing a first example of the order of processing.
FIG. 14 is an explanatory diagram for describing a second example of the order of processing.
Is a block diagram illustrating an example of FIG. 15 detailed structure of the de-blocking filter according to the first embodiment.
Is a block diagram showing an example of a more detailed configuration of FIG. 16 judging unit.
It is an explanatory diagram for explaining an example of a block adjacent sandwiching the FIG. 17 slice boundary.
FIG. 18 is an explanatory diagram for describing a first example of a sequence of processing for each slice.
19 is an explanatory diagram for describing a second example of the order of the processing of each slice.
FIG. 20 is a flowchart showing a first example of a flow of a process by the deblocking filter according to an embodiment.
21 is a flowchart showing a second example of de flow of processing by the block filter according to one embodiment.
22 is a flowchart showing an example of a flow of filtering necessity determining process according to an embodiment.
FIG. 23 is a block diagram showing an example of a detailed configuration of the deblocking filter according to a second embodiment.
FIG. 24 is an explanatory diagram for describing a first and second example of a technique determined that can be achieved in the second embodiment.
[FIG 25 is an explanatory diagram for explaining a third and fourth example of the method of determination that can be achieved in the second embodiment.
FIG. 26 is an explanatory diagram for describing a fifth and sixth embodiment of the method of determination that can be achieved in the second embodiment.
FIG. 27 is an explanatory view for explaining the sequence of processing for each LCU.
It is a flowchart illustrating an example of a processing flow for each [FIG 28] LCU.
FIG. 29 is an explanatory diagram for describing a schematic of a third embodiment.
It is a block diagram illustrating an example of FIG. 30] Detailed structure of the deblocking filter according to a third embodiment.
[FIG. 31] is an explanatory diagram for explaining the determination of the weights for the weighted average.
[FIG. 32] is an explanatory diagram for explaining an example of the weight for the weighted average.
[33] is an explanatory diagram for describing the output pixel values from the calculation unit according to the third embodiment.
FIG. 34 is an explanatory diagram for explaining a first example of order of processing for comparison.
[FIG. 35] is an explanatory diagram for describing a first example of a sequence of processing realized in the third embodiment.
[FIG. 36] is an explanatory diagram for explaining a second example of the order of processing for comparison.
[FIG. 37] is an explanatory diagram for describing a second example of the order of processing realized in the third embodiment.
[FIG. 38] is a flowchart showing an example of a flow of a process by the deblocking filter according to a third embodiment.
[39] is a flowchart showing an exemplary flow of a pixel value calculation process shown in FIG. 38.
[FIG. 40] is an explanatory diagram for describing a multi-view codec.
[FIG. 41] is an explanatory diagram for describing application to multi-view codec of the image encoding process according to an embodiment.
[FIG. 42] is an explanatory diagram for describing application to multi-view codec of the image decoding process according to an embodiment.
[43] is an explanatory diagram for describing a scalable codec.
[FIG. 44] is an explanatory diagram for describing application to scalable codec of the image encoding process according to an embodiment.
Is an explanatory diagram for describing application to scalable codecs [45] The image decoding process according to an embodiment.
[FIG. 46] is a block diagram showing an example of a schematic configuration of a television device.
[FIG. 47] is a block diagram showing an example of a schematic configuration of a mobile phone.
[FIG. 48] is a block diagram showing an example of a schematic configuration of a recording and reproducing apparatus.
[FIG. 49] is a block diagram showing an example of a schematic configuration of an imaging apparatus.
DESCRIPTION OF THE INVENTION
[0015]
Reference will now be described in detail preferred embodiments of the present disclosure. In the specification and the drawings, components having substantially the same functional configuration are repeated explanation is omitted by putting the same symbols.
[0016]
Further, explaining the "Description of the Invention" following order.
1. Overview of the device
1-1. The image coding apparatus
1-2. The image decoding device
2. Description of existing approaches
2-1. The basic configuration of the de-block filter
2-2. Dependencies between processes in existing method
3. The first embodiment
3-1. Configuration example of the de-block filter
3-2. Processing of flow
4. Second embodiment
4-1. Configuration example of the de-block filter
4-2. Processing of flow
4-3. Examples of processing for each LCU
5. Third Embodiment
5-1. Outline
5-2. Configuration example of the de-block filter
5-3. Examples of order of processing
5-4. Processing of flow
6. It applied to a variety of codecs
6-1. Multi-view codec
6-2. Scalable codec
7. Application Example
8. Summary
[0017]
<1. Device Overview>
First, with reference to FIGS. 1 and 2, an overview of the apparatus as an example of applicability of the technology disclosed herein. The technology disclosed herein, for example, is applicable to the image coding apparatus and image decoding apparatus.
[0018]
[1-1. Image encoding apparatus]
FIG. 1 is a block diagram showing an example of a configuration of an image encoding apparatus 10 according to an embodiment. Referring to FIG. 1, the image encoding apparatus 10, A / D (Analogue to Digital ) conversion unit 11, the reordering buffer 12, a subtraction unit 13, an orthogonal transform unit 14, quantization unit 15, a lossless coding unit 16, storage buffer 17, the rate control unit 18, inverse quantization unit 21, inverse orthogonal transform unit 22, adding unit 23, a deblocking filter 24a, a frame memory 25, a selector 26, an intra prediction unit 30, motion estimation unit 40, and a mode selection It comprises a section 50.
[0019]
A / D converter 11 converts the image signal input in analog form to the digital image data, and outputs a series of digital image data to the reordering buffer 12.
[0020]
Sorting buffer 12 rearranges the images included in the series of image data input from the A / D converter 11. Reordering buffer 12, it sorts the images in accordance with the GOP (Group of Pictures) structure according to the coding process, and outputs the image data after rearrangement to subtraction unit 13, the intra prediction unit 30 and the motion estimation section 40 to.
[0021]
The subtraction unit 13, the predicted image data selected by the mode selection unit 50 to be described the image data, and after the input from the reordering buffer 12 is supplied. Subtraction unit 13 calculates the prediction error data which is a difference between the predicted image data input from the image data and a mode selection unit 50 which is input from the rearrangement buffer 12, the calculated prediction error data to the orthogonal transform section 14 Output.
[0022]
Orthogonal transform unit 14 performs orthogonal transform on the prediction error data inputted from the subtraction unit 13. Orthogonal transform performed by the orthogonal transform unit 14, for example, discrete cosine transform (Discrete Cosine Transform: DCT) or Karhunen-Loeve transform may the like. Orthogonal transform unit 14, transform coefficient data acquired by the orthogonal transform processing and outputs it to the quantization unit 15.
[0023]
The quantization unit 15, a rate control signal from the rate control unit 18 to be described transform coefficient data input from the orthogonal transformation unit 14, and after it is supplied. Quantization unit 15, transform coefficient data quantized transform coefficient data after quantization (hereinafter referred to as quantized data) to the to the lossless encoding unit 16 and the inverse quantization unit 21. The quantization unit 15, by switching the quantization parameter (quantization scale) on the basis of the rate control signal from the rate control unit 18, change the bit rate of the quantized data input to the lossless encoding unit 16 make.
[0024]
The lossless encoding unit 16, the quantized data input from the quantization unit 15, and intra prediction or inter prediction is selected by the generation mode selecting unit 50 by the intra prediction unit 30 or the motion estimation section 40 will be described later information about is supplied. Information about the intra prediction may include, for example, prediction mode information indicating the optimal intra prediction mode for each block. Also, information on inter prediction may include, for example, prediction mode information for the prediction of motion vectors of each block, the difference motion vector information, and the like reference picture information.
[0025]
Lossless encoding section 16, by performing a lossless encoding process on the quantized data, to generate a coded stream. Lossless encoding by the lossless coding unit 16, for example, variable length coding, or the like arithmetic coding. Also, the lossless encoding unit 16, the information about the information or inter prediction regarding intra-prediction as described above, multiplexed into the header of the encoded stream (e.g., a block header or slice header). The lossless encoding unit 16 outputs the generated encoded stream to the storage buffer 17.
[0026]
The accumulation buffer 17 temporarily accumulates using a storage medium an encoded stream input from the lossless encoding section 16 such as a semiconductor memory. Then, the accumulation buffer 17, the stored encoded stream, and outputs at a rate corresponding to the bandwidth of the (output lines from or image coding apparatus 10) transmission path.
[0027]
The rate control section 18 monitors the free space of the storage buffer 17. Then, the rate control unit 18 generates a rate control signal in accordance with the free space in the accumulation buffer 17, and outputs the generated rate control signal to the quantization unit 15. For example, the rate control unit 18, when the free space of the storage buffer 17 is small, and generates a rate control signal for lowering the bit rate of the quantized data. Further, for example, the rate control unit 18, when the free space of the storage buffer 17 is sufficiently large to generate a rate control signal for increasing the bit rate of the quantized data.
[0028]
Inverse quantization unit 21 performs an inverse quantization process on the quantized data input from the quantization unit 15. Then, the inverse quantization unit 21, transform coefficient data acquired by the inverse quantization processing, and outputs it to the inverse orthogonal transform unit 22.
[0029]
Inverse orthogonal transform unit 22 performs inverse orthogonal transform processing for transform coefficient data input from the inverse quantization unit 21, restores the prediction error data. Then, the inverse orthogonal transform unit 22 outputs the prediction error data restored to the adder 23.
[0030]
Addition unit 23, by adding the predicted image data input from the prediction error data and mode selection unit 50 that is restored is inputted from the inverse orthogonal transform unit 22 to generate a decoded image data. The adding unit 23 outputs the generated decoded image data to the deblocking filter 24a and the frame memory 25.
[0031]
Deblocking filter 24a performs a filtering process for reducing block distortion occurring at the time of encoding the image. For example, the deblocking filter 24a determines necessity of filtering for each block boundaries for the decoded image data input from the addition unit 23 applies the deblocking filter to the boundary is determined that it should apply the filter . The deblocking filter 24a, in addition to the decoded image data from the adder 23, the information used for determining the necessity of filtering (e.g., mode information, the transform coefficient information and motion vector information) is also input . Then, the deblocking filter 24a outputs the decoded image data after filtering that is removal of block distortion to the frame memory 25. The processing by the deblocking filter 24a, will be described in detail later.
[0032]
The frame memory 25 stores, using a storage medium decoded image data after filtering input decoded image data input from the addition unit 23, and the deblocking filter 24a.
[0033]
The selector 26 reads the decoded image data before filtering that is used for intra prediction from the frame memory 25, and supplies the intra prediction unit 30 reads decoded image data as reference image data. The selector 26 reads the decoded image data after filtering to be used for inter prediction from the frame memory 25, and supplies the motion search unit 40 reads decoded image data as reference image data.
[0034]
The intra prediction unit 30, the image data of the input from the rearrangement buffer 12 coded, and based on the decoded image data supplied via the selector 26 performs intra prediction processing of each intra prediction mode. For example, the intra prediction unit 30 is evaluated using the prediction result given cost function by each intra prediction mode. Then, the intra prediction unit 30, an intra prediction mode cost function value is minimized, i.e. the intra prediction mode compression ratio is the highest is selected as the optimal intra prediction mode. Furthermore, the intra prediction unit 30, prediction mode information indicating the optimal intra prediction mode, the prediction image data, and information on intra-prediction, such as the cost function value, and outputs to the mode selection unit 50.
[0035]
Motion estimation unit 40, image data of the input from the rearrangement buffer 12 coded, and based on the decoded image data supplied via the selector 26, performs inter prediction process (inter-frame prediction process). For example, the motion search unit 40 is evaluated using the prediction result given cost function by each prediction mode. Next, the motion estimation section 40, the prediction mode cost function value is minimized, i.e. the prediction mode compression ratio is the highest is selected as the optimal prediction mode. Also, the motion estimation section 40 generates predicted image data in accordance with the optimum prediction mode. Then, the motion estimation unit 40, prediction mode information indicating the optimum prediction mode selected, the prediction image data, and the information about the inter prediction of cost function values, and outputs to the mode selection unit 50.
[0036]
Mode selecting unit 50 compares the cost function values for the inter prediction input from the cost function value and the motion estimation section 40 about the intra prediction input from the intra prediction unit 30. The mode selection unit 50, the cost function value of the intra prediction and inter prediction to select fewer prediction method. Mode selector 50, when selecting the intra prediction outputs the information on the intra prediction to the lossless encoding unit 16, and outputs the predicted image data to the subtraction section 13 and addition section 23. The mode selection unit 50, if you select the inter prediction outputs the above-mentioned information about the inter prediction to the lossless encoding unit 16, and outputs the predicted image data to the subtraction section 13 and addition section 23.
[0037]
[1-2. The image decoding apparatus]
FIG. 2 is a block diagram showing an example of a configuration of an image decoding apparatus 60 according to an embodiment. Referring to FIG. 2, the image decoding apparatus 60 includes a storage buffer 61, reversible decoding unit 62, inverse quantization unit 63, inverse orthogonal transform unit 64, an adder 65, a deblocking filter 24b, the reordering buffer 67, D / A comprises (Digital to Analogue) conversion unit 68, frame memory 69, a selector 70 and 71, the intra prediction unit 80 and motion compensation unit 90,.
[0038]
The accumulation buffer 61 temporarily accumulates using a storage medium an encoded stream input via a transmission path.
[0039]
Lossless decoding unit 62, an encoded stream input from the accumulation buffer 61, decodes according to the encoding scheme used at the time of encoding. Also, the lossless decoding unit 62 decodes information multiplexed in the header area of the encoded stream. The information multiplexed in the header area of the encoded stream, for example, may include information about the information and inter prediction concerning intra prediction in the block header. Lossless decoding section 62 outputs the information about intra prediction to the intra prediction unit 80. Also, the lossless decoding unit 62 outputs the information about inter prediction to the motion compensation unit 90.
[0040]
Inverse quantization unit 63 inversely quantizes the quantized data decoded by the lossless decoding section 62. Inverse orthogonal transform unit 64 in accordance with the orthogonal transform method used in encoding, by performing inverse orthogonal transform for the transform coefficient data input from the inverse quantization unit 63 generates a prediction error data. Then, the inverse orthogonal transform unit 64 outputs the generated prediction error data to the addition section 65.
[0041]
Adding section 65, the prediction error data inputted from the inverse orthogonal transform unit 64, by adding the predicted image data input from the selector 71, and generates the decoded image data. The adding unit 65 outputs the generated decoded image data to the deblocking filter 24b and the frame memory 69.
[0042]
Deblocking filter 24b performs filtering processing for reducing the block distortion appearing on the decoded image. Deblocking filter 24b, for example, to determine the necessity of filtering for each block boundaries for the decoded image data input from the addition unit 65 applies the deblocking filter to the boundary is determined that it should apply the filter . The deblocking filter 24b, in addition to the decoded image data from the adder unit 65, information used for judging the necessity of filtering is also input. Then, the deblocking filter 24b outputs the sorting buffer 67 and the frame memory 69 the decoded image data after removed filtering of blockiness. The processing by the deblocking filter 24b, will be described in detail later.
[0043]
Sorting buffer 67, by rearranging the image input from the deblocking filter 24b, when generating a sequence of image data of the series. Then, the reordering buffer 67 outputs the generated image data to the D / A converter 68.
[0044]
The D / A converter 68 converts the digital image data inputted from the rearrangement buffer 67 into an image signal of analog form. Then, D / A conversion unit 68, for example, by outputting an analog image signal to a display (not shown) connected to an image decoding apparatus 60 to display the image.
[0045]
The frame memory 69 stores, using a storage medium decoded image data after filtering input before filtering the decoded image data input from the addition unit 65, and the deblocking filter 24b.
[0046]
The selector 70, in accordance with the mode information acquired by the lossless decoding unit 62, for each block in the image, switch the output destination of image data from the frame memory 69 with the intra-prediction unit 80 and motion compensation unit 90 . For example, the selector 70, when the intra prediction mode is specified, and outputs it to the intra prediction unit 80 the decoded image data before filtering that is supplied from the frame memory 69 as reference image data. The selector 70, when the inter prediction mode is specified, and outputs it to the motion compensation unit 90 the decoded image data after filtering that is supplied from the frame memory 69 as reference image data.
[0047]
The selector 71, in accordance with the mode information acquired by the lossless decoding unit 62, for each block in the image, the output source of the predicted image data to be supplied to the addition section 65 and the intra prediction unit 80 and motion compensation unit 90 switch between. For example, the selector 71, when the intra prediction mode is specified, and supplies the predicted image data output from the intra prediction unit 80 to the addition unit 65. The selector 71, when the inter prediction mode is specified, and supplies the predicted image data output from the motion compensation unit 90 to the addition unit 65.
[0048]
Intra prediction unit 80 performs intra prediction of pixel values based on the reference image data from the information and the frame memory 69 relating to the intra prediction input from the lossless decoding section 62 generates a predicted image data. Then, the intra prediction unit 80 outputs the generated predicted image data to the selector 71.
[0049]
Motion compensation unit 90 performs motion compensation processing on the basis of the reference image data from the information and the frame memory 69 about an inter prediction input from the lossless decoding section 62 generates a predicted image data. Then, the motion compensation unit 90 outputs the generated predicted image data to the selector 71.
[0050]
<2. Description of existing
methods> [2-1. The basic configuration of the deblocking filter]
Generally, H. Processing by the deblocking filter in existing image encoding method such as 264 / AVC or HEVC includes two types of processing of the filtering necessity determining process and filtering process. Hereinafter, an example of HEVC, describe these two processes.
[0051]
(1) filtering necessity determining process
filtering necessity determining process is a process of determining whether to apply the deblocking filter per block boundaries in the input image. Boundaries of blocks includes a vertical boundary between blocks adjacent to the left and right, and a horizontal boundary between blocks adjacent in the vertical direction. In JCTVC-A119, a block size of 8 × 8 pixels is the minimum unit of processing. For example, 16 × 16 in the pixel in the macro block is present block of the four 8 × 8 pixels, one for each block (the left) vertical boundary and one (upper) horizontal boundary, i.e. a total of 4 + 4 = eight of the boundary is subject to judgment. In this specification, the term macroblock coding unit in the context of HEVC (CU: Coding Unit) shall also include.
[0052]
Figure 3 is an explanatory diagram showing an example of a pixel of two adjacent block (neighboring block) Ba and Bb across the boundary. Here it will be explained as an example vertical boundary, of course, where the matters described is applicable equally to the horizontal boundary. In the example of FIG. 3, the pixels in the block Ba, p ij is indicated by the symbol as. i is an index of the index, j row of columns. The index i of the column, from the column close to the vertical boundary in the order (from right to left) 0, 1, 2, 3 are numbered with. The index j of the line, 0, 1, 2, from top to bottom, ..., are numbered and 7. Incidentally, the left half of the block Ba is omitted in FIG. Meanwhile, the pixels in the block Bb, q kj are indicated by the symbol as. k is the index of the index, j row of columns. The index k of the column, from the column close to the vertical boundary in the order (from left to right) 0, 1, 2, 3 are numbered with. Incidentally, it is omitted also in FIG right half of the block Bb.
[0053]
The vertical boundary between blocks Ba and Bb shown in Fig. 3, is whether or not to apply the deblocking filter may be determined according to the conditions as follows:
[0054]
Luminance components (Luma) determination condition ... conditions A and B are both applied if true
- Condition
A: (A1) blocks Ba or Bb is an intra prediction
mode; (A2) blocks Ba or Bb non with orthogonal transform coefficients of zero; or
(A3) | MVAx-MVBx | ≧ 4 or | MVAy-MVBy | ≧ 4
- condition B:
| p 22 -2p 12 + p 02 | + | q 22 -2Q 12 + q 02 | Tasu | the p- 25 -2P 15 Tasu the p- 05 | Tasu | Q 25 -2Q 15 Tasu Q 05 | >
2) (C2) (| the p- 3j -p 0j | + | q 0j -q 3j |) <(beta >> 3)
(C3) | p 0j -q 0j | <((5t C +1) >> 1) here, j is the vertical boundary the line for the horizontal boundary is the index of columns. Further, d = | p 22 -2p 12 + p 02 | + | q 22 -2Q 12 + q 02 | + | p 25 -2p 15
The p-Tasu 05 | Tasu | Q 25 -2Q 15 Tasu Q 05 | it is.
[0060]
- Weak fuィsuitable for center Surlyn Corning:
[Delta] = the Clip (-t C , T C , (13 is (Q 0j -p 0j ) +4 (Q 1J -p 1J ) -5 (Q 2J -p 2J ) +16)
>>. 5)) P 0j the Clip = 0-255 (P 0j +
[Delta]) Q 0j = the Clip 0-255 (Q 0j -
[Delta) P 1J = the Clip 0-255 (P 1J + [Delta]
/ 2) Q 1J = the Clip 0-255(q 1j-Δ/2)
[0061]
- strength
filtering: the p- 0J = Clip 0-255 ((the p- 2J Tasu 2P 1J Tasu 2P 0J Tasu 2Q 0J Tasu Q 1J Tasu4) >> 3) Q 0J = Clip 0-255 ((the p- 1J Tasu 2P 0J Tasu 2Q 0J Tasu 2Q 1J Tasu Q 2J Tasu4) 3 >>) the p- 1J = Clip 0-255 ((the p- 2J Tasu the p- 1J Tasu the p- 0J Tasu Q 0J
+2)>>2)
q 1j=Clip 0-255((p 0j+q 0j+q 1j+q 2j+2)>>2)
p 2j=Clip 0-255((2p 3j+3p 2j+p 1j+p 0j+q 0j+4)>>3)
q 2j=Clip 0-255((p 0j+q 0j+q 1j+3q 2j+2q 3j+4)>>3)
[0062]
Incidentally, Clip (a, b, c ) is the process of clipping the value c in the range of a ≦ c ≦ b, Clip 0-255 (c) is a process of clipping the value c in the range of 0 ≦ c ≦ 255, respectively represent.
[0063]
· Chrominance componentのfuィsuitable for center Surlyn Corning:
[Delta] = the Clip (-t C , T C , ((((Q 0j -p 0j ) << 2) + P 1J -q 1J +4)
>>. 3)) P 0j = the Clip 0-255 (P 0j +
[Delta]) Q 0j = the Clip 0-255 (Q 0j - [Delta)
[0064]
That is, as indicated by the dotted frame C6 ~ C8 and C1 ~ C3 in FIG. 5, the filtering process for the general vertical boundaries (in particular, strong filtering of the luminance component), 1-3 th blocks and 6 pixel values of 1-8-th row is updated. Similarly, in the filtering process in the horizontal boundary, pixel values of first to third and 6-8-th row of each block is updated.
[0065]
[2-2. Dependencies between processing in the existing technique
, where, for purposes of explanation, as shown in FIG. 6, the upper left vertical boundary of the macroblock MBx (MB0, MB1 ...) having a size of 16 × 16 pixels Vx , 0, the vertical boundary of the central Vx, 1, the lower left vertical boundary Vx, 2, the vertical boundary of the central lower Vx, 3, the horizontal boundary of the upper left Hx, 0, Hx, 1 horizontal boundary in the upper right, the horizontal boundaries of the left middle Hx, 2, the horizontal boundary of the right middle Hx, 3, shall be expressed as. Further, for example, filtering necessity determination process of the boundary Z J Z , the filtering process F Z is intended to refer to as.
[0066]
In existing method described above, there is no dependency between the processing for a plurality of boundary in the same direction within one macroblock. Therefore, it is possible to perform filtering for a plurality of vertical boundary, for example, within one macroblock parallel run, and a plurality of filtering in the horizontal boundary parallel. As an example, referring to FIG. 7, in the macroblock MB0, 4 single filtering F V0,0 , F V0,1 , F V0,2 and F V0,3 no dependencies between (i.e., duplicate no pixels to be updated Te), it can be seen that perform these parallel.
[0067]
However, existing method described above, the dependency between the filtering necessity determining process for filtering and horizontal boundaries of the vertical boundary is left. Also, dependencies between the filtering necessity determining process for filtering and vertical boundary of the horizontal boundary is also retained. Thus, for example, filtering necessity determining process when, for the horizontal boundary in a certain macro block for processing the vertical boundary before the horizontal boundary, will be performed after completion of the filtering process in the vertical boundaries . As an example, referring to FIG. 8, in the macroblock MB0, filtering F V0,0 and F V0,1 filtering necessity determining process J to results H0,0 was dependent, filtering F V0,1 result of filtering necessity determining process J in H0,1 is shown to be dependent. Similarly, the filtering necessity determination process in the vertical boundaries of a certain macro block is to be executed after completion of the filtering process in the horizontal boundaries of macro blocks of the next. As an example, referring to FIG. 9, the macro filtering F blocks MB0 H0,1 and F H0,3 the result of the filtering necessity determining process J macroblock MB1 V1,0 and dependent, filtering of macroblocks MB0 F H0,3Filtering necessity determining process J in the results of macro blocks MB1 V1,2 is shown to be dependent.
[0068]
Existing approaches, because it has a dependency between such processing, for example, even adopting the method proposed in JCTVC-A119, parallel processing of the deblocking filter only a very limited range it is not possible to achieve the reduction.
[0069]
Figure 10 is an explanatory diagram for explaining an example of order of processing of the deblocking filter in the existing method. Here, as an example, it is assumed that an image having a size of 32 × 32 pixels is inputted to the de-block filter. The input image includes four macroblocks MB0 ~ MB3 each having a size of 16 × 16 pixels.
[0070]
Referring to FIG. 10, the processing may be performed in parallel are shown respectively in each dotted line frame. For example, in a first step, filtering necessity determining process J for the four vertical boundary macroblocks MB0 V0,0 , J V0,1 , J V0,2 and J V0,3 are executed in parallel. Then, in a second step, the filtering process F for four vertical boundary macroblocks MB0 V0,0 , F V0,1 , F V0,2 and F V0,3 are executed in parallel. Then, after the second step is completed, in a third step, the filtering necessity determining process J for the four horizontal boundaries of macro blocks MB0 H0,0 , J H0,1 , J H0,2 and J H0,3 There are executed in parallel. Then, in the fourth step, the filtering process for the four horizontal boundaries of macro blocks F MB0 H0,0 , F H0,1 , F H0,2And F H0,3 are executed in parallel. Then, after the fourth step has ended, the processing of the macroblock MB1 (Fifth step to eighth step) are sequentially performed. Then, after the processing for the macroblock MB1 is finished, the processing of macroblock MB2 (9th step to 12th step) are sequentially performed. Then, after the processing for the macroblock MB2 is completed, processing for macroblocks MB3 (13th step to 16th step) are sequentially performed.
[0071]
In parallel processing in such a limited range, it is difficult to say that issues such as reduction in delay or data rate caused significant amount of processing time of the application of the deblocking filter is satisfactorily resolved. Therefore, the three examples of the deblocking filtering to be described below, to achieve a further parallelization of processing in the application of the deblocking filter.
[0072]
<3. The first
embodiment> [3-1. Configuration Example of a deblocking filter
in this section, the configuration according to the first embodiment of the deblocking filter 24b of the image decoding apparatus 60 shown in the deblocking filter 24a and FIG. 2 of the image encoding apparatus 10 shown in FIG. 1 illustrating an example. The configuration of the deblocking filter 24a and the deblocking filter 24b may be common. Accordingly, in the subsequent description, particularly when there is no need to distinguish between the two is a generic term for deblocking filter 24a and deblocking filter 24b and the deblocking filter 24.
[0073]
(1) dependencies between new processing
also in the present embodiment, processing by the deblocking filter 24 comprises two types of treatment that the above-described filtering necessity determining process and filtering process. However, the deblocking filter 24 determines existing approaches based on the pixel values of different reference pixels and, whether or not to apply the deblocking filter for each vertical boundary and the horizontal boundary. More specifically, the deblocking filter 24, upon the determination of the vertical boundary, and a reference pixel pixels belonging to a row deblocking filter is not applied in the horizontal boundaries of the pixel of the adjacent block across the vertical boundary to. Moreover, the deblocking filter 24, upon the determination of the horizontal boundary, a reference pixel a pixel belonging to a column deblocking filter is not applied in the vertical boundaries of the pixel blocks adjacent across the horizontal boundary. Also in this section, as an example, processing by the deblocking filter 24 is intended to block size of 8 × 8 pixels as one processing unit.
[0074]
Figure 11 is an explanatory diagram for explaining reference pixels in the filtering necessity determination process in the vertical demarcation de-block filter 24. Referring to FIG. 11, the macro block MB0 is shown having a size of 16 × 16 pixels. Deblocking filter 24, the necessity of filtering the four vertical boundary of such macroblocks MB0, as reference pixels to pixels belonging to at least one of the fourth and fifth row of each block (L4 and L5) It determined using. These two rows are rows deblocking filter is not applied in the horizontal boundaries (see FIG. 9). With this configuration, dependency between the filtering necessity determining process for filtering and vertical boundary of the horizontal boundary is eliminated.
[0075]
Figure 12 is an explanatory diagram for explaining reference pixels in the filtering necessity determination process in the horizontal demarcation de-block filter 24. Referring to FIG. 12, there is shown a macroblock MB0 again. Deblocking filter 24, the necessity of filtering the four horizontal boundaries of such macroblocks MB0, as reference pixels to pixels belonging to at least one of the fourth and fifth column of each block (C4 and C5) It determined using. These two columns are columns deblock filter for vertical boundary is not applied (see FIG. 7 or FIG. 8). With this configuration, dependency between the filtering necessity determining process for filtering and horizontal boundaries of the vertical boundary also eliminated.
[0076]
As a result of dependencies between process thus is eliminated, it is possible to parallelize the filtering necessity determination process in the vertical boundary and the horizontal boundary in a macro block. Further, it is possible to parallelize the processing between macro blocks. For example, it is also possible to perform filtering necessity determination process in the vertical boundary and the horizontal boundary of all macro blocks in the input image in parallel.
[0077]
Figure 13 is an explanatory diagram for describing a first example of the order of feasible process by the deblocking filter 24. Again, as an example, it is assumed that an image having a size of 32 × 32 pixels is inputted to the de-block filter. The input image includes four macroblocks MB0 ~ MB3 each having a size of 16 × 16 pixels.
[0078]
Referring to FIG 13, processing that can be executed in parallel are shown respectively in each dotted line frame. In the example of FIG. 10 while it took 16 processing steps to a series of processing, in the example of FIG. 13, the processing of the same number are aggregated into three process steps. That is, in the first step, filtering necessity determining process for all vertical boundary and all horizontal boundaries of all macroblocks ~ MB3 J MB0 V0,0 ~ J V3,3 and J H0,0 ~ J H3,3 There are executed in parallel. Then, in a second step, the filtering process F for sixteen vertical boundaries of all macroblocks ~ MB3 MB0 V0,0 ~ F V3,3 are executed in parallel. Next, in a third step, the filtering process F for sixteen horizontal boundaries of all macroblocks ~ MB3 MB0 H0,0 ~ F H3,3 are executed in parallel. Note that the second step and the third step, the order may be reversed.
[0079]
While FIG. 13 shows an example of increasing parallelism by parallel processing between macro blocks (abundance of processing are executed in parallel) to the maximum, the deblocking filter 24, as in the example of FIG. 14, it is also possible to realize the processing of each macro block.
[0080]
In the example of FIG. 14, the processing of the same number as in FIG. 10 and FIG. 13 are aggregated into 12 process steps. That is, in the first step, filtering necessity determining process for the four vertical boundary and four horizontal boundaries of macro blocks J MB0 V0,0 ~ J V0,3 and J H0,0 ~ J H0,3 parallel is It is executed. Then, in a second step, the filtering process F for four vertical boundary macroblocks MB0 V0,0 ~ F V0,3 are executed in parallel. Next, in a third step, the filtering necessity determining process J for the four vertical boundary and four horizontal boundaries of macro blocks MB1 V1,0 ~ J V1,3 and J H1,0 ~ J H1,3 is parallel It is executed. Then, in the fourth step, the filtering process F for four vertical boundary of the macro blocks MB1 V1,0 ~ F V1,3 are executed in parallel. Then, in the fifth step, the filtering process F for four horizontal boundaries of macro blocks MB0 H0,0 ~ F H0,3 are executed in parallel. Then, in the sixth step, the filtering necessity determining process J for the four vertical boundary and four horizontal boundaries of macro blocks MB2 V2,0 ~ J V2,3 and J H2,0 ~ J H2,3 is parallel It is executed. Then, in the seventh step, the filtering process F for four vertical boundary of the macro blocks MB2 V2,0 ~ F V2,3 are executed in parallel. Next, in the eighth step, the filtering process F for four horizontal boundaries of macro blocks MB1 H1,0 ~ F H1,3 are executed in parallel. Then, in the ninth step, the filtering necessity determining process J for the four vertical boundary and four horizontal boundaries of macro blocks MB3 V3,0 ~ J V3,3 and J H3,0 ~ J H3,3 is parallel It is executed. Next, in the tenth step, the filtering process for the four vertical boundary macroblock F MB3 V3,0 ~ F V3,3There are executed in parallel. Then, in the eleventh step, the filtering process F for four horizontal boundaries of macro blocks MB2 H2,0 ~ F H2,3 are executed in parallel. Next, in the twelfth step, the filtering process F for four horizontal boundaries of macro blocks MB3 H3,0 ~ F H3,3 are executed in parallel. In this case, although the degree of parallelism is decreased than the example of FIG. 13, it is possible to execute the process of the deblocking filter 24 for the entire input image with a small number of processing steps than conventional methods.
[0081]
(2) deblocking the detailed configuration of the filter
15 is a block diagram showing an example of a detailed configuration of the deblocking filter 24 according to the first embodiment for realizing the above-described parallel processing. Referring to FIG. 15, the de-block filter 24 has a decision block 110, the horizontal filtering block 130, a vertical filtering block 140 and the parallel control unit 150.
[0082]
(2-1) decision block
decision block 110 includes a plurality of vertical boundary determination unit 112-1 ~ 112-n and a plurality of horizontal boundary determining unit 114-1 ~ 114-n. Each vertical boundary determination unit 112 and the horizontal boundary determination unit 114, determines information used for the input image, and determines the necessity of filtering the deblocking filter 24 is supplied.
[0083]
Each vertical boundary determining unit 112 uses the pixel values of the reference pixels belonging to a row deblocking filter is not applied in the horizontal boundaries as illustrated in FIG. 11, whether or not to apply the deblocking filter for each vertical boundary the judges. Pixel values of the reference pixels here is input pixel values to the deblocking filter 24. Each vertical boundary determination unit 112, information indicating the determination result for each vertical boundary (e.g., binary information indicating a determination result that "1" is to be applied to deblocking filter), the horizontal filtering block 130 to output to.
[0084]
Each horizontal boundary determining unit 114 uses the pixel values of the reference pixels belonging to the column of the deblocking filter is not applied in the vertical boundaries, as illustrated in FIG. 12, whether or not to apply the deblocking filter for each horizontal boundary the judges. Pixel values of the reference pixels here are also the input pixel values to the deblocking filter 24. Determination processing by the horizontal boundary determination unit 114, parallel performed a determination process by the vertical boundary determination unit 112. Each horizontal boundary determination unit 114, information indicating the determination result for each horizontal boundary, and outputs to the vertical filtering block 140.
[0085]
Figure 16 is a block diagram showing an example of a more detailed configuration of each vertical boundary determination unit 112 and the horizontal boundary determination unit 114. Referring to FIG. 16, the judgment unit includes tap forming unit 121, calculation unit 122, threshold comparator 123, the distortion evaluation unit 124 and a filtering decision unit 125.
[0086]
Tap forming unit 121 acquires the pixel values of the reference pixels from the pixel values of two adjacent blocks across the boundary of interest in the input image, tap (see for determining the determination condition B of the luminance component as described above building a set) of pixel values. For example, in a case where the size of each block is 8 × 8 pixels, when a boundary of interest is vertical boundary, tap forming unit 121, the fourth left and right two blocks and one or both of the 5 th row constructing a tap from the pixel values belonging. Further, when a boundary of interest is horizontal boundary, tap forming unit 121 constructs a tap from the pixel values belonging to one or both of the fourth and fifth rows of the upper and lower two blocks. Calculation unit 122 substitutes the tap constructed by the tap forming unit 121 to the left side of the judgment formula of the determination condition B, and calculating the value of the edge to be compared with the edge determination threshold value beta. Threshold comparator 123, a value calculated by the calculation unit 122 as compared with the edge determination threshold beta, and outputs the comparison result to the filtering decision unit 125.
[0087]
Distortion evaluation unit 124, mode information supplied as the determination information (MB mode), using the transformation coefficient information and motion vector information, to evaluate the determination condition A of the luminance component as described above. The distortion evaluating unit 124 outputs the evaluation result to the filtering decision unit 125. As for the color difference components, only the determination of the determination condition A1 based on the mode information due to distortion evaluation unit 124 may be performed.
[0088]
Filtering determination unit 125, based on the comparison result of the determination condition B which is input from the threshold comparator 123, the evaluation result of the determination condition A inputted from the distortion evaluation unit 124, the deblocking filter for the target boundary It determines whether to apply. Then, the filtering decision unit 125 outputs the information indicating the determination result.
[0089]
(2-2) horizontal filtering block
back to Figure 15, to continue the description of the configuration of the deblocking filter 24. Horizontal filtering block 130 includes a plurality of horizontal filtering unit 132-1 ~ 132-n. Each horizontal filtering unit 132, the determination results for each vertical boundary from the input image and a decision block 110 is supplied.
[0090]
Each horizontal filtering unit 132, when the determination result by the corresponding vertical boundary determination unit 112 indicates that it should apply a filter to the left and right of the pixel of the corresponding vertical boundary to apply the deblock filter for vertical boundary . Each horizontal filtering unit 132, the pixel by a filtered pixel value after filtering, the pixel values of the input image for the other pixels, and outputs to the vertical filtering block 140.
[0091]
(2-3) vertical filtering block
vertical filtering block 140 includes a plurality of vertical filtering unit 142-1 ~ 142-n. Each vertical filtering unit 142, the determination results for each horizontal boundary from the input image and a decision block 110 is supplied.
[0092]
Each vertical filtering unit 142, when the determination result by the corresponding horizontal boundary determination unit 114 indicates that it should apply a filter to the upper and lower pixels in the corresponding horizontal border to apply the deblock filtering in the horizontal boundary . Each vertical filtering unit 142, the pixel by a filtered pixel value after filtering, and other pixel outputs a pixel value supplied from the horizontal filtering block 130. The output from the vertical filtering section 142 may constitute the output image from the deblocking filter 24.
[0093]
(2-4) parallel controller
parallelization control unit 150, the degree of parallelism filtering necessity determination processing at decision block 110, as well as to control the parallelism of the filtering process in the horizontal filtering block 130 and the vertical filtering block 140.
[0094]
For example, parallel control unit 150, based on the size of the input image, may control the parallelism of the processing of each block. More specifically, the parallelization control unit 150, the size of the input image is to be relatively large, increasing the parallelism of the processing of each block. Thereby, a decrease in the delay or data rate caused the amount of processing increases with the size of the image can be prevented adaptively. Further, for example, parallel controller 150, a sequence parameter set, based on the parameters included in the picture parameter set or a slice header may control the degree of parallelism of the processing of each block. Thereby, it is possible to configure the flexible parallelism depending on the requirements of each user to develop system. For example, the degree of parallelism may be set in accordance with the constraints of implementations, such as cores or threads software processor.
[0095]
Further, in this embodiment, that allows parallel processing between macro blocks, it does not affect the result be set how the order of processing of each block in the image is finally output It means. Therefore, parallelization control unit 150, the order of the filtering necessity determination processing at decision block 110, as well as control the order of the filtering process in the horizontal filtering block 130 and vertical filtering block 140 for each block.
[0096]
More specifically, the parallelization control unit 150, in accordance with the filtering process dependencies between macroblocks may control the order of the filtering process. For example, in the existing techniques, an attempt to implement the parallel processing of each slice in the image, there is a case where the processing of dependencies between macroblocks adjacent to each other across the slice boundary causes the processing delay. However, in this embodiment, parallel control unit 150 can be performed before any other macro block filtering process for a macroblock adjacent to a slice boundary.
[0097]
For example, in FIG. 17, eight macroblocks MB10 ~ MB13 and MB20 ~ MB23 adjacent across the slice boundary is shown. Among them, the macro block MB10 ~ MB13 is, belongs to the slice SL1. Macro block MB20 ~ MB23 is, belongs to the slice SL2. Of these macroblocks, the filtering processing in the horizontal boundaries of macro blocks MB20 of slice SL2 is dependent on the filtering processing in the vertical boundary of the macroblock MB12 in the slice SL1. Likewise, filtering of the horizontal boundary of the macroblock MB21 of slice SL2 is dependent on the filtering processing in the vertical boundary of the macroblock MB13 in the slice SL1.
[0098]
In such a situation, as in the example of FIG. 18, parallel controller 150, for example, from the processing of the other boundary filtering process in the vertical boundary of the macroblock MB12 and MB13 of filtering the slice SL1 also it is preferentially executed. As a result, the filtering process of the slice SL2, that a large delay filtering processing in the horizontal boundaries of macro blocks MB20 and MB21 occurs is prevented. Also, as in the example of FIG. 19, when the filtering process in the vertical boundaries of all the macroblocks included in the slice SL1 is executed in parallel to the first well, the horizontal boundaries of macro blocks MB20 and MB21 of slice SL2 It does not cause a delay in the filtering process for.
[0099]
[3-2. Processing Flow
Next, with reference to FIGS. 20 to 22, the flow of processing by the deblocking filter 24.
[0100]
(1) a first scenario
Figure 20 is a flowchart illustrating an example flow of processing in the first scenario according to the deblocking filter 24. The first scenario is a scenario corresponding to the example of parallelism large Figure 13.
[0101]
Referring to FIG. 20, first, the vertical boundary determination unit 112-1 ~ 112-n, all of the vertical boundary, parallel determining (step necessity of filtering are included in the plurality of macro-blocks in the input image S102). Further,-n 114 horizontal boundary determining unit 114-1 for all horizontal boundaries included in the plurality of macro-blocks in the input image, parallel determines the necessity of filtering (step S104). These steps S102 and S104 are also performed in parallel.
[0102]
Next, the horizontal filtering unit 132-1 ~ 132-n, for all vertical boundary is determined that an application of the deblocking filter in step S102, to apply the deblocking filter in parallel (step S110). Next, the vertical filtering unit 142-1 ~ 142-n, for all of the horizontal boundary is determined that an application of the deblocking filter in step S104, to apply the deblocking filter in parallel (step S120).
[0103]
(2) second scenario
Figure 21 is a flowchart illustrating an example flow of processing in the second scenario according to the deblocking filter 24. The second scenario is a scenario corresponding to the example of a smaller view 14 of parallelism.
[0104]
Referring to FIG. 21, the vertical boundary determination unit 112-1 ~ 112-n, for all vertical boundaries included in one target macroblock in the input image, parallel determines the necessity of filtering ( step S202). Further,-n 114 horizontal boundary determining unit 114-1 for all horizontal boundaries included in the target macroblock, in parallel determines the necessity of filtering (step S204). These steps S202 and Step S204 are also performed in parallel.
[0105]
Next, the horizontal filtering unit 132-1 ~ 132-n, for vertical boundaries deblocking filter within the determined target macroblock which the to be applied in step S202, to apply the deblocking filter in parallel (step S210 ).
[0106]
The process in next step S220 is performed as an object the target macroblock in the previous loop. For the first target macroblock, the processing of step S220 may be skipped. Vertical filtering unit 142-1 ~ 142-n, for the determined horizontal boundary in step S204 of the previous loop and to apply the deblocking filter applies a deblocking filter in parallel (step S220).
[0107]
Thereafter, if the unprocessed target macroblock in the input image, the processing of steps S202 ~ S220 are repeated for the new target macroblock (step S230).
[0108]
On the other hand, if there are no remaining target macroblock Untreated vertical filtering unit 142-1 ~ 142-n are directed to the target macroblock of the last loop, is determined to apply the deblocking filter the horizontal boundary, applying a deblocking filter in parallel (step S240). Then, the process is terminated.
[0109]
Here, the processing each image unit and macroblock has been described two typical scenarios parallelization, these two scenarios, only an illustrative example. For example, a macro block of a particular number (two or four Tsunado), or in a variety of unit, such as a group of blocks arranged in the horizontal direction or the vertical direction, processing by the deblocking filter 24 may be parallelized.
[0110]
(3) filtering necessity determining process
diagram 22 corresponds to steps S202 and S204 in steps S102 and S104 as well as 22 in FIG. 21 is a flowchart showing an example of a flow of filtering necessity determining process.
[0111]
Referring to FIG. 22, first, the distortion evaluation unit 124, the mode information, based on the conversion coefficient information and motion vector information, to evaluate the distortion of each boundary (step S130). Here, if it is evaluated that there is a distortion (when the determination condition A is true), the process proceeds to step S134. On the other hand, if it is evaluated that there is no distortion, the process proceeds to step S140 (step S132).
[0112]
In step S134, based on the tap of the reference pixel that is constructed by the tap forming unit 121, the calculating section 122, the value of the edge is calculated (step S134). The threshold comparator 123, the calculated value is compared with the edge determination threshold value beta (Step S136). Here, if the value of the edge is smaller than the threshold value beta (when the determination condition B is true), the process proceeds to step S138. On the other hand, when the value of the edge is not less than the threshold value β, the process proceeds to step S140.
[0113]
In step S138, the filtering decision unit 125 determines that the object boundary determination should apply deblock filtering (step S138). On the other hand, in step S140, the filtering decision unit 125 determines that the object boundary determination should not apply deblocking filter (step S140).
[0114]
<4. Second Embodiment>
In the first embodiment, for filtering necessity determining process for a certain block, the pixel values of the pixels that are not updated by the filtering process for the other block is used. In contrast, in the second embodiment described in this section, by providing a memory for holding input pixel values to the deblocking filter, eliminating the constraints of filtering necessity determination process, the use of more varied determination condition the possibility to be.
[0115]
[4-1. Configuration Example of a deblocking filter]
(1) Components Description
Figure 23 is a block diagram showing an example of a detailed configuration of the deblocking filter 24 according to the second embodiment. Referring to FIG. 23, the deblocking filter 24, a line memory 208, a decision block 210, a horizontal filtering block 130, a vertical filtering block 140 and the parallel control unit 150.
[0116]
The line memory 208 stores the pixel values of the input image input to the deblocking filter 24. Pixel value to be stored by the line memory 208 is not updated by the filtering process in the horizontal filtering block 130 and the vertical filtering block 140. Pixel value to be stored by the line memory 208 is referred to in the filtering necessity determination process by each unit in the decision block 210 described below. The memory provided in the device for a different purpose from the processing of the deblocking filter 24 may be reused (shared) as the line memory 208.
[0117]
Decision block 210 includes a plurality of vertical boundary determination unit 212-1 ~ 212-n and a plurality of horizontal boundary determining unit 214-1 ~ 214-n. Each vertical boundary determination unit 212 and the horizontal boundary determination unit 214, the pixel values of the input image to the deblocking filter 24 to be stored by line memories 208, and determination information used for determining the necessity of filtering There is supplied.
[0118]
Each vertical boundary determination unit 212, using the input pixel value to the de-block filter 24, determines whether or not to apply the deblocking filter for each vertical boundary. Each vertical boundary determination unit 212, information indicating the determination result for each vertical boundary, and outputs to the horizontal filtering block 130.
[0119]
Each horizontal boundary determining unit 214 also uses the input pixel values to the de-block filter 24, determines whether or not to apply the deblocking filter for each horizontal boundary. Determination processing by the horizontal boundary determination unit 214, parallel performed a determination process by the vertical boundary determination unit 212. Each horizontal boundary determination unit 214, information indicating the determination result for each horizontal boundary, and outputs to the vertical filtering block 140.
[0120]
(2) various determination conditions
in the present embodiment, each vertical boundary determination unit 212, as in the existing method shown in FIG. 4, with reference to the third and sixth pixel row of blocks, each block necessity of filtering the vertical boundary may be determined. However, the referenced pixel value is a pixel value of the input image to the deblocking filter 24 are stored by the line memory 208. Similarly, each horizontal boundary determination unit 214 refers to the pixel of the third and sixth columns of the block, it may determine the necessity of filtering in the horizontal boundaries of each block. In this case, without changing the determination condition for filtering necessity determination process implemented in existing equipment, it is possible to easily realize the configuration according to the present embodiment.
[0121]
Further, each vertical boundary determination unit 212, upon judgment, may refer to the pixels of three or more rows of blocks. Similarly, each horizontal boundary determination unit 214, upon judgment, may refer to the pixels of three or more rows of blocks. Further, each vertical boundary determination unit 212 and the horizontal boundary determination unit 214 may use a different determination condition to the existing methods. Hereinafter, with reference to FIGS. 24 to 26, illustrating six examples of methods of determination that may be realized in the present embodiment, respectively.
WE claims
[Requested item 1]
A decoding unit for decoding an image from encoded stream,
a determining unit that executes determination processing of determining to apply the deblocking filter to the adjacent block adjacent to the block boundary in the image to be decoded by the decoding unit,
wherein a filtering unit applying a deblocking filter to the adjacent blocks is determined to apply the deblocking filter by the determination unit,
the determination processing for vertical block boundary and the horizontal block boundary, the reference pixels of the neighboring blocks of the re-construct the image used as a pixel, and a control unit to be executed by the determination unit
image processing apparatus comprising a.
[Requested item 2]
Wherein,
as said reference pixel of said determination processing for the vertical block boundary, the pixel position is not updated in the filtering of the horizontal block boundary by the filtering unit is used in the evaluation unit,
for the horizontal block border as the reference pixels of the determination process, thereby using the pixel position is not updated in the filtering of the vertical block boundary by the filtering unit to the evaluation unit,
the image processing apparatus according to claim 1.
[Requested item 3]
Wherein the control unit is configured to perform the determination unit parallel to the determination process in the vertical block boundaries and the horizontal block boundary, the image processing apparatus according to claim 2.
[Requested item 4]
Wherein,
the as said reference pixel of said determination processing for vertical block boundary, the pixels included in a horizontal line perpendicular to the vertical block boundary in the vicinity of the center of the vertical block boundary is used in the determination unit,
wherein as the reference pixels of the determination processing for horizontal block boundary, thereby using the pixel included in a vertical line perpendicular to said horizontal block boundary in the vicinity of the center of the horizontal block boundary to the determination unit,
an image according to claim 3 processing apparatus.
[Requested item 5]
Wherein,
as said horizontal lines, the two lines perpendicular to the vertical block boundary in the vicinity of the center of the vertical block boundary is used in the determination section,
as the vertical line, the vicinity of the center of the horizontal block boundary to use two lines perpendicular to the horizontal block boundary to the determination unit,
the image processing apparatus according to claim 4.
[Requested item 6]
Wherein the control unit, a sequence parameter set, based on the parameters included in the picture parameter set or a slice header, parallelism of the determination processing by the determination unit, or to control the parallelism of filtering by the filtering unit, according to claim the image processing apparatus according to 3.
[Requested item 7]
Wherein, based on the size of the image, the degree of parallelism of the determination processing by the determination unit, or to control the parallelism of filtering by said filtering unit, an image processing apparatus according to claim 3.
[Requested item 8]
And decoding the picture from the encoded stream,
and performing determination processing to determine to apply the deblocking filter to the adjacent block adjacent to the block boundary in the image to be decoded,
the deblocking filter in the determination processing and applying a deblocking filter to the determined neighboring blocks and to apply,
to the determination processing for vertical block boundary and the horizontal block boundary is performed using as reference pixels pixels of the neighboring blocks of the re-construct the image a,, and controlling the judgment processing
image processing method comprising.
[Requested item 9]
A determination unit which executes determination processing of determining to apply the deblocking filter to the adjacent block adjacent to the block boundary in the image to be locally decoded when encoding the encoding target image,
the deblocking by the determination unit a filtering unit applying a deblocking filter to the determined neighboring block to apply the filter,
the determination processing for vertical block boundary and the horizontal block boundary, using pixels of the neighboring blocks of the re-construct the image as reference pixels, wherein a control unit for executing the determination unit,
by using the filtered image by the filtering unit, and a coding unit for coding the coding target picture
image processing apparatus comprising a.
[Requested item 10]
Wherein,
as said reference pixel of said determination processing for the vertical block boundary, the pixel position is not updated in the filtering of the horizontal block boundary by the filtering unit is used in the evaluation unit,
for the horizontal block border as the reference pixels of the determination process, thereby using the pixel position is not updated in the filtering of the vertical block boundary by the filtering unit to the evaluation unit,
the image processing apparatus according to claim 9.
[Requested item 11]
Wherein the control unit is configured to perform the determination unit parallel to the determination process in the vertical block boundaries and the horizontal block boundary, the image processing apparatus according to claim 10.
[Requested item 12]
And performing determination processing to determine the encoding target image to apply a deblocking filter to the adjacent block adjacent to the block boundary in the image to be locally decoded in coding,
the deblocking filter in the determination processing and applying a deblocking filter to the determined neighboring blocks and to apply,
to the determination processing for vertical block boundary and the horizontal block boundary is performed using as reference pixels pixels of the neighboring blocks of the re-construct the image to, and controlling the determination process,
using the filtered image by the deblocking filter, and to encode the encoding target image
image processing method comprising.
| # | Name | Date |
|---|---|---|
| 1 | 201918021271-STATEMENT OF UNDERTAKING (FORM 3) [29-05-2019(online)].pdf | 2019-05-29 |
| 2 | 201918021271-SEQUENCE LISTING(PDF) [29-05-2019(online)].pdf | 2019-05-29 |
| 3 | 201918021271-REQUEST FOR EXAMINATION (FORM-18) [29-05-2019(online)].pdf | 2019-05-29 |
| 4 | 201918021271-PRIORITY DOCUMENTS [29-05-2019(online)].pdf | 2019-05-29 |
| 5 | 201918021271-POWER OF AUTHORITY [29-05-2019(online)].pdf | 2019-05-29 |
| 6 | 201918021271-FORM 18 [29-05-2019(online)].pdf | 2019-05-29 |
| 7 | 201918021271-FORM 1 [29-05-2019(online)].pdf | 2019-05-29 |
| 8 | 201918021271-FIGURE OF ABSTRACT [29-05-2019(online)].pdf | 2019-05-29 |
| 9 | 201918021271-DRAWINGS [29-05-2019(online)].pdf | 2019-05-29 |
| 10 | 201918021271-DECLARATION OF INVENTORSHIP (FORM 5) [29-05-2019(online)].pdf | 2019-05-29 |
| 11 | 201918021271-COMPLETE SPECIFICATION [29-05-2019(online)].pdf | 2019-05-29 |
| 12 | 201918021271-CLAIMS UNDER RULE 1 (PROVISIO) OF RULE 20 [29-05-2019(online)].pdf | 2019-05-29 |
| 13 | 201918021271-Proof of Right (MANDATORY) [05-07-2019(online)].pdf | 2019-07-05 |
| 14 | abstract.jpg | 2019-07-09 |
| 15 | 201918021271-OTHERS-080719.pdf | 2019-07-13 |
| 16 | 201918021271-Correspondence-080719.pdf | 2019-07-13 |
| 17 | 201918021271-FORM 3 [24-01-2020(online)].pdf | 2020-01-24 |
| 18 | 201918021271-FER.pdf | 2021-10-27 |
| 19 | 201918021271-PETITION UNDER RULE 137 [16-02-2022(online)].pdf | 2022-02-16 |
| 20 | 201918021271-FORM-26 [16-02-2022(online)].pdf | 2022-02-16 |
| 21 | 201918021271-FER_SER_REPLY [16-02-2022(online)].pdf | 2022-02-16 |
| 22 | 201918021271-CORRESPONDENCE [16-02-2022(online)].pdf | 2022-02-16 |
| 23 | 201918021271-CLAIMS [16-02-2022(online)].pdf | 2022-02-16 |
| 24 | 201918021271-PatentCertificate01-09-2023.pdf | 2023-09-01 |
| 25 | 201918021271-IntimationOfGrant01-09-2023.pdf | 2023-09-01 |
| 1 | searchstrategyE_20-10-2021.pdf |
| 2 | searchstrategy1E_21-10-2021.pdf |
| 3 | searchstrategy1E_20-10-2021.pdf |