[go: up one dir, main page]

CN114270867B - Image decoding device, image decoding method, and program - Google Patents

Image decoding device, image decoding method, and program Download PDF

Info

Publication number
CN114270867B
CN114270867B CN202080058192.5A CN202080058192A CN114270867B CN 114270867 B CN114270867 B CN 114270867B CN 202080058192 A CN202080058192 A CN 202080058192A CN 114270867 B CN114270867 B CN 114270867B
Authority
CN
China
Prior art keywords
block
boundary
prof
unit
processing
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN202080058192.5A
Other languages
Chinese (zh)
Other versions
CN114270867A (en
Inventor
海野恭平
河村圭
内藤整
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KDDI Corp
Original Assignee
KDDI Corp
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 Corp filed Critical KDDI Corp
Publication of CN114270867A publication Critical patent/CN114270867A/en
Application granted granted Critical
Publication of CN114270867B publication Critical patent/CN114270867B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/117Filters, e.g. for pre-processing or post-processing
    • 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
    • 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/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/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/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/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

Landscapes

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

Abstract

本发明的图像解码装置200包括:仿射预测信号生成部241F,构成为针对每个块判断PROF处理是否适合,当应用PROF处理时,针对将块分割所得的每个子块进行PROF处理;及环路滤波处理部250,构成为针对每个块边界判断解块滤波是否适合,确定不对应用PROF处理后的块的子块边界应用解块滤波。

The image decoding device 200 of the present invention includes: an affine prediction signal generating unit 241F, which is configured to determine whether PROF processing is suitable for each block, and when PROF processing is applied, PROF processing is performed on each sub-block obtained by dividing the block; and a loop filter processing unit 250, which is configured to determine whether deblocking filtering is suitable for each block boundary, and determine not to apply deblocking filtering to the sub-block boundary of the block after PROF processing is applied.

Description

图像解码装置、图像解码方法及程序Image decoding device, image decoding method and program

[技术领域][Technical field]

本发明涉及一种图像解码装置、图像解码方法及程序。The present invention relates to an image decoding device, an image decoding method and a program.

[背景技术][Background Technology]

以往,已知PROF(Prediction Refinement with Optical Flow,光流预测细化)技术及解块滤波技术(例如,参考非专利文献1)。Conventionally, PROF (Prediction Refinement with Optical Flow) technology and deblocking filtering technology are known (for example, refer to Non-Patent Document 1).

PROF是利用与以4×4像素块为单位平行移动及旋转对应的运动模型,高精度地生成预测信号的技术,与不应用PROF处理时相比,可以期待主观画质及客观画质这两方面的改善。PROF is a technology that uses a motion model corresponding to parallel translation and rotation in units of 4×4 pixel blocks to generate a prediction signal with high accuracy. Compared with when PROF processing is not applied, improvements in both subjective and objective image quality can be expected.

解块滤波器是应用于块边界的低通滤波器,可以期待抑制块噪声而使主观画质提高的效果。The deblocking filter is a low-pass filter applied to block boundaries, and can be expected to suppress block noise and improve subjective image quality.

[现有技术文献][Prior art literature]

非专利文献Non-patent literature

非专利文献1:Versatile Video Coding(Draft 6),JVET-N1001Non-patent document 1: Versatile Video Coding (Draft 6), JVET-N1001

[发明内容][Summary of the invention]

发明要解决的课题Problems to be solved by the invention

在现有技术中,在应用PROF处理的块边界,也有可能应用解块滤波。然而,有如下问题:对于主观画质已通过PROF处理充分得到改善的块,有可能由于应用解块滤波,反而导致主观画质变差。In the prior art, it is possible to apply a deblocking filter to the block boundary where PROF processing is applied. However, there is a problem that the subjective image quality of a block that has been sufficiently improved by PROF processing may be degraded by applying a deblocking filter.

因此,本发明是鉴于上述问题而完成的,其目的在于提供一种图像解码装置、图像解码方法及程序,能够通过不对应用PROF处理后的子块边界应用解块滤波,来防止主观画质变差。Therefore, the present invention is completed in view of the above-mentioned problems, and its purpose is to provide an image decoding device, an image decoding method and a program, which can prevent subjective image quality degradation by not applying deblocking filtering to sub-block boundaries after PROF processing.

用于解决课题的手段Means for solving problems

本发明的第一特征的主旨在于一种图像解码装置,包括:仿射预测信号生成部,构成为针对每个块判断PROF处理是否适合,当应用所述PROF处理时,针对将所述块分割所得的每个子块进行所述PROF处理;及环路滤波处理部,构成为针对每个块边界判断解块滤波是否适合,确定不对应用所述PROF处理后的块的子块边界应用解块滤波。The first feature of the present invention is a picture decoding device, comprising: an affine prediction signal generating unit, configured to determine whether PROF processing is suitable for each block, and when the PROF processing is applied, the PROF processing is performed on each sub-block obtained by dividing the block; and a loop filter processing unit, configured to determine whether deblocking filtering is suitable for each block boundary, and determine not to apply deblocking filtering to the sub-block boundary of the block after the PROF processing is applied.

本发明的第二特征的主旨在于一种图像解码方法,包括以下步骤:针对每个块判断PROF处理是否适合,当应用所述PROF处理时,针对将所述块分割所得的每个子块进行所述PROF处理;及针对每个块边界判断解块滤波是否适合,确定不对应用所述PROF处理后的块的子块边界应用解块滤波。The second feature of the present invention is a method for decoding an image, comprising the following steps: determining whether PROF processing is suitable for each block, and when applying the PROF processing, performing the PROF processing on each sub-block obtained by dividing the block; and determining whether deblocking filtering is suitable for each block boundary, and determining not to apply deblocking filtering to the sub-block boundary of the block after the PROF processing is applied.

本发明的第三特征的主旨在于一种程序,在图像解码装置中使用,且使计算机执行以下步骤:针对每个块判断PROF处理是否适合,当应用所述PROF处理时,针对将所述块分割所得的每个子块进行所述PROF处理;及针对每个块边界判断解块滤波是否适合,确定不对应用所述PROF处理后的块的子块边界应用解块滤波。The third feature of the present invention is a program used in an image decoding device, which enables a computer to execute the following steps: determining whether PROF processing is suitable for each block, and when applying the PROF processing, performing the PROF processing on each sub-block obtained by dividing the block; and determining whether deblocking filtering is suitable for each block boundary, and determining not to apply deblocking filtering to the sub-block boundary of the block after the PROF processing is applied.

发明的效果Effects of the Invention

根据本发明,可以提供一种图像解码装置、图像解码方法及程序,能够通过不对应用PROF处理后的子块边界应用解块滤波,来防止主观画质变差。According to the present invention, it is possible to provide an image decoding device, an image decoding method, and a program capable of preventing subjective image quality degradation by not applying a deblocking filter to a sub-block boundary after PROF processing is applied.

[附图的简单说明][Brief Description of the Drawings]

图1是示出一实施方式的图像处理系统10的构成的一个例子的图。FIG. 1 is a diagram showing an example of a configuration of an image processing system 10 according to an embodiment.

图2是示出一实施方式的图像编码装置100的功能块的一个例子的图。FIG. 2 is a diagram showing an example of a functional block of the image encoding device 100 according to an embodiment.

图3是示出从一实施方式的图像编码装置100的编码部140输出的编码后数据(比特流)的构成的一个例子的图。FIG. 3 is a diagram showing an example of the structure of coded data (bit stream) output from the coding unit 140 of the image coding device 100 according to one embodiment.

图4是示出图3所示的SPS 141内包含的控制数据的一个例子的图。FIG. 4 is a diagram showing an example of control data included in the SPS 141 shown in FIG. 3 .

图5是示出图3所示的切片头部143A中包含的控制数据的一个例子。FIG. 5 shows an example of control data included in the slice header 143A shown in FIG. 3 .

图6是示出一实施方式的图像编码装置100的帧间预测部111的功能块的一个例子的图。FIG. 6 is a diagram showing an example of a functional block of the inter prediction unit 111 of the image encoding device 100 according to an embodiment.

图7是示出一实施方式的图像编码装置100的帧间预测部111的细化部111C的处理顺序的一个例子的流程图。FIG. 7 is a flowchart showing an example of a processing procedure of the refinement unit 111C of the inter prediction unit 111 of the image encoding device 100 according to one embodiment.

图8是示出一实施方式的图像编码装置100的帧间预测部111的预测信号生成部111D的处理顺序的一个例子的流程图。FIG. 8 is a flowchart showing an example of a processing procedure of the prediction signal generating unit 111D of the inter prediction unit 111 of the image encoding device 100 according to one embodiment.

图9是示出一实施方式的图像编码装置100的帧间预测部111的仿射运动矢量算出部111E的处理顺序的一个例子的流程图。FIG. 9 is a flowchart showing an example of a processing procedure of the affine motion vector calculation unit 111E of the inter prediction unit 111 of the image encoding device 100 according to one embodiment.

图10是用于说明一实施方式的图像编码装置100的帧间预测部111的仿射运动矢量算出部111E的处理顺序的一个例子的图。FIG. 10 is a diagram for explaining an example of a processing procedure of the affine motion vector calculation unit 111E of the inter prediction unit 111 of the image encoding device 100 according to one embodiment.

图11是示出一实施方式的图像编码装置100的帧间预测部111的仿射预测信号生成部111F的处理顺序的一个例子的流程图。FIG. 11 is a flowchart showing an example of a processing procedure of the affine prediction signal generating unit 111F of the inter prediction unit 111 of the image encoding device 100 according to one embodiment.

图12是示出一实施方式的图像编码装置100的环路滤波处理部150的功能块的一个例子的图。FIG. 12 is a diagram showing an example of a functional block of the loop filter processing unit 150 of the image encoding device 100 according to an embodiment.

图13是用于说明一实施方式的图像编码装置100的环路滤波处理部150的边界强度判断部153(153A/153B)的处理顺序的图。FIG. 13 is a diagram for explaining the processing procedure of the boundary strength determination unit 153 ( 153A/ 153B) of the loop filter processing unit 150 of the image encoding device 100 according to one embodiment.

图14是示出一实施方式的图像解码装置200的功能块的一个例子的图。FIG. 14 is a diagram showing an example of a functional block of an image decoding device 200 according to an embodiment.

图15是示出一实施方式的图像解码装置200的帧间预测部241的功能块的一个例子的图。FIG. 15 is a diagram showing an example of a functional block of the inter prediction unit 241 of the image decoding device 200 according to an embodiment.

图16是示出一实施方式的图像解码装置200的环路滤波处理部250的功能块的一个例子的图。FIG. 16 is a diagram showing an example of a functional block of the loop filter processing unit 250 of the image decoding device 200 according to an embodiment.

图17是用于说明变更例1的图。FIG. 17 is a diagram for explaining Modification Example 1. FIG.

图18是用于说明变更例1的图。FIG. 18 is a diagram for explaining Modification Example 1. FIG.

图19是用于说明变更例2的图。FIG. 19 is a diagram for explaining Modification Example 2. FIG.

图20是用于说明变更例2的图。FIG. 20 is a diagram for explaining Modification Example 2. FIG.

[具体实施方式][Specific implementation method]

下面,参考附图对本发明的实施方式进行说明。另外,下述实施方式中的构成要素可以适当地与现有的构成要素等进行置换,并且,可以进行包括与其他现有的构成要素的组合在内的各种变形。因此,不应以下述实施方式的记载来限定权利要求书所记载的发明内容。The following is an explanation of the embodiments of the present invention with reference to the accompanying drawings. In addition, the constituent elements in the following embodiments may be appropriately replaced with existing constituent elements, etc., and various modifications including combinations with other existing constituent elements may be performed. Therefore, the content of the invention recorded in the claims should not be limited by the description of the following embodiments.

(第一实施方式)(First Embodiment)

下面,参考图1至图16对本发明的第一实施方式的图像处理系统10进行说明。图1是示出本实施方式的图像处理系统10的图。Next, an image processing system 10 according to a first embodiment of the present invention will be described with reference to Fig. 1 to Fig. 16. Fig. 1 is a diagram showing an image processing system 10 according to the present embodiment.

如图1所示,图像处理系统10包括图像编码装置100及图像解码装置200。As shown in FIG. 1 , the image processing system 10 includes an image encoding device 100 and an image decoding device 200 .

图像编码装置100构成为通过对输入图像信号进行编码来生成编码数据。图像解码装置200构成为通过对编码数据进行解码来生成输出图像信号。The image encoding device 100 is configured to generate encoded data by encoding an input image signal, and the image decoding device 200 is configured to generate an output image signal by decoding the encoded data.

此处,该编码数据可以经由传输路径从图像编码装置100发送至图像解码装置200。并且,编码数据也可以在存储至存储介质后,从图像编码装置100提供至图像解码装置200。Here, the coded data may be transmitted from the image coding apparatus 100 to the image decoding apparatus 200 via a transmission path. Alternatively, the coded data may be provided from the image coding apparatus 100 to the image decoding apparatus 200 after being stored in a storage medium.

(图像编码装置100)(Image Coding Device 100)

下面,参考图2对本实施方式的图像编码装置100进行说明。图2是示出本实施方式的图像编码装置100的功能块的一个例子的图。Next, the image encoding device 100 according to the present embodiment will be described with reference to Fig. 2. Fig. 2 is a diagram showing an example of functional blocks of the image encoding device 100 according to the present embodiment.

如图2所示,图像编码装置100包括帧间预测部111、帧内预测部112、减法器121、加法器122、变换及量化部131、逆变换及逆量化部132、编码部140、环路滤波处理部150及帧缓冲器160。As shown in FIG. 2 , the image encoding device 100 includes an inter-frame prediction unit 111 , an intra-frame prediction unit 112 , a subtractor 121 , an adder 122 , a transform and quantization unit 131 , an inverse transform and inverse quantization unit 132 , an encoding unit 140 , a loop filter processing unit 150 , and a frame buffer 160 .

帧间预测部111构成为通过帧间预测(interframe prediction)来生成预测信号。The inter-frame prediction unit 111 is configured to generate a prediction signal by inter-frame prediction.

具体来说,帧间预测部111构成为通过对编码对象的帧(以下称为对象帧)与存储在帧缓冲器160中的参考帧进行比较,来指定参考帧中包含的参考块,并确定所指定的参考块的运动矢量。Specifically, the inter-frame prediction unit 111 is configured to specify a reference block included in the reference frame by comparing a frame to be encoded (hereinafter referred to as a target frame) with a reference frame stored in the frame buffer 160 , and determine a motion vector of the specified reference block.

并且,帧间预测部111构成为基于参考块及运动矢量,针对每个预测块生成预测块中包含的预测信号。帧间预测部111构成为将预测信号输出至减法器121及加法器122。此处,参考帧是与对象帧不同的帧。The inter prediction unit 111 is configured to generate a prediction signal included in each prediction block based on the reference block and the motion vector. The inter prediction unit 111 is configured to output the prediction signal to the subtractor 121 and the adder 122. Here, the reference frame is a frame different from the target frame.

帧内预测部112构成为通过帧内预测(intraframe prediction)来生成预测信号。The intra prediction unit 112 is configured to generate a prediction signal by intraframe prediction.

具体来说,帧内预测部112构成为指定对象帧中包含的参考块,并基于所指定的参考块,针对每个预测块生成预测信号。并且,帧内预测部112构成为将预测信号输出至减法器121及加法器122。Specifically, the intra prediction unit 112 is configured to specify a reference block included in the target frame, and to generate a prediction signal for each prediction block based on the specified reference block. Furthermore, the intra prediction unit 112 is configured to output the prediction signal to the subtractor 121 and the adder 122 .

此处,参考块是预测对象的块(以下称为对象块)所参考的块。例如,参考块是与对象块相邻的块。Here, the reference block is a block that is referenced by a block to be predicted (hereinafter referred to as a target block). For example, the reference block is a block adjacent to the target block.

减法器121构成为从输入图像信号中减去预测信号,并将预测残差信号输出至变换及量化部131。此处,减法器121构成为生成通过帧内预测或帧间预测所生成的预测信号与输入图像信号的差分即预测残差信号。The subtractor 121 is configured to subtract the prediction signal from the input image signal and output a prediction residual signal to the transform and quantization unit 131. Here, the subtractor 121 is configured to generate a prediction residual signal which is a difference between a prediction signal generated by intra prediction or inter prediction and the input image signal.

加法器122构成为将预测信号与从逆变换及逆量化部132输出的预测残差信号相加来生成滤波处理前解码信号,并将该滤波处理前解码信号输出至帧内预测部112及环路滤波处理部150。The adder 122 is configured to add the prediction signal and the prediction residual signal output from the inverse transform and inverse quantization unit 132 to generate a pre-filtered decoded signal, and output the pre-filtered decoded signal to the intra prediction unit 112 and the loop filter processing unit 150 .

此处,滤波处理前解码信号构成帧内预测部112中使用的参考块。Here, the decoded signal before filtering constitutes a reference block used in the intra prediction unit 112 .

变换及量化部131构成为进行预测残差信号的变换处理,且获取系数等级值。此外,变换及量化部131也可以构成为进行系数等级值的量化。The transform and quantization unit 131 is configured to perform a transform process on the prediction residual signal and obtain a coefficient level value. In addition, the transform and quantization unit 131 may be configured to perform quantization on the coefficient level value.

此处,变换处理是将预测残差信号变换为频率成分信号的处理。在该变换处理中,可以使用与离散余弦变换(DCT,Discrete Cosine Transform)对应的基模型(变换矩阵),也可以使用与离散正弦变换(DST,Discrete Sine Transform)对应的基模型(变换矩阵)。Here, the transformation process is a process of transforming the prediction residual signal into a frequency component signal. In this transformation process, a base model (transformation matrix) corresponding to a discrete cosine transform (DCT) or a base model (transformation matrix) corresponding to a discrete sine transform (DST) can be used.

逆变换及逆量化部132构成为进行从变换及量化部131输出的系数等级值的逆变换处理。此处,逆变换及逆量化部132也可以构成为在逆变换处理之前进行系数等级值的逆量化。The inverse transform and inverse quantization unit 132 is configured to perform an inverse transform process on the coefficient level value output from the transform and quantization unit 131. Here, the inverse transform and inverse quantization unit 132 may be configured to perform an inverse quantization on the coefficient level value before the inverse transform process.

此处,逆变换处理及逆量化是按照与由变换及量化部131进行的变换处理及量化相反的顺序进行。Here, the inverse transform process and the inverse quantization are performed in the reverse order of the transform process and the quantization performed by the transform and quantization unit 131 .

编码部140构成为对从变换及量化部131输出的系数等级值进行编码,并输出编码数据。The encoding unit 140 is configured to encode the coefficient level value output from the transform and quantization unit 131 and output the encoded data.

此处,例如编码是基于系数等级值的产生概率来分配不同长度的代码的熵编码。Here, for example, the encoding is entropy encoding that assigns codes of different lengths based on the probability of occurrence of coefficient level values.

并且,编码部140构成为不仅对系数等级值进行编码,还对解码处理中使用的控制数据进行编码。Furthermore, the encoding unit 140 is configured to encode not only the coefficient level value but also the control data used in the decoding process.

此处,控制数据可以包括编码块(CU,Coding Unit)尺寸、预测块(PU,PredictionUnit)尺寸、变换块(TU,Transform Unit)尺寸等尺寸数据。Here, the control data may include size data such as the coding block (CU, Coding Unit) size, the prediction block (PU, Prediction Unit) size, and the transform block (TU, Transform Unit) size.

环路滤波处理部150构成为对从加法器122输出的滤波处理前解码信号进行滤波处理,且将滤波处理后解码信号输出至帧缓冲器160。The loop filter processing unit 150 is configured to perform filtering on the pre-filtering decoded signal output from the adder 122 , and output the post-filtering decoded signal to the frame buffer 160 .

此处,例如滤波处理是减少在块(编码块、预测块或变换块)的边界部分产生的失真的解块滤波处理。Here, the filtering process is, for example, a deblocking filtering process that reduces distortion generated at a boundary portion of a block (coding block, prediction block, or transform block).

帧缓冲器160构成为存储帧间预测部111中使用的参考帧。The frame buffer 160 is configured to store reference frames used by the inter-frame prediction unit 111 .

此处,滤波处理后解码信号构成帧间预测部111中使用的参考帧。Here, the decoded signal after the filtering process constitutes a reference frame used in the inter-frame prediction unit 111.

(编码部140)(Encoding unit 140)

下面,使用图3至图5对由编码部140编码的控制数据进行说明。图3是从编码部140输出的编码后数据(比特流)的构成例。Next, the control data encoded by the encoding unit 140 will be described using Fig. 3 to Fig. 5. Fig. 3 shows an example of the structure of the encoded data (bit stream) output from the encoding unit 140.

首先,该比特流可以在开头包含SPS(Sequence Parameter Set,序列参数集)141。SPS 141是以序列(图片的集合)为单位的控制数据的集合。具体示例将在下文叙述。各SPS141至少包含在有多个SPS 141时用于识别各SPS 141的id信息。First, the bitstream may include an SPS (Sequence Parameter Set) 141 at the beginning. The SPS 141 is a set of control data in units of a sequence (a set of pictures). A specific example will be described below. Each SPS 141 includes at least id information for identifying each SPS 141 when there are multiple SPSs 141.

该比特流也可以在SPS 141后面包含PPS(Picture Parameter Set,图片参数集)142。PPS 142是以图片(切片的集合)为单位的控制数据的集合。各PPS 142至少包含在有多个SPS 141时用于识别各SPS 141的id信息。并且,各PPS 142至少包含用于指定与各PPS142对应的SPS 141的SPS id信息。The bitstream may also include a PPS (Picture Parameter Set) 142 after the SPS 141. The PPS 142 is a set of control data in units of pictures (a set of slices). Each PPS 142 includes at least id information for identifying each SPS 141 when there are multiple SPSs 141. In addition, each PPS 142 includes at least SPS id information for specifying the SPS 141 corresponding to each PPS 142.

该比特流也可以在PPS 142后面包含切片头部143A。切片头部143A是以切片为单位的控制数据的集合。具体示例将在下文叙述。各切片头部143A至少包含用于指定与各切片头部143A对应的PPS 142的PPS id信息。The bit stream may also include a slice header 143A after the PPS 142. The slice header 143A is a collection of control data in units of slices. A specific example will be described below. Each slice header 143A includes at least PPS id information for specifying the PPS 142 corresponding to each slice header 143A.

该比特流也可以在切片头部143A后面包含切片数据144A。切片数据144A可以包含上述系数等级值及尺寸数据等。The bitstream may also include slice data 144A after the slice header 143A. The slice data 144A may include the coefficient level value and size data mentioned above.

如上所述,为如下构成:各有一个切片头部143A/143B、PPS 142、SPS 141与各切片数据144A/144B对应。如上所述,在切片头部143A/143B中,由PPS id信息来指定参考哪一PPS 142,在该PPS 142中,进一步由SPS id信息来指定参考哪一SPS 141,因此,可以对多个切片数据144A/144B使用共同的SPS 141及PPS 142。As described above, the structure is as follows: each of the slice headers 143A/143B, PPS 142, and SPS 141 corresponds to each slice data 144A/144B. As described above, in the slice header 143A/143B, the PPS id information specifies which PPS 142 is referenced, and in the PPS 142, the SPS id information further specifies which SPS 141 is referenced, so that the common SPS 141 and PPS 142 can be used for a plurality of slice data 144A/144B.

换句话说,不必针对每个切片数据144A/144B均传输SPS 141及PPS 142。例如,如图3所示,也可以为如下流构成:在切片头部143B及切片数据144B之前,不对SPS 141及PPS142进行编码。In other words, it is not necessary to transmit the SPS 141 and the PPS 142 for each slice data 144A/144B. For example, as shown in FIG3 , the stream structure may be such that the SPS 141 and the PPS 142 are not encoded before the slice header 143B and the slice data 144B.

另外,图3的构成只是一个例子。若为由切片头部143A/143B、PPS 142、SPS 141指定的控制数据与各切片数据144A/144B对应的构成,则还可以追加除上述以外的要素作为流的构成要素。并且,同样地,也可以在传输时整形为与图3不同的构成。In addition, the structure of FIG3 is only an example. If the structure is a structure in which the control data specified by the slice header 143A/143B, PPS 142, and SPS 141 correspond to each slice data 144A/144B, elements other than the above may be added as stream components. Also, similarly, the structure may be shaped into a different structure than that of FIG3 during transmission.

图4是示出SPS 141内包含的控制数据的一个例子的图。FIG. 4 is a diagram showing an example of control data included in the SPS 141 .

如上所述,SPS 141至少包含用于识别各SPS 141的id信息(sps_seq_parameter_set_id)。As described above, the SPS 141 includes at least id information (sps_seq_parameter_set_id) for identifying each SPS 141 .

SPS 141也可以包含用于对可否使用(有效、无效)下述BDOF(Bi-DirectionalOptical Flow)处理进行控制的标志“sps_bdof_enabled_flag”。当该标志的值为“0”时,表示在与该SPS 141对应的切片内不使用BDOF处理。另一方面,当该标志的值为“1”时,表示在与SPS 141对应的切片内可使用BDOF处理。在下述处理中,针对每个块确定在切片内的各块中实际上是否使用BDOF处理。SPS 141 may also include a flag "sps_bdof_enabled_flag" for controlling whether the following BDOF (Bi-Directional Optical Flow) processing can be used (valid or invalid). When the value of this flag is "0", it indicates that the BDOF processing is not used in the slice corresponding to the SPS 141. On the other hand, when the value of this flag is "1", it indicates that the BDOF processing can be used in the slice corresponding to the SPS 141. In the following processing, it is determined for each block whether the BDOF processing is actually used in each block in the slice.

即,“sps_bdof_enabled_flag”是SPS 141中包含的表示可否以序列为单位使用BDOF处理的标志(第四标志)。That is, "sps_bdof_enabled_flag" is a flag (fourth flag) included in the SPS 141 and indicating whether or not the BDOF process can be used in units of sequences.

SPS 141也可以包含用于对可否使用(有效、无效)下述DMVR(Decoder-sideMotion Vector Refinement)处理进行控制的标志“sps_dmvr_enabled_flag”。当该标志的值为“0”时,表示在与该SPS 141对应的切片内不使用DMVR处理。另一方面,当该标志的值为“1”时,表示在与该SPS 141对应的切片内可使用DMVR处理。在下述处理中,针对每个块确定在切片内的各块中实际上是否使用DMVR处理。SPS 141 may also include a flag "sps_dmvr_enabled_flag" for controlling whether the following DMVR (Decoder-side Motion Vector Refinement) processing can be used (valid or invalid). When the value of this flag is "0", it indicates that the DMVR processing is not used in the slice corresponding to the SPS 141. On the other hand, when the value of this flag is "1", it indicates that the DMVR processing can be used in the slice corresponding to the SPS 141. In the following processing, it is determined for each block whether the DMVR processing is actually used in each block in the slice.

即,“sps_dmvr_enabled_flag”是SPS 141中包含的表示可否以序列为单位使用DMVR处理的标志(第三标志)。That is, "sps_dmvr_enabled_flag" is a flag (third flag) included in the SPS 141 and indicating whether or not the DMVR process can be used in units of sequences.

SPS 141还可以包含用于对可否使用(有效、无效)下述仿射运动补偿进行控制的标志“sps_affine_enabled_flag”。当该标志的值为“0”时,表示在与该SPS 141对应的切片内不使用仿射运动补偿。另一方面,当该标志的值为“1”时,表示在与该SPS 141对应的切片内可使用仿射运动补偿。在下述处理中,针对每个块确定在切片内的各块中实际上是否使用仿射运动补偿。The SPS 141 may further include a flag "sps_affine_enabled_flag" for controlling whether the affine motion compensation described below can be used (valid or invalid). When the value of this flag is "0", it indicates that affine motion compensation is not used in the slice corresponding to the SPS 141. On the other hand, when the value of this flag is "1", it indicates that affine motion compensation can be used in the slice corresponding to the SPS 141. In the following processing, it is determined for each block whether affine motion compensation is actually used in each block in the slice.

即,“sps_affine_prof_enabled_flag”是SPS 141中包含的表示可否以序列为单位使用PROF处理的标志(第五标志)。That is, "sps_affine_prof_enabled_flag" is a flag (fifth flag) included in the SPS 141 and indicating whether or not PROF processing can be used in units of sequences.

当“sps_affine_enabled_flag”为“1”时,SPS 141还可以另外包含“sps_affine_type_flag”这一标志。当该标志的值为“0”时,表示在与该SPS 141对应的切片内将下述仿射运动补偿时的参数个数始终设为“4”。另一方面,当该标志的值为“1”时,表示在与该SPS141对应的切片内进行仿射运动补偿时,可针对每个块选择“4”或“6”中的任一个作为参数个数。When "sps_affine_enabled_flag" is "1", SPS 141 may further include a flag "sps_affine_type_flag". When the value of this flag is "0", it indicates that the number of parameters for the affine motion compensation described below is always set to "4" in the slice corresponding to this SPS 141. On the other hand, when the value of this flag is "1", it indicates that when affine motion compensation is performed in the slice corresponding to this SPS 141, either "4" or "6" can be selected as the number of parameters for each block.

当“sps_affine_enabled_flag”的值为“1”时,SPS 141还可以另外包含“sps_affine_prof_enabled_flag”这一标志。当该标志的值为“0”时,表示在与该SPS 141对应的切片内不使用下述PROF(Prediction Refinement with Optical Flow)处理。另一方面,当该标志的值为“1”时,表示在与该SPS 141对应的切片内可使用PROF处理。在下述处理中,针对每个块确定在切片内的各块中实际上是否使用PROF处理。When the value of "sps_affine_enabled_flag" is "1", the SPS 141 may further include a flag "sps_affine_prof_enabled_flag". When the value of this flag is "0", it indicates that the PROF (Prediction Refinement with Optical Flow) processing described below is not used in the slice corresponding to the SPS 141. On the other hand, when the value of this flag is "1", it indicates that the PROF processing can be used in the slice corresponding to the SPS 141. In the following processing, it is determined for each block whether the PROF processing is actually used in each block in the slice.

当“sps_bdof_enabled_flag”、“sps_dmvr_enabled_flag”及“sps_affine_prof_enabled_flag”中至少任一标志的值为“1”时,SPS 141还可以另外包含“sps_bdof_dmvr_prof_slice_present_flag”这一标志。当该标志为“1”时,表示在与该SPS 141对应的切片头部143A/143B内包含下述“slice_disable_bdof_dmvr_prof_flag”这一标志。当该标志的值为“0”时,表示在与该SPS 141对应的切片头部143A/143B内不包含“slice_disable_bdof_dmvr_prof_flag”。When the value of at least any one of the flags "sps_bdof_enabled_flag", "sps_dmvr_enabled_flag" and "sps_affine_prof_enabled_flag" is "1", the SPS 141 may further include a flag "sps_bdof_dmvr_prof_slice_present_flag". When the flag is "1", it indicates that the following flag "slice_disable_bdof_dmvr_prof_flag" is included in the slice header 143A/143B corresponding to the SPS 141. When the value of the flag is "0", it indicates that the slice header 143A/143B corresponding to the SPS 141 does not include "slice_disable_bdof_dmvr_prof_flag".

即,“sps_bdof_dmvr_prof_slice_present_flag”是表示在切片头部143A/143B内是否包含“slice_disable_bdof_dmvr_prof_flag”的标志(第二标志)。另外,当不存在该标志时,可以隐含地视为该标志的值为“0”。That is, "sps_bdof_dmvr_prof_slice_present_flag" is a flag (second flag) indicating whether "slice_disable_bdof_dmvr_prof_flag" is included in the slice header 143A/143B. When this flag does not exist, it can be implicitly regarded that the value of this flag is "0".

图5是示出切片头部143A/143B中包含的控制数据的一个例子的图。FIG. 5 is a diagram showing an example of control data included in the slice header 143A/ 143B.

如上所述,在切片头部143A/143B中,至少包含用于指定与该切片对应的PPS 142的PPS id信息“slice_pic_parameter_set_id”。如上所述,由该PPS id信息指定的PPS内所参考的SPS 141为与该切片头部143A/143B对应的SPS 141。As described above, the slice header 143A/143B includes at least PPS id information "slice_pic_parameter_set_id" for specifying the PPS 142 corresponding to the slice. As described above, the SPS 141 referenced in the PPS specified by the PPS id information is the SPS 141 corresponding to the slice header 143A/143B.

当在与该切片头部143A/143B对应的SPS 141内包含“sps_bdof_dmvr_prof_slice_present_flag”,且该标志的值为“1”时,在该切片头部143A/143B中也可以包含有“slice_disable_bdof_dmvr_prof_flag”。当该标志的值为“1”时,如下所述,可以控制为在该切片中包含的各块中不使用BDOF处理、DMVR处理、PROF处理。当该标志的值为“0”时,可以控制为在该切片中包含的各块中可使用BDOF处理、DMVR处理、PROF处理。When the SPS 141 corresponding to the slice header 143A/143B includes "sps_bdof_dmvr_prof_slice_present_flag" and the value of the flag is "1", the slice header 143A/143B may also include "slice_disable_bdof_dmvr_prof_flag". When the value of the flag is "1", as described below, it can be controlled so that BDOF processing, DMVR processing, and PROF processing are not used in each block included in the slice. When the value of the flag is "0", it can be controlled so that BDOF processing, DMVR processing, and PROF processing can be used in each block included in the slice.

即,“slice_disable_bdof_dmvr_prof_flag”是切片头部143A/143B中包含的对可否使用DMVR处理、BDOF处理及PROF处理进行统一控制的标志(第一标志)。That is, "slice_disable_bdof_dmvr_prof_flag" is a flag (first flag) included in the slice header 143A/143B for collectively controlling whether or not the DMVR process, the BDOF process, and the PROF process can be used.

换句话说,“slice_disable_bdof_dmvr_prof_flag”是切片头部143A/143B中包含的对可否使用PROF处理进行控制的标志,是切片头部143A/143B中包含的对可否使用DMVR处理进行控制的标志,且是切片头部143A/143B中包含的对可否使用BDOF处理进行控制的标志。In other words, "slice_disable_bdof_dmvr_prof_flag" is a flag included in the slice header 143A/143B to control whether PROF processing can be used, a flag included in the slice header 143A/143B to control whether DMVR processing can be used, and a flag included in the slice header 143A/143B to control whether BDOF processing can be used.

以上所说明的标志的值只是一个例子。当使赋予给标志的值(“0”及“1”)的意义相反时,可以通过使所对应的处理也相应地相反,来实现等效处理。The flag values described above are merely examples, and when the meanings of the values ("0" and "1") assigned to the flags are reversed, equivalent processing can be achieved by reversing the corresponding processing.

并且,如上所述,能够通过设置控制为不以切片为单位使用BDOF处理、DMVR处理、PROF处理的标志,而由图像编码装置100侧明确地控制不使用该功能,因此,能够通过不使用该功能,来削减图像编码装置100及所对应的图像解码装置200的处理负荷及消耗电力。Furthermore, as described above, by setting a flag to control not to use BDOF processing, DMVR processing, and PROF processing in units of slices, the image encoding device 100 side can explicitly control not to use this function. Therefore, by not using this function, the processing load and power consumption of the image encoding device 100 and the corresponding image decoding device 200 can be reduced.

(帧间预测部111)(Inter-frame prediction unit 111)

下面,参考图6对本实施方式的图像编码装置100的帧间预测部111进行说明。图6是示出本实施方式的图像编码装置100的帧间预测部111的功能块的一个例子的图。Next, the inter prediction unit 111 of the image encoding device 100 according to the present embodiment will be described with reference to Fig. 6. Fig. 6 is a diagram showing an example of functional blocks of the inter prediction unit 111 of the image encoding device 100 according to the present embodiment.

如图6所示,帧间预测部111包括运动矢量搜索部111A、运动矢量编码部111B、细化部111C、预测信号生成部111D、仿射运动矢量算出部111E及仿射预测信号生成部111F。As shown in FIG. 6 , the inter prediction unit 111 includes a motion vector search unit 111A, a motion vector encoding unit 111B, a refinement unit 111C, a prediction signal generation unit 111D, an affine motion vector calculation unit 111E, and an affine prediction signal generation unit 111F.

帧间预测部111是构成为基于运动矢量来生成预测块中包含的预测信号的预测部的一个例子。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.

运动矢量搜索部111A构成为通过对象帧与参考帧的比较,来指定参考帧中包含的参考块,并搜索所指定的参考块的运动矢量。The motion vector search unit 111A is configured to specify a reference block included in the reference frame by comparing the target frame with the reference frame, and to search for a motion vector of the specified reference block.

并且,对多个候补参考帧进行上述搜索,以确定该预测块中用于预测的参考帧及运动矢量。对于一个块最多可以各使用两个参考帧及运动矢量。将对于一个块仅使用一组参考帧与运动矢量的情况称为单向预测,将使用两组参考帧与运动矢量的情况称为双向预测。在下文中,将第一组称为L0,将第二组称为L1。Furthermore, the above search is performed on multiple candidate reference frames to determine the reference frame and motion vector used for prediction in the prediction block. Up to two reference frames and 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 unidirectional prediction, and the case where two sets of reference frames and motion vectors are used is called bidirectional prediction. In the following, the first set is called L0 and the second set is called L1.

此外,运动矢量搜索部111A构成为确定参考帧及运动矢量的编码方法。在编码方法中,除分别传输参考帧及运动矢量的信息的常规方法以外,还有下述合并模式及仿射运动补偿等。The motion vector search unit 111A is configured to determine a coding method for a reference frame and a motion vector. In addition to a conventional method for transmitting information of a reference frame and a motion vector separately, there are the following merge mode and affine motion compensation.

另外,关于运动矢量的搜索方法、参考帧的确定方法以及参考帧及运动矢量的编码方法的确定方法,可以采用已知的方法,因此,省略其详细说明。In addition, regarding the method of searching for a motion vector, the method of determining a reference frame, and the method of determining the encoding method of a reference frame and a motion vector, known methods can be used, and therefore, detailed descriptions thereof are omitted.

运动矢量编码部111B构成为使用由运动矢量搜索部111A所确定的编码方法,对同样由运动矢量搜索部111A所确定的参考帧及运动矢量的信息进行编码。关于具体的参考帧及运动矢量信息的编码方法,可以采用已知的方法,因此,省略其详细说明。The motion vector coding unit 111B is configured to code the reference frame and motion vector information determined by the motion vector search unit 111A using the coding method determined by the motion vector search unit 111A. A known method can be used for coding the reference frame and motion vector information, and thus a detailed description thereof will be omitted.

当该块的编码方法为合并模式时,在图像编码装置100侧,首先创建针对该块的合并列表。此处,合并列表是列举了多个参考帧与运动矢量的组合的列表。When the encoding method of the block is the merge mode, a merge list for the block is first created on the side of the image encoding device 100. Here, the merge list is a list that lists a plurality of combinations of reference frames and motion vectors.

为各组合分配有索引,图像编码装置100仅对该索引进行编码,并传输至图像解码装置200,代替单独对参考帧及运动矢量的信息进行编码。通过预先在图像编码装置100侧与图像解码装置200侧共用合并列表的创建方法,在图像解码装置200侧,可以仅根据该索引的信息,解码出参考帧及运动矢量的信息。An index is assigned to each combination, and the image encoding device 100 encodes only the index instead of encoding the reference frame and motion vector information separately, and transmits it to the image decoding device 200. By sharing the creation method of the merge list in advance on the image encoding device 100 side and the image decoding device 200 side, the image decoding device 200 side can decode the reference frame and motion vector information based on only the index information.

另外,关于合并列表的创建方法,可以采用已知的方法,因此,省略其详细说明。In addition, regarding the method of creating the merge list, a known method can be used, and therefore, a detailed description thereof is omitted.

仿射运动补偿是如下方法:对每个块传输少量参数,并基于该参数及预定的模型,导出将该块分割所得的每个子块的运动矢量。导出该运动矢量的方法的详细内容将在下文叙述。Affine motion compensation is a method that transmits a small amount of parameters for each block and derives a motion vector for each sub-block obtained by dividing the block based on the parameters and a predetermined model. The details of the method for deriving the motion vector will be described below.

当为仿射运动补偿时,运动矢量编码部111B构成为对下述控制点运动矢量的信息及参考帧的信息进行编码。如下所述,控制点运动矢量对每个块传输两个或三个运动矢量信息。In the case of affine motion compensation, the motion vector encoding unit 111B is configured to encode the control point motion vector information and the reference frame information described below. As described below, the control point motion vector transmits two or three pieces of motion vector information for each block.

并且,当该块是进行双向预测的块时,对L0及L1分别各传输两个或三个控制点运动矢量的信息。关于具体的编码方法,可以采用已知的方法,因此,省略其详细说明。Furthermore, when the block is a block for bidirectional prediction, two or three pieces of information on control point motion vectors are transmitted for L0 and L1, respectively. As for the specific encoding method, a known method can be used, and therefore, its detailed description is omitted.

当在该块中使用仿射运动补偿时,移至图6所示的仿射运动矢量算出部111E的处理,否则,移至细化部111C的处理。When affine motion compensation is used for the block, the process proceeds to the process of the affine motion vector calculation unit 111E shown in FIG. 6 . Otherwise, the process proceeds to the process of the thinning unit 111C.

细化部111C构成为进行对由运动矢量编码部111B编码的运动矢量进行修正的细化处理(例如DMVR)。The thinning unit 111C is configured to perform a thinning process (for example, DMVR) for correcting the motion vector encoded by the motion vector encoding unit 111B.

具体来说,细化部111C构成为进行如下细化处理:以由运动矢量编码部111B编码的运动矢量所指定的参考位置为基准,设定搜索范围,从搜索范围中指定特定成本最小的修正参考位置,并基于修正参考位置,对运动矢量进行修正。Specifically, the refinement unit 111C is configured to perform the following refinement processing: set a search range based on the reference position specified by the motion vector encoded by the motion vector encoding unit 111B, specify a correction reference position with the smallest specific cost from the search range, and correct the motion vector based on the correction reference position.

图7是示出细化部111C的处理顺序的一个例子的流程图。FIG. 7 is a flowchart showing an example of the processing procedure of the refinement unit 111C.

如图7所示,在步骤S71中,细化部111C判断是否满足用于应用细化处理的特定条件。当该特定条件全部被满足时,本处理顺序前进至步骤S72。另一方面,当该特定条件中任一条件未被满足时,本处理顺序前进至步骤S75,结束细化处理。As shown in Fig. 7, in step S71, the refinement unit 111C determines whether specific conditions for applying refinement processing are satisfied. When all the specific conditions are satisfied, the process proceeds to step S72. On the other hand, when any of the specific conditions is not satisfied, the process proceeds to step S75 and the refinement processing ends.

此处,特定条件包括该块是进行双向预测的块这一条件。Here, the specific condition includes the condition that the block is a block to be bidirectionally predicted.

并且,特定条件也可以包括如下条件:L0侧的参考帧及L1侧的参考帧中的任一方相对于该帧来说在时间上为过去的帧,另一参考帧相对于该帧来说在时间上为后续的帧,且L0侧与L1侧的距该帧的时间距离(例如,POC(Picture Order Count,图像序列号)的差的绝对值)相等。Furthermore, the specific conditions may also include the following conditions: either the reference frame on the L0 side or the reference frame on the L1 side is a past frame in time relative to the frame, the other reference frame is a subsequent frame in time relative to the frame, and the time distances of the L0 side and the L1 side from the frame (for example, the absolute value of the difference in POC (Picture Order Count)) are equal.

并且,特定条件也可以包括运动矢量在合并模式下被编码这一条件。Furthermore, the specific condition may also include a condition that the motion vector is encoded in the merge mode.

并且,特定条件也可以包括如下条件:在该块所属的序列的SPS 141中,“sps_dmvr_enabled_flag”的值表示在该序列中可使用DMVR(例如,该标志的值为“1”)。Furthermore, the specific condition may also include the following condition: in the SPS 141 of the sequence to which the block belongs, the value of "sps_dmvr_enabled_flag" indicates that DMVR can be used in the sequence (for example, the value of the flag is "1").

此外,特定条件也可以包括如下条件:在该块所属的切片的切片头部143A/143B中,“slice_disable_bdof_dmvr_prof_flag”的值表示在该切片中可使用DMVR(例如,该标志的值为“0”)。Furthermore, the specific condition may include the following condition: in the slice header 143A/143B of the slice to which the block belongs, the value of "slice_disable_bdof_dmvr_prof_flag" indicates that DMVR can be used in the slice (for example, the value of the flag is "0").

在步骤S72中,细化部111C基于由运动矢量编码部111B编码的运动矢量及参考帧的信息,生成搜索用图像。In step S72 , the thinning unit 111C generates a search image based on the motion vector encoded by the motion vector encoding unit 111B and the information of the reference frame.

此处,当运动矢量指向非整数像素位置时,细化部111C应用滤波器将非整数像素位置的像素内插至参考帧的像素值。此时,细化部111C能够通过使用抽头数比下述预测信号生成部111D中使用的内插滤波器少的内插滤波器,来削减运算量。例如,细化部111C可以通过双线性插值来内插非整数像素位置的像素值。Here, when the motion vector points to a non-integer pixel position, the thinning section 111C applies a filter to interpolate the pixel at the non-integer pixel position to the pixel value of the reference frame. At this time, the thinning section 111C can reduce the amount of calculation by using an interpolation filter having a smaller number of taps than the interpolation filter used in the prediction signal generation section 111D described below. For example, the thinning section 111C can interpolate the pixel value at the non-integer pixel position by bilinear interpolation.

在步骤S73中,细化部111C使用步骤S72中生成的搜索用图像,以整数像素精度进行搜索。此处,整数像素精度是指以由运动矢量编码部111B编码的运动矢量为基准,仅搜索间隔整数像素的点。In step S73, the thinning unit 111C searches with integer pixel accuracy using the search image generated in step S72. Here, integer pixel accuracy means searching only points that are integer pixel apart based on the motion vector encoded by the motion vector encoding unit 111B.

细化部111C通过步骤S72的搜索来确定整数像素间隔位置处的修正后运动矢量。作为搜索方法,可以使用已知的方法。The thinning section 111C determines the corrected motion vector at the integer pixel interval position by searching in step S72. As a search method, a known method can be used.

例如,细化部111C也可以利用如下方法进行搜索:仅搜索仅将L0侧及L1侧的差分运动矢量的符号反转所得的组合所对应的点。在搜索时,细化部111C例如也可以在各搜索点处算出搜索成本,并在搜索成本最小的搜索点处对运动矢量进行修正。For example, the refinement unit 111C may perform a search by searching only points corresponding to a combination obtained by inverting the signs of the differential motion vectors on the L0 side and the L1 side. During the search, the refinement unit 111C may calculate a search cost at each search point and correct the motion vector at the search point with the minimum search cost.

此处,细化部111C也可以按照仅使与由运动矢量编码部111B编码的运动矢量对应的搜索点处的搜索成本减小的方式算出搜索成本。例如,关于该搜索点,细化部111C也可以将使利用与其他搜索点同样的方法算出的搜索成本减小至3/4所得的值设定为该搜索点的最终搜索成本。Here, the refinement unit 111C may calculate the search cost so as to reduce the search cost only at the search point corresponding to the motion vector encoded by the motion vector encoding unit 111B. For example, the refinement unit 111C may set a value obtained by reducing the search cost calculated by the same method as other search points to 3/4 as the final search cost of the search point.

步骤S73中的搜索结果也可能是与搜索前的运动矢量相同的值。The search result in step S73 may also be the same value as the motion vector before the search.

在步骤S74中,细化部111C以步骤S73中确定的整数像素精度的修正后运动矢量为初始值,以非整数像素精度进行运动矢量的搜索。作为运动矢量的搜索方法,可以使用已知的方法。In step S74, the thinning unit 111C uses the corrected motion vector with integer pixel accuracy determined in step S73 as an initial value and searches for a motion vector with non-integer pixel accuracy. As a method for searching a motion vector, a known method can be used.

并且,细化部111C也可以在实际上未进行搜索的情况下,将步骤S73的结果作为输入,使用抛物线拟合等参数模型来确定非整数像素精度的矢量。Furthermore, the refinement unit 111C may use the result of step S73 as input and determine a vector with non-integer pixel accuracy using a parametric model such as parabola fitting without actually performing a search.

细化部111C在步骤S74中确定非整数像素精度的修正后运动矢量后,移至步骤S45,结束细化处理。此处,为方便起见,使用了非整数像素精度的修正后运动矢量这样的表达,但根据步骤S74的搜索结果,结果也可能是与步骤S73中求出的整数像素精度的运动矢量相同的值。After determining the corrected motion vector of non-integer pixel accuracy in step S74, the refinement unit 111C moves to step S45 to end the refinement process. Here, for convenience, the expression of the corrected motion vector of non-integer pixel accuracy is used, but depending on the search result of step S74, the result may be the same value as the motion vector of integer pixel accuracy obtained in step S73.

细化部111C也可以将大于预定阈值的块分割为较小的子块,并对每个子块执行细化处理。例如,细化部111C可以预先将细化处理的执行单位设定为16×16像素,当块的水平方向或垂直方向的尺寸大于16像素时,分别分割成16像素以下。此时,对于同一块内的所有子块,使用由运动矢量编码部111B编码的该块的运动矢量,作为细化处理的基准运动矢量。The thinning unit 111C may also divide a block larger than a predetermined threshold into smaller sub-blocks and perform thinning processing on each sub-block. For example, the thinning unit 111C may set the execution unit of the thinning processing to 16×16 pixels in advance, and when the horizontal or vertical size of the block is larger than 16 pixels, it is divided into smaller blocks of 16 pixels. In this case, for all sub-blocks in the same block, the motion vector of the block encoded by the motion vector encoding unit 111B is used as the reference motion vector for the thinning processing.

当对每个子块进行处理时,细化部111C可以对每个子块执行图7的所有步骤。并且,细化部111C也可以仅对每个子块进行图7的部分处理。具体来说,细化部111C可以对每个块进行图7的步骤S71及S72的处理,且对每个子块进行步骤S73及S74的处理。When processing each sub-block, the refinement unit 111C may perform all the steps of FIG7 on each sub-block. In addition, the refinement unit 111C may perform only part of the processing of FIG7 on each sub-block. Specifically, the refinement unit 111C may perform the processing of steps S71 and S72 of FIG7 on each block, and perform the processing of steps S73 and S74 on each sub-block.

预测信号生成部111D构成为基于从细化部111C输出的经修正的运动矢量来生成预测信号。The prediction signal generation unit 111D is configured to generate a prediction signal based on the corrected motion vector output from the refinement unit 111C.

此处,如下所述,预测信号生成部111D构成为基于上述细化处理过程中算出的信息(例如搜索成本),来判断是否对每个块进行BDOF处理。Here, as described below, the prediction signal generation unit 111D is configured to determine whether to perform the BDOF process on each block based on the information (for example, the search cost) calculated in the above-mentioned thinning process.

具体来说,当运动矢量未被修正时,预测信号生成部111D构成为基于由运动矢量编码部111B编码的运动矢量来生成预测信号。另一方面,当运动矢量被修正时,预测信号生成部111D构成为基于由细化部111C修正的运动矢量来生成预测信号。Specifically, when the motion vector is not corrected, the prediction signal generator 111D is configured to generate a prediction signal based on the motion vector encoded by the motion vector encoder 111B. On the other hand, when the motion vector is corrected, the prediction signal generator 111D is configured to generate a prediction signal based on the motion vector corrected by the refinement unit 111C.

图8是示出预测信号生成部111D的处理顺序的一个例子的流程图。此处,当利用细化部111C以子块为单位进行细化处理时,预测信号生成部111D的处理也以子块为单位执行。此时,以下说明中的块这一术语可以适当替换为子块。8 is a flowchart showing an example of the processing sequence of the prediction signal generating unit 111D. Here, when the refinement unit 111C performs refinement processing in units of sub-blocks, the processing of the prediction signal generating unit 111D is also performed in units of sub-blocks. In this case, the term "block" in the following description can be appropriately replaced with "sub-block".

如图8所示,在步骤S81中,预测信号生成部111D生成预测信号。As shown in FIG. 8 , in step S81 , the prediction signal generation unit 111D generates a prediction signal.

具体来说,预测信号生成部111D将由运动矢量编码部111B编码的运动矢量或由细化部111C编码的运动矢量作为输入,当该运动矢量所指的位置为非整数像素位置时,应用滤波器将非整数像素位置的像素内插至参考帧的像素值。此处,关于具体的滤波器,可以应用非专利文献1中所揭示的最大8抽头的水平垂直可分离型滤波器。Specifically, the prediction signal generation unit 111D receives the motion vector encoded by the motion vector encoding unit 111B or the motion vector encoded by the thinning unit 111C as input, and when the position indicated by the motion vector is a non-integer pixel position, applies a filter to interpolate the pixel at the non-integer pixel position to the pixel value of the reference frame. Here, as for the specific filter, a horizontally and vertically separable filter with a maximum of 8 taps disclosed in Non-Patent Document 1 can be applied.

当该块是进行双向预测的块时,预测信号生成部111D生成基于第一组(以下称为L0)参考帧与运动矢量的预测信号、及基于第二组(以下称为L1)参考帧与运动矢量的预测信号这两者。When the block is a bidirectionally predicted block, the prediction signal generator 111D generates both a prediction signal based on a first set (hereinafter referred to as L0) of reference frames and motion vectors and a prediction signal based on a second set (hereinafter referred to as L1) of reference frames and motion vectors.

在步骤S82中,预测信号生成部111D针对每个块确认是否满足下述BDOF处理的应用条件。In step S82 , the prediction signal generation unit 111D checks for each block whether or not the application conditions of the BDOF process described below are satisfied.

作为该应用条件,至少包括该块是进行双向预测的块这一条件。The application condition includes at least the condition that the block is a block to be bidirectionally predicted.

并且,应用条件也可以包括如下条件:在细化部111C在步骤S73中的整数像素位置搜索中,上述搜索成本最小的搜索点的搜索成本大于预定阈值或为预定阈值以上。Furthermore, the application condition may also include the following condition: in the integer pixel position search performed by the refinement unit 111C in step S73 , the search cost of the search point with the minimum search cost is greater than or equal to a predetermined threshold.

并且,特定条件也可以包括如下条件:在该块所属的序列的SPS 141中,“sps_bdof_enabled_flag”的值表示在该序列中可使用BDOF(例如,该标志的值为“1”)。Furthermore, the specific condition may also include the following condition: in the SPS 141 of the sequence to which the block belongs, the value of "sps_bdof_enabled_flag" indicates that BDOF can be used in the sequence (for example, the value of the flag is "1").

并且,应用条件也可以包括如下条件:在该块所属的切片的切片头部143A/143B中,“slice_disable_bdof_dmvr_prof_flag”的值表示在该切片中可使用BDOF处理(例如,该标志的值为“0”)。Furthermore, the application condition may also include the following condition: in the slice header 143A/143B of the slice to which the block belongs, the value of "slice_disable_bdof_dmvr_prof_flag" indicates that BDOF processing can be used in the slice (for example, the value of the flag is "0").

并且,应用条件也可以包括如下条件:L0侧的参考帧及L1侧的参考帧中的任一方相对于该帧来说在时间上为过去的帧,另一参考帧相对于该帧来说在时间上为后续的帧,且L0侧与L1侧的距该帧的时间距离(例如,POC的差的绝对值)的比率为预定比率。Furthermore, the application conditions may also include the following conditions: either the reference frame on the L0 side or the reference frame on the L1 side is a past frame in time relative to the frame, the other reference frame is a subsequent frame in time relative to the frame, and the ratio of the time distances of the L0 side and the L1 side from the frame (for example, the absolute value of the difference in POC) is a predetermined ratio.

此处,作为比率的确定方法,例如可以按照如下方式进行确定:与使用下述BDOF处理中的L0侧及L1侧的梯度或亮度值进行运算时的权重系数的倒数成正比。Here, as a method of determining the ratio, for example, the ratio may be determined in a manner proportional to the inverse of a weight coefficient when performing calculations using gradients or brightness values on the L0 side and the L1 side in the BDOF process described below.

例如,当将L0侧的权重系数设为“2/3”,且将L1侧的权重系数设为“1/3”时,作为参考帧的距离的比率,若将L0与该帧间的距离设为“1”,则L1与该帧间的距离为“2”,只有在该情况下,才应用BDOF处理。For example, when the weight coefficient on the L0 side is set to "2/3" and the weight coefficient on the L1 side is set to "1/3", as the ratio of the distance to the reference frame, if the distance between L0 and the frame is set to "1", then the distance between L1 and the frame is "2". Only in this case is BDOF processing applied.

同样地,例如,当将L0侧的权重系数设为“1/2”,且将L1侧的权重系数设为“1/2”时,作为参考帧的距离的比率,若将L0与该帧间的距离设为“1”,则L1与该帧间的距离为“1”,即,该帧与L0之间的距离等于该帧与L1之间的距离,只有在该情况下,才应用BDOF处理。Similarly, for example, when the weight coefficient on the L0 side is set to "1/2" and the weight coefficient on the L1 side is set to "1/2", as a ratio of the distance between L0 and the frame, the distance between L1 and the frame is "1", that is, the distance between the frame and L0 is equal to the distance between the frame and L1. Only in this case is BDOF processing applied.

即,预测信号生成部111D也可以包括如下条件作为该应用条件:以与使用两个参考帧(L0/L1)各自的像素值或根据两个参考帧(L0/L1)的像素值算出的各自的值进行运算时的权重系数的倒数成正比的方式,和两个参考帧(L0/L1)与该帧的时间距离相关。That is, the prediction signal generating unit 111D may also include the following condition as the application condition: the two reference frames (L0/L1) are related to the temporal distance between the frame and the frame in a manner that is proportional to the inverse of the weight coefficient when performing calculations using the respective pixel values of the two reference frames (L0/L1) or the respective values calculated based on the pixel values of the two reference frames (L0/L1).

并且,预测信号生成部111D也可以包括如下条件作为该应用条件:当该权重系数相等时,作为与该时间距离相关的条件,两个参考帧(L0/L1)各自与该帧的时间距离相等。Furthermore, the prediction signal generating unit 111D may include the following condition as the application condition: when the weight coefficients are equal, as a condition related to the temporal distance, the temporal distances between the two reference frames (L0/L1) and the frame are equal.

另外,此处,以权重系数为“1/2”的情形为例进行了说明,但当在L0侧与L1侧使用相同权重(例如,也可以为“1”)时,仅在该帧与L0之间的距离等于该帧与L1之间的距离的情况下,才应用BDOF处理。In addition, here, the case where the weight coefficient is "1/2" is used as an example, but when the same weight is used on the L0 side and the L1 side (for example, it can also be "1"), BDOF processing is applied only when the distance between the frame and L0 is equal to the distance between the frame and L1.

当判断出满足该应用条件时,本处理顺序移至步骤S83,当不满足该应用条件时,本处理顺序移至步骤S84。When it is determined that the application condition is met, the processing sequence moves to step S83, and when it is determined that the application condition is not met, the processing sequence moves to step S84.

在步骤S83中,预测信号生成部111D执行BDOF处理,并生成预测信号。BDOF处理的处理本身可以使用已知的方法,因此,仅对概况进行说明,省略其详细说明。In step S83, the prediction signal generation unit 111D performs BDOF processing and generates a prediction signal. The BDOF processing itself can use a known method, and therefore, only an overview is described, and a detailed description thereof is omitted.

第一,预测信号生成部111D对该块的参考块内的各像素算出垂直方向及水平方向的亮度值的梯度。作为具体的算出方法,例如可以使用非专利文献1所述的方法来算出。此处,将L0的水平方向的梯度称为“gradientHL0”,将L0的垂直方向的梯度称为“gradientVL0”,将L1的水平方向的梯度称为“gradientHL1”,将L1的垂直方向的梯度称为“gradientVL1”。First, the prediction signal generation unit 111D calculates the gradient of the brightness value in the vertical direction and the horizontal direction for each pixel in the reference block of the block. As a specific calculation method, for example, the method described in non-patent document 1 can be used for calculation. Here, the horizontal gradient of L0 is called "gradientHL0", the vertical gradient of L0 is called "gradientVL0", the horizontal gradient of L1 is called "gradientHL1", and the vertical gradient of L1 is called "gradientVL1".

第二,预测信号生成部111D算出该块的校正MV(vx,vy)。作为具体的算出方法,例如可以使用非专利文献1所述的方法来算出。此处,上述梯度的和(tempH,tempV)及L0与L1的参考块间的亮度值差分(diff)是以如下方式算出,如非专利文献1所述,也可以用于算出上述(vx,vy)。Second, the prediction signal generation unit 111D calculates the correction MV (vx, vy) of the block. As a specific calculation method, for example, the method described in non-patent document 1 can be used for calculation. Here, the above-mentioned gradient sum (tempH, tempV) and the brightness value difference (diff) between the reference blocks L0 and L1 are calculated as follows, as described in non-patent document 1, and can also be used to calculate the above-mentioned (vx, vy).

diff=predSampleL0×weightL0-predSampleL1×weightL1diff=predSampleL0×weightL0-predSampleL1×weightL1

tempH=gradientHL0×weightL0+gradientHL1×weightL1tempH=gradientHL0×weightL0+gradientHL1×weightL1

tempV=gradientVL0×weightL0+gradientVL1×weightL1tempV=gradientVL0×weightL0+gradientVL1×weightL1

此处,“predSampleL0”及“predSampleL1”分别为L0及L1的参考块的亮度值,“weightL0”及“weightL1”分别为算出上述梯度及亮度值差分时的权重系数。Here, "predSampleL0" and "predSampleL1" are the brightness values of the reference blocks L0 and L1, respectively, and "weightL0" and "weightL1" are weight coefficients when calculating the above-mentioned gradient and brightness value difference, respectively.

此处,以“diff”、“tempH”、“tempV”这三个参数为例,对使用共同的权重的例子进行了说明,在对L0侧的信息及L1侧的信息进行加减乘除时,可以设定同样的权重。Here, an example of using common weights is described using the three parameters "diff", "tempH" and "tempV" as examples. The same weights can be set when adding, subtracting, multiplying and dividing information on the L0 side and information on the L1 side.

并且,也可以按照与该权重的倒数成正比的方式,像上述那样设定与距参考帧的距离相关的BDOF处理的应用条件。换句话说,也可以按照与该帧与L0及L1的各参考帧的距离的比的倒数成正比的方式,像上述那样设定加减乘除时的权重。Furthermore, the application conditions of the BDOF processing related to the distance from the reference frame may be set as described above in a manner proportional to the inverse of the weight. In other words, the weights for addition, subtraction, multiplication, and division may be set as described above in a manner proportional to the inverse of the ratio of the distance between the frame and each reference frame of L0 and L1.

通过以这种方式进行设定,当假设梯度或亮度值等在L0与L1之间线性变化时,可以对该帧的时间位置设定合适的权重系数。并且,能够通过设定与权重系数对应的BDOF处理的应用条件,来保证始终使用合适的权重系数。By setting in this way, when assuming that the gradient or brightness value changes linearly between L0 and L1, an appropriate weight coefficient can be set for the time position of the frame. In addition, by setting the application conditions of the BDOF processing corresponding to the weight coefficient, it is possible to ensure that an appropriate weight coefficient is always used.

第三,预测信号生成部111D使用上述所求出的梯度及校正MV,例如以如下方式算出各像素的亮度值校正量“bdofOffset。Thirdly, the prediction signal generation unit 111D uses the gradient and correction MV obtained as described above to calculate the brightness value correction amount "bdofOffset" of each pixel, for example, as follows.

bdofOffset=vx×(weightL0×gradientHL0―weightL1×gradientHL1)+vy×(weightL0×gradientVL0―weightL1×gradientVL1)bdofOffset=vx×(weightL0×gradientHL0―weightL1×gradientHL1)+vy×(weightL0×gradientVL0―weightL1×gradientVL1)

第四,预测信号生成部111D例如可以如非专利文献1所述,使用“bdofOffset”,算出各像素的校正后亮度值的预测值。Fourthly, the prediction signal generation unit 111D may calculate the prediction value of the corrected luminance value of each pixel using “bdofOffset” as described in Non-Patent Document 1, for example.

即,预测信号生成部111D构成为在BDOF处理中,基于使用两个参考帧(L0/L1)各自的像素值或根据两个参考帧(L0/L1)的像素值算出的各自的值进行运算时的权重系数,在上述应用条件中包括与两个参考帧与该帧的时间距离相关的条件。That is, the prediction signal generating unit 111D is configured to, in BDOF processing, use weight coefficients when performing calculations based on respective pixel values of two reference frames (L0/L1) or respective values calculated based on the pixel values of the two reference frames (L0/L1), wherein the above-mentioned application conditions include conditions related to the temporal distance between the two reference frames and the frame.

在实施BDOF处理后,本处理顺序移至步骤S85,结束处理。After the BDOF process is performed, the process sequence moves to step S85 and the process ends.

在步骤S84中,当该块是进行双向预测的块时,预测信号生成部111D对步骤S81中生成的L0与L1的预测信号进行合成,生成最终预测信号。关于具体的合成方法,可以使用已知的方法,因此,省略其详细说明。当该块是进行单向预测的块时,预测信号生成部111D直接将步骤S81中生成的预测信号作为最终预测信号。In step S84, when the block is a block for bidirectional prediction, the prediction signal generator 111D synthesizes the prediction signals of L0 and L1 generated in step S81 to generate a final prediction signal. As for the specific synthesis method, a known method can be used, so its detailed description is omitted. When the block is a block for unidirectional prediction, the prediction signal generator 111D directly uses the prediction signal generated in step S81 as the final prediction signal.

预测信号生成部111D在按照以上顺序生成最终预测信号后,移至步骤S85,结束处理。After generating the final prediction signal according to the above procedure, the prediction signal generating unit 111D moves to step S85 and ends the processing.

仿射运动矢量算出部111E构成为当由运动矢量搜索部111A确定在该块中进行仿射运动补偿时,基于由运动矢量编码部111B编码的控制点运动矢量,来算出将该块分割所得的每个子块的运动矢量。When the motion vector search unit 111A determines that affine motion compensation is to be performed on the block, the affine motion vector calculation unit 111E is configured to calculate a motion vector for each sub-block obtained by dividing the block based on the control point motion vector encoded by the motion vector encoding unit 111B.

图9是示出仿射运动矢量算出部111E的处理顺序的一个例子的流程图。FIG. 9 is a flowchart showing an example of the processing procedure of the affine motion vector calculation unit 111E.

如图9所示,在步骤S91中,仿射运动矢量算出部111E计算“dHorX”、“dhorY”、“dVerX”及“dVerY”共四个参数的值。As shown in FIG. 9 , in step S91 , the affine motion vector calculation unit 111E calculates values of four parameters, namely “dHorX”, “dhorY”, “dVerX”, and “dVerY”.

此处,仿射运动矢量算出部111E在计算参数时,使用由运动矢量编码部111B编码的控制点运动矢量的值。Here, the affine motion vector calculation unit 111E uses the value of the control point motion vector encoded by the motion vector encoding unit 111B when calculating the parameter.

如上所述,每个块有两个或三个控制点运动矢量。在图10中,示出了控制点运动矢量为三个(“CPMV0”、“CPMV1”、“CPMV2”)时的例子。As described above, each block has two or three control point motion vectors. Fig. 10 shows an example in which there are three control point motion vectors ("CPMV0", "CPMV1", "CPMV2").

此处,在图10中,实线表示该块的边界,虚线表示将该块分割所得的子块的边界,实线箭头表示控制点运动矢量,虚线箭头表示各子块的运动矢量。Here, in FIG. 10 , the solid line indicates the boundary of the block, the dotted line indicates the boundary of the sub-blocks obtained by dividing the block, the solid arrow indicates the control point motion vector, and the dotted arrow indicates the motion vector of each sub-block.

当控制点运动矢量为两个时,为仅有图10的CPMV0及CPMV1的状态。根据控制点运动矢量的值计算“dHorX”、“dhorY”、“dVerX”及“dVerY”共四个参数的值的具体方法可以使用已知的方法,因此,省略其详细说明。When there are two control point motion vectors, there are only CPMV0 and CPMV1 in Figure 10. The specific method of calculating the values of the four parameters "dHorX", "dhorY", "dVerX" and "dVerY" according to the values of the control point motion vectors can use a known method, so its detailed description is omitted.

在步骤S92中,仿射运动矢量算出部111E确定是否对该块应用“fallbackMode”。In step S92 , the affine motion vector calculation unit 111E determines whether to apply “fallbackMode” to the block.

此处,“fallbackMode”是在将该块分割所得的所有子块中使用同一运动矢量的模式。“fallbackMode”的判断方法可以使用已知的方法,因此,省略其详细说明。当对该块应用“fallbackMode”时,本处理顺序前进至步骤S93,当不对该块应用“fallbackMode”时,本处理顺序前进至步骤S94。Here, "fallbackMode" is a mode in which the same motion vector is used in all sub-blocks obtained by dividing the block. A known method can be used for determining "fallbackMode", so its detailed description is omitted. When "fallbackMode" is applied to the block, the processing sequence proceeds to step S93, and when "fallbackMode" is not applied to the block, the processing sequence proceeds to step S94.

在步骤S93中,仿射运动矢量算出部111E算出使用“fallbackMode”时的各子块的运动矢量。In step S93 , the affine motion vector calculation unit 111E calculates the motion vector of each sub-block when “fallbackMode” is used.

如上所述,当为“fallbackMode”时,同一块内的所有子块的运动矢量的值相同。具体的算出方法可以使用已知的方法,因此,省略其详细说明。As described above, when the mode is "fallbackMode", the motion vector values of all sub-blocks in the same block are the same. A known method can be used as a specific calculation method, and therefore, a detailed description thereof is omitted.

例如,在非专利文献1中,将上述“dHorX”、“dHorY”、“dVerX”及“dVerY”的值、及以该块的左上方的坐标为原点时的块中央的坐标值(分别使该块的高度及宽度为“1/2”所得的值)代入预定模型,来算出运动矢量。本处理顺序在步骤S93完成后,移至步骤S97,结束处理。For example, in Non-Patent Document 1, the values of the above-mentioned "dHorX", "dHorY", "dVerX", and "dVerY" and the coordinate value of the center of the block when the coordinates of the upper left corner of the block are taken as the origin (values obtained by setting the height and width of the block to "1/2" respectively) are substituted into a predetermined model to calculate a motion vector. After step S93 is completed, this processing sequence moves to step S97 and ends the processing.

在步骤S94中,仿射运动矢量算出部111E算出不应用“fallbackMode”时的各子块的运动矢量。具体的算出方法可以使用已知的方法,因此,省略其详细说明。In step S94, the affine motion vector calculation unit 111E calculates the motion vector of each sub-block when the "fallbackMode" is not applied. A known method can be used as a specific calculation method, and therefore, a detailed description thereof is omitted.

例如,在非专利文献1中,将“dHorX”、“dHorY”、“dVerX”及“dVerY”的值、及以该块的左上方的坐标为原点时的各子块中央的坐标值代入预定模型,来算出运动矢量。本处理顺序在步骤S94结束后,移至步骤S95。For example, in non-patent document 1, the values of "dHorX", "dHorY", "dVerX", and "dVerY" and the coordinate values of the center of each sub-block when the coordinates of the upper left corner of the block are taken as the origin are substituted into a predetermined model to calculate a motion vector. After step S94, this processing sequence moves to step S95.

在步骤S95中,仿射运动矢量算出部111E判断是否满足在该块中应用PROF处理的条件。In step S95 , the affine motion vector calculation unit 111E determines whether or not the conditions for applying the PROF process to the block are satisfied.

应用条件可以包括“sps_affine_prof_enabled_flag”的值为“1”这一条件。The application condition may include a condition that the value of "sps_affine_prof_enabled_flag" is "1".

并且,应用条件也可以包括“slice_disable_bdof_dmvr_prof_flag”的值表示在该切片中可使用PROF处理(例如,该标志的值为“0”)这一条件。Furthermore, the application condition may include a condition that the value of "slice_disable_bdof_dmvr_prof_flag" indicates that PROF processing can be used in the slice (for example, the value of the flag is "0").

此外,应用条件也可以包括不对该块应用“fallbackMode”这一条件。Furthermore, the application condition may include a condition that "fallbackMode" is not applied to the block.

仿射运动矢量算出部111E在判断出满足所有应用条件时,确定对该块应用PROF处理,本处理顺序前进至步骤S96。在除此以外的情况下,确定不对该块应用PROF处理,本处理顺序移至步骤S97,结束处理。When the affine motion vector calculation unit 111E determines that all application conditions are satisfied, it determines that the PROF process is applied to the block, and the process proceeds to step S96. Otherwise, it determines that the PROF process is not applied to the block, and the process proceeds to step S97 to end the process.

以上示出了仿射运动矢量算出部111E判断是否满足所有应用条件的例子,但仿射运动矢量算出部111E也可以通过逻辑上等效的其他方法来判断。The above shows an example in which the affine motion vector calculation unit 111E determines whether all the application conditions are satisfied. However, the affine motion vector calculation unit 111E may determine by other logically equivalent methods.

具体来说,也可以使上述所有应用条件反转,且定义为不应用PROF处理的条件,仿射运动矢量算出部111E在任一情况符合不应用的条件时,确定不对该块应用PROF处理,前进至步骤S97,在均不符合不应用的条件时,确定对该块应用PROF处理,前进至步骤S96。Specifically, all the above-mentioned application conditions can also be reversed and defined as conditions for not applying PROF processing. When any situation meets the non-application conditions, the affine motion vector calculation unit 111E determines not to apply PROF processing to the block and proceeds to step S97. When none of the non-application conditions are met, it is determined to apply PROF processing to the block and proceeds to step S96.

与上述例子对应的不应用PROF处理的条件可以按照如下方式定义。The conditions for not applying PROF processing corresponding to the above example can be defined as follows.

该不应用的条件可以包括“sps_affine_prof_enabled_flag”的值为“0”这一条件。The non-application condition may include a condition that the value of "sps_affine_prof_enabled_flag" is "0".

并且,该不应用的条件也可以包括“slice_disable_bdof_dmvr_prof_flag”的值表示在该切片中禁止使用PROF处理(例如,该标志的值为“1”)这一条件。Furthermore, the non-application condition may include a condition that the value of "slice_disable_bdof_dmvr_prof_flag" indicates that the use of PROF processing in the slice is prohibited (for example, the value of the flag is "1").

此外,该不应用的条件也可以包括对该块应用“fallbackMode”这一条件。Furthermore, the non-application condition may also include a condition that "fallbackMode" is applied to the block.

在步骤S96中,仿射运动矢量算出部111E算出PROF处理中使用的“diffMV”的值。例如,对以各子块的左上方的坐标为原点时的各像素位置,算出“diffMV”的值。另外,当该块内的各子块的尺寸相同时(例如,4×4像素),算出一个子块的各像素位置的“diffMV”,便可以在其他子块中沿用该值。In step S96, the affine motion vector calculation unit 111E calculates the value of "diffMV" used in the PROF process. For example, the value of "diffMV" is calculated for each pixel position when the coordinates of the upper left corner of each sub-block are taken as the origin. In addition, when the size of each sub-block in the block is the same (for example, 4×4 pixels), the value of "diffMV" calculated for each pixel position of one sub-block can be used in other sub-blocks.

例如,可以按照如下方式算出“diffMV”。For example, "diffMV" can be calculated as follows.

diffMV[x][y][0]=x×(dHorX<<2)+y×(dVerX<<2)-posOffsetXdiffMV[x][y][0]=x×(dHorX<<2)+y×(dVerX<<2)-posOffsetX

diffMV[x][y][1]=x×(dHorY<<2)+y×(dVerY<<2)-posOffsetY此处,x、y表示以各子块的左上方的坐标为原点时的各像素位置(x,y),[0]表示“diffMV”的x方向分量,[1]表示“diffMV”的y方向分量。diffMV[x][y][1]=x×(dHorY<<2)+y×(dVerY<<2)-posOffsetYHere, x and y represent the positions of each pixel (x, y) with the coordinates of the upper left corner of each sub-block as the origin, [0] represents the x-direction component of "diffMV", and [1] represents the y-direction component of "diffMV".

另外,以下关系成立。In addition, the following relationship holds.

posOffsetX=6×dHorX+6×dVerXposOffsetX=6×dHorX+6×dVerX

posOffsetY=6×dHorY+6×dVerYposOffsetY=6×dHorY+6×dVerY

之后,如非专利文献1所述,仿射运动矢量算出部111E进行右移及限幅处理。Thereafter, as described in Non-Patent Document 1, the affine motion vector calculation unit 111E performs right shift and clipping processing.

在算出“diffMV”后,本处理顺序移至步骤S97,结束处理。After calculating "diffMV", the processing sequence moves to step S97 and ends the processing.

以上说明是关于该块中的一个参考帧的处理。例如,当为具有两个参考帧的双向预测时,对L0及L1分别执行上述步骤S91至S97的处理。因此,对于L0及L1,是否应用PROF处理的判断结果或“diffMV”的算出结果可能会分别不同。The above description is about the processing of one reference frame in the block. For example, when it is a bidirectional prediction with two reference frames, the processing of steps S91 to S97 is performed on L0 and L1 respectively. Therefore, the judgment result of whether to apply PROF processing or the calculation result of "diffMV" may be different for L0 and L1 respectively.

图11是示出仿射预测信号生成部111F的处理的一个例子的流程图。FIG. 11 is a flowchart showing an example of processing of the affine prediction signal generating unit 111F.

仿射预测信号生成部111F构成为当“slice_disable_bdof_dmvr_prof_flag”表示在与切片头部对应的切片内可使用PROF处理时(标志的值为“0”时),进行PROF处理,当表示不可使用PROF处理时(标志的值为“1”时),不进行PROF处理,来生成预测信号。The affine prediction signal generating unit 111F is configured to generate a prediction signal by performing PROF processing when "slice_disable_bdof_dmvr_prof_flag" indicates that PROF processing can be used in the slice corresponding to the slice header (when the value of the flag is "0"), and not performing PROF processing when it indicates that PROF processing cannot be used (when the value of the flag is "1").

另外,仿射预测信号生成部111F也可以构成为当在切片头部中不包含“slice_disable_bdof_dmvr_prof_flag”时,隐含地解释为该标志表示可使用(标志的值为“0”)来进行处理。Furthermore, the affine prediction signal generator 111F may be configured to implicitly interpret that, when the slice header does not include “slice_disable_bdof_dmvr_prof_flag”, the flag indicates that the flag can be used (the value of the flag is “0”) and perform processing.

在步骤S111中,仿射预测信号生成部111F生成预测信号。In step S111 , the affine prediction signal generation unit 111F generates a prediction signal.

具体来说,仿射预测信号生成部111F将由仿射运动矢量算出部111E算出的每个子块的运动矢量作为输入,当该运动矢量所指的位置为非整数像素位置时,应用滤波器将非整数像素位置的像素内插至参考帧的像素值。此处,关于具体的滤波器,可以应用非专利文献1中所揭示的最大6抽头的水平垂直可分离型滤波器。Specifically, the affine prediction signal generating unit 111F takes the motion vector of each sub-block calculated by the affine motion vector calculating unit 111E as input, and when the position indicated by the motion vector is a non-integer pixel position, applies a filter to interpolate the pixel at the non-integer pixel position to the pixel value of the reference frame. Here, as for the specific filter, a horizontally and vertically separable filter with a maximum of 6 taps disclosed in Non-Patent Document 1 can be applied.

当该块是进行双向预测的块时,仿射预测信号生成部111F生成L0及L1的预测信号这两者。When the block is a block to be bidirectionally predicted, the affine prediction signal generator 111F generates both prediction signals of L0 and L1.

在步骤S112中,仿射预测信号生成部111F判断在该块的该预测方向(L0或L1)上是否应用PROF处理。在该判断中,可直接使用上述步骤S95中的判断结果。In step S112, the affine prediction signal generation unit 111F determines whether PROF processing is applied to the prediction direction (L0 or L1) of the block. In this determination, the determination result in step S95 can be used directly.

当判断出在该块的该预测方向上应用PROF处理时,本处理顺序前进至步骤S113。另一方面,当判断出在该块的该预测方向上不应用PROF处理时,本处理顺序前进至步骤S114。When it is determined that the PROF process is applied to the prediction direction of the block, the process sequence proceeds to step S113. On the other hand, when it is determined that the PROF process is not applied to the prediction direction of the block, the process sequence proceeds to step S114.

在步骤S113中,仿射预测信号生成部111F执行PROF处理。PROF处理的具体处理可以使用已知的方法,因此,省略其详细说明。仿射预测信号生成部111F通过PROF处理进行预测信号的校正。In step S113, the affine prediction signal generation unit 111F performs PROF processing. The specific processing of the PROF processing can use a known method, so its detailed description is omitted. The affine prediction signal generation unit 111F corrects the prediction signal through the PROF processing.

在步骤S114中,当该块是进行双向预测的块时,仿射预测信号生成部111F对步骤S111中生成的L0与L1的预测信号、或在步骤S113中校正该预测信号所得的预测信号进行合成,生成最终预测信号。具体的合成方法可以使用已知的方法,因此,省略其详细说明。当该块是进行单向预测的块时,仿射预测信号生成部111F将步骤S111中生成的预测信号、或在步骤S113中校正该预测信号所得的预测信号直接作为最终预测信号。In step S114, when the block is a block for bidirectional prediction, the affine prediction signal generator 111F synthesizes the prediction signals of L0 and L1 generated in step S111 or the prediction signal obtained by correcting the prediction signal in step S113 to generate a final prediction signal. The specific synthesis method can use a known method, so its detailed description is omitted. When the block is a block for unidirectional prediction, the affine prediction signal generator 111F directly uses the prediction signal generated in step S111 or the prediction signal obtained by correcting the prediction signal in step S113 as the final prediction signal.

在最终预测信号的生成完成后,本处理顺序移至步骤S115,结束处理。After the generation of the final prediction signal is completed, the processing sequence moves to step S115 and ends the processing.

在以上例子中,为方便起见,将预测信号生成部111D与仿射预测信号生成部111F作为不同的处理块进行了说明,但它们的部分处理可共用,也可以设为单一的处理块。In the above example, for convenience, the prediction signal generation unit 111D and the affine prediction signal generation unit 111F are described as different processing blocks, but part of their processing may be shared or may be set as a single processing block.

例如,步骤S81与S111、以及步骤S84与步骤S114可以视为相同的处理。For example, step S81 and step S111 , and step S84 and step S114 may be regarded as the same process.

在该情况下,若在图8的步骤S82中判断为“否”之后,依次执行图10的步骤S112、S113及S114,便可以将图8及图10的流程图整合起来,视为单一的处理块。此时,以块为单位排他地应用BDOF处理及PROF处理。In this case, if the determination in step S82 of FIG8 is "No", steps S112, S113 and S114 of FIG10 are executed in sequence, the flowcharts of FIG8 and FIG10 can be integrated and regarded as a single processing block. In this case, the BDOF process and the PROF process are exclusively applied in units of blocks.

(环路滤波处理部150)(Loop Filter Processing Unit 150)

下面,对本实施方式的环路滤波处理部150进行说明。图12是示出本实施方式的环路滤波处理部150的图。Next, the loop filter processing unit 150 of the present embodiment will be described. Fig. 12 is a diagram showing the loop filter processing unit 150 of the present embodiment.

如图12所示,环路滤波处理部150包括块边界检测部151、边界强度判断部153、滤波确定部154及滤波处理部155。As shown in FIG. 12 , the loop filter processing section 150 includes a block boundary detection section 151 , a boundary strength determination section 153 , a filter determination section 154 , and a filter processing section 155 .

此处,末尾标注有“A”的构成是与垂直方向的块边界的解块滤波处理相关的构成,末尾标注有“B”的构成是与水平方向的块边界的解块滤波处理相关的构成。Here, the configuration with "A" at the end is a configuration related to the deblocking filtering process at the block boundary in the vertical direction, and the configuration with "B" at the end is a configuration related to the deblocking filtering process at the block boundary in the horizontal direction.

下面,例示在进行垂直方向的块边界的解块滤波处理后,进行水平方向的块边界的解块滤波处理的情况。The following describes an example of a case where a deblocking filtering process is performed on a block boundary in the horizontal direction after a deblocking filtering process is performed on a block boundary in the vertical direction.

如上所述,解块滤波处理可以应用于编码块,可以应用于预测块,也可以应用于变换块。并且,解块滤波处理也可以应用于将上述各块分割所得的子块。即,对象块及相邻块可以是编码块,可以是预测块,可以是变换块,也可以是将它们分割所得的子块。As described above, the deblocking filter process can be applied to a coding block, a prediction block, or a transform block. Furthermore, the deblocking filter process can also be applied to sub-blocks obtained by dividing the above blocks. That is, the target block and the adjacent block can be a coding block, a prediction block, a transform block, or sub-blocks obtained by dividing them.

在子块的定义中,包括作为细化部111C及预测信号生成部111D的处理单位所说明的子块。并且,在子块的定义中,包括作为仿射运动矢量算出部111E及仿射预测信号生成部111F的处理单位所说明的子块。当对子块应用解块滤波时,可以适当将以下说明中的块替换为子块。The definition of a sub-block includes the sub-block described as the processing unit of the refinement unit 111C and the prediction signal generation unit 111D. In addition, the definition of a sub-block includes the sub-block described as the processing unit of the affine motion vector calculation unit 111E and the affine prediction signal generation unit 111F. When deblocking filtering is applied to a sub-block, the block in the following description can be appropriately replaced with a sub-block.

由于垂直方向的块边界的解块滤波处理与水平方向的块边界的解块滤波处理是同样的处理,所以下面对垂直方向的块边界的解块滤波处理进行说明。Since the deblocking filtering process for the block boundary in the vertical direction is the same as the deblocking filtering process for the block boundary in the horizontal direction, the deblocking filtering process for the block boundary in the vertical direction will be described below.

块边界检测部151A构成为基于表示块尺寸的控制数据,来检测块的边界。此处,块是编码块(CU)、预测块(PU)、变换块(TU)。具体的检测方法可应用已知的方法,因此,省略其详细说明。The block boundary detection unit 151A is configured to detect the block boundary based on the control data indicating the block size. Here, the block is a coding block (CU), a prediction block (PU), or a transform block (TU). A known method can be applied to the specific detection method, so its detailed description is omitted.

边界强度判断部153A构成为判断对象块与相邻块的块边界的边界强度。The boundary strength determination unit 153A is configured to determine the boundary strength of the block boundary between the target block and the adjacent block.

边界强度判断部153A还可以构成为基于表示对象块及相邻块是否是帧内预测块的控制数据,来判断块边界的边界强度。The boundary strength determination unit 153A may be configured to determine the boundary strength of the block boundary based on control data indicating whether the target block and the adjacent block are intra-prediction blocks.

例如,如图13所示,边界强度判断部153A也可以构成为当对象块及相邻块中的至少任一个块是帧内预测块时(即,块边界两侧的块中的至少任一个是帧内预测块时),判断块边界的边界强度为“2”。For example, as shown in Figure 13, the boundary strength judgment unit 153A can also be configured to judge that the boundary strength of the block boundary is "2" when at least one of the object block and the adjacent blocks is an intra-frame prediction block (that is, when at least one of the blocks on both sides of the block boundary is an intra-frame prediction block).

边界强度判断部153A还可以构成为基于表示在对象块及相邻块中是否包含非零(zero)的正交变换系数、及块边界是否是变换块的边界的控制数据,来判断块边界的边界强度。The boundary strength determination unit 153A may also be configured to determine the boundary strength of a block boundary based on control data indicating whether a non-zero orthogonal transform coefficient is included in the object block and the adjacent blocks, and whether the block boundary is a boundary of a transform block.

例如,如图13所示,边界强度判断部153A也可以构成为当对象块及相邻块中的至少任一个块包含非零的正交变换系数,且块边界是变换块的边界时(即,块边界两侧的块中的至少任一个中存在非零的变换系数,且是TU的边界时),判断块边界的边界强度为“1”。For example, as shown in Figure 13, the boundary strength judgment unit 153A can also be configured to judge that the boundary strength of the block boundary is "1" when at least any one of the object block and the adjacent blocks contains a non-zero orthogonal transform coefficient and the block boundary is the boundary of the transform block (that is, at least any one of the blocks on both sides of the block boundary has a non-zero transform coefficient and it is the boundary of the TU).

边界强度判断部153A还可以构成为基于表示对象块及相邻块的运动矢量的差的绝对值是否为阈值(例如1/2像素)以上的控制数据,来判断块边界的边界强度。The boundary strength determination unit 153A may also be configured to determine the boundary strength of the block boundary based on control data indicating whether the absolute value of the difference between the motion vectors of the target block and the adjacent block is greater than a threshold value (eg, 1/2 pixel).

例如,如图13所示,边界强度判断部153A也可以构成为当对象块及相邻块的运动矢量的差的绝对值为阈值(例如1/2像素)以上时(即,块边界两侧的块的运动矢量的差的绝对值为阈值(例如1/2像素)以上时),判断块边界的边界强度为“1”。For example, as shown in FIG. 13 , the boundary strength judgment unit 153A may be configured to judge that the boundary strength of the block boundary is “1” when the absolute value of the difference between the motion vectors of the object block and the adjacent block is greater than a threshold value (e.g., 1/2 pixel) (i.e., when the absolute value of the difference between the motion vectors of the blocks on both sides of the block boundary is greater than a threshold value (e.g., 1/2 pixel)).

边界强度判断部153A还可以构成为基于表示对象块及相邻块的运动矢量的预测所参考的参考块是否不同的控制数据,来判断块边界的边界强度。The boundary strength determination unit 153A may be configured to determine the boundary strength of the block boundary based on control data indicating whether the reference blocks used for prediction of the motion vectors of the target block and the adjacent blocks are different.

例如,如图13所示,边界强度判断部153A也可以构成为当对象块及相邻块的运动矢量的预测所参考的参考块不同时(即,在块边界两侧的块中参考图像不同时),判断块边界的边界强度为“1”。For example, as shown in FIG. 13 , the boundary strength judgment unit 153A may be configured to judge the boundary strength of the block boundary as “1” when the reference blocks used for predicting the motion vectors of the object block and the adjacent block are different (i.e., the reference images in the blocks on both sides of the block boundary are different).

边界强度判断部153A也可以构成为基于表示对象块及相邻块的运动矢量的个数是否不同的控制数据,来判断块边界的边界强度。The boundary strength determination unit 153A may be configured to determine the boundary strength of the block boundary based on control data indicating whether the number of motion vectors of the target block and the number of motion vectors of the adjacent blocks are different.

例如,如图13所示,边界强度判断部153A也可以构成为当对象块及相邻块的运动矢量的个数不同时(即,在块边界两侧的块中运动矢量的个数不同时),判断块边界的边界强度为“1”。For example, as shown in FIG. 13 , the boundary strength judgment unit 153A may be configured to judge that the boundary strength of the block boundary is “1” when the number of motion vectors of the object block and the adjacent block is different (that is, when the number of motion vectors in the blocks on both sides of the block boundary is different).

例如,如图13所示,边界强度判断部153A也可以构成为当上述条件均不被满足时,判断块边界的边界强度为“0”。For example, as shown in FIG. 13 , the boundary strength determination unit 153A may be configured to determine that the boundary strength of the block boundary is “0” when none of the above conditions are satisfied.

另外,很可能边界强度的值越大,在块边界产生的块失真越大。In addition, it is likely that the larger the value of the boundary strength, the larger the block distortion generated at the block boundary.

对于亮度信号及色差信,上述边界强度判断方法可以通过共同的方法来判断,也可以使用部分不同的条件来判断。For brightness signals and color difference signals, the above-mentioned boundary strength judgment method can be judged by a common method or by using partially different conditions.

滤波确定部154A构成为确定应用于块边界的滤波处理(例如,解块滤波处理)的种类。The filter determination unit 154A is configured to determine the type of filter processing (for example, deblocking filter processing) to be applied to the block boundary.

例如,滤波确定部154A也可以构成为基于块边界的边界强度、或对象块及相邻块中包含的量化参数等,来确定是否对块边界应用滤波处理、是否应用弱滤波处理及强滤波处理中的任一滤波处理。For example, the filter determination unit 154A may be configured to determine whether to apply filtering to the block boundary, or whether to apply either weak filtering or strong filtering, based on the boundary strength of the block boundary, or quantization parameters contained in the target block and the adjacent blocks.

滤波确定部154A也可以构成为当块边界的边界强度为“0”时,确定不应用滤波处理。The filter determination unit 154A may be configured to determine that the filter process is not to be applied when the boundary strength of the block boundary is “0”.

滤波处理部155A构成为基于滤波确定部154A的确定结果,来对解块前图像进行处理。对解块前图像进行的处理是无滤波处理、弱滤波处理、强滤波处理等。The filter processing unit 155A is configured to process the image before deblocking based on the determination result of the filter determination unit 154A. The process performed on the image before deblocking is no filter processing, weak filter processing, strong filter processing, or the like.

(图像解码装置200)(Image Decoding Device 200)

下面,参考图14对本实施方式的图像解码装置200进行说明。图14是示出本实施方式的图像解码装置200的功能块的一个例子的图。Next, the image decoding apparatus 200 according to the present embodiment will be described with reference to Fig. 14. Fig. 14 is a diagram showing an example of functional blocks of the image decoding apparatus 200 according to the present embodiment.

如图14所示,图像解码装置200包括解码部210、逆变换及逆量化部220、加法器230、帧间预测部241、帧内预测部242、环路滤波处理部250及帧缓冲器260。As shown in FIG. 14 , the image decoding apparatus 200 includes a decoding unit 210 , an inverse transform and inverse quantization unit 220 , an adder 230 , an inter prediction unit 241 , an intra prediction unit 242 , a loop filter processing unit 250 , and a frame buffer 260 .

解码部210构成为对由图像编码装置100生成的编码数据进行解码,且对系数等级值进行解码。The decoding unit 210 is configured to decode the encoded data generated by the image encoding device 100 and decode the coefficient level values.

此处,例如解码是顺序与由编码部140进行的熵编码相反的熵解码。Here, for example, decoding is entropy decoding in the reverse order to the entropy encoding performed by the encoding unit 140 .

并且,解码部210也可以构成为通过编码数据的解码处理来获取控制数据。Furthermore, the decoding unit 210 may be configured to acquire control data by decoding the encoded data.

另外,如上所述,控制数据可以包括编码块尺寸、预测块尺寸、变换块尺寸等尺寸数据。In addition, as described above, the control data may include size data such as coding block size, prediction block size, and transform block size.

并且,如上所述,控制数据也可以包括序列参数集(SPS)、图片参数集(PPS)、切片头部等头部信息。Furthermore, as described above, the control data may also include header information such as a sequence parameter set (SPS), a picture parameter set (PPS), and a slice header.

例如,解码部21也可以构成为从切片头部解码出对可否使用PROF处理进行控制的标志、或者对可否使用DMVR处理、BDOF处理及PROF处理进行统一控制的标志等。For example, the decoding unit 21 may be configured to decode, from the slice header, a flag for controlling whether the PROF process can be used, or a flag for collectively controlling whether the DMVR process, the BDOF process, and the PROF process can be used.

逆变换及逆量化部220构成为进行从解码部210输出的系数等级值的逆变换处理。此处,逆变换及逆量化部220也可以构成为在逆变换处理之前进行系数等级值的逆量化。The inverse transform and inverse quantization unit 220 is configured to perform an inverse transform process on the coefficient level value output from the decoding unit 210. Here, the inverse transform and inverse quantization unit 220 may be configured to perform an inverse quantization on the coefficient level value before the inverse transform process.

此处,逆变换处理及逆量化是按照与由变换及量化部131进行的变换处理及量化相反的顺序进行。Here, the inverse transform process and the inverse quantization are performed in the reverse order of the transform process and the quantization performed by the transform and quantization unit 131 .

加法器230构成为将预测信号与从逆变换及逆量化部220输出的预测残差信号相加来生成滤波处理前解码信号,并将滤波处理前解码信号输出至帧内预测部242及环路滤波处理部250。The adder 230 is configured to add the prediction signal and the prediction residual signal output from the inverse transform and inverse quantization unit 220 to generate a pre-filtered decoded signal, and output the pre-filtered decoded signal to the intra prediction unit 242 and the loop filter processing unit 250 .

此处,滤波处理前解码信号构成帧内预测部242中使用的参考块。Here, the decoded signal before filtering constitutes a reference block used in the intra prediction unit 242 .

与帧间预测部111同样地,帧间预测部241构成为通过帧间预测(interframeprediction)来生成预测信号。Similar to the inter-frame prediction unit 111 , the inter-frame prediction unit 241 is configured to generate a prediction signal by inter-frame prediction.

具体来说,帧间预测部241构成为基于从编码数据中解码出的运动矢量及参考帧中包含的参考信号,针对每个预测块生成预测信号。帧间预测部241构成为将预测信号输出至加法器230。Specifically, the inter-frame prediction unit 241 is configured to generate a prediction signal for each prediction block based on a motion vector decoded from the coded data and a reference signal included in a reference frame. The inter-frame prediction unit 241 is configured to output the prediction signal to the adder 230 .

与帧内预测部112同样地,帧内预测部242构成为通过帧内预测(intraframeprediction)来生成预测信号。Similar to the intra prediction unit 112 , the intra prediction unit 242 is configured to generate a prediction signal by intra prediction (intraframe prediction).

具体来说,帧内预测部242构成为指定对象帧中包含的参考块,并基于所指定的参考块,针对每个预测块生成预测信号。帧内预测部242构成为将预测信号输出至加法器230。Specifically, the intra prediction unit 242 is configured to designate a reference block included in the target frame, and to generate a prediction signal for each prediction block based on the designated reference block. The intra prediction unit 242 is configured to output the prediction signal to the adder 230 .

与环路滤波处理部150同样地,环路滤波处理部250构成为对从加法器230输出的滤波处理前解码信号进行滤波处理,且将滤波处理后解码信号输出至帧缓冲器260。Similar to the loop filter processing unit 150 , the loop filter processing unit 250 is configured to perform filtering on the pre-filtering decoded signal output from the adder 230 and output the post-filtering decoded signal to the frame buffer 260 .

此处,例如滤波处理是减少在块(编码块、预测块、变换块或将它们分割所得的子块)的边界部分产生的失真的解块滤波处理。Here, the filtering process is, for example, a deblocking filtering process for reducing distortion generated at a boundary portion of a block (a coding block, a prediction block, a transform block, or a sub-block obtained by dividing these blocks).

与帧缓冲器160同样地,帧缓冲器260构成为存储帧间预测部241中使用的参考帧。Similar to the frame buffer 160 , the frame buffer 260 is configured to store reference frames used by the inter-frame prediction unit 241 .

此处,滤波处理后解码信号构成帧间预测部241中使用的参考帧。Here, the filtered decoded signal constitutes a reference frame used in the inter-frame prediction unit 241 .

(帧间预测部241)(Inter-frame prediction unit 241)

下面,参考图15对本实施方式的帧间预测部241进行说明。图15是示出本实施方式的帧间预测部241的功能块的一个例子的图。Next, the inter-frame prediction unit 241 of the present embodiment will be described with reference to Fig. 15. Fig. 15 is a diagram showing an example of functional blocks of the inter-frame prediction unit 241 of the present embodiment.

如图15所示,帧间预测部241包括运动矢量解码部241B、细化部241C、预测信号生成部241D、仿射运动矢量算出部241E及仿射预测信号生成部241F。As shown in FIG. 15 , the inter prediction unit 241 includes a motion vector decoding unit 241B, a refinement unit 241C, a prediction signal generation unit 241D, an affine motion vector calculation unit 241E, and an affine prediction signal generation unit 241F.

帧间预测部241是构成为基于运动矢量来生成预测块中包含的预测信号的预测部的一个例子。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.

运动矢量解码部241B构成为通过从图像编码装置100接收到的控制数据的解码,来获取运动矢量。The motion vector decoding unit 241B is configured to obtain a motion vector by decoding the control data received from the image encoding device 100 .

并且,运动矢量解码部241B构成为也对与是否对该块使用仿射运动补偿相关的信息进行解码。Furthermore, the motion vector decoding unit 241B is configured to also decode information on whether affine motion compensation is used for the block.

此处,当不对该块使用仿射运动补偿时,进行细化处理部241C及预测信号生成部241D的处理,当对该块使用仿射运动补偿时,进行仿射运动矢量算出部241E及仿射预测信号生成部241F的处理。Here, when affine motion compensation is not used for the block, the processing of the refinement processing unit 241C and the prediction signal generation unit 241D is performed, and when affine motion compensation is used for the block, the processing of the affine motion vector calculation unit 241E and the affine prediction signal generation unit 241F is performed.

与细化部111C同样地,细化部241C构成为执行对运动矢量进行修正的细化处理。Similar to the thinning unit 111C, the thinning unit 241C is configured to execute thinning processing for correcting the motion vector.

与预测信号生成部111D同样地,预测信号生成部241D构成为基于运动矢量来生成预测信号。Similar to the prediction signal generating unit 111D, the prediction signal generating unit 241D is configured to generate a prediction signal based on a motion vector.

与仿射运动矢量算出部111E同样地,仿射运动矢量算出部241E构成为使用由运动矢量解码部241B解码出的控制点运动矢量来算出各子块的运动矢量。Similar to the affine motion vector calculation unit 111E, the affine motion vector calculation unit 241E is configured to calculate the motion vector of each sub-block using the control point motion vector decoded by the motion vector decoding unit 241B.

与仿射预测信号生成部111F同样地,仿射预测信号生成部241F使用由仿射运动矢量算出部241E算出的各子块的运动矢量来生成预测信号,且与预测信号生成部111D及仿射预测信号生成部111F同样地,预测信号生成部241D与仿射预测信号生成部241F也可以整合为同一处理块。Similar to the affine prediction signal generating unit 111F, the affine prediction signal generating unit 241F generates a prediction signal using the motion vector of each sub-block calculated by the affine motion vector calculating unit 241E, and similarly to the prediction signal generating unit 111D and the affine prediction signal generating unit 111F, the prediction signal generating unit 241D and the affine prediction signal generating unit 241F can also be integrated into the same processing block.

(环路滤波处理部250)(Loop Filter Processing Unit 250)

下面,对本实施方式的环路滤波处理部250进行说明。图16是示出本实施方式的环路滤波处理部250的图。Next, the loop filter processing unit 250 of the present embodiment will be described. Fig. 16 is a diagram showing the loop filter processing unit 250 of the present embodiment.

如图16所示,环路滤波处理部250包括块边界检测部251、边界强度判断部253、滤波确定部254及滤波处理部255。As shown in FIG. 16 , the loop filter processing section 250 includes a block boundary detection section 251 , a boundary strength determination section 253 , a filter determination section 254 , and a filter processing section 255 .

此处,末尾标注有“A”的构成是与垂直方向的块边界的解块滤波处理相关的构成,末尾标注有“B”的构成是与水平方向的块边界的解块滤波处理相关的构成。Here, the configuration with "A" at the end is a configuration related to the deblocking filtering process at the block boundary in the vertical direction, and the configuration with "B" at the end is a configuration related to the deblocking filtering process at the block boundary in the horizontal direction.

此处,例示在进行垂直方向的块边界的解块滤波处理后,进行水平方向的块边界的解块滤波处理的情况。Here, a case where the deblocking filtering process is performed on the block boundary in the horizontal direction after the deblocking filtering process is performed on the block boundary in the vertical direction is exemplified.

如上所述,解块滤波处理可以应用于编码块,可以应用于预测块,也可以应用于变换块。并且,解块滤波处理也可以应用于将上述各块分割所得的子块。即,对象块及相邻块可以是编码块,可以是预测块,可以是变换块,也可以是将它们分割所得的子块。As described above, the deblocking filter process can be applied to a coding block, a prediction block, or a transform block. Furthermore, the deblocking filter process can also be applied to sub-blocks obtained by dividing the above blocks. That is, the target block and the adjacent block can be a coding block, a prediction block, a transform block, or sub-blocks obtained by dividing them.

由于垂直方向的块边界的解块滤波处理与水平方向的块边界的解块滤波处理是同样的处理,所以下面对垂直方向的块边界的解块滤波处理进行说明。Since the deblocking filtering process for the block boundary in the vertical direction is the same as the deblocking filtering process for the block boundary in the horizontal direction, the deblocking filtering process for the block boundary in the vertical direction will be described below.

与块边界检测部151A同样地,块边界检测部251A构成为基于表示块尺寸的控制数据,来检测块的边界。Similar to the block boundary detection unit 151A, the block boundary detection unit 251A is configured to detect a block boundary based on control data indicating a block size.

与边界强度判断部153A同样地,边界强度判断部253A构成为判断对象块与相邻块的块边界的边界强度。块边界的边界强度的判断方法如上所述。The boundary strength determination unit 253A is configured to determine the boundary strength of the block boundary between the target block and the adjacent block, similarly to the boundary strength determination unit 153A. The method of determining the boundary strength of the block boundary is as described above.

与滤波确定部154A同样地,滤波确定部254A构成为确定应用于块边界的解块滤波处理的种类。解块滤波处理的种类的确定方法如上所述。Similar to the filter determination unit 154A, the filter determination unit 254A is configured to determine the type of deblocking filter processing to be applied to the block boundary. The method of determining the type of deblocking filter processing is as described above.

与滤波处理部155A同样地,滤波处理部255A构成为基于滤波确定部254A的确定结果,来对解块前图像进行处理。对解块前图像进行的处理是无滤波处理、弱滤波处理、强滤波处理等。Similar to the filter processing unit 155A, the filter processing unit 255A is configured to process the image before deblocking based on the determination result of the filter determination unit 254A. The process performed on the image before deblocking is no filter processing, weak filter processing, strong filter processing, etc.

(变更例1)(Change Example 1)

下面,参考图17及图18对上述实施方式的变更例1进行说明。下面,主要对与上述实施方式的不同点进行说明。在上述实施方式中,关于BDOF处理及PROF处理,分别省略了详细说明,但在本变更例中,对具体处理的一个例子进行说明。Next, a modification example 1 of the above embodiment will be described with reference to Figures 17 and 18. Next, the differences from the above embodiment will be mainly described. In the above embodiment, detailed descriptions of BDOF processing and PROF processing were omitted, but in this modification example, an example of specific processing will be described.

第一,使用图17对步骤S83的BDOF处理的具体示例进行说明。First, a specific example of the BDOF process in step S83 will be described using FIG. 17 .

如图17所示,在步骤S171中,预测信号生成部111D/241D分别对与应用BDOF处理的块或子块对应的L0及L1的参考块内的各像素算出水平方向及垂直方向的亮度值梯度。As shown in FIG. 17 , in step S171 , the prediction signal generator 111D/ 241D calculates the luminance value gradients in the horizontal and vertical directions for each pixel in the reference blocks L0 and L1 corresponding to the block or subblock to which the BDOF process is applied.

具体来说,预测信号生成部111D/241D利用下式对块内的各像素位置(x,y)算出上述梯度。Specifically, the prediction signal generation unit 111D/241D calculates the above-mentioned gradient for each pixel position (x, y) in the block using the following equation.

gradientHL0[x][y]=(predSamplesL0[hx+1][vy]>>shift1)-(predSamplesL0[hx-1][vy]>>shift1)gradientHL0[x][y]=(predSamplesL0[hx+1][vy]>>shift1)-(predSamplesL0[hx-1][vy]>>shift1)

gradientV0[x][y]=(predSamplesL0[hx][vy+1]>shift1)-(predSamplesL0[hx][vy-1]>>shift1)gradientV0[x][y]=(predSamplesL0[hx][vy+1]>shift1)-(predSamplesL0[hx][vy-1]>>shift1)

gradientHL1[x][y]=(predSamplesL1[hx+1][vy]>>shift1)-(predSamplesL1[hx-1][vy]>>shift1)gradientHL1[x][y]=(predSamplesL1[hx+1][vy]>>shift1)-(predSamplesL1[hx-1][vy]>>shift1)

gradientV1[x][y]=(predSamplesL1[hx][vy+1]>shift1)-(predSamplesL0[hx][vy-1]>>shift1)gradientV1[x][y]=(predSamplesL1[hx][vy+1]>shift1)-(predSamplesL0[hx][vy-1]>>shift1)

此处,“predSamplesL0”及“predSamplesL1”是步骤S81中算出的L0及L1的预测信号。并且,“hx”及“vy”由下式定义。Here, "predSamplesL0" and "predSamplesL1" are prediction signals of L0 and L1 calculated in step S81. Furthermore, "hx" and "vy" are defined by the following equations.

在下式中,“nCbW”是该块的宽度,“nCbH”是该块的高度,“Clip3(min,max,input)”是将“input”的值限幅在“min≦input≦max”的函数。In the following formula, "nCbW" is the width of the block, "nCbH" is the height of the block, and "Clip3(min, max, input)" is a function that limits the value of "input" to "min≦input≦max".

hx=Clip3(1,nCbW,x)hx=Clip3(1,nCbW,x)

hy=Clip3(1,nCbH,y)hy=Clip3(1,nCbH,y)

另外,“shift1”由下式定义。In addition, "shift1" is defined by the following formula.

shift1=Max(6,bitDepth-6)shift1=Max(6, bitDepth-6)

此处,“bitDepth”是进行像素值的处理时的比特深度。Here, "bitDepth" is the bit depth when processing pixel values.

在步骤S172中,预测信号生成部111D/241D算出校正MV。In step S172, the prediction signal generation unit 111D/241D calculates the corrected MV.

此处,第一,预测信号生成部111D/241D对该块或子块的各像素算出以下三个参数的值。Here, first, the prediction signal generation unit 111D/241D calculates the values of the following three parameters for each pixel of the block or sub-block.

diff[x][y]=(predSamplesL0[hx][vy]>>shift2)-(predSamplesL1[hx][vy]>>shift2)diff[x][y]=(predSamplesL0[hx][vy]>>shift2)-(predSamplesL1[hx][vy]>>shift2)

tempH[x][y]=(gradientHL0[x][y]+gradientHL1[x][y])>>shift3tempH[x][y]=(gradientHL0[x][y]+gradientHL1[x][y])>>shift3

tempV[x][y]=(gradientVL0[x][y]+gradientVL1[x][y])>>shift3tempV[x][y]=(gradientVL0[x][y]+gradientVL1[x][y])>>shift3

此处,“shift2”及“shift3”由下式定义。Here, "shift2" and "shift3" are defined by the following formulas.

shift2Max(4,bitDepth-8)shift2Max(4, bitDepth-8)

shift3=Max(3,15-bitDepth)shift3 = Max(3, 15-bitDepth)

第二,预测信号生成部111D/241D将该块或子块分割成4×4像素块,如下所述,针对每个4×4像素块算出参数。Secondly, the prediction signal generation unit 111D/241D divides the block or sub-block into 4×4 pixel blocks, and calculates parameters for each 4×4 pixel block as described below.

[数学式1][Mathematical formula 1]

sGx2=∑ij Abs(tempH[xSb+i][ySb+j])with i,j=-1.4sGx2=∑ ij Abs(tempH[xSb+i][ySb+j])with i,j=-1.4

sGy2=∑ij Abs(tempV[xSb+i][ySb+j])with i,j=-1..4sGy2=∑ ij Abs(tempV[xSb+i][ySb+j])with i,j=-1..4

sGxGy=∑ij(Sign(tempV[xSb+i][ySb+j])*tempH[xSb+i][ySb+j])with i,j=-1..4sGxGy=∑ ij (Sign(tempV[xSb+i][ySb+j])*tempH[xSb+i][ySb+j])with i,j=-1..4

sGxGym=sGxGy>>12sGxGy m = sGxGy>>12

sGxGys=sGxGy&((1<<12)-1)sGxGy s =sGxGy&((1<<12)-1)

sGxdI=∑ij(-Sign(tempH[xSb+i][ySb+j])*diff[xSb+i][ySb+j])with i.j=-1..4sGxdI=∑ ij (-Sign(tempH[xSb+i][ySb+j])*diff[xSb+i][ySb+j])with ij=-1..4

sGydI=∑ij(-Sign(tempV[xSb+i][ySb+j])*diff[xSb+i][ySb+j])with i.j=-1..4sGydI=∑ ij (-Sign(tempV[xSb+i][ySb+j])*diff[xSb+i][ySb+j])with ij=-1..4

此处,“xSb”及“yXb”是以该块或子块的左上方像素为原点时各4×4像素块的左上方像素的坐标。并且,“Sign(input)”是如下函数:在“input”的值为正时返回“1”,在“input”的值为负时返回“-1”,在“input”的值为“0”时返回“0”。Here, "xSb" and "yXb" are the coordinates of the upper left pixel of each 4×4 pixel block when the upper left pixel of the block or sub-block is the origin. And, "Sign(input)" is a function that returns "1" when the value of "input" is positive, returns "-1" when the value of "input" is negative, and returns "0" when the value of "input" is "0".

如下所述,预测信号生成部111D/241D使用以上述方式算出的值,来算出校正MV(vx,vy)。As described below, the prediction signal generation unit 111D/241D calculates the corrected MV (vx, vy) using the values calculated in the above manner.

vx=sGx2>0?Clip3(-mvRefineThres,mvRefineThres-1,-(sGxdI<<3)>>Floor(Log2(sGx2))):0vx=sGx2>0? Clip3(-mvRefineThres, mvRefineThres-1, -(sGxdI<<3)>>Floor(Log2(sGx2))): 0

vy=sGx2>0?Clip3(-mvRefineThres,mvRefineThres-1,((sGydI<<3)-((vx×sGxGym)<<12+vx×sGxGys)>>1)>>Floor(Log2(sGx2))):0vy=sGx2>0? Clip3(-mvRefineThres, mvRefineThres-1, ((sGydI<<3)-((vx×sGxGy m )<<12+vx×sGxGy s )>>1)>>Floor(Log2(sGx2))): 0

此处,“mvRefineThres”由下式定义。Here, "mvRefineThres" is defined by the following formula.

mvRefineThres=1<<Max(5,bitDepth-7)mvRefineThres=1<<Max(5, bitDepth-7)

通过设为上述构成,能够将校正MV(vx,vy)的各分量的比特宽度抑制在“1<<Max(5,bitDepth-7)+1”比特以内(含符号)。By setting it as said structure, the bit width of each component of correction MV (vx, vy) can be suppressed to "1<<Max(5, bitDepth-7)+1" bits (including the sign).

在步骤S173中,如下所述,预测信号生成部111D/241D对各像素的预测信号进行校正。In step S173 , the prediction signal generation unit 111D/ 241D corrects the prediction signal of each pixel as described below.

bdofOffset=(vx×(gradientHL0[x+1][y+1]-gradientHL1[x+1][y+1]))>>1+(vy×(gradientVL0[x+1][y+1]-gradientVL1[x+1][y+1]))>>1bdofOffset=(vx×(gradientHL0[x+1][y+1]-gradientHL1[x+1][y+1]))>>1+(vy×(gradientVL0[x+1][y+1] -gradientVL1[x+1][y+1]))>>1

pbSamples[x][y]=Clip3(0,(2bitDepth)-1,(predSamplesL0[x+1][y+1]+offset4+predSamplesL1[x+1][y+1]+bdofOffset)>>shift4)pbSamples[x][y]=Clip3(0, (2 bitDepth )-1, (predSamplesL0[x+1][y+1]+offset4+predSamplesL1[x+1][y+1]+bdofOffset)>> shift4)

此处,“offset4”及“shift4”由下式定义。Here, "offset4" and "shift4" are defined as follows.

offset4=1<<(shift4-1)offset4=1<<(shift4-1)

shift4=Max(3,15-bitDepth)shift4=Max(3,15-bitDepth)

预测信号生成部111D/241D在进行以上所有处理后,进入步骤S174,结束处理。After performing all the above processing, the prediction signal generation unit 111D/241D proceeds to step S174 and ends the processing.

接着,使用图18对步骤S113的PROF处理的具体示例进行说明。Next, a specific example of the PROF process in step S113 will be described using FIG. 18 .

如图18所示,在步骤S181中,仿射预测信号生成部111F/241F分别对应用PROF处理的L0及L1的参考块内的各像素算出水平方向及垂直方向的亮度值梯度。As shown in FIG. 18 , in step S181 , the affine prediction signal generation unit 111F/ 241F calculates the luminance value gradients in the horizontal and vertical directions for each pixel in the reference blocks L0 and L1 to which the PROF process is applied.

具体来说,仿射预测信号生成部111F/241F利用下式对块内的各像素位置(x,y)算出梯度。Specifically, the affine prediction signal generation unit 111F/241F calculates the gradient for each pixel position (x, y) within the block using the following formula.

gradientH[x][y]=(predSamples[x+2][y]>>shift1)-(predSamples[x][y]>>shift1)gradientH[x][y]=(predSamples[x+2][y]>>shift1)-(predSamples[x][y]>>shift1)

gradientV[x][y]=(predSamples[x][y+2]>>shift1)-(predSamples[x][y]>>shift1)gradientV[x][y]=(predSamples[x][y+2]>>shift1)-(predSamples[x][y]>>shift1)

此处,“predSamples”是步骤S111中生成的L0或L1的预测信号。此处,设为shift1=Max(6,bitDepth-6)。Here, "predSamples" is the prediction signal of L0 or L1 generated in step S111. Here, it is assumed that shift1 = Max(6, bitDepth-6).

当对L0及L1这两者应用PROF处理时,仿射预测信号生成部111F/241F分别对L0及L1算出上述“gradientH”及“gradientV”。此时,以像素为单位来看,步骤S181中的计算内容与步骤S171的计算内容完全相同。When the PROF process is applied to both L0 and L1, the affine prediction signal generation unit 111F/241F calculates the above-mentioned "gradientH" and "gradientV" for L0 and L1, respectively. At this time, the calculation content in step S181 is exactly the same as the calculation content in step S171 in terms of pixels.

在步骤S182中,仿射预测信号生成部111F/241F计算校正MV。该处理实际上是作为步骤S96,在仿射运动矢量算出部111E/241E的内部进行,但为方便起见,视为在步骤S182中进行的处理来说明。实际上,仿射预测信号生成部111F/241F直接使用步骤S96中算出的值即可。In step S182, the affine prediction signal generating unit 111F/241F calculates the correction MV. This process is actually performed as step S96 inside the affine motion vector calculating unit 111E/241E, but for convenience, it is described as the process performed in step S182. In fact, the affine prediction signal generating unit 111F/241F can directly use the value calculated in step S96.

第一,与上述步骤S96的说明同样地,仿射预测信号生成部111F/241F算出“diffMv”的值。First, similarly to the description of step S96 above, the affine prediction signal generation unit 111F/241F calculates the value of "diffMv".

diffMv[x][y][0]=x×(dHorX<<2)+y×(dVerX<<2)-posOffsetXdiffMv[x][y][0]=x×(dHorX<<2)+y×(dVerX<<2)-posOffsetX

diffMv[x][y][1]=x×(dHorY<<2)+y×(dVerY<<2)-posOffsetYdiffMv[x][y][1]=x×(dHorY<<2)+y×(dVerY<<2)-posOffsetY

第二,仿射预测信号生成部111F/241F将上述“diffMv”的值分别右移7比特。Second, the affine prediction signal generation unit 111F/241F right-shifts the above-mentioned value of "diffMv" by 7 bits.

第三,如下所述,仿射预测信号生成部111F/241F进行限幅处理。Third, as described below, the affine prediction signal generation unit 111F/241F performs clipping processing.

diffMv[x][y][i]=Clip3(-dmvLimit,dmvLimit-1,diffMv[x][y][i])diffMv[x][y][i]=Clip3(-dmvLimit, dmvLimit-1, diffMv[x][y][i])

此处,Here,

dmvLimit=1<<Max(5,bitDepth-7)。dmvLimit=1<<Max(5, bitDepth-7).

通过设为上述构成,能够将“diffMv”的各分量的比特宽度抑制在“1<<Max(5,bitDepth-7)+1”比特以内(含符号)。该比特宽度与步骤S172中算出的校正MV相同。By adopting the above configuration, the bit width of each component of "diffMv" can be suppressed to within "1<<Max(5, bitDepth-7)+1" bits (including the sign). This bit width is the same as the correction MV calculated in step S172.

在步骤S183中,仿射预测信号生成部111F/241F进行预测信号的校正。In step S183, the affine prediction signal generation unit 111F/241F corrects the prediction signal.

如下所述,仿射预测信号生成部111F/241F对应用PROF处理的块及预测方向进行预测信号“pbSamples”的值的校正。As described below, the affine prediction signal generation unit 111F/241F corrects the value of the prediction signal "pbSamples" for the block and prediction direction to which the PROF process is applied.

dI=gradientH[x][y]×diffMv[x][y][0]+gradientV[x][y]×diffMv[x][y][1]dI=gradientH[x][y]×diffMv[x][y][0]+gradientV[x][y]×diffMv[x][y][1]

pbSamples[x][y]=predSamples[x+1][y+1]+(dI>>1)pbSamples[x][y]=predSamples[x+1][y+1]+(dI>>1)

当在L0及L1这两者中应用PROF处理时,仿射预测信号生成部111F/241F分别对L0及L1执行上述处理。When the PROF process is applied to both L0 and L1, the affine prediction signal generation unit 111F/241F executes the above-described process on L0 and L1, respectively.

仿射预测信号生成部111F/241F在上述校正完成后,移至步骤S184,结束PROF处理。After completing the above correction, the affine prediction signal generation unit 111F/241F moves to step S184 and ends the PROF processing.

仿射预测信号生成部111F/241F在PROF处理完成后,执行步骤S114中说明的预测值合成处理。预测值的合成例如可以由下式执行。After the PROF process is completed, the affine prediction signal generation unit 111F/241F performs the prediction value synthesis process described in step S114. The prediction value synthesis can be performed, for example, by the following equation.

predSamples[x][y]=Clip3(0,(1<<bitDepth)-1,(predSamplesL0[x][y]+predSamplesL1[x][y]+offset2)>>shift2)predSamples[x][y]=Clip3(0, (1<<bitDepth)-1, (predSamplesL0[x][y]+predSamplesL1[x][y]+offset2)>>shift2)

此处,Here,

offset2=1<<(shift2-1)offset2=1<<(shift2-1)

shift2=Max(3,15-bitDepth)。shift2=Max(3,15-bitDepth).

另外,当进一步通过PROF处理对L0侧的预测信号“predSamplesL0”及L1侧的预测信号“predSamplesL1”这两者进行校正时,若将步骤S183的计算代入“predSamplesL0”及“predSamplesL1”,则可以进行如下变形。In addition, when both the prediction signal "predSamplesL0" on the L0 side and the prediction signal "predSamplesL1" on the L1 side are corrected by further PROF processing, if the calculation of step S183 is substituted into "predSamplesL0" and "predSamplesL1", the following transformation can be performed.

dI_Bi=(dI_L0>>1)+(dI_L1>>1)dI_Bi=(dI_L0>>1)+(dI_L1>>1)

pbSamples[x][y]=Clips(0,(1<<bitDepth)-1,(predSamplesL0_orig[x][y]+offset2+predSamplesL1_orig[x][y]+dI_Bi)>>shift2)pbSamples[x][y]=Clips(0, (1<<bitDepth)-1, (predSamplesL0_orig[x][y]+offset2+predSamplesL1_orig[x][y]+dI_Bi)>>shift2)

此处,“dI_L0”及“dI_L1”分别为L0及L1的dI的值,“predSamplesL0_orig”及“predSamplesL1_orig”是通过PROF处理进行校正前的预测信号。Here, “dI_L0” and “dI_L1” are the values of dI of L0 and L1, respectively, and “predSamplesL0_orig” and “predSamplesL1_orig” are prediction signals before correction by PROF processing.

以上所说明的BDOF处理及PROF处理中算出的梯度及校正MV的值分别被以比特宽度相同的方式限幅,因此,由此算出的“bdofOffset”及“dI_Bi”的比特宽度也相同。The values of the gradient and correction MV calculated in the BDOF process and PROF process described above are respectively clipped so as to have the same bit width, and therefore the bit widths of “bdofOffset” and “dI_Bi” calculated thereby are also the same.

即,也可以按照如下方式进行运算:由预测信号生成部111D/241D进行的BDOF处理中算出的偏移量、与由仿射预测信号生成部111F/241F进行的PROF处理中分别对两个参考帧(L0/L1)算出的偏移量合成后的值的比特宽度相同。That is, the calculation may be performed as follows: the offset calculated in the BDOF processing performed by the prediction signal generating unit 111D/241D and the offset calculated for the two reference frames (L0/L1) in the PROF processing performed by the affine prediction signal generating unit 111F/241F have the same bit width as the value synthesized.

并且,对PROF处理后的预测信号进行合成时的“offset2”及“shift2”的值与BDOF处理的“offset4”及“shift4”的值也相同。因此,对L0及L1这两者应用BDOF处理及PROF处理时的预测值生成处理是完全相同的公式。Furthermore, the values of "offset2" and "shift2" when synthesizing the predicted signal after PROF processing are the same as the values of "offset4" and "shift4" in BDOF processing. Therefore, the prediction value generation process when applying BDOF processing and PROF processing to both L0 and L1 is exactly the same formula.

通过将BDOF处理及PROF处理设为上述构成,有如下效果。By configuring the BDOF process and the PROF process as described above, the following effects are achieved.

第一,能够使步骤S171与步骤S181的梯度算出处理为完全相同的处理。First, the gradient calculation processing of step S171 and step S181 can be made completely the same processing.

即,能够在PROF处理应用于两个参考帧(L0/L1)时,使由预测信号生成部111D/241D进行的BDOF处理中的梯度算出处理、与由仿射预测信号生成部111F/241F进行的PROF处理中的梯度算出处理为相同的处理。That is, when the PROF processing is applied to two reference frames (L0/L1), the gradient calculation processing in the BDOF processing performed by the prediction signal generating unit 111D/241D and the gradient calculation processing in the PROF processing performed by the affine prediction signal generating unit 111F/241F can be made the same processing.

第二,能够使步骤S172与步骤S182的输出即校正MV的比特宽度完全相同。Second, the bit widths of the corrected MVs, which are outputs of step S172 and step S182, can be made completely the same.

即,能够分别进行限幅处理,使由预测信号生成部111D/241D进行的BDOF处理中的校正MV量、与由仿射预测信号生成部111F/241F进行的PROF处理中使用的校正MV量分别为相同的比特宽度。That is, it is possible to perform clipping processing so that the correction MV amount in the BDOF processing performed by the prediction signal generating unit 111D/241D and the correction MV amount used in the PROF processing performed by the affine prediction signal generating unit 111F/241F have the same bit width.

第三,能够使步骤S173的预测值校正处理与步骤S183的预测值校正处理及步骤S114的预测值合成处理为完全相同的处理。Third, the predicted value correction process of step S173, the predicted value correction process of step S183, and the predicted value synthesis process of step S114 can be made completely the same process.

即,能够使由预测信号生成部111D/241D使用偏移量进行的最终预测信号生成处理、与由仿射预测信号生成部111F/241F使用偏移量合成后的值进行的最终预测信号生成处理为相同的处理。That is, the final prediction signal generation process performed by the prediction signal generation unit 111D/241D using the offset and the final prediction signal generation process performed by the affine prediction signal generation unit 111F/241F using the value synthesized by the offset can be made the same process.

由于如上所述,针对每个块排他地应用BDOF处理及PROF处理,所以上述相同的处理部分在硬件上实现时,可以在BDOF处理及PROF处理中共用处理电路。由此,可以期待削减电路规模。As described above, since the BDOF process and the PROF process are applied exclusively to each block, when the same processing portion is implemented in hardware, the processing circuit can be shared between the BDOF process and the PROF process, thereby reducing the circuit scale.

(变更例2)(Change Example 2)

下面,参考图19及图20对上述实施方式的变更例2进行说明。下面,主要对与上述实施方式的不同点进行说明。在本变更例中,使用与上述实施方式不同的例子,对块边界检测部151/251中的块边界检测方法及边界强度判断部153/253中的边界强度的判断方法进行说明。Next, a second modification of the above embodiment will be described with reference to FIGS. 19 and 20. The following mainly describes the differences from the above embodiment. In this modification, a block boundary detection method in the block boundary detection unit 151/251 and a boundary strength determination method in the boundary strength determination unit 153/253 are described using examples different from those in the above embodiment.

下面,对块边界检测部151A进行说明,但在块边界检测部151B/251A/251B中,也可以通过同样的处理来检测块边界。The block boundary detection unit 151A will be described below, but the block boundary detection units 151B/251A/251B can also detect block boundaries through the same processing.

图19是示出块边界检测部151A的处理的一个例子的流程图。下面,将以CU为单位进行处理的情况作为例子进行说明。Fig. 19 is a flowchart showing an example of the processing of the block boundary detection unit 151A. Hereinafter, a case where the processing is performed in units of CUs will be described as an example.

在步骤S191中,块边界检测部151A检测CU边界。由于块边界检测部151A是检测垂直方向的边界的处理块,所以将该CU左侧的垂直方向的边界检测为滤波处理对象的块边界。In step S191, the block boundary detection unit 151A detects a CU boundary. Since the block boundary detection unit 151A is a processing block for detecting a vertical boundary, the vertical boundary on the left side of the CU is detected as a block boundary to be filtered.

另外,“检测为块边界”例如相当于事先准备表示画面内的该像素位置是否为边界的二维标志序列(例如,“edgeFlags[x][y]”),将检测为边界的像素位置的标志值设为“1”,将不是边界的像素位置的标志值设为“0”。In addition, "detected as a block boundary" is equivalent to, for example, preparing in advance a two-dimensional flag sequence (for example, "edgeFlags[x][y]") indicating whether the pixel position in the picture is a boundary, setting the flag value of the pixel position detected as the boundary to "1", and setting the flag value of the pixel position not detected as the boundary to "0".

此处,当该CU左侧的垂直方向的边界位于图片边界或切片边界或瓦片边界等编码单位的边界时,块边界检测部151A也可以不将该边界检测为块边界。Here, when the vertical boundary on the left side of the CU is located at a boundary of a coding unit such as a picture boundary, a slice boundary, or a tile boundary, the block boundary detection unit 151A may not detect the boundary as a block boundary.

块边界检测部151A在按照上述顺序检测出CU边界后,移至步骤S192。After detecting the CU boundary in the above-described procedure, the block boundary detection unit 151A moves to step S192 .

在步骤S192中,块边界检测部151A检测TU边界(变换块边界)。In step S192, the block boundary detection unit 151A detects a TU boundary (transform block boundary).

块边界检测部151A以该CU左侧的垂直方向的边界为起点,一边使水平方向的坐标每次增加4像素,使垂直方向的像素位置每次增加1像素,一边确认各像素位置是否为TU边界。当该像素位置为TU边界时,块边界检测部151A将该像素位置检测为块边界。The block boundary detection unit 151A starts from the vertical boundary on the left side of the CU, increases the horizontal coordinate by 4 pixels each time, and increases the vertical pixel position by 1 pixel each time, while checking whether each pixel position is a TU boundary. If the pixel position is a TU boundary, the block boundary detection unit 151A detects the pixel position as a block boundary.

块边界检测部151A在按照上述顺序检测出TU边界后,移至步骤S193。After detecting the TU boundary in the above-described procedure, the block boundary detection unit 151A moves to step S193.

在步骤S193中,块边界检测部151A检测子块边界。In step S193 , the block boundary detection unit 151A detects sub-block boundaries.

在步骤S193中,作为检测对象的子块边界例如也可以是进行帧间预测后的CU的子块边界。In step S193 , the sub-block boundary to be detected may be, for example, a sub-block boundary of a CU after inter-frame prediction.

此时,在上述子块边界中,可以包括由细化部111C/241C执行的DMVR处理中的子块(例如,16×16像素尺寸)的边界、及由仿射运动矢量算出部111E/241E及仿射预测信号生成部111F/241F进行的仿射运动补偿中的子块(例如,4×4像素尺寸)的边界这两者。At this time, the above-mentioned sub-block boundaries may include both the boundaries of sub-blocks (for example, 16×16 pixel size) in the DMVR processing performed by the refinement unit 111C/241C, and the boundaries of sub-blocks (for example, 4×4 pixel size) in the affine motion compensation performed by the affine motion vector calculation unit 111E/241E and the affine prediction signal generation unit 111F/241F.

在步骤S193中,作为检测对象的子块边界例如也可以是应用仿射运动补偿或“merge_subblock”后的CU的子块边界。In step S193 , the sub-block boundary to be detected may be, for example, a sub-block boundary of a CU after affine motion compensation or “merge_subblock” is applied.

另外,当在该CU中应用PROF处理时,仿射运动补偿的子块与PROF处理的子块一致。In addition, when the PROF process is applied to the CU, the sub-blocks subjected to the affine motion compensation are consistent with the sub-blocks subjected to the PROF process.

此处,在步骤S193中将仿射运动补偿的子块边界作为检测对象的情况下,当在该CU中应用PROF处理时,块边界检测部151A也可以不将仿射运动补偿的子块边界及PROF处理的子块边界作为检测对象。Here, when the sub-block boundary of affine motion compensation is used as the detection target in step S193, when PROF processing is applied to the CU, the block boundary detection unit 151A may not use the sub-block boundary of affine motion compensation and the sub-block boundary of PROF processing as the detection target.

即,也可以仅当在该CU中应用仿射运动补偿且在该CU中不应用PROF处理时,块边界检测部151A才将仿射运动补偿的子块边界作为检测对象。当然,对于应用PROF处理的CU,块边界检测部151A也可以将仿射运动补偿的子块边界及PROF处理的子块边界作为检测对象。That is, the block boundary detection unit 151A may detect the sub-block boundary of affine motion compensation only when affine motion compensation is applied to the CU and PROF processing is not applied to the CU. Of course, for a CU to which PROF processing is applied, the block boundary detection unit 151A may detect the sub-block boundary of affine motion compensation and the sub-block boundary of PROF processing.

另外,对于进行双向预测的块的子块边界,可以当在L0或L1中的至少任一者中应用PROF处理时,块边界检测部151A便将该块视为“应用PROF处理的CU”。并且,也可以仅当在L0及L1这两者中均应用PROF处理时,块边界检测部151A才将该块视为“应用PROF处理的CU”。在以下说明中也可以进行同样的解释。In addition, for the sub-block boundary of the block to be bidirectionally predicted, when the PROF process is applied to at least one of L0 and L1, the block boundary detection unit 151A may regard the block as a "CU to which the PROF process is applied". Furthermore, the block boundary detection unit 151A may regard the block as a "CU to which the PROF process is applied" only when the PROF process is applied to both L0 and L1. The same explanation can be applied in the following description.

块边界检测部151A将该CU左侧的垂直方向的边界作为起点,一边使水平方向的坐标每次增加通过以下方法算出的子块尺寸,使垂直方向的像素位置每次增加1像素,一边确认各像素位置是否为子块边界。The block boundary detection unit 151A takes the vertical boundary on the left side of the CU as the starting point, increases the horizontal coordinate by the sub-block size calculated by the following method, and increases the vertical pixel position by 1 pixel, while checking whether each pixel position is a sub-block boundary.

当该像素位置为子块边界时,块边界检测部151A将该像素位置检测为块边界。此处,可以设为如下处理:即使该位置为子块边界,当对该CU应用PROF处理时,块边界检测部151A也不将其检测为子块边界。When the pixel position is a sub-block boundary, the block boundary detection unit 151A detects the pixel position as a block boundary. Here, even if the position is a sub-block boundary, when the PROF process is applied to the CU, the block boundary detection unit 151A may not detect it as a sub-block boundary.

例如,上述子块尺寸可以按照如下方式算出。For example, the above sub-block size can be calculated as follows.

子块尺寸=Max(8,(nCbW/NumSbX))Subblock size = Max(8, (nCbW/NumSbX))

此处,“nCbW”是该CU的宽度(水平方向的像素数),“NumSbX”是该CU内的水平方向上包括的子块的数量。Here, "nCbW" is the width of the CU (the number of pixels in the horizontal direction), and "NumSbX" is the number of sub-blocks included in the CU in the horizontal direction.

当使用上式时,是判断子块边界是否是以该CU左侧的垂直方向的边界为起点,且在水平方向上最小每隔8像素的位置处的子块边界。When the above formula is used, it is determined whether the sub-block boundary is a sub-block boundary starting from the vertical boundary on the left side of the CU and located at a minimum of every 8 pixels in the horizontal direction.

例如,上述子块尺寸还可以按照如下方式算出。For example, the above sub-block size may also be calculated as follows.

子块尺寸=Max(4,(nCbW/NumSbX))Subblock size = Max(4, (nCbW/NumSbX))

此时,是判断子块边界是否是以该CU左侧的垂直方向的边界为起点,且在水平方向上最小每隔4像素的位置处的子块边界。At this time, it is determined whether the sub-block boundary is a sub-block boundary starting from the vertical boundary on the left side of the CU and located at a minimum of every 4 pixels in the horizontal direction.

即,块边界检测部151A构成为以对象块左端或上端的坐标为基准,以最小每隔4像素的间隔,判断对象像素位置是否为子块边界。That is, the block boundary detection unit 151A is configured to determine whether the target pixel position is a sub-block boundary at a minimum interval of 4 pixels, based on the coordinates of the left end or the top end of the target block.

块边界检测部151A在按照上述顺序检测出子块边界后,移至步骤S194,结束处理。After detecting the sub-block boundary in accordance with the above-described procedure, the block boundary detection unit 151A moves to step S194 and ends the processing.

以上以不对CU边界、TU边界、子块边界分别进行区分而是单纯地检测块边界为例进行了说明,但也可以对它们进行区分并存储。The above description takes the example of simply detecting the block boundary without distinguishing the CU boundary, TU boundary, and sub-block boundary respectively, but they may also be distinguished and stored.

例如,可以区分成CU边界、TU边界、子块边界进行存储,也可以区分成TU边界、运动矢量边界。此时,CU边界被检测为TU边界及运动矢量边界这两者。并且,TU边界被检测为TU边界,子块边界被检测为运动矢量边界。该区分例如可以在下述边界强度判断部153A中使用。For example, the data may be stored as CU boundaries, TU boundaries, and sub-block boundaries, or as TU boundaries and motion vector boundaries. In this case, the CU boundary is detected as both the TU boundary and the motion vector boundary. Furthermore, the TU boundary is detected as the TU boundary, and the sub-block boundary is detected as the motion vector boundary. This distinction may be used, for example, in the boundary strength determination unit 153A described below.

下面对边界强度判断部153A进行说明,在边界强度判断部153B/253A/253B中也可以进行完全相同的判断。The boundary strength judgment unit 153A is described below. Exactly the same judgment can also be performed in the boundary strength judgment unit 153B/253A/253B.

边界强度判断部153A可以构成为当对象像素位置不是块边界时,将边界强度判断为“0”。The boundary strength determination unit 153A may be configured to determine the boundary strength as “0” when the target pixel position is not a block boundary.

即,块边界检测部151可以构成为不将应用PROF处理的块内的子块检测为块边界,边界强度判断部153A可以构成为将未被检测为块边界的像素位置的边界强度判断为“0”,滤波确定部154可以构成为当边界强度为“0”时,确定不对块边界应用解块滤波。That is, the block boundary detection unit 151 can be configured to not detect the sub-blocks within the block to which PROF processing is applied as block boundaries, the boundary strength judgment unit 153A can be configured to judge the boundary strength of pixel positions that are not detected as block boundaries as "0", and the filter determination unit 154 can be configured to determine that deblocking filtering is not applied to the block boundary when the boundary strength is "0".

边界强度判断部153A也可以构成为基于表示对象块及相邻块是否为帧内预测块的控制数据,来判断块边界的边界强度。The boundary strength determination unit 153A may be configured to determine the boundary strength of the block boundary based on control data indicating whether the target block and the adjacent block are intra-prediction blocks.

例如,如图20所示,边界强度判断部153A也可以构成为当对象块及相邻块中的至少任一个块是帧内预测块时(即,块边界两侧的块中的至少任一个是帧内预测块时),判断块边界的边界强度为“2”。For example, as shown in Figure 20, the boundary strength judgment unit 153A can also be configured to judge that the boundary strength of the block boundary is "2" when at least one of the object block and the adjacent blocks is an intra-frame prediction block (that is, when at least one of the blocks on both sides of the block boundary is an intra-frame prediction block).

边界强度判断部153A还可以构成为基于表示在对象块及相邻块中是否包含非零(zero)的正交变换系数、及块边界是否是变换块的边界的控制数据,来判断块边界的边界强度。The boundary strength determination unit 153A may also be configured to determine the boundary strength of a block boundary based on control data indicating whether a non-zero orthogonal transform coefficient is included in the object block and the adjacent blocks, and whether the block boundary is a boundary of a transform block.

例如,如图20所示,边界强度判断部153A也可以构成为当对象块及相邻块中的至少任一个块包含非零的正交变换系数,且块边界是变换块的边界时(即,块边界两侧的块中的至少任一个中存在非零的变换系数,且是TU的边界时),判断块边界的边界强度为“1”。For example, as shown in Figure 20, the boundary strength judgment unit 153A can also be configured to judge that the boundary strength of the block boundary is "1" when at least any one of the object block and the adjacent blocks contains a non-zero orthogonal transform coefficient and the block boundary is the boundary of the transform block (that is, at least any one of the blocks on both sides of the block boundary has a non-zero transform coefficient and it is the boundary of the TU).

边界强度判断部153A还可以构成为基于表示对象块及相邻块的运动矢量的差的绝对值是否为阈值(例如1/2像素)以上的控制数据,来判断块边界的边界强度。此时,也可以构成为基于该块边界是否是应用PROF处理的块内的子块边界,来判断边界的边界强度。The boundary strength determination unit 153A may also be configured to determine the boundary strength of the block boundary based on control data indicating whether the absolute value of the difference between the motion vectors of the target block and the adjacent block is greater than a threshold value (e.g., 1/2 pixel). In this case, the boundary strength of the boundary may also be determined based on whether the block boundary is a sub-block boundary within the block to which the PROF process is applied.

例如,如图20所示,边界强度判断部153A也可以构成为当对象块及相邻块的运动矢量的差的绝对值为阈值(例如1/2像素)以上时(即,块边界两侧的块的运动矢量的差的绝对值为阈值(例如1/2像素)以上时),且该块边界不是步骤S95中判断出应用PROF处理的块的子块(4×4像素块)边界时,判断块边界的边界强度为“1”。For example, as shown in FIG. 20 , the boundary strength judgment unit 153A may be configured to judge the boundary strength of a block boundary as “1” when the absolute value of the difference between the motion vectors of the object block and the adjacent block is greater than a threshold value (e.g., 1/2 pixel) (i.e., the absolute value of the difference between the motion vectors of the blocks on both sides of the block boundary is greater than a threshold value (e.g., 1/2 pixel)), and the block boundary is not a sub-block (4×4 pixel block) boundary of the block to which PROF processing is determined to be applied in step S95.

即,边界强度判断部153A也可以构成为对每个块边界判断边界强度,并构成为当该块边界两侧的块的运动矢量的差的绝对值为1/2像素以上,且该块边界不是应用PROF处理后的子块边界时,将边界强度判断为“1”。That is, the boundary strength judgment unit 153A may be configured to judge the boundary strength for each block boundary, and to judge the boundary strength as "1" when the absolute value of the difference in motion vectors of blocks on both sides of the block boundary is greater than 1/2 pixel and the block boundary is not a sub-block boundary after PROF processing is applied.

此处,滤波确定部154也可以构成为当边界强度为“0”时,确定不对块边界应用解块滤波。Here, the filter determination unit 154 may be configured to determine not to apply the deblocking filter to the block boundary when the boundary strength is “0”.

例如,边界强度判断部153A也可以构成为当对象块及相邻块的运动矢量的差的绝对值为阈值(例如1/2像素)以上时(即,块边界两侧的块的运动矢量的差的绝对值为阈值(例如1/2像素)以上时),且该块边界两侧的块不是步骤S95中判断出应用PROF处理的块时,判断块边界的边界强度为“1”。For example, the boundary strength judgment unit 153A may also be configured to judge the boundary strength of the block boundary as "1" when the absolute value of the difference between the motion vectors of the object block and the adjacent block is greater than a threshold value (e.g., 1/2 pixel) (i.e., the absolute value of the difference between the motion vectors of the blocks on both sides of the block boundary is greater than a threshold value (e.g., 1/2 pixel)), and the blocks on both sides of the block boundary are not the blocks to which PROF processing is determined in step S95.

例如,边界强度判断部153A也可以构成为当对象块及相邻块的运动矢量的差的绝对值为阈值(例如1/2像素)以上时(即,块边界两侧的块的运动矢量的差的绝对值为阈值(例如1/2像素)以上时),且该块边界处至少任一个块不是步骤S95中判断出应用PROF处理的块时,判断块边界的边界强度为“1”。For example, the boundary strength judgment unit 153A may also be configured to judge the boundary strength of the block boundary as "1" when the absolute value of the difference between the motion vectors of the object block and the adjacent block is greater than a threshold value (e.g., 1/2 pixel) (i.e., the absolute value of the difference between the motion vectors of the blocks on both sides of the block boundary is greater than a threshold value (e.g., 1/2 pixel)), and when at least one block at the block boundary is not a block determined in step S95 to be subject to PROF processing.

另外,对于进行双向预测的块的子块边界,当在L0或L1中的至少任一者中应用PROF处理时,也可以视为“判断出应用PROF处理的块”。即,在该情况下,当未在L0及L1这两者中应用PROF处理时,在运动矢量的差为阈值以上时,将边界强度判断为“1”。In addition, for a sub-block boundary of a block subjected to bidirectional prediction, when PROF processing is applied in at least one of L0 and L1, it can also be regarded as "a block determined to be subjected to PROF processing". That is, in this case, when PROF processing is not applied in both L0 and L1, the boundary strength is determined to be "1" when the difference in motion vectors is greater than the threshold.

即,边界强度判断部153A也可以构成为当对象块为双向预测时,且对两个参考帧中的至少任一个应用了PROF处理时,便视为对对象块应用了PROF处理。That is, the boundary strength determination unit 153A may be configured to regard the PROF process as being applied to the target block when the target block is bidirectionally predicted and the PROF process is applied to at least one of the two reference frames.

还可以仅当在L0及L1这两者中应用PROF处理时,才视为“判断出应用PROF处理的块”。即,在该情况下,当仅在L0或L1中应用了PROF处理时,且运动矢量的差为阈值以上时,将边界强度判断为“1”。Alternatively, only when PROF processing is applied to both L0 and L1, it may be considered as "a block determined to be applied PROF processing". That is, in this case, when PROF processing is applied only to L0 or L1 and the difference in motion vector is greater than the threshold, the boundary strength is determined to be "1".

并且,作为另一个例子,也可以进行如下判断:对于应用了PROF处理的块边界,在判断边界强度时,不判断运动矢量的差,或将运动矢量的差视为“0”。作为具体示例,可以按照如下方式来判断。As another example, the following judgment may be made: for a block boundary to which PROF processing is applied, when judging the boundary strength, the difference in motion vectors is not judged, or the difference in motion vectors is regarded as “0”. As a specific example, the judgment may be made as follows.

当该块是进行单向预测的块,且在该块中应用PROF时,在判断子块边界的边界强度时,不判断运动矢量的差,或将运动矢量的差视为“0”。When the block is a block for unidirectional prediction and PROF is applied to the block, when judging the boundary strength of the sub-block boundary, the difference of the motion vector is not judged or is regarded as "0".

当该块是进行双向预测的块,且L0侧的参考帧与L1侧的参考帧不同时,在L0侧及L1侧中应用PROF的预测方向(仅L0、仅L1或两者)上,不判断运动矢量的差,或将运动矢量的差视为“0”。When the block is a block for bidirectional prediction and the reference frame on the L0 side is different from the reference frame on the L1 side, the difference in motion vectors is not determined or is regarded as "0" in the prediction directions (only L0, only L1, or both) of PROF applied in the L0 side and the L1 side.

当该块是进行双向预测的块,且L0侧的参考帧与L1侧的参考帧是同一帧时,当在L0侧应用PROF时,不判断该子块边界两侧的L0的运动矢量之间的差,或将该子块边界两侧的L0的运动矢量之间的差视为“0”。When the block is a block for bidirectional prediction and the reference frame on the L0 side and the reference frame on the L1 side are the same frame, when PROF is applied on the L0 side, the difference between the motion vectors of L0 on both sides of the sub-block boundary is not determined, or the difference between the motion vectors of L0 on both sides of the sub-block boundary is regarded as "0".

同样地,当在L1侧应用PROF时,不判断该子块边界两侧的L1的运动矢量之间的差,或将该子块边界两侧的L1的运动矢量之间的差视为“0”。Likewise, when PROF is applied on the L1 side, the difference between the motion vectors of L1 on both sides of the sub-block boundary is not determined, or is regarded as "0".

在该情况下,如以往那样,L0与L1之间的运动矢量的差用于判断边界强度。具体来说,例如,该子块边界左侧的子块的L0侧的运动矢量与该子块边界右侧的子块的L1侧的运动矢量的差用于判断边界强度。In this case, as in the past, the difference in motion vectors between L0 and L1 is used to determine the boundary strength. Specifically, for example, the difference in motion vectors between the L0 side of the sub-block on the left side of the sub-block boundary and the L1 side of the sub-block on the right side of the sub-block boundary is used to determine the boundary strength.

即,边界强度判断部153A也可以构成为在判断对象边界两侧的块在相同预测方向上各自的运动矢量的差时,当在该预测方向上应用了PROF处理时,不判断该预测方向上各自的运动矢量的差,或将该预测方向上各自的运动矢量的差视为“0”。That is, the boundary strength judgment unit 153A may also be configured to, when judging the difference in motion vectors of blocks on both sides of the object boundary in the same prediction direction, not judge the difference in motion vectors in the prediction direction when PROF processing is applied in the prediction direction, or regard the difference in motion vectors in the prediction direction as "0".

或者,在该块是进行双向预测的块,且L0侧的参考帧与L1侧的参考帧是同一帧时,当该子块边界两侧的运动矢量分别应用PROF时,也可以不判断运动矢量的差,或将运动矢量的差视为“0”。Alternatively, when the block is a block for bidirectional prediction and the reference frame on the L0 side and the reference frame on the L1 side are the same frame, when PROF is applied to the motion vectors on both sides of the sub-block boundary respectively, the difference in the motion vectors may not be determined, or the difference in the motion vectors may be regarded as "0".

在该情况下,例如,当在L0侧及L1侧这两者中应用PROF时,也不判断L0与L1间的运动矢量的差,或将L0与L1间的运动矢量的差视为“0”,这一点与上述例子不同。In this case, for example, when PROF is applied to both the L0 side and the L1 side, the difference in motion vector between L0 and L1 is not determined, or is regarded as "0", which is different from the above example.

边界强度判断部153A还可以构成为基于表示对象块及相邻块的运动矢量的预测所参考的参考块是否不同的控制数据,来判断块边界的边界强度。The boundary strength determination unit 153A may be configured to determine the boundary strength of the block boundary based on control data indicating whether the reference blocks used for prediction of the motion vectors of the target block and the adjacent blocks are different.

例如,如图20所示,边界强度判断部153A也可以构成为当对象块及相邻块的运动矢量的预测所参考的参考块不同时(即,在块边界两侧的块中参考图像不同时),判断块边界的边界强度为“1”。For example, as shown in FIG. 20 , the boundary strength judgment unit 153A may be configured to judge the boundary strength of the block boundary as “1” when the reference blocks used for predicting the motion vectors of the object block and the adjacent block are different (i.e., the reference images in the blocks on both sides of the block boundary are different).

边界强度判断部153A也可以构成为基于表示对象块及相邻块的运动矢量的个数是否不同的控制数据,来判断块边界的边界强度。The boundary strength determination unit 153A may be configured to determine the boundary strength of the block boundary based on control data indicating whether the number of motion vectors of the target block and the number of motion vectors of the adjacent blocks are different.

例如,如图20所示,边界强度判断部153A也可以构成为当对象块及相邻块的运动矢量的个数不同时(即,在块边界两侧的块中运动矢量的个数不同时),判断块边界的边界强度为“1”。For example, as shown in FIG. 20 , the boundary strength judgment unit 153A may be configured to judge that the boundary strength of the block boundary is “1” when the number of motion vectors of the object block and the adjacent block is different (that is, when the number of motion vectors in the blocks on both sides of the block boundary is different).

以上对使用运动矢量或参考块来判断边界强度的方法的例子进行了说明,但也可以仅对检测为上述CU边界、子块边界或运动矢量边界的块边界,进行使用运动矢量或参考块的判断。The above describes an example of a method of using a motion vector or a reference block to determine the boundary strength, but the determination using a motion vector or a reference block may be performed only on a block boundary detected as the above-mentioned CU boundary, sub-block boundary or motion vector boundary.

换句话说,也可以在是TU边界、但不是子块边界或运动矢量边界的块边界,跳过使用运动矢量或参考块的判断。此时,在TU边界,仅确认在边界两侧的块中的至少任一个中是否存在非零的正交变换系数。In other words, it is also possible to skip the determination of using a motion vector or a reference block at a block boundary that is a TU boundary but not a subblock boundary or a motion vector boundary. In this case, at the TU boundary, only whether there is a non-zero orthogonal transform coefficient in at least one of the blocks on both sides of the boundary.

例如,如图20所示,边界强度判断部153A也可以构成为当上述条件均不被满足时,判断块边界的边界强度为“0”。For example, as shown in FIG. 20 , the boundary strength determination unit 153A may be configured to determine that the boundary strength of the block boundary is “0” when none of the above conditions are satisfied.

即,仿射预测信号生成部111F/241F构成为对每个块判断PROF是否适合,且当应用该PROF处理时,对将块分割所得的每个子块进行PROF处理。That is, the affine prediction signal generation unit 111F/241F is configured to determine whether PROF is appropriate for each block, and when the PROF process is applied, the PROF process is performed on each sub-block obtained by dividing the block.

并且,环路滤波处理部150/250构成为对每个块边界判断解块滤波是否适合,且确定不对应用PROF处理后的块的子块边界应用解块滤波。Furthermore, the loop filter processing unit 150 / 250 is configured to determine whether the deblocking filter is appropriate for each block boundary, and determine not to apply the deblocking filter to the sub-block boundary of the block to which the PROF process is applied.

通过设为上述构成,应用PROF处理后的块边界或子块边界的边界强度为“0”,从而不再应用解块滤波。由于PROF处理具有提高主观画质的效果,因此,通过设为这种构成,能够防止以下情况:由于利用解块滤波对块边界的像素值进行校正,反而损害主观画质。By setting the above configuration, the boundary strength of the block boundary or sub-block boundary after the PROF processing is applied is "0", and the deblocking filter is no longer applied. Since the PROF processing has the effect of improving the subjective image quality, by setting the configuration as such, it is possible to prevent the following situation: due to the correction of the pixel value of the block boundary by the deblocking filter, the subjective image quality is damaged.

并且,上述图像编码装置100及图像解码装置200也可以通过使计算机执行各功能(各步骤)的程序来实现。Furthermore, the above-described image encoding apparatus 100 and image decoding apparatus 200 may be realized by a program that causes a computer to execute each function (each step).

另外,在上述各实施方式中,以将本发明应用于图像编码装置100及图像解码装置200为例进行了说明,但本发明并不仅限于此例,同样也可以应用于具有图像编码装置100及图像解码装置200的各功能的图像编码/解码系统。In addition, in the above-mentioned embodiments, the application of the present invention to the image encoding device 100 and the image decoding device 200 is described as an example, but the present invention is not limited to this example, and can also be applied to an image encoding/decoding system having the functions of the image encoding device 100 and the image decoding device 200.

根据本发明,能够通过不对应用PROF处理后的子块边界应用解块滤波,来防止主观画质变差。According to the present invention, it is possible to prevent subjective image quality from being deteriorated by not applying a deblocking filter to a sub-block boundary after PROF processing is applied.

[符号说明][Explanation of symbols]

10:图像处理系统;100:图像编码装置;111、241:帧间预测部;111A:运动矢量搜索部;111B:运动矢量编码部;111C、241C:细化部;111D、241D:预测信号生成部;111E、241E:仿射运动矢量算出部;111F、241F:仿射预测信号生成部;112、242:帧内预测部;121:减法器;122、230:加法器;131:变换及量化部;132、220:逆变换及逆量化部;140:编码部;150、250:环路滤波处理部;160、260:帧缓冲器;200:图像解码装置;210:解码部;241B:运动矢量解码部。10: image processing system; 100: image encoding device; 111, 241: inter-frame prediction unit; 111A: motion vector search unit; 111B: motion vector encoding unit; 111C, 241C: refinement unit; 111D, 241D: prediction signal generation unit; 111E, 241E: affine motion vector calculation unit; 111F, 241F: affine prediction signal generation unit; 112, 242: intra-frame prediction unit; 121: subtractor; 122, 230: adder; 131: transformation and quantization unit; 132, 220: inverse transformation and inverse quantization unit; 140: encoding unit; 150, 250: loop filter processing unit; 160, 260: frame buffer; 200: image decoding device; 210: decoding unit; 241B: motion vector decoding unit.

Claims (8)

1.一种图像解码装置,其特征在于,包括:1. An image decoding device, comprising: 仿射预测信号生成部,构成为针对每个块判断PROF(Prediction Refinement withOptical Flow)处理是否适合,当应用所述PROF处理时,针对将所述块分割所得的每个子块进行所述PROF处理;及an affine prediction signal generating unit configured to determine whether a PROF (Prediction Refinement with Optical Flow) process is suitable for each block, and when the PROF process is applied, perform the PROF process on each sub-block obtained by dividing the block; and 环路滤波处理部,构成为针对每个块边界判断解块滤波是否适合,确定不对应用所述PROF处理后的块的子块边界应用解块滤波,The loop filter processing unit is configured to determine whether deblocking filtering is appropriate for each block boundary, and determine not to apply deblocking filtering to the sub-block boundary of the block to which the PROF processing is applied, 所述环路滤波处理部还包括块边界检测部,所述块边界检测部构成为以对象块的左端或上端的坐标为基准,以最小每隔4像素的间隔,判断对象像素位置是否为所述子块边界。The loop filter processing unit further includes a block boundary detection unit configured to determine whether the target pixel position is the sub-block boundary at a minimum interval of 4 pixels based on the coordinates of the left end or the upper end of the target block. 2.根据权利要求1所述的图像解码装置,其特征在于,所述环路滤波处理部包括:2. The image decoding device according to claim 1, wherein the loop filtering processing unit comprises: 边界强度判断部,构成为对所述每个块边界判断边界强度,并构成为当所述块边界两侧的块的运动矢量的差的绝对值为1/2像素以上且所述边界不是应用PROF处理后的子块边界时,将边界强度判断为“1”;及a boundary strength determination unit configured to determine the boundary strength for each block boundary, and configured to determine the boundary strength to be "1" when the absolute value of the difference between the motion vectors of the blocks on both sides of the block boundary is greater than 1/2 pixel and the boundary is not a sub-block boundary after the PROF process is applied; and 滤波确定部,构成为当所述边界强度为“0”时,确定不对所述块边界应用解块滤波。The filter determination unit is configured to determine not to apply the deblocking filter to the block boundary when the boundary strength is "0". 3.根据权利要求1所述的图像解码装置,其特征在于,所述环路滤波处理部包括:3. The image decoding device according to claim 1, wherein the loop filtering processing unit comprises: 块边界检测部,构成为不将应用所述PROF处理后的块内的子块检测为所述块边界;a block boundary detection unit configured not to detect a sub-block within a block to which the PROF process is applied as the block boundary; 边界强度判断部,构成为将未被检测为所述块边界的像素位置的边界强度判断为“0”;及a boundary strength determination unit configured to determine the boundary strength of a pixel position not detected as the block boundary as "0"; and 滤波确定部,构成为当所述边界强度为“0”时,确定不对所述块边界应用解块滤波。The filter determination unit is configured to determine not to apply the deblocking filter to the block boundary when the boundary strength is "0". 4.根据权利要求2或3所述的图像解码装置,其特征在于,所述边界强度判断部构成为当对象块为双向预测时,且对两个参考帧中的至少任一个应用了所述PROF处理时,视为对所述对象块应用了所述PROF处理。4. The image decoding device according to claim 2 or 3 is characterized in that the boundary strength judgment unit is configured to regard the PROF processing as being applied to the object block when the object block is bidirectionally predicted and the PROF processing is applied to at least one of the two reference frames. 5.根据权利要求2或3所述的图像解码装置,其特征在于,所述边界强度判断部构成为当对象块为双向预测时,且对两个参考帧均应用了所述PROF处理时,视为对所述对象块应用了所述PROF处理。5. The image decoding device according to claim 2 or 3 is characterized in that the boundary strength judgment unit is configured to regard the PROF processing as being applied to the object block when the object block is bidirectionally predicted and the PROF processing is applied to two reference frames. 6.根据权利要求2或3所述的图像解码装置,其特征在于,所述边界强度判断部构成为在判断对象边界两侧的块在相同预测方向上各自的运动矢量的差时,当在该预测方向上应用了所述PROF处理时,不判断该预测方向上各自的运动矢量的差,或将该预测方向上各自的运动矢量的差视为“0”。6. The image decoding device according to claim 2 or 3 is characterized in that the boundary strength judgment unit is configured to, when judging the difference between the motion vectors of blocks on both sides of the object boundary in the same prediction direction, not judge the difference between the motion vectors in the prediction direction, or regard the difference between the motion vectors in the prediction direction as "0" when the PROF processing is applied in the prediction direction. 7.一种图像解码方法,其特征在于,包括以下步骤:7. An image decoding method, characterized in that it comprises the following steps: 针对每个块判断PROF(Prediction Refinement with OpticalFlow)处理是否适合,当应用所述PROF处理时,针对将所述块分割所得的每个子块进行所述PROF处理;及Determining whether a PROF (Prediction Refinement with Optical Flow) process is suitable for each block, and when the PROF process is applied, performing the PROF process on each sub-block obtained by dividing the block; and 针对每个块边界判断解块滤波是否适合,确定不对应用所述PROF处理后的块的子块边界应用解块滤波,Determine whether deblocking filtering is suitable for each block boundary, and determine not to apply deblocking filtering to the sub-block boundary of the block after applying the PROF processing, 以对象块的左端或上端的坐标为基准,以最小每隔4像素的间隔,判断对象像素位置是否为所述子块边界。Based on the coordinates of the left end or the top end of the object block, it is determined whether the object pixel position is the sub-block boundary at a minimum interval of every 4 pixels. 8.一种计算机可读存储介质,存储有程序,其特征在于,所述程序在图像解码装置中使用,且使计算机执行以下步骤:8. A computer-readable storage medium storing a program, wherein the program is used in an image decoding device and causes a computer to execute the following steps: 针对每个块判断PROF(Prediction Refinement with OpticalFlow)处理是否适合,当应用所述PROF处理时,针对将所述块分割所得的每个子块进行所述PROF处理;及Determining whether a PROF (Prediction Refinement with Optical Flow) process is suitable for each block, and when the PROF process is applied, performing the PROF process on each sub-block obtained by dividing the block; and 针对每个块边界判断解块滤波是否适合,确定不对应用所述PROF处理后的块的子块边界应用解块滤波,Determine whether deblocking filtering is suitable for each block boundary, and determine not to apply deblocking filtering to the sub-block boundary of the block after applying the PROF processing, 以对象块的左端或上端的坐标为基准,以最小每隔4像素的间隔,判断对象像素位置是否为所述子块边界。Based on the coordinates of the left end or the top end of the object block, it is determined whether the object pixel position is the sub-block boundary at a minimum interval of every 4 pixels.
CN202080058192.5A 2019-09-20 2020-08-21 Image decoding device, image decoding method, and program Active CN114270867B (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2019172136A JP7200074B2 (en) 2019-09-20 2019-09-20 Image decoding device, image decoding method and program
JP2019-172136 2019-09-20
PCT/JP2020/031565 WO2021054040A1 (en) 2019-09-20 2020-08-21 Image decoding device, image decoding method, and program

Publications (2)

Publication Number Publication Date
CN114270867A CN114270867A (en) 2022-04-01
CN114270867B true CN114270867B (en) 2024-10-01

Family

ID=74883520

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080058192.5A Active CN114270867B (en) 2019-09-20 2020-08-21 Image decoding device, image decoding method, and program

Country Status (3)

Country Link
JP (1) JP7200074B2 (en)
CN (1) CN114270867B (en)
WO (1) WO2021054040A1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113711608A (en) * 2019-04-19 2021-11-26 北京字节跳动网络技术有限公司 Applicability of predictive refinement procedure with optical flow

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DK149021C (en) * 1981-12-28 1993-05-03 Anton Brandi Jensen PLANT WITH GROUND AIR CONDITIONS FOR AIR DRYING OF GRAIN IN A DRY STORAGE AND FOR TRANSPORTING THE GRAIN AWAY FROM STORAGE
CN101404767A (en) * 2008-11-24 2009-04-08 崔天龙 Parameter-variable automated video transcoding method based on image analysis and artificial intelligence
AU2016200566B2 (en) * 2009-07-01 2017-02-16 Sony Group Corporation Image processing device and method
AU2015200216B2 (en) * 2010-06-04 2015-11-05 Sony Corporation Image Processing Device and Method
MX355896B (en) * 2010-12-07 2018-05-04 Sony Corp Image processing device and image processing method.
JP6037064B2 (en) * 2011-01-18 2016-11-30 ソニー株式会社 Image processing apparatus, image processing method, program, and recording medium
US9380320B2 (en) * 2012-02-10 2016-06-28 Broadcom Corporation Frequency domain sample adaptive offset (SAO)
TWI524739B (en) * 2012-02-10 2016-03-01 美國博通公司 Sample adaptive offset (sao) in accordance with video coding
WO2013145773A1 (en) * 2012-03-30 2013-10-03 株式会社Jvcケンウッド Image encoder, image coding method, image coding program, transmitter, transmission method, and transmission program, and image decoder, image decoding method, image decoding program, receiver, reception method, and reception program
KR101847365B1 (en) * 2012-04-13 2018-04-09 미쓰비시덴키 가부시키가이샤 Moving image encoding device, moving image decoding device, moving image encoding method, moving image decoding method and storage medium
JP5814191B2 (en) * 2012-06-27 2015-11-17 日本電信電話株式会社 Deblocking processing method, deblocking processing apparatus, program, and recording medium
US9380289B2 (en) * 2012-07-20 2016-06-28 Qualcomm Incorporated Parameter sets in video coding
CN104620586B (en) * 2012-09-20 2018-04-27 索尼公司 Image processing apparatus and method
CN104284199B (en) * 2013-07-11 2019-02-01 Nxp股份有限公司 Video encoding/decoding method and device are carried out with the deblocking effect operation for reducing complexity
CN115134611B (en) * 2015-06-11 2025-01-14 杜比实验室特许公司 Method for encoding and decoding image using adaptive deblocking filtering and apparatus therefor
JP2018107500A (en) * 2016-12-22 2018-07-05 キヤノン株式会社 Coding device, coding method, program, decoding device, decoding method, and program

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113711608A (en) * 2019-04-19 2021-11-26 北京字节跳动网络技术有限公司 Applicability of predictive refinement procedure with optical flow

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Algorithm description for Versatile Video Coding and Test Model 6 (VTM 6);Jianle Chen;Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 15th Meeting: Gothenburg, SE, 3–12 July 2019;说明书第3.4.4.4节 *
Non-CE9: Block Boundary Prediction Refinement with Optical Flow for DMVR;Wei Chen;Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 15th Meeting: Gothenburg, SE, 3–12 July 2019;第2节 *

Also Published As

Publication number Publication date
JP7200074B2 (en) 2023-01-06
JP2021052228A (en) 2021-04-01
CN114270867A (en) 2022-04-01
WO2021054040A1 (en) 2021-03-25

Similar Documents

Publication Publication Date Title
JP5606625B2 (en) Reference processing using advanced motion models for video coding
EP4557733A1 (en) Image decoding device, image decoding method, and program
US10015508B2 (en) Video encoding device and video encoding method
CN114009033A (en) Method and apparatus for signaling symmetric motion vector difference mode
US20250008161A1 (en) Image decoding device, method and program with prediction refinement optical flow
US20240283972A1 (en) Image decoding device, image decoding method, and program
JP7106025B2 (en) Image decoding device, image decoding method and program
CN114270867B (en) Image decoding device, image decoding method, and program
JP7012191B1 (en) Image decoder, image decoding method and program
JP7055937B1 (en) Image decoder, image decoding method and program
JP7356783B2 (en) Image decoding device, image decoding method and program
WO2013077304A1 (en) Image coding device, image decoding device, and methods and programs thereof
JP2021052389A (en) Image decoding device, image decoding method and program

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant