Image encoding and decoding device and method

By introducing a header decoding unit and a TU decoding unit in the image decoding device, the activation of dependency quantization and conversion skip prediction error quantization is controlled, and the problem of increasing hardware and software costs in the prior art is solved, and a more efficient encoding and decoding process is realized.

CN120455705APending Publication Date: 2025-08-08SHARP KK
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510903273.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2020-02-21
Filing Date
2021-02-18
Publication Date
2025-08-08

AI Technical Summary

Technical Problem

The existing image decoding devices and encoding devices have the problem that hardware and software installation costs are not proportional in the combination of conversion skip, symbol data hiding and dependency quantization, especially in conversion skip prediction error quantization (TSRC), where complexity and cost increase are not proportional.

Method used

The image decoding device has a header decoding unit and a TU decoding unit. By decoding flags ph_dep_quant_enabled_flag and slice_ts_residual_coding_disabled_flag, the activation of dependency quantization and conversion skip prediction error quantization is controlled separately, avoiding unnecessary combinations, and achieving flexible decoding mode selection.

Benefits of technology

It reduces the installation cost of hardware and software, simplifies the complexity of image decoding devices, and improves encoding efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120455705A_ABST
    Figure CN120455705A_ABST
Patent Text Reader

Abstract

The invention provides an image decoding device and an image encoding device, which can release the combination of conversion skipping, symbol data hiding and dependent quantization, and can reduce the installation cost of hardware and software. An image decoding device is provided with: a header decoding unit that decodes, from encoded data, a flag indicating whether or not quantization-dependent quantization can be used and a flag that prohibits conversion skip prediction error quantization; and a TU decoding unit that decodes the conversion coefficient in an RRC mode for encoding a LAST position, which is the decoding start position of the conversion coefficient in the TU block, or in a TSRC mode for not encoding the LAST position, the TU decoding unit performs dependent quantization in the RRC mode when decoding the conversion coefficient of which the conversion has been skipped in the TSRC mode, and performs dependent quantization in the TSRC mode when decoding the conversion coefficient of which the conversion has been skipped in the TSRC mode, and performs dependent quantization in the TSRC mode when decoding the conversion coefficient of which the conversion has been skipped in the TSRC mode when decoding the conversion coefficient of which the conversion has been skipped in the TSRC mode. When the conversion coefficient of the conversion skip is decoded in the RRC mode, dependent quantization is not performed in the RRC mode.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of the present invention relate to an image decoding device and an image encoding device. Background Art

[0002] In order to efficiently transmit or record images, an image encoding device that encodes an image to generate encoded data and an image decoding device that decodes the encoded data to generate a decoded image are used.

[0003] Specific examples of image coding methods include H.264 / AVC (Advanced Video Coding) and HEVC (High-Efficiency Video Coding).

[0004] In such an image coding method, the images (pictures) that constitute the moving image are managed through a hierarchical structure, and encoding / decoding is performed on each CU. The hierarchical structure includes slices obtained by dividing the image, coding tree units (CTU: Coding Tree Unit) obtained by dividing the slices, coding units (sometimes also called coding units (CodingUnit: CU)) obtained by dividing the coding tree units, and transform units (TU: Transform Unit) obtained by dividing the coding units.

[0005] Furthermore, in such image coding methods, a predicted image is typically generated based on a local decoded image obtained by encoding / decoding an input image, and the prediction error (sometimes also referred to as a "difference image" or "residual image") obtained by subtracting the predicted image from the input image (original image) is encoded. Examples of methods for generating predicted images include inter-frame prediction and intra-frame prediction.

[0006] Another recent example of image coding and decoding technology is Non-Patent Document 1. Non-Patent Document 1 discloses "Sign Data Hiding (SDH)," a technique that estimates the positive or negative signs of some transform coefficients calculated by inverse quantizing quantized transform coefficients related to prediction errors, rather than encoding them, to improve coding efficiency. Furthermore, it discloses "Dependent Quantization (DQ)," which switches between two quantizers with different scales for quantization and inverse quantization.

[0007] On the other hand, applications using images, such as medical and fine art, sometimes require decoded images that are completely free of, or essentially free of, coding-induced degradation. To achieve such lossless or near-lossless encoding, a technique has been developed that eliminates the use of transforms (or inverse transforms) or quantization (or inverse quantization) during encoding (or decoding). One of these techniques is called "Transform Skip (TS)." Transform Skip is also considered a transform (Identical Transform), and whether or not it is a transform skip is encoded as the transform type.

[0008] Furthermore, “Transform Skip Residual Coding (TSRC)” is also known, in which coding different from regular prediction error coding (Regular Residual Coding (RRC)) is performed in transform skip. Prior art literature Non-patent literature

[0009] Non-Patent Document 1: “Versatile Video Coding (Draft 8)”, JVET-Q2001, Joint Video Exploration Team (JVET) of ITU-T SG 16WP 3 and ISO / IEC JTC 1 / SC 29 / WG 11, 7-17 January 2020 Summary of the Invention Problems to be solved by the invention

[0010] The technology of Non-Patent Document 1 combines transform skipping, symbol data hiding, dependent quantization, transform-skipped prediction error quantization (TSRC), and normal prediction error coding (RRC). In the transform-skipped prediction error quantization (TSRC), symbol data hiding and dependent quantization are not performed. This eliminates transform skipping, symbol data hiding, and dependent quantization. However, the combination of transform skipping, symbol data hiding, and dependent quantization in normal prediction error coding (RRC) still presents the problem of complexity in image decoding and encoding devices. In particular, there is a problem that the hardware and software required to implement a combination with minimal effect is disproportionately increased in cost. Technical Solution

[0011] In order to solve the above-mentioned problem, an image decoding device according to one embodiment of the present invention is characterized in that it includes: a header decoding unit that decodes a flag ph_dep_quant_enabled_flag indicating whether dependent quantization can be used and a flag slice_ts_residual_coding_disabled_flag that prohibits transform skipping prediction error quantization from encoded data; and a TU decoding unit that decodes the transform coefficient in the TU block in an RRC mode that encodes the decoding start position, i.e., the last position, of the transform coefficient, or in a TSRC mode that does not encode the last position. When the transform coefficient with transform skipped is decoded in the TSRC mode (slice_ts_residual_coding_disabled_flag=0), the TU decoding unit performs dependent quantization in the RRC mode, and when the transform coefficient with transform skipped is decoded in the RRC mode (slice_ts_residual_coding_disabled_flag=1), the TU decoding unit does not perform dependent quantization in the RRC mode.

[0012] The above-mentioned image decoding device is characterized in that it includes: a header decoding unit that decodes a flag ph_dep_quant_enabled_flag indicating whether dependent quantization can be used and a flag slice_ts_residual_coding_disabled_flag that prohibits conversion and skipping of prediction error quantization from encoded data; and a TU decoding unit that decodes the conversion coefficient; the above-mentioned TU decoding unit performs dependent quantization and decodes the conversion coefficient when ph_dep_quant_enabled_flag is 1 and slice_ts_residual_coding_disabled_flag is 0, and in other cases, does not perform dependent quantization and decodes the conversion coefficient when pd_dep_quant_enabled_flag is 0 or slice_ts_residual_coding_disabled_flag is 1.

[0013] The above-mentioned image decoding device is characterized in that it includes: a header decoding unit that decodes a flag ph_dep_quant_enabled_flag indicating whether dependent quantization can be used, a flag pic_sign_data_hiding_enabled_flag indicating whether sign data hiding can be used, and a flag slice_ts_residual_coding_disabled_flag that prohibits conversion skipping of prediction error quantization from the encoded data; and a TU decoding unit that decodes the conversion coefficient, and the above-mentioned TU decoding unit does not hide the sign data when ph_dep_quant_enabled_flag is 1, or pic_sign_data_hiding_enabled_flag is 0, or slice_ts_residual_coding_disabled_flag is 1.

[0014] By adopting this configuration, it is possible to cancel the combination of conversion skipping, symbol data hiding, and quantization dependency, thereby achieving an effect of reducing the implementation cost of hardware and software. Beneficial effects

[0015] According to the above configuration, any of the above problems can be solved. BRIEF DESCRIPTION OF THE DRAWINGS

