System and method for applying deblocking filter to reconstructed video data

The deblocking filter addresses blocking artifacts in video coding standards by applying a filtering process to adjacent blocks, enhancing video quality and reducing perceptible blockiness.

JP2025131771AActive Publication Date: 2025-09-09SHARP KK
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025095057
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2018-09-27
Filing Date
2025-06-06
Publication Date
2025-09-09
Estimated Expiration
2039-03-25

AI Technical Summary

Technical Problem

Existing video coding standards like ITU-T H.264, ITU-T H.265, and JEM face challenges in effectively reducing blocking artifacts in reconstructed video data, which can lead to perceptible blockiness and degrade video quality.

Method used

A method for deblocking reconstructed video data by applying a filtering process to adjacent blocks in multiple passes, utilizing a deblocking filter to modify sample values and reduce boundary discontinuities.

Benefits of technology

The proposed deblocking technique enhances video quality by smoothing block boundaries, reducing perceptible artifacts, and improving the overall visual fidelity of reconstructed video data.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025131771000001_ABST
    Figure 2025131771000001_ABST
Patent Text Reader

Abstract

To provide an apparatus and a method for applying a deblocking filter.SOLUTION: An apparatus receives a sample value included in a first block and a second block adjacent to a block boundary of reconstructed video data, determines whether 7 samples of the first block are filtered based on a width of the first block being greater than or equal to 32 when an edge type is vertical, determines whether 3 samples of the second block are filtered based on the width of the second block being less than 32, and filters each pixel of the first block and the second block using an intermediate value calculated based on an equation (2*(p0+q0)+q0+2*(q1+q2)+p1+q1+p2+p3+p4+p5+p6+8)>>4. The pi denotes a value of a pixel of the first block, the qi denotes the value of the pixel of the second block, the i denotes the position of the pixel from the block boundary, and the i=0 denotes the position directly adjacent to the block boundary.SELECTED DRAWING: Figure 10
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] This disclosure relates to video coding, and more particularly to deblocking of recovered video data. This document relates to a technique for implementing the above. Background technology

