Image decoding device, image decoding method and program

JP7651758B2Active Publication Date: 2025-03-26KDDI CORP
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2024077617
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2024-05-10
Publication Date
2025-03-26
Estimated Expiration
2040-03-30

AI Technical Summary

Benefits of technology

【0009】 本発明によれば、符号化及び復号対象のシーケンスに色差信号データが存在する場合のみ、Cb信号及びCr信号のデブロッキングフィルタ処理を制御するシンタックスを符号化及び復号することで、かかるシーケンスに色差データが存在しない場合に不要なシンタックスの符号化·復号処理及びビット量を削減できる画像復号装置、画像復号方法及びプログラムを提供することができる。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007651758000001
    Figure 0007651758000001
  • Figure 0007651758000002
    Figure 0007651758000002
  • Figure 0007651758000003
    Figure 0007651758000003
Patent Text Reader

Abstract

To reduce the encoding / decoding process and bit amount of unnecessary syntax when a sequence to be encoded and decoded is in 4:0:0 format or 4:4:4 format and each color image is encoded and decoded as a monochrome image.SOLUTION: In an image decoding device 200 according to the present invention, when a second flag indicates that deblocking filter processing is enabled and when syntax for controlling deblocking filter processing of Cb and Cr signals is not included as syntax in the picture header, a decoding unit 210 considers the value of the syntax for controlling deblocking filter processing of the Cb and Cr signals in the picture header to be identical to the value of the syntax for controlling deblocking filter processing of the Cb and Cr signals decoded as syntax in the picture parameter set.SELECTED DRAWING: Figure 5
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to an image decoding device, an image decoding method, and a program. [Background technology]

[0002] In Non-Patent Document 1, for some syntax that controls deblocking filter processing, the luminance signal (Y signal) and the color difference signals (Cb signal and Cr signal) each have their own syntax, and different values ​​can be set for each color signal. [Prior art documents] [Non-patent literature]

[0003] [Non-Patent Document 1] Versatile Video Coding (Draft 8), JVET-Q2001 Summary of the Invention [Problem to be solved by the invention]

[0004] However, in Non-Patent Document 1, there is a problem in that the syntax for controlling the deblocking filter processing of the Y signal, Cb signal, and Cr signal must always be coded and decoded, regardless of the color format of the sequence to be coded and decoded.

[0005] Therefore, the present invention has been made in consideration of the above-mentioned problems, and aims to provide an image decoding device, an image decoding method, and a program that can reduce the encoding / decoding process and bit amount of unnecessary syntax when chrominance signal data is not present in a sequence to be encoded and decoded, by encoding and decoding syntax that controls deblocking filter processing of Cb and Cr signals only when chrominance signal data is present in such a sequence. [Means for solving the problem]

[0006] A first feature of the present invention is an image decoding device including a decoding unit, wherein the decoding unit decodes, as a syntax of a picture parameter set, a first flag indicating whether or not a chrominance-related syntax is included in the picture parameter set, and, when the first flag indicates that the picture parameter set includes a chrominance-related syntax, decodes, as a syntax of the picture parameter set, a syntax for controlling deblocking filtering of a Cb signal and a Cr signal, and decodes, as a syntax of a picture header, a second flag indicating whether or not a deblocking filtering is enabled in a picture corresponding to a picture header to be decoded, and the second flag indicates whether or not a deblocking filtering is enabled in the picture corresponding to a picture header to be decoded. and when the second flag indicates that deblocking filtering is enabled and syntax for controlling deblocking filtering of the Cb and Cr signals is not included in the syntax of the picture header, the value of the syntax for controlling deblocking filtering of the Cb and Cr signals in the picture header is deemed to be identical to the value of the syntax for controlling deblocking filtering of the Cb and Cr signals decoded as the syntax of the picture parameter set.

[0007] A second feature of the present invention includes a step of decoding, as a syntax of a picture parameter set, a first flag indicating whether or not a chrominance-related syntax is included in the picture parameter set; decoding, as a syntax of the picture parameter set, a syntax for controlling deblocking filtering of a Cb signal and a Cr signal when the first flag indicates that the picture parameter set includes a chrominance-related syntax; decoding, as a syntax of the picture parameter set, a syntax for controlling deblocking filtering of a Cb signal and a Cr signal; decoding, as a syntax of a picture header, a second flag indicating whether or not deblocking filtering is enabled in a picture corresponding to a picture header to be decoded; and decoding, as a syntax of a picture header, a second flag indicating that deblocking filtering is enabled. and when the second flag indicates that deblocking filtering is enabled and when syntax for controlling deblocking filtering of the Cb and Cr signals is not included as syntax of the picture header, regarding a value of the syntax for controlling deblocking filtering of the Cb and Cr signals of the picture header to be identical to a value of the syntax for controlling deblocking filtering of the Cb and Cr signals decoded as syntax of the picture parameter set.

[0008] A third feature of the present invention is a program for use in an image decoding device, the program including: decoding, as a syntax of a picture parameter set, a first flag indicating whether or not a chrominance-related syntax is included in the picture parameter set; decoding, as a syntax of the picture parameter set, syntax for controlling deblocking filtering of a Cb signal and a Cr signal when the first flag indicates that the picture parameter set includes a chrominance-related syntax; and decoding, as a syntax of a picture header, a second flag indicating whether or not deblocking filtering is enabled in a picture corresponding to a picture header to be decoded; The gist of the present invention is to execute a step of decoding, as a syntax of the picture header, a syntax for controlling deblocking filtering of a luminance signal, when the second flag indicates that deblocking filtering is enabled; and, when the second flag indicates that deblocking filtering is enabled and a syntax for controlling deblocking filtering of the Cb and Cr signals is not included as a syntax of the picture header, regarding a value of the syntax for controlling deblocking filtering of the Cb and Cr signals of the picture header as being identical to a value of the syntax for controlling deblocking filtering of the Cb and Cr signals decoded as a syntax of the picture parameter set. Effect of the Invention