[0016] Figure 1 This is a schematic diagram showing the configuration of the image transmission system according to this embodiment. Figure 2 This figure shows the configuration of a transmitting device equipped with a moving picture encoding device and a receiving device equipped with a moving picture decoding device according to this embodiment. PRODA shows a transmitting device equipped with a moving picture encoding device, and PRODB shows a receiving device equipped with a moving picture decoding device. Figure 3 This diagram shows the configuration of a recording device equipped with the moving picture encoding device and a playback device equipped with the moving picture decoding device according to this embodiment. PROD_C represents a recording device equipped with the moving picture encoding device, and PROD_D represents a playback device equipped with the moving picture decoding device. Figure 4 This is a diagram showing the hierarchical structure of coded stream data. Figure 5 This is a diagram showing an example of CTU division. Figure 6 This is a schematic diagram showing the structure of a moving picture decoding device. Figure 7 This is a flowchart explaining the schematic operation of the moving picture decoding device. Figure 8This is a schematic diagram showing the structure of the TU decoding unit. Figure 9 This is a diagram showing syntax elements related to quantized transform coefficients. Figure 10 This is a diagram showing syntax elements related to quantized transform coefficients. Figure 11a It is a syntax table related to RRC. Figure 11b It is a syntax table related to RRC. Figure 11c It is a syntax table related to RRC. Figure 12a It is a syntax table related to TSRC. Figure 12b It is a syntax table related to TSRC. Figure 13 This is a syntax table related to the slice header of this embodiment. Figure 14a This is a syntax table related to RRC in this embodiment. Figure 14b This is a syntax table related to RRC in this embodiment. Figure 14c This is a syntax table related to RRC in this embodiment. Figure 15 It is a syntax table related to TU in this embodiment. Figure 16a This is a syntax table related to RRC in this embodiment. Figure 16b This is a syntax table related to RRC in this embodiment. Figure 16c This is a syntax table related to RRC in this embodiment. Figure 17 This is a block diagram showing the structure of a moving picture encoding device. DETAILED DESCRIPTION [Implementation Method 1]

[0017] Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings.

[0018] Figure 1 It is a schematic diagram showing the configuration of the image transmission system 1 according to this embodiment.

[0019] Image transmission system 1 transmits a coded stream obtained by encoding a target image, decodes the transmitted coded stream, and displays the image. Image transmission system 1 includes a moving image encoding device (image encoding device) 11, a network 21, a moving image decoding device (image decoding device) 31, and an image display device (image display device) 41.

[0020] The moving image encoding device 11 is input with an image T.

[0021] The network 21 transmits the encoded stream Te generated by the moving image encoding device 11 to the moving image decoding device 31. The network 21 is the Internet, a wide area network (WAN), a local area network (LAN), or a combination thereof. The network 21 is not necessarily limited to a two-way communication network and may also be a one-way communication network that transmits broadcast waves such as digital terrestrial broadcasting or satellite broadcasting. In addition, the network 21 may be replaced by a storage medium such as a DVD (Digital Versatile Disc, registered trademark) or a BD (Blue-ray Disc, registered trademark) that stores the encoded stream Te.

[0022] The moving image decoding device 31 decodes the encoded stream Te transmitted by the network 21 respectively to generate one or more decoded images Td after decoding.

[0023] The image display device 41 displays all or part of the one or more decoded images Td generated by the moving image decoding device 31. The image display device 41 includes, for example, a display device such as a liquid crystal display or an organic EL (Electro-luminescence) display. As the form of the display, a fixed type, a mobile type, an HMD, etc. can be cited. In addition, when the moving image decoding device 31 has high processing power, an image with high image quality is displayed, and when it only has low processing power, an image that does not require high processing power and high display ability is displayed. <Operator>

[0024] The following describes the operators used in this specification. >> is a right shift, << is a left shift, & is a bitwise AND, | is a bitwise OR, |= is an OR assignment operator, and || represents a logical OR. x? y : z is a ternary operator that takes y when x is true (other than 0) and takes z when x is false (0). Clip3(a, b, c) is a function that limits c to a value between a and b (where a <= b), and returns a when c < a, returns b when c > b, and returns c in other cases. abs(a) is a function that returns the absolute value of a. Int(a) is a function that returns the integer value of a. floor(a) is a function that returns the smallest integer less than or equal to a. ceil(a) is a function that returns the largest integer greater than a. a / d represents the division operation of a by d (decimal places are discarded). <Structure of Encoded Stream Te>

[0025] Before describing in detail the moving picture encoding device 11 and the moving picture decoding device 31 of the present embodiment, the data structure of the coded stream Te generated by the moving picture encoding device 11 and decoded by the moving picture decoding device 31 will be described.

[0026] Figure 4 is a diagram showing the hierarchical structure of data in a coded stream Te. The coded stream Te illustratively includes a sequence and a plurality of pictures constituting the sequence. Figure 4 In the figure, there are shown diagrams respectively representing the coded video sequence of the predetermined sequence SEQ, the coded picture of the specified picture PICT, the coded slice of the specified slice S, the coded slice data of the specified slice data, the coding tree units included in the coded slice data, and the coding units included in the coding tree units. (encoded video sequence)

[0027] In the coded video sequence, a set of data is defined for reference by the video decoding device 31 in order to decode the sequence SEQ to be processed. Figure 4 As shown in the coded video sequence, it includes video parameter set (VideoParameter Set), sequence parameter set SPS (Sequence Parameter Set), picture parameter set PPS (PictureParameter Set), picture header (picture header), picture PICT and supplemental enhancement information SEI (SupplementalEnhancementInformation).

[0028] The video parameter set VPS defines a set of coding parameters common to a plurality of images in an image composed of multiple layers, and a set of coding parameters associated with the multiple layers included in the image and with each layer.

[0029] The sequence parameter set (SPS) specifies a set of coding parameters that the video decoding device 31 references to decode the target sequence. For example, it specifies the width and height of the picture. It should be noted that there can be multiple SPSs. In this case, any one of the multiple SPSs is selected from the PPS.

[0030] The picture parameter set (PPS) specifies a set of coding parameters that the video decoding device 31 references to decode each picture in the target sequence. For example, these parameters include a reference value for the quantization width (pic_init_qp_minus26) used for picture decoding, a flag (weighted_pred_flag) indicating the use of weighted prediction, and a scaling list (quantization matrix). It should be noted that multiple PPSs can exist. In this case, one of the multiple PPSs is selected for each picture in the target sequence.

[0031] The picture header defines common coding parameters for all slices included in a coded picture, including, for example, coding parameters related to POC (Picture Order Count) and segmentation. (Encoded image)

[0032] In the coded picture, a set of data is defined for reference by the video decoding device 31 in order to decode the picture PICT to be processed. Figure 4 As shown in the coded picture, it includes slices 0 to slice NS-1 (NS is the total number of slices included in the picture PICT).

[0033] Note that, in the following description, code subscripts may be omitted when there is no need to distinguish between slices 0 to NS-1. This also applies to other data included in the coded stream Te described below and marked with subscripts. (Encoding slice)

[0034] The coded slice defines a set of data that the video decoding device 31 refers to in order to decode the slice S to be processed. Figure 4 The encoded slice is shown as follows, including a slice header and slice data.

[0035] The slice header includes a coding parameter group that the moving picture decoding device 31 refers to in order to determine a decoding method for a target slice. Slice type designation information (slice_type) that designates a slice type is an example of a coding parameter included in the slice header.

[0036] Examples of slice types that can be specified by the slice type specification information include: (1) I slices, which are encoded using only intra-frame prediction; (2) P slices, which are encoded using unidirectional prediction or intra-frame prediction; and (3) B slices, which are encoded using unidirectional prediction, bidirectional prediction, or intra-frame prediction. It should be noted that inter-frame prediction is not limited to unidirectional prediction or bidirectional prediction, and more reference pictures can be used to generate a predicted image. Hereinafter, "P slices" and "B slices" refer to slices that include blocks that can use inter-frame prediction.

[0037] It should be noted that the slice header may also include a reference to the picture parameter set PPS (pic_parameterset_id). (Encoded slice data)

[0038] The coded slice data specifies a set of data that the video decoding device 31 refers to in order to decode the slice data to be processed. Figure 4 As shown in the coded slice header, it includes CTU. CTU is a fixed-size block (for example, 64×64) that constitutes a slice and is sometimes also called the largest coding unit (LCU). (Coding Tree Unit)

[0039] exist Figure 4 In the coding tree unit, a set of data is specified for the motion picture decoding device 31 to refer to in order to decode the CTU of the processing object. The CTU is divided into coding units CU, which are the basic units of the encoding process, by recursive quadtree partitioning (QT (Quad Tree) partitioning), binary tree partitioning (BT (Binary Tree) partitioning), or ternary tree partitioning (TT (Ternary Tree) partitioning). BT partitioning and TT partitioning are collectively referred to as multi-tree partitioning (MT (MultiTree) partitioning). The nodes of the tree structure obtained by recursive quadtree partitioning are called coding nodes (Coding Node). The intermediate nodes of the quadtree, binary tree, and ternary tree are coding nodes, and the CTU itself is also specified as the top-level coding node.

