(19)
(11)EP 2 735 158 B1

(12)EUROPEAN PATENT SPECIFICATION

(45)Mention of the grant of the patent:
06.09.2023 Bulletin 2023/36

(21)Application number: 12756258.5

(22)Date of filing:  20.07.2012
(51)International Patent Classification (IPC): 
H04N 19/105(2014.01)
H04N 19/117(2014.01)
H04N 19/187(2014.01)
H04N 19/33(2014.01)
H04N 19/85(2014.01)
H04N 19/134(2014.01)
H04N 19/182(2014.01)
H04N 19/82(2014.01)
H04N 19/436(2014.01)
H04N 19/59(2014.01)
(52)Cooperative Patent Classification (CPC):
H04N 19/105; H04N 19/134; H04N 19/117; H04N 19/182; H04N 19/187; H04N 19/82; H04N 19/33; H04N 19/436; H04N 19/85; H04N 19/59
(86)International application number:
PCT/IB2012/053723
(87)International publication number:
WO 2013/011493 (24.01.2013 Gazette  2013/04)

(54)

ADAPTIVE INTERPOLATION FOR SPATIALLY SCALABLE VIDEO CODING

ADAPTIVE INTERPOLATION FÜR RÄUMLICH SKALIERBARE VIDEOKODIERUNG

TRAITEMENT DU SIGNAL ET CODAGE DE SIGNAL ÉCHELONNÉ


(84)Designated Contracting States:
AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

(30)Priority: 21.07.2011 US 201113188207

(43)Date of publication of application:
28.05.2014 Bulletin 2014/22

(73)Proprietor: V-Nova International Ltd
Paddington London W2 6TT (GB)

(72)Inventors:
  • ROSSATO, Luca
    20147 Milano (IT)
  • MEARDI, Guido
    20136 Milano (IT)

(74)Representative: Gill Jennings & Every LLP 
The Broadgate Tower 20 Primrose Street
London EC2A 2ES
London EC2A 2ES (GB)


(56)References cited: : 
  
  • AMMAR N ET AL: "Switched SVC upsampling filters", 18. JVT MEETING; 75. MPEG MEETING; 14-01-2006 - 20-01-2006; BANGKOK,TH; (JOINT VIDEO TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ),, no. JVT-R075, 11 January 2006 (2006-01-11) , XP030006342, ISSN: 0000-0410
  • SEGALL A: "Up-/Down-sampling for Spatial SVC", 17. JVT MEETING; 74. MPEG MEETING; 14-10-2005 - 21-10-2005; NICE, FR;(JOINT VIDEO TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ),, no. JVT-Q083, 12 October 2005 (2005-10-12) , XP030006241, ISSN: 0000-0413
  • BEERMANN M: "Non-linear up-sampling for spatial scalability", 20. JVT MEETING; 77. MPEG MEETING; 15-07-2006 - 21-07-2006;KLAGENFURT, AT; (JOINT VIDEO TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-TSG.16 ),, no. JVT-T020, 15 July 2006 (2006-07-15), XP030006507, ISSN: 0000-0408
  • KOEN DE WOLF ET AL: "Performance Evaluation of Adaptive Residual Interpolation, a Tool for Inter-layer Prediction in H.264/AVC Scalable Video Coding", 10 June 2007 (2007-06-10), IMAGE ANALYSIS : 15TH SCANDINAVIAN CONFERENCE, SCIA 2007, AALBORG, DENMARK, JUNE 10 - 14, 2007 ; PROCEEDINGS; [LECTURE NOTES IN COMPUTER SCIENCE;;LNCS], SPRINGER BERLIN HEIDELBERG, BERLIN, HEIDELBERG, PAGE(S) 740 - 749, XP019080728, ISBN: 978-3-540-73039-2 abstract Sections 3 and 4 (with sub-sections)
  • W-J HAN: "Smoothed reference prediction for single-loop decoding", 16. JVT MEETING; 73. MPEG MEETING; 24-07-2005 - 29-07-2005; POZNAN,PL; (JOINT VIDEO TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ),, no. JVT-P085, 19 July 2005 (2005-07-19), XP030006122, ISSN: 0000-0416
  • SHIMAUCHI K: "Inter-layer estimation for SVC", 21. JVT MEETING; 78. MPEG MEETING; 20-10-2006 - 27-10-2006; HANGZHOU,CN; (JOINT VIDEO TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ),, no. JVT-U033, 17 October 2006 (2006-10-17) , XP030006679, ISSN: 0000-0407
  
Note: Within nine months from the publication of the mention of the grant of the European patent, any person may give notice to the European Patent Office of opposition to the European patent granted. Notice of opposition shall be filed in a written reasoned statement. It shall not be deemed to have been filed until the opposition fee has been paid. (Art. 99(1) European Patent Convention).


Description

BACKGROUND



[0001] CPU (Central Processing Unit) efficiency matters both during encoding and decoding of a signal. Latest generation processors are becoming more and more parallel, with up to hundreds of simple cores on each single chip.

[0002] Unfortunately, by nature, traditional MPEG (Moving Pictures Expert Group) family codecs are structurally non-parallel. That stems from the fact that they are block-based, and each image block must be encoded and decoded sequentially, since to achieve efficient compression all blocks must be made to depend in some way on each other.

[0003] Via the introduction of so-called "slices" (basically, pieces of the image that are treated independently of one another, as if they were separate videos put one next to the other) into MPEG coding, the H.264 standard allows for processing of a few threads in parallel (typically 2 or 3 threads). Important algorithm elements such as de-blocking (i.e., a filter that "smoothes" the transitions among blocks to create a more uniform image) are typically global operations full of conditional instructions, which are unsuitable for applications including parallel CPUs.

[0004] Today's CPUs and GPUs (Graphics Processing Units) are typically very powerful; a single GPU can include several hundreds of computing cores to perform parallel processing of information. When using current technology, larger portions of an image can be stored in a processor cache for processing. The need to fragment images into a multitude of small blocks, which was a driving factor when MPEG was created, as processors from that era could only deal with very small chunks of video data at a time - and then only sequentially - no longer applies to modern CPUs and GPUs. Thus, a large portion of available processing power may go unused when implementing MPEG-like types of encoding/decoding, with blocking artifacts needlessly introduced into the signal. Also, compared to what was current when MPEG was developed, modem day applications typically require much higher definition video encoding and much higher overall playback quality. In high-definition (HD), high-quality videos, there is a much larger difference between areas with low detail (potentially even out of focus) and areas with very fine detail. This makes the use of frequency-domain transforms such as those used in MPEG even more unsuitable for image processing and playback, since the range of relevant frequencies is getting much broader.

[0005] In addition, higher resolution images include a higher amount of camera noise and/or film grain, i.e., very detailed high-frequency pixel transitions that can be quite irrelevant for viewing and require many bits to encode.

[0006] Lastly, traditional codecs are ill-suited to perform efficiently with 3D or volumetric imaging, which is becoming more and more important in fields such as medical imaging, scientific imaging, etc.

[0007] Most target devices today support different playback resolutions and quality. So-called SVC (Scalable Video Coding), the current MPEG standard for scalability, has not been received favorably by the industry and shows little to non-existent adoption, because it is considered way too complex and somewhat bandwidth inefficient.

[0008] Moreover, encoded videos are plentiful; that is, a content provider typically doesn't have the time to customize encoder parameters and experiment with each specific video stream. Currently, content providers dislike that many encoding parameters must be manually tweaked (every time performing an encoding and checking the quality of results) in order to successfully encode a video.

[0009] As an alternative to MPEG standards for encoding/decoding, so-called image pyramids have been used for encoding/decoding purposes. For example, using Laplacian pyramids, conventional systems have created lower resolution images using Gaussian filters and then building the pyramid of the differences between the images obtained by upsampling with a rigidly programmed decoder back from the lower resolution levels to the original level.

[0010] Use of conventional Laplacian pyramid encoding has been abandoned. One deficiency of such transforms is that the authors were always trying to avoid distortions/artifacts in the downsampled image, so they always used Gaussian filtering, as it is the only type of filter that doesn't add any information of its own. However, the insurmountable problem with Gaussian filtering is that it introduces a blurring effect, such that when upscaling back to larger resolutions, there is a need for an inordinate amount of image correction information to reproduce the original image.

[0011] In the document entitled "Study of Upsampling/Down-sampling for Spacial scalability" by Andrew Segal, an experimental investigation on the up-sampling and downsampling operations in the Scalable Video Coding standard (SVC) is presented. In particular, the down-sampling filter employed in SVC is tested in the context of two different down-sampling operations; the study also describes the design of an up-sampler capable of minimizing the l2 norm between the original frame and the up-sampled frame.

[0012] The document entitled "Switched SVC up-sampling filter" by Ammar et al., discloses a switching mechanism for up-sampling filters in SVC. In particular, the document describes a brute force implementation of a switched filter where the encoder up-samples the base layer, first using the AVC filter and then using a newly designed filter. The filter associated with the least rate-distortion value is finally chosen and signalled in the bit stream to the decoder.

BRIEF DESCRIPTION



[0013] The invention is described in the embodiment related to figure 2.

[0014] Embodiments herein deviate with respect to conventional systems and methods. For example, embodiments herein are directed to unique ways of processing and encoding signal information to reduce an amount of data that is needed to reconstruct a signal when decoding.

[0015] More specifically, one embodiment herein includes encoding a received signal at different levels of quality in a hierarchy. For example, an encoder receives a signal to be encoded. Initially, the encoder utilizes one or more downsample operations to produce downsampled renditions of the signal at successively lower levels of quality in the hierarchy. The encoder then applies one or more upsample operations to a downsampled rendition of the signal at a first level of quality to produce an upsampled rendition of the signal at a second (e.g., higher) level of quality in the hierarchy. As discussed herein, the upsample operations and downsample operations are asymmetrical with respect to each other. Each of the upsample and downsample operations each or both can be different non-linear functions.

[0016] One embodiment herein includes featuring several different downsampling and upsampling operations in a respective encoding loop to determine which operations are most suitable to reduce an amount of encoded data. In accordance with such an embodiment, the encoder produces and tests sets of residual data indicating a difference between a downsampled rendition of the signal and an upsampled rendition of the signal from a lower level of quality.

