Loop filter with multiple regions

By introducing region-based post-filtering technology in video encoding and decoding, the problem of ineffective use of block shape adaptive intra prediction direction in the prior art is solved, and more efficient filtering processing and video compression efficiency are achieved.

CN112385237BActive Publication Date: 2025-04-22INTERDIGITAL VC HOLDINGS INC
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN201980045556.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2018-08-14
Filing Date
2019-07-10
Publication Date
2025-04-22
Estimated Expiration
2039-08-29

AI Technical Summary

Technical Problem

The prior art is difficult to effectively utilize the block shape to adapt intra prediction direction during video encoding and decoding, resulting in low encoding artifacts and compression efficiency.

Method used

By introducing region-based post-filtering technology in video encoding and decoding, the reconstructed blocks are filtered using a common filter parameter set and the syntax of the filter parameter set is encoded in the bitstream to achieve more efficient filtering processing.

Benefits of technology

Improved loop filter performance, reduced encoding artifacts, improved video compression efficiency, and reduced implementation costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN112385237B_ABST
    Figure CN112385237B_ABST
Patent Text Reader

Abstract

A method and apparatus for performing loop filtering in an encoder or decoder, providing regions using a common filter parameter set. An index may be sent from the encoder to the decoder indicating which filter parameter set is used for a particular region. The loop filter may be a sample adaptive offset, an adaptive loop filter, or any other such filter. The encoder classifies regions of a picture according to blocks using a common filter parameter set. The classification may be in the form of a graph. The filter block uses a common filter parameter set for a region. The decoder parses the bitstream to obtain a filter parameter set and an index representing the filter parameter set for the decoded region.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] At least one of the present embodiments generally relates to a method or apparatus for video encoding or decoding. Background Art

[0002] To achieve high compression efficiency, image and video coding schemes usually use prediction, including motion vector prediction and transformation, to balance the spatial and temporal redundancy in video content. Typically, intra-frame or inter-frame prediction is used to explore the correlation between intra-frame or inter-frame, and then the difference between the original image and the predicted image (usually expressed as prediction error or prediction residual) is transformed, quantized, and entropy encoded. To reconstruct the video, the compressed data is decoded through the inverse process corresponding to entropy coding, quantization, transformation, and prediction.

[0003] Loop filters allow post-filtering of the reconstructed picture to reduce coding artifacts. For example, the Sample Adaptive Offset (SAO) filter allows adding an offset to certain categories (or classes) of reconstructed samples to reduce coding artifacts. Another example is the Adaptive Loop Filter (ALF), which implements a Wiener linear post-filtering of the reconstructed samples. Another example is the Deblocking Filter (DBF), which reduces blocking artifacts by smoothing block boundaries. Summary of the invention

[0004] The shortcomings and disadvantages of the prior art are addressed by the general aspects described herein, which are directed toward block shape adaptive intra prediction in decoding and encoding.

[0005] According to a first aspect, a method is provided. The method comprises the steps of determining a region of a picture in which at least one reconstructed block in the picture is to be filtered using a common filter parameter set; obtaining a plurality of filter parameter sets; filtering the region of the picture including the at least one reconstructed block using a common filter parameter set for blocks within the region; and encoding information and an encoded version of the region in a bitstream, the information comprising syntax indicating the filter parameter set used to filter the region.

[0006] According to another aspect, a second method is provided. The method comprises the steps of: decoding syntax from a bitstream, the syntax indicating a plurality of filter parameter sets for filtering a region of a picture; determining a region of the picture from the bitstream using a common filter parameter set for filtering at least one reconstructed block of the picture; filtering the at least one reconstructed block using the filter parameter set associated with the region containing the at least one reconstructed block; and decoding the filtered reconstructed block of the picture.

[0007] According to another aspect, a device is provided. The device includes a processor. The processor may be configured to encode a video block or decode a bit stream by executing any of the above methods.

[0008] According to another general aspect of at least one embodiment, there is provided an apparatus comprising: an apparatus according to any decoding embodiment; and at least one of: (i) an antenna configured to receive a signal, the signal including the video block, (ii) a band limiter configured to limit the received signal to a frequency band including the video block, and (iii) a display configured to display an output representing the video block.

[0009] According to another general aspect of at least one embodiment, a non-transitory computer-readable medium is provided, comprising data content generated according to any of the encoding embodiments or variations.

[0010] According to another general aspect of at least one embodiment, there is provided a signal comprising video data generated according to any of the encoding embodiments or variations described.

[0011] According to another general aspect of at least one embodiment, a bitstream is formed that includes data content generated according to any of the encoding embodiments or variations described.

[0012] According to another general aspect of at least one embodiment, there is provided a computer program product comprising instructions that, when the program is executed by a computer, causes the computer to perform any one of the decoding embodiments or variations described.

[0013] These and other aspects, features and advantages of these general aspects will become apparent from the following detailed description of exemplary embodiments which is to be read in conjunction with the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0014] Figure 1 A standard generic video decoder (left) and encoder (right) are shown.

[0015] Figure 2 The determination of the reconstruction sample point category in the case of EO mode is shown.

[0016] Figure 3 It is shown that in the case of BO mode, the pixel range from 0 to 255 (8 bits) is evenly divided into 32 bands.

[0017] Figure 4 Picture-based SAO filtering (left) and “SAO filtering process” (right) called “SAO filtering process” for each sample group are shown.

[0018] Figure 5 Flowchart showing encoder decisions for ALF (left) and examples of ALF filter shapes (right).

[0019] Figure 6 A CTU is shown referencing a list of previously coded (new) SAO parameters.

[0020] Figure 7 An example of the decoding and reconstruction process of the proposed SAO filter is shown.

[0021] Figure 8 An example of SAO block size defined relative to CTU size is shown.

[0022] Fig. 9 It is shown that the current SAO block can inherit parameters from the neighbor on the left or above.

[0023] Fig.10 It shows that the filter area can be rectangular or a row / column of filter blocks.

[0024] Fig.11 An example of encoding sao_palette_index and new_flag is shown.

[0025] Fig.12 It is shown that the current SAO block can inherit parameters from the left or upper neighbor outside the SAO area.

[0026] Fig.13 Shown are (left) parsing filter parameters in raster scan order for all blocks and filtering per region, and (right) both parsing and filtering on a region basis.

[0027] Fig.14 It is shown that several post filters can share the same region.

[0028] Fig.15 A common standard encoding scheme is shown.

[0029] Fig.16 A common standard decoding scheme is shown.

[0030] Fig.17 A typical processor arrangement is shown in which the described embodiments may be implemented.