[0040] The CT (Coding Tree) includes a segmentation flag indicating whether to perform QT segmentation as CT information. Figure 5 An example of segmentation is shown in .

[0041] CU is the terminal node of the coding node and is not further split. CU is the basic unit of coding processing. (coding unit)

[0042] like Figure 4 As shown in the coding unit, a set of data is specified for reference by the video decoding device 31 to decode the coding unit being processed. Specifically, a CU is composed of a CU header CUH, prediction parameters, transform parameters, quantized transform coefficients, etc. The CU header specifies the prediction mode, etc.

[0043] Prediction processing can be performed in units of CUs or in units of sub-CUs, which are further divided into CUs. When the size of the CU is equal to the size of the sub-CU, there is one sub-CU in the CU. When the size of the CU is larger than the size of the sub-CU, the CU is divided into sub-CUs. For example, when the CU is 8×8 and the sub-CUs are 4×4, the CU is divided into four sub-CUs, including two horizontal divisions and two vertical divisions.

[0044] Prediction types (prediction modes CuPredMode) include at least intra-frame prediction (MODE INTRA) and inter-frame prediction (MODE INTER). Intra-frame block copy prediction (MODE IBC) is also possible. Intra-frame prediction and intra-frame block copy prediction are predictions within the same picture, while inter-frame prediction refers to prediction processing between different pictures (e.g., between display times or between image layers).

[0045] The conversion / quantization process is performed in units of CUs, and the quantized conversion coefficients may be entropy-coded in units of 4×4 sub-blocks or the like.

[0046] The predicted image is derived from prediction parameters attached to the block. The prediction parameters include intra-frame prediction and inter-frame prediction parameters. (Configuration of Moving Image Decoding Device)

[0047] The video decoding device 31 ( Figure 6 ) is explained.

[0048] The moving picture decoding device 31 includes an entropy decoding unit 301, a parameter decoding unit (prediction image decoding device) 302, a loop filter 305, a reference picture memory 306, a prediction parameter memory 307, a prediction image generation unit (prediction image generation device) 308, an inverse quantization / inverse transformation unit 311, and an addition unit 312. It should be noted that there is also a configuration in which the loop filter 305 is not included in the moving picture decoding device 31, which cooperates with the moving picture encoding device 11 described later.

[0049] The parameter decoding unit 302 also includes a header decoding unit 3020, a CT information decoding unit 3021, and a CU decoding unit 3022 (prediction mode decoding unit). The CU decoding unit 3022 includes a TU decoding unit 3024. These can also be collectively referred to as decoding modules. The header decoding unit 3020 decodes parameter set information such as VPS, SPS, and PPS, and slice headers (slice information) from the coded data. The CT information decoding unit 3021 decodes CT from the coded data. The CU decoding unit 3022 decodes CU from the coded data. The TU decoding unit 3024 decodes QP update information (quantization correction value) and quantization transform coefficients (residual_coding) from the coded data.

[0050] When a TU includes prediction error, the TU decoding unit 3024 decodes QP update information and quantized transform coefficients from the coded data. Quantized transform coefficient derivation can also include multiple modes (e.g., RRC mode and TSRC mode). Specifically, different processing can be performed using regular prediction error derivation (RRC: Regular Residual Coding) that uses transformation and using transform skip mode (TSRC: Transform Skip Residual Coding) that does not use transformation. The QP update information is the difference between the predicted value of the quantization parameter QP, i.e., the predicted value of the quantization parameter qPpred.

[0051] In addition, the following description uses CTUs and CUs as processing units, but this is not limiting. Processing can also be performed in sub-CU units. Alternatively, CTUs and CUs can be renamed blocks, and sub-CUs can be renamed sub-blocks, with processing performed in blocks or sub-blocks.

[0052] The entropy decoding unit 301 performs entropy decoding on the externally input coded stream Te, parsing each code (syntax element). Entropy coding includes the following methods: variable-length encoding of syntax elements using a context (probability model) adaptively selected based on the syntax element type and surrounding conditions; and variable-length encoding of syntax elements using a predefined table or calculation formula. An example of the former is CABAC (Context Adaptive Binary Arithmetic Coding). The parsed code contains prediction information for generating a predicted image and prediction error for generating a differential image.

[0053] The entropy decoding unit 301 outputs the separated code to the parameter decoding unit 302. The separated code is, for example, the prediction mode CuPredMode. The control of which code to decode is performed based on the instruction of the parameter decoding unit 302. (Basic process)

[0054] Figure 7 This is a flowchart explaining the schematic operation of the moving picture decoding device 31 .

[0055] (S1100: Parameter Set Information Decoding) The header decoding unit 3020 decodes parameter set information such as VPS, SPS, PPS, SEI, and PH from the encoded data.

[0056] (S1200: Slice Information Decoding) The header decoding unit 3020 decodes a slice header (slice information) from the encoded data.

[0057] Thereafter, the video decoding device 31 derives a decoded image of each CTU by repeating the processes from S1300 to S5000 for each CTU included in the target picture.

[0058] (S1300: CTU Information Decoding) The CT information decoding unit 3021 decodes CTU from the encoded data.

[0059] (S1400: CT Information Decoding) The CT information decoding unit 3021 decodes CT from the encoded data.

[0060] (S1500: CU Decoding) The CU decoding unit 3022 implements S1510 and S1520 to decode a CU from the coded data. Furthermore, the CU decoding unit 3022 decodes the quantization parameter difference CuQpDeltaVal in units of CUs from the coded data to derive the quantization parameter.

[0061] (S1510: CU Information Decoding) The CU decoding unit 3022 decodes CU information, prediction information, TU split flag split_transform_flag, CU residual flags cbf_cb, cbf_cr, cbf_luma, etc. from the encoded data.

[0062] (S1520: TU Information Decoding) When a prediction error is included in a TU, the TU decoding unit 3024 decodes QP update information and quantized transform coefficients from the encoded data.

[0063] (S2000: Prediction Image Generation) The prediction image generation unit 308 generates a prediction image for each block included in the target CU based on the prediction information.

[0064] (S3000: Inverse Quantization / Inverse Transformation) The inverse quantization / inverse transformation unit 311 performs inverse quantization / inverse transformation processing on each TU included in the target CU.

[0065] (S4000: Decoded Image Generation) The addition unit 312 generates a decoded image of the target CU by adding the predicted image supplied from the predicted image generation unit 308 and the prediction error supplied from the inverse quantization / inverse conversion unit 311 .

[0066] (S5000: Loop Filter) The loop filter 305 performs loop filtering such as deblocking filtering, SAO (Sample Adaptive Filter), and ALF (Adaptive Loop Filter) on the decoded image to generate a decoded image. (Derivation of quantized transform coefficients, residual coding)

[0067] In lossless coding, when there is little correlation between pixels in the original image, sometimes encoding efficiency is higher when no transformation is performed. This technique of not performing transformation is called transform skip.

[0068] Transform skipping, also known as Identical Transform, involves scaling only the transform coefficients according to the quantization parameter. The syntax element transform_skip_flag is used to notify whether a transform is skipped. The transform_skip_flag can also be notified for each color component (cIdx) of Y, Cb, and Cr.

[0069] The encoding method and decoding method of the prediction error are different between the derivation of the normal prediction error using transform (RRC: Regular Residual Coding) and the derivation of the prediction error in the transform skip mode (TSRC: Transform Skip Residual Coding).

[0070] Figure 8 3024 is a block diagram of the TU decoding unit 3024, which includes an RRC unit 30241 and a TSRC unit 30242. The RRC unit 30241 is a processing unit that derives a normal prediction error using transformation, and the TSRC unit 30242 is a processing unit that derives a prediction error in the transform skip mode.

[0071] Figure 9 sps_transform_skip_enabled_flag in (a) is a flag indicating whether transform_skip_flag is notified in each TU. sps_transform_skip_enabled_flag = 1 indicates that transform_skip_flag is notified in each TU. sps_transform_skip_enabled_flag = 0 indicates that transform_skip_flag is not notified in each TU. If sps_transform_skip_enabled_flag is not notified, it is estimated to be 0.

[0072] Figure 9 min_qp_prime_ts_minus4 in (a) is a parameter used to derive the minimum quantization parameter QpPrimeTsMin in the transform skip mode. QpPrimeTsMin is derived from 4+min_qp_prime_ts_minus4.

[0073] Figure 10(b) transform_skip_flag[x0][y0][cldx] indicates whether to apply transformation to the block at the position (x0, y0) of the color component cIdx relative to the upper left coordinate of the picture. If transform_skip_flag = 1 (transform skip mode), no transformation is applied to the block. If transform_skip_flag = 0, whether to apply transformation to the block depends on other parameters.

