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

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

Info

Publication number
WO2020255846A1
WO2020255846A1 PCT/JP2020/022974 JP2020022974W WO2020255846A1 WO 2020255846 A1 WO2020255846 A1 WO 2020255846A1 JP 2020022974 W JP2020022974 W JP 2020022974W WO 2020255846 A1 WO2020255846 A1 WO 2020255846A1
Authority
WO
WIPO (PCT)
Prior art keywords
motion vector
unit
search
value
block
Prior art date
Application number
PCT/JP2020/022974
Other languages
English (en)
French (fr)
Inventor
恭平 海野
圭 河村
内藤 整
Original Assignee
Kddi株式会社
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
Application filed by Kddi株式会社 filed Critical Kddi株式会社
Priority to CN202080040389.6A priority Critical patent/CN113906741A/zh
Priority to EP20827343.3A priority patent/EP3989570A4/en
Priority to US17/615,473 priority patent/US20220312024A1/en
Publication of WO2020255846A1 publication Critical patent/WO2020255846A1/ja

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/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/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • 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/533Motion estimation using multistep search, e.g. 2D-log search or one-at-a-time search [OTS]
    • 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/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/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/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/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/182Methods 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 a pixel
    • 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
    • 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/523Motion estimation or motion compensation with sub-pixel accuracy
    • 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/557Motion estimation characterised by stopping computation or iteration based on certain criteria, e.g. error magnitude being too large or early exit
    • 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/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search

Definitions

  • the present invention relates to an image decoding device, an image decoding method, and a program.
  • Non-Patent Document 1 since the refinement process is always executed in the block satisfying the above-mentioned application condition, the refinement process is executed even in the block having a low correlation in the time direction. On the contrary, there is a problem that the coding efficiency may decrease.
  • the present invention has been made in view of the above-mentioned problems, and image decoding can prevent a decrease in coding efficiency by not performing refinement processing on a block having a low correlation in the time direction. It is an object of the present invention to provide an apparatus, an image decoding method and a program.
  • the first feature of the present invention is an image decoding device, which is a motion vector decoding unit configured to decode a motion vector from encoded data, and a motion vector decoded by the motion vector decoding unit.
  • the motion vector is searched with the value as the initial value, and the decoded data is obtained when the search cost at the initial search point is larger than a predetermined threshold value or when the search cost at the initial search point is equal to or higher than the threshold value.
  • the gist is to have a refinement unit configured to determine the motion vector as the final motion vector.
  • the second feature of the present invention is an image decoding device, which is a motion vector decoding unit configured to decode a motion vector from encoded data, and a motion vector decoded by the motion vector decoding unit.
  • a motion vector is searched using a value as an initial value, and the decoded motion vector is obtained when the minimum search cost in the search point is larger than a predetermined threshold or when the minimum search cost is equal to or higher than the threshold.
  • the gist is to have a refinement unit that is configured to determine as the final motion vector.
  • a third feature of the present invention is an image decoding device, which is a motion vector decoding unit configured to decode a motion vector from encoded data, and a motion vector decoded by the motion vector decoding unit.
  • the motion vector is searched using the value as the initial value, and when the difference value between the search cost at the initial search point and the minimum search cost in the search point is smaller than a predetermined threshold value or the difference value is equal to or less than the threshold value.
  • it is a gist to include a refinement unit configured to determine the decoded motion vector as the final motion vector.
  • a fourth feature of the present invention is an image decoding device, which is a motion vector decoding unit configured to decode a motion vector from encoded data, and a motion vector decoded by the motion vector decoding unit.
  • a refinement unit configured to search for a motion vector with a value as an initial value, and a prediction signal generation unit configured to generate a prediction signal based on the motion vector output from the refinement unit.
  • the index value representing the similarity between the block on the first reference frame side and the block on the second reference frame side is larger than a predetermined threshold value, or the index value is the threshold value.
  • the configuration is such that it is determined not to execute the BDOF (Bi-Signal Optical Flow) process.
  • a fifth feature of the present invention is an image decoding device, which is a motion vector decoding unit configured to decode a motion vector from encoded data, and a motion vector decoded by the motion vector decoding unit. It includes a refinement unit configured to search for a motion vector with a value as the initial value, and the refinement unit includes the norm of the difference vector between the initial search point and the search point in the search cost.
  • the gist is that it is composed.
  • the sixth feature of the present invention is a step of decoding a motion vector from encoded data, a step of searching for a motion vector using the decoded value of the motion vector as an initial value, and a search cost at an initial search point. It is a gist to have a step of determining the decoded motion vector as the final motion vector when it is larger than a predetermined threshold value or when the search cost at the initial search point is equal to or larger than the threshold value. ..
  • the seventh feature of the present invention is a program used in an image decoding device, in which a computer decodes a motion vector from encoded data and searches for a motion vector using the decoded motion vector value as an initial value. And when the search cost at the initial search point is larger than a predetermined threshold value or when the search cost at the initial search point is equal to or higher than the threshold value, the decoded motion vector is finally moved.
  • the gist is to execute the process of determining as a vector.
  • an image decoding device an image decoding method and a program capable of preventing a decrease in coding efficiency by not performing refinement processing on a block having a low correlation in the time direction. it can.
  • FIG. 1 is a diagram showing an image processing system 10 according to an embodiment according to the present embodiment.
  • the image processing system 10 includes an image coding device 100 and an image decoding device 200.
  • the image coding device 100 is configured to generate coded data by coding the input image signal.
  • the image decoding device 200 is configured to generate an output image signal by decoding the encoded data.
  • the coded data may be transmitted from the image coding device 100 to the image decoding device 200 via a transmission line. Further, the coded data may be stored in the storage medium and then provided from the image coding device 100 to the image decoding device 200.
  • FIG. 2 is a diagram showing an example of a functional block of the image coding apparatus 100 according to the present embodiment.
  • the image coding device 100 includes an inter-prediction unit 111, an intra-prediction unit 112, a subtractor 121, an adder 122, a conversion / quantization unit 131, and an inverse conversion / dequantization. It has a unit 132, an encoding unit 140, an in-loop filter processing unit 150, and a frame buffer 160.
  • the inter-prediction unit 111 is configured to generate a prediction signal by inter-prediction (inter-frame prediction).
  • the inter-prediction unit 111 identifies and identifies the reference block included in the reference frame by comparing the frame to be encoded (hereinafter referred to as the target frame) with the reference frame stored in the frame buffer 160. It is configured to determine the motion vector for the reference block.
  • the inter-prediction unit 111 is configured to generate a prediction signal included in the prediction block for each prediction block based on the reference block and the motion vector.
  • the inter-prediction unit 111 is configured to output a prediction signal to the subtractor 121 and the adder 122.
  • the reference frame is a frame different from the target frame.
  • the intra prediction unit 112 is configured to generate a prediction signal by intra prediction (in-frame prediction).
  • the intra prediction unit 112 is configured to specify a reference block included in the target frame and generate a prediction signal for each prediction block based on the specified reference block. Further, the intra prediction unit 112 is configured to output a prediction signal to the subtractor 121 and the adder 122.
  • the reference block is a block referred to for the block to be predicted (hereinafter referred to as the target block).
  • the reference block is a block adjacent to the target block.
  • the subtractor 121 is configured to subtract the prediction signal from the input image signal and output the prediction residual signal to the conversion / quantization unit 131.
  • the subtractor 121 is configured to generate a prediction residual signal, which is the difference between the prediction signal generated by the intra prediction or the inter prediction and the input image signal.
  • the adder 122 adds a prediction signal to the prediction residual signal output from the inverse conversion / inverse quantization unit 132 to generate a pre-filter processing decoding signal, and the pre-filter processing decoding signal is combined with the intra prediction unit 112 and the input. It is configured to output to the loop filter processing unit 150.
  • the pre-filtered decoding signal constitutes a reference block used by the intra prediction unit 112.
  • the conversion / quantization unit 131 is configured to perform conversion processing of the predicted residual signal and acquire a coefficient level value. Further, the conversion / quantization unit 131 may be configured to quantize the coefficient level value.
  • the conversion process is a process of converting the predicted residual signal into a frequency component signal.
  • a base pattern transformation matrix corresponding to the discrete cosine transform (DCT; Discrete Cosine Transform) may be used, or a basal pattern (transformation matrix) corresponding to the discrete sine transform (DST). May be used.
  • DCT discrete cosine transform
  • DST discrete sine transform
  • the inverse conversion / inverse quantization unit 132 is configured to perform an inverse conversion process of the coefficient level value output from the conversion / quantization unit 131.
  • the inverse conversion / inverse quantization unit 132 may be configured to perform inverse quantization of the coefficient level value prior to the inverse conversion process.
  • the inverse conversion process and the inverse quantization are performed in the reverse procedure of the conversion process and the quantization performed by the conversion / quantization unit 131.
  • the coding unit 140 is configured to encode the coefficient level value output from the conversion / quantization unit 131 and output the coded data.
  • coding is entropy coding in which codes of different lengths are assigned based on the probability of occurrence of a coefficient level value.
  • the coding unit 140 is configured to encode the control data used in the decoding process in addition to the coefficient level value.
  • control data may include size data such as a coded block (CU: Coding Unit) size, a prediction block (PU: Precision Unit) size, and a conversion block (TU: Transfer Unit) size.
  • CU Coding Unit
  • PU prediction block
  • TU Transfer Unit
  • the in-loop filter processing unit 150 is configured to perform filter processing on the pre-filter processing decoding signal output from the adder 122 and output the post-filter processing decoding signal to the frame buffer 160.
  • the filtering process is a deblocking filtering process that reduces the distortion generated at the boundary portion of the block (encoded block, prediction block, or conversion block).
  • the frame buffer 160 is configured to store reference frames used by the inter-prediction unit 111.
  • the decoded signal after the filter processing constitutes a reference frame used by the inter-prediction unit 111.
  • FIG. 3 is a diagram showing an example of a functional block of the inter-prediction unit 111 of the image coding apparatus 100 according to the present embodiment.
  • the inter-prediction unit 111 includes a motion vector search unit 111A, a motion vector coding unit 111B, a refinement unit 111C, and a prediction signal generation unit 111D.
  • the inter-prediction unit 111 is an example of a prediction unit configured to generate a prediction signal included in a prediction block based on a motion vector.
  • the motion vector search unit 111A is configured to identify the reference block included in the reference frame by comparing the target frame with the reference frame, and search for the motion vector for the specified reference block.
  • the above search is performed on a plurality of reference frame candidates, and the reference frame and motion vector used for prediction in the prediction block are determined. Up to two reference frames and two motion vectors can be used for one block. The case where only one set of reference frames and motion vectors is used for one block is called single prediction, and the case where two sets of reference frames and motion vectors are used is called double prediction.
  • L0 the first set will be referred to as L0
  • L1 the second set
  • the motion vector search unit 111A is configured to determine the reference frame and the motion vector coding method.
  • the coding method includes a merge mode and the like, which will be described later, in addition to the usual method of transmitting information on the reference frame and the motion vector, respectively.
  • the reference frame determination method As for the motion vector search method, the reference frame determination method, and the reference frame and motion vector coding method determination method, known methods can be adopted, and details thereof will be omitted.
  • the motion vector coding unit 111B is configured to encode the reference frame and motion vector information determined by the motion vector search unit 111A by using the coding method also determined by the motion vector search unit 111A.
  • the merge list for the block is first created on the image coding device 100 side.
  • the merge list is a list in which a plurality of combinations of reference frames and motion vectors are listed.
  • An index is assigned to each combination, and the image coding device 100 encodes only such an index and transmits it to the image decoding device 200, instead of encoding the reference frame and motion vector information individually.
  • the image decoding device 200 side decodes the reference frame and motion vector information only from the information related to the index. can do.
  • the predicted motion vector which is the predicted value of the motion vector to be encoded is generated, and the differential motion which is the difference value between the predicted motion vector and the motion vector actually desired to be encoded. Encode the vector.
  • the refinement unit 111C is configured to perform a refinement process (for example, DMVR) for modifying the motion vector encoded by the motion vector coding unit 111B.
  • a refinement process for example, DMVR
  • the refinement unit 111C sets the search range with reference to the reference position specified by the motion vector encoded by the motion vector coding unit 111B, and corrects the search range with the smallest predetermined cost. It is configured to perform refinement processing that identifies the reference position and corrects the motion vector based on the correction reference position.
  • FIG. 4 is a flowchart showing an example of the processing procedure of the refinement unit 111C.
  • step S41 the refinement unit 111C determines whether or not the predetermined conditions for applying the refinement process are satisfied. When all the predetermined conditions are satisfied, the processing procedure proceeds to step S42. On the other hand, if any one of the predetermined conditions is not satisfied, the present processing procedure proceeds to step S48 and ends the refining process.
  • the predetermined condition includes the condition that the block is a block that performs double prediction. Further, the predetermined condition may include the condition that the motion vector is encoded in the merge mode.
  • step S42 the refinement unit 111C generates a search image based on the information of the motion vector and the reference frame encoded by the motion vector coding unit 111B.
  • the refinement unit 111C applies a filter to the pixel value of the reference frame to interpolate the pixel at the non-integer pixel position.
  • the refinement unit 111C can reduce the amount of calculation by using the interpolation filter having a smaller number of taps than the interpolation filter used in the prediction signal generation unit 111D described later.
  • the refinement unit 111C can interpolate pixel values at non-integer pixel positions by bilinear interpolation.
  • step S43 the refinement unit 111C calculates the search cost at the initial position using the search image generated in step S42.
  • the initial position is the position pointed to by the motion vector encoded by the motion vector coding unit 111B.
  • the search cost is an index value of the degree of similarity between the reference block on the L0 side (first reference frame side) and the reference block on the L1 side (second reference frame side) pointed to by the motion vector, for example, a pixel. Absolute value error sums and square error sums between values can be used.
  • step S44 the refinement unit 111C uses the search cost at the initial position calculated in step S43 as an input to determine whether or not the end condition for terminating the refinement process of the block is satisfied. When all the termination conditions are satisfied, the processing procedure proceeds to step S45. On the other hand, if any one of the termination conditions is not satisfied, the processing procedure proceeds to step S48 to end the refining process.
  • the search cost at the above-mentioned initial position is smaller than the predetermined first threshold value (or the above-mentioned search cost at the initial position is predetermined.
  • the condition (being equal to or less than the first threshold value) can be included.
  • the end condition (discontinuation condition) in step S44 includes, for example, that the search cost at the above-mentioned initial position is larger than the predetermined second threshold value (or the above-mentioned search cost at the initial position is a predetermined second threshold value).
  • the condition that it is 1 threshold value or more) can be included.
  • step S45 the refinement unit 111C performs a search with integer pixel accuracy using the search image generated in step S42.
  • the integer pixel accuracy means that only the points at the integer pixel spacing are searched with reference to the motion vector encoded by the motion vector coding unit 111B.
  • the refinement unit 111C determines the corrected motion vector at the integer pixel interval position by the search in step S45.
  • a known method can be used as the search method.
  • the refinement unit 111C can also search by a method of searching only a point where the difference motion vector on the L0 side and the L1 side is a combination in which only the sign is inverted.
  • the search point with the lowest search cost at each search position is the motion vector after correction at the integer pixel interval position.
  • an index such as an absolute value difference sum or a square error sum can be used.
  • the refinement unit 111C adds the Lp norm of the difference vector between the corrected motion vector and the motion vector at the initial position to the index for evaluating the similarity between blocks such as the above-mentioned absolute value difference sum. May be used as the search cost.
  • the refinement unit 111C may use, for example, the sum of the absolute value difference sum and the L1 norm of the difference vector as the search cost. Further, the refinement unit 111C may add the L1 norm to the absolute value difference sum after weighting it at a predetermined ratio. For example, the refinement unit 111C may add a value obtained by doubling the L1 norm to the absolute value difference sum. At this time, if the magnification is a power of 2, equivalent processing can be realized by bit shifting. As a result of the search in step S45, the value may be the same as the motion vector before the search.
  • step S46 the refinement unit 111C is satisfied with the end condition for discontinuing the refinement process in the block by using the search cost corresponding to the corrected motion vector at the integer pixel interval position determined in step S45. Judge whether or not it is. When all the termination conditions are satisfied, the processing procedure proceeds to step S47. On the other hand, if any one of the termination conditions is not satisfied, the processing procedure proceeds to step S48 to end the refining process.
  • the end condition (discontinuation condition) in step S46 includes, for example, that the above-mentioned search cost is larger than a predetermined third threshold value (or that the above-mentioned search cost is equal to or more than a predetermined third threshold value). Can be included.
  • the third threshold value may be set to the same value as the above-mentioned second threshold value.
  • the refinement unit 111C determines that the end condition is satisfied, the refinement unit 111C discards the search result in step S45 and performs the same motion vector as when the refinement process is not performed (that is, the motion vector).
  • the motion vector encoded by the coding unit 111B) may be used as the final motion vector of the block.
  • a difference value between the search cost at the initial position calculated in step S43 and the search cost corresponding to the corrected motion vector calculated in step S45 is previously set. It may include a condition that it is smaller than a predetermined fourth threshold value (or that the above-mentioned difference value is equal to or less than a predetermined fourth threshold value). At this time, the fourth threshold value may be set to the same value as the first threshold value.
  • the refinement unit 111C determines that the end condition is satisfied, the search result in step S45 is discarded, and the same motion vector as in the case where the refinement process is not performed is used for the block. It may be the final motion vector.
  • step S47 the refinement unit 111C searches for a motion vector with non-integer pixel accuracy, using the motion vector after correction with integer pixel accuracy determined in step S43 as an initial value.
  • a motion vector search method a known method can be used as a motion vector search method.
  • the refinement unit 111C can also determine a motion vector with non-integer pixel accuracy by using a parametric model such as parabolic fitting with the result of step S43 as an input without actually performing a search.
  • step S47 the refinement unit 111C determines the motion vector after correction with non-integer pixel accuracy, and then proceeds to step S48 to end the refinement process.
  • the expression of the modified motion vector with non-integer pixel accuracy is used, but the search result in step S47 may result in the same value as the motion vector with integer pixel accuracy obtained in step S45. There is also.
  • step S43 and step S45 have been described as separate steps for convenience, but both processes may be executed within the same step.
  • this processing procedure moves to step S45 immediately after step S42, and the refinement unit 111C has both the search cost at the initial position and the search cost corresponding to the corrected motion vector at the pixel spacing position in step S45. Can be calculated.
  • the present processing procedure moves to step S46, and the refinement unit 111C satisfies at least one of the conditions described as step S44 and the condition described as step S46, and the end condition is satisfied. It is possible to judge whether or not it is present.
  • the refinement unit 111C may determine whether to discard the search result by using the search cost at the initial position and the search cost corresponding to the corrected motion vector at the pixel spacing position. it can.
  • the refinement unit 111C discards the search result and does not perform the refinement process.
  • the same motion vector as the above that is, the motion vector encoded by the motion vector coding unit 111B
  • the refinement unit 111C discards the search result. Then, the same motion vector as in the case where the refinement process is not performed may be used as the final motion vector of the block.
  • the refinement unit 111C may discard the search result and use the same motion vector as in the case where the refinement process is not performed as the final motion vector of the block.
  • steps S44 and S46 do not necessarily have to be included in the configuration.
  • the refinement unit 111C may divide a block larger than a predetermined threshold into smaller subblocks and execute the refinement process for each subblock. For example, the refinement unit 111C sets the execution unit of the refinement process to 16 ⁇ 16 pixels, and when the size of the block in the horizontal direction or the vertical direction is larger than 16 pixels, it is divided so as to be 16 pixels or less. can do. At this time, as the motion vector that serves as the reference for the refinement process, the motion vector of the block encoded by the motion vector coding unit 111B is used for all the sub-blocks in the same block.
  • the refinement unit 111C may execute all the procedures shown in FIG. 4 for each subblock. Further, the refinement unit 111C may process only a part of the process of FIG. 4 for each subblock. Specifically, the refinement unit 111C may process steps S41 and S42 in FIG. 4 for each block, and steps S43 to S48 for each subblock.
  • the prediction signal generation unit 111D is configured to generate a prediction signal based on the modified motion vector output from the refinement unit 111C.
  • the prediction signal generation unit 111D performs BDOF (Bi-Directional Optical Flow) processing for each block based on the information (for example, search cost) calculated in the process of the above-mentioned refinement processing. It is configured to determine whether or not to do so.
  • BDOF Bi-Directional Optical Flow
  • the prediction signal generation unit 111D is configured to generate a prediction signal based on the motion vector encoded by the motion vector coding unit 111B when the motion vector is not modified.
  • the prediction signal generation unit 111D is configured to generate a prediction signal based on the motion vector corrected by the refinement unit 111C when the motion vector is corrected.
  • FIG. 5 is a flowchart showing an example of the processing procedure of the prediction signal generation unit 111D.
  • the process of the prediction signal generation unit 111D is also executed in subblock units.
  • the word block in the following description can be appropriately read as a subblock.
  • the refinement unit 111C even if the block that has not been refined by the refinement unit 111C is divided into smaller subblocks and the refinement process is executed for each subblock when the block size is larger than the predetermined threshold value.
  • the execution unit of the prediction signal generation process when the execution unit of the prediction signal generation process is set to 16 ⁇ 16 pixels and the horizontal or vertical size of the block is larger than 16 pixels, the number of pixels is 16 or less, respectively.
  • the word block in the following description can be appropriately read as a subblock.
  • step S51 the prediction signal generation unit 111D generates a prediction signal.
  • the prediction signal generation unit 111D takes a motion vector encoded by the motion vector coding unit 111B or a motion vector encoded by the refinement unit 111C as an input, and the position pointed to by the motion vector is a non-integer.
  • a filter is applied to the pixel value of the reference frame to interpolate the pixel at the non-integer pixel position.
  • a horizontal / vertical separable filter with a maximum of 8 taps disclosed in Non-Patent Document 1 can be applied.
  • the prediction signal generation unit 111D includes a prediction signal based on the first (hereinafter referred to as L0) reference frame and motion vector, and the second (hereinafter referred to as L1). Generates both the reference frame and the motion vector prediction signal.
  • step S52 the prediction signal generation unit 111D confirms whether or not the application conditions of the BDOF processing described later are satisfied.
  • the applicable condition includes at least the condition that the block is a block that performs bi-prediction. Further, the applicable condition may include a condition that the motion vector of the block is not encoded in the Symmetric MVD mode, as described in Non-Patent Document 1.
  • step S55 the prediction signal generation unit 111D outputs the prediction signal generated in step S51 as the final prediction signal.
  • step S53 this processing procedure determines whether or not to actually execute the BDOF processing of step S54 for the block satisfying the applicable conditions.
  • the search cost is used as the search cost.
  • other indexes can also be used for the search cost.
  • any index value for determining the similarity between image signals such as the sum of absolute value differences and the sum of squared errors of signals after removing the local mean value, can be used as the search cost. ..
  • the prediction signal generation unit 111D calculates the absolute value difference sum of the prediction signal of L0 and the prediction signal of L1, and when the calculated value is smaller than a predetermined threshold value (or the calculated value is in advance). If it is less than or equal to the predetermined threshold value), it is determined that the BDOF process is not performed.
  • the prediction signal generation unit 111D calculates the absolute value difference sum of the prediction signal of L0 and the prediction signal of L1, and when the calculated value is larger than a predetermined threshold value (or the calculated value is larger than the predetermined threshold value). If it is equal to or higher than a predetermined threshold value), it is possible to make a determination that the BDOF process is not performed.
  • the prediction signal generation unit 111D can also use the result of the refinement processing for determining whether or not the BDOF processing is applied to the block for which the refinement processing is executed by the refinement unit 111C.
  • the prediction signal generation unit 111D uses the search cost calculated in the process of the above-mentioned refinement processing (for example, the absolute value difference sum of the pixel value of the reference block on the L0 side and the pixel value of the reference block on the L1 side). , It is also possible to determine whether or not to apply the BDOF process.
  • the absolute value difference sum of the search points at which the above-mentioned search cost (absolute value difference sum) is minimized is greater than a predetermined fifth threshold value. If it is also small (or if it is equal to or less than a predetermined fifth threshold value), it can be determined that the BDOF process is not applied. At this time, the fifth threshold value may be set to the same value as the first threshold value.
  • the absolute value difference sum of the search points at which the above-mentioned search cost (absolute value difference sum) is minimized is greater than a predetermined sixth threshold value. If it is also large (or if it is equal to or higher than a predetermined sixth threshold value), it can be determined that the BDOF process is not applied. At this time, the sixth threshold value may be set to the same value as the second threshold value or the third threshold value.
  • the prediction signal generation unit 111D performs BDOF processing when the search cost at the initial position calculated in step S43 is smaller than the predetermined fifth threshold value (or when it is equal to or less than the predetermined fifth threshold value). Can be determined not to apply.
  • the fifth threshold value may be set to the same value as the first threshold value.
  • the prediction signal generation unit 111D performs BDOF processing when the search cost at the initial position calculated in step S43 is larger than the predetermined sixth threshold value (or when it is equal to or higher than the predetermined sixth threshold value). Can be determined not to apply.
  • the sixth threshold value may be set to the same value as the second threshold value or the third threshold value.
  • the difference value between the search cost at the initial position calculated in step S43 and the minimum search cost in the search with integer pixel accuracy in step S45 is larger than a predetermined seventh threshold value. If it is small (or if it is equal to or less than a predetermined seventh threshold value), it can be determined that the BDOF process is not applied. At this time, the seventh threshold value may be set to the same value as the first threshold value or the fourth threshold value.
  • the prediction signal generation unit 111D may make a judgment by a method based on the result of the refinement processing in the block in which the refinement processing is executed, and a method by the absolute value difference sum in the other blocks.
  • the prediction signal generation unit 111D is obtained from the result of the refinement processing without newly calculating the absolute value difference sum between the prediction signal on the L0 side and the prediction signal on the L1 side as described above. It is also possible to use only the information to determine the suitability of the BDOF process. In this case, the prediction signal generation unit 111D determines in step S53 that the prediction signal generation unit 111D always applies the BDOF processing to the block for which the refinement processing has not been executed.
  • the coding efficiency is improved by using the result of the refinement processing and preventing the BDOF processing from being executed in the block where the effect of the BDOF processing is presumed to be low.
  • the processing time for the entire image can be shortened while maintaining the image.
  • the determination process itself using the result of the above-mentioned refinement process is executed inside the refinement unit 111C, and the information indicating the result is transmitted to the prediction signal generation unit 111D, so that the prediction signal generation unit 111D , It is also possible to determine the suitability of BDOF processing.
  • the motion vector and the value of the search cost before and after the refinement processing are judged, and if the condition that the BDOF processing is not applied is applied, the value is "1".
  • a flag that becomes "0" when the conversion process is not applied is prepared, and the prediction signal generation unit 111D can determine the suitability of the BDOF process by referring to the value of the flag.
  • steps S52 and S53 have been described as different steps here for convenience, it is also possible to simultaneously perform the determinations in the steps S52 and S53.
  • step S55 For the other blocks, this processing procedure proceeds to step S54.
  • step S54 the prediction signal generation unit 111D executes BDOF processing. Since a known method can be used for the BDOF processing itself, detailed description thereof will be omitted. After the BDOF process is performed, the process moves to step S55 and ends the process.
  • the above-mentioned first threshold value to seventh threshold value are defined so as to change their values according to the block size (product of the height and width of the block) or the number of pixels used for calculating the search cost such as SAD in the block. You may.
  • the above-mentioned first threshold value to the seventh threshold value may be defined so as to change their values according to the quantization parameter (QP) of the block. For example, if the cost value tends to increase when the quantization parameter is large, the threshold value can be defined to increase as the quantization parameter increases.
  • QP quantization parameter
  • FIG. 6 is a diagram showing an example of a functional block of the image decoding apparatus 200 according to the present embodiment.
  • the image decoding device 200 includes a decoding unit 210, an inverse conversion / inverse quantization unit 220, an adder 230, an inter-prediction unit 241 and an intra-prediction unit 242, and an in-loop filter processing unit. It has 250 and a frame buffer 260.
  • the decoding unit 210 is configured to decode the coded data generated by the image coding device 100 and decode the coefficient level value.
  • the decoding is the entropy decoding in the reverse procedure of the entropy coding performed by the coding unit 140.
  • the decoding unit 210 may be configured to acquire control data by decoding the encoded data.
  • control data may include size data such as a coded block size, a predicted block size, and a conversion block size.
  • the inverse conversion / inverse quantization unit 220 is configured to perform an inverse conversion process of the coefficient level value output from the decoding unit 210.
  • the inverse conversion / inverse quantization unit 220 may be configured to perform inverse quantization of the coefficient level value prior to the inverse conversion process.
  • the inverse conversion process and the inverse quantization are performed in the reverse procedure of the conversion process and the quantization performed by the conversion / quantization unit 131.
  • the adder 230 adds a prediction signal to the prediction residual signal output from the inverse conversion / inverse quantization unit 220 to generate a pre-filter processing decoding signal, and uses the pre-filter processing decoding signal as an intra prediction unit 242 and an in-loop. It is configured to output to the filter processing unit 250.
  • the pre-filtered decoding signal constitutes a reference block used in the intra prediction unit 242.
  • the inter-prediction unit 241 is configured to generate a prediction signal by inter-prediction (inter-frame prediction).
  • the inter-prediction unit 241 is configured to generate a prediction signal for each prediction block based on the motion vector decoded from the coded data and the reference signal included in the reference frame.
  • the inter-prediction unit 241 is configured to output a prediction signal to the adder 230.
  • the intra prediction unit 242 is configured to generate a prediction signal by intra prediction (in-frame prediction).
  • the intra prediction unit 242 is configured to specify a reference block included in the target frame and generate a prediction signal for each prediction block based on the specified reference block.
  • the intra prediction unit 242 is configured to output a prediction signal to the adder 230.
  • the in-loop filter processing unit 250 performs filter processing on the pre-filter processing decoding signal output from the adder 230, and outputs the post-filter processing decoding signal to the frame buffer 260. It is configured to do.
  • the filtering process is a deblocking filtering process that reduces the distortion that occurs at the boundary portion of a block (encoded block, prediction block, conversion block, or sub-block that divides them).
  • the frame buffer 260 is configured to store reference frames used by the inter-prediction unit 241.
  • the decoded signal after the filter processing constitutes a reference frame used by the inter-prediction unit 241.
  • FIG. 7 is a diagram showing an example of a functional block of the inter-prediction unit 241 according to the present embodiment.
  • the inter-prediction unit 241 includes a motion vector decoding unit 241B, a refinement unit 241C, and a prediction signal generation unit 241D.
  • the inter prediction unit 241 is an example of a prediction unit configured to generate a prediction signal included in a prediction block based on a motion vector.
  • the motion vector decoding unit 241B is configured to acquire the motion vector by decoding the control data received from the image coding device 100.
  • the refinement unit 241C is configured to execute a refinement process for modifying the motion vector, similarly to the refinement unit 111C.
  • the prediction signal generation unit 241D is configured to generate a prediction signal based on a motion vector, similarly to the prediction signal generation unit 111D.
  • the refinement process can improve the coding efficiency when the correlation between the pixel values of the block, the reference block on the L0 side, and the reference block on the L1 side is high.
  • the refinement process is performed in the block having a small correlation in the time direction without transmitting additional information (information about whether or not the refinement process is applied) from the image coding apparatus 100 side. It can be prevented, and a decrease in coding efficiency can be prevented.
  • the difference value between the search cost at the initial position and the search cost corresponding to the point after the search is determined.
  • the search result can be discarded.
  • the refinement units 111C and 241C can be configured to include the norm of the difference vector between the initial position and the search point in the search cost.
  • the motion vector correction amount is unnecessarily increased by regularizing with the norm of the difference vector. It can be prevented from becoming large, and a decrease in coding efficiency can be prevented.
  • the reference block on the L0 side and the reference block on the L1 side are used to determine whether or not the BDOF processing is executed in the prediction signal generation units 111D and 241D.
  • the condition that the degree of similarity (for example, the sum of absolute value errors) is larger than a predetermined threshold value (or the degree of similarity is equal to or more than a predetermined threshold value) can be included.
  • the BDOF process is also an effective process when the correlation between the block, the reference block on the L0 side, and the reference block on the L1 side is high.
  • BDOF processing is performed in a block having a small correlation in the time direction without transmitting additional information (information about whether or not to apply BDOF processing) from the image coding apparatus 100 side. It can be prevented, and a decrease in coding efficiency can be prevented.
  • the result of the above-mentioned refinement processing can be used for the above-mentioned determination. As a result, it is possible to reduce the process of calculating the absolute value difference described above.
  • image coding device 100 and image decoding device 200 may be realized by a program that causes a computer to execute each function (each process).
  • the present invention has been described by taking application to the image coding device 100 and the image decoding device 200 as an example, but the present invention is not limited to such an example, and the image code is not limited to this. The same applies to an image coding / decoding system having each function of the computerization device 100 and the image decoding device 200.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

