Video and image encoding using wide-angle intra-prediction.
By extending the prediction direction to a wider angle range beyond the traditional 45-degree range, and combining block shape selection with the most probable prediction mode encoding, the efficiency of image and video coding is improved, especially the coding efficiency of non-square blocks.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- NOKIA TECHNOLOGIES OY
- Filing Date
- 2023-04-05
- Publication Date
- 2026-05-21
AI Technical Summary
In image and video coding, existing technologies have limited room for improvement in the efficiency of directional in-between prediction, especially for coding non-square blocks.
By employing a wide-angle prediction direction, which extends the prediction direction beyond the traditional 45-degree range, higher coding efficiency is achieved. The most probable prediction mode is selected in combination with the block shape and encoded in the bitstream.
It improves the efficiency of image and video coding, especially the coding efficiency of non-square blocks, and enhances the flexibility and accuracy of coding modes.
Smart Images

Figure 0007863529000001 
Figure 0007863529000002 
Figure 0007863529000003
Abstract
Description
[Technical Field]
[0001] The various embodiments described in this application relate to the encoding of images and / or videos based on directional intra-prediction. Methods, apparatuses, systems, and computer program products, as well as their signal or data structures, for using directional intra-prediction in image and video encoding are described in several different embodiments. Background
[0002] This section is intended to provide background and context to the inventions described in the claims. The descriptions in this document may include patentable concepts that have not yet been conceptualized or patented. Therefore, unless otherwise stated in this document, the contents of this section are not prior art to the specification and claims of this application, and their inclusion in this section will not make them prior art.
[0003] Directional intra-prediction generates blocks of predicted samples (i.e., pixel values) based on decoded samples around a block by directionally estimating boundary samples within the block to be predicted. These predicted blocks may be used as the basis for encoding image blocks. Alternatively, instead of directly encoding the original blocks, the prediction error between the predicted blocks and the original blocks may be encoded. Generally, the better the prediction, the higher the encoding efficiency of the image. Typically, for example, intra-coded images are the most encoded images compared to inter-coded images.
[0004] Therefore, there is a need for means to improve image and video encoding based on directional intra-prediction. Abstract
[0005] Improved methods for mitigating the above problems and technical devices for carrying out such methods have been invented. Various aspects of the present invention include methods, apparatus, servers, clients, and computer-readable media for storing computer programs, each characterized by the description in an independent claim. Various embodiments of the present invention are disclosed in each dependent claim.
[0006] This specification presents methods, apparatus, systems, computer program products, and signals for intrapicture orientation prediction using wide-angle prediction directions. Wide-angle refers to a direction from a reference position to a predicted pixel that is obtuse with respect to the upper-left direction (a direction midway between the "up" and "left" directions). The wide-angle prediction mode (i.e., direction) may be encoded directly into the bitstream as a selected mode. The wide-angle directions used, their number, exact directions, and probabilities may be determined by the shape of the predicted block. The wide-angle mode may correspond to a conventional narrow-angle mode by its inversion mode. This inversion mode may be opposite, essentially opposite, or tilted to the basic narrow-angle mode, but to some extent. It is possible to select whether to use the basic mode or the wide-angle mode.
[0007] A first embodiment provides a decoding method which includes receiving a bitstream containing encoded image data; forming a set of reference pixels having reference pixel values for intrapicture orientation prediction from the bitstream in computer memory; predicting pixel values in an image block predicted by intrapicture orientation prediction by using the values of one or more reference pixels selected from a prediction direction for the predicted pixels when forming the predicted pixel values, wherein the prediction direction is a wide-angle prediction direction that forms an obtuse angle with respect to the upper-left direction of the predicted pixel, and repeating the pixel prediction for a plurality of pixels to form a predicted image block; and obtaining a decoded image block by using the predicted image block when decoding the image block from the bitstream.
[0008] The predicted image block may have a certain shape. The method may include determining the shape from the bitstream. The method may include determining the orientation prediction mode to be used in the intrapicture orientation prediction based on the shape, and selecting the prediction direction from the orientation prediction mode when predicting the pixel value. The method may include determining the prediction mode to be used in the intrapicture orientation prediction, determining the most likely prediction mode based on the shape, decoding an indicator from the bitstream indicating whether the prediction direction is one of the most likely prediction modes, and selecting the prediction direction from the most likely prediction mode. The method may include determining the orientation prediction mode to be used in the intrapicture orientation prediction, decoding a direction indicator from the bitstream, and selecting the prediction direction for predicting the pixel value from the basic direction and the wide-angle direction associated with the direction indicator. The method may include decoding a prediction direction selection indicator from the bitstream, and using the prediction direction selection indicator to select the prediction direction for predicting the pixel value from the basic direction and the wide-angle direction. The method may include selecting a prediction direction for predicting the pixel value from a basic direction and a wide-angle direction based on the shape. The basic direction may be associated with the wide-angle direction such that it is substantially opposite to the wide-angle direction. The basic direction may be associated with the wide-angle direction such that it is not substantially opposite to the wide-angle direction and is on the opposite side of the wide-angle direction in the upper left direction. Two or more wide-angle directions may be associated with one basic direction, two or more basic directions may be associated with the same wide-angle direction, or both.The method may include determining a prediction mode to be used in the intrapicture orientation prediction; decoding a direction indicator from the bitstream; forming a predicted prediction direction for predicting the pixel value between the basic direction and the wide-angle direction associated with the direction indicator using the shape; and selecting the prediction direction based on the predicted prediction direction.
[0009] In a second aspect, an encoding method is provided, which includes receiving image data to be encoded; forming a set of reference pixels having reference pixel values for intrapicture orientation prediction from the image data in computer memory; predicting pixel values in an image block predicted by intrapicture orientation prediction by using the values of one or more reference pixels selected from a prediction direction for the predicted pixels when forming the predicted pixel values, wherein the prediction direction is a wide-angle prediction direction that forms an obtuse angle with respect to the upper-left direction of the predicted pixel; repeating the pixel prediction for a plurality of pixels to form a predicted image block; and using the predicted image block when encoding the image block into a bitstream. The encoding method may, as part thereof, have the same features as the decoding method, as described in the numbered examples of this paper.
[0010] In a third embodiment, a decoder is provided that is configured to perform the decoding method as described in the numbered examples of this paper.
[0011] In a fourth aspect, an encoder is provided that is configured to perform the encoding method, as described in the numbered examples of this paper.
[0012] In a fifth aspect, a decryption system is provided, as described in the numbered examples of this paper.
[0013] In the sixth aspect, an encoding system is provided, as described in the numbered examples of this paper.
[0014] In a seventh aspect, as described in the numbered examples of this document, a decoded computer program product is provided.
[0015] In an eighth aspect, as described in the numbered examples of this document, an encoded computer program product is provided.
[0016] In a ninth aspect, as described in the numbered examples of this document, a signal implemented on a non-transitory computer-readable medium is provided.
Brief Description of the Drawings
[0017] Hereinafter, various embodiments of the present invention will be described in more detail with reference to the accompanying drawings. [Figure 1a] Shows a system and device for encoding and decoding images or videos. [Figure 1b] Shows a system and device for encoding and decoding images or videos. [Figure 2a] It is a block diagram of an encoder and a decoder. [Figure 2b] It is a block diagram of an encoder and a decoder. [Figure 3a] Shows the directional intra prediction of an image. [Figure 3b-d] Figs. 3b to d show the directional intra prediction of an image. [Figure 4] Figs. 4a to d show the wide-angle directional intra prediction of an image. [Figure 5a] Shows the wide-angle directional intra prediction mode. [Figure 5b] Shows the wide-angle directional intra prediction mode. [Figure 5c] Shows the wide-angle directional intra prediction mode. [Figure 5d] Shows the wide-angle directional intra prediction mode. [Figure 5e] Shows the wide-angle directional intra prediction mode. [Figure 6a-b]Figures 6a and 6b are flowcharts showing coding and decoding using wide-angle directional intra-prediction. [Figure 6c] This flowchart shows coding and decoding using wide-angle directional intra-prediction. [Figure 6d] This flowchart shows coding and decoding using wide-angle directional intra-prediction. Description of Exemplary Embodiments
[0018] Several embodiments of the present invention are described below in the context of video encoding and decoding. However, the present invention is not limited to video encoding and decoding, and may be used for encoding and decoding still images, and for transcoding between image and video formats. In fact, various different embodiments can be broadly applied to any environment where directional intra-prediction for image or video encoding or decoding is required.
[0019] Figures 1a and 1b illustrate systems and devices for encoding and / or transmitting images and / or video, respectively. In Figure 1a, several different devices may be connected via a fixed network 110, such as the Internet or a local area network, or via a mobile communication network 120. The mobile communication network 120 includes GSM® networks, 3G networks, 3.5G networks, 4G networks, 5G networks, Wireless Local Area Network (WLAN), Bluetooth®, or other current or future networks. Several different networks are connected to each other by a communication interface 180. The network comprises network elements for data handling, such as routers and switches, and communication interfaces for enabling several different devices to access the network, such as base stations 130 and 131. Base stations 130 and 131 are themselves connected to the mobile network 120 via a fixed connection 176 or a wireless connection 177.
[0020] There may be multiple servers connected to the network. In the example in Figure 1a, there is a server 140 connected to a fixed network 110 that provides network services for image or video access or streaming, a server 141 connected to the fixed network 110 for processing image / video data (e.g., encoding or transcoding), and a server 142 connected to a mobile network 120 that provides network services such as an image / video sharing service. Some of the above devices, such as computers 140, 141, and 142, together with communication elements present in the fixed or wireless network 110, may constitute an internet.
[0021] Furthermore, multiple end-user devices may exist. These devices include mobile phones and smartphones 151, internet access devices (internet tablets) 150, personal computers of various sizes and forms 160, televisions and other viewing devices 161, video decoders and players 162, video cameras 163, and other encoders. These devices 150, 151, 160, 161, 162, and 163 may also be formed from multiple parts. The various devices are connected to networks 110 and 120 via communication connections such as fixed connections to the internet 170, 171, 172, 180, a wireless connection to the internet 110 173, a fixed connection to the mobile network 120 175, and wireless connections to the mobile network 120 178, 179, 182. Connections 171 to 182 are implemented as communication interfaces at each end of the communication connections. The various devices may generate, convert, transmit, receive, decode, and display images and videos according to the examples described herein.
[0022] Figure 1b shows a device for encoding and decoding (and further transcoding, i.e., decoding and encoding in different formats) image or video data. As shown in Figure 1b, server 140 includes memory 145, one or more processors 146, 147, and computer program code 148 residing in memory 145 to implement, for example, encoding and / or decoding functions. Different servers 141, 142 may include at least these identical elements to utilize the functions relating to each server. Similarly, end-user device 151 includes memory 152, at least one processor 153, 156, and computer program code 154 residing in memory 152 to implement, for example, encoding or decoding image data from a device camera. The end-user device may have one or more cameras 155 and 159 to acquire image data, such as a video stream containing multiple frames or still images. The end-user device may further include one or more microphones 157 and 158 for picking up sound. Different end-user devices 150, 160 may include at least these identical elements in order to utilize the functions of each device. The end-user devices may further include a screen for viewing a graphical user interface. The end-user devices and servers may further include various communication modules or communication functions implemented within a single module for communicating with other devices.
[0023] Various end-user devices and servers may take the form of communication devices or other devices with communication capabilities. For example, a device may be a toy, a home appliance such as kitchen electronics, an entertainment device (television, music / media device), or even part of a building, clothing, vehicle, or other device that communicates with each other.
[0024] It should be understood that different embodiments can be implemented in different parts within different elements. For example, the reception and conversion of image data (images or videos) may all be performed on a single user device such as device 150, 151, or 160, or on a single server device 140, 141, or 142, or between multiple user devices 150, 151, 160, between multiple network devices 140, 141, 142, or between both user devices 150, 151, 160 and network devices 140, 141, 142. For example, image data (images or videos) may be formed and stored on a single device. The encoding of image data may be performed on another device, and the decoding may be performed on yet another device (e.g., a server). For example, the relevant software for performing the function may reside on a single device, or it may be distributed across multiple devices as described above. This allows, for example, devices to form a so-called cloud.
[0025] Different embodiments may be implemented as mobile devices or, optionally, as software running on a server. A mobile phone may be provided with at least memory, a processor, a display, a keypad, human presence sensor hardware, and communication means such as 2G, 3G, WLAN, etc. Different devices may have hardware such as a touchscreen (single-touch or multi-touch) and positioning means such as a network positioning or global positioning system (GPS) module. Various applications may reside on the device, such as a calendar application, a contact application, a map application, a messaging application, a browser application, a gallery application, a video player application, and various other applications for office and / or personal use. The device may have various communication modules for communicating with other devices.
[0026] A video codec consists of an encoder, which converts the input video into a compressed representation suitable for storage / transmission, and a decoder, which decompresses the compressed video representation into a viewable format. Typically, the encoder makes the video representation more compact (i.e., lowers the bitrate) by discarding some information from the original video sequence.
[0027] Typical hybrid video codecs (e.g., ITU-T H.263 and H.264) encode video information in two stages. First, the pixel values in a given picture region (or "block") are predicted. This prediction is done, for example, by motion compensation (finding and indicating a region within one of the already encoded video frames that is strongly related to the block being encoded) or by spatial means (using pixel values around the block being encoded in a specific way). Next, the prediction error, which is the difference between the predicted block of pixels and the original block of pixels, is encoded. This is typically achieved by transforming the difference between pixel values using a specific method (e.g., discrete cosine transform (DCT) or a variation thereof), quantizing the coefficients, and entropy encoding the quantized coefficients. By changing the performance of the quantization process, the encoder can control the balance between the precision of the pixel representation (picture quality) and the size of the resulting encoded video representation (file size or transmission bitrate).
[0028] Figure 2a shows the encoder and the encoding method it performs. In Figure 2a, the image I to be encoded n This becomes the input to the encoder. The input image can be a still image or a frame of a video signal. Image block P' n The prediction representation is obtained by subtracting the prediction error signal D from the input image data. n The following is generated to obtain the result. The prediction error signal is encoded by the transformation T and quantization Q. Inverse quantization Q -1 and inverse transform T -1 The reconstructed prediction error signal D' obtained by n However, the provisional reconstructed image I' n Used to generate image block P'. nThe prediction expression can be obtained by intra prediction P or inter prediction P according to the mode (mode selection MS). In inter prediction, appropriate filtering F and reference frame memory RFM are used to store the final reconstructed image R'. intra Or inter prediction P inter The images in the reference frame memory correspond to the images finally obtained as a result of the decoding process by the decoder. The conversion, quantization后的预测误差, mode selection, and other coding parameters are entropy-coded by the entropy encoder E. The obtained bitstream is stored or transmitted and can then be decoded by the decoder. n The prediction error after quantization, mode selection, and other coding parameters are entropy-coded by the entropy encoder E. The obtained bitstream is stored or transmitted and can then be decoded by the decoder.
[0029] An encoder as shown in FIG. 2a may include a decoder that decodes the encoded image data so that the decoded image data can be used for the prediction process. The decoded image data is stored in a buffer such as a reference picture buffer. When the encoder decodes the input video data by prediction, the buffered decoded data from the buffer is used. The encoder may further use the input video data as a basis for prediction to achieve faster processing. However, in such a method, since the encoded and decoded video data used by the decoder as a basis for prediction is different from the input video data used by the encoder, coding errors will occur.
[0030] It should be noted that the text seems to have some inconsistent or unclear parts in the original Japanese, especially in the description about "quantization后的预测误差" which might need further clarification in the original source for a more accurate translation. Here, I translated it as literally as possible while trying to make sense of the overall context.In some video codecs, such as HEVC[1], a video picture is divided into multiple coding units (CUs) that cover the area of the picture. A CU consists of one or more prediction units (PUs) that define the prediction process for the samples within the CU, and one or more transformation units (TUs) that define the prediction error coding process for the samples within the CU. Typically, a CU consists of square or rectangular blocks of samples. Its size can be selected from a given set of possible CU sizes. Typically, the CU with the largest possible size is called the Largest Coding Unit (LCU) or Coding Tree Unit (CTU), and the video picture is divided into non-overlapping CTUs. A CTU can be further divided into combinations of smaller CUs. For example, this can be achieved by recursively dividing the CTUs and the resulting CUs. Typically, each resulting CU has at least one PU and at least one associated TU. Each PU and TU can be further divided into smaller PUs and TUs to increase the granularity of the prediction and prediction error coding processes, respectively. Each PU has associated prediction information. This information defines what predictions are applied to the pixels within that PU (e.g., motion vector information for interpredictive PUs and intrapredictive directionality information for intrapredictive PUs). Similarly, each TU is associated with information indicating the prediction error decoding process for the samples within that TU (e.g., including DCT coefficient information). Typically, whether or not prediction error coding is applied to each CU is signaled at the CU level. If there is no prediction error residual associated with a CU, it is assumed that there is no TU for that CU. Typically, the division of an image into CUs, and the division of CUs into PUs and TUs, are signaled in the bitstream. This allows the decoder to reconstruct the desired structure of these units.
[0031] Interpretation (sometimes called time prediction), motion compensation, or motion-compensated prediction reduces temporal redundancy. Interpretation is based on previously decoded pictures. Intrapretation takes advantage of the fact that adjacent pixels within the same picture are likely to be correlated. Intrapretation can be performed in space or within the transformation domain; that is, both sample values and transformation coefficients are predictable. Typically, intrapretation is used in intracoding, in which case interpretation is not applied.
[0032] One of the results obtained from the encoding procedure is a set of encoding parameters, such as motion vectors and quantization transformation coefficients. Many parameters can be entropically encoded more efficiently by first predicting them from spatially or temporally adjacent parameters. For example, motion vectors may be predicted from spatially adjacent motion vectors, and only the difference with respect to the motion vector predictor may be encoded. In the case of encoding one or more still images, the resulting output may be called an image bitstream, and in the case of video encoding, the resulting output may be called a video bitstream.
[0033] The decoder applies prediction means similar to those used by the encoder to generate a predictive representation of a pixel block (utilizing motion or spatial information generated by the encoder and stored in a compressed representation), and then applies prediction error decoding (the reverse process of prediction error coding, which recovers the quantized prediction error signal within the spatial pixel region) to reconstruct the output video. After applying the prediction and prediction error decoding means, the decoder adds the prediction and the prediction error signal (pixel value) to generate an output video frame. The decoder (and encoder) may apply additional filtering means to improve the quality of the output video before sending it for display and / or storage as a predictive reference for subsequent frames in the video sequence.
[0034] Figure 2b shows the decoder and the decoding method using it. In Figure 2b, the input bitstream is the entropy decoder E -1This is decoded to obtain the prediction error signal and decoding mode information. The prediction error is inverse quantized Q -1 and inverse transform T -1 Decoded by the reconstructed prediction error signal D' n Depending on the mode, pixel prediction using intra or interpretation P is used to obtain the image block P'. n A predicted representation is obtained. The already decoded picture is stored in the reference frame memory (RFM). Reconstruction prediction error signal D' n And, image block P' n From the predicted representation, the provisional reconstructed image I' n This is obtained. This is the provisional reconstructed image I' n This can be used in intra-prediction, and the final reconstructed image R' is obtained through filtering F. n It can be used to obtain the final reconstructed image R'. n This may be stored in the reference picture memory (RFM) and displayed to the user.
[0035] The basic unit of input to an H.264 / AVC and H.265 encoder, and the basic unit of output to an H.264 / AVC and H.265 decoder, is a picture. A picture can be a frame or a field. A frame contains a matrix of luminance samples and corresponding chroma samples. A field is a set of alternating sample rows of a frame and can be used as an encoder input when the source signal is interlaced. In H.264 / AVC and H.265, a macroblock is a 16x16 block of luminance samples and a corresponding block of chroma samples. For example, in a 4:2:0 sampling pattern, a macroblock contains one 8x8 block of chroma samples for each chroma component. In H.264 / AVC and H.265, a picture is partitioned into one or more slice groups, each slice group containing one or more slices. In H.264 / AVC and H.265, a slice consists of an integer number of blocks.
[0036] Instead of, or in addition to, methods that utilize sample value prediction and transformation coding to indicate encoded sample values, color palette coding may be used. Palette coding is a series of similar methods in which a palette is defined, which is a set of colors and associated indices, and the value of each sample within a coding unit is represented by indicating the corresponding indice in the palette. Palette coding allows for high coding efficiency within a coding unit with a relatively small number of colors (such as image areas representing computer screen content, like text or simple graphics). To improve the coding efficiency of palette coding, several different types of palette index prediction methods may be used. Alternatively, palette indices may be coded in a run-length encoding manner so that they can efficiently represent larger homogeneous image areas. Furthermore, escape coding may be used if a CU contains sample values that are not repeated within that CU. Escaped samples are transmitted without referencing any palette indices. Instead, their values are indicated individually for each escaped sample.
[0037] In a typical video codec, motion information is represented by motion vectors associated with each motion-compensated image block. These motion vectors indicate the shift of an image block in the picture being encoded (encoder side) or decoded (decoder side) relative to a predicted source block in one of the already encoded or decoded pictures. To efficiently represent motion vectors, they are typically encoded differently from block-specific predicted motion vectors. In a typical video codec, the predicted motion vector is generated in a predetermined way, for example, by taking the median of the encoded or decoded motion vectors of several adjacent blocks. Another way to generate motion vector predictions is to generate a list of prediction candidates from adjacent blocks and / or co-located blocks in the time-reference picture, and signal the selected candidates as motion vector predictors. In addition to predicting motion vector values, a reference index of the already encoded / decoded picture may also be predicted. Typically, the reference index is predicted from adjacent blocks and / or co-located blocks in the time-reference picture. Furthermore, typical high-efficiency video codecs utilize additional motion information encoding / decoding mechanisms. This is what is known as merging mode, where all motion field information (including motion vectors for each available reference picture list and their corresponding reference picture indices) is predicted and used without any modification or alteration. Similarly, motion field information is predicted using motion field information from adjacent and / or co-located blocks in the time reference picture. The motion field information to be used is signaled within a motion field candidate list filled with motion field information from available adjacent / co-located blocks.
[0038] Typically, video codecs support motion-compensated prediction from a single source image (unidirectional prediction) and prediction from two sources (bidirectional prediction). In unidirectional prediction, a single motion vector is applied. In bidirectional prediction, two motion vectors are signaled, and the motion-compensated predictions from the two sources are averaged to generate the final sample prediction. In weighted prediction, the relative weights of the two predictions can be adjusted, or a signaled offset can be added to the prediction signal.
[0039] In addition to applying motion compensation for interpicture prediction, a similar technique can be applied to intrapicture prediction. In this case, the displacement vector indicates where in the same picture a sample block can be copied from, in order to generate predictions of the blocks to be encoded or decoded. Such intrablock copying techniques can significantly improve encoding efficiency when there are repeating structures within a frame, such as text or other graphics.
[0040] In typical video codecs, the predicted residuals after motion compensation or intra-prediction are first transformed by a transformation kernel (such as DCT) and then encoded. This is because residuals are often correlated to some extent, and the transformation often contributes to reducing this correlation, thereby improving the efficiency of encoding.
[0041] A typical video encoder uses a Lagrangian cost function to find an ideal encoding mode, such as a desired macroblock mode, and its associated motion vector. This type of cost function uses a weighting coefficient λ to link the (exact or estimated) image distortion caused by the lossy encoding method with the (exact or estimated) amount of information required to represent the pixel values within the image region. C = D + λR (Math. 1) In the formula, C is the Lagrangian cost to be minimized, D is the image distortion considering modes and vectors (e.g., mean square error), and R is the number of bits required to represent the data needed to reconstruct the image block within the decoder (including the amount of data representing the candidate motion vectors).
[0042] Scalable video encoding refers to an encoding structure in which a single bitstream may contain multiple content representations with different bitrates, resolutions, or frame rates. In such cases, the receiver can extract the desired representation according to its characteristics (e.g., the resolution best suited to the display device). Alternatively, a server or network element can extract a portion of the bitstream sent to the receiver, depending on, for example, network characteristics or the receiver's processing capabilities. Typically, a scalable bitstream consists of a "base layer" and one or more enhancement layers. The base layer provides the lowest possible video quality. One or more enhancement layers improve video quality when received and decoded together with the base layer. Typically, the encoding representation of an enhancement layer depends on the base layer to improve its encoding efficiency. For example, motion and mode information for the enhancement layer can be predicted from the base layer. Similarly, pixel data from the base layer can be used to generate predictions for the enhancement layer.
[0043] Scalable video codecs for image quality scalability (so-called signal-to-noise ratio or SNR) and / or spatial scalability are implemented as follows: Conventional non-scalable video encoders and decoders are used for the base layer. The reconstructed / encoded picture of the base layer is contained in a reference picture buffer for the enhancement layer. In H.264 / AVC, HEVC, and similar codecs that utilize one or more reference picture lists for inter-prediction, the base layer decoded picture may be inserted into one or more reference picture lists to encode / decode the enhancement layer picture in the same way as the decoded reference picture of the enhancement layer. Thus, the encoder selects the base layer reference picture as the inter-prediction reference, and its use is typically indicated by a reference picture index in the encoded bitstream. The decoder decodes from the bitstream, for example from the reference picture index, that the base layer picture is to be used as the inter-prediction reference for the enhancement layer. When the decoded base layer picture is used as the prediction reference for the enhancement layer, it is referred to as the inter-layer reference picture.
[0044] In addition to image quality scalability, the following scalability modes are available. • Spatial scalability: Base layer pictures are decoded at a lower resolution than reinforcement layer pictures. • Bit depth scalability: The base layer picture is encoded with a lower bit depth (e.g., 8 bits) than the reinforcement layer picture (e.g., 10 or 12 bits). • Saturation format scalability: Enhanced layer pictures have higher fidelity in terms of saturation (e.g., encoded in 4:4:4 saturation format) than base layer pictures (e.g., 4:2:0 format).
[0045] In all of the scalability described above, the base layer information can be used to encode the enhancement layer in a way that minimizes additional bitrate overhead.
[0046] Scalability can be achieved in two basic ways: by introducing a new encoding mode that performs pixel value or syntax prediction from the lower layers of the scalable representation, or by placing it in the lower-layer picture relative to the higher-layer reference picture buffer (Decoded Picture Buffer: DPB). The former is more flexible and, in most cases, can achieve higher encoding efficiency. On the other hand, the latter, reference-frame scalability, can be achieved very efficiently with minimal changes compared to a single-layer codec without sacrificing most of the achievable encoding efficiency gain. Essentially, a reference-frame scalability codec can be implemented using the same hardware or software implementation for all layers, simply by outsourcing DPB management.
[0047] To enable parallel processing, an image can be divided into individually encodeable and decodeable image segments (slices or tiles). A slice is typically an image segment consisting of a given number of basic encoding units, which are processed in an initial encoding or decoding order. A tile typically refers to an image segment defined as a rectangular image region, which is processed at least to some extent as a separate frame.
[0048] Conventional directional intra-prediction limits the available directional pairs to a range of -45 to +45 degrees from the top of the block and -45 to +45 degrees from the left. This 180-degree range, extending from the upper right to the lower left, is sufficient for conventional square intra-prediction blocks. For example, the H.264 / AVC and H.265 / HEVC video encoding standards use conventional spatial intra-prediction with square prediction blocks and intra-prediction directions. Its range is -45 to +45 degrees from the top of the block and -45 to +45 degrees from the left.
[0049] Figure 3a shows the intra-prediction direction set used in the H.265 / HEVC video encoding standard. The values for the horizontal prediction from the left boundary and the vertical prediction from the top boundary define the projected difference for each sample distance, with a 1 / 32 sample accuracy, ranging from -32 to +32. In other words, the reference pixel(s) used for directional intra-prediction can be determined by the horizontal and vertical distances from the boundary used for the prediction and intra-prediction direction. For example, a value of +32 corresponds to a +32 / 32 reference position displacement for each sample unit between the predicted sample and the reference sample (i.e., using a +45 degree prediction angle). As another example, a value of -17 for horizontal prediction means that a pixel four pixels away from the (vertical) boundary has a reference position of -68 / 32 relative to the predicted pixel. In other words, the reference pixel position lies between the second and third pixels from the level where the predicted pixel exists, and the predicted pixel value is obtained as a weighted average of the second and third pixel values (28 × a² + 4 × a³) / 32. Generally, the intra-prediction direction is used to determine the reference pixel or prediction pixel. The reference pixel(s) are used to determine the predicted pixel value, for example, by a weighted average of the reference pixel values. Pixels directly adjacent to a block boundary (or on an extension of a block boundary) can be used as reference pixels. Furthermore, pixels further away from the block boundary can also be used.
[0050] Figure 3b illustrates a method in which each sample within a prediction block utilizes the same prediction direction during the prediction process. In Figure 3b, the circular pixels represent blocks of prediction samples, and the black squares represent rows of reference samples. Furthermore, Figure 3b shows the prediction projection for the first and second sample rows with a fixed prediction direction. As described above, the deviation from the reference sample directly above is calculated, so the deviation for the first column of prediction samples is d, the deviation for the second column of prediction samples is 2d, and so on.
[0051] Figure 3c illustrates the application of an intra-prediction direction that varies depending on the distance of the sample row to be predicted from the reference row. In Figure 3c, the prediction projection is evaluated based on the vertical distance from the reference sample. The shifts of the first, second, third, and fourth rows are d1, d1+d2, d1+d2+d3, and d1+d2+d3+d4. The increments of the shift d1, d2, d3, and d4 are of different magnitudes. For example, they are larger or smaller. In other words, the prediction direction within the block to be predicted is variable. For example, the prediction direction of the first row to be predicted may be determined, and the prediction directions of the other rows may be calculated from that first prediction direction.
[0052] Figure 3d shows the application of a similar method at the block level. Each 4x4 prediction block of predicted pixel values has a distinct prediction direction calculated based on the block's position. Blocks in the first row of a block can use reference samples above that block as a reference for prediction. Blocks below the first row of a block can use samples in the block directly above them as a reference for prediction. Each block's prediction direction is determined individually based on its relative block position to the others (or relative to a defined origin). Therefore, the prediction direction may change between blocks, and the shifts in the first row of pixels to be predicted are d1, d2, d3, and d4, respectively.
[0053] As described above, a weighted average may be used to obtain predicted pixel values from reference pixel values. In addition to a single row of reference pixels, multiple rows of reference pixels may be used. The purpose of the prediction process should be understood as providing a consistent and smooth predicted block so that the remaining prediction error signal can be efficiently encoded. In fact, the encoder may encode the block in several different prediction directions and select the prediction direction that yields the best encoding efficiency.
[0054] The available directional prediction directions (also called directional prediction modes) can be understood as forming directional prediction mode sets. For example, the directional intra-prediction direction sets or directional intra-prediction mode sets used in the H.265 / HEVC video encoding standard are -32, -26, -21, -17, -13, -9, -5, -2, 0, +2, +5, +9, +13, +17, +21, +26, +32 for horizontal prediction, and -32, -26, -21, -17, -13, -9, -5, -2, 0, +2, +5, +9, +13, +17, +21, +26, +32 for vertical prediction. Direction -32 coincides with both horizontal and vertical prediction directions. In Figure 3a, direction +32 in horizontal prediction is the exact opposite of the +32 vertical prediction direction. Other prediction direction sets are also available. For example, the Joint Exploration Test Model (JEM4) has intra-prediction directions within the same angular range as H.265 / HEVC and corresponds to square (square and non-square) prediction blocks. However, more prediction directions are introduced between H.265 / HEVC directions.
[0055] As shown in Figure 3a, the upper-left direction of the prediction can be understood as a 45-degree angle from the center of the square block being predicted to the upper-left corner of that block. More generally, the upper-left direction should be understood as a 45-degree angle to the upper left between the horizontal (left) and vertical (up) directions. This upper-left direction can be used as a reference, and for example, all prediction directions in Figure 3a are either 0 degrees, acute (less than 90 degrees), or right angles (90 degrees) with respect to the upper-left direction. In Figure 3a, angle α indicates the horizontal prediction direction (prediction from the reference sample to the left of the block), and angle β indicates the vertical prediction direction (prediction from the reference sample above the block). The dashed lines in Figure 3a indicate the horizontal and vertical boundaries of the boundary or their extensions, and the right-angle (90-degree) lines with respect to the upper-left direction. The numbers in the sub-figures correspond to the numbers in the larger figures for the prediction directions. The shapes corresponding to the notation in the sub-figures are also used in subsequent figures.
[0056] However, for non-square blocks, especially when the ratio between the horizontal and vertical dimensions of the prediction block is large, the selection of prediction directions in Figure 3a may be insufficient. For example, in a conventional intra-prediction mode like that in Figure 3a, for non-square prediction blocks, there may be a large number of valid reference samples that are not directly connected to any of the block boundaries in directions between 0 and +45 degrees (between the perfectly vertical direction and the 45-degree prediction from the upper right, or between the perfectly horizontal direction and the 45-degree prediction from the lower left). In these cases, by "reversing" or rotating the prediction direction by 180 degrees and using reference samples on a different boundary of the block (the upper boundary instead of the left boundary, or the left boundary instead of the upper boundary), prediction sample blocks with a similar directional structure can be generated with a high correlation between the prediction samples and the original samples. From this, it becomes possible to use prediction direction sets that extend beyond the conventional -45 to +45 degrees into the angular range for vertical and horizontal predictions, i.e., extending from -90 to beyond 90 degrees from the upper left direction. To further improve coding efficiency with new intra-prediction directions, these wide-angle intra-prediction directions may be signaled in the bitstream, or they may be combined to generate bidirectional predictive intra-blocks, as is explained here.
[0057] Here, a video / image encoder is provided that utilizes an intra-predictive direction set that extends more than 45 degrees from the conventional horizontal or vertical direction, i.e., extending obtusely from the upper left direction (wide-angle prediction). The available prediction modes (directions) may be selected based on the shape of the prediction unit. For example, a narrow angle from a narrower direction of the prediction unit may be inverted to make a wide-angle prediction direction available. Mode information indicating the approximate directionality of a block may be encoded in the bitstream (this can be used to predict the directionality of subsequent prediction units). For this approximate prediction directionality, it is checked whether two opposite directions of that direction are both available as prediction modes. If both are found to be available, it is indicated which of the two directions will be used. The probability of the basic direction and the wide-angle direction may differ based on the shape or dimensions of the block.
[0058] The following describes wide-angle prediction. That is, prediction using a reference sample within an obtuse angle with respect to the upper-left direction of the pixel to be predicted. Figure 4a shows an image with the block P to be predicted, a reconstructed region R available for reference in the prediction process, and an unprocessed, unavailable region U.
[0059] Figure 4b shows reference samples on the left and top boundaries of the block. Reference samples that have already been decoded are shown as black circles. Unavailable reference samples are shown as white circles. Such unavailable reference samples may not have been decoded / processed yet, or may be located beyond the image edge. These unavailable reference samples can arise from padding of the nearest available reference sample on the same boundary, i.e., by copying values from available reference samples such as the nearest available reference sample. If the prediction direction is perpendicular to the upper left direction, the required number of reference samples in both the horizontal and vertical directions is w + h + 1. This is because, in vertical prediction, the maximum deviation from directly above is equal to the block height h (45 degrees to the upper right prediction direction), and the block width is w; the same logic applies to horizontal prediction. Pixels in the upper left corner are always required.
[0060] Figure 4c shows a non-square prediction block, with the horizontal +45 degree prediction for the rightmost sample of the block (long arrow) and the vertical +45 degree prediction for the rightmost sample of the block (short arrow). As shown in the figure, there is only one unavailable reference pixel (bottom).
[0061] Figure 4d shows a non-square prediction block and horizontal predictions (long arrows) for angles between 0 and +45 degrees (i.e., acute angles relative to the upper left), and its inverted mode (wide-angle mode), vertical predictions (short arrows) for angles greater than +45 degrees (i.e., obtuse angles relative to the upper left). As shown in the figure, an additional reference sample 410 (or two or more additional reference samples, shown as a black filled pattern) is used in the top row. This enables prediction from the wide-angle direction (short arrows). In the case of wide-angle, i.e., obtuse-angle directional intra-prediction for such rectangular non-square blocks, there is an advantage that the reference pixel used for wide-angle prediction (the rightmost pixel 410 in Figure 4d) is closer to many pixels in the prediction block. That is, a higher correlation with the prediction pixel is obtained than with the basic reference sample in the narrow-angle direction (the third reference image 420 from the bottom in Figure 4d).
[0062] When using conventional angles (the direction from -32 to +32 in Figure 3a), for example, at most w+h "up and upper right" reference samples and one upper left corner sample are available. In wide-angle mode, more are required. For samples beyond the above w+h samples, it may be checked whether they are available as reference samples. Alternatively, such "distant" reference samples may be treated as unavailable, and instead, values padded (copied) using the nearest available reference samples may be used.
[0063] Figure 5a shows pairs of directional intra-predictive modes (directions). The original modes 510, 512, 515, and 517, which (each) have corresponding wide-angle modes 520, 522, 525, and 527, are shown as circles, and the corresponding wide-angle modes are shown as squares. These basic modes and wide-angle modes should be understood as forming so-called wide-angle directional intra-predictive pairs. Here, these are the pairs (510, 520), (512, 522), (515, 525), and (517, 527). These pairs may have related approximate directions, for example, shown in the narrow-angle mode, which would be +21 for the pair (510, 520). In addition, the +45 degree horizontal and vertical modes (shown as +32 sample displacement in Figure 5a) can be represented as basic mode-wide-angle mode pairs. This specifies which of the two directions to enable, instead of the general direction (+32) and the traditional representation of the two separate modes.
[0064] Figures 5b, 5c, 5d, and 5e show some examples of associated wide-angle modes. In the left panel of Figure 5b, the wide-angle mode 540 is shown as the "inverted" version of the basic (acute) mode 530. The angle of the wide-angle mode 540 with respect to the upper left is derived from the basic mode 530. Specifically, it is obtained by subtracting the basic mode angle from 180 degrees. That is, if the basic mode angle is α and acute, then the angle of the wide-angle mode with respect to the upper left is 180°-α. As shown in the right panel of Figure 5b, the wide-angle mode 542 does not have to be the exact opposite of the corresponding basic narrow-angle (acute) mode 532; it can be nearly opposite, or not exactly opposite but on the opposite side. In other words, a wide-angle mode may have a direction that is obtuse with respect to the upper left (the direction highlighted in Figure 5b) and may be on the opposite side of the basic mode with respect to the upper left.
[0065] Figure 5c (left image) shows the non-paired correspondence between basic (narrow-angle) modes and wide-angle modes. For example, there may be two basic modes (narrow-angle modes) 550 and 552 associated with the same wide-angle mode 560. This can improve coding efficiency by reducing the number of different modes. Furthermore, this may allow for the selection of reference pixels closer to the prediction block. Similarly, one basic narrow-angle mode 555 may be associated with two or more wide-angle modes 565 and 567. This can improve coding efficiency by reducing the number of basic modes to which an associated wide-angle mode exists.
[0066] Figure 5d illustrates the concept of directional predictive wide-angle mode pairs. Wide-angle mode pairs are indicated by squares and include wide-angle mode pairs 580, 582, and 584. These wide-angle modes may be associated with basic modes 570, 572, and 574, indicated by circles. Such wide-angle mode pairs may be communicated in a bitstream. There may be multiple wide-angle mode pairs defined and communicated in a bitstream. Wide-angle mode pairs used for encoding and decoding may be communicated in a bitstream along with wide-angle mode pair indicators. These indicators may be placed, for example, in a picture header or slice header, or in a parameter set referenced from the picture or slice.
[0067] Figure 5e shows that one or more wide-angle mode pairs may be used. For example, modes 590, 591, and 592 may be in one wide-angle mode pair, and modes 595, 596, and 597 may be in another mode pair. In encoding and decoding, these mode pairs may be used such that the mode pairs used are communicated directly in the bitstream, and the modes from that mode pair are communicated in the bitstream.
[0068] The video or image decoder or encoder according to the present invention may include spatial intra-prediction directions at angles greater than +45 degrees, which is the conventional limitation for prediction mode sets. This is effective to some extent even for conventional square prediction blocks, but has been found to be particularly effective for non-square rectangular prediction blocks. That is, it has been found that when some conventional prediction directions are applied to the direction on the narrow-angle side of the block, many reference samples are decoupled from the boundary of the prediction block. Text structures with similar orientations can be generated from approximately the opposite direction (by "reversing" or rotating" the prediction direction exactly or approximately 180 degrees). Such operation can provide statistically better predictions because many reference samples are closer adjacent to the prediction block, resulting in a confirmed gain in coding efficiency.
[0069] For wide-angle prediction modes with directions exceeding +45 degrees relative to perfectly horizontal or perfectly vertical, direct prediction can be encoded using conventional intra-mode coding means. That is, these can be added to the list of available prediction modes, and each of these modes is assigned a unique mode number. When the decoded intra-prediction mode refers to a wide-angle mode, the intra-prediction process performs sample prediction from the indicated direction. For non-square prediction blocks, this process is modified, and it is advantageous that the shape of the block is considered as part of the decoding process. One way to achieve this is to include wide-angle modes with directions exceeding +45 degrees only with respect to the principal direction, which is the longitudinal direction of the block. For example, if the width of the prediction block is 16 samples and the height of the prediction block is 4 samples, the set of directional intra-prediction modes can be configured to include a narrow-angle horizontal mode with angles between -45 and +45 degrees, a narrow-angle vertical mode with angles between -45 and +45 degrees, and one or more wide-angle vertical modes with angles exceeding +45 degrees (e.g., shown in Figure 5e). Furthermore, the number and direction of the wide-angle modes may also depend on the shape of the block. For example, if the width-to-height ratio is 2:1, a given number of wide-angle directions may be included in the list of available modes, and if the ratio is 4:1, a different number of wide-angle directions may be included in the same list. Similarly, the shape of the prediction block may define how many narrow-angle modes (-45 to +45 degrees) are included in the list of available modes for the block. For example, this means that the more elongated the block, the more wide-angle modes will be included. Note that by selecting wide-angle (obtuse-angle) directions, more reliable predictions can be achieved than with acute-angle prediction directions for non-square blocks being predicted.
[0070] One possibility for representing wide-angle modes is to enable the conventional narrow-angle intra-predictive direction sets for angles ranging from -45 to +45 degrees for any block size, and determine narrow-angle modes that have associated "inverted" wide-angle modes depending on the block shape (shown in Figure 5d). In this way, the decoder first decodes the narrow-angle predictive mode that defines the approximate orientation of the block, and if that mode indicates a mode that has associated wide-angle modes, it may further decode an additional identifier, "Use wide-angle mode instead of base mode." This identifier defines whether the mode is interpreted as a conventional narrow-angle mode or an inverted wide-angle mode. This type of technique is convenient because narrow-angle modes can be used for predicting the final predictive mode, that is, they define the orientation of the texture that the sample prediction process generates for the block. If wide-angle directions for angles greater than +45 degrees are simply added to the list of predictive modes as independent modes, the resulting list of modes will contain mode pairs that produce the same orientation but have different reference samples. This can reduce the reliability of subsequent block orientation predictions.
[0071] Alternatively, the number of intra-prediction modes available for a prediction block may be kept constant, and the decoder may interpret a specified number of modes variably depending on the shape of the prediction block. For example, some directions associated with prediction modes may be "reversed" by exactly or approximately 180 degrees depending on the shape of the block (see Figure 5b). For example, referring to Figure 5a, if the width of the prediction block is greater than its height, the horizontal narrow-angle predictions associated with displacement parameters +21 and +26 can be resolved as vertical wide-angle modes with displacement parameters +48 and +39, respectively (because the vertical prediction is expected to work better with respect to reference samples above and to the left of it, due to the shorter relative distance of the prediction block). Similarly, if the width of the prediction block is less than its height, the vertical narrow-angle predictions associated with displacement parameters +21 and +26 can be resolved as horizontal wide-angle modes with displacement parameters +48 and +39, respectively. These selections of prediction directions are illustrative, and in practice, a different number of modes with different narrow-angle and reversed wide-angle displacement parameters can be selected as wide-angle candidates.
[0072] Alternatively, the number of intra-prediction modes available to a prediction block may be kept constant, and the entropy coding and decoding of the modes may be modified based on the shape or dimensions of the prediction block. For example, to decode prediction directions with different principal directions, the computational decoder may utilize different contexts. The decoder first reads an indicator from the bitstream to determine whether to use the horizontal or vertical principal direction, and then, based on the principal prediction direction and the shape of the block, uses different... Context mode The order may be switched. Alternatively, in the case of a method that utilizes the most likely mode prediction (i.e., having a syntax element indicating that the selected prediction mode is one of the preferred modes), the preferred mode list may be constructed based on the shape of the block. For example, if the width of the prediction block is greater than its height, the pair may include vertical candidate modes before or instead of horizontal candidates. If the width of the block is less than its height, the list may include horizontal candidate modes before or instead of vertical candidates.
[0073] In other words, information about the block shape can influence the number of wide-angle directional prediction modes used, the wide-angle directional prediction modes used, the set of wide-angle directional prediction modes used, and the possibilities of different modes. By utilizing this block shape information, coding efficiency can be improved. This is because it is not necessary to explicitly encode all the information, and the codewords assigned to more likely parameter values can be made shorter.
[0074] Selecting the most likely mode based on block shape may be used in conjunction with conventional narrow-angle intrapicture directional prediction.
[0075] With a given precision, by utilizing the inverse of the original mode, the "inverted" wide-angle displacement parameter can be calculated from the displacement parameter of the original narrow-angle mode (see Figure 5b, left panel). For example, in the case of a displacement parameter with an precision of 1 / 32 samples, the wide-angle displacement parameter dW can be calculated from the original narrow-angle displacement parameter dN by the following integer calculation. inverseAngle(dN) = (256 × 32) / dN dW = 32 × inverseAngle(dN) >> 8 In the formula, >> indicates a bit shift operation (which may correspond to a calculation result of 1024 / dN, which is roughly truncated or rounded depending on the calculation structure). Defining the "inverted" wide-angle displacement parameter in this way has the advantage of avoiding division in the final calculation of dW where the parameter cannot be a power of 2. This allows an intermediate value of inverseAngle(dN) to be pre-calculated, stored in a memory buffer, and used when the encoder or decoder needs to evaluate dW. dW may be defined in a different way. For example, it may not have a linear or inverse dependency on dN. Depending on the value of dN, it may be determined by heuristics and set to the same value in the encoder and the corresponding decoder.
[0076] Alternatively, one narrow-angle mode may be associated with multiple wide-angle modes, or one wide-angle mode may be associated with two or more narrow-angle modes (see Figure 5c). The encoder and decoder may further generate bidirectional predicted samples by combining the narrow-angle modes with the sample predictions of the associated wide-angle inverted modes to generate predictions. This may be achieved, for example, by weighting the predicted samples based on their distance from the reference samples, or by other methods. In the case of bidirectional prediction, or more generally, unidirectional prediction, there may be a deviation index for the wide-angle modes. This allows for adjustment to better match the desired texture structure of the block.
[0077] Conventional narrow-angle predictions from -45 to +45 degrees require a reference sample spaced up to the block width plus block height from the top-left corner of the prediction block (as shown in Figures 2b and 2c). For wide-angle predictions beyond +45 degrees, several reference samples spaced further apart may be required. One possibility is to use padding (copying the values of the nearest available reference sample) to generate reference samples at a distance greater than the block width plus height from the top-left coordinates of the block. Another possibility is to use processed samples with the same availability conditions as those used for the narrow-angle reference sample range.
[0078] To further improve the quality of the prediction blocks, filtering and other adjustment operations may be performed before (e.g., for reference samples) or after sample prediction using wide-angle intra-mode (e.g., filtering the sides or interior of the prediction blocks).
[0079] The video or image decoder may further be configured to select between a narrow-angle directional intra-prediction mode with angles between -45 and +45 degrees relative to the primary prediction direction (which is either perfectly horizontal or perfectly vertical) and a wide-angle mode with angles greater than +45 degrees relative to the primary prediction direction.
[0080] Whether one or more wide-angle prediction modes with angles greater than +45 degrees are available depends on the shape of the prediction block.
[0081] The video or image decoder decodes the prediction mode identifier, checks if there is an available "inverted" mode (wide-angle mode) associated with the decoding mode, and, based on that check, decodes a second identifier that determines whether to use the original prediction direction or its reverse direction.
[0082] The original (basic) prediction direction may use the basic sample from the first boundary of the block for the first prediction sample displacement parameter. The wide-angle prediction direction may use the sample from the second boundary of the block for the second prediction sample displacement parameter (see Figure 3b). The first boundary of the block is different from the second boundary of the block, and the first prediction sample displacement parameter may be the same as or different from the second prediction sample displacement parameter.
[0083] The available intra-prediction mode sets may depend on the shape of the prediction block (i.e., the width and height of the prediction block in the case of a rectangular block structure).
[0084] A directional intra-prediction mode having a given identifier may be understood to have a first angle if the block width is greater than the height, and a second angle if the block width is less than the height. The first angle is different from the second angle.
[0085] The first intra-prediction mode may have a corresponding wide-angle mode that has an angle between -45 degrees and +45 degrees with respect to a perfectly horizontal or perfectly vertical principal direction, and an angle of at least +45 degrees with respect to a principal direction different from the principal direction of the first intra-prediction mode.
[0086] Context selection for entropy decoding of intra-predictive modes may depend on the shape of the block. For example, a binary computation decoder may use different estimated probabilities for mode identifiers depending on whether the block is square or not. That is, for square blocks, approximately the same probabilities are assumed for the left and up directions, and if the block is not square, a bias is applied in the direction of the longer edge. In fact, this improves coding efficiency because shorter codewords are used for symbols that are more likely to be coded.
[0087] The encoder and decoder may identify the most likely mode pair for a predicted block based on the block shape and encode / decode an identifier indicating that the selected mode is one of the most likely modes.
[0088] The encoder and decoder may identify the most likely mode pair for a predicted block based on the block shape, and encode / decode an identifier indicating the selected mode from among the most likely modes for the block.
[0089] The proposed method and device can improve the accuracy of directional intra-prediction. Furthermore, it provides an efficient signaling mechanism when there are multiple directional prediction modes with opposite directions within the list of available prediction modes.
[0090] Figure 6a shows a flowchart of the decoding method. In phase 610, a reference pixel may be formed from the received bitstream for intra-picture directionality prediction. In phase 612, a prediction block may be obtained by predicting the pixel value. This prediction may be performed using the wide-angle prediction direction as described above. In phase 614, the image block may be decoded from the bitstream using the acquired wide-angle intra-prediction block. The prediction error signal may be decoded from the bitstream, and the decoded image block may be obtained in addition to the predicted image block.
[0091] Figure 6b shows a flowchart of the encoding method. In phase 616, reference pixels may be generated from the image data to be encoded. These reference pixels may be used in subsequent intra-picture orientation prediction. In phase 618, pixel values may be predicted by the wide-angle prediction direction as described above, and prediction blocks may be obtained. In phase 619, the image blocks may be encoded into a bitstream using the wide-angle intra-prediction blocks. A prediction error signal may be obtained by subtracting the prediction blocks from the encoded image blocks. The error signal and the parameters and indicators for intra-picture orientation prediction may be encoded into a bitstream.
[0092] Figure 6c shows a flowchart of the decoding method. In phase 620, a reference pixel may be generated from the received intra-picture orientation prediction bitstream. In phase 622, the shape of the block to be predicted may be determined from the bitstream. In phase 624, the orientation prediction mode used may be determined based on the shape. In phase 626, it may be determined whether the orientation prediction mode used is one of the most likely modes determined by the shape. In phase 630, a mode selection indicator may be received from the bitstream. In phase 634, the mode to be used may be selected between the basic mode and the inverted mode of the basic mode. In phase 636, the mode to be used may be selected based on the block shape. In phase 638, the mode to be used may be selected from the predicted modes based on the block shape. In phase 640, a predicted block may be obtained by predicting the pixel value. This prediction may be performed using the wide-angle prediction direction as described above. In phase 642, the obtained wide-angle intra-predicted block may be used to decode the image block from the bitstream. The prediction error signal may be decoded from the bitstream, and the decoded image blocks may be obtained in addition to the predicted image blocks. In the method shown in Figure 6c, the phases may be in a different order than shown. Individual phases may be performed or omitted. Multiple different phases may be combined or treated as substitutes.
[0093] Figure 6d is a flowchart of the encoding method. In phase 660, reference pixels may be generated from the image data to be encoded. These reference pixels may be used in subsequent intra-picture orientation prediction. In phase 662, the shape of the block to be predicted may be determined and made available for use in subsequent orientation prediction. In phase 664, the orientation prediction mode being used may be determined based on the shape. In phase 667, it may be determined whether the orientation prediction mode being used is one of the most likely modes determined by the shape. In phase 670, a mode selection indicator may be encoded into a bitstream. In phase 672, the mode to be used may be selected between the basic mode and the inverted mode of the basic mode. In phase 674, the mode to be used may be selected based on the shape of the block. In phase 676, the mode to be used may be selected from the predicted modes based on the shape of the block. In phase 680, the pixel value may be predicted by the wide-angle prediction direction as described above, and the predicted block may be obtained. In phase 682, the image block may be encoded into a bitstream using the wide-angle intra-prediction block. The prediction error signal may be obtained by subtracting the prediction block from the image block to be encoded. The error signal, along with the parameters and indicators for intra-picture orientation prediction, may be encoded into a bitstream. In the method shown in Figure 6d, the phases may be in a different order than shown. Individual phases may be performed or omitted. Multiple different phases may be combined or treated as substitutes.
[0094] Examples of numbered entries are given below.
[0095] 1. • Receiving a bitstream containing encoded image data, • Forming a set of reference pixels having reference pixel values for intrapicture orientation prediction from the bitstream in computer memory, - Predicting pixel values in an image block predicted by intrapicture orientation prediction by using the values of one or more reference pixels selected from the prediction direction for the predicted pixel when forming the predicted pixel values, wherein the prediction direction is a wide-angle prediction direction that forms an obtuse angle with respect to the upper-left direction of the predicted pixel. • Repeating the pixel prediction for multiple pixels to form a predicted image block, • When decoding an image block from the bitstream, the predicted image block is used to obtain the decoded image block. A method that includes this.
[0096] 2. The predicted image block has a certain shape, • Determining the shape from the aforementioned bitstream, Based on the shape, determine the direction prediction mode used for the intrapicture direction prediction, When predicting the aforementioned pixel value, the prediction direction is selected from the directional prediction mode, The method described in Example 1, including the method described in Example 1.
[0097] 3. The predicted image block has a certain shape, • Determining the shape from the aforementioned bitstream, • Determining the prediction mode used in the aforementioned intrapicture direction prediction, Based on the shape, determine the most likely prediction mode, Decoding an indicator from the bitstream indicating whether the prediction direction is one of the most likely prediction modes, • Selecting the prediction direction from the most likely prediction modes, The method described in Example 1 or 2, including the method described in Example 2.
[0098] 4. • Determine the direction prediction mode used for the intrapicture direction prediction, • Decoding the direction indicator from the bitstream, • Selecting the prediction direction for predicting the pixel value from the basic direction and wide-angle direction associated with the direction indicator, The method described in any of Examples 1 to 3, including the method described in any of Examples 1 to 3.
[0099] 5. • Decoding the prediction direction selection indicator from the aforementioned bitstream, Using the prediction direction selection indicator, select the prediction direction for predicting the pixel value from the basic direction and the wide-angle direction, The method described in Example 4, including the method described in Example 4.
[0100] 6. The predicted image block has a certain shape, • Determining the shape from the aforementioned bitstream, Based on the shape, the prediction direction is selected from the basic direction and the wide-angle direction to predict the pixel value, The method described in Example 4, including the method described in Example 4.
[0101] 7. The method according to any one of Examples 4 to 6, wherein the basic direction is associated with the wide-angle direction such that it is substantially opposite to the wide-angle direction.
[0102] 8. The method according to any one of Examples 4 to 6, wherein the basic direction is associated with the wide-angle direction such that it is not substantially opposite to the wide-angle direction and is on the opposite side of the wide-angle direction from the upper left direction.
[0103] 9. The method according to any one of Examples 4 to 8, wherein two or more wide-angle directions are associated with one basic direction, or two or more basic directions are associated with the same wide-angle direction, or both.
[0104] 10. The predicted image block has a certain shape, • Determining the shape from the aforementioned bitstream, • Determining the prediction mode used in the aforementioned intrapicture direction prediction, • Decoding the direction indicator from the bitstream, Using the shape described above, a predicted direction is formed for predicting the pixel value between the basic direction and the wide-angle direction associated with the direction indicator, • Selecting the predicted direction based on the predicted direction, The method described in any of Examples 1 to 9, including the method described in any of Examples 1 to 9.
[0105] 11. • Receiving the image data to be encoded, - Forming a set of reference pixels having reference pixel values for intrapicture orientation prediction from the image data in computer memory, - Predicting pixel values in an image block predicted by intrapicture orientation prediction by using the values of one or more reference pixels selected from the prediction direction for the predicted pixel when forming the predicted pixel values, wherein the prediction direction is a wide-angle prediction direction that forms an obtuse angle with respect to the upper-left direction of the predicted pixel. • Repeating the pixel prediction for multiple pixels to form a predicted image block, • When encoding an image block into a bitstream, use the predicted image block, A method that includes this.
[0106] 12. The predicted image block has a certain shape, Based on the shape, determine the direction prediction mode used for the intrapicture direction prediction, When predicting the aforementioned pixel value, the prediction direction is selected from the directional prediction mode, The method described in Example 11, including the method described in Example 11.
[0107] 13. The predicted image block has a certain shape, • Determining the prediction mode used in the aforementioned intrapicture direction prediction, Based on the shape, determine the most likely prediction mode, • Selecting the prediction direction from the most likely prediction modes, • Encoding an indicator into the bitstream that indicates whether the prediction direction is one of the most likely prediction modes, The method described in Example 11 or 12, including the method described in Example 11 or 12.
[0108] 14. • Determine the direction prediction mode used for the intrapicture direction prediction, • Selecting the prediction direction for predicting the pixel value from the basic direction and wide-angle direction associated with the direction indicator, • Encoding a direction indicator into the bitstream, The method described in any of Examples 11 to 13, including the method described in any of Examples 11 to 13.
[0109] 15. • Using the prediction direction selection indicator, select the prediction direction for predicting the pixel value from the basic direction and the wide-angle direction, • Encoding the prediction direction selection indicator into the bitstream, The method described in Example 14, including the method described in Example 14.
[0110] 16. The decoded image block has a certain shape, The method according to Example 14, comprising selecting the prediction direction for predicting the pixel value from the basic direction and the wide-angle direction based on the shape.
[0111] 17. The method according to any one of Examples 14 to 16, wherein the basic direction is associated with the wide-angle direction such that it is substantially opposite to the wide-angle direction.
[0112] 18. The method according to any one of Examples 14 to 16, wherein the basic direction is associated with the wide-angle direction such that it is not substantially opposite to the wide-angle direction and is on the opposite side of the wide-angle direction from the upper left direction.
[0113] 19. The method according to any of Examples 14 to 18, wherein two or more wide-angle directions are associated with one basic direction, or two or more basic directions are associated with the same wide-angle direction, or both.
[0114] 20. The decoded image block has a certain shape, • Determining the prediction mode used in the aforementioned intrapicture direction prediction, Using the shape described above, a predicted predicted direction is formed for predicting the pixel value between the basic direction and the wide-angle direction associated with the direction indicator, • Selecting the predicted direction based on the predicted direction, • Encoding a direction indicator into the bitstream, The method described in any of Examples 11 to 19, including the method described in any of Examples 11 to 19.
[0115] 21. An apparatus comprising at least one processor and a memory containing computer program code, wherein the memory and the computer program code are provided to the apparatus by the at least one processor, • Receiving a bitstream containing encoded image data, • Forming a set of reference pixels having reference pixel values for intrapicture orientation prediction from the bitstream in computer memory, - Predicting pixel values in an image block predicted by intrapicture orientation prediction by using the values of one or more reference pixels selected from the prediction direction for the predicted pixel when forming the predicted pixel values, wherein the prediction direction is a wide-angle prediction direction that forms an obtuse angle with respect to the upper-left direction of the predicted pixel. • Repeating the pixel prediction for multiple pixels to form a predicted image block, A device configured to perform the following actions: decrypting an image block from the bitstream and using the predicted image block to obtain the decrypted image block.
[0116] 22. The predicted image block has a certain shape, and the device has, • Determining the shape from the bitstream, Based on the shape, determine the direction prediction mode used in the intrapicture direction prediction, The apparatus according to Example 21, comprising a computer program code that causes the device to select the prediction direction from the directional prediction mode in the prediction of the pixel value.
[0117] 23. The predicted image block has a certain shape, and the device has • Determining the shape from the bitstream, • Determining the prediction mode used in the aforementioned intrapicture direction prediction, Based on the shape, determine the most likely prediction mode, Decoding an indicator from the bitstream indicating whether the prediction direction is one of the most likely prediction modes, The apparatus according to Example 21 or 22, comprising computer program code that causes a computer program to perform the following: selecting the prediction direction from the most likely prediction modes.
[0118] 24. The above device, • Determining the direction prediction mode used in the aforementioned intrapicture direction prediction, • Decoding the direction indicator from the bitstream, The apparatus according to any one of Examples 21 to 23, comprising computer program code that causes the device to select the prediction direction for predicting the pixel value from the basic direction and wide-angle direction associated with the direction indicator.
[0119] 25. The above device, • Decoding the prediction direction selection indicator from the aforementioned bitstream, The apparatus according to Example 24, comprising computer program code that causes the apparatus to use the prediction direction selection indicator to select the prediction direction for predicting the pixel value from the basic direction and the wide-angle direction.
[0120] 26. The predicted image block has a certain shape, and the device has • Determining the shape from the bitstream, The apparatus according to Example 24, comprising a computer program code that causes the user to select the prediction direction for predicting the pixel value from the basic direction and the wide-angle direction based on the shape.
[0121] 27. The apparatus according to any one of Examples 24 to 26, wherein the basic direction is associated with the wide-angle direction such that it is substantially opposite to the wide-angle direction.
[0122] 28. The apparatus according to any one of Examples 24 to 26, wherein the basic direction is associated with the wide-angle direction such that it is not substantially opposite to the wide-angle direction and is on the opposite side of the wide-angle direction from the upper left direction.
[0123] 29. The apparatus according to any one of Examples 24 to 28, wherein two or more wide-angle directions are associated with one basic direction, or two or more basic directions are associated with the same wide-angle direction, or both.
[0124] 30. The predicted image block has a certain shape, and the device has • Determining the prediction mode used in the aforementioned intrapicture direction prediction, Using the shape described above, a predicted predicted direction is formed for predicting the pixel value between the basic direction and the wide-angle direction associated with the direction indicator, • Selecting the predicted direction based on the predicted direction, The apparatus according to any one of Examples 21 to 29, comprising computer program code that causes the bitstream to encode the direction indicator.
[0125] 31. A system comprising at least one processor and memory containing computer program code, wherein the memory and the computer program code are provided to the system by the at least one processor, • Receiving a bitstream containing encoded image data, • Forming a set of reference pixels having reference pixel values for intrapicture orientation prediction from the bitstream in computer memory, - Predicting pixel values in an image block predicted by intrapicture orientation prediction by using the values of one or more reference pixels selected from the prediction direction for the predicted pixel when forming the predicted pixel values, wherein the prediction direction is a wide-angle prediction direction that forms an obtuse angle with respect to the upper-left direction of the predicted pixel. • Repeating the pixel prediction for multiple pixels to form a predicted image block, A system configured to perform the following actions: when decoding an image block from the bitstream, use the predicted image block to obtain the decoded image block; and perform the following actions.
[0126] 32. A system comprising at least one processor and memory containing computer program code, wherein the memory and the computer program code are provided to the system by the at least one processor, • Receiving the image data to be encoded, - Forming a set of reference pixels having reference pixel values for intrapicture orientation prediction from the image data in computer memory, - Predicting pixel values in an image block predicted by intrapicture orientation prediction by using the values of one or more reference pixels selected from the prediction direction for the predicted pixel when forming the predicted pixel values, wherein the prediction direction is a wide-angle prediction direction that forms an obtuse angle with respect to the upper-left direction of the predicted pixel. • Repeat the pixel prediction for multiple pixels to form a predicted image block. A system configured to use the predicted image block when encoding an image block into a bitstream.
[0127] 33. • Means for receiving a bitstream containing encoded image data, A means for forming a set of reference pixels having reference pixel values for intrapicture orientation prediction from the bitstream in computer memory, A means for predicting pixel values in an image block predicted by intrapicture orientation prediction, wherein the predicted direction is a wide-angle prediction direction that forms an obtuse angle with respect to the upper-left direction of the predicted pixel, when forming the predicted pixel values, A means for forming a predicted image block by repeatedly performing the pixel prediction on multiple pixels, An apparatus comprising: means for obtaining a decoded image block using the predicted image block when decoding an image block from the bitstream.
[0128] 34. The predicted image block has a certain shape, • Means for determining the shape from the bitstream, Based on the shape, means for determining the direction prediction mode used for the intrapicture direction prediction, • When predicting the pixel value, means for selecting the prediction direction from the direction prediction mode, The apparatus according to Example 33, comprising:
[0129] 35. The predicted image block has a certain shape, • Means for determining the shape from the bitstream, • Means for determining the prediction mode used in the aforementioned intrapicture direction prediction, • Means for determining the most likely prediction mode based on the shape, A means for decoding an indicator from the bitstream indicating whether the prediction direction is one of the most likely prediction modes, The apparatus according to Example 33 or 34, comprising means for selecting the prediction direction from the most likely prediction modes.
[0130] 36. • Means for determining the direction prediction mode used for the intrapicture direction prediction, • Means for decoding the direction indicator from the bitstream, • Means for selecting the prediction direction for predicting the pixel value from the basic direction and wide-angle direction associated with the direction indicator, An apparatus according to any one of examples 33 to 35, comprising:
[0131] 37. • Means for decoding the prediction direction selection indicator from the bitstream, • A means for selecting the prediction direction for predicting the pixel value from the basic direction and the wide-angle direction using the prediction direction selection indicator, The apparatus according to Example 36, comprising:
[0132] 38. The predicted image block has a certain shape, • Means for determining the shape from the bitstream, Based on the shape, means for selecting the prediction direction for predicting the pixel value from the basic direction and the wide-angle direction, The apparatus according to Example 36, comprising:
[0133] 39. The apparatus according to any one of Examples 36 to 38, wherein the basic direction is associated with the wide-angle direction such that it is substantially opposite to the wide-angle direction.
[0134] 40. The apparatus according to any one of Examples 36 to 38, wherein the basic direction is associated with the wide-angle direction such that it is not substantially opposite to the wide-angle direction and is on the opposite side of the wide-angle direction from the upper left direction.
[0135] 41. The apparatus according to any one of Examples 36 to 40, wherein two or more wide-angle directions are associated with one basic direction, or two or more basic directions are associated with the same wide-angle direction, or both.
[0136] 42. The predicted image block has a certain shape, • Means for determining the shape from the bitstream, • Means for determining the prediction mode used in the aforementioned intrapicture direction prediction, • Means for decoding the direction indicator from the bitstream, - Means for forming a predicted predicted direction for predicting the pixel value between the basic direction and the wide-angle direction associated with the direction indicator using the shape described above, • Means for selecting the predicted direction based on the predicted direction, An apparatus according to any one of Examples 33 to 41, comprising:
[0137] 43. • Means for receiving encoded image data, A means for forming a set of reference pixels having reference pixel values for intrapicture orientation prediction from the image data in computer memory, A means for predicting pixel values in an image block predicted by intrapicture orientation prediction, wherein the predicted direction is a wide-angle prediction direction that forms an obtuse angle with respect to the upper-left direction of the predicted pixel, when forming the predicted pixel values, A means for forming a predicted image block by repeatedly performing the pixel prediction on multiple pixels, An apparatus comprising means for using the predicted image block when encoding the image block into a bitstream.
[0138] 44. The predicted image block has a certain shape, Based on the shape, means for determining the direction prediction mode used for the intrapicture direction prediction, • When predicting the pixel value, means for selecting the prediction direction from the direction prediction mode, The apparatus according to Example 43, comprising:
[0139] 45. The predicted image block has a certain shape, • Means for determining the prediction mode used in the aforementioned intrapicture direction prediction, • Means for determining the most likely prediction mode based on the shape, • Means for selecting the prediction direction from the most likely prediction modes, - Means for encoding an indicator in the bitstream that indicates whether the prediction direction is one of the most likely prediction modes, The apparatus according to example 43 or 44, comprising:
[0140] 46. • Means for determining the direction prediction mode used for the intrapicture direction prediction, - Means for selecting the prediction direction for predicting the pixel value from the basic direction and wide-angle direction associated with the direction indicator, The bitstream includes means for encoding a direction indicator, An apparatus according to any one of examples 43 to 45, comprising:
[0141] 47. • Means for selecting the prediction direction for predicting the pixel value from the basic direction and the wide-angle direction using a prediction direction selection indicator, • Means for encoding the prediction direction selection indicator into the bitstream, The apparatus according to Example 46, comprising:
[0142] 48. The decoded image block has a certain shape, The apparatus according to Example 46, comprising means for selecting the prediction direction for predicting the pixel value from the basic direction and the wide-angle direction based on the shape.
[0143] 49. The apparatus according to any one of Examples 46 to 48, wherein the basic direction is associated with the wide-angle direction such that it is substantially opposite to the wide-angle direction.
[0144] 50. The apparatus according to any one of Examples 46 to 48, wherein the basic direction is associated with the wide-angle direction such that it is not substantially opposite to the wide-angle direction and is on the opposite side of the wide-angle direction from the upper left direction.
[0145] 51. The apparatus according to any one of Examples 46 to 50, wherein two or more wide-angle directions are associated with one basic direction, or two or more basic directions are associated with the same wide-angle direction, or both.
[0146] 52. The decoded image block has a certain shape, • Means for determining the prediction mode used in the aforementioned intrapicture direction prediction, • Means for forming a predicted predicted direction for predicting the pixel value between the basic direction and the wide-angle direction associated with the direction indicator using the shape described above, • Means for selecting the predicted direction based on the predicted direction, The bitstream includes means for encoding a direction indicator, An apparatus according to any one of Examples 43 to 51, comprising:
[0147] 53. A bitstream signal implemented on a non-temporary computer-readable medium, wherein, upon decoding by a decoder, the signal is configured to cause the decoder to decode image data from the bitstream signal, the signal includes an encoded prediction error signal formed using intrapicture orientation prediction, wherein, in forming the predicted pixel values, the predicted pixel values are formed in the image block predicted by intrapicture orientation prediction by using the values of one or more reference pixels selected from the prediction direction for the predicted pixels, the prediction direction being a wide-angle prediction direction that forms an obtuse angle with respect to the upper-left direction of the predicted pixels, and the bitstream signal is configured to cause the decoder to select the prediction direction to be a wide-angle prediction direction for decoding the bitstream.
[0148] 54. A bitstream signal performed on a non-temporary computer-readable medium, wherein, when decoded by a decoder, the signal is configured to cause the decoder to decode image data from the bitstream signal, the signal includes information for determining the shape of the image block to be decoded, the decoding utilizes intra-picture orientation prediction using prediction direction, a most likely prediction mode is associated with the shape, and the bitstream includes an indicator indicating whether the prediction direction is one of the most likely prediction modes associated with the shape, so as to cause the decoder to select the prediction direction for decoding the bitstream.
[0149] Various embodiments of the present invention can be realized with the help of computer program code in memory, causing the relevant device to implement the present invention. For example, a device may include circuits and electronic components for manipulating, transmitting, and receiving data, computer program code in memory, and a processor that causes the device to implement the features of the embodiment while the computer program code is being executed. Furthermore, a network device such as a server may include circuits and electronic components for manipulating, transmitting, and receiving data, computer program code in memory, and a processor that causes the network device to implement the features of the embodiment while the computer program code is being executed.
[0150] It is clear that the present invention is not limited to the embodiments described above, and can be modified within the scope of the appended claims.
Claims
1. Receiving a bitstream having encoded image data; From the bitstream, a set of reference pixels having reference pixel values for intrapicture orientation prediction is formed; Intra-picture orientation prediction predicts pixels within a rectangular predicted image block; To form the aforementioned predicted image block, the prediction process is repeated for multiple pixels; In order to obtain a decoded image block, the predicted image block is used when decoding the image block from the bitstream; Includes, The aforementioned prediction is made by using the values of one or more selected reference pixels when forming the value of the pixel to be predicted. The selected reference pixel is selected from the prediction direction relative to the pixel to be predicted. The aforementioned prediction direction is a wide-angle prediction direction that forms an obtuse angle with the upper-left direction of the pixel to be predicted. The selection of the context for entropy decoding in the prediction direction depends on the width and height of the predicted image block. In the method, The aforementioned rectangular prediction image block is not a square image block, The decoding is part of a transcoding process in which the decoded image block is subsequently encoded into another format. method.
2. The selection of the context for entropy decoding in the prediction direction further depends on the main prediction direction in the prediction direction. Here, the prediction direction is defined with respect to the main prediction direction. The method according to claim 1.
3. The method according to claim 2, further comprising reading the main prediction direction indicator from the bitstream.
4. The method according to any one of claims 1 to 3, wherein the context relates to the expected probability of the prediction direction used in the entropy decoding.
5. The method according to any one of claims 1 to 4, wherein the entropy decoding is binary computational decoding.
6. An apparatus comprising means for carrying out the method according to any one of claims 1 to 5.
7. The apparatus according to claim 6, which is an end-user device or a server.
8. A computer program, when executed by a processor, causes a device to perform the method according to any one of claims 1 to 5.
9. A set of reference pixels having reference pixel values for intrapicture orientation prediction is formed from the encoded image data; Intra-picture orientation prediction predicts pixels within a rectangular predicted image block; To form the aforementioned predicted image block, the prediction process is repeated for multiple pixels; Using the predicted image block when encoding the image block into a bitstream; Includes, The aforementioned prediction is made by using the values of one or more selected reference pixels when forming the value of the pixel to be predicted. The selected reference pixel is selected from the prediction direction relative to the pixel to be predicted. The aforementioned prediction direction is a wide-angle prediction direction that forms an obtuse angle with the upper-left direction of the pixel to be predicted. The selection of the context for entropy coding in the prediction direction depends on the width and height of the prediction image block. In the method, The aforementioned predicted image block is a predicted image block that is not square. The encoding is part of the transcoding process, and the image data to be encoded is data previously decoded from a different format in the transcoding process. method.
10. The selection of the context for entropy coding in the prediction direction further depends on the primary prediction direction in the prediction direction. Here, the prediction direction is defined with respect to the main prediction direction. The method according to claim 9.
11. The method according to claim 10, further comprising including the main prediction direction indication in the bitstream.
12. The method according to any one of claims 9 to 11, wherein the context relates to the expected probability of the prediction direction used in the entropy coding.
13. The method according to any one of claims 9 to 12, wherein the entropy coding is binary computation coding.
14. An apparatus comprising means for carrying out the method according to any one of claims 9 to 13.
15. The apparatus according to claim 14, which is an end-user device or a server.
16. A computer program, when executed by a processor, causes a device to perform the method according to any one of claims 9 to 13.