[0009] According to the present invention, it is possible to provide an image decoding device, an image decoding method, and a program that can reduce the encoding / decoding process and bit amount of unnecessary syntax when chrominance signal data is not present in a sequence to be encoded and decoded, by encoding and decoding syntax that controls deblocking filter processing of Cb and Cr signals only when chrominance signal data is present in the sequence to be encoded and decoded. [Brief description of the drawings]

[0010] [Figure 1] FIG. 1 illustrates an example of a configuration of an image processing system 10 according to an embodiment. [Diagram 2] FIG. 2 is a diagram illustrating an example of functional blocks of an image decoding device 200 according to an embodiment. [Diagram 3] 1 shows an example of the configuration of encoded data (bit stream) received by a decoding unit 210 of an image decoding device 200 according to an embodiment. [Figure 4] 13 is an example of control data included in SPS211. [Diagram 5] 13 is an example of control data included in the PPS 212. [Figure 6] 2 is an example of control data included in the picture header 213. [Figure 7] 13 is an example of control data included in slice header 214A / 214B. [Figure 8] 2 is a diagram showing an example of functional blocks of an in-loop filtering unit 250 of an image decoding device 200 according to an embodiment. FIG. [Figure 9] FIG. 2 is a diagram illustrating an example of functional blocks of a deblocking filter unit 250A of an in-loop filtering process unit 250 of an image decoding device 200 according to an embodiment. [Figure 10] 13 is a flowchart showing an example of a processing flow of a filter determination unit 254A / 254B of an in-loop filtering unit 250 of an image decoding device 200 according to an embodiment. [Figure 11] FIG. 11 is a diagram showing an example of a table used in the processing flow of a filter determination unit 254A / 254B of an in-loop filtering unit 250 of an image decoding device 200 according to an embodiment. [Figure 12] FIG. 2 is a diagram illustrating an example of functional blocks of an image encoding device 100 according to an embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0011] Hereinafter, the embodiments of the present invention will be described with reference to the drawings. Note that the components in the following embodiments can be appropriately replaced with existing components, and various variations including combinations with other existing components are possible. Therefore, the description of the following embodiments does not limit the content of the invention described in the claims.

[0012] (First embodiment) An image processing system 10 according to a first embodiment of the present invention will be described below with reference to Fig. 1 to Fig. 12. Fig. 1 is a diagram showing an image processing system 10 according to the present embodiment.

[0013] As shown in FIG. 1, an image processing system 10 includes an image encoding device 100 and an image decoding device 200.

[0014] The image encoding device 100 is configured to generate encoded data by encoding an input image signal. The image decoding device 200 is configured to generate an output image signal by decoding the encoded data.

[0015] Here, the encoded data may be transmitted from the image encoding device 100 to the image decoding device 200 via a transmission path. Alternatively, the encoded data may be provided from the image encoding device 100 to the image decoding device 200 after being stored in a storage medium.

[0016] (Image Decoding Device 200) Hereinafter, the image decoding device 200 according to this embodiment will be described with reference to Fig. 2. Fig. 2 is a diagram showing an example of functional blocks of the image decoding device 200 according to this embodiment.

[0017] As shown in FIG. 2, the image decoding device 200 includes a decoding unit 210, an inverse transform / inverse quantization unit 220, an adder 230, an inter prediction unit 241, an intra prediction unit 242, an in-loop filtering unit 250, and a frame buffer 260.

[0018] The decoding unit 210 is configured to decode the coded data generated by the image coding device 100, and to decode the coefficient level values.

[0019] Here, for example, the decoding is of entropy coded data that assigns codes of different lengths based on the probability of occurrence of coefficient level values.

[0020] The decoding unit 210 may be configured to obtain the control data by a decoding process of the encoded data.

[0021] Here, the control data may include size data such as a coding block (CU: Coding Unit) size, a prediction block (PU: Prediction Unit) size, a transform block (TU: Transform Unit) size, and the like.

[0022] The inverse transform / inverse quantization unit 220 is configured to perform an inverse transform process on the coefficient level values ​​output from the decoding unit 210. Here, the inverse transform / inverse quantization unit 220 may be configured to perform an inverse quantization process on the coefficient level values ​​prior to the inverse transform process.

[0023] The adder 230 is configured to add the prediction signal to the prediction residual signal output from the inverse transform / inverse quantization unit 220 to generate a pre-filtered decoded signal, and output the pre-filtered decoded signal to the intra prediction unit 242 and the in-loop filter processing unit 250.

[0024] Here, the unfiltered decoded signal forms a reference block used by the intra prediction unit 242 .

[0025] The inter prediction unit 241 is configured to generate a prediction signal by inter prediction (inter-frame prediction).

[0026] Specifically, the inter prediction unit 241 is configured to generate a prediction signal for each prediction block based on a motion vector decoded from encoded data and a reference signal included in a reference frame. The inter prediction unit 241 is configured to output the prediction signal to the adder 230.

[0027] The intra prediction unit 242 is configured to generate a prediction signal by intra prediction (intra-frame prediction).

[0028] Specifically, the intra prediction unit 242 is configured to identify a reference block included in the target frame, and generate a prediction signal for each prediction block based on the identified reference block. The intra prediction unit 242 is configured to output the prediction signal to the adder 230.

[0029] The in-loop filtering unit 250 is configured to perform filtering on the unfiltered decoded signal output from the adder 230 , and to output the filtered decoded signal to the frame buffer 260 .

[0030] Here, the in-loop filter process may be composed of a plurality of filter processes. For example, the filter processes include a deblocking filter process that reduces distortion occurring at the boundary of a block (an encoding block, a prediction block, a transformation block, or a subblock obtained by dividing them), and an adaptive loop filter process that switches filters based on filter coefficients, filter selection information, local characteristics of an image pattern, and the like transmitted from the image encoding device 100.