[0074] FIG11 and FIG12 are syntax diagrams showing the encoding method of the transform coefficient (prediction error) in RRC and TSRC. (RRC unit, RRC mode)

[0075] In a conventional prediction error coding method (Figure 11) that does not perform transform skipping, the RRC unit 30241 decodes the syntax element indicating the last position (not shown) and derives the last position (LastSignificantCoeffX, LastSignificantCoeffY). The last position is the position of the last non-zero coefficient when scanning the transform coefficients of a TU from low-frequency components to high-frequency components. When transform coefficients are encoded and decoded sequentially from high-frequency components, the last position indicates the position of the first decoded quantized transform coefficient. Next, the RRC unit 30241 decodes coded_sub_block_flag with reference to the last position. coded_sub_block_flag is a flag indicating whether a sub-block contains non-zero coefficients. A sub-block is a region formed by dividing a TU into 4×4 units. If coded_sub_block_flag = 1 (a sub-block contains non-zero coefficients), the RRC unit 30241 decodes sig_coeff_flag. sig_coeff_flag is a flag indicating whether the coefficient value is non-zero. If sig_coeff_flag = 1 (the coefficient value is non-zero), the RRC unit 30241 decodes abs_level_gtx_flag, par_level_flag, abs_remainder, and dec_abs_level. These are syntax elements that indicate the absolute value of the coefficient. The RRC unit 30241 derives the absolute value of the coefficient from these syntax elements. Furthermore, the RRC unit 30241 refers to signHidden (described below), the absolute value of the coefficient, and its position to determine whether coeff_sign_flag has been notified. If so, it decodes coeff_sign_flag. coeff_sign_flag[n] is a flag indicating the sign of the quantized transform coefficient value at scan position n. The RRC unit 30241 derives the coefficient value from the absolute value of the coefficient and coeff_sign_flag.

[0076] As described above, the RRC unit 30241 is characterized in that the LAST position is decoded in the sub-block of the TU.

[0077] In the prediction error coding method ( FIG. 12 ) without performing conversion (convert skip mode), the TSRC unit 30242 decodes the coded_sub_block_flag for each subblock. If coded_sub_block_flag = 1 (the subblock contains a non-zero coefficient), the TSRC unit 30242 decodes sig_coeff_flag[xC][yC] for the transform coefficient at position (xC, xC) within the subblock. If sig_coeff_flag = 1 (the coefficient value is non-zero), the TSRC unit 30242 decodes coeff_sign_flag, abs_level_gtx_flag, par_level_flag, and abs_remainder. These are syntax elements indicating the absolute value of the coefficient. The TSRC unit 30242 derives the absolute value of the coefficient from these syntax elements.

[0078] As described above, the TSRC unit 30242 is characterized in that the LAST position is not decoded in the sub-block of the TU. (Derivation of Quantization Conversion Coefficients, Sign Data Hiding)

[0079] Regarding the sign of a non-zero quantized transform coefficient, in addition to being deduced from a flag notified for each coefficient, the sign of the coefficient value may be estimated by referring to other parameters (sign data hiding). Figure 9 The sps_sign_data_hiding_enabled_flag in (a) is a flag indicating whether code bits of coefficients can be estimated in a picture that refers to a certain SPS. sps_sign_data_hiding_enabled_flag = 0 indicates that code bits cannot be estimated. sps_sign_data_hiding_enabled_flag = 1 indicates that code bits can be estimated. If sps_sign_data_hiding_enabled_flag is not notified, the value is estimated to be 0.

[0080] Figure 9 pic_sign_data_hiding_enabled_flag in (b) is a flag indicating whether the code bits of the quantized transform coefficients can be estimated in the existing picture. pic_sign_data_hiding_enabled_flag = 0 indicates that the code bits cannot be estimated. pic_sign_data_hiding_enabled_flag = 1 indicates that the code bits can be estimated. If pic_sign_data_hiding_enabled_flag is not notified, the estimated value is 0.

[0081] coeff_sign_flag[n] in FIG11 is a flag indicating the sign of the quantized transform coefficient value at scan position n. When coeff_sign_flag[n] = 0, the coefficient value is positive. Otherwise (coeff_sign_flag[n] = 1), the coefficient value is negative. If coeff_sign_flag[n] is not notified, it is estimated to be 0.

[0082] The RRC unit 30241 derives a flag, signHidden, indicating whether the sign of a specific transform coefficient is derived by estimation. For example, as shown in the following formula, the RRC unit 30241 derives signHidden by referring to pic_sign_data_hiding_enabled_flag, ph_dep_quant_enabled_flag (described later), and the distribution of non-zero coefficients. The distribution of non-zero coefficients may, for example, refer to the difference between firstSigScanPosSb and lastSigScanPosSb. If this difference is greater than a specific value, the RRC unit 30241 may set SignHidden to 1; otherwise, it may set SignHidden to 0. The specific value may be, for example, 3. If(ph_dep_quant_enabled_flag||!pic_sign_data_hiding_enabled_flag) signHidden=0 else signHidden=(lastSigScanPosSb-firstSigScanPosSb>3?1:0)

[0083] Here, lastSigScanPosSb is the position of the transform coefficient located at the end on the high-frequency side in the sub-block (the position of the first decoded transform coefficient), and firstSigScanPosSb is the position of the transform coefficient located at the first on the low-frequency side in the sub-block.

[0084] As shown in FIG11 , when the coefficient value is non-zero (AbsLevel[xC][yC]>0) and any of the following conditions is met, coeff_sign_flag is notified, and the RRC unit 30241 decodes coeff_sign_flag to derive the sign of the coefficient. signHidden is 0. • The coefficient is not in the last decoded position within the sub-block (n!=firstSigScanPosSb).

[0085] If this is not the case (the coefficient value is zero, or signHidden is non-zero and the coefficient position is the last decoded position within the sub-block), coeff_sign_flag is not signaled. The RRC unit 30241 then determines the sign of the coefficient based on whether sumAbsLevel is odd or even (SYN1102). sumAbsLevel is the sum of the absolute values of the decoded transform coefficients within the sub-block. Specifically, if (sumAbsLevel % 2) == 1 is true, the coefficient sign is estimated to be negative. (Derivation of quantization conversion coefficients, dependent quantization)

[0086] There are two quantization methods: scalar quantization and dependent quantization. The inverse quantization / inverse transformation unit 311 inversely quantizes the transform coefficients. In the case of dependent quantization, a portion of the inverse quantization process may also be performed in the RRC unit 30241.

[0087] The inverse quantization / inverse conversion unit 311 derives the linear scaling value ls[x][y] from the quantization parameter qP, the rectNonTsFlag, and the value of the quantization matrix m[][] as described below. The inverse quantization / inverse conversion unit 311 switches the derivation method of ls[][] between a case where dependent quantization is enabled and transform skip is disabled and a case where dependent quantization is disabled. if(ph_d∈p_quant_enabled_flag&&! transform_skip_flag) 1s[x][y]=(m[x][y]*levelScale[rectNonTsFlag][(qP+1)%6])<<((qP+1) / 6) else 1s[x][y]=(m[x][y]*levelScale[rectNonTsFlag][qP%6])<<(qP / 6) rectNonTsFlag=transform_skip_flag==1||(((Log2(nTbW)+Log2(nTbH))&1)==1)? 1:0 bdShift=transform_skip_flag==1?10:BitDepth+rectNonTsFlag+((Log2(nTbW)+Log2(nTbH)) / 2)-5+ph-dep_qulant_enabled_flag

[0088] First, when scalar quantization is effective, the transform coefficient is uniquely derived from the quantized transform coefficient and the quantization parameter. For example, in FIG11 or FIG12 , the transform coefficient value d is derived using the following equation. TransCoeffLevel[x0][y0][cIdx][xC][yC]=AbsLevel[xC][yC]*(1-2*coeff_sign_flag[n]) d[x0][y0][cIdx][xC][yC]=(TransCoeffLevel[x0][y0][cIdx][xC][yC]*ls[xC][yC]+((1<<bdShift)>> 1))>>bdShift

[0089] Here, AbsLevel is the quantization conversion coefficient value, and 1s and bdShift are parameters derived from the quantization parameter qP.