[0017] In accordance with further embodiments, at each level of quality in the hierarchy, the encoder implements a "lossy" encoding algorithm so as to reduce the entropy of residual data produced at each of the levels of quality. Reducing entropy can be achieved by altering or tweaking elements of the signal at each level of quality and estimating the impact on the entropy of the residuals at the higher levels.

[0018] In accordance with a more specific embodiment, the process of tweaking to improve (e.g., reduce) entropy can be repeated until one or more of the following conditions apply: a.) the entropy level achieved for a higher level of quality is below a satisfaction threshold value, b.) no additional alterations seem to improve the entropy of residual data for a given number of attempts, c) the encoder has performed a pre-set number of attempts to reduce the entropy, etc.

[0019] As further discussed herein, the entropy can be estimated using a proxy function, which calculates or estimates a number of bits, symbols, etc., required to indicate difference information for a level of quality.

[0020] In further embodiments, the encoder estimates the impact on entropy of residuals at higher levels of quality using a proxy function to identify an impact on entropy, without the need to fully encode the residuals at every tweaking. The proxy function can produce a metric such as a value indicating a percentage of residuals that are different from a value of zero or near zero value.

[0021] Optimization of downsampling operations and filters is not necessarily an objective of every embodiment discussed herein. In one embodiment, since the encoder already knows what linear or non-linear operations (e.g., bicubic filtering, unsharp masking, deblending, ...) will be used to upscale back to higher levels of quality at the decoding site, the encoder can be configured to optimize downsampling not so much to reduce artifacts in lower levels of quality, but so as to reduce the number of residuals (or, even more precisely, to reduce the entropy of residuals) after applying upsampling operations. Both the downsample and upsample functions can be non-linear types of functions.

[0022] As further discussed herein, downsampling of the signal during encoding can include implementing a tweaked bilinear filter process. In accordance with such an embodiment, the encoder initially downsamples from level n to level (n-1) using a downsample function such as a bilinear filter. The encoder focuses on each element and alters it in various directions. Every time the encoder alters an element, the encoder upsamples back to a higher level of quality (i.e., every pel/pixel in level n-1 influences a number of pixels in level n) to assess the entropy of residuals based on generating an appropriate entropy metric.

[0023] According to a generated entropy metric, for the new value of that specific pel/pixel in level n-1, the encoder finally selects the alteration that generates the lowest entropy of residuals in the next higher level of quality (e.g., level hierarchy). In order to do so, the encoder can leverage use of an iterative or looping algorithm. The iterative algorithm chooses a direction (e.g., up or down) in which to alter an element. If the entropy metric improves, the encoder continues with another alteration in the selected direction. The encoder can be configured to reduce a size of the alterations once it is closer to a minimum entropy value for the iterative tweaking routine.

[0024] In one embodiment, tweaking operations are done in parallel to reduce an amount of time needed to encode a received signal into multiple different levels of quality. Parallel processing can include use of all massively multi-core CPUs or GPUs. Each processor can be configured to process a selected portion of the overall signal.

[0025] Since different pels/pixels of level (n-1) may influence overlapping areas of level n, for each "parallel step" of the algorithm, the encoder can be configured to perform a global aggregation algorithm (potentially in a hierarchical way, e.g. single pel, then 4x4, then 16x16, etc., with local loops for a certain number of iterations before doing a global pass) to check whether tweaks to a sub-region negatively impact an entropy associated with the global set of residual data.

[0026] A specific implementation of the tweaking algorithm can also take into account different possible upsampling options such that at completion of the tweaking algorithm, the encoder knows the optimum level n-1 for each alternative upsampling technique. The encoder can select the upsampling or upscaling option that produces the lowest overall entropy metric for residual data at the next higher level.

[0027] Note additionally that, with sufficient encoder computing power, the encoder can be configured to tweak and encode a level of quality (n-2) based on processing of level n, not just based on level (n-1). In other words, the signal data at a lower level of quality can be tweaked to reduce entropy at multiple different higher levels of quality in the hierarchy. Additionally, the same approach can be used also to modify (or enrich) the operations and filters that are leveraged to upscale back from lower levels to higher levels. For instance, if the encoder tweaked lower levels based on multiple higher levels of quality, the encoder and decoder can reconstruct the signal at higher levels of quality in the hierarchy based on the information contained in multiple lower levels.

[0028] Note that the received signal as discussed herein can be of any suitable type. In one embodiment, the signal represents image data. In accordance with such an embodiment, the encoder encodes a signal at lower resolutions or lower levels of quality based on producing tiered sets of encoded data. Utilizing sets of encoded data starting from a given level of quality (e.g., lowest level) in the hierarchy, the tiered sets of encoded data can be decoded and used to reconstruct an original image or a "lossy" replica of the original image for playback.

[0029] These and other embodiment variations are discussed in more detail below.

[0030] As mentioned above, note that embodiments herein can include a configuration of one or more computerized devices, routers, network, workstations, handheld or laptop computers, or the like to carry out and/or support any or all of the method operations disclosed herein. In other words, one or more computerized devices or processors can be programmed and/or configured to operate as explained herein to carry out different embodiments.

[0031] In addition to the decoder and processing as discussed above, yet other embodiments herein include software programs to perform the steps and operations summarized above and disclosed in detail below. One such embodiment comprises a computer-readable, hardware storage resource (i.e., a non-transitory computer readable media) including computer program logic, instructions, etc., encoded thereon that, when performed in a computerized device having a processor and corresponding memory, programs and/or causes the processor to perform any of the operations disclosed herein. Such arrangements can be provided as software, code, and/or other data (e.g., data structures) arranged or encoded on a computer readable medium such as an optical medium (e.g., CD-ROM), floppy or hard disk or other a medium such as firmware or microcode in one or more ROM or RAM or PROM chips or as an Application Specific Integrated Circuit (ASIC). The software or firmware or other such configurations can be installed onto a computerized device to cause the computerized device to perform the techniques explained herein.

[0032] Accordingly, one particular embodiment of the present disclosure is directed to a computer program product that includes a computer-readable hardware storage medium having instructions stored thereon for supporting signal processing operations. For example, in one embodiment, the instructions, when carried out by a processor of a respective computer device, cause the processor to: receiving a signal; utilizing at least one downsample operation to produce downsampled renditions of the signal at successively lower levels of quality in the hierarchy; applying at least one upsample operation to a downsampled rendition of the signal at a first level of quality to produce an upsampled rendition of the signal at a second level of quality in the hierarchy, the second level of quality being higher than the first level of quality, the at least one upsample operation and at least one downsample operation possibly being asymmetrical with respect to each other; and producing residual data indicating a difference between the downsampled rendition of the signal at the second level of quality and the upsampled rendition of the signal at the second level of quality.

[0033] The ordering of the steps has been added for clarity sake. These steps can be performed in any suitable order.

[0034] Other embodiments of the present disclosure include software programs, firmware, and/or respective hardware to perform any of the method embodiment steps and operations summarized above and disclosed in detail below.

[0035] Also, it is to be understood that the system, method, apparatus, instructions on computer readable storage media, etc., as discussed herein can be embodied strictly as a software program, as a hybrid of software, firmware, and/or hardware, or as hardware alone such as within a processor, or within an operating system or within a software application, etc. As discussed above, techniques herein are well suited for use in software, firmware, and/or hardware applications that encode signals. However, it should be noted that embodiments herein are not limited to use in such applications and that the techniques discussed herein are well suited for other applications as well.

[0036] Additionally, note that although each of the different features, techniques, configurations, etc., herein may be discussed in different places of this disclosure, it is intended that each of the concepts can be executed independently of each other or in combination with each other. Accordingly, the one or more present inventions, embodiments, etc., as described herein can be embodied and viewed in many different ways.

[0037] Also, note that this preliminary discussion of embodiments herein does not specify every embodiment and/or incrementally novel aspect of the present disclosure or claimed invention(s). Instead, this brief description only presents general embodiments and corresponding points of novelty over conventional techniques. For additional details and/or possible perspectives (permutations) of the invention(s), the reader is directed to the Detailed Description section and corresponding figures of the present disclosure as further discussed below.

BRIEF DESCRIPTION OF THE DRAWINGS



[0038] The foregoing and other objects, features, and advantages of the invention will be apparent from the following more particular description of preferred embodiments herein, as illustrated in the accompanying drawings in which like reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale, with emphasis instead being placed upon illustrating the embodiments, principles, concepts, etc.

FIG. 1 is an example diagram of an encoder and downsampling of a signal according to embodiments herein.

FIG. 2 is an example diagram illustrating steps of performing a downsampling algorithm according to the invention as defined by the amended claims.

FIG. 3 is an example diagram illustrating downsampling of image information according to embodiments herein.

FIG. 4 is an example diagram illustrating encoding of a signal according to embodiments herein.

FIG. 5 is an example diagram illustrating encoding of a signal including tweaking of elements during upsampling to reduce an entropy of residual data according to embodiments herein.

FIG. 6 is an example diagram illustrating generation of residual data for use by a decoder according to embodiments herein.

FIG. 7 is an example diagram illustrating generation of residual data according to embodiments herein.

FIG. 8 is an example diagram illustrating generation of tweaking downsampled data according to embodiments herein.

FIG. 9 is a diagram illustrating an example method of downsampling, tweaking, upsampling, and quantizing residual data according to embodiments herein.

FIG. 10 is a diagram illustrating an example of function for determining entropy according to embodiments herein.

FIG. 11 is a diagram illustrating an example of quantizing residual data according to embodiments herein.

FIG. 12 is a diagram illustrating an example computer architecture for executing computer code, firmware, software, applications, logic, etc., according to embodiments herein.


DETAILED DESCRIPTION



[0039] According to one embodiment, an encoder receives a signal. The encoder utilizes one or more downsample operations to produce downsampled renditions of the signal (i.e., signal data) at successively lower levels of quality in the hierarchy. In a reverse direction, the encoder applies the one or more upsample operations to a downsampled rendition of the signal at a first level of quality to produce an upsampled rendition of the signal at a second level of quality in the hierarchy. The second level of quality is higher than the first level of quality. The one or more upsample operations and one or more downsample operations can be asymmetrical with respect to each other. That is, the function applied during downsampling can be different from the function applied when upsampling. The encoder produces residual data indicating a difference between the downsampled rendition of the signal at the second level of quality and the upsampled rendition of the signal at the second level of quality.

[0040] FIG. 1 is an example diagram of an encoder and respective downsampling of a signal according to embodiments herein.