画像復号装置200は、符号化データから動きベクトルを復号するように構成されている動きベクトル復号部241Bと、動きベクトル復号部241Bによって復号された動きベクトルの値を初期値として動きベクトルの探索を行い、初期探索点での探索コストが予め定めた閾値よりも大きい場合或いは初期探索点での探索コストが閾値以上である場合に、復号された動きベクトルを最終的な動きベクトルとして決定するように構成されている洗練化部241Cとを備える。

Description

画像復号装置、画像復号方法及びプログラム
 本発明は、画像復号装置、画像復号方法及びプログラムに関する。
 従来、復号装置側で取得可能な情報のみから構成される適用条件を満たすブロックにおいて洗練化処理を適用するという技術、すなわち、DMVR(Decoder-side motion vector refinement:復号側動きベクトル洗練化) という技術が知られている(例えば、非特許文献1参照)。
Versatile Video Coding (Draft 5)、JVET-N1001
 しかしながら、例えば、非特許文献1に開示されている技術では、上述の適用条件を満たすブロックでは必ず洗練化処理が実行されるため、時間方向の相関が低いブロックにおいても洗練化処理が実行され、かえって符号化効率が低下してしまう可能性があるという問題点があった。
 そこで、本発明は、上述の課題に鑑みてなされたものであり、時間方向の相関が低いブロックについて洗練化処理を行わないようにすることで、符号化効率の低下を防ぐことができる画像復号装置、画像復号方法及びプログラムを提供することを目的とする。
 本発明の第1の特徴は、画像復号装置であって、符号化データから動きベクトルを復号するように構成されている動きベクトル復号部と、前記動きベクトル復号部によって復号された前記動きベクトルの値を初期値として動きベクトルの探索を行い、初期探索点での探索コストが予め定めた閾値よりも大きい場合或いは前記初期探索点での探索コストが前記閾値以上である場合に、復号された前記動きベクトルを最終的な動きベクトルとして決定するように構成されている洗練化部とを備えることを要旨とする。
 本発明の第2の特徴は、画像復号装置であって、符号化データから動きベクトルを復号するように構成されている動きベクトル復号部と、前記動きベクトル復号部によって復号された前記動きベクトルの値を初期値として動きベクトルの探索を行い、探索点の中での最小探索コストが予め定めた閾値よりも大きい場合或いは前記最小探索コストが前記閾値以上である場合に、復号された前記動きベクトルを最終的な動きベクトルとして決定するように構成されている洗練化部とを備えることを要旨とする。
 本発明の第3の特徴は、画像復号装置であって、符号化データから動きベクトルを復号するように構成されている動きベクトル復号部と、前記動きベクトル復号部によって復号された前記動きベクトルの値を初期値として動きベクトルの探索を行い、初期探索点での探索コストと探索点の中での最小探索コストとの差分値が予め定めた閾値よりも小さい場合或いは前記差分値が前記閾値以下である場合に、復号された前記動きベクトルを最終的な動きベクトルとして決定するように構成されている洗練化部とを備えることを要旨とする。
 本発明の第4の特徴は、画像復号装置であって、符号化データから動きベクトルを復号するように構成されている動きベクトル復号部と、前記動きベクトル復号部によって復号された前記動きベクトルの値を初期値として動きベクトルの探索を行うように構成されている洗練化部と、前記洗練化部から出力される動きベクトルに基づいて予測信号を生成するように構成されている予測信号生成部とを備え、前記予測信号生成部は、第1参照フレーム側のブロックと第2参照フレーム側のブロックとの類似度を表す指標値が予め定めた閾値よりも大きい場合或いは前記指標値が前記閾値以上である場合に、BDOF(Bi-Directional Optical Flow)処理を実行しないと決定するように構成されていることを要旨とする。
 本発明の第5の特徴は、画像復号装置であって、符号化データから動きベクトルを復号するように構成されている動きベクトル復号部と、前記動きベクトル復号部によって復号された前記動きベクトルの値を初期値として動きベクトルの探索を行うように構成されている洗練化部とを備え、前記洗練化部は、探索コストに、初期探索点と探索点との差分ベクトルのノルムを含めるように構成されていることを要旨とする。
 本発明の第6の特徴は、符号化データから動きベクトルを復号する工程と、復号された前記動きベクトルの値を初期値として動きベクトルの探索を行う工程と、初期探索点での探索コストが予め定めた閾値よりも大きい場合或いは前記初期探索点での探索コストが前記閾値以上である場合に、復号された前記動きベクトルを最終的な動きベクトルとして決定する工程とを有することを要旨とする。
 本発明の第7の特徴は、画像復号装置で用いるプログラムであって、コンピュータに、符号化データから動きベクトルを復号する工程と、復号された前記動きベクトルの値を初期値として動きベクトルの探索を行う工程と、初期探索点での探索コストが予め定めた閾値よりも大きい場合或いは前記初期探索点での探索コストが前記閾値以上である場合に、復号された前記動きベクトルを最終的な動きベクトルとして決定する工程とを実行させることを要旨とする。
 本発明によれば、時間方向の相関が低いブロックについて洗練化処理を行わないようにすることで、符号化効率の低下を防ぐことができる画像復号装置、画像復号方法及びプログラムを提供することができる。