[0090] On the other hand, dependent quantization employs two quantizers with different scales. The parity of the intermediate values of the quantized transform coefficients (AbsLevelPass1, AbsLevel) is used to switch between four states (QState). Quantization and inverse quantization are then performed based on the QState. It should be noted that quantization and inverse quantization, i.e., scaling, using quantization parameters, are also performed separately. QState=QStateTransTable[QState][AbsLeve1Pass1[xC][yC]&1] TransCoeffLevel[x0][y0][cIdx][xC][yC]=(2*AbsLevel[xC][yC]-(QState>1?1:0))*(1-2*coeff_sign_flag[n]) d[x0][y0][cIdx][xC][yC]=(TransCoeffLevel[x0][y0][cIdx][xC][yC]*1s[xC][yC]+((1<<bdShift)> >1))>>bdShift

[0091] Here, QState is a state, and QStateTransTable[][] is a table used in state transition, for example, QStateTransTable[][]={{0, 2}, {2, 0}, {1, 3}, {3, 1}}.

[0092] QState can also be derived without using QStateTransTable[][] by the following formula: QState=(32040>>((QState<<2)+((AbsLevelPassl[xC][yC]&1)<<1)))&3

[0093] Depending on the value of QState, a different TransCoeffLevel (or d) is derived even if AbsLevel is the same. QState is derived with reference to the previously decoded quantized transform coefficient value, enabling efficient (inverse) quantization that exploits the correlation between coefficients compared to conventional scalar (inverse) quantization.

[0094] Figure 9 The sps_dep_quant_enabled_flag in (b) is a flag indicating whether dependent quantization can be performed in a picture that refers to a certain SPS. sps_dep_quant_enabled_flag = 0 indicates that dependent quantization cannot be performed. sps_dep_quant_enabled_flag = 1 indicates that dependent quantization can be performed.

[0095] Figure 9 ph_dep_quant_enabled_flag in (b) is a flag indicating whether dependent quantization can be performed in the existing picture. phdep_quant_enabled_flag = 0 indicates that dependent conversion cannot be performed. phdep_quant_enabled_flag = 1 indicates that dependent quantization can be performed. If phdep_quant_enabled_flag is not notified, it is estimated to be 0.

[0096] In conventional prediction error coding (RRC) methods, the decoding start position of the non-zero transform coefficients, called the LAST position, is encoded in a manner suitable for situations where the non-zero transform coefficients are concentrated in a certain area of the low-frequency component. The low-frequency component side is scanned from the LAST position to decode the quantized transform coefficients. In addition, in order to use sign data hiding and quantization-dependent, the RRC unit 30241 derives parameters such as the absolute value and quantization-dependent state (QState) of the transform coefficients required for these processes. On the other hand, in prediction error coding (TSRC) using a transform skip mode, the non-zero transform coefficients are not concentrated in a certain area, so the LAST position is not encoded, and the quantized transform coefficients are decoded by scanning the entire block. In addition, sign data hiding and quantization-dependent are not used, so the TSRC unit 30242 does not derive the above-mentioned parameters required for these processes.

[0097] Furthermore, even when switching skip mode, the coding efficiency may be better when using the normal prediction error coding method. Therefore, the normal prediction error may be used when switching skip mode. For example, Figure 10 slice_ts_residual_coding_disabled_flag shown in (a).

[0098] The slice_ts_residual_coding_disabled_flag indicates whether residual_ts_coding(), the TSRC mode, is used to decode the prediction error of a block to which transform skipping is applied (transform skipped blocks) in the existing slice. If slice_ts_residual_coding_disabled_flag = 1, residual_coding(), the RRC mode, is used to analyze the prediction error of the transform skipped blocks. If slice_ts_residual_coding_disabled_flag = 0, residual_ts_coding() is used to analyze the prediction error of the transform skipped blocks. If slice_ts_residual_coding_disabled_flag is not specified, the value is estimated to be 0.

[0099] like Figure 10 As shown in (b), when transform_skip_flag[x0][y0][0]||slice_ts_residual_coding_disabled_flag is set, the RRC unit 30241 can process the information. In other cases, the TSRC unit 30242 can process the information. In other words, in addition to the case where transformskip_flag is 0, the transform coefficient (prediction error) can also be notified through RRC when slice_ts_residual_coding_disabled_flag is not 0.

[0100] By referring to slice_ts_residual_coding_disabled_flag, even when switching the skip mode, a normal prediction error coding method (RRC mode) can be used. (Implementation Method 2)

[0101] like Figure 13As shown, slice_ts_residual_coding_disabled_flag can be set to reference sps_transform_skip_enabled_flag. When sps_transform_skip_enabled_flag = 1, slice_ts_residual_coding_disabled_flag is notified. slice_ts_residual_coding_disabled_flag is a flag indicating whether the TSRC mode is used for decoding the prediction error of blocks to which transform skipping is applied in the existing slice. Therefore, if the SPS indicates that transform skipping mode is not used, TSRC mode is not used, and there is no need to notify slice_ts_residual_coding_disabled_flag. This reduces the amount of code and improves coding efficiency. (Implementation 3)

[0102] The hardware and software installation costs can be reduced by skipping conversion and dependency quantization and performing symbol data hiding and dependency quantization exclusively.

[0103] As shown in Figure 14, the RRC unit 30241 can switch between the four quantization-dependent states QState (SYN1401, SYN1402, SYN1404, and SYN1405) by referring to the slice_ts_residual_coding_disabled_flag. Specifically, when ph_dep_quant_enabled_flag is 1 and slice_ts_residual_coding_disabled_flag is 0, QState (SYN1401 and SYN1402) is updated. Conversely, when ph_dep_quant_enabled_flag is 0 or slice_ts_residual_coding_disabled_flag is 1, QState is not updated. This allows the quantized transform coefficients that were skipped to be decoded in RRC mode. Therefore, even when skipping is enabled, if slice_ts_residual_coding_disabled_flag = 1, the RRC unit 30241 does not perform quantization-dependent decoding. Through the above conditions, transition skipping and dependent quantization can be performed exclusively.

[0104] Alternatively, to update the QState without using QStateTransTable[][], the variable stateVal can be used. stateVal=(ph_dep_quant_enabled_flag&&!slice_ts_residual_coding_disabled_flag)? 32040: 0QState=(stateVal>>((QState<<2)+((AbsLevelPassl[xC][yC]&1)<<1)))&3

[0105] When stateVal is 0, QState is always 0, which means that dependent quantization is not performed, so the transition skipping can be performed exclusively with dependent quantization.

[0106] 14 , slice_ts_residual_coding_disabled_flag (SYN1403) may be used to derive the value of signHidden for determining whether to apply sign data hiding. Specifically, if ph_dep_quant_enabled_flag is 1, or pic_sign_data_hiding_enabled_flag is 0, or slice_ts_residual_coding_disabled_flag is 1, signHidden is set to 0. if(ph_dep_quant_enabled-flag||!pic_sign_data_hiding_enabled_flag||slice_ts_residual_coding_disabled_flag) signHidden=0 else signHidden=(lastSigScanPosSb-firstSigScanPosSb>3?1:0)

[0107] In this way, when ph_dep_quant_enabled_flag is 0, pic_sign_data_hiding_enabled_flag is 1, and slice_ts_residual_coding_disabled_flag is 0, sign data hiding is performed based on the distribution of non-zero coefficients. The distribution of non-zero coefficients, for example, refers to the difference between firstSigScanPosSb and lastSigScanPosSb. Therefore, transition skipping and sign data hiding can be performed exclusively.

[0108] Furthermore, the RRC unit 30241 may use transform_skip_flag instead of slice_ts_residual_coding_disabled_flag to operate transform skipping, symbol data hiding, and quantization-dependent operations exclusively.

[0109] like Figure 15 As shown, first, the TU decoding unit 3024 notifies the RRC unit 30241 of the transform_skip_flag (SYN1501, SYN1502, SYN1503). Then, as shown in FIG16 , the RRC unit 30241 updates QState when ph_dep_quant_enabled_flag is 1 and transform_skip_flag is 0. Otherwise, if ph_dep_quant_enabled_flag is 0 or slice_ts_residual_coding_disabled_flag is 1, QState is not updated. Thus, the RRC unit 30241 does not perform dependent quantization when transform skipping is enabled (SYN1601, SYN1602, SYN1604, SYN1605).

[0110] Furthermore, transform_skip_flag may be used to derive the value of signHidden. Specifically, when ph_dep_quant_enabled_flag is 1, or pic_sign_data_hiding_enabled_flag is 0, or transform_skip_flag is 1, the RRC unit 30241 sets signHidden to 0 (SYN1603). if(ph_dep_quant_enabled_flag||!pic_sign_data_hiding_enabled_flag||transform_skip_flag) signHidden×0 else signHidden=(lastSigScanPosSb-firstSigScanPosSb>3?1:0)

[0111] By adopting such a configuration, it is possible to eliminate the combination of conversion skipping, symbol data hiding, and reliance on quantization, thereby achieving an effect of reducing the implementation cost of hardware and software.