[0031] The frame buffer 260 is configured to store reference frames used by the inter prediction unit 241 .

[0032] Here, the filtered decoded signal forms a reference frame used by the inter prediction unit 241.

[0033] (Decoding unit 210) Hereinafter, the control data decoded by the decoding unit 210 will be described with reference to FIGS.

[0034] FIG. 3 shows an example of the structure of encoded data (bit stream) received by the decoding unit 210. In FIG.

[0035] The bitstream may include an SPS 211 at the beginning. The SPS 211 is a set of control data for each sequence (a set of pictures). A specific example will be described later. Each SPS 211 includes at least SPS id information for identifying each SPS 211 when there are multiple SPSs 211.

[0036] In such a bitstream, a PPS 212 may be included next to an SPS 211. A PPS 212 is a set of control data in units of pictures (a set of slices). Each PPS 212 includes at least PPS id information for identifying each PPS 212 when there are multiple PPSs 212. Also, each PPS 212 includes at least SPS id information for specifying an SPS 211 corresponding to each PPS 212.

[0037] In such a bitstream, a picture header 213 may be included next to the PPS 212. The picture header 213 is also a collection of control data for each picture (a collection of slices). A single PPS 212 can be shared by multiple pictures. On the other hand, the picture header 213 is always transmitted for each picture. The picture header 213 includes at least PPS id information for specifying the PPS 212 corresponding to each picture.

[0038] In such a bitstream, a slice header 214A may be included following the picture header 213. The slice header 214A is a collection of control data for each slice. A specific example will be described later. The information of the above-mentioned picture header 213 may be included as part of the slice header 214A.

[0039] In such a bitstream, slice data 215A may be included following the slice header 214A. The slice data 215A may include the above-mentioned coefficient level values, size data, and the like.

[0040] As described above, each slice data 214A / 215A corresponds to one slice header 215A / 215B, one picture header 213, one PPS 212, and one SPS 211. As described above, the picture header 213 specifies which PPS 212 to reference by using a PPS id, and further, the PPS 212 specifies which SPS 211 to reference by using an SPS id, so that common SPS 211 and PPS 212 can be used for multiple slice data 215A / 215B.

[0041] In other words, the SPS 211 and the PPS 212 do not necessarily need to be transmitted for each picture and for each slice. For example, as shown in Fig. 3, the bitstream may be configured such that the SPS 211 and the PPS 212 are not coded immediately before the slice headers 214A / 214B.

[0042] Note that the configuration in Fig. 3 is merely an example. As long as the slice headers 214A / 214B, the picture header 213, the PPS 212, and the control data specified by the SPS 211 correspond to each slice data 215A / 215B, elements other than those described above may be added as components of the bit stream. Similarly, the data may be shaped into a different configuration from that in Fig. 3 when transmitted.

[0043] FIG. 4 is an example of the control data contained in the SPS 211.

[0044] As described above, the SPS 211 includes at least SPS id information (sps_seq_parameter_set_id) for identifying each SPS 211.

