System and method for applying a deblocking filter to recovered video data
By performing multipath deblocking filtering on video data, the block distortion problem after video encoding is solved, thus improving video quality.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2025-06-06
- Publication Date
- 2026-03-16
AI Technical Summary
Existing video coding techniques produce block artifacts in the decoded video data, resulting in visual block distortion at the boundaries and affecting video quality.
By filtering adjacent recovered video blocks multiple times and adjusting sample values to reduce block distortion, a multi-path deblocking filtering technique is employed.
It effectively reduces blocky distortion at video boundaries, improves video quality, and makes the video look smoother.
Smart Images

Figure 0007830745000120 
Figure 0007830745000121 
Figure 0007830745000122
Abstract
Description
[Technical Field]
[0001] This disclosure relates to video encoding, and more specifically, the deblocking of restored video data. Regarding the technology for implementing this. Background technology
[0002] Digital video capabilities are available on digital televisions, laptops, or desktop computers. Tablet computers, digital recording devices, digital media players, video Gaming devices, including so-called smartphones and cellular phones, medical imaging devices It can be incorporated into a wide range of devices, including digital video devices. Video can be encoded according to video encoding standards. Video encoding standards are video compression techniques. Techniques can be incorporated. An example of a video encoding standard is ISO / IEC MPEG-4 Visual and ITU-T H.264 (also known as ISO / IEC MPEG-4 AVC) and High-Efficiency V One example is video coding (HEVC). HEVC stands for High Efficiency Video Coding. c. It is described in ITU-T H.265 (December 2016) and incorporated herein by reference. In detail, it is referred to as ITU-T H.265. Extensions and improvements to ITU-T H.265 are the next generation video code. This is currently being considered for the development of a numbering standard. For example, ITU-T Video Coding Experts Group(VCEG) and ISO / IEC (Moving Picture Experts Group(MPEG)(Joint Video E The Exploration Team (collectively known as JVET) has significantly improved the compression capabilities of the current HEVC standard. We are considering the potential need for standardization of future video encoding technologies that offer superior compression capabilities. . The Joint Exploration Model 7 (JEM 7),Algorithm Description of Joint Exploration Test Model 7 (JEM 7), ISO / IEC JTC1 / SC29 / WG11 Document: Video Notes The numbering technology has the potential to improve beyond the capabilities of ITU-T H.265, and has been designated by JVET. Therefore, regarding the coded features currently under study in the collaborative test model, JVET-G1001, July 2017, Tori No. IT is described and incorporated herein by reference. JEM 7 coding features Please note that this is done using JEM reference software. The term JEM refers to the implementation of algorithms and JEM reference software included in JEM 7. It can be expressed comprehensively.
[0003] Video compression technology leverages the inherent redundancy in video sequences to enable video Video compression technology reduces data requirements for storing and transmitting video. The sequence is divided into smaller and smaller parts (i.e., groups of frames within the video sequence, groups of frames) Frames within a frame, slices within a frame, coded tree units within a slice (for example, ma It can be subdivided into cross blocks, coding blocks within coding tree units, etc. Intra predictive coding techniques (e.g., within a picture (spatial)) and inter predictive techniques (simply put) The video data units and video are encoded using the intervals between pictures (in time). It is possible to generate a difference value between the data and the reference unit. The difference value is the residual data and It is sometimes called that. Residual data can be encoded as quantized transformation coefficients. The syntax element allows the residual data to be associated with the reference coding unit. For example, intra-predictive mode index, motion vector, and block vector. The difference data and syntax elements can be entropi coded. The processed residual data and syntax elements can be included in the compliant bitstream. The compliant bitstream and associated metadata have a format that conforms to the data structure. You may do so. Summary of the Invention
[0004] In one embodiment, a method for filtering the recovered video data is to filter the video data Receiving an array of sample values, including adjacent reconstructed video blocks for each component. Then, following multiple passes of the deblocking filter, adjacent restored video blocks This includes changing the sample values within. [Brief explanation of the drawing]
[0005] [Figure 1] This is a conceptual diagram illustrating an example of a group of pictures encoded according to a quartic-to-binary tree partitioning using one or more of the technologies of this disclosure. [Figure 2] This is a conceptual diagram illustrating an example of a video component sampling format using one or more of the technologies of this disclosure. [Figure 3] This is a conceptual diagram illustrating possible encoding structures for blocks of video data using one or more of the technologies of this disclosure. [Figure 4A] This is a conceptual diagram illustrating an example of encoding blocks of video data using one or more of the technologies of this disclosure. [Figure 4B] This is a conceptual diagram illustrating an example of encoding blocks of video data using one or more of the technologies of this disclosure. [Figure 5A] This is a conceptual diagram showing a block of video data including a deblocking boundary, using one or more of the technologies of this disclosure. [Figure 5B] This is a conceptual diagram showing a block of video data including a deblocking boundary, using one or more of the technologies of this disclosure. [Figure 6] This is an example of a table that can be used to determine deblocking parameters by one or more of the technologies of this disclosure. [Figure 7] Block diagram shows an example of a system that can be configured to encode and decode video data using one or more of the technologies of this disclosure. [Figure 8] This block diagram shows an example of a video encoder that can be configured to encode video data using one or more of the technologies of this disclosure. [Figure 9] Block diagram showing an example of a video decoder that can be configured to decode video data using one or more of the technologies of this disclosure. [Figure 10] This flowchart shows an example of performing deblocking using one or more of the technologies of this disclosure. [Figure 11] This flowchart shows an example of performing deblocking using one or more of the technologies of this disclosure. [Figure 12] This flowchart shows an example of performing deblocking using one or more of the technologies of this disclosure. [Figure 13] This is an example of a table that can be used to determine deblocking parameters by one or more of the technologies of this disclosure. [Figure 14A] This is a conceptual diagram showing a block of video data including a deblocking boundary, using one or more of the technologies of this disclosure. [Figure 14B] This is a conceptual diagram showing a block of video data including a deblocking boundary, using one or more of the technologies of this disclosure.
[0006] In general, this disclosure describes various techniques for encoding video data. In particular, this disclosure describes This disclosure describes techniques for performing deblocking of the recovered video data. The technology is described in relation to ITU-T H.264, ITU-T H.265, and JEM, but the technology described herein It should be noted that the technique is generally applicable to video encoding. For example, in this specification... The coding techniques described include block structures and intraprediction other than those included in ITU-T H.265. Technologies, interpretation technologies, transformation technologies, filtering technologies, and / or entropy coding. Video coding systems including technology (video coding systems based on future video coding standards) It can be incorporated into (including the 'M'). Therefore, it can be incorporated into ITU-T H.264, ITU-T H.265, and JEM. The references are for illustrative purposes only and are not intended to limit the scope of the technology described herein. It should not be interpreted. Furthermore, the incorporation by reference in this specification is used in this specification. It should be noted that the terms used should not be interpreted in a way that is restrictive or creates ambiguity. For example, a built-in reference is related to another built-in reference and / or its terminology. Whereever [this document] provides a different definition of a term than that used herein, that definition shall be used. To broadly include each of the corresponding definitions, and / or instead include each of the specific definitions. It should be interpreted in that way.
[0007] In one embodiment, the device for video encoding is adjacent to the components of the video data It receives an array of sample values containing the restored video block and deblocks the video block. It modifies the sample values within adjacent restored video blocks according to multiple paths. It has one or more processors configured in such a way.
[0008] In one embodiment, a non-temporary computer-readable storage medium includes instructions stored therein. The instruction, if executed, will send to one or more processors in the device to process the components of the video data. It receives an array of sample values containing adjacent restored video blocks, and then deblocks them. Samples within adjacent restored video blocks, following multiple passes of the King filter. Change the value.
[0009] In one embodiment, the apparatus connects adjacent restored video blocks to components of video data. A means for receiving an array of sample values including the 'k', and multiple deblocking filters. The system includes means for modifying the sample values in adjacent restored video blocks according to the system. ru.
[0010] Details of one or more embodiments are described in the attached drawings and the following specification. Other features The purpose and advantages will be evident from the specification and drawings, as well as from the claims.
[0011] Video content typically includes a video sequence consisting of a series of frames. A series of frames is sometimes also called a group of pictures (GOP). A video frame or picture can contain multiple slices or tiles, Alternatively, a tile may include multiple video blocks. When used herein, video blocks The term "ku" generally refers to the part of a picture, or more specifically, The maximum array of sample values that can be predictively encoded, its subdivision, and / or corresponding It can refer to a structure that is encoded or decoded. Furthermore, the current term video block refers to an encoded or decoded structure. It can refer to the part of the picture that is being encoded predictively. It can be defined as an array of sample values that can be used. In some cases the pixel values , color components (for example, luma component (Y) and chroma component (Cb and Cr), or red, green and blue This description includes sample values for each component of the video data, which may also be referred to as its components. Please note that in some cases the terms pixel value and sample value may be used. Please note that they are used interchangeably. The video block is a scan pattern (e.g., r The pictures can be ordered according to star scanning. The video encoder, Predictive coding can be performed on video blocks and their subdivisions. A block and its subdivisions are sometimes referred to as nodes.
[0012] ITU-T H.264 specifies a macroblock structure containing 16x16 luma samples. In other words, in ITU-T H.264, pictures are divided into macroblocks. In ITU-T H.265, Specify a similar Coding Tree Unit (CTU) structure, which is the maximum code It can also be called a LCU (Large Unit). In ITU-T H.265, a picture is divided into CTUs. In TH.265, for a single picture, the CTU size can be 16x16, 32x32, or 64x64. It can be configured to include a sample. In ITU-T H.265, the CTU can specify video data. The respective signs for each component of the chromium (e.g., luma (Y) and chroma (Cb and Cr)) It consists of Coding Tree Blocks (CTBs). Furthermore, in ITU-T H.265, The CTU can be partitioned according to a quaternary tree (QT) partitioning structure, and as a result, the CTB of the CTU is a code It is divided into coding blocks (CB). In other words, ITU-T H.265 divides the CTU into four parts. It can be divided into tree leaf nodes. According to ITU-T H.265, one luma CB is 2 Together with two corresponding chroma CBs and associated syntax elements, it is called an encoding unit (CU). In ITU-T H.265, the minimum allowable size of a CB can be specified. According to ITU-T H.265, the smallest acceptable size for a Luma CB is an 8x8 Luma sample. The decision to encode the picture portion using intra-prediction or inter-prediction is made at the CU level. It will be held at [location].
[0013] In ITU-T H.265, a CU is associated with a predictive unit (PU) structure that has a root in the CU. In ITU-T H.265, the PU structure is used to generate the corresponding reference sample. This makes it possible to separate the chroma CB and the chroma CB. That is, in ITU-T H.265, the chroma CB and The chroma CB can be divided into its respective chroma and chroma prediction block (PB), and here PB contains a block of sample values to which the same prediction applies. In ITU-T H.265, CB is 1 It can be divided into 2 or 4 PBs. ITU-T H.265 specifies that a 64×64 sample can be divided into 4×4 It supports PB sizes up to the sample size. In ITU-T H.265, a square PB is intrapre Supported for measurement, here CB can form PB, or CB can form four squares It can be divided into PB shapes (i.e., intra-predicted PB size types are M×M or M / 2× Includes M / 2, where M is the height and width of a square CB). ITU-T H.265 specifies a square PB. In addition, rectangular PBs are supported for interpretation, where CBs are bisected vertically or horizontally. The PB can be divided to form a PB (i.e., the interpredicted PB types are M×M, M / 2×M / 2, M (including / 2×M or M×M / 2). Furthermore, ITU-T H.265 specifies four non- Symmetric PB partitioning is supported, where CB is defined by the height (top or bottom) or width (left or right) of CB. It is divided into two PBs by a quarter (i.e., as an asymmetrical division, M / 4 × M left, M / 4 × M right, M Please note that this includes the upper part of ×M / 4 and the lower part of M×M / 4. Intra forecast days corresponding to PB Data (e.g., intra-prediction mode syntax element) or inter-prediction data (e.g., motion Using the data syntax element, reference sample values and / or predicted samples for PB A value is generated.
[0014] JEM specifies a CTU with a maximum luma sample size of 256 × 256. JEM specifies four It defines a quaternary tree + binary tree (QTBT) block structure. In JEM, the QTBT structure is a quaternary tree This allows for further subdivision of the relief node using a binary tree structure (BT). In JEM, a binary tree structure is a quaternary tree where leaf nodes are recursively divided vertically or horizontally. This makes it possible to divide. Figure 1 shows a division into a quartic tree leaf node, and also a quartic tree The leaf nodes are further divided according to the binary tree, CTU (for example, a 256x256 lumasump) An example of a CTU with a size of is shown. That is, in Figure 1, the dashed line represents the size of a quartic tree. This suggests an additional binary tree partition. Therefore, the binary tree structure in JEM is square. It enables both rectangular and shaped leaf nodes, and each leaf node is one This includes the CB. As shown in Figure 1, the picture included in the GOP can contain multiple slices. Each slice contains a series of CTUs, and each CTU can be divided according to the QTBT structure. Figure 1 shows an example of QTBT splitting of one CTU contained in one slice. Therefore, two in JEM The branch tree structure allows for square leaf nodes and rectangular leaf nodes, each A leaf node contains one CB. In JEM, CBs are used for predictions that do not involve any splitting. In other words, 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. That is acceptable.
[0015] The video sampling format, sometimes called the chroma format, is included in CU. The number of chroma samples included in the CU can be defined in relation to the number of luma samples that are produced. For example, for a 4:2:0 format, the sampling rate for the luma component is, The sampling rate for the chroma component is twice that of the horizontal and vertical directions. Results For CU formatted according to the 4:2:0 format, for the luma component The width and height of the sample sequence are the width and height of each sequence of the sample relative to the chromatic component. It is twice the height. Figure 2 shows the code formatted according to the 4:2:0 sample format. This is a conceptual diagram showing an example of a chromatographic unit. Figure 2 shows the chromatographic sample for a chroma sample in the CU. This indicates the relative position of the lu. As mentioned above, CU is typically a horizontal and vertical lu sample. It is defined according to the number of. Therefore, as shown in Figure 2, the 4:2:0 sample format Therefore, the formatted 16x16 CU is a 16x16 sample of the luma component and each of the CUs. Includes an 8x8 sample for the roma component. Furthermore, in the example shown in Figure 2, adjacent to a 16x16 CU The relative positions of chroma samples to luma samples for a given video block are shown. For CU formatted according to the 4:2:2 format, the luma component The width of the sample sequence is twice the width of the sample sequence for each chromatic component. However, the height of the sample sequence relative to the lunar component is the same as the sample relative to each chromatic component. It is equal to the height of the array. Furthermore, for CU formatted according to the 4:4:4 format The sequence of the sample for each luma component is the sequence of the sample for each chromatic component. It has the same width and height as [another character].
[0016] As mentioned above, intra-prediction data or inter-prediction data is a block of sample values Used to generate a reference sample value for the current PB or another type of picture. The sample values included in the substructure and the associated reference samples (e.g., generated using prediction) The difference between the video and the reference sample is sometimes called residual data. It can contain arrays of difference values corresponding to each component of the O data. Residuals The data can be within the pixel area. Discrete cosine transform rm), discrete sine transform (DST), integer transform, wavelet transform Alternatively, a transformation such as a conceptually similar transformation is applied to an array of difference values to generate transformation coefficients. It is possible. In ITU-T H.265, a CU is a translation unit that has a root at the CU level. Please note that this relates to the (TU) structure. That is, ITU-T H.265 generates conversion coefficients. For this purpose, the array of difference values can be subdivided (for example, four 8x8 transformations of residual values) (This can be applied to a 16x16 array). For each component of the video data, this difference value Such subdivisions are sometimes called Transform Blocks (TBs). (ITU-T H.) Note that in 265, it is not necessary to align TB to PB. Figure 3 shows the encoding of a specific CB. Examples of alternative PB and TB combinations that can be used for this purpose are shown. Furthermore, ITU-T H In .265, TB can have the following sizes: 4x4, 8x8, 16x16, and 32x32. Please note that in JEM, further division is performed using the residual value corresponding to CB. A conversion coefficient is generated. In other words, in JEM, the QTBT leaf node is in accordance with ITU-T H.265. It can be similar to both PB and TB. In JEM, core conversion and subsequent two The following transformation can be applied (in the video encoder) to generate transformation coefficients. For Da, the order of transformations is reversed. Furthermore, in JEM, a quadratic transformation is applied to the transformation coefficients. Whether or not it is generated may depend on the prediction mode.
[0017] The conversion coefficients can be quantized according to the quantization process. Quantization is performed to convert them to a specific set of values. The transformation coefficients are approximated by a restricted amplitude. Quantization is necessary to represent the group of transformation coefficients. It may be used to change the amount of data. Quantization is the division of the transformation coefficient by the magnification factor. This is achieved through arithmetic and any related rounding functions (e.g., rounding to the nearest integer). It can generally be described as: Inverse quantization (or dequantization). The term "zation") may include multiplication of coefficient level values by a multiplier. In general, the term quantization process is used to describe the process of generating level values in some cases. This refers to division by a multiplier, or in some cases, multiplication by a multiplier that restores the conversion coefficient. It should be noted that there are cases where the quantization process is, This can refer to quantization, and in some cases, inverse quantization. Locke performs inverse quantization on the level values, performs inverse transform, and connects the set of predicted values. The sample values of the restored block are added to the residuals that result. This may differ from the sample values of the current video block input to the encoding process. Yes. Thus, it can be said that encoding is irreversible. However, sample values It should be noted that the difference can be considered acceptable to the viewer of the restored video. It should be done.
[0018] The quantized transformation coefficients (sometimes called level values) are used in entropy coding techniques. Techniques (for example, content adaptive variable length coding, C AVLC, context adaptive binary arithmetic coding, CABAC) Probability interval partitioning entropy coding Entropy coding can be performed according to methods such as oding and PIPE. Furthermore, prediction modes are shown. Syntax elements such as the syntax element can also be entropically coded. Entropically encoded and quantized conversion coefficients and corresponding entropically encoded syntax The 'x' element is a compliant bitstory that can be used to regenerate video data. It is possible to form a m. The binarization process can be used as part of the entropy coding process. This can be performed on syntax elements. Binarization is performed by taking syntax values and converting them into a series of 1 This refers to the process of converting to more than one bit. These bits are called "bins." There is. Figures 4A and 4B are conceptual diagrams showing an example of encoding blocks of video data. As shown in 4A, the current block of video data (e.g., CB corresponding to the video component) is: Subtract the set of predicted values from the current block of video data to generate residuals, and apply the residuals to the set of predicted values. The encoding is performed by executing the transformation, quantizing the transformation coefficients, and generating level values. As shown in Figure 4B, the current block of video data undergoes inverse quantization on the level values. Then, by performing the inverse transform and adding the set of predicted values to the resulting residuals, In the example shown in Figures 4A and 4B, the sample values of the recovered block are the currently encoded values. It should be noted that this is different from the sample values of the video block. Thus, encoding It can be said that this is irreversible. However, the difference in sample values is the reconstructed video. It can be considered permissible or imperceptible to the observer of O.
[0019] As shown in Figure 4A, the quantized conversion coefficients are encoded into a bitstream. Quantization The converted coefficients and syntax elements (e.g., syntax indicating the encoded structure of a video block) The tax element can be entropically coded according to the entropy coding technique. An example of entropy coding techniques is content adaptive variable-length coding. Variable length coding (CAVLC), context-adaptive binary arithmetic coding (context ada Probability interval partitioning entropy coding (CABAC), Examples include interval partitioning entropy coding (PIPE). The quantized transformation coefficients and the corresponding entropy-encoded syntax elements are given by Vide A suitable bitstream that can be used to play video data with an Odecoder. A system can be formed. The entropy coding process is applied to the syntax elements. This may include performing binarization. Binarization is the process of changing the value of a syntax value into a series of one or more binary values. This refers to the process of converting to bits. These bits are sometimes called "bins." Value conversion is a lossless process and involves the following coding techniques: fixed-length coding, unary coding, and shortened unary coding. Term encoding, shortened Rice encoding, Golomb encoding, k-order index Golomb encoding, and Golomb-Rice encoding This may include one or a combination of the following: For example, binarization is a fixed-length 8-bit process. Using binarization techniques, the integer value of the syntax element 5 can be represented as 00000101, or This may include representing the integer value 5 as 11110 using unary coding binarization techniques. When used in a specification, fixed-length coding, unary coding, shortened unary coding, shortened Rice coding The terms Golomb coding, k-th exponential Golomb coding, and Golomb-Rice coding are each... , general implementation forms of these technologies and / or more specific implementation forms of these coding technologies It can refer to a state or configuration. For example, the implementation configuration of Golomb-Rice coding is a video coding standard, e.g. For example, it can be specifically defined according to ITU-T H.265: Entropy coding process This further includes encoding the bin values using a lossless data compression algorithm. CAB A In the C example, for a specific bin, the context model is the available code associated with the bin. You can choose from a set of text models. In some examples, context The model can be selected based on the values of the previous bin and / or previous syntax element. The context model can identify the probability that a bin has a particular value. For example, the context model encodes a bin with a value of 0 with a probability of 0.7, and a bin with a value of 1. We can show a probability of 0.3 that encodes it. In some cases, encoding a bin with a value of 0 It should be noted that the sum of the probabilities of encoding a single bin and the probability of encoding a single bin may not equal 1. After selecting an available context model, the CAB AC entropy encoder will... Based on the identified context model, the bins can be arithmetically encoded. The text model can be updated based on the encoded bin values. The model stores related variables along with the context, for example, adaptive window settings. It can be updated based on the number of bins encoded using the context. According to ITU-T H.265, some syntax elements are explicitly assigned to contexts Entropy coding can be performed using arithmetic coding without the use of a T model. A CABAC entropy encoder can be implemented, and such encoding is bypass encoding. Please note that it is sometimes referred to as [this].
[0020] As mentioned above, intra-predictive data or inter-predictive data is a picture (for example, P The portion B or CB can be associated with the corresponding reference sample. Intra Prediction Code For this purpose, the intra prediction mode allows you to specify the location of the reference sample within the picture. Yes, it is possible. In ITU-T H.265, the defined possible intra-predictive modes are planar (i.e., (Surface fitting) Prediction mode (predMode:0), DC (i.e., flat overall averaging) Prediction mode ( Includes predMode:1) and 33 angular prediction modes (predMode:2-34). In JEM, the defined possible intra-prediction mode is the planar prediction mode (predMode:0). This includes DC prediction mode (predMode:1) and 65-angle prediction mode (predMode:2-66). Plane and D The C prediction mode is sometimes called the non-directional prediction mode, while the angle prediction mode is directional. It should be noted that this is sometimes referred to as a predictive mode. The techniques described herein are defined as follows: It should be noted that this may be generally applicable regardless of the number of possible prediction modes. sea bream.
[0021] For interpredictive coding, motion vectors (MVs) are used to encode video blocks. Identify reference samples within pictures other than the picture itself, thereby reducing the temporal redundancy of the video. It utilizes the property. For example, the current video block is a previously encoded frame (singular or The motion vector can be predicted from the reference blocks (one or more) located within (multiple) The 'L' can be used to indicate the position of a reference block. Motion vectors and associated The data includes, for example, the horizontal component of the motion vector, the vertical component of the motion vector, and the motion vector itself. Resolution for (e.g., 1 / 4 pixel precision, 1 / 2 pixel precision, 1 pixel precision, 2) Describe the pixel precision (four-pixel precision), prediction direction, and / or the index value of the reference picture. It is possible. Furthermore, coding standards such as ITU-T H.265, for example, predict motion vectors. It can support this. Motion vector prediction uses the motion vectors of adjacent blocks. This allows specifying motion vectors. An example of motion vector prediction is advanced Advanced motion vector prediction (AMVP), time motion vector prediction ( Temporal motion vector prediction (TMVP), also known as "combined" mode, and "skipping" Examples include "P" and "Direct" motion prediction. Furthermore, JEM uses advanced motion vector prediction (ad (AMVP) Spatial-temporal motion vector prediction Motion Vector Prediction (STMVP), Frame Rate Upconversion (FRUC) technology The Pattern Matching Motion Vector Derivation (PMMVD) mode is a special merge mode based on this, and Supports affine transform motion compensation prediction technology.
[0022] As mentioned above, quantization can be achieved by dividing the transformation coefficient by the multiplier. Furthermore, to change the amount of data required to represent a group of conversion coefficients, This is possible. In other words, increasing the magnification (or degree of quantization) allows you to express the group of coefficients. The amount of data required decreases. In ITU-T H.265, the degree of quantization is determined by the quantization parameters. This can be determined by QP. In ITU-T H.265, for 8 bits, QP can take 52 values from 0 to 51, and a change of 1 in QP generally corresponds to approximately 12%. This corresponds to the change in the quantization multiplier value. More generally, in ITU-T H.265, the source bit Please note that the effective range of QP values for length is as follows: -6 * (bitdepth-8)~+51(i (Inclusive). Therefore, for example, if the bit length is 10 bits, QP will be 64 values from -12 to 51. It takes a value that can be mapped to a value between 0 and 63 during dequantization. In ITU-T H.265, 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 degree of quantization increases (for example, transformation) The amount of distortion can increase as the coefficient is divided by a larger multiplier value (for example, when restored Please note that the resulting video data may appear more "blocky."
[0023] In some cases, block distortion affects the encoded block boundaries of the restored video data. It can be made visually perceptible to the user. To reduce block distortion, it is restored. By changing the sample values, the distortion introduced by the video encoding process is minimized. This is acceptable. Such changes are sometimes commonly referred to as filtering. The ring is used in the in-loop filtering process or the post-loop filtering process. Please note that this may occur as part of the in-loop filtering process. The sample values obtained as a result of the filtering process are used for the predicted video block. (For example, subsequent encoding in a video encoder and subsequent encoding in a video decoder) (Stored in the reference framebuffer for decoding). Post-loop filtering In the process, the sample values obtained as a result of the filtering process are simply decoded. Output as part of the set (for example, not used for subsequent encoding). For example, in In the case of a filtering process, the result of filtering the restored blocks is The resulting sample values are used for subsequent decoding (for example, stored in a reference buffer), For example, it is output to the display. In the case of a post-loop filtering process, The recovered blocks are used for subsequent decryption, and the recovered blocks are used for further processing. The sample values obtained as a result of filtering are output.
[0024] The following arithmetic operators may be used with respect to the expressions used herein. + Addition - Subtraction * Multiplication including matrix multiplication / Integer division with the result truncated to zero. For example, 7 / 4 and -7 / -4 are truncated to 1. -7 / 4 and 7 / -4 are rounded down to -1.
number
[0025] Furthermore, the following mathematical functions can be used.
number
number
[0026] Furthermore, the following definitions of logical operators may also apply. x&&y: Boolean "product" of x and y The Boolean "union" of x||yx and y. ! Boolean logic: "No" If x?y:zx is true or not equal to 0, evaluate the value of y, otherwise evaluate the value of z. Evaluate the value.
[0027] Furthermore, the following relational operators may also be applied. > greater than >= greater than or equal to < Less than <= Less than or equal to == equal != Not equal
[0028] Furthermore, the following bitwise operators may be applied. This is an arithmetic right shift of the two's complement integer representation of x using x>>yy binary digits. This function is y Defined only for non-negative integer values. The result of a right shift is a shift to the most significant bit (MSB). The set 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. When used in this specification, video blocks P and Q are blocks to which deblocking may be applied.
[0029] Deblocking (or de-blocking), deblock filtering, performing deblocking, or applying a deblock filter refers to a process of smoothing the video block boundaries of adjacent restored video blocks (i.e., making the boundaries less perceptible to an observer). Smoothing the boundaries of adjacent restored video blocks can include changing the sample values included in the rows or columns adjacent to the boundary. ITU-T H.265 provides for a deblock filter to be applied to the restored sample values as part of the in-loop filtering process. ITU-T H.265 includes two types of deblock 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 changes 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 having boundaries. Used to refer to adjacent video blocks that share a boundary. The sample value has been changed. The method can be based on a defined filter, where pi and qi are within the column relative to the vertical boundary. Represents the corresponding sample value and the sample value within the row relative to the horizontal boundary, where pi' and qi' are, Represents the changed sample values. The defined filter is changed (or filtered). The sample (to be modified) and the sample used to determine how the sample will be modified. A simple can be defined. For example, as shown in Figure 5A, in one embodiment, the deblock Each of the first three columns adjacent to the King boundary (referred to as the filtered sample) The sample values in this case are the first four columns adjacent to the deblocking boundary (support samples). (To be noted) These may be modified based on the sample values included in each of them.
[0031] As mentioned above, ITU-T H.265 can be used to modify the luma sample. It includes two types of filters, namely a strong filter and a weak filter. Luma sample values Simplified definitions of the strong and weak filter expressions for modification are provided below. The definition is simplified in that it does not include the clipping operations provided in ITU-T H.265. (That is, in ITU-T H.265, the filtered values are the values listed below.) (Clipping based on C) but see Section 8 of ITU-T H.265 for a complete definition. Refer to 7.2.5.7. Strong filter
number
number
number
[0032] Furthermore, ITU-T H.265 is one type that can be used to modify chromatic samples. This includes filters, i.e., regular filters. A regular filter for changing chroma sample values. A simplified definition of Ruta's formula is provided below. Standard Filter
number
[0033] Deblocking can be performed based on the deblocking granularity. ITU-T H .265 provides an 8x8 deblocking granularity. That is, in ITU-T H.265, pictures For that section, each edge located on the 8x8 grid determines whether a boundary exists. It is evaluated in order to make a determination. Furthermore, ITU-T H.265 specifies the boundary strength for each boundary. The (boundary strength) (Bs) is determined. In ITU-T H.265, Bs can be 0, 1, as follows: It is determined to be one of the two options. If P and Q are two adjacent coding blocks, the filter strength Bs is as follows: It is defined. If one of the blocks (P or Q) has an intra-predictive mode, then Bs=2; Otherwise, P and Q belong to different TBs, and P or Q is at least one non-zero transformer If there is a number, Bs=1, Otherwise, if the reference pictures of P and Q are not equal, Bs=1, Otherwise, if the difference between the x or y motion vector components of P and Q is 1 integer sample or more, then Bs = 1, otherwise, Bs = 0.
[0034] In ITU-T H.265, variables t' and β' are determined based on the QP (which may be referred to as QP_P and QP_Q) used to encode the CB containing video blocks P and Q. FIG. 6 provides a table for determining t' and β'. In ITU-T H.265, index Q is determined as follows. For luma, P for β': C FIG. 6 C [[ID=第十八条]] C as follows. For luma, for β':
Equation
Equation
[0035] In ITU-T H.265, variables β and Q are derived as follows.
Equation
[0036] ITU-T H.265 defines a variable d, which is determined based on the lumen sample value as follows: It can be done.
number
[0037] Furthermore, in ITU-T H.265, the variable dpq is set to a value based on the values of d and β. Finally, In ITU-T H.265, Bs, tC, β, and d are used to determine which filter type is appropriate. Determine whether to use it (for example, a strong filter or a weak filter). Furthermore, ITU-T H.265 states For the chroma component, the filter is usually applied only when Bs is equal to 2. In ITU-T H.265, deblocking is performed using intra-predictive mode on one block P. Alternatively, this is performed on the chroma component only if Q is generated.
[0038] Deblocking filters are generally described according to a set of filter parameters. It should be noted that this may be useful. For example, the sample values contained in a row or column For {a...b}, the corresponding deblocked sample values, y[n], are based on the following formula. It may be specified accordingly.
number
[0039] Furthermore, ITU-T H.265 stipulates that the deblocking filter must coincide with the slice and tile boundaries. Compared to non-CTU boundaries, CTU boundaries that coincide with slice and tile boundaries are adapted in a different way. It may be used. Specifically, ITU-T H.265 states that the data present in the slice segment header Specify the lag, namely slice_loop_filter_across_slices_enabled_flag, which is the top Deblocking filters that exceed the CTU boundary, which coincides with the slice boundary and the left slice boundary. Enable / disable. ITU-T H.265 specifies slice_loop_filter_across_slices_enabled_flag The following definition is provided for this: A slice_loop_filter_across_slices_enabled_flag equal to 1 means that the in-loop filter Specify that the slicing operation can be performed beyond the left and top boundaries of the current slice. If slice_loop_filter_across_slices_enabled_flag is equal to 0, then the in-loop operation is currently Specifies that execution will not extend beyond the left and top boundaries of the current slice. The filtering operation includes a deblocking filter and a sample-adaptive offset filter. Hmm. If slice_loop_filter_across_slices_enabled_flag does not exist, pps_loop_filte It is presumed to be equivalent to r_across_slices_enabled_flag.
[0040] Here, pps_loop_filter_across_slices_enabled_flag is the picture parameter set. (PPS) exists within the ITU-T H.265, and the pps_loop_filter_across_slices_enabled_flag is If you provide the following definitions, pps_loop_filter_across_slices_enabled_flag equal to 1 means that the in-loop filter ring The operation can be performed across the left and upper boundaries of the slice that references the PPS. If pps_loop_filter_across_slices_enabled_flag is specified and equal to 0, then in-loop filter The taring operation is not performed beyond the left and top boundaries of the slice that references the PPS. Specify that the in-loop filtering operation involves deblocking filters and samples. Includes adaptive offset filter operation.
[0041] Note - Loop filtering that crosses slice boundaries is Loop filtering across tile boundaries can be enabled while it is disabled. And the reverse is also true. Similarly, the flag loop_filter_across_tiles_enabled_flag, which exists within PPS, Enables / disables deblocking filters that cross CTU boundaries that coincide with ITU boundaries. TH.265 provides the following definition for loop_filter_across_tiles_enabled_flag If loop_filter_across_tiles_enabled_flag is equal to 1, the in-loop filtering operation However, it specifies that it can be executed across tile boundaries within a picture that references a PPS. Equivalent to 0. The `loop_filter_across_tiles_enabled_flag` flag enables in-loop filtering operations, PPS Specifies that it will not run across tile boundaries within the referenced picture. Filtering operations include deblocking filters and sample-adaptive offset filter operations. This includes loop_filter_across_tiles_enabled_flag if it does not exist. The value of s_tiles_enabled_flag is presumed to be equal to 1.
[0042] As mentioned above, for deblocking, index Q is slice_beta_offset_div 2. Determined based on 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. The following definitions apply: slice_beta_offset_div2 and slice_tc_offset_div2 are β and β relative to the current slice. t C Specify the deblocking parameter offset (divided by 2). slice_beta_offs The values of et_div2 and slice_tc_offset_div2 are both within the range of -6 to 6, including the values at both ends. 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, respectively, pps_beta_offset_div2 and It is presumed to be equal to pps_tc_offset_div2.
[0043] pps_beta_offset_div2 and pps_tc_offset_div2 are present in PPS, and ITU-T H.265 is, pps If the following definitions are provided for _beta_offset_div2 and pps_tc_offset_div2, The default deblocking parameter offset is the slice that references the PPS. Unless overridden by the deblocking parameter offset present in the IS header pps_beta_offset_div2 and pps_tc_offset_div2 are suitable for slices that reference PPS. β and t are used. C The default deblocking parameter for (the value divided by 2) Specify the offset. The values for both pps_beta_offset_div2 and pps_tc_offset_div2 are... The values should be in the range of -6 to 6, including the endpoints. pps_beta_offset_div2 and pps_tc_offset_d If iv2 does not exist, 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 an 8x8 deblocking particle size. In JEM, Specified by the variable minCUWidth for horizontal boundaries and the variable minCUHeight for vertical boundaries. Deblocking is performed according to the grid, and the default values for minCUWidth and minCUHeight are set. The t value is 4. The value of d is also determined in JEM, and the calculation of d is based on the calculation in ITU-T H.265. They are the same. Based on the value of d above, determine whether to perform deblocking on the boundary. This is performed. That is, if d < β, the deblocking filter is used because of the current boundary. It is used for this purpose, and otherwise, deblocking is not performed on the boundary. Furthermore, in JEM, The decision of whether to use a strong or weak filter is made according to ITU-T H.265. It is identical to the one in [location]. Finally, JEM reference software has strong deblocking function. The Luma filter coefficients for Ruta are identical to those used in ITU-T H.265. Ideally, deblocking should be carried out as is done in H.265 and JEM. There are cases where this is not possible. Specifically, in the case of deblowing as performed in ITU-T H.265 and JEM When King performs deblocking, he checks the various encodings of the recovered video data. Failure to consider raturates and characteristics.
[0045] Figure 7 shows how to encode (encode and / or) video data using one or more of the technologies of this disclosure. This block diagram shows an example of a system that can be configured to decrypt. M100 can encapsulate video data in accordance with one or more of the technologies of this disclosure. This illustrates an example of a system. As shown in Figure 7, system 100 consists of a source device 102 and a communication medium. It includes body 110 and target device 120. In the example shown in Figure 7, source device 102 is video It is configured to encode data and transmit the encoded video data to a communication medium 110. It may include any device. The target device 120 encodes via the communication medium 110. A device configured to receive encoded video data and decode the encoded video data, The source device 102 and / or the target device 120 may include wired and / or may include a computing device equipped for wireless communication, and for example, set Top-top boxes, digital video recorders, televisions, desktops, laptops, and This includes tablet computers, game consoles, medical imaging devices, and, for example, smartphones. Mobile devices including phones, cellular phones, and personal gaming devices may can.
[0046] The communication medium 110 is any combination of wireless and wired communication media and / or storage devices. It may include a coaxial cable, an optical fiber cable, and a twin Straight pair cable, wireless transmitter and receiver, router, switch, repeater, base station, or Any other devices that may be useful to facilitate communication between various devices and sites Examples can be given. The communication medium 110 may include one or more networks. For example, communication medium 110 provides access to the World Wide Web, for instance, the Internet. It may include a network configured to enable one or more It can operate according to the above combination of telecommunications protocols. The term may include a dedicated configuration and / or a standardized telecommunications protocol. It is possible. An example of a standardized telecommunications protocol is Digital Video Broadband. ASting (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 Partnership Project (3GPP) standards, European Telecommunications Standards of the European Telecommunications Standards Institute (ETSI), Internet Protocol (IP) standard, Wireless Application Protocol The Wireless Application Protocol (WAP) standard, and the Institute of Electrical and One example is the Electronics Engineers (IEEE) standard.
[0047] A storage device is any type of device or storage medium that can store data. It may include. The storage medium may include tangible or non-temporary computer-readable media. It can. Computer-readable media include optical discs, flash memory, and magnetic memory. Or any other suitable digital storage medium can be mentioned. In some examples, memo Redevices or parts thereof may be described as non-volatile memory, and in other examples, A portion of memory devices is sometimes described as volatile memory. Examples of volatile memory Examples include random access memory (RAM) and dynamic random access memory. Dynamic random access memory (DRAM), and static random access memory. Examples of non-volatile memory include static random access memory (SRAM). Examples of non-volatile memory include magnetic hard disks, optical disks, floppy disks, flash memory, or electrically programmable memory (EPROM) or electrically erasable and programmable memory (EEPROM). Examples of storage device(s) include memory cards (e.g., Secure Digital (SD) memory cards), built-in / external hard disk drives, and / or built-in / external solid state drives. Data can be stored on a storage device according to a defined file format. Referring back to FIG. 7, source device 102 includes video source 104, video encoder 106, data encapsulation device 107, and interface 108. Video source 104 can include any device configured to capture and / or store video data. For example, video source 104 can include a video camera and an associated storage device. Video encoder 106 can include any device configured to receive video data and generate a compliant bitstream representing the video data. The compliant bitstream may refer to a bitstream that a video decoder can receive and from which it can reproduce video data.
[0048] Referring back to FIG. 7, source device 102 includes video source 104, video encoder 106, data encapsulation device 107, and interface 108. Video source 104 can include any device configured to capture and / or store video data. For example, video source 104 can include a video camera and an associated storage device. Video encoder 106 can include any device configured to receive video data and generate a compliant bitstream representing the video data. The compliant bitstream may refer to a bitstream that a video decoder can receive and from which it can reproduce video data. The compliant bitstream may refer to a bitstream that a video decoder can receive and from which it can reproduce video data. The compliant bitstream may refer to a bitstream that a video decoder can receive and from which it can reproduce video data.[[ID=The form of the bit stream can be defined according to the video coding standard. When generating a compliant bit stream, the video encoder 106 can compress the video data. The compression can be irreversible (recognizable or unrecognizable to the viewer) or reversible.
[0049] FIG. 8 is a block diagram showing an example of a video encoder 200 that can implement the techniques for encoding video data described herein. The example video encoder 200 is shown as having separate functional blocks, but such an illustration is for the purpose of explanation and it should be noted that it does not limit the video encoder 200 and / or its subcomponents to a particular hardware or software architecture. The functions of the video encoder 200 can be realized using any combination of hardware, firmware, and / or software implementations. In one example, the video encoder 200 can be configured to encode video data according to the techniques described herein. The video encoder 200 may perform intra-prediction coding and inter-prediction coding of picture parts and may thus be referred to as a hybrid video encoder in some cases. In the example shown in FIG. 8, the video encoder 200 receives source video blocks. In some examples, the source video blocks can include parts of pictures that are divided according to an encoding structure. For example, the source video data can include macroblocks, CTUs, CUs, their subdivisions, and / or other equivalent encoding units. In some examples So, the video encoder is configured to perform additional subdivision of the source video block. This is possible. The techniques described herein involve the source before and / or during encoding. Generally applicable to video encoding, regardless of how video data is divided. Please note that in the example shown in Figure 9, the video encoder 200 is connected to the adder 202, A conversion coefficient generator 204, a coefficient quantization unit 206, an inverse quantization / conversion processing unit 208, and an adder 210. , intra prediction processing unit 212, inter prediction processing unit 214, filter unit 216, entropy The encoding unit 218 and the video encoder 200 are included. As shown in Figure 8, the video encoder 200 is a source video Receives an oblock and outputs a bitstream.
[0050] In the example shown in Figure 8, the video encoder 200 predicts the video block from the source video block. By subtracting the buck, residual data can be generated. Adder 202 performs this subtraction. This represents a component configured to perform an arithmetic operation. In one embodiment, the reduction of a video block The calculation is performed in the pixel region. The conversion coefficient generator 204 performs discrete cosine transform (DCT), discrete cosine transform. Apply transformations such as the DST transformation, or conceptually similar transformations, to the residual block or its subdivision. (For example, four 8x8 transformations can be applied to a 16x16 array of residual values), and the residual transformation Generates a set of conversion coefficients. The conversion coefficient generator 204 is included in the family of discrete triangular transformations. It can be configured to perform any and all combinations of the transformations. The number generator 204 can output conversion coefficients to the coefficient quantization unit 206.
[0051] The coefficient quantization unit 206 can be configured to perform quantization of the transformation coefficients. As shown above, the degree of quantization can be determined by the quantization parameter. The coefficient can be changed by adjusting the rate. The coefficient quantization unit 206 determines the quantization value. Then, in order to restore the quantization parameters and perform dequantization during video decoding, The device can be further configured to output QP data that can be used by the instrument. For example, QP data transmitted by a signal may include QP delta values. (ITU-T H.265) So, the degree of quantization applied to the set of transformation coefficients is the slice level parameter, previous Parameters inherited from the coding unit, and / or optionally notified CU level data It may depend on the Ruta value.
[0052] As shown in Figure 8, the quantized conversion coefficients are output to the inverse quantization / conversion processing unit 208. The inverse quantization / conversion processing unit 208 applies inverse quantization and / or inverse conversion to the recovered residual data. It can be configured to generate. As shown in Figure 8, in the adder 210, the restored The residual data can be added to the predicted video block. In this way, the encoded data The video block can be restored, and the resulting restored video block Using a given prediction, transformation type, and / or level of quantization, a given quality is obtained. The encoding quality can be evaluated in relation to this. The video encoder 200 has multiple encoding paths Execute (for example, perform coding while changing one or more coding parameters) ) can be configured to perform bitstream rate distortion or other similar effects. The stem parameters can be optimized based on the evaluation of the restored video blocks. Furthermore, the restored video blocks can be stored and used as references for predicting subsequent blocks.
[0053] As described above, video blocks can be encoded using intra prediction. The intra prediction processing unit 212 can be configured to select an intra prediction mode for the video block to be encoded. The intra prediction processing unit 212 can be configured to evaluate a frame and / or a portion thereof and determine an intra prediction mode to be used for encoding the current block. As shown in FIG. 8, the intra prediction processing unit 212 outputs intra prediction data (e.g., syntax elements) to the filter unit 216 and the entropy encoder 218.
[0054] The inter prediction processing unit 214 can be configured to perform inter prediction encoding on the current video block. The inter prediction processing unit 214 can be configured to receive a source video block and calculate a motion vector for a PU of the video block or the like. The motion vector can indicate the displacement of a PU of a video block in the current video frame with respect to a predicted block in a reference frame. Inter prediction encoding can use more than one reference picture. Furthermore, motion prediction can be single prediction (using one motion vector) or dual prediction (using two motion vectors). The inter prediction processing unit 214, for example, calculates the sum of absolute differences (SAD), the sum of squared differences (s The pixel difference is calculated using the um of square difference (SSD) or other methods of measuring the difference. By doing so, it can be configured to select prediction blocks. Motion vector and Related data include, for example, the horizontal component of the motion vector, the vertical component of the motion vector, and the motion. Resolution for the vector (e.g., 1 / 4 pixel precision), prediction direction, and / or reference pixel. The index value of the character can be described. Furthermore, codes such as ITU-T H.265 can be used. The standard can support motion vector prediction. Motion vector prediction is adjacent to It becomes possible to specify motion vectors using the motion vectors of blocks. An example of Torre prediction is advanced motion vector prediction (AM). VP), Temporal Motion Vector Prediction (TMVP), also known as "Conclusion Examples include the "match" mode, as well as "skip" and "direct" motion prediction. The measurement processing unit 214 performs motion vector prediction according to one or more of the techniques described above. It can be configured as follows. The interpretation processing unit 214 uses motion prediction data to perform prediction blocks It can be configured to generate a frame. For example, the interpretation processing unit 214 can generate a frame. Predictive video blocks can be placed within a buffer (not shown in Figure 8). - The prediction processing unit 214 applies one or more interpolation filters to the restored residual blocks to determine the movement It can be further configured to calculate pixel values less than an integer for use in prediction. Please note the following. The interpretation processing unit 214 performs motion prediction on the calculated motion vector. The data can be output to the filter unit 216 and the entropy encoding unit 218.
[0055] As mentioned above, deblocking smooths the boundaries of the restored video blocks. This refers to the process. As shown in Figure 8, the filter unit 216 filters the restored video block and the code. Receive the parameters (e.g., intra-prediction data, inter-prediction data, and QP data). The modified and restored video data is output. The filter unit 216 performs deblocking and / or perform Sample Adaptive Offset (SAO) filtering. It can be configured to do so. SAO filtering applies to the recovered video data. Nonlinear amplitude multiplication can be used to improve restoration by adding a fluting. This is a rapping. As shown in Figure 8, the intra prediction processing unit 212 and the inter prediction processing unit 214 The modified and restored video block can be received via the filter unit 216. Please note that in some cases, deblocking is in loop. This can be done, that is, the predicted video block stored in the reference buffer is file Retaring is possible. In some cases, deblocking is done in the post-loop. That is, for example, after the video data has been restored and before it is output to the display. , it can be done. The techniques described herein include in-loop deblocking, postal - Deblocking and / or a combination thereof may be applicable.
[0056] As mentioned above, deblocking is implemented as is done in ITU-T H.265 and JEM. In some cases, this may not be ideal. In one embodiment, according to the technique of this specification, The filter section 216 includes the block size on each side (one or both) of the boundary, the strength of the boundary, and each side of the boundary Prediction mode used by the block, prediction mode of the deblocked sample (For example, intra, inter, skip) (For example, for a boundary close to a reference sample, Using a weaker filter, the QP values of the deblocked samples, and the deblocked samples Block size corresponding to the sample, corresponding to the sample used for deblocking. The block size, the movement vector relative to the blocks on each side of the deblocked boundary. Tor, motion vector relative to the deblocked sample, and / or deblocking Based on one or more of the motion vectors for the samples used for the rhythm It may be configured to select different filtering lines (in some cases, The number of deblocked samples on each side of the boundary may differ.
[0057] The samples on each side of the block boundary (perpendicular to the boundary edge) can be represented as follows: ...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 starts from 0 and is positive. When it is an integer, sample q x This represents the Q side of the boundary.
[0058] In one embodiment, side P represents a sample outside the current CU, and side Q represents a sample inside the current CU. It represents a simple.
[0059] In one embodiment, side P represents a sample inside the current CU, and side Q represents a sample outside the current CU. It represents a simple.
[0060] In one embodiment, side P represents a sample outside the current block, and side Q represents the current block This represents a sample from inside the 'k'.
[0061] In one embodiment, side P represents a sample inside the current block, and side Q represents the current block This represents an external sample of 'Ku'.
[0062] Referring to Figure 5A, sample p y>x and q y>x When deblocking a vertical edge, Corresponds to R[x].
[0063] Referring to Figure 5B, sample p y>x and q y>x When deblocking a horizontal edge, Corresponds to R[y].
[0064] A wider (more samples are deblocked) and stronger signal towards the P side of the boundary. One example of such a filter is called the WS00P P-side filter, and is as follows:
number
[0065] A wider (more samples are deblocked) and stronger response to the Q side of the boundary. One example of such a filter is called the WS00Q Q-side filter, and is as follows:
number
[0066] A narrow (i.e., fewer samples are deblocked) and strong boundary on the P side. The filter is, HEVC_P is called the P-side filter.
number
[0067] A narrow (i.e., fewer samples are deblocked) and strong boundary on the Q side. The filter is, HEVC_Q is referred to as the Q-side filter.
number
[0068] A narrow (fewer samples are deblocked) and strong fill on the P side of the boundary. One example is the NS00P P-side filter, which is as follows:
number
[0069] A narrow (fewer samples are deblocked) and strong fill on the Q side of the boundary. One example is the NS00Q Q-side filter, which is as follows:
number
[0070] A narrow (fewer samples are deblocked) and strong fill on the P side of the boundary. One example is the NS00P P-side filter, which is as follows:
number
[0071] A narrow (fewer samples are deblocked) and strong fill on the Q side of the boundary. One example is the NS00Q Q-side filter, which is as follows:
number
[0072] A narrow (fewer samples are deblocked) and strong fill on the P side of the boundary. One example is the NS00P P-side filter, which is as follows:
number
[0073] A narrow (fewer samples are deblocked) and strong fill on the Q side of the boundary. One example is the NS00Q Q-side filter, which is as follows:
number
[0074] A narrow (fewer samples are deblocked) weak fill on the P side of the boundary. One example is the NW00P P-side filter, which is as follows:
number
[0075] A narrow (fewer samples are deblocked) weak fill on the Q side of the boundary. One example is the NW00Q Q-side filter, which is as follows:
number
[0076] An example of a filter applied to the P side of a boundary is called the F0P P-side filter, and is as follows:
number
[0077] An example of a filter applied to the Q side of a boundary is called the F0Q Q-side filter, and is as follows:
number
[0078] An example of a filter applied to the P-side of a boundary is called an F1P P-side filter, and is as follows:
number
[0079] An example of a filter applied to the Q side of a boundary is called an F1Q Q-side filter, and is as follows:
number
[0080] In one embodiment, the distance from the boundary of the deblocked sample is the maximum tap value. The distance between the assigned support sample and the deblocked sample. It can be inversely proportional to the distance from the deblocked sample to the second maximum tap value. The separation can be proportional to the distance of the sample from the boundary. The filters F2P and F2Q described below are: This provides an exemplary implementation of such filtering. One of the filters applied to the P side of the boundary. An example is called an F2P P-side filter, and it is as follows:
number
[0081] An example of a filter applied to the Q side of a boundary is called an F2Q Q-side filter, and is as follows:
number
[0082] An example of a filter applied to the P-side of a boundary is called the F4P P-side filter, and is as follows:
number
[0083] An example of a filter applied to the Q side of a boundary is called the F4Q Q-side filter, and is as follows:
number
[0084] In one embodiment, according to the art of this specification, gradient calculation is performed by selecting filter parameters, In other words, it is used to select the number of samples to deblock on one (or both) sides of the block boundary. Alternatively, the gradient may be calculated using samples within line R[x].
[0085] In one embodiment, multiple gradients are calculated using samples within line R[x], and these The gradient depends on the selection of filter parameters, i.e., on one (or both) sides of the block boundary. Used to select the number of samples to lock. In another example, the samples in line R[x] You may use this to calculate multiple gradients, and perform operations such as the average gradient, maximum gradient, and minimum gradient. Filter parameters, samples deblocked on one (or both) sides of the block boundary. It can be used to select numbers.
[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: ru.
number
[0089] In one embodiment, the function call xCalDQqLargeBlock(R[x]) calculates the gradient as follows: ru.
number
[0090] In one embodiment, the function call xCalDQpLargeBlock(R[x]) calculates the gradient as follows: ru.
number
[0091] In one embodiment, the function call xCalDQqLargeBlock(R[x]) calculates the gradient as follows: ru.
number
[0092] In one embodiment, the function call xCalDQpLargeBlock(R[x]) calculates the gradient as follows: ru.
number
[0093] In one embodiment, the function call xCalDQqLargeBlock(R[x]) calculates the gradient as follows: ru.
number
[0094] In one embodiment, the function call xCalDQpLargeBlock(R[x]) calculates the gradient as follows: ru.
number
[0095] In one embodiment, the function call xCalDQqLargeBlock(R[x]) calculates the gradient as follows: ru.
number
[0096] In one embodiment, the function call xCalDQpLargeBlock(R[x]) calculates the gradient as follows: ru.
number
[0097] In one embodiment, the function call xCalDQqLargeBlock(R[x]) calculates the gradient as follows: ru.
number
[0098] In one embodiment, the function call xCalDQpLargeBlock(R[x]) calculates the gradient as follows: ru.
number
[0099] In one embodiment, the function call xCalDQqLargeBlock(R[x]) calculates the gradient as follows: ru.
number
[0100] In one embodiment, a subset of quadratic differences calculated using p1, p2, ..., p6 is used to perform XCalDQpLa We can also calculate rgeBlock(R[x]), where p n The quadratic difference in is abs(p n-1 -2 * p n +p n+1 ) Similarly, using a subset of the quadratic differences calculated in q1, q2, ..., q6, xCa lDQqLargeBlock(R[x]) may be calculated. In one embodiment, the function call xCalDQpLargeBloc The rounding offset 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 a Boolean variable calculated as follows, and the determined bSidePisLargeBl An example of k,bSideQisLargeBlk is shown below. [Table 1] In the formula, β and t C This is the threshold.
[0101] In one embodiment, the function call xUseStrongFilteringLargeBlock(R[x],d,bSidePisLargeBl k, bSideQisLargeBlk) is calculated as a Boolean variable as follows: [Table 2]
[0102] In one embodiment, the function call xUseStrongFilteringLargeBlock(R[x],d,bSidePisLargeBl k, bSideQisLargeBlk) is calculated as a Boolean variable as follows: [Table 3]
[0103] In one embodiment, the function call xUseStrongFilteringLargeBlock(R[x],d,bSidePisLargeBl k, bSideQisLargeBlk) is calculated as a Boolean variable as follows: [Table 4]
[0104] In one embodiment, rounding offset in the function call xUseStrongFilteringLargeBlock You may cancel it.
[0105] In one embodiment, the number of samples to be deblocked on one (or both) sides of the boundary is selected. The conditions used are perpendicular to the block boundary, exceeding a threshold (current block and / or Corresponds to the size of adjacent blocks. In some cases, it is based on the block size. And, if a subset of the block's transformation coefficients is set to zero, the threshold used for comparison is It may also be based on the characteristics of a subset of zero coefficients. For example, column positions 32 or more, and 32 or more. For the coefficient of the row position (the index for rows and columns starts from 0), the conversion coefficient is ZE When set to 'L', the size in the direction perpendicular to the block boundary is compared to the threshold of 32. .
[0106] In one embodiment, it is shown whether all conversion coefficients are zero for a block of the sample. The signal may be received as a bitstream. Such a signal may, for example, contain each color component. For groups of color components, for some spatial divisions of the sample, Sun It may be received for several spatiotemporal divisions of the pull. In HEVC, for each color component, the code The marker block flags (CBFs), i.e., cbf_luma, cbf_cb, cbf_cr, are (explicitly or explicitly) If no such signal exists, it is implicitly notified by the use of inference rules, and furthermore, transform A flag indicating whether any of the color components in the tree contained a non-zero conversion coefficient is also included. (Explicitly and implicitly) notified, the residual quartic tree root CBF, i.e., rqt_root_cbf It is called that.
[0107] In one embodiment, the number of samples deblocked on one (or both) sides of the boundary is: The type of edge being cut (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 Whether all transformation coefficients are zero for the sample on one (or both) sides of the boundary Blocks can be codes such as local illumination compensation (LIC) that can be obtained based on a linear model of illuminance changes. Whether to use transformation mode, the block of samples on one (or both) sides of the boundary (line Whether to use inter-component predictions (which can be based on the shape model), and the boundary on one (or both) sides. Whether the sample block uses the prediction determined for blocks smaller than the transformation. Alternatively, a block of samples on one (or both) sides of the boundary may be a larger block (e.g., CU) It is divided into subblocks (for example, subCUs), and motion information is derived into these subblocks. It may also be based on whether or not to use the technology.
[0108] In one embodiment, according to the art herein, the current block is perpendicular to the block boundary. If the number of samples exceeds a threshold (e.g., 32), then more samples (e.g., For example, 7) is deblocked, and the current block dimensions perpendicular to the block boundary are the threshold (for example) If less than 32, then fewer samples (e.g., 3) are debroven on each side of the block boundary. It will be blocked. For example, if the current block width >= 32 and the edge type is vertical If (the current block height is >= 32 and the edge type is horizontal), then, Deblock a larger number of samples on each side of the block boundary.
[0109] In one embodiment, According to the technology described in the specification, the dimensions of a block perpendicular to the block boundary are greater than or equal to a threshold (e.g., 32). In this case, more samples (e.g., 7) are deblocked on each side of the block boundary. If the dimensions of a block perpendicular to the block boundary are less than a threshold (e.g., 32), then the block boundary On each side, fewer samples (e.g., 3) are deblocked. For example, if ((1 (Block width >= 32 and edge type is vertical), or (Block height >= 3 2. AND the edge type is horizontal)) then, in that block at the block boundary In contrast, a larger number of samples are deblocked. Here, the left side of the vertical boundary edge is blocked. If the block has a 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 A larger number of samples may be deblocked on the left side than on the right side.
[0110] In one embodiment, according to the technology of this specification, the filter section 216 is deblocked The sample, distance from the boundary (in number of samples), block size on each side of the boundary, boundary strength, Prediction mode used by the blocks on each side of the boundary, deblocked samples Prediction mode (for example, using a weaker filter for boundaries close to the reference sample), Dev The QP of locked samples (for example, use a stronger filter for larger QPs) (For use), block size corresponding to the deblocked sample (for example, larger block) (Using a stronger filter relative to the block size), Sunglasses used for deblocking The block size corresponding to the pull, and the movement of blocks on each side of the deblocked boundary. If the vector (for example, if the MV difference is greater than the threshold, no deblocking should be performed) Yes. The reason is that samples on different sides of the boundary may belong to different objects. (from), and / or motion vector for a deblocked sample, deblock Based on one or more of the motion vectors for the sample used for locking. The filter parameters used for deblocking (e.g., including the number of coefficients) It may be configured to select. The block size corresponding to the sample is the size 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 TU to which the sample belongs Please note that the PU block size may be included.
[0111] In one embodiment, according to the art of this specification, the filter section 216 is deblocked Edge type (e.g., vertical block edge, horizontal block edge), channel type (e.g.) For example, luma, chroma), all of the samples on one (or both) sides of the boundary Whether the conversion coefficient is zero, the sample block on one (or both) sides of the boundary is illuminated. Use of coding modes such as Local Illuminance Compensation (LIC) based on a linear model of degree change Whether or not, the block of samples on one (or both) sides of the boundary (based on a linear model) Whether to use intercomponent prediction (which may disappear), blocking of samples on one (or both) sides of the boundary Whether to use the prediction determined for blocks smaller than the transformation, one boundary One (or both) side of the sample block is a large block (e.g., CU) and the subblock is a large block. This technique involves dividing the system into sub-CUs (for example, sub-CUs) and deriving motion information into these sub-blocks. A filter used for deblocking based on one or more of the following: whether or not The system may be configured to allow selection of parameters (e.g., the number of coefficients).
[0112] In one embodiment, according to the art of this specification, the filter section 216 is deblocked Edge type (e.g., vertical block edge, horizontal block edge), channel type (e.g.) For example, luma, chroma), all of the samples on one (or both) sides of the boundary Whether the conversion coefficient is zero, the sample block on one (or both) sides of the boundary is illuminated. Use of coding modes such as Local Illuminance Compensation (LIC) based on a linear model of degree change Whether or not, the block of samples on one (or both) sides of the boundary (based on a linear model) Whether to use intercomponent prediction (which may disappear), blocking of samples on one (or both) sides of the boundary Whether to use the prediction determined for blocks smaller than the transformation, one boundary One (or both) side of the sample block is a large block (e.g., CU) and the subblock is a large block. This technique involves dividing the system into sub-CUs (for example, sub-CUs) and deriving motion information into these sub-blocks. A filter used for deblocking based on one or more of the following: whether or not The system may be configured to allow selection of parameters (e.g., the number of coefficients).
[0113] In one example, selecting filter parameters results in a broader and stronger filter. This may include selecting a option.
[0114] In one embodiment, according to the art of this specification, the filter section 216 is perpendicular to the block boundary. If the size of the existing block is greater than or equal to a threshold (e.g., 32), deblock on both sides. Configure to select a set of filter parameters (e.g., stronger filtering). It is also possible. For example, if ((the current block width >= 32 and the edge type is vertical) ), or (current block height >= 32 AND edge type is horizontal), then, For each side of the lock boundary, a wider and stronger filtering is selected.
[0115] In one embodiment, according to the art of this specification, the filter section 216 is positioned on each side of the block boundary. The filter parameters are applied to the corresponding side, with respect to the block size perpendicular to the block boundary. It may be configured to be selected independently based on the values. For example, the block boundary on one side. If the size of a block perpendicular to the boundary is greater than or equal to a threshold (e.g., 32), then the size of the block on that side is greater than or equal to a threshold. Select a set of locking filter parameters (e.g., broader and stronger filtering). You can choose. For example, if ((the width of one block >= 32 and the edge type is (It is vertical), or (The height of one block is >= 32, and the edge type is horizontal), Therefore, a wider and stronger filter is applied to the side of the block boundary corresponding to that block. A ring is selected.
[0116] In one embodiment, according to the art of this specification, a block on one (or both) sides of the boundary (for example) If, then, based on whether all transformation coefficients are zero for CU, the subCU boundary is debro. It may be checked. For example, if all conversion coefficients for CU are zero, the subCU boundary Deblock the world.
[0117] In one embodiment, according to the art of this specification, for a block on one (or both) sides of a boundary Based on whether all conversion coefficients are zero, the subblock boundary is deblocked. This is also possible. For example, if all conversion coefficients for a block are zero, then the subblock Deblock the boundary.
[0118] In one embodiment, according to the art of this specification, a block on one (or both) sides of the boundary (for example) For example, all conversion coefficients are zero for CU, and the quantization step size is large (e.g.) For example, a subCU boundary may be deblocked based on whether QP is above a threshold. For example, if all conversion coefficients for CU are zero and QP is greater than the threshold, Deblock the subCU boundary.
[0119] In one embodiment, according to the art of this specification, for a block on one (or both) sides of a boundary Either all conversion coefficients are zero, or the quantization step size is large (for example, QP is threshold). A subblock boundary may be deblocked based on whether it is greater than or equal to a certain value. If all conversion coefficients for the block are zero and QP is greater than the threshold, Deblock the subblock boundary.
[0120] In one embodiment, according to the art herein, local illumination compensation (LIC) is applied to one (or both) of the boundaries. Used for the block on the side, and all conversion coefficients for that block are zero. In such cases, the block boundary may be deblocked.
[0121] In one embodiment, according to the art herein, all four boundaries of the block (i.e., left, right) (Upper, Lower) Local illumination compensation (LIC) is used for the block, and for that block If all corresponding transformation coefficients are zero, the block boundary may be deblocked.
[0122] In one embodiment, according to the art herein, local illumination compensation (LIC) is applied to one (or both) of the boundaries. Used for the block on the side, where all conversion coefficients for that block are zero, When the quantization step size is large (for example, QP is greater than or equal to the threshold), the block boundary is Deblock is used.
[0123] In one embodiment, according to the art of this specification, all four boundaries of the block (i.e., left, (Right, top, bottom) Local illumination compensation (LIC) is used for the block, and for that block All conversion coefficients are zero, and the quantization step size is large (for example, QP is greater than the threshold). If the above is true, the block boundary may be deblocked.
[0124] In one embodiment, according to the technique herein, the intercomponent prediction is on one (or both) sides of the boundary. When used for a lock, and all conversion coefficients for that block are zero. The block boundary may be deblocked.
[0125] In one embodiment, according to the technique herein, the intercomponent prediction is on one (or both) sides of the boundary. Used for locks, where all conversion coefficients for that block are zero, and quantization is If the step size is large (for example, if QP is above the threshold), the block boundary will deblock It may be done.
[0126] In one embodiment, according to the art of this specification, the filter unit 216 comprises a plurality of filtering panels It may be configured to perform deblocking according to the filter The ring path can handle processing / constructing all / a subset of the deblocked samples. The number of processes / constructions for each sample in a given path can correspond to the path index / order. The subset of samples to be deblocked may correspond to the path index / order. In the embodiment, every pass processes / constructs all samples that are deblocked exactly once. It can be adapted to construction. In one embodiment of such a case, deblocked from previous iterations Use the sample (and undeblocked sample) to deblock for the current iteration. A sample can be constructed using the previously and Deblocked samples (and unblocked samples) from the current iteration It can be used to build a deblocked sample. In this case, the deblocked An ordering may be specified for constructing the samples. In one embodiment, the number of iterations , slice type, block size, skip flag for the current CU and its adjacent CUs, current Prediction mode (Intra\inter) for the current CU and adjacent CUs, and the sample position to be deblocked. , whether d < β, and / or the strong or weak filter judgment provided in the above JEM Fixed conditions, distance from the boundary of the deblocked sample (in terms of the number of samples), and each side of the boundary. The block size, boundary strength, and prediction mode used by the blocks on each side of the boundary. Prediction mode for deblocked samples, QP for deblocked samples, deb Sample block size corresponding to locked samples, for deblocking The block size corresponding to the sample being used, and each side of the deblocked boundary. Motion vector relative to the block, motion vector relative to the deblocked sample, and / or motion vectors for the sample used for deblocking, one of the The number of iterations may be determined based on one or more filter parameters. The meter can be determined.
[0127] In one embodiment, N-path deblocking with predetermined deblocking support is performed as follows: It can be expressed as follows. [Table 5]
[0128] In the formula, f_pos() is a linear transformation of the following form:
number
number
number
number
[0129] In one embodiment, according to the art of this specification, the filter section 216 comprises a filter line and corresponding It can be configured to extend the filter coefficient. In one embodiment, the filtered The simple line can be extended up to 8 on one side. In one embodiment, line 0 and line Regarding n1, the filter coefficients may also be {1,1,1,1,1,2,2,2,1,1,1,1,1} / 16, For line 2 and line 3, the filter coefficient may be {1,1,1,1,1,1,1,1} / 8, and other The filter coefficients for the line may also 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 during the deblocking process. Note that it is always used for taring. In one embodiment, the technique described herein According to the information, the filter unit 216 is a deblocking filter for filtering out other sample values. It may be configured to use the modified sample values obtained as a result of the process. In the example, the modified sample values are used when filtering other sample values. It may be used in this way. In one embodiment, the filtering order may be specified. In this example, the filter order is deblobed from the line furthest from the boundary to the line closest to it. You may implement the King strategy.
[0131] As mentioned above, deblocked samples typically exist within a certain range of values. It is clipped in this way. The range of values is the original sample value and received in the bitstream. It may also be based on other parameters that have been trusted. In one example, the range of values is [original sample The value is -t_c, original sample value +t_c. In one embodiment, according to the art herein, fill Section 216 is a sample in the last one or more rounds of multi-pass deblocking. Value, QP value, slice type, current prediction mode (Intra / Inter), current skip flag value Intra prediction mode for deblocked samples, motion of deblocked samples Cutter, sample position (for example, different samples may use different clipping functions) , CU position (for example, different CUs may use different clipping functions), and / or the above The clipping function is configured to adjust based on one or more of the other conditions. It may be done.
[0132] In one embodiment, according to the art of this specification, the filter section 216 is based on the block size It 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 greater than the threshold. For example, when performing a filtering technique... The decision of whether or not to do so may be made as follows: (1) Each set of 4 × 4 samples Check each side of the boundary (i.e., the minimum CU size is a 4x4 luma sample). (2) If any one set of 4x4 samples is greater than the 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, according to the art of this specification, the filter section 216 is a slice type, block Whether the CU shape is rectangular, if the block shape is square, the current CU and its neighbors Skip flag for the CU, prediction mode (Intra\inter) for the current CU and its adjacent CUs, The fill described herein based on one or more of the blocked sample locations. It may be configured to perform taring techniques.
[0133] In one embodiment, according to the art herein, the filter section 216 provides a wider - stronger lumuff Filtering may be configured to perform as follows: First, determine whether the P side will use a large block as follows: [Table 6] Next, we determine whether Q will use a large block as follows: [Table 7] Next, we derive the following variables.
number
[0134] If Condition1, Condition2, and bSidePisLargeBlk are true, then wider - stronger The filter is applied to the P side of the boundary (e.g., WS00P).
[0135] If Condition1, Condition2, and bSideQisLargeBlk are true, then wider - stronger 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, according to the art of this specification, the filter unit 216 performs chroma filtering. It may be configured to execute as follows: (p0 belongs to a CU whose edge type is vertical and width >= 32) || (If the edge type is horizontal (Yes, p0 belongs to a CU whose height >= 32) && (edge type is vertical and width >= 32) q0 belongs to CU)||(q0 belongs to CU whose edge type is horizontal and height >= 32), and In that case, a narrow, strong filter (for example, NS00P and NS00Q) can be used, and other In some cases, a narrow, weak filter (e.g., NW00P and NW00Q) can be used.
[0138] In one embodiment, according to the art of this specification, the filter unit 216 performs chroma filtering. It may be configured to execute as follows: (p0 belongs to a CU with width >= 32) || (p0 belongs to a CU with height >= 32) && (if width >= 32 If q0 belongs to a CU (where height >= 32), then a narrow strong filter ( For example, NS00P and NS00Q can be used, otherwise a narrow, weak fill You can use the following (for example, NW00P and NW00Q).
[0139] In one embodiment, according to the art of this specification, the filter section 216 is provided in the exemplary flow shown in Figure 10. It may be configured to perform deblock filtering according to the chart. In this example, the filter unit 216 filters the luma sample according to the flowchart shown in Figure 10. It may be configured to perform deblock filtering. Figure 10 shows the current block For example, for one of the P block or Q block, the type of deblocking, In other words, a broader range of filters: stronger filter, strong filter, weak filter, and no filter. This shows an example where one of them may be applied. In one example, a broader and stronger filter is applied. This may include applying the WS00P and WS00Q filters described above. In one embodiment, Applying filters may include applying the HEVC_P and HEVC_Q filters mentioned above. In one embodiment, applying a weak filter is the HEVC mentioned above as the weak filter. This may include applying a weak filter in . As shown in Figure 10, at 402, Whether the block condition is true, whether the block gradient condition is true at 404, and at 406 The strong filter condition is true at large blocks, or the gradient condition is true at 410. Based on whether the strong filter condition is true in 414, a wider filter is applied in 408. A filter is applied, no filter is applied at 412, and a strong filter is applied at 416. A weak filter is then applied at 418.
[0140] In one embodiment, the larger block condition may include whether the following is true: [Table 10] During the ceremony, EDGE_VER is a vertical boundary type, EDGE_HOR is a horizontal boundary type, cur_block_width is, for example, the current block width in the Luma sample. cur_block_height is, for example, the current block height in the Luma sample. `adjacent_block_width` is, for example, the width of adjacent blocks in a Luma sample. adjacent_block_height is, for example, the height of adjacent blocks in a Luma sample. ru.
[0141] In one embodiment, the large block gradient condition includes whether the above-described Condition1 is true. It is possible. In one embodiment, the large block strong filter condition is the same as the exemplary Condition 2 described above. This could include whether one of them is true or not.
[0142] In one embodiment, the gradient condition may include whether d < β, where d is as follows: It was decided to be sea urchin.
number
[0143] In one embodiment, a strong filter condition may include whether the following is true: [Table 11] In one embodiment, according to the art of this specification, the filter section 216 is provided in the exemplary flow shown in Figure 11. It may be configured to perform deblock filtering according to the chart. In this example, the filter unit 216 processes the chroma sample according to the flowchart shown in Figure 11. It may be configured to perform deblock filtering. Figure 11 shows the current block Regarding blocks (for example, P block or Q block), the type of deblocking, i.e., This shows an example where one of two filters, either stronger or weaker, may be applied. In the example, applying a broader and stronger filter is equivalent to applying the NS00P and NS00Q filters mentioned above. This may include applying a weak filter as described above for NW00P and N This may include applying a W00Q filter. As shown in Figure 11, a large block at 502 Based on whether the condition is true, a broader and stronger filter is applied in 504. Therefore, a weak filter is applied in 506.
[0144] In one embodiment, the larger block condition may include whether the following is true: [Table 12] During the ceremony, EDGE_VER is a vertical boundary type, EDGE_HOR is a horizontal boundary type, and cur_block_widt h is, for example, the current block width in the chroma sample, and cur_block_height is, for example For example, the current block height in the chroma sample, and adjacent_block_width is, for example The adjacent block width in a chroma sample is, for example, the adjacent block height. This is the adjacent block height in the Roma sample.
[0145] In one embodiment, the filter unit 216 blocks either P or Q based on the following set of conditions. Even if configured to perform deblocking filtering for chroma samples of the block good. [Table 13]
[0146] [Table 14]
[0147] During the ceremony, EDGE_VER is a vertical boundary type, EDGE_HOR is a horizontal boundary type, cur_Q_block_width is, for example, the current Q-block width in the chroma sample. cur_Q_block_height is, for example, the current Q-block height in the chroma sample. , cur_P_block_width is, for example, the current P-block width in the chroma sample. cur_P_block_height is, for example, the current P-block height in the chroma sample. , TH_w is the width threshold (e.g., 32 samples), TH_h is the height threshold (e.g., 32 samples).
[0148] The thresholds (e.g., TH_w and / or TH_h) are, in some embodiments, default values (e.g., 16 or 32) may include, and in some embodiments, may be notified by the parameter set, In some embodiments, notification may be given in the slice header, and in some implementations Note that in the example, the CTU size could also be the size of the current portion of the video.
[0149] Referring to Figure 11, in one embodiment, the large block condition is replaced with a luma filter condition. It may be done. That is, for example, if a strong filter is applied to the luma block In 504, a broader and stronger filter may be applied to the collated chromatic block. Otherwise, in 506, a weak filter is applied to the collated chromatic block. It's okay.
[0150] In one embodiment, according to the art of this specification, the filter section 216 is provided in the exemplary flow shown in Figure 12. It may be configured to perform deblock filtering according to the chart. In this example, the filter unit 216 processes the chroma sample according to the flowchart shown in Figure 12. It may be configured to perform deblock filtering. Figure 12 shows the current block Regarding blocks (for example, P block or Q block), the type of deblocking, i.e., This shows an example where one of two filters, either stronger or weaker, may be applied. In the example, applying a broader and stronger filter is equivalent to applying the NS00P and NSOOQ filters mentioned above. This may include applying a weak filter as described above for NW00P and N This may include applying a W00Q filter. As shown in Figure 12, a large block at 602 Whether the condition is true, and whether the strong filter condition for large blocks is true in 604 Based on whether or not, a broader and stronger filter is applied in 608, and in 606 A weak filter is applied.
[0151] In one embodiment, the larger block condition may include whether the following is true: [Table 15] During the ceremony, EDGE_VER is a vertical boundary type, EDGE_HOR is a horizontal boundary type, cur_block_width is, for example, the current block width in the chroma sample. cur_block_height is, for example, the current block height in the chroma sample. `adjacent_block_width` is, for example, the width of adjacent blocks in a chroma sample. , adjacent_block_height is, for example, the height of adjacent blocks in a chroma sample. be. TH_w is the width threshold (e.g., 32 samples), TH_h is the height threshold (e.g., 32 samples).
[0152] The thresholds (e.g., TH_w and / or TH_h) are, in some embodiments, default values (e.g., 16 or 32). ) may include, and in some embodiments, may be notified by the parameter set, and several In some embodiments, this may be notified in the slice header, and in some embodiments... Please note that the CTU size may also be the current portion of the video. In the example, the threshold is greater than 4.
[0153] In one embodiment, a broader and stronger filter condition is when both the first and second conditions are true. It may also include whether or not. That is, if both the first and second conditions are true, A strong filter condition can be true. In one embodiment, the first condition is true when d < β. However, d is determined as follows.
number
[0154] In one embodiment, Rc[0] and Rc[1] are as follows:
number
[0155] In one embodiment, for Rc[0],
number
[0156] In one embodiment, the edge is deblocked as a segment, and the segment length is CU / TU / Note that this may be the smallest function size allowed for PU / subPU. Furthermore, 2x If N and Nx2 CU are the shortest and thinnest blocks allowed within the chroma channel, then chroma The segment length may be 2.
[0157] According to the chroma filtering described above, two lines perpendicular to the deblocked edge are However, please note that it will be processed as a basic segment. In one embodiment, there are four lines. These may be processed as basic segments. In one embodiment, four lines are basic segments. When treated as a to, the first condition may be true when d < β, and d is as follows: It was decided to be sea urchin.
number
[0158] Furthermore, in one embodiment, when four lines are processed as basic segments, Rc[0] and Regarding Rc[3] ((abs(p3-p0)+abs(q3-q0)<(β>3)) && (d<(β>>2)) && (abs(q0-p0)<((tC * 5+1)>>1 ))) If the first condition is true, then the second condition may also be true.
[0159] As mentioned above, ITU-T H.265 specifies that the deblocking filter is used for slicing and tiling. Compared to CTU boundaries that do not coincide with the boundary, CTU boundaries that coincide with the slice and tile boundaries are different. It may be applied in the following way. Specifically, ITU-T H.265 uses slice_loop_filter_across _slices_enabled_flag is enabled when crossing a CTU boundary that coincides with the upper slice boundary and left slice boundary. Enable / disable the deblocking filter. In one embodiment, the technology described herein If so, the deblocking filter's supported samples will be bounded by the boundary (e.g., picture / slice / If it exceeds the tile, a deblocking filter using support samples is permitted. There may be cases where this does not apply. In one embodiment, according to the art described herein, the deblocking filter Port samples cross boundaries (e.g., picture / slice / tile), and boundaries (e.g., slice) If the use of sample values exceeding the chair is disabled, padding operations can be used to support Sample values may be generated. For example, to generate support samples, numerical samples may be generated. You may use one of the following: color, circular, duplicate, or symmetric padding, and a numerical scalar. - Padding operations pad according to a constant value, while circular padding operations pad according to a sample value. Padding is done by repeating the shape, and the duplication padding operation is done by repeating the edge sample values. Re-padding is performed, and the symmetrical padding operation pads using the 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 It is applied. Specifically, for the strong filters in ITU-T H.265 mentioned above, p i 'The value is (p i -2 * t C ,p i +2 * t C ) is clipped to q i 'The value is (q i -2 * t C ,q i +2 * t C ) Clipping It is done. As mentioned above, in ITU-T H.265, the variable t C '(Therefore, t C The value of qPL It is determined based on the index Q which is determined based on (QP q +QP P Equivalent to (+1) / 2 In some cases of video encoding (for example, encoding high dynamic range (HDR) video) In the proposed technology for this purpose, the QP value may be varied at the CU level or the CTU level. In this case, the clipping operation provided in ITU-T H.265 is based on index Q. The range may be insufficient. In one embodiment, according to the technique herein, the P-side sample and For the Q side sample, t has different values C ' may be determined. That is, P side t C 'Value, sand Wachi t CP ', and the corresponding P-side t C The value, i.e., t Cp Using ', p i 'Value, and Q-side t C 'value, That is to t CQ , may be clipped, and the corresponding Q side t C The value, i.e., t CQ Using , q i 'The value may be clipped. In one embodiment, the corresponding P-side index Q, that is, ChiQ p , and the Q-side index Q, i.e., Q q In the above Q-index formula, qP L of QP P and QP q This may be determined by substituting the corresponding value. Therefore, this specification According to the technique of calligraphy, p i 'The value is (p i -2 * t CP ,p i +2 * t CP ) may be clipped, qi ’value is (q i -2 * t CQ , q i +2 * t CQ ) may be clipped. p i ’value and q i ’value may include filtered values generated according to any filter described in this specification. Note this. Therefore, the corresponding t and t CP and t CQ Based on, p i ’value and q i ’value to clip The technology may be applicable to any filter described in this specification.
[0161] In some cases, a video block (e.g., CU) may include an internal TU boundary, and note that block distortion may appear within the video block. In some cases, when the video block has a size larger than 64, the deblocking of the internal TU boundary may be disabled. In one embodiment, according to the technology of this specification, even when the video block has a size larger than 64 the deblocking may be performed along the video block boundary and also along any internal TU boundary.
[0162] Referring to FIGS. 5A to 5B, in some cases, a P block or a Q block may include a plurality of objects. For example, referring to FIG. 5A, in one embodiment, columns p7 to p3 may correspond to a first object, columns p2 to p0 may correspond to a second object, and columns q 0 to q7 may correspond to a third object. In such a case, the samples of columns p2 to p0 Filter using p3 and one or more columns of q0~q3 as supporting samples. When ringed, the resulting filtered sample values in columns p2 to p0 appear blurred. In some cases, deblocking can lead to an obscuration of the dominant sample values. This may result in clarification and / or the introduction of other visual distortions.
[0163] As mentioned above, y[ has the corresponding deblocked sample value and supporting sample. n] can be specified based on the following formula:
number
[0164] In one embodiment, according to the techniques of this specification, filtered samples and support Avoid blurring or distortion caused by separate objects included in the sample. Therefore, one or more clipping operations may be applied to the term x[n+m]. In one embodiment, the term x[n +m] is Clip3(x[n]-2 * t C ,x[n]+2 * t C It can also be replaced with x[n+m]).
[0165] In one embodiment, if abs(x[n+m]-x[n]) is greater than the 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. In the case where (i.e., coeff[m] = 1 / filter length, and the filter length is (abs(a-b+1))), coe Note that ff[m] is calculated as 1 / (filter length - excluded samples). Coeff[m] When this corresponds to a Gaussian distribution (i.e.,
number
[0166] In one embodiment, different filters may be applied to different sample positions relative to the boundary. For example, samples close to the boundary may be filtered using a strong filter. Samples far from the boundary may be filtered using a weaker filter. For example, The samples in columns p0 to p1 may be filtered according to a strong filter, and the samples in columns p2 to p4 The sample may be filtered according to a weak filter. In one embodiment, chroma Regarding deblocking (or lumadeblocking), the current sample and the closest to the boundary If the distance between the sample and the corresponding location is less than the threshold, a strong filter will be applied. A threshold (e.g., 2, 3, 4) may be used. In one embodiment, the threshold is set on each side of the boundary (one side). Block size (or both), boundary strength, and the amount used by the blocks on each side of the boundary. Measurement mode, prediction mode for deblocked samples, deblocked samples QP, block size corresponding to the deblocked sample, used for deblocking. The block size corresponding to the sample being deblocked, and the blocks on each side of the deblocked boundary. Motion vector relative to the block, motion vector relative to the deblocked sample, and / or, motion vectors for the samples used for deblocking, It may be based on one or more of the following.
[0167] In some cases of video coding, the luminance transformation coefficients corresponding to CU (e.g., quantum) (After transformation) may be 0, and the CU is divided into sub-PUs for motion compensation (e.g., ATMVP) It should also be noted that this is also a good thing. In such cases, according to the technology of this specification, luminance dev Locking is performed along the sub-PU boundary, and further, in some embodiments, along the CU boundary. It's okay.
[0168] In some cases of video coding, the chrominance transformation coefficients (e.g., quantities) corresponding to the CU are (After sub-partitioning) may be 0, and the CU is divided into sub-PUs for motion compensation (e.g., ATMVP). It should be noted that this may also be the case. In such cases, according to the technique of this specification, chrominance Deblocking is performed along the sub-PU boundary, and further, in some embodiments, along the CU boundary. It may be done.
[0169] As mentioned above, in ITU-T H.265, for luma, Bs, t C , β, and d respectively Use this to determine which filter type to apply (e.g., strong filter or weak filter). This is determined. In particular, if d is less than β, 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. Therefore, the following is decided. [Table 16]
[0170] In one embodiment, according to the art of this specification, dStrong may be determined as follows:
number
[0171] If (Cur_EDGE_VER && cur_block_width==4), then the vertical boundary of the current block. Parallel deblocking will not be performed; If (Cur_EDGE_VER && adjacent_block_width==4), then the adjacent block Parallel deblocking of vertical boundaries is not performed; If (Cur_EDGE_HOR && cur_block_height==4), then the horizontal boundary of the current block. Parallel deblocking of the field will not be performed; If (Cur_EDGE_HOR && adjacent_block_width==4), then the adjacent block Parallel deblocking of horizontal boundaries is not performed. During the ceremony, Cur_EDGE_VER is the current vertical boundary, Cur_EDGE_HOR is the current horizontal boundary, and cur_bl ock_width is, for example, the current block width in the Luma sample, and cur_block_height is For example, in Luma Sample, the current block height is, and adjacent_block_width is, for example The adjacent block width in the sample, and adjacent_block_height is, for example, This is the height of adjacent blocks in the sample.
[0172] In one embodiment, according to the art of this specification, for each of the above conditions, the boundary Deblocking can be performed on the sample as follows: If (Cur_EDGE_VER && cur_block_width==4 && adjacent_block_width>4), then For Cur_EDGE_VER, deblocking is performed only on adjacent block samples. ; If (Cur_EDGE_VER && cur_block_width==4 && adjacent_block_width==4), Therefore, do not perform deblocking on Cur_EDGE_VER; If (Cur_EDGE_VER && cur_block_width>4 && adjacent_block_width==4), then Then, 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 Then, for Cur_EDGE_VER, the current block sample and adjacent block samples are used. Perform blocking; If (Cur_EDGE_HOR && cur_block_height==4 && adjacent_block_height>4), Therefore, deblocking should be performed only on adjacent block samples for Cur_EDGE_HOR. ru; If (Cur_EDGE_HOR && cur_block_height==4 && adjacent_block_height==4), Therefore, do not perform deblocking on Cur_EDGE_HOR; If (Cur_EDGE_HOR && cur_block_height==4 && adjacent_block_height==4), Therefore, 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), Then, for Cur_EDGE_HOR, the current block sample and adjacent block samples Perform deblocking.
[0173] Similarly to the above, for chromatic deblocking, use cur_block_height, adjacent Each of the blocks _block_height, cur_block_width, and adjacent_block_width is a threshold. When the value is equal to 2, parallel deblocking may be restricted. Therefore, this specification According to the book's technique, for chroma samples, threshold 4 in the conditional statement is replaced with threshold 2. Deblocking may be performed in the location where it is possible, as described above.
[0174] In one embodiment, according to the art herein, the edge of a block having a size below a threshold Instead of performing deblocking on the samples at the edges, a narrower filter is applied to the samples at the edges. Ruta may be applied. For example, (Cur_EDGE_VER && cur_block_width==4 && adjac If ent_block_width > 4), then deblocking can be performed as follows: For Cur_EDGE_VER, deblocking is performed on adjacent block samples according to the filter width. Execute the process and select a column of one adjacent sample in Cur_EDGE_VER for the current block. Perform deblocking above.
[0175] Similarly, for each of the above cases, a narrower fill for the sample at the edge. The method may be applied. Therefore, generally speaking, according to the technology described herein, video encoding The (and / or video decoder) uses, for example, overlapping deblocking filters (e.g., When parallel development occurs due to the filter width being greater than half the width (or height) of the block. Determine if the locking is restricted, and if not, deblock the sample that will be deblocked. It may be configured to change. In some cases, for deblocking support. It should be noted that parallel deblocking may be limited based on the samples used. i. According to the technology of this specification, a video encoder (and / or video decoder) is a multiple Blocking is used for deblocking support against deblocking filters. The sample within the code is configured to determine when parallel deblocking is restricted. That's good too.
[0176] As mentioned above, for the F4P P-side filter, one of the calculations includes the following:
number
[0177] The q side has a size of 8, and a strong HEVC filter is used on the edge opposite to the current edge. Therefore, samples q5 and q6 are modified by a strong HEVC deblocking operation on the opposite side. Please note that this is possible. Parallel processing occurs at mutually parallel deblocking edges. It is not possible. In one embodiment, in order to prevent this, the length of the q side (perpendicular to the edge) is 16 Only in the above conditions should the p-side use a longer filter (i.e., a stronger filter). This condition (for example, the LargeBlk condition) is checked using one of the following methods. . [Table 17] or [Table 18] If both block sizes have the same length, then both must be 32 or greater. Please note that wider filters are only used on the side with a length of 32 or more.
[0178] In one embodiment, according to the art herein, a set of deblocking filters is provided. Near operation may be used. In one embodiment, block boundary sample p i and q i is i=0 to S-1 Therefore, it can be replaced by linear interpolation as follows.
number
[0179] In one embodiment, f i Middle s,t , P s , g i , and Q t Even if it is decided that it will be provided in Table 1 good. [Table 19]
[0180] Regarding Table 1, for 7,5;7,3;5,3;5,7; and 3,7, the pi and q in Middle are as follows: i The weight of is Note that they are not the same, but are derived from 7,7 by adding an additional term.
[0181] In one embodiment, according to the art herein, a set of deblocking filters is any If the other side is 32 or greater, bilinear operation may be used.
[0182] In one embodiment, according to this technology, if either side is 32 or more, bilinear debro The hacking may be performed as provided in Table 2. [Table 20]
[0183] In one embodiment, according to this technology, if either side is 32 or more, bilinear debro The hacking may be performed as provided in Table 3. [Table 21]
[0184] In one embodiment, according to this technology, if either side is 32 or more, bilinear debro The cking may be performed as provided in Table 4. [Table 22]
[0185] In one embodiment, according to this technology, if either side is 32 or more, bilinear debro The cking may be performed as provided in Table 5. [Table 23]
[0186] In one embodiment, according to this technology, if either side is 32 or more, bilinear debro The cking may be performed as provided in Table 6. [Table 24]
[0187] In one embodiment, according to this technology, if either side is 32 or more, bilinear debro The cking may be performed as provided in Table 7. [Table 25]
[0188] In one embodiment, according to the art herein, a set of deblocking filters is any If the other side is 16 or greater, bilinear operation 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 column (s,t) of a row whose P-side length is not equal to the side length is (3,3), (5,5), Filtering (3,3) may be used. In one embodiment, a deblocking filter is used. Whether the filter uses bilinear operation depends on whether the strong filter condition is true. You may also add additional conditions. For example, any of the strong filter conditions mentioned above could be listed. In one embodiment, a set of deblocking filters may use bilinear operation. The following additional conditions may be added to the question: The variables dpq0, dpq3, dp, dq, and d are derived as follows:
number
number
[0189] In some embodiments, the following should be noted: Control parameters for luma and chromat. The meter values (e.g., β, tC, etc.) are not the same and use different sets of syntax elements. This may be notified; the control parameter value for chroma is derived from the control parameter value for luma. May be released; deblocking is consistent with 8x8 (luma) and 4x4 (chroma) boundaries subPU Deblocking of the edges of the current block may be performed using a linear model (LM). ) May be based on the use of chroma; current block edge deblocking may be done in separate minutes It may also be based on the use of a split tree; deblocking the edges of the current block is pulsed It may be based on the use of code modulation (PCM); and / or the deblowing of the edges of the current block King may also base his approach on the use of a conversion quantization bypass mode. Note that PCM is sample Note that this is a lossless coding mode for the block. In one embodiment of PCM coding, The sample is represented directly with the default number of bits. The bit length used for PCM is determined by the parameter. Notification may be given in the set.
[0190] Regarding the deblocking of current block edges based on the use of LM Chroma, and / Alternatively, the deblocking of the current block's edges may be based on the use of separate partition trees. Often, in one embodiment, LM chroma is used in the chroma block, and / or luma and When separate trees are used for chromas, and / or when the received conversion coefficient is zero In some cases, deblocking may be performed on the edge of the current block. In one embodiment, For separate trees, deblocking is done using a chroma grid that matches a 4x4 chroma grid. It is executed only on the main edge (e.g., TU edge, PU edge, sub-PU edge, CU edge). That's good too.
[0191] In one embodiment, when the large blocking condition is not true and the strong filtering condition is true, NS00P and NS00Q are used to deblock edges.
[0192] In one embodiment, when the large blocking condition is not true and the strong filtering condition is true, The (s,t)=3,3 filter is used to deblock edges.
[0193] Note that in some cases, the deblocking boundary may include the horizontal CTU boundary. For example, referring to Figure 5B, in some cases, sample py,x is sample qy, may be included in a CTU that is on the same CTU as qy,x. Encode the top line within the current CTU. A typical video coder implementation would have N rows of samples on the bottom line of the CTU on the current CTU. It remembers. For example, where the deblocking boundary in Figure 5B is the CTU boundary, the video code The CTU lineback stores the value px,0 for performing intra predictive coding on line qx,0. The 'fa' is a sample value stored on the current CTU, used to encode the current CTU. This refers to the number of lines included in the CTU line buffer. The memory cost of implementing this increases. In some cases, the data corresponding to the sample values Please note that the following will also be stored (for example, prediction mode (and related information, e.g., in Tiger prediction mode, bi-pred / uni-pred, motion vector, reference index, etc.), block (Size, coefficient coding flags, etc.). Therefore, in order to avoid increased implementation costs, The number of lines included in the CTU line buffer is determined solely for the purpose of performing deblocking. It is desirable to avoid increasing it. For example, the entire proposed video encoding standard The encoding features require the CTU line buffer to store 4 lines of sampled values. In this case, it is necessary to increase the CTU line buffer to store the sample values of 7 lines. The required deblocking filter will likely increase implementation costs.
[0194] As mentioned above, video coding technology has the potential to improve beyond the capabilities of ITU-T H.265. As such, JEM describes the coding characteristics under the joint test model study conducted by JVET. Furthermore, the "Joint Call for Proposals" was jointly issued by VCEG and MPEG. In response to "Video Compression with Capabilities beyond HEVC", video symbols Multiple explanations regarding the numbering system were presented by various groups at the 10th Meeting of ISO / IEC JTC1 Proposed at SC29 / WG11, April 16-20, 2018, San Diego, CA. Video coding As a result of multiple explanations of the transformation, the draft text of the video encoding specification is titled "Versatile Video Co ding (Draft 1),” 10th Meeting of ISO / IEC JTC1 / SC29 / WG11 16-20 April 2018, This is described in document JVET-J1001-v2, San Diego, CA, and is used as reference herein. It is incorporated herein by reference and referred to as JVET-J1001. "Versatile Video Coding (Draft 2)," referred to as 1001, 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 J1001. The technologies proposed in JVET-J1001 and JVET-K1001 respectively are tested. It is implemented and evaluated using the VTM (Variable Model) and the Benchmark Set (BMS). The existing deblocking filter modifies three samples perpendicular to the edge. ru.
[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, as specified herein. Then, it is called JVET-K0369, and this is a maximum of 7 sumps perpendicular to the deblocked edge. This document describes deblocking filters that modify the line buffer. Furthermore, it discusses the CTU line buffer. To limit the size, the filter described in JVET-K0369 overlaps with the CTU boundary. Restricts the filtering operation of horizontal edges. Specifically, JVET-K0369 follows Table 8A. This document describes a deblocking filter that modifies sample values, and how it overlaps with the CTU boundary. For intersecting horizontal edges, the deblocking filter is modified as shown in Table 8B. To provide a place. [Table 27] [Table 28]
[0196] For horizontal edges that overlap with the CTU boundary, deblocking is provided in JVET-K0369. Changing the filter reduces the line buffer requirement for chroma sample values. Please note that this is not the case. Furthermore, as shown in Table 8B, the filter coefficients for p7 to p4 are " In addition to "filling with zeros," the filter coefficient values for p3 to q7 have been changed. Therefore, JVET-K0369 is an additional filter used to filter CTU boundaries. This requires storing the set, which necessitates additional memory to store the coefficients. ru.
[0197] In one embodiment, according to the technology of this specification, a minimum of three or more lines from px,0 to px,i are included. Long tap filters that may include filters that change and / or have filter support. The use of may be restricted. In one embodiment, with respect to luma and / or chromate blocking, The conditions (EDGE_TYPE is EDGE_HOR && the current boundary is aligned with the CTU boundary) are met. In this case, the long tap filter is not applied to the P side. Here, EDGE_TYPE is EDGE_HOR. The 'ru' indicates that the current boundary is a horizontal boundary. In one embodiment, Luma and / or Chroma Regarding deblocking, the following conditions apply: (EDGE_TYPE is EDGE_HOR && curPos.y% Lumasa If the condition CTUSize==0 in the sample is met, the long tap filter is not applied to P. Here, curPos.y is the vertical position of the current block being deblocked. In the example, for luma and / or chroma deblocking, the following conditions apply (EDGE_TYPE is EDGE_HOR If && curPosC.y% Chroma sample (CTUSize==0), then the long The tap filter is not applied to P. Here, curPosC.y is the current block that is deblocked. This is the vertical chromatic position of the block. In one embodiment, chromatic and / or chromatic deblocking is performed. And the following conditions apply (EDGE_TYPE is EDGE_HOR && the current boundary is aligned with the CTU boundary) If the following conditions are met, the long tap filter is not applied to the Q side and the P side. In one embodiment, For luma and / or chromade blocking, the following conditions apply (EDGE_TYPE is EDGE_HOR & & curPos.y% (CTUSize==0) in the sample, if the condition is met, long tap fill The ta does not apply to the Q side and the P side. In one embodiment, the chroma and / or chromate blocking is Therefore, the following conditions apply (EDGE_TYPE is EDGE_HOR && curPosC.y% in the chroma sample) If CTUSize==0, the long tap filter is not applied to the Q and P sides. In one example, if a long tap filter is not applied, fewer samples are modified. , and / or fewer lines from px,0 to px,i (i.e., one, two, or three lines) Apply another filter, including filter support that utilizes [a specific method / function]. For example, as described herein. The weak or strong filter being applied is allowed to have a long tap filter applied. It may be applied in cases where it is not applicable. As provided in ITU-T H.265, the % operator is x Please note that this provides the remainder when divided 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 value A predetermined value may be used for the position. Table 9 shows that the long tap filter is above Table 8A. An example is shown that includes the long tap filter described above, with a target line buffer threshold of 4. Therefore, the sample values for p4 to p7 are unavailable. As shown in Table 9, the values for p4 to p7 are from Debro. It will not be changed for the purpose of bucking. Furthermore, as shown on p4-p7 of Table 9, the filter mechanism The numbers are indicated by NA, and the sample values for p4 to p7 are not available in the line buffer. This demonstrates that, in one embodiment, the sample value for each of p4 to p7 is set to the sample value of p3. You may do so, and derive the modified sample values for p3'~q2' from the filter coefficients in Table 8A. It may be used for that purpose. [Table 29]
[0199] Furthermore, in one embodiment, the value derived from the available sample values is used for the corresponding sample position It may also be used for placement. In one embodiment, for each of p4 to p7, the sample value is the average of p3 and p2. The average sample value may also be set, and the filter coefficients in Table 8A are changed for p3'~q2'. It may be used to derive sample values.
[0200] In one embodiment, if a long tap filter is not applied, the filtering process is as follows: Based on the location of the deblocked sample (for example, if the sample value is on the CTU horizontal boundary) (This may be changed based on whether it is present or within a certain distance of the CTU horizontal boundary) and target A filter that prevents accessing / deblocking samples when the in-buffer threshold is exceeded. It may be selected. For example, regarding the example shown in Table 9, sample values are derived for p4 to p7. Different rules may be applied to p3' and p2'.
[0201] In one embodiment, if a long tap filter is not applied, the control process deblocks It may be modified based on the position of the sample being measured, and may exceed the target line buffer threshold. A filter that prevents access to / deblocking of the sample may be selected. For example, the (s=3,t=7) filter from Table 1 for Luma, the (s=3,t=5) filter from Table 1 for Luma, and Luma For F1P, and / or a weak chroma filter may be selected for 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 the sample is not accessed / deblocked. It is also acceptable. For example, if the horizontal edge is 4 units below the horizontal CTU edge, You may move the locking grid.
[0203] As mentioned above, ITU-T H.265 encodes video blocks P and Q, Based on the QP value used (sometimes referred to as QPP and QPQ), the variables tC' and β' are determined. It is determined. The derivation of index Q for the chroma channel is described above. Chroma Regarding channels, ITU-T H.265 states that when the chroma is 4:2:0, the variable QpC is indexed as follows: Based on qPi, it is determined as specified in the table shown in Figure 13.
number
[0204] In ITU-T H.265, if the chroma format is 4:2:2 or 4:4:4, QpC is Min(qPi, 51 Please note that it will be set to equal to ).
[0205] Regarding chroma, C ' is determined using the table shown in Figure 6, and index Q is t C ' The following is determined regarding this matter.
number
[0206] The technologies proposed in JVET-J1001 and JVET-K1001 respectively are luma channels and chromatic channels. This suggests that separate branching trees can be used to split the channel. If separate splitting trees are used to split the channel and chroma channel, The QP value for the chroma channel can be changed in relation to the QP value for the channel. In some cases, increasing the quantity can be useful. That is, for example, each component of a chromatochannel. In response to this, the corresponding QP offset value can be increased, which may be notified at the slice level. Yes, it is possible. 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 you must specify an offset for the Luma quantization parameter Qp'y used. The values of pps_cb_qp_offset and pps_cr_qp_offset should be -12 to +12, including the values at both ends. Assume it is within the range. If ChromaArrayType is equal to 0, pps_cb_qp_offset and pps_ The cr_qp_offset is not used in the decoding process, and the decoder ignores its values. ru.
[0207] slice_cb_qp_offset is used when determining the value of the quantization parameter Qp'Cb, pps_cb_qp_offset Specifies the difference to be added to the value of fset. The value of slice_cb_qp_offset is -12 to + (including both endpoints). Assume it is within the range of 12. If slice_cb_qp_offset does not exist, it is equal to 0. It is presumed that the value of pps_cb_qp_offset + slice_cb_qp_offset includes both ends, from -12 to +12. It is assumed to be within the range.
[0208] slice_cr_qp_offset is used when determining the value of the quantization parameter Qp'Cr, pps_cr_qp_offset Specifies the difference to be added to the value of fset. The value of slice_cr_qp_offset is -12 to + (including both endpoints). Assume it is within the range of 12. If slice_cr_qp_offset does not exist, it is equal to 0. It is inferred that the value of pps_cr_qp_offset + slice_cr_qp_offset includes both ends, from -12 to +12. It is assumed to be within the range.
[0209] The change in the derivation of chroma QP values is that when the deblocking parameter is based on the QP value, chroma Deblocking of the channel may be performed. According to the technique described herein, for example, In cases where separate splitting trees may be used to split the luma channel and chroma channel, In addition, the derivation of the QP value based on the deblocking parameters may be modified.
[0210] In one embodiment of the technique described 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 used for certain types of processing (e.g.) For example, these QP offsets may be used on blocks undergoing adaptive color transformation. , may be used to derive QP for Luma and Chroma. As a result, Deblo The King process may rely on additional luma and chroma QP offsets.
[0212] In some embodiments, separate partitions are used to separate the luma channel and the chroma channel. 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 It is derived from one or more of the following combinations. It is possible. The QP values of multiple corresponding luma blocks, and the luma blocks corresponding to the chroma block. This includes the number of samples, the Luma QP value corresponding to a predetermined chromatic position, etc. In some embodiments, Qp blk_P and / or Qp bik_Q Examples include integer averaging with rounding operations, and functions such as the maximum value function. It can be derived using the following: It has a sub-chroma block that corresponds to the chroma block. Please note that this is possible. Figures 14A and 14B correspond to chroma blocks P and Q. An example of a possible Luma partition is shown, where each Luma block has a QP value, QP_X. Figure 14A shows In this embodiment, Chromablock P is a chromablock whose QP values are QP_1 and QP_3. The chromablock Q is then collated with the chromablocks whose QP values are QP_2 and QP_4. In the embodiment shown in Figure 14B, the chroma block P has QP values of QP_1, QP_3, and QP_5. The chroma block is collated, and the chroma block Q is a chroma with QP values of QP_2 and QP_4. It is collated into the block. In one embodiment, for the example shown in Figure 14A, Qp blk_P , and Qp bik_Q This can be derived as follows:
number
[0214] In one embodiment, for the example shown in Figure 14B, Qp blk_P , and Qp bik_Q The derivation is as follows: It is possible.
number
[0215] In one embodiment, Qp blk_P and / or Qp bik_Q This identifies a set of chroma positions, and each chroma It can be derived by identifying the corresponding luma position for each position. For each position, the corresponding QP value can be determined. The corresponding QP value is Qp blk_P , and / also Qp bik_Q It can be used to derive the following.
[0216] As described above, in one embodiment, a broader and stronger filter condition is applied to the first condition and the second condition. This may include whether both of the conditions are true, and the first condition is true when d < β. This is also true, and d is determined as follows.
number
number
[0217] In some examples, the x-sample segment of the chromatodeblocking boundary (for example, x = Regarding 2), the conditions may be checked. This means that the gradient needs to be calculated. The worst-case number of n is reduced. In the worst case, the first condition is the gradient (all While xCalcDQP) is calculated for each line, the above condition calculates the gradient every two lines. Please note this.
[0218] As mentioned above, ITU-T H.265, variables β and t C This involves filtering decisions and clipping Used for t-operations. For example, β and / or t C Was a strong filter used? To determine whether or not, and / or to clip the filtered sample values It is used for this purpose. In JVET-K1001, the peak signal-to-noise ratio (PSNR) is compared with ITU-T H.265. Note that this is higher than the given quantization level. Therefore, in some cases , in order to change the deblocking strength, β and / or t C It may be useful to change it. Yes, that is, if the distortion level is lower at a given quantization level, it is perceived. The amount of block noise 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., magnitude), channel type, and / or component type, etc. For example, in one embodiment, t = t >> 2 may be used for an intra slice, and t C = t C >> 4 may be used for an inter slice. In one embodiment, t = t C >> 2 may be used for a luma component, and t C = t C >> 4 may be used for a chroma component. C > > 2 may be used for a luma component, and t C = t C >> 4 may be used for a chroma component.
[0219] "CE2-2.1.1: Long deblocking filters and fixes," 11th Meeting of ISO / IEC JTC1 / SC29 / WG11 10 - 18 July 2018, Ljubljana, SI, document JVET-K0307-vl, is referred to as JVET-K0307 in this specification, which describes long filters and the determination of luma components. Based on the filtering techniques described above, the filtering techniques in JVET-K0307 may be changed to enable the use of long asymmetric filters. For long asymmetric filters, the number of samples deblocked on the larger block side is larger than that on the smaller block side. side. side. Larger than the lock side. Debro to select from this extended filter set. The decision-making process is described in detail below. The extended filter set is... It may be used for strong deblocking throughout the entire locking process.
[0220] In one embodiment, according to the art of this specification, one side has a larger block, and the modification If the specified strong filtering condition is met, a stronger Luma filter will be used. In the example, the large blocks of Luma correspond to a width of 32 or more for the vertical edges, and water For flat edges, it supports heights of 32 or more.
[0221] In one embodiment, a stronger filter of Luma can be defined as follows: At that time, block boundary sample p i and q i For i=0 to S-1, linear interpolation is performed as follows: It is replaced by.
number
[0222] In one embodiment, the control process calculates for two lines of four sample segments. The gradient, absolute pixel value difference and t C Further comparisons with other absolute pixel value differences and β are based on the following: The larger the block, the more gradient is calculated. The control process is as follows: It is also acceptable to proceed as described above. 1. The variables dpq0, dpq3, dp, dq, and d are derived as follows: First, dp0, dp3, dq0, and dq3 are derived in the same way as in ITU-T H.265. Next, dpq0, dpq3, dp, dq, and 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 apply. ru. a.dpq is derived in the same way as ITU-T H.265. b.sp3-Abs(p3-p0) is derived in the same way as ITU-T H.265. [Table 31] c.sp3 = Abs(q0-q3), which is derived in the same way as ITU-T H.265. [Table 32] d. Similar to the derivation of ITU-T H.265, [Table 33] Calculate d_strong1 and d_strong2 according to the following:
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, and dq3 are derived in the same way as in ITU-T H.265. Next, dpq0, dpq3, dp, dq, and 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 apply. It can be done. dpq is derived in the same way as in ITU-T H.265. sp3-Abs(p3-p0) is derived in the same way as ITU-T H.265. [Table 35] The derivation is similar to that of ITU-T H.265. [Table 36] Similar to ITU-T H.265, the following is derived. [Table 37]
[0224] The conditions are (p is 32 or greater && q is 16 or greater) and (q is 32 or greater && (If the p-side is 16 or higher) determines whether a stronger luma filter can be applied. Please note that in other embodiments, additional conditions (e.g., one or more prior conditions) may apply. It can also be used to determine whether a stronger Luma filter can be applied. Please note the following. In one embodiment, additional conditions may be as follows: [Table 38] However, for (7,7,7,3,3,7), the decision process is (if p is 32 or more || if q is 32 or more) (Yes) The idea is to select a lower threshold by setting 3*β>>5 instead of β>>3 in the decision process This involves applying it to one of the stronger Luma filters that precedes it.
[0225] In one embodiment, according to the technology described herein, Luma is a 4x4 Luma sample grid It may be deblocked according to the (or according to the 8x8 Luma sample grid). This example Therefore, the above-mentioned stronger Lumafil filters are used as the P-side filter for WS00P and the Q-side filter for WS00Q. It may be used for larger blocks. Here, a larger block is one that is opposite the vertical edge. Blocks with a width of 32 or more, a height of 32 or more relative to the horizontal edge, and 16 or more adjacent blocks The control process involves four sample segments, as described in more detail below. The gradient, absolute pixel value difference, and t calculated for the two lines of the t C Comparison with, and other absolute It may also be based on a comparison of the pixel value difference with β. Furthermore, p0 belongs to the CTU on the current CTU. In that case, the following limited support 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. This can lead to asymmetry in gradient calculations. In some embodiments, this can result in... A different 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, and dq3 are derived in the same way as in ITU-T H.265. [Table 39] Next, dpq0, dpq3, dp, dq, and 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 apply. It can be done. dpq is derived in the same way as in ITU-T H.265. sp3-Abs(p3-p0) is derived in the same way as in ITU-T H.265. [Table 40] The equation 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 the boundary edges Using a stronger Luma filter with a vertical length of 32 or more, Otherwise, StrongFilterCondition is true and LongTapDeblocking is false. Alternatively, use another strong filter (for example, HEVC's strong filters HEVC_P, HEVC_Q).
[0228] In one embodiment, the threshold used for comparison may also be based on position. For example, The question is whether the blocked edge aligns with the CTU boundary.
[0229] In one embodiment, for a 4x4 Lumade blocking grid, one of the following is required: could be. The block width / height are equal to 4 for both the vertical and horizontal edges, respectively, and HEVC fill When 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 an HEVC normal / weak filter with a maximum of one sample change. Therefore, the following HEVC condition, i.e., |δ| < 10(t is checked, where δ = (9 << (q0 - p0) - (3 )(q1 - p1)) + 8) >> 4. If the condition is evaluated to be true, samples p0 and q0 are changed; otherwise, filtering is not applied. When the block width / height is equal to 4 for the vertical edge / horizontal edge, respectively, a maximum of 3 C 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 * 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, when p0 belongs to the CTU on the current CTU, the weak chroma filter described above as NW00P may be used. In one embodiment, when the strong luma filter condition of HEVC calculated for chroma is true or when any of the following conditions is true, a strong filter may be used. i i
[0230] In one example, 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, when p0 belongs to the CTU on the current CTU, the weak chroma filter described above as NW00P may be used. In one embodiment, when the strong luma filter condition of HEVC calculated for chroma is true or when any of the following conditions is true, a strong filter may be used. - The edge type is vertical, p0 belongs to CU with width >= 16 (chroma sample), and q0 has width >= 1 6 (Chroma Sample) belongs to CU - The edge type is horizontal, p0 belongs to CU with height >= 16 (chroma sample), and q0 is high It belongs to the CU (chromosample) with a value of 16 (s >= 16).
[0231] Referring again to Figure 8, the entropy coding unit 218 uses the quantized conversion coefficients and the predicted coefficients. Receive tax data (i.e., intra-predictive 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 it is possible to perform a scan of the matrix containing the transformed coefficients. The entropy coding unit 218 can perform scanning. , configured to perform entropy coding in accordance with one or more of the techniques described herein. This can be done. In this way, the video encoder 200 can process the components of the video data. It receives an array of sample values containing adjacent restored video blocks and deblocks them. The sample values within adjacent restored video blocks are altered according to multiple passes of the filter. This shows an example of a device configured to make changes.
[0232] Referring again to Figure 7, the data encapsulation unit 107 receives the encoded video data and defines According to the defined data structure, for example, a compliant bitstream which is a series of NAL units It can be generated. A device receiving a compliant bitstream can then generate video data from it. The data can be regenerated. Furthermore, the device receiving the compliant bitstream can A bitstream extraction process may be performed, and sub-bitstream extraction may be performed in accordance with the requirements. A device receiving a bitstream discards data within the received bitstream. This refers to the process of creating a new compliant bitstream by modifying / changing it. The term "compliant bitstream" is used instead of the term "compliant bitstream." Please note that this is possible.
[0233] Referring again to Figure 7, interface 108 is generated by data encapsulation unit 107. It is configured to receive the data, and to transmit and / or store that data in a communication medium. It may include any device. Interface 108 is an Ethernet card, for example. It may include a network interface card, optical transceiver, and radio frequency transceiver. This includes any other type of device that can transmit and / or receive information. It is possible to do so. Furthermore, interface 108 stores files on a storage device. It can include a computer system interface that enables this. For example, interface 108 is a Peripheral Component Interconnect (PCI) bus. Protocol and Peripheral Component Interconnect Express (PCIe) bus protocol, Proprietary bus protocol, Universal Serial Bus (USB) protocol COL, FC, or any other logic that can be used to interconnect peer devices. It may also include a chipset that supports the physical structure.
[0234] Referring again to Figure 7, the target device 120 has an interface 122 and a data decapsule. It includes a processing unit 123, a video decoder 124, and a display 126. Interface 122 is This can include any device configured to receive data from a communication medium. Interface 122 is a network interface card such as an Ethernet card. This may include optical transceivers, radio frequency transceivers, or information receiving and / or It can include any other type of device that can transmit. Furthermore, the interface Face 122 can retrieve a suitable video bitstream from the storage device. It may include an interface for a computer system to enable it. -Face 122 supports PCI bus protocol and PCIe bus protocol, as well as proprietary bus protocols. Anything that can be used to interconnect USB protocol, FC, or peer devices. It may include a chipset that supports other logical and physical structures. The capsule unit 123 uses any of the exemplary parameter sets described herein. It may be configured to receive and analyze data.
[0235] The video decoder 124 receives the bitstream and / or any acceptable modification thereof, and This can include any device configured to play video data from it. Display 126 includes any device configured to display video data. It can do this. Display 126 is a liquid crystal display (LCD), Razma display, organic light-emitting diode (OLED) display One of various display devices, such as a play screen or another type of display. It may include a high-resolution display or an ultra-high-resolution display. It can include playback. In the example shown in Figure 7, the video decoder 124 displays the data. Although it is described to output to Ray 126, the video decoder 124 outputs video data in various ways. It can be configured to output to various types of devices and / or their subcomponents. Please note that the video decoder 124 may be such as described herein. It can be configured to output video data to a communication medium of choice.
[0236] Figure 9 shows how one or more of the technologies of this disclosure can be configured to decode video data. This is a block diagram showing an example of a video decoder. In one embodiment, the video decoder 300 decodes the converted data and the decoded converted data Based on this, it can be configured to reconstruct residual data from the conversion coefficients. The DA300 may be configured to perform intra-predictive decoding and inter-predictive decoding. Therefore, it is sometimes called a hybrid decoder. In the example shown in Figure 9, The Odecoder 300 includes an entropy decoding unit 302, an inverse quantization unit 304, and an inverse transformation coefficient processing unit 306. The intra prediction processing unit 308, the inter prediction processing unit 310, the adder 312, and the filter unit 314, Includes a reference buffer 316. The video decoder 300 matches the video encoding system. It can be configured to decode video data in this way. Example video decoder 300 Although it is shown that it has a separate functional block, such examples are for illustrative purposes only. Therefore, the video decoder 300 and / or its subordinate components are configured with specific hardware or software. Please note that this is not limited to software architecture. Video Decoder 30 The functionality of 0 is any form of implementation in hardware, firmware, and / or software. This can be achieved using combinations.
[0237] As shown in Figure 9, the entropy decoding unit 302 processes the entropy encoded bitstream. The entropy decoding unit 302 performs the reciprocal process, which is the reverse of the entropy coding process. The process involves decoding the syntax elements and quantized coefficients from the bitstream. It can be configured as follows. The entropy decoding unit 302 performs the entropy coding described above. It can be configured to perform entropy decoding according to one of the techniques. The ropi decoding unit 802 encodes the bitstream to match the video encoding standard. The value of the syntax element in the code can be determined. As shown in Figure 9, entropy The decoding unit 302 determines the values of the quantized coefficients and the assertion data from the bitstream. This is possible. In the example shown in Figure 9, the inverse quantization unit 304 receives the quantization coefficient value and converts it. The coefficients are output. The inverse transformation processing unit 306 receives the transformation coefficients and outputs the restored residual data. do.
[0238] Referring again to Figure 9, the recovered residual data can be provided to the adder 312. The calculator 312 adds the recovered residual data to the predicted video block, and the recovered video data It can generate data. Predictive video blocks are predictive video technology (i.e., in The determination can be made according to the trajectory prediction and interframe prediction. The intra prediction processing unit 308 , receive the intra-prediction syntax element and retrieve the predicted video block from reference buffer 316. It can be configured to acquire one or more frames of video data. The reference buffer 316 is configured to acquire one or more frames of video data. It may include a memory device configured to store frames. The ntax element identifies intra-prediction modes such as the intra-prediction mode mentioned above. The interprediction processing unit 308 receives the interprediction syntax element and the movement A vector is generated and the prediction blocks in one or more reference frames stored in the reference buffer 316 are generated. The block can be identified. The interpretation processing unit 310 may use an interpolation filter. Interpolation based on this can be performed to generate motion-compensated blocks. The S element is an interpolation filter that will be used for motion prediction with sub-pixel accuracy. It can include separate components. The interpretation processing unit 310 uses an interpolation filter to reference The interpolated values for the pixels of the block's sub-integers can be calculated.
[0239] The filter unit 314 performs filtering on the restored video data. It can be configured. For example, the filter section 314 can be specified by, for example, a bitstream. Based on the parameters, deblocking and / or sample adaptive offset (SAO) fill It can be configured to perform filtering. Furthermore, in some examples, filters Section 314 performs its own arbitrary filtering (e.g., visual filtering such as mosquito noise reduction). Note that it can be configured to perform (emphasis). The filter unit 314 is It can operate similarly to the filter unit 216. As shown in Figure 9, the restored video block is a video The output can be generated by the video decoder 300. In this way, the video decoder 300 Array of sample values containing adjacent reconstructed video blocks for components of video data Upon receiving the video, and following multiple passes of the deblocking filter, the adjacent restored video blocks are processed. The lock may be configured to change the sample value within it.
[0240] In one or more examples, the described features are hardware, software, and firmware. , or any combination thereof can be implemented. In addition, this function is stored as one or more instructions or codes on a computer-readable medium. Alternatively, it can be transmitted and executed by a hardware-based processing unit. Data-readable media, for example, are used to transmit data from one location to another according to a communication protocol. Data storage media or communication media, including any medium that facilitates the transfer of data programs. This may include a computer-readable storage medium that corresponds to a tangible medium. Therefore, computer-readable media generally refers to (1) non-temporary, tangible computer-readable storage media. , or (2) it can be compatible with communication media such as signals or carrier waves. The data storage medium is Extract the instructions, code, and / or data structures for implementing the technologies described in this disclosure. To that end, it may be accessed by one or more computers or one or more processors. It may be a usable medium of choice. Computer program products are computer-readable media. It can include...
[0241] For example, non-limitingly, such computer-readable storage media include RAM, ROM, and EEPROM. CD-ROM or other optical disk storage devices, magnetic disk storage devices, other magnetic storage devices, Flash memory, or any other medium, i.e., in the form of instructions or data structures, the desired program It can be used to store program codes and is accessible by computer. It may include any other media. Also, any connection may be computer-readable media and suitable It is urgently called. For example, if a command is issued from a website, server, or other remote source, Axis cables, fiber optic cables, twisted pair cables, digital subscriber lines It is transmitted using wireless technologies such as r line, DSL, or infrared, radio, and microwave. In that case, coaxial cable, fiber optic cable, twisted pair, DSL, or infrared, Wireless technologies such as wires and microwaves are included in the definition of a medium. However, computer-readable Media and data storage media do not include connections, carriers, signals, or other transient media, but substitute It should be understood that this invention primarily targets non-temporary tangible storage media. In this case, the disc (disk) and disc (disc) are Compact Discs (C D) Laser disc, optical disc, digital multipurpose disc Digital Versatile Disc (DVD), floppy disk, and Blu-ray (Registered Trademark) Disc (Blu-ray(Registered Trademark) Disc) includes discs (disks) that normally store data magnetically. The disc reproduces data optically using a laser, while the other uses the above combination The formatting must also be included within the scope of computer-readable media.
[0242] Instructions are for one or more digital signal processors (DSPs), general-purpose microprocessors, and application-specific processors. Integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other equivalent applications. Executing by one or more processors, such as a product or discrete logic circuit Yes, it is possible. Therefore, as used herein, the term "processor" means the aforementioned structure, Or it may refer to any other structure suitable for implementing the technology described herein. In addition, in some embodiments, the functions described herein are used for encoding and decoding. A dedicated hardware module configured in such a way, or incorporated into the composite codec, and It may be provided in a and / or software module. Furthermore, this technology may be provided in one or more circuits or This can be fully implemented within a logic element.
[0243] The technology disclosed herein relates to wireless handsets, integrated circuits (ICs), or ICs. It can be implemented in a wide variety of devices or equipment, including chipsets (for example). Various components, modules, or units are used to perform the disclosed technology. Although described in this disclosure to highlight the functional aspects of the device configured as such, Implementation by a hardware unit is not necessarily required. Rather, as mentioned above... Various units may be combined with codec hardware units, or are preferable to combine with them. Along with the software and / or firmware, a phase including one or more of the aforementioned processors This can be provided by a collection of interconnected hardware units.
[0244] Furthermore, the functional blocks and various functions of the base station equipment and terminal equipment used in each of the above-mentioned implementation forms. Generally, this is realized or executed by an electrical circuit which is an integrated circuit or a set of integrated circuits. This is possible. Circuits designed to perform the functions described herein are general-purpose processors. Digital signal processors (DSPs), application-specific or general-purpose integrated circuits (ASICs) ), Field Programmable Gate Array (FPGA) or other programmable logic Devices, discrete gates or transistor logic, or individual hardware It may include wear components, or a combination thereof. The general-purpose processor is A microprocessor would also suffice, or the processor could be a conventional processor, control It may be a processor, microcontroller, or state machine. Each circuit may be composed of either a digital circuit or an analog circuit. If advances in semiconductor technology lead to the emergence of integrated circuit technologies that can replace current integrated circuits, Integrated circuits using this technology will also become available.
[0245] Various embodiments have been described. These and other embodiments are described within the scope of the following claims. be.
[0246] <Cross reference> This non-provisional application is U.S. Patent Provisional Application No. 62, filed March 30, 2018, under Section 119 of the U.S. Patent Act. Patent No. / 651,058, Patent No. 62 / 654,379 filed on April 7, 2018, and Patent No. 62 / 655,029 filed on April 9, 2018. No. 62 / 656,291 filed on April 11, 2018, No. 62 / 677,629 filed on May 29, 2018, 20 Filing No. 62 / 679,716 on June 1, 2018, Filing No. 62 / 696,309 on July 10, 2018, July 2018 Filing No. 62 / 711,420 on the 27th, Filing No. 62 / 714,755 on August 5, 2018, and filing on September 17, 2018. Application No. 62 / 732,556, Application No. 62 / 733,067 filed on September 18, 2018, Application No. 62 / 733,067 filed on September 22, 2018 This application claims priority to patent no. 62 / 735,090, filed on September 27, 2018, and patent no. 62 / 737,596. The contents thereof are incorporated herein by reference.
Claims
1. A device for filtering restored video data, The values of the samples contained in the first block and the second block adjacent to the block boundary of the recovered video data are received. If the edge type is vertical, it is determined whether or not the seven samples of the first block are filtered based on the fact that the width of the first block is 32 or more. Based on the fact that the width of the second block is less than 32, it is determined whether or not the three samples of the second block are filtered. An apparatus that filters each pixel of the first block and the second block using an intermediate value calculated based on the equation (2*(p0+q0) + q0+2*(q1+q2)+p1+q1+p2+p3+p4+p5+p6+8)≫4, where pi represents the value of the pixel in the first block, qi represents the value of the pixel in the second block, i represents the position of the pixel from the block boundary, and i = 0 represents the position directly adjacent to the block boundary.
2. A computer-readable recording medium containing a program that causes a computer to filter the recovered video data, The program is used by the computer. The steps include receiving the values of samples contained in a first block and a second block adjacent to a block boundary in the recovered video data, If the edge type is vertical, the step of determining whether or not seven samples of the first block are filtered based on the fact that the width of the first block is 32 or more, A step of determining whether or not three samples of the second block are filtered based on the fact that the width of the second block is less than 32, A computer-readable recording medium comprising the steps of filtering each pixel of the first block and the second block using intermediate values calculated based on the equation (2*(p0+q0) + q0+2*(q1+q2)+p1+q1+p2+p3+p4+p5+p6+8)≫4, where pi represents the value of a pixel in the first block, qi represents the value of a pixel in the second block, i represents the position of a pixel from the block boundary, and i = 0 represents a position directly adjacent to the block boundary.