[0041] Encoder 140 receives signal 115. Signal 115 encoded by the encoder 140 can be any suitable type of data information.

[0042] By way of a non-limiting example, the signal 115 can be image data, symbols, etc., indicating settings of each of multiple signal elements (e.g., pels/plane elements, pixels/picture elements, voxels/volumetric picture elements, etc.) in a respective image. The image can be two dimensional (e.g., pictures, video frames, 2D motion maps, etc.), three-dimensional (e.g., 3D/volumetric images, holographic images, CAT-scans, medical/scientific images, 3D motion maps, etc.), a signal featuring more than three dimensions, a time-based signal (e.g., audio signal, video signal, etc.), and so forth.

[0043] For simplicity, embodiments illustrated herein often refer to images that are displayed as 2D planes of settings (e.g., 2D images in a suitable color space), such as for instance a picture. However, the same concepts and methods are also applicable to any other type of signal. In accordance with such embodiments, the settings of the signal elements (as specified by the signal 115) indicate how to reconstruct the respective image for playback on a device.

[0044] During encoding of signal 115, the encoder 140 uses one or more downsample operations and one or more upsample operations to produce sets of encoded signal data that are used by a decoder to reconstruct an original signal 115.

[0045] The signal data as discussed below represents renditions of the signal 115 at the different levels of quality in the encoding hierarchy. Note that level of quality J may represent a highest level of quality or an intermediate level of quality in the hierarchy. In one embodiment, the encoder 140 processes signal data at pairs of levels in the hierarchy to perform downsampling of the signal into lower levels of quality.

[0046] Downsampling of the signal 115 can include applying a selected downsampling operation to signal data SJ at level of quality J to create signal data SJ-1 at level of quality J-1. For instance, the downsample operation can be a simple bilinear filter, or a more complex operation such as the application of a non-linear function, as previously discussed.

[0047] Note that signal data SJ-1 represents a lower resolution or lower level of quality than original signal 115; signal data SJ-2 represents a lower resolution or lower level of quality of signal 115 than signal data SJ-1, and so on.

[0048] Thus, the signal data at each respective level in the hierarchy represents the original signal, but at a lower level of quality. Typically, less and less data (e.g., bit information, symbols, etc.) is needed to define the signal at each successively lower level in the hierarchy.

[0049] In accordance with one embodiment, the encoder 140 downsamples the signal 115 into signal data SJ-1. Subsequent to initial downsampling of the signal data SJ to level of quality J-1, the encoder 140 tweaks or adjusts settings of individual elements in the signal data SJ-1 to identify which tweaked settings to signal data SJ-1 reduces an entropy associated with residual data produced for level of quality J.

[0050] More specifically, in one embodiment, the encoder 140 applies an upsample operation J to a first version of signal data SJ-1T to produce signal data SJ1. The encoder 140 then calculates a difference between the signal data SJ and SJ1 to produce residual data 118-1. Residual data 118-1 indicates modifications that need to be made to signal data SJ1 to reproduce, with a desired accuracy, signal data SJ (e.g., signal 115).

[0051] In one embodiment, the encoder 140 applies quantization process QJ to produce residual data 119-1. Step QJ represents application of a function that adjusts the setting of individual values in the residual data 118-1 to be the same value or symbol if the respective magnitudes of such elements fall within a range or are above/below a threshold value. As an example, via quantization, the encoder 140 can identify settings of individual elements in the residual data 118-1 having a value falling in a range between -1.5 and +1.5. For those values that fall within this range, the encoder 140 sets such values in the adjusted residual data 119-1 to a predetermined value such as zero; the encoder 140 can identify settings of individual elements in the residual data 118-1 falling in a range between -7.5 and -6.5 and set such values in the adjusted residual data 119-1 to a setting of -7.0, and so on. Accordingly, the quantization QJ reduces an entropy of the residual data 118-1. That is, the values of residual data are modified so that they are more similar to each other.

[0052] In this example, note that if the signal data SJ is equal to the signal data SJ1, then the produced residual data will be all zero values (e.g., minimum entropy). In such an instance, there would be no need to tweak signal data SJ-1 as there would be a lowest possible entropy associated with the residual data 118-1.

[0053] A more likely case is that the signal data SJ and SJ1 will not be equal. Entropy of the residual data 118-1 and adjusted residual data 119-1 will likely be non-zero values. In this instance, assume that the residual data 118-1 and adjusted residual data 119-1 include non-zero values. High entropy of residual data is undesirable because it means that extra data must be used to reconstruct the original signal 115. It is typically desirable to reduce the overall amount of data needed to reconstruct the signal 115.

[0054] In one embodiment, to reduce an entropy of the residual data 119-1, the encoder 140 repeatedly tweaks the signal data SJ-1 and upsamples different versions of the tweaked signal data SJ-1T into signal data SJ1 until the respective tweaks to individual elements of signal data SJ-1 result in a substantially lower or the lowest entropy of residual data 119-1.

[0055] Tweaking can be performed on a per element basis. That is, the encoder 140 can select an element in the signal data SJ-1 and repeatedly tweak a value of the element to identify a respective setting that reduces an entropy associated with residual data 119-1. The encoder can reduce a magnitude of the tweak to the selected element as the tweaked value becomes closer to producing a substantially lower entropy metric for the next level's residual data.

[0056] Upon identifying the appropriate best tweak to the selected element, the encoder 140 then saves the tweaked signal data for the element and stores it in signal data SJ-1T.

[0057] Using each of the substantially best tweaks for previously tested elements, the encoder 140 then selects a next element in the signal data SJ-1 to tweak and repeats the above process to identify a best setting for the selected element, and so on.

[0058] Subsequent to completing a process of producing tweaked signal data SJ-1T for level of quality J-1 that reduces an entropy of residual data 119-1, the encoder 140 then repeats the same process for each next lower level of quality.

[0059] For example, at a next lower level of quality, the encoder 140 downsamples the signal data SJ-1T into signal data SJ-2. Subsequent to this downsampling, the encoder 140 tweaks or adjusts settings of individual elements in the signal data SJ-2 to identify which tweaked settings to signal data SJ-2 reduces an entropy associated with residual data 119-2 produced for level of quality J-1.

[0060] More specifically, in one embodiment, the encoder 140 applies an upsample operation J-1 to the signal data SJ-2T to produce signal data SJ-11. The encoder 140 then calculates a difference between the signal data SJ-1T and SJ-11 to produce residual data 118-2. The encoder 140 then applies quantization process to produce residual data 119-2.

[0061] As previously discussed, quantization can include application of a function that adjusts the setting of individual values in the signal data to be the same value or symbol if the respective magnitudes of such values fall within a range or are above/below a threshold value.

[0062] To reduce an entropy of the residual data 119-2, the encoder 140 repeatedly tweaks the signal data SJ-2 and upsamples the tweaked signal data SJ-2T into signal data SJ-11 until the respective tweaks to individual elements of signal data SJ-2 result in a substantially lower or the lowest entropy of residual data 119-2.

[0063] As previously mentioned, tweaking can be performed on a per element basis. That is, the encoder can select an element in the signal data SJ-2 and repeatedly tweak a value of the selected element to identify a setting that reduces an entropy associated with residual data 119-2. Upon identifying appropriate tweaks to the selected element, the encoder 140 then saves the tweaked signal data for the element and stores it in signal data SJ-2T.

[0064] The encoder 140 then selects a next element in the signal data SJ-1 to tweak and repeats the above process to identify a best setting for each selected element, and so on.

[0065] Subsequent to completing a process of producing tweaked signal data SJ-2T for level of quality J-2 that reduces an entropy of residual data 119-2, the encoder 140 then repeats the same process for each next lower level of quality. Accordingly, the encoder 140 produces tweaked sets of signal data at lower levels of quality in the hierarchy.

[0066] Note that the encoder 140 can be configured to test multiple different upsample options (e.g., one or more upsample operations) to identify which of multiple upsample options produces the lowest entropy of residual data. In other words, the encoder 140 can repeat the process of downsampling and tweaking for each of multiple upsample operations to identify which upsample operation(s) best reduce the entropy of residual data at the next higher level of quality.

[0067] FIG. 2 is an example diagram illustrating a downsampling method according to embodiments herein. Note that the discussion of the multi-loop algorithm in FIG. 2 will include references to the processing discussed in FIG. 1.

[0068] In step 200, the encoder 140 selects a level of quality to process. Assume in that this example that the encoder 140 selects and starts at level of quality J.

[0069] In step 205, the encoder 140 applies a selected downsample operation to produce signal data SJ-1.

[0070] In step 210, the encoder 140 selects an upsample option amongst multiple possible upsample options. Each upsample option may include upsampling via one or more upsample operations.

[0071] In step 215, the encoder 140 applies the selected upsample option to signal data SJ-1 to produce residual data 118-1.

[0072] In step 220, the encoder 140 applies a process (e.g., quantization or simulated quantization) to the residual data 118-1 to produce adjusted residual data 119-1.

[0073] In step 225, the encoder 140 calculates an entropy (or simulation/approximation thereof) of the adjusted residual data 119-1 and defines it as a current entropy value.

[0074] In step 230, the encoder 140 selects a signal (e.g., signal data SJ-1) to tweak at level of quality J-1.

[0075] In step 235, the encoder 140 selects an element to tweak in the selected signal data SJ-1 to produce signal data SJ-1T.

[0076] In step 240, the encoder 140 adjusts the selected element in signal data SJ-1T in different directions and with potentially different amounts up to a maximum number of iterations. In step 245, the encoder 140 produces residual data 118-1 (or at least a portion of it which is more directly influenced by the selected element) for each adjustment to the selected element.

[0077] In step 250, the encoder 140 processes the residual data 118-1 (or a portion thereof) to produce adjusted residual data 119-1 (or a portion thereof) for each tweak to the selected element as previously discussed.

[0078] In step 255, the encoder 140 calculates an entropy of the adjusted (portion of) residual data 119-1 for each tweak to the selected element to identify and select a substantially better or best setting of the selected element that reduces an entropy of the adjusted (portion of) residual data 119-1.

[0079] In step 260, the encoder 140 repeats loop 4 processing back to step 235 for each element in the selected signal data SJ-1 to identify a substantially best setting for each element in signal data SJ-1. The encoder 140 continues processing at step 260 subsequent to testing all elements.

[0080] In step 265, the encoder 140 applies an upsample operation to tweaked signal data SJ-1T and produces residual data 118-1 and adjusted residual data 119-1.