[0112] The inverse quantization / inverse transformation unit 311 scales (inversely quantizes) the quantized transform coefficients input from the entropy decoding unit 301 to obtain transform coefficients d[][]. These quantized transform coefficients are coefficients obtained by performing DCT (Discrete Cosine Transform) or DST (Discrete Sine Transform) transformations on the prediction error during the encoding process and then quantizing the coefficients. If transform_skip_flag is 0, the inverse quantization / inverse transformation unit 311 performs inverse frequency transformations such as inverse DCT or inverse DST on the scaled transform coefficients d[][] to calculate the prediction error res[][]. If transform_skip_flag is 1, the inverse quantization / inverse transformation unit 311 sets res[x][y] = d[x][y]. The inverse quantization / inverse transformation unit 311 outputs the prediction error to the addition unit 312.

[0113] It should be noted that inverse transformation and transformation are paired processes, so transformation and inverse transformation can be interpreted interchangeably. Alternatively, when an inverse transformation is called a transformation, a transformation can be called a positive transformation. For example, when an inverse non-separable transformation is called a non-separable transformation, a non-separable transformation can be called a positive non-separable transformation. In addition, a separable transformation is simply referred to as a transformation.

[0114] The adder 312 adds the predicted image for the block input from the predicted image generator 308 and the prediction error input from the inverse quantization / inverse transform unit 311 for each pixel to generate a decoded image for the block. The adder 312 stores the decoded image for the block in the reference picture memory 306 and outputs it to the loop filter 305. (Configuration of Moving Image Coding Device)

[0115] Next, the configuration of the moving picture encoding device 11 according to this embodiment will be described. Figure 17 This is a block diagram showing the configuration of a moving picture coding apparatus 11 according to the present embodiment. The moving picture coding apparatus 11 includes a predicted image generation unit 101, a subtraction unit 102, a conversion / quantization unit 103, an inverse quantization / inverse conversion unit 105, an addition unit 106, a loop filter 107, a prediction parameter memory (prediction parameter storage unit, frame memory) 108, a reference picture memory (reference picture storage unit, frame memory) 109, a coding parameter determination unit 110, a parameter coding unit 111, and an entropy coding unit 104.

[0116] The predicted image generation unit 101 generates a predicted image for each region obtained by dividing each image of the image T, that is, for each CU. The predicted image generation unit 101 performs the same operation as the predicted image generation unit 308 already described, and the description thereof will be omitted.

[0117] The subtraction unit 102 generates a prediction error by subtracting the pixel value of the predicted image of the block input from the predicted image generation unit 101 from the pixel value of the image T. The subtraction unit 102 outputs the prediction error to the conversion / quantization unit 103 .

[0118] The conversion / quantization unit 103 calculates a conversion coefficient by frequency conversion of the prediction error input from the subtraction unit 102 and derives a quantized conversion coefficient by quantization. The conversion / quantization unit 103 outputs the quantized conversion coefficient to the entropy coding unit 104 and the inverse quantization / inverse conversion unit 105.

[0119] The inverse quantization / inverse conversion unit 105 and the inverse quantization / inverse conversion unit 311 ( Figure 10 ) is the same as that of FIG. 1 and its description is omitted. The calculated prediction error is output to the adding unit 106.

[0120] The entropy coding unit 104 receives inputs of quantized transform coefficients from the transform / quantization unit 103 and encoding parameters from the parameter coding unit 111. An example of the encoding parameters is predMode, which indicates a prediction mode. predMode can be either MODE_INTRA, which indicates intra-frame prediction, or MODE_INTER, which indicates inter-frame prediction. It can also be MODE_INTRA, MODE_INTER, or MODE_IBC, which indicates intra-frame block copying prediction, in which blocks within a picture are copied as predicted images.

[0121] The entropy coding unit 104 performs entropy coding on the partition information, prediction parameters, quantized transform coefficients, and the like to generate and output a coded stream Te.

[0122] The parameter coding unit 111 includes a header coding unit 1110 (not shown), a CT information coding unit 1111, a CU coding unit 1112 (prediction mode coding unit), an inter prediction parameter coding unit 112, and an intra prediction parameter coding unit 113. The CU coding unit 1112 further includes a TU coding unit 1114.

[0123] The following describes the general operation of each module: The parameter coding unit 111 performs coding processing on parameters such as header information, partition information, prediction information, and quantized transform coefficients.

[0124] The CT information encoding unit 1111 encodes QT, MT (BT, TT) division information and the like based on the encoded data.

[0125] The CU encoding unit 1112 encodes CU information, prediction information, TU split flag, CU residual flag, and the like.

[0126] The TU encoding unit 1114 encodes QP update information and quantized transform coefficients when a prediction error is included in the TU.

[0127] The CT information encoding unit 1111 and the CU encoding unit 1112 supply syntax elements such as inter prediction parameters, intra prediction parameters, and quantized transform coefficients to the entropy encoding unit 104 .

[0128] The adder 106 generates a decoded image by adding the pixel value of the predicted image of the block input from the predicted image generator 101 to the prediction error input from the inverse quantization / inverse transform unit 105 for each pixel. The adder 106 stores the generated decoded image in the reference picture memory 109.

[0129] The loop filter 107 applies a deblocking filter, SAO, and ALF to the decoded image generated by the adding unit 106. It should be noted that the loop filter 107 does not necessarily need to include the above three filters, and may be composed of only a deblocking filter, for example.

[0130] SAO is a filter that adds an offset according to the classification result in units of samples, and ALF is a filter that uses the sum of products of the transmitted filter coefficients and the reference image (or the difference between the reference image and the target pixel).

[0131] The prediction parameter memory 108 stores the prediction parameters generated by the encoding parameter determination unit 110 in a predetermined location for each target picture and each CU.

[0132] The reference picture memory 109 stores the decoded image generated by the loop filter 107 in a predetermined location for each target picture and each CU.

[0133] The coding parameter determination unit 110 selects one set from among multiple sets of coding parameters. Coding parameters refer to the QT, BT, or TT split information, prediction parameters, or parameters generated in association with these and used as the encoding target. The predicted image generation unit 101 generates a predicted image using these coding parameters.

[0134] The coding parameter determination unit 110 calculates an RD cost value, representing the amount of information and the coding error, for each of the multiple sets. The coding parameter determination unit 110 selects the coding parameter set with the smallest calculated cost value. The entropy coding unit 104 then outputs the selected coding parameter set as the coded stream Te. The coding parameter determination unit 110 stores the determined coding parameters in the prediction parameter memory 108.

[0135] It should be noted that portions of the moving picture encoding device 11 and moving picture decoding device 31 in the above-described embodiments, such as the entropy decoding unit 301, parameter decoding unit 302, loop filter 305, predicted image generation unit 308, inverse quantization / inverse transform unit 311, addition unit 312, predicted image generation unit 101, subtraction unit 102, transform / quantization unit 103, entropy encoding unit 104, inverse quantization / inverse transform unit 105, loop filter 107, coding parameter determination unit 110, and parameter encoding unit 111, can be implemented using a computer. In this case, a program for implementing the control function can be recorded on a computer-readable recording medium, and the program recorded on the recording medium can be read and executed by a computer system. It should be noted that the "computer system" referred to herein refers to a computer system built into either the moving picture encoding device 11 or the moving picture decoding device 31, and is a computer system including hardware such as an operating system and peripheral devices. Furthermore, "computer-readable recording medium" refers to removable media such as floppy disks, magneto-optical disks, ROMs, and CD-ROMs, as well as storage devices such as hard disks built into computer systems. Furthermore, "computer-readable recording medium" also includes recording media that dynamically store programs for a short period of time, such as when transmitting programs via a network such as the Internet or a communication line such as a telephone line; and recording media that store programs for a fixed period of time, such as volatile memory within a computer system acting as a server or client in this case. Furthermore, the aforementioned program may be a program for implementing a portion of the aforementioned functions, or a program that can implement the aforementioned functions by combining with a program already stored in the computer system.

[0136] Furthermore, the video encoding device 11 and video decoding device 31 of the above-described embodiments may be partially or entirely implemented as an integrated circuit such as an LSI (Large Scale Integration). Each functional block of the video encoding device 11 and video decoding device 31 may be implemented as a separate processor, or partially or entirely integrated. Furthermore, the integrated circuit method is not limited to LSI; implementation may also be achieved using a dedicated circuit or a general-purpose processor. Furthermore, if advancements in semiconductor technology lead to the emergence of integrated circuit technology that replaces LSI, integrated circuits based on such technology may also be used.

[0137] An embodiment of the present invention has been described in detail above with reference to the drawings. However, the specific configuration is not limited to the above embodiment, and various design changes can be made without departing from the spirit of the present invention. [Application Examples]