一実施形態に係る画像処理システム10の構成の一例を示す図である。 一実施形態に係る画像符号化装置100の機能ブロックの一例を示す図である。 一実施形態に係る画像符号化装置100のインター予測部111の機能ブロックの一例を示す図である。 一実施形態に係る画像符号化装置100のインター予測部111の洗練化部111Cの処理手順の一例を示すフローチャートである。 一実施形態に係る動画像復号装置30のインター予測部111の予測信号生成部111Dの処理手順の一例を示すフローチャートである。 一実施形態に係る画像復号装置200の機能ブロックの一例を示す図である。 一実施形態に係る画像復号装置200のインター予測部241の機能ブロックの一例を示す図である。
 以下、本発明の実施の形態について、図面を参照しながら説明する。なお、以下の実施形態における構成要素は、適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組み合わせを含む様々なバリエーションが可能である。したがって、以下の実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
(第1実施形態)
 以下、図1~図7を参照して、本発明の第1実施形態に係る画像処理システム10について説明する。図1は、本実施形態に係る実施形態に係る画像処理システム10を示す図である。
 図1に示すように、画像処理システム10は、画像符号化装置100及び画像復号装置200を有する。
 画像符号化装置100は、入力画像信号を符号化することによって符号化データを生成するように構成されている。画像復号装置200は、符号化データを復号することによって出力画像信号を生成するように構成されている。
 ここで、かかる符号化データは、画像符号化装置100から画像復号装置200に対して伝送路を介して送信されてもよい。また、符号化データは、記憶媒体に格納された上で、画像符号化装置100から画像復号装置200に提供されてもよい。