[0002] Digital video capabilities include digital televisions, laptops, or desktop computers. , tablet computers, digital recording devices, digital media players, video gaming devices, cellular telephones including so-called smartphones, medical imaging Digital video can be integrated into a wide range of devices, including video devices. It can be encoded according to a video coding standard. Examples of video coding standards include ISO / IEC MPEG-4 Visual and ITU-T H.264 (also known as ISO / IEC MPEG-4 AVC) and High-Efficiency V High Efficiency Video Coding (HEVC), Re c. ITU-T H.265 (December 2016), which is incorporated herein by reference, and In this document, it is referred to as ITU-T H.265. Extensions and improvements to ITU-T H.265 are the next generation video coding standards. Currently being considered for the development of a coding standard. For example, the ITU-T Video Coding Experts Group(VCEG) and ISO / IEC (Moving Picture Experts Group(MPEG)(Joint Video E The Joint Vox Exploration Team (JVET) is working to significantly improve the compression capabilities of the current HEVC standard. Considers the potential need for standardization of future video coding technologies with compression capabilities exceeding . The Joint Exploration Model 7 (JEM 7),Algorithm Description of Joint Exploration Test Model 7 (JEM 7), ISO / IEC JTC1 / SC29 / WG11 Document: Video Codec JVET has the potential to improve the encoding technology beyond the capabilities of ITU-T H.265. Therefore, we are conducting collaborative testing model research on coding features. No. IT, which is incorporated herein by reference. Note that is implemented in the JEM reference software. The term JEM refers to the collection of algorithms included in JEM 7 and the implementation of the JEM Reference Software. It can be expressed as a whole.

[0003] Video compression techniques improve the quality of video by exploiting the inherent redundancy in video sequences. Video compression techniques reduce the data requirements for storing and transmitting video data. The sequence is divided into successively smaller parts (i.e., groups of frames in a video sequence, groups of frames Frames within a frame, slices within a frame, coding tree units within a slice (e.g., subdivision into blocks (sub-blocks), coding blocks within a coding tree unit, etc. Intra-prediction coding techniques (e.g., within a picture (spatial)) and inter-prediction techniques (i.e., i.e., interpicture (temporal)) to differentiate between the units of video data to be coded and the video A difference value between the residual data and a reference unit of data can be generated. The residual data can be coded as quantized transform coefficients. Syntax elements can associate residual data with reference coding units (e.g. For example, intra-prediction mode index, motion vector, and block vector). The difference data and syntax elements can be entropy coded. The encoded residual data and syntax elements may be included in a compliant bitstream. Conforming bitstreams and associated metadata shall be formatted according to the data structure. You may do so. Summary of the Invention

[0004] In one embodiment, the method for filtering restored video data comprises filtering the restored video data by receiving an array of sample values ​​including adjacent reconstructed video blocks for the component; and the adjacent restored video blocks according to multiple passes of the deblocking filter. and modifying the sample values ​​in the [Brief explanation of the drawings]

[0005] [Figure 1] A conceptual diagram illustrating an example of a group of pictures coded according to a quad-tree binary tree partitioning, in accordance with one or more techniques of this disclosure. [Figure 2] 1 is a conceptual diagram illustrating an example of a sampling format for a video component in accordance with one or more techniques of this disclosure. [Figure 3] 1A-1C are conceptual diagrams illustrating possible coding structures for a block of video data in accordance with one or more techniques of this disclosure. [Figure 4A] 1 is a conceptual diagram illustrating an example of encoding a block of video data in accordance with one or more techniques of this disclosure. [Figure 4B] 1 is a conceptual diagram illustrating an example of encoding a block of video data in accordance with one or more techniques of this disclosure. [Figure 5A] FIG. 1 is a conceptual diagram illustrating a block of video data including a deblocking boundary, in accordance with one or more techniques of this disclosure. [Figure 5B] FIG. 1 is a conceptual diagram illustrating a block of video data including a deblocking boundary, in accordance with one or more techniques of this disclosure. [Figure 6] 1 is an example table that can be used to determine deblocking parameters, in accordance with one or more techniques of this disclosure. [Figure 7] 1 is a block diagram illustrating an example of a system that can be configured to encode and decode video data in accordance with one or more techniques of this disclosure. [Figure 8] 1 is a block diagram illustrating an example of a video encoder that can be configured to encode video data in accordance with one or more techniques of this disclosure. [Figure 9] FIG. 2 is a block diagram illustrating an example of a video decoder that can be configured to decode video data in accordance with one or more techniques of this disclosure. [Figure 10] 1 is a flowchart illustrating an example of performing deblocking in accordance with one or more techniques of this disclosure. [Figure 11] 1 is a flowchart illustrating an example of performing deblocking in accordance with one or more techniques of this disclosure. [Figure 12] 1 is a flowchart illustrating an example of performing deblocking in accordance with one or more techniques of this disclosure. [Figure 13] 1 is an example table that can be used to determine deblocking parameters, in accordance with one or more techniques of this disclosure. [Figure 14A] FIG. 1 is a conceptual diagram illustrating a block of video data including a deblocking boundary, in accordance with one or more techniques of this disclosure. [Figure 14B] 1 is a conceptual diagram illustrating a block of video data including a deblocking boundary, in accordance with one or more techniques of this disclosure.

[0006] Generally, this disclosure describes various techniques for encoding video data. In this disclosure, techniques are described for performing deblocking of the recovered video data. Although the techniques are described with respect to ITU-T H.264, ITU-T H.265, and JEM, the techniques of this disclosure It should be noted that the techniques are generally applicable to video coding. The coding techniques described include block structures other than those included in ITU-T H.265, intra prediction, techniques, inter-prediction techniques, transform techniques, filtering techniques, and / or entropy coding Video coding systems including technology (video coding systems based on future video coding standards) Therefore, it can be incorporated into ITU-T H.264, ITU-T H.265, and JEM References to the above are for illustrative purposes only and should not be construed as limiting the scope of the technology described herein. Furthermore, the incorporation by reference of documents herein shall not be construed as a substitute for the It should be noted that the terms used should not be construed as limiting or creating ambiguity. For example, if an incorporated reference differs from another incorporated reference and / or its terms In the event that a definition of a term is provided that differs from that used herein, that term shall be deemed to be a to broadly include each corresponding definition and / or to include each specific definition instead. should be interpreted as follows.

[0007] In one embodiment, a device for video encoding includes: a device for encoding adjacent components of video data; receiving an array of sample values ​​containing a reconstructed video block; to modify sample values ​​in adjacent reconstructed video blocks according to multiple passes of The system includes one or more processors configured as follows:

[0008] In one embodiment, a non-transitory computer-readable storage medium includes instructions stored thereon: The instructions, when executed, cause one or more processors of the device to process components of the video data. receiving an array of sample values ​​containing adjacent reconstructed video blocks for the deblocking; Following multiple passes of the filtering filter, samples in adjacent reconstructed video blocks are Change the value.

[0009] In one embodiment, the device comprises: a device for generating adjacent reconstructed video blocks for a component of the video data; means for receiving an array of sample values ​​including a plurality of blocks of the deblocking filter; and means for modifying sample values ​​in adjacent reconstructed video blocks according to the do.

[0010] The details of one or more embodiments are set forth in the accompanying drawings and the description below. , objects, and advantages will be apparent from the specification and drawings, and from the claims.

[0011] Video content typically includes a video sequence, which consists of a series of frames. A series of frames is also sometimes called a group of pictures (GOP). A video frame or picture can contain multiple slices or tiles, and a slice A tile or tile contains multiple video blocks. The term "picture" may refer generally to a part of a picture, or more specifically to The maximum sequence of sample values ​​that can be predictively coded, its subdivision, and / or the corresponding Furthermore, the term current video block may refer to the structure that is being coded or decoded. A video block can refer to a portion of a picture that is predictively coded. In some cases, pixel values ​​can be defined as , color components (e.g., luma component (Y) and chroma components (Cb and Cr), or red, green, and blue The video data may be described as including sample values ​​for each component of the video data, which may also be referred to as a component. Note that in some cases the terms pixel value and sample value may be used interchangeably. Note that the terms are used interchangeably. A video block is a block that is based on a scan pattern (e.g., The video encoder can order the frames in a picture according to a star scan. Predictive coding can be performed on the video block and its subdivisions. Blocks and their subdivisions are sometimes called nodes.

[0012] ITU-T H.264 specifies a macroblock structure containing 16x16 luma samples. That is, in ITU-T H.264, a picture is divided into macroblocks. In ITU-T H.265, A similar Coding Tree Unit (CTU) structure is specified, which is the maximum coding In ITU-T H.265, a picture is divided into CTUs. In H.265, for one picture, the CTU size can be 16x16, 32x32, or 64x64. In ITU-T H.265, the CTU is the Each code for each component of the data (e.g., luma (Y) and chroma (Cb and Cr)) It consists of a coding tree block (CTB). Furthermore, ITU-T H.265 defines A CTU can be partitioned according to a quadtree (QT) partitioning structure, so that the CTB of the CTU is In other words, in ITU-T H.265, the CTU is divided into four According to ITU-T H.265, one luma CB can be divided into 2 A coding unit (CU) is a set of two corresponding chroma CBs, together with their associated syntax elements. ITU-T H.265 allows the signaling of the minimum allowable size of CB. In ITU-T H.265, the smallest allowable size of the luma CB is 8x8 luma samples. The decision to encode a picture portion using intra- or inter-prediction is made at the CU level. It is held at.

[0013] In ITU-T H.265, a CU is associated with a prediction unit (PU) structure with its root in the CU. In ITU-T H.265, the PU structure is a rule-based method for generating the corresponding reference samples. In other words, ITU-T H.265 allows for the separation of luma CB and chroma CB. The luma and chroma CB can be divided into respective luma and chroma prediction blocks (PB), where where PB contains the block of sample values ​​to which the same prediction is applied. In ITU-T H.265, CB is , 2, or 4 PBs. ITU-T H.265 supports 64x64 samples to 4x4 In ITU-T H.265, square PB is used for intra prediction. Supported for measurement, where CB can form PB or CB can be divided into four squares. (i.e., the intra prediction PB size type is M × M or M / 2 × M / 2, where M is the height and width of the square CB. In ITU-T H.265, the square PB Besides, rectangular PB is supported for inter prediction, where CB is bisected vertically or horizontally. PBs can be formed by dividing the PBs into M×M, M / 2×M / 2, and M Furthermore, ITU-T H.265 allows for four non-interpolated predictions. Symmetric PB division is supported, where the CB is divided into two parts by the height (top or bottom) or width (left or right) of the CB. It is divided into two PBs by a quarter (i.e., asymmetric divisions are M / 4 × M left, M / 4 × M right, M Note that the intra prediction data corresponding to the PB is data (e.g., intra prediction mode syntax element) or inter prediction data (e.g., motion Use the 'data syntax element' to specify the reference sample values ​​and / or predicted samples for the PB. A rule value is generated.

[0014] The JEM specifies a CTU with a maximum luma sample size of 256x256. The JEM specifies a quaternary tree + binary tree (QTBT) block structure. It allows leaf nodes to be further split by a binary tree structure (BT), i.e. In JEM, the binary tree structure is created by recursively splitting the quadtree leaf nodes vertically or horizontally. Figure 1 shows the quadtree divided into leaf nodes and the quadtree The leaf nodes are further split into CTUs (e.g., 256x256 luma samples) according to the binary tree. In Figure 1, the dashed lines represent the CTUs in the quadtree. This suggests additional binary tree partitions. Therefore, the binary tree structure in JEM is square. It allows for shape leaf nodes and rectangle leaf nodes, each of which has one As shown in Figure 1, a picture in a GOP can contain multiple slices. Each slice contains a series of CTUs, and each CTU can be divided according to the QTBT structure. 1 shows an example of QTBT division of one CTU contained in one slice. The binary tree structure allows for square leaf nodes and rectangular leaf nodes, A leaf node contains one CB. In JEM, the CB is used for prediction without any splitting. That is, in JEM, CB is a block of sample values ​​to which the same prediction is applied. Therefore, the JEM QTBT leaf node is similar to the PB in ITU-T H.265. It may be so.

[0015] The video sampling format, sometimes called the chroma format, is included in the CU. You can define the number of chroma samples contained in a CU relative to the number of luma samples contained in a CU. For example, for a 4:2:0 format, the sampling rate for the luma component is The result is twice the sampling rate of the chrominance components in both the horizontal and vertical directions. For a CU formatted according to the 4:2:0 format, the luma component is The width and height of the sample array are the width and height of each array of samples for the chroma components. Figure 2 shows a code formatted according to the 4:2:0 sample format. FIG. 2 is a conceptual diagram illustrating an example of a chroma sample to luma sample conversion unit in a CU. As mentioned above, a CU typically represents the relative position of the horizontal and vertical luma samples. Therefore, as shown in Figure 2, the 4:2:0 sample format Thus, a formatted 16x16 CU consists of 16x16 samples of the luma component and each In addition, in the example shown in Figure 2, the 8x8 samples for the roma component are The relative positions of the chroma samples with respect to the luma samples for the video block being coded are shown. For CUs formatted according to the 4:2:2 format, the luma component The width of the sample array is twice the width of the sample array for each chroma component. However, the height of the array of samples for the luma component is equal to the height of the array of samples for each chroma component. Furthermore, for CUs formatted according to the 4:4:4 format, Therefore, the sample arrangement for the luma component is different from the sample arrangement for each chroma component. It has the same width and height as

[0016] As mentioned above, intra- or inter-predicted data is a block of sample values. It is used to generate reference sample values ​​for the current PB or another type of picture. The sample values ​​contained in the substructure and the associated reference samples (e.g., generated using the prediction The difference between the video and the reference sample is sometimes called residual data. The residuals may include a respective array of difference values ​​corresponding to each component of the data. The data can be in the pixel domain. rm), discrete sine transform (DST), integer transform, wavelet transform , or a conceptually similar transform, to the array of difference values ​​to generate transform coefficients. In ITU-T H.265, a CU is a transform unit that has its root at the CU level. Note that this is related to the (TU) structure, i.e., in ITU-T H.265, the transform coefficients are generated using For the purpose of (This can be applied to a 16x16 array.) For each component of the video data, Such subdivisions are sometimes called Transform Blocks (TBs). ITU-T H. Note that in H.265, it is not necessary to align the TB with the PB. Figure 3 shows the coding of a particular CB. Examples of alternative PB and TB combinations that can be used to achieve this are given below. In .265, TBs can have the following sizes: 4x4, 8x8, 16x16, and 32x32. Note that in JEM, the residual values ​​corresponding to the CB are used to determine the In other words, in JEM, the QTBT leaf node generates the transform coefficients in the same way as in ITU-T H.265. In JEM, the core transformation and subsequent The following transform can be applied (in the video encoder) to generate the transform coefficients: For da, the order of the transformations is reversed. Furthermore, in JEM, a secondary transformation is applied to obtain the transformation coefficients Whether or not to generate ? may depend on the prediction mode.

[0017] The transform coefficients may be quantized according to a quantization process. Quantization is the process of quantizing the transform coefficients to a particular set of values. Approximate the transform coefficients by limited amplitude. Quantization is required to represent a set of transform coefficients. Quantization may be used to vary the amount of data available. Quantization is the division of transform coefficients by a scaling factor. and any associated rounding function (e.g., round to nearest integer) Inverse quantization (or "dequantization") can be generally described as The "magnification" may include multiplication of coefficient level values ​​by a scaling factor. When referring to a quantization process, the term generally refers to the process that generates the level values ​​in some cases. Refers to division by a scaling factor, or in some cases multiplication by a scaling factor, to recover the transformation factor Note that the quantization process may, in some cases, This may refer to quantization, and in some cases, dequantization. The block performs inverse quantization on the level values, performs an inverse transform, and generates a set of predicted values ​​as the result. The sample values ​​of the reconstructed block are may differ from the sample values ​​of the current video block input to the encoding process. Thus, the coding can be said to be lossy. However, the sample values Note that the difference between It should be.

[0018] The quantized transform coefficients (sometimes called level values) are encoded using entropy coding techniques. techniques (e.g., content adaptive variable length coding, C AVLC, context adaptive binary arithmetic coding CABAC, probability interval partitioning entropy coding It can be entropy coded according to the coding, PIPE, etc. Furthermore, it can indicate the prediction mode. Syntax elements such as the The entropy-coded quantized transform coefficients and the corresponding entropy-coded syntax The bitstream element is a compliant bitstream that can be used to recreate the video data. The binarization process can be performed as part of the entropy coding process. It can be performed on syntax elements. Binarization converts syntax values ​​into a series of 1 This refers to the process of converting a signal into one or more bits. These bits are sometimes called "bins." 4A-4B are conceptual diagrams illustrating an example of encoding a block of video data. As shown in 4A, the current block of video data (e.g., CB corresponding to the video component) is A set of predictors is subtracted from the current block of video data to generate a residual, and a function is applied to the residual. The image is encoded by performing a transform using the quantizer and quantizing the transform coefficients to generate level values. As shown in FIG. 4B, the current block of video data undergoes inverse quantization on the level values. The set of predicted values ​​is then reconstructed by performing an inverse transform and adding the resulting residuals. In the example of FIGS. 4A and 4B, the sample values ​​of the reconstructed block are It should be noted that the sample values ​​of the video block are different from those of the However, the difference in sample values ​​is It can be considered tolerable or imperceptible to a human observer.

[0019] The quantized transform coefficients are coded into a bitstream, as shown in Figure 4A. The encoded transform coefficients and syntax elements (e.g., symbols that indicate the coding structure of a video block) The tax element) can be entropy coded according to an entropy coding technique. An example of an entropy coding technique is content adaptive variable length coding. Context-adaptive binary arithmetic coding (CAVLC), context-adaptive binary arithmetic coding (context ada adaptive binary arithmetic coding (CABAC), probability interval division entropy coding (probability Interval Partitioning Entropy Coding (PIPE) is an example of entropy coding. The dequantized transform coefficients and the corresponding entropy-coded syntax elements are used to generate the video. A conforming bitstream that can be used to reproduce video data with an audio decoder. The entropy coding process can generate a This may include performing binarization, which converts the value of a syntax value into a series of one or more binary values. These bits are sometimes called "bins." Binarization is a lossless process and can be implemented using the following coding techniques: fixed length coding, unary coding, truncated unary coding Term encoding, shortened Rice encoding, Golomb encoding, k-order index Golomb encoding, and Golomb-Rice encoding For example, binarization may include one or a combination of 8-bit fixed length Representing the integer value of the syntax element 5 as 00000101 using binarization techniques, or This may include representing the integer value of 5 as 11110 using a unary encoding binarization technique. As used herein, fixed length coding, unary coding, shortened unary coding, shortened Rice coding , Golomb coding, kth exponential Golomb coding, and Golomb-Rice coding are terms that are used to denote the , general implementations of these techniques and / or more specific implementations of these encoding techniques. For example, an implementation of Golomb-Rice coding may refer to a video coding standard, e.g. For example, it can be specifically defined according to ITU-T H.265. Entropy coding process further includes encoding the bin values ​​using a lossless data compression algorithm. In the C example, for a particular bin, the context model determines the available contexts associated with the bin. In some cases, the context can be selected from a set of context models. The model can be selected based on the value of the previous bin and / or the previous syntax element. The context model can identify the probability that a bin has a particular value. For example, the context model may have a probability of 0.7 for encoding a bin with a value of 0, and a probability of 0.7 for encoding a bin with a value of 1. In some cases, it may be possible to encode a 0-valued bin with a probability of 0.3. It is noted that the probability of coding a bin and the probability of coding a bin with one value may not sum to one. After selecting an available context model, the CAB AC entropy encoder Based on the identified context model, the bins can be arithmetically coded. The text model can be updated based on the values ​​of the encoded bins. The model stores relevant variables stored with the context, e.g., adaptive window size. The size can be updated based on the number of bins coded using the context. According to ITU-T H.265, some syntax elements are not explicitly assigned contexts. so that entropy coding can be performed using arithmetic coding without the use of a sparse model. It is possible to implement a CABAC entropy encoder, and such encoding is bypass encoding. Note that it is sometimes called

[0020] As mentioned above, the intra-predicted data or the inter-predicted data may be used for a picture (e.g., P The part of the signal (B or CB) can be associated with the corresponding reference sample. For optimization, intra prediction modes may specify the location of reference samples within a picture. In ITU-T H.265, the possible intra prediction modes defined are planar (i.e. (i.e., surface conformance) prediction mode (predMode:0), DC (i.e., flat overall averaging) prediction mode ( predMode: 1), and 33 angular prediction modes (predMode: 2-34) In JEM, the possible intra prediction modes defined are the planar prediction mode (predMode: 0) , DC prediction mode (predMode: 1), and 65-angle prediction modes (predMode: 2-66). C prediction modes are sometimes called non-directional prediction modes, and angular prediction modes are called directional prediction modes. Note that these are sometimes referred to as prediction modes. It should be noted that this method may be generally applicable regardless of the number of possible prediction modes implemented. sea ​​bream.

[0021] For inter-predictive coding, a motion vector (MV) is assigned to the video block to be coded. and identifying reference samples in pictures other than the picture of For example, the current video block may be encoded in a previously coded frame (single or multiple frames). The motion vectors can be predicted from a reference block or blocks located in the The motion vector and associated The data to be stored includes, for example, the horizontal component of the motion vector, the vertical component of the motion vector, and the resolution (e.g., quarter-pixel accuracy, half-pixel accuracy, full pixel accuracy, Describes the precision (pixel accuracy, 4-pixel accuracy), prediction direction, and / or reference picture index value Furthermore, coding standards such as ITU-T H.265, for example, require motion vector prediction. The motion vector prediction is performed by using the motion vectors of neighboring blocks. It is possible to specify a motion vector using the Advanced motion vector prediction (AMVP), temporal motion vector prediction ( temporal motion vector prediction (TMVP), the so-called "associative" mode, and "skip" mode. These include "advanced" and "direct" motion estimation. spatio-temporal motion vector prediction (AMVP) motion vector prediction (STMVP), and frame rate up-conversion (FRUC) technologies a special merging mode based on the Pattern Match Motion Vector Derivation (PMMVD) mode, and Supports affine transformation motion compensation prediction technology.

[0022] As mentioned above, quantization can be achieved by dividing the transform coefficients by a scaling factor. can be further used to vary the amount of data required to represent a group of transform coefficients. That is, increasing the scaling factor (or degree of quantization) can reduce the number of coefficients that represent a group of coefficients. In ITU-T H.265, the degree of quantization is determined by the quantization parameter In ITU-T H.265, the bit length of 8 bits is QP can take 52 values ​​from 0 to 51, and a change of 1 for QP is typically about 12%. More generally, in ITU-T H.265, the source bit rate is Note that the valid range of QP values ​​for length is: -6 * (bitdepth-8)~+51(i Therefore, for example, if the bit length is 10 bits, QP is one of 64 values ​​from -12 to 51. It can take values ​​of , which can be mapped to values ​​between 0 and 63 during dequantization. The quantization parameters can be updated for each CU, and each quantization parameter is It can be derived for each luma and chroma component. The amount of distortion may increase (e.g., the restored coefficient is divided by a larger scaling factor). Note that the resulting video data may appear more "blocky."

[0023] In some cases, blocking artifacts may cause the coding block boundaries of the reconstructed video data to be misaligned. To reduce blockiness, the restored image can be visually perceptible to the user. Modify the sample values ​​generated to minimize distortion introduced by the video encoding process. Such modification may be generally referred to as filtering. The filtering can be performed in the in-loop or post-loop filtering process. Note that for the in-loop filtering process, The sample values ​​resulting from the filtering process are used for the prediction video block. may be used (e.g., for subsequent encoding in a video encoder and subsequent encoding in a video decoder). (These are stored in the reference frame buffer for subsequent decoding.) In this process, the sample values ​​resulting from the filtering process are simply used in the decoding process. are output as part of the process (i.e., are not used in further encoding). In the case of the pre-filtering process, the result of filtering the recovered blocks is The resulting sample values ​​are used for subsequent decoding (e.g., stored in a reference buffer), For example, to a display. The restored block without modification is used for subsequent decoding, and the restored block is The resulting filtered sample values ​​are output.

[0024] For the formulas used herein, the following arithmetic operators may be used: + Addition - Subtract * Multiplication, including matrix multiplication / Integer division with result truncated towards zero. For example, 7 / 4 and -7 / -4 are rounded down to 1. , -7 / 4 and 7 / -4 are rounded down to -1.

number

[0025] Additionally, the following mathematical functions can be used:

number

number

[0026] Additionally, the following definitions of logical operators may apply: x&&y Boolean logic "product" of x and y x||y Boolean logic "union" of x and y ! Boolean logic "no" x?y:zIf x is true or not equal to 0, evaluate the value of y, otherwise the value of z Evaluate the value.

[0027] Additionally, the following relational operators may be applied: > greater than >= Greater than or equal to < Less than <= less than or equal to == Equal to != Not equal to

[0028] Additionally, the following bitwise operators may be applied: x>>y Arithmetic right shift of the two's complement integer representation of x by y binary digits. This function It is defined only for non-negative integer values ​​of . The right shift results in a shift to the most significant bit (MSB). The shifted bit has a value equal to the MSB of x before the shift operation. x << y is an arithmetic left shift of the two's complement integer representation of x by y binary digits. This function is only defined for non-negative integer values of y . As a result of the left shift, the bit shifted into the least significant bit (LSB) has a value equal to 0.

[0029] Deblocking (or de-blocking), de-block filtering, performing de-blocking, or applying a de-blocking filter refers to a process that smooths the video block boundaries of adjacent reconstructed video blocks (i.e., makes the boundaries less perceptible to an observer). Smoothing the boundaries of adjacent reconstructed video blocks can involve changing the sample values included in the rows or columns adjacent to the boundary. ITU-T H.265 provides for the case where the de-blocking filter is applied to the reconstructed sample values as part of an in-loop filtering process . ITU-T H.265 includes two types of de-blocking filters that can be used to change luma samples, namely, a strong filter that changes the sample values within three rows or columns adjacent to the boundary, and a weak filter that changes the sample values within the row or column directly adjacent to the boundary and, conditionally , the sample values within the second row or column from the boundary. Further, ITU-T H.265 includes one type of filter that can be used to change chroma samples, namely, a normal filter.

[0030] Figures 5A - 5B show the sample values included in video blocks P and Q that have a boundary. As used in this specification, video blocks P and Q are blocks to which de-blocking may be applied Used to refer to adjacent video blocks with block boundaries. The method can be based on a defined filter, where pi and qi are the values ​​in the columns relative to the vertical boundary. represent the corresponding sample value and the sample value in the row relative to the horizontal boundary, and pi' and qi' Represents the modified sample value. The defined filter is the value that is modified (or filtered). The sample that is used to determine how the sample is modified. For example, as shown in FIG. 5A, in one embodiment, Each of the first three columns (denoted as filtered samples) adjacent to the king boundary The sample values ​​in are the first four columns adjacent to the deblocking boundary (support samples The sample values ​​may be modified based on the sample values ​​contained in each of the samples (denoted as ).

[0031] As mentioned above, ITU-T H.265 can be used to modify the luma samples. It includes two types of filters, a strong filter and a weak filter, which are used to filter luma sample values. A simplified definition of the strong and weak filter equations for the change is provided below: The definition is simplified in that it does not include the clipping operation provided in ITU-T H.265. (i.e., in ITU-T H.265, the filtered value is the value t C), but Section 8 of ITU-T H.265 provides the complete definition. Reference is made to 7.2.5.7. Strong Filter

number

number

number

[0032] Additionally, ITU-T H.265 defines one type of chroma sample that can be used to modify the chroma samples. Normal filters for modifying chroma sample values. A simplified definition of the Ruta formula is provided below: Normal Filter

number

[0033] Deblocking can be performed based on the deblocking granularity. ITU-T H.265 provides 8x8 deblocking granularity, i.e., in ITU-T H.265, the picture For the part, each edge located on the 8x8 grid is checked to see if a boundary exists. Furthermore, ITU-T H.265 defines a boundary strength for each boundary. In ITU-T H.265, Bs is determined as 0, 1, or or determined as one of two. If P and Q are two adjacent coding blocks, the filter strength Bs is given as follows: It is prescribed. If one of the blocks (P or Q) has intra prediction mode, Bs=2; Otherwise, P and Q belong to different TBs and P or Q has at least one non-zero transformation coefficient. If we have a number, Bs=1, Otherwise, if the reference pictures of P and Q are not equal, then Bs=1; Otherwise, if the difference between the x or y motion vector components of P and Q is greater than or equal to one integer sample, If Bs=1, Otherwise, Bs=0.

[0034] In ITU-T H.265, the QP (Q P P and QPq) based on the variable t C ' and β' are determined. C In ITU-T H.265, the index Q is determined as follows: is determined as follows. To Luma, Regarding β':

number

number

number

[0035] In ITU-T H.265, the variables β and Q are derived as follows:

number

[0036] ITU-T H.265 defines a variable d, which is determined based on the luma sample value as follows: can be.

number

[0037] Furthermore, in ITU-T H.265, the variable dpq is set to a value that depends on the values ​​of d and β. ITU-T H.265 uses Bs, tC, β, and d to determine which filter type to apply. Furthermore, ITU-T H.265 determines whether to use a strong or weak filter. For the chroma components, the normal filter is applied only if Bs is equal to 2. In ITU-T H.265, deblocking is performed by using intra prediction mode to decode one block P Or, only if Q is generated, it is done on the chroma components.

[0038] Deblocking filters are generally described according to a set of filter parameters. Note that it may be useful to, for example, For each block {a...b}, the corresponding deblocked sample value, y[n], is calculated based on the following formula: It may be specified based on the

number

[0039] Furthermore, in ITU-T H.265, the deblocking filter must be aligned with slice and tile boundaries. Apply differently to CTU boundaries that coincide with slice and tile boundaries compared to CTU boundaries that do not. Specifically, ITU-T H.265 specifies that the frame rate in the slice segment header should be The flag, slice_loop_filter_across_slices_enabled_flag, is specified. A deblocking filter across the slice boundary and the CTU boundary that coincides with the left slice boundary is used. Enable / disable. ITU-T H.265 slice_loop_filter_across_slices_enabled_flag We provide the following definition for slice_loop_filter_across_slices_enabled_flag equal to 1 enables in-loop filtering. Specifies that the scaling operation can be performed beyond the left and top boundaries of the current slice. slice_loop_filter_across_slices_enabled_flag equal to 0 indicates that the in-loop operation is Specifies that the execution will not go beyond the left and top boundaries of the current slice. The filtering operations include a deblocking filter and a sample adaptive offset filter. If slice_loop_filter_across_slices_enabled_flag does not exist, pps_loop_filter Inferred to be equal to r_across_slices_enabled_flag.

[0040] where pps_loop_filter_across_slices_enabled_flag is set to the picture parameter set (PPS), and ITU-T H.265 specifies the pps_loop_filter_across_slices_enabled_flag. If we provide the following definition: pps_loop_filter_across_slices_enabled_flag equal to 1 enables in-loop filtering. Note that the mapping operation may be performed beyond the left and top boundaries of the slice that references the PPS. pps_loop_filter_across_slices_enabled_flag equal to 0 disables the in-loop filter. The tarring operation is not performed beyond the left and top boundaries of the slice that references the PPS. The in-loop filtering operation is the deblocking filter and the sampling Includes adaptive offset filter operation.

[0041] Note - Loop filtering across slice boundaries Can be enabled while loop filtering across tile boundaries is disabled. and vice versa. Similarly, the flag loop_filter_across_tiles_enabled_flag present in the PPS Enables / disables deblocking filtering across CTU boundaries that coincide with ITU- T H.265 provides the following definition for loop_filter_across_tiles_enabled_flag: loop_filter_across_tiles_enabled_flag equal to 1 enables in-loop filtering operations. Specifies that the PPS may run across tile boundaries within the picture it references. Equal to 0 The new loop_filter_across_tiles_enabled_flag specifies whether in-loop filtering operations are performed across tiles in the PPS. Specifies that the in-loop filter will not cross tile boundaries within the picture it references. The filtering operations are a deblocking filter and a sample adaptive offset filter operation. If loop_filter_across_tiles_enabled_flag is not present, loop_filter_across The value of s_tiles_enabled_flag is inferred to be equal to 1.

[0042] As mentioned above, for deblocking, the index Q is slice_beta_offset_div 2 and slice_tc_offset_div2. In ITU-T H.265, slice_beta_ The values ​​of offset_div2 and slice_tc_offset_div2 may be included in the slice segment header. and has the following definition: slice_beta_offset_div2 and slice_tc_offset_div2 are the beta and offset for the current slice. t C slice_beta_offs Specifies the deblocking parameter offset (divided by 2). The values ​​of et_div2 and slice_tc_offset_div2 must both be in the range of -6 to 6, inclusive. If slice_beta_offset_div2 and slice_tc_offset_div2 do not exist, slice_ The values ​​of beta_offset_div2 and slice_tc_offset_div2 are pps_beta_offset_div2 and and pps_tc_offset_div2.

[0043] pps_beta_offset_div2 and pps_tc_offset_div2 are present in the PPS, and ITU-T H.265 specifies the pps If we provide the following definitions for _beta_offset_div2 and pps_tc_offset_div2: The default deblocking parameter offset is the slice offset of the slice that references the PPS. Unless overridden by a deblocking parameter offset present in the device header , pps_beta_offset_div2 and pps_tc_offset_div2 are applied to the slices that refer to the PPS. Used, β and t C The default deblocking parameter for The values ​​of pps_beta_offset_div2 and pps_tc_offset_div2 are both The range is -6 to 6, including the end values. pps_beta_offset_div2 and pps_tc_offset_d If iv2 is not present, the values ​​of pps_beta_offset_div2 and pps_tc_offset_div2 are equal to 0. It is speculated.

[0044] As mentioned above, ITU-T H.265 provides 8x8 deblocking granularity. The width is specified by the variable minCUWidth for the horizontal border and the variable minCUHeight for the vertical border. Deblocking is performed according to the grid that is created, and the default values ​​for minCUWidth and minCUHeight are The default value is 4. The value of d is also determined in the JEM, and the calculation of d is the same as that of ITU-T H.265. The decision whether to perform deblocking on the boundary is based on the value of d above. That is, if d<β, the deblocking filter is otherwise, no deblocking is performed on the boundary. The decision to use a strong or weak filter is based on ITU-T H.265. Finally, the JEM reference software uses a strong deblocking filter. The luma filter coefficients for this filter are identical to those used in ITU-T H.265. Deblocking, as is done in H.265 and JEM, is not ideal. In particular, deblocking as performed in ITU-T H.265 and JEM may not be possible. When performing deblocking, King considers various coding patterns of the recovered video data. It fails to take into account the parameters and characteristics of

[0045] FIG. 7 illustrates a method for encoding (coding and / or decoding) video data in accordance with one or more techniques of this disclosure. 1 is a block diagram illustrating an example of a system that can be configured to perform a digital signal processing (DTS) and a digital signal decoding (DTS). System 100 may encapsulate video data in accordance with one or more techniques of this disclosure. 7, the system 100 includes a source device 102 and a communication medium. 7, the source device 102 includes a video configured to encode the data and transmit the encoded video data over a communication medium 110. Destination device 120 may include any device that transmits encoded data via communication medium 110. and configured to receive the encoded video data and decode the encoded video data. The source device 102 and / or the destination device 120 may include a wired and / or may include a computing device equipped for wireless communication and may, for example, Top boxes, digital video recorders, televisions, desktops, laptops, or are used in tablet computers, gaming consoles, medical imaging devices, and other devices, e.g., smartphones. mobile devices, including smartphones, cellular phones, and personal gaming devices; can.

[0046] The communication medium 110 may be any combination of wireless and wired communication media and / or storage devices. The communication medium 110 may include a coaxial cable, an optical fiber cable, a twin Single-pair cables, wireless transmitters and receivers, routers, switches, repeaters, base stations, or Any other equipment that may be useful for facilitating communication between various devices and the Site The communication medium 110 can include one or more networks. For example, the communication medium 110 may provide access to the World Wide Web, e.g., the Internet. The network may include a network configured to enable one or more It can operate according to a combination of the above telecommunications protocols. The rules may include proprietary aspects and / or include standardized telecommunications protocols. Examples of standardized telecommunications protocols include Digital Video Broadcasting (DVB). DVB standard, Advanced Television Systems Committee (ATSC) standard, Integrated Services Digital Broadcasting (ISDB) standard, Data Over Cable Service Interfa ce Specification (DOCSIS) standard, Global System Mobile Communications (GSM) standard, Code Division Multiple Access (CDMA) Standard, Third Generation Partner 3rd Generation Partnership Project (3GPP) Standards, European Telecommunications European Telecommunications Standards Institute (ETSI) standards, Internet Protocol (IP) standards, wireless application protocols Wireless Application Protocol (WAP) standard and the Institute of Electrical and Examples include the Institute of Electronics Engineers (IEEE) standards.

[0047] A storage device is any type of device or storage medium that can store data. Storage media may include tangible or non-transitory computer-readable media. The computer readable medium may include an optical disk, a flash memory, a magnetic memory, or any other suitable digital storage medium. The device or a portion thereof may be described as non-volatile memory, and in other examples, A portion of a memory device may be described as volatile memory. Examples of Volatile Memory Random access memory (RAM), dynamic random access memory (DRAM), Dynamic random access memory (DRAM) and static random access memory (SRAM) Non-volatile memory includes static random access memory (SRAM). Examples of memory include magnetic hard disks, optical disks, floppy disks, flash drives, Electrically programmable memory (EPROM) ) or electrically erasable and programmable memory The storage device(s) may be in the form of: Memory cards (e.g., Secure Digital (SD) memory cards), internal / external List external hard disk drives and / or internal / external solid state drives Data is written to the storage device according to a defined file format. It can be remembered.

[0048] Referring again to FIG. 7, the source device 102 includes a video source 104 and a video encoder 106. 106, a data encapsulator 107, and an interface 108. The video source 104 , including any device configured to capture and / or store video data For example, the video source 104 may include a video camera and a The video encoder 106 receives the video data and , any device configured to generate an adapted bitstream representing video data. A conforming bitstream is received by a video decoder and It can also refer to a bitstream from which video data can be played. The aspects of the bitstream may be defined according to the video coding standard. When generating the bitstream, the video encoder 106 compresses the video data. Compression can be lossy (perceptible or imperceptible to the viewer) or lossless. It is possible.

[0049] FIG. 8 illustrates a network architecture in which the techniques described herein for encoding video data may be implemented. 1 is a block diagram illustrating an example of a video encoder 200 that can Although shown as having separate functional blocks, such illustration is for illustrative purposes only. and the video encoder 200 and / or its subcomponents may be implemented using specific hardware. Note that the present invention is not limited to a video processing system or software architecture. The functionality of encoder 200 may be implemented in hardware, firmware, and / or software. In one example, the video encoder 200 may be configured to encode video data in accordance with the techniques described herein. The video encoder 200 performs intra-prediction coding and inter-prediction coding of a picture portion. Some video encoders perform multi-bit encoding, which is why they are sometimes called hybrid video encoders. In the example shown in FIG. 8, video encoder 200 receives a source video block. In some examples, the source video blocks are divided into picture blocks according to a coding structure. For example, the source video data may include parts such as macroblocks, CTUs, and CBs. , its subdivision, and / or other equivalent coding units. In a video encoder, the video encoder is configured to perform additional subdivisions of the source video blocks. The techniques described herein may be used to reduce the source before and / or during encoding. Generally applicable to video coding, regardless of how the video data is partitioned In the example shown in FIG. 9, the video encoder 200 includes an adder 202 and A transform coefficient generator 204, a coefficient quantizer 206, an inverse quantizer / transformer 208, and an adder 210. , an intra-prediction processing unit 212, an inter-prediction processing unit 214, a filter unit 216, and an entropy 8, the video encoder 200 includes a source video encoding unit 218. It receives oblocks and outputs a bitstream.

[0050] In the example shown in FIG. 8, video encoder 200 derives a prediction video block from a source video block. The adder 202 subtracts the blocks to generate residual data. In one embodiment, a subtraction operation for a video block is performed. The calculation is performed in the pixel domain. The transform coefficient generator 204 performs the discrete cosine transform (DCT), the discrete sine transform (DSCT), and the Apply a transform, such as the DST, or a conceptually similar transform, to the residual block or its subdivision. (For example, four 8x8 transforms can be applied to a 16x16 array of residual values), and the residual transforms The transform coefficient generator 204 generates a set of transform coefficients. The transform coefficient generator 204 is included in the family of discrete trigonometric transforms. The transformation function may be configured to perform any and all combinations of the transformations provided. The number generator 204 may output the transform coefficients to a coefficient quantizer 206 .

[0051] The coefficient quantization unit 206 may be configured to perform quantization of the transform coefficients. As mentioned above, the degree of quantization can be determined by the quantization parameter. The coefficient quantization unit 206 determines the quantization value. and a video decoder to recover the quantization parameters and perform inverse quantization during video decoding. The method may be further configured to output QP data that can be used by the For example, the signaled QP data can include a QP delta value. In , the degree of quantization applied to a set of transform coefficients is determined by the slice level parameter, Parameters inherited from the coding unit and / or optionally signaled CU-level data This may depend on the filter value.

[0052] As shown in FIG. 8, the quantized transform coefficients are output to the inverse quantization / transform processing unit 208. The inverse quantization / transformation processing unit 208 applies inverse quantization and / or inverse transformation to the reconstructed residual data. As shown in FIG. 8, the adder 210 can be configured to generate the restored The residual data obtained can be added to the predicted video block. The resulting reconstructed video block can be to a given quality for a given prediction, transform type, and / or level of quantization using The video encoder 200 may use multiple encoding passes to evaluate the encoding quality. (e.g., running the encoding while varying one or more encoding parameters) ) can be configured to reduce bitstream rate distortion or other signal distortion. The stem parameters can be optimized based on the evaluation of the recovered video blocks. Furthermore, the reconstructed video block is used as a reference for predicting subsequent blocks. It can be stored and used.

[0053] As mentioned above, video blocks can be coded using intra prediction. The intra prediction processor 212 performs intra prediction on the video block to be coded. The intra prediction unit 212 can be configured to select a frame and a and / or parts thereof to evaluate the intra prediction model to be used for coding the current block. As shown in FIG. 8, the intra prediction processing unit 212 The filter 216 and the entropy coder 218 process the intra prediction data (e.g., syntax elements) to generate the The signal is output to the encoding unit 218.

[0054] The inter-prediction processor 214 performs inter-prediction coding on the current video block. The inter prediction processor 214 can be configured to: and calculating a motion vector for the PU of the video block. A motion vector is a vector that maps a current video frame to a predicted block in a reference frame. Inter-prediction coding can indicate the displacement of video blocks, such as PU, within a video block. Furthermore, the motion prediction can be performed using a single prediction (one motion vector). It can be either bi-predictive (using two motion vectors) or inter-predictive (using two motion vectors). The measurement processing unit 214 calculates, for example, the sum of absolute differences (SAD), the sum of squared differences (S Calculate pixel differences as determined by μm of square difference (SSD) or other difference measures By using the motion vector and the The associated data may include, for example, the horizontal component of the motion vector, the vertical component of the motion vector, The resolution (e.g., quarter-pixel accuracy), prediction direction, and / or reference picture for the vector Furthermore, for example, the index value of the code such as ITU-T H.265 can be described. The encoding standard can support motion vector prediction, which is based on the motion vectors of neighboring It is possible to specify a motion vector using the motion vector of the block that corresponds to the motion vector. An example of motion vector prediction is advanced motion vector prediction (AM). VP), temporal motion vector prediction (TMVP), so-called These include "interlace" mode, as well as "skip" and "direct" motion estimation. The motion vector prediction processor 214 is configured to perform motion vector prediction according to one or more of the techniques described above. The inter prediction processing unit 214 can be configured as follows: For example, the inter prediction unit 214 can be configured to generate a frame. The predicted video block can be placed in a frame buffer (not shown in FIG. 8). The motion prediction processor 214 applies one or more interpolation filters to the reconstructed residual block. and further configured to calculate sub-integer pixel values ​​for use in the prediction. Note that the inter prediction processing unit 214 performs motion prediction for the calculated motion vector. The data may be output to a filter unit 216 and an entropy encoder unit 218 .

[0055] As mentioned above, deblocking is a process that smooths the boundaries of reconstructed video blocks. As shown in FIG. 8, the filter unit 216 processes the reconstructed video blocks and the coded receive encoding parameters (e.g., intra prediction data, inter prediction data, and QP data); The filter unit 216 performs deblocking and outputs the modified restored video data. and / or perform Sample Adaptive Offset (SAO) filtering SAO filtering can be configured to apply SAO to the recovered video data. A nonlinear amplitude matrix that can be used to improve the reconstruction by adding offsets. As shown in FIG. 8, the intra prediction processing unit 212 and the inter prediction processing unit 214 may receive the modified reconstructed video block via the filter unit 216. Note that in some cases, deblocking may be performed in-loop. That is, the predicted video block stored in the reference buffer can be filtered. In some cases, deblocking can be done post-loop. , i.e., after the video data is restored and before it is output to the display. The techniques described herein can be used for in-loop deblocking, post-loop deblocking, and It may also be possible to apply block deblocking, loop deblocking, and / or a combination thereof.

[0056] As mentioned above, deblocking is performed as implemented in ITU-T H.265 and JEM. In one embodiment, the techniques herein provide a The filter unit 216 determines the block size on each side (one or both sides) of the boundary, the strength of the boundary, and the the prediction mode used by the block, the prediction mode of the sample being deblocked (e.g., intra, inter, skip) (e.g., for boundaries close to the reference sample, (using a weaker filter), the QP value of the deblocked sample, Block size corresponds to the samples used for deblocking the block size to be deblocked, the motion vectors for the blocks on each side of the boundary being deblocked, the motion vector for the deblocked sample and / or the deblocking a motion vector for the sample being used for the tracking, , may be configured to select different filtering lines (in some cases, The number of deblocked samples on each side of the boundary may be different).

[0057] The samples on each side of the block boundary (perpendicular to the boundary edge) can be expressed as: ...p8p7p6p5p4p3p2p1p0|q0q1q2q3q4q5q6q7q8... During the ceremony, | represents a block boundary edge. When x is a positive integer starting from 0, sample p x represents the P side of the boundary. y is positive starting from 0. When integer, sample q x represents the Q side of the boundary.

[0058] In one embodiment, the P side represents samples outside the current CU, and the Q side represents samples inside the current CU. Represents a sample.

[0059] In one embodiment, the P side represents samples inside the current CU, and the Q side represents samples outside the current CU. Represents a sample.

[0060] In one embodiment, the P side represents samples outside the current block, and the Q side represents samples outside the current block. represents the samples inside the block.

[0061] In one embodiment, the P side represents samples within the current block, and the Q side represents samples within the current block. represents a sample outside the block.

[0062] Referring to FIG. 5A, sample p y>x and q y>x is the line width when deblocking vertical edges. corresponds to the vector R[x].

[0063] Referring to FIG. 5B, sample p y>x and q y>x is the line width when deblocking horizontal edges. corresponds to the vector R[y].

[0064] The wider (more samples deblocked), the stronger the P side of the boundary. An example of a suitable filter is called a WS00P P-side filter and is as follows:

number

[0065] The wider (more samples deblocked), the stronger the Q side of the boundary. An example of a suitable filter is called a WS00Q Q-side filter and is as follows:

number

[0066] Narrow (i.e., fewer samples are deblocked), strong on the P side of the boundary The filter is It is called HEVC_P P-side filter,

number

[0067] Narrow (i.e., fewer samples are deblocked), strong on the Q side of the boundary The filter is It is called the HEVC_Q Q-side filter,

number

[0068] A narrow (fewer samples are deblocked), strong filter on the P side of the boundary. An example of such a filter is called the NS00P P-side filter and is as follows:

number

[0069] Narrow (fewer samples are deblocked), strong filtering on the Q side of the boundary An example of such a filter is called the NS00Q Q-side filter and is as follows:

number

[0070] A narrow (fewer samples are deblocked), strong filter on the P side of the boundary. An example of such a filter is called the NS00P P-side filter and is as follows:

number

[0071] Narrow (fewer samples are deblocked), strong filtering on the Q side of the boundary An example of such a filter is called the NS00Q Q-side filter and is as follows:

number

[0072] A narrow (fewer samples are deblocked), strong filter on the P side of the boundary. An example of such a filter is called the NS00P P-side filter and is as follows:

number

[0073] Narrow (fewer samples are deblocked), strong filtering on the Q side of the boundary An example of such a filter is called the NS00Q Q-side filter and is as follows:

number

[0074] A narrower (fewer samples are deblocked), weaker filter on the P side of the boundary. An example of a filter is called the NW00P P-side filter and is as follows:

number

[0075] Narrow (fewer samples deblocked), weak filtering on the Q side of the boundary An example of such a filter is called the NW00Q Q-side filter and is as follows:

number

[0076] An example of a filter for the P side of the boundary, called the F0P P side filter, is:

number

[0077] An example of a filter for the Q side of the boundary, called the FQ Q side filter, is:

number

[0078] An example of a filter for the P side of the boundary, called the F1P P side filter, is:

number

[0079] An example of a filter for the Q side of the boundary is called an F1Q Q-side filter and is:

number

[0080] In one embodiment, the distance of the deblocked sample from the boundary is the maximum tap value The distance between the support sample to which is assigned and the sample being deblocked. Furthermore, the distance of the second maximum tap value from the sample being deblocked can be inversely proportional to The separation may be proportional to the distance of the sample from the boundary. The filters F2P and F2Q described below are An example implementation of such filtering is provided. An example is called a F2P P-side filter and is the following:

number

[0081] An example of a filter for the Q side of the boundary is called an F2Q Q side filter and is:

number

[0082] An example of a filter for the P side of the boundary is called the F4P P side filter and is:

number

[0083] An example of a filter for the Q side of the boundary is called an F4Q Q side filter and is:

number

[0084] In one embodiment, the techniques herein allow for gradient calculations to be performed in conjunction with the selection of filter parameters, i.e., used to select the number of samples to be deblocked on one (or both) sides of the block boundary. The gradient may be calculated using the samples in the line R[x].

[0085] In one embodiment, multiple gradients are calculated using the samples in the line R[x]. The gradient is determined by the choice of filter parameters, i.e., the density on one (or both) sides of the block boundary. It is used to select the number of samples to be locked. Another example is to select the samples in line R[x]. Multiple gradients may be calculated using operations such as gradient average, maximum gradient, minimum gradient, etc. filter parameters, the number of samples to be deblocked on one (or both) sides of the block boundary It can be used to select a number.

[0086] In one embodiment, the function call xCalDQp(R[x]) calculates the gradient as follows:

number

[0087] In one embodiment, the function call xCalDQq(R[x]) calculates the gradient as follows:

number

[0088] In one embodiment, the function call xCalDQpLargeBlock(R[x]) calculates the gradient as follows: do.

number

[0089] In one embodiment, the function call xCalDQqLargeBlock(R[x]) calculates the gradient as follows: do.

number

[0090] In one embodiment, the function call xCalDQpLargeBlock(R[x]) calculates the gradient as follows: do.

number

[0091] In one embodiment, the function call xCalDQqLargeBlock(R[x]) calculates the gradient as follows: do.

number

[0092] In one embodiment, the function call xCalDQpLargeBlock(R[x]) calculates the gradient as follows: do.

number

[0093] In one embodiment, the function call xCalDQqLargeBlock(R[x]) calculates the gradient as follows: do.

number

[0094] In one embodiment, the function call xCalDQpLargeBlock(R[x]) calculates the gradient as follows: do.

number

[0095] In one embodiment, the function call xCalDQqLargeBlock(R[x]) calculates the gradient as follows: do.

number

[0096] In one embodiment, the function call xCalDQpLargeBlock(R[x]) calculates the gradient as follows: do.

number

[0097] In one embodiment, the function call xCalDQqLargeBlock(R[x]) calculates the gradient as follows: do.

number

[0098] In one embodiment, the function call xCalDQpLargeBlock(R[x]) calculates the gradient as follows: do.

number

[0099] In one embodiment, the function call xCalDQqLargeBlock(R[x]) calculates the gradient as follows: do.

number

[0100] In one embodiment, a subset of the second-order differences calculated on p1, p2, ..., p6 is used to calculate XCalDQpLa We may compute rgeBlock(R[x]), where p n The second difference in abs(p n-1 -2 * p n +p n+1 ) Similarly, using the subset of second-order differences computed at q1, q2,..., q6, we can calculate xCa lDQqLargeBlock(R[x]) may be calculated. In one embodiment, the function call xCalDQpLargeBlock Rounding offsets in k(R[x]) and xCalDQqLargeBlock(R[x]) may be discontinued. In one embodiment, the function call xUseStrongFilteringLargeBlock(R[x0, d, bSidePisLargeBl k, bSideQisLargeBlk) is calculated as follows: An example of k,bSideQisLargeBlk is presented below. [Table 1] In the formula, β and t C is the threshold.

[0101] In one embodiment, the function call xUseStrongFilteringLargeBlock(R[x], d, bSidePisLargeBl k, bSideQisLargeBlk) calculates the Boolean variables as follows: [Table 2]

[0102] In one embodiment, the function call xUseStrongFilteringLargeBlock(R[x], d, bSidePisLargeBl k, bSideQisLargeBlk) calculates the Boolean variables as follows: [Table 3]

[0103] In one embodiment, the function call xUseStrongFilteringLargeBlock(R[x], d, bSidePisLargeBl k, bSideQisLargeBlk) calculates the Boolean variables as follows: [Table 4]

[0104] In one embodiment, the rounding offset in the function call xUseStrongFilteringLargeBlock may be discontinued.

[0105] In one embodiment, the number of samples to be deblocked on one (or both) sides of the boundary is selected. The criteria used are: perpendicular to the block boundary, exceeding a threshold (current block and / or In some cases, based on the block size, Therefore, if a subset of the transform coefficients of a block are set to zero, the threshold used in the comparison is , may be based on properties of the subset of zero coefficients, e.g., 32 or more column positions, and For the coefficient at the row position (the index for rows and columns starts from 0), the transform coefficient is zero. If set to , the size perpendicular to the block boundary is compared to a threshold of 32. .

[0106] In one embodiment, the method indicates whether all transform coefficients for a block of samples are zero. Such a signal may be received as a bitstream containing, for example, For groups of color components, for some spatial division of samples, In HEVC, for each color component, a code Encoding Block Flags (CBF), i.e., cbf_luma, cbf_cb, cbf_cr (either explicitly or If no specific signal is present, it is signaled (implicitly by the use of inference rules) and furthermore, Also flags indicating whether any of the color components in the tree contained non-zero transform coefficients. The residual quad tree root CBF, i.e., rqt_root_cbf, is signaled (explicitly and implicitly). It is called.

[0107] In one embodiment, the number of samples that are deblocked on one (or both) sides of the boundary is determined by the The type of edge being blocked (e.g. vertical block edge, horizontal block edge), Channel type (e.g. luma, chroma), block of samples on one (or both) sides of the boundary If all the transform coefficients are zero for the samples on one (or both) sides of the boundary, Codes such as Local Illumination Compensation (LIC), where the blocks may be based on a linear model for illumination changes Whether to use the shaping mode, whether the blocks of samples on one (or both) sides of the boundary are whether to use inter-component predictions (which may be based on shape models), and whether to use subcomponents on one (or both) sides of the boundary. Whether the block of samples uses the prediction determined for the smaller block than the transform. Or the blocks of samples on one (or both) sides of the boundary are separated into larger blocks (e.g., CUs). is divided into sub-blocks (e.g., sub-CUs), and motion information is derived for these sub-blocks. The criteria may be based on whether the technology being used is relevant to the application.

[0108] In one embodiment, the techniques herein use the size of the current block perpendicular to the block boundary. If the size is greater than or equal to a threshold (e.g., 32), a larger number of samples (e.g., 100) are added on each side of the block boundary. For example, 7) is deblocked and the dimension of the current block perpendicular to the block boundary exceeds a threshold (e.g. If the number of samples is less than 32, then a smaller number of samples (e.g., 3) are demultiplexed on each side of the block boundary. For example, if the current block width is >= 32 and the edge type is vertical, ), or (current block height >= 32 and edge type is horizontal)), then On each side of the block boundary, more samples are deblocked.

[0109] In one embodiment, According to the technology of the specification, the dimension of the block perpendicular to the block boundary is equal to or greater than a threshold value (for example, 32). If , then a larger number of samples (e.g., 7) are deblocked on each side of the block boundary, If the dimension of the block perpendicular to the block boundary is less than a threshold (e.g., 32), On each side of , a smaller number of samples (e.g., 3) are deblocked. For example, if (Block width >= 32 and edge type is vertical) or (Block height >= 3 2, and the edge type is horizontal, then In this case, the left side of the vertical boundary edge is blocked. If the left side has a block size of 4 (rows) x 64 (columns) and the right side has a block size of 4 (rows) x 16 (columns), then the right side More samples can be deblocked on the left side than on the right side.

[0110] In one embodiment, in accordance with the techniques herein, filter unit 216 may filter the deblocked subbands. the distance of the sample from the boundary (in number of samples), the block size on each side of the boundary, the boundary strength, The prediction modes used by the blocks on each side of the boundary, prediction mode (e.g., use a weaker filter for boundaries close to the reference sample), The QP of the locked sample (e.g., for a larger QP, a stronger filter is used) for the block size corresponding to the samples being deblocked (e.g., for larger blocks) (Uses a stronger filter for the block size) and the samples used for deblocking The block size corresponding to the pull, the movement for the blocks on each side of the boundary being deblocked If the MV difference is greater than a threshold, no deblocking is performed. The reason is that samples on different sides of the boundary may belong to different objects. (This is because the motion vectors for the deblocked samples are the motion vectors for the samples being used for the matching. The filter parameters (e.g., including the number of coefficients) used for deblocking based on The block size corresponding to the sample may be selected based on the size of the block to which the sample belongs. The block size of the CU to which the sample belongs, the block size of the TU to which the sample belongs, or the block size of the CU to which the sample belongs Note that this may include the block size of the PU.

[0111] In one embodiment, in accordance with the techniques herein, filter unit 216 may filter the deblocked Edge type (e.g. vertical block edge, horizontal block edge), channel type (e.g. For example, luma, chroma), all the blocks of samples on one (or both) sides of the boundary Whether the transform coefficients are zero or not, the blocks of samples on one (or both) sides of the boundary are Use of coding modes such as Local Illumination Compensation (LIC) that can be based on a linear model for illumination changes Whether blocks of samples on one (or both) sides of the boundary are whether to use inter-component prediction (possibly inter-component prediction), and whether to use blocks of samples on one (or both) sides of the boundary. Whether the block uses the prediction determined for blocks smaller than the transform, or A block of samples on one (or both) sides is divided into a larger block (e.g., a CU) and a sub-block (e.g., sub-CUs) and use techniques where motion information is derived for these sub-blocks. The filter used for deblocking is based on one or more of: The parameters (including, for example, the number of coefficients) may be configured to be selected.

[0112] In one embodiment, in accordance with the techniques herein, filter unit 216 may filter the deblocked Edge type (e.g. vertical block edge, horizontal block edge), channel type (e.g. For example, luma, chroma), all the blocks of samples on one (or both) sides of the boundary Whether the transform coefficients are zero or not, the blocks of samples on one (or both) sides of the boundary are Use of coding modes such as Local Illumination Compensation (LIC) that can be based on a linear model for illumination changes Whether blocks of samples on one (or both) sides of the boundary are whether to use inter-component prediction (possibly inter-component prediction), and whether to use blocks of samples on one (or both) sides of the boundary. Whether the block uses the prediction determined for blocks smaller than the transform, or A block of samples on one (or both) sides is divided into a larger block (e.g., a CU) and a sub-block (e.g., sub-CUs) and use techniques where motion information is derived for these sub-blocks. The filter used for deblocking is based on one or more of: The parameters (including, for example, the number of coefficients) may be configured to be selected.

[0113] In one embodiment, selecting the filter parameters may be done by selecting wider or stronger filtering. The method may include selecting a tag.

[0114] In one embodiment, in accordance with the techniques herein, filter unit 216 performs pixel filtering on pixels perpendicular to block boundaries. If the size of the current block is greater than or equal to a threshold (e.g., 32), deblocking is performed on both sides. Configure to select a set of filter parameters (e.g., stronger filtering) For example, if ((the current block's width >= 32 and the edge type is vertical ), or (current block height >= 32 and edge type is horizontal)), then On each side of the lock boundary, wider and stronger filtering is selected.

[0115] In one embodiment, in accordance with the techniques herein, filter unit 216 performs a filter on each side of the block boundary. The filter parameters to be used are the size of the block perpendicular to the block boundary for the corresponding side. For example, the block boundary on one side may be selected independently based on the size of the block. If the size of the block perpendicular to the boundary is equal to or greater than a threshold (e.g., 32), then the Select a set of locking filter parameters (e.g., wider or stronger filtering). For example, if the width of one block is >= 32 and the edge type is vertical), or (one block height >= 32 and edge type is horizontal) If so, a wider and stronger filter is applied to the side of the block boundary corresponding to that block. The ring is selected.

[0116] In one embodiment, the techniques herein allow for the separation of blocks on one (or both) sides of a boundary (e.g., For example, sub-CU boundaries are determined based on whether all transform coefficients for a CU are zero. For example, if all transform coefficients for a CU are zero, then the sub-CU boundary Deblock the world.

[0117] In one embodiment, the techniques herein provide for blocks on either (or both) sides of the boundary. The sub-block boundaries are deblocked based on whether all transform coefficients are zero. For example, if all the transform coefficients for a block are zero, then the sub-block Deblocking block boundaries.

[0118] In one embodiment, the techniques herein allow for the separation of blocks on one (or both) sides of a boundary (e.g., For example, for a CU, all transform coefficients are zero, and the quantization step size is large (e.g., For example, sub-CU boundaries may be deblocked based on whether the QP is greater than or equal to a threshold. For example, if all transform coefficients for a CU are zero and QP is greater than a threshold, , deblocking sub-CU boundaries.

[0119] In one embodiment, the techniques herein provide for blocks on either (or both) sides of the boundary. All transform coefficients are zero and the quantization step size is large (e.g., QP is The sub-block boundaries may be deblocked based on whether the For example, if all transform coefficients for a block are zero and QP is greater than a threshold, , deblocking the sub-block boundaries.

[0120] In one embodiment, in accordance with the techniques herein, local illumination compensation (LIC) is performed on one (or both) of the boundaries. is used for the block on the other side, and all transform coefficients for that block are zero. If so, the block boundaries may be deblocked.

[0121] In one embodiment, the techniques herein apply to all four boundaries of a block (i.e., left, right, , top, bottom) indicates that local illumination compensation (LIC) is used for the block and that the block If all transform coefficients for a block boundary are zero, the block boundary may be deblocked.

[0122] In one embodiment, in accordance with the techniques herein, local illumination compensation (LIC) is performed on one (or both) of the boundaries. is used for the block on the side of If the quantization step size is large (e.g., QP is greater than or equal to a threshold), the block boundary It may be deblocked.

[0123] In one embodiment, the techniques herein apply to all four boundaries of a block (i.e., left, right, Right, top, bottom) indicate that Local Illumination Compensation (LIC) is used for a block, and the All transform coefficients are zero and the quantization step size is large (e.g., QP is less than a threshold). If the block boundary is above, the block boundary may be deblocked.

[0124] In one embodiment, in accordance with the techniques herein, inter-component prediction is performed on blocks on one (or both) sides of a boundary. If used for a block and all transform coefficients for that block are zero, In this case, the block boundaries may be deblocked.

[0125] In one embodiment, in accordance with the techniques herein, inter-component prediction is performed on blocks on one (or both) sides of a boundary. is used for a block, where all transform coefficients for that block are zero and the quantization step When the step size is large (e.g., QP is greater than or equal to a threshold), the block boundaries are deblocked. It may be checked.

[0126] In one embodiment, in accordance with the techniques herein, filter unit 216 includes a plurality of filtering patterns. In one embodiment, the filter A ring path may correspond to processing / constructing all / a subset of the samples to be deblocked. The number of processes / constructions of each sample in a given path may correspond to the path index / order The subset of samples to be deblocked may correspond to a path index / order. In an embodiment, every pass processes / constructs every sample that is deblocked exactly once. In one example of such a case, the deblocked sub-sampling from the previous iteration Deblocking for the current iteration using the deblocked samples (as well as the undeblocked samples). In one example of such a case, a checked sample can be constructed. Deblocked samples (as well as undeblocked samples) from the current iteration can be used to construct the deblocked samples. An ordering for constructing the sample may be specified. In one embodiment, the number of iterations is , slice type, block size, skip flags of the current CU and its neighboring CUs, Prediction mode (Intra\Inter) of the current CU and its neighboring CUs, and the sample position to be deblocked , whether d<β, and / or the strong or weak filter judgment provided in the JEM mentioned above. The distance (in number of samples) from the boundary of the deblocked sample, on each side of the boundary. the block size of,the boundary strength, the prediction mode used by the blocks on each side of the boundary, Prediction mode of the deblocked sample, QP of the deblocked sample, The sample block size corresponding to the locked samples, for deblocking The block size corresponding to the samples used, on each side of the deblocked boundary the motion vector for the block, the motion vector for the sample being deblocked, and / or the motion vectors for the samples used for deblocking. In one embodiment, the number of iterations may be determined based on one or more of the filter parameters. The meter can be determined.

[0127] In one embodiment, N-pass deblocking with a given deblocking support is It can be expressed as follows. [Table 5]

[0128] where f_pos() is a linear transformation of the form:

number

number

number

number

[0129] In one embodiment, in accordance with the techniques herein, filter section 216 comprises a filter line and a corresponding In one embodiment, the filter coefficients to be filtered may be stretched. The sample lines can extend up to 8 on one side. In one embodiment, lines 0 and 1 For line 1, the filter coefficients may be {1,1,1,1,1,2,2,2,1,1,1,1,1} / 16, For lines 2 and 3, the filter coefficients may be {1,1,1,1,1,1,1,1} / 8, and for the other The filter coefficients for the lines may be {1,2,2,2,1} / 8, where line 0 is closest to the boundary A sample line is shown.

[0130] In JEM, the recovered samples are filtered in the deblocking process. Note that the technique described herein is always used to perform tarring. According to the above, the filter unit 216 uses a deblocking filter to filter other sample values. The system may be configured to use modified sample values ​​resulting from the sampling. In the example, the modified sample value is used as input when filtering other sample values. In one embodiment, the order of filtering may be specified. In the example, the filter order is deblocking from the line farthest from the boundary to the closest line. King may be performed.

[0131] As mentioned above, the deblocked samples typically lie within a range of values. The range of values ​​is determined by the original sample values ​​and the values ​​received in the bitstream. In one embodiment, the range of values ​​may be based on the original sample In one embodiment, in accordance with the techniques herein, the filter The data unit 216 may be configured to process samples from the last one or more rounds of multi-pass deblocking. value, QP value, slice type, current prediction mode (Intra / Inter), current skip flag value , the intra prediction mode of the deblocked sample, the motion vector of the deblocked sample vector, sample position (e.g. different samples may use different clipping functions) , CU position (e.g., different CUs may use different clipping functions), and / or and any other condition. It may be made.

[0132] In one embodiment, in accordance with the techniques herein, filter unit 216 performs a filter based on block size. and may be configured to perform the filtering techniques described herein. For example, One or more of the filtering techniques described herein may be applied to the boundary. ,The block size around the boundary is larger than the threshold. For example,,performing filtering techniques The decision to select each set of 4 × 4 samples may be as follows: Check each side of the boundary (i.e., the minimum CU size is 4x4 luma samples) (2) If any one set of 4 × 4 samples is greater than a threshold (e.g., 64), If it belongs to a CU of size, the filtering technique will be performed at the current boundary. In one embodiment, in accordance with the techniques herein, the filter unit 216 may be configured to perform a slice type, block If the block shape is square, the current CU and its neighbors The skip flag of the CU to be skipped, the prediction mode (Intra\Inter) of the current CU and its neighboring CUs, the filtered sample positions described herein based on one or more of the following: The device may be configured to perform tarring techniques.

[0133] In one embodiment, in accordance with the techniques herein, filter portion 216 provides a wider-strength luma filter. The filtering may be configured to be performed as follows. First, the P-side determines whether to use large blocks as follows: [Table 6] Next, the Q side decides whether to use a large block as follows: [Table 7] Next, the following variables are derived:

number

[0134] If Condition1, Condition2, and bSidePisLargeBlk are true, wider - stronger The filter is applied to the P side of the boundary (e.g., WS00P).

[0135] Wider - Stronger if Condition1, Condition2, and bSideQisLargeBlk are true The filter is applied to the Q side of the boundary (e.g., WS00Q).

[0136] In one embodiment, Condition2 may be modified as follows: [Table 9]

[0137] In one embodiment, in accordance with the techniques herein, filter unit 216 performs chroma filtering. It may be configured to perform the following: (p0 belongs to a CU whose edge type is vertical and whose width is >= 32) || (p0 belongs to a CU whose edge type is horizontal and whose width is >= 32) p0 belongs to a CU with height >= 32) && (edge ​​type is vertical and width >= 32 (q0 belongs to a CU whose edge type is horizontal and whose height is >= 32) || (q0 belongs to a CU whose edge type is horizontal and whose height is >= 32) If so, narrow strong filters (e.g., NS00P and NS00Q) can be used, otherwise In some cases, narrow weak filters (e.g., NW00P and NW00Q) can be used.

[0138] In one embodiment, in accordance with the techniques herein, filter unit 216 performs chroma filtering. It may be configured to perform the following: (p0 belongs to a CU whose width is >= 32) || (p0 belongs to a CU whose height is >= 32) && (p0 belongs to a CU whose width is >= 32) (q0 belongs to a CU with height >= 32), then the narrow strong filter ( For example, NS00P and NS00Q) can be used, otherwise narrow weak filters Data (e.g., NW00P and NW00Q) can be used.

[0139] In one embodiment, in accordance with the techniques herein, filter unit 216 performs the exemplary flow shown in FIG. The deblock filtering may be performed according to the chart. In the example, the filter unit 216 performs the following processing for the luma samples according to the flowchart shown in FIG. 10 shows the current block. (e.g., one of the P or Q blocks) i.e., wide and stronger filter, strong filter, weak filter, and no filtering. , can be applied. In one embodiment, a wider and stronger filter is applied. This may include applying the WS00P and WS00Q filters described above. Applying the filters may include applying the HEVC_P and HEVC_Q filters described above. In one embodiment, applying a weak filter is performed using the HEVC As shown in FIG. If the small block condition is true, or if the large block gradient condition is true in 404, or if the large block gradient condition is true in 406, The large block strong filter condition is true in 410 or the gradient condition is true in 410 and whether the strong filter condition is true at 414, then a broader filter is applied at 408. At 412, a filter is applied, at 416, no filter is applied, and at 416, a strong filter is applied. and a weak filter is applied at 418.

[0140] In one embodiment, the large block condition may include whether the following is true: [Table 10] During the ceremony, EDGE_VER is the vertical border type, EDGE_HOR is the horizontal border type, cur_block_width is the current block width, e.g., in luma samples, cur_block_height is the current block height, e.g. in luma samples, adjacent_block_width is the adjacent block width, e.g., in luma samples, adjacent_block_height is the adjacent block height in, for example, luma samples. do.

[0141] In one embodiment, the large block gradient condition includes whether Condition 1 above is true. In one embodiment, the large block strong filter condition is the above-mentioned exemplary Condition 2. It may include whether one of them is true.

[0142] In one embodiment, the gradient condition may include whether d<β, where d is: It is decided as follows.

number

[0143] In one embodiment, a strong filter condition may include whether the following is true: [Table 11] In one embodiment, in accordance with the techniques herein, filter unit 216 performs the exemplary flow shown in FIG. The deblock filtering may be performed according to the chart. In the example, the filter unit 216 performs the filtering of the chroma samples according to the flowchart shown in FIG. 11 shows a block diagram of a current block. For blocks (e.g., P-blocks or Q-blocks), the type of deblocking, i.e., Here, an example is shown in which either a stronger filter or a weaker filter can be applied. For example, to apply a wider and stronger filter, apply the NS00P and NS00Q filters mentioned above. In one embodiment, applying a weak filter may include: This may include applying a W00Q filter. A broader and stronger filter is applied at 504 based on whether the query condition is true. A weak filter is then applied at 506.

[0144] In one embodiment, the large block condition may include whether the following is true: [Table 12] During the ceremony, EDGE_VER is the vertical border type, EDGE_HOR is the horizontal border type, and cur_block_widt h is the current block width in e.g. chroma samples, and cur_block_height is e.g. The current block height in chroma samples, for example, and adjacent_block_width is adjacent_block_height is the adjacent block width in chroma samples, for example. The adjacent block height in Roman samples.

[0145] In one embodiment, the filter unit 216 selects a P block or a Q block based on the following set of conditions: configured to perform deblock filtering for the chroma samples of the good. [Table 13]

[0146] [Table 14]

[0147] During the ceremony, EDGE_VER is the vertical border type, EDGE_HOR is the horizontal border type, cur_Q_block_width is the current Q block width in chroma samples, for example cur_Q_block_height is the current Q block height in chroma samples, e.g. , cur_P_block_width is the current P block width, e.g., in chroma samples, cur_P_block_height is the current P block height in chroma samples, e.g. , TH_w is the width threshold (e.g., 32 samples), TH_h is the height threshold (eg, 32 samples).

[0148] The thresholds (e.g., TH_w and / or TH_h) may, in some embodiments, be set to default values ​​(e.g., 16 or 32), which in some embodiments may be signaled in a parameter set, In some embodiments, this may be signaled in the slice header, and in some implementations Note that in the example, this may be the CTU size in the current portion of the video.

[0149] Referring to FIG. 11, in one embodiment, the large block condition is replaced with the luma filter condition. That is, for example, if a strong filter is applied to the luma block, For example, at 504, a wider and stronger filter may be applied to the co-located chroma block. Otherwise, at 506, a weak filter is applied to the co-located chroma block. This may also be done.

[0150] In one embodiment, in accordance with the techniques herein, filter unit 216 performs the exemplary flow shown in FIG. The deblock filtering may be performed according to the chart. In this example, the filter unit 216 performs the filtering of the chroma samples according to the flowchart shown in FIG. 12 shows a block diagram of a current block. For blocks (e.g., P-blocks or Q-blocks), the type of deblocking, i.e., Here, an example is shown in which either a stronger filter or a weaker filter can be applied. For example, to apply a wider and stronger filter, apply the NS00P and NSOOQ filters mentioned above. In one embodiment, applying a weak filter may include: This may include applying a W00Q filter. In 604, the large block strong filter condition is true. A wider and stronger filter is applied at 608 based on whether the A weak filter is applied.

[0151] In one embodiment, the large block condition may include whether the following is true: [Table 15] During the ceremony, EDGE_VER is the vertical border type, EDGE_HOR is the horizontal border type, cur_block_width is the current block width in chroma samples, for example, cur_block_height is the current block height in chroma samples, for example adjacent_block_width is the adjacent block width in chroma samples, for example , adjacent_block_height is the adjacent block height in chroma samples, for example be. TH_w is the width threshold (e.g., 32 samples), TH_h is the height threshold (eg, 32 samples).

[0152] The thresholds (e.g., TH_w and / or TH_h) may, in some embodiments, be set to default values ​​(e.g., 16 or 32 ), which in some embodiments may be signaled in a parameter set, In some embodiments, it may be signaled in the slice header, and in some embodiments Note that this may be the CTU size for the current portion of the video. In the example, the threshold is greater than four.

[0153] In one embodiment, the broader stronger filter condition is the first condition and the second condition both being true. That is, if both the first condition and the second condition are true, then A strong filter condition can be true. In one embodiment, the first condition is true when d<β. and d is determined as follows:

number

[0154] In one embodiment, for Rc[0] and Rc[1],

number

[0155] In one embodiment, for Rc[0],

number

[0156] In one embodiment, edges are deblocked as segments, and the segment length is CU / TU / Note that this can be a function of the minimum size allowed for a PU / subPU. If N and Nx2 CUs are the shortest and thinnest blocks allowed in the chroma channels, The mass segment length may be 2.

[0157] According to the chroma filtering above, two lines perpendicular to the edge are deblocked. Note that the four lines are treated as basic segments. may be treated as a basic segment. In one embodiment, four lines are treated as basic segments. If the first condition is true when d<β, then d is It is decided as follows.

number

[0158] Furthermore, in one embodiment, if four lines are treated as basic segments, Rc[0] and About Rc[3] ((abs(p3-p0)+abs(q3-q0)<(β>3)) && (d<(β>>2)) && (abs(q0-p0)<((tC * 5+1)>>1 ))) If is true, then the second condition may be true.

[0159] As mentioned above, in ITU-T H.265, the deblocking filter is used for slice and tile CTU boundaries that coincide with slice and tile boundaries have different Specifically, in ITU-T H.265, slice_loop_filter_across _slices_enabled_flag is used to cross the CTU boundaries that coincide with the top and left slice boundaries. In one embodiment, the technology described herein enables / disables a deblocking filter. If the deblocking filter support samples are on the boundary (e.g. picture / slice / tile), a deblocking filter using support samples is allowed. In one embodiment, in accordance with the techniques herein, a deblocking filter may be provided. A port sample crosses a boundary (e.g., picture / slice / tile) and If the use of sample values ​​beyond the specified size is disabled, padding operations are used to support For example, a numerical sequence may be used to generate support samples. One of color, circular, replicated, or symmetric padding may be used, and a numeric scalar The padding operation pads according to a constant value, and the circular padding operation pads according to a circular pattern of sample values. The padding is done by repeating the shape, and the duplicate padding operation is done by repeating the edge sample values. The symmetric padding operation pads with a mirror reflection of the sample values.

[0160] As mentioned above, in ITU-T H.265, the filtered value is the value t C Based on Specifically, for the strong filter in ITU-T H.265 mentioned above, i 'The value is (p i -2 * t C ,p i +2 * t C ) and q i 'The value is (q i -2 * t C ,q i +2 * t C ) to Clippin As mentioned above, in ITU-T H.265, the variable t C '(Thus, t C The value of qPL The index Q is determined based on the (QP q +QP P +1) / 2 In some video coding cases (e.g., encoding high dynamic range (HDR) video), In the proposed technique for encoding multiple images, the QP value may be changed at the CU level or the CTU level. In this case, the clipping operation provided in ITU-T H.265 based on the index Q is In one embodiment, in accordance with the techniques herein, the P-side samples and and Q samples with different values ​​of t C ' may be determined. That is, P side t C 'value, sand Wachit CP ', and the corresponding P side t C value, i.e., t Cp ', and p i ' value, and Q side t C 'value, That is, t CQ ', may be clipped, the corresponding Q side t C value, i.e., t CQ Using , q i In one embodiment, the corresponding P-side index Q, i.e., ChiQ p , and the Q-side index Q, i.e., Q q is the qP in the above Q-index formula. L of QP P and QP q may be determined by substituting the value corresponding to According to the calligraphy technique, p i 'The value is (p i -2 * t CP ,p i +2 * t CP ) may be clipped to qi 'value (q i -2 * t CQ ,q i +2 * t CQ ) may be clipped to p i ' value and q i 'The value is It may also include filtered values ​​generated according to any of the filters described. Therefore, the corresponding t CP and t CQ Based on p i ' value and q i 'Clear the value The mapping technique may be applicable to any of the filters described herein.

[0161] In some cases, a video block (e.g., a CU) may contain intra-TU boundaries, Note that block distortion may appear within a video block. If a block has a size larger than 64, deblocking of internal TU boundaries is disabled. In one embodiment, the techniques herein allow for video blocks with sizes greater than 64. Even if the video has a large size, deblocking is performed along video block boundaries and arbitrarily. It may be performed along any internal TU boundary.

[0162] Referring to FIGS. 5A-5B, in some cases, a P block or a Q block may contain multiple objects. For example, referring to FIG. 5A, in one embodiment, columns p7 to p3 are The columns p2 to p0 may correspond to a second object, and the columns q 0 to q7 may correspond to a third object. In such a case, the samples in columns p2 to p0 , filter using samples from one or more columns of p3 and q0 to q3 as support samples If the filter is applied to the input signal, the resulting filtered sample values ​​in columns p2 to p0 will appear blurred. Furthermore, in some cases, deblocking can reduce the blurring of the dominant sample values. This may result in brightening and / or introduce other visual distortions.

[0163] As mentioned above, the corresponding deblocked sample values, y[ n] may be specified based on the following formula:

number

[0164] In one embodiment, in accordance with the techniques herein, the filtered samples and support Avoiding blurring or distortion caused by separate objects included in the sample To do this, one or more clipping operations may be applied to the term x[n+m]. +m] is Clip3(x[n]-2 * t C ,x[n]+2 * t C ,x[n+m]).

[0165] In one embodiment, if abs(x[n+m]-x[n]) is greater than a threshold, then the support sample x[n+m] is The term x[n+m] may be modified so that it is excluded from the sum. Coeff[m] corresponds to the mean distribution. (i.e., coeff[m]=1 / filter length, where the filter length is (abs(a-b+1))), then coe Note that ff[m] is calculated as 1 / (filter length - excluded samples). Coeff[m] corresponds to a Gaussian distribution (i.e.,

number

[0166] In one embodiment, different filters may be applied to different sample locations relative to the boundary. For example, samples close to the boundary may be filtered using a stronger filter. , samples far from the boundary may be filtered using a weaker filter. For example, The samples of the sequence p0 to p1 may be filtered according to a strong filter, and the samples of the sequence p2 to p4 The samples may be filtered according to a weak filter. For deblocking (or luma deblocking), the current sample and the closest sample to the boundary If the position distance between the samples is smaller than the threshold, a strong filter is applied. , thresholds (e.g., 2, 3, 4) may be used. In one embodiment, the thresholds are set on each side of the boundary (one the block size (or both), the strength of the boundary, and the reserve used by the blocks on each side of the boundary. prediction mode, prediction mode of deblocked samples, deblocked samples QP, the block size corresponding to the sample being deblocked, used for deblocking the block size corresponding to the samples being deblocked, the blocks on each side of the boundary being deblocked the motion vectors for the blocks, the motion vectors for the deblocked samples, and / or the motion vectors for the samples used for deblocking The method may be based on one or more of the following:

[0167] In some cases of video coding, the luminance transform coefficients (e.g., quantizers) corresponding to the CUs are After the motion compensation (e.g., ATMVP), the CU is divided into sub-PUs. In such a case, the technique herein can be used to Locking is performed along sub-PU boundaries and, in some embodiments, along CU boundaries. This may also be done.

[0168] In some cases of video coding, the chrominance transform coefficients (e.g., (after subdivision) may be 0, and the CU is split into sub-PUs for motion compensation (e.g., ATMVP). In such a case, the techniques herein allow for the chrominance Deblocking is performed along sub-PU boundaries and, in some embodiments, along CU boundaries. may be carried out.

[0169] As mentioned above, in ITU-T H.265, for luma, Bs, t C , β, and d, respectively. to determine which filter type to apply (e.g., strong or weak). In particular, if d is less than β, then the variable dStrong is determined as follows: d_strong=abs(p3-p0)+abs(q0-q3) Whether a strong or weak filter is applied depends on the value of d_strong. It is determined as follows: [Table 16]

[0170] In one embodiment, in accordance with the techniques herein, dStrong may be determined as follows:

number

[0171] If (Cur_EDGE_VER && cur_block_width==4), then the vertical border of the current block No parallel deblocking of is performed; If (Cur_EDGE_VER && adjacent_block_width==4), then the adjacent block's No parallel deblocking of vertical boundaries is performed; If (Cur_EDGE_HOR && cur_block_height==4), then the horizontal border of the current block No parallel deblocking of boundaries is performed; If (Cur_EDGE_HOR && adjacent_block_width==4), then the adjacent block's No parallel deblocking of horizontal boundaries is performed. During the ceremony, Cur_EDGE_VER is the current vertical border, Cur_EDGE_HOR is the current horizontal border, and cur_bl block_width is the current block width in e.g. luma samples, and cur_block_height is The current block height in luma samples, for example, and adjacent_block_width is adjacent_block_height is the adjacent block width in luma samples, for example. is the adjacent block height in the mass sample.

[0172] In one embodiment, the techniques herein provide for each of the above conditions at the boundary. Deblocking may be performed on the luma samples as follows: If (Cur_EDGE_VER && cur_block_width==4 && adjacent_block_width>4), then For example, for Cur_EDGE_VER, deblocking is performed only on adjacent block samples. ; If (Cur_EDGE_VER && cur_block_width==4 && adjacent_block_width==4), If so, for Cur_EDGE_VER, do not perform deblocking; If (Cur_EDGE_VER && cur_block_width>4 && adjacent_block_width==4), then For example, for Cur_EDGE_VER, perform deblocking only on the current block sample; If (Cur_EDGE_VER && cur_block_width>4 && adjacent_block_width>4), then For example, for Cur_EDGE_VER, the data is applied to the current block sample and the adjacent block sample. Perform blocking; If (Cur_EDGE_HOR && cur_block_height==4 && adjacent_block_height>4), For Cur_EDGE_HOR, deblocking is performed only on adjacent block samples. ru; If (Cur_EDGE_HOR && cur_block_height==4 && adjacent_block_height==4), If so, then for Cur_EDGE_HOR, do not perform deblocking; If (Cur_EDGE_HOR && cur_block_height==4 && adjacent_block_height==4), If so, for Cur_EDGE_HOR, perform deblocking only on the current block sample. ru; If (Cur_EDGE_HOR && cur_block_height>4 && adjacent_block_height>4), For Cur_EDGE_HOR, the current block sample and the adjacent block sample are Perform deblocking.

[0173] Similar to what we did above, for chroma deblocking, we use cur_block_height, adjacent _block_height, cur_block_width, adjacent_block_width, each block is a threshold When ≡2, parallel deblocking may be limited. According to the technique of writing, for chroma samples, threshold 4 is replaced with threshold 2 in the conditional statement. Where this is possible, deblocking may be performed as described above.

[0174] In one embodiment, the techniques herein use edges of blocks that have a size below a threshold. Instead of performing deblocking on the edge samples, a narrower filter is applied to the edge samples. A filter may be applied. For example, (Cur_EDGE_VER && cur_block_width==4 && adjac ent_block_width>4), then deblocking may be performed as follows: For Cur_EDGE_VER, deblocking is performed on adjacent block samples according to the filter width. Performs a grading and calculates one adjacent sample column in Cur_EDGE_VER for the current block. Perform deblocking on it.

[0175] Similarly, for each of the above cases, a narrower filter is applied to samples at the edges. Therefore, in general, in accordance with the techniques of this specification, The decoder (and / or video decoder) may, for example, use overlapping deblocking filters (e.g., When parallel deblocking occurs, the filter width is greater than half the width (or height) of the block. Determine if blocking is limited and remove samples that would otherwise be deblocked. In some cases, for deblocking support, It was noted that parallel deblocking may be limited based on the samples used in According to the techniques of this specification, a video encoder (and / or a video decoder) may Blocking used for deblocking support for the deblocking filter The sample in the block is configured to determine when parallel deblocking is limited. Good too.

[0176] As mentioned above, for an F4P P-side filter, one of the calculations involves:

number

[0177] The q side is size 8 and uses a strong HEVC filter on the edge opposite the current edge. Then, samples q5 and q6 are modified by the strong HEVC deblocking operation on the other side. Note that parallelism can occur for deblocking edges that are parallel to each other. In one embodiment, to prevent this, the length of the q side (perpendicular to the edge) is set to 16 Only if this is the case, should the p-side use a longer filter (i.e., a stronger filter). This condition (e.g., the LargeBlk condition) is checked in one of the following ways: . [Table 17] or [Table 18] If both block sizes are the same length, they must both be greater than or equal to 32. Note that the wider filter is only used for sides with a length of 32 or greater.

[0178] In one embodiment, in accordance with the techniques herein, the set of deblocking filters is In one embodiment, the block boundary sample p i and q i is i=0~S-1 are replaced by linear interpolation as follows:

number

[0179] In one embodiment, f i , Middle s,t , P s , g i , and Q t is determined as provided in Table 1 good. [Table 19]

[0180] Regarding Table 1, for 7,5; 7,3; 5,3; 5,7; and 3,7, pi and q in Middle i The weight of Note that it is not the same as, but is derived from 7,7 by adding an additional term.

[0181] In one embodiment, in accordance with the techniques herein, a set of deblocking filters may be If either side is 32 or greater, bilinear operations may be used.

[0182] In one embodiment, the present technique uses bilinear decomposition when either side is 32 or greater. Matching may be performed as provided in Table 2. [Table 20]

[0183] In one embodiment, the present technique uses bilinear decomposition when either side is 32 or greater. Matching may be performed as provided in Table 3. [Table 21]

[0184] In one embodiment, the present technique uses bilinear decomposition when either side is 32 or greater. Packaging may be performed as provided in Table 4. [Table 22]

[0185] In one embodiment, the present technique uses bilinear decomposition when either side is 32 or greater. Packaging may be performed as provided in Table 5. [Table 23]

[0186] In one embodiment, the present technique uses bilinear decomposition when either side is 32 or greater. Packaging may be performed as provided in Table 6. [Table 24]

[0187] In one embodiment, the present technique uses bilinear decomposition when either side is 32 or greater. Packaging may be performed as provided in Table 7. [Table 25]

[0188] In one embodiment, in accordance with the techniques herein, a set of deblocking filters may be If either side is 16 or greater, bilinear operations may be used. In such cases, see Table 2. In Table 7, 32 may be replaced with 16. In one embodiment of Tables 5, 6, and 7, Q The last columns (s,t) of the rows with P-side length not equal to the side length are (3,3), (5,5), (3,3) filtering may be used. In one embodiment, the deblocking filter Whether the bit uses bilinear operation or not depends on whether the strong filter condition is true. For example, if any of the above strong filter conditions is met, In one embodiment, the set of deblocking filters may use bilinear operation. The following may be additionally conditioned on whether: The variables dpq0, dpq3, dp, dq, and d are derived as follows.

number

number

[0189] In some embodiments, it should be noted that: Control parameters for luma and chroma The metric values ​​(e.g., β, tC, etc.) are not the same and use a different set of syntax elements. the control parameter values ​​for chroma may be derived from the control parameter values ​​for luma. deblocking may be performed on subPUs that align with 8x8 (luma) and 4x4 (chroma) boundaries; Deblocking of the edges of the current block may be performed using a linear model (LM ) chrominance; deblocking of the edges of the current block may be based on the use of separate components. It may be based on the use of a partition tree; deblocking of the edges of the current block is performed by pulse It may be based on the use of PCM (Procedure Correction Modulation); and / or deblocking of the edges of the current block. The encoding may be based on the use of a transform quantization bypass mode. Note that this is a lossless coding mode for blocks of . In one embodiment of PCM coding, The samples are represented directly with a given number of bits. The bit depth used for PCM is determined by the parameter It may be notified in the set.

[0190] Regarding deblocking of the edges of the current block based on the use of LM chroma, and / or Alternatively, the deblocking of the edges of the current block can be based on the use of a separate partition tree. Well, in one embodiment, if LM chroma is used for the chroma block, and / or luma and If separate trees are used for chroma and / or the received transform coefficients are zero, In some cases, deblocking may be performed on the edges of the current block. Then, for each tree, deblocking is performed on the chroma grid that matches the 4x4 chroma grid. It is performed only on the master edge (e.g., TU edge, PU edge, sub-PU edge, CU edge). Good too.

[0191] In one embodiment, if the large block condition is not true and the strong filter condition is true, NS00P and NS00Q are used to deblock the edges.

[0192] In one embodiment, if the large block condition is not true and the strong filter condition is true, A (s,t)=3,3 filter is used to deblock the edges.

[0193] Note that in some cases, the deblocking boundaries may include horizontal CTU boundaries. For example, referring to FIG. 5B, in some cases, the sample py,x may be a sample It may be included in a CTU above the CTU containing qy,x. For example, a typical video coder implementation would add N rows of samples to the bottom line of the CTU above the current CTU. For example, in FIG. 5B, where the deblocking boundary is a CTU boundary, The CTU line buffer stores the value px,0 for intra prediction coding of the line qx,0. The fa is the line of sample values ​​on the current CTU that are stored for encoding the current CTU. As the number of lines contained in the CTU line buffer increases, the video codec In some cases, the memory cost of implementing Note that the prediction mode (and related information, e.g., the input prediction mode, bi-pred / uni-pred, motion vectors, reference index, etc.), block size, coefficient coding flags, etc.) Therefore, to avoid increasing the implementation cost, Specifies the number of lines contained in the CTU line buffer for the sole purpose of performing deblocking. For example, it is desirable to avoid increasing the overall bandwidth of a proposed video coding standard. All coding features require the CTU line buffer to store four lines of sample values. In this case, it is necessary to increase the CTU line buffer to store 7 lines of sample values. The required deblocking filter would increase the implementation cost.

[0194] As mentioned above, there are several ways to potentially improve video coding technology beyond the capabilities of ITU-T H.265. JEM describes the coding characteristics under joint test model study by JVET as Furthermore, the Joint Call for Proposals jointly issued by VCEG and MPEG on Video Compression with Capabilities beyond HEVC” Several explanations of encryption were presented by various groups at the 10th Meeting of ISO / IEC JTC1 / SC29 / WG11 16-20 April 2018, San Diego, CA. As a result of multiple discussions of the video coding standard, the draft text of the video coding standard was published as "Versatile Video Coding Standards". ding (Draft 1),” 10th Meeting of ISO / IEC JTC1 / SC29 / WG11 16-20 April 2018, San Diego, CA, document JVET-J1001-v2, which is incorporated herein by reference. and is incorporated herein by reference as JVET-J1001. 1001, "Versatile Video Coding (Draft 2)," 11th Meeting of ISO / IEC JTC1 / SC29 / WG11 10-18 July 2018,Ljubljana,SI,document JVET-K1001-v4, is JVET This is an updated version of JVET-J1001. The technologies proposed in JVET-J1001 and JVET-K1001 have been tested. The study was carried out and evaluated using a benchmark model (VTM) and a benchmark set (BMS). Existing deblocking filters in [1] modify three samples perpendicular to the edge. do.

[0195] CE2-related:Longer Tap Deblocking Filter,” 11th Meeting of ISO / IEC JT C1 / SC29 / WG11 10-18 July 2018, Ljubljana, SI, document JVET-K0369-r3, This is called JVET-K0369, and it is a method for detecting up to seven samples perpendicular to the edge being deblocked. It also describes a deblocking filter that modifies the CTU line buffer. To limit size, the filters described in JVET-K0369 overlap with the CTU boundary. Specifically, JVET-K0369 restricts the filtering operation of horizontal edges according to Table 8A. This paper describes a deblocking filter that modifies sample values ​​according to the CTU boundary. For overlapping horizontal edges, the deblocking filter may be modified as shown in Table 8B. Provide a place. [Table 27] [Table 28]

[0196] For horizontal edges that overlap the CTU boundary, deblocking is provided in JVET-K0369. Changing the filtering filter reduces the line buffer requirements for chroma sample values. Furthermore, as shown in Table 8B, for p7 to p4, the filter coefficients are In addition to "filling with zeros," the filter coefficient values ​​for p3 to q7 are changed. Therefore, JVET-K0369 specifies an additional filter to be used to filter the CTU boundary. This requires storing a set of coefficients, which requires additional memory to store the coefficients. do.

[0197] In one embodiment, according to the technology herein, a minimum of three or more lines from px,0 to px,i are included. Long tap filters may include filters with varying filter support and / or In one embodiment, for luma and / or chroma deblocking, the use of Condition (EDGE_TYPE is EDGE_HOR && current boundary is aligned with CTU boundary) is met If EDGE_TYPE is EDGE_HOR, no long tap filter is applied to the P side. indicates that the current boundary is a horizontal boundary. For deblocking, the following conditions are met (EDGE_TYPE is EDGE_HOR && curPos.y% rumasa If CTUSize==0 in the sample, the long tap filter is not applied to P. where curPos.y is the vertical luma position of the current block to be deblocked. In the example, for luma and / or chroma deblocking, the following conditions (EDGE_TYPE is EDGE_HOR && curPosC.y% chroma samples in CTUSize==0), if satisfied, long No tap filter is applied to P, where curPosC.y is the current block being deblocked. In one embodiment, for luma and / or chroma deblocking, and the following conditions (EDGE_TYPE is EDGE_HOR && current boundary is aligned with a CTU boundary) , is satisfied, then the long tap filter is not applied to the Q and P sides. For luma and / or chroma deblocking, the following conditions (EDGE_TYPE is EDGE_HOR & & curPos.y% of luma samples (CTUSize==0), if satisfied, long tap fill In one embodiment, luma and / or chroma deblocking is not applied to the Q and P sides. For the following conditions (EDGE_TYPE is EDGE_HOR && curPosC.y% chroma samples) CTUSize==0), the long tap filter is not applied to the Q and P sides. In one embodiment, if a long tap filter is not applied, fewer samples are changed. , and / or fewer lines from px,0 to px,i (i.e., 1, 2, or 3 lines) Apply another filter, including a filter support that utilizes the The weak or strong filters used are allowed to be applied as long tap filters. As provided in ITU-T H.265, the % operator may be applied when x Note that this provides the remainder when dividing by y.

[0198] In one embodiment, if a long tap filter is not applied, the target line buffer threshold (e.g. For example, more than three or four sample values ​​may be made unavailable, and the corresponding sample positions may be Table 9 shows that the long tap filter is Here is an example that includes the long tap filter described above and has a target line buffer threshold of 4. Therefore, the sample values ​​of p4 to p7 are not available. As shown in Table 9, the values ​​of p4 to p7 are Furthermore, as shown in p4 to p7 of Table 9, the filter coefficient The number is indicated by NA, which means that the sample values ​​of p4 to p7 are not available in the line buffer. In one embodiment, the sample value for each of p4 to p7 is set to the sample value for p3. The filter coefficients in Table 8A may be used to derive modified sample values ​​for p3' to q2'. It may also be used to [Table 29]

[0199] Additionally, in one embodiment, values ​​derived from the available sample values ​​are used to calculate the corresponding sample positions. In one embodiment, for each of p4 to p7, the sample value is calculated by averaging p3 and p2. The filter coefficients in Table 8A may be set to the average sample value, and the filter coefficients in Table 8A may be changed for p3' to q2'. It may be used to derive sample values.

[0200] In one embodiment, if a long tap filter is not applied, the filtering process: Based on the location of the sample being deblocked (e.g., if the sample value is on a CTU horizontal boundary) or within a certain distance of the CTU horizontal boundary), and A filter that prevents accessing / deblocking samples beyond the in-buffer threshold For example, for the example shown in Table 9, sample values ​​for p4 to p7 are derived. A different rule may be applied to p3' and p2'.

[0201] In one embodiment, if a long tap filter is not applied, the control process The target line buffer may be changed based on the position of the sample being A filter may be selected that does not access / deblock samples. For example, the (s=3,t=7) filter in Table 1 for luma, the (s=3,t=5) filter in Table 1 for luma, A weak chroma filter may be selected for F1P and / or chroma.

[0202] In one embodiment, if a long tap filter is not applied, the target line buffer threshold is exceeded. The deblocking grid is changed so that samples that are too large are not accessed / deblocked. For example, a horizontal edge may be positioned at a distance of 4 below the horizontal CTU edge. The locking grid may be moved.

[0203] As mentioned above, in ITU-T H.265, to encode CB including video blocks P and Q, Based on the QP values ​​(sometimes called QPP and QPQ) used in The derivation of the index Q for the luma channel is described above. For channels, ITU-T H.265 specifies that when chroma is 4:2:0, the variable QpC is The time is determined based on the time qPi as specified in the table shown in FIG.

number

[0204] In ITU-T H.265, if the chroma format is 4:2:2 or 4:4:4, QpC is Min(qPi, 51 ).

[0205] For chroma, t C ' is determined using the table shown in Figure 6, and the index Q is C ' is determined as follows:

number

[0206] The technologies proposed in JVET-J1001 and JVET-K1001 are the luma channel and chromaticity channel. It is suggested that separate splitting trees can be used to split the channels. If separate split trees are used to split the luma and chroma channels, You can vary the QP value for the chroma channels relative to the QP value for the channel. It may be useful to increase the amount of each component in the chroma channels, e.g. For each QP, we can increase the corresponding QP offset value, which can be signaled at the slice level. ITU-T H.265 provides the following chroma channel QP offset syntax elements: , pps_cb_qp_offset, and pps_cr_qp_offset derive QP'Cb and Qp'Cr, respectively. Note that this specifies an offset for the luma quantization parameter Qp'y used for The values ​​of pps_cb_qp_offset and pps_cr_qp_offset should be between -12 and +12, inclusive. If ChromaArrayType is equal to 0, pps_cb_qp_offset and pps_ cr_qp_offset is not used in the decoding process and decoders shall ignore their values. do.

[0207] slice_cb_qp_offset is used when determining the value of the quantization parameter Qp'Cb. Specifies the difference to be added to the value of fset. The value of slice_cb_qp_offset can be between -12 and + 12. If slice_cb_qp_offset is not present, it is set to 0. The value of pps_cb_qp_offset+slice_cb_qp_offset is in the range of -12 to +12, inclusive. It shall be within the range.

[0208] slice_cr_qp_offset is used when determining the value of the quantization parameter Qp'Cr. Specifies the difference to be added to the value of fset. The value of slice_cr_qp_offset can be between -12 and + 12. If slice_cr_qp_offset is not present, it is assumed to be equal to 0. The value of pps_cr_qp_offset+slice_cr_qp_offset is in the range of -12 to +12, inclusive. It shall be within the range.

[0209] Changes to the derivation of chroma QP values ​​have been made to reduce the chroma QP value when deblocking parameters are based on QP values. In some cases, the deblocking of the channel may be performed. In some cases, separate split trees may be used to split the luma and chroma channels. In this case, the derivation of the QP value based on the deblocking parameters may be changed.

[0210] In one embodiment according to the techniques herein, cQpPicOffset may be derived as follows: Regarding Cb,

number

number

number

number

[0211] In some cases, additional luma and chroma QP offset values ​​are required for some types of processing (e.g. These QP offsets may be used for blocks undergoing adaptive color transformation (e.g., adaptive color transformation). , may be used to derive QPs for luma and chroma. The king process may rely on additional luma and chroma QP offsets.

[0212] In some embodiments, separate splits are used to split the luma and chroma channels. If a tree is used, the chroma QP value may be calculated based on the split tree type. For example, in one embodiment, the chroma QP value may be determined as follows:

number

[0213] In one embodiment, Qp blk_P , and / or Qp bik_Q is derived from a combination of one or more of the following: The QP values ​​of multiple corresponding luma blocks, the QP values ​​of the luma blocks corresponding to the chroma blocks, The Qp blk_P and / or Qp bik_Q is a function such as integer averaging with rounding operations, maximum function, etc. The chroma block can be derived using the partial luma block corresponding to the 14A-14B show the chroma blocks P and Q corresponding to the 14A shows an example of a possible luma partition, where each luma block has a QP value, QP_X. In this embodiment, chroma block P is co-located with luma blocks with QP values ​​QP_1 and QP_3. chroma block Q is co-located with luma blocks with QP values ​​QP_2 and QP_4. In the example shown in FIG. 14B, chroma block P has QP values ​​QP_1, QP_3, and QP_5. chroma block Q is co-located with luma blocks with QP values ​​QP_2 and QP_4. In one embodiment, for the example shown in FIG. blk_P , and Qp bik_Q can be derived as follows:

number

[0214] In one embodiment, for the example shown in FIG. 14B, Qp blk_P , and Qp bik_Q is derived as follows: It can be done.

number

[0215] In one embodiment, Qp blk_P and / or Qp bik_Q identifies a set of chroma positions, and For each corresponding luma position, the corresponding luma position can be derived. For each luma position, a corresponding QP value can be determined. blk_P and / or Qp bik_Q can be used to derive

[0216] As mentioned above, in one embodiment, the broader stronger filter condition is the first condition and the second condition. It may also include whether both conditions are true, where the first condition is true when d<β and and d is determined as follows:

number

number

[0217] In some embodiments, the x sample segment of the chroma deblocking boundary (e.g., x= For 2), a condition may be checked. This allows the line whose gradient needs to be calculated to be In the worst case, the first condition is the gradient (all The above condition calculates the gradient every two lines, whereas xCalcDQP) is calculated for each line. Please note that

[0218] As mentioned above, in ITU-T H.265, the variables β and t C Filtering decision and clipping Used for the ragging operation, e.g., β and / or t C indicates whether a strong filter was used. and / or to clip the filtered sample values. In JVET-K1001, the peak signal-to-noise ratio (PSNR) is higher than that of ITU-T H.265. Note that the quantization level is higher than the given level. , β and / or t to change the deblocking strength C It may be useful to change That is, the lower the distortion level is at a given quantization level, the more it is perceived. The amount of blockiness is less, and therefore less deblocking is required. In an embodiment, β may be changed such that β = β << n. In one embodiment, β may be changed such that β = β >> n. In one embodiment, t C = t C may be changed such that t = t << n. In one embodiment t C = t C may be changed such that t = t >> n. In one embodiment, n may be determined based on one or more of the following combinations: slice type, QP value, block size, bit length , intra prediction mode, motion vector (e.g., size), channel type, and / or component type, etc. For example, in one embodiment, t = t >> 2 may be used for intra slices <​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ Larger than the Rock side. The filtering decision process is described in detail below. The expanded filter set is It may be used for strong deblocking throughout the locking.

[0220] In one embodiment, in accordance with the techniques herein, either side has a large block and the change If the specified strong filter condition is met, the stronger luma filter is used. In the example, large blocks of luma correspond to widths of 32 or more for vertical edges and For flat edges, heights of 32 and above are supported.

[0221] In one embodiment, a stronger filter for luma may be defined as follows: Then, the block boundary sample p i and q i For i=0 to S-1, linear interpolation is performed as follows: is replaced by

number

[0222] In one embodiment, the control process calculates two lines of four sample segments. The calculated gradient, absolute pixel difference and t C and further based on comparison of β with other absolute pixel value differences. For larger blocks, more gradients are calculated. The control process is as follows: It may be as follows. 1. The variables dpq0, dpq3, dp, dq, and d are derived as follows: First, dp0, dp3, dq0, dq3 are derived in the same way as in ITU-T H.265. Then dpq0, dpq3, dp, dq, d are derived in the same way as in ITU-T H.265. Similar to ITU-T H.265, if d is less than 6, the following ordered steps are applied: do. a.dpq is derived similarly to ITU-T H.265. b.sp3-Abs(p3-p0), derived similarly to ITU-T H.265. [Table 31] c.sp3 = Abs(q0-q3), derived similarly to ITU-T H.265. [Table 32] d. Similar to the derivation of ITU-T H.265, [Table 33] Calculate d_strong1 and d_strong2 as follows:

number

[0223] In one embodiment, the control process may be as follows. The variables dpq0, dpq3, dp, dq, and d are derived as follows. First, dp0, dp3, dq0, dq3 are derived in the same way as in ITU-T H.265. Then dpq0, dpq3, dp, dq, d are derived in the same way as in ITU-T H.265. Similar to ITU-T H.265, if d is less than β, the following ordered steps are applied: can be. dpq is derived similarly to ITU-T H.265. sp3-Abs(p3-p0), derived similarly to ITU-T H.265. [Table 35] It is derived in the same way as ITU-T H.265. [Table 36] The following is derived in the same way as ITU-T H.265. [Table 37]

[0224] Condition (p side is 32 or more && q side is 16 or more), and (q side is 32 or more && p side is 16 or more) determines whether a stronger luma filter can be applied. Note that in other embodiments, additional conditions (e.g., one or more prerequisites) may apply. and may be used to determine whether a stronger luma filter can be applied. In one embodiment, the additional condition may be: [Table 38] However, for (7,7,7,3,3,7), the decision process is (p side is 32 or more || q side is 32 or more The idea is to select a lower threshold of 3*β>>5 instead of β>>3 in the decision process. The solution is to apply any of the stronger luma filters that precede the

[0225] In one embodiment, in accordance with the techniques described herein, luma is sampled in a 4x4 luma sample grid. The 8x8 luma sample grid may be deblocked according to the 8x8 luma sample grid. So, the stronger luma filters mentioned above as WS00P P-side filter and WS00Q Q-side filter are used. The data may be used for large blocks, where large blocks are those with vertical edges. A block that is 32 or more wide relative to a horizontal edge, 32 or more high relative to a horizontal edge, and has 16 or more adjacent blocks. The control process is performed by dividing the four sample segments into four sub-segments, as described in more detail below. The gradient, absolute pixel difference and t are calculated for two lines of the C Comparison with other absolute It may further be based on a comparison of the pairwise pixel value difference with β. Furthermore, if p0 belongs to a CTU on the current CTU, In this case, the following limited support luma filters provided in Table 8B above may be used: stomach.

[0226] In some cases, a subset of the samples is not accessible. , control processes that use this subset of samples may be affected. , which may result in asymmetry in the calculation of the gradient. , another control process may be used.

[0227] In one embodiment, the control process may be as follows. The variables dpq0, dpq3, dp, dq, and d are derived as follows. First, dp0, dp3, dq0, dq3 are derived in the same way as in ITU-T H.265. [Table 39] Then dpq0, dpq3, dp, dq, d are derived in the same way as in ITU-T H.265. Similar to ITU-T H.265, if d is less than β, the following ordered steps are applied: can be. dpq is derived similarly to ITU-T H.265. sp3-Abs(p3-p0) is derived in the same way as in ITU-T H.265. [Table 40] sq3=Abs(q0-q3) is derived in the same way as in ITU-T H.265. [Table 41] Similar to the derivation of ITU-T H.265, [Table 42] If StrongFilterCondition is true and LongTapDeblocking is true, then Use a stronger luma filter with a vertical length of 32 or more, Otherwise, if StrongFilterCondition is true and LongTapDeblocking is false, If so, use another strong filter (for example, the HEVC strong filters HEVC_P, HEVC_Q).

[0228] In one embodiment, the threshold used in the comparison may also be based on location. Whether the blocked edge is aligned with a CTU boundary.

[0229] In one embodiment, for a 4x4 luma deblocking grid, one of the following is required: could be. Block width / height is equal to 4 for vertical / horizontal edges respectively, and HEVC filters The tau-on / off condition (i.e., d < Beta, where d = d0 + d3, and d0 = dp0 + dq0, and d3 = dp3 + dq3) is evaluated to be true for each edge, this method performs a HEVC normal / weak filter with a maximum of one sample change. Thus, the following HEVC condition, i.e., |δ| < 10(t ) is checked, where δ = (9 << (q0 - p0) - (3 C )(q1 - p1)) + 8) >> 4 * and if the condition is evaluated to be true, samples p0 and q0 are changed, otherwise filtering is not applied. If the block width / height is equal to 4 for the vertical edge / horizontal edge respectively, up to three samples are used for filter determination and only one sample is changed by the filter. That is, in the strong / weak filter condition check, p2 [[ID=...]] replaces p3 and both the strong filter and the weak filter are only permitted to change p0 and q0. In one embodiment, according to the technology described herein, chroma may be deblocked according to a 2×2 chroma sample grid (or according to a 4×4 luma sample grid). In this example, the above-described HEVC_PP side and HEVC_QQ side filters may be used. Further, if p0 i belongs to the CTU on the current CTU, the weak chroma filter described above as NW00P may be used. In one embodiment, if the strong luma filter condition of HEVC calculated for chroma is true i or if any of the following conditions is true, a strong filter may be used. [[ID=2...]]

[0230] In one embodiment, according to the technology described herein, chroma may be deblocked according to a 2×2 chroma sample grid (or according to a 4×4 luma sample grid). In this example, the above-described HEVC_PP side and HEVC_QQ side filters may be used. Further, if p0 belongs to the CTU on the current CTU, the weak chroma filter described above as NW00P may be used. In one embodiment, if the strong luma filter condition of HEVC calculated for chroma is true or if any of the following conditions is true, a strong filter may be used. In one embodiment, if the strong luma filter condition of HEVC calculated for chroma is true or if any of the following conditions is true, a strong filter may be used. -Edge type is vertical, p0 belongs to a CU with width >= 16 (chroma samples), and q0 with width >= 1 Belongs to CU 6 (chroma sample) -Edge type is horizontal, p0 belongs to a CU with height >= 16 (chroma samples), q0 is high It belongs to a CU with size >= 16 (chroma samples).

[0231] Referring again to FIG. 8, the entropy encoder 218 encodes the quantized transform coefficients and the prediction symbols. Receive tax data (i.e., intra prediction data, motion prediction data). In this example, the coefficient quantization unit 206 quantizes the coefficients before they are output to the entropy coding unit 218. Note that a scan of the matrix containing the calculated transform coefficients can be performed. The entropy encoder 218 may perform a scan. , configured to perform entropy encoding in accordance with one or more of the techniques described herein. In this way, the video encoder 200 can receiving an array of sample values ​​containing adjacent reconstructed video blocks; Following multiple passes of the filter, sample values ​​in adjacent reconstructed video blocks are modified. 1 illustrates an example of a device configured to change the

[0232] Referring again to FIG. 7, the data encapsulation unit 107 receives the encoded video data and According to the data structure defined in the A device receiving a compliant bitstream can generate a video Furthermore, devices receiving a compliant bitstream can A sub-bitstream extraction process may be performed, and the sub-bitstream extraction may be performed The device receiving the bitstream may discard or delete data in the received bitstream. refers to the process of creating a new compliant bitstream by modifying and / or rewriting The term conforming bitstream is used instead of the term compliant bitstream. Note that it is possible to

[0233] Referring again to FIG. 7, the interface 108 is generated by the data encapsulation unit 107. configured to receive the data and transmit and / or store the data on a communication medium. The interface 108 may include any device such as an Ethernet card. Network interface cards may include optical transceivers, radio frequency transceivers, This includes machines, or any other type of device that can send and / or receive information. Additionally, the interface 108 may store files on a storage device. A computer system interface may be included that may enable For example, the interface 108 may be a Peripheral Component Interconnect (PCI) bus. protocol and Peripheral Component Interconnect Express (PCIe) bus protocol, Proprietary bus protocol, Universal Serial Bus (USB) protocol FC, or any other logic that can be used to interconnect peer devices and a chipset supporting the physical structure.

[0234] Referring again to FIG. 7, destination device 120 includes an interface 122 and a data decapsulator 124. The interface 122 includes a coding unit 123, a video decoder 124, and a display 126. , which may include any device configured to receive data from a communications medium. Interface 122 is a network interface card such as an Ethernet card. It may include an optical transceiver, a radio frequency transceiver, or a The device may include any other type of device that can transmit. The interface 122 allows for retrieval of a conforming video bitstream from a storage device. It may include an interface for a computer system that allows the Interface 122 supports PCI bus protocol, PCIe bus protocol, proprietary bus protocol, USB protocol, FC, or any that can be used to interconnect peer devices The data can include a chipset that supports other logical and physical structures. The encapsulator 123 may use any of the exemplary parameter sets described herein. It may be configured to receive and analyze the signal.

[0235] The video decoder 124 receives the bitstream and / or its permissible variants, This may include any device configured to play video data from a Display 126 may include any device configured to display video data. The display 126 may be a liquid crystal display (LCD), a printer, or the like. Plasma display, organic light emitting diode (OLED) display One of a variety of display devices, such as a display or another type of display The display 126 may include a high-resolution display or an ultra-high-resolution display. In the example shown in Figure 7, the video decoder 124 Although the video decoder 124 is described as outputting the video data to a ray 126, the video decoder 124 may also output the video data to various can be configured to output to various types of devices and / or their subcomponents. For example, video decoder 124 may be any of the decoders described herein. The video signal may be configured to output video data to any communication medium.

[0236] FIG. 9 illustrates a block diagram of a video processing system that may be configured to decode video data in accordance with one or more techniques of this disclosure. 1 is a block diagram showing an example of a video decoder capable of In one embodiment, the video decoder 300 decodes the transform data and converts the decoded transform data into The video decoder may be configured to reconstruct the residual data from the transform coefficients based on the The decoder 300 may be configured to perform intra-predictive decoding and inter-predictive decoding. Therefore, it is sometimes called a hybrid decoder. The decoder 300 includes an entropy decoding unit 302, an inverse quantization unit 304, an inverse transform coefficient processing unit 306, and an intra-prediction processing unit 308, an inter-prediction processing unit 310, an adder 312, and a filter unit 314; and a reference buffer 316. The video decoder 300 is adapted to be compatible with video coding systems. The example video decoder 300 can be configured to decode video data in this manner. Although shown as having separate functional blocks, such illustration is for illustrative purposes only. Therefore, the video decoder 300 and / or its subcomponents may be implemented as specific hardware or software. Note that the present invention is not limited to a specific software architecture. The functionality of this specification may be implemented in any of a variety of hardware, firmware, and / or software. This can be achieved using a combination.

[0237] As shown in FIG. 9, the entropy decoding unit 302 receives an entropy-encoded bitstream The entropy decoding unit 302 receives the reciprocal entropy encoding process. Decoding syntax elements and quantized coefficients from a bitstream according to a process The entropy decoding unit 302 can be configured to perform the above-mentioned entropy encoding. The entropy decoding may be performed according to any of the techniques. The bitstream decoder 802 decodes the encoded bitstream in accordance with the video coding standard. As shown in Figure 9, the entropy The decoder 302 determines the values ​​of the quantized coefficients and the assertion data from the bitstream. In the example shown in FIG. 9, the inverse quantization unit 304 receives the quantized coefficient values ​​and transforms them. The inverse transform processor 306 receives the transform coefficients and outputs the reconstructed residual data. do.

[0238] Referring again to Figure 9, the reconstructed residual data may be provided to adder 312. The calculator 312 adds the reconstructed residual data to the prediction video block to generate a reconstructed video data. The prediction video block can be generated using a prediction video technique (i.e., The intra-prediction processing unit 308 can make the determination according to the intra-frame prediction and inter-frame prediction. , receives intra prediction syntax elements and retrieves the prediction video block from reference buffer 316. The reference buffer 316 can be configured to acquire one or more frames of video data. The intra prediction system may include a memory device configured to store the intra prediction frame. The syntax element may identify an intra-prediction mode, such as the intra-prediction modes described above. The inter prediction processor 308 receives the inter prediction syntax element and calculates the motion vector. A vector is generated to represent a predicted block in one or more reference frames stored in the reference buffer 316. The inter-prediction processor 310 may optionally use an interpolation filter Interpolation based on the syntax The filter element contains the identification of the interpolation filter to be used for sub-pixel motion estimation. The inter-prediction processing unit 310 uses an interpolation filter to Interpolated values ​​for the sub-integer pixels of the block can be calculated.

[0239] The filter unit 314 is configured to perform filtering on the restored video data. For example, the filter unit 314 may be configured to Based on the parameters, deblocking and / or sample adaptive offset (SAO) filtering is performed. Further, in some examples, the filter The unit 314 may perform arbitrary filtering (e.g., visual filtering such as mosquito noise reduction) independently. It should be noted that the filter unit 314 can be configured to perform a filter (highlighting). 9, the reconstructed video blocks may operate in the same manner as the video filter unit 216. In this way, the video decoder 300 An array of sample values ​​containing adjacent reconstructed video blocks for a component of video data. and following multiple passes of the deblocking filter, demultiplexes adjacent recovered video blocks. It may be configured to change the sample values ​​within the block.

[0240] In one or more examples, the functions described may be implemented in hardware, software, firmware, or other similar configurations. or any combination thereof. In some cases, the functions may be stored as one or more instructions or code on a computer-readable medium. The data may be transmitted or executed by a hardware-based processor. The data-readable medium may be a computer readable medium that transmits data from one location to another, for example, according to a communication protocol. data storage media or communication media, including any medium that facilitates the transfer of data programs, The computer-readable storage medium may correspond to the tangible medium. Therefore, computer-readable media generally include: (1) non-transitory tangible computer-readable storage media; or (2) a communication medium such as a signal or carrier wave. The instructions, code, and / or data structures for implementing the techniques described in this disclosure may be extracted. Any program that can be accessed by one or more computers or one or more processors to The computer program product may be any available medium. may include:

[0241] By way of example and not limitation, such computer readable storage media may include RAM, ROM, EEPROM, , CD-ROM or other optical disk storage device, magnetic disk storage device, other magnetic storage device, Flash memory, or any other medium, in the form of instructions or data structures, can be used to store program codes and be accessible by a computer Also, any connection may include a computer-readable medium and any other suitable medium. For example, if instructions are received from a website, server, or other remote source, Axial cable, fiber optic cable, twisted pair, digital subscriber line line, DSL), or transmitted using wireless technologies such as infrared, radio and microwave. If you are using coaxial cable, fiber optic cable, twisted pair, DSL, or infrared, wireless Wireless technologies such as wires and microwaves are included in the definition of media. Media and data carriers do not include, but are not limited to, connections, carrier waves, signals, or other ephemeral media. It should be understood that the present invention is directed to non-transitory tangible storage media. In this case, the disk and the disk are referred to as Compact Discs (C D), laser disc, optical disc, digital versatile disc Digital Versatile Disc (DVD), floppy disk and Blu-ray (registered trademark) disc (Blu-ray (registered trademark) disc), and a disc is a medium that normally stores data on a magnetic The DVD player uses a laser to play back data electrically, while the disc uses a laser to play back data optically. Combinations should also be included within the scope of computer-readable media.

[0242] The instructions may be written to one or more digital signal processors (DSPs), general-purpose microprocessors, or application-specific microprocessors. Application-Specific Integrated Circuit (ASIC), Field Programmable Gate Array (FPGA), or other equivalent may be implemented by one or more processors, such as integrated circuits or discrete logic circuits. Therefore, as used herein, the term "processor" refers to the structure described above. or any other structure suitable for implementing the techniques described herein. Additionally, in some aspects, the functionality described herein may be used for encoding and decoding. dedicated hardware modules and The techniques may be implemented in one or more circuits or software modules. can be implemented entirely in logic elements.

[0243] The techniques of this disclosure may be used in wireless handsets, integrated circuits (ICs), or IC sensors. It can be implemented in a wide variety of devices or apparatuses, including chipsets (e.g., chipsets). The various components, modules, or units may be configured to perform the disclosed techniques. Although described in this disclosure to emphasize functional aspects of the device, It is not necessary to implement it in a hardware unit. The various units may be combined into a codec hardware unit or may be suitable a processor, including one or more of the processors described above, together with software and / or firmware, It may be provided by a collection of interacting hardware units.

[0244] Furthermore, the functional blocks and various functions of the base station device and terminal device used in each of the above implementation forms is realized or performed by an electric circuit, which is typically an integrated circuit or multiple integrated circuits. Circuits designed to perform the functions described herein may be implemented using a general-purpose processor. , digital signal processors (DSPs), application specific or general purpose application integrated circuits (ASICs) ), field programmable gate array (FPGA) or other programmable logic Device, discrete gate or transistor logic, or individual hardware The general-purpose processor may comprise a hardware component, a processor module, a processor processor hardware component, or a combination thereof. The processor may be a microprocessor, or may be a conventional processor, controller, or The general-purpose processor or Each circuit may be configured as a digital circuit or an analog circuit. ,If an integrated circuit technology emerges that can replace ,current integrated circuits due to advances in semiconductor technology, Integrated circuits based on this technology will also be available.

[0245] Various embodiments have been described. These and other embodiments are within the scope of the following claims. be.

[0246] <Cross reference> This non-provisional application is a continuation of U.S. Provisional Patent Application No. 62, filed March 30, 2018, under 35 U.S.C. § 119. / 651,058, filed April 7, 2018, No. 62 / 654,379, filed April 9, 2018, No. 62 / 655,029 No. 62 / 656,291 filed April 11, 2018; No. 62 / 677,629 filed May 29, 2018; No. 62 / 679,716 filed June 1, 2018, No. 62 / 696,309 filed July 10, 2018, No. 62 / 711,420 filed on August 27, 2018, No. 62 / 714,755 filed on August 5, 2018, and No. 62 / 714,755 filed on September 17, 2018. Application No. 62 / 732,556 filed on September 18, 2018, Application No. 62 / 733,067 filed on September 22, 2018, This application claims priority to application Ser. No. 62 / 735,090 filed on September 27, 2018, and application Ser. No. 62 / 737,596 filed on September 27, 2018. No. 6,239,999, the contents of which are incorporated herein by reference.

Claims

1. 1. An apparatus for filtering restored video data, comprising: receiving sample values ​​included in a first block and a second block of the restored video data adjacent to a block boundary; If the edge type is vertical, determine whether 7 samples of the first block are filtered based on the width of the first block being equal to or greater than 32; determining whether three samples of the second block are filtered based on the width of the second block being less than 32; 1. An apparatus for filtering each pixel of the first block and the second block with an intermediate value calculated based on the formula (2*(p0+q0) + q0+2*(q1+q2)+p1+q1+p2+p3+p4+p5+p6+8)≫4, where pi denotes the value of the pixel of the first block, qi denotes the value of the pixel of the second block, and i denotes the position of the pixel from the block boundary, with i=0 indicating the position immediately adjacent to the block boundary.

2. A computer-readable recording medium having a program recorded thereon for causing a computer to filter restored video data, the program comprising: The program is executed on the computer. receiving sample values ​​contained in a first block and a second block of the restored video data adjacent to a block boundary; If the edge type is vertical, determining whether 7 samples of the first block are filtered based on the width of the first block being greater than or equal to 32; determining whether three samples of the second block are filtered based on the width of the second block being less than 32; and filtering each pixel of the first block and the second block with an intermediate value calculated based on the formula (2*(p0+q0) + q0+2*(q1+q2)+p1+q1+p2+p3+p4+p5+p6+8)≫4, where pi denotes a value of a pixel of the first block, qi denotes a value of a pixel of the second block, and i denotes a position of a pixel from the block boundary, with i=0 indicating a position immediately adjacent to the block boundary.