[0031] Fig.18 An embodiment of a method of encoding using loop filtering with multiple regions is shown.

[0032] Fig.19 An embodiment of another method of decoding using loop filtering with multiple regions is shown.

[0033] Fig. 20 An embodiment of an apparatus for encoding or decoding using loop filtering with multiple regions is shown. DETAILED DESCRIPTION

[0034] The general aspects described herein are in the field of video compression. The general aspects relate to loop filtering, such as using sample adaptive offset (SAO) (also known as SAO palette) using "advanced merging" techniques, as described in the following common EP applications, the teachings of which are expressly incorporated herein by reference:

[0035] (1) EP application number 17305626.8, entitled “A method and device for picture encoding and decoding” (attorney file number: PF170034),

[0036] (2) EP Application No. 18305736.3, entitled “Advanced Merger Parallel SAO” (Agency File No.: PF180072),

[0037] (3) EP application number 17305033.7, entitled “A method and apparatus for image encoding and decoding” (attorney docket number: PF160213), and

[0038] (4) EP application number 17305627.6, entitled “A method and device for picture encoding and decoding” (agent file number: PF170089).

[0039] The loop filter allows post-filtering of the reconstructed picture to reduce coding artifacts (see Figure 1 For example, SAO allows adding offsets to certain categories (or classes) of reconstructed samples to reduce coding artifacts. Another example is the adaptive loop filter (ALF), which implements Wiener linear post-filtering of the reconstructed samples. Another example is the deblocking filter (DBF), which reduces blocking artifacts by smoothing block boundaries.

[0040] Typically, the loop filter (k) process (decoder side) includes the following steps:

[0041] 1) Analyze C(k) filter parameter sets P(c); c = 0...C(k)

[0042] 2) Classify the reconstructed sample points into C(k) classes

[0043] 3) Filter the reconstructed samples belonging to class c using parameter P(c)

[0044] Typically, the loop filter (k) process (encoder side) includes the following steps:

[0045] 1) Classify the reconstructed sample points into C(k) classes

[0046] 2) Derive C(k) filter parameter sets P(c); c = 0...C(k)

[0047] 3) Filter the reconstructed samples belonging to class c using parameter P(c)

[0048] Aims of the aspects described herein are to improve the performance of a loop filter by using region-based post-filtering.

[0049] In HEVC (High Efficiency Video Coding), when enabled, a Coding Tree Unit (CTU) can be coded with 3 SAO modes (SaoTypeIdx): Inactive (OFF), Edge Offset (EO) or Band Offset (BO). In EO or BO mode, a set of parameters are coded channel by channel (Y, U, V), possibly shared with neighboring CTUs (see SAO merge flag). SAO modes are the same for Cb and Cr components.

[0050] In the case of EO, each reconstructed sample is divided into NC=5 classes (sao_eo_class) depending on the local gradient, such as Figure 2 As shown. (NC-1) offset values ​​are encoded, one for each category (the offset of a category is equal to zero).

[0051] In the case of BO, the pixel range of values ​​(eg, from 0 to 255, 8 bits) is evenly divided into 32 bands, and the sample values ​​belonging to (NC-1) = 4 consecutive bands are modified by adding an offset off(n). Figure 3 An example of 4 consecutive bands is shown. (NC-1) offset values ​​are encoded, one for each of the (NC-1) bands (the remaining band offsets are equal to zero).

[0052] In the case of EO or BO, the offset may not be encoded but copied from the adjacent above or left CTU (merge mode). Figure 4 Depicted is how SAO is processed on a picture (left) and the SAO filter process itself for each CTU (right).

[0053] In EP application No. 17305627.6 entitled "Method and device for picture encoding and decoding", it is proposed to collect all samples of the reconstructed picture by using or sharing the same SAO parameters to derive an optimal SAO parameter set.

[0054] ALF Filter

[0055] In the JEM software, each 2×2 block is classified into 25 classes using local gradients based on its directionality and its activity. Next, the ALF filter coefficients for each class are derived for the entire image.

[0056] For the luma samples of each CTU (filter block), the encoder decides whether to apply ALF and includes the appropriate signaling flag in the slice header. For chroma samples, the decision to apply the filter is made at the picture level rather than at the CTU level.

[0057] ALF filter parameter sets can be signaled in the first CTU or slice header. Up to 25 luma filter coefficient sets can be signaled. To reduce overhead bits, filter coefficients of different classes can be merged. In addition, the ALF coefficients of the reference picture are stored and allow them to be reused as ALF coefficients of the current picture (ALF temporal prediction).

[0058] To support ALF time domain prediction, a candidate list of ALF filter sets is maintained. At the start of decoding a new sequence, the candidate list is empty. After decoding a picture, the corresponding filter set can be added to the candidate list. Time domain prediction of ALF coefficients improves coding efficiency for inter-coded frames. To improve coding efficiency when time domain prediction is not available (intra-frames), a set of 16 fixed filters is also assigned to each class.

[0059] Advanced Merge SAO and other features

[0060] Feature 1:

[0061] In EP application No. 17305626.8 entitled "A method and apparatus for picture encoding and decoding", all SAO parameters (SAO parameter candidate lists) are first encoded (for example in a slice header or in the first CTU), and then an SAO block is encoded, the SAO block comprising a (merged / candidate) index that refers to the SAO parameter list (new candidate) that has been previously defined and encoded, such as Figure 6 shown.

[0062] The number of SAO candidates (nb_SAO_cand) and the SAO parameter list are encoded in the same order as they are used. At the encoder, the SAO parameter candidate list is reordered after encoding each candidate index, placing the most recently used parameters at the top of the list. More precisely, the candidate list is reordered so that the spatially most recently used candidates are ordered first. This can be achieved by building a graph of the last used candidates.

[0063] OFF (all offsets of all components are zero) candidates are implicitly placed in the list, rather than explicitly encoded, at a position not too far from the top (eg: position <= 2).

[0064] Feature 2:

[0065] In EP application No. 18305736.3 entitled “Advanced Merged Parallel SAO”, the principle of EP application No. 17305626.8 entitled “Method and Device for Picture Coding and Decoding” is extended, so that the area where the current SAO block can inherit parameters from other SAO blocks is limited to:

[0066] - In the wavefront parallel causal region,

[0067] - and / or make the number of candidates in the reordered SAO candidate list below a predefined value (see "list_reordered_size" in PF180072),

[0068] - and / or limit the number of candidates by the maximum distance (dist_max) from the candidate to the current SAO block.

[0069] Feature 3:

[0070] In EP application No. 17305033.7 entitled "Method and apparatus for image encoding and decoding" and EP application No. 17305626.8 entitled "Method and apparatus for picture encoding and decoding", the size of the SAO block (i.e., the size of the applied SAO parameters) is encoded in the slice header. In EP application No. 17305626.8 entitled "Method and apparatus for image encoding and decoding", the width and / or height of the SAO block is N times the size of the CTU, where N = 1, 2 or 1 / 2 (see Figure 8 ).

[0071] In the paper entitled “Description of a Proposal for SDR, HDR and 360° Video Coding by Qualcomm and Technicolor - Low and High Complexity Versions” (JVET-J0021, 10th JVET Conference, San Diego, CA, USA, April 2018) and in the paper entitled “CE2: Testing of SAO Designs from JVET-J0021 (CE2.3.2)” by A. Gadde, D. Rusanovskyy, M. Karczevicz (JVET-K0324, 11th JVET Conference, Ljubljana, SI, July 10-18, 2018), it was proposed to encode two flags (merge_left_flag and merge_above_flag) to indicate whether the current SAO block is inherited from the left or above or other neighbors (see Fig. 9 ). In the parsing stage, it is checked whether the SAO parameters on the left and above are the same. If it is judged as "no", the flag on the top is not parsed. In other cases, the current SAO block is marked as "active" and the SAO parameters are not inherited but encoded / decoded.

[0072] All information is decoded at the beginning of a slice or picture. After parsing the merge flags of all SAO blocks, the SAO parameters of the SAO blocks marked as "active" are decoded.

[0073] In the article entitled “CE2-3.3SAO_Palette Results and Discussion” by P. Bordes, F. Racapé (JVET-K0192, 11th JVET Conference, SI, Louisiana, July 10-18, 2018), it is reported that by using the JVET reference software (VTM1.0) and using common test conditions (CTC), the combination of the above techniques provided a BD rate gain of 0.17% in AI, 0.38% in RA, and 0.52% in LDB, respectively.

[0074] In JVET-K0324, the BD rate gains of AI were reported to be 0.11%, RA to be 0.30%, and LDB to be 0.43% under the same conditions.

[0075] In at least some embodiments described herein, the general aspects described are intended to:

[0076] - Combining these two approaches to equalize the coding gains of the two techniques.

[0077] - Avoids the problem of parsing all filter parameters at the start of a slice / picture, which introduces a single frame delay.

[0078] - Potentially share a group (region) of reconstruction samples for several (more than one) loop filters for post-filter parameter derivation.

[0079] In at least one embodiment, the general aspects of loop post filters such as SAO or ALF in EP application number 17305626.8 entitled "Method and apparatus for image encoding and decoding" (see features 1, 2, 3: first signaling SAO or ALF parameter sets and using indexes to refer to them, enabling / disabling filters for the current block, etc.) are extended to multiple regions within a slice or picture, respectively. These features can be combined with adapting the post filter block size per slice or picture. Several different post filters can share the same region. For example, another concept in the encoder is to calculate the post filter parameters for each region.

[0080] In a first embodiment, a filter region is defined to be associated with each filter block. A filter block is of the same size as its filter parameter set. Each filter block then belongs to one filter region. A filter region is a sub-portion of a slice or picture (a subset of a filter block). A filter region can be Fig.10 The rectangle shown (e.g., slice) can also be a row / column of filter blocks. The filter area can also correspond to an entire stripe or picture. The size or shape of the filter area (e.g., encoded as a map) is usually encoded in the stripe, picture or sequence header.

[0081] For the SAO filter, a current filter block belonging to a region may inherit SAO parameters from candidate SAO parameters corresponding to an SAO block within the same region.

[0082] In the second embodiment, for the SAO filter, the syntax changes as follows:

[0083] -First parse sao_palette_index for each SAO chunk

[0084] - If sao_palette_index is equal to the value idx_new (eg: idx_new=3), the SAO block is marked as NEW (new_flag=true), which means that this is the first time that the SAO parameters are used in the current filter region.

[0085] In the parsing phase, if sao_palette_index=idx_new, the SAO parameters are parsed after parsing sao_palette_index and made available to other SAO blocks of the region in the filtering phase. In the filtering phase, the SAO parameters are added to the merged (inherited) SAO parameter list of other candidates for the current SAO region.

[0086] In a variation of this second embodiment, the value of idx_new may vary from slice to slice or region to region. It may be encoded in the slice header or with the first SAO block, or may be derived from other parameters, such as a function of a quantization parameter (QP).

[0087] In another variation of the second embodiment, for the ALF filter, the ALF filter parameter set may be signaled in the first filter block of the region, or in the region header (e.g., if the region is a slice defined in HEVC) or in the slice / picture header. The ALF filter parameter set remains unchanged for all filter blocks in the region.

[0088] In another variant, when the filter supports time-domain prediction (eg, ALF time-domain prediction), a list of filter parameter sets is maintained per region, and the filter blocks of the current region may use filter parameters corresponding to the co-located region in the reference picture.

[0089] In another variation of the second embodiment, the number of SAO blocks marked NEW in a region is encoded at the beginning of the region (eg, together with the first SAO block of the region).

[0090] In the third embodiment, the value of sao_palette_index is encoded with n1+1+n2 bits, and new_flag is the n1th bit (idx_new_bit), such as Fig.11 As shown, n1 and n2 are redefined parameters, or parameters that change adaptively and conditionally according to the context.

[0091] In a variant of this embodiment, n1<=2 and the two n1 bits are merge_left_flags and merge_above_flag. Advantageously, the encoding of merge_above_flag differs from JVET-J0021 and JVET-K0324 if the parameters above and left are the same.

[0092] In the fourth embodiment, for the SAO block in the first column of the SAO area (or the SAO block in the first row of the SAO area), the SAO parameter list available for merging also includes parameters of a left (or upper) SAO block outside the SAO area.

[0093] Advantageously, when decoding the first SAO block of a region, the left column and upper row of SAO block parameters outside the current region are added to the list of the current SAO region.

[0094] In a fifth embodiment, the filter block size may vary according to region. The filter block size is encoded for each region based on a predefined table or derivation rule, or may be inferred from other encoding parameters such as a quantization parameter (QP).

[0095] For example, the basic block size is defined in the SPS, PPS or slice header (e.g. 128x128), and a QP table is used to indicate the scaling factor to be applied to the filter block width and height. An example of such a table is given below.

[0096] QP Range 1-25 26-35 36-45 46-51 Zoom x0.5 x1 x2 x2

