Image data encoding device and method, video storage, capture, and transmission and reception device, machine-readable non-transient storage medium, and image data decoding method
Patent Information
- Application Number
- JP2024215109
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2019-12-31
- Filing Date
- 2024-12-10
- Publication Date
- 2025-03-05
- Estimated Expiration
- Not applicable · inactive patent
Smart Images

Figure 2025029202000001_ABST
Abstract
Description
[Technical field]
[0001] This disclosure relates to image data encoding and decoding. [Background technology]
[0002] The "Background Art" section of this specification is intended to generally describe the background of this application. The inventors' techniques, to the extent described in this Background Art section, are not admitted, expressly or impliedly, as prior art to this application, as are aspects of the description that should not be considered prior art if they were not prior art at the time of filing this application.
[0003] There are several video data encoding and decoding systems that convert video data into a frequency domain representation, quantize the resulting frequency domain coefficients, and then apply some kind of entropy coding to the quantized coefficients, thereby compressing the video data. By applying corresponding decoding or decompression techniques, the original video data is reconstructed and restored.
[0004] High Efficiency Video Coding (HEVC), also known as H.265 or MPEG-H Part 2, has been proposed as a successor to H.264 / MPEG-4 AVC. It aims to improve the video quality of HEVC while doubling the data compression ratio of H.264, and to make H.264 scalable in the range of resolutions from 128x96 to 7680x4320 pixels, which corresponds to a bitrate of roughly 128 Kbit / s to 800 Mbit / s. Summary of the Invention [Problem to be solved by the invention]
[0005] The present disclosure aims to address or mitigate problems with the above processes. [Means for solving the problem]
[0006] The present disclosure provides a method for implementing a coding scheme comprising: an entropy encoder for selectively encoding data items representing image data to be encoded by a first, context-adaptive binary arithmetic coding (CABAC), coding system or a second, bypass, coding system to generate encoded binarized symbols; The image data represents one or more pictures, each picture comprising: (i) one or more slices within each Network Abstraction Layer (NAL) portion; (ii) zero or more tiles, each defining respective horizontal and vertical boundaries of a picture region and unconstrained to be encapsulated within a respective NAL unit; Represents Output Data Unit Equipped with each slice of a picture is decodable independently of other slices of the same picture, and the tiles are decodable independently of other tiles of the same picture; The entropy encoder is Output Data Unit Any individual Output Data Unit and configured to generate an output data stream that obeys a constraint defining an upper bound on the number of binarized symbols that can be represented by The entropy encoder is configured to satisfy the constraints. Output Data Unit Each slice represents an increasing size in bytes of Output Data Unit and each representing a tile Output Data Unit Apply the above constraints to each Output Data Unit configured to provide padding data to An image data encoding device is provided.
[0007] The present disclosure provides a method for implementing a method for coding an image data item, comprising: selectively encoding data items representing image data to be coded by a first, context-adaptive binary arithmetic coding (CABAC), coding system or a second, bypass, coding system to generate coded binarized symbols; The image data represents one or more pictures, each picture comprising: (i) one or more slices within each Network Abstraction Layer (NAL) portion; (ii) zero or more tiles, each defining respective horizontal and vertical boundaries of a picture region and unconstrained to be encapsulated within a respective NAL unit; Including, each slice of a picture is decodable independently of other slices of the same picture, and the tiles are decodable independently of other tiles of the same picture; the Output Data Unit Any individual Output Data Unit generating an output data stream subject to a constraint defining an upper bound on the number of binarized symbols that can be represented by In order to satisfy the above constraints, Output Data Unit Each slice represents an increasing size in bytes of Output Data Unit and each representing a tile Output Data Unit Apply the above constraints to each Output Data Unit Provide padding data to A method for encoding image data is also provided.
[0008] The present disclosure provides a method for implementing a coding scheme comprising: providing an entropy encoder for selectively encoding data items representing image data to be encoded by a first, context-adaptive binary arithmetic coding (CABAC), coding system or a second, bypass, coding system to generate encoded binarized symbols; The image data represents one or more pictures of a sequence of pictures, each picture being made up of two or more sub-pictures representing respective subsections of the picture. Output Data Unit Including, each subsection is decodable and reconstructable independently of other subsections in the picture and in the sequence of pictures; The entropy encoder may then calculate, in order to satisfy the constraint, Output Data Unit In contrast, Output Data UnitThe above constraints are applied to each Output Data Unit and providing padding data, Output Data Unit Any individual Output Data Unit and generating an output data stream according to the above constraints defining an upper limit on the number of binarized symbols, represented by An image data encoding device is further provided.
[0009] The present disclosure provides an image data encoding device comprising an image data encoder that applies compression encoding to generate compressed image data representing one or more pictures of a sequence of pictures, the apparatus comprising: Each picture represents two or more subsections Output Data Unit Equipped with said subsection being decodable and reconstructable independently of other subsections of the picture or of the sequence of pictures; the image data encoding device being operable according to an encoding profile selected from a set of encoding profiles, each encoding profile defining at least a set of constraints on the image data to be encoded and / or on the output data stream; The image data encoding device is configured to apply a respective encoding profile to each subsection of a picture, independent of encoding profiles applied to other subsections of that picture. An image data encoding device is further provided.
[0010] The present disclosure provides a method for implementing a coding scheme that includes the steps of selectively encoding data items representing image data to be encoded by a first, context-adaptive binary arithmetic coding (CABAC), coding system or a second, bypass, coding system to generate encoded binarized symbols; generating an output data stream; In order to satisfy the constraints, Output Data Unit For each byte that does not satisfy the above constraint, Output Data Unitproviding padding data to Including, The image data represents one or more pictures of a sequence of pictures, each picture being made up of two or more sub-pictures representing respective sub-sections of the picture. Output Data Unit Including, each subsection is decodable and reconstructable independently of other subsections in the picture and in the sequence of pictures; The generating step is Output Data Unit Any individual Output Data Unit and the generating step is subject to a constraint defining an upper limit on the number of binary symbols that can be represented by each Output Data Unit including applying the above constraints to A method for encoding image data is also provided.
[0011] The present disclosure provides a method for compressing and encoding image data representing one or more pictures of a sequence of pictures, comprising: Each picture is made up of two or more images representing respective sub-subsections of the picture above. Output Data Unit each subsection being decodable and reconstructable independently of other subsections in the picture and picture sequence; the compressing and encoding step is operable in accordance with an encoding profile selected from a set of encoding profiles; Each encoding profile defines at least a set of constraints on the image data to be encoded and / or on the output data stream; The step of compression encoding includes applying a respective encoding profile to each subsection of a picture independent of the encoding profile applied to other subsections of that picture. A method for encoding image data is also provided.
[0012] Further respective aspects and features of the present disclosure are defined in the appended claims.
[0013] It should be understood that the above general description and the following detailed description are examples of the present technology and are not intended to limit the present technology. [Brief description of the drawings]
[0014] [Figure 1] FIG. 1 is a schematic diagram showing an audio / video (A / V) data transmission and reception system that compresses and decompresses video data. [Diagram 2] FIG. 1 is a schematic diagram illustrating a video display system with video data decompression. [Diagram 3] FIG. 1 is a schematic diagram illustrating an audio / video storage system that compresses video data and decompresses video data. [Figure 4] FIG. 1 is a schematic diagram showing a video camera that performs compression of video data. [Diagram 5] FIG. 2 is a schematic diagram showing a storage medium. [Figure 6] FIG. 2 is a schematic diagram showing a storage medium. [Figure 7] 1 is a schematic diagram showing a video data compression and decompression device; [Figure 8] FIG. 2 is a schematic diagram showing a prediction unit. [Figure 9] FIG. 2 is a schematic diagram showing a partially encoded image; [Figure 10] FIG. 1 is a schematic diagram illustrating a set of possible intra-prediction directions. [Figure 11] FIG. 2 is a schematic diagram showing a set of prediction modes. [Figure 12] FIG. 13 is a schematic diagram illustrating another set of prediction modes. [Figure 13] FIG. 2 is a schematic diagram illustrating an intra-prediction process. [Figure 14] FIG. 1 is a schematic diagram showing a CABAC encoder. [Figure 15] FIG. 1 is a schematic diagram illustrating the CABAC encoding technique. [Figure 16] FIG. 1 is a schematic diagram illustrating the CABAC encoding technique. [Figure 17] FIG. 1 is a schematic diagram illustrating the CABAC decoding technique. [Figure 18] FIG. 1 is a schematic diagram illustrating the CABAC decoding technique. [Figure 19] FIG. 2 is a schematic diagram showing a segmented image. [Figure 20] FIG. 1 is a schematic diagram showing one apparatus. [Figure 21] 1 is a schematic flow chart illustrating one method. [Figure 22] FIG. 2 is a schematic diagram showing a set of subsections of a picture. [Diagram 23] FIG. 2 is a schematic diagram showing a set of sub-picture parameter data. [Figure 24] FIG. 2 is a schematic diagram showing a data signal. [Diagram 25] 1 is a schematic flow chart illustrating one method. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0015] A complete understanding of the present technology and many of its advantages will be readily appreciated by considering the following detailed description in conjunction with the accompanying drawings, in which:
[0016] Referring now to the drawings, FIGS. 1 to 4 show schematic diagrams of an apparatus or system that utilizes a compression device and / or a decompression device according to each embodiment of the present technology described below.
[0017] All of the data compression and / or decompression devices described below may be implemented in hardware or as programmable hardware, such as an Application Specific Integrated Circuit (ASIC) or a Field Programmable Gate Array (FPGA), or a combination thereof, or in software running on a general-purpose data processing device, such as a general-purpose computer. For embodiments implemented in software and / or firmware, it will be understood that such software and / or firmware, as well as non-transitory data recording media on which such software and / or firmware is stored or provided, are considered embodiments of the present technology.
[0018] FIG. 1 is a schematic diagram showing an audio / video data transmission / reception system that performs video data compression and video data decompression.
[0019] An input audio / video signal 10 is provided to a video data compression device 20 which compresses at least the video element of the audio / video signal 10 and is transmitted along a transmission route 30, e.g. a cable, optical fiber, wireless link, etc. The compressed signal is processed by a decompressor 40 which provides an output audio / video signal 50. On the return path, a compressor 60 compresses the audio / video signal which is transmitted along the transmission route 30 to a decompressor 70.
[0020] Thus, compressor 20 and decompressor 70 may constitute one node of a transmission link, and decompressor 40 and compressor 60 may constitute another node of the transmission link. Of course, if the transmission link is unidirectional, then only one of these nodes will require a compressor and only the other will require a decompressor.
[0021] 2 is a schematic diagram of a video display system that performs video data decompression. Specifically, a compressed audio / video signal 100 is processed by a decompressor 110, which provides a decompressed signal that can be displayed on a display device 120. The decompression device 110 may be formed integrally with the display device 120, for example, by being provided in the same housing as the display device 120. Alternatively, the decompression device 110 may be provided (for example) as a so-called set-top box (STB). Note that the term "set-top" does not imply that the box must be placed in a particular orientation or position relative to the display device 120. The term is simply used in the art to denote a device that can be connected to a display as a peripheral.
[0022] 3 is a schematic diagram of an audio / video storage system that compresses and decompresses video data. An input audio / video signal 130 is provided to a compressor 140 which produces a compressed signal which is stored in a storage device 150, for example a magnetic disk drive, optical disk drive, magnetic tape drive, or a solid state storage device such as semiconductor memory or other storage device. During playback, the compressed data is read from the storage device 150 and sent to a decompressor 160 for decompression, thereby providing an output audio / video signal 170.
[0023] It will be appreciated that compressed or encoded signals and storage media, such as non-transitory machine-readable storage media, that store the signals are considered embodiments of the technology.
[0024] Figure 4 is a schematic diagram of a video camera that compresses video data. In Figure 4, an image capture device 180, such as a Charge Coupled Device (CCD) image sensor and associated control and readout electronics, generates a video signal that is sent to a compression device 190. One or more microphones 200 generate audio signals that are sent to the compression device 190. The compression device 190 generates a compressed audio / video signal 210 (collectively represented as stage 220) for storage and / or transmission.
[0025] The techniques described below are primarily directed to the compression and decompression of video data, and it will be appreciated that many existing techniques may be used to generate compressed audio / video signals in conjunction with the video data compression techniques described below to effect compression of audio data. Therefore, compression of audio data will not be discussed separately, and it will also be appreciated that the data rates associated with video data are typically much higher than the data rates associated with audio data (whether compressed or uncompressed), particularly in broadcast quality video data. It will therefore be appreciated that uncompressed audio data can be added to compressed video data to result in a compressed audio / video signal. Furthermore, although the embodiments of the present invention (see Figures 1-4) relate to audio / video data, it will be appreciated that the techniques described below may also be used in systems that simply process (i.e. compress, decompress, store, display and / or transmit) video data. That is, the embodiments do not necessarily relate to audio data processing, but may also be applied to the compression of video data.
[0026] Figure 4 thus provides an example of a video capture device including an image sensor and an encoding device of the type described below, and Figure 2 thus provides an example of a decoding device of the type described below, and a display device on which the decoded image is output.
[0027] The combination of Figures 2 and 4 can provide a video capture device that includes an image sensor 180 and an encoding device 190, a decoding device 110, and a display device 120 where the decoded images are output.
[0028] Figures 5 and 6 are schematic diagrams illustrating storage media for storing (for example) compressed data generated by apparatus 20, 60, compressed data input to apparatus 110, or storage media or stages 150, 220. Figure 5 is a schematic diagram illustrating a disk-type storage medium, such as a magnetic disk or optical disk. Figure 6 is a schematic diagram illustrating a solid-state storage medium, such as a flash memory. Note that Figures 5 and 6 also illustrate examples of non-transitory device-readable storage media for storing computer software that, when executed by a computer, causes the computer to perform one or more of the methods described below.
[0029] Thus, the above arrangements provide examples of video storage, capture, transmission and reception devices embodying any of the present techniques.
[0030] FIG. 7 is a schematic diagram of a video data compression and decompression device.
[0031] The controller 343 controls the overall operation of the video data compression and decompression device, and in particular the compression mode, by acting as a selector to select various operational aspects such as block size and shape, thereby controlling the trial encoding process. The control unit 343 also controls whether the video data is encoded lossily or not. The control unit 343 may be considered as forming part of an image encoder or image decoder (as the case may be). Successive images of the input video signal 300 are provided to a summing unit 310 and to an image prediction unit 320, which will be described in more detail below with reference to Figure 8. An image encoder or image decoder (as the case may be) may use features from the apparatus shown in Figure 7 together with the intra image predictor of Figure 8. However, the image encoder or image decoder does not necessarily require all the features shown in Figure 7.
[0032] The adder 310 effectively performs a subtraction (negative addition) operation, receiving the input video signal 300 on its "+" input and the output of the image predictor 320 on its "-" input, thereby subtracting the predicted image from the input image, resulting in a so-called residual image signal 330, which represents the difference between the actual image and the predicted image.
[0033] One reason for generating a residual image signal is the following: the described data coding techniques, i.e. techniques applied to the residual image signal, tend to work more efficiently when there is less "energy" in the image being coded, where the term "efficient" refers to the small amount of coded data produced. For a particular image quality level, it is desirable (and considered "efficient") to produce as little data as possible. The "energy" of a residual image refers to the amount of information contained in the residual image: if the predicted image and the actual image were identical, the difference between these two images (i.e., the residual image) would contain zero information (zero energy) and could be very easily coded into a small amount of coding data. In general, if the prediction process can be performed reasonably well, such that the content of the predicted image is similar to the content of the image to be encoded, it is expected that the residual image data will contain less information (less energy) than the input image and can be easily encoded into a smaller amount of encoding data.
[0034] The remainder of the apparatus, which operates as an encoder (encoding the residual or difference image), will now be described. The residual image data 330 is fed to a transform section 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. Also, the use of the DCT is merely an example of one possible configuration. Other transformations could be used, such as the Discrete Sine Transform (DST). Transforms may be combined, such as one transformation followed (directly or indirectly) by another. The choice of the transformation scheme may be decided explicitly and / or may depend on side information used to configure the encoder and decoder.
[0035] The output of the transform unit 340, i.e. (in one example) a set of DCT coefficients for each transform block in the image data, is provided to a quantizer unit 350. A variety of quantization techniques are well known in the field of video data compression, ranging from simple multiplication by a quantization scaling factor to the application of complex look-up tables under the control of a quantization parameter. They generally serve two purposes: first, the quantization process reduces the possible values that the transform data can take. Second, the quantization process increases the likelihood that the transformed data will have a zero value, allowing the entropy coding process (described below) to be more efficient in generating small amounts of compressed video data.
[0036] A data scanning process is applied by a scanner 360. The purpose of the scanning process is to reorder the quantized transformed data in order to group together as many non-zero quantized transformed coefficients as possible, and of course, to group together as many zero-valued coefficients as possible. These functions allow the efficient application of so-called run-length coding or similar techniques. The scanning process thus involves selecting coefficients from the quantized transformed data, and in particular blocks of coefficients that correspond to blocks of transformed and quantized image data, in a "scan order" such that (a) all coefficients are selected once as part of the scan, and (b) the scan can effect any desired reordering. One example of a scan order that produces useful results is a diagonal order, such as the so-called Up-right Diagonal scan order.
[0037] The scanned coefficients are then sent to an entropy encoder (EE) 370. Again, various entropy coding techniques may be performed. Two examples are variations of the so-called Context Adaptive Binary Coding (CABAC) system and variations of the so-called Context Adaptive Variable-Length Coding (CAVLC) system. CABAC is generally considered efficient. Studies have shown that the amount of coded output data in CABAC is 10-20% less than CAVLC for comparable image quality. However, CAVLC is believed to exhibit a much lower level of complexity (in terms of implementation) than CABAC. Note that although the scanning and entropy coding processes are shown as separate processes, in practice they can be combined or treated together, i.e., data can be read into the entropy encoder in scan order, as can the inverse processes described below.
[0038] The output of the entropy encoder 370 provides a compressed output video signal 380, together with additional data (described above and / or below), for example, that defines how the prediction unit 320 generates the predicted image.
[0039] However, since the operation of the predictor 320 itself depends on the decompressed compressed output data, a return path 390 is also provided.
[0040] The reason for this feature is as follows: At an appropriate stage in the decompression process (described below), decompressed residual data is generated. This decompressed residual data needs to be added to the predicted image to generate the output image (because the original residual data was the difference between the input image and the predicted image). To make this process equivalent on the compression and decompression side, the predicted image generated by the predictor 320 should be the same during the compression and decompression processes. Of course, the device does not have access to the original input image at decompression time, it can only access the decompressed image, so at compression time, the predictor 320 bases its predictions (at least for inter-image coding) on the decompressed compressed image.
[0041] The entropy encoding process performed by entropy encoder 370 is considered (at least in some instances) to be "lossless," i.e., the data originally provided to entropy encoder 370 can be replaced with exactly the same data. Thus, in such instances, a return pass can be implemented prior to the entropy encoding stage. Indeed, the scanning process performed by the scanner 360 is also considered to be lossless and in this embodiment the return path 390 runs from the output of the quantizer 350 to the input of the supplemental inverse quantizer 420. If a stage is lossy or potentially lossy, then this stage (and vice versa) may be included in the feedback loop formed by the return path. For example, the entropy encoding stage may, at least in principle, be made lossy, for example by techniques that encode bits in parity information. In such instances, the entropy encoding and decoding must form part of a feedback loop.
[0042] In general, entropy decoder 410, inverse scan unit 400, inverse quantizer unit 420, and inverse transform unit or circuit 430 provide the inverse functions of entropy encoder 370, scanner unit 360, quantizer unit 350, and transform unit 340, respectively. The compression process will continue here; the process for decompressing the input compressed video signal will be described separately below.
[0043] In the compression process, the scanned coefficients are sent from the quantizer 350 via a return path 390 to an inverse quantizer 420 which performs the inverse operation of the scanner 360. The inverse quantization and inverse transform processes are performed by the inverse quantizer 420 and the inverse transformer 430 to generate a compressed-decompressed residual image signal 440.
[0044] The image signal 440 is added to the output of the prediction unit 320 at adder 450 to produce a reconstructed output image 460. This forms one input to the image prediction unit 320, as will be described below.
[0045] The process applied to decompress a received compressed video signal 470 will now be described. The compressed video signal 470 is first supplied to an entropy decoder 410, which in turn supplies it to an inverse scanning unit 400, an inverse quantization unit 420, and an inverse transform unit 430. It is then added to the output of the image prediction unit 320 by an adder 450. Thus, at the decoder side, the decoder reconstructs the residual image and decodes each block by applying it (block by block) to the predicted image (by adder 450). In brief, the output 460 of adder 450 forms the output decompressed video signal 480. In practice, further filtering may optionally be applied before the signal is output (e.g., using filter 560), which is shown in Figure 8. In Figure 7, which shows the overall configuration in comparison with Figure 8, filter 560 has been omitted for clarity.
[0046] The apparatus shown in Figures 7 and 8 can operate as a compression (encoding) apparatus or a decompression (decoding) apparatus. The functions of the two types of apparatus are substantially overlapped. The scanner 360 and the entropy encoder 370 are not used in the decompression mode. The operation of the predictor 320 (described in more detail below) and other sections depends on the mode and parameter information contained in the received compressed bitstream, and they do not generate this information themselves.
[0047] FIG. 8 is a schematic diagram illustrating the generation of a predicted image, and in particular the operation of the image predictor 320.
[0048] Two basic prediction modes are performed by the image prediction unit 320: the so-called intra-image prediction and the so-called inter-image prediction or Motion-Compensated (MC) prediction. On the encoder side, these predictions each involve finding a prediction direction for the current block to be predicted and generating a predictive block of samples depending on other samples (in the same (intra) or another (inter) image). The adder unit 310 or 450 respectively encodes or decodes the block by encoding or decoding the difference between the predicted block and the actual block.
[0049] (At the decoder side or inverse decoding side of the encoder, this detection of the prediction direction may be in response to data associated with the data encoded by the encoder indicating which direction was used by the encoder, or the detection of the prediction direction may be in response to the same factors determined by the encoder.)
[0050] Intra-image prediction is based on the prediction of the content of image blocks or regions on data taken from within the same image. This corresponds to the so-called I-frame coding in other video compression techniques. However, in contrast to I-frame coding, where the whole image is coded by intra-coding, in this embodiment the choice between intra-coding and inter-coding can be made on a block-by-block basis. In other embodiments, the choice is still made on a picture-by-picture basis.
[0051] Motion compensated prediction is an example of inter-image prediction, where motion information is used that seeks to define the source, in other adjacent or nearby images, of the image details to be coded in the current image. Thus, in an ideal case, the content of a block of image data in a predicted image can be very easily coded as a reference (a motion vector) that points to a corresponding block in the same or slightly different position in an adjacent image.
[0052] The technique known as "block copy" prediction is in some ways a hybrid of the two above predictions, as it uses a vector that indicates a block of samples, displaced from the current predicted block within the same image, that should be copied to generate the current predicted block.
[0053] Returning to Figure 8, there are shown two image prediction configurations (corresponding to intra image prediction and inter image prediction) whose prediction results are selected by multiplication unit 500 under control of mode signal 510 (e.g. in control unit 343) to provide a block of predicted images for supply to adders 310 and 450. The selection is made on the basis of which choice results in the least "energy" (which, as discussed above, may be thought of as the amount of information that needs to be coded), and is signalled to the decoder in the coded output data stream. In this regard, image energy can be found, for example, by trial subtracting regions of the two versions of the predicted image from the input image, squaring each pixel value of the difference image, summing the multiplication values, and identifying which of the two versions has a lower average multiplication value of the difference image associated with that image region. In another example, trial encoding can be performed for each choice or for each possible choice, and the choice is made depending on the cost of each possible choice in terms of either or both of the number of bits required for encoding and the distortion to the image.
[0054] In an intra prediction system, the actual prediction is made based on the image blocks received as part of the signal 460, i.e. the prediction is made based on the encoded-decoded image blocks so that the exact same prediction can be made in the decompressor. However, data can also be derived from the input video signal 300 and the operation of the intra image predictor 530 can be controlled by the intra mode selector 520.
[0055] In inter-image prediction, a motion compensated (MC) prediction unit 540 uses motion information, e.g., motion vectors, derived from the input video signal 300 by a motion estimation unit 550. The motion compensated prediction unit 540 applies these motion vectors to the reconstructed image 460 to generate blocks of inter-image prediction.
[0056] Thus, the intra-image prediction unit 530 and the motion compensation prediction unit 540 (operating together with the estimation unit 550) respectively operate as a detection unit that detects the prediction direction for the current block to be predicted, and as a generation unit that generates a prediction block of samples (which forms part of the prediction result sent to the addition units 310 and 450) depending on other samples defined by the prediction direction.
[0057] We now turn to the processing applied to the signal 460. First, the signal 460 is optionally filtered by a filter unit 560, which will be described in more detail below. In this processing, a "deblocking" filter is applied to eliminate, or at least reduce, the effect on the block-based processing and subsequent operations performed by the transform unit 340. A Sample Adaptive Offsetting (SAO) filter may also be used. An adaptive loop filter is optionally applied using coefficients obtained by processing the reconstructed signal 460 and the input video signal 300. The adaptive loop filter is a type of filter that applies adaptive filter coefficients to the data to be filtered using known techniques. That is, the filter coefficients may vary based on various factors. Data defining which filter coefficients to use is inserted into part of the encoded output data stream.
[0058] When the device is operating as a decompressor, the filtered output from filter 560 actually forms the output video signal 480. This signal is stored in one or more image or frame stores 570. The storage of successive images is required for the motion compensated prediction process, in particular for the generation of motion vectors. To conserve the necessary memory, the images stored in image store 570 may be kept in compressed form and then decompressed for use in the generation of motion vectors. Any known compression / decompression system may be used for this particular purpose. The stored image may be sent to an interpolation filter 580 which generates a higher resolution stored image. In this example, intermediate samples (sub-samples) are generated such that the resolution of the interpolated image output by the interpolation filter 580 is four times (in each dimension) the image stored in the image store 570 if the luminance channel is 4:2:0, and eight times (in each dimension) the image stored in the image store 570 if the chrominance channels are 4:2:0. The interpolated image is sent as input to the motion estimation unit 550 and the motion compensated prediction unit 540.
[0059] We now describe how to partition an image for compression purposes. At a basic level, an image to be compressed can be thought of as an array of blocks or regions of samples. Such partitioning of an image into blocks or regions can be accomplished using decision trees such as those described in Bross et al., High Efficiency Video Coding (HEVC) text specification draft 6, JCTVC-H1003_d0 (November 2011), the contents of which are incorporated herein by reference. In some examples, the resulting blocks or regions have different sizes and, in some cases, shapes that generally follow the arrangement of image features in the image due to the decision tree. This alone can improve coding efficiency, since samples that represent or follow similar image features tend to be grouped together due to such an arrangement. In some examples, square blocks or regions of different sizes (e.g., from 4x4 samples to, for example, 64x64, or larger blocks) are available for selection. Other configurations may use blocks or regions of different shapes, such as rectangular blocks (e.g., vertically or horizontally oriented). Other non-square and non-rectangular blocks are also encompassed. As a result of such a division of the image into blocks or regions, (at least in this example) each sample of the image is assigned to one, and even only one, such block or region sample.
[0060] We now turn to the intra prediction process. In general, intra prediction involves generating a prediction of a current block of samples from previously coded and decoded samples in the same image.
[0061] 9 is a schematic diagram of a partially coded image 800, where the image is coded block by block from the top left to the bottom right. An example of a block that is partway through coding in the processing of the entire image is shown as block 810. The upper shaded region 820 to the left of block 810 has already been coded. Any of the shaded regions 820 can be used for intra-image prediction of the content of block 810, but not the unshaded regions below.
[0062] In some examples, an image is coded block-wise such that larger blocks (called Coding Units (CUs)) are coded in an order such as that described with reference to Figure 9. For each CU, it may be processed as a set of two or more smaller blocks or Transform Units (TUs) (depending on the block partitioning process performed). This provides a hierarchical coding order in which the image is coded CU-wise. Each CU is potentially coded on a TU-by-TU basis. Note that for each TU (the largest node in the tree structure of block division) in a current Coding Tree Unit (CTU), the above-mentioned hierarchical coding order (CU-by-CU, then TU-by-TU) means that there may be previously coded samples in the current CU that are available for coding the TU. These samples may be, for example, at the top right or bottom left of the TU.
[0063] Block 810 represents a CU. As mentioned above, for intra-image prediction processing, this may be subdivided into smaller units of a set. An example of a current TU 830 is shown in CU 810. More generally, an image is divided into regions or groups of samples so that the signaling information and the transformed data can be efficiently coded. Signaling information may require a different tree structure consisting of a subdivision for the structure of the transformation, and indeed for the structure of the prediction information or the prediction itself. For this reason, a CU may have different tree structures for the structures of transform blocks or regions, prediction blocks or regions, and prediction information. In some examples, such as HEVC, the structure may be a so-called quadtree of CUs, where leaf nodes contain one or more prediction units and one or more TUs. A TU may contain multiple transform blocks corresponding to luma and chroma representations of an image, and prediction schemes may be considered as applicable at the transform block level. In some instances, the parameters that are applied to a particular set of samples can be considered to be defined primarily at the block level, which may not be at the same granularity as the transform structure.
[0064] Intra-image prediction considers samples that have been coded before considering the current TU, which may be samples above and / or to the left of the current TU. The samples from which the required sample is predicted may be in different positions or orientations relative to the current TU. To determine which orientation is suitable for the current prediction unit, the mode selection unit 520 of the exemplary encoder may try all combinations of available TU structures for each candidate orientation and select the prediction direction and TU structure that provides the best compression efficiency.
[0065] Images may be coded per "slice". In one example, a slice is a group of horizontally adjacent CUs. More generally, however, the entire residual image may constitute a slice, or a slice may be a single CU or a row of CUs, etc. Slices are coded as independent units, providing some degree of resilience to errors. Encoder and decoder states are fully reset at slice boundaries. For example, intra prediction is not performed across slice boundaries. Thus, slice boundaries are treated as image boundaries.
[0066] More generally, a picture (which may form part of a sequence of pictures) may be coded on a subsection basis, where each subsection is independently decodable and reconstructable (i.e., independently of other subsections of that picture or of the sequence of pictures, meaning that coding parameters are not shared and do not depend across subsection boundaries). For example, the subsections may represent subsections from a list consisting of subpictures, slices and tiles, respectively.
[0067] In these examples, (i) a subpicture represents a region of a picture, (ii) a slice represents a portion of a picture, subpicture, or tile in raster order and is constrained to be encapsulated within a respective Network Abstraction Layer (NAL) unit, and (iii) a tile represents a portion defining the respective horizontal and vertical boundaries of a grid arrangement of a picture, subpicture, or slice and is not constrained to be encapsulated within a respective NAL unit.
[0068] Fig. 10 is a schematic diagram showing a possible (candidate) set of prediction directions. All possible directions are available for a prediction unit. The direction is determined by the horizontal and vertical translation with respect to the current block position, and is coded as a prediction "mode". The set of directions is shown in Fig. 11. Note that the so-called DC mode represents a simple arithmetic mean of the surrounding top and left samples. Also, the set of directions shown in Fig. 10 is only an example. Another example is a set of (for example) 65 angular modes plus DC and planar (total of 67 modes), as shown diagrammatically in Fig. 12. Other numbers of modes are also possible.
[0069] In general, the system is operable to generate a predictive block of samples after detecting the prediction direction, depending on other samples determined by the prediction direction. In some examples, the image encoder is configured to encode data identifying the selected prediction direction for each sample or region of the image (and the image decoder is configured to detect such data).
[0070] 13 is a schematic diagram illustrating an intra-prediction process in which a sample 900 of a block or region of samples 910 is derived from other reference samples 920 of the same image according to a direction 930 determined by the intra-prediction mode associated with said sample. In this example, the reference samples 920 originate from blocks above and to the left of the block under consideration 910, and a prediction of the sample 900 is obtained by tracking along the direction 930 relative to the reference samples 920. The direction 930 may indicate a single individual reference sample, but more typically an interpolated value of surrounding reference samples is used as the prediction value. Note that the block 910 may be a square as shown in FIG. 13, or may be of other shapes such as a rectangle.
[0071] FIG. 14 is a schematic diagram illustrating the operation of the CABAC entropy encoder.
[0072] A CABAC encoder works on binary data, i.e. data that is represented only by two symbols: 0 and 1. The encoder performs a so-called context modeling process, which selects a "context", i.e. a probability model, for the next data based on the data already encoded. The selection of the context is performed in a deterministic manner, based on already decoded data, such that the same decision can be made at the decoder without requiring additional data (that identifies the context) to be added to the encoded data stream passed to the decoder.
[0073] Referring to Figure 14, the input data to be encoded may be passed to a binary converter 1400 unless it is already in binary form, in which case converter 1400 is bypassed (by switch 1410 in the figure). In this embodiment, the conversion to binary form is actually accomplished by representing the quantized DCT coefficient data as a series of binary "maps", which are described below.
[0074] The binary data may then be processed by one of two processing paths (shown diagrammatically as separate paths, but which in some embodiments of the invention described below may actually be performed in the same processing stages with only slightly different parameters) a "normal" path and a "bypass" path. The bypass path employs a so-called bypass coder 1420 which does not necessarily utilise the same form of context modelling as the normal path. In some instances of CABAC encoding, such a bypass path can be selected when a sequence of data needs to be processed particularly quickly. However, in this embodiment, we note two characteristics of the so-called "bypass" data. The first characteristic is that the bypass data is processed by the CABAC encoder (950, 1460) only using a fixed context model that represents a 50% probability. The second feature is that bypass data relates to certain categories of data. A particular example of such data is coefficient code data. If the bypass path is not selected, the normal path is selected by the illustrated switches 1430, 1440 operating under the control of control circuitry 1435. This includes data that is processed by context modeler 1450 and subsequently by coding engine 1460.
[0075] The entropy encoder shown in Figure 14 encodes blocks of data (i.e., data corresponding to a block of coefficients for a block of a residual image, for example) as a single value if the entire block is composed of zero-valued data. For each block that does not fall into this category, i.e., a block that contains at least some non-zero data, a "significance map" is created. The significance map indicates, for each position in the block of data to be encoded, whether the corresponding coefficient in the block is non-zero or not. The importance map data itself, which is in binary form, is CABAC coded. Using the importance map aids in compression since no data needs to be coded for coefficients whose magnitudes are indicated to be zero by the importance map. The importance map may also contain a special code to indicate the last non-zero coefficient in a block. This allows all of the last high frequency / trailing zero coefficients to be omitted from coding. In the coded bitstream, the importance map is followed by data defining the values of the non-zero coefficients as dictated by the importance map.
[0076] Other levels of map data are also created and CABAC coded. One example is a map that defines as a binary value (1=yes, 0=no) whether the coefficient data at the map locations indicated by the significance map to be "non-zero" actually has a value of "1". Another map specifies whether the coefficient data at the map locations indicated by the significance map to be "non-zero" actually has a value of "2". Yet another map indicates whether the coefficient data at those map locations indicated by the significance map to be "non-zero" actually has a value of "3 or greater". Yet another map indicates the sign of the data value (using a predefined binary representation such as 1 for +, 0 for -, or vice versa) for the data identified as "non-zero".
[0077] In an embodiment of the present invention, the significance map and other maps are assigned in a predetermined manner to either the CABAC encoder or the bypass encoder, and all represent different respective attributes or value ranges of the same initial data item. In one example, at least the significance map is CABAC encoded and at least a portion of the remaining map (e.g., the signature data) is bypass encoded. Thus, each data item is divided into respective subsets of data, and each subset is encoded by a first (e.g., CABAC) and a second (e.g., bypass) encoding system. The nature of the data, CABAC and bypass coding is such that for a given amount of CABAC encoded data, a variable amount of zero or more bypass data is generated for the same initial data item. Thus, for example, if the quantized, reordered DCT data contains substantially all zero values, then no bypass data or a very small amount of bypass data may be generated. This is because the bypass data only pertains to those map locations for which the significance map indicates a non-zero value. In another example, in quantized reordered DCT data with many high value coefficients, a significant amount of bypass data may be generated.
[0078] In an embodiment of the present invention, the significance map and other maps are generated from the quantized DCT coefficients, for example by scanning unit 360, and subjected to a zigzag scanning process (or a scanning process selected from zigzag, horizontal raster and vertical raster scanning) before being subjected to CABAC encoding.
[0079] In general, CABAC coding involves predicting the context, or probability model, of the next bit to be coded based on other previously coded data. If the next bit is the same as the bit identified as "most likely" by the probability model, then coding the information "the next bit matches the probability model" can be coded with great efficiency. The derivation of context data is important for the good operation of the encoder, since it is inefficient to code "the next bit does not match the probability model." The term "adaptive" means that the context or probability model is adapted or changed during encoding in an attempt to provide a good match with the next data (which has not yet been coded).
[0080] Using a simple analogy, in written English, the letter "U" is relatively rare. However, it is very common in the letter position immediately following the letter "Q." Therefore, a probabilistic model can set the probability of "U" to a very low value, but if the current letter is "Q," the probabilistic model for "U" as the next letter can be set to a very high probability value.
[0081] CABAC coding is used in the current implementation for at least the significance map and the map indicating whether a non-zero value is a 1 or a 2. Bypassing - In these embodiments, identical to CABAC encoding, but for the fact that the probability model is fixed with an equal (0.5:0.5) probability distribution of 1s and 0s, a separate so-called escape data encoding is used at least for the sign data and a map indicating whether the value is >2. For those data positions identified as >2, a separate so-called escape data encoding can be used to encode the actual value of the data. This may include Golomb-Rice encoding techniques.
[0082] The CABAC context modeling and encoding process is described in further detail in WD4: High-Efficiency Video Coding, Working Draft 4, JCTVC-F803_d5, Draft ISO I / EC 23008-HEVC; 201x(E) 2011-10-28.
[0083] Now, referring to Figures 15 and 16, an entropy encoder forming part of a video encoding apparatus includes a first encoding system (e.g., an arithmetic encoding system such as the CABAC encoder 1500) and a second encoding system (such as the bypass encoder 1510) arranged such that a particular data word or value is encoded into the final output data stream by either the CABAC encoder or the bypass encoder, but not by both.
[0084] In an embodiment of the invention, the data values passed to the CABAC encoder and the bypass encoder are respective subsets of ordered data values split or derived from the initial input data (in this example the reordered quantized DCT data) and represent different ones of a set of "maps" generated from the input data.
[0085] The schematic diagram treats the CABAC encoder and the bypass encoder as separate arrangements, which is often the case in practice, but another possibility, shown diagrammatically in Figure 16, is that a single CABAC encoder 1620 is used as both the CABAC encoder 1500 and the bypass encoder 1510 of Figure 15. The encoder 1620 operates under the control of the encoder 1630 such that when in CABAC encoder 1500 mode it operates with an adaptive context model (as described above), and when in bypass encoder 1510 mode it operates with a fixed 50% probability context model.
[0086] A third possibility combines these two in that two substantially identical CABAC encoders can be run in parallel (similar to the parallel arrangement of Figure 15), the difference being that the CABAC encoder operating as the bypass encoder 1510 has its context model fixed at a 50% probability context model.
[0087] The outputs of the CABAC encoding process and the bypass encoding process may be stored (at least temporarily) in respective buffers 1540, 1550. In Figure 16, a switch or demultiplexer 1660 functions under the control of a mode signal 1630 to route CABAC encoded data to buffer 1550 and bypass encoded data to buffer 1540.
[0088] 17 and 18 illustrate generally an example of an entropy decoder forming part of a video decoding apparatus. 17, respective buffers 1710, 1700 pass data to a CABAC decoder 1730 and a bypass decoder 1720, arranged so that a particular encoded data word or value is decoded by either the CABAC decoder or the bypass decoder, but not both. The decoded data is reordered by logic 1740 into the proper order for the subsequent decoding stages.
[0089] The schematic diagram of Figure 17 treats the CABAC decoder and the bypass decoder as separate arrangements, which is often the case in practice, but in another possibility, shown diagrammatically in Figure 18, a single CABAC decoder 1850 is used as both the CABAC decoder 1730 and the bypass decoder 1720 of Figure 17. The decoder 1850 operates under the control of the decoder 1860 such that when in CABAC decoder 1730 mode it operates with an adaptive context model (as described above), and when in bypass encoder 1720 mode it operates with a fixed 50% probability context model.
[0090] As mentioned above, a third possibility is that two substantially identical CABAC decoders can be operated in parallel (similar to the parallel arrangement of FIG. 17), with the difference being that the CABAC decoder operating as the bypass decoder 1720 has a fixed context model at a 50% probability context model.
[0091] In FIG. 18, a switch or multiplexer 1870 acts under the control of a mode signal 1860 to route the CABAC encoded data from buffer 1700 or buffer 1710, as appropriate, to decoder 1850.
[0092] FIG. 19 illustrates a picture 1900 in a schematic manner and is used to illustrate various picture partitioning schemes relevant to the following discussion.
[0093] One example of a picture division is in slices or "regular slices". Each regular slice is encapsulated in its own Network Abstraction Layer (NAL) unit. Prediction within a picture (e.g., intra-sample prediction, motion information prediction, coding mode prediction) and entropy coding dependencies across slice boundaries are not allowed. That is, regular slices can be reconstructed independently from other regular slices in the same picture. So-called tiles define horizontal and vertical boundaries for dividing a picture into rows and columns of tiles. In a manner that corresponds to regular slices, no in-picture prediction dependencies are allowed across tile boundaries, and no entropy decoding dependencies. However, tiles are not constrained to be contained in individual NAL units.
[0094] A sub-picture represents a region of a picture and is separately decodable and reconstructable.
[0095] Examples of objectives of the present technology are as follows. Allows forming a picture from several subsections. Multiple subsections can be treated separately and potentially combined into other subsections (e.g. 360 degree representations or combinations for intended viewports in panoramas or 360 degree representations). · Individual subsections can be extracted and decoded by a single decoder.
[0096] Generally speaking, there can be multiple tiles within a slice, multiple slices within a tile, and one or more slices within a picture or subpicture.
[0097] These are all examples of subsections, where (at least for the purposes of some embodiments) each subsection is individually decodable and reconstructable (i.e., independent of other subsections of that picture or picture sequence, coding parameters are not shared and do not depend across subsection boundaries). For example, the subsections may represent subsections from a list consisting of subpictures, slices and tiles, respectively.
[0098] The schematic example of Figure 19 shows four slices 1910, 1920, 1930, 1940, where slice 1940 includes two tiles 1950, 1960. However, as mentioned, this is merely an arbitrary schematic example.
[0099] In some example configurations, there is a threshold on the number of bins (either EP or CABAC) that may be coded into a slice or picture according to the following formula:
[0100] BinCountsinNalUnits <= (4 / 3) * NumByteslnVclNalUnits + (RawMinCuBits*PicSizelnMinCbsY) / 32
[0101] The right hand side of the formula depends on the sum of two parts: a constant value for a particular image region (RawMinCuBits*PicSizelnMinCbsY), which is related to the size of the slice or picture, and a dynamic value (NumByteslnVclNalUnits), which is the number of bytes coded in the output stream for the subsection or picture. Note that the value 1.25 represents the number of bins per bit.
[0102] RawMinCuBits is the number of bits in a minimum size raw CU (usually 4*4), and PicSizelnMinCbsY is the number of minimum size CUs in a subsection or picture.
[0103] When this threshold is exceeded, CABAC zero words (three bytes with values 00 00 03) are appended to the stream until the threshold is reached. Each such zero word increases the dynamic value by three.
[0104] This constraint (or other versions where the respective constants are different) may be generally expressed as follows: N <= K1 * B + (K2 * CU) Where N= Output Data Unit The number of binary symbols of K1 is a constant, B= Output Data Unit The number of encoded bytes of K2 is a variable that depends on the characteristics of the minimum size coding unit employed by the image data coding device, CU = the minimum size of the coding unit Output Data Unit is the size of the subsection, expressed as
[0105] In the previously proposed example, this threshold check is performed at the picture and slice level.
[0106] However, as noted with reference to Figure 19, a picture or slice may be divided into multiple tiles. One example of why this is done is to enable the use of multiple simultaneous (parallel) decoders.
[0107] Under the arrangement proposed above, each tile does not necessarily meet the threshold calculation discussed above: for example, if a tile is used or decoded alone as a picture, or if different tiles (e.g., with different quantization parameters or different sources) are composited together, there may be no guarantee that the composite slice or picture will conform to the above specifications.
[0108] To address this issue, in an exemplary embodiment, the CABAC threshold is applied at the end of each subsection, rather than at the end of each slice or image alone. Thus, the threshold application occurs at the end of the encoding of either a tile, slice, or picture. With this said, for a picture divided into slices or tiles, it is not necessary to apply the threshold again at the end of the encoding of the picture, since it can be assumed that if each tile in the image complies with the threshold, then the entire picture must also be compliant.
[0109] More generally, embodiments of the present disclosure apply this threshold separately to each subsection of two or more subsections of a picture.
[0110] The terms "tile" and "slice" refer to independently decodable units and represent names applicable to the example subsections as used at the priority date of this application. In case of subsequent or other changes in the names, the arrangements are applicable to other such independently decodable units. Note that the term "subpicture" also refers to examples of subsections.
[0111] For the purposes of applying the above formula, the dynamic value represents the number of bytes coded in the output stream of the tile, while the fixed value depends on the number of minimum size coding units (CUs) in the tile.
[0112] FIG. 20 shows a schematic of an apparatus configured to perform this test. Referring to Figure 20, at input 2000, a CABAC / EP encoded stream is received from an encoder. A detector 2010 detects whether the above mentioned threshold calculation is complied with at a given stage, with reference to the completion of a subsection, such as the end of encoding of a slice, a tile or a subpicture. The controller 2020, in response to detection by the detector 2010, controls a generator 2030 to generate padding data 2040, such as the CABAC zero words discussed above, which is added to the stream by a combiner 2050 to form an output stream 2060. The generation of the zero word may also include sending a signal back to the detector 2010 so that once the zero word is added, the detector 2010 continues to monitor whether the threshold is met and, once the threshold is met, causes the controller 2020 to stop generating the zero word.
[0113] The apparatus of Figures 7 and 14, which operates according to the principles previously described, represents an example of an apparatus for encoding image data; an 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 to generate encoded binarized symbols; The image data represents one or more pictures, each of which may include: (i) one or more slices within each Network Abstraction Layer (NAL) portion; (ii) zero or more tiles, each defining respective horizontal and vertical boundaries of a picture region and unconstrained to be encapsulated within a respective NAL unit; Represents Output Data Unit Equipped with Each slice of a picture is decodable independently of other slices of the same picture, and tiles are decodable independently of other tiles of the same picture. The entropy encoder is Output Data Unit Any individual Output Data Unit and configured to generate an output data stream that obeys a constraint defining an upper bound on the number of binarized symbols that can be represented by The entropy encoder then calculates the Output Data Unit Each slice represents an increasing size in bytes of Output Data Unit and each representing a tile Output Data Unit Apply the constraint to each Output Data Unit The method is configured to provide padding data to the
[0114] For example, the second coding system may be a binary arithmetic coding system that uses a fixed 50% probability context model (such as the bypass encoder / decoder 1420).
[0115] As described above, the detector 2010 Current Output Data Unit At a given stage for the encoding of Current Output Data Unitand the padding data generator 2030 may be configured to detect whether the padding data to be inserted is filled by Output Data Unit so that satisfies the constraints, Current Output Data Unit The method may be configured to generate and insert sufficient padding data to
[0116] The predetermined stage is The current output data unit encoding The end of may be also possible.
[0117] The apparatus of Figures 7 and 14, which operates according to the principles previously described, represents an example of an apparatus for encoding image data; The system includes 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 to generate encoded binarized symbols. The image data represents one or more pictures of a sequence of pictures, each picture being made up of two or more sub-pictures representing respective subsections of the picture. Output Data Unit Including, Each subsection is decodable and reconstructable independently of other subsections in the picture and picture sequence. The entropy encoder then computes the number of iterations that do not satisfy the constraints in order to satisfy the constraints. Output Data Unit In contrast, Output Data Unit Constraints are added to each Output Data Unit and providing padding data, Output Data Unit Any individual Output Data Unit The method is configured to generate an output data stream according to a constraint defining an upper bound on the number of binarized symbols that can be expressed by:
[0118] FIG. 21 is a schematic flow chart showing an image data encoding method. This method is selectively encoding (at step 2100) 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 to generate encoded binarized symbols; generating (at step 2110) an output data stream; In order to satisfy the constraints, Output Data Unit For each that does not satisfy the constraint, increase the size in bytes of Output Data Unit providing (at step 2120) padding data to Includes. The image data represents one or more pictures of a sequence of pictures, each picture being made up of two or more sub-pictures representing respective subsections of the picture. Output Data Unit Including, Each subsection is decodable and reconstructable independently of other subsections in the picture and picture sequence. The generating step is Output Data Unit Any individual Output Data Unit and the generating step is subject to a constraint defining an upper limit on the number of binary symbols that can be represented by each Output Data Unit This includes applying constraints to
[0119] (Encoding profile and minimum compression ratio) 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.
[0120] Figure 22 illustrates diagrammatically an example of subsections 2210, 2220 of a picture 2200. For example, the subsections may be so-called subpictures or any other type of subsection as mentioned above.
[0121] Each subsection has associated parameter data defining its encoding and decoding aspects. Such parameter data may be provided once (or once for a picture sequence of at least several pictures, assuming a repetitive and identical subsection division between successive pictures) or, in principle, once for each picture for a particular subsection contained in that particular picture. The parameter data may be provided as a sub-portion 2310 of a picture-associated parameter set 2300 (FIG. 23) or as individual sub-section parameter sets, e.g. indicating an encoding profile for a sub-section by means of sub-section header data associated with that sub-section. These may be communicated in conjunction 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 subsections and, effectively, instructions on how to reconstruct the complete picture), etc.
[0122] One aspect of encoding and decoding that was previously associated with picture parameter data that refers to the whole picture is the so-called minimum compression ratio (MCR :minimum compression ratio The use of MCR provides at least the following advantages: It allows buffers, such as the decoder and / or encoder side compressed picture buffers, to be sized appropriately so as not to overflow. Indeed, in some instances, the MCR may be implemented to at least partially siphon the compressed picture buffer. of data delete Rate Therefore may be defined.
[0123] The MCR can be defined, for example, by a ratio value indicating the denominator of the final fractional amount of data (e.g., 2 indicating a compression ratio of 1 / 2, or 1 / 2 indicating the same compression ratio) or the maximum amount of data for a picture (e.g., X kilobytes where the uncompressed version of a picture requires 2X kilobytes). The particular choice of representation format is not technically significant for the present discussion.
[0124] In the disclosed example, each subsection has its own minimum compression. rate For example, such an MCR may be defined based on a particular subsection of a particular picture, or based on subsections defined over a sequence of pictures, according to parameter data relating to the subsection. In other words, relevant data may be provided to define such MCRs on a subsection-by-subsection basis, and processing is performed to implement and / or conform to such MCRs processed on a subsection-by-subsection basis, such that each MCR is not necessarily distinct, but merely specified separately.
[0125] The use of individual MCRs applicable to each subsection has related advantages as mentioned above, in that the subsections are independent of each other and can be decoded and buffered individually, reducing concerns that such buffers may overflow.
[0126] If a subsection does not comply with the relevant MCR, the encoder must make another choice to ensure that this threshold is met, such as using a higher quantization step or dropping coefficient data.
[0127] Another example technique for associating MCRs with subsections is for the encoder and / or decoder to assign to each picture a proportion of the overall minimum amount of data applicable to the overall picture, for example this may be done depending on (e.g. proportionally) the number of pixels or samples in the subsection compared to the number of pixels or samples in the overall picture. In some cases, this can be derived directly from the size of the subsection. In other cases, a value (e.g., n / 256th, where n is between 1 and 256) can be associated with each subsection (e.g., parameters or header data) and multiplied by the maximum amount of data associated with that image. The sum of the values n across an image is typically expected to not exceed 256 in this example.
[0128] In some other examples, the MCR may be defined by a so-called encoding profile. In some examples, the apparatus of the present invention is operable according to an encoding profile selected from a set of encoding profiles, each encoding profile defining at least one set of constraints on the image data to be encoded and / or the output data stream, in which case the image data encoding apparatus is configured to apply the respective encoding profile to each subsection of a picture, independently of the encoding profiles applied to other subsections of that picture.
[0129] An encoding profile may define a set or ensemble of features relevant for encoding and / or decoding. Typically, an encoding profile may be intended for use with a particular type of data, e.g., HD (e.g., 1920x1080 pixel images) or 4K (e.g., 3840x2160 images). However, at least in most cases, there is nothing to prevent, for example, a 4K profile from being used for a subsection of HD images or vice versa. The profiles and / or MCRs may simply be independent or different from each other. Using different profiles for each subsection allows the requirements of each subpicture to be set individually and precisely for the set of encoding profiles / levels / hierarchies that may ultimately be used. This may be because they are not used linearly across the current picture due to constraints on features such as number of tiles or columns, and therefore cannot be derived by simply looking at the fraction of pixels they represent.
[0130] FIG. 24 shows diagrammatically a data signal 2400 including respective data 2410 for a series of subsections of an image, each having an associated respective MCR and / or encoding profile, as described above.
[0131] FIG. 25 is a schematic flow chart illustrating a method, the method comprising: Compression encoding (at step 2500) image data representing one or more pictures of a sequence of pictures; Each picture consists of two or more sections, each representing a different sub-subsection of the picture. Output Data Unit , where each subsection is decodable and reconstructable independently of the other subsections in the picture and picture sequence. wherein the step of compressing and encoding is operable in accordance with an encoding profile selected from a set of encoding profiles; Each encoding profile defines at least a set of constraints on the image data to be encoded and / or on the output data stream; Here, the compression encoding step involves applying a respective encoding profile to each sub-section of the picture, independent of the encoding profile applied to other sub-sections of that picture.
[0132] The apparatus of FIG. 7 operating in accordance with the features of FIG. 25 provides an example of an image data encoding apparatus, the apparatus comprising: an image data encoder that applies compression encoding to generate compressed image data representative of one or more pictures of a sequence of pictures; Each picture represents two or more subsections Output Data Unit Equipped with the subsection is decodable and reconstructable independently of other subsections of the picture or of the sequence of pictures; the apparatus being operable according to an encoding profile selected from a set of encoding profiles, each encoding profile defining at least a set of constraints on the image data to be encoded and / or on the output data stream; The image data encoder is configured to apply a respective encoding profile to each subsection of a picture, independent of the encoding profile applied to other subsections of that picture.
[0133] (Coding example 1 - Modifying the profile definition) A.4.2 Profile-Specific Level Restrictions The variable MinCr is set to MinCrBase * MinCrScaleFactor ÷ HbrFactor. For subpicture index j, the variable SubPicSizelnSamplesY[j] is set equal to (subpic_width_minus1[j]+1) * (subpic_height_minus1[j] + 1). Then SubPictureFraction[j] is set to SubPicSizelnSamplesY[j] ÷ PicSizelnSamplesY.
[0134] The sum of the NumByteslnNalUnit variables in access unit 0 for each subpicture j should be less than or equal to FormatCapabilityFactor * (Max(SubPicSizelnSamplesY[j],fR * MaxLumaSr * SubPictureFraction[j]) + MaxLumaSr * (AuCpbRemovalTime[0] - AuNominalRemovalTirne[0]) * SubPictureFraction[j])÷MinCr, for the value of SubPicSizelnSamplesY for picture 0. where MaxLumaSr and FormatCapabilityFactory are the values specified in Tables A.2 and A.3, respectively, that apply to picture 0.
[0135] The sum of the NumByteslnNalUnit variables for access unit n for each subpicture i, where n is greater than 0, should be less than or equal to FormatCapabilityFactor * MaxLumaSr * (AuCpbRemovalTime[n] - AuCpbRemovalTime[n-1]) * SubPictureFraction[j] ÷ MinC. where MaxLumaSr and FormatCapabilityFactor are the values specified in Tables A.2 and A.3, respectively, that apply to picture n.
[0136] Note that MaxLumaSr=Maximum luma sample rate. FormatCapabilityFactor converts MaxLumaSr to a raw bitrate. AuCpbRemovalTime[n]-AuCpbRemovalTime[n-1]) specifies the timescale that converts this bitrate to the number of bits in a frame.
[0137] (Encoding Example 2-SEI Semantics) D.3.8 Sub-picture level information SEI message semantics It is a bitstream conformance requirement that the resulting bitstream conforming to a profile where the jth subpicture of j in the range 0 to sps_num_subpics_minus1, inclusive, with general_tier_flag equal to 0 and level equal to ref_level_idc[i], for i in the range 0 to num_ref_level_minus1, inclusive, obeys the following constraints for each bitstream conformance test, as specified in Appendix C: Ceil(256 * SubPicSizeY[j] ÷ RefLevelFraction[i][j]) should be less than or equal to MaxLumaPs, where MaxLumaPs is specified in Table A.1. The value of Ceil(256 * (subpic_width_minus1 [j] + 1) ÷ RefLevelFraction[i][j]) should be less than or equal to Sqrt(MaxLumaPs * 8). The value of Ceil(256 * (subpic_height_minus1[j] + 1) ÷ RefLevelFraction[i][j]) should be less than or equal to Sqrt(MaxLumaPs * 8). The value of SubPicNumTileCols[j] should be less than or equal to MaxTileCols and the value of SubPicNumTileRows[j] should be less than or equal to MaxTileRows, where MaxTileCols and MaxTileRows are specified in Table A.1. The sum of the NumByteslnNalUnit variables of access unit 0 corresponding to the jth subpicture should be less than or equal to FormatCapabilityFactor * (Max(SubPicSizeY[i],fR * MaxLumaSr * Ref Level Fractionf[i][j] ÷ 256) + MaxLumaSr * (AuCpbRemovalTimef[0] - AuNominalRemovalTime[0]) * RefLevelFraction[i][j]) ÷ (256 * MinCr) for the value of SubPicSizelnSamplesY of picture 0. where MaxLumaSr and FormatCapabilityFactor apply to picture 0 at level_ref_level_idc[i] and are specified in Tables A.2 and A.3, respectively, and MinCr is derived as shown in A.4.2. The sum of the NumByteslnNalUnit variables for access unit n (n greater than 0) corresponding to the jth subpicture must be less than or equal to FormatCapabilitvFactor * MaxLumaSr * (AuCpbRemovalTime[n] - AuCpbRemovalTime[n-1]) * RefLevelFraction[i][j] ÷ (256 * MinCr). where MaxLumaSr and FormatCapabilitvFactor are the values specified in Tables A.2 and A.3, respectively, that apply to image n at level_ref_level_idcf[i], and MinCr is derived as shown in A.4.2.
[0138] In any case, the embodiments of the present disclosure are represented by computer software that, when executed by a computer, causes the computer to perform the respective methods, and are implemented by a machine-readable non-transitory storage medium storing such computer software. In the case of the encoding methods, embodiments of the present disclosure are represented by a data signal that includes encoded data produced according to the respective method.
[0139] To the extent that embodiments of the present disclosure are described as being implemented, at least in part, by a software-controlled data processing apparatus, it will be understood that non-transitory machine-readable media carrying such software, such as optical disks, magnetic disks, semiconductor memories, and the like, are also considered to represent an embodiment of the present disclosure. Similarly, a data signal containing encoded data produced according to the above-described methods (whether or not embodied 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.
[0140] Obviously, numerous modifications and variations of the present disclosure are possible in light of the above teachings. It is therefore to be understood that, within the scope of the appended provisions, the technology may be practiced otherwise than as specifically described herein.
[0141] Each aspect and feature is defined by the following set of numbered clauses. (1) 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 to generate encoded binarized symbols; The image data represents one or more pictures, each picture comprising: (i) one or more slices within each Network Abstraction Layer (NAL) portion; (ii) zero or more tiles, each defining respective horizontal and vertical boundaries of a picture region and unconstrained to be encapsulated within a respective NAL unit; Represents Output Data Unit Equipped with each slice of a picture is decodable independently of other slices of the same picture, and the tiles are decodable independently of other tiles of the same picture; The entropy encoder Output Data Unit Any individual Output Data Unit and configured to generate an output data stream that obeys a constraint defining an upper bound on the number of binarized symbols that can be represented by The entropy encoder determines the Output Data Unit Each slice represents an increasing size in bytes of Output Data Unit and each representing a tile Output Data Unit and applying the constraint to each Output Data Unit configured to provide padding data to Image data encoding device. (2) The image data encoding device according to (1), The second coding system is a binary arithmetic coding system that uses a fixed 50% probability context model. Image data encoding device. (3) The image data encoding device according to (1) or (2), The constraint is: N <= K1 * B + (K2 * CU) Where N=the Output Data Unit The number of binary symbols of K1 is a constant, B=the above Output Data Unit The number of encoded bytes of K2 is a variable that depends on the characteristics of the minimum size coding unit employed by the image data coding device; CU = the number of minimum size coding units Output Data Unit is the size of the picture, slice or tile, represented as It is defined as Image data encoding device. (4) The image data encoding device according to any one of (1) to (3), Current Output Data Unit At a given stage in the encoding of Current Output Data Unit a detector configured to detect whether The above includes the padding data to be inserted. Output Data Unit so that satisfies the constraint. Current Output Data Unit a padding data generator configured to generate and insert padding data sufficient to Further equipped Image data encoding device. (5) The image data encoding device according to (4), The predetermined stage is Current Output Data Unit is the end portion that encodes Image data encoding device. (6) A video storage device, a capture device, or a transmission / reception device, comprising an image data decoding device according to any one of (1) to (5). (7) 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 to generate encoded binarized symbols; The image data represents one or more pictures, each picture comprising: (i) one or more slices within each Network Abstraction Layer (NAL) portion; (ii) zero or more tiles, each defining respective horizontal and vertical boundaries of a picture region and unconstrained to be encapsulated within a respective NAL unit; Including, each slice of a picture is decodable independently of other slices of the same picture, and the tiles are decodable independently of other tiles of the same picture; the Output Data Unit Any individual Output Data Unit generating an output data stream subject to a constraint defining an upper bound on the number of binarized symbols that can be represented by In order to satisfy the above constraints, Output Data Unit Each slice represents an increasing size in bytes of Output Data Unit and each representing a tile Output Data Unit and applying the constraint to each Output Data Unit Provide padding data to Image data encoding method. (8) Computer software that, when executed by a computer, causes the computer to carry out the method according to (7). (9) A machine-readable non-transitory storage medium for storing the computer software described in (8). (10) A data signal including encoded data generated according to the method described in (7). (11) An image data decoder configured to decode a data signal according to (10).
[0142] Further aspects and features are defined by the following set of numbered clauses: (1) 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 to generate encoded binarized symbols; The image data represents one or more pictures of a sequence of pictures, each picture being made up of two or more sub-pictures representing respective subsections of the picture. Output Data Unit Including, each subsection is decodable and reconstructable independently of other subsections in the picture and in the sequence of pictures; The entropy encoder calculates, in order to satisfy the constraint, Output Data Unit In contrast, Output Data Unit The constraint is then increased by increasing the size in bytes of Output Data Unit and providing padding data, Output Data Unit Any individual Output Data Unit and configured to generate an output data stream according to said constraint defining an upper limit on the number of binarized symbols, expressed as Image data encoding device. (2) The image data encoding device according to (1), The second coding system is a binary arithmetic coding system that uses a fixed 50% probability context model. Image data encoding device. (3) The image data encoding device according to (1) or (2), The constraint is: N <= K1 * B + (K2 * CU) Where N=the Output Data Unit The number of binary symbols of K1 is a constant, B=the above Output Data Unit The number of encoded bytes of K2 is a variable that depends on the characteristics of the minimum size coding unit employed by the image data coding device; CU = the number of minimum size coding units Output Data Unit The size of the subsection is expressed as It is defined as Image data encoding device. (4) The image data encoding device according to any one of (1) to (3), Current Output Data Unit At a given stage in the encoding of Current Output Data Unit a detector configured to detect whether The above includes the padding data to be inserted. Output Data Unit so that satisfies the constraint. Current Output Data Unit a padding data generator configured to generate and insert padding data sufficient to Further equipped Image data encoding device. (5) The image data encoding device according to (4), The predetermined stage is Current Output Data Unit is the end portion that encodes Image data encoding device. (6) The image data encoding device according to any one of (1) to (5), The subsections each represent a subsection from a list consisting of subpictures, slices, and tiles. Image data encoding device. (7) The image data encoding device according to any one of (1) to (6), (i) a sub-picture represents a region of said picture; (ii) a slice represents a portion in raster order of a picture, subpicture, or tile and is constrained to be encapsulated within a respective Network Abstraction Layer (NAL) unit; (iii) A tile represents a portion of a picture, subpicture, or slice that defines its respective horizontal and vertical boundaries in a grid arrangement, and is not constrained to be encapsulated within each NAL unit. Image data encoding device. (8) The image data encoding device according to any one of (1) to (7), Each subsection has its own minimum compression. rate Follow Image data encoding device. (9) The image data encoding device according to any one of (1) to (8), the image data encoding device is operable according to an encoding profile selected from a set of encoding profiles; Each encoding profile defines at least one set of constraints on the image data to be encoded and / or on the output data stream, where the image data encoding device is configured to apply a respective encoding profile to each subsection of a picture independently of the encoding profiles applied to other subsections of that picture. Image data encoding device. (10) The image data encoding device according to (9), The encoding profile for a subsection is defined by the subsection header data associated with that subsection. Image data encoding device. (11) A video storage device, a capture device, or a transmission / reception device, comprising an image data decoding device according to any one of (1) to (10). (12) An image data encoding device comprising an image data encoder that applies compression encoding to generate compressed image data representing one or more pictures of a picture sequence, the image data encoder comprising: Each picture represents two or more subsections Output Data Unit Equipped with said subsection being decodable and reconstructable independently of other subsections of the picture or of the sequence of pictures; the image data encoding device is operable according to an encoding profile selected from a set of encoding profiles, each encoding profile defining at least a set of constraints on the image data to be encoded and / or on the output data stream; The image data encoder is configured to apply a respective encoding profile to each subsection of a picture, independent of encoding profiles applied to other subsections of that picture. Image data encoding device. (13) The image data encoding device according to (12), said encoding profile defining at least a minimum compression ratio; The image data encoder is configured to generate the compressed image data according to a respective minimum compression ratio applicable to each subsection. Image data encoding device. (14) A video storage device, a capture device, or a transmission / reception device, comprising the image data decoding device according to (12) or (13). (15) 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 to generate encoded binarized symbols; generating an output data stream; In order to satisfy the constraints, Output Data Unit For each byte that does not satisfy the constraint, Output Data Unit providing padding data to Including, The image data represents one or more pictures of a sequence of pictures, each picture being made up of two or more images representing respective subsections of the sequence of pictures. Output Data Unit Including, each subsection is decodable and reconstructable independently of other subsections in the picture and in the sequence of pictures; The generating step is Output Data UnitAny individual Output Data Unit and the generating step is subject to the constraint defining an upper limit on the number of binary symbols that can be represented by each Output Data Unit applying said constraint to Image data encoding method. (16) Computer software that, when executed by a computer, causes the computer to carry out the method according to (15). (17) A machine-readable non-transitory storage medium for storing the computer software described in (16). (18) A data signal including encoded data generated according to the method described in (15). (19) An image data decoder configured to decode a data signal according to (18). (20) compressing and encoding image data representing one or more pictures of a sequence of pictures; Each picture may be divided into two or more sub-subsections, each sub-subsection representing a respective sub-subsection of said picture. Output Data Unit each subsection being decodable and reconstructable independently of other subsections in the picture and picture sequence; the compressing and encoding step is operable in accordance with an encoding profile selected from a set of encoding profiles; Each encoding profile defines at least a set of constraints on the image data to be encoded and / or on the output data stream; The step of compression encoding includes applying a respective encoding profile to each subsection of a picture independent of the encoding profile applied to other subsections of that picture. Image data encoding method. (21) Computer software that, when executed by a computer, causes the computer to carry out the method according to (20). (22) A machine-readable non-transitory storage medium for storing the computer software described in (21). (23) A data signal including encoded data generated according to the method described in (20). (24) including respective data for a series of subsections of the image; Each data has an associated respective minimum compression ratio and / or encoding profile. Data signal. (25) An image data decoder configured to decode a data signal according to (23) or (24).
Claims
1. 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 to generate encoded binarized symbols; the image data represents one or more pictures of a sequence of pictures, each picture including two or more output data portions representing respective subsections of the picture; each subsection is decodable and reconstructable independently of other subsections in the picture and in the sequence of pictures; The entropy encoder is configured to generate an output data stream according to the constraint defining an upper limit on the number of binarized symbols represented by any individual output data portion relative to the size in bytes of that output data portion, the constraint defining an upper limit on the number of binarized symbols represented by any individual output data portion relative to the size in bytes of that output data portion, the entropy encoder being configured to apply the constraint to each output data portion and provide padding data to increase the size in bytes of that output data portion so as to satisfy the constraint. Image data encoding device.
2. 2. The image data encoding device according to claim 1, The second coding system is a binary arithmetic coding system that uses a fixed 50% probability context model. Image data encoding device.
3. 2. The image data encoding device according to claim 1, The constraint is: N <= K1 * B + (K2 * CU) Here, N=the number of binary symbols in the output data section. K1 is a constant, B = the number of encoded bytes in the output data portion, K2 is a variable that depends on the characteristics of the minimum size coding unit employed by the image data coding device; CU = the size of the subsection represented in the output data portion expressed in minimum size coding units It is defined as Image data encoding device.
4. 2. The image data encoding device according to claim 1, a detector configured to detect, at a given stage relative to the encoding of the current output data portion, whether said constraint is satisfied by said current output data portion; a padding data generator configured to generate and insert sufficient padding data into the current output data portion such that the output data portion including the padding data to be inserted satisfies the constraint; Further equipped Image data encoding device.
5. 5. The image data encoding device according to claim 4, The predetermined step is an end of encoding the current output data portion. Image data encoding device.
6. 2. The image data encoding device according to claim 1, The subsections each represent a subsection from a list consisting of subpictures, slices, and tiles. Image data encoding device.
7. 2. The image data encoding device according to claim 1, (i) a sub-picture represents a region of said picture; (ii) a slice represents a portion in raster order of a picture, subpicture, or tile and is constrained to be encapsulated within a respective Network Abstraction Layer (NAL) unit; (iii) A tile represents a portion of a picture, subpicture, or slice that defines its respective horizontal and vertical boundaries in a grid arrangement, and is not constrained to be encapsulated within each NAL unit. Image data encoding device.
8. 2. The image data encoding device according to claim 1, Each subsection follows its own minimum compression ratio. Image data encoding device.
9. 2. The image data encoding device according to claim 1, the image data encoding device is operable according to an encoding profile selected from a set of encoding profiles; Each encoding profile defines at least one set of constraints on the image data to be encoded and / or on the output data stream, where the image data encoding device is configured to apply a respective encoding profile to each subsection of a picture independently of the encoding profiles applied to other subsections of that picture. Image data encoding device.
10. 10. The image data encoding device according to claim 9, The encoding profile for a subsection is defined by subsection header data associated with that subsection. Image data encoding device.
11. A video storage device, a capture device, and a transmitting / receiving device, comprising the image data decoding device according to claim 1.
12. 1. An image data encoding apparatus comprising an image data encoder adapted to apply compression encoding to generate compressed image data representative of one or more pictures of a sequence of pictures, the apparatus comprising: each picture comprising an output data portion representing two or more subsections; said subsection being decodable and reconstructable independently of other subsections of the picture or of the sequence of pictures; the image data encoding device is operable according to an encoding profile selected from a set of encoding profiles, each encoding profile defining at least a set of constraints on the image data to be encoded and / or on the output data stream; The image data encoder is configured to apply a respective encoding profile to each subsection of a picture, independent of encoding profiles applied to other subsections of that picture. Image data encoding device.
13. 13. The image data encoding device according to claim 12, said encoding profile defining at least a minimum compression ratio; The image data encoder is configured to generate the compressed image data according to a respective minimum compression ratio applicable to each subsection. Image data encoding device.
14. A video storage device, a capture device, or a transmitting / receiving device, comprising the image data decoding device according to claim 12.
15. 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 to generate encoded binarized symbols; generating an output data stream; providing padding data for each output data portion that does not satisfy the constraint so as to increase the size in bytes of that output data portion to satisfy the constraint; Including, the image data represents one or more pictures of a sequence of pictures, each picture comprising two or more output data portions representing respective subsections of the picture; each subsection is decodable and reconstructable independently of other subsections in the picture and in the sequence of pictures; The generating step is subject to a constraint defining an upper limit on the number of binary symbols that can be represented by any individual output data portion relative to the size in bytes of that output data portion, and the generating step includes applying the constraint to each output data portion. Image data encoding method.
16. Computer software which, when executed by a computer, causes the computer to carry out the method of claim 15.
17. 17. A machine-readable non-transitory storage medium storing the computer software of claim 16.
18. 16. A data signal containing encoded data produced according to the method of claim 15.
19. 20. An image data decoder configured to decode a data signal according to claim 18.
20. compression encoding image data representing one or more pictures of a sequence of pictures; each picture comprising two or more output data portions representing respective sub-subsections of said picture, each subsection being decodable and reconstructable independently of other subsections within the picture and the sequence of pictures; the compressing and encoding step is operable in accordance with an encoding profile selected from a set of encoding profiles; Each encoding profile defines at least a set of constraints on the image data to be encoded and / or on the output data stream; The step of compression encoding includes applying a respective encoding profile to each subsection of a picture independent of the encoding profile applied to other subsections of that picture. Image data encoding method.
21. Computer software which, when executed by a computer, causes the computer to carry out the method of claim 20.
22. 22. A machine-readable non-transitory storage medium storing the computer software of claim 21.
23. 21. A data signal containing encoded data produced according to the method of claim 20.
24. containing respective data for a series of subsections of the image; Each data has an associated respective minimum compression ratio and / or encoding profile. Data signal.
25. 24. An image data decoder configured to decode a data signal according to claim 23.
26. 25. An image data decoder configured to decode a data signal according to claim 24.