[0045] The SPS 211 may include chroma format information (chroma#format#idc) of the sequence. For example, it can be defined that a value of "0" of chroma#format#idc means 4:0:0 format (monochrome), a value of "1" of chroma#format#idc means 4:2:0 format, a value of "2" of chroma#format#idc means 4:2:2 format, and a value of "3" of chroma#format#idc means 4:4:4 format.

[0046] Also, when the value of chroma#format#idc is "3", that is, when the format is 4:4:4, SPS211 may additionally include separate plane suitability information (separate#colour#plane#flag).

[0047] For example, if the value of separate#colour#plane#flag is "0", the decoding unit 210 may be configured to perform decoding using the correlation between the three color planes (e.g., YCbCr, RGB, etc.), and if the value of separate#colour#plane#flag is "1", it may be configured to decode these color planes independently (treating each as a monochrome image).

[0048] If separate_colour_plane_flag is not included in the SPS 211, the decoding unit 210 may regard the value of separate_colour_plane_flag as "0".

[0049] Furthermore, the decoding unit 210 may set the value of the variable ChromaArrayType by referring to the above-mentioned values ​​of chroma_format_idc and separate_colour_plane_flag.

[0050] For example, when the value of separate#colour#plane#flag is "0", the decoding unit 210 may set the value of ChromaArrayType to the same value as the value of chroma#format#idc.

[0051] Furthermore, when the value of separate#colour#plane#flag is "1", the decoding unit 210 may set the value of chroma#format#idc to "0".

[0052] With the above definitions, ChromaArrayType=0 means either a 4:0:0 format (monochrome) or a 4:4:4 format in which each color plane is decoded as a monochrome image.

[0053] In other words, when ChromaArrayType=0, it can be interpreted that no chrominance data exists in the sequence, and when ChromaArrayType!=0, it can be interpreted that chrominance data exists in the sequence.

[0054] FIG. 5 is an example of the control data included in the PPS 212.

[0055] As described above, the PPS 212 includes at least PPS ID information (pps#pic#parameter#set#id) for identifying each PPS 212. Also, as described above, the PPS 212 includes at least pps#seq#parameter#set#id, which is SPS ID information for specifying the SPS 211 corresponding to the PPS 212.

[0056] The PPS 212 may include a flag (pps_chroma_tool_offsets_present_flag) that indicates whether the PPS 212 includes chrominance-related syntax.

[0057] For example, if the value of pps#chroma#tool#offsets#present#flag is “0”, it may be defined as not including chrominance-related syntax, and if the value of pps#chroma#tool#offsets#present#flag is “1”, it may be defined as including chrominance-related syntax.

[0058] Note that when ChromaArrayType=0, that is, when no chrominance data exists in the sequence, the value of pps#chroma#tool#offsets#present#flag may be restricted to be “0”.

[0059] The PPS 212 may include a flag (deblocking_filter_control_present_flag) indicating whether the PPS 212 includes syntax for controlling a deblocking filter process, which will be described later.

[0060] For example, if the value of deblocking#filter#control#present#flag is "0", it can be defined as not including syntax for controlling deblocking filter processing, and if the value of deblocking#filter#control#present#flag is "1", it can be defined as including syntax for controlling deblocking filter processing.

[0061] Furthermore, when the value of deblocking_filter_control_present_flag is "1", the PPS 212 may include deblocking_filter_override_enabled_flag as syntax for controlling the deblocking filter process.

[0062] For example, if the value of deblocking#filter#override#enabled#flag is "1", it may be defined that overwriting of the deblocking filter processing control information contained in PPS 212 is permitted by information contained in picture header 213 or slice header 214A / 214B described below, and if the value of deblocking#filter#override#enabled#flag is "0", it may be defined that overwriting of such deblocking filter processing control information is not permitted.

[0063] Furthermore, if the PPS 212 does not include the deblocking_filter_override_enabled_flag, the decoding unit 210 may regard the value of the deblocking_filter_override_enabled_flag as "0".

[0064] The PPS 212 may include a flag (pps_deblocking_filter_disabled_flag) that defines whether deblocking filter processing is enabled or disabled on a picture-by-picture basis.

[0065] For example, it may be defined that when pps#deblocking#filter#disabled#flag=0, deblocking filter processing is enabled, and when pps#deblocking#filter#disabled#flag=1, deblocking filter processing is disabled.

[0066] Furthermore, if the PPS 212 does not include the pps#deblocking#filter#disabled#flag, the decoding unit 210 may regard the value of the pps#deblocking#filter#disabled#flag as "0 (deblocking filter processing is enabled)".

[0067] When the value of pps_deblocking_filter_disabled_flag is "0" (when deblocking filter processing is enabled), the PPS 212 may include pps_beta_offset_div2 and pps_tc_offset_div2.

[0068] The values ​​of pps#beta#offset#div2 and pps#tc#offset#div2 are used when calculating the values ​​of variables β and tC used in deblocking filter processing of a luminance signal (Y signal) which will be described later.

[0069] If the PPS 212 does not include pps#beta#offset#div2 and pps#tc#offset#div2, the decoding unit 210 may regard each of these values ​​as "0".

[0070] Furthermore, when the value of pps#chroma#tool#offsets#present#flag is "1", PPS212 may include pps#cb#beta#offset#div2, pps#cb#tc#offset#div2, pps#cr#beta#offset#div2 and pps#cb#tc#offset#div2 used to calculate the variables β and tC used in the deblocking filter processing of each of the color difference signals (Cb signal and Cr signal).

[0071] If PPS 212 does not include pps#cb#beta#offset#div2, pps#cb#tc#offset#div2, pps#cr#beta#offset#div2, and pps#cb#tc#offset#div2, decoding unit 210 may regard each of these values ​​as 0.

[0072] As described above, by including syntax (pps#cb#beta#offset#div2, pps#cb#tc#offset#div2, pps#cr#beta#offset#div2, and pps#cb#tc#offset#div2) for controlling deblocking filter processing of the chrominance signal in the PPS212 only when the value of pps#chroma#tool#offsets#present#flag indicates that the PPS212 includes syntax related to chrominance, it is possible to prevent unnecessary syntax from being included in the PP212S when, for example, the picture is in 4:0:0 format or when the picture is in 4:4:4 format and each color plane is considered to be a monochrome image and decoded, that is, when chrominance data does not exist. This makes it possible to reduce unnecessary decoding processing and the bit amount of the PPS212.

[0073] In addition, when the value of deblocking_filter_override_enabled_flag is "1", the PPS 212 may include a flag (dbf_info_in_ph_flag) indicating whether the picture header 213 described below includes information for controlling the deblocking filter process.

[0074] For example, when dbf#info#in#ph#flag=0, it may be defined that the picture header 213 does not include deblocking filter processing control information, and when dbf#info#in#ph#flag=1, it may be defined that the picture header 213 includes deblocking filter processing control information.

[0075] Furthermore, if the PPS 212 does not include dbf_info_in_ph_flag, the decoding unit 210 may regard the value of dbf_info_in_ph_flag as "0".

[0076] FIG. 6 is an example of the control data included in the picture header 213.

[0077] As described above, the picture header 213 includes at least ph#pic#parameter##set#id, which is PPS id information for specifying the PPS 212 corresponding to the picture header 213 .

[0078] In addition, if the value of the deblocking#filter#override#enabled#flag and the value of the dbf#info#in#ph#flag associated with the PPS 212 specified by ph#pic#parameter##set#id are both "1", the picture header 213 may include the ph#deblocking#filter#override#flag.

[0079] If the picture header 213 does not include ph#deblocking#filter#override#flag, the decoding unit 210 may regard the value of ph#deblocking#filter#override#flag as "0".

[0080] If the value of ph#deblocking#filter#override#flag is "1", the picture header 213 may include ph#deblocking#filter#disabled#flag.

[0081] If ph_deblocking_filter_disabled_flag=1, it means that deblocking filtering is disabled in the slice corresponding to the picture header 213 in question.

[0082] On the other hand, if ph_deblocking_filter_disabled_flag=0, this means that deblocking filtering is enabled in the slice corresponding to the picture header 213 in question.

[0083] If the picture header 213 does not include ph#deblocking#filter#disabled#flag, the decoding unit 210 may consider the value of ph#deblocking#filter#disabled#flag to be the same as the value of pps#deblocking#filter#disabled#flag.

[0084] If the value of ph_deblocking_filter_disabled_flag is "0" (if deblocking filtering is enabled), the picture header 213 may include ph_beta_offset_div2 and ph_tc_offset_div2.

[0085] The values ​​of ph#beta#offset#div2 and ph#tc#offset#div2 are used when calculating the values ​​of variables β and tC used in deblocking filter processing of a luminance signal (Y signal) which will be described later.

[0086] If ph#beta#offset#div2 and ph#tc#offset#div2 are not included in the picture header 213, the decoding unit 210 may regard these values ​​as being the same as pps#beta#offset#div2 and pps#tc#offset#div2, respectively.

[0087] Furthermore, when the value of ChromaArrayType is other than "0" (i.e., when ChromaArrayType = 1, 2, or 3), the picture header 213 may include ph#cb#beta#offset#div2, ph#cb#tc#offset#div2, ph#cr#beta#offset#div2, and ph#cr#tc#offset#div2 used to calculate the variables β and tC used in the deblocking filter processing of each of the color difference signals (Cb signal and Cr signal).

[0088] If the picture header 213 does not include ph#cb#beta#offset#div2, ph#cb#tc#offset#div2, ph#cr#beta#offset#div2 and ph#cr#tc#offset#div2, the decoding unit 210 may consider each value to be the same as pps#cb#beta#offset#div2, pps#cb#tc#offset#div2, pps#cr#beta#offset#div2 and pps#cr#tc#offset#div2.

[0089] As described above, by including the syntax (ph#cb#beta#offset#div2, ph#cb#tc#offset#div2, ph#cr#beta#offset#div2, and ph#cr#tc#offset#div2) for controlling the deblocking filter process of the chrominance signal in the picture header 213 only when the value of ChromaArrayType indicates that chrominance data exists, it is possible to prevent unnecessary syntax from being included in the picture header 213 when, for example, the picture is in 4:0:0 format or when the picture is in 4:4:4 format and each color plane is decoded as a monochrome image, that is, when chrominance data does not exist. This makes it possible to reduce unnecessary decoding processes and the bit amount of the picture header 213.

[0090] FIG. 7 is an example of control data included in the slice header 214A / 214B.

[0091] The slice header 214A / 214B may include picture_header_in_slice_header_flag.

[0092] When the value of picture_header_in_slice_header_flag is "1", the slice header 214A / 214B can include the syntax of the picture header 213 described in FIG. 6 at the position of picture_header_structure( ) shown in FIG.

[0093] In addition, if the value of the deblocking#filter#override#enabled#flag and the value of the dbf#info#in#ph#flag related to the PPS 212 specified by ph#pic#parameter#set#id in the picture header 213 to which the slice header 214A / 214B corresponds are both "1", the slice header 214A / 214B may include a slice#deblocking#filter#override#flag.

[0094] If the slice header 214A / 214B does not include the slice_deblocking_filter_override_flag, the decoding unit 210 may regard the value of the slice_deblocking_filter_override_flag as "0".

[0095] If the value of slice#deblocking#filter#override#flag is "1", the picture header 214A / 214B is May include slice#deblockling#filter#disabled#flag.

[0096] Here, when slice#deblockling#filter#disabled#flag=1, it means that deblocking filter processing is disabled in the slice, whereas when slice#deblockling#filter#disabled#flag=0, it means that deblocking filter processing is enabled in the slice.

[0097] If the slice header 214A / 214B does not include slice_deblockling_filter_disabled_flag, the decoding unit 210 may consider the value of slice_deblockling_filter_disabled_flag to be the same as the value of ph_deblockling_filter_disabled_flag.

[0098] When the value of slice_deblockling_filter_disabled_flag is "0" (when deblocking filtering is enabled), the slice header 214A / 214B may include slice_beta_offset_div2 and slice_tc_offset_div2.

[0099] The values ​​of slice_beta_offset_div2 and slice_tc_offset_div2 are used when calculating the values ​​of variables β and tC used in deblocking filter processing of a luminance signal (Y signal) which will be described later.

[0100] If slice#beta#offset#div2 and slice#tc#offset#div2 are not included in the slice header 214A / 214B, the decoding unit 210 may consider the respective values ​​to be the same as ph#beta#offset#div2 and ph#tc#offset#div2.

[0101] Furthermore, when the value of ChromaArrayType is other than "0" (i.e., when ChromaArrayType = 1, 2 or 3), the slice header 214A / 214B may include slice#cb#beta#offset#div2, slice#cb#tc#offset#div2, slice#cr#beta#offset#div2 and slice#cr#tc#offset#div2 used to calculate the variables β and tC used in the deblocking filter processing of each of the color difference signals (Cb signal and Cr signal).

[0102] If slice#cb#beta#offset#div2, slice#cb#tc#offset#div2, slice#cr#beta#offset#div2 and slice#cr#tc#offset#div2 are not included in slice header 214A / 214B, decoding unit 210 may consider each value to be the same as ph#cb#beta#offset#div2, ph#cb#tc#offset#div2, ph#cr#beta#offset#div2 and ph#cr#tc#offset#div2.

[0103] As described above, by including syntax (slice#cb#beta#offset#div2, slice#cb#tc#offset#div2, slice#cr#beta#offset#div2, and slice#cr#tc#offset#div2) for controlling deblocking filter processing of the chrominance signal in the slice header 214A / 214B only when the value of ChromaArrayType indicates that chrominance data exists, it is possible to prevent unnecessary syntax from being included in the slice header 214A / 214B when, for example, the picture is in 4:0:0 format or when the picture is in 4:4:4 format and each color plane is considered to be a monochrome image and decoded, that is, when chrominance data does not exist. This makes it possible to reduce unnecessary decoding processing and the bit amount of the slice header 214A / 214B.

[0104] The flag values ​​described above are merely examples. When the meanings of the flag values ​​("0" and "1") are reversed, the corresponding processes can be reversed accordingly to achieve equivalent processes. Furthermore, for syntax elements that do not have a reference relationship with each other, the order of decoding may be reversed. Furthermore, syntax elements other than those described above may be included in the SPS 211, PPS 212, picture header 213, and slice headers 214A / 214B, respectively.

[0105] (In-loop filter processing unit 250) Hereinafter, the in-loop filtering unit 250 according to this embodiment will be described with reference to Fig. 8. Fig. 8 is a diagram showing an example of functional blocks of the in-loop filtering unit 250 of the image decoding device 200 according to this embodiment.

[0106] As shown in FIG. 8, in-loop filtering unit 250 has a deblocking filter unit 250A, an SAO unit 250B, and an adaptive loop filter unit 250C.

[0107] The SAO unit 250B is a block that performs sample adaptive offset processing, and since known processing can be used, a detailed description of the processing content will be omitted.

[0108] Similarly, the adaptive loop filter unit 250C is a block that performs adaptive loop filter processing, and since known processing can be used, a detailed description of the processing content will be omitted.

[0109] An example of the processing performed by the deblocking filter unit 250A will now be described.

[0110] As shown in FIG. 9, the deblocking filter unit 250A has a block boundary detection unit 251, a boundary strength determination unit 253, a filter determination unit 254, and a filter processing unit 255.

[0111] Here, the configurations ending in "A" are configurations relating to deblocking filter processing for vertical block boundaries, and the configurations ending in "B" are configurations relating to deblocking filter processing for horizontal block boundaries.

[0112] Below, a case will be illustrated in which deblocking filtering is performed on a block boundary in the vertical direction and then deblocking filtering is performed on a block boundary in the horizontal direction.

[0113] As described above, the deblocking filter process may be applied to the coding block, may be applied to the prediction block, or may be applied to the transformation block. Also, the deblocking filter process may be applied to the sub-blocks obtained by dividing each of the above-mentioned blocks. That is, the target block and the neighboring block may be the coding block, may be the prediction block, may be the transformation block, or may be the sub-blocks obtained by dividing these.

[0114] When applying a deblocking filter to sub-blocks, blocks in the following description can be appropriately read as sub-blocks.

[0115] Since the deblocking filtering process for a vertical block boundary and the deblocking filtering process for a horizontal block boundary are similar processes, the deblocking filtering process for a vertical block boundary will be described below.

[0116] The block boundary detection unit 251A is configured to detect the boundary of a block based on control data indicating a block size. Here, the block is a coding block (CU), a prediction block (PU), or a transformation block (TU). Since a known method can be applied to a specific detection method, a detailed description is omitted.

[0117] The boundary strength determination unit 253A is configured to determine the boundary strength of the block boundary between the target block and the adjacent block. For example, the boundary strength may be defined to take one of three integer values: "0", "1", and "2". A specific method for calculating the boundary strength can be applied using known methods, and therefore detailed description thereof will be omitted.

[0118] The filter determination unit 254A is configured to determine the type of filtering (eg, deblocking filtering) to apply to block boundaries.

[0119] For example, the filter determination unit 254A may be configured to determine whether or not to apply filter processing to the block boundary and whether to apply weak filter processing or strong filter processing to the block boundary, based on the boundary strength of the block boundary, the quantization parameters included in the target block and the adjacent block, and the like.

[0120] Furthermore, the filter determination unit 254A may determine the suitability of filter processing and the filter strength (weak filter or strong filter) for block boundaries of a luminance signal and block boundaries of a color difference signal (Cb signal or Cr signal) using different procedures.

[0121] The filter determination unit 254A may be configured to determine not to apply filtering when the boundary strength of the block boundary is "0."

[0122] An example of a specific processing procedure at a block boundary of a color difference signal (Cb signal or Cr signal) in the filter determination unit 254A will be described below with reference to Fig. 10. Although the processing procedure for the Cb signal will be described below, the Cr signal can also be processed in a similar procedure.

[0123] In step S101, the filter determination unit 254A checks the boundary strength of the block boundary. If the boundary strength is "0", the process proceeds to step S109, where the filter determination unit 254A determines not to apply a deblocking filter to the block boundary. If the boundary strength is greater than "0", the process proceeds to step S102.

[0124] In step S102, the filter determination unit 254A calculates the value of the variable β and the value of the variable tC.

[0125] First, the method of calculating the variable β will be described.

[0126] First, the filter determination unit 254A calculates the value of the variable Q as follows.

[0127] Q=Clip3(0,63,QpC+(slice#cb#beta#offset#div2<<1)) Here, QpC is, for example, the average value of the quantization parameters of two blocks adjacent to the block boundary.

[0128] Secondly, the filter determination unit 254A determines β' using the value of Q and the table shown in FIG.

[0129] Thirdly, the filter determination unit 254A calculates the variable β based on the above determined β' by the following formula:

[0130] β=β′×(1<<(BitDepth-8)) where BitDepth is the internal bit depth of the pixel values.

[0131] Next, a method for calculating the variable tC will be described.

[0132] First, the filter determination unit 254A calculates the value of the variable Q as follows.

[0133] Q=Clip3(0,65,QpC+2×(bS-1)+(slice#cb#tc#offset#div2<<1)) where bS is the boundary strength value.

[0134] Second, the filter determination unit 254A determines tC' using the above-mentioned value of Q and the table shown in FIG.

[0135] Thirdly, the filter determination unit 254A calculates a variable tC based on the above-determined tC' by the following formula.

[0136] tC=(BitDeapth<10)?(tC'+2)>>(10-BitDeapth):tC'×(1<<(BitDeapth-10)) As described above, the filter determination unit 254A calculates the value of the variable β and the value of the variable tC, and the process proceeds to step S103.

[0137] In step S103, the filter determination unit 254A determines whether or not a filter is to be applied.

[0138] For example, if the maximum filter lengths of the two blocks adjacent to the block boundary (for convenience, one is called "block P" and the other is called "block Q") are both "1" and the boundary strength is not "2", the process proceeds to step S109, and the filter determination unit 254A determines not to apply a filter. Otherwise, the process proceeds to step S104.

[0139] The maximum filter lengths (maxFilterLengthP, maxFilterLengthQ) can be calculated in advance by the method described in Non-Patent Document 1, for example.

[0140] In step S104, the filter determination unit 254A checks whether the maximum filter length (maxFilterLengthQ) corresponding to the block Q is "3".

[0141] If the maximum filter length (maxFilterLengthQ) corresponding to the block Q is not "3", the process proceeds to step S108, where the filter determination unit 254A determines to apply a weak filter. Otherwise, the process proceeds to step S105.

[0142] In step S105, the filter determination unit 254A first calculates a variable d indicating the likelihood of the block boundary being a block noise. The variable d can be calculated by the method described in Non-Patent Document 1, for example.

[0143] Secondly, the filter determination unit 254A checks whether the variable d is smaller than the above-mentioned variable β. If the variable d is smaller than the variable β, the process proceeds to step S106. If not, the process proceeds to step S108, where the filter determination unit 254A determines to apply a weak filter.

[0144] In step S106, the filter determination unit 254A checks whether all of the following three predetermined conditions are satisfied.

[0145] dpq<(β>>2) (Abs(p3-P0)+Abs(q0-q3))<(β>>3) Abs(p0-q0)<((5×tC+1)) Here, dpq is a variable that indicates the likelihood of block noise at the block boundary, similar to the above-mentioned variable d. Specifically, dpq can be calculated by the method described in Non-Patent Document 1, for example.

[0146] Furthermore, p0 and q0 are pixel values ​​of pixels adjacent to the block boundary in blocks P and Q. Similarly, p3 and q3 are pixel values ​​of pixels located four pixels away from the block boundary in blocks P and Q. Furthermore, Abs() is a function that returns the absolute value of an argument.

[0147] If all of the above three conditions are satisfied, the process proceeds to step S107, where the filter determination unit 254A determines to apply a strong filter. Otherwise, the process proceeds to step S108, where the filter determination unit 254A determines to apply a weak filter.

[0148] As described above, the filter determination unit 254A can use the values ​​of the variables β and tC to determine whether to apply a filter to the block boundary, and if so, whether to use a weak filter or a strong filter.

[0149] In the above example, it can be seen that the larger the value of the variable β and the value of the variable tC, the more likely a filter is to be applied, and also the more likely a strong filter type is to be applied.

[0150] In addition, the values ​​of the variables β and tC can be adjusted, for example, for the Cb signal, by slice#cb#beta#offset#div2 and slice#cb#tc#offset#div2. By setting the values ​​of the syntax on a picture-by-picture and slice-by-slice basis, it is possible to adjust the ease with which the filter is applied and the strength of the filter.

[0151] The filter processing unit 255A is configured to perform processing on the pre-deblocked image based on the determination of the filter determination unit 254A. The processing on the pre-deblocked image is no filtering, weak filtering, strong filtering, or the like.

[0152] (Image encoding device 100) Hereinafter, the image encoding device 100 according to this embodiment will be described with reference to Fig. 12. Fig. 12 is a diagram showing an example of functional blocks of the image encoding device 100 according to this embodiment.

[0153] As shown in FIG. 12, the image encoding device 100 includes an inter prediction unit 111, an intra prediction unit 112, a subtractor 121, an adder 122, a transform / quantization unit 131, an inverse transform / inverse quantization unit 132, an encoding unit 140, an in-loop filter processing unit 150, and a frame buffer 160.

[0154] Like the inter prediction unit 241, the inter prediction unit 111 is configured to generate a prediction signal by inter prediction (inter-frame prediction).

[0155] Specifically, the inter prediction unit 111 is configured to identify a reference block contained in the reference frame by comparing a frame to be encoded (hereinafter, the target frame) with a reference frame stored in the frame buffer 160, and to determine a motion vector for the identified reference block.

[0156] Moreover, the inter prediction unit 111 is configured to generate a prediction signal included in the prediction block for each prediction block based on the reference block and the motion vector. The inter prediction unit 111 is configured to output the prediction signal to the subtractor 121 and the adder 122. Here, the reference frame is a frame different from the target frame.

[0157] Like the intra prediction unit 242, the intra prediction unit 112 is configured to generate a prediction signal by intra prediction (intra-frame prediction).

[0158] Specifically, the intra prediction unit 112 is configured to identify a reference block included in a target frame, and generate a prediction signal for each prediction block based on the identified reference block. The intra prediction unit 112 is also configured to output the prediction signal to the subtractor 121 and the adder 122.

[0159] Here, the reference block is a block that is referred to for a block to be predicted (hereinafter, a target block). For example, the reference block is a block adjacent to the target block.

[0160] The subtractor 121 is configured to subtract the prediction signal from the input image signal, and output the prediction residual signal to the transformation and quantization unit 131. Here, the subtractor 121 is configured to generate a prediction residual signal that is the difference between the prediction signal generated by intra prediction or inter prediction and the input image signal.

[0161] The adder 122 is configured to add the prediction signal to the prediction residual signal output from the inverse transform / inverse quantization unit 132 to generate a pre-filtered decoded signal, and output the pre-filtered decoded signal to the intra prediction unit 112 and the in-loop filter processing unit 150.

[0162] Here, the unfiltered decoded signal forms a reference block used by the intra prediction unit 112 .

[0163] The transform / quantization unit 131 is configured to perform a transform process on the prediction residual signal and to obtain a coefficient level value. Furthermore, the transform / quantization unit 131 may be configured to quantize the coefficient level value.

[0164] Here, the transform process is a process of transforming a prediction residual signal into a frequency component signal. In the transform process, a basis pattern (transformation matrix) corresponding to a discrete cosine transform (DCT) may be used, or a basis pattern (transformation matrix) corresponding to a discrete sine transform (DST) may be used.

[0165] The inverse transform / inverse quantization unit 132 is configured to perform inverse transform processing on the coefficient level values ​​output from the transform / inverse quantization unit 131, similarly to the inverse transform / inverse quantization unit 220. Here, the inverse transform / inverse quantization unit 132 may be configured to perform inverse quantization of the coefficient level values ​​prior to the inverse transform processing.

[0166] Here, the inverse transformation process and inverse quantization are performed in the reverse order to the transformation process and quantization performed by the transformation and quantization unit 131 .

[0167] The encoding unit 140 is configured to encode the coefficient level values ​​output from the transform / quantization unit 131, and output encoded data.

[0168] Here, for example, the coding is entropy coding, which assigns codes of different lengths based on the probability of occurrence of coefficient level values.

[0169] The encoding unit 140 is also configured to encode control data for use in the decoding process in addition to the coefficient level values.

[0170] As mentioned above, the control data may include size data such as the coding block size, the prediction block size, and the transform block size.

[0171] Similar to in-loop filter processing unit 250, in-loop filter processing unit 150 is configured to perform filtering on the unfiltered decoded signal output from adder 122 and to output the filtered decoded signal to frame buffer 160.

[0172] The frame buffer 160 is configured to store reference frames used by the inter prediction unit 111 .

[0173] Here, the filtered decoded signal forms a reference frame used in the inter prediction unit 111.

[0174] Furthermore, the above-described image encoding device 100 and image decoding device 200 may be realized as a program that causes a computer to execute each function (each process).

[0175] In each of the above embodiments, the present invention has been described using the image encoding device 100 and the image decoding device 200 as examples. However, the present invention is not limited to such examples, and can be similarly applied to an image encoding / decoding system having the functions of the image encoding device 100 and the image decoding device 200. [Explanation of symbols]

[0176] 10. Image processing system 100...Image encoding device 111, 241…Inter prediction section 112, 242...Intra prediction section 121…Subtractor 122, 230…Adder 131...Transformation and quantization section 132, 220...Inverse transform and inverse quantization unit 140...encoding section 150, 250...In-loop filter processing section 160, 260... frame buffer 200...Image decoding device 210…Decoding section 211…SPS 212…PPS 213...Picture header 214A, 214B... slice headers 215A, 215B... slice data 250A…Deblocking filter section 251, 251A, 251B...Block boundary detection section 253, 253A, 253B...Boundary strength determination section 254, 254A, 254B... Filter determination section 255, 255A, 255B...Filter processing section 250B…SAO Department 250C…Adaptive loop filter section

Claims

1. An image decoding device, comprising: A decoding unit is provided, The decoding unit is Decoding a first flag indicating whether a chrominance-related syntax is included in the picture parameter set as a syntax of the picture parameter set; When the first flag indicates that the picture parameter set includes a chrominance-related syntax, decoding a syntax for controlling a deblocking filter process of a Cb signal and a Cr signal as a syntax of the picture parameter set; Decoding a second flag indicating whether deblocking filtering is enabled in a picture corresponding to the picture header to be decoded, as a syntax of the picture header; When the second flag indicates that deblocking filtering is enabled, decoding a syntax for controlling deblocking filtering of a luminance signal as a syntax of the picture header; an image decoding device, characterized in that, when the second flag indicates that deblocking filtering is enabled and when a syntax for controlling the deblocking filtering of the Cb and Cr signals is not included as a syntax of the picture header, a value of the syntax for controlling the deblocking filtering of the Cb and Cr signals of the picture header is considered to be identical to a value of the syntax for controlling the deblocking filtering of the Cb and Cr signals decoded as a syntax of the picture parameter set.

2. decoding, as a syntax of a picture parameter set, a first flag indicating whether the picture parameter set includes a chrominance-related syntax; decoding, when the first flag indicates that the picture parameter set includes a chrominance-related syntax, a syntax for controlling a deblocking filter process of a Cb signal and a Cr signal as a syntax of the picture parameter set; decoding, as a syntax of the picture header, a second flag indicating whether a deblocking filter process is enabled in a picture corresponding to the picture header to be decoded; decoding, when the second flag indicates that deblocking filtering is enabled, a syntax for controlling deblocking filtering of a luminance signal as a syntax of the picture header; and when the second flag indicates that deblocking filtering is enabled and when a syntax for controlling the deblocking filtering of the Cb and Cr signals is not included as a syntax of the picture header, regarding a value of a syntax for controlling the deblocking filtering of the Cb and Cr signals in the picture header as being identical to a value of a syntax for controlling the deblocking filtering of the Cb and Cr signals decoded as a syntax of the picture parameter set.

3. A program for use in an image decoding device, comprising: decoding, as a syntax of a picture parameter set, a first flag indicating whether the picture parameter set includes a chrominance-related syntax; decoding, when the first flag indicates that the picture parameter set includes a chrominance-related syntax, a syntax for controlling a deblocking filter process of a Cb signal and a Cr signal as a syntax of the picture parameter set; decoding, as a syntax of the picture header, a second flag indicating whether a deblocking filter process is enabled in a picture corresponding to the picture header to be decoded; decoding, when the second flag indicates that deblocking filtering is enabled, a syntax for controlling deblocking filtering of a luminance signal as a syntax of the picture header; and when the second flag indicates that deblocking filtering is enabled and when syntax for controlling the deblocking filtering of the Cb and Cr signals is not included as syntax of the picture header, regarding a value of a syntax for controlling the deblocking filtering of the Cb and Cr signals in the picture header as being identical to a value of a syntax for controlling the deblocking filtering of the Cb and Cr signals decoded as syntax of the picture parameter set.

Citation Information

Patent Citations

  • An encoder, a decoder and corresponding methods about signaling high level syntax

    WO2021155740A1

  • Palette mode for local dual tree

    WO2021155833A1

  • Deblocking parameters for chroma component

    WO2021155834A1

  • Signaling chroma offset presence in video coding

    WO2021185540A1

  • Video processing using syntax elements

    WO2021201739A1