Image data encoding and decoding
By introducing an entropy encoder into the image data encoding system, and independently encode data items related to the MDLM chromaticity mode using a combination of CABAC encoding system and bypass encoding system, the problem of inefficient encoding in the prior art is solved and more efficient image data encoding and decoding is achieved.
Patent Information
- Application Number
- CN202510130069.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2019-07-31
- Filing Date
- 2020-06-24
- Publication Date
- 2025-05-09
AI Technical Summary
When processing image data, existing video data encoding and decoding systems are difficult to efficiently encode and decode data items related to the multi-directional linear model (MDLM) chromaticity mode, resulting in ineffective encoding efficiency.
An image data encoding device and method are provided to selectively encode data items representing image data through an entropy encoder, including a first data item indicating whether the MDLM chromaticity mode is applicable and a second data item for operating the processing direction of the MDLM chromaticity mode. The entropy encoder independently encodes examples of the first data item and the second data item using a combination of a CABAC encoding system and a bypass encoding system.
Through this method, the efficiency of image data encoding is improved, especially when processing MDLM chromaticity mode related data, the encoding process can be controlled more finely, and the data compression rate and decoding quality are improved.
Smart Images

Figure CN119967194A_ABST
Abstract
Description
[0001] This application is a divisional application of the Chinese application with application number 202080045063.2, application date June 24, 2020, and invention name “Image Data Coding and Decoding”, and all its contents are incorporated herein for reference. Technical Field
[0002] The present disclosure relates to image data encoding and decoding. Background Art
[0003] The "background technology" description provided herein is to generally present the context of the present disclosure. To the extent described in this background technology section, the work of the currently named inventors and the description that may not qualify as prior art at the time of filing are neither explicitly nor implicitly admitted to be prior art against the present disclosure.
[0004] There are several video data encoding and decoding systems that involve converting the video data into a frequency domain representation, quantizing the frequency domain coefficients, and then applying some form of entropy coding to the quantized coefficients. This can achieve compression of the video data. A corresponding decoding or decompression technique is applied to recover a reconstructed version of the original video data.
[0005] High Efficiency Video Coding (HEVC), also known as H.265 or MPEG-H Part 2, is the proposed successor to H.264 / MPEG-4 AVC. HEVC is designed to improve video quality, double the data compression ratio over H.264, and scale from 128x96 to 7680x4320 pixel resolution, roughly equivalent to bit rates of 128 kbit / s to 800 Mbit / s. Summary of the invention
[0006] The present disclosure solves or alleviates the problems caused by this process.
[0007] The present disclosure provides an image data encoding device, comprising:
[0008] an entropy encoder configured to selectively encode a data item representing image data by a coding system selected from among a Context Adaptive Binary Arithmetic Code (CABAC) coding system and a bypass coding system;
[0009] Wherein, the data items include: (i) a first data item indicating whether a multi-directional linear model (MDLM) chromaticity mode is applicable to the current image region; and (ii) a second data item indicating a processing direction for operating the MDLM chromaticity mode;
[0010] Therein, the entropy encoder is configured to encode instances of the first data item and to encode instances of the second data item independently of encoding the instances of the first data item.
[0011] The present disclosure also provides an image data encoding method, comprising:
[0012] selectively encoding a data item representing image data by a coding system selected from among a context adaptive binary arithmetic code (CABAC) coding system and a bypass coding system;
[0013] Wherein, the data items include: (i) a first data item indicating whether a multi-directional linear model (MDLM) chromaticity mode is applicable to the current image region; and (ii) a second data item indicating a processing direction for operating the MDLM chromaticity mode;
[0014] Therein, the encoding step comprises encoding an instance of the first data item and encoding an instance of the second data item independently of the encoding of the instance of the first data item.
[0015] The present disclosure also provides an image data decoding device, comprising:
[0016] an entropy decoder configured to selectively decode data items representing image data by a decoding system selected from among a context adaptive binary arithmetic code (CABAC), a decoding system, and a bypass decoding system;
[0017] Wherein, the data items include: (i) a first data item indicating whether a multi-directional linear model (MDLM) chromaticity mode is applicable to the current image region; and (ii) a second data item indicating a processing direction for operating the MDLM chromaticity mode;
[0018] Therein, the entropy decoder is configured to decode instances of the first data item and decode instances of the second data item independently of decoding of the instances of the first data item.
[0019] The present disclosure also provides an image data decoding method, comprising:
[0020] selectively decoding a data item representing image data by a decoding system selected from among a context adaptive binary arithmetic code (CABAC), a decoding system, and a bypass decoding system;
[0021] Wherein, the data items include: (i) a first data item indicating whether a multi-directional linear model (MDLM) chromaticity mode is applicable to the current image region; and (ii) a second data item indicating a processing direction for operating the MDLM chromaticity mode;
[0022] Wherein the decoding step comprises: decoding an instance of the first data item, and decoding an instance of the second data item independently of the decoding of the instance of the first data item.
[0023] Further respective aspects and features of the disclosure are defined in the appended claims.
[0024] It is to be understood that both the foregoing general description and the following detailed description are illustrative of the present technology and are not restrictive. BRIEF DESCRIPTION OF THE DRAWINGS
[0025] A more complete understanding of the present disclosure and many of its attendant advantages will be readily obtained as this becomes better understood by referring to the following detailed description when considered in conjunction with the accompanying drawings, wherein:
[0026] Figure 1 Schematically illustrates an audio / video (A / V) data transmission and reception system using video data compression and decompression;
[0027] Figure 2 schematically illustrates a video display system using video data decompression;
[0028] Figure 3 Schematically illustrates an audio / video storage system using video data compression and decompression;
[0029] Figure 4 schematically illustrates a video camera using video data compression;
[0030] Figure 5 and Figure 6 schematically illustrates a storage medium;
[0031] Figure 7 A schematic diagram of a video data compression and decompression device is provided;
[0032] Figure 8 The predictor is schematically shown;
[0033] Fig. 9 schematically showing a partially encoded image;
[0034] Fig.10 Schematically illustrating a set of possible intra prediction directions;
[0035] Fig.11 A set of prediction modes are schematically shown;
[0036] Fig.12 Another set of prediction modes is schematically shown;
[0037] Fig.13 Schematically illustrates the intra prediction process;
[0038] Fig.14 A CABAC encoder is schematically shown;
[0039] Fig.15 and Fig.16 The CABAC coding technique is schematically illustrated;
[0040] Fig.17 and Fig.18 schematically illustrates CABAC decoding technology; and
[0041] Fig.19 and Fig. 20 is a schematic flow chart illustrating a corresponding method. DETAILED DESCRIPTION
[0042] Now referring to the accompanying drawings, Figures 1 to 4 Schematic diagrams of devices or systems utilizing compression and / or decompression devices are provided as will be described below in conjunction with embodiments of the present technology.
[0043] All data compression and / or decompression devices to be described below may be implemented in hardware, software running on a general-purpose data processing device (e.g., a general-purpose computer), programmable hardware (e.g., an application-specific integrated circuit (ASIC) or a field-programmable gate array (FPGA) or a combination of these). Where an embodiment is implemented by software and / or firmware, it should be understood that such software and / or firmware and non-transitory data storage media storing or otherwise providing such software and / or firmware are considered embodiments of the present technology.
[0044] Figure 1 An audio / video data transmission and reception system using video data compression and decompression is schematically shown.
[0045] An input audio / video signal 10 is provided to a video data compression device 20 which compresses at least the video component of the audio / video signal 10 for transmission along a transmission path 30 such as a cable, optical fiber, or wireless link. The compressed signal is processed by a decompression device 40 to provide an output audio / video signal 50. For the return path, a compression device 60 compresses the audio / video signal for transmission along the transmission path 30 to a decompression device 70.
[0046] The compression device 20 and the decompression device 70 can thus form one node of the transmission link. The decompression device 40 and the compression device 60 can form another node of the transmission link. Of course, in the case where the transmission link is unidirectional, only one node requires a compression device, while the other node only requires a decompression device.
[0047] Figure 2A video display system using video data decompression is schematically shown. Specifically, a compressed audio / video signal 100 is processed by a decompression device 110 to provide a decompressed signal that can be displayed on a display 120. The decompression device 110 can be implemented as an integral part of the display 120, for example, arranged in the same housing as the display device. Alternatively, the decompression device 110 can be arranged as (for example) a so-called set-top box (STB), it is noted that the expression "set-top box" does not mean that the box is required to be located in any particular direction or position relative to the display 120; it is just a term used in the art to indicate a device that can be connected to a display as a peripheral device.
[0048] Figure 3 An audio / video storage system using video data compression and decompression is schematically shown. An input audio / video signal 130 is provided to a compression device 140, which generates a compressed signal for storage by a storage device 150 (e.g., a magnetic disk device, an optical disk device, a magnetic tape device, a solid-state storage device, such as a semiconductor memory or other storage device). For playback, the compressed data is read from the storage device 150 and passed to a decompression device 160 for decompression to provide an output audio / video signal 170.
[0049] It should be understood that a compressed or encoded signal and a storage medium storing the signal (eg, a machine-readable non-transitory storage medium) are considered embodiments of the present technology.
[0050] Figure 4 A video camera using video data compression is schematically shown. Figure 4 , an image capture device 180 (e.g., a charge coupled device (CCD) image sensor and associated control and readout electronics) generates a video signal that is transmitted to a compression device 190. A microphone (or microphones) 200 generates an audio signal to be passed to the compression device 190. The compression device 190 generates a compressed audio / video signal 210 (generally shown as schematic stage 220) to be stored and / or transmitted.
[0051] The techniques to be described below relate primarily to video data compression and decompression. It should be understood that many prior art techniques can be used for audio data compression in conjunction with the video data compression techniques to be described to generate a compressed audio / video signal. Therefore, a separate discussion of audio data compression will not be provided. It should also be understood that the data rates associated with video data (particularly broadcast quality video data) are typically much higher than the data rates associated with audio data (whether compressed or uncompressed). Therefore, it should be understood that uncompressed audio data can accompany compressed video data to form a compressed audio / video signal. It should also be understood that although this example ( Figures 1 to 4Although the embodiments (shown) involve audio / video data, the techniques described below may find use in systems that simply process (that is, compress, decompress, store, display, and / or transmit) video data. That is, the embodiments may be applied to video data compression without any associated audio data processing at all.
[0052] therefore, Figure 4 An example of a video capture device comprising an image sensor and an encoding device of the type discussed below is provided. Figure 2 Examples of decoding devices and displays to which decoded images are output are provided of the types to be discussed below.
[0053] Figure 2 and Figure 4 The combination may provide a video capture device including the image sensor 180 and the encoding device 190, the decoding device 110, and the display 120 to which the decoded image is output.
[0054] Figure 5 and Figure 6 A storage medium is schematically shown, storing, for example, compressed data generated by the device 20, 60, compressed data input to the device 110 or the storage medium or stage 150, 220. Figure 5 schematically illustrates a disk storage medium such as a magnetic disk or optical disk, Figure 6 A solid-state storage medium, such as flash memory, is schematically shown. Note that Figure 5 and Figure 6 An example of a non-transitory machine-readable storage medium storing computer software that, when executed by a computer, causes the computer to perform one or more of the methods discussed below may also be provided.
[0055] Thus, the above arrangement provides an example of a video storage, capture, transmission or reception device embodying any of the present techniques.
[0056] Figure 7 A schematic diagram of a video data compression and decompression device is provided.
[0057] The controller 343 controls the overall operation of the device and, in particular, when it comes to compression modes, controls the trace encoding process by acting as a selector to select various modes of operation, such as block size and shape, and whether the video data is to be losslessly encoded or otherwise encoded. The controller is considered to be part of the image encoder or image decoder, as the case may be. Successive images of the input video signal 300 are provided to the adder 310 and the image predictor 320. Reference will be made to Figure 8 The picture predictor 320 is described in more detail. The picture encoder or decoder (as the case may be) plus Figure 8The intra-image predictor can use the Figure 7 However, this does not mean that the image encoder or decoder must Figure 7 Each feature.
[0058] Adder 310 actually performs a subtraction (negative addition) operation, since it receives the input video signal 300 at the "+" input and the output of the image predictor 320 at the "-" input, thereby subtracting the predicted image from the input image. The result is a so-called residual image signal 330, which represents the difference between the actual image and the projected image.
[0059] One reason for generating a residual image signal is as follows. The data encoding technique to be described (that is, the technique that will be applied to the residual image signal) tends to work more efficiently when there is less "energy" in the image to be encoded. Here, the term "efficiently" refers to the generation of a small amount of encoded data; for a particular level of image quality, it is desirable (and considered "efficient") to generate as little data as possible. The "energy" mentioned in the residual image refers to the amount of information contained in the residual image. If the predicted image is the same as the real image, the difference between the two (that is, the residual image) will contain zero information (zero energy) and will be very easy to encode into a small amount of encoded data. In general, if the prediction process can be made to work reasonably well so that the predicted image content is similar to the image content to be encoded, it is expected that the residual image data will contain less information (less energy) than the input image and will therefore be easier to encode into a small amount of encoded data.
[0060] The remainder of the device acting as an encoder (encoding the residual or difference image) will now be described. The residual image data 330 is provided to a conversion unit or circuit 340, which generates a discrete cosine transform (DCT) representation of a block or region of the residual image data. The DCT technique itself is well known and will not be described in detail here. It is also noted that the use of the DCT is only an illustration of an exemplary arrangement. Other transformations that may be used include, for example, discrete sine transforms (DST). The transformations may also include a sequence or cascade of separate transformations, for example, a configuration in which one transformation is followed by another transformation (whether directly or not). The choice of transformation may be determined explicitly and / or may depend on side information used to configure the encoder and decoder.
[0061] The output of the transform unit 340 (that is, the set of DCT coefficients for each transformed block of image data) is provided to a quantizer (Q) 350. Various quantization techniques are known in the art of video data compression, ranging from simple multiplication by a quantization scale factor to the application of complex lookup tables under the control of a quantization parameter. The overall goal is twofold. First, the quantization process reduces the number of possible values for the transformed data. Second, the quantization process can increase the probability that the value of the transformed data is zero. Both of these can make the entropy encoding process, which will be described below, more efficient in producing a small amount of compressed video data.
[0062] The scanning unit 360 applies a data scanning process. The purpose of the scanning process is to reorder the quantized transform data so as to group together as many non-zero quantized transform coefficients as possible, and of course also to group together as many zero-valued coefficients as possible. These features can allow the so-called run-length encoding or similar techniques to be effectively applied. Therefore, the scanning process includes selecting coefficients from the quantized transform data according to a "scanning order", in particular selecting coefficients from coefficient blocks corresponding to image data blocks that have been converted and quantized, so that (a) all coefficients are selected once as part of the scan and (b) the scan tends to provide the desired reordering. An example of a scanning order that tends to give useful results is the so-called right diagonal scanning order.
[0063] The scanned coefficients are then passed to the entropy encoder (EE) 370. Again, various types of entropy coding can be used. Two examples are variants of the so-called context adaptive binary arithmetic coding (CABAC) system and variants of the so-called context adaptive variable length coding (CAVLC) system. In general, CABAC is considered to provide better efficiency, and in some studies, CABAC has been shown to provide a 10-20% reduction in the amount of encoded output data for comparable image quality compared to CAVLC. However, CAVLC is considered to have lower complexity (in terms of its implementation) than CABAC. Note that the scanning process and the entropy coding process are shown as separate processes, but can actually be combined or processed together. That is, the data can be read into the entropy encoder in the scanning order. Corresponding considerations apply to the corresponding inverse processes to be described below.
[0064] The output of the entropy encoder 370 , along with additional data defining, for example, the manner in which the predictor 320 generates the predicted image (mentioned above and / or discussed below), provides a compressed output video signal 380 .
[0065] However, a return path is also provided since the operation of the predictor 320 itself depends on the decompressed version of the compressed output data.
[0066] The reason for this feature is as follows. At an appropriate stage in the decompression process (described below), a decompressed version of the residual data is generated. This decompressed residual data must be added to the predicted image to generate the output image (because the original residual data is the difference between the input image and the predicted image). In order to make the process comparable, the predicted image generated by the predictor 320 should be the same in the compression process and the decompression process, between the compression side and the decompression side. Of course, when decompressing, the device does not have access to the original input image, but only to the decompressed image. Therefore, when compressing, the predictor 320 bases its prediction (at least for inter-image coding) on the decompressed version of the compressed image.
[0067] The entropy encoding process performed by the entropy encoder 370 is considered (in at least some examples) to be "lossless", that is, it can be reversed to obtain data that is exactly the same as the data previously provided to the entropy encoder 370. Therefore, in such examples, the return path can be implemented before the entropy encoding stage. In fact, the scanning process performed by the scanning unit 360 is also considered to be lossless, but in this embodiment, the return path 390 is from the output of the quantizer 350 to the complementary inverse quantizer (Q -1 ) 420. In the case where a stage introduces losses or potential losses, the stage may be included in the feedback loop formed by the return path. For example, the entropy encoding stage may, at least in principle, be lossy, for example, by techniques that encode bits in parity information. In this case, entropy encoding and decoding should form part of the feedback loop.
[0068] In general, entropy decoder (ED) 410, inverse scan unit 400, inverse quantizer 420, and inverse transform unit or circuit 430 provide the respective inverse functions of entropy encoder 370, scan unit 360, quantizer 350, and transform unit 340. Presently, the discussion will proceed through the compression process; the process of decompressing an input compressed video signal will be discussed separately below.
[0069] In the compression process, the scanned coefficients are passed from the quantizer 350 via a return path 390 to an inverse quantizer 420 which performs the inverse operation of the scanning unit 360. The inverse quantization and inverse transform processes are performed by units 420, 430 to generate a compressed-decompressed residual image signal 440.
[0070] The image signal 440 is added to the output of the predictor 320 at adder 450 to generate a reconstructed output image 460. This forms one input to the image predictor 320 as follows.
[0071] Turning now to the process applied to decompress the received compressed video signal 470, which is supplied to the entropy decoder 410 and from there to the chain of inverse scanning unit 400, inverse quantizer 420 and inverse transform unit 430, before being added to the output of the image predictor 320 by adder 450. Thus, on the decoder side, the decoder reconstructs a version of the residual image which is then applied (by adder 450) to the predicted version of the image (block by block) in order to decode each block. In brief, the output 460 of adder 450 forms the output decompressed video signal 480. In practice, further filtering is optionally applied before the output signal (e.g. by Figure 8 Filter 560 shown in FIG. , but for Figure 7 For clarity of the high-level diagram, Figure 7 This filter is omitted in Figure 1).
[0072] Figure 7 and Figure 8 The device can act as a compression (encoding) device or a decompression (decoding) device. The functions of the two devices are substantially overlapping. Scanning unit 360 and entropy encoder 370 are not used in decompression mode, and the operation of predictor 320 (described in detail below) and other units follows the mode and parameter information contained in the received compressed bit stream, rather than generating such information themselves.
[0073] Figure 8 The generation of a predicted image, in particular the operation of the image predictor 320, is schematically illustrated.
[0074] There are two basic modes of prediction performed by the image predictor 320: the so-called intra-image prediction and the so-called inter-image or motion compensated (MC) prediction. On the encoder side, each consists in detecting the prediction direction with respect to the current block to be predicted and generating a predicted block of samples from other samples (in the same (intra) or in another (inter) image). The difference between the predicted block and the actual block is coded or applied by means of the unit 310 or 450 in order to encode or decode the block, respectively.
[0075] (At the decoder, or on the reverse decoding side of the encoder, detection of the prediction direction may be responsive to data associated by the encoder with the encoded data, indicating which direction to use at the encoder. Or the detection may be responsive to the same factors as those used to make the decision at the encoder).
[0076] Intra-image prediction predicts the content of a block or region of an image based on data from within the same picture. This corresponds to so-called I-frame coding in other video compression techniques. However, in contrast to I-frame coding, which involves encoding the entire image by intra-frame coding, in this embodiment, the choice between intra-frame and inter-frame coding can be made on a block-by-block basis, although in other embodiments, the choice is still made on a picture-by-picture basis.
[0077] Motion compensated prediction is an example of inter-image prediction, which uses motion information to try to define the source of image detail to be encoded in the current image in another adjacent or nearby image. Thus, in an ideal example, the content of a block of image data in the predicted image can be encoded very simply as a reference (motion vector) pointing to a corresponding block in the same or slightly different position in an adjacent image.
[0078] A technique known as "block copy" prediction is in some ways a hybrid of the two, in that a vector is used to indicate a block of samples at a position displaced from the currently predicted block within the same picture that should be copied to form the currently predicted block.
[0079] Back to Figure 8 , showing two picture prediction settings (corresponding to intra-picture and inter-picture prediction), the results of which are selected by a multiplexer 500 under the control of a mode signal 510 (e.g., from a controller 343) to provide a block of a predicted picture to be provided to adders 310 and 450. The selection is made based on which option gives the lowest "energy" (as above, this "energy" can be considered as the information content that needs to be encoded), and the selection is notified to the decoder within the encoded output data stream. In this case, the picture energy can be detected, for example, by performing a trial subtraction of a region of two versions of the predicted picture from the input picture, squaring each pixel value of the difference picture, summing the squared values, and identifying which of the two versions produces a lower mean square value of the difference picture associated with the picture region. In other examples, trial encoding can be performed for each option or potential option, and then a selection is made based on the cost of each potential option, one or both of the number of bits required for picture encoding and distortion.
[0080] In an intra coding system, the actual prediction is performed based on the image blocks received as part of the signal 460, that is, the prediction is based on the image blocks that were coded and decoded so that exactly the same prediction can be performed in the decompression device. However, data may be derived from the input video signal 300 by the intra mode selector 520 to control the operation of the intra picture predictor 530.
[0081] For inter-image prediction, the motion compensated predictor 540 uses motion information, such as motion vectors derived from the input video signal 300 by the motion estimator 550. The motion compensated predictor 540 applies these motion vectors to a processed version of the reconstructed image 460 to generate inter-image predicted blocks.
[0082] Thus, both units 530 and 540 (operating in conjunction with estimator 550) act as detectors to detect a prediction direction with respect to a current block to be predicted, and as generators to generate a prediction block of samples (forming part of the prediction passed to units 310 and 450) based on other samples defined by the prediction direction.
[0083] The processing applied to the signal 460 will now be described. First, the signal is optionally filtered by a filter unit 560, which will be described in more detail below. This includes applying a "deblocking" filter to eliminate or at least tend to reduce the effects of block-based processing and subsequent operations performed by the conversion unit 340. A sample adaptive offset (SAO) filter may also be used. In addition, an adaptive loop filter is optionally applied using coefficients obtained by processing the reconstructed signal 460 and the input video signal 300. An adaptive loop filter is a filter that applies adaptive filter coefficients to the data to be filtered using known techniques. That is, the filter coefficients can vary depending on various factors. Data defining which filter coefficients are used is included as part of the encoded output data stream.
[0084] When the device operates as a decompression device, the filtered output from the filter unit 560 actually forms the output video signal 480. It is also buffered in one or more image or frame memories 570; the storage of consecutive images is a requirement for motion compensated prediction processing, in particular the generation of motion vectors. In order to save storage requirements, the images stored in the image memory 570 can be stored in a compressed form and then decompressed for use in the generation of motion vectors. For this purpose, any known compression / decompression system can be used. The stored images can be passed to the interpolation filter 580, which generates a higher resolution version of the stored image; in this example, intermediate samples (subsamples) are generated so that the resolution of the interpolated image output by the interpolation filter 580 is 4 times (in each dimension) the resolution of the image with a 4:2:0 luminance channel stored in the image memory 570 and 8 times (in each dimension) the resolution of the image with a 4:2:0 chrominance channel stored in the image memory 570. The interpolated image is passed as input to the motion estimator 550 and is also passed to the motion compensated predictor 540.
[0085] The manner in which an image is segmented for compression processing will now be described. Basically, the image to be compressed is considered to be an array of blocks or regions of samples. The image can be segmented into such blocks or regions by a decision tree, for example, the decision trees described in Bross et al., "High Efficiency Video Coding (HEVC) text specification draft 6", JCTVC-h1003_d0 (November 2011) and "Versatile Video Coding (Draft 5)", JVET-N1001v8, the contents of which are incorporated herein by reference. In some examples, the resulting blocks or regions have sizes and, in some cases, shapes that can generally follow the settings of image features within the image with the aid of decision trees. This in itself can allow for improved coding efficiency, because samples representing or following similar image features will tend to be grouped together by such a setting. In some examples, square blocks or regions of different sizes (e.g., 4x4 samples up to 64x64 or larger blocks) are available. In other example arrangements, blocks or regions of different shapes may be used, for example, rectangular blocks (e.g., vertically or horizontally oriented). Other non-square and non-rectangular blocks are contemplated. The result of dividing the image into such blocks or regions is that (at least in this example) each sample of the image is assigned to one and only one such block or region.
[0086] The intra prediction process will now be discussed. In general, intra prediction involves generating a prediction of the current block of samples from previously encoded and decoded samples in the same picture.
[0087] Fig. 9 A partially encoded image 800 is schematically shown. Here, the image is encoded block by block from the upper left to the lower right. An example block encoded midway through processing the entire image is shown as block 810. The shaded area 820 above and to the left of block 810 has been encoded. Intra-image prediction of the content of block 810 can make use of any shaded area 820, but cannot make use of the unshaded area below it.
[0088] In some examples, images are encoded block by block, so that larger blocks (called coding units or CUs) are encoded in a manner such as by reference to Fig. 9The order discussed is coded. Within each CU, it is possible that the CU is processed as a group of two or more smaller blocks or transform units (TUs) (depending on the block partitioning process that has occurred). This can give a hierarchical order of coding, so that the image is encoded CU by CU, and each CU is potentially encoded TU by TU. However, note that for a single TU within the current coding tree unit (the largest node in the tree structure of the block partitioning), the hierarchical order of coding discussed above (CU by CU, TU by TU) means that there may be previously coded samples in the current CU and can be used for the coding of this TU, for example, the top right or bottom left of the TU.
[0089] Box 810 represents a CU; as above, this may be subdivided into a set of smaller units for the purpose of intra-image prediction processing. An example of a current TU 830 is shown within CU 810. More generally, a picture is partitioned into sample regions or groups of samples to allow efficient encoding of signaling information and conversion data. The signaling of information may require a tree structure different from the sub-division of the conversion, in fact the tree structure of the prediction information or the prediction itself. To this end, a coding unit may have a tree structure different from a conversion block or region, a prediction block or region, and prediction information. In some examples such as HEVC, the structure may be a so-called quadtree of coding units, whose leaf nodes contain one or more prediction units and one or more conversion units; a conversion unit may contain multiple conversion blocks corresponding to the luminance and chrominance representation of the image, and the prediction may be considered to apply to the conversion block level. In the example, the parameters applied to a particular sample group may be considered to be defined primarily at the block level, which may be different from the granularity of the conversion structure.
[0090] Intra-image prediction considers samples that were encoded before the current TU was considered, for example, samples above and / or to the left of the current TU. The source samples for predicting the required samples may be located at different positions or directions relative to the current TU. To decide which direction is appropriate for the current prediction unit, the mode selector 520 of the example encoder may test all combinations of available TU structures for each candidate direction and select the prediction direction and TU structure with the best compression efficiency.
[0091] Pictures can also be encoded on a "slice" basis. In one example, a slice is a set of CUs that are horizontally adjacent. But more generally, the entire residual image may form a slice, or a slice may be a single CU, or a slice may be a row of CUs, and so on. Slices can provide some error resilience because they are encoded as independent units. The encoder and decoder states are completely reset on slice boundaries. For example, intra prediction is not performed on slice boundaries; slice boundaries are treated as picture boundaries for this purpose.
[0092] Fig.10A set of possible (candidate) prediction directions is schematically shown. The prediction unit has access to a whole set of candidate directions. The direction is determined by the horizontal and vertical displacement relative to the current block position, but is encoded as a prediction "mode", a set of modes such as Fig.11 Note that the so-called DC mode represents the simple arithmetic mean of the surrounding upper left samples. Also note that Fig.10 The set of directions shown is just one example; in other examples, Fig.12 A set of (for example) 65 angular modes plus DC and planar (a total of 67 modes) schematically shown in FIG. 6 makes up the entire set. Other numbers of modes may be used.
[0093] In general, after detecting the prediction direction, the system is operable to generate a block of prediction samples from other samples defined by the prediction direction. In an example, the image encoder is configured to encode data identifying the prediction direction selected for each sample or region of the image (and the image decoder is configured to detect such data).
[0094] Fig.13 Schematically illustrates an intra prediction process, where samples 900 of a block or region of samples 910 are derived from other reference samples 920 of the same picture according to a direction 930 defined by an intra prediction mode associated with the sample. The reference samples 920 in this example are from blocks above and to the left of the block 910 in question, and the prediction value for sample 900 is obtained by tracing the reference samples 920 along the direction 930. The direction 930 may point to a single individual reference sample, but in the more general case interpolated values between surrounding reference samples are used as prediction values. Note that the block 910 may be such as Fig.13 A square is shown, but other shapes such as a rectangle are possible.
[0095] Fig.14 and Fig.15 The previously proposed reference sample projection process is schematically illustrated.
[0096] exist Fig.14 and Fig.15 In FIG. 1400 , a block or region of samples to be predicted is surrounded by a linear array of reference samples from which intra prediction of the prediction samples is performed. Reference samples 1410 are Fig.14 and Fig.15 The samples to be predicted are shown as shaded blocks in , and the samples to be predicted are shown as unshaded blocks. Note that an 8×8 block or region of samples to be predicted is used in this example, but the technique is applicable to variable block sizes and actual block shapes.
[0097] As above, the reference samples include at least two linear arrays in the corresponding directions relative to the current image area of the sample to be predicted. For example, the linear arrays may be a sample array or row 1420 above the sample block to be predicted and a sample array or column 1430 to the left of the sample block to be predicted.
[0098] As referenced above Fig.13 As discussed, the reference sample array may extend beyond the range of the block to be predicted so that Figures 10 to 12 The prediction mode or direction is provided within the range shown. If necessary, if previously decoded samples cannot be used as reference samples for specific reference sample positions, other reference samples can be reused at these missing positions. Reference sample filtering processing can be used for reference samples.
[0099] Fig.14 The operation of a CABAC entropy encoder is schematically illustrated.
[0100] The CABAC encoder operates on binary data (that is, data represented by only two symbols, 0 and 1). The encoder utilizes a so-called context modeling process, which selects a "context" or probability model for subsequent data based on previously encoded data. The selection of context is performed in a deterministic manner so that the same determination can be made at the decoder based on previously decoded data, without the need to add further data (specifying the context) to the encoded data stream passed to the decoder.
[0101] refer to Fig.14 If the input data to be encoded is not already in binary form, it may be passed to a binary converter 1400; if the data is already in binary form, the converter 1400 is bypassed (via a schematic switch 1410). In this embodiment, the conversion to binary form is actually achieved by representing the quantized DCT coefficient data as a series of binary "maps", which will be further described below.
[0102] The binary data may then be processed by one of two processing paths, namely a "normal" and a "bypass" path (these two paths are schematically shown as separate paths, but in the embodiments of the invention discussed below, may actually be implemented by the same processing stages, just using slightly different parameters). The bypass path employs a so-called bypass encoder 1420, which does not necessarily use context modeling in the same form as the normal path. In some examples of CABAC encoding, this bypass path may be selected if particularly fast processing of a batch of data is required, but in this embodiment, two characteristics of the so-called "bypass" data are noted: first, the bypass data is processed by the CABAC encoder (950, 1460) using only a fixed context model representing, for example, a fixed probability of 50% (also known as an "equal probability" or "EP" bin); second, the bypass data relates to certain categories of data, a specific example of which is coefficient sign data. Otherwise, the normal path is selected by schematic switches 1430, 1440 operating under the control of control circuit 1435. This involves data being processed by a context modeler 1450 followed by an encoding engine 1460 .
[0103] If the block consists entirely of zero-valued data, then Fig.14 The entropy encoder shown encodes the block of data (i.e., data corresponding to a block of coefficients associated with a residual image block, for example) as a single value. For each block that does not fall into this category, that is, a block that contains at least some non-zero data, a "significance map" is prepared. The significance map indicates, for each position in the block of data to be encoded, whether the corresponding coefficient in the block is non-zero. The significance map data in binary form is itself CABAC encoded. The use of significance maps facilitates compression because no data needs to be encoded for coefficients whose magnitude the significance map indicates is 0. In addition, the significance map can include special codes to indicate the final non-zero coefficient in the block, so that all final high frequency / trailing zero coefficients can be omitted from the encoding. In the encoded bitstream, the significance map is followed by data defining the non-zero coefficient values specified by the significance map.
[0104] Further levels of mapping data are also prepared and encoded. One example is a mapping that defines a binary value (1=yes, 0=no) whether the coefficient data at a mapping position that the significance map has indicated as "non-zero" actually has a value of "1". Another mapping specifies whether the coefficient data at a mapping position that the significance map has indicated as "non-zero" actually has a value of "2". Another mapping indicates, for those mapping positions where the significance map has indicated that the coefficient data is "non-zero", whether the data has a value "greater than 2". For data identified as "non-zero", another mapping indicates the sign of the data value (using a predetermined binary representation, e.g., 1 for +, 0 for -, and vice versa of course).
[0105] In an embodiment of the present invention, the significance map and other maps are assigned to the CABAC encoder or the bypass encoder in a predetermined manner, and both represent different corresponding attributes or value ranges of the same initial data item. In one example, at least the significance map is CABAC encoded, and at least some of the remaining maps (e.g., symbol data) are bypass encoded. Therefore, each data item is divided into a corresponding data subset, and the corresponding subset is encoded by a first (e.g., CABAC) and a second (e.g., bypass) coding system. The properties of the data and the CABAC and bypass coding are such that for a predetermined number of CABAC encoded data, a variable number of zero or more bypass data are generated for the same initial data item. Therefore, for example, if the quantized, reordered DCT data contains substantially all zero values, bypass data may not be generated or a very small amount of bypass data may be generated because the bypass data only relates to those mapping positions where the significance map has indicated a non-zero value. In another example, in quantized reordered DCT data with many high-value coefficients, a large amount of bypass data may be generated.
[0106] In an embodiment of the present invention, the significance map and other maps are generated, for example, by the scanning unit 360 from the quantized DCT coefficients and are subjected to a zigzag scanning process (or a scanning process selected from zigzag, horizontal raster and vertical raster scanning according to the intra prediction mode) before being subjected to CABAC encoding.
[0107] In general, CABAC encoding involves predicting the context or probability model of the next bit to be encoded based on other previously encoded data. If the next bit is the same as the bit identified as "most likely" by the probability model, then the encoding of the information that "the next bit is consistent with the probability model" can be encoded very efficiently. The encoding efficiency of "the next bit is inconsistent with the probability model" is lower, so the derivation of context data is important for the good operation of the encoder. The term "adaptive" refers to adjusting or changing the context or probability model during encoding in an attempt to provide a good match with the next data (not yet encoded).
[0108] To use a simple analogy, in written English, the letter "U" is relatively uncommon. But the letter position immediately following the letter "Q" is indeed common. Therefore, the probability model might set the probability of "U" to a very low value, but if the current letter is "Q", the probability model for "U" as the next letter might set a very high probability value.
[0109] In the present arrangement, CABAC encoding is used for at least the significance map and the mapping indicating whether a non-zero value is 1 or 2. In these embodiments, the bypass process is the same as CABAC encoding, but in fact, the probability model is fixed at an equal (0.5:0.5) probability distribution of 1s and 0s, and the bypass process is used for at least the sign data and the mapping indicating whether the value is >2. For those data positions that are identified as >2, a separate so-called escape data encoding can be used to encode the actual value of the data. This may include Golomb-Rice encoding techniques.
[0110] The CABAC context modeling and coding process is described in more detail in WD4: Working Draft 4 of High-Efficiency Video Coding, JCTVC-F803_d5, Draft ISO / IEC 23008-HEVC; 201x(E)2011-10-28.
[0111] Reference now Fig.15 and Fig.16 , an entropy encoder forming part of a video encoding device includes a first encoding system (e.g., an arithmetic code encoding system, such as CABAC encoder 1500) and a second encoding system (e.g., bypass encoder 1510), the entropy encoder being arranged so that a particular data word or value is encoded into a final output data stream by either the CABAC encoder or the bypass encoder, but not both. In an embodiment of the present invention, the data values passed to the CABAC encoder and the bypass encoder are respective subsets of ordered data values separated or derived from the original input data (in this example, the reordered quantized DCT data), representing different mappings in a set of "mappings" generated from the input data.
[0112] Fig.15 The schematic in Figure 1 treats the CABAC encoder and bypass encoder as separate devices. This may be a good situation in practice, but in another possibility, such as Fig.16 As shown schematically, a single CABAC encoder 1620 is used as Fig.15 CABAC encoder 1500 and bypass encoder 1510. Encoder 1620 operates under the control of coding mode selection signal 1630 so as to operate with an adaptive context model (as above) when in the mode of CABAC encoder 1500 and to operate with a fixed 50% probability context model when in the mode of bypass encoder 1510.
[0113] A third possibility combines the two, since two essentially identical CABAC encoders can be operated in parallel (similar to Fig.15 parallel setting), except that the CABAC encoder operating as a bypass encoder 1510 fixes its context model at a 50% probability context model.
[0114] The outputs of the CABAC encoding process and the bypass encoding process may be stored (at least temporarily) in respective buffers 1540, 1550. Fig.16 In the case of mode signal 1630, switch or demultiplexer 1660 operates under the control of mode signal 1630 to route CABAC encoded data to buffer 1550 and bypass the encoded data to buffer 1540.
[0115] therefore, Figures 14 to 16 An example of an entropy encoder configured to selectively encode a data item representing image data by a coding system selected from a CABAC system and a bypass system is provided.
[0116] Fig.17 and Fig.18 An example of an entropy decoder forming part of a video decoding device is schematically shown. Fig.17 , the corresponding buffers 1710, 1700 pass the data to the CABAC decoder 1730 and the bypass decoder 1720, which are arranged so that a particular encoded data word or value is decoded by either the CABAC decoder or the bypass decoder, but not both. Logic 1740 reorders the decoded data into the appropriate order for subsequent decoding stages.
[0117] Fig.17 The schematic in Figure 1 treats the CABAC decoder and bypass decoder as independent settings. This may be a good situation in practice, but in another possibility, such as Fig.18 As shown schematically, a single CABAC decoder 1850 is used as Fig.17 CABAC decoder 1730 and bypass decoder 1720. Decoder 1850 operates under the control of decoding mode selection signal 1860 so as to operate with an adaptive context model (as above) when in the mode of CABAC decoder 1730, and to operate with a fixed 50% probability context model when in the mode of bypass encoder 1720.
[0118] As before, a third possibility combines the two, since two essentially identical CABAC decoders can be operated in parallel (similar to Fig.17), except that the CABAC decoder operating as a bypass decoder 1720 fixes its context model at a 50% probability context model.
[0119] exist Fig.18 In the case of mode signal 1860, switch or multiplexer 1870 operates under the control of mode signal 1860 to appropriately route CABAC encoded data from buffer 1700 or buffer 1710 to decoder 1850.
[0120] therefore, Figures 14 to 16 An example of an entropy decoder configured to selectively decode a data item representing image data by a decoding system selected from among a CABAC system and a bypass system is provided.
[0121] Among data items that can be generated, encoded, and decoded in an image data processing system, there are the following examples: (i) a first data item indicating whether a multi-directional linear model (MDLM) chrominance mode is applicable to a current image region; (ii) a second data item indicating a processing direction for operation of the MDLM chrominance mode (e.g., using samples above or to the left); and (iii) a flag indicating a planar intra-frame prediction mode.
[0122] In a previously proposed arrangement (e.g., the arrangement defined in the latest specification version available on the priority date of the present application, namely JVET-N1001-v8 (Draft 5) of Bross et al.), these items (i) to (iii) are processed as CABAC encoded data. In particular, with respect to items (i) and (ii), a common CABAC context is used to process both data items (see 9.5.4.2.1, in particular Table 9.17 of the JVET document cited above).
[0123] Using a common CABAC context for data items (i) and (ii) may lead to potential inefficiencies.
[0124] For example, efficient use of the CABAC context is based on tracking the context of the likelihood of a particular outcome of a coding variable, which is achieved by updating the context in response to the coding variable. In the case of using the MDLM chroma mode, although the actual use of the mode may have a particular likelihood for a given image or image region, once the decision to use the MDLM chroma mode (data item (i)) is made at the encoder, the likelihood of selecting a particular operating direction (data item (ii)) tends to be approximately 50:50. Therefore, by using a common context for data items (i) and (ii), any potential coding efficiency benefits achieved by tracking the likelihood of using the MDLM chroma mode may be undone, or at least partially offset by the same context tracking substantially equally likely uses of different processing directions (data item (ii)). The resulting context variable is less efficient than encoding data item (i) or is not suitable for encoding substantially equally likely data item (ii).
[0125] In an example setting, the first data item and the second data item may be represented with reference to so-called intra_chroma_pred_mode values 4-6 defined by JVET-N1001-v8 (Draft 5) as follows:
[0126]
[0127] In some example arrangements, encoding method 2 is bypass encoding using EP bins. Thus, data item (i) containing an indication that LM chroma mode is in use (note that MDLM is not applicable when LM chroma mode is not in use) and an indication of whether MDLM is also in use uses at least CABAC context 1.
[0128] In some other example settings, encoding method 2 is CABAC encoding using a second CABAC context 2. Thus, the first data item including an indication that LM chroma mode is being used (note that MDLM is not applicable when LM chroma mode is not being used) and an indication of whether MDLM is also being used uses at least CABAC context 1 and also uses CABAC context 2. According to the expression of the present technology, the first data item is encoded using at least the first CABAC context, and in these example settings, the first CABAC context can be regarded as context 1 or context 2.
[0129] In some example settings, encoding method 3 uses another independent CABAC context, but in other examples, encoding method 3 represents bypass encoding using EP bins.
[0130] It should be understood that the term "encoding instance of a data item" may mean starting from an initial representation of the data item and generating an encoded representation. Similarly, the term "decoding instance of a data item" may mean starting from an encoded representation of the data item and generating an output representation.
[0131] Thus, on the encoding side, the entropy encoder is configured to encode an instance of the first data item and encode an instance of the second data item independently of encoding the instance of the first data item. On the decoding side, the entropy decoder is configured to decode an instance of the first data item and decode an instance of the second data item independently of decoding the instance of the first data item.
[0132] In at least some of the examples given above, the entropy encoder is configured to encode an instance of a first data item by a CABAC encoding system using at least a first CABAC context (e.g., by including using CABAC context 1), and to encode an instance of a second data item independently of the first CABAC context (e.g., by encoding method 3).
[0133] In at least some examples, the first data item includes data indicating whether the linear mode chroma prediction mode is applicable to the current image region. In at least some examples, the entropy encoder is configured to encode at least the data indicating whether the linear mode chroma prediction mode is applicable to the current image region using the first CABAC context, even if (as in some examples) the flag indicating whether MDLM is in use is encoded using another CABAC context or a bypass method.
[0134] Corresponding considerations apply on the decoding side.
[0135] In some example embodiments, Fig.14 The entropy encoder is configured to encode the instance of the data item (i) by the CABAC encoding system using the first CABAC context, and to encode the instance of the data item (ii) independently of the first CABAC context.
[0136] In example embodiments, this is accomplished in various ways.
[0137] In some embodiments of the present disclosure, instances of data items (i) and (ii) are encoded using CABAC, but have separate contexts.
[0138] In other embodiments of the present disclosure, instances of data item (i) are encoded using CABAC and a first context, but instances of data item (ii) are encoded as bypass data, for example, by using a binary arithmetic code system (e.g., 1420) with a fixed 50% probability (EP) model.
[0139] It is also proposed that, in an example embodiment, instances of data item (iii) (a flag indicating planar intra prediction mode) be processed as EP (bypass) bins. This proposal is independent of the settings discussed above in relation to data items (i) and (ii).
[0140] Fig.19 is a schematic flow chart showing a method for encoding image data, comprising:
[0141] selectively encoding (at step 1900) a data item representing image data by a coding system selected from among a context adaptive binary arithmetic code (CABAC) coding system and a bypass coding system;
[0142] wherein the data items include (i) a first data item indicating whether a multi-directional linear model (MDLM) chromaticity mode is applicable to the current image region; and (ii) a second data item indicating a processing direction for operation of the MDLM chromaticity mode;
[0143] Therein, the encoding step comprises encoding an instance of the first data item, and encoding the instance of the second data item independently of encoding the instance of the first data item.
[0144] Fig. 20 is a schematic flow chart showing a method for decoding image data, comprising:
[0145] selectively decoding (at step 2000) data items representing image data by a decoding system selected from among a context adaptive binary arithmetic code (CABAC), a decoding system, and a bypass decoding system, wherein the data items include (i) a first data item indicating whether a multi-directional linear model (MDLM) chroma mode is applicable to a current image region; and (ii) a second data item indicating a processing direction for operation of the MDLM chroma mode;
[0146] Therein, the decoding step comprises decoding an instance of the first data item, and decoding an instance of the second data item independently of decoding the instance of the first data item.
[0147] In each case, embodiments of the present disclosure are represented by computer software and a machine-readable non-transitory storage medium storing such computer software, which, when executed by a computer, causes the computer to perform the corresponding method. In the case of an encoding method, embodiments of the present disclosure are represented by a data signal including encoded data generated according to the corresponding method.
[0148] To the extent that the embodiments of the present disclosure have been described as being implemented at least in part by a data processing device controlled by software, it should be understood that a non-transitory machine-readable medium (e.g., an optical disk, a magnetic disk, a semiconductor memory, etc.) carrying such software is also considered to represent embodiments of the present disclosure. Similarly, a data signal (whether or not contained on a non-transitory machine-readable medium) including encoded data generated according to the above method is also considered to represent embodiments of the present disclosure.
[0149] Obviously, in light of the above teachings, many modifications and variations of the present disclosure are possible. It should therefore be understood that within the scope of the appended claims, the technology may be implemented in ways other than those specifically described herein.
[0150] The corresponding aspects and features are defined by the following set of numbered clauses:
[0151] 1. An image data encoding device, comprising:
[0152] an entropy encoder configured to selectively encode a data item representing image data by a coding system selected from among a Context Adaptive Binary Arithmetic Code (CABAC) coding system and a bypass coding system;
[0153] wherein the data items include: (i) a first data item indicating whether a multi-directional linear model (MDLM) chromaticity mode is applicable to the current image region; and (ii) a second data item indicating a processing direction for operation of the MDLM chromaticity mode;
[0154] The entropy encoder is configured to encode an instance of a first data item using a first CABAC context by a CABAC encoding system, and to encode an instance of a second data item independently of the first CABAC context.
[0155] 2. An image data encoding device according to clause 1, wherein the entropy encoder is configured to encode the instance of the second data item using a bypass coding system.
[0156] 3. An image data encoding device according to clause 2, wherein the bypass encoding system is a binary arithmetic code system using a fixed 50% probability context model.
[0157] 4. An image data encoding apparatus according to clause 1, wherein the entropy encoder is configured to encode the instance of the second data item by the CABAC encoding system using a second CABAC context independent of the first CABAC context.
[0158] 6. A video storage, capture, transmission or reception device comprising a device according to any of the preceding clauses.
[0159] 6. A method for encoding image data, comprising:
[0160] selectively encoding data items representing image data by a context adaptive binary arithmetic code (CABAC) coding system or a bypass coding system;
[0161] wherein the data items include: (i) a first data item indicating whether a multi-directional linear model (MDLM) chromaticity mode is applicable to the current image region; and (ii) a second data item indicating a processing direction for operation of the MDLM chromaticity mode;
[0162] Therein, the encoding step includes encoding, by a CABAC encoding system, an instance of the first data item using a first CABAC context, and encoding an instance of the second data item independent of the first CABAC context.
[0163] 7. A method of encoding image data according to clause 6, wherein the encoding step comprises encoding the instance of the second data item using a bypass encoding system.
[0164] 8. The image data encoding method according to clause 7, wherein the bypass encoding system is a binary arithmetic code system using a fixed 50% probability context model.
[0165] 9. A method of encoding image data according to clause 6, wherein the encoding step comprises encoding, by a CABAC encoding system, the instance of the second data item using a second CABAC context independent of the first CABAC context.
[0166] 10. Computer software which, when executed by a computer, causes the computer to perform a method according to any one of clauses 6 to 9.
[0167] 11. A machine-readable non-transitory storage medium storing computer software according to clause 10
[0168] 12. A data signal comprising encoded data generated according to the method of any of clauses 6 to 9.
[0169] 13. An image data decoding device, comprising:
[0170] an entropy decoder configured to selectively decode data items representing image data via a context adaptive binary arithmetic code (CABAC) decoding system or a bypass decoding system;
[0171] wherein the data items include: (i) a first data item indicating whether a multi-directional linear model (MDLM) chromaticity mode is applicable to the current image region; and (ii) a second data item indicating a processing direction for operation of the MDLM chromaticity mode;
[0172] Therein, the entropy decoder is configured to decode the instance of the first data item using the first CABAC context by the CABAC decoding system, and to decode the instance of the second data item independent of the first CABAC context.
[0173] 14. An image data decoding device according to clause 13, wherein the entropy decoder is configured to decode the instance of the second data item using a bypass decoding system.
[0174] 15. The image data decoding apparatus according to clause 14, wherein the bypass decoding system is a binary arithmetic code system using a fixed 50% probability context model.
[0175] 16. An image data decoding apparatus according to clause 13, wherein the entropy decoder is configured to decode the instance of the second data item by the CABAC decoding system using a second CABAC context independent of the first CABAC context.
[0176] 17. A video storage, capture, transmission or reception device comprising a device according to any one of clauses 13 to 16.
[0177] 18. A method for decoding image data, comprising:
[0178] selectively decoding data items representing image data by a context adaptive binary arithmetic code (CABAC) decoding system or a bypass decoding system;
[0179] wherein the data items include: (i) a first data item indicating whether a multi-directional linear model (MDLM) chromaticity mode is applicable to the current image region; and (ii) a second data item indicating a processing direction for operation of the MDLM chromaticity mode;
[0180] Therein, the decoding step includes decoding, by the CABAC decoding system, the instance of the first data item using the first CABAC context, and decoding the instance of the second data item independent of the first CABAC context.
[0181] 19. A method of decoding image data according to clause 18, wherein the decoding step comprises decoding the instance of the second data item using a bypass decoding system.
[0182] 20. The image data decoding method according to clause 19, wherein the bypass decoding system is a binary arithmetic code system using a fixed 50% probability context model.
[0183] 21. An image data decoding method according to clause 18, wherein the decoding step comprises decoding, by the CABAC decoding system, the instance of the second data item using a second CABAC context independent of the first CABAC context.
[0184] 22. Computer software which, when executed by a computer, causes the computer to perform a method according to any one of clauses 18 to 21.
[0185] 23. A machine-readable non-transitory storage medium storing computer software according to clause 18.
[0186] Further corresponding aspects and features are defined by the following additional set of numbered clauses.
[0187] 1. An image data encoding device, comprising:
[0188] an entropy encoder configured to selectively encode a data item representing image data by a coding system selected from among a Context Adaptive Binary Arithmetic Code (CABAC) coding system and a bypass coding system;
[0189] wherein the data items include: (i) a first data item indicating whether a multi-directional linear model (MDLM) chromaticity mode is applicable to the current image region; and (ii) a second data item indicating a processing direction for operation of the MDLM chromaticity mode;
[0190] Therein, the entropy encoder is configured to encode an instance of a first data item and to encode an instance of a second data item independently of encoding the instance of the first data item.
[0191] 2. An image data encoding device according to clause 1, wherein the entropy encoder is configured to encode an instance of a first data item using at least a first CABAC context by a CABAC encoding system, and to encode an instance of a second data item independently of the first CABAC context.
[0192] 3. An image data encoding device according to clause 1, wherein the entropy encoder is configured to encode the instance of the first data item using a first CABAC context by a CABAC encoding system, and to encode the instance of the second data item independently of the first CABAC context.
[0193] 4. An image data encoding device according to any of the preceding clauses, wherein the entropy encoder is configured to encode the instance of the second data item using a bypass coding system.
[0194] 5. An image data encoding device according to any one of the preceding clauses, wherein the bypass encoding system is a binary arithmetic code system using a fixed 50% probability context model.
[0195] 6. An image data encoding device according to clause 2, wherein the entropy encoder is configured to encode the instance of the second data item by the CABAC encoding system using a second CABAC context independent of the first CABAC context.
[0196] 7. An image data encoding device according to any one of the preceding clauses, wherein the first data item includes data indicating whether the linear mode chrominance prediction mode is applicable to the current image area.
[0197] 8. An image data encoding apparatus according to any one of clauses 2 to 7 depending on clause 2, wherein:
[0198] The first data item includes data indicating whether the linear mode chrominance prediction mode is applicable to the current image area; and
[0199] The entropy encoder is configured to encode at least data indicating whether a linear mode chroma prediction mode is applicable to a current picture region using the first CABAC context.
[0200] 9. A video storage, capture, transmission or reception device comprising a device according to any of the preceding clauses.
[0201] 10. A method for encoding image data, comprising:
[0202] selectively encoding a data item representing image data by a coding system selected from among a context adaptive binary arithmetic code (CABAC) coding system and a bypass coding system;
[0203] The data items include: (i) a first data item indicating whether a multi-directional linear model (MDLM) chromaticity mode is applicable to the current image region; and (ii) a second data item indicating a processing direction for an operation of the MDLM chromaticity mode;
[0204] Therein, the encoding step includes encoding an instance of the first data item and encoding an instance of the second data item independently of encoding the instance of the first data item.
[0205] 11. A method of encoding image data according to clause 10, wherein the encoding step comprises encoding, by a CABAC encoding system, the instance of the first data item using at least a first CABAC context, and encoding the instance of the second data item independently of the first CABAC context.
[0206] 12. A method of encoding image data according to clause 10, wherein the encoding step comprises encoding, by a CABAC encoding system, the instance of the first data item using a first CABAC context, and encoding the instance of the second data item independently of the first CABAC context.
[0207] 13. A method of encoding image data according to any of clauses 10 to 12, wherein the encoding step comprises encoding the instance of the second data item using a bypass encoding system.
[0208] 14. An image data encoding method according to any one of clauses 10 to 13, wherein the bypass encoding system is a binary arithmetic code system using a fixed 50% probability context model.
[0209] 15. A method of encoding image data according to clause 11, wherein the encoding step comprises encoding, by a CABAC encoding system, the instance of the second data item using a second CABAC context independent of the first CABAC context.
[0210] 16. An image data encoding method according to any one of clauses 10 to 15, wherein the first data item comprises data indicating whether the linear mode chrominance prediction mode is applicable to the current image region.
[0211] 17. A method of encoding image data according to any one of clauses 11 to 16 depending on clause 11, wherein:
[0212] The first data item includes data indicating whether the linear mode chrominance prediction mode is applicable to the current image area; and
[0213] The encoding step includes encoding at least data indicating whether a linear mode chroma prediction mode is applicable to a current picture region using the first CABAC context.
[0214] 18. Computer software, za9 when executed by a computer, causes the computer to perform a method according to any one of clauses 10 to 17.
[0215] 19. A machine-readable non-transitory storage medium storing computer software according to clause 18.
[0216] 20. A data signal comprising encoded data generated according to the method of any of clauses 10 to 19.
[0217] 21. An image data decoding device, comprising:
[0218] an entropy decoder configured to selectively decode data items representing image data by a decoding system selected from among a context adaptive binary arithmetic code (CABAC) decoding system and a bypass decoding system;
[0219] wherein the data items include: (i) a first data item indicating whether a multi-directional linear model (MDLM) chromaticity mode is applicable to the current image region; and (ii) a second data item indicating a processing direction for operation of the MDLM chromaticity mode;
[0220] Therein, the entropy decoder is configured to decode the instance of the first data item and decode the instance of the second data item independently of decoding the instance of the first data item.
[0221] 22. An image data decoding device according to clause 21, wherein the entropy decoder is configured to decode instances of the first data item using at least a first CABAC context by a CABAC decoding system, and to decode instances of the second data item independently of the first CABAC context.
[0222] 23. An image data decoding device according to clause 21, wherein the entropy decoder is configured to decode the instance of the first data item using the first CABAC context by the CABAC decoding system, and to decode the instance of the second data item independently of the first CABAC context.
[0223] 24. An image data decoding device according to any of clauses 21 to 23, wherein the entropy decoder is configured to decode the instance of the second data item using a bypass decoding system.
[0224] 25. An image data decoding apparatus according to any one of clauses 21 to 24, wherein the bypass decoding system is a binary arithmetic code system using a fixed 50% probability context model.
[0225] 26. An image data decoding apparatus according to clause 23, wherein the entropy decoder is configured to decode the instance of the second data item by the CABAC decoding system using a second CABAC context independent of the first CABAC context.
[0226] 27. An image data decoding device according to any one of clauses 21 to 26, wherein the first data item comprises data indicating whether the linear mode chrominance prediction mode is applicable to the current image region.
[0227] 28. An image data decoding device according to any one of clauses 22 to 27 depending on clause 22, wherein:
[0228] The first data item includes data indicating whether the linear mode chrominance prediction mode is applicable to the current image area; and
[0229] The entropy decoder is configured to decode at least data indicating whether a linear mode chroma prediction mode is applicable to a current picture region using the first CABAC context.
[0230] 29. A video storage, capture, transmission or reception device comprising a device according to any one of clauses 21 to 28.
[0231] 30. A method for decoding image data, comprising:
[0232] selectively decoding a data item representing image data by a decoding system selected from among a context adaptive binary arithmetic code (CABAC), a decoding system, and a bypass decoding system;
[0233] wherein the data items include: (i) a first data item indicating whether a multi-directional linear model (MDLM) chromaticity mode is applicable to the current image region; and (ii) a second data item indicating a processing direction for operation of the MDLM chromaticity mode;
[0234] Therein, the decoding step comprises decoding an instance of the first data item and decoding an instance of the second data item independently of decoding the instance of the first data item.
[0235] 31. A method of decoding image data according to clause 30, wherein the decoding step comprises decoding, by a CABAC decoding system, instances of the first data item using at least a first CABAC context, and decoding instances of the second data item independently of the first CABAC context.
[0236] 32. A method of decoding image data according to clause 30, wherein the decoding step comprises decoding, by a CABAC decoding system, the instance of the first data item using a first CABAC context, and decoding the instance of the second data item independently of the first CABAC context.
[0237] 33. A method of decoding image data according to any one of clauses 30 to 32, wherein the decoding step comprises decoding the instance of the second data item using a bypass decoding system.
[0238] 34. An image data decoding method according to any one of clauses 30 to 33, wherein the bypass decoding system is a binary arithmetic code system using a fixed 50% probability context model.
[0239] 35. A method of decoding image data according to clause 30, wherein the decoding step comprises decoding, by the CABAC decoding system, the instance of the second data item using a second CABAC context independent of the first CABAC context.
[0240] 36. An image data decoding method according to any one of clauses 30 to 35, wherein the first data item comprises data indicating whether the linear mode chrominance prediction mode is applicable to the current image region.
[0241] 37. An image data decoding method according to any one of clauses 31 to 36 depending on clause 31, wherein:
[0242] The first data item includes data indicating whether the linear mode chrominance prediction mode is applicable to the current image area; and
[0243] The decoding step includes decoding at least data indicating whether a linear mode chroma prediction mode is applicable to a current picture region using the first CABAC context.
[0244] 38. Computer software which, when executed by a computer, causes the computer to perform a method according to any one of clauses 30 to 37.
[0245] 39. A machine-readable non-transitory storage medium storing computer software according to clause 38.
Claims
1. An image data encoding device, comprising: an entropy encoder configured to selectively encode a data item representing image data by a coding system selected from among a context-adaptive binary arithmetic code (CABAC) coding system and a bypass coding system; Wherein, the data items include: (i) a first data item indicating whether a multi-directional linear model MDLM chromaticity mode is applicable to a current image region; and (ii) a second data item indicating a processing direction for an operation of the MDLM chromaticity mode; Therein, the entropy encoder is configured to encode the instance of the first data item using at least a first CABAC context and to encode the instance of the second data item independently of encoding the instance of the first data item and independently of the first CABAC context.
2. The image data encoding device according to claim 1, wherein: The entropy encoder is configured to encode the instance of the first data item by the CABAC encoding system.
3. The image data encoding device according to claim 1, wherein: The instances of the second data item are divided into respective first and second subsets, and wherein the entropy encoder is configured to encode the instances of the second subset using the bypass encoding system.
4. The image data encoding device according to claim 3, wherein: The bypass coding system is a binary arithmetic code system using a fixed 50% probability context model.
5. The image data encoding device according to claim 1, wherein: The entropy encoder is configured to encode the instance of the second data item using a second CABAC context independent of the first CABAC context by the CABAC encoding system.
6. The image data encoding device according to claim 1, wherein: The first data item includes data indicating whether a linear mode chrominance prediction mode is applicable to the current image region.
7. The image data encoding device according to claim 2, wherein: The first data item includes data indicating whether a linear mode chrominance prediction mode is applicable to the current image region; and The entropy encoder is configured to encode at least the data indicating whether the linear mode chroma prediction mode is applicable to the current picture region using the first CABAC context.
8. A video storage, capture, transmission or reception device, comprising the device according to claim 1.
9. A method for encoding image data, comprising: selectively encoding a data item representing image data by a coding system selected from among a context-adaptive binary arithmetic code (CABAC) coding system and a bypass coding system; Wherein, the data items include: (i) a first data item indicating whether a multi-directional linear model MDLM chromaticity mode is applicable to a current image region; and (ii) a second data item indicating a processing direction for an operation of the MDLM chromaticity mode; Therein, the encoding step comprises encoding the instance of the first data item using at least a first CABAC context, and encoding the instance of the second data item independently of encoding the instance of the first data item and independently of the first CABAC context.
10. The image data encoding method according to claim 9, wherein: The encoding step comprises encoding the instance of the first data item using at least a first CABAC context by the CABAC encoding system.
11. The image data encoding method according to claim 9, wherein: The instances of the second data item are divided into respective first and second subsets, and wherein the entropy encoder is configured to encode the instances of the second subset using the bypass encoding system.
12. The image data encoding method according to claim 11, wherein: The bypass coding system is a binary arithmetic code system using a fixed 50% probability context model.
13. The image data encoding method according to claim 10, wherein: The encoding step includes encoding, by the CABAC encoding system, the instance of the second data item using a second CABAC context that is independent of the first CABAC context.
14. The image data encoding method according to claim 9, wherein: The first data item includes data indicating whether a linear mode chrominance prediction mode is applicable to the current image region.
15. The image data encoding method according to claim 10, wherein: The first data item includes data indicating whether a linear mode chrominance prediction mode is applicable to the current image region; and The encoding step includes: using the first CABAC context to encode at least the data indicating whether the linear mode chroma prediction mode is applicable to the current image region.
16. Computer software which, when executed by a computer, causes the computer to perform the method according to claim 9.
17. A machine-readable non-transitory storage medium storing the computer software according to claim 16.
18. A data signal comprising encoded data generated by the method according to claim 9.
19. An image data decoding device, comprising: an entropy decoder configured to selectively decode a data item representing image data by a decoding system selected from among a context-adaptive binary arithmetic code (CABAC) decoding system and a bypass decoding system; Wherein, the data items include: (i) a first data item indicating whether a multi-directional linear model MDLM chromaticity mode is applicable to a current image region; and (ii) a second data item indicating a processing direction for an operation of the MDLM chromaticity mode; Therein, the entropy decoder is configured to decode the instance of the first data item using at least a first CABAC context and to decode the instance of the second data item independently of decoding the instance of the first data item and independently of the first CABAC context.
20. The image data decoding device according to claim 19, wherein: The entropy decoder is configured to decode, by the CABAC decoding system, the instance of the first data item using at least a first CABAC context.
21. The image data decoding device according to claim 19, wherein: The instances of the second data item are divided into respective first and second subsets, and wherein the entropy decoder is configured to decode the instances of the second subset using the bypass decoding system.
22. The image data decoding device according to claim 21, wherein: The bypass decoding system is a binary arithmetic code system using a fixed 50% probability context model.
23. The image data decoding device according to claim 19, wherein: The entropy decoder is configured to decode, by the CABAC decoding system, the instance of the second data item using a second CABAC context that is independent of the first CABAC context.
24. The image data decoding device according to claim 19, wherein: The first data item includes data indicating whether a linear mode chrominance prediction mode is applicable to the current image region.
25. The image data decoding device according to claim 20, wherein: The first data item includes data indicating whether a linear mode chrominance prediction mode is applicable to the current image region; and The entropy decoder is configured to decode at least the data indicating whether the linear mode chroma prediction mode is applicable to the current picture region using the first CABAC context.
26. A video storage, capture, transmission or reception device comprising the device according to claim 19.
27. A method for decoding image data, comprising: selectively decoding a data item representing image data by a decoding system selected from among a context-adaptive binary arithmetic code (CABAC) decoding system and a bypass decoding system; The data items include: (i) a first data item indicating whether a multi-directional linear model MDLM chromaticity mode is applicable to a current image region; and (ii) a second data item indicating a processing direction for operating the MDLM chromaticity mode; Therein, the decoding step comprises: decoding the instance of the first data item using at least a first CABAC context, and decoding the instance of the second data item independently of decoding the instance of the first data item and independently of the first CABAC context.
28. The image data decoding method according to claim 27, wherein: The decoding step comprises decoding, by the CABAC decoding system, the instance of the first data item using at least a first CABAC context.
29. The image data decoding method according to claim 27, wherein: The instances of the second data item are divided into respective first and second subsets, and wherein the entropy codec is configured to decode the instances of the second subset using the bypass decoding system.
30. The image data decoding method according to claim 29, wherein: The bypass decoding system is a binary arithmetic code system using a fixed 50% probability context model.
31. The image data decoding method according to claim 27, wherein: The decoding step includes decoding, by the CABAC decoding system, the instance of the second data item using a second CABAC context that is independent of a first CABAC context.
32. The image data decoding method according to claim 27, wherein: The first data item includes data indicating whether a linear mode chrominance prediction mode is applicable to the current image region.
33. The image data decoding method according to claim 28, wherein: The first data item includes data indicating whether a linear mode chrominance prediction mode is applicable to the current image region; and The decoding step includes: using the first CABAC context to decode at least the data indicating whether the linear mode chroma prediction mode is applicable to the current image region.
34. Computer software which, when executed by a computer, causes the computer to perform the method of claim 27.
35. A machine-readable non-transitory storage medium storing computer software according to claim 34.