Independent CABAC for sub-parts of a picture
By using entropy encoder and fill data technology in the video data encoding system, the problem of binary symbol number management of image data is solved, independent decoding and reconstruction of tiles and slices is realized, and encoding efficiency and flexibility are improved.
Patent Information
- Application Number
- CN202080044868.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-12-31
- Filing Date
- 2020-06-24
- Publication Date
- 2024-12-13
- Estimated Expiration
- 2040-06-24
AI Technical Summary
In the process of efficient video encoding, existing video data encoding systems are difficult to effectively manage the number of binary symbols of image data, resulting in the data stream not meeting the byte size constraints, affecting the independence and independence of decoding and reconstruction.
The image data is selectively encoded using an entropy encoder, generate binary symbols through CABAC or bypass encoding system, and add padding data to the output data unit that does not meet the byte size constraints to ensure that the constraints are met, allowing tile and slices to be Independent decoding.
It realizes efficient encoding and decoding of image data, ensures that the byte size of each output data unit meets the constraints, supports independent decoding and reconstruction of tiles and slices, and improves encoding efficiency and flexibility.
Smart Images

Figure CN113994680B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to image data encoding and decoding. Background Art
[0002] The "background" description provided herein is to generally present the context of the present disclosure. To the extent described in this background section, the work of the presently named inventors and the description of what 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.
[0003] 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 allows compression of the video data. The corresponding decoding or decompression techniques are applied to recover a reconstructed version of the original video data.
[0004] 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 rate over H.264, and scale from 128×96 to 7680×4320 pixel resolution, roughly equivalent to bit rates of 128kbit / s to 800Mbit / s. Summary of the invention
[0005] The present disclosure solves or alleviates the problems caused by this process.
[0006] The present disclosure provides an image data encoding device, comprising:
[0007] an entropy encoder for selectively encoding a data item to generate a coded binarized symbol, wherein the data item represents image data to be encoded by a first context-adaptive binary arithmetic coding (CABAC) encoding system or a second bypass encoding system;
[0008] The image data represents one or more pictures, each picture includes an output data unit, and the output data unit represents:
[0009] (i) one or more slices within each Network Abstraction Layer (NAL) unit, each slice of a picture being decodable independently of any other slice of the same picture; and
[0010] (ii) zero or more tiles, which define corresponding horizontal and vertical boundaries of the image area and are not constrained to be encapsulated in corresponding NAL units, and which can be decoded independently of other tiles of the same picture;
[0011] The entropy encoder is configured to generate an output data stream, the output data stream being subject to a constraint defining an upper limit on the number of binarized symbols, the upper limit on the number of binarized symbols being representable by any individual output data unit relative to the byte size of the output data unit, wherein the entropy encoder is configured to apply the constraint to each output data unit representing a slice and each output data unit representing a tile, and for each output data unit that does not satisfy the constraint, provide padding data so as to increase the byte size of the output data unit so as to satisfy the constraint.
[0012] The present disclosure also provides an image data encoding method, comprising:
[0013] selectively encoding a data item representing image data to be encoded by a first context-adaptive binary arithmetic coding (CABAC) encoding system or a second bypass encoding system to generate encoded binarized symbols;
[0014] The image data represents one or more pictures, each picture comprising:
[0015] (i) one or more slices within each Network Abstraction Layer (NAL) unit, each slice of a picture being decodable independently of any other slice of the same picture; and
[0016] (ii) zero or more tiles that define corresponding horizontal and vertical boundaries of a picture area and are not constrained to be encapsulated in corresponding NAL units, and that are decodable independently of other tiles of the same picture;
[0017] Generate output data stream;
[0018] The generating step is subject to a constraint defining an upper limit on the number of binarized symbols that can be represented by any individual output data unit relative to the byte size of the output data unit, wherein the generating step includes applying the constraint to each output data unit representing a slice and each output data unit representing a tile; and
[0019] For each output data unit that does not satisfy the constraint, padding data is provided to increase the byte size of the output data unit so that the constraint is satisfied.
[0020] The present disclosure also provides an image data encoding device, comprising:
[0021] an entropy encoder for selectively encoding data items representing image data to be encoded by a first context-adaptive binary arithmetic coding (CABAC) encoding system or a second bypass encoding system so as to generate encoded binarized symbols;
[0022] The image data represents one or more pictures of a sequence of pictures, each picture comprising two or more output data units representing respective sub-parts of the picture, each sub-part being decodable and reconstructible independently of the picture and other sub-parts in the sequence of pictures;
[0023] The entropy encoder is configured to generate an output data stream, the output data stream is subject to a constraint defining an upper limit on the number of binarized symbols, the upper limit on the number of binarized symbols being representable by any individual output data unit relative to the byte size of the output data unit, wherein the entropy encoder is configured to apply the constraint to each output data unit and, for each output data unit that does not satisfy the constraint, provide padding data so as to increase the byte size of the output data unit so as to satisfy the constraint.
[0024] The present disclosure also provides an image data encoding device, comprising:
[0025] an image data encoder for applying compression coding to generate compressed image data representing one or more pictures of a sequence of pictures, each picture comprising output data units representing two or more sub-parts, the sub-parts being decodable and reconstructible independently of other sub-parts of the picture or of the sequence of pictures;
[0026] wherein the device is operable according to a coding profile selected from a set of coding profiles, each coding profile defining at least one set of constraints on image data to be encoded and / or an output data stream, wherein the image data encoding device is configured to apply the corresponding coding profile to each sub-portion of a picture, regardless of the coding profile applied to any other sub-portion of the picture.
[0027] The present disclosure also provides an image data encoding method, comprising:
[0028] selectively encoding a data item to generate an encoded binarized symbol, wherein the data item represents image data to be encoded by a first context-adaptive binary arithmetic coding (CABAC) encoding system or a second bypass encoding system;
[0029] The image data represents one or more pictures of a sequence of pictures, each picture comprising two or more output data units representing respective sub-parts of the picture, each sub-part being decodable and reconstructible independently of the picture and other sub-parts in the sequence of pictures;
[0030] Generate output data stream;
[0031] The generating step is subject to a constraint defining an upper limit on the number of binarized symbols that can be represented by any individual output data unit relative to the byte size of the output data unit, wherein the generating step includes applying the constraint to each output data unit; and
[0032] For each output data unit that does not satisfy the constraint, padding data is provided to increase the byte size of the output data unit so that the constraint is satisfied.
[0033] The present disclosure also provides an image data encoding method, comprising:
[0034] compression encoding image data representing one or more pictures of a sequence of pictures, each picture comprising two or more output data units representing respective sub-portions of the picture, each sub-portion being decodable and reconstructible independently of the picture and other sub-portions in the sequence of pictures;
[0035] wherein the compression encoding step may operate according to a coding profile selected from a set of coding profiles, each coding profile defining at least one set of constraints on the image data to be encoded and / or the output data stream, wherein the compression encoding step comprises applying the corresponding coding profile to each sub-portion of the picture, regardless of the coding profile applied to any other sub-portion of the picture.
[0036] Further respective aspects and features of the disclosure are defined in the appended claims.
[0037] 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
[0038] 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:
[0039] Figure 1 Schematically illustrates an audio / video (A / V) data transmission and reception system using video data compression and decompression;
[0040] Figure 2 schematically illustrates a video display system using video data decompression;
[0041] Figure 3 Schematically illustrates an audio / video storage system using video data compression and decompression;
[0042] Figure 4 schematically illustrates a video camera using video data compression;
[0043] Figure 5 and Figure 6 A storage medium is schematically shown;
[0044] Figure 7 A schematic diagram of a video data compression and decompression device is provided;
[0045] Figure 8 The predictor is schematically shown;
[0046] Fig. 9 A partially encoded image is schematically shown;
[0047] Fig.10 A set of possible intra prediction directions is schematically shown;
[0048] Fig.11 A set of prediction modes are schematically shown;
[0049] Fig.12 Another set of prediction modes is schematically shown;
[0050] Fig.13 The intra prediction process is schematically shown;
[0051] Fig.14 A CABAC encoder is schematically shown;
[0052] Fig.15 and Fig.16 The CABAC coding technique is schematically illustrated;
[0053] Fig.17 and Fig.18 The CABAC decoding technique is schematically illustrated;
[0054] Fig.19 The partition image is schematically shown;
[0055] Fig. 20 The device is schematically shown;
[0056] Fig.21 is a schematic flow chart illustrating a method;
[0057] Fig. 22 A set of sub-portions of a picture are schematically shown;
[0058] Fig.23 A set of sub-picture parameter data is schematically shown;
[0059] Fig.24 schematically illustrates a data signal; and
[0060] Fig.25 is a schematic flow chart illustrating the method. DETAILED DESCRIPTION
[0061] 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.
[0062] 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.
[0063] Figure 1 An audio / video data transmission and reception system using video data compression and decompression is schematically shown.
[0064] 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, wireless link, etc. 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.
[0065] Compression device 20 and decompression device 70 can thus form one node of the transmission link. Decompression device 40 and decompression 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.
[0066] Figure 2 A 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, provided in the same housing as the display device. Alternatively, the decompression device 110 can be provided as (for example) a so-called set-top box (STB), noting 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.
[0067] Figure 3An 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, such as 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.
[0068] 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.
[0069] 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 that is passed to the compression device 190. The compression device 190 generates a compressed audio / video signal 210 (shown generally as schematic stage 220) for storage and / or transmission.
[0070] 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 4 Although 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.
[0071] therefore, Figure 4 An example of a video capture device including 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.
[0072] 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, wherein the decoded image is output to the display.
[0073] 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 shows a disk storage medium such as a magnetic disk or an 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.
[0074] The above arrangement thus provides an example of a video storage, capture, transmission or reception device embodying any of the present techniques.
[0075] Figure 7 A schematic diagram of a video data compression and decompression device is provided.
[0076] The controller 343 controls the overall operation of the device and, in particular, when it comes to compression modes, controls the attempted 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 8 The intra-image predictor can use the Figure 7 However, this does not mean that the image encoder or decoder must Figure 7 Each feature of.
[0077] Adder 310 actually performs a subtraction (negative addition) operation, since it receives the input video signal 300 at a "+" input and the output of the image predictor 320 at a "-" input, thereby subtracting the predicted image from the input image. The result is a so-called residual image signal 330, representing the difference between the actual image and the projected image.
[0078] 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.
[0079] 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 transform 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 transforms that may be used include, for example, a discrete sine transform (DST). The transform may also include a sequence or cascade of separate transforms, for example, an arrangement in which one transform is followed (whether directly or not) by another transform. The choice of transform may be determined explicitly and / or may depend on side information used to configure the encoder and decoder.
[0080] The output of the transform unit 340 (that is, in one example, a set of DCTs for each transformed block of image data) is provided to a quantizer 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 likelihood 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.
[0081] 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 may allow so-called run-length encoding or similar techniques to be applied efficiently. Thus, the scanning process comprises selecting coefficients from the quantized transform data, in particular from coefficient blocks corresponding to blocks of image data that have been transformed and quantized, according to a "scanning order" such 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 a diagonal order, for example a so-called right diagonal scanning order.
[0082] 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 CABAC (context adaptive binary arithmetic coding) system and variants of the so-called CAVLC (context adaptive variable length coding) 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 compared to CAVLC for comparable image quality. However, CAVLC is considered to have lower complexity (in terms of its implementation) than CABAC. Note that the scanning process and the entropy encoding process are shown as independent processes, but in fact can 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 process to be described below.
[0083] The output of the entropy encoder 370 provides a compressed output video signal 380 , together with additional data (mentioned above and / or discussed below) such as defining the manner in which the predictor 320 generated the predicted picture.
[0084] However, a return path 390 is also provided because the operation of the predictor 320 itself depends on the decompressed version of the compressed output data.
[0085] 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 between the compression side and the decompression side, the predicted image generated by the predictor 320 should be the same during the compression process and the decompression process. 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 predictions (at least for inter-image coding) on the decompressed version of the compressed image.
[0086] 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 originally 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, so in this embodiment, the return path 390 is from the output of the quantizer 350 to the input of the complementary inverse quantizer 420. In the case where a stage introduces losses or potential losses, the stage (and its inverse) can be included in the feedback loop formed by the return path. For example, the entropy encoding stage can be lossy, at least in principle, for example, by a technique of encoding bits in parity information. In this case, entropy encoding and decoding should form part of the feedback loop.
[0087] In general, the entropy decoder 410, the inverse scanning unit 400, the inverse quantizer 420, and the inverse transform unit or circuit 430 provide the respective inverse functions of the entropy encoder 370, the scanning unit 360, the quantizer 350, and the transform unit 340. For the time being, the discussion will proceed through the compression process; the process of inputting a compressed video signal for decompression will be discussed separately below.
[0088] During compression, the scan coefficients are passed from quantizer 350 via return path 390 to inverse quantizer 420 which performs the inverse operation of 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.
[0089] At adder 450, the image signal 440 is added to the output of the predictor 320 to generate a reconstructed output image 460. This forms one input to the image predictor 320 as described below.
[0090] 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, and then 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 may optionally be applied before outputting the 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).
[0091] 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.
[0092] Figure 8 The generation of a predicted image, in particular the operation of the image predictor 320, is schematically illustrated.
[0093] 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.
[0094] (At the decoder, or at the reverse decoding side of the encoder, detection of the prediction direction may be responsive to data associated with the encoded data by the encoder, 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).
[0095] Intra-image prediction is based on predicting the content of blocks or regions of an image from data within the same image. 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 coding 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.
[0096] 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.
[0097] 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.
[0098] Back to Figure 8, two picture prediction settings (corresponding to intra-picture prediction and inter-picture prediction) are shown, 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 predicted pictures to be provided to adders 310 and 450. The selection is made according to which option gives the lowest "energy" (which, as described above, can be considered as the information content to be encoded), and the selection is signaled 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.
[0099] 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 coded-decoded image blocks so that exactly the same prediction can be performed in the decompression device. However, data can be derived from the input video signal 300 by the intra mode selector 520 to control the operation of the intra picture predictor 530.
[0100] For inter-image prediction, a motion compensated (MC) predictor 540 uses motion information, such as motion vectors derived from the input video signal 300 by a motion estimator 550. The motion compensated predictor 540 applies these motion vectors to the processed version 460 of the reconstructed image to generate inter-image predicted blocks.
[0101] 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.
[0102] The processing applied to 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 transform 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 uses known techniques to apply adaptive filter coefficients to the data to be filtered. That is, the filter coefficients can vary depending on various factors. Data defining which filter coefficients to use is included as part of the encoded output data stream.
[0103] 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 the resolution of the image stored in the image memory 570 (in each dimension) for the luminance channel, 4:2:0, and 8 times the resolution of the image stored in the image memory 570 (in each dimension) for the chrominance channels. The interpolated image is passed as input to the motion estimator 550 and is also passed to the motion compensated predictor 540.
[0104] 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 divided into such blocks or regions by a decision tree, for example, the decision tree described in "High Efficiency Video Coding (HEVC) text specification draft 6" by Bross et al., JCTVC-H1003_d0 (November 2011), 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, with the aid of decision trees, can generally follow a setting of image features within the image. This in itself can allow for improved coding efficiency, since 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., 4×4 samples up to 64×64 or larger blocks) are available for selection. In other example settings, blocks or regions of different shapes can be used, for example, rectangular blocks (e.g., vertically or horizontally oriented). Other non-square and non-rectangular blocks can be envisioned. The result of segmenting 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.
[0105] 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.
[0106] 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 non-shaded area below it.
[0107] 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. 9 The order discussed is coded. Within each CU, it is possible that the CU is treated 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 coded CU by CU, and each CU is potentially coded 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, then 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, above and to the right or below and to the left of the TU.
[0108] Block 810 represents a CU; as described 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 the CU 810. More generally, a picture is partitioned into sample regions or groups of samples to allow efficient encoding of signaling information and transform data. The signaling of information may require a tree structure different from the sub-division of the transform, and indeed the tree structure of the prediction information or the prediction itself. To this end, a coding unit may have a tree structure different from that of a transform 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 transform units; a transform unit may contain multiple transform blocks corresponding to the luma and chroma representations of a picture, and the prediction may be considered to apply to the transform block level. In the example, the parameters applied to a particular sample group may be considered to be primarily defined at the block level, which may be different from the granularity of the transform structure.
[0109] 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 from which the desired samples are predicted 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.
[0110] 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 can form a slice, or a slice can be a single CU, or a slice can be a row of CUs, and so on. Since slices are encoded as independent units, slices can provide some error resilience. The encoder and decoder states are completely reset on slice boundaries. For example, intra prediction is not performed across slice boundaries; for this purpose, slice boundaries are treated as picture boundaries.
[0111] More generally, a picture (which may form part of a sequence of pictures) may be encoded on a sub-part basis, wherein each sub-part is independently decodable and reconstructible (that is, independent of any other sub-part of the picture or sequence of pictures, that is, coding parameters are not shared and do not depend on sub-part boundaries). For example, the sub-parts may represent sub-parts from a list consisting of sub-pictures, slices, and tiles, respectively.
[0112] In these examples, (i) a sub-picture represents a region of a picture; (ii) a slice represents a portion of a picture, sub-picture, or tile in raster order and is constrained to be encapsulated in a corresponding Network Abstraction Layer (NAL) unit; and (iii) a tile represents a portion of a picture, sub-picture, or slice with corresponding horizontal and vertical boundaries defined in a grid arrangement and is not constrained to be encapsulated in a corresponding NAL unit.
[0113] Fig.10 A set of possible (candidate) prediction directions is schematically shown. The prediction unit has access to the entire 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.
[0114] 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).
[0115] Fig.13 The intra prediction process is schematically illustrated, wherein 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 the sample 900 is obtained by tracing the reference samples 920 along the direction 930. The direction 930 may point to a single independent 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.
[0116] Fig.14 and 15 The previously proposed reference sample projection process is schematically shown.
[0117] exist Fig.14 and 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 and15 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.
[0118] As described above, the reference samples include at least two linear arrays in 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.
[0119] 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. A reference sample filtering process can be used for reference samples.
[0120] Fig.14 The operation of a CABAC entropy encoder is schematically illustrated.
[0121] The CABAC encoder operates on binary data (that is, data represented by just 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.
[0122] 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 the present 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.
[0123] The binary data may then be processed by one of two processing paths, namely a "normal" and a "bypass" path (the two paths are schematically shown as separate paths, but in the embodiments of the invention discussed below, may in fact 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 a batch of data needs to be processed particularly quickly, 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 50% probability; second, the bypass data relates to certain categories of data, a specific example being coefficient sign data. Otherwise, the normal path is selected by schematic switches 1430, 1440 operating under the control of control circuit 1435. This includes data processed by the context modeler 1450, followed by the encoding engine 1460.
[0124] If a block of data (ie, for example, data corresponding to a block of coefficients associated with a block of the residual image) is formed entirely of zero-valued data, then Fig.14 The entropy encoder shown encodes the block 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 a 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 aids compression because for coefficients whose magnitude the significance map indicates is 0, no data need be encoded. In addition, the significance map can include special codes to indicate the final non-zero coefficient in a 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 values of the non-zero coefficients specified by the significance map.
[0125] Further levels of mapping data are also prepared and encoded. One example is a mapping that defines as 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". Another mapping also indicates the sign of the data value for data identified as "non-zero" (using a predetermined binary representation, e.g., 1 for +, 0 for -, and of course vice versa).
[0126] 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 essentially 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.
[0127] 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.
[0128] 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).
[0129] To use a simple analogy, in written English, the letter "U" is relatively uncommon. But in the letter position immediately following the letter "Q", it is very 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 the probability value to a very high value.
[0130] In the present arrangement, CABAC encoding is used at least for the significance mapping and the mapping indicating whether a non-zero value is 1 or 2. In these embodiments, the bypass process is the same as for 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 at least for the sign data and the mapping indicating whether the value is >2. For those data positions identified as >2, a separate so-called escape data encoding may be used to encode the actual value of the data. This may include Golomb-Rice encoding techniques.
[0131] 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; 201×(E)2011-10-28.
[0132] Reference now Fig.15 and 16 , an entropy encoder forming part of a video encoding device includes a first encoding system (e.g., an arithmetic coding encoding system, such as a CABAC encoder 1500) and a second encoding system (e.g., a bypass encoder 1510) which is arranged so that a particular data word or value is encoded by either the CABAC encoder or the bypass encoder (but not both) into a final output data stream. 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.
[0133] 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 described 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.
[0134] 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.
[0135] 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.
[0136] Fig.17 and 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 the CABAC decoder or the bypass decoder (but not both). Logic 1740 reorders the decoded data into the appropriate order for subsequent decoding stages.
[0137] Fig.17 The schematic in Figure 1 treats the CABAC decoder and bypass decoder as separate setups. 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 described 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.
[0138] As mentioned 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.
[0139] 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.
[0140] Fig.19Picture 1900 is schematically shown and will be used to demonstrate various picture segmentation schemes relevant to the following discussion.
[0141] An example of picture segmentation is segmentation into slices or "regular slices". Each regular slice is encapsulated in its own Network Abstraction Layer (NAL) unit. Entropy coding dependencies across slice boundaries and prediction within a picture (e.g., intra-sample prediction, motion information prediction, coding mode prediction) are not allowed. This means that a regular slice can be reconstructed independently of other regular slices in the same picture.
[0142] So-called tiles define horizontal and vertical boundaries to partition a picture into rows and columns of tiles. In a manner corresponding to regular slices, intra-picture prediction dependencies across tile boundaries are not allowed, nor are entropy decoding dependencies. However, tiles are not constrained to be contained in separate NAL units.
[0143] A sub-picture represents a region of a picture and is independently decodable and reconstructible.
[0144] The example purposes of this technique are as follows:
[0145] Allow images to consist of multiple sub-parts
[0146] Multiple sub-parts can be processed separately and possibly merged into other combinations, e.g., a 360-degree representation or an intended viewport in a panoramic or 360-degree representation
[0147] Independent sub-parts can be extracted and decoded by a single decoder
[0148] Generally speaking, there may be multiple tiles in a slice, or there may be multiple slices in a tile, and one or more tiles in each tile are located in a picture or sub-picture.
[0149] These are all examples of sub-parts, where (for the purposes of at least some embodiments) each sub-part is independently decodable and reconstructible (that is, independent of any other sub-part of the picture or sequence of pictures, that is, coding parameters are not shared and there are no dependencies across sub-part boundaries). For example, sub-parts may represent sub-parts including those from the list consisting of sub-pictures, slices, and tiles, respectively.
[0150] Fig.19 The schematic example of shows four slices 1910, 1920, 1930, 1940, wherein the slice 1940 includes two tiles 1950, 1960. However, as mentioned above, this is only an arbitrary schematic example.
[0151] In some example settings, there is a threshold for the number of bins (EP or CABAC) that can be encoded in a slice or picture according to the following equation:
[0152] BinCountsinNalUnits<=(4 / 3)×NumByteslnVclNalUnits+(RawMinCuBits×PicSizelnMinCbsY) / 32
[0153] The right side of the equation depends on the sum of two parts: a constant value (RawMinCuBits×PicSizelnMinCbsY) for a specific image region and related to the size of the slice or picture; and a dynamic value (NumByteslnVclNalUnits), which is the number of bytes encoded in the output stream of the sub-section or picture. Note that the value 1.25 represents the number of bins per bit.
[0154] RawMinCuBits is the number of bits in the smallest raw CU, usually 4×4; PicSizelnMinCbsY is the number of smallest CUs in a sub-part or picture.
[0155] If this threshold is exceeded, CABAC zero words (3 bytes with value 00 00 03) will be appended to the stream until the threshold is reached. Each such zero word will increment the dynamic value by 3.
[0156] This constraint (or other versions with different individual constants) can be expressed generally as:
[0157] N<=K1×B+(K2×CU)
[0158] in:
[0159] N = the number of binarized symbols in the output data unit;
[0160] K1 is a constant;
[0161] B = number of coded bytes of the output data unit;
[0162] K2 is a variable that depends on the properties of the minimum-size coding unit adopted by the image data encoding device; and
[0163] CU = size of the sub-portion represented by the output data unit expressed as the number of coding units of the smallest size.
[0164] In the examples presented previously, this threshold check is performed at the picture and slice level.
[0165] However, as referenced Fig.19 As noted, a picture or slice may be partitioned into multiple tiles. One example of why this may be done is to allow the use of multiple concurrent (parallel) decoders.
[0166] Under the previously proposed setting, each tile does not necessarily meet the threshold calculation discussed above. For example, if the tiles are used or decoded independently like a picture, or if different tiles (e.g., with different quantization parameters or from different sources) are synthesized together, this may cause problems and there is no guarantee that the synthesized slice or picture meets the above specifications.
[0167] To address this issue, in an example embodiment, the CABAC threshold is applied at the end of each sub-part, rather than just at the end of each slice or picture. Thus, application of the threshold occurs at the end of encoding any of the tiles, slices, and pictures. Having said that, if every tile in the image meets the threshold, it can be assumed that the entire picture must also meet the threshold, thus eliminating the need to apply the threshold again at the end of picture encoding in the case where the picture is divided into slices or tiles.
[0168] More generally, embodiments of the present disclosure apply the threshold value separately to each of two or more sub-portions of a picture.
[0169] The terms "tile" and "slice" refer to independently decodable units and represent names applicable to example sub-portions used on the priority date of this application. In the event of subsequent or other name changes, the same applies to other such independently decodable units. Note that the term "sub-picture" also refers to examples of sub-portions.
[0170] For the purpose of applying the equations discussed above, the dynamic value represents the number of bytes encoded in the output stream for the tile, while the fixed value depends on the number of minimum-sized coding units (CUs) in the tile.
[0171] Fig. 20 The apparatus configured to perform the test is schematically shown. Fig. 20 , at an input end 2000, a CABAC / EP encoded stream is received from an encoder. The detector 2010 detects whether the above threshold calculation is met at a predetermined stage of completion of a reference sub-portion, for example, at the end of encoding a slice, tile or sub-picture. The controller 2020 controls the generator 2030 in response to the detection of the detector 2010 to generate filler data 2040, for example, the above CABAC zero word, and appends it to the stream through the combiner 2050 to form an output stream 2060. The generation of the zero word can also be signaled back to the detector 2010, so that when the zero word is appended, the detector 2010 can continue to monitor whether the threshold is met, and once the threshold is met, the controller 2020 stops the generation of the zero word.
[0172] Operating on the principle just described Figure 7 and 14 The device represents an example of an image data encoding device, including:
[0173] Entropy Encoder ( Fig.14 ) for selectively encoding data items representing image data to be encoded by a first context-adaptive binary arithmetic coding (CABAC) encoding system or a second bypass encoding system so as to generate encoded binarized symbols;
[0174] The image data represents one or more pictures, each picture includes an output data unit, and the output data unit represents:
[0175] (i) one or more slices within a corresponding network abstraction layer (NAL) unit, each slice of a picture being decodable independently of any other slice of the same picture; and
[0176] (ii) zero or more tiles that define corresponding horizontal and vertical boundaries of the picture area and that are not constrained to be encapsulated in corresponding NAL units and that are decodable independently of other tiles of the same picture;
[0177] The entropy encoder is configured to generate an output data stream, the output data stream being subject to a constraint defining an upper limit on the number of binarized symbols, the constraint being representable by the byte size of any individual output data unit relative to the output data unit, wherein the entropy encoder is configured to apply the constraint to each output data unit representing a slice and to each output data unit representing a tile, and for each output data unit that does not satisfy the constraint, provide padding data so as to increase the byte size of the output data unit so as to satisfy the constraint.
[0178] For example, the second encoding system may be a binary arithmetic coding system (eg, bypass encoder / decoder 1420 ) using a fixed 50% probability context model.
[0179] As described above, the detector 2010 can be configured to detect whether the current output data unit satisfies the constraint at a predetermined stage relative to the encoding of the current output data unit; and the padding data generator 2030 can be configured to generate sufficient padding data and insert it into the current output data unit so that the output data unit including the inserted padding data satisfies the constraint.
[0180] The predetermined stage may be the end of encoding the current output data unit.
[0181] Operating on the principle just described Figure 7 and 14 The device represents an example of an image data encoding device, including:
[0182] an entropy encoder for selectively encoding data items representing image data to be encoded by a first context-adaptive binary arithmetic coding (CABAC) encoding system or a second bypass encoding system so as to generate encoded binarized symbols;
[0183] The image data represents one or more pictures of a sequence of pictures, each picture comprising two or more output data units representing respective sub-parts of the picture, each sub-part being decodable and reconstructible independently of the picture and other sub-parts in the sequence of pictures;
[0184] The entropy encoder is configured to generate an output data stream, the output data stream being subject to a constraint defining an upper limit on the number of binarized symbols, the constraint being representable by the byte size of any individual output data unit relative to the output data unit, wherein the entropy encoder is configured to apply the constraint to each output data unit and, for each output data unit that does not satisfy the constraint, provide padding data so as to increase the byte size of the output data unit so as to satisfy the constraint.
[0185] Fig.21 is a schematic flow chart showing a method for encoding image data, comprising:
[0186] selectively encoding (at step 2100) a data item representing image data to be encoded by a first context-adaptive binary arithmetic coding (CABAC) encoding system or a second bypass encoding system to generate encoded binarized symbols;
[0187] The image data represents one or more pictures of a sequence of pictures, each picture comprising two or more output data units representing respective sub-parts of the picture, each sub-part being decodable and reconstructible independently of the picture and other sub-parts in the sequence of pictures;
[0188] generating (at step 2110) an output data stream;
[0189] The generating step is subject to a constraint defining an upper limit on the number of binarized symbols, the constraint being expressible by any individual output data unit relative to the byte size of the output data unit, wherein the generating step comprises applying the constraint to each output data unit; and
[0190] For each output data unit that does not satisfy the constraints, padding data is provided (at step 2120) to increase the byte size of the output data unit so that the constraints are satisfied.
[0191] Coding profiles and minimum compression ratios
[0192] The following techniques may be applied in combination with any of the techniques discussed above, or may be applied independently of one or more of the techniques discussed above.
[0193] Fig. 22 Schematically shown is an example set of sub-portions 2210, 2220 of a picture 2200. For example, the sub-portions may be so-called sub-pictures or any other type of sub-portion discussed above.
[0194] Each sub-part has associated parameter data defining aspects of its encoding and decoding. Such parameter data may be provided once (or once for a picture sequence of at least several pictures, assuming repeated and identical sub-part partitioning between consecutive pictures), or in principle may be provided once for / at each picture for a particular sub-part contained in that particular picture. The parameter data may be provided as a parameter set 2300 ( Fig.23 ) or as a separate sub-part parameter set, for example, by means of sub-part header data associated with the sub-part indicating the encoding described for the sub-part. These may be transmitted in association with the coded data stream representing the picture data itself, for example, as header data, SEI (Supplemental Enhancement Information) messages, sequence parameter sets (which may contain information about the sub-part, in effect instructions on how to reconstruct the complete picture), etc.
[0195] One example aspect of encoding and decoding is the so-called minimum compression ratio (MCR), which has previously been associated with picture parameter data relating to the entire picture. The use of the MCR provides at least the following benefits: allowing the buffer (e.g., the compressed picture buffer on the decoder and / or encoder side) to be appropriately sized so that it does not overflow. In fact, in some examples, the MCR can be defined at least in part by the rate at which data is removed from the compressed picture buffer.
[0196] The MCR may be determined by, for example, a ratio indicating the denominator of the final fractional data amount (e.g., 2, indicating the compression ratio 1 / 2, or 1 / 2, indicating the same compression ratio) or as the maximum amount of data for a picture (e.g., × kilobytes, where the uncompressed version of the picture requires 2 × kilobytes). The specific choice of representation format has no technical significance for the current discussion.
[0197] In examples of the present disclosure, each sub-portion is subject to a corresponding minimum compression ratio. For example, such a corresponding MCR can be defined by parameter data associated with the sub-portion, based on a specific sub-portion in a specific picture, or based on a sub-portion defined across a sequence of pictures. In other words, associated data can be provided to define such an MCR on a sub-portion by sub-portion basis, and processing can be performed to achieve and / or comply with such an MCR, processing the processing on a sub-portion by sub-portion basis. This does not require that the corresponding MCRs must be different, just separately specified.
[0198] The use of a single MCR for each sub-portion is associated with the advantages discussed above, in that the sub-portions are independent of each other and may be decoded and buffered independently without concern that such buffers may overflow.
[0199] If a subsection does not meet its associated MCR, the encoder will have to make different choices to ensure that the threshold is met, such as using a higher quantization step size, or discarding coefficient data.
[0200] Another example technique for associating an MCR with a sub-portion is to allocate a portion of the total minimum amount of data applicable to the entire picture to each picture on the encoder and / or decoder side. For example, this can be performed based on a comparison of the number of pixels or samples in the sub-portion with the number of pixels or samples in the entire picture (e.g., proportionally). In some examples, this can be derived directly from the sub-portion size. In other examples, a value (e.g., n / 256ths, where n is between 1 and 256) can be associated with each sub-portion (e.g., in parameter or header data) and multiplied by the maximum amount of data associated with the picture. In this example, it is generally expected that the sum of the n values across the picture does not exceed 256.
[0201] In some other examples, the MCR may be defined by a so-called coding profile. In some examples, the device may operate according to a coding profile selected from a set of coding profiles, each coding profile defining at least one set of constraints on the image data to be encoded and / or the output data stream, wherein the image data encoding device is configured to apply the corresponding coding profile to each sub-portion of the picture independently of the coding profile applied to any other sub-portion of the picture.
[0202] A coding profile may define a set or all of the features associated with encoding and / or decoding. Typically, a coding profile might be used for a specific type of data, for example, HD (e.g., an image of 1920×1080 pixels) or 4K (e.g., a 3840×2160 image). However, at least in most cases, there is nothing to prevent, for example, a 4K profile from being used for a sub-portion of an HD image, or vice versa. Profiles and / or MCRs may simply be independent or different from each other. Using different profiles on a sub-portion by sub-portion basis allows the requirements for each sub-picture to be set independently and accurately for the set of coding profiles / levels / tiers that may ultimately be used. This may be because there are constraints on features such as the number of tiles and columns that are not used linearly over the current picture and therefore cannot be simply derived by examining the portion of the pixel represented by the sub-pixel.
[0203] Fig.24A data signal 2400 is schematically shown comprising corresponding data 2410 for a set of sub-portions of an image, each sub-portion having an associated corresponding MCR and / or coding profile as described above.
[0204] Fig.25 is a schematic flow chart illustrating a method, the method comprising:
[0205] compression-encoding (at step 2500) image data representing one or more pictures of a sequence of pictures, each picture comprising two or more output data units representing respective sub-portions of the picture, each sub-portion being decodable and reconstructible independently of the picture and other sub-portions in the sequence of pictures;
[0206] wherein the compression-encoding step is operable according to a coding profile selected from a set of coding profiles, each coding profile defining at least one set of constraints on the image data to be encoded and / or the output data stream, wherein the compression-encoding step comprises applying the corresponding coding profile to each sub-portion of the picture, independently of the coding profile applied to any other sub-portion of the picture.
[0207] according to Fig.25 The characteristic operation Figure 7 The device provides an example of an image data encoding device, including:
[0208] an image data encoder for applying compression coding to generate compressed image data representing one or more pictures of a sequence of pictures, each picture comprising output data units representing two or more sub-parts, the sub-parts being decodable and reconstructible independently of other sub-parts of the picture or of the sequence of pictures;
[0209] wherein the device is operable according to a coding profile selected from a set of coding profiles, each coding profile defining at least one set of constraints on image data to be encoded and / or an output data stream, wherein the image data encoding device is configured to apply the corresponding coding profile to each sub-portion of a picture, regardless of the coding profile applied to any other sub-portion of the picture.
[0210] Coding Example 1 - Modify Profile Definition
[0211] A.4.2 Profile-specific level restrictions
[0212] …
[0213] The variable MinCr is set equal to MinCrBase×MinCrScaleFactor÷HbrFactor.
[0214] For sub-picture index i, the variable SubPicSizelnSamplesY[j] is set equal to (subpic widthminus1[i]+1)×(subpic height minus1[i]+1)
[0215] and SubPictureFraction[j] is set equal to SubPicSizelnSamplesY[j] ÷ PicSizelnSamplesY
[0216] …
[0217] Each sub-image j The sum of the NumByteslnNalUnit variables of access unit 0 should be less than or equal to FormatCapabilityFactor×(Max( Sub PicSizenSamplesY[j],fR×MaxLumaSr× SubPictureFraction[j] )+MaxLumaSr×(AuCpbRemovalTime[0]—AuNominalRemovalTirne[0])× SubPictureFraction[j] )÷MinCr, for picture 0 Sub The value of PicSizelnSamplesY, where MaxLumaSr and FormatCapabilityFactor are the values specified in Table A.2 and Table A.3, respectively, for picture 0.
[0218] Each sub-image j The sum of the NumByteslnNalUnit variables of access unit n (n is greater than 0) should be less than or equal to FormatCapabilityFactor×MaxLumaSr×(AuCpbRemovalTime[n]-AuCpbRemovalTime[n-1])× SubPictureFraction[j] ÷MinCr, where MaxLumaSr and FormatCapabilityFactor are the values specified in Table A.2 and Table A.3, respectively, applicable to picture n.
[0219] Note that MaxLumaSr = maximum luminance sampling rate. FormatCapabilityFactor converts MaxLumaSr to raw bitrate. AuCpbRemovalTime[n] - AuCpbRemovalTime[n-1]) gives a time scale to convert the rate to bits per frame.
[0220] Coding Example 2 - SEI Semantics
[0221] D.3.8 Sub-picture level information SEI message semantics
[0222] One requirement for bitstream conformance is that a bitstream extracted from the j-th subpicture in the range of j to sps_num_subpics_minus1 (inclusive) and conforming to the profile with general_tier_flag equal to 0 and level equal to ref_level_idc[i] for i in the range of 0 to num_ref_level_minus1 (inclusive) shall comply with the following constraints for each bitstream conformance test specified in Annex C:
[0223] Ceil(256×SubPicSizeY[j]÷RefLevelFraction[i][j]) shall be less than or equal to MaxLumaPs, where MaxLumaPs is defined in Table A.1.
[0224] The value of Ceil(256×(subpic_width_minus1[j]+1)÷RefLevelFraction[i][j]) should be less than or equal to Sqrt(MaxLumaPs×8).
[0225] The value of Ceil(256×(subpic_height_minus1[j]+1)÷RefLevelFraction[i][j]) should be less than or equal to Sqrt(MaxLumaPs×8).
[0226] The value of SubPicNumTileCols[j] shall be less than or equal to MaxTileCols, and the value of SubPicNumTileRows[j] shall be less than or equal to MaxTileRows, where MaxTileCols and MaxTileRows are specified in Table A.1.
[0227] · The sum of the NumByteslnNalUnit variables corresponding to access unit 0 of the j-th sub-picture shall be less than or equal to In FormatCapabilityFactor×(Max(SubPicSizeY[i],fR×MaxLumaSr×RefLevelFraction [i][j]÷256)+MaxLumaSr×(AuCpbRemovalTime[0]—AuNominalRemovalTime[0])× RefLevelFraction[i][j])÷(256×MinCr), the value of SubPicSizelnSamplesY for picture 0, which In the example, MaxLumaSr and FormatCapabilityFactor are specified in Table A.2 and Table A.3 for Picture 0, respectively. Value, at level ref_level_idc[i], the derivation of MinCr is as shown in A.4.2.
[0228] The sum of the NumByteslnNalUnit variables corresponding to access unit n (n is greater than 0) of the j-th sub-picture should be less than is greater than or equal to FormatCapabilityFactor×MaxLumaSr×(AuCpbRemovalTime[n]— AuCpbRemovalTime[n-1])×RefLevelFraction[i][j]÷(256×MinCr), where MaxLumaSr and FormatCapabilitvFactor is the value specified in Table A.2 and Table A.3 respectively applicable to picture n, at level ref_ For level_idc[i], the derivation of MinCr is as shown in A.4.2.
[0229] In each case, an embodiment of the present disclosure is represented by computer software and a machine-readable non-transitory storage medium storing such computer software, and when the computer software is executed by a computer, the computer performs the corresponding method. In the case of a coding method, an embodiment of the present disclosure is represented by a data signal comprising coded data generated according to the corresponding method. Insofar as 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 an embodiment of the present disclosure. Similarly, a data signal comprising coded data generated according to the above method (whether or not contained on a non-transitory machine-readable medium) is also considered to represent an embodiment of the present disclosure. Similarly, a decoder configured to decode such a data signal represents an embodiment of the present disclosure.
[0230] 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.
[0231] The corresponding aspects and features are defined by the following numbered clauses:
[0232] 1. An image data encoding device, comprising:
[0233] an entropy encoder for selectively encoding data items representing image data to be encoded by a first context-adaptive binary arithmetic coding (CABAC) encoding system or a second bypass encoding system so as to generate encoded binarized symbols;
[0234] The image data represents one or more pictures, each picture comprising an output data unit representing:
[0235] (i) one or more slices within a corresponding network abstraction layer (NAL) unit, each slice of a picture being decodable independently of any other slice of the same picture; and
[0236] (ii) zero or more tiles that define corresponding horizontal and vertical boundaries of the picture area and are not constrained to be encapsulated in corresponding NAL units, and that are decodable independently of other tiles of the same picture;
[0237] The entropy encoder is configured to generate an output data stream, the output data stream being subject to a constraint defining an upper limit on the number of binarized symbols, the constraint being representable by the byte size of any individual output data unit relative to the output data unit, wherein the entropy encoder is configured to apply the constraint to each output data unit representing a slice and to each output data unit representing a tile, and for each output data unit that does not satisfy the constraint, provide padding data so as to increase the byte size of the output data unit so as to satisfy the constraint.
[0238] 2. An image data encoding device according to clause 1, wherein the second encoding system is a binary arithmetic coding system using a fixed 50% probability context model.
[0239] 3. An image data encoding device according to clause 1 or 2, wherein the constraint is defined by the following formula:
[0240] N<=K1×B+(K2×CU)
[0241] in:
[0242] N = the number of binarized symbols in the output data unit;
[0243] K1 is a constant;
[0244] B = number of coded bytes of the output data unit;
[0245] K2 is a variable that depends on the properties of the minimum-size coding unit adopted by the image data encoding device; and
[0246] CU = size of the picture, slice or tile represented by the output data unit, expressed as the number of coding units of the smallest size.
[0247] 4. An image data encoding device according to any of the preceding clauses, wherein the entropy encoder comprises:
[0248] a detector configured to detect, at a predetermined stage relative to encoding of the current output data unit, whether the current output data unit satisfies the constraint; and
[0249] A padding data generator is configured to generate sufficient padding data and insert it into a current output data unit so that the output data unit including the inserted padding data satisfies the constraint.
[0250] 5. An image data encoding device according to clause 4, wherein the predetermined stage is the end of encoding a current output data unit.
[0251] 6. A video storage, capture, transmission or reception device comprising a device according to any of the preceding clauses.
[0252] 7. A method for encoding image data, comprising:
[0253] selectively encoding a data item representing image data to be encoded by a first context-adaptive binary arithmetic coding (CABAC) encoding system or a second bypass encoding system to generate encoded binarized symbols;
[0254] The image data represents one or more pictures, each picture comprising:
[0255] (i) one or more slices within a corresponding network abstraction layer (NAL) unit, each slice of a picture being decodable independently of any other slice of the same picture; and
[0256] (ii) zero or more tiles that define respective horizontal and vertical boundaries of the picture area and are not constrained to be encapsulated in corresponding NAL units, and that are decodable independently of other tiles of the same picture;
[0257] Generate output data stream;
[0258] The generating step is subject to a constraint defining an upper limit on the number of binarized symbols, the constraint being representable by any individual output data unit relative to the byte size of the output data unit, wherein the generating step comprises applying the constraint to each output data unit representing a slice and each output data unit representing a tile; and
[0259] For each output data unit that does not satisfy the constraint, padding data is provided to increase the byte size of the output data unit so that the constraint is satisfied.
[0260] 8. Computer software which, when executed by a computer, causes the computer to perform the method according to clause 7.
[0261] 9. A machine-readable non-transitory storage medium storing computer software according to clause 8.
[0262] 10. A data signal comprising coded data generated according to the method of clause 7.
[0263] 11. An image data decoder configured to decode a data signal according to clause 10.
[0264] Further corresponding aspects and features are defined by the following numbered clauses:
[0265] 1. An image data encoding device, comprising:
[0266] an entropy encoder for selectively encoding data items representing image data to be encoded by a first context-adaptive binary arithmetic coding (CABAC) encoding system or a second bypass encoding system so as to generate encoded binarized symbols;
[0267] The image data represents one or more pictures of a sequence of pictures, each picture comprising two or more output data units representing respective sub-parts of the picture, each sub-part being decodable and reconstructible independently of the picture and other sub-parts in the sequence of pictures;
[0268] The entropy encoder is configured to generate an output data stream, the output data stream being subject to a constraint defining an upper limit on the number of binarized symbols, the constraint being representable by the byte size of any individual output data unit relative to the output data unit, wherein the entropy encoder is configured to apply the constraint to each output data unit and, for each output data unit that does not satisfy the constraint, provide padding data so as to increase the byte size of the output data unit so as to satisfy the constraint.
[0269] 2. An image data encoding device according to clause 1, wherein the second encoding system is a binary arithmetic coding system using a fixed 50% probability context model.
[0270] 3. An image data encoding device according to clause 1 or clause 2, wherein the constraint is defined by the following formula:
[0271] N<=K1×B+(K2×CU)
[0272] in:
[0273] N = the number of binarized symbols in the output data unit;
[0274] K1 is a constant;
[0275] B = number of coded bytes of the output data unit;
[0276] K2 is a variable that depends on the properties of the minimum-size coding unit adopted by the image data encoding device; and
[0277] CU = size of the sub-portion represented by the output data unit, expressed as the number of coding units of the smallest size.
[0278] 4. An image data encoding device according to any of the preceding clauses, wherein the entropy encoder comprises:
[0279] a detector configured to detect, at a predetermined stage relative to encoding of the current output data unit, whether the current output data unit satisfies the constraint; and
[0280] A padding data generator is configured to generate sufficient padding data and insert it into a current output data unit so that the output data unit including the inserted padding data satisfies the constraint.
[0281] 5. An image data encoding device according to clause 4, wherein the predetermined stage is the end of encoding a current output data unit.
[0282] 6. An image data encoding device according to any of the preceding clauses, wherein the sub-parts represent sub-parts from a list consisting of sub-pictures, slices and tiles, respectively.
[0283] 7. An image data encoding apparatus according to any one of the preceding clauses, wherein:
[0284] (i) A sub-image represents a region of an image;
[0285] (ii) a slice represents a portion of a picture, sub-picture, or tile in raster order and is constrained to be encapsulated in a corresponding Network Abstraction Layer (NAL) unit; and
[0286] (iii) A tile represents a portion of a picture, sub-picture, or slice, with corresponding horizontal and vertical boundaries defined in a grid arrangement, and is not constrained to be encapsulated in a corresponding NAL unit.
[0287] 8. An image data encoding device according to any of the preceding clauses, wherein each sub-portion undergoes a corresponding minimum compression ratio.
[0288] 9. An image data encoding device according to any of the preceding clauses, wherein the device is operable according to a coding profile selected from a set of coding profiles, each coding profile defining at least one set of constraints on the image data to be encoded and / or the output data stream, wherein the image data encoding device is configured to apply the corresponding coding profile to each sub-portion of a picture, regardless of the coding profile applied to any other sub-portion of the picture.
[0289] 10. An image data encoding apparatus according to clause 9, wherein the encoding described for a sub-part is defined by sub-part header data associated with the sub-part.
[0290] 11. A video storage, capture, transmission or reception device comprising a device according to any of the preceding clauses.
[0291] 12. An image data encoding device, comprising:
[0292] an image data encoder for applying compression coding to generate compressed image data representing one or more pictures of a sequence of pictures, each picture comprising output data units representing two or more sub-parts, the sub-parts being decodable and reconstructible independently of other sub-parts of the picture or of the sequence of pictures;
[0293] wherein the device is operable according to a coding profile selected from a set of coding profiles, each coding profile defining at least one set of constraints on image data to be encoded and / or an output data stream, wherein the image data encoding device is configured to apply the corresponding coding profile to each sub-portion of a picture, regardless of the coding profile applied to any other sub-portion of the picture.
[0294] 13. An image data encoding device according to clause 11, wherein the encoding profile defines at least a minimum compression ratio, and the image data encoder is configured to generate compressed image data subject to the corresponding minimum compression ratio applicable to each sub-portion.
[0295] 14. A video storage, capture, transmission or reception device comprising a device according to clause 12 or clause 13.
[0296] 15. A method for encoding image data, comprising:
[0297] selectively encoding a data item representing image data to be encoded by a first context-adaptive binary arithmetic coding (CABAC) encoding system or a second bypass encoding system to generate encoded binarized symbols;
[0298] The image data represents one or more pictures of a sequence of pictures, each picture comprising two or more output data units representing respective sub-parts of the picture, each sub-part being decodable and reconstructible independently of the picture and other sub-parts in the sequence of pictures;
[0299] Generate output data stream;
[0300] The generating step is subject to a constraint defining an upper limit on the number of binarized symbols, the constraint being expressible by any individual output data unit relative to the byte size of the output data unit, wherein the generating step comprises applying the constraint to each output data unit; and
[0301] For each output data unit that does not satisfy the constraint, padding data is provided to increase the byte size of the output data unit so that the constraint is satisfied.
[0302] 16. Computer software which, when executed by a computer, causes the computer to perform the method according to clause 15.
[0303] 17. A machine-readable non-transitory storage medium storing computer software according to clause 16.
[0304] 18. A data signal comprising coded data generated according to the method of clause 15.
[0305] 19. An image data decoder configured to decode a data signal according to clause 18.
[0306] 20. A method for encoding image data, comprising:
[0307] compression-encoding image data representing one or more pictures of a sequence of pictures, each picture comprising two or more output data units representing respective sub-portions of the picture, each sub-portion being decodable and reconstructible independently of the picture and other sub-portions in the sequence of pictures;
[0308] wherein the compression-encoding step is operable according to a coding profile selected from a set of coding profiles, each coding profile defining at least one set of constraints on the image data to be encoded and / or the output data stream, wherein the compression-encoding step comprises applying the corresponding coding profile to each sub-portion of the picture, independently of the coding profile applied to any other sub-portion of the picture.
[0309] 21. Computer software which, when executed by a computer, causes the computer to perform the method according to clause 20.
[0310] 22. A machine-readable non-transitory storage medium storing computer software according to clause 21.
[0311] 23. A data signal comprising encoded data generated according to the method of clause 20.
[0312] 24. A data signal comprising data corresponding to a set of sub-portions of an image, each sub-portion having an associated respective minimum compression ratio and / or coding profile.
[0313] 25. An image data decoder configured to decode a data signal according to clause 23 or clause 24.
Claims
1. An image data encoding device, comprising: an entropy encoder for selectively encoding data items representing image data to be encoded by a first context-adaptive binary arithmetic coding (CABAC) encoding system or a second bypass encoding system so as to generate encoded binarized symbols; The image data represents one or more pictures of a sequence of pictures, each picture comprising two or more output data units representing respective sub-parts of the picture, each sub-part being decodable and reconstructible independently of the sequence of pictures and other sub-parts in the picture; The entropy encoder is configured to generate an output data stream subject to a constraint defining an upper limit on the number of binarized symbols, the constraint being representable by a byte size of any individual output data unit relative to the output data unit, wherein the entropy encoder is configured to apply the constraint to each output data unit and, for each output data unit not satisfying the constraint, provide padding data in order to increase the byte size of the output data unit so as to satisfy the constraint, Wherein, the constraint is defined by the following formula: N<=K1×B+(K2×CU) in: N = the number of binarized symbols in the output data unit; K1 is a constant; B = the number of coded bytes of the output data unit; K2 is a variable that depends on the properties of the minimum-size coding unit adopted by the image data encoding device; and CU = size of the sub-portion represented by the output data unit, expressed as the number of coding units of minimum size.
2. The image data encoding device according to claim 1, wherein: The second bypass coding system is a binary arithmetic coding system using a fixed 50% probability context model.
3. The image data encoding device according to claim 1, wherein: The entropy encoder comprises: a detector configured to detect, at a predetermined stage of encoding of a current output data unit, whether the current output data unit satisfies the constraint; and A padding data generator is configured to generate sufficient padding data and insert the padding data into the current output data unit so that the output data unit including the inserted padding data satisfies the constraint.
4. The image data encoding device according to claim 3, wherein: The predetermined stage is the end of encoding the current output data unit.
5. The image data encoding device according to claim 1, wherein: The sub-parts each represent a sub-part from the list consisting of a sub-picture, a slice and a tile.
6. The image data encoding device according to claim 1, wherein: (i) a sub-picture, representing a region of the picture; (ii) a slice, which represents a portion of a picture, sub-picture, or tile in raster order and is constrained to be encapsulated within a corresponding Network Abstraction Layer (NAL) unit; as well as (iii) A tile refers to a portion of a picture, sub-picture, or slice that has corresponding horizontal and vertical boundaries defined in a grid arrangement and is not constrained to be encapsulated within a corresponding NAL unit.
7. The image data encoding device according to claim 1, wherein: Each subsection experiences a corresponding minimum compression ratio.
8. The image data encoding device according to claim 1, wherein: The device is capable of operating according to a coding profile selected from a set of coding profiles, each coding profile defining at least one set of constraints on the image data to be encoded and / or the output data stream, wherein the image data encoding device is configured to apply the corresponding coding profile to each sub-portion of the picture, regardless of the coding profile applied to any other sub-portion of the picture.
9. The image data encoding device according to claim 8, wherein: The encoding for a sub-part description is defined by the sub-part header data associated with that sub-part.
10. A video storage, capture, transmission or reception device, comprising the device according to claim 1.
11. A method for encoding image data, comprising: selectively encoding a data item representing image data to be encoded by a first context-adaptive binary arithmetic coding (CABAC) encoding system or a second bypass encoding system to generate encoded binarized symbols; The image data represents one or more pictures of a sequence of pictures, each picture comprising two or more output data units representing respective sub-parts of the picture, each sub-part being decodable and reconstructible independently of other sub-parts in the sequence of pictures and the picture; and Generate output data stream; The generating step is subject to a constraint defining an upper limit on the number of binarized symbols, said constraint being expressible by any individual output data unit relative to the byte size of the output data unit, wherein said generating step comprises applying said constraint to each output data unit; and for each output data unit that does not satisfy the constraint, providing padding data to increase the byte size of the output data unit so that the constraint is satisfied, Wherein, the constraint is defined by the following formula: N<=K1×B+(K2×CU) in: N = the number of binarized symbols in the output data unit; K1 is a constant; B = the number of coded bytes of the output data unit; K2 is a variable that depends on the properties of the minimum-size coding unit adopted by the image data encoding device; and CU = size of the sub-portion represented by the output data unit, expressed as the number of coding units of minimum size.
12. A computer program product comprising a computer program, which, when executed by a processor, causes the processor to perform the method according to claim 11.
13. A computer-readable storage medium storing a computer program thereon, wherein when the computer program is executed by a processor, the computer program causes the processor to perform the method according to claim 11.
14. An image data decoding device, comprising: a decoder configured to selectively decode data items representing image data to be decoded by a first context-adaptive binary arithmetic coding (CABAC) decoding system or a second bypass decoding system to produce decoded binarized symbols based on the encoded image data stored in a non-transitory storage medium in communication with the image data decoding device, wherein the image data represents one or more pictures of a sequence of pictures, each picture comprising two or more data units representing respective sub-parts of the picture, each sub-part being decodable and reconstructible independently of the sequence of pictures and other sub-parts in the picture, and wherein the image data is subject to a constraint defining an upper limit on the number of binarized symbols, the constraint being capable of being represented by any individual data unit relative to the byte size of the data unit, wherein the constraint is applied to each data unit, and for each data unit that does not satisfy the constraint, padding data is provided to increase the byte size of the output data unit so as to satisfy the constraint, the constraint being defined by the following formula: N<=K1×B+(K2×CU) in: N = the number of binarized symbols in the data unit; K1 is a constant; B = the number of bytes encoded in the data unit; K2 is a variable that depends on the properties of the minimum-sized coding unit; and CU = the size of the sub-portion represented by the data unit, expressed as the number of coding units of the smallest size; and A circuit is configured to output decoded image data.
15. A method for decoding image data, comprising: selectively decoding data items representing image data to be decoded by a first context-adaptive binary arithmetic coding (CABAC) decoding system or a second bypass decoding system to produce decoded binarized symbols based on the encoded image data stored in a non-transitory storage medium in communication with the image data decoding device, wherein the image data represents one or more pictures of a sequence of pictures, each picture comprising two or more data units representing respective sub-parts of the picture, each sub-part being decodable and reconstructible independently of the sequence of pictures and other sub-parts in the picture, and wherein the image data is subject to a constraint defining an upper limit on the number of binarized symbols, the constraint being capable of being represented by any individual data unit relative to the byte size of the data unit, wherein the constraint is applied to each data unit, and for each data unit that does not satisfy the constraint, padding data is provided to increase the byte size of the output data unit so as to satisfy the constraint, the constraint being defined by the following formula: N<=K1×B+(K2×CU) in: N = the number of binarized symbols in the data unit; K1 is a constant; B = the number of bytes encoded in the data unit; K2 is a variable that depends on the properties of the minimum-sized coding unit; and CU = the size of the sub-portion represented by the data unit, expressed as the number of coding units of the smallest size; and The decoded image data is output.
