Supported histogram derivation for decoder-side intra mode derivation
By analyzing reconstructed samples from both a main and support template region to derive a histogram of gradients, the method enhances intra-prediction mode determination in video coding, improving compression efficiency and accuracy.
Patent Information
- Application Number
- PCT/IB2025/056574
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-07-09
- Filing Date
- 2025-06-27
- Publication Date
- 2026-01-15
AI Technical Summary
Existing video coding technologies face challenges in accurately determining intra-prediction modes for video blocks, leading to inefficiencies in data compression and decompression processes.
The proposed solution involves using decoder-side intra mode derivation processes that analyze reconstructed samples from a main template region and a support template region to derive a histogram of gradients, refining the directionality and amplitude calculations by incorporating additional samples from the support region to enhance prediction accuracy.
This approach improves the estimation of intra-prediction modes, leading to more accurate video coding and enhanced compression efficiency by leveraging additional contextual information from surrounding samples.
Smart Images

Figure IB2025056574_15012026_PF_FP_ABST
Abstract
Description
SUPPORTED HISTOGRAM DERIVATION FOR DECODER-SIDE INTRA MODE DERIVATION TECHNICAL FIELD
[0001] The examples and non-limiting embodiments relate generally to video coding and, more particularly, intra-prediction. BACKGROUND
[0002] It is known to perform data compression and data decompression in a multimedia system. SUMMARY OF THE INVENTION
[0003] The following summary is merely intended to be an example. The summary is not intended to limit the scope of the claims.
[0004] In accordance with one embodiment, an example is provided with an apparatus comprising: at least one processor; and at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to perform: determining a current block; and producing an intra-prediction for the current block using at least one decoder-side intra mode derivation process, where the at least one decoder-side intra mode derivation process comprises determining a histogram of gradients based on first reconstructed samples of a main template region in a surrounding of the current block, where the determining of the histogram of gradients comprises analyzing reconstructed samples of a second template region comprising second reconstructed samples, where at least one of the second reconstructed samples is not part of the main template region.
[0005] In accordance with another embodiment, an example is provided with a method comprising: determining a current block; and producing an intra-prediction for the current block using at least one decoder-side intra mode derivation process, where the at least one decoder-side intra mode derivation process comprises determining a histogram of gradients based on first reconstructed samples of a main template region in a surrounding of the current block, where the determining of the histogram of gradients comprises analyzingreconstructed samples of a second template region comprising second reconstructed samples, where at least one of the second reconstructed samples is not part of the main template region.
[0006] In accordance with another embodiment, an example is provided with an apparatus comprising: means for determining a current block; and means for producing an intra-prediction for the current block using at least one decoder-side intra mode derivation process, where the at least one decoder-side intra mode derivation process comprises determining a histogram of gradients based on first reconstructed samples of a main template region in a surrounding of the current block, where the determining of the histogram of gradients comprises analyzing reconstructed samples of a second template region comprising second reconstructed samples, where at least one of the second reconstructed samples is not part of the main template region.
[0007] In accordance with another embodiment, an example is provided with a non- transitory computer readable medium comprising program instructions that, when executed by an apparatus, cause the apparatus to perform at least the following: determining a current block; and producing an intra-prediction for the current block using at least one decoder- side intra mode derivation process, where the at least one decoder-side intra mode derivation process comprises determining a histogram of gradients based on first reconstructed samples of a main template region in a surrounding of the current block, where the determining of the histogram of gradients comprises analyzing reconstructed samples of a second template region comprising second reconstructed samples, where at least one of the second reconstructed samples is not part of the main template region.
[0008] In accordance with another embodiment, an example is provided with an apparatus comprising: at least one processor; and at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to perform: determining a current block; and producing an intra-prediction for the current block using at least one decoder-side intra mode derivation process, where the at least one decoder-side intra mode derivation process comprises determining a histogram of gradients based on reconstructed samples of a main template region in a surrounding of the current block, where the determining of the histogram of gradients comprises deriving a first directionality and a first amplitude for a first set of the reconstructed samples, and where the derivation of thefirst directionality or first amplitude further comprises deriving a second directionality or second amplitude for at least one second set of reconstructed samples.
[0009] In accordance with another embodiment, an example is provided with a method comprising: determining a current block; and producing an intra-prediction for the current block using at least one decoder-side intra mode derivation process, where the at least one decoder-side intra mode derivation process comprises determining a histogram of gradients based on reconstructed samples of a main template region in a surrounding of the current block, where the determining of the histogram of gradients comprises deriving a first directionality and a first amplitude for a first set of the reconstructed samples, and where the derivation of the first directionality or first amplitude further comprises deriving a second directionality or second amplitude for at least one second set of reconstructed samples.
[0010] In accordance with another embodiment, an example is provided with an apparatus comprising: means for determining a current block; and means for producing an intra-prediction for the current block using at least one decoder-side intra mode derivation process, where the at least one decoder-side intra mode derivation process comprises determining a histogram of gradients based on reconstructed samples of a main template region in a surrounding of the current block, where the determining of the histogram of gradients comprises deriving a first directionality and a first amplitude for a first set of the reconstructed samples, and where the derivation of the first directionality or first amplitude further comprises deriving a second directionality or second amplitude for at least one second set of reconstructed samples.
[0011] In accordance with another embodiment, an example is provided with a non- transitory computer readable medium comprising program instructions that, when executed by an apparatus, cause the apparatus to perform at least the following: determining a current block; and producing an intra-prediction for the current block using at least one decoder- side intra mode derivation process, where the at least one decoder-side intra mode derivation process comprises determining a histogram of gradients based on reconstructed samples of a main template region in a surrounding of the current block, where the determining of the histogram of gradients comprises deriving a first directionality and a first amplitude for a first set of the reconstructed samples, and where the derivation of the first directionality orfirst amplitude further comprises deriving a second directionality or second amplitude for at least one second set of reconstructed samples.
[0012] According to some embodiments, there is provided the subject matter of the independent claims. Some further embodiments are provided in subject matter of the dependent claims. BRIEF DESCRIPTION OF THE DRAWINGS
[0013] The foregoing embodiments and other features are explained in the following description, taken in connection with the accompanying drawings, wherein:
[0014] FIG. 1 shows a decoder side intra mode derivation (DIMD) template comprising pixels outside of a prediction block.
[0015] FIG. 2 shows one example of a location of a main template relative to a current block.
[0016] FIG.3 shows one example of a location of a support template relative to the current block.
[0017] FIG.4 shows an example of a 3x3 window and positions.
[0018] FIG.5 shows an example of a 3x3 window and positions.
[0019] FIG.6 is a block diagram illustrating a system in accordance with an example.
[0020] FIG. 7 is an example apparatus configured to implement the examples described herein.
[0021] FIG. 8 shows a representation of an example of non-volatile memory media used to store instructions that implement the examples described herein.
[0022] FIG.9 shows an encoder according to an embodiment.
[0023] FIG.10 shows a decoder according to an embodiment.
[0024] FIG.11 is a diagram illustrating an example method.
[0025] FIG.12 is a diagram illustrating an example method. DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS
[0026] Versatile Video Coding (VVC) is a new international video coding standard and Enhanced Compression Model (ECM) is a software built on top of VVC’s reference software, describing algorithms and tools for potentially a future video coding standard that is currently under the development by JVET. Both VVC and ECM are block-based video coding standards, where an input picture is divided into CTUs, and each CTU may be further split into CUs. A CU (or block) is coded in either inter coding mode or intra coding mode. If the block is in inter coding mode, encoder searches for a temporal prediction block in reference picture(s), and signals decoder how to find the same prediction block in reference picture(s) at the decoder end. If the block is in intra coding mode, encoder constructs a spatial prediction block from the current picture, and signal decoder how to form the same spatial prediction block from the current picture at the decoder end.
[0027] Decoder side intra mode derivation (DIMD) is an intra tool used by ECM to derive intra prediction mode of a block by analyzing the directionality of the texture of the neighboring reconstructed samples located in a template region associated with the block. The DIMD template region is located at top, top-left, and left sides of the current block. A directional gradient comprising direction and strength (or amplitude) is computed for certain pixels in the template as shown in FIG.1. The aggregated amplitude for each direction from pixels in the template is then used to build a histogram of gradients. The histogram is used to determine one or more intra-prediction mode(s) and associated blending weights, to be used to predict the block. Specifically, predictors are generated for these intra modes, and also for an additional pre-determined mode (which can be the Planar mode, or can be a block-vector based prediction mode). Then the final prediction for the current block is generated by combining these predictors by means of sample-wise or uniform weighting, using the derived weights.
[0028] Features as described herein may be used in regard to next generation video coding standardization, including efforts towards developing the H.267 video coding standard, and the ECM exploration reference software model.
[0029] In DIMD, directionality of texture is derived for each neighboring sample in the template region, using 3x3 neighboring samples of that sample. This derivation is performed in several steps. First, the horizontal and vertical direction strengths (Dx and Dy) are calculated using 3x3 neighboring samples of the reconstructed sample in the template. The corresponding region on the Intra prediction mode (angle) is determined using sign of Dx and Dy. Then the ratio of Dx / Dy is calculated, and the corresponding angle index is determined using the ratio value and a table that maps the ratio to proper angle index. Then the final directional intra mode for that reconstructed sample in the template is determined using the region and derived angle. The amplitude (or strength) of this intra mode is derived as the sum of absolute values of Dx and Dy.
[0030] The intra mode (corresponding to a given directionality) and its corresponding amplitude are derived as above for each reconstructed sample in the template. These are then collected into a histogram of gradients, namely a histogram collecting for each intra mode the cumulative amplitude of all neighboring samples with that directionality. Finally, a pre-determined number of intra modes are derived from the histogram of gradients, by finding the dominant intra modes, namely the modes with the highest amplitudes in the histogram. The weights of each extracted intra mode are determined based on these amplitudes, where higher amplitudes correspond to higher weights. A fixed weight is typically assigned to a pre-determined mode, which is blended together with the determined intra modes to form the final DIMD prediction. Such pre-determined mode may be the Planar mode, or may be a block-vector based predictor.
[0031] DIMD is considered in ECM as an option signaled at the encoder side. In addition, the DIMD modes (prior to blending) are also included in the list of Most Probable Modes (MPM) for signaling as individual MPM candidates.
[0032] FIG. 1 shows a DIMD template comprising pixels outside of a prediction block 100, namely pixels 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, and 119.
[0033] Described herein is a method for producing an intra-prediction for a given block using at least one decoder-side intra mode derivation process, where the intra-prediction process comprises deriving a histogram of gradients based on already reconstructed samplesin the surrounding of the given block, where the histogram of gradients is determined by analyzing reconstructed samples within a main template region, where the computation of the histogram of gradients further involves analyzing reconstructed samples within a support template region.
[0034] Also described herein is a method for producing an intra-prediction for a given block using at least one decoder-side intra mode derivation process, where the intra- prediction process comprises deriving a histogram of gradients based on already reconstructed samples in the surrounding of the given block, where the derivation of the histogram of gradients includes deriving a directionality and an amplitude for a given set of reconstructed samples, where the derivation of the amplitude further includes deriving a directionality for another, different set of reconstructed samples.
[0035] The computation of the histogram of gradients could include computing an intra mode direction and amplitude for a given window of reconstructed samples centered around a reconstructed sample within a main template region. As an example, a 3x3 window of reconstructed samples could be used. As an example, a main template region could include the region comprising three lines of reconstructed samples located adjacent and above the current block. As an example, a main template region could include the region comprising three columns of reconstructed samples located adjacent and on the left of the current block.
[0036] The directionality of the intra mode determined in the main template region may not be accurate. As described herein, in order to reinforce or improve the estimation of this directionality, an additional support template region may be considered. As an example, a support template region may include the region comprising three lines of reconstructed samples located above the current block, where the support template region and the current block are separated by one line of reconstructed samples. Referring also to FIGS.2 and 3, FIG. 2 illustrates a main template or main template region 402 relative to a current block 404, and FIG.3 illustrates a support template or support template region 502 relative to the current block 404. Each of the templates have multiple samples. In the example shown the main template region 402 has 12 samples (3 rows x 4 columns), and the support template region 502 has 12 samples (3 rows x 4 columns). The support template region 502 is shown as separated by one line 504 from the current block versus the main template and the current block. In another example, the support template region may include the region comprisingthree columns of reconstructed samples located on the left the current block, where the support template region and the current block are separated by one column of reconstructed samples.
[0037] When computing a given direction and amplitude for a given sample, a first estimate may be computed by analyzing samples extracted exclusively from the main template or main template region 402. This first estimate can then be refined by analyzing samples extracted exclusively from the support template region 502. As an example, the amplitude can be scaled by a factor that depends on the difference between a first direction computed by analyzing samples extracted from the main template, and a second direction computed by analyzing samples extracted from the support template.
[0038] An example method may be provided to produce an intra-prediction for a given block using at least one decoder-side intra mode derivation process, where the intra- prediction process comprises deriving a histogram of gradients based on already reconstructed samples in the surrounding of the given block, where the derivation of the histogram of gradients includes deriving a directionality and an amplitude for a given set of reconstructed samples, where the derivation of the directionality or amplitude further includes deriving a directionality or amplitude for another, different set of reconstructed samples.
[0039] The following is given as an example. Consider an origin (0,0) is located at the top-left corner of the current block 414 as in Fig. 4. Consider, as an example, that the DIMD template 412 is L-shaped, formed of three lines of samples above the current block 414, plus three columns on the left of the current block 414, plus a 3x3 square of samples located on the top-left of the current block, as illustrated with the 33 position boxes of the DIMD template 412 in Fig.4. Consider a main reconstructed sample from the DIMD template 412 above at position (0,-2). This main reconstructed sample is marked at “X” in Fig. 4. For that main reconstructed sample, a 3x3 window of reconstructed samples is considered, centered around the main reconstructed sample X, and formed of samples at nine positions (-1, -3), (0, -3), (1, -3), (-1, -2), (0, -2), (1, -2), (-1, -1), (0, -1), (1, -1); marked by “X” and “O”s in FIG.4. Then, for example, two matrices Wx and Wy can be used. The coefficients given for those matrices can be convolved with the reconstructed samples in the window and as a result corresponding horizontal and vertical direction strengths, Dx andDy, can be derived. Convolution implies sample-wise multiplying the reconstructed samples with the coefficients in the matrices, and then adding the results together. As an example, the Wx and Wy matrices can be pre-determined as follows: 10 −1 1 2 1^^ = ^2 0 −2^ ^^ = ^ 0 0 0 ^1 0 −1 −1 −2 −1Or, as another example,10 −1 −1 −2 −1^^ = ^2 0 −2^ ^^ = ^ 0 0 0 ^1 0 −1 1 2 1Then an amplitude cansample, for instance as: Amp = abs(Dx) + abs(Dy). Also, a direction can be computed as: Dir = atan2(Dy, Dx).
[0040] The computation of the direction can be approximated. As an example, the corresponding region on the Intra prediction mode (angle) can be determined using the sign of Dx and Dy. Then the ratio of Dx / Dy can be calculated, and the corresponding angle index is determined using the ratio value and a table that maps the ratio to proper angle index. Then the direction can be determined using the region and the derived angle index.
[0041] The computation of the amplitude or direction can be refined, for example, considering a different, support reconstructed sample. For example, a support reconstructed sample at position (0,-3) can be considered, as marked at “Y” as in Fig. 5. The support template 512 may be formed of all samples in the L-shape of the 39 position boxes as shown in Figure 5. In this example, compared to the main template 412 relative to the current block 414 shown in FIG. 4, the support template 512 in FIG. 5 is shown as separated by one L- shaped line 514 from the current block 414. As illustrated with this example, the support template can have a different shape / size than the main template. The main template may generally be formed of an L-shaped template, with three lines above, three lines left, and the 3x3 square on the top-left (as in Fig 4). The support template may also be formed of three lines above and the three lines on the left but as illustrated with FIG. 5, these may bedisplaced by one sample above and one sample on the left. As a result, if one consider the “total” area covered by the template 514, the area of the support template 514 will be one sample higher and wider than the total area of the main template 412. Please note that this is merely one type of example and should not be considered as limiting.
[0042] In general, as an example, for a main reconstructed sample in the template above the current block, then a support reconstructed sample located directly above the main reconstructed sample can be considered. In general, as an example, for a main reconstructed sample in the template on the left of the current block, then a support reconstructed sample located directly on the left of the main reconstructed sample can be considered.
[0043] As an example, the location of the support reconstructed sample can be determined based on the direction. As an example, for a main reconstructed sample at a given location, if Dir is a vertical direction mode, then the support reconstructed sample may be located above that location. As an example, for a main reconstructed sample at a given location, if Dir is a horizontal direction mode, then the support reconstructed sample may be located on the left of that location. As an example, for a main reconstructed sample at a given location, if Dir is a diagonal direction mode, then the support reconstructed sample may be located above-left that location.
[0044] For that support reconstructed sample, a 3x3 window of reconstructed samples is considered. As an example, for the support reconstructed sample at location (0,-3), then a 3x3 window is considered formed of samples at positions (-1, -4), (0, -4), (1, -4), (-1, -3), (0, -3), (1, -3), (-1, -2), (0, -2), (1, -2).
[0045] Then, a support direction and support amplitude can be computed as Dir_support and Amp_support.
[0046] As an example, Amp can be scaled by a factor that depends on the difference between Dir and Dir_support. As an example, a given weight W can be computed where a higher weight is assigned in case the difference between Dir and Dir_support is small. As an example, a given weight can be determined in case Dir = Dir_support, where a different, smaller weight is determined if Dir ≠ Dir_support.
[0047] As another example, the difference between Dir and Dir_support can bedefined as: Diff_dir = abs(Dir - Dir_support).
[0048] As an example, a max difference Max_diff can be considered, and W can be computed as: If Diff_dir > Max_diff, then W = 1.0 Else, W = 1.25 – Diff_dir / 16.0
[0049] As an example, parameters Max_weight and Weight_offset can be defined, and W can be computed as: If Diff_dir > Max_diff, then W = 1.0 Else, W = Max_weight – Diff_dir / Weight_offset
[0050] In one type of example embodiment, when considering a given support reference sample to compute a support direction, a 3x3 window of reconstructed samples may be considered centered around the support reconstructed sample.
[0051] In one type of example embodiment, more than one support direction can be computed, where each support direction is computed using a different set of reconstructed samples. In one type of example embodiment, the reference sample on the left of the main reference sample can be used to compute a support direction. In one type of example embodiment, a reference sample on the right of the main reference sample can be used to compute a support direction. In one type of example embodiment, the weight W can be determined based on one or more support directions computed on one or more support reference samples. In one type of example embodiment, the main amplitude or maindirection for a given main reconstructed sample can be computed based on one or more support directions computed on one or more support reference samples. In one type of example embodiment, the main amplitude or main direction for a given main reconstructed sample can be computed based on one or more support amplitudes computed on one or more support reference samples.
[0052] As an example, if more than one support direction are computed, then an average direction can be computed to refine the computation of the main amplitude and main direction. As an example, if more than one support direction are computed, then an average support direction can be computed where each support direction may be scaled by a weight depending on the distance between the main reconstructed sample and the corresponding support reconstructed sample.
[0053] As an example, the main direction can be modified depending on the support direction. As an example, a new main direction can be computed as the weighted average of the original main direction and the support direction. As an example, the weights for the weighted average can be computed depending on the distance between the main reconstructed sample and the support reconstructed sample.
[0054] As an example, different matrices can be used to compute a direction and amplitude. As an example, 2x2 matrices can be used. As an example, 2x3 matrices can be used. As an example, 3x2 matrices can be used. Please note that these are merely examples and should not be considered as limiting.
[0055] FIG.6 is a block diagram illustrating a system 600 in accordance with several examples. In an example, the encoder 630 is used to encode an image or video from the scene 615, and the encoder 630 is implemented in a transmitting apparatus 680. The encoder 630 produces a bitstream 610 comprising signaling that is received by the receiving apparatus 682, which implements a decoder 640. The encoder 630 sends the bitstream 610 that comprises the herein described signaling. The decoder 640 forms the image or video for the scene 615-1, and the receiving apparatus 682 would present this to the user, e.g., via a smartphone, television, or projector among many other options.
[0056] In some examples, the transmitting apparatus 680 and the receiving apparatus682 are at least partially within a common apparatus, and for example are located within a common housing 650. In other examples the transmitting apparatus 680 and the receiving apparatus 682 are at least partially not within a common apparatus and have at least partially different housings. Therefore, in some examples, the encoder 630 and the decoder 640 are at least partially within a common apparatus, and for example are located within a common housing 650. For example, the common apparatus comprising the encoder 630 and decoder 640 implements a codec. In other examples the encoder 630 and the decoder 640 are at least partially not within a common apparatus and have at least partially different housings, but when together still implement a codec.
[0057] In some examples, 3D media from the capture (e.g., volumetric capture) at a viewpoint 612 of the scene 615, which includes a person 613) is converted via projection to a series of 2D representations with occupancy, geometry, attributes and / or displacements. Additional atlas information is also included in the bitstream to enable inverse reconstruction. For decoding, the received bitstream 610 is separated into its components with atlas information; occupancy, geometry, displacement, and attribute 2D representations. A 3D reconstruction is performed to reconstruct the scene 615-1 created looking at the viewpoint 612-1 with a “reconstructed” person 613-1. The “-1” are used to indicate that these are reconstructions of the original. As indicated at 620, the decoder 640 performs an action or actions based on the received signaling.
[0058] Encoding 690 performs directional block boundary smoothing, based on the examples described herein. Decoding 692 performs directional block boundary smoothing, based on the examples described herein.
[0059] FIG. 7 is an example apparatus 700, which may be implemented in hardware, configured to implement the examples described herein. The apparatus 700 comprises one or more processors 702 (e.g., an FPGA and / or CPU and / or GPU), one or more memories 704 including computer program code 705, the computer program code 705 having instructions to carry out the methods described herein, wherein the one or more memories 704 and the computer program code 705 are configured to, with the one or more processors 702, cause the apparatus 700 to implement circuitry, a process, component, module, or function (implemented with control module 706) to implement the examples described herein.
[0060] Apparatus 700 may be a smartphone, personal digital device or assistant, smart television, laptop, pad, tablet, head-mounted display (HMD), or other user device or terminal device. The memory 704 may be a non-transitory memory, a transitory memory, a volatile memory (e.g. RAM), or a non-volatile memory (e.g., ROM).
[0061] Directional block boundary smoothing 730 implements the examples described herein related to directional block boundary smoothing.
[0062] The apparatus 700 includes a display and / or I / O interface 708, which includes user interface (UI) circuitry and elements, that may be used to display features or a status of the methods described herein (e.g., as one of the methods is being performed or at a subsequent time), or to receive input from a user such as with using a keypad, camera, touchscreen, touch area, microphone, biometric recognition, one or more sensors, etc. The apparatus 700 includes one or more communication e.g. network (N / W) interfaces (I / F(s)) 710. The communication I / F(s) 710 may be wired and / or wireless and communicate over the Internet / other network(s) via any communication technique including via one or more links 724. The communication I / F(s) 710 may comprise one or more transmitters or one or more receivers.
[0063] The transceiver 716 comprises one or more transmitters 718 and one or more receivers 720. The transceiver 716 and / or communication I / F(s) 710 may comprise standard well-known components such as an amplifier, filter, frequency-converter, (de)modulator, and encoder / decoder circuitries and one or more antennas, such as antennas 714 used for communication over wireless link 726.
[0064] The control module 706 of the apparatus 700 comprises one of or both parts 706-1 and / or 706-2, which may be implemented in a number of ways. The control module 706 may be implemented in hardware as control module 706-1, such as being implemented as part of the one or more processors 702. The control module 706-1 may be implemented also as an integrated circuit or through other hardware such as a programmable gate array. In another example, the control module 706 may be implemented as control module 706-2, which is implemented as computer program code (having corresponding instructions) 705 and is executed by the one or more processors 702. For instance, the one or more memories 704 store instructions that, when executed by the one or more processors 702, cause theapparatus 700 to perform one or more of the operations as described herein. Furthermore, the one or more processors 702, one or more memories 704, and example algorithms (e.g., as flowcharts and / or signaling diagrams), encoded as instructions, programs, or code, are means for causing performance of the operations described herein.
[0065] The apparatus 700 to implement the functionality of control module 706 may correspond to any of the apparatuses depicted herein. Alternatively, apparatus 700 and its elements may not correspond to any of the other apparatuses depicted herein, as apparatus 700 may be part of a self-organizing / optimizing network (SON) node or other node, such as a node in a cloud.
[0066] The apparatus 700 may also be distributed throughout the network including within and between apparatus 700 and any network element (such as a base station and / or terminal device and / or user equipment).
[0067] Interface 712 enables data communication and signaling between the various items of apparatus 700, as shown in FIG. 7. For example, the interface 712 may be one or more buses such as address, data, or control buses, and may include any interconnection mechanism, such as a series of lines on a motherboard or integrated circuit, fiber optics or other optical communication equipment, and the like. Computer program code (e.g. instructions) 705, including control module 706 may comprise object-oriented software configured to pass data or messages between objects within computer program code 705. Computer program code (e.g. instructions) 705, including control module 706 may comprise procedural, functional, or scripting code. The apparatus 700 need not comprise each of the features mentioned, or may comprise other features as well. The various components of apparatus 700 may at least partially reside in a common housing 728, or a subset of the various components of apparatus 700 may at least partially be located in different housings, which different housings may include common housing 728.
[0068] FIG. 8 shows a schematic representation of non-volatile memory media 800a (e.g. computer / compact disc (CD) or digital versatile disc (DVD)) and 800b (e.g. universal serial bus (USB) memory stick) and 800c (e.g. cloud storage for downloading instructions and / or parameters 802 or receiving emailed instructions and / or parameters 802) storing instructions and / or parameters 802 which when executed by a processor allows theprocessor to perform one or more of the operations of the methods described herein. Instructions and / or parameters 802 may represent or correspond to a non-transitory computer readable medium.
[0069] FIG. 9 shows an encoder 900 according to an embodiment. FIG. 9 illustrates an image to be encoded (In), a predicted representation of an image block (P′n), a prediction error signal (Dn), a reconstructed prediction error signal (D′n), a preliminary reconstructed image (I′n), a final reconstructed image (R′n), a transform (T) and inverse transform (T−1), a quantization (Q) and inverse quantization (Q−1), entropy encoding (E), a reference frame memory (RFM), inter prediction (Pinter), intra prediction (Pintra), mode selection (MS) and filtering (F). Directional block boundary smoothing 930 within inter prediction (Pinter) and intra prediction (Pintra) implements the examples described herein related to directional block boundary smoothing.
[0070] FIG.10 shows a decoder 1000 according to an embodiment. FIG.10 illustrates a predicted representation of an image block (P′n), a reconstructed prediction error signal (D′n), a preliminary reconstructed image (I′n), a final reconstructed image (R′n), an inverse transform (T−1), an inverse quantization (Q−1), an entropy decoding (E1), a reference frame memory (RFM), a prediction (either inter or intra) (P), and filtering (F). Directional block boundary smoothing 1030 within prediction (either inter or intra) (P) implements the examples described herein related to directional block boundary smoothing.
[0071] An example embodiment may be provided with an apparatus comprising: at least one processor; and at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to perform: determining a current block; and producing an intra-prediction for the current block using at least one decoder-side intra mode derivation process, where the at least one decoder-side intra mode derivation process comprises determining a histogram of gradients based on first reconstructed samples of a main template region in a surrounding of the current block, where the determining of the histogram of gradients comprises analyzing reconstructed samples of a second template region comprising second reconstructed samples, where at least one of the second reconstructed samples is not part of the main template region.
[0072] At least one of the second reconstructed samples may be part of the maintemplate region. The reconstructed samples of the main template region may include samples adjacent to the current block. The reconstructed samples of the second template region may be spaced from the current block. The determining of the histogram of gradients may comprise computing an intra mode direction and amplitude for a plurality of the reconstructed samples within the main template region. The computation of an intra mode direction and amplitude for a given reconstructed sample may comprise multiplying reconstructed sample values within a 3x3 window centered on the reconstructed sample by pre-determined coefficients. The main template region may comprise three lines of the reconstructed samples adjacent and above the current block. The main template region may comprise three columns of reconstructed samples located adjacent and on a left of the current block. The support template region may comprise three lines of the second reconstructed samples located above the current block, where the support template region and the current block are offset by at least one line of the reconstructed samples. The support template region may comprise three columns of the second reconstructed samples located on the left the current block, where the support template region and the current block are offset by at least one column of the reconstructed samples. The instructions, when executed by the at least one processor, may cause the apparatus at least to perform: determining direction and amplitude for a plurality of the reconstructed samples, where the determining of the direction and amplitude for the plurality of the reconstructed samples comprises analyzing the plurality of the reconstructed samples for determining a first estimate, where the first estimate comprises the plurality of the reconstructed samples being exclusively from the main template region. The instructions, when executed by the at least one processor, may cause the apparatus at least to perform: determining direction and amplitude for another plurality of the reconstructed samples, where the determining of the direction and amplitude for the another plurality of the reconstructed samples comprises analyzing the another plurality of the reconstructed samples for refining the first estimate, where the refining of the first estimate comprises the another plurality of the reconstructed samples being exclusively from the support template region. The instructions, when executed by the at least one processor, may cause the apparatus at least to perform: scaling an amplitude by a factor that depends on a difference between a first direction computed by analyzing a plurality of the reconstructed samples extracted from the main template region, and a second direction computed by analyzing a plurality of the reconstructed samples extracted from thesupport template region. The instructions, when executed by the at least one processor, may cause the apparatus at least to perform: scaling an amplitude computed by analyzing a plurality of the reconstructed samples extracted from the main template region by a factor that depends on a direction computed by analyzing a plurality of the reconstructed samples extracted from the support template region. The producing of the intra-prediction for the current block using the at least one decoder-side intra mode derivation process may comprise more than one support direction being computed, where each support direction is computed using an at least partially different set of the reconstructed samples. The computing of the intra mode direction and amplitude for a given reconstructed sample may comprise more than one support direction being computed, where each support direction is computed using an at least partially different set of the reconstructed samples. The computing of the intra mode direction and amplitude for a given reconstructed sample may comprise determining a weight based on a plurality of support directions computed on a plurality of the second reconstructed samples of the support template region.
[0073] Referring also to FIG. 11, an example embodiment may be provided with a method 1100 comprising: determining a current block as illustrated with block 1110; and producing an intra-prediction for the current block using at least one decoder-side intra mode derivation process as illustrated with block 1120, where the at least one decoder-side intra mode derivation process comprises determining a histogram of gradients based on first reconstructed samples of a main template region in a surrounding of the current block, where the determining of the histogram of gradients comprises analyzing reconstructed samples of a second template region comprising second reconstructed samples, where at least one of the second reconstructed samples is not part of the main template region. At least one of the second reconstructed samples may be part of the main template region. The reconstructed samples of the main template region may include samples adjacent to the current block. The reconstructed samples of the second template region may be spaced from the current block. The determining of the histogram of gradients may comprise computing an intra mode direction and amplitude for a plurality of the reconstructed samples within the main template region. The computation of an intra mode direction and amplitude for a given reconstructed sample may comprise multiplying reconstructed sample values within a 3x3 window centered on the reconstructed sample by pre-determined coefficients. The main template region may comprise three lines of the reconstructed samples adjacent andabove the current block. The main template region may comprise three columns of reconstructed samples located adjacent and on a left of the current block. The support template region may comprise three lines of the second reconstructed samples located above the current block, where the support template region and the current block are offset by at least one line of the reconstructed samples. The support template region may comprise three columns of the second reconstructed samples located on the left the current block, where the support template region and the current block are offset by at least one column of the reconstructed samples. The method may further comprise determining direction and amplitude for a plurality of the reconstructed samples, where the determining of the direction and amplitude for the plurality of the reconstructed samples comprises analyzing the plurality of the reconstructed samples for determining a first estimate, where the first estimate comprises the plurality of the reconstructed samples being exclusively from the main template region. The method may further comprise determining direction and amplitude for another plurality of the reconstructed samples, where the determining of the direction and amplitude for the another plurality of the reconstructed samples comprises analyzing the another plurality of the reconstructed samples for refining the first estimate, where the refining of the first estimate comprises the another plurality of the reconstructed samples being exclusively from the support template region. The method may further comprise scaling an amplitude by a factor that depends on a difference between a first direction computed by analyzing a plurality of the reconstructed samples extracted from the main template region, and a second direction computed by analyzing a plurality of the reconstructed samples extracted from the support template region. The method may further comprise scaling an amplitude computed by analyzing a plurality of the reconstructed samples extracted from the main template region by a factor that depends on a direction computed by analyzing a plurality of the reconstructed samples extracted from the support template region. The producing of the intra-prediction for the current block using the at least one decoder-side intra mode derivation process may comprise more than one support direction being computed, where each support direction is computed using an at least partially different set of the reconstructed samples. The computing of the intra mode direction and amplitude for a given reconstructed sample may comprise more than one support direction being computed, where each support direction is computed using an at least partially different set of the reconstructed samples. The computing of the intra modedirection and amplitude for a given reconstructed sample may comprise determining a weight based on a plurality of support directions computed on a plurality of the second reconstructed samples of the support template region.
[0074] An example embodiment may be provided with apparatus comprising: means for determining a current block; and means for producing an intra-prediction for the current block using at least one decoder-side intra mode derivation process, where the at least one decoder-side intra mode derivation process comprises determining a histogram of gradients based on first reconstructed samples of a main template region in a surrounding of the current block, where the determining of the histogram of gradients comprises analyzing reconstructed samples of a second template region comprising second reconstructed samples, where at least one of the second reconstructed samples is not part of the main template region.
[0075] An example embodiment may be provided with a non-transitory computer readable medium comprising program instructions that, when executed by an apparatus, cause the apparatus to perform at least the following: determining a current block; and producing an intra-prediction for the current block using at least one decoder-side intra mode derivation process, where the at least one decoder-side intra mode derivation process comprises determining a histogram of gradients based on first reconstructed samples of a main template region in a surrounding of the current block, where the determining of the histogram of gradients comprises analyzing reconstructed samples of a second template region comprising second reconstructed samples, where at least one of the second reconstructed samples is not part of the main template region.
[0076] An example embodiment may be provided with an apparatus comprising: at least one processor; and at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to perform: determining a current block; and producing an intra-prediction for the current block using at least one decoder-side intra mode derivation process, where the at least one decoder-side intra mode derivation process comprises determining a histogram of gradients based on reconstructed samples of a main template region in a surrounding of the current block, where the determining of the histogram of gradients comprises deriving a first directionality and a first amplitude for a first set of the reconstructed samples, and where the derivation of the first directionality orfirst amplitude further comprises deriving a second directionality or second amplitude for at least one second set of reconstructed samples.
[0077] The at least one second set of the reconstructed samples may be at least partially different from the first set of the reconstructed samples. The at least one second set of the reconstructed samples may be at least partially the same as the first set of the reconstructed samples. The first set of the reconstructed samples may include samples adjacent to the current block. The derivation of a directionality and an amplitude may comprise multiplying a set of reconstructed samples by pre-determined coefficients. The first set of reconstructed samples may be formed of a 3x3 window of samples centered around a first central reconstructed sample. The second set of reconstructed samples may be formed of a 3x3 window of samples centered around a second central reconstructed sample. The derivation of a first amplitude may comprise deriving a weight based on a second directionality or second amplitude. The derivation of a first amplitude may comprise deriving a weight based on a difference between a first directionality and a second directionality. The first amplitude may be scaled by the derived weight. The second set of reconstructed samples may be determined based on the first directionality. The location of the second central reconstructed sample may be determined based on the first directionality. At least one of: when the first directionality is a vertical mode, the second central reconstructed sample is located directly above the first central reconstructed sample, or when the first directionality is a horizontal mode, the second central reconstructed sample is located directly on the left of the first central reconstructed sample. The computation of the histogram of gradients may comprise computing a number of first directionalities and first amplitudes for a number of first sets of reconstructed samples within a template region. The instructions, when executed by the at least one processor, may cause the apparatus at least to perform: scaling an amplitude by a factor that depends on a difference between a first direction computed by analyzing a first plurality of the reconstructed samples, and a second direction computed by analyzing a second plurality of the reconstructed samples. The producing of the intra-prediction for the current block using the at least one decoder-side intra mode derivation process may comprise more than one second direction being computed, where each second direction is computed using a different second plurality of the reconstructed samples.
[0078] Referring also to FIG. 12, an example embodiment may be provided with amethod 1200 comprising: determining a current block as illustrated with block 1210; and producing an intra-prediction for the current block using at least one decoder-side intra mode derivation process as illustrated with block 1220, where the at least one decoder-side intra mode derivation process comprises determining a histogram of gradients based on reconstructed samples of a main template region in a surrounding of the current block, where the determining of the histogram of gradients comprises deriving a first directionality and a first amplitude for a first set of the reconstructed samples, and where the derivation of the first directionality or first amplitude further comprises deriving a second directionality or second amplitude for at least one second set of reconstructed samples. The at least one second set of the reconstructed samples may be at least partially different from the first set of the reconstructed samples. The at least one second set of the reconstructed samples may be at least partially the same as the first set of the reconstructed samples. The first set of the reconstructed samples may include samples adjacent to the current block. The derivation of a directionality and an amplitude may comprise multiplying a set of reconstructed samples by pre-determined coefficients. The first set of reconstructed samples may be formed of a 3x3 window of samples centered around a first central reconstructed sample. The second set of reconstructed samples may be formed of a 3x3 window of samples centered around a second central reconstructed sample. The derivation of a first amplitude may comprise deriving a weight based on a second directionality or second amplitude. The derivation of a first amplitude may comprise deriving a weight based on a difference between a first directionality and a second directionality. The first amplitude may be scaled by the derived weight. The second set of reconstructed samples may be determined based on the first directionality. The location of the second central reconstructed sample may be determined based on the first directionality. At least one of: when the first directionality is a vertical mode, the second central reconstructed sample is located directly above the first central reconstructed sample, or when the first directionality is a horizontal mode, the second central reconstructed sample is located directly on the left of the first central reconstructed sample. The computation of the histogram of gradients may comprise computing a number of first directionalities and first amplitudes for a number of first sets of reconstructed samples within a template region. The method may further comprise scaling an amplitude by a factor that depends on a difference between a first direction computed by analyzing a first plurality of the reconstructed samples, and a second directioncomputed by analyzing a second plurality of the reconstructed samples. The producing of the intra-prediction for the current block using the at least one decoder-side intra mode derivation process may comprise more than one second direction being computed, where each second direction is computed using a different second plurality of the reconstructed samples.
[0079] An example embodiment may be provided with an apparatus comprising: means for determining a current block; and means for producing an intra-prediction for the current block using at least one decoder-side intra mode derivation process, where the at least one decoder-side intra mode derivation process comprises determining a histogram of gradients based on reconstructed samples of a main template region in a surrounding of the current block, where the determining of the histogram of gradients comprises deriving a first directionality and a first amplitude for a first set of the reconstructed samples, and where the derivation of the first directionality or first amplitude further comprises deriving a second directionality or second amplitude for at least one second set of reconstructed samples.
[0080] An example embodiment may be provided with a non-transitory computer readable medium comprising program instructions that, when executed by an apparatus, cause the apparatus to perform at least the following: determining a current block; and producing an intra-prediction for the current block using at least one decoder-side intra mode derivation process, where the at least one decoder-side intra mode derivation process comprises determining a histogram of gradients based on reconstructed samples of a main template region in a surrounding of the current block, where the determining of the histogram of gradients comprises deriving a first directionality and a first amplitude for a first set of the reconstructed samples, and where the derivation of the first directionality or first amplitude further comprises deriving a second directionality or second amplitude for at least one second set of reconstructed samples.
[0081] An example embodiment may be provided with an apparatus comprising at least one processor, and at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to perform: determining a current block; and producing an intra-prediction for the current block using at least one decoder-side intra mode derivation process, where the at least one decoder-side intra mode derivation processcomprises determining a histogram based on reconstructed samples in a main template region surrounding the current block, where the computation of the histogram of gradients comprises analyzing reconstructed samples within a second template region comprising at least one reconstructed sample that does not belong to the main template region.
[0082] An example embodiment may be provided with an apparatus comprising at least one processor, and at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to perform: determining a current block; and producing an intra-prediction for the current block using at least one decoder-side intra mode derivation process, where the at least one decoder-side intra mode derivation process comprises determining a histogram based on reconstructed samples in a main template region surrounding the current block, and where the derivation of the histogram of gradients includes deriving a directionality and an amplitude for a given set of reconstructed samples, where the derivation of the amplitude further includes deriving a directionality for another, different set of reconstructed samples.
[0083] References to a ‘computer’, ‘processor’, etc. should be understood to encompass not only computers having different architectures such as single / multi-processor architectures and sequential / parallel architectures but also specialized circuits such as field- programmable gate arrays (FPGAs), application specific circuits (ASICs), signal processing devices and other processing circuitry. References to computer program, instructions, code etc. should be understood to encompass software for a programmable processor or firmware such as, for example, the programmable content of a hardware device such as instructions for a processor, or configuration settings for a fixed-function device, gate array or programmable logic device, etc.
[0084] The term “non-transitory,” as used herein, is a limitation of the medium itself (i.e., tangible, not a signal) as opposed to a limitation on data storage persistency (e.g., RAM vs. ROM).
[0085] As used herein, the term ‘circuitry’, ‘circuit’ and variants may refer to any of the following: (a) hardware circuit implementations, such as implementations in analog and / or digital circuitry, and (b) combinations of circuits and software (and / or firmware), such as (as applicable): (i) a combination of processor(s) or (ii) portions ofprocessor(s) / software including digital signal processor(s), software, and one or more memories that work together to cause an apparatus to perform various functions, and (c) circuits, such as a microprocessor(s) or a portion of a microprocessor(s), that require software or firmware for operation, even when the software or firmware is not physically present. As a further example, as used herein, the term ‘circuitry’ would also cover an implementation of merely a processor (or multiple processors) or a portion of a processor and its (or their) accompanying software and / or firmware. The term ‘circuitry’ would also cover, for example and when applicable to the particular element, a baseband integrated circuit or applications processor integrated circuit for a mobile phone or a similar integrated circuit in a server, a cellular network device, or another network device. Circuitry or circuit may also be used to mean a function or a process used to execute a method.
[0086] It should be understood that the foregoing description is only illustrative. Various alternatives and modifications may be devised by those skilled in the art. For example, features recited in the various dependent claims could be combined with each other in any suitable combination(s). In addition, features from different embodiments described above could be selectively combined into a new embodiment. Accordingly, the description is intended to embrace all such alternatives, modifications and variances which fall within the scope of the appended claims.
[0087] The following acronyms and abbreviations that may be found in the specification and / or the drawing figures are defined as follows (the abbreviations may be appended with each other or with other characters using e.g. a hyphen, dash (-), or number (or abbreviations having a character may be the same with a character removed), and may be case insensitive): 2D two-dimensional 3D three-dimensional ASIC application specific integrated circuit CPU central processing unit CTU coding tree unit CU coding unit DIMD decoder side intra mode derivation ECM enhanced compression modelFPGA field programmable gate array G gradient strength GPU graphics processing unit HMD head-mounted display I / F interface I / O input / output JVET joint video experts team MIP matrix-based intra prediction MPM most probable modes N / W network OBMC overlapped block motion compensation PDPC position dependent intra prediction combination RAM random access memory RFM reference frame memory ROM read only memory SON self-organizing / optimizing network TIMD template based intra mode derivation TMP template matching prediction UI user interface USB universal serial bus VVC versatile video coding
Claims
CLAIMS What is claimed is:
1. An apparatus comprising: at least one processor; and at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to perform: determining a current block; and producing an intra-prediction for the current block using at least one decoder-side intra mode derivation process, where the at least one decoder-side intra mode derivation process comprises determining a histogram of gradients based on first reconstructed samples of a main template region in a surrounding of the current block, where the determining of the histogram of gradients comprises analyzing reconstructed samples of a second template region comprising second reconstructed samples, where at least one of the second reconstructed samples is not part of the main template region.
2. The apparatus as claimed in claim 1 where at least one of the second reconstructed samples is part of the main template region.
3. The apparatus as claimed in any of claims 1-2 where the reconstructed samples of the main template region include samples adjacent to the current block.
4. The apparatus as claimed in any one of claims 1-3 where the reconstructed samples of the second template region are spaced from the current block.
5. The apparatus as claimed in any one of claims 1-4 where the determining of thehistogram of gradients comprises computing an intra mode direction and amplitude for a plurality of the reconstructed samples within the main template region.
6. The apparatus as claimed in claim 5 where the computation of an intra mode direction and amplitude for a given reconstructed sample comprises multiplying reconstructed sample values within a 3x3 window centered on the reconstructed sample by pre- determined coefficients.
7. The apparatus as claimed in any one of claims 1-6 where the main template region comprises three lines of the reconstructed samples adjacent and above the current block.
8. The apparatus as claimed in any one of claims 1-6 where the main template region comprises three columns of reconstructed samples located adjacent and on a left of the current block.
9. The apparatus as claimed in any one of claims 1-7 where the support template region comprises three lines of the second reconstructed samples located above the current block, where the support template region and the current block are offset by at least one line of the reconstructed samples.
10. The apparatus as claimed in any one of claims 1-7 where the support template region comprises three columns of the second reconstructed samples located on the left the current block, where the support template region and the current block are offset by at least one column of the reconstructed samples.
11. The apparatus as claimed in any one of claims 1-10 where the instructions, when executed by the at least one processor, cause the apparatus at least to perform: determining direction and amplitude for a plurality of the reconstructed samples, where the determining of the direction and amplitude for the plurality of the reconstructed samples comprises analyzing the plurality of the reconstructed samples for determining a first estimate, where the first estimate comprises the plurality of the reconstructed samples being exclusively from the main template region.
12. The apparatus as claimed in claim 11 where the instructions, when executed by the at least one processor, cause the apparatus at least to perform: determining direction and amplitude for another plurality of the reconstructed samples, where the determining of the direction and amplitude for the another plurality of the reconstructed samples comprises analyzing the another plurality of the reconstructed samples for refining the first estimate, where the refining of the first estimate comprises the another plurality of the reconstructed samples being exclusively from the support template region.
13. The apparatus as claimed in any one of claims 1-12 where the instructions, when executed by the at least one processor, cause the apparatus at least to perform: scaling an amplitude by a factor that depends on a difference between a first direction computed by analyzing a plurality of the reconstructed samples extracted from the main template region, and a second direction computed by analyzing a plurality of the reconstructed samples extracted from the support template region.
14. The apparatus as claimed in any one of claims 1-12 where the instructions, when executed by the at least one processor, cause the apparatus at least to perform: scaling an amplitude computed by analyzing a plurality of the reconstructed samples extracted from the main template region by a factor that depends on a direction computed by analyzing a plurality of the reconstructed samples extracted from the support template region.
15. The apparatus as claimed in any one of claims 1-14 where the producing of the intra-prediction for the current block using the at least one decoder-side intra mode derivation process comprises more than one support direction being computed, where each support direction is computed using an at least partially different set of the reconstructed samples.
16. The apparatus as claimed in any one of claims 5-14 where the computing of theintra mode direction and amplitude for a given reconstructed sample comprises more than one support direction being computed, where each support direction is computed using an at least partially different set of the reconstructed samples.
17. The apparatus as claimed in any one of claims 5-14 where the computing of the intra mode direction and amplitude for a given reconstructed sample comprises determining a weight based on a plurality of support directions computed on a plurality of the second reconstructed samples of the support template region. 18.. A method comprising: determining a current block; and producing an intra-prediction for the current block using at least one decoder-side intra mode derivation process, where the at least one decoder-side intra mode derivation process comprises determining a histogram of gradients based on first reconstructed samples of a main template region in a surrounding of the current block, where the determining of the histogram of gradients comprises analyzing reconstructed samples of a second template region comprising second reconstructed samples, where at least one of the second reconstructed samples is not part of the main template region.
19. The method as claimed in claim 18 where at least one of the second reconstructed samples is part of the main template region.
20. The method as claimed in any of claims 18-19 where the reconstructed samples of the main template region include samples adjacent to the current block.
21. The method as claimed in any one of claims 18-20 where the reconstructed samples of the second template region are spaced from the current block.
22. The method as claimed in any one of claims 18-21 where the determining of the histogram of gradients comprises computing an intra mode direction and amplitude for a plurality of the reconstructed samples within the main template region.
23. The method as claimed in claim 22 where the computation of an intra mode direction and amplitude for a given reconstructed sample comprises multiplying reconstructed sample values within a 3x3 window centered on the reconstructed sample by pre-determined coefficients.
24. The method as claimed in any one of claims 18-23 where the main template region comprises three lines of the reconstructed samples adjacent and above the current block.
25. The method as claimed in any one of claims 18-23 where the main template region comprises three columns of reconstructed samples located adjacent and on a left of the current block.
26. The method as claimed in any one of claims 18-25 where the support template region comprises three lines of the second reconstructed samples located above the current block, where the support template region and the current block are offset by at least one line of the reconstructed samples.
27. The method as claimed in any one of claims 18-25 where the support template region comprises three columns of the second reconstructed samples located on the left the current block, where the support template region and the current block are offset by at least one column of the reconstructed samples.
28. The method as claimed in any one of claims 18-27 further comprising: determining direction and amplitude for a plurality of the reconstructed samples, where the determining of the direction and amplitude for the plurality of the reconstructed samples comprises analyzing the plurality of the reconstructed samples for determining a first estimate, where the first estimate comprises the plurality of the reconstructed samples being exclusively from the main template region.
29. The method as claimed in claim 28 further comprising: determining direction and amplitude for another plurality of the reconstructed samples, where the determining of the direction and amplitude for the another plurality of the reconstructed samples comprises analyzing the another plurality of the reconstructed samples for refining the first estimate, where the refining of the first estimate comprises the another plurality of the reconstructed samples being exclusively from the support template region.
30. The method as claimed in any one of claims 18-29 further comprising: scaling an amplitude by a factor that depends on a difference between a first direction computed by analyzing a plurality of the reconstructed samples extracted from the main template region, and a second direction computed by analyzing a plurality of the reconstructed samples extracted from the support template region.
31. The method as claimed in any one of claims 18-29 further comprising: scaling an amplitude computed by analyzing a plurality of the reconstructed samples extracted from the main template region by a factor that depends on a direction computed by analyzing a plurality of the reconstructed samples extracted from the support template region.
32. The method as claimed in any one of claims 18-31 where the producing of the intra- prediction for the current block using the at least one decoder-side intra mode derivation process comprises more than one support direction being computed, where each support direction is computed using an at least partially different set of the reconstructed samples.
33. The method as claimed in any one of claims 22-32 where the computing of the intra mode direction and amplitude for a given reconstructed sample comprises more than one support direction being computed, where each support direction is computed using an at least partially different set of the reconstructed samples.
34. The method as claimed in any one of claims 22-32 where the computing of the intra mode direction and amplitude for a given reconstructed sample comprises determining a weight based on a plurality of support directions computed on a plurality of the second reconstructed samples of the support template region.
35. An apparatus comprising: means for determining a current block; and means for producing an intra-prediction for the current block using at least one decoder-side intra mode derivation process, where the at least one decoder-side intra mode derivation process comprises determining a histogram of gradients based on first reconstructed samples of a main template region in a surrounding of the current block, where the determining of the histogram of gradients comprises analyzing reconstructed samples of a second template region comprising second reconstructed samples, where at least one of the second reconstructed samples is not part of the main template region.
36. A non-transitory computer readable medium comprising program instructions that, when executed by an apparatus, cause the apparatus to perform at least the following: determining a current block; and producing an intra-prediction for the current block using at least one decoder-side intra mode derivation process, where the at least one decoder-side intra mode derivation process comprises determining a histogram of gradients based on first reconstructed samples of a main template region in a surrounding of the current block, where the determining of the histogram of gradients comprisesanalyzing reconstructed samples of a second template region comprising second reconstructed samples, where at least one of the second reconstructed samples is not part of the main template region.
37. An apparatus comprising: at least one processor; and at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to perform: determining a current block; and producing an intra-prediction for the current block using at least one decoder-side intra mode derivation process, where the at least one decoder-side intra mode derivation process comprises determining a histogram of gradients based on reconstructed samples of a main template region in a surrounding of the current block, where the determining of the histogram of gradients comprises deriving a first directionality and a first amplitude for a first set of the reconstructed samples, and where the derivation of the first directionality or first amplitude further comprises deriving a second directionality or second amplitude for at least one second set of reconstructed samples.
38. The apparatus as claimed in claim 37 where the at least one second set of the reconstructed samples is at least partially different from the first set of the reconstructed samples.
39. The apparatus as claimed in claim 38 where the at least one second set of the reconstructed samples is at least partially the same as the first set of the reconstructed samples.
40. The apparatus as claimed in any of claims 37-39 where the first set of the reconstructed samples includes samples adjacent to the current block.
41. The apparatus as claimed in any one of claims 37-40 where the derivation of a directionality and an amplitude comprises multiplying a set of reconstructed samples by pre-determined coefficients.
42. The apparatus as claimed in any one of claims 37-40 where the first set of reconstructed samples is formed of a 3x3 window of samples centered around a first central reconstructed sample.
43. The apparatus as claimed in any one of claims 37-40 where the second set of reconstructed samples is formed of a 3x3 window of samples centered around a second central reconstructed sample.
44. The apparatus as claimed in any one of claims 37-43 where the derivation of a first amplitude comprises deriving a weight based on a second directionality or second amplitude.
45. The apparatus as claimed in any one of claims 37-44 where the derivation of a first amplitude comprises deriving a weight based on a difference between a first directionality and a second directionality.
46. The apparatus as claimed in any one of claims 37-45 where the first amplitude is scaled by the derived weight.
47. The apparatus as claimed in any one of claims 37-46 where the second set of reconstructed samples is determined based on the first directionality.
48. The apparatus as claimed in any one of claims 37-47 where the location of the second central reconstructed sample is determined based on the first directionality.
49. The apparatus as claimed in any one of claims 37-48where at least one of: when the first directionality is a vertical mode, the second central reconstructedsample is located directly above the first central reconstructed sample, or when the first directionality is a horizontal mode, the second central reconstructed sample is located directly on the left of the first central reconstructed sample.
50. The apparatus as claimed in any one of claims 37-49 where the computation of the histogram of gradients comprises computing a number of first directionalities and first amplitudes for a number of first sets of reconstructed samples within a template region.
51. The apparatus as claimed in any one of claims 37-50 where the instructions, when executed by the at least one processor, cause the apparatus at least to perform: scaling an amplitude by a factor that depends on a difference between a first direction computed by analyzing a first plurality of the reconstructed samples, and a second direction computed by analyzing a second plurality of the reconstructed samples.
52. . The apparatus as claimed in any one of claims 37-51 where the producing of the intra-prediction for the current block using the at least one decoder-side intra mode derivation process comprises more than one second direction being computed, where each second direction is computed using a different second plurality of the reconstructed samples.
53. A method comprising: determining a current block; and producing an intra-prediction for the current block using at least one decoder- side intra mode derivation process, where the at least one decoder-side intra mode derivation process comprises determining a histogram of gradients based on reconstructed samples of a main template region in a surrounding of the current block,where the determining of the histogram of gradients comprises deriving a first directionality and a first amplitude for a first set of the reconstructed samples, and where the derivation of the first directionality or first amplitude further comprises deriving a second directionality or second amplitude for at least one second set of reconstructed samples.
54. The method as claimed in claim 53 where the at least one second set of the reconstructed samples is at least partially different from the first set of the reconstructed samples.
55. The method as claimed in claim 54 where the at least one second set of the reconstructed samples is at least partially the same as the first set of the reconstructed samples.
56. The method as claimed in any of claims 53-55 where the first set of the reconstructed samples includes samples adjacent to the current block.
57. The method as claimed in any one of claims 53-56 where the derivation of a directionality and an amplitude comprises multiplying a set of reconstructed samples by pre-determined coefficients.
58. The method as claimed in any one of claims 53-56 where the first set of reconstructed samples is formed of a 3x3 window of samples centered around a first central reconstructed sample.
59. The method as claimed in any one of claims 53-56 where the second set of reconstructed samples is formed of a 3x3 window of samples centered around a second central reconstructed sample.
60. The method as claimed in any one of claims 53-59 where the derivation of a first amplitude comprises deriving a weight based on a second directionality or second amplitude.
61. The method as claimed in any one of claims 53-60 where the derivation of a first amplitude comprises deriving a weight based on a difference between a first directionality and a second directionality.
62. The method as claimed in any one of claims 53-61 where the first amplitude is scaled by the derived weight.
63. The method as claimed in any one of claims 53-62 where the second set of reconstructed samples is determined based on the first directionality.
64. The method as claimed in any one of claims 53-63 where the location of the second central reconstructed sample is determined based on the first directionality.
65. The method as claimed in any one of claims 53-64 where at least one of: when the first directionality is a vertical mode, the second central reconstructed sample is located directly above the first central reconstructed sample, or when the first directionality is a horizontal mode, the second central reconstructed sample is located directly on the left of the first central reconstructed sample.
66. The method as claimed in any one of claims 53-65 where the computation of the histogram of gradients comprises computing a number of first directionalities and first amplitudes for a number of first sets of reconstructed samples within a template region.
67. The method as claimed in any one of claims 53-66 further comprising: scaling an amplitude by a factor that depends on a difference between a first direction computed by analyzing a first plurality of the reconstructed samples, and a second direction computed by analyzing a second plurality of the reconstructed samples.
68. The method as claimed in any one of claims 53-67 where the producing of the intra- prediction for the current block using the at least one decoder-side intra mode derivationprocess comprises more than one second direction being computed, where each second direction is computed using a different second plurality of the reconstructed samples.
69. An apparatus comprising: means for determining a current block; and means for producing an intra-prediction for the current block using at least one decoder-side intra mode derivation process, where the at least one decoder-side intra mode derivation process comprises determining a histogram of gradients based on reconstructed samples of a main template region in a surrounding of the current block, where the determining of the histogram of gradients comprises deriving a first directionality and a first amplitude for a first set of the reconstructed samples, and where the derivation of the first directionality or first amplitude further comprises deriving a second directionality or second amplitude for at least one second set of reconstructed samples.
70. A non-transitory computer readable medium comprising program instructions that, when executed by an apparatus, cause the apparatus to perform at least the following: determining a current block; and producing an intra-prediction for the current block using at least one decoder- side intra mode derivation process, where the at least one decoder-side intra mode derivation process comprises determining a histogram of gradients based on reconstructed samples of a main template region in a surrounding of the current block, where the determining of the histogram of gradients comprises deriving a first directionality and a first amplitude for a first set of the reconstructed samples,and where the derivation of the first directionality or first amplitude further comprises deriving a second directionality or second amplitude for at least one second set of reconstructed samples.