[0097] In a sixth embodiment, the filter block parameters can be resolved in a classic raster scan order in stripes. Next, the filtering stage is performed region by region (see Fig.13 The SAO filter stage groups the SAO candidate list to reorder the association of SAO parameters to each SAO block, the classes of samples and the application of SAO offsets to correct the reconstructed samples.

[0098] The ALF filtering stage groups the classes of samples and the filtering of the reconstructed samples.

[0099] Alternatively, the filter block parameters can be parsed region by region (typically using a raster scan of the filter block across the filter regions), and then the filtering stage is performed region by region (see Fig.13 on the right).

[0100] In the seventh embodiment, several different loop filters k (k=0, ..., N) can share the same filter region, so that multiple filters perform parsing and filtering based on the region. The order of parsing / classification / filtering can be interleaved between filters within a region, such as Fig.14 shown.

[0101] In an eighth embodiment, advantageously, several different post filters can share the same classification process, so that c(k1)=c(k2), where k1 is different from k2. This means that the set of samples belonging to a class of filter k1 is the same as the set of samples belonging to a class of filter k2. In this case, the class is classified once. Other variants of different filters sharing the same classification process can be used.

[0102] The proposed techniques allow to improve the whole video compression process. These techniques are lightweight in terms of memory access. The techniques improve the post-filtering process by grouping different filter stages based on regions and making the post-filtering process parallelizable. This is achieved by improving the loop filtering.

[0103] The proposed modifications to the prior art SAO filter (existing standardized HEVC) or ALF reuse most of the conventional SAO or ALF block-level logic / operations. Therefore, the existing design of HEVC or JEM codec using post-filter can be reused to the maximum extent, thereby reducing the implementation cost of the proposed technique.

[0104] Various aspects are described herein, including tools, features, embodiments, models, methods, etc. Many of these aspects are described in a specific manner, and, at least to show individual characteristics, are often described in a manner that sounds limiting. However, this is for the purpose of clarity of description and does not limit the application or scope of these aspects. In fact, all the different aspects can be combined and exchanged to provide more aspects. In addition, these aspects can also be combined and exchanged with the aspects described in the previous documents.

[0105] The aspects described and considered in this document can be implemented in many different forms. Fig.15 , 16 and 17 provide some embodiments, but other embodiments are contemplated, and Fig.15 , 16The discussion in 17 does not limit the breadth of implementation. At least one aspect generally relates to video encoding and decoding, and at least one other aspect generally relates to transmitting a generated or encoded bitstream. These and other aspects can be implemented as a method, an apparatus, a computer-readable storage medium storing instructions thereon for encoding or decoding video data according to any of the methods described, and / or a computer-readable storage medium storing thereon a bitstream generated according to any of the methods described.

[0106] In this application, the terms "reconstruction" and "decoding" are used interchangeably, the terms "pixel" and "sample" are used interchangeably, and the terms "image", "picture" and "frame" are used interchangeably. Usually, but not necessarily, the term "reconstruction" is used on the encoder side, while "decoding" is used on the decoder side.

[0107] Various methods are described herein, and each method includes one or more steps or actions for implementing the method. Unless a specific order of steps or actions is required for proper operation of the method, the order and / or use of specific steps and / or actions may be modified or combined.

[0108] Various methods and other aspects described herein may be used to modify a module, e.g. Fig.15 and Fig.16 Intra-frame prediction, entropy coding and / or decoding modules (160, 360, 145, 330) of the video encoder 100 and decoder 200 are shown. In addition, the present aspects are not limited to VVC or HEVC, and can be applied to other standards and proposals (whether pre-existing or developed in the future), as well as extensions of any such standards and proposals (including VVC and HEVC). Unless otherwise specified or technically excluded, the aspects described in this document can be used alone or in combination.

[0109] Various numerical values ​​are used in this document, for example, {{1,0}, {3,1}, {1,1}}. The specific values ​​are for example purposes, and the described aspects are not limited to these specific values.

[0110] Fig.15 An encoder 100 is shown. Variations of the encoder 100 are contemplated, but for clarity, the encoder 100 is described below without describing all contemplated variations.

[0111] Before being encoded, the video sequence may undergo pre-encoding processing (101), for example, applying a color transform to an input color picture (e.g., a transform from RGB 4:4:4 to YCbCr 4:2:0), or performing a remapping of input picture components to obtain a signal distribution that is more resilient to compression (e.g., using histogram equalization of one color component). Metadata may be associated with the pre-processing and appended to the bitstream.

[0112] In encoder 100, a picture is encoded by encoder elements as described below. The picture to be encoded is segmented (102) and processed in units such as CUs. Each unit is encoded using, for example, intra or inter mode. When encoding a unit in intra mode, it performs intra prediction (160). In inter mode, motion estimation (175) and compensation (170) are performed. The encoder decides (105) which of intra mode or inter mode to use for encoding the unit, and indicates the intra / inter decision, for example, by a prediction mode flag. The prediction residual is calculated, for example, by subtracting (110) the predicted block from the original image block.

[0113] The prediction residual is then transformed (125) and quantized (130). The quantized transform coefficients, along with motion vectors and other syntax elements, are entropy encoded (145) to output a bitstream. The encoder may skip the transform and directly quantize the untransformed residual signal. The encoder may bypass the transform and quantization, that is, encode the residual directly without applying the transform or quantization process.

[0114] The encoder decodes the coded block to provide a reference for further prediction. The quantized transform coefficients are dequantized (140) and inverse transformed (150) to decode the prediction residual. The decoded prediction residual is combined with the prediction block (155) to reconstruct the image block. A loop filter (165) is applied to the reconstructed picture to perform, for example, deblocking / SAO (sample adaptive offset) filtering to reduce coding artifacts. The filtered image is stored in a reference picture buffer (180).

[0115] Fig.16 2 shows a block diagram of a video decoder 200. In the decoder 200, the bitstream is decoded by the decoder elements as described below. The video decoder 200 generally performs the same operations as described above. Fig.15 The encoding path described is the reverse of the decoding path. Encoder 100 also typically performs video decoding as part of encoding the video data.

[0116] Specifically, the input of the decoder includes a video bitstream, which can be generated by the video encoder 100. The bitstream is first entropy decoded (230) to obtain transform coefficients, motion vectors and other encoding information. The picture segmentation information indicates how the picture is segmented. Therefore, the decoder can segment (235) the picture according to the decoded picture segmentation information. The transform coefficients are inverse quantized (240) and inverse transformed (250) to decode the prediction residual. The decoded prediction residual and the prediction block are combined (255) to reconstruct the image block. The prediction block can be obtained (270) from intra-frame prediction (260) or motion compensated prediction (i.e., inter-frame prediction) (275). A loop filter (265) is applied to the reconstructed image. The filtered image is stored in a reference picture buffer (280).

[0117] The decoded picture may be further processed by post-decoding processing (285), such as an inverse color transform (e.g., conversion from YCbCr 4:2:0 to RGB 4:4:4) or an inverse remapping that performs the inverse of the remapping process performed in the pre-encoding process (101). The post-decoding processing may use metadata derived in the pre-encoding process and signaled in the bitstream.

[0118] Fig.17 A block diagram of an example of a system in which various aspects and embodiments are implemented is shown. System 1000 can be embodied as a device including various components described below, and is configured to perform one or more aspects described herein. Examples of such devices include, but are not limited to, various electronic devices, such as personal computers, notebook computers, smart phones, tablet computers, digital multimedia set-top boxes, digital television receivers, personal video recording systems, connected home appliances and servers. The elements of system 1000 (alone or in combination) can be implemented in a single integrated circuit, multiple ICs and / or discrete components. For example, in at least one embodiment, the processing and encoder / decoder elements of system 1000 are distributed on multiple ICs and / or discrete components. In various embodiments, system 1000 is coupled to other similar systems or other electronic devices via, for example, a communication bus or by a dedicated input and / or output port communication. In various embodiments, system 1000 is configured to implement one or more aspects described herein.

[0119] The system 1000 includes at least one processor 1010, which is configured to execute instructions loaded therein to implement various aspects described in this document, for example. The processor 1010 may include embedded memory, input and output interfaces, and various other circuits known in the art. The system 1000 includes at least one memory 1020 (e.g., a volatile memory device and / or a non-volatile memory device). The system 1000 includes a storage device 1040, which may include non-volatile memory and / or volatile memory, including but not limited to EEPROM, ROM, PROM, RAM, DRAM, SRAM, flash memory, disk drive, and / or optical drive. As a non-limiting example, the storage device 1040 may include an internal storage device, a connected storage device, and / or a network accessible storage device.

[0120] The system 1000 includes a coder / decoder module 1030, which is configured to process data to provide encoded video or decoded video, and the coder / decoder module 1030 may include its own processor and memory. The coder / decoder module 1030 represents a module that may be included in a device to perform encoding and / or decoding functions. As is well known, a device may include one or both of the encoding and decoding modules. In addition, as known to those skilled in the art, the coder / decoder module 1030 may be implemented as an independent element of the system 1000, or may be incorporated into the processor 1010 as a combination of hardware and software.

[0121] Program code to be loaded onto the processor 1010 or the encoder / decoder 1030 to perform various aspects described herein may be stored in the storage device 1040 and subsequently loaded into the memory 1020 for execution by the processor 1010. According to various embodiments, one or more of the processor 1010, the memory 1020, the storage device 1040, and the encoder / decoder module 1030 may store one or more of various items during the execution of the processes described herein. Such stored items may include, but are not limited to, input video, decoded video or a portion of decoded video, bitstreams, matrices, variables, and intermediate or final results from processing equations, formulas, operations, and operation logic.

[0122] In several embodiments, memory inside the processor 1010 and / or the encoder / decoder module 1030 is used to store instructions and provide working memory for processing required during encoding or decoding. However, in other embodiments, memory external to the processing device (e.g., the processing device may be the processor 1010 or the encoder / decoder module 1030) is used for one or more of these functions. The external memory may be a memory 1020 and / or a storage device 1040, such as a dynamic volatile memory and / or a non-volatile flash memory. In several embodiments, an external non-volatile flash memory is used to store the operating system of the television. In at least one embodiment, a fast external dynamic volatile memory such as RAM is used as working memory for video encoding and decoding operations, such as for MPEG-2, HEVC, or VVC (Versatile Video Coding).

[0123] As shown in block 1130, input to the elements of system 1000 may be provided through various input devices. Such input devices include, but are not limited to: (i) an RF section that receives an RF signal transmitted over the air, such as by broadcast, (ii) a composite input terminal, (iii) a USB input terminal, and / or (iv) an HDMI input terminal.

[0124] In various embodiments, the input devices of block 1130 have respective associated input processing elements known in the art. For example, the RF portion may be associated with elements required for the following operations: (i) selecting a desired frequency (also referred to as selecting a signal, or band-limiting a signal to a frequency band), (ii) down-converting the selected signal, (iii) again limiting the frequency band to a narrower frequency band in some embodiments to select a signal frequency band that may be referred to as a channel, (iv) demodulating the down-converted and band-limited signal, (v) performing error correction, and (vi) demultiplexing to select the desired data packet stream. The RF portion of various embodiments includes one or more elements for performing these functions, such as a frequency selector, a signal selector, a frequency band limiter, a channel selector, a filter, a down-converter, a demodulator, an error corrector, and a demultiplexer. The RF portion may include a tuner that performs various of these functions, such as down-converting a received signal to a lower frequency (e.g., an intermediate frequency or a near-baseband frequency) or baseband. In a set-top box embodiment, the RF part and its associated input processing element receive the RF signal sent by wired (for example, cable) medium, and filter to the desired frequency band by filtering, down-conversion and again to perform frequency selection. Various embodiments rearrange the order of above-mentioned (and other) elements, remove some of them, and / or add other elements of similar or different functions. Adding element can include inserting element between existing element, for example, inserting amplifier and analog-to-digital converter. In various embodiments, the RF part includes antenna.

[0125] In addition, the USB and / or HDMI terminals may include corresponding interface processors for connecting the system 1000 to other electronic devices via USB and / or HDMI connections. It should be understood that various aspects of input processing, such as Reed-Solomon error correction, can be implemented as needed, for example, in a separate input processing IC or in the processor 1010. Similarly, aspects of USB or HDMI interface processing can be implemented as needed in a separate interface IC or in the processor 1010. The demodulated, error-corrected, and demultiplexed streams are provided to various processing elements, including, for example, the processor 1010 and the encoder / decoder 1030, which are combined with memory and storage elements to process the data streams required for presentation on the output device.

[0126] The various components of the system 1000 may be disposed within an integrated housing. Within the integrated housing, the various components may be interconnected and transmit data between them using a suitable connection arrangement 1140 (e.g., an internal bus known in the art), including an I2C bus, wiring, and a printed circuit board.

[0127] The system 1000 includes a communication interface 1050 capable of communicating with other devices via a communication channel 1060. The communication interface 1050 may include, but is not limited to, a transceiver configured to send and receive data through the communication channel 1060. The communication interface 1050 may include, but is not limited to, a modem or a network card, and the communication channel 1060 may be implemented, for example, in a wired and / or wireless medium.

[0128] In various embodiments, a wireless network such as IEEE 802.11 is used to transmit the data stream to the system 1000. The wireless signals of these embodiments are received through a communication channel 1060 and a communication interface 1050, for example, suitable for Wi-Fi communication. The communication channel 1060 of these embodiments is typically connected to an access point or router, which provides access to external networks including the Internet to allow streaming applications and other top-level communications. Other embodiments use a set-top box that transmits data through the HDMI connection of the input block 1130 to provide streaming data to the system 1000. Still other embodiments use the RF connection of the input block 1130 to provide streaming data to the system 1000.

[0129] The system 1000 can provide output signals to various output devices including a display 1100, a speaker 1110, and other peripherals 1120. The other peripherals 1120 include one or more of a stand-alone DVR, a disk player, a stereo system, a lighting system, and other devices that provide functions based on the output of the system 1000 in various examples of embodiments. In various embodiments, a communication protocol such as AV.Link, CEC, or other communication protocols are used between the system 1000 and the display 1100, the speaker 1110, or other peripherals 1120, allowing device-to-device control with or without user intervention. The output devices can be communicatively coupled to the system 1000 via dedicated connections through respective interfaces 1070, 1080, and 1090. Alternatively, the output devices can be connected to the system 1000 via a communication interface 1050 using a communication channel 1060. The display 1100 and the speaker 1110 can be integrated into a single unit with other components of the system 1000 in an electronic device (e.g., a television). In various embodiments, the display interface 1070 includes a display driver, such as a timing controller (T Con) chip.

[0130] For example, if the RF portion of input 1130 is part of a separate set-top box, the display 1100 and speaker 1110 may alternatively be separate from one or more other components. In various embodiments where the display 1100 and speaker 1110 are external components, the output signals may be provided through dedicated output connections, including, for example, an HDMI port, a USB port, or a COMP output.

[0131] The embodiments may be performed by computer software implemented by the processor 1010 or by hardware, or by a combination of hardware and software. As a non-limiting example, the embodiments may be implemented by one or more integrated circuits. As a non-limiting example, the memory 1020 may be of any type suitable for the technical environment and may be implemented using any appropriate data storage technology, such as optical storage devices, magnetic storage devices, semiconductor-based storage devices, fixed memory, and removable memory. As a non-limiting example, the processor 1010 may be of any type suitable for the technical environment and may include one or more of a microprocessor, a general-purpose computer, a special-purpose computer, and a processor based on a multi-core architecture.

[0132] Various implementations involve decoding. "Decoding" as used in this application may include, for example, all or part of the processing performed on the received coded sequence to produce a final output suitable for display. In various embodiments, such processing includes one or more processes typically performed by a decoder, such as entropy decoding, inverse quantization, inverse transform, and differential decoding. In various embodiments, such processing also includes or optionally includes processing performed by the decoder of the various implementations described in this application, for example, extracting weight indices to be used for various intra-frame prediction reference arrays.

[0133] As a further example, in one embodiment, "decoding" refers only to entropy decoding, in another embodiment, "decoding" refers only to differential decoding, and in another embodiment, "decoding" refers to a combination of entropy decoding and differential decoding. Whether the phrase "decoding process" is intended to specifically refer to a subset of operations or to generally refer to a broader decoding process will be clear based on the context of the specific description and is believed to be well understood by those skilled in the art.

[0134] Various implementations involve encoding. Similar to the above discussion about "decoding", "encoding" as used in this application may include, for example, all or part of the processing performed on an input video sequence to produce an encoded bitstream. In various embodiments, such processing includes one or more processes typically performed by an encoder, such as segmentation, differential coding, transforms, quantization, and entropy coding. In various embodiments, such processing also includes or optionally includes processing performed by encoders of various implementations described in this application, such as weighting of intra-frame prediction reference arrays.

[0135] As a further example, in one embodiment, "encoding" refers only to entropy encoding, in another embodiment, "encoding" refers only to differential encoding, and in another embodiment, "encoding" refers to a combination of differential encoding and entropy encoding. Whether the phrase "encoding process" is intended to specifically refer to a subset of operations or to generally refer to a broader encoding process will be clear based on the context of the specific description and is believed to be well understood by those skilled in the art.

[0136] Note that the syntax elements used here are descriptive terms. Therefore, they do not exclude the use of other syntax element names.

[0137] When a diagram is represented as a flow chart, it should be understood that it also provides a block diagram of the corresponding apparatus. Similarly, when a diagram is represented as a block diagram, it should be understood that it also provides a flow chart of the corresponding method / process.

[0138] Various embodiments refer to rate-distortion calculation or rate-distortion optimization. In particular, in the encoding process, a balance or trade-off between rate and distortion is usually considered, usually given a constraint on computational complexity. Rate-distortion optimization is usually described as minimizing a rate-distortion function, which is a weighted sum of rate and distortion. There are different solutions to the rate-distortion optimization problem. For example, these methods can be based on extensive testing of all coding options (including all considered modes or coding parameter values) and a complete evaluation of their coding costs and the associated distortion of the reconstructed signal after encoding and decoding. Faster methods can also be used to save coding complexity, in particular, to calculate approximate distortion based on a prediction or prediction residual signal rather than a reconstructed signal. A mixture of these two methods can also be used, such as using approximate distortion only for some possible coding options and full distortion for other coding options. Other methods only evaluate a subset of possible coding options. More generally, many methods use any of a variety of techniques to perform optimization, but optimization is not necessarily a comprehensive evaluation of coding costs and associated distortions.

[0139] The implementations and aspects described herein may be implemented, for example, in methods or processes, devices, software programs, data streams, or signals. Even if discussed only in the context of a single implementation form (e.g., discussed only as a method), the implementation of the features discussed may also be implemented in other forms (e.g., devices or programs). The device may be implemented, for example, in appropriate hardware, software, and firmware. The method may be implemented, for example, in a processor, which generally refers to a processing device, which includes, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. The processor also includes a communication device, for example, a computer, a mobile phone, a portable / personal digital assistant ("PDA"), and other devices that facilitate information communication between end users.

[0140] Reference to "one embodiment" or "an embodiment" or "an implementation" or "an implementation" and other variations thereof means that a particular feature, structure, characteristic, etc. described in connection with the embodiment is included in at least one embodiment. Thus, the appearances of the phrases "in one embodiment" or "in an embodiment" or "in an implementation" or "in an implementation" and any other variations thereof in various places herein are not necessarily all referring to the same embodiment.

[0141] Additionally, reference may be made herein to "determining" various information. Determining information may include, for example, one or more of estimating information, calculating information, predicting information, or retrieving information from a memory.

[0142] Additionally, reference may be made herein to "accessing" various information. Accessing information may include, for example, one or more of receiving information, retrieving information (e.g., from a memory), storing information, moving information, copying information, calculating information, determining information, predicting information, or estimating information.

[0143] Additionally, reference may be made herein to "receiving" various information. Like "accessing," receiving is a broad term. Receiving information may include one or more of the following, for example, accessing information or retrieving information (e.g., from a memory). Additionally, during operations such as storing information, processing information, sending information, moving information, copying information, erasing information, calculating information, determining information, predicting information, or estimating information, "receiving" is often involved in one way or another.

[0144] It should be understood that, for example, in the case of "A / B," "A and / or B," and "at least one of A and B," the use of any of " / ," "and / or," and "at least one of" is intended to include selecting only the first listed option (A), or only the second listed option (B), or both options (A and B). As another example, in the case of "A, B, and / or C" and "at least one of A, B, and C," such language is intended to include selecting only the first listed option (A), or only the second listed option (B), or only the third listed option (C), or only the first and second listed options (A and B), or only the first and third listed options (A and C), or only the second and third listed options (B and C), or all three options (A and B and C). This can be extended to any number of items listed, as will be appreciated by those of ordinary skill in the art and related arts.

[0145] In addition, as used herein, the term "signaling" refers to, among other things, indicating something to a corresponding decoder. For example, in some embodiments, the encoder signals a specific one of a plurality of weights to be used for an intra-frame prediction reference array. Thus, in an embodiment, the same parameters are used on the encoder side and the decoder side. Thus, for example, the encoder can send (explicit signaling) specific parameters to the decoder so that the decoder can use the same specific parameters. On the contrary, if the decoder already has specific parameters as well as other parameters, signaling can be used without sending (implicit signaling) to simply allow the decoder to know and select specific parameters. Bit savings are achieved in various embodiments by avoiding the transmission of any actual function. It should be understood that signaling can be implemented in a variety of ways. For example, in various embodiments, one or more syntax elements, flags, etc. are used to signal information to the corresponding decoder. Although the verb form of the term "signaling" is mentioned above, the term "signaling" can also be used as a noun here.

[0146] As will be apparent to those skilled in the art, implementations may generate various signals formatted to carry information that may be stored or transmitted. The information may include, for example, instructions for performing the method, or data generated by one of the described implementations. For example, a signal may be formatted to carry a bitstream of the described embodiment. Such a signal may, for example, be formatted as an electromagnetic wave (e.g., using a radio frequency portion of a spectrum) or a baseband signal. Formatting may include, for example, encoding a data stream and modulating a carrier with the encoded data stream. The information carried by the signal may be, for example, analog or digital information. As is well known, the signal may be transmitted over a variety of different wired or wireless links. The signal may be stored on a processor readable medium.

[0147] Embodiments may include one or more of the following features or entities, alone or in combination, across various claim categories and types:

[0148] • Modify the loop filter processing applied in the decoder and / or encoder.

[0149] · Enable multiple filter parameter sets and regions in the decoder and / or encoder.

[0150] • Insertion of syntax elements in the signaling that enable the decoder to identify the regions where the filter parameter sets are to be applied for loop filtering.

[0151] Based on these syntax elements, a set of filter parameters is selected to be applied to the decoder.

[0152] Apply loop filtering at the decoder, such as adaptive loop filtering and sample adaptive offset filtering.

[0153] • According to any of the embodiments discussed, loop filtering is performed at the encoder.

[0154] A bitstream or signal comprising one or more of the described syntax elements or variants thereof.

[0155] • Creating and / or sending and / or receiving and / or decoding a bitstream or signal comprising one or more of said syntax elements or variants thereof.

[0156] • A television, set-top box, mobile phone, tablet or other electronic device performing loop filtering according to any of the described embodiments.

[0157] A television, set-top box, mobile phone, tablet or other electronic device that performs loop filtering according to any of the described embodiments and displays (e.g., using a monitor, screen or other type of display) the resulting image.

[0158] A television, set-top box, mobile phone, tablet or other electronic device that tunes (eg, using a tuner) a channel to receive a signal including an encoded image and performs loop filtering according to any of the described embodiments.

[0159] A television, set-top box, mobile phone, tablet or other electronic device that receives over-the-air (e.g., using an antenna) a signal including an encoded image and performs loop filtering according to any of the described embodiments.

[0160] Various other generalized and specific inventions and claims are also supported and contemplated throughout the entire process of this disclosure.

[0161] Fig.18 An embodiment of a method 1800 for encoding a block of video data using the general aspects described herein is shown. The method begins at a start block 1801, and control proceeds to a function block 1810 to determine a region of a picture in which at least one reconstructed block of the picture is filtered using a common set of filter parameters. Control then proceeds from block 1810 to block 1818 to obtain a plurality of filter parameters. Control then proceeds from block 1818 to block 1830 to filter a region of a picture including at least one reconstructed block using a common set of filter parameters for blocks within the region. Control then proceeds from block 1830 to block 1840 to encode information and an encoded version of the region in a bitstream, the information including syntax indicating a set of filter parameters used to filter the region.

[0162] Fig.19 An embodiment of a method 1900 for decoding a block of video data using the general aspects described herein is shown. The method begins at a start block 1901, and control proceeds to a function block 1910 to decode a syntax from a bitstream, the syntax indicating a plurality of filter parameter sets for filtering a region of a picture. Control then proceeds from block 1910 to block 1920 to determine a region of the picture from the bitstream using a common filter parameter set for filtering at least one reconstructed block of the picture. Control proceeds from block 1920 to block 1930 to filter the at least one reconstructed block using the filter parameter set associated with the region containing the at least one reconstructed block. Control then proceeds from block 1930 to block 1940 to decode the filtered reconstructed block of the picture.

[0163] Fig. 20 One embodiment of an apparatus 2000 for encoding or decoding a block of video data is shown. The apparatus includes a processor 2010 and may be interconnected to a memory 2020 via at least one port. The processor 2010 and the memory 2020 may also have one or more additional interconnects to external connections.

[0164] Processor 2010 is configured to encode or decode video data by forming multiple reference arrays from reconstructed samples of a block of video data, predict a target pixel of the block of video data by applying a weight set selected from a plurality of weight sets to one or more of the plurality of reference arrays, respectively, calculating a final prediction of the target pixel of the video block as a function of the predictions from the one or more reference arrays, respectively, and encoding or decoding the video block using the final prediction.

Claims

1. A method for video encoding, comprising: determining a region of the picture in which at least one reconstructed block in the picture is to be filtered using a common set of filter parameters; obtaining a plurality of filter parameter sets; filtering a region of the picture including the at least one reconstructed block using a common set of filter parameters for blocks within the region; as well as Information and an encoded version of the region are encoded in a bitstream, the information comprising syntax indicating a set of filter parameters for filtering the region, and also comprising adaptive loop filter parameters encoded in a picture header, wherein the set of filter parameters is the same within the size of a filter block, each filter block belongs to one filter region, and a filter region is a sub-part of a slice, and wherein the adaptive loop filter parameters are signaled at a picture level or higher, and the filter block selects filter parameters from the set of filter parameters. 2 . The method according to claim 1 , wherein the syntax is an index indicating the filter parameter set.

3. The method of claim 1, wherein filtering is performed for a sample adaptive offset filter and the index is applicable to SAO blocks. 4 . The method of claim 1 , wherein the filter parameter set of the SAO filter can be used to filter other blocks in the SAO area. The method of claim 1 , wherein a set of filter parameters of an adaptive loop filter is signaled in a first filter block of a region.

6. The method according to claim 1, wherein: For adaptive loop filter time-domain prediction, the filter block of the current region uses the set of filter parameters corresponding to the co-located region in the reference picture.

7. The method according to claim 1, wherein: For an SAO block in a first column or a first row of an SAO area, sample adaptive offset filter parameters available for merging include filter parameters of a left or upper SAO block outside the SAO area. The method of claim 1 , wherein filter block size varies with region.

9. An apparatus for video encoding, comprising: A processor configured to: determining a region of the picture in which at least one reconstructed block in the picture is to be filtered using a common set of filter parameters; obtaining a plurality of filter parameter sets; filtering a region of the picture including the at least one reconstructed block using a common set of filter parameters for blocks within the region; as well as Information and an encoded version of the region are encoded in a bitstream, the information comprising syntax indicating a set of filter parameters for filtering the region, and also comprising adaptive loop filter parameters encoded in a picture header, wherein the set of filter parameters is the same within the size of a filter block, each filter block belongs to one filter region, and a filter region is a sub-part of a slice, and wherein the adaptive loop filter parameters are signaled at a picture level or higher, and the filter block selects filter parameters from the set of filter parameters.

10. The apparatus of claim 9, wherein the syntax is an index indicating the filter parameter set.

11. The apparatus of claim 9, wherein filtering is performed for a sample adaptive offset filter and the index is applicable to a SAO block. 12 . The apparatus of claim 9 , wherein the filter parameter set of the SAO filter can be used to filter other blocks in the SAO region.

13. The apparatus of claim 9, wherein a set of filter parameters of an adaptive loop filter is signaled in a first filter block of a region.

14. The device according to claim 9, wherein: For adaptive loop filter time-domain prediction, the filter block of the current region uses the set of filter parameters corresponding to the co-located region in the reference picture.

15. The device according to claim 9, wherein: For an SAO block in a first column or a first row of an SAO area, sample adaptive offset filter parameters available for merging include filter parameters of a left or upper SAO block outside the SAO area. The apparatus of claim 9 , wherein filter block size varies with region.

17. A method for video decoding, comprising: decoding syntax from a bitstream, the syntax indicating a plurality of sets of filter parameters for filtering a region of a picture, including adaptive loop filter parameters in a picture header; determining, from the bitstream, a region of the picture using a common set of filter parameters for filtering at least one reconstructed block of the picture; filtering the at least one reconstructed block using the set of filter parameters associated with the region containing the at least one reconstructed block; and The filtered reconstructed block of the picture is decoded, wherein a set of filter parameters is the same within the size of the filter block, each filter block belongs to a filter region, and a filter region is a sub-part of a slice, and wherein the adaptive loop filter parameters are signaled at a picture level or higher, and the filter block selects the filter parameters from the set of filter parameters. The method of claim 17 , wherein the syntax is an index indicating the filter parameter set.

19. The method of claim 17, wherein filtering is performed for a sample adaptive offset filter and the index is applicable to SAO blocks.

20. The method of claim 17, wherein the filter parameter set of the SAO filter can be used to filter other blocks in the SAO region.

21. The method of claim 17, wherein a set of filter parameters of an adaptive loop filter is signaled in a first filter block of a region.

22. The method according to claim 17, wherein: For adaptive loop filter time-domain prediction, the filter block of the current region uses the set of filter parameters corresponding to the co-located region in the reference picture.

23. The method according to claim 17, wherein: For an SAO block in a first column or a first row of an SAO area, sample adaptive offset filter parameters available for merging include filter parameters of a left or upper SAO block outside the SAO area.

24. The method of claim 17, wherein filter block size varies by region.

25. An apparatus for video decoding, comprising: A processor configured to: decoding syntax from a bitstream, the syntax indicating a plurality of sets of filter parameters for filtering a region of a picture, including adaptive loop filter parameters in a picture header; determining, from the bitstream, a region of the picture using a common set of filter parameters for filtering at least one reconstructed block of the picture; filtering the at least one reconstructed block using the set of filter parameters associated with the region containing the at least one reconstructed block; and The filtered reconstructed block of the picture is decoded, wherein a set of filter parameters is the same within the size of the filter block, each filter block belongs to a filter region, and a filter region is a sub-part of a slice, and wherein the adaptive loop filter parameters are signaled at a picture level or higher, and the filter block selects the filter parameters from the set of filter parameters.

26. The apparatus of claim 25, wherein the syntax is an index indicating the filter parameter set.

27. The apparatus of claim 25, wherein filtering is performed for a sample adaptive offset filter and the index is applicable to a SAO block.

28. The apparatus of claim 25, wherein the filter parameter set of the SAO filter can be used to filter other blocks in the SAO region.

29. The apparatus of claim 25, wherein a set of filter parameters for an adaptive loop filter is signaled in a first filter block of a region.

30. The device according to claim 25, wherein: For adaptive loop filter time-domain prediction, the filter block of the current region uses the set of filter parameters corresponding to the co-located region in the reference picture.

31. The apparatus of claim 25, wherein: For an SAO block in a first column or a first row of an SAO area, sample adaptive offset filter parameters available for merging include filter parameters of a left or upper SAO block outside the SAO area.

32. The apparatus of claim 25, wherein filter block size varies with region.

33. A device for video encoding and decoding, comprising: An apparatus according to any one of claims 25 to 32; as well as At least one of the following: (i) an antenna configured to receive a signal, the signal comprising a video block, (ii) a frequency band limiter configured to limit the received signal to a frequency band including the video block, and (iii) a display configured to display an output representing the video block.

34. A computer program product comprising instructions which, when executed by a computer, cause the computer to perform the method of any one of claims 1-8 and 17-24.

Citation Information

Patent Citations

  • Method and Apparatus for Improved In-Loop Filtering

    US20130259118A1