WO2020122224A1 - 画像復号装置、画像復号方法、及び画像復号プログラム - Google Patents

画像復号装置、画像復号方法、及び画像復号プログラム Download PDF

Info

Publication number
WO2020122224A1
WO2020122224A1 PCT/JP2019/048855 JP2019048855W WO2020122224A1 WO 2020122224 A1 WO2020122224 A1 WO 2020122224A1 JP 2019048855 W JP2019048855 W JP 2019048855W WO 2020122224 A1 WO2020122224 A1 WO 2020122224A1
Authority
WO
WIPO (PCT)
Prior art keywords
merge candidate
prediction
merge
motion vector
correction
Prior art date
Application number
PCT/JP2019/048855
Other languages
English (en)
French (fr)
Inventor
英樹 竹原
Original Assignee
株式会社Jvcケンウッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP2019171782A external-priority patent/JP6933235B2/ja
Priority to RU2021108001A priority Critical patent/RU2770794C1/ru
Priority to CN202310789721.4A priority patent/CN116600108A/zh
Priority to EP19896609.5A priority patent/EP3896972A4/en
Priority to CN202310789243.7A priority patent/CN116582667A/zh
Priority to KR1020217003083A priority patent/KR102600108B1/ko
Priority to KR1020237038090A priority patent/KR20230156809A/ko
Priority to CA3119641A priority patent/CA3119641A1/en
Application filed by 株式会社Jvcケンウッド filed Critical 株式会社Jvcケンウッド
Priority to BR112021005875-3A priority patent/BR112021005875B1/pt
Priority to CN201980050605.2A priority patent/CN112514395B/zh
Priority to CN202110325100.1A priority patent/CN112887720B/zh
Priority to MX2021003506A priority patent/MX2021003506A/es
Priority to CN202310789241.8A priority patent/CN116582666A/zh
Publication of WO2020122224A1 publication Critical patent/WO2020122224A1/ja
Priority to US17/210,629 priority patent/US11563935B2/en
Priority to ZA2021/02033A priority patent/ZA202102033B/en
Priority to US18/066,030 priority patent/US11758129B2/en
Priority to US18/358,189 priority patent/US20230370584A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/58Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability

Definitions

  • the present invention relates to image decoding technology.
  • HEVC High Efficiency Video Coding
  • the inter prediction mode has a merge mode and a differential motion vector mode, but the inventor has come to recognize that there is room to further improve the coding efficiency by correcting the motion vector in the merge mode.
  • the present invention has been made in view of such a situation, and an object thereof is to provide a new inter prediction mode with higher efficiency by correcting the motion vector in the merge mode.
  • an image decoding device is a merge candidate list generation unit that generates a merge candidate list including motion information of a plurality of blocks adjacent to a prediction target block as merge candidates;
  • a merge candidate selection unit that selects a merge candidate as a selected merge candidate from the merge candidate list, a code string decoding unit that decodes a code string from an encoded stream to derive a correction vector, and a motion of the first prediction of the selected merge candidate.
  • a merge candidate correction unit that adds the correction vector to the vector without scaling and subtracts the correction vector from the motion vector of the second prediction of the selected merge candidate without scaling to derive a correction merge candidate.
  • FIG. 1A is a diagram illustrating a configuration of an image encoding device 100 according to the first embodiment
  • FIG. 1B is a configuration of an image decoding device 200 according to the first embodiment. It is a figure explaining. It is a figure which shows the example in which the input image is divided
  • FIG. 9 is a flowchart illustrating the operation of the merge mode according to the second embodiment. It is a figure which shows a part of syntax of the block which is the merge mode of 2nd Embodiment. It is a figure which shows the syntax of the differential motion vector of 2nd Embodiment. It is a figure explaining the effect of the modification 8 of 1st Embodiment.
  • FIG. 16 is a diagram for explaining an effect when the picture intervals of the modified example 8 of the first embodiment are not uniform. It is a figure for demonstrating an example of the hardware constitutions of the encoding/decoding apparatus of 1st Embodiment.
  • FIG. 1A is a diagram illustrating a configuration of an image encoding device 100 according to the first embodiment
  • FIG. 1B is a configuration of an image decoding device 200 according to the first embodiment. It is a figure explaining.
  • the image coding apparatus 100 includes a block size determination unit 110, an inter prediction unit 120, a conversion unit 130, a code string generation unit 140, a local decoding unit 150, and a frame memory 160.
  • the image encoding device 100 receives an input image, performs intra prediction and inter prediction, and outputs an encoded stream.
  • the image and the picture are used with the same meaning.
  • the image decoding device 200 includes a code string decoding unit 210, an inter prediction unit 220, an inverse conversion unit 230, and a frame memory 240.
  • the image decoding device 200 receives the encoded stream output from the image encoding device 100, performs intra prediction and inter prediction, and outputs a decoded image.
  • the image encoding device 100 and the image decoding device 200 are realized by hardware such as an information processing device including a CPU (Central Processing Unit) and a memory.
  • an information processing device including a CPU (Central Processing Unit) and a memory.
  • the block size determination unit 110 determines the block size for inter prediction based on the input image, and supplies the determined block size, the position of the block, and the input pixel (input value) corresponding to the block size to the inter prediction unit 120.
  • a method for determining the block size an RDO (rate distortion optimization) method used in HEVC reference software is used.
  • FIG. 2 shows an example in which a partial area of an image input to the image encoding device 100 is divided into blocks based on the block size determined by the block size determination unit 110.
  • the input image is divided into any of the above block sizes so that the blocks do not overlap.
  • the inter prediction unit 120 uses information input from the block size determination unit 110 and reference pictures input from the frame memory 160 to determine inter prediction parameters used for inter prediction.
  • the inter prediction unit 120 inter-predicts based on the inter prediction parameter to derive a prediction value, and supplies the block size, block position, input value, inter prediction parameter and prediction value to the conversion unit 130.
  • the RDO (rate distortion optimization) method used in the reference software of HEVC is used as a method of determining the inter prediction parameter. Details of the inter prediction parameter and the operation of the inter prediction unit 120 will be described later.
  • the conversion unit 130 subtracts the prediction value from the input value to calculate a difference value, performs processing such as orthogonal transformation and quantization on the calculated difference value to calculate prediction error data, and calculates the block size, the block position,
  • the inter prediction parameter and the prediction error data are supplied to the code string generation unit 140 and the local decoding unit 150.
  • the code string generation unit 140 may use an SPS (Sequence Parameter) as necessary. Set), PPS (Picture Parameter Set), and other information, encodes a code string for determining the block size supplied from the conversion unit 130, encodes an inter prediction parameter as a code string, and calculates prediction error data. Is encoded as a code string, and an encoded stream is output. Details of encoding the inter prediction parameter will be described later.
  • SPS Sequence Parameter
  • PPS Picture Parameter Set
  • the local decoding unit 150 performs processing such as inverse orthogonal transformation and inverse quantization on the prediction error data to restore the difference value, adds the difference value and the prediction value to generate a decoded image, and decodes the decoded image and the inter prediction parameter. Are supplied to the frame memory 160.
  • the frame memory 160 stores a decoded image and an inter prediction parameter for a plurality of images, and supplies the decoded image and the inter prediction parameter to the inter prediction unit 120.
  • Intra prediction is performed similarly to HEVC, and inter prediction will be described below.
  • the code string decoding unit 210 decodes the SPS, the PPS header and other information from the encoded stream as needed, and decodes the block size, the position of the block, the inter prediction parameter, and the prediction error data from the encoded stream, The block size, the block position, the inter prediction parameter, and the prediction error data are supplied to the inter prediction unit 220.
  • the inter prediction unit 220 uses the information input from the code string decoding unit 210 and the reference picture input from the frame memory 240 to inter-predict and derive a prediction value.
  • the inter prediction unit 220 supplies the block size, the position of the block, the inter prediction parameter, the prediction error data, and the prediction value to the inverse transform unit 230.
  • the inverse transform unit 230 performs a process such as inverse orthogonal transform and inverse quantization on the prediction error data supplied from the inter prediction unit 220 to calculate a difference value, and adds the difference value and the predicted value to generate a decoded image. Then, the decoded image and the inter prediction parameter are supplied to the frame memory 240, and the decoded image is output.
  • the frame memory 240 stores the decoded image and the inter prediction parameter for a plurality of images, and supplies the decoded image and the inter prediction parameter to the inter prediction unit 220.
  • the inter prediction performed by the inter prediction unit 120 and the inter prediction unit 220 is the same operation, and the decoded image and the inter prediction parameter stored in the frame memory 160 and the frame memory 240 are also the same.
  • the inter prediction parameter includes a merge flag, a merge index, a valid flag of the prediction LX, a motion vector of the prediction LX, a reference picture index of the prediction LX, a merge correction flag, and a difference motion vector of the prediction LX.
  • LX is L0 and L1.
  • the merge flag is a flag indicating whether to use the merge mode or the difference motion vector mode as the inter prediction mode. If the merge flag is 1, the merge mode is used, and if the merge flag is 0, the differential motion vector mode is used.
  • the merge index is an index indicating the position of the selected merge candidate in the merge candidate list.
  • the valid flag of the prediction LX is a flag indicating whether the prediction LX is valid or invalid.
  • the merge correction flag is a flag indicating whether or not the motion information of the merge candidate is corrected. If the merge correction flag is 1, the merge candidate is corrected, and if the merge correction flag is 0, the merge candidate is not corrected.
  • the code string generation unit 140 does not code the valid flag of the prediction LX as a code string in the coded stream. Further, the code string decoding unit 210 does not decode the valid flag of the prediction LX as a code string from the encoded stream.
  • the reference picture index is an index for specifying the decoded image in the frame memory 160. Also, a combination of a valid flag for L0 prediction, a valid flag for L1 prediction, a motion vector for L0 prediction, a motion vector for L1 prediction, a reference picture index for L0 prediction, and a reference picture index for L1 prediction is defined as motion information.
  • both the valid flag for L0 prediction and the valid flag for L1 prediction are invalid.
  • the picture type will be described as a B picture that can use both unidirectional prediction of L0 prediction, unidirectional prediction of L1 prediction, and bidirectional prediction.
  • the picture type is a P picture that can use only unidirectional prediction. It may be.
  • the L0 prediction is the only target inter prediction parameter, and the L1 prediction does not exist.
  • the reference picture for L0 prediction is a picture earlier than the prediction target picture
  • the reference picture for L1 prediction is a future picture than the prediction target picture. This is because the coding efficiency is improved by the interpolative prediction when the L0 prediction reference picture and the L1 prediction reference picture are in opposite directions from the prediction target picture.
  • Whether or not the L0 prediction reference picture and the L1 prediction reference picture are in the opposite directions from the prediction target picture can be determined by comparing the POC (Picture Order Count) of the reference picture.
  • the L0 prediction reference picture and the L1 prediction reference picture are temporally opposite to the prediction target picture in the prediction target block.
  • inter prediction unit 120 Next, details of the inter prediction unit 120 will be described. Unless otherwise specified, the configuration and operation of the inter prediction unit 120 of the image encoding device 100 and the inter prediction unit 220 of the image decoding device 200 are the same.
  • FIG. 3 is a diagram illustrating the configuration of the inter prediction unit 120.
  • the inter prediction unit 120 includes a merge mode determination unit 121, a merge candidate list generation unit 122, a merge candidate selection unit 123, a merge candidate correction determination unit 124, a merge candidate correction unit 125, a difference motion vector mode execution unit 126, and a prediction value derivation unit. Including 127.
  • the inter prediction unit 120 switches the inter prediction mode between the merge mode and the differential motion vector mode for each block.
  • the differential motion vector mode performed by the differential motion vector mode implementation unit 126 is assumed to be performed in the same manner as HEVC, and hereinafter, the merge mode will be mainly described.
  • the merge mode determination unit 121 determines whether to use the merge mode as the inter prediction mode for each block. If the merge flag is 1, the merge mode is used, and if the merge flag is 0, the differential motion vector mode is used.
  • the inter prediction unit 120 uses the RDO (rate distortion optimization) method or the like used in HEVC reference software to determine whether to set the merge flag to 1.
  • the code string decoding unit 210 acquires the merge flag decoded from the coded stream based on the syntax. Details of the syntax will be described later.
  • the differential motion vector mode implementation unit 126 implements the differential motion vector mode, and the inter prediction parameter of the differential motion vector mode is supplied to the predicted value derivation unit 127.
  • the merge candidate list generation unit 122, the merge candidate selection unit 123, the merge candidate correction determination unit 124, and the merge candidate correction unit 125 perform the merge mode, and the inter prediction parameter of the merge mode is the predicted value. It is supplied to the derivation unit 127.
  • FIG. 4 is a flowchart explaining the operation in the merge mode.
  • the merge mode will be described in detail with reference to FIGS. 3 and 4.
  • the merge candidate list generation unit 122 generates a merge candidate list from the motion information of the block adjacent to the processing target block and the motion information of the block of the decoded image (S100), and the generated merge candidate list is used as the merge candidate selection unit.
  • the processing target block and the prediction target block are used with the same meaning.
  • FIG. 5 is a diagram illustrating the configuration of the merge candidate list generation unit 122.
  • the merge candidate list generating unit 122 includes a spatial merge candidate generating unit 201, a temporal merge candidate generating unit 202, and a merge candidate supplementing unit 203.
  • FIG. 6 is a diagram illustrating a block adjacent to the processing target block.
  • the blocks adjacent to the processing target block are block A, block B, block C, block D, block E, block F, and block G.
  • a plurality of blocks adjacent to the processing target block are used, Not limited to.
  • FIG. 7 is a diagram for explaining blocks on the decoded image at the same position as the processing target block and its periphery.
  • the blocks on the decoded image at the same position as the processing target block and its periphery are referred to as block CO1, block CO2, and block CO3, but a plurality of blocks on the decoded image at the same position as the processing target block and their periphery Is not limited to this.
  • the blocks CO1, CO2, and CO3 are called the same position block, and the decoded image including the same position block is called the same position picture.
  • the spatial merge candidate generation unit 201 sequentially inspects the block A, the block B, the block C, the block D, the block E, the block F, and the block G to determine which of the valid flag for L0 prediction and the valid flag for L1 prediction. If either or both are valid, the motion information of the block is sequentially added to the merge candidate list as a merge candidate.
  • the merge candidates generated by the spatial merge candidate generation unit 201 are called spatial merge candidates.
  • the temporal merge candidate generation unit 202 sequentially inspects the block C01, the block CO2, and the block CO3, and the movement of the block in which either or both of the L0 prediction valid flag and the L1 prediction valid flag are valid first.
  • the information is subjected to processing such as scaling and sequentially added as merge candidates to the merge candidate list.
  • the merge candidates generated by the time merge candidate generation unit 202 are called time merge candidates.
  • Scaling of time merge candidates is similar to HEVC.
  • the motion vector of the temporal merge candidate the motion vector of the co-located block is compared with the picture with the prediction target block and the picture referenced by the temporal merge candidate based on the distance between the co-located picture and the reference picture referenced by the co-located block. It is derived by scaling by the distance.
  • the picture referenced by the temporal merge candidate is a reference picture whose reference picture index is 0 in both L0 prediction and L1 prediction. Further, which of the same position block of L0 prediction and the same position block of L1 prediction is used as the same position block is determined by encoding (decoding) the same position derivation flag. As described above, as a temporal merge candidate, one motion vector of L0 prediction or L1 prediction of the same position block is scaled to L0 prediction and L1 prediction to derive new L0 prediction and L1 prediction motion vectors, Let L0 prediction and L1 prediction motion vectors of the temporal merge candidate.
  • the merge candidate supplementing unit 203 determines that the number of merge candidates included in the merge candidate list is equal to the maximum number of merge candidates. Until this is reached, supplementary merge candidates are added to the merge candidate list to make the number of merge candidates included in the merge candidate list the maximum number of merge candidates.
  • the supplemental merge candidate is motion information in which the motion vectors of L0 prediction and L1 prediction are both (0, 0) and the reference picture indexes of L0 prediction and L1 prediction are both 0.
  • the maximum number of merge candidates is 6, but it may be 1 or more.
  • the merge candidate selection unit 123 selects one merge candidate from the merge candidate list (S101), and supplies the selected merge candidate (referred to as “selected merge candidate”) and the merge index to the merge candidate correction determination unit 124. Then, the selected merge candidate is used as the motion information of the processing target block.
  • the inter prediction unit 120 of the image encoding device 100 selects one merge candidate from the merge candidates included in the merge candidate list by using the RDO (rate distortion optimization) method or the like used in HEVC reference software. Determine the merge index.
  • the code string decoding unit 210 acquires the merge index decoded from the encoded stream, and selects one merge candidate from the merge candidates included in the merge candidate list based on the merge index. Select as a candidate.
  • the merge candidate correction determination unit 124 determines that the width of the processing target block is equal to or larger than a predetermined width, the height of the processing target block is equal to or larger than a predetermined height, and both or at least one of the L0 prediction and the L1 prediction of the selected merge candidate. It is checked whether it is valid (S102). If the width of the block to be processed is equal to or larger than a predetermined width, the height of the block to be processed is equal to or larger than the predetermined height, and at least one of L0 prediction and/or L1 prediction of the selected merge candidate is valid (S102). No), the process proceeds to step S111 without correcting the selected merge candidate as the motion information of the processing target block.
  • the merge candidate list always includes merge candidates in which at least one of L0 prediction and L1 prediction is valid, it is obvious that both or at least one of L0 prediction and L1 prediction of the selected merge candidate is valid. is there. Therefore, in S102, "whether or not at least one of the L0 prediction and the L1 prediction of the selected merge candidate is effective" is omitted, and the width of the processing target block is equal to or larger than a predetermined width and the height of the processing target block is predetermined in S102. You may inspect whether it is more than the height.
  • the merge is performed.
  • the candidate correction determination unit 124 sets the merge correction flag (S103) and supplies the merge correction flag to the merge candidate correction unit 125.
  • the merge correction flag is set to 1 and the inter prediction with the selected merge candidate is performed. If the prediction error is not greater than or equal to the predetermined prediction error, the merge correction flag is set to 0.
  • the code string decoding unit 210 acquires the merge correction flag decoded from the coded stream based on the syntax.
  • the merge candidate correction unit 125 checks whether the merge correction flag is 1 (S104). If the merge correction flag is not 1 (NO in S104), the process proceeds to step S111 without correcting the selected merge candidate as the motion information of the processing target block.
  • the merge correction flag is 1 (YES in S104), it is checked whether the L0 prediction of the selected merge candidate is valid (S105). If the L0 prediction of the selected merge candidate is not valid (NO in S105), the process proceeds to step S108. If the L0 prediction of the selected merge candidate is valid (YES in S105), the differential motion vector of the L0 prediction is determined (S106). As described above, if the merge correction flag is 1, the motion information of the selected merge candidate is corrected, and if the merge correction flag is 0, the motion information of the selected merge candidate is not corrected.
  • the differential motion vector of L0 prediction is obtained by motion vector search.
  • the search range of the motion vector is ⁇ 16 in both the horizontal direction and the vertical direction, but may be a multiple of 2 such as ⁇ 64.
  • the code string decoding unit 210 acquires the differential motion vector of L0 prediction decoded from the coded stream based on the syntax.
  • the merge candidate correction unit 125 calculates a corrected motion vector for L0 prediction, and sets the corrected motion vector for L0 prediction as the motion vector for L0 prediction of the motion information of the block to be processed (S107).
  • the corrected motion vector (mvL0) for L0 prediction is the sum of the motion vector (mmvL0) for L0 prediction of the selected merge candidate and the differential motion vector (mvdL0) for L0 prediction, and is given by the following formula. Note that [0] indicates the horizontal component of the motion vector, and [1] indicates the vertical component of the motion vector.
  • the differential motion vector of L1 prediction is obtained by motion vector search.
  • the search range of the motion vector is ⁇ 16 in both the horizontal and vertical directions, but is a power of 2 such as ⁇ 64.
  • the code string decoding unit 210 acquires the differential motion vector of L1 prediction decoded from the coded stream based on the syntax.
  • the merge candidate correction unit 125 calculates a corrected motion vector for L1 prediction, and sets the corrected motion vector for L1 prediction as the motion vector for L1 prediction of the motion information of the processing target block (S110).
  • the corrected motion vector (mvL1) for L1 prediction is the sum of the motion vector (mmvL1) for L1 prediction of the selected merge candidate and the differential motion vector (mvdL1) for L1 prediction, and is given by the following formula. Note that [0] indicates the horizontal component of the motion vector, and [1] indicates the vertical component of the motion vector.
  • the prediction value derivation unit 127 performs inter prediction of L0 prediction, L1 prediction, or bi-prediction based on the motion information of the processing target block, and derives a prediction value (S111). As described above, if the merge correction flag is 1, the motion vector of the selected merge candidate is corrected, and if the merge correction flag is 0, the motion vector of the selected merge candidate is not corrected.
  • FIG. 8 is a diagram showing a part of the syntax of a block in the merge mode.
  • Table 1 shows the relationship between inter prediction parameters and syntax.
  • cbWidth is the width of the block to be processed
  • cbHeight is the height of the block to be processed.
  • the predetermined width and the predetermined height are both 8. By setting the predetermined width and the predetermined height, it is possible to reduce the processing amount by not correcting the merge candidates in units of small blocks.
  • cu_skip_flag is 1 when the block is in the skip mode, and is 0 when the block is not in the skip mode.
  • the skip mode syntax is the same as the merge mode syntax.
  • merge_idx is a merge index for selecting a selected merge candidate from the merge candidate list.
  • the merge_mod_jx is determined to be the encoding (decoding) of the merge_mod_flag, and the merge_idx is shared with the merge mode merge index to determine the syntax. Encoding efficiency is improved while suppressing complication and increase in context.
  • FIG. 9 is a diagram showing the syntax of the differential motion vector.
  • Mvd_coding(N) in FIG. 9 has the same syntax as that used in the differential motion vector mode.
  • N is 0 or 1.
  • the syntax of the differential motion vector is abs_mvd_greater0_flag[d], which is a flag indicating whether the component of the differential motion vector is greater than 0, and abs_mvd_greater1_flag[ which is a flag indicating whether the component of the differential motion vector is greater than 1.
  • d mvd_sign_flag[d] indicating the sign ( ⁇ ) of the component of the differential motion vector
  • abs_mvd_minus2[d] indicating the absolute value of the vector obtained by subtracting 2 from the component of the differential motion vector.
  • d is 0 or 1.
  • HEVC High Efficiency Video Coding
  • a merge mode and a differential motion vector mode as inter prediction modes.
  • the motion information in the merge mode depends on the processed block, the cases where the prediction efficiency is high are limited, and it is necessary to further improve the utilization efficiency.
  • the differential motion vector mode L0 prediction and L1 prediction are separately prepared as syntaxes, and the prediction type (L0 prediction, L1 prediction or bi-prediction) and the motion vector predictor flag and the differential motion A vector and a reference picture index were needed. Therefore, the differential motion vector mode is not as efficient in encoding as the merge mode, but it is a motion that cannot be derived in the merge mode, and is a sudden motion that has little correlation with the motion of spatially adjacent blocks or temporally adjacent blocks. However, the prediction efficiency was stable and the prediction efficiency was high.
  • the present embodiment it is possible to correct the motion vector of the merge mode while fixing the prediction type of the merge mode and the reference picture index, thereby improving the coding efficiency as compared with the differential motion vector mode and improving the usage efficiency. It can be improved over the merge mode.
  • the size of the difference motion vector can be suppressed to be small, and the coding efficiency can be suppressed.
  • the differential motion vector is used as the syntax of the block in the merge mode.
  • the differential motion vector is defined to be encoded (or decoded) as a differential unit motion vector.
  • the differential unit motion vector is a motion vector when the picture interval is the minimum interval. In HEVC or the like, the minimum picture interval is coded as a code string in the coded stream.
  • the coding efficiency can be particularly improved when the difference motion vector is large and the distance between the prediction target picture and the reference picture is large. Further, even when the interval between the processing target picture and the reference picture and the speed of the object moving in the screen are in a proportional relationship, the prediction efficiency and the coding efficiency can be improved.
  • 0 can be encoded (or decoded) as a component of the differential motion vector, and for example, only the L0 prediction can be changed. In this modification, it is assumed that 0 cannot be encoded (or decoded) as a component of the differential motion vector.
  • FIG. 10 is a diagram showing the syntax of the differential motion vector of Modification 2.
  • the syntax of the differential motion vector is abs_mvd_greater1_flag[d], which is a flag indicating whether the component of the differential motion vector is greater than 1, and abs_mvd_greater2_flag[ which is a flag indicating whether the component of the differential motion vector is greater than 2.
  • abs_mvd_minus3[d] indicating the absolute value of a vector obtained by subtracting 3 from the difference motion vector component
  • mvd_sign_flag[d] indicating the sign ( ⁇ ) of the difference motion vector component.
  • the component of the differential motion vector is an integer, and in Modification 2, it is an integer except 0. In this modification, the components of the differential motion vector excluding the ⁇ sign are limited to powers of 2.
  • Abs_mvd_pow_plus1[d] is used instead of abs_mvd_minus2[d], which is the syntax of this embodiment.
  • the differential motion vector mvd[d] is calculated from mvd_sign_flag[d] and abs_mvd_pow_plus1[d] by the following equation.
  • mvd[d] mvd_sign_flag[d]*2 ⁇ (abs_mvd_pow_plus1[d]+1)
  • abs_mvd_pow_plus2[d] is used instead of abs_mvd_minus3[d], which is the syntax of the modified example 2.
  • the differential motion vector mvd[d] is calculated from mvd_sign_flag[d] and abs_mvd_pow_plus2[d] by the following equation.
  • mvd[d] mvd_sign_flag[d]*2 ⁇ (abs_mvd_pow_plus2[d]+2)
  • abs_mvd_coding (N) of the present modified example abs_mvd_greater0_flag [d], abs_mvd_greater1_flag [d], mvd_sign_flag [d] is not present, but instead, a configuration including abs_mvr_plus2 [d] and mvr_sign_flag [d] ..
  • the corrected motion vector (mvLN) for LN prediction is the product of the motion vector (mmvLN) for LN prediction of the selected merge candidate and the motion vector magnification (mvrLN), and is calculated by the following formula.
  • Modification 5 In the syntax of this embodiment shown in FIG. 8, when cu_skip_flag is 1 (in the skip mode), there is a possibility that the merge_mod_flag exists, but in the skip mode, the merge_mod_flag does not exist. May be.
  • the differential motion vector may be validated regardless of whether the LN prediction of the selected merge candidate is valid, without checking whether the LN prediction of the selected merge candidate is valid. In this case, when the LN prediction of the selected merge candidate is invalid, the motion vector of the LN prediction of the selected merge candidate is (0, 0), and the reference picture index of the LN prediction of the selected merge candidate is 0.
  • the differential motion vector is validated regardless of whether the LN prediction of the selected merge candidate is valid, thereby increasing the chances of using bidirectional prediction and increasing the coding efficiency. Can be improved.
  • whether or not the L0 prediction and L1 prediction of the selected merge candidate are individually valid is determined and whether or not the differential motion vector is encoded (or decoded) is controlled.
  • the differential motion vector is encoded (or decoded) when both the L0 prediction and the L1 prediction are valid, and the differential motion vector is encoded (or decoded) when both the L0 prediction and the L1 prediction of the selected merge candidate are not valid ( (Or decryption) may not be performed.
  • step S102 is as follows.
  • the merge candidate correction determination unit 124 checks whether the width of the processing target block is a predetermined width or more, the height of the processing target block is a predetermined height or more, and both the L0 prediction and the L1 prediction of the selected merge candidate are valid. (S102).
  • steps S105 and S108 are unnecessary in this modification.
  • FIG. 11 is a diagram showing a part of the syntax of a block which is the merge mode of the modification 7. The syntax regarding steps S102, S105, and S108 is different.
  • the differential motion vector is validated when both L0 prediction and L1 prediction of the selected merge candidate are valid, and thus the motion vector of the selected merge candidate of bidirectional prediction that is frequently used is high. It is possible to efficiently improve the prediction efficiency by correcting the.
  • two differential motion vectors that is, the differential motion vector of L0 prediction and the differential motion vector of L1 prediction are used as the syntax of the block in the merge mode.
  • only one differential motion vector is encoded (or decoded), and one differential motion vector is shared as a corrected motion vector for L0 prediction and a corrected motion vector for L1 prediction.
  • the motion vector of the L1 prediction is calculated from the following formula. Difference motion vectors in the opposite direction to the L0 prediction are added. The differential motion vector may be subtracted from the L1 predicted motion vector of the selected merge candidate.
  • FIG. 12 is a diagram showing a part of the syntax of the block in the merge mode of the modified example 8.
  • the present embodiment differs from the present embodiment in that the validity of the L0 prediction and the validity of the L1 prediction are checked, but they are deleted, and mvd_coding(1) is not present.
  • mvd_coding(0) corresponds to one differential motion vector.
  • the present modification by defining only one differential motion vector for L0 prediction and L1 prediction, the number of differential motion vectors is halved in the case of bi-prediction, and L0 prediction and L1 prediction are performed. By sharing it with, it is possible to improve coding efficiency while suppressing a decrease in prediction efficiency.
  • the differential motion vector is added in the opposite direction.
  • FIG. 16 is a diagram for explaining the effect of the modified example 8.
  • FIG. 16 is an image showing a state of a sphere (area shaded with diagonal lines) moving horizontally in a moving rectangular area (area surrounded by a broken line).
  • the movement of the sphere with respect to the screen is the movement of the rectangle area and the movement of the sphere moving in the horizontal direction.
  • the picture B is a prediction target picture
  • the picture A is an L0 prediction reference picture
  • the picture C is an L1 prediction reference picture.
  • the picture A and the picture C are reference pictures that are in the opposite direction from the prediction target picture.
  • the movement amount of the sphere that cannot be acquired from the adjacent block is added to the L0 prediction and subtracted from the L1 prediction. You can accurately reproduce the movement of the sphere.
  • the pictures A, B, and C are not at equal intervals, but if the movement amounts corresponding to the rectangular region of the sphere are at equal intervals, then they are obtained from adjacent blocks.
  • the movement of the sphere can be accurately reproduced by adding the amount of movement of the sphere that cannot be performed to the L0 prediction and subtracting it from the L1 prediction.
  • FIG. 17 is a diagram illustrating an effect when the picture intervals of the modified example 8 are not equal. This example will be described in detail with reference to FIG. Pictures F0, F1,..., F8 in FIG. 17 indicate pictures at fixed intervals. From the picture F0 to the picture F4, the sphere is stationary, and after the picture F5, it moves at a constant speed in a certain direction.
  • the picture F0 and the picture F6 are reference pictures and the picture F5 is a prediction target picture
  • the picture F0, the picture F5, and the picture F6 are not at equal intervals, but the movement amounts corresponding to the rectangular region of the sphere are at equal intervals.
  • the picture F5 is the prediction target picture
  • the picture F4 having a short distance is selected as the reference picture
  • the picture F0 is selected as the reference picture instead of the picture F4 because the picture F0 is distorted more than the picture F4. This is the case when the picture is a high-quality picture with few.
  • Reference pictures are usually managed by a FIFO (First-In First-Out) method within a reference picture buffer, but a long-term reference picture is used as a mechanism for allowing a high-quality picture with little distortion to remain in the reference picture buffer for a long time. is there.
  • the long-term reference picture is not managed as a FIFO in the reference picture buffer, and whether or not it is a long-term reference picture is managed by the reference picture list control information encoded in the slice header.
  • the present modification can improve the prediction efficiency and the coding efficiency by being applied when either or both of the L0 prediction and the L1 prediction are long-term reference pictures. Further, the present modification can improve the prediction efficiency and the coding efficiency by being applied when either or both of the L0 prediction and the L1 prediction are intra pictures.
  • the circuit scale and power consumption can be reduced by not scaling the differential motion vector based on the inter-picture distance like the time merge candidate. For example, when scaling a differential motion vector, if a temporal merge candidate is selected as a selective merge candidate, both scaling of a temporal merge candidate and scaling of a differential motion vector are needed. Since the scaling of the time merge candidate and the scaling of the differential motion vector are different in the motion vector serving as the scaling reference, both scalings cannot be performed together and must be performed separately.
  • the temporal merge candidate is scaled, and if the differential motion vector is smaller than the temporal merge candidate motion vector, the differential motion vector is smaller.
  • the coding efficiency can be improved without scaling the vector.
  • the difference motion vector is large, it is possible to suppress the decrease in coding efficiency by selecting the difference motion vector mode.
  • the maximum number of merge candidates when the merge correction flag is 0 and 1 is the same.
  • the maximum number of merge candidates when the merge correction flag is 1 is set smaller than the maximum number of merge candidates when the merge correction flag is 0.
  • the maximum number of merge candidates when the merge correction flag is 1 is 2.
  • the maximum number of merge candidates when the merge correction flag is 1 is the maximum number of corrected merge candidates.
  • the merge correction flag is encoded (decoded), and when the merge index is equal to or larger than the maximum number of corrected merge candidates, the merge correction flag is encoded (decoded). ) Try not to.
  • the maximum number of merge candidates and the maximum number of correction merge candidates when the merge correction flag is 0 may be a predetermined value, or may be encoded (decoded) in SPS or PPS in the encoded stream. You may obtain it.
  • the maximum number of merge candidates when the merge correction flag is 1 is set to be smaller than the maximum number of merge candidates when the merge correction flag is 0, so that the merge candidates having a higher selection probability Only by determining whether or not to correct the merge candidate, it is possible to reduce the processing of the encoding device and suppress the decrease in encoding efficiency. Further, when the merge index is equal to or larger than the maximum number of corrected merge candidates, it is not necessary to code (decode) the merge correction flag, and thus the coding efficiency is improved.
  • the configurations of the image encoding device 100 and the image decoding device 200 according to the second embodiment are the same as those of the image encoding device 100 and the image decoding device 200 according to the first embodiment.
  • the present embodiment differs from the first embodiment in the operation in the merge mode and the syntax. Hereinafter, the difference between this embodiment and the first embodiment will be described.
  • FIG. 13 is a flowchart illustrating the operation of the merge mode according to the second embodiment.
  • FIG. 14 is a diagram showing a part of the syntax of a block in the merge mode according to the second embodiment.
  • FIG. 15 is a diagram showing the syntax of the differential motion vector according to the second embodiment.
  • FIG. 13 differs from FIG. 4 in steps S205 to S207 and steps S209 to S211.
  • the merge correction flag is 1 (YES in S104) If the merge correction flag is 1 (YES in S104), it is checked whether the L0 prediction of the selected merge candidate is invalid (S205). If the L0 prediction of the selected merge candidate is not invalid (NO in S205), the process proceeds to step S208. If the L0 prediction of the selected merge candidate is invalid (YES in S205), the corrected motion vector of the L0 prediction is determined (S206).
  • the corrected motion vector for L0 prediction is obtained by motion vector search.
  • the search range of the motion vector is ⁇ 1 both in the horizontal and vertical directions.
  • the inter prediction unit 220 of the image decoding device 200 acquires the corrected motion vector for L0 prediction from the encoded stream.
  • the reference picture index for L0 prediction is determined (S207).
  • the reference picture index of L0 prediction is set to 0.
  • the process proceeds to S111. If the slice type is B and the L1 prediction of the selected merge candidate is invalid (YES in S208), the corrected motion vector of L1 prediction is determined (S209).
  • the corrected motion vector of L1 prediction is obtained by motion vector search.
  • the search range of the motion vector is ⁇ 1 both in the horizontal and vertical directions.
  • the inter prediction unit 220 of the image decoding device 200 acquires the corrected motion vector for L1 prediction from the encoded stream.
  • the reference picture index for L1 prediction is determined (S110).
  • the reference picture index of L1 prediction is set to 0.
  • the slice type is a slice type that allows bi-prediction (that is, slice type B)
  • the L0 prediction or L1 prediction merge candidate is converted into a bi-prediction merge candidate.
  • improvement in prediction efficiency can be expected due to the filtering effect.
  • the search range of the motion vector can be suppressed to the minimum.
  • the reference picture index in step S207 and step S210 is set to 0.
  • the reference picture index of the L0 prediction is set as the reference picture index of the L1 prediction
  • the reference picture index of the L1 prediction Is the reference picture index for L0 prediction.
  • the encoded bitstream output by the image encoding device has a specific data format so that the encoded bitstream can be decoded according to the encoding method used in the embodiments. doing.
  • the coded bit stream may be provided by being recorded in a computer-readable recording medium such as an HDD, SSD, flash memory, or optical disk, or may be provided from a server through a wired or wireless network. Therefore, the image decoding device corresponding to this image coding device can decode the coded bit stream of this specific data format regardless of the providing means.
  • the encoded bitstream When a wired or wireless network is used for exchanging the encoded bitstream between the image encoding device and the image decoding device, the encoded bitstream is converted into a data format suitable for the transmission mode of the communication path. It may be transmitted.
  • a transmission device that converts the encoded bit stream output by the image encoding device into encoded data in a data format suitable for the transmission mode of the communication path and transmits the encoded data to the network, and receives the encoded data from the network.
  • a receiving device that restores the encoded bitstream and supplies the encoded bitstream to the image decoding device is provided.
  • the transmission device includes a memory for buffering the encoded bitstream output from the image encoding device, a packet processing unit for packetizing the encoded bitstream, and a transmission unit for transmitting packetized encoded data via a network.
  • a packet processing unit for packetizing the encoded bitstream
  • a transmission unit for transmitting packetized encoded data via a network.
  • the receiving device receives a packetized encoded data via a network, a memory for buffering the received encoded data, packetizing the encoded data to generate an encoded bitstream, And a packet processing unit provided to the image decoding apparatus.
  • the encoded data transmitted by the transmitting device is also transmitted.
  • a relay device that receives and supplies to the receiving device may be provided.
  • the relay device includes a receiving unit that receives the packetized encoded data transmitted by the transmitting device, a memory that buffers the received encoded data, and a transmitting unit that transmits the packetized encoded data and the network. Including. Further, the relay device packetizes the packetized coded data to generate a coded bitstream, a recording medium that stores the coded bitstream, and packetizes the coded bitstream.
  • a transmission packet processing unit may be included.
  • a display unit may be added by adding a display unit for displaying the image decoded by the image decoding device to the configuration.
  • an image pickup unit may be added to the configuration, and the picked-up image may be input to the image coding apparatus to form the image pickup apparatus.
  • FIG. 18 shows an example of the hardware configuration of the encoding/decoding device of the present application.
  • the encoding/decoding device includes the configurations of the image encoding device and the image decoding device according to the embodiment of the present invention.
  • the encoding/decoding device 9000 includes a CPU 9001, a codec IC 9002, an I/O interface 9003, a memory 9004, an optical disk drive 9005, a network interface 9006, and a video interface 9009, and each unit is connected by a bus 9010.
  • the image encoding unit 9007 and the image decoding unit 9008 are typically implemented as a codec IC 9002.
  • the image coding process of the image coding device according to the embodiment of the present invention is executed by the image coding unit 9007, and the image decoding process of the image decoding device according to the embodiment of the present invention is performed by the image coding unit 9007.
  • the I/O interface 9003 is realized by a USB interface, for example, and is connected to an external keyboard 9104, mouse 9105, and the like.
  • the CPU 9001 controls the encoding/decoding device 9000 to execute an operation desired by the user based on the user operation input via the I/O interface 9003.
  • the user's operations with the keyboard 9104, mouse 9105, etc. include selection of which function of encoding or decoding is to be executed, encoding quality setting, input/output destination of encoded stream, image input/output destination, and the like. ..
  • the optical disc drive 9005 When the user desires an operation of reproducing the image recorded on the disc recording medium 9100, the optical disc drive 9005 reads the encoded bitstream from the inserted disc recording medium 9100, and outputs the read encoded stream to the bus 9010. To the image decoding unit 9008 of the codec IC 9002. The image decoding unit 9008 executes image decoding processing in the image decoding apparatus according to the embodiment of the present invention on the input coded bitstream, and sends the decoded image to the external monitor 9103 via the video interface 9009.
  • the encoding/decoding device 9000 has a network interface 9006 and can be connected to an external distribution server 9106 and a mobile terminal 9107 via the network 9101.
  • the network interface 9006 sets the input from the input disk recording medium 9100. Instead of reading the encoded bitstream, the encoded stream is acquired from the network 9101.
  • the image decoding process in the image decoding apparatus according to the embodiment of the present invention is performed on the encoded stream recorded in the memory 9004. Execute.
  • the video interface 9009 inputs the image from the camera 9102, and via the bus 9010, the image encoding unit 9007 of the codec IC 9002. Send to.
  • the image encoding unit 9007 executes an image encoding process in the image encoding device according to the embodiment of the present invention on an image input via the video interface 9009 to create an encoded bitstream. Then, the encoded bit stream is sent to the memory 9004 via the bus 9010.
  • the optical disc drive 9005 writes the encoded stream to the inserted disc recording medium 9100.
  • Such a hardware configuration is realized, for example, by replacing the codec IC 9002 with the image encoding unit 9007 or the image decoding unit 9008.
  • the above-mentioned processing relating to encoding and decoding can be realized not only as a transmission device, a storage device, and a reception device using hardware such as an ASIC, but also as a ROM (read only memory) or a flash memory. It can also be realized by firmware stored in the computer or software of a computer such as a CPU or Soc (System on a chip). Recording the firmware program or software program in a computer-readable recording medium and providing it, providing it from a server through a wired or wireless network, or providing it as a terrestrial or satellite digital broadcast data broadcast. Is also possible.
  • the present invention can be used for image decoding technology.
  • 100 image encoding device 110 block size determination unit, 120 inter prediction unit, 121 merge mode determination unit, 122 merge candidate list generation unit, 123 merge candidate selection unit, 124 merge candidate correction determination unit, 125 merge candidate correction unit, 126 Differential motion vector mode execution unit, 127 prediction value derivation unit, 130 conversion unit, 140 code string generation unit, 150 local decoding unit, 160 frame memory, 200 image decoding device, 201 spatial merge candidate generation unit, 202 temporal merge candidate generation unit , 203 merge candidate replenishment unit, 210 code string decoding unit, 220 inter prediction unit, 230 inverse conversion unit, 240 frame memory.

Abstract

マージ候補リスト生成し、マージ候補リストからマージ候補を選択マージ候補として選択し、符号化ストリームから符号列を復号して補正ベクトルを導出し、選択マージ候補の第1予測の動きベクトル記補正ベクトルをスケーリングしないで加算し、選択マージ候補の第2予測の動きベクトルに補正ベクトルをスケーリングしないで減算して補正マージ候補を導出する。

Description

画像復号装置、画像復号方法、及び画像復号プログラム
 本発明は、画像復号技術に関する。
 HEVC(H.265)などの画像符号化技術がある。HEVCではインター予測モードとしてマージモードが利用されている。
特開平10-276439号公報
 HEVCでは、インター予測モードとしてマージモードと差分動きベクトルモードがあるが、マージモードの動きベクトルを補正することで符号化効率をより高める余地があることに発明者は認識するに至った。
 本発明はこうした状況に鑑みてなされたものであり、その目的は、マージモードの動きベクトルを補正することにより、より高効率となる新たなインター予測モードを提供することにある。
 上記課題を解決するために、本発明のある態様の画像復号装置は、予測対象ブロックに隣接する複数のブロックの動き情報をマージ候補として含むマージ候補リストを生成するマージ候補リスト生成部と、前記マージ候補リストからマージ候補を選択マージ候補として選択するマージ候補選択部と、符号化ストリームから符号列を復号して補正ベクトルを導出する符号列復号部と、前記選択マージ候補の第1予測の動きベクトルに前記補正ベクトルをスケーリングしないで加算し、前記選択マージ候補の第2予測の動きベクトルに前記補正ベクトルをスケーリングしないで減算して補正マージ候補を導出するマージ候補補正部と、を備える。
 なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
 本発明によれば、より高効率となる新たなインター予測モードを提供するできることができる。
図1(a)は、第1の実施の形態に係る画像符号化装置100の構成を説明する図であり、図1(b)は、第1の実施の形態に係る画像復号装置200の構成を説明する図である。 入力画像がブロックサイズに基づいて、ブロックに分割されている例を示す図である。 図1(a)の画像符号化装置のインター予測部の構成を説明する図である。 第1の実施の形態のマージモードの動作を説明するフローチャートである。 図1(a)の画像符号化装置のマージ候補リスト生成部の構成を説明する図である。 処理対象ブロックに隣接するブロックを説明する図である。 処理対象ブロックと同一位置及びその周辺にある復号画像上のブロックを説明する図である。 第1の実施の形態のマージモードであるブロックのシンタックスの一部を示す図である。 第1の実施の形態の差分動きベクトルのシンタックスを示す図である。 第1の実施の形態のある変形例の差分動きベクトルのシンタックスを示す図である。 第1の実施の形態の別の変形例のマージモードであるブロックのシンタックスの一部を示す図である。 第1の実施の形態のさらに別の変形例のマージモードであるブロックのシンタックスの一部を示す図である。 第2の実施の形態のマージモードの動作を説明するフローチャートである。 第2の実施の形態のマージモードであるブロックのシンタックスの一部を示す図である。 第2の実施の形態の差分動きベクトルのシンタックスを示す図である。 第1の実施の形態の変形例8の効果を説明する図である。 第1の実施の形態の変形例8のピクチャ間隔が等間隔でない場合の効果を説明する図である。 第1の実施の形態の符号化復号装置のハードウェア構成の一例を説明するための図である。
[第1の実施の形態]
 以下、図面とともに本発明の第1の実施の形態に係る画像符号化装置、画像符号化方法、及び画像符号化プログラム、並びに画像復号装置、画像復号方法、及び画像復号プログラムの詳細について説明する。
 図1(a)は、第1の実施の形態に係る画像符号化装置100の構成を説明する図であり、図1(b)は、第1の実施の形態に係る画像復号装置200の構成を説明する図である。
 本実施の形態の画像符号化装置100は、ブロックサイズ決定部110、インター予測部120、変換部130、符号列生成部140、局部復号部150、およびフレームメモリ160を含む。画像符号化装置100は、入力画像の入力を受け、イントラ予測及びインター予測を行い、符号化ストリームを出力する。以降、画像とピクチャは同一の意味で用いる。
 画像復号装置200は、符号列復号部210、インター予測部220、逆変換部230、およびフレームメモリ240を含む。画像復号装置200は、画像符号化装置100より出力された符号化ストリームの入力を受け、イントラ予測及びインター予測を行い、復号画像を出力する。
 画像符号化装置100と画像復号装置200は、CPU(Central Processing Unit)、メモリなどを備える情報処理装置などのハードウェアにより実現される。
 最初に、画像符号化装置100の各部の機能と動作について説明する。イントラ予測はHEVCと同様に実施されるものとし、以降ではインター予測について説明する。
 ブロックサイズ決定部110は、入力画像に基づいてインター予測するブロックサイズを決定し、決定したブロックサイズ、ブロックの位置とブロックサイズに該当する入力画素(入力値)をインター予測部120に供給する。ブロックサイズを決定する手法については、HEVCの参照ソフトウェアに用いられているRDO(レート歪最適化)法などを用いる。
 ここで、ブロックサイズについて説明する。図2は、画像符号化装置100に入力される画像の一部の領域が、ブロックサイズ決定部110で決定されたブロックサイズに基づいて、ブロックに分割されている例を示す。ブロックサイズは4×4、8×4、4×8、8×8、16×8、8×16、32×32、・・・、128×64、64×128、128×128が存在し、入力される画像は各ブロックが重複しないように上記のいずれかのブロックサイズで分割される。
 インター予測部120は、ブロックサイズ決定部110から入力された情報とフレームメモリ160から入力される参照ピクチャを利用して、インター予測に用いるインター予測パラメータを決定する。インター予測部120は、インター予測パラメータに基づいてインター予測して予測値を導出し、ブロックサイズ、ブロックの位置、入力値、インター予測パラメータと予測値を変換部130に供給する。インター予測パラメータを決定する手法については、HEVCの参照ソフトウェアに用いられているRDO(レート歪最適化)法などを用いる。インター予測パラメータとインター予測部120の動作の詳細は後述する。
 変換部130は、入力値から予測値を減算して差分値を算出し、算出した差分値に直交変換と量子化などの処理を行って予測誤差データを算出し、ブロックサイズ、ブロックの位置、インター予測パラメータ、及び予測誤差データを符号列生成部140及び局部復号部150に供給する。
 符号列生成部140は、必要に応じてSPS(Sequence Parameter
 Set)、PPS(Picture Parameter Set)やその他の情報を符号化し、変換部130から供給されたブロックサイズを判定するための符号列を符号化し、インター予測パラメータを符号列として符号化し、予測誤差データを符号列として符号化して、符号化ストリームを出力する。インター予測パラメータの符号化の詳細については後述する。
 局部復号部150は、予測誤差データに逆直交変換と逆量子化などの処理を行って差分値を復元し、差分値と予測値を加算して復号画像を生成し、復号画像とインター予測パラメータをフレームメモリ160に供給する。
 フレームメモリ160は、復号画像とインター予測パラメータを複数画像分記憶して、復号画像とインター予測パラメータをインター予測部120に供給する。
 続いて、画像復号装置200の各部の機能と動作について説明する。イントラ予測はHEVCと同様に実施されるものとし、以降ではインター予測について説明する。
 符号列復号部210は、符号化ストリームから必要に応じてSPS、PPSヘッダやその他の情報を復号し、ブロックサイズ、ブロックの位置、インター予測パラメータ、及び予測誤差データを符号化ストリームから復号し、ブロックサイズ、ブロックの位置、インター予測パラメータ、及び予測誤差データをインター予測部220に供給する。
 インター予測部220は、符号列復号部210から入力された情報とフレームメモリ240から入力される参照ピクチャを利用して、インター予測して予測値を導出する。インター予測部220は、ブロックサイズ、ブロックの位置、インター予測パラメータ、予測誤差データ、及び予測値を逆変換部230に供給する。
 逆変換部230は、インター予測部220から供給された予測誤差データに逆直交変換と逆量子化などの処理を行って差分値を算出し、差分値と予測値を加算して復号画像を生成し、復号画像とインター予測パラメータをフレームメモリ240に供給し、復号画像を出力する。
 フレームメモリ240は、復号画像とインター予測パラメータを複数画像分記憶して、復号画像とインター予測パラメータをインター予測部220に供給する。
 なお、インター予測部120とインター予測部220で実施されるインター予測は同一の動作であり、フレームメモリ160とフレームメモリ240に保存される復号画像とインター予測パラメータも同一となる。
 続いて、インター予測パラメータについて説明する。インター予測パラメータには、マージフラグ、マージインデックス、予測LXの有効フラグ、予測LXの動きベクトル、予測LXの参照ピクチャインデックス、マージ補正フラグ、及び予測LXの差分動きベクトルが含まれる。LXはL0とL1である。マージフラグはインター予測モードとしてマージモードまたは差分動きベクトルモードのどちらを利用するかを示すフラグである。マージフラグが1であればマージモードを利用し、マージフラグが0であれば差分動きベクトルモードを利用する。マージインデックスはマージ候補リスト内の選択マージ候補の位置を示すインデックスである。予測LXの有効フラグは予測LXが有効か無効かを示すフラグである。L0予測とL1予測の両方が有効であれば双予測、L0予測が有効でL1予測が無効であればL0予測、L1予測が有効でL0予測が無効であればL1予測となる。マージ補正フラグは、マージ候補の動き情報を補正するか否かを示すフラグである。マージ補正フラグが1であればマージ候補を補正し、マージ補正フラグが0であればマージ候補を補正しない。ここで、符号列生成部140は予測LXの有効フラグを符号化ストリーム中に符号列として符号化しない。また、符号列復号部210は予測LXの有効フラグを符号化ストリームから符号列として復号しない。参照ピクチャインデックスはフレームメモリ160内の復号画像を特定するためのインデックスである。また、L0予測の有効フラグ、L1予測の有効フラグ、L0予測の動きベクトル、L1予測の動きベクトル、L0予測の参照ピクチャインデックス、およびL1予測の参照ピクチャインデックスの組み合わせを動き情報とする。
 なお、ブロックがイントラ符号化モードや画像の領域外などのブロックであれば、L0予測の有効フラグとL1予測の有効フラグはいずれも無効とする。
 以降では、ピクチャタイプはL0予測の単方向予測、L1予測の単方向予測と双方向予測の全てが利用可能なBピクチャとして説明するが、ピクチャタイプが単方向予測のみを利用可能なPピクチャであってもよい。Pピクチャの場合のインター予測パラメータはL0予測のみが対象となり、L1予測は存在しないものとして処理する。一般的にBピクチャで符号効率を向上させる場合、L0予測の参照ピクチャは予測対象ピクチャよりも過去のピクチャとなり、L1予測の参照ピクチャは予測対象ピクチャよりも未来のピクチャとなる。なぜなら、L0予測の参照ピクチャとL1予測の参照ピクチャが予測対象ピクチャから見て逆方向にある場合に内挿予測により符号化効率は向上するからである。L0予測の参照ピクチャとL1予測の参照ピクチャが予測対象ピクチャから見て逆方向にあるか否かは参照ピクチャのPOC(Picture Order Count)を比較することで判定できる。以降では、L0予測の参照ピクチャとL1予測の参照ピクチャが予測対象ブロックのある予測対象ピクチャに対して時間的に逆方向であるとして説明する。
 続いて、インター予測部120の詳細について説明する。特に断らない限り、画像符号化装置100のインター予測部120と画像復号装置200のインター予測部220の構成と動作は同一である。
 図3は、インター予測部120の構成を説明する図である。インター予測部120はマージモード判定部121、マージ候補リスト生成部122、マージ候補選択部123、マージ候補補正判定部124、マージ候補補正部125、差分動きベクトルモード実施部126、及び予測値導出部127を含む。
 インター予測部120は、インター予測モードとしてマージモードと差分動きベクトルモードをブロック毎に切り替える。差分動きベクトルモード実施部126で実施される差分動きベクトルモードはHEVCと同様に実施されるものとし、以降では主にマージモードについて説明する。
 マージモード判定部121は、ブロック毎にインター予測モードとしてマージモードを利用するか否かを判定する。マージフラグが1であればマージモードを利用し、マージフラグが0であれば差分動きベクトルモードを利用する。
 インター予測部120において、マージフラグを1とするか否かの判定は、HEVCの参照ソフトウェアに用いられているRDO(レート歪最適化)法などを用いる。インター予測部220では、符号列復号部210がシンタックスに基づいて符号化ストリームから復号したマージフラグを取得する。シンタックスの詳細は後述する。
 マージフラグが0である場合、差分動きベクトルモード実施部126で差分動きベクトルモードが実施され、差分動きベクトルモードのインター予測パラメータが予測値導出部127に供給される。
 マージフラグが1である場合、マージ候補リスト生成部122、マージ候補選択部123、マージ候補補正判定部124、およびマージ候補補正部125でマージモードが実施され、マージモードのインター予測パラメータが予測値導出部127に供給される。
 マージフラグが1である場合の処理を以降、詳細に説明する。
 図4は、マージモードの動作を説明するフローチャートである。以降、図3と図4を用いてマージモードについて詳細に説明する。
 最初に、マージ候補リスト生成部122は、処理対象ブロックに隣接するブロックの動き情報と復号画像のブロックの動き情報からマージ候補リストを生成し(S100)、生成したマージ候補リストをマージ候補選択部123に供給する。以降、処理対象ブロックと予測対象ブロックは同一の意味で用いる。
 ここで、マージ候補リストの生成について説明する。図5は、マージ候補リスト生成部122の構成を説明する図である。マージ候補リスト生成部122は、空間マージ候補生成部201、時間マージ候補生成部202、及びマージ候補補充部203を含む。
 図6は、処理対象ブロックに隣接するブロックを説明する図である。ここでは、処理対象ブロックに隣接するブロックをブロックA、ブロックB、ブロックC、ブロックD、ブロックE、ブロックF、ブロックGとするが、処理対象ブロックに隣接している複数のブロックを用いればこれに限定されない。
 図7は、処理対象ブロックと同一位置及びその周辺にある復号画像上のブロックを説明する図である。ここでは、処理対象ブロックと同一位置及びその周辺にある復号画像上のブロックをブロックCO1、ブロックCO2、ブロックCO3とするが、処理対象ブロックと同一位置及びその周辺にある復号画像上の複数のブロックを用いればこれに限定されない。以降、ブロックCO1、CO2、CO3を同一位置ブロック、同一位置ブロックを含む復号画像を同一位置ピクチャと呼ぶ。
 以降、図5、図6と図7を用いてマージ候補リストの生成について詳細に説明する。
 最初に、空間マージ候補生成部201は、ブロックA、ブロックB、ブロックC、ブロックD、ブロックE、ブロックF、ブロックGを順次検査して、L0予測の有効フラグとL1予測の有効フラグのいずれかまたは両方が有効であれば、当該ブロックの動き情報をマージ候補としてマージ候補リストに順次追加する。空間マージ候補生成部201が生成するマージ候補を空間マージ候補と呼ぶ。
 次に、時間マージ候補生成部202は、ブロックC01、ブロックCO2、ブロックCO3を順次検査して、最初にL0予測の有効フラグとL1予測の有効フラグのいずれかまたは両方が有効になるブロックの動き情報をスケーリング等の処理をしてマージ候補としてマージ候補リストに順次追加する。時間マージ候補生成部202が生成するマージ候補を時間マージ候補と呼ぶ。
 ここで、時間マージ候補のスケーリングについて説明する。時間マージ候補のスケーリングはHEVCと同様である。時間マージ候補の動きベクトルは、同一位置ブロックの動きベクトルを、同一位置ピクチャと同一位置ブロックが参照する参照ピクチャとの距離に基づいて、予測対象ブロックのあるピクチャと時間マージ候補が参照するピクチャとの距離でスケーリングして導出される。
 なお、時間マージ候補が参照するピクチャは、L0予測とL1予測の両方とも参照ピクチャインデックスが0である参照ピクチャである。また、同一位置ブロックとして、L0予測の同一位置ブロックとL1予測の同一位置ブロックのいずれが利用されるかは同一位置導出フラグが符号化(復号)されて判定される。以上のように、時間マージ候補は同一位置ブロックのL0予測またはL1予測のいずれか1つの動きベクトルをL0予測とL1予測にスケーリングして新たなL0予測とL1予測の動きベクトルを導出して、時間マージ候補のL0予測とL1予測の動きベクトルとする。
 次に、マージ候補リストに同一の動き情報が複数含まれているなら、1つの動き情報を残してそれ以外の動き情報は削除する。
 次に、マージ候補リストに含まれているマージ候補の数が最大マージ候補数に満たない場合、マージ候補補充部203は、マージ候補リストに含まれているマージ候補の数が最大マージ候補数に達するまで、マージ候補リストに補充マージ候補を追加して、マージ候補リストに含まれているマージ候補の数を最大マージ候補数にする。ここで、補充マージ候補とは、L0予測とL1予測の動きベクトルが共に(0,0)で、L0予測とL1予測の参照ピクチャインデックスが共に0である動き情報である。
 ここでは、最大マージ候補数は6とするが、1以上であればよい。
 続いて、マージ候補選択部123は、マージ候補リストから1つのマージ候補を選択し(S101)、選択したマージ候補(「選択マージ候補」と呼ぶ)とマージインデックスをマージ候補補正判定部124に供給し、選択マージ候補を処理対象ブロックの動き情報とする。画像符号化装置100のインター予測部120では、HEVCの参照ソフトウェアに用いられているRDO(レート歪最適化)法などを用いてマージ候補リストに含まれるマージ候補から1つのマージ候補を選択してマージインデックスを決定する。画像復号装置200のインター予測部220では、符号列復号部210が符号化ストリームから復号したマージインデックスを取得し、マージインデックスに基づいてマージ候補リストに含まれるマージ候補から1つのマージ候補を選択マージ候補として選択する。
 続いて、マージ候補補正判定部124は、処理対象ブロックの幅が所定幅以上、且つ処理対象ブロックの高さが所定高さ以上、且つ選択マージ候補のL0予測とL1予測の両方または少なくとも片方が有効であるか検査する(S102)。処理対象ブロックの幅が所定幅以上、且つ処理対象ブロックの高さが所定高さ以上、且つ選択マージ候補のL0予測とL1予測の両方または少なくとも片方が有効であるという条件を満たさなければ(S102のNO)、選択マージ候補を処理対象ブロックの動き情報として補正することなく、ステップS111に進む。ここで、マージ候補リストには必ずL0予測とL1予測の少なくとも片方が有効であるマージ候補が含まれるため、選択マージ候補のL0予測とL1予測の両方または少なくとも片方が有効であることは自明である。そこで、S102の「選択マージ候補のL0予測とL1予測の両方または少なくとも片方が有効であるか」を省略して、S102を処理対象ブロックの幅が所定幅以上且つ処理対象ブロックの高さが所定高さ以上であるか検査するとしてもよい。
 処理対象ブロックの幅が所定幅以上、且つ処理対象ブロックの高さが所定高さ以上、且つ選択マージ候補のL0予測とL1予測の両方または少なくとも片方が有効であれば(S102のYES)、マージ候補補正判定部124は、マージ補正フラグを設定し(S103)、マージ補正フラグをマージ候補補正部125に供給する。画像符号化装置100のインター予測部120では、マージ候補でインター予測した場合の予測誤差が所定の予測誤差以上であれば、マージ補正フラグを1に設定し、選択マージ候補でインター予測した場合の予測誤差が所定の予測誤差以上でなければ、マージ補正フラグを0に設定する。画像復号装置200のインター予測部220では、符号列復号部210がシンタックスに基づいて符号化ストリームから復号したマージ補正フラグを取得する。
 続いて、マージ候補補正部125は、マージ補正フラグが1であるか検査する(S104)。マージ補正フラグが1でなければ(S104のNO)、選択マージ候補を処理対象ブロックの動き情報として補正することなく、ステップS111に進む。
 マージ補正フラグが1であれば(S104のYES)、選択マージ候補のL0予測が有効であるか検査する(S105)。選択マージ候補のL0予測が有効でなければ(S105のNO)、ステップS108に進む。選択マージ候補のL0予測が有効であれば(S105のYES)、L0予測の差分動きベクトルを決定する(S106)。以上のように、マージ補正フラグが1であれば、選択マージ候補の動き情報を補正し、マージ補正フラグが0であれば、選択マージ候補の動き情報は補正しない。
 画像符号化装置100のインター予測部120では、L0予測の差分動きベクトルは動きベクトル探索により求める。ここでは、動きベクトルの探索範囲は水平方向と垂直方向ともに±16とするが、±64など2の倍数であればよい。画像復号装置200のインター予測部220では、符号列復号部210がシンタックスに基づいて符号化ストリームから復号したL0予測の差分動きベクトルを取得する。
 引き続いて、マージ候補補正部125は、L0予測の補正動きベクトルを算出し、L0予測の補正動きベクトルを処理対象のブロックの動き情報のL0予測の動きベクトルとする(S107)。
 ここで、L0予測の補正動きベクトル(mvL0)、選択マージ候補のL0予測の動きベクトル(mmvL0)、L0予測の差分動きベクトル(mvdL0)の関係について説明する。L0予測の補正動きベクトル(mvL0)は選択マージ候補のL0予測の動きベクトル(mmvL0)とL0予測の差分動きベクトル(mvdL0)を加算したものであり、下記の式となる。なお、[0]は動きベクトルの水平方向成分を、[1]は動きベクトルの垂直方向成分を示す。
   mvL0[0] = mmvL0[0] + mvdL0[0]
   mvL0[1] = mmvL0[1] + mvdL0[1]
 引き続いて、選択マージ候補のL1予測が有効であるか検査する(S108)。選択マージ候補のL1予測が有効でなければ(S108のNO)、ステップS111に進む。選択マージ候補のL1予測が有効であれば(S108のYES)、L1予測の差分動きベクトルを決定する(S109)。
 画像符号化装置100のインター予測部120では、L1予測の差分動きベクトルは動きベクトル探索により求める。ここでは、動きベクトルの探索範囲は水平方向と垂直方向ともに±16とするが、±64など2のべき乗とする。画像復号装置200のインター予測部220では、符号列復号部210がシンタックスに基づいて符号化ストリームから復号したL1予測の差分動きベクトルを取得する。
 引き続いて、マージ候補補正部125は、L1予測の補正動きベクトルを算出し、L1予測の補正動きベクトルを処理対象ブロックの動き情報のL1予測の動きベクトルとする(S110)。
 ここで、L1予測の補正動きベクトル(mvL1)、選択マージ候補のL1予測の動きベクトル(mmvL1)、L1予測の差分動きベクトル(mvdL1)の関係について説明する。L1予測の補正動きベクトル(mvL1)は選択マージ候補のL1予測の動きベクトル(mmvL1)とL1予測の差分動きベクトル(mvdL1)を加算したものであり、下記の式となる。なお、[0]は動きベクトルの水平方向成分を、[1]は動きベクトルの垂直方向成分を示す。
   mvL1[0] = mmvL1[0] + mvdL1[0]
   mvL1[1] = mmvL1[1] + mvdL1[1]
 続いて、予測値導出部127は、処理対象ブロックの動き情報に基づいて、L0予測、L1予測または双予測のいずれかのインター予測を行い、予測値を導出する(S111)。以上のように、マージ補正フラグが1であれば、選択マージ候補の動きベクトルを補正し、マージ補正フラグが0であれば、選択マージ候補の動きベクトルは補正しない。
 インター予測パラメータの符号化について詳細に説明する。図8は、マージモードであるブロックのシンタックスの一部を示す図である。表1は、インター予測パラメータとシンタックスの関係を示す。図8のcbWidthは処理対象ブロックの幅であり、cbHeightは処理対象ブロックの高さである。所定幅と所定高さは共に8とする。所定幅と所定高さを設定することで、小さいブロック単位でのマージ候補の補正をしないことで処理量を削減することができる。ここで、cu_skip_flagはブロックがスキップモードであれば1であり、スキップモードでなければ0になる。スキップモードのシンタックスはマージモードのシンタックスと同じである。merge_idxはマージ候補リストから選択マージ候補を選択するマージインデックスである。
 merge_idxをmerge_mod_flagよりも先に符号化(復号)してマージインデックスを確定させた後に、merge_mod_flagの符号化(復号)を判定して、merge_idxはマージモードのマージインデックスと共用することで、シンタックスの複雑化やコンテキストの増加を抑止しつつ符号化効率を向上させる。
Figure JPOXMLDOC01-appb-T000001
 図9は、差分動きベクトルのシンタックスを示す図である。図9のmvd_coding(N)は差分動きベクトルモードで利用されるシンタックスと同じシンタックスである。ここで、Nは0または1である。N=0はL0予測、N=1はL1予測を示す。
 差分動きベクトルのシンタックスには、差分動きベクトルの成分が0より大きいか否かを示すフラグであるabs_mvd_greater0_flag[d]、差分動きベクトルの成分が1より大きいか否かを示すフラグであるabs_mvd_greater1_flag[d]、差分動きベクトルの成分の符号(±)を示すmvd_sign_flag[d]、差分動きベクトルの成分から2を引いたベクトルの絶対値を示すabs_mvd_minus2[d]が含まれる。ここでdは0、または、1である。d=0は水平方向成分を、d=1は垂直方向成分を示す。
 HEVCでは、インター予測モードとしてマージモードと差分動きベクトルモードがあった。マージモードではマージフラグ1つで動き情報を復元できるため、非常に符号化効率の高いモードであった。ところが、マージモードの動き情報は処理済みのブロックに依存するため、予測効率が高くなる場合が限定され、より利用効率を改善させる必要があった。
 一方、差分動きベクトルモードはL0予測とL1予測を別々にシンタックスとして用意し、予測タイプ(L0予測、L1予測または双予測)と、L0予測とL1予測のそれぞれについて予測動きベクトルフラグ、差分動きベクトル、及び参照ピクチャインデックスが必要であった。そのため、差分動きベクトルモードはマージモードよりも符号化効率は良くないが、マージモードでは導出できない動きである空間的に隣接するブロックや時間的に隣接するブロックの動きとも相関が少ない突発的な動きに対して安定して予測効率が高くなるモードであった。
 本実施の形態では、マージモードの予測タイプと参照ピクチャインデックスを固定したままマージモードの動きベクトルの補正を可能とすることで、符号化効率を差分動きベクトルモードよりも向上させて、利用効率をマージモードよりも向上させることができる。
 また、差分動きベクトルを選択マージ候補の動きベクトルとの差分にすることで、差分動きベクトルの大きさを小さく抑制することができ、符号化効率を抑制することができる。
 また、マージモードの差分動きベクトルのシンタックスを差分動きベクトルモードの差分動きベクトルのシンタックスと同一とすることで、マージモードに差分動きベクトルを追加しても構成上の変更は少なくすることができる。
 また、所定幅と所定高さを定義し、予測ブロック幅が所定幅以上、且つ予測ブロック高が所定高以上、且つ選択マージ候補のL0予測またはL1予測の両方または少なくとも片方が有効であるという条件を満たさなければ、マージモードの動きベクトルを補正する処理を省くことで、マージモードの動きベクトルを補正する処理量を抑制することができる。なお、動きベクトルを補正する処理量を抑制する必要がない場合には、所定幅と所定高さにより動きベクトルの補正を制限する必要はない。
 以下、本実施の形態の変形例について説明する。特に断らない限り、変形例は互いに組み合わせることができる。
[変形例1]
 本実施の形態では、マージモードであるブロックのシンタックスとして差分動きベクトルを用いた。本変形例では、差分動きベクトルを差分単位動きベクトルとして符号化(または復号)するように定義する。差分単位動きベクトルとは、ピクチャ間隔が最小間隔である場合の動きベクトルである。HEVCなどでは最小のピクチャ間隔は符号化ストリーム中に符号列として符号化されている。
 符号化対象ピクチャとマージモードの参照ピクチャの間隔に応じて差分単位動きベクトルをスケーリングして差分動きベクトルとして利用する。符号化対象ピクチャのPOC(Picture Order Count)をPOC(Cur)、マージモードのL0予測の参照ピクチャのPOCをPOC(L0)、マージモードのL1予測の参照ピクチャのPOCをPOC(L1)とすると、下式のように動きベクトルは算出される。umvdL0はL0予測の差分単位動きベクトルを、umvdL1はL1予測の差分単位動きベクトルを示す。
   mvL0[0] = mmvL0[0] + umvdL0[0]*(POC(Cur)-POC(L0))
   mvL0[1] = mmvL0[1] + umvdL0[1]*(POC(Cur)-POC(L0))
   mvL1[0] = mmvL1[0] + umvdL1[0]*(POC(Cur)-POC(L1))
   mvL1[1] = mmvL1[1] + umvdL1[1]*(POC(Cur)-POC(L1))
 以上のように、本変形例では、差分動きベクトルとして差分単位動きベクトルを利用することで、差分動きベクトルの符号量を小さくすることで、符号化効率を向上させることができる。なお、差分動きベクトルが大きく且つ予測対象ピクチャと参照ピクチャの距離が大きくなる場合に、特に符号化効率を向上させることができる。また、処理対象ピクチャと参照ピクチャの間隔と画面内で動く物体の速度が比例関係にある場合にも、予測効率と符号化効率を向上させることができる。
 また、時間マージ候補のようにピクチャ間距離でスケーリングして導出する必要がなく、復号装置では乗算器だけでスケーリングできるため除算器が不要となり、回路規模や処理量を削減することができる。
[変形例2]
 本実施の形態では差分動きベクトルの成分として0を符号化(または復号)できるものとして、例えば、L0予測のみを変更できるものとした。本変形例では差分動きベクトルの成分として0は符号化(または復号)できないものとする。
 図10は、変形例2の差分動きベクトルのシンタックスを示す図である。差分動きベクトルのシンタックスには、差分動きベクトルの成分が1より大きいか否かを示すフラグであるabs_mvd_greater1_flag[d]、差分動きベクトルの成分が2より大きいか否かを示すフラグであるabs_mvd_greater2_flag[d]、差分動きベクトルの成分から3を引いたベクトルの絶対値を示すabs_mvd_minus3[d]、差分動きベクトルの成分の符号(±)を示すmvd_sign_flag[d]が含まれる。
 以上のように、差分動きベクトルの成分として0は符号化(または復号)できないようにすることで、差分動きベクトルの成分が1以上となる場合の符号化効率を向上させることができる。
[変形例3]
 本実施の形態では差分動きベクトルの成分を整数として、変形例2では0を除く整数とした。本変形例では差分動きベクトルの±の符号を除いた成分を2のべき乗に限定する。
 本実施の形態のシンタックスであるabs_mvd_minus2[d]の代わりにabs_mvd_pow_plus1[d]を用いる。差分動きベクトルmvd[d]はmvd_sign_flag[d]とabs_mvd_pow_plus1[d]から下式のように算出する。
   mvd[d]=mvd_sign_flag[d]*2^(abs_mvd_pow_plus1[d]+1)
 また、変形例2のシンタックスであるabs_mvd_minus3[d]の代わりにabs_mvd_pow_plus2[d]を用いる。差分動きベクトルmvd[d]はmvd_sign_flag[d]とabs_mvd_pow_plus2[d]から下式のように算出する。
   mvd[d]=mvd_sign_flag[d]*2^(abs_mvd_pow_plus2[d]+2)
 差分動きベクトルの成分を2のべき乗に限定することで、符号化装置の処理量を大幅に削減ながら、大きな動きベクトルの場合に予測効率を向上させることができる。
[変形例4]
 本実施の形態では、mvd_coding(N)は差分動きベクトルを含むものとしたが、本変形例では、mvd_coding(N)は動きベクトル倍率を含むものとする。
 本変形例のmvd_coding(N)のシンタックスでは、abs_mvd_greater0_flag[d]、abs_mvd_greater1_flag[d]、mvd_sign_flag[d]は存在せず、その代わりに、abs_mvr_plus2[d]とmvr_sign_flag[d]を含む構成とする。
 LN予測の補正動きベクトル(mvLN)は、選択マージ候補のLN予測の動きベクトル(mmvLN)と動きベクトル倍率(mvrLN)を乗算したものとなり、下記の式で算出される。
   mvLN[d] = mmvLN[d] * mvrLN[d]
 差分動きベクトルの成分を2のべき乗に限定することで、符号化装置の処理量を大幅に削減ながら、大きな動きベクトルの場合に予測効率を向上させることができる。
 なお、本変形例は、変形例1、変形例2、変形例3、及び変形例6とは組み合わせることができない。
[変形例5]
 本実施の形態の図8のシンタックスでは、cu_skip_flagが1である(スキップモードである)場合、merge_mod_flagが存在する可能性を有するとしたが、スキップモードである場合にはmerge_mod_flagが存在しないようにしてもよい。
 このように、merge_mod_flagを省略することで、スキップモードの符号化効率を向上させるとともに、スキップモードの判定を簡略化することができる。
[変形例6]
 本実施の形態では、選択マージ候補のLN予測(N=0または1)が有効であるか検査し、選択マージ候補のLN予測が有効でなければ、差分動きベクトルを有効にしないようにしたが、選択マージ候補のLN予測が有効であるか検査せずに、選択マージ候補のLN予測が有効であるか否かに関わらず差分動きベクトルを有効にしてもよい。この場合、選択マージ候補のLN予測が無効である場合には、選択マージ候補のLN予測の動きベクトルは(0,0)、選択マージ候補のLN予測の参照ピクチャインデックスは0とする。
 このように、本変形例では、選択マージ候補のLN予測が有効であるか否かに関わらず差分動きベクトルを有効にすることで、双方向予測を利用する機会を増加させて、符号化効率を向上させることができる。
[変形例7]
 本実施の形態では、選択マージ候補のL0予測とL1予測を個別に有効であるか否かを判定して差分動きベクトルを符号化(または復号)するか否かを制御したが、選択マージ候補のL0予測とL1予測の両方が有効である場合に差分動きベクトルを符号化(または復号)し、選択マージ候補のL0予測とL1予測の両方が有効でない場合に、差分動きベクトルを符号化(または復号)しないようにすることもできる。本変形例の場合、ステップS102は下記のようになる。
 マージ候補補正判定部124は、処理対象ブロックの幅が所定幅以上、且つ処理対象ブロックの高さが所定高さ以上、且つ選択マージ候補のL0予測とL1予測の両方が有効であるか検査する(S102)。
 また、ステップS105とステップS108は本変形例では不要となる。
 図11は、変形例7のマージモードであるブロックのシンタックスの一部を示す図である。ステップS102、S105、S108に関するシンタックスが異なる。
 このように、本変形例では、選択マージ候補のL0予測とL1予測の両方が有効である場合に差分動きベクトルを有効にすることで、利用頻度の高い双方向予測の選択マージ候補の動きベクトルを補正することで、効率よく予測効率を向上させることができる。
[変形例8]
 本実施の形態では、マージモードであるブロックのシンタックスとしてL0予測の差分動きベクトルとL1予測の差分動きベクトルの2つの差分動きベクトルを用いた。本変形例では、1つの差分動きベクトルだけを符号化(または復号)して、L0予測の補正動きベクトルとL1予測の補正動きベクトルとして1つの差分動きベクトルを共用して、下式のように選択マージ候補の動きベクトルmmvLN(N=0,1)と差分動きベクトルmvdから補正マージ候補の動きベクトルmvLN(N=0,1)を算出する。
 選択マージ候補のL0予測が有効である場合は下記の式からL0予測の動きベクトルを算出する。
   mvL0[0] = mmvL0[0] + mvd[0]
   mvL0[1] = mmvL0[1] + mvd[1]
 選択マージ候補のL1予測が有効である場合は下記の式からL1予測の動きベクトルを算出する。L0予測とは逆方向の差分動きベクトルを加算する。選択マージ候補のL1予測の動きベクトルから差分動きベクトルを減算してもよい。
   mvL1[0] = mmvL1[0] + mvd[0]*-1
   mvL1[1] = mmvL1[1] + mvd[1]*-1
 図12は、変形例8のマージモードであるブロックのシンタックスの一部を示す図である。L0予測の有効性とL1予測の有効性を検査するが削除されていることと、mvd_coding(1)がない点が本実施の形態とは異なる。mvd_coding(0)が1つの差分動きベクトルに相当する。
 このように、本変形例では、L0予測とL1予測に対して1つの差分動きベクトルのみを定義することで、双予測である場合には差分動きベクトルの数を半減してL0予測とL1予測とで共用することで、予測効率の低下を抑制しながら符号化効率を向上させることができる。
 また、選択マージ候補のL0予測の参照する参照ピクチャとL1予測との参照する参照ピクチャが予測対象ピクチャに対して反対方向にある(同一方向にない)場合に、差分動きベクトルを反対方向に加算することで、一定方向の動きに対して符号化効率を向上させることができる。
 本変形例の効果について詳細に説明する。図16は変形例8の効果を説明する図である。図16は移動する矩形領域(破線で囲まれた領域)の中で水平方向に移動する球体(斜線で塗られた領域)の様子を示す画像である。このような場合、画面に対する球体の動きは矩形領域の動きと水平方向に移動する球体の動きを足した動きとなる。ピクチャBが予測対象ピクチャ、ピクチャAがL0予測の参照ピクチャ、ピクチャCがL1予測の参照ピクチャであるとする。ピクチャAとピクチャCは予測対象ピクチャから見て逆方向の関係にある参照ピクチャである。
 球体が一定方向に一定速度で移動する場合、ピクチャA、ピクチャB、ピクチャCはそれぞれ等間隔であれば、隣接ブロックから取得できない球体の移動量をL0予測に加算してL1予測から減算することで正確に球体の動きを再現することができる。
 球体が一定方向に一定速度でない速度で移動する場合、ピクチャA、ピクチャB、ピクチャCはそれぞれ等間隔ではないが、球体の矩形領域に対応する移動量は等間隔であれば、隣接ブロックから取得できない球体の移動量をL0予測に加算してL1予測から減算することで正確に球体の動きを再現することができる。
 また、一定期間に球体が一定方向に一定速度で移動する場合、ピクチャA、ピクチャB、ピクチャCはそれぞれ等間隔ではないが、球体の矩形領域に対応する移動量は等間隔になる場合がある。図17は変形例8のピクチャ間隔が等間隔でない場合の効果を説明する図である。この例について図17を用いて詳細に説明する。図17のピクチャF0、F1、・・・、F8はそれぞれ固定間隔のピクチャを示す。ピクチャF0からピクチャF4までは球体は静止しており、ピクチャF5以降に一定方向に一定速度で移動するものとする。ピクチャF0とピクチャF6が参照ピクチャ、ピクチャF5が予測対象ピクチャである場合、ピクチャF0、ピクチャF5、ピクチャF6はそれぞれ等間隔ではないが、球体の矩形領域に対応する移動量は等間隔になる。ピクチャF5が予測対象ピクチャである場合、一般的には距離の近いピクチャF4を参照ピクチャとして選択するが、ピクチャF4ではなくピクチャF0を参照ピクチャとして選択するのは、ピクチャF0がピクチャF4よりも歪の少ない高品質なピクチャである場合である。参照ピクチャは通常参照ピクチャバッファ内でFIFO(First-In First-Out)方式で管理されるが、歪の少ない高品質なピクチャを参照ピクチャとして参照ピクチャバッファに長期間残存させる仕組みとして長期参照ピクチャがある。長期参照ピクチャは参照ピクチャバッファ内でFIFOとして管理されず、スライスヘッダに符号化される参照ピクチャリスト制御情報で長期参照ピクチャとするか否かが管理される。このように、本変形例は、L0予測またはL1予測のいずれか片方または両方が長期参照ピクチャである場合に適用することで、予測効率と符号化効率を向上させることができる。また、本変形例は、L0予測またはL1予測のいずれか片方または両方がイントラピクチャである場合に適用することで、予測効率と符号化効率を向上させることができる。
 また、時間マージ候補のように差分動きベクトルをピクチャ間距離に基づいてスケーリングしないことで回路規模や消費電力を削減することができる。例えば、仮に差分動きベクトルをスケーリングする場合、選択マージ候補として時間マージ候補が選択されると、時間マージ候補のスケーリングと差分動きベクトルのスケーリングの両方が必要となる。時間マージ候補のスケーリングと差分動きベクトルのスケーリングはスケーリングの基準となる動きベクトルが異なるため、両方のスケーリングをまとめて実行できず、別々に実行する必要がある。
 また、本実施の形態のようにマージ候補リストに時間マージ候補が含まれている場合、時間マージ候補はスケーリングされており、時間マージ候補の動きベクトルよりも差分動きベクトルが微小であれば差分動きベクトルをスケーリングしなくとも符号化効率を向上させることができる。また、差分動きベクトルが大きな場合には、差分動きベクトルモードを選択することで、符号化効率の低下を抑制することができる。
[変形例9]
 本実施の形態では、マージ補正フラグが0と1の場合の最大マージ候補数は同一であるとした。本変形例では、マージ補正フラグが1である場合の最大マージ候補数をマージ補正フラグが0である場合の最大マージ候補数より少なくする。例えば、マージ補正フラグが1である場合の最大マージ候補数を2とする。ここで、マージ補正フラグが1である場合の最大マージ候補数を最大補正マージ候補数とする。また、マージインデックスが最大補正マージ候補数より小さい場合には、マージ補正フラグを符号化(復号)し、マージインデックスが最大補正マージ候補数以上である場合には、マージ補正フラグを符号化(復号)しないようにする。ここで、マージ補正フラグが0である場合の最大マージ候補数と最大補正マージ候補数は予め定められている値であってもよいし、符号化ストリーム中のSPSやPPSに符号化(復号)して取得してもよい。
 このように、本変形例では、マージ補正フラグが1である場合の最大マージ候補数をマージ補正フラグが0である場合の最大マージ候補数より少なくすることで、より選択確率の高いマージ候補についてのみ、マージ候補を補正するか否か判定することで、符号化装置の処理を削減しつつ、符号化効率の低下を抑制することができる。また、マージインデックスが最大補正マージ候補数以上である場合にはマージ補正フラグを符号化(復号)する必要がなくなるため、符号化効率が向上する。
[第2の実施の形態]
 第2の実施の形態の画像符号化装置100と画像復号装置200の構成は、第1の本実施の形態の画像符号化装置100と画像復号装置200と同一である。本実施の形態は第1の実施の形態とはマージモードの動作とシンタックスが異なる。以降、本実施の形態と第1の本実施の形態の相違点について説明する。
 図13は、第2の実施の形態のマージモードの動作を説明するフローチャートである。図14は、第2の実施の形態のマージモードであるブロックのシンタックスの一部を示す図である。図15は、第2の実施の形態の差分動きベクトルのシンタックスを示す図である。
 以降、図13、図14、図15を用いて第1の本実施の形態との相違点について説明する。図13は、図4とステップS205からステップS207、ステップS209からステップS211が異なる。
 マージ補正フラグが1であれば(S104のYES)、選択マージ候補のL0予測が無効であるか検査する(S205)。選択マージ候補のL0予測が無効でなければ(S205のNO)、ステップS208に進む。選択マージ候補のL0予測が無効であれば(S205のYES)、L0予測の補正動きベクトルを決定する(S206)。
 画像符号化装置100のインター予測部120では、L0予測の補正動きベクトルは動きベクトル探索により求める。ここでは、動きベクトルの探索範囲は水平方向と垂直方向ともに±1とする。画像復号装置200のインター予測部220では、L0予測の補正動きベクトルは符号化ストリームから取得する。
 引き続いて、L0予測の参照ピクチャインデックスを決定する(S207)。ここでは、L0予測の参照ピクチャインデックスを0とする。
 引き続いて、スライスタイプがBで且つ選択マージ候補のL1予測が無効であるか検査する(S208)。スライスタイプがBでないまたは選択マージ候補のL1予測が無効でなければ(S208のNO)、S111に進む。スライスタイプがBで且つ選択マージ候補のL1予測が無効であれば(S208のYES)、L1予測の補正動きベクトルを決定する(S209)。
 画像符号化装置100のインター予測部120では、L1予測の補正動きベクトルは動きベクトル探索により求める。ここでは、動きベクトルの探索範囲は水平方向と垂直方向ともに±1とする。画像復号装置200のインター予測部220では、L1予測の補正動きベクトルは符号化ストリームから取得する。
 引き続いて、L1予測の参照ピクチャインデックスを決定する(S110)。ここでは、L1予測の参照ピクチャインデックスを0とする。
 以上のように、本実施の形態では、スライスタイプが双予測を許可しているスライスタイプ(すなわちスライスタイプB)の場合、L0予測またはL1予測のマージ候補を双予測のマージ候補に変換する。双予測のマージ候補とすることで、フィルタリング効果によって予測効率の向上を期待することができる。また、直近の復号画像を参照ピクチャとすることで、動きベクトルの探索範囲を最小限に抑制することができる。
[変形例]
 本実施の形態では、ステップS207とステップS210の参照ピクチャインデックスを0とした。本変形例では、選択マージ候補のL0予測が無効である場合、L0予測の参照ピクチャインデックスをL1予測の参照ピクチャインデックスとし、選択マージ候補のL1予測が無効である場合、L1予測の参照ピクチャインデックスをL0予測の参照ピクチャインデックスとする。
 このように、選択マージ候補のL0予測またはL1予測の動きベクトルによる予測値を微小にずらしてフィルタリングすることで、微小な動きを再現することができ、予測効率を向上させることができる。
 以上に述べた全ての実施の形態において、画像符号化装置が出力する符号化ビットストリームは、実施の形態で用いられた符号化方法に応じて復号することができるように特定のデータフォーマットを有している。符号化ビットストリームは、HDD、SSD、フラッシュメモリ、光ディスク等のコンピュータ等で読み解き可能な記録媒体に記録して提供しても良いし、有線あるいは無線のネットワークを通してサーバから提供しても良い。従って、この画像符号化装置に対応する画像復号装置は、提供手段によらず、この特定のデータフォーマットの符号化ビットストリームを復号することができる。
 画像符号化装置と画像復号装置の間で符号化ビットストリームをやりとりするために、有線または無線のネットワークが用いられる場合、通信路の伝送形態に適したデータ形式に符号化ビットストリームを変換して伝送してもよい。その場合、画像符号化装置が出力する符号化ビットストリームを通信路の伝送形態に適したデータ形式の符号化データに変換してネットワークに送信する送信装置と、ネットワークから符号化データを受信して符号化ビットストリームに復元して画像復号装置に供給する受信装置とが設けられる。 送信装置は、画像符号化装置が出力する符号化ビットストリームをバッファするメモリと、符号化ビットストリームをパケット化するパケット処理部と、ネットワークを介してパケット化された符号化データを送信する送信部とを含む。受信装置は、ネットワークを介してパケット化された符号化データを受信する受信部と、受信された符号化データをバッファするメモリと、符号化データをパケット処理して符号化ビットストリームを生成し、画像復号装置に提供するパケット処理部とを含む。
 画像符号化装置と画像復号装置の間で符号化ビットストリームをやりとりするために、有線または無線のネットワークが用いられる場合、送信装置、受信装置に加え、さらに、送信装置が送信する符号化データを受信し、受信装置に供給する中継装置が設けられても良い。中継装置は、送信装置が送信するパケット化された符号化データを受信する受信部と、受信された符号化データをバッファするメモリと、パケットされた符号化データとネットワークに送信する送信部とを含む。さらに、中継装置は、パケット化された符号化データをパケット処理して符号化ビットストリームを生成する受信パケット処理部と、符号化ビットストリームを蓄積する記録媒体と、符号化ビットストリームをパケット化する送信パケット処理部を含んでも良い。
 また、画像復号装置で復号された画像を表示する表示部を構成に追加することで、表示装置としても良い。また、撮像部を構成に追加し、撮像した画像を画像符号化装置に入力することで、撮像装置としても良い。
 図18に、本願の符号化復号装置のハードウェア構成の一例を示す。符号化復号装置は、本発明の実施の形態に係る画像符号化装置、および画像復号装置の構成を包含する。係る符号化復号装置9000は、CPU9001、コーデックIC9002、I/Oインターフェース9003、メモリ9004、光学ディスクドライブ9005、ネットワークインターフェース9006、ビデオインターフェース9009を有し、各部はバス9010により接続される。
 画像符号化部9007と画像復号部9008は、典型的にはコーデックIC9002として実装される。本発明の実施の形態に係る画像符号化装置の画像符号化処理は、画像符号化部9007により実行され、本発明の実施の形態に係る画像復号装置における画像復号処理は、画像符号化部9007により実行される。I/Oインターフェース9003は、例えばUSBインターフェースにより実現され、外部のキーボード9104、マウス9105等と接続する。CPU9001は、I/Oインターフェース9003を介して入力したユーザー操作に基づき、ユーザーの所望する動作を実行するように符号化復号装置9000を制御する。キーボード9104、マウス9105等によるユーザーの操作としては、符号化、復号のどちらの機能を実行するかの選択、符号化品質の設定、符号化ストリームの入出力先、画像の入出力先等がある。
 ユーザーがディスク記録媒体9100に記録された画像を再生する操作を所望する場合、光学ディスクドライブ9005は、挿入されたディスク記録媒体9100から符号化ビットストリームを読出し、読み出した符号化ストリームを、バス9010を介してコーデックIC9002の画像復号部9008に送る。画像復号部9008は入力した符号化ビットストリームに対して本発明の実施の形態に係る画像復号装置における画像復号処理を実行し、復号画像を、ビデオインターフェース9009を介して外部のモニタ9103へ送る。また、符号化復号装置9000は、ネットワークインターフェース9006を有し、ネットワーク9101を介して、外部の配信サーバ9106や、携帯端末9107と接続可能である。ユーザーがディスク記録媒体9100に記録された画像に変えて、配信サーバ9106や携帯端末9107に記録された画像を再生することを所望する場合は、ネットワークインターフェース9006は、入力されたディスク記録媒体9100から符号化ビットストリームを読出すことに変えて、ネットワーク9101より符号化ストリームを取得する。また、ユーザーがメモリ9004に記録された画像を再生することを所望する場合は、メモリ9004に記録された符号化ストリームに対して、本発明の実施の形態に係る画像復号装置における画像復号処理を実行する。
 ユーザーが外部のカメラ9102で撮像した画像を符号化しメモリ9004に記録する操作を所望する場合、ビデオインターフェース9009は、カメラ9102から画像を入力し、バス9010を介し、コーデックIC9002の画像符号化部9007に送る。画像符号化部9007は、ビデオインターフェース9009を介して入力した画像に対して本発明の実施の形態に係る画像符号化装置における画像符号化処理を実行し、符号化ビットストリームを作成する。そして符号化ビットストリームを、バス9010を介し、メモリ9004へ送る。ユーザーがメモリ9004に変えて、ディスク記録媒体9100に符号化ストリームを記録することを所望する場合は、光学ディスクドライブ9005は、挿入されたディスク記録媒体9100に対し符号化ストリームの書き出しを行う。
 画像符号化装置を有し画像復号装置を有さないハードウェア構成や、画像復号装置を有し画像符号化装置を有さないハードウェア構成を実現することも可能である。そのようなハードウェア構成は、例えばコーデックIC9002が、画像符号化部9007、または画像復号部9008にそれぞれ置き換わることにより実現される。
 以上の符号化及び復号に関する処理は、ASIC等のハードウェアを用いた伝送装置、蓄積装置、受信装置として実現することができるのは勿論のこと、ROM(リード・オンリ・メモリ)やフラッシュメモリ等に記憶されているファームウェアや、CPUやSoc(System on a chip)等のコンピュータのソフトウェアによっても実現することができる。そのファームウェアプログラム、ソフトウェアプログラムをコンピュータ等で読み取り可能な記録媒体に記録して提供することも、有線あるいは無線のネットワークを通してサーバから提供することも、地上波あるいは衛星ディジタル放送のデータ放送として提供することも可能である。
 以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
 本発明は、画像復号技術に利用できる。
 100 画像符号化装置、 110 ブロックサイズ決定部、 120 インター予測部、 121 マージモード判定部、 122 マージ候補リスト生成部、 123 マージ候補選択部、 124 マージ候補補正判定部、 125 マージ候補補正部、 126 差分動きベクトルモード実施部、 127 予測値導出部、 130 変換部、 140 符号列生成部、 150 局部復号部、 160 フレームメモリ、 200 画像復号装置、 201 空間マージ候補生成部、 202 時間マージ候補生成部、 203 マージ候補補充部、 210 符号列復号部、 220 インター予測部、 230 逆変換部、 240 フレームメモリ。

Claims (9)

  1.  予測対象ブロックに隣接する複数のブロックの動き情報をマージ候補として含むマージ候補リストを生成するマージ候補リスト生成部と、
     前記マージ候補リストからマージ候補を選択マージ候補として選択するマージ候補選択部と、
     符号化ストリームから符号列を復号して補正ベクトルを導出する符号列復号部と、
     前記選択マージ候補の第1予測の動きベクトルに前記補正ベクトルをスケーリングしないで加算し、前記選択マージ候補の第2予測の動きベクトルに前記補正ベクトルをスケーリングしないで減算して補正マージ候補を導出するマージ候補補正部と、
     を備えることを特徴とする画像復号装置。
  2.  前記符号列復号部は、前記符号化ストリームからマージフラグを取得して前記マージフラグがマージモードであることを示す場合にさらにマージ補正フラグを取得し、前記マージ補正フラグに基づいて、前記符号列を復号する請求項1に記載の画像復号装置。
  3.  前記マージ候補リストは、前記予測対象ブロックと同一位置にある復号画像上のブロックの動きベクトルをスケーリングして導出される動きベクトルを含む時間マージ候補を含む請求項1または請求項2に記載の画像復号装置。
  4.  前記選択マージ候補と前記補正マージ候補はいずれも双予測である請求項1から請求項3に記載の画像復号装置。
  5.  前記マージ候補補正部は、前記選択マージ候補の第1予測の参照ピクチャと前記選択マージ候補の第2予測の参照ピクチャが前記予測対象ブロックに対して時間的に逆方向である場合、前記補正マージ候補を導出する請求項4に記載の画像復号装置。
  6.  前記マージ候補補正部は、前記選択マージ候補の第1予測の参照ピクチャが長期間ピクチャまたは前記選択マージ候補の第2予測の参照ピクチャが長期間ピクチャである場合、前記双予測の補正マージ候補を生成する請求項4または請求項5に記載の画像復号装置。
  7.  インター予測を行う画像復号装置であって、
     予測対象ブロックに隣接する複数のブロックの動き情報からマージ候補リストを生成するマージ候補リスト生成部と、
     符号化ストリームからマージインデックスを復号する符号列復号部と、
     前記マージ候補リストから前記マージインデックスに基づいて1つのマージ候補を選択して選択マージ候補とするマージ候補選択部と、
     マージ補正フラグに基づいて前記選択マージ候補を補正するか否かを判定するマージ候補補正判定部と、
     前記選択マージ候補を補正する場合に前記選択マージ候補のL0予測の動きベクトルにL0予測の差分動きベクトルを加算して補正マージ候補を生成するマージ候補補正部と、
     前記選択マージ候補を補正する場合は、前記補正マージ候補の動き情報に基づいてインター予測を行い、前記補正マージ候補を導出しない場合は、前記選択マージ候補の動き情報に基づいてインター予測を行うインター予測部とを含み、
     前記符号列復号部は、前記選択マージ候補のL0予測が有効である場合、前記符号化ストリームから前記マージ補正フラグを復号することを特徴とする画像復号装置。
  8.  予測対象ブロックに隣接する複数のブロックの動き情報をマージ候補として含むマージ候補リストを生成するマージ候補リスト生成ステップと、
     前記マージ候補リストからマージ候補を選択マージ候補として選択するマージ候補選択ステップと、
     符号化ストリームから符号列を復号して補正ベクトルを導出する符号列復号ステップと、
     前記選択マージ候補の第1予測の動きベクトルに前記補正ベクトルをスケーリングしないで加算し、前記選択マージ候補の第2予測の動きベクトルに前記補正ベクトルをスケーリングしないで減算して補正マージ候補を導出するマージ候補補正ステップと、
     を有することを特徴とする画像復号方法。
  9.  予測対象ブロックに隣接する複数のブロックの動き情報をマージ候補として含むマージ候補リストを生成するマージ候補リスト生成ステップと、
     前記マージ候補リストからマージ候補を選択マージ候補として選択するマージ候補選択ステップと、
     符号化ストリームから符号列を復号して補正ベクトルを導出する符号列復号ステップと、
     前記選択マージ候補の第1予測の動きベクトルに前記補正ベクトルをスケーリングしないで加算し、前記選択マージ候補の第2予測の動きベクトルに前記補正ベクトルをスケーリングしないで減算して補正マージ候補を導出するマージ候補補正ステップと、
     をコンピュータに実行させことを特徴とする画像復号プログラム。
PCT/JP2019/048855 2018-12-13 2019-12-13 画像復号装置、画像復号方法、及び画像復号プログラム WO2020122224A1 (ja)

Priority Applications (16)

Application Number Priority Date Filing Date Title
BR112021005875-3A BR112021005875B1 (pt) 2018-12-13 2019-12-13 Dispositivo de decodificação de imagem, método de decodificação de imagem, dispositivo de codificação de imagem e método de codificação de imagem
CN201980050605.2A CN112514395B (zh) 2018-12-13 2019-12-13 图像解码装置和方法、以及图像编码装置和方法
CN202310789721.4A CN116600108A (zh) 2018-12-13 2019-12-13 图像解码装置和方法、以及图像编码装置和方法
CN202110325100.1A CN112887720B (zh) 2018-12-13 2019-12-13 图像解码装置和方法、以及图像编码装置和方法
KR1020217003083A KR102600108B1 (ko) 2018-12-13 2019-12-13 화상 복호 장치, 화상 복호 방법, 화상 복호 프로그램, 화상 부호화 장치, 화상 부호화 방법 및, 화상 부호화 프로그램
KR1020237038090A KR20230156809A (ko) 2018-12-13 2019-12-13 화상 복호 장치, 화상 복호 방법, 화상 복호 프로그램 기록 매체, 화상 부호화 장치, 화상 부호화 방법, 화상 부호화 프로그램 기록 매체, 격납 방법, 및 전송 방법
CA3119641A CA3119641A1 (en) 2018-12-13 2019-12-13 Image decoding device, image decoding method, and image decoding program
RU2021108001A RU2770794C1 (ru) 2018-12-13 2019-12-13 Устройство декодирования изображения, способ декодирования изображения
CN202310789241.8A CN116582666A (zh) 2018-12-13 2019-12-13 图像解码装置和方法、以及图像编码装置和方法
EP19896609.5A EP3896972A4 (en) 2018-12-13 2019-12-13 IMAGE DECODING DEVICE, IMAGE DECODING METHOD, AND IMAGE DECODING PROGRAM
CN202310789243.7A CN116582667A (zh) 2018-12-13 2019-12-13 图像解码装置和方法、以及图像编码装置和方法
MX2021003506A MX2021003506A (es) 2018-12-13 2019-12-13 Dispositivo de decodificacion de imagenes, metodo de decodificacion de imagenes y programa de decodificacion de imagenes.
US17/210,629 US11563935B2 (en) 2018-12-13 2021-03-24 Image decoding device, image decoding method, and image decoding program
ZA2021/02033A ZA202102033B (en) 2018-12-13 2021-03-25 Image decoding device, image decoding method, and image decoding program
US18/066,030 US11758129B2 (en) 2018-12-13 2022-12-14 Image decoding device, image decoding method, and image decoding program
US18/358,189 US20230370584A1 (en) 2018-12-13 2023-07-25 Image decoding device, image decoding method, and image decoding program

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2018-233432 2018-12-13
JP2018233432 2018-12-13
JP2019171782A JP6933235B2 (ja) 2018-12-13 2019-09-20 画像復号装置、画像復号方法、及び画像復号プログラム
JP2019-171782 2019-09-20

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/210,629 Continuation US11563935B2 (en) 2018-12-13 2021-03-24 Image decoding device, image decoding method, and image decoding program

Publications (1)

Publication Number Publication Date
WO2020122224A1 true WO2020122224A1 (ja) 2020-06-18

Family

ID=71075651

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/048855 WO2020122224A1 (ja) 2018-12-13 2019-12-13 画像復号装置、画像復号方法、及び画像復号プログラム

Country Status (10)

Country Link
US (2) US11758129B2 (ja)
EP (1) EP3896972A4 (ja)
JP (1) JP7318686B2 (ja)
KR (1) KR20230156809A (ja)
CN (4) CN116582667A (ja)
CL (1) CL2021001412A1 (ja)
MX (1) MX2021003506A (ja)
RU (1) RU2770794C1 (ja)
WO (1) WO2020122224A1 (ja)
ZA (1) ZA202102033B (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10276439A (ja) 1997-03-28 1998-10-13 Sharp Corp 領域統合が可能な動き補償フレーム間予測方式を用いた動画像符号化・復号化装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG194746A1 (en) * 2011-05-31 2013-12-30 Kaba Gmbh Image encoding method, image encoding device, image decoding method, image decoding device, and image encoding/decoding device
JP5786498B2 (ja) * 2011-06-30 2015-09-30 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法及び画像符号化プログラム
KR20150088909A (ko) * 2011-06-30 2015-08-03 가부시키가이샤 제이브이씨 켄우드 화상 부호화 장치, 화상 부호화 방법, 화상 부호화 프로그램, 화상 복호 장치, 화상 복호 방법 및 화상 복호 프로그램
PL2773112T3 (pl) * 2011-10-27 2019-01-31 Sun Patent Trust Sposób kodowania obrazów, sposób dekodowania obrazów, urządzenie do kodowania obrazów oraz urządzenie do dekodowania obrazów
JP5383958B2 (ja) 2011-10-28 2014-01-08 パナソニック株式会社 復号方法および復号装置
CN108235032B (zh) * 2012-01-18 2022-01-07 Jvc 建伍株式会社 动图像解码装置以及动图像解码方法
US9426463B2 (en) * 2012-02-08 2016-08-23 Qualcomm Incorporated Restriction of prediction units in B slices to uni-directional inter prediction
US9325991B2 (en) * 2012-04-11 2016-04-26 Qualcomm Incorporated Motion vector rounding
JP5633597B2 (ja) 2012-04-12 2014-12-03 株式会社Jvcケンウッド 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法及び受信プログラム
WO2014005503A1 (en) * 2012-07-02 2014-01-09 Mediatek Inc. Method and apparatus of inter-view candidate derivation in 3d video coding
AU2013285749B2 (en) 2012-07-02 2016-06-16 Samsung Electronics Co., Ltd. Method and apparatus for predicting motion vector for coding video or decoding video
US9325990B2 (en) 2012-07-09 2016-04-26 Qualcomm Incorporated Temporal motion vector prediction in video coding extensions
US10616607B2 (en) 2013-02-25 2020-04-07 Lg Electronics Inc. Method for encoding video of multi-layer structure supporting scalability and method for decoding same and apparatus therefor
JP2015089078A (ja) * 2013-11-01 2015-05-07 ソニー株式会社 画像処理装置および方法
KR102329126B1 (ko) 2014-03-14 2021-11-19 삼성전자주식회사 인터 레이어 비디오의 복호화 및 부호화를 위한 머지 후보 리스트 구성 방법 및 장치
KR20170066457A (ko) * 2014-09-26 2017-06-14 브이아이디 스케일, 인크. 시간적 블록 벡터 예측을 갖는 인트라 블록 카피 코딩
WO2017039117A1 (ko) * 2015-08-30 2017-03-09 엘지전자(주) 영상의 부호화/복호화 방법 및 이를 위한 장치
CN110140355B (zh) 2016-12-27 2022-03-08 联发科技股份有限公司 用于视频编解码的双向模板运动向量微调的方法及装置
CN114205620B (zh) 2018-02-28 2023-07-25 三星电子株式会社 编码方法及其装置以及解码方法及其装置
EP3855738A4 (en) 2018-09-17 2022-07-20 Samsung Electronics Co., Ltd. METHOD FOR ENCODING AND DECODING MOTION INFORMATION AND APPARATUS FOR ENCODING AND DECODING MOTION INFORMATION
WO2020256468A1 (ko) 2019-06-21 2020-12-24 삼성전자 주식회사 주변 움직임 정보를 이용하여 움직임 정보를 부호화 및 복호화하는 장치, 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10276439A (ja) 1997-03-28 1998-10-13 Sharp Corp 領域統合が可能な動き補償フレーム間予測方式を用いた動画像符号化・復号化装置

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
BROSS, BENJAMIN ET AL.: "Versatile Video Coding (Draft 3", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 12TH MEETING, 10 December 2018 (2018-12-10), Macao, CN, pages 102 - 104, XP030251957 *
CHEN, HUANBANG ET AL.: "CE4: Symmetrical mode for bi-prediction (Test 3.2", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/ WG 11 11TH MEETING, 10 July 2018 (2018-07-10), Ljubljana, SI, pages 1 - 2, XP030199229 *
CHEN, XU ET AL.: "CE 4: Enhanced Merge Mode (Test 4.2.15", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 11TH MEETING, 10 July 2018 (2018-07-10), Ljubljana, SI, pages 1 - 8, XP030199235 *
FUKUSHIMA, SHIGERU ET AL.: "Merge based mvd transmission", MERGE BASED MVD TRANSMISSION, JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG 16 WP3 AND ISO/IEC JTC1/SC29/WG11 6TH MEETING, 14 July 2011 (2011-07-14), Torino, IT, pages 1 - 8, XP030228768 *
JEONG, SEUNGSOO ET AL.: "Proposed WD for CE4 Ultimate motion vector expression (Test 4.5.4), Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 12th Meeting", 11 October 2018 (2018-10-11), Macao, CN, pages 1 - 12, XP030195378 *

Also Published As

Publication number Publication date
KR20230156809A (ko) 2023-11-14
CN112887720A (zh) 2021-06-01
CL2021001412A1 (es) 2022-01-14
CN116582666A (zh) 2023-08-11
JP7318686B2 (ja) 2023-08-01
CN116600108A (zh) 2023-08-15
ZA202102033B (en) 2022-09-28
RU2770794C1 (ru) 2022-04-21
US11758129B2 (en) 2023-09-12
US20230370584A1 (en) 2023-11-16
JP2021192513A (ja) 2021-12-16
CN116582667A (zh) 2023-08-11
EP3896972A4 (en) 2022-04-20
RU2022110107A (ru) 2022-05-06
MX2021003506A (es) 2021-05-27
US20230122817A1 (en) 2023-04-20
EP3896972A1 (en) 2021-10-20
CN112887720B (zh) 2022-11-29

Similar Documents

Publication Publication Date Title
JP2024051143A (ja) 画像復号装置、画像復号方法、及び画像復号プログラム
JP5843032B2 (ja) 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム
TW202008783A (zh) 多通道視訊處理系統的方法與裝置
WO2020122224A1 (ja) 画像復号装置、画像復号方法、及び画像復号プログラム
JP5725119B2 (ja) 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム
JP2020113966A (ja) 画像符号化装置、画像符号化方法、及び画像符号化プログラム
RU2789732C2 (ru) Устройство декодирования изображения и способ декодирования изображения
JP2013121163A (ja) 画像符号化装置、画像符号化方法及び画像符号化プログラム
JP2013121164A (ja) 画像復号装置、画像復号方法及び画像復号プログラム
JP2013121165A (ja) 画像符号化装置、画像符号化方法及び画像符号化プログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19896609

Country of ref document: EP

Kind code of ref document: A1

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
ENP Entry into the national phase

Ref document number: 20217003083

Country of ref document: KR

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2101001619

Country of ref document: TH

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: 112021005875

Country of ref document: BR

ENP Entry into the national phase

Ref document number: 3119641

Country of ref document: CA

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2019896609

Country of ref document: EP

Effective date: 20210713

ENP Entry into the national phase

Ref document number: 112021005875

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20210326