[0081] In step 270, the encoder 140 processes the residual data 118-1 to produce adjusted residual data 119-1.

[0082] In step 275, the encoder 140 calculates the entropy (or a simulation/approximation thereof) of the adjusted residual data 119-1. If the tweaked signal features lower entropy of adjusted residual data than current optimal entropy, the tweaked signal becomes the new signal to tweak and its entropy of adjusted residual data becomes the new optimal entropy. If not, the encoder 140 aborts tweaked settings and exits from loop 3 to step 285. Otherwise, the encoder 140 continues processing at step 280 to repeat loop 3.

[0083] In step 280, the encoder 140 continues execution at step 230 as long the new tweaked signal generates a lower entropy of adjusted residual data.

[0084] In step 285, the encoder 140 continues execution at step 210 for a next selected upsample option of multiple possible upsample options. When all upsample options have been tested, the encoder 140 continues processing at step 290.

[0085] In step 290, the encoder 140 stores tweaked settings for signal data SJ-1T.

[0086] In step 295, the encoder 140 repeats processing at step 200 to downsample the signal data SJ-1T to a next lower level of quality J-2. The encoder 140 repeats this process until the signal 115 has been downsampled to a lowest desired level of quality.

[0087] FIG. 3 is an example diagram illustrating downsampling of image information according to embodiments herein. As previously discussed, the signal 115 can represent image data. In accordance with such an embodiment, the signal data at each level of quality indicates settings of elements (e.g., pels/plane elements) in a respective image.

[0088] In one embodiment, each color component of an element in the signal data is encoded in accordance with a color space standard such as YUV, RGB or HSV, although the attributes of signal 115, when defining an image, can be encoded according to any suitable format.

[0089] Downsampling results in reducing a resolution and corresponding level of quality of respective signal data. For example, signal data for level of quality 3 indicates settings of elements in respective image 510-3; signal data for level of quality 2 indicates settings of elements in respective image 510-2; signal data for level of quality 1 indicates settings of elements in respective image 510-1, and so on.

[0090] When downsampling in a manner as previously discussed, the encoder 140 produces signal data for a next lower level of quality (e.g., level 2) to define, for example, image 510-2; the encoder 140 produces signal data for a next lower level of quality (e.g., level 1) to define, for example, image 510-1; and so on.

[0091] As previously discussed, the amount of data to define the downsampled image can be reduced for each lower level of quality to a desired lowest level of quality. That is, when executing a 2:1 scaled downsampling from level 3 to level 2, the encoder 140 reduces multiple elements Y in image 510-3 to a single element X in respective image 510-2 as shown. When downsampling from level 2 to level 1, the encoder 140 reduces multiple elements X in image 510-3 to a single element W in respective image 510-1, and so on. FIG. 4 is an example diagram illustrating further encoding of a signal according to embodiments herein.

[0092] In a manner as previously discussed, the encoder 140 downsamples signal 115 into different sets of signal data including signal data S3T, signal data S2T, signal data S1T.

[0093] Note that that the process of tweaking during downsampling is optional. In accordance with other embodiments, any suitable downsample operation(s) can be applied by the encoder 140 to produce base sets of data in lieu of tweaked signal data such as signal data S3T, signal data S2T, S1T.

[0094] At a lowest level of quality such as level of quality 1, the encoder 140 can be configured to apply quantization function Q1 to the signal data S1T to produce signal data S12. As previously discussed, quantization reduces an entropy of respective signal data.