(画像符号化装置100)
 以下、図2を参照して、本実施形態に係る画像符号化装置100について説明する。図2は、本実施形態に係る画像符号化装置100の機能ブロックの一例について示す図である。
 図2に示すように、画像符号化装置100は、インター予測部111と、イントラ予測部112と、減算器121と、加算器122と、変換・量子化部131と、逆変換・逆量子化部132と、符号化部140と、インループフィルタ処理部150と、フレームバッファ160とを有する。
 インター予測部111は、インター予測(フレーム間予測)によって予測信号を生成するように構成されている。
 具体的には、インター予測部111は、符号化対象のフレーム(以下、対象フレーム)とフレームバッファ160に格納される参照フレームとの比較によって、参照フレームに含まれる参照ブロックを特定し、特定された参照ブロックに対する動きベクトルを決定するように構成されている。
 また、インター予測部111は、参照ブロック及び動きベクトルに基づいて予測ブロックに含まれる予測信号を予測ブロック毎に生成するように構成されている。インター予測部111は、予測信号を減算器121及び加算器122に出力するように構成されている。ここで、参照フレームは、対象フレームとは異なるフレームである。
 イントラ予測部112は、イントラ予測(フレーム内予測)によって予測信号を生成するように構成されている。
 具体的には、イントラ予測部112は、対象フレームに含まれる参照ブロックを特定し、特定された参照ブロックに基づいて予測信号を予測ブロック毎に生成するように構成されている。また、イントラ予測部112は、予測信号を減算器121及び加算器122に出力するように構成されている。
 ここで、参照ブロックは、予測対象のブロック(以下、対象ブロック)について参照されるブロックである。例えば、参照ブロックは、対象ブロックに隣接するブロックである。
 減算器121は、入力画像信号から予測信号を減算し、予測残差信号を変換・量子化部131に出力するように構成されている。ここで、減算器121は、イントラ予測又はインター予測によって生成される予測信号と入力画像信号との差分である予測残差信号を生成するように構成されている。
 加算器122は、逆変換・逆量子化部132から出力される予測残差信号に予測信号を加算してフィルタ処理前復号信号を生成し、かかるフィルタ処理前復号信号をイントラ予測部112及びインループフィルタ処理部150に出力するように構成されている。
 ここで、フィルタ処理前復号信号は、イントラ予測部112で用いる参照ブロックを構成する。
 変換・量子化部131は、予測残差信号の変換処理を行うとともに、係数レベル値を取得するように構成されている。さらに、変換・量子化部131は、係数レベル値の量子化を行うように構成されていてもよい。
 ここで、変換処理は、予測残差信号を周波数成分信号に変換する処理である。かかる変換処理では、離散コサイン変換(DCT;Discrete Cosine Transform)に対応する基底パターン(変換行列)が用いられてもよく、離散サイン変換(DST;Discrete Sine Transform)に対応する基底パターン(変換行列)が用いられてもよい。
 逆変換・逆量子化部132は、変換・量子化部131から出力される係数レベル値の逆変換処理を行うように構成されている。ここで、逆変換・逆量子化部132は、逆変換処理に先立って、係数レベル値の逆量子化を行うように構成されていてもよい。
 ここで、逆変換処理及び逆量子化は、変換・量子化部131で行われる変換処理及び量子化とは逆の手順で行われる。
 符号化部140は、変換・量子化部131から出力された係数レベル値を符号化し、符号化データを出力するように構成されている。
 ここで、例えば、符号化は、係数レベル値の発生確率に基づいて異なる長さの符号を割り当てるエントロピー符号化である。
 また、符号化部140は、係数レベル値に加えて、復号処理で用いる制御データを符号化するように構成されている。
 ここで、制御データは、符号化ブロック(CU:Coding Unit)サイズ、予測ブロック(PU:Prediction Unit)サイズ、変換ブロック(TU:Transform Unit)サイズ等のサイズデータを含んでもよい。
 インループフィルタ処理部150は、加算器122から出力されるフィルタ処理前復号信号に対してフィルタ処理を行うとともに、フィルタ処理後復号信号をフレームバッファ160に出力するように構成されている。
 ここで、例えば、フィルタ処理は、ブロック(符号化ブロック、予測ブロック又は変換ブロック)の境界部分で生じる歪みを減少するデブロッキングフィルタ処理である。
 フレームバッファ160は、インター予測部111で用いる参照フレームを蓄積するように構成されている。
 ここで、フィルタ処理後復号信号は、インター予測部111で用いる参照フレームを構成する。
 (インター予測部111)
 以下、図3を参照して、本実施形態に係る画像符号化装置100のインター予測部111について説明する。図3は、本実施形態に係る画像符号化装置100のインター予測部111の機能ブロックの一例について示す図である。
 図3に示すように、インター予測部111は、動きベクトル探索部111Aと、動きベクトル符号化部111Bと、洗練化部111Cと、予測信号生成部111Dとを有する。
 インター予測部111は、動きベクトルに基づいて予測ブロックに含まれる予測信号を生成するように構成されている予測部の一例である。
 動きベクトル探索部111Aは、対象フレームと参照フレームとの比較によって、参照フレームに含まれる参照ブロックを特定し、特定された参照ブロックに対する動きベクトルを探索するように構成されている。
 また、上述の探索を複数の参照フレーム候補に対して行い、当該予測ブロックで予測に用いる参照フレーム及び動きベクトルを決定する。参照フレーム及び動きベクトルは、一つのブロックに対して最大二つずつ用いることができる。一つのブロックに対して参照フレーム及び動きベクトルを一組のみ用いる場合を片予測と呼び、参照フレーム及び動きベクトルを二組用いる場合を双予測と呼ぶ。以降、一組目をL0と呼び、二組目をL1と呼ぶ。
 更に、動きベクトル探索部111Aは、参照フレーム及び動きベクトルの符号化方法を決定するように構成されている。符号化方法には、参照フレーム及び動きベクトルの情報をそれぞれ伝送する通常の方法に加え、後述するマージモード等がある。
 なお、動きベクトルの探索方法、参照フレームの決定方法及び参照フレーム及び動きベクトルの符号化方法の決定方法については、既知の手法を採用することが可能であるため、その詳細については省略する。
 動きベクトル符号化部111Bは、動きベクトル探索部111Aで決定した参照フレームと動きベクトルの情報を、同じく動きベクトル探索部111Aで決定した符号化方法を用いて符号化するように構成されている。
 当該ブロックの符号化方法がマージモードの場合、画像符号化装置100側において、初めに、当該ブロックに対するマージリストが作成される。ここで、マージリストは、参照フレームと動きベクトルとの組み合わせが複数列挙されたリストである。
 各組み合わせには、インデックスが振られており、画像符号化装置100は、参照フレーム及び動きベクトルの情報を個別に符号化する代わりに、かかるインデックスのみを符号化し、画像復号装置200に伝送する。画像符号化装置100側と画像復号装置200側とでマージリストの作成方法を共通化しておくことで、画像復号装置200側では、かかるインデックスに係る情報のみから参照フレーム及び動きベクトルの情報を復号することができる。
 なお、マージリストの作成方法については、既知の手法を採用することが可能であるため、その詳細については省略する。
 動きベクトル情報の符号化については、初めに、符号化対象の動きベクトルの予測値である予測動きベクトルを生成し、かかる予測動きベクトルと実際に符号化したい動きベクトルとの差分値である差分動きベクトルを符号化する。
 洗練化部111Cは、動きベクトル符号化部111Bで符号化された動きベクトルを修正する洗練化処理(例えば、DMVR)を行うように構成されている。
 具体的には、洗練化部111Cは、動きベクトル符号化部111Bで符号化された動きベクトルによって特定される参照位置を基準として探索範囲を設定し、探索範囲の中から所定コストが最も小さい修正参照位置を特定し、修正参照位置に基づいて動きベクトルを修正する洗練化処理を行うように構成されている。
 図4は、洗練化部111Cの処理手順の一例を示すフローチャートである。
 図4に示すように、ステップS41において、洗練化部111Cは、洗練化処理を適用するための所定条件が満足されているかどうかについて判定する。かかる所定条件が全て満足されている場合に、本処理手順は、ステップS42へ進む。一方、かかる所定条件のどれか一つでも満足されていない場合は、本処理手順は、ステップS48へ進み、洗練化処理を終了する。
 ここで、所定条件は、当該ブロックが双予測を行うブロックであるという条件を含む。さらに、所定条件は、動きベクトルがマージモードで符号化されているという条件を含んでもよい。
 ステップS42において、洗練化部111Cは、動きベクトル符号化部111Bで符号化された動きベクトル及び参照フレームの情報に基づいて、探索用画像を生成する。
 ここで、動きベクトルが非整数画素位置を指していた場合は、洗練化部111Cは、参照フレームの画素値にフィルタを適用して非整数画素位置の画素を内挿する。この時、洗練化部111Cは、後述する予測信号生成部111Dで用いる内挿フィルタより、少ないタップ数の内挿フィルタを用いることで、演算量を削減することができる。例えば、洗練化部111Cは、バイリニア補間によって非整数画素位置の画素値を内挿することができる。
 ステップS43において、洗練化部111Cは、ステップS42で生成した探索用画像を用いて、初期位置での探索コストを算出する。
 ここで、初期位置は、動きベクトル符号化部111Bで符号化された動きベクトルが指し示す位置である。また、探索コストは、上述の動きベクトルが指し示すL0側(第1参照フレーム側)の参照ブロックとL1側(第2参照フレーム側)の参照ブロックとの類似度の指標値であり、例えば、画素値同士の絶対値誤差和や二乗誤差和を用いることができる。
 ステップS44において、洗練化部111Cは、ステップS43で算出した初期位置での探索コストを入力として、当該ブロックの洗練化処理を打ち切るための終了条件が満足されているか否かについて判定する。かかる終了条件が全て満足されている場合に、本処理手順は、ステップS45へ進む。一方、かかる終了条件のどれか一つでも満足されていない場合は、本処理手順は、ステップS48へ進み、洗練化処理を終了する。
 ここで、ステップS44における終了条件(打ち切り条件)には、例えば、上述の初期位置での探索コストが予め定めた第1閾値より小さいこと(或いは、上述の初期位置での探索コストが予め定めた第1閾値以下であること)という条件を含めることができる。また、ステップS44における終了条件(打ち切り条件)には、例えば、上述の初期位置での探索コストが予め定めた第2閾値より大きいこと(或いは、上述の初期位置での探索コストが予め定めた第1閾値以上であること)という条件を含めることができる。
 ステップS45において、洗練化部111Cは、ステップS42で生成した探索用画像を用いて、整数画素精度での探索を行う。
 ここで、整数画素精度は、動きベクトル符号化部111Bで符号化された動きベクトルを基準として、整数画素間隔となる点のみを探索することを意味する。
 洗練化部111Cは、ステップS45の探索によって、整数画素間隔位置での修正後の動きベクトルを決定する。ここで、かかる探索の方法としては、既知の手法を用いることができる。
 例えば、洗練化部111Cは、L0側及びL1側の差分動きベクトルが符号のみを反転した組み合わせとなる点のみを探索するという方法で探索することもできる。
 ここでは、各探索位置における探索コストが最も小さくなった探索点を、整数画素間隔位置での修正後の動きベクトルする。探索コストとしては、上述の通り、絶対値差分和や二乗誤差和等の指標を用いることができる。この時、洗練化部111Cは、上述の絶対値差分和等のブロック間の類似度を評価する指標に、修正後の動きベクトルと初期位置の動きベクトルとの差分ベクトルのLpノルムを加算したものを探索コストとしてもよい。
 具体的には、洗練化部111Cは、例えば、絶対値差分和と差分ベクトルのL1ノルムとの和を探索コストとしてもよい。また、洗練化部111Cは、絶対値差分和にL1ノルムを加算する際に、予め定めた比率で重み付けをしてから加算してもよい。例えば、洗練化部111Cは、L1ノルムを2倍した値を絶対値差分和に加えてもよい。この時、倍率が2のべき乗であれば、ビットシフトによって等価な処理を実現できる。なお、ステップS45における探索の結果、探索前の動きベクトルと同じ値になる可能性もある。
 ステップS46において、洗練化部111Cは、ステップS45で決定した整数画素間隔位置での修正後動きベクトルに対応する探索コストを用いて、当該ブロックでの洗練化処理を打ち切るための終了条件が満足されているか否かについて判定する。かかる終了条件が全て満足されている場合に、本処理手順は、ステップS47へ進む。一方、かかる終了条件のどれか一つでも満足されていない場合は、本処理手順は、ステップS48へ進み、洗練化処理を終了する。
 ここで、ステップS46における終了条件(打ち切り条件)には、例えば、上述の探索コストが予め定めた第3閾値より大きいこと(或いは、上述の探索コストが予め定めた第3閾値以上であること)という条件を含めることができる。この時、第3閾値は、上述の第2閾値と同じ値に設定されてもよい。
 また、洗練化部111Cは、かかる終了条件が満足されていると判定した場合に、ステップS45での探索結果を破棄して、洗練化処理を行わなかった場合と同じ動きベクトル(すなわち、動きベクトル符号化部111Bで符号化された動きベクトル)を、当該ブロックの最終的な動きベクトルとしてもよい。
 また、ステップS46における終了条件(打ち切り条件)には、例えば、ステップS43で算出した初期位置での探索コストと、ステップS45で算出した修正後動きベクトルに対応する探索コストとの差分値が、予め定めた第4閾値より小さいこと(或いは、上述の差分値が予め定めた第4閾値以下であること)という条件を含んでもよい。この時、第4閾値は、第1の閾値と同じ値に設定されてもよい。
 また、洗練化部111Cは、かかる終了条件が満足されていると判定した場合に、ステップS45での探索結果を破棄して、洗練化処理を行わなかった場合と同じ動きベクトルを、当該ブロックの最終的な動きベクトルとしてもよい。
 ステップS47において、洗練化部111Cは、ステップS43で決定した整数画素精度での修正後の動きベクトルを初期値として、非整数画素精度での動きベクトルの探索を行う。ここで、動きベクトルの探索方法としては、既知の手法を用いることができる。
 また、洗練化部111Cは、実際に探索を行わずに、ステップS43の結果を入力として、パラボラフィッティング等のパラメトリックなモデルを用いて非整数画素精度での動きベクトルを決定することもできる。
 洗練化部111Cは、ステップS47において、非整数画素精度での修正後の動きベクトルを決定した後、ステップS48へ移り洗練化処理を終了する。ここでは、便宜上、非整数画素精度の修正後動きベクトルという表現を用いたが、ステップS47の探索結果により、結果的に、ステップS45で求めた整数画素精度の動きベクトルと同じ値になる可能性もある。
 以上では、便宜上ステップS43とステップS45とを別のステップとして説明したが、両者の処理は、同一のステップ内で実行されてもよい。例えば、本処理手順は、ステップS42の直後にステップS45に移り、洗練化部111Cは、ステップS45において、初期位置での探索コスト及び画素間隔位置での修正後動きベクトルに対応する探索コストの両方を算出することができる。その後、本処理手順は、ステップS46に移り、洗練化部111Cは、ステップS44として説明した条件及びステップS46として説明した条件の中の少なくともいずれか一つを勘案して、終了条件が満たされているか否かについての判定を行うことができる。
 また、例えば、ステップS48において、洗練化部111Cは、初期位置での探索コストや画素間隔位置での修正後動きベクトルに対応する探索コストを用いて、探索結果を破棄するかどうか決定することもできる。
 例えば、初期位置での探索コストが、第2閾値より大きい場合(或いは、第2閾値以上である場合)、洗練化部111Cは、かかる探索結果を破棄して、洗練化処理を行わなかった場合と同じ動きベクトル(すなわち、動きベクトル符号化部111Bで符号化された動きベクトル)を、当該ブロックの最終的な動きベクトルとしてもよい。
 また、例えば、整数画素間隔位置での修正後動きベクトルに対応する探索コストが、第3閾値より大きい場合(或いは、第3閾値以上である場合)、洗練化部111Cは、かかる探索結果を破棄して、洗練化処理を行わなかった場合と同じ動きベクトルを、当該ブロックの最終的な動きベクトルとしてもよい。
 さらに、例えば、初期位置での探索コストと整数画素間隔位置での修正後動きベクトルに対応する探索コストとの差分値が、第4閾値より小さかった場合(或いは、第4閾値以下である場合)、洗練化部111Cは、かかる探索結果を破棄して、洗練化処理を行わなかった場合と同じ動きベクトルを、当該ブロックの最終的な動きベクトルとしてもよい。
 以上では、ステップS41~S48を全て含む構成について説明したが、ステップS44及びステップS46は、必ずしも構成に含まれている必要はない。
 洗練化部111Cは、予め定めた閾値より大きなブロックを、小さなサブブロックに分割してサブブロックごとに洗練化処理を実行してもよい。例えば、洗練化部111Cは、洗練化処理の実行単位を16×16画素と設定しておき、ブロックの水平方向又は垂直方向のサイズが16画素より大きい場合、それぞれ16画素以下となるように分割することができる。この時、洗練化処理の基準となる動きベクトルとしては、同一ブロック内の全てのサブブロックについて、動きベクトル符号化部111Bで符号化された当該ブロックの動きベクトルを用いる。
 サブブロックごとに処理を行う場合、洗練化部111Cは、図4の全ての手順をサブブロックごとに実行してもよい。また、洗練化部111Cは、図4の処理の一部のみをサブブロックごとに処理してもよい。具体的には、洗練化部111Cは、図4のステップS41及びS42については、ブロック毎に処理を行い、ステップS43からS48について、サブブロックごとに処理してもよい。
 予測信号生成部111Dは、洗練化部111Cから出力される修正された動きベクトルに基づいて予測信号を生成するように構成されている。
 ここで、後述するように、予測信号生成部111Dは、上述の洗練化処理の過程で算出される情報(例えば、探索コスト)に基づいて、ブロック毎にBDOF(Bi-Directional Optical Flow)処理を行うるか否かについて判定するように構成されている。
 具体的には、予測信号生成部111Dは、動きベクトルが修正されない場合には、動きベクトル符号化部111Bで符号化された動きベクトルに基づいて予測信号を生成するように構成されている。一方で、予測信号生成部111Dは、動きベクトルが修正される場合には、洗練化部111Cで修正された動きベクトルに基づいて予測信号を生成するように構成されている。
 図5は、予測信号生成部111Dの処理手順の一例を示すフローチャートである。ここで、洗練化部111Cにてサブブロック単位で洗練化処理が行われた場合、予測信号生成部111Dの処理もサブブロック単位で実行される。その場合、以下の説明のブロックという単語は、適宜、サブブロックに読み替えることができる。
 また、洗練化部111Cにて洗練化処理が行われなかったブロックについても、予め定めた閾値よりブロックサイズが大きな場合、小さなサブブロックに分割してサブブロックごとに洗練化処理を実行してもよい。例えば、洗練化部111Cと同様に、予測信号生成処理の実行単位を16×16画素と設定しておき、ブロックの水平方向又は垂直方向のサイズが16画素より大きい場合、それぞれ16画素以下となるように分割することができる。この場合も、以下の説明のブロックという単語は、適宜、サブブロックに読み替えることができる。
 図5に示すように、ステップS51において、予測信号生成部111Dは、予測信号を生成する。
 具体的には、予測信号生成部111Dは、動きベクトル符号化部111Bで符号化された動きベクトル或いは洗練化部111Cで符号化された動きベクトルを入力として、かかる動きベクトルが指す位置が非整数画素位置の場合は、参照フレームの画素値にフィルタを適用して非整数画素位置の画素を内挿する。ここで、具体的なフィルタについては、非特許文献1で開示されている最大8タップの水平垂直可分型のフィルタを適用することができる。
 予測信号生成部111Dは、当該ブロックが双予測を行うブロックである場合は、一つ目(以後、L0と呼ぶ)の参照フレーム及び動きベクトルによる予測信号及び二つ目(以後、L1と呼ぶ)の参照フレーム及び動きベクトルによる予測信号の両方を生成する。
 ステップS52において、予測信号生成部111Dは、後述するBDOF処理の適用条件が満足されているかどうかについて確認する。
 かかる適用条件としては、非特許文献1に記載の条件を適用できる。適用条件は、少なくとも当該ブロックが双予測を行うブロックであることという条件を含む。また、適用条件は、非特許文献1に記載のように、当該ブロックの動きベクトルがSymmetric MVDモードで符号化されていないことという条件を含んでもよい。
 適用条件が満足されていない場合、本処理手順は、ステップS55に移って処理を終了する。この時、予測信号生成部111Dは、ステップS51で生成した予測信号を最終的な予測信号として出力する。
 一方、適用条件が全て満足される場合、本処理手順は、ステップS53へ移る。ステップS53において、本処理手順は、適用条件を満足しているブロックについて、実際に、ステップS54のBDOF処理を実行するかどうかについて判定する。
 以下では、探索コストとして絶対値差分和を用いた場合を例に説明するが、他の指標を探索コストに用いることもできる。例えば、局所的な平均値を除去した後の信号同士の絶対値差分和や二乗誤差和等、画像信号同士の類似性を判断するための指標値であれば、かかる探索コストとして用いることができる。
 例えば、予測信号生成部111Dは、L0の予測信号とL1の予測信号との絶対値差分和を算出し、算出された値が予め定めた閾値よりも小さい場合(或いは、算出された値が予め定めた閾値以下であった場合)は、BDOF処理を行わないといったような判定を行う。
 また、例えば、予測信号生成部111Dは、L0の予測信号とL1の予測信号との絶対値差分和を算出し、算出された値が予め定めた閾値より大きい場合(或いは、算出された値が予め定めた閾値以上であった場合)は、BDOF処理を行わないといったような判定を行うこともできる。
 ここで、予測信号生成部111Dは、洗練化部111Cで洗練化処理を実行したブロックについては、BDOF処理の適用の有無の判断に、洗練化処理の結果を用いることもできる。
 予測信号生成部111Dは、上述の洗練化処理の過程で算出された探索コスト(例えば、L0側の参照ブロックの画素値とL1側の参照ブロックの画素値との絶対値差分和)を用いて、BDOF処理を適用するか否かを判定することもできる。
 例えば、予測信号生成部111Dは、ステップS45における整数画素精度での探索において、上述の探索コスト(絶対値差分和)が最小となる探索点の絶対値差分和が、予め定めた第5閾値よりも小さい場合(或いは、予め定めた第5閾値以下である場合)に、BDOF処理を適用しないという判定をすることができる。この時、第5閾値は、第1閾値と同じ値に設定されてもよい。
 例えば、予測信号生成部111Dは、ステップS45における整数画素精度での探索において、上述の探索コスト(絶対値差分和)が最小となる探索点の絶対値差分和が、予め定めた第6閾値よりも大きい場合(或いは、予め定めた第6閾値以上である場合)に、BDOF処理を適用しないという判定をすることができる。この時、第6閾値は、第2閾値又は第3閾値と同じ値に設定されてもよい。
 例えば、予測信号生成部111Dは、ステップS43で算出した初期位置での探索コストが、予め定めた第5閾値よりも小さい場合(或いは、予め定めた第5閾値以下である場合)に、BDOF処理を適用しないという判定をすることができる。この時、第5閾値は、第1閾値と同じ値に設定されてもよい。
 例えば、予測信号生成部111Dは、ステップS43で算出した初期位置での探索コストが、予め定めた第6閾値よりも大きい場合(或いは、予め定めた第6閾値以上である場合)に、BDOF処理を適用しないという判定をすることができる。この時、第6閾値は、第2閾値又は第3閾値と同じ値に設定されてもよい。
 例えば、予測信号生成部111Dは、ステップS43で算出した初期位置での探索コストと、ステップS45における整数画素精度での探索における最小の探索コストとの差分値が、予め定めた第7閾値よりも小さい場合(或いは、予め定めた第7閾値以下である場合)に、BDOF処理を適用しないという判定をすることができる。この時、第7閾値は、第1閾値又は第4閾値と同じ値に設定されてもよい。
 また、予測信号生成部111Dは、洗練化処理が実行されたブロックでは洗練化処理の結果による方法、それ以外のブロックでは絶対値差分和による方法で、それぞれ判断してもよい。
 また、予測信号生成部111Dは、上述のように、新たにL0側の予測信号とL1側の予測信号との絶対値差分和を算出する処理について行わずに、洗練化処理の結果から得られる情報のみを用いて、BDOF処理の適否を判定するという構成をとることもできる。この場合、予測信号生成部111Dは、ステップS53においては、予測信号生成部111Dは、洗練化処理が実行されていないブロックについては常にBDOF処理を適用すると判断することになる。
 かかる構成によれば、この場合、予測信号生成部111Dにおける絶対値差分和の算出処理を行う必要がないため、ハードウェア実装の観点で処理量及び処理遅延を削減することができる。
 また、かかる構成によれば、ソフトウェア実装の観点において、洗練化処理の結果を用いて、BDOF処理の効果が低いと推測されるブロックにおいてBDOF処理を実行しないようにすることで、符号化効率は維持しつつ、画像全体での処理時間を短縮することができる。
 また、上述の洗練化処理の結果を用いる判定処理自体は、洗練化部111Cの内部で実行され、その結果を示す情報が予測信号生成部111Dへ伝達されることで、予測信号生成部111Dは、BDOF処理の適否を判定することもできる。
 例えば、上述のように、洗練化処理前後の動きベクトルや探索コストの値を判定し、BDOF処理を適用しない条件に当てはまる場合は「1」となり、BDOF処理を適用しない条件に当てはまらない場合及び洗練化処理が適用されなかった場合には「0」となるようなフラグを用意しておき、予測信号生成部111Dは、かかるフラグの値を参照してBDOF処理の適否を判定することができる。
 また、ここでは、便宜上、ステップS52及びステップS53を異なるステップとして説明したが、ステップS52及びステップS53における判定を同時に行うことも可能である。
 上述のような判定において、BDOF処理を適用しないと判定したブロックについては、本処理手順は、ステップS55へ移る。それ以外のブロックについては、本処理手順は、ステップS54へ移る。
 ステップS54において、予測信号生成部111Dは、BDOF処理を実行する。BDOF処理自体は、既知の手法を用いることができるため、詳細についての説明は省略する。BDOF処理が実施された後、本処理手順は、ステップS55に移り処理を終了する。
 上述の第1閾値~第7閾値は、それぞれブロックサイズ(ブロックの高さと幅の積)または当該ブロック内でSADなどの探索コスト算出に用いる画素数に応じて値を変化させるように定義されていてもよい。
 上述の第1閾値~第7閾値は、それぞれ当該ブロックの量子化パラメータ(QP)に応じて値を変化させるように定義されていてもよい。例えば、量子化パラメータが大きいときにコスト値も大きくなりやすい傾向がある場合は、量子化パラメータが大きくなるにつれて閾値も大きくなるように定義することができる。