[0138] The moving image encoding device 11 and the moving image decoding device 31 can be installed in various devices that transmit, receive, record, and reproduce moving images. It should be noted that the moving images can be natural moving images captured by a camera or the like, or artificial moving images (including CG and GUI) generated by a computer or the like.

[0139] First, refer to Figure 2 , a description will be given of a case where the above-mentioned motion image encoding device 11 and motion image decoding device 31 can be used for sending and receiving motion images.

[0140] Figure 2 , a block diagram showing the structure of a transmitting device PROD_A equipped with a motion picture encoding device 11 is shown in FIG. Figure 2 As shown, the transmitting device PROD_A includes: an encoding unit PROD_A1 that encodes a moving picture to generate encoded data; a modulating unit PROD_A2 that modulates a carrier wave using the encoded data generated by the encoding unit PROD_A1 to generate a modulated signal; and a transmitting unit PROD_A3 that transmits the modulated signal generated by the modulating unit PROD_A2. The moving picture encoding device 11 described above serves as the encoding unit PROD_A1.

[0141] The sending device PROD_A may further include a camera PROD_A4 for shooting moving images as a supply source of moving images input to the encoding unit PROD_A1, a recording medium PROD_A5 recording moving images, an input terminal PROD_A6 for inputting moving images from the outside, and an image processing unit A7 for generating or processing images. Figure 2 The example shows that the transmitting device PROD_A includes all of these components, but some of them may be omitted.

[0142] It should be noted that the recording medium PROD_A5 may be a medium recording unencoded moving images, or a medium recording moving images encoded using a recording encoding method different from the transmission encoding method. In the latter case, a decoding unit (not shown) that decodes the encoded data read from the recording medium PROD_A5 using the recording encoding method is preferably interposed between the recording medium PROD_A5 and the encoding unit PROD_A1.

[0143] also, Figure 2 , a block diagram showing the structure of a receiving device PROD_B equipped with a motion picture decoding device 31 is shown in FIG. Figure 2As shown, the receiving device PROD_B includes a receiving unit PROD_B1 that receives a modulated signal; a demodulating unit PROD_B2 that demodulates the modulated signal received by the receiving unit PROD_B1 to obtain coded data; and a decoding unit PROD_B3 that decodes the coded data obtained by the demodulating unit PROD_B2 to obtain a moving image. The moving image decoding device 31 described above is used as the decoding unit PROD_B3.

[0144] The receiving device PROD_B may further include a display PROD_B4 for displaying moving images as a supply destination of the moving images output by the decoding unit PROD_B3, a recording medium PROD_B5 for recording the moving images, and an output terminal PROD_B6 for outputting the moving images to the outside. Figure 2 The example shows that the receiving device PROD_B includes all of these components, but some of them may be omitted.

[0145] It should be noted that the recording medium PROD_B5 may be a medium for recording unencoded moving images, or may be a medium encoded using a recording encoding method different from the transmission encoding method. In the latter case, an encoding unit (not shown) that encodes the moving images received from the decoding unit PROD_B3 using the recording encoding method is preferably interposed between the decoding unit PROD_B3 and the recording medium PROD_B5.

[0146] It should be noted that the transmission medium for transmitting the modulated signal can be wireless or wired. Furthermore, the transmission scheme for transmitting the modulated signal can be broadcast (herein, a transmission scheme in which the destination is not predetermined) or communication (herein, a transmission scheme in which the destination is predetermined). In other words, the transmission of the modulated signal can be achieved through any of wireless broadcasting, wired broadcasting, wireless communication, and wired communication.

[0147] For example, a broadcasting station (broadcasting equipment, etc.) / receiving station (television receiver, etc.) for terrestrial digital broadcasting is an example of a transmitting device PROD_A / receiving device PROD_B that transmits and receives modulated signals via wireless broadcasting. Furthermore, a broadcasting station (broadcasting equipment, etc.) / receiving station (television receiver, etc.) for cable television broadcasting is an example of a transmitting device PROD_A / receiving device PROD_B that transmits and receives modulated signals via wired broadcasting.

[0148] Furthermore, servers (such as workstations) and clients (such as television receivers, personal computers, and smartphones) for internet-based VOD (Video On Demand) services and video sharing services are examples of transmitters PROD_A and receivers PROD_B that transmit and receive modulated signals via communication (typically, wireless or wired transmission media is used in LANs, and wired transmission media is used in WANs). Personal computers include desktop PCs, laptop PCs, and tablet PCs. Furthermore, smartphones also include multifunctional mobile phone terminals.

[0149] It should be noted that the client of the moving image sharing service not only decodes encoded data downloaded from the server and displays it on a monitor, but also encodes moving images captured by a camera and uploads them to the server. In other words, the client of the moving image sharing service functions as both the sending device PROD_A and the receiving device PROD_B.

[0150] Next, refer to Figure 3 A case where the above-described moving image encoding device 11 and moving image decoding device 31 can be used for recording and reproducing moving images will be described.

[0151] Figure 3 , a block diagram showing the structure of a recording device PROD_C equipped with the above-mentioned motion picture encoding device 11 is shown in FIG. Figure 3 As shown, the recording device PROD_C includes an encoding unit PROD_C1 that encodes a moving image to obtain encoded data, and a writing unit PROD_C2 that writes the encoded data obtained by the encoding unit PROD_C1 to the recording medium PROD_M. The moving image encoding device 11 described above is used as the encoding unit PROD_C1.

[0152] It should be noted that the recording medium PROD_M can be (1) a type of recording medium built into the recording device PROD_C, such as an HDD (Hard Disk Drive) or an SSD (Solid State Drive), or (2) a type of recording medium connected to the recording device PROD_C, such as an SD memory card or a USB (Universal Serial Bus) flash memory, or (3) a recording medium loaded into a drive device (not shown) built into the recording device PROD_C, such as a DVD (Digital Versatile Disc, registered trademark) or a BD (Blu-ray Disc, registered trademark).

[0153] In addition, the recording device PROD_C can further include a camera PROD_C3 for shooting moving images as a supply source of moving images input to the encoding unit PROD_C1, an input terminal PROD_C4 for inputting moving images from the outside, a receiving unit PROD_C5 for receiving moving images, and an image processing unit PROD_C6 for generating or processing images. Figure 3 The recording device PROD_C is shown as including all of these components, but some of them may be omitted.

[0154] It should be noted that the receiving unit PROD_C5 can receive uncoded moving images or can receive coded data encoded using a transmission encoding method different from the recording encoding method. In the latter case, a transmission decoding unit (not shown) that decodes the coded data encoded using the transmission encoding method is preferably interposed between the receiving unit PROD_C5 and the encoding unit PROD_C1.

[0155] Examples of such a recording device PROD_C include a DVD recorder, a BD recorder, and an HDD (Hard Disk Drive) recorder (in which case the input terminal PROD_C4 or the receiver PROD_C5 is the main source of moving images). Examples of such a recording device PROD_C include a portable video camera (in which case the camera PROD_C3 is the main source of moving images), a personal computer (in which case the receiver PROD_C5 or the image processing unit C6 is the main source of moving images), and a smartphone (in which case the camera PROD_C3 or the receiver PROD_C5 is the main source of moving images).

[0156] also, Figure 3 , a block diagram showing the structure of a playback device PROD_D equipped with the above-mentioned motion picture decoding device 31 is shown in FIG. Figure 3 As shown, the playback device PROD_D includes a reader PROD_D1 for reading coded data written to the recording medium PROD_M and a decoder PROD_D2 for decoding the coded data read by the reader PROD_D1 to obtain a moving picture. The moving picture decoding device 31 described above is used as the decoder PROD_D2.

[0157] It should be noted that the recording medium PROD_M can be (1) a type of recording medium built into the reproduction device PROD_D such as HDD, SSD, etc., or (2) a type of recording medium connected to the reproduction device PROD_D such as SD memory card, USB flash memory, or (3) a recording medium loaded into a drive device (not shown) built into the reproduction device PROD_D such as DVD, BD, etc.

[0158] In addition, the reproduction device PROD_D may further include a display PROD_D3 for displaying moving images as a supply destination of the moving images output by the decoding unit PROD_D2, an output terminal PROD_D4 for outputting the moving images to the outside, and a transmission unit PROD_D5 for transmitting the moving images. Figure 3 The example shows that the playback device PROD_D has all of these components, but some of them may be omitted.

[0159] It should be noted that the transmitter PROD_D5 can transmit unencoded moving images or can transmit encoded data encoded using a transmission encoding method different from the recording encoding method. In the latter case, it is preferable to interpose an encoder (not shown) that encodes moving images using the transmission encoding method between the decoder PROD_D2 and the transmitter PROD_D5.