[0095] Note that signal data S12 is reduced information representing the signal 115 at the lowest level of quality (e.g., level of quality #1) in the hierarchy.

[0096] The encoder 140 selects an upsample operation in which to upsample signal data S12 into signal data S2U (e.g., an intermediate rendition of the signal at the given level of quality).

[0097] For the selected upsample operation, at level of quality 2, the encoder 140 produces residual data 418-1 based on a difference between signal data S2T and signal data S2U. Because the encoding process may be lossy, the upsampled signal data S2U is likely similar to but not identical to signal data S2T.

[0098] The encoder 140 then applies quantization function QJ to residual data 418-1 to produce adjusted residual data 419-1 in a manner as previously discussed. The encoder 140 can repeat this process for each of multiple different operations to determine which upsample operation or operations are best for reducing an entropy associated with adjusted residual data 419-1.

[0099] The encoder 140 then stores the signal data S12, substantially best identified upsample operation, and corresponding adjusted residual data 419-1 for level of quality #1. For this stored information, the encoder 140 adds the adjusted residual data 419-2 and signal data S2U to produce signal data S22.

[0100] Signal data S22 is a set of reduced information representing the signal at level of quality 2 in the hierarchy. Accordingly, embodiments herein include tweaking elements in the intermediate rendition of the signal (i.e., signal data S2U) at the second level of quality to produce a tweaked rendition of the signal (e.g., signal data S22) at the second level of quality.

[0101] As will be discussed in FIG. 6, the encoder 140 generates residual data 470-2 based on a difference between an upsampled rendition of the signal 115 (e.g., signal data S2U) at the second level of quality and the tweaked rendition of the signal (e.g., signal data S23) at the second level of quality; the encoder 140 generates residual data 470-3 based on a difference between an upsampled rendition of the signal 115 (e.g., signal data S3U) at the second level of quality and the tweaked rendition of the signal (e.g., signal data S33) at the second level of quality; and so on.

[0102] Referring again to FIG. 4, the encoder 140 performs upsampling from level of quality 2 to level of quality 3 in a similar manner as discussed above for upsampling from level of quality 1 to level of quality 2. As an example, at level of quality 2, the encoder 140 selects an upsample operation (amongst multiple possible upsample operations) in which to upsample signal data S22 into signal data S3U. For the selected upsample operation, at level of quality 3, the encoder 140 produces residual data 418-2 based on a difference between signal data S3T and signal data S3U. Because the encoding process may be lossy, the upsampled signal data S3U is likely similar to but not identical to signal data S3T.

[0103] The encoder 140 then applies quantization function QJ to residual data 418-2 to produce adjusted residual data 419-2 in a manner as previously discussed.

[0104] The encoder 140 can repeat this process for testing each of multiple different operations to determine which upsample operation or operations are best for reducing an entropy associated with adjusted residual data 419-2.

[0105] The encoder 140 then stores the signal data S22, respective best upsample operation, and corresponding adjusted residual data 419-2 for level of quality #2. The encoder 140 adds the adjusted residual data 419-2 and signal data S3U to produce signal data S32. Signal data S33 is a set of reduced information representing the signal at level of quality 3 in the hierarchy.

[0106] The encoder 140 repeats this process as shown up to level of quality N in the hierarchy.

[0107] FIG. 5 is an example diagram illustrating encoding of a signal including tweaking of elements during upsampling to reduce an entropy of residual data according to embodiments herein. In this example embodiment, unlike the example in FIG. 4, the encoder 140 performs tweaking of elements while upsampling to produce tweaked data for each level of quality.

[0108] In a manner as previously discussed, the encoder 140 downsamples signal 115 into any suitable sets of signal data representative of the signal 115 at lower levels of quality. Thus, downsampled signal data at lower levels may or may not be derived from tweaking during downsampling.

[0109] At a lowest level of quality such as level of quality 1, the encoder 140 applies quantization function Q1 to the downsampled signal data S1T to produce signal data S12. Signal data S12 is compressed or reduced information representing the signal at the lowest level of quality in the hierarchy. Application of quantization step Q1 to produce signal data S12 can be part of the downsampling process.

[0110] The encoder 140 then selects an upsample operation in which to upsample a tweaked version of signal data S12 (e.g., signal data S13) into signal data S2U.

[0111] In this embodiment, the encoder 140 tweaks settings of signal data S12 to produce a set of signal data S13 that reduces an entropy associated with adjusted residual data 519-1. For example, in one embodiment, the encoder 140 selects an element in signal data S12 and repeatedly tweaks the selected element to identify which setting of the selected element produces a lowest entropy of adjusted residual data 519-1. The encoder 140 repeats the tweaking for each element in the signal data S12 to produce signal data S13.

[0112] Note that in addition to identifying a best setting for each element for the selected upsample operation, the encoder 140 can test each of multiple possible upsample operations to identify which operations and corresponding tweaks (for the different upsample operations) are best for producing the substantially lowest entropy associated with adjusted residual data 519-1.

[0113] Subsequent to identifying substantially best tweaked settings for signal data S12 and substantially best upsample operation, the encoder 140 then stores the tweaked signal data S13, best identified upsample operation, and corresponding adjusted residual data 519-1 for level of quality #1. For this stored information, the encoder 140 adds the adjusted residual data 519-1 and signal data S2U to produce signal data S22. Signal data S22 is a set of reduced information representing the signal at level of quality 2 in the hierarchy.

[0114] The encoder 140 then performs upsampling from level of quality 2 to level of quality 3 in a similar manner as discussed above for upsampling fom level of quality 1 to level of quality 2. The encoder 140 repeats this process for each next higher level of quality until reaching the highest level of quality.

[0115] In one embodiment, the encoder 140 parses the downsampled rendition of the signal (e.g., signal data S3T, signal data S2T, signal data S1T) at the first level of quality into multiple contiguous regions of image elements. The encoder then employs parallel processing units to simultaneously process the multiple regions to identify adjustments to elements in the multiple regions to reduce an entropy associated with the residual data.

[0116] In accordance with further embodiments, the encoder 140 can at least occasionally perform a so-called global check that selected adjustments to the elements in the individual contiguous regions that are processed in parallel do not substantially cause increased entropy of residual data for the overall signal data being processed.

[0117] FIG. 6 is an example diagram illustrating generation of residual data for use by a decoder according to embodiments herein.

[0118] As shown, the encoder 140 stores signal data S13 as residual data 470-1. The encoder 140 sets residual data 470-2 equal to a difference between signal data S2U and signal data S23; the encoder 140 sets residual data 470-3 equal to a difference between signal data S3U and signal data S33; and so on. In general, residual data 470-2 indicates the adjustments that need to be made to signal data S2U in order to produce signal data S23; residual data 470-3 indicates the adjustments that need to be made to signal data S3U in order to produce signal data S33; and so on.

[0119] In one embodiment, a decoder uses residual data 470-1 to reconstruct S13 at lowest level of quality 1. At a next higher level (e.g., from level of quality 2 to level of quality 3), the decoder applies the selected upsample operation for the level of quality to convert signal data S13 into signal data S2U; the decoder sums residual data 470-2 and signal data S2U to produce S23. At a next higher level (e.g., from level of quality 3 to level of quality 4), the decoder applies the selected upsample operation for the level of quality to convert signal data S23 into signal data S3U; the decoder sums residual data 470-3 and signal data S3U to produce S33. The decoder repeats this process until it reconstructs the original 115 into a desired level of quality.

[0120] FIG. 7 is an example diagram illustrating generation of residual data for use by a decoder according to embodiments herein. In this example embodiment, the encoder uses sets of adjusted residual data 519 to produce sets of residual data 470.

[0121] For example, the encoder 140 sets residual data 470-1 equal to signal data S1. The encoder 140 identifies a difference between signal data S23 and signal data S22 and adds the result to adjusted residual data 519-1 to produce residual data 470-2; the encoder 140 identifies a difference between signal data S33 and signal data S32 and adds the result to adjusted residual data 519-2 to produce residual data 470-3; and so on.

[0122] Note that the decoder uses the residual data 470 in a manner as discussed above to reconstruct the original 115 to a desired level of quality.

[0123] FIG. 8 is an example diagram illustrating generation of tweaking downsampled data according to embodiments herein.

[0124] In step 805, the encoder 140 repeatedly downsamples the signal 115 at successively lower levels to a lowest level of quality. As previously discussed, the process can include application of any suitable downsampling function, which may or may not include tweaking each element as previously discussed.

[0125] In step 810, the encoder 140 selects a level of quality to process starting at the lowest level of quality.

[0126] In step 815, the encoder 140 selects an upsample option amongst multiple possible upsample options.

[0127] In step 820, the encoder 140 applies the selected upsample option to signal data at the selected level of quality to produce residual data at a next higher level of quality (e.g., a level above the selected level of quality).

[0128] In step 825, the encoder 140 applies a process (e.g., quantization function, filter function, etc.) to the residual data to produce adjusted residual data.

[0129] In step 830, the encoder 140 calculates and entropy of the adjusted residual data at the next higher level of quality and defines it as a current optimal entropy value.

[0130] In step 835, the encoder 140 selects a signal (e.g., signal S12) to tweak at the selected level of quality.

[0131] In step 840, the encoder 140 selects an element to tweak in the selected signal.

[0132] In step 845, the encoder 140 adjusts the selected element in different directions and amounts up to a maximum iteration value.

[0133] In step 850, the encoder 140 produces residual data and adjusted residual data for each adjustment to the selected element for the next higher level of quality.

[0134] In step 855, the encoder 140 processes the residual data to produce adjusted residual data 119-1 using a quantization function (or simulation/approximation thereof) as previously discussed.

[0135] In step 860, the encoder 140 calculates an entropy of the adjusted residual data at the next higher level of quality for each tweak to the selected element to identify and select a better or substantially best setting of the selected element that reduces an entropy of the adjusted residual data.

[0136] In step 865, the encoder 140 repeats loop 4 (e.g., continues execution back to step 840) for each element in the selected signal data. The encoder 140 continues processing at step 870 subsequent to testing and tweaking all elements.

[0137] In step 870, the encoder 140 applies an upsample operation to tweaked signal data at the selected level of quality and produces residual data at the next higher level of quality.

[0138] In step 875, the encoder 140 processes (e.g., by quantization or a suitable simulation/approximation thereof) the residual data at the next higher level of quality to produce respective adjusted residual data.

[0139] In step 880, the encoder 140 calculates the entropy of the adjusted residual data. If the tweaked signal features lower entropy of adjusted residual data than current optimal entropy for the selected signal, the tweaked signal becomes the new signal to tweak and its entropy of adjusted residual data becomes the new optimal entropy. If not, the encoder 140 aborts tweaked settings and exits from loop 3 to step 890. Otherwise, the encoder 140 continues processing at step 885.

[0140] In step 885, the encoder 140 continues execution at step 835 for the newly selected signal as long the new tweaked signal generates a lower entropy of adjusted residual data.

[0141] In step 890, the encoder 140 continues execution at step 210 for a next selected upsample option of multiple possible upsample options. When all upsample options have been tested, the encoder 140 continues processing at step 895.

[0142] In step 895, the encoder 140 stores tweaked settings for the selected level of quality by updating the adjusted residual data for the current level of quality, storing the best upsample option, and corresponding adjusted residual data.

[0143] In step 898, the encoder 140 repeats processing at step 810 to identify best tweakings, best upsample operation and adjusted residual data for each successively higher level of quality in the hierarchy.

[0144] FIG. 9 is a diagram illustrating an example method of processing a received signal according to embodiments herein.

[0145] During a downsampling process as shown, the encoder 140 initiates downsampling of signal data S2T into signal data S1T at a next lower level of quality in the hierarchy.

[0146] Subsequent to completion of downsampling, the encoder 140 performs upsampling at a lowest level. In accordance with such an embodiment, the encoder 140 selects an element (e.g., W1) to tweak. For each tweak to the selected element W1, the encoder 140 upsamples the tweaked signal data S13 to produce signal data S2U.

[0147] In this example, upsampling using UTEST causes the element W1 to be expanded into element and respective values X1=99, X2=101, X3=99, and X4=95. The encoder 140 then produces residual data 518-1 and adjusted residual data 519-1 in a manner as previously discussed. The quantization of residual data 518-1 can include setting near zero values in the residual data 518-1 to zero values in the adjusted residual data 519-1. That is, element set to values +1 or -1 in residual data 518-1 are set to a value of 0 to produce the adjusted residual data 519-1.

[0148] Note that a range or threshold value for implementing quantization can vary at different levels in the hierarchy. For example, a smaller range or lower threshold value may be used at the lower levels of quality to preserve a quality of the image at the higher levels of quality. In other words, it may be desired to generate more residual data at the lower levels to prevent a need for generating much more residual data at a higher level.

[0149] FIG. 10 is a diagram illustrating an example of producing entropy values according to embodiments herein.

[0150] One embodiment herein includes utilizing a suitable metric that can quickly determine whether an alteration (e.g., tweak) improves or worsens the entropy of respective residuals. As previously discussed, entropy of residual data can be a measure of how much information is necessary to transmit residuals, where residual data includes symbols or numbers.

[0151] Entropy at a basic level depends on how many different symbols are encoded in the residual data. The higher the number of different symbols in the residual data, the higher the entropy. Large drops of entropy can be achieved when there is mainly only one symbol that is much more likely than all the others. When that is the case, it is almost irrelevant whether all of the other symbols are just one symbol or many other symbols. One method of calculating an entropy value for residual data is to count a number of values in the residual data that are greater than a threshold value or fall within a particular range. The entropy value produced in this manner (e.g., using a rectangular step function) is mathematically non-differentiable. That is, as specified in FIG. 10, the step function 1010 is a rectangular function having an infinite slope at the threshold value.

[0152] In accordance with another embodiment, the encoder 140 can be configured to implement a continuous function 1020 (e.g., a differentiable function) that simulates a substantially rectangular function (e.g., step function 1010). The continuous function 1010 facilitates quantification of entropy associated with the residual data based on use of derivatives. For example, one embodiment herein includes utilizing a sigmoid function to simulate the rectangular function. In accordance with such an embodiment, the encoder 140 maps each element value in the residual data to a respective count value (e.g., decimal value) based on the function 1020 instead of step function 1010. In the previous example, the encoder 140 maps each to a value of one or zero depending on whether the element value was above or below the threshold. In contrast, when using the function 1020, the encoder 140 maps a respective element to a non-integer value (e.g., decimal value) greater than zero and less than one.

[0153] For a given tweaking, when using the function 1020, the encoder 140 produces an entropy value by summing the respective decimal count values produced for each of the elements. The encoder 140 repeats this process using the function 1020 for each tweaking. Based on the entropy values for the tweakings of a given element, the encoder 140 produces the function in FIG. 11 indicating how entropy of the residual data changes based on tweaking of a respective element.

[0154] The function 1128 in FIG. 11 is a differentiable function. That is, producing a derivative of the function 1128 enables the encoder 140 to identify where the slope of the function 1128 is approximately zero. This point (where slope is substantially equal to zero) in the function 1128 indicates a setting of the respective element that produces the lowest entropy for residual data.

[0155] Accordingly, embodiments herein include generating an entropy function 1128 in which a magnitude of the entropy function varies depending on different possible adjustments to the selected element under test in the downsampled signal and then utilizing the entropy function 1128 to identify an adjustment to the element in the downsampled signal in which a respective entropy of the residual data for the adjustment is substantially minimal amongst different possible variations of the element under test. The horizontal axis of the graph in FIG. 11 indicates the different possible variations of the element under test while the vertical axis indicates the relative entropy of respective residual data for the settings. FIG. 12 is an example block diagram of a computer system 800 that provides computer processing according to embodiments herein.

[0156] Computer system 800 can be or include a computerized device such as a personal computer, processing circuitry, workstation, portable computing device, console, network terminal, processing device, network device, operating as a switch, router, server, client, etc.

[0157] Note that the following discussion provides a basic embodiment indicating how to carry out functionality associated with encoder 140 as previously discussed. However, it should be noted that the actual configuration for carrying out the operations as described herein can vary depending on a respective application.

[0158] As shown, computer system 800 of the present example includes an interconnect 811 that couples computer readable storage media 812 such as a non-transitory type of media, computer readable, hardware storage medium, etc., in which digital information can be stored and retrieved. Computer system 800 can further include a processor 813, I/O interface 814, and a communications interface 817.

[0159] I/O interface 814 provides connectivity to repository 180, and if present, display screen, peripheral devices 816 such as a keyboard, a computer mouse, etc.

[0160] Computer readable storage medium 812 (e.g., a hardware storage media) can be any suitable device and/or hardware such as memory, optical storage, hard drive, floppy disk, etc. The computer readable storage medium can be a non-transitory storage media to store instructions associated with encoder 140-1. The instructions are executed by a respective resource such as encoder 140 to perform any of the operations as discussed herein.

[0161] Communications interface 817 enables computer system 800 to communicate over network 190 to retrieve information from remote sources and communicate with other computers, switches, clients, servers, etc. I/O interface 814 also enables processor 813 to retrieve or attempt retrieval of stored information from repository 180.

[0162] As shown, computer readable storage media 812 can be encoded with encoder application 140-1 executed by processor 813 as encoder process 140-2.

[0163] Note that the computer system 800 or encoder 140 also can be embodied to include a computer readable storage medium 812 (e.g., a hardware storage media, non-transitory storage media, etc.) for storing data and/or logic instructions.

[0164] Computer system 800 can include a processor 813 to execute such instructions and carry out operations as discussed herein. Accordingly, when executed, the code associated with encoder application 140-1 can support processing functionality as discussed herein. During operation of one embodiment, processor 813 accesses computer readable storage media 812 via the use of interconnect 811 in order to launch, run, execute, interpret or otherwise perform the instructions of encoder application 140-1 stored in computer readable storage medium 812. Execution of the encoder application 140-1 produces processing functionality in processor 813. In other words, the encoder process 140-2 associated with processor 813 represents one or more aspects of executing encoder application 140-1 within or upon the processor 813 in the computer system 800.

[0165] Those skilled in the art will understand that the computer system 800 can include other processes and/or software and hardware components, such as an operating system that controls allocation and use of hardware processing resources to execute encoder application 140-1.

[0166] In accordance with different embodiments, note that computer system may be any of various types of devices, including, but not limited to, a personal computer system, desktop computer, laptop, notebook, netbook computer, mainframe computer system, handheld computer, workstation, network computer, application server, storage device, a consumer electronics device such as a camera, camcorder, set top box, mobile device, video game console, handheld video game device, a peripheral device such as a switch, modem, router, or, in general, any type of computing or electronic device.

[0167] Note again that techniques herein are well suited for use in processing and reconstructing signals using a decoder. However, it should be noted that embodiments herein are not limited to use in such applications and that the techniques discussed herein are well suited for other applications as well.

[0168] Based on the description set forth herein, numerous specific details have been set forth to provide a thorough understanding of claimed subject matter. However, it will be understood by those skilled in the art that claimed subject matter may be practiced without these specific details. In other instances, methods, apparatuses, systems, etc., that would be known by one of ordinary skill have not been described in detail so as not to obscure claimed subject matter. Some portions of the detailed description have been presented in terms of algorithms or symbolic representations of operations on data bits or binary digital signals stored within a computing system memory, such as a computer memory. These algorithmic descriptions or representations are examples of techniques used by those of ordinary skill in the data processing arts to convey the substance of their work to others skilled in the art. An algorithm as described herein, and generally, is considered to be a self-consistent sequence of operations or similar processing leading to a desired result. In this context, operations or processing involve physical manipulation of physical quantities. Typically, although not necessarily, such quantities may take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared or otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to such signals as bits, data, values, elements, symbols, characters, terms, numbers, numerals or the like. It should be understood, however, that all of these and similar terms are to be associated with appropriate physical quantities and are merely convenient labels. Unless specifically stated otherwise, as apparent from the following discussion, it is appreciated that throughout this specification discussions utilizing terms such as "processing," "computing," "calculating," "determining" or the like refer to actions or processes of a computing platform, such as a computer or a similar electronic computing device, that manipulates or transforms data represented as physical electronic or magnetic quantities within memories, registers, or other information storage devices, transmission devices, or display devices of the computing platform.

[0169] While this invention has been particularly shown and described with references to preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein. As such, the foregoing description of embodiments of the present application is not intended to be limiting. Rather, any limitations to the invention are presented in the following claims.


Claims

1. A spatial scalability method of encoding a signal, at different levels of quality in a hierarchy, the signal indicating values of multiple picture elements, said picture elements comprising pixels or voxels, of an image or a video, the method comprising:

having said signal as input;

selecting (200) a level of quality to process;

utilizing (205) at least one downsample operation (805) to produce a rendition of the signal (501-1, 501-2) at a lower level of quality in the hierarchy;

selecting (210) an upsample operation amongst one or more possible upsample options;

applying (215) the selected upsample operation to a rendition of the signal at the lower level of quality to produce a first upsampled rendition of the signal at a second level of quality in the hierarchy, the second level of quality being higher than the lower level of quality;

producing first residual data indicating a difference between a rendition of the signal at the second level of quality and the first upsampled rendition of the signal at the second level of quality;

applying (220) a process comprising at least quantization to produce quantized first residual data

calculating (225) a first entropy of the quantized first residual data and defining said entropy as a current entropy;

selecting (230) the signal at the lower level of quality;

selecting (235) a picture element in the selected signal at the lower level of quality;

adjusting (240) the picture element by increasing or decreasing a value of the picture element;

upsampling the signal at the lower level of quality containing the adjusted picture element using the selected upsampling operation to produce a second upsampled rendition at the second level of quality in the hierarchy;

producing (245) second residual data indicating a difference between a rendition of the signal at the second level of quality and the second upsampled rendition of the signal at the second level of quality;

processing (250) the second residual data to produce quantized second residual data, said processing comprising quantization;

calculating (255) a second entropy of the quantized second residual data and selecting adjustments to the picture element that reduce the second entropy of the quantized second residual data;

iteratively performing (260) the selecting (235), adjusting (240), upsampling producing (245) and calculating (255) steps for each picture element within the rendition of the signal at the lower level of quality to obtain an adjusted lower level signal;

upsampling (265) the adjusted lower level signal using the selected upsampling operation to produce a third upsampled rendition at a second level of quality in the hierarchy;

producing third residual data indicating a difference between a rendition of the signal at the second level of quality and the third upsampled rendition of the signal at the second level of quality;

processing the third residual data (270) to produce quantized third residual data, said processing comprising quantization;

calculating an third entropy (275) of the quantized third residual data;

if (280) the third entropy is lower than the current entropy,

the adjusted lower level signal is set to the signal at the lower level of quality, the third entropy is set as current entropy, and

repeating (280) the steps of selecting elements (235), upsampling (265), producing residual data, applying the process (270), and calculating the entropy (275) on the adjusted lower signal as long as the adjusted lower level signal generates a lower entropy, wherein the repeating is exited if the calculated third entropy is not lower than the current entropy and any adjusted lower level signal with lower entropy is set as an adjusted lower level signal to use for encoding the signal;

otherwise

repeating (285) the steps of selecting an upsample operation (210), applying the upsample operation (215), calculating and processing first residual data (22) and calculating a first entropy (225) for the set of possible upsample operations to identify an upsample operation with a lowest entropy.


 
2. The method as in claim 1, wherein either the at least one downsample operation (205) or the at least one upsample operation (215), or possibly both, are non-linear.
 
3. The method as in claim 1 further comprising:
applying a continuous transform function to the residual data to determine one or more values of an entropy metric, the continuous transform function comprising a sigmoid function.
 
4. The method as in claim 3, wherein the continuous transform function is a sigmoid function.
 
5. The method as in claim 1 further comprising:

parsing the rendition of the signal at the first level of quality into multiple contiguous regions of picture elements; and

simultaneously processing the multiple regions in parallel to identify adjustments to picture elements in the multiple regions to locally reduce an entropy associated with the adjusted residual data.


 
6. The method as in claim 5 further comprising:
performing a global check of adjustments to the picture elements in the multiple regions to reduce an entropy of the residual data.
 
7. The method as in claim 1, wherein utilizing the at least one downsample operation (205) to produce renditions of the signal at successively lower levels of quality in the hierarchy further comprises:
for each of multiple successively lower levels of quality in the hierarchy, repeating steps of:

downsampling the signal;

selecting a picture element to adjust in the downsampled signal at a selected level of quality;

increasing or decreasing a value for the selected picture element to produce the residual data; and

calculating one or more values for the entropy metric using the residual data to identify which adjustment to the selected picture element minimizes the entropy metric.


 
8. The method as in claim 1, wherein utilizing the at least one downsample operation (205) to produce the renditions of the signal at successively lower levels of quality further comprises:

selecting (200) a level of quality J from which to downsample the signal, the level of quality J representing a highest level of quality in the hierarchy;

applying a selected downsampling operation (205) to the signal at the level of quality J to generate a rendition of the signal at a level of quality J-1, the level of quality J-1 being a next lower level of quality beneath the level of quality J;

repeatedly increasing or decreasing (280) values of picture elements in the rendition of the signal at level of quality J-1 to identify an adjusted rendition of the signal at the level of quality J-1 that reduces an entropy metric associated with the residual data needed to reconstruct the signal at level of quality J;

applying a selected downsampling operation (295) to the adjusted rendition of the signal at the level of quality J-1 to generate a rendition of the signal at a level of quality J-2, the level of quality J-2 being a next lower level of quality beneath the level of quality J-1.


 
9. The method as in claim 8 further comprising:

repeatedly increasing or decreasing (280) values of picture elements in the rendition of the signal at level of quality J-2 to identify an adjusted rendition of the signal at the level of quality J-2 that reduce an entropy metric associated with the residual data needed to reconstruct the tweaked rendition of the signal at level of quality J-1; and

repeating steps of applying a selected downsampling operation and repeatedly adjusting settings in the hierarchy at pairs of successively lower levels of quality to produce the rendition of the signal at the second level of quality and the first level of quality.


 
10. The method as in claim 9 further comprising:
repeatedly testing which of multiple possible upsample operations (285) and adjustments (280) of values of picture elements in the rendition of the signal at level of quality J-1 reduces a value of an entropy metric associated with residual data needed to reconstruct the signal at level of quality J.
 
11. Computer-readable storage hardware (812) having instructions stored thereon, the instructions, when carried out by a processing device, causing the processing device to perform the method of anyone of claims 1-10.
 
12. A computer system (800) comprising:

a processor (813);

a memory unit (812) that stores instructions associated with an application executed by the processor; and
an interconnect (811) coupling the processor and the memory unit, enabling the computer system to execute the application and perform the method of anyone of claims 1-10.


 


Ansprüche

1. Räumliches Skalierbarkeitsverfahren zum Codieren eines Signals auf verschiedenen Qualitätsebenen in einer Hierarchie, wobei das Signal Werte von mehreren Bildelementen anzeigt, wobei die Bildelemente Pixel oder Voxel eines Bildes oder eines Videos umfassen, wobei das Verfahren Folgendes umfasst:

Verwenden des Signals als Eingabe;

Auswählen (200) eines zu verarbeitenden Qualitätsniveaus;

Verwenden (205) mindestens einer Downsample-Operation (805), um eine Wiedergabe des Signals (501-1, 501-2) auf einem niedrigeren Qualitätsniveau in der Hierarchie zu erzeugen;

Auswählen (210) einer Upsample-Operation aus einer oder mehreren möglichen Upsample-Optionen;

Anwenden (215) der ausgewählten Upsample-Operation auf eine Wiedergabe des Signals auf dem niedrigeren Qualitätsniveau, um eine erste upgesampelte Wiedergabe des Signals auf einem zweiten Qualitätsniveau in der Hierarchie zu erzeugen, wobei das zweite Qualitätsniveau höher ist als das niedrigere Qualitätsniveau;

Erzeugen von ersten Restdaten, die eine Differenz zwischen einer Wiedergabe des Signals auf dem zweiten Qualitätsniveau und der ersten upgesampelten Wiedergabe des Signals auf dem zweiten Qualitätsniveau anzeigen;

Anwenden (220) eines Prozesses, der zumindest eine Quantisierung umfasst, um quantisierte erste Restdaten zu erzeugen;

Berechnen (225) einer ersten Entropie der quantisierten ersten Restdaten und Definieren der Entropie als eine aktuelle Entropie;

Auswählen (230) des Signals mit dem niedrigeren Qualitätsniveau;

Auswählen (235) eines Bildelements in dem ausgewählten Signal mit dem niedrigeren Qualitätsniveau;

Einstellen (240) des Bildelements durch Erhöhen oder Verringern eines Wertes des Bildelements;

Upsampeln des Signals auf dem niedrigeren Qualitätsniveau, das das angepasste Bildelement enthält, unter Verwendung der ausgewählten Upsample-Operation, um eine zweite upgesampelte Wiedergabe auf dem zweiten Qualitätsniveau in der Hierarchie zu erzeugen;

Erzeugen (245) von zweiten Restdaten, die eine Differenz zwischen einer Wiedergabe des Signals auf dem zweiten Qualitätsniveau und der zweiten upgesampelten Wiedergabe des Signals auf dem zweiten Qualitätsniveau anzeigen;

Verarbeiten (250) der zweiten Restdaten, um quantisierte zweite Restdaten zu erzeugen, wobei die Verarbeitung eine Quantisierung umfasst;

Berechnen (255) einer zweiten Entropie der quantisierten zweiten Restdaten und Auswählen von Anpassungen an dem Bildelement, die die zweite Entropie der quantisierten zweiten Restdaten reduzieren;

iteratives Ausführen (260) der Schritte des Auswählens (235), des Einstellens (240), des Upsample-Erzeugens (245) und des Berechnens (255) für jedes Bildelement innerhalb der Wiedergabe des Signals auf dem niedrigeren Qualitätsniveau, um ein eingestelltes Signal mit niedrigerem Niveau zu erhalten;

Upsampeln (265) des angepassten Signals mit niedrigerem Niveau unter Verwendung der ausgewählten Upsample-Operation, um eine dritte upgesampelte Wiedergabe auf einem zweiten Qualitätsniveau in der Hierarchie zu erzeugen;

Erzeugen von dritten Restdaten, die eine Differenz zwischen einer Wiedergabe des Signals auf dem zweiten Qualitätsniveau und der dritten upgesampelten Wiedergabe des Signals auf dem zweiten Qualitätsniveau anzeigen;

Verarbeiten der dritten Restdaten (270), um quantisierte dritte Restdaten zu erzeugen, wobei die Verarbeitung eine Quantisierung umfasst;

Berechnen einer dritten Entropie (275) der quantisierten dritten Restdaten;

wenn (280) die dritte Entropie niedriger als die aktuelle Entropie ist,

wird das eingestellte Signal mit niedrigerem Niveau auf das Signal mit dem niedrigeren Qualitätsniveau gesetzt, die dritte Entropie wird als aktuelle Entropie gesetzt, und

Wiederholen (280) der Schritte des Auswählens von Elementen (235), des Upsampelns (265), des Erzeugens von Restdaten, des Anwendens des Prozesses (270) und des Berechnens der Entropie (275) auf das angepasste niedrigere Signal, solange das angepasste Signal mit niedrigerem Niveau eine niedrigere Entropie erzeugt, wobei die Wiederholung verlassen wird, wenn die berechnete dritte Entropie nicht niedriger als die aktuelle Entropie ist und jedes angepasste Signal mit niedrigerem Niveau mit niedrigerer Entropie als ein angepasstes Signal mit niedrigerem Niveau zur Verwendung für die Codierung des Signals eingestellt wird;

andernfalls

Wiederholen (285) der Schritte des Auswählens einer Upsample-Operation (210), des Anwendens der Upsample-Operation (215), des Berechnens und Verarbeitens erster Restdaten (22) und des Berechnens einer ersten Entropie (225) für den Satz möglicher Upsample-Operationen, um eine Upsample-Operation mit einer niedrigsten Entropie zu identifizieren.


 
2. Verfahren nach Anspruch 1, wobei entweder die mindestens eine Downsample-Operation (205) oder die mindestens eine Upsample-Operation (215) oder möglicherweise beide nicht-linear sind.
 
3. Verfahren nach Anspruch 1, das ferner Folgendes umfasst:
Anwenden einer kontinuierlichen Transformationsfunktion auf die Restdaten, um einen oder mehrere Werte einer Entropiemetrik zu bestimmen, wobei die kontinuierliche Transformationsfunktion eine Sigmoidfunktion umfasst.
 
4. Verfahren nach Anspruch 3, wobei die kontinuierliche Transformationsfunktion eine Sigmoidfunktion ist.
 
5. Verfahren nach Anspruch 1, das ferner Folgendes umfasst:

Zerlegen der Wiedergabe des Signals auf dem ersten Qualitätsniveau in mehrere zusammenhängende Bereiche von Bildelementen; und

gleichzeitiges paralleles Verarbeiten der mehreren Bereiche, um Anpassungen an Bildelementen in den mehreren Bereichen zu identifizieren, um eine mit den angepassten Restdaten verbundene Entropie lokal zu reduzieren.


 
6. Verfahren nach Anspruch 5, das ferner Folgendes umfasst:
Durchführen einer globalen Prüfung von Anpassungen an den Bildelementen in den mehreren Regionen, um eine Entropie der Restdaten zu reduzieren.
 
7. Verfahren nach Anspruch 1, wobei die Verwendung der mindestens einen Downsample-Operation (205) zum Erzeugen von Wiedergaben des Signals auf sukzessive niedrigeren Qualitätsniveaus in der Hierarchie ferner Folgendes umfasst:
für jede von mehreren aufeinanderfolgend niedrigeren Qualitätsebenen in der Hierarchie, Wiederholen der folgenden Schritte:

Downsampeln des Signals;

Auswählen eines Bildelements, das in dem downgesampelten Signal auf einem ausgewählten Qualitätsniveau einzustellen ist;

Erhöhen oder Verringern eines Wertes für das ausgewählte Bildelement, um die Restdaten zu erzeugen; und

Berechnen eines oder mehrerer Werte für die Entropiemetrik unter Verwendung der Restdaten, um zu identifizieren, welche Anpassung an das ausgewählte Bildelement die Entropiemetrik minimiert.


 
8. Verfahren nach Anspruch 1, wobei die Verwendung der mindestens einen Downsample-Operation (205) zum Erzeugen der Wiedergaben des Signals auf sukzessive niedrigeren Qualitätsniveaus ferner Folgendes umfasst:

Auswählen (200) eines Qualitätsniveaus J, von dem aus das Signal downgesampelt werden soll, wobei das Qualitätsniveau J ein höchstes Qualitätsniveau in der Hierarchie darstellt;

Anwenden einer ausgewählten Downsample-Operation (205) auf das Signal auf dem Qualitätsniveau J, um eine Wiedergabe des Signals auf einem Qualitätsniveau J-1 zu erzeugen, wobei das Qualitätsniveau J-1 ein nächst niedrigeres Qualitätsniveau unterhalb des Qualitätsniveaus J ist;

wiederholtes Erhöhen oder Verringern (280) von Werten von Bildelementen in der Wiedergabe des Signals auf dem Qualitätsniveau J-1, um eine angepasste Wiedergabe des Signals auf dem Qualitätsniveau J-1 zu identifizieren, die eine Entropiemetrik reduziert, die mit den Restdaten verbunden ist, die benötigt werden, um das Signal auf dem Qualitätsniveau J zu rekonstruieren;

Anwenden einer ausgewählten Downsample-Operation (295) auf die angepasste Wiedergabe des Signals auf dem Qualitätsniveau J-1, um eine Wiedergabe des Signals auf einem Qualitätsniveau J-2 zu erzeugen, wobei das Qualitätsniveau J-2 ein nächst niedrigeres Qualitätsniveau unterhalb des Qualitätsniveaus J-1 ist;


 
9. Verfahren nach Anspruch 8, das ferner Folgendes umfasst:

wiederholtes Erhöhen oder Verringern (280) von Werten von Bildelementen in der Wiedergabe des Signals auf dem Qualitätsniveau J-2, um eine angepasste Wiedergabe des Signals auf dem Qualitätsniveau J-2 zu identifizieren, die eine Entropiemetrik reduziert, die mit den Restdaten verbunden ist, die benötigt werden, um die optimierte Wiedergabe des Signals auf dem Qualitätsniveau J-1 zu rekonstruieren; und

Wiederholen der Schritte des Anwendens einer ausgewählten Downsample-Operation und des wiederholten Anpassens von Einstellungen in der Hierarchie bei Paaren von aufeinanderfolgend niedrigeren Qualitätsniveaus, um die Wiedergabe des Signals auf dem zweiten Qualitätsniveau und dem ersten Qualitätsniveau zu erzeugen.


 
10. Verfahren nach Anspruch 9, das ferner Folgendes umfasst:
wiederholtes Testen, welche von mehreren möglichen Upsample-Operationen (285) und Anpassungen (280) von Werten von Bildelementen in der Wiedergabe des Signals auf Qualitätsniveau J-1 einen Wert einer Entropiemetrik reduziert, die mit Restdaten verbunden ist, die benötigt werden, um das Signal auf Qualitätsniveau J zu rekonstruieren.
 
11. Computerlesbare Speicherhardware (812) mit darauf gespeicherten Anweisungen, wobei die Anweisungen, wenn sie von einer Verarbeitungsvorrichtung ausgeführt werden, die Verarbeitungsvorrichtung veranlassen, das Verfahren nach einem der Ansprüche 1 bis 10 durchzuführen.
 
12. Computersystem (800), das Folgendes umfasst:

einen Prozessor (813);

eine Speichereinheit (812), die Anweisungen speichert, die mit einer vom Prozessor ausgeführten Anwendung verbunden sind; und

eine Verbindung (811), die den Prozessor und die Speichereinheit koppelt und es dem Computersystem ermöglicht, die Anwendung auszuführen und das Verfahren nach einem der Ansprüche 1 bis 10 durchzuführen.


 


Revendications

1. Procédé de codage hiérarchique spatial servant à coder un signal, à différents niveaux de qualité dans une hiérarchie, le signal indiquant des valeurs de multiples éléments d'image, lesdits éléments d'image comportant des pixels ou des voxels, d'une image ou d'une vidéo, le procédé comportant les étapes consistant à :

avoir ledit signal comme entrée ;

sélectionner (200) un niveau de qualité à des fins de traitement ;

utiliser (205) au moins une opération de sous-échantillonnage (805) pour produire un rendu du signal (501-1, 501-2) à un niveau de qualité plus bas dans la hiérarchie ;

sélectionner (210) une opération de suréchantillonnage parmi une ou plusieurs éventuelles options de suréchantillonnage ;

appliquer (215) l'opération de suréchantillonnage sélectionnée sur un rendu du signal au niveau de qualité plus bas pour produire un premier rendu suréchantillonné du signal à un deuxième niveau de qualité dans la hiérarchie, le deuxième niveau de qualité étant plus élevé par rapport au niveau de qualité plus bas ;

produire des premières données résiduelles indiquant une différence entre un rendu du signal au deuxième niveau de qualité et le premier rendu suréchantillonné du signal au deuxième niveau de qualité ;

appliquer (220) un traitement comportant au moins la quantification pour produire des premières données résiduelles quantifiées ;

calculer (225) une première entropie des premières données résiduelles quantifiées et définir ladite entropie comme étant une entropie en cours ;

sélectionner (230) le signal au niveau de qualité plus bas ;

sélectionner (235) un élément d'image dans le signal sélectionné au niveau de qualité plus bas ;

ajuster (240) l'élément d'image en augmentant ou en diminuant une valeur de l'élément d'image ;

suréchantillonner le signal au niveau de qualité plus bas contenant l'élément d'image ajusté au moyen de l'opération de suréchantillonnage sélectionnée pour produire un deuxième rendu suréchantillonné au deuxième niveau de qualité dans la hiérarchie ;

produire (245) des deuxièmes données résiduelles indiquant une différence entre un rendu du signal au deuxième niveau de qualité et le deuxième rendu suréchantillonné du signal au deuxième niveau de qualité ;

traiter (250) les deuxièmes données résiduelles pour produire des deuxièmes données résiduelles quantifiées, ladite étape consistant à traiter comportant la quantification ;

calculer (255) une deuxième entropie des deuxièmes données résiduelles quantifiées et sélectionner des ajustements au niveau de l'élément d'image qui réduisent la deuxième entropie des deuxièmes données résiduelles quantifiées ;

effectuer de façon itérative (260) les étapes consistant à sélectionner (235), à ajuster (240), à produire par suréchantillonnage (245) et à calculer (255) pour chaque élément d'image dans le rendu du signal au niveau de qualité plus bas pour obtenir un signal de niveau plus bas ajusté ;

suréchantillonner (265) le signal de niveau plus bas ajusté au moyen de l'opération de suréchantillonnage sélectionnée pour produire un troisième rendu suréchantillonné à un deuxième niveau de qualité dans la hiérarchie ;

produire des troisièmes données résiduelles indiquant une différence entre un rendu du signal au deuxième niveau de qualité et le troisième rendu suréchantillonné du signal au deuxième niveau de qualité ;

traiter les troisièmes données résiduelles (270) pour produire des troisièmes données résiduelles quantifiées, ladite étape consistant à traiter comportant la quantification ;

calculer une troisième entropie (275) des troisièmes données résiduelles quantifiées ;

si (280) la troisième entropie est inférieure à l'entropie en cours,

le signal de niveau plus bas ajusté est défini comme étant le signal au niveau de qualité plus bas, la troisième entropie est définie comme étant l'entropie en cours, et

répéter (280) les étapes consistant à sélectionner des éléments (235), à suréchantillonner (265), à produire des données résiduelles, à appliquer le traitement (270), et à calculer l'entropie (275) au niveau du signal de niveau plus bas ajusté tant que le signal de niveau plus bas ajusté génère une entropie plus basse, dans lequel l'étape consistant à répéter est terminée si la troisième entropie calculée n'est pas inférieure à l'entropie en cours et tout signal de niveau plus bas ajusté ayant une entropie plus basse est défini comme étant un signal de niveau plus bas ajusté à utiliser à des fins de codage du signal ;

sinon

répéter (285) les étapes consistant à sélectionner une opération de suréchantillonnage (210), à appliquer l'opération de suréchantillonnage (215), à calculer et à traiter des premières données résiduelles (22) et à calculer une première entropie (225) pour l'ensemble d'éventuelles opérations de suréchantillonnage pour identifier une opération de suréchantillonnage ayant une entropie la plus basse.


 
2. Procédé selon la revendication 1, dans lequel soit ladite au moins une opération de sous-échantillonnage (205) soit ladite au moins une opération de suréchantillonnage (215), ou éventuellement les deux, sont non linéaires.
 
3. Procédé selon la revendication 1, comportant par ailleurs l'étape consistant à :
appliquer une fonction de transformée continue sur les données résiduelles pour déterminer une ou plusieurs valeurs d'une mesure d'entropie, la fonction de transformée continue comportant une fonction sigmoïde.
 
4. Procédé selon la revendication 3, dans lequel la fonction de transformée continue est une fonction sigmoïde.
 
5. Procédé selon la revendication 1, comportant par ailleurs les étapes consistant à :

analyser le rendu du signal au premier niveau de qualité en de multiples régions contiguës d'éléments d'image ; et

traiter simultanément les multiples régions en parallèle pour identifier les ajustements au niveau des éléments d'image dans les multiples régions pour réduire localement une entropie associée aux données résiduelles ajustées.


 
6. Procédé selon la revendication 5, comportant par ailleurs l'étape consistant à :
effectuer un contrôle global des ajustements au niveau des éléments d'image dans les multiples régions pour réduire une entropie des données résiduelles.
 
7. Procédé selon la revendication 1, dans lequel l'étape consistant à utiliser ladite au moins une opération de sous-échantillonnage (205) pour produire des rendus du signal à des niveaux de qualité successivement plus bas dans la hiérarchie comporte par ailleurs :
pour chacun des multiples niveaux de qualité successivement plus bas dans la hiérarchie, la répétition des étapes consistant à :

sous-échantillonner le signal ;

sélectionner un élément d'image à ajuster dans le signal sous-échantillonné à un niveau de qualité sélectionné ;

augmenter ou diminuer une valeur pour l'élément d'image sélectionné pour produire les données résiduelles ; et

calculer une ou plusieurs valeurs pour la mesure d'entropie en utilisant les données résiduelles pour identifier quel ajustement au niveau de l'élément d'image sélectionné minimalise la mesure d'entropie.


 
8. Procédé selon la revendication 1, dans lequel l'étape consistant à utiliser ladite au moins une opération de sous-échantillonnage (205) pour produire les rendus du signal à des niveaux de qualité successivement plus bas comporte par ailleurs les étapes consistant à :

sélectionner (200) un niveau de qualité J à partir duquel il faut sous-échantillonner le signal, le niveau de qualité J représentant un niveau de qualité le plus élevé dans la hiérarchie ;

appliquer une opération de sous-échantillonnage sélectionnée (205) sur le signal au niveau de qualité J pour générer un rendu du signal à un niveau de qualité J-1, le niveau de qualité J-1 étant un niveau de qualité plus bas suivant sous le niveau de qualité J ;

augmenter ou diminuer de façon itérative (280) les valeurs d'éléments d'image dans le rendu du signal au niveau de qualité J-1 pour identifier un rendu ajusté du signal au niveau de qualité J-1 qui réduit une mesure d'entropie associée aux données résiduelles nécessaires pour reconstruire le signal au niveau de qualité J ;

appliquer une opération de sous-échantillonnage sélectionnée (295) sur le rendu ajusté du signal au niveau de qualité J-1 pour générer un rendu du signal à un niveau de qualité J-2, le niveau de qualité J-2 étant un niveau de qualité plus bas suivant sous le niveau de qualité J-1.


 
9. Procédé selon la revendication 8, comportant par ailleurs les étapes consistant à :

augmenter ou diminuer de façon itérative (280) les valeurs d'éléments d'image dans le rendu du signal au niveau de qualité J-2 pour identifier un rendu ajusté du signal au niveau de qualité J-2 qui réduisent une mesure d'entropie associée aux données résiduelles nécessaires pour reconstruire le rendu modifié du signal au niveau de qualité J-1 ; et

répéter les étapes consistant à appliquer une opération de sous-échantillonnage sélectionnée et ajuster de façon itérative les réglages dans la hiérarchie à des paires de niveaux de qualité successivement plus bas pour produire le rendu du signal au deuxième niveau de qualité et au premier niveau de qualité.


 
10. Procédé selon la revendication 9, comportant par ailleurs l'étape consistant à :
tester de façon itérative lesquelles parmi les multiples éventuelles opérations de suréchantillonnage (285) et lesquels parmi les ajustements (280) des valeurs d'éléments d'image dans le rendu du signal au niveau de qualité J-1 réduit une valeur d'une mesure d'entropie associée aux données résiduelles nécessaires pour reconstruire le signal au niveau de qualité J.
 
11. Matériel de stockage lisible par ordinateur (812) ayant des instructions stockées sur celui-ci, les instructions, quand elles sont effectuées par un dispositif de traitement, amenant le dispositif de traitement à effectuer le procédé selon l'une quelconque des revendications 1 à 10.
 
12. Système informatique (800) comportant :

un processeur (813) ;

une unité de mémoire (812) qui stocke des instructions associées à une application exécutée par le processeur ; et

une interconnexion (811) couplant le processeur et l'unité de mémoire, qui permet au système informatique d'exécuter l'application et d'effectuer le procédé selon l'une quelconque des revendications 1 à 10.


 




Drawing