(画像復号装置200)
 以下、図6を参照して、本実施形態に係る画像復号装置200について説明する。図6は、本実施形態に係る画像復号装置200の機能ブロックの一例について示す図である。
 図6に示すように、画像復号装置200は、復号部210と、逆変換・逆量子化部220と、加算器230と、インター予測部241と、イントラ予測部242と、インループフィルタ処理部250と、フレームバッファ260とを有する。
 復号部210は、画像符号化装置100によって生成される符号化データを復号し、係数レベル値を復号するように構成されている。
 ここで、例えば、復号は、符号化部140で行われるエントロピー符号化とは逆の手順のエントロピー復号である。
 また、復号部210は、符号化データの復号処理によって制御データを取得するように構成されていてもよい。
 なお、上述したように、制御データは、符号化ブロックサイズ、予測ブロックサイズ、変換ブロックサイズ等のサイズデータを含んでもよい。
 逆変換・逆量子化部220は、復号部210から出力される係数レベル値の逆変換処理を行うように構成されている。ここで、逆変換・逆量子化部220は、逆変換処理に先立って、係数レベル値の逆量子化を行うように構成されていてもよい。
 ここで、逆変換処理及び逆量子化は、変換・量子化部131で行われる変換処理及び量子化とは逆の手順で行われる。
 加算器230は、逆変換・逆量子化部220から出力される予測残差信号に予測信号を加算してフィルタ処理前復号信号を生成し、フィルタ処理前復号信号をイントラ予測部242及びインループフィルタ処理部250に出力するように構成されている。
 ここで、フィルタ処理前復号信号は、イントラ予測部242で用いる参照ブロックを構成する。
 インター予測部241は、インター予測部111と同様に、インター予測(フレーム間予測)によって予測信号を生成するように構成されている。
 具体的には、インター予測部241は、符号化データから復号した動きベクトルと参照フレームに含まれる参照信号とに基づいて予測信号を予測ブロック毎に生成するように構成されている。インター予測部241は、予測信号を加算器230に出力するように構成されている。
 イントラ予測部242は、イントラ予測部112と同様に、イントラ予測(フレーム内予測)によって予測信号を生成するように構成されている。
 具体的には、イントラ予測部242は、対象フレームに含まれる参照ブロックを特定し、特定された参照ブロックに基づいて予測信号を予測ブロック毎に生成するように構成されている。イントラ予測部242は、予測信号を加算器230に出力するように構成されている。
 インループフィルタ処理部250は、インループフィルタ処理部150と同様に、加算器230から出力されるフィルタ処理前復号信号に対してフィルタ処理を行うとともに、フィルタ処理後復号信号をフレームバッファ260に出力するように構成されている。
 ここで、例えば、フィルタ処理は、ブロック(符号化ブロック、予測ブロック、変換ブロック、あるいはそれらを分割したサブブロック)の境界部分で生じる歪みを減少するデブロッキングフィルタ処理である。
 フレームバッファ260は、フレームバッファ160と同様に、インター予測部241で用いる参照フレームを蓄積するように構成されている。
 ここで、フィルタ処理後復号信号は、インター予測部241で用いる参照フレームを構成する。