[0160] Examples of such a reproduction device PROD_D include: a DVD player, a BD player, an HDD player, etc. (in this case, the output terminal PROD_D4 connected to a television receiver, etc. is the main supply destination for motion images). In addition, a television receiver (in this case, the display PROD_D3 is the main supply destination for motion images), a digital signage (also known as an electronic billboard, an electronic bulletin board, etc., the display PROD_D3 or the transmitter PROD_D5 is the main supply destination for motion images), a desktop PC (in this case, the output terminal PROD_D4 or the transmitter PROD_D5 is the main supply destination for motion images), a laptop or tablet PC (in this case, the display PROD_D3 or the transmitter PROD_D5 is the main supply destination for motion images), a smartphone (in this case, the display PROD_D3 or the transmitter PROD_D5 is the main supply destination for motion images), etc. are also examples of such a reproduction device PROD_D. (Hardware implementation and software implementation)

[0161] Furthermore, each block of the moving picture decoding device 31 and the moving picture encoding device 11 may be implemented as hardware using a logic circuit formed on an integrated circuit (IC chip), or may be implemented as software using a CPU (Central Processing Unit).

[0162] In the latter case, each of the aforementioned devices includes a CPU that executes instructions for a program that implements each function, a ROM (Read Only Memory) that stores the program, a RAM (Random Access Memory) that expands the program, and a storage device (recording medium) such as a memory that stores the program and various data. Furthermore, the objectives of the embodiments of the present invention can also be achieved by supplying a recording medium on which the program code (executable program, intermediate code program, source program) of the control program for each of the aforementioned devices, which is computer-readable, is recorded to each of the aforementioned devices, and having the computer (or CPU, MPU) read and execute the program code recorded on the recording medium.

[0163] As the above-mentioned recording medium, for example, the following can be used: magnetic tapes such as magnetic tapes and cassette tapes; magnetic disks such as floppy disks (registered trademark) / hard disks, optical disks such as CD-ROM (Compact Disc Read-Only Memory) / MO disks (Magneto-Optical Disc) / MD (MiniDisc) / DVD (Digital Versatile Disc) / CD-R (CD Recordable) / Blu-ray Disc (registered trademark); cards such as IC cards (including memory cards) / optical cards; semiconductor memories such as mask ROM / EPROM (Erasable Programmable Read-Only Memory) / EEPROM (Electrically Erasable and Programmable Read-Only Memory, registered trademark) / flash ROM; or PLD (Programmable logic device), FPGA (Field Programmable Gate Array) Array: Field Programmable Gate Array) and other logic circuits, etc.

[0164] Furthermore, each of the above-mentioned devices can be configured to be connected to a communication network, and the program code can be supplied via the communication network. The communication network is not particularly limited as long as it can transmit the program code. For example, the Internet, intranet, extranet, LAN (Local Area Network), ISDN (Integrated Services Digital Network), VAN (Value-Added Network), CATV (Community Antenna Television / Cable Television) communication network, virtual private network (VPN), telephone line network, mobile communication network, satellite communication network, etc. can be used. Furthermore, the transmission medium constituting the communication network can be any medium capable of transmitting the program code and is not limited to a specific structure or type. For example, the present invention can be used in wired networks such as IEEE (Institute of Electrical and Electronics Engineers) 1394, USB, power line transmission, cable TV lines, telephone lines, and ADSL (Asymmetric Digital Subscriber Line) lines, as well as wireless networks such as IrDA (Infrared Data Association), infrared such as remote controls, Bluetooth (registered trademark), IEEE 802.11 wireless, HDR (High Data Rate), NFC (Near Field Communication), DLNA (Digital Living Network Alliance), mobile phone networks, satellite lines, and terrestrial digital broadcasting networks. Furthermore, embodiments of the present invention can be implemented in the form of a computer data signal embedded in a carrier wave, embodying the program code via electronic transmission.

[0165] The embodiments of the present invention are not limited to the above-described embodiments, and various modifications can be made within the scope of the claims. That is, embodiments obtained by combining technical solutions appropriately modified within the scope of the claims are also included in the technical scope of the present invention. Industrial applicability

[0166] The embodiments of the present invention are preferably applicable to a moving picture decoding device that decodes coded data obtained by encoding image data, and a moving picture encoding device that generates coded data obtained by encoding image data. Furthermore, the embodiments of the present invention are preferably applicable to the data structure of coded data generated by a moving picture encoding device and referenced by a moving picture decoding device. Description of main component symbols 31 Motion picture decoding device 301 Entropy Decoding Unit 302 parameter decoding unit 3020 header decoding unit 308 Prediction Image Generation Unit 311 Inverse quantization / inverse conversion unit 312 Addition Department 11Motion picture encoding device 101 Prediction Image Generation Unit 102 Subtraction Department 103 Conversion / Quantization Department 104 Entropy Coding Unit 105 Inverse quantization / inverse conversion unit 107 loop filter 110 Coding parameter determination unit 111 parameter encoding unit 1110 header encoding unit 1111CT Information Coding Department 1112CU encoding unit (prediction mode encoding unit) 1114TU Coding Department 311 Inverse quantization / inverse conversion unit 3111 Inverse Quantization Unit 3112 reverse conversion unit

Claims

1. A decoding unit for decoding image data, characterized in that: The decoding unit includes: a header decoding unit that decodes a flag that prohibits transform skip prediction error quantization, the flag that prohibits transform skip prediction error quantization specifying that residual coding is used to resolve prediction error samples for a transform skip block in an existing slice, or specifying that prediction error transform skip coding is used to resolve prediction error samples for a transform skip block in an existing slice, based on a value of a transform skip dependent quantization flag that specifies whether a transform skip flag can be present in a transform unit syntax; a transform unit (TU) decoding section that decodes the transform skip flag, the transform skip flag specifying whether a transform is applied to an associated block based on (i) the value of the transform skip quantization-dependent flag; (ii) the value of the bdpcm flag; and (iii) a transform block size; and The inverse quantization / inverse conversion section derives the conversion coefficients by using the scaling factors, Wherein, when the value of the conversion skip flag is equal to 0, or the flag for prohibiting conversion skip prediction error quantization is equal to 1, the normal prediction error coding is used, Otherwise, the prediction error transform skip coding is used, and The inverse quantization / inverse conversion section derives the scaling factor by switching between a plurality of derivation methods based on the value of the conversion skip flag.

2. An encoding unit for encoding image data, characterized in that: The encoding unit includes: a header encoding unit that encodes a flag for disabling transform skip prediction error quantization, the flag for disabling transform skip prediction error quantization specifying that residual coding is used to resolve prediction error samples for a transform skip block in an existing slice, or specifies that prediction error transform skip coding is used to resolve prediction error samples for a transform skip block in an existing slice, based on a value of a transform skip dependent quantization flag that specifies whether a transform skip flag can be present in a transform unit syntax; a transform unit (TU) encoder that encodes the transform skip flag, the transform skip flag specifying whether a transform is applied to an associated block based on (i) the value of the transform skip quantization-dependent flag; (ii) the value of the bdpcm flag; and (iii) a transform block size; and The inverse quantization / inverse conversion section derives the conversion coefficients by using the scaling factors, Wherein, when the value of the conversion skip flag is equal to 0, or the flag for prohibiting conversion skip prediction error quantization is equal to 1, the normal prediction error coding is used, Otherwise, the prediction error transform skip coding is used, and The inverse quantization / inverse conversion section derives the scaling factor by switching between a plurality of derivation methods based on the value of the conversion skip flag.

3. A non-transitory computer-readable medium storing a bitstream generated by encoding motion data, characterized in that The bitstream is decoded by the following process: decoding, from the bitstream, a flag that disables transform skip prediction error quantization, the flag that specifies, based on a value of a transform skip dependent quantization flag that specifies whether a transform skip flag can be present in transform unit syntax, that residual coding is used to resolve prediction error samples for a transform skip block in an existing slice, or that prediction error transform skip coding is used to resolve prediction error samples for a transform skip block in an existing slice; decoding the convert skip flag, the convert skip flag being based on (i) the value of the convert skip quantization dependent flag; (ii) the value of the bdpcm flag; and (iii) transform block size to specify whether a transform is applied to the associated block; as well as The conversion coefficient is derived by using the scaling factor, Wherein, when the value of the conversion skip flag is equal to 0, or the flag for prohibiting conversion skip prediction error quantization is equal to 1, the normal prediction error coding is used, Otherwise, the prediction error transform skip coding is used, and The scaling factor is derived by switching between a plurality of derivation methods based on the value of the conversion skip flag.