(インター予測部241)
 以下、図7を参照して、本実施形態に係るインター予測部241について説明する。図7は、本実施形態に係るインター予測部241の機能ブロックの一例について示す図である。
 図7に示すように、インター予測部241は、動きベクトル復号部241Bと、洗練化部241Cと、予測信号生成部241Dとを有する。
 インター予測部241は、動きベクトルに基づいて予測ブロックに含まれる予測信号を生成するように構成されている予測部の一例である。
 動きベクトル復号部241Bは、画像符号化装置100から受信する制御データの復号によって動きベクトルを取得するように構成されている。
 洗練化部241Cは、洗練化部111Cと同様に、動きベクトルを修正する洗練化処理を実行するように構成されている。
 予測信号生成部241Dは、予測信号生成部111Dと同様に、動きベクトルに基づいて予測信号を生成するように構成されている。
 本実施形態に係る画像符号化装置100及び画像復号装置200によれば、洗練化部111C、241Cにおいて、探索コストが予め定めた閾値よりも大きい場合(或いは、探索コストが予め定めた閾値以上である場合)に、探索結果を破棄する構成をとることができる。ここで、洗練化処理は、当該ブロックと、L0側の参照ブロックと、L1側の参照ブロック間の画素値の相関がそれぞれ高い場合に、符号化効率を改善することができる。上述の構成とすることで、画像符号化装置100側から付加情報(洗練化処理を適用するか否かについての情報)を伝送することなく、時間方向の相関が小さいブロックにおいて洗練化処理を行わないようにすることができ、符号化効率の低下を防ぐことができる。
 本実施形態に係る画像符号化装置100及び画像復号装置200によれば、洗練化部111C、241Cにおいて、初期位置での探索コストと、探索後の点に対応する探索コストとの差分値が、予め定めた閾値よりも小さい場合(或いは、予め定めた閾値以下である場合)に、探索結果を破棄する構成をとることができる。これにより、ノイズ等の影響で、偶然、初期位置よりもわずかに小さな探索コストが得られた点に、不必要に動きベクトルを修正することを避けることができ、符号化効率の低下を防ぐことができる。
 本実施形態に係る画像符号化装置100及び画像復号装置200によれば、洗練化部111C、241Cにおいて、初期位置と探索点との差分ベクトルのノルムを探索コストに含める構成をとることができる。この場合、絶対値誤差和等の類似度を評価する指標値が、各探索点でほぼ同じ値になった場合、差分ベクトルのノルムで正則化することで、不必要に動きベクトルの修正量が大きくならないようにすることができ、符号化効率の低下を防ぐことができる。
 本実施形態に係る画像符号化装置100及び画像復号装置200によれば、予測信号生成部111D、241DにおいてBDOF処理を実行するか否かの判定に、L0側の参照ブロックとL1側の参照ブロックの類似度(例えば、絶対値誤差和)が予め定めた閾値よりも大きいこと(或いは、かかる類似度が予め定めた閾値以上であること)という条件を含めることができる。BDOF処理も、洗練化処理と同様に、当該ブロックとL0側の参照ブロックとL1側の参照ブロックとの相関が高い場合に有効な処理である。よって、上述の構成とすることで、画像符号化装置100側から付加情報(BDOF処理を適用するか否かについての情報)を伝送することなく、時間方向の相関が小さいブロックにおいてBDOF処理を行わないようにすることができ、符号化効率の低下を防ぐことができる。また、上述の判定に、上述の洗練化処理の結果を用いることができる。これにより、上述の絶対値差分を算出する処理を削減することができる。
 また、上述の画像符号化装置100及び画像復号装置200は、コンピュータに各機能(各工程)を実行させるプログラムであって実現されていてもよい。
 なお、上記の各実施形態では、本発明を画像符号化装置100及び画像復号装置200への適用を例にして説明したが、本発明は、かかる例のみに限定されるものではなく、画像符号化装置100及び画像復号装置200の各機能を備えた画像符号化/復号システムにも同様に適用できる。
 本発明によれば、時間方向の相関が低いブロックについて洗練化処理を行わないようにすることで、符号化効率の低下を防ぐことができる。
10…画像処理システム
100…画像符号化装置
111、241…インター予測部
111A…動きベクトル探索部
111B…動きベクトル符号化部
111C、241C…洗練化部
111D、241D…予測信号生成部
112、242…イントラ予測部
121…減算器
122、230…加算器
131…変換・量子化部
132、220…逆変換・逆量子化部
140…符号化部
150、250…インループフィルタ処理部
160、260…フレームバッファ
200…画像復号装置
210…復号部
241B…動きベクトル復号部

Claims (3)

  1.  画像復号装置であって、
     符号化データから動きベクトルを復号するように構成されている動きベクトル復号部と、
     前記動きベクトル復号部によって復号された前記動きベクトルの値を初期値として動きベクトルの探索を行い、初期探索点での探索コストと整数画素間隔位置での探索における最小探索コストとの差分値が予め定めた閾値よりも小さい場合或いは前記差分値が前記閾値以下である場合に、前記整数画素間隔位置での探索結果を破棄するように構成されている洗練化部とを備えることを特徴とする画像復号装置。
  2.  符号化データから動きベクトルを復号する工程と、
     復号された前記動きベクトルの値を初期値として動きベクトルの探索を行う工程と、
     初期探索点での探索コストと整数画素間隔位置での探索における最小探索コストとの差分値が予め定めた閾値よりも小さい場合或いは前記差分値が前記閾値以下である場合に、前記整数画素間隔位置での探索結果を破棄する工程とを有することを特徴とする画像復号方法。
  3.  画像復号装置で用いるプログラムであって、コンピュータに、
     符号化データから動きベクトルを復号する工程と、
     復号された前記動きベクトルの値を初期値として動きベクトルの探索を行う工程と、
     初期探索点での探索コストと整数画素間隔位置での探索における最小探索コストとの差分値が予め定めた閾値よりも小さい場合或いは前記差分値が前記閾値以下である場合に、前記整数画素間隔位置での探索結果を破棄するする工程とを実行させることを特徴とするプログラム。
PCT/JP2020/022974 2019-06-20 2020-06-11 画像復号装置、画像復号方法及びプログラム WO2020255846A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202080040389.6A CN113906741A (zh) 2019-06-20 2020-06-11 图像解码装置、图像解码方法及程序
EP20827343.3A EP3989570A4 (en) 2019-06-20 2020-06-11 PICTURE DECODING DEVICE, PICTURE DECODING METHOD AND PROGRAM
US17/615,473 US20220312024A1 (en) 2019-06-20 2020-06-11 Image decoding device, image decoding method, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019-114959 2019-06-20
JP2019114959A JP6835337B2 (ja) 2019-06-20 2019-06-20 画像復号装置、画像復号方法及びプログラム

Publications (1)

Publication Number Publication Date
WO2020255846A1 true WO2020255846A1 (ja) 2020-12-24

Family

ID=73994285

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/022974 WO2020255846A1 (ja) 2019-06-20 2020-06-11 画像復号装置、画像復号方法及びプログラム

Country Status (5)

Country Link
US (1) US20220312024A1 (ja)
EP (1) EP3989570A4 (ja)
JP (1) JP6835337B2 (ja)
CN (1) CN113906741A (ja)
WO (1) WO2020255846A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07274181A (ja) * 1994-03-31 1995-10-20 Mitsubishi Electric Corp 映像信号符号化方式
JP2000333184A (ja) * 1999-03-17 2000-11-30 Matsushita Electric Ind Co Ltd 動きベクトル検出方法,動きベクトル検出装置,及びデータ記録媒体
US20190132606A1 (en) * 2017-11-02 2019-05-02 Mediatek Inc. Method and apparatus for video coding

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8094714B2 (en) * 2008-07-16 2012-01-10 Sony Corporation Speculative start point selection for motion estimation iterative search
US9143799B2 (en) * 2011-05-27 2015-09-22 Cisco Technology, Inc. Method, apparatus and computer program product for image motion prediction
US10911761B2 (en) * 2016-12-27 2021-02-02 Mediatek Inc. Method and apparatus of bilateral template MV refinement for video coding
US10805630B2 (en) * 2017-04-28 2020-10-13 Qualcomm Incorporated Gradient based matching for motion search and derivation
US11310526B2 (en) * 2018-01-26 2022-04-19 Mediatek Inc. Hardware friendly constrained motion vector refinement
US11575925B2 (en) * 2018-03-30 2023-02-07 Electronics And Telecommunications Research Institute Image encoding/decoding method and device, and recording medium in which bitstream is stored
US10701384B2 (en) * 2018-08-01 2020-06-30 Tencent America LLC Method and apparatus for improvement on decoder side motion derivation and refinement
US11451807B2 (en) * 2018-08-08 2022-09-20 Tencent America LLC Method and apparatus for video coding
US10911751B2 (en) * 2018-09-14 2021-02-02 Tencent America LLC Method and apparatus for video coding

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07274181A (ja) * 1994-03-31 1995-10-20 Mitsubishi Electric Corp 映像信号符号化方式
JP2000333184A (ja) * 1999-03-17 2000-11-30 Matsushita Electric Ind Co Ltd 動きベクトル検出方法,動きベクトル検出装置,及びデータ記録媒体
US20190132606A1 (en) * 2017-11-02 2019-05-02 Mediatek Inc. Method and apparatus for video coding

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JIANLE CHEN; YAN YE; SEUNG HWAN KIM: "Algorithm description for Versatile Video Coding and Test Model 5 (VTM 5)", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 14TH MEETING, no. JVET N1002-v2, 11 June 2019 (2019-06-11), Geneva, CH, pages 43 - 45, XP030205562 *
See also references of EP3989570A4 *

Also Published As

Publication number Publication date
CN113906741A (zh) 2022-01-07
JP6835337B2 (ja) 2021-02-24
US20220312024A1 (en) 2022-09-29
EP3989570A1 (en) 2022-04-27
JP2021002725A (ja) 2021-01-07
EP3989570A4 (en) 2023-08-02

Similar Documents

Publication Publication Date Title
JP6961115B2 (ja) 画像復号装置、画像復号方法及びプログラム
JP7076660B2 (ja) 画像復号装置、画像復号方法及びプログラム
JP7026276B2 (ja) 画像復号装置、画像復号方法及びプログラム
JP6914462B2 (ja) 画像復号装置、画像復号方法及びプログラム
JP2024029090A (ja) 画像復号装置、画像符号化装置、画像処理システム及びプログラム
JP7026286B1 (ja) 画像復号装置、画像符号化装置、画像処理システム及びプログラム
WO2020255846A1 (ja) 画像復号装置、画像復号方法及びプログラム
JP7324899B2 (ja) 画像復号装置、画像復号方法及びプログラム
JP7061737B1 (ja) 画像復号装置、画像復号方法及びプログラム
WO2020184262A1 (ja) 画像復号装置、画像復号方法及びプログラム
JP7083971B1 (ja) 画像復号装置、画像復号方法及びプログラム
JP7034363B2 (ja) 画像復号装置、画像復号方法及びプログラム
JP6976916B2 (ja) 画像復号装置、画像符号化装置、画像処理システム及びプログラム
JP7387806B2 (ja) 画像復号装置、画像復号方法及びプログラム
JP7005480B2 (ja) 画像復号装置、画像符号化装置、プログラム及び画像処理システム
WO2011142221A1 (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: 20827343

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2020827343

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2020827343

Country of ref document: EP

Effective date: 20220120