Transform-based block coding

CN122935801APending Publication Date: 2026-10-16FRAUNHOFER GESELLSCHAFT ZUR FORDERUNG DER ANGEWANDTEN FORSCHUNG EV
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202580021227.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-10-21
Filing Date
2025-01-13
Publication Date
2026-10-16

AI Technical Summary

Technical Problem

然而,编解码技术可能造成编码器与解码器之间的延迟以及较高的编解码复杂度

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122935801A_ABST
    Figure CN122935801A_ABST
Patent Text Reader

Abstract

A decoder for decoding a digital time-varying signal from a data stream is proposed. The decoder is configured to decode the digital time-varying signal from the data stream in non-overlapping time blocks by decoding each transform coded time block of the non-overlapping time blocks of the digital time-varying signal, wherein each transform coded time block of the non-overlapping time blocks of the digital time-varying signal is decoded by predicting the respective transform coded time block using a prediction mode selected from a set of prediction modes to obtain a prediction signal, decoding coefficients from the data stream, the coefficients representing a prediction residual signal of the respective transform coded time block in a transform domain, subjecting the coefficients to a predetermined inverse transform from the transform domain to a time domain to obtain a time domain prediction residual signal, the time domain prediction residual signal representing the prediction residual signal of the respective transform coded time block in the time domain, and correcting the prediction signal using the time domain prediction residual signal, wherein the predetermined inverse transform is a non-overlapping transform.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of the present invention relate to a decoder and encoder for decoding and encoding digital time-varying signals, particularly for decoding and encoding transform-coded time blocks of digital time-varying signals. Background Technology

[0002] Digital time-varying signals are commonly used to represent various data such as biomedical signals or seismic measurement results. However, encoding and decoding techniques can introduce latency between the encoder and decoder, as well as high encoding and decoding complexity. Furthermore, the requirements for encoding and decoding accuracy and compression are constantly increasing. Therefore, a trade-off must be struck between encoding and decoding compression and encoding and decoding accuracy for such digital time-varying signals.

[0003] This is achieved through the subject matter of the independent claims of this application.

[0004] Other embodiments of the invention are defined by the subject matter of the dependent claims of this application. Summary of the Invention

[0005] According to a first aspect of the invention, a decoder is provided for decoding a digital time-varying signal from a data stream. The decoder is configured to decode the digital time-varying signal from the data stream in non-overlapping time blocks by decoding each transform-coded time block of the non-overlapping time blocks of the digital time-varying signal, wherein each transform-coded time block of the non-overlapping time blocks of the digital time-varying signal is decoded by: predicting the corresponding transform-coded time block using a prediction mode selected from a set of prediction modes to obtain a prediction signal; decoding coefficients from the data stream, the coefficients representing the prediction residual signal of the corresponding transform-coded time block in the transform domain; subjecting the coefficients to a predetermined inverse transform from the transform domain to the time domain to obtain a time-domain prediction residual signal, the time-domain prediction residual signal representing the prediction residual signal of the corresponding transform-coded time block in the time domain; and correcting the prediction signal using the time-domain prediction residual signal, wherein the predetermined inverse transform is a non-overlapping transform.

[0006] Transform and inverse transform enable data to be represented and encoded / decoded in a more energy-concentrated manner, thereby improving encoding / decoding efficiency. Predictive signals can be derived from decoded samples, and these signals can be corrected using the predicted residual signals, thus allowing for a reduction in the amount of data that needs to be encoded / decoded and signaled. It has been recognized that using non-overlapping transforms allows for the reconstruction of time blocks without relying on the overlap of adjacent time blocks (e.g., signal overlap). Therefore, reconstruction can be completed earlier, and the delay between the encoder and decoder can be reduced. Furthermore, encoding and decoding with non-overlapping transforms can be performed with lower complexity and may be less prone to errors.

[0007] Furthermore, encoding / decoding flexibility is improved because non-overlapping transforms are compatible with deblocking algorithms that do not rely on signals that form overlapping frames. Since the transforms are non-overlapping, deblocking can be performed individually for each time block without affecting (and / or delaying) the deblocking and / or decoding of adjacent blocks. For example, deblocking a previously decoded block might affect the overlap (e.g., signal overlap) between that previously decoded block and the current decoded block, which could reduce encoding / decoding accuracy (e.g., deviations due to signal overlap introduced by deblocking) or encoding / decoding speed. For example, the decoder could receive the deblocking parameters for the current block and perform deblocking only for that block, which reduces decoding latency and reduces signal deviations that may be introduced by deblocking when combining overlapping signals (e.g., in the time domain). Moreover, because the transforms are non-overlapping, immediately preceding time blocks can be fully reconstructed (and deblocked) before encoding / decoding subsequent time blocks. Therefore, information from the fully reconstructed time blocks can be used as supplementary information to improve the deblocking of the current encoding / decoding time block (and / or reduce its signaling) (e.g., deriving one or more deblocking parameters based on the preceding time block).

[0008] According to another aspect, an encoder for encoding a digital time-varying signal into a data stream is provided. The encoder is configured to encode the digital time-varying signal into the data stream in non-overlapping time blocks by encoding each transform-coded time block of the non-overlapping time block of the digital time-varying signal, wherein each transform-coded time block of the non-overlapping time block of the digital time-varying signal is encoded by: predicting the corresponding transform-coded time block using a prediction mode selected from a set of prediction modes to obtain a prediction signal; subjecting a time-domain prediction residual signal to a predetermined transformation from the time domain to the transform domain to obtain coefficients representing the prediction residual signal of the corresponding transform-coded time block in the transform domain, the time-domain prediction residual signal representing the prediction residual signal of the corresponding transform-coded time block in the time domain; and encoding the coefficients into the data stream for correcting the prediction signal, wherein the predetermined transformation is a non-overlapping transformation.

[0009] According to another aspect, methods are provided for decoding digital time-varying signals from data streams and encoding digital time-varying signals into data streams.

[0010] One embodiment relates to a data stream that encodes a digital time-varying signal (e.g., an audio signal, a biometric signal, or a seismic signal) using the encoding methods described herein. The data stream may be stored on a storage medium (e.g., a non-transitory storage medium).

[0011] One embodiment relates to a computer program (e.g., stored on a storage medium, such as a non-transitory storage medium, such as a computer program product), the computer program having program code for performing the methods described herein when the computer program is run on a computer and executed by the computer. Attached Figure Description

[0012] The accompanying drawings are not necessarily drawn to scale, but generally emphasize the illustration of the principles of the invention. In the following description, various embodiments of the invention are described with reference to the following drawings, wherein:

[0013] Figure 1 A schematic diagram of an encoder and decoder for decoding digital time-varying signals from a data stream is shown.

[0014] Figure 2 A schematic diagram of a decoder used to decode multi-channel digital signals from a data stream is shown.

[0015] Figure 3 A schematic embodiment of a decoder configured to decode encoded channels representing multi-channel digital signals from a data stream and an encoder configured to encode encoded channels representing multi-channel digital signals into a data stream are shown.

[0016] Figure 4a shows a schematic diagram of a decoder used to decode digital time-varying signals from a data stream;

[0017] Figure 4b shows a schematic diagram of an encoder used to encode digital time-varying signals into a data stream;

[0018] Figure 5 This diagram illustrates the decoding of a digital time-varying signal from a data stream.

[0019] Figure 6 A schematic encoding / decoding scheme is shown, which includes decoding of the modified time-domain prediction residual signal;

[0020] Figure 7 A block diagram of a typical lossless audio encoder based on linear predictive coding (LPC) is shown.

[0021] Figure 8a shows a schematic diagram of the encoding process used to encode digital time-varying signals;

[0022] Figure 8b shows an example of the decoding process for decoding digital time-varying signals;

[0023] Figure 8c shows a schematic diagram of a set of prediction patterns and examples of selections from them;

[0024] Figure 9 Examples of encoders and decoders using LPC prediction are shown;

[0025] Figure 10Examples of decoded residual signals with and without deblocking are shown;

[0026] Figure 11a shows a schematic diagram of samples of the time-domain predicted residual signal before and after modification using one or more deblocking parameters;

[0027] Figure 11b shows a schematic diagram of samples of time-domain prediction residual signals with a cosine-like shape before and after modification using one or more deblocking parameters;

[0028] Figure 12a shows a schematic diagram of samples of the time-domain predicted residual signal before and after modifications using deblocking parameters and additional deblocking parameters; and

[0029] Figure 12b shows a schematic diagram of samples of time-domain prediction residual signals with a cosine-like shape before and after modifications using deblocking parameters and additional deblocking parameters. Detailed Implementation

[0030] In the following description, even if the same or equivalent elements or elements having the same or equivalent functions appear in different figures, they are indicated by the same or equivalent reference numerals.

[0031] In the following description, numerous details are set forth to more fully illustrate embodiments of the invention. However, those skilled in the art will recognize that embodiments of the invention can be practiced without these specific details. In other instances, well-known structures and apparatuses are shown in block diagram form rather than in detail to avoid obscuring embodiments of the invention. Furthermore, unless otherwise specifically stated, features of the different embodiments described below can be combined with each other.

[0032] The following description first gives a possible framework or codec, and describes an embodiment (e.g., refer to...) Figures 2 to 1 The embodiments described in 1b can be incorporated into this framework or codec. However, when this framework is combined with any embodiment described in the embodiments (e.g., refer to...), Figures 2 to 1 When any of the embodiments described in 1b are combined, many details described in this framework are optional. More specifically, refer to Figure 1 Description framework, Figure 1 An encoder 10 is shown for encoding the multi-channel digital signal 14 into a data stream 16, and a decoder 12 is shown for decoding the multi-channel digital signal 14 from the data stream 16. The encoder 10 is used to encode the multi-channel digital signal 14 into a data stream 16, and the decoder 12 is used to decode the multi-channel digital signal 14 from the data stream 16. Figure 1 The description is considered a presentation of a new embodiment of this application, which is formed by combining any of the above embodiments or any of the embodiments described below with... Figure 1 The decoder 12 or encoder 10 are combined, using reference Figure 1 The full details / features described, or omit references. Figure 1Some details / features described. Sometimes, Figure 1 These “optional” features are explicitly identified as being optional for combinations with the embodiments described herein, but the embodiments previously explained below are not. Figure 1 The possible combinations of descriptions should not be limited to Figure 1 These are clearly identified variants because certain features have been omitted.

[0033] exist Figure 1 In the diagram, the multi-channel digital signal 14 is shown as a sample array, where samples (e.g., each sample defining a single value) are represented as small squares 18. Each line / row corresponds to a channel of the multi-channel digital signal 14 (e.g., Figure 1 There are 32 channels in total, but a single channel or any other number of channels can also be used. Each channel of signal 14 can be associated with a corresponding channel ID, and Figure 1 These channels are arranged along the vertical axis 20 according to their channel IDs, and thus the vertical axis 20 corresponds to the “source” channel axis 20. The horizontal axis 22 corresponds to time (e.g., expressed in absolute time units such as µs, or in units of samples; these samples may optionally all have the same duration, for example determined by the sampling rate), so that the samples 18 arranged in a column or horizontally aligned are samples belonging to a common moment. Figure 1 Example 24 illustrates a set / column of such temporally co-located samples 18.

[0034] Therefore, each channel forms a digital time-varying signal, or a time / amplitude signal, or a time-to-amplitude signal. The multichannel digital signal 14 may be obtained through at least one of electrocardiogram (ECG), electroencephalogram (EEG), electromyogram (EMG), or seismic measurements. In other words, the multichannel digital signal can be biophysiological waveform data (e.g., signals representing heart, brain, or eye activity), such as EEG, ECG, or EMG signals, or it can be seismic waveform data. However, each channel / signal can alternatively be another waveform signal data, such as scalar media data like audio signals, and signal 14 can be a multichannel audio signal.

[0035] Figure 1The option of not directly encoding / decoding signal 14 is shown; that is, signal 14 is not encoded / decoded in the original domain 26, but in a so-called "encoding / decoding domain" 28 (e.g., the frequency domain), which may differ from the original domain 26 (e.g., the time domain) due to one or more of the following: 1) channel transformation; 2) channel arrangement; and 3) time-to-channel alignment. If a channel transformation is applied, it transforms the set or column 24 of samples from domain 26 to domain 28 for each sample time step. Therefore, in domain 28, the sample spacing and time axis are the same as in domain 26, but the meaning of the channels differs; that is, the "source" channels of domain 26 become the transformed channels in domain 28. Figure 1 The vertical axis of domain 28 is labeled 32. It should be noted that channel transformation may maintain the same number of channels, resulting in the same number of channels in domains 26 and 28 (e.g., 32 channels in both domains 26 and 28), but different methods may be used. Typically, channel transformation aims to reduce redundancy and attempt to concentrate the energy of the channels onto a smaller number of channels in domain 28. As mentioned above, channel transformation is optional. Therefore, channels in domain 28 are generally referred to as “encoder / decoder channels” to distinguish them from the “raw” or “source” channels of digital signal 14 in domain 26. Arrangement is also optional and can be used in conjunction with or without channel transformation. If used in conjunction with channel transformation, arrangement can be performed before and / or after the channel transformation to arrange / sort the source channels before the transformation and the codec / decoder channels after the channel transformation. Channel transformation can be DCT (Discrete Cosine Transform), DST (Discrete Sine Transform), FFT (Fast Fourier Transform), or any other transform. Timing alignment is also optional and can be considered as constant timing alignment between source channels or codec channels.

[0036] The module in encoder 10 that performs one or more of the following: channel transformation, channel arrangement, and time alignment. Figure 1 This is represented as block 34. Encoding information 36 can be used to signal information about one or more of the following: 1) the channel transformation used; 2) information about the arrangement between the source channels and / or the codec channels; and 3) information about the mutual time alignment / delay between the source channels or codec channels, wherein mutual time alignment may be limited to full-sample accuracy. The corresponding block 38 in decoder 12 performs the reverse steps, i.e., performs one or more of the following: 1) inverse channel transformation; 2) rearrangement of the source channels and / or codec channels; and 3) time realignment of the source channels or codec channels. It should be noted that if no channel transformation is performed, the codec channels are practically equivalent to the source channels, except for mutual time alignment or different ordering due to arrangement. Block 38 can be controlled by the aforementioned encoding information 36.

[0037] Therefore, "actual encoding / decoding" refers to the encoding / decoding channels in domain 28. In encoding / decoding domain 28, the encoding / decoding channels are... Figure 1 The samples 40 are shown as lines or rows extending along time axis 22, and the codec channels are shown one on top of another along codec channel axis 32—possibly ordered according to their associated codec channel IDs—thus forming an array of samples 40. Similarly, although Figure 1 This illustrates the case where the number of source channels equals the number of codec channels, but these numbers can also differ. Furthermore, if channel transformation is used, although there is no longer an explicit association between the source channels (on the one hand) and the codec channels (on the other hand), the temporal association is still preserved: for each temporally co-located sample 24, there exists a corresponding temporally co-located set 42 of samples 40 for the codec channels, where set 42 in field 28 is a column; if mutual time alignment is applied, this set 42 can become a set of samples horizontally offset from each other according to the mutual time alignment. Figure 1 In the case where no such time alignment is performed, sets 42 and 24 are both pure columns in the time / channel representation.

[0038] Actual encoding and decoding are performed in units of so-called time blocks 30. The term "time block" 30 is used both to refer to the time portion of the multi-channel signal (i.e., the set of encoding and decoding channels) in domain 28 and to refer to the time portion of a specific encoding and decoding channel. That is, for each time block 30, each encoding and decoding channel has one time block, for example, block 140 shown for a certain time block 30c, and they are co-located. Encoding and decoding are performed sequentially along these blocks 140, following an encoding / decoding order that traverses blocks 140 from one time block 30 to the next, wherein the temporally co-located blocks of the encoding and decoding channels are traversed along the channel order corresponding to the order of the encoding and decoding channels along axis 32. Figure 1 60 in the figure indicates the encoding / decoding order. That is, when time block 140 (e.g., time channel block) is the block to be encoded / decoded, the previously decoded / encoded time blocks include all the preceding time blocks of all encoding / decoding channels, as well as the time blocks of encoding / decoding channels that are co-located in time with the encoding / decoding channel 92 that is located in time block 140 in the channel order. Figure 1 The previously encoded / decoded time blocks and their samples are shown in the image through shading. In this regard, it should be noted that, to reduce... Figure 1 The complexity, Figure 1 Only one time block 140 is explicitly shown. Therefore, in this specification, reference numeral 140 is sometimes used to indicate the current encoding / decoding time block, or representatively to refer to all time blocks. Furthermore, as... Figure 1As shown, signal 14 can be divided into time blocks 30 and 140 in such a way that time blocks 30 and 140 do not overlap.

[0039] The actual encoding, in units of time blocks 140, is performed predictively. That is, encoder 10 includes a block predictor 62 that predicts samples for the current encoded time block 140, thereby generating a prediction signal 64; the prediction residual 66, formed by subtraction 68 through subtraction between the actual sample values ​​of time block 140 and the predicted samples of prediction signal 64, is encoded into data stream 16 by residual encoder 70. Residual encoding in residual encoder 70 may or may not involve encoding errors due to quantization. In any case, block predictor 62 uses a reconstructable version, as available from previously encoded time blocks, to obtain prediction signal 64. At encoder 10, this reconstructable version 72 is derived by residual decoder 74 and adder 78, where residual decoder 74 performs an inverse operation (e.g., by dequantization) on potential encoding losses (such as quantization) embodied in the residual signal 76 encoded into data stream 16, and adder 78 adds prediction signal 64 to the reconstructable residual signal 80 obtained by residual decoder 74.

[0040] Decoder 12 decodes the encoded channels from data stream 16 in a corresponding manner, i.e., using predictive decoding in units of time block 30 or time block 140, respectively. For this purpose, decoder 12 includes a residual decoder 82, an adder 84, and a block predictor 86, which correspond to elements 74, 78, and 62 of encoder 10, respectively, and are interconnected in the same manner as elements 74, 78, and 62. Specifically, residual decoder 82 derives the reconstructable residual signal 80 for the current decoded time block 140 from the residual signal 76 in data stream 16; subsequently, at adder 84, the reconstructable residual signal 80 is added to the predicted signal 64 derived by block predictor 86 for time block 140 based on the reconstructed version 72 of the previously decoded time block. Therefore, the output of adder 84 produces the reconstructed version 72 of the current decoded time block 140, and this output becomes part of the pool of decoded samples from the previous decoded time blocks when the time blocks of the encoded channels are traversed in this manner along the encoding / decoding order 60 to reconstruct the encoded channels in the encoding domain 28.

[0041] To achieve a high degree of random access capability, some time blocks 30 can be encoded and decoded in a random access manner, meaning that the encoding and decoding channels within them are encoded and decoded independently of previous time blocks 30. For example, suppose time blocks 30b and 30e are random access time blocks. Thus, any time channel block 140 in time blocks 30b and 30e does not depend on any preceding time block 140. For instance, any time block in time block 30a does not constitute the basis for the encoding and decoding dependency of any time channel block 140 in time block 30b, and any time channel block 140 in time blocks 30a through 30d does not constitute the basis for the encoding and decoding dependency of any time channel block 140 in time block 30e. Therefore, in other words, encoding and decoding dependencies are restricted so that they do not extend beyond the boundaries of random access time blocks 30b and 30e into any preceding time block 30. This restriction also applies to intermediate time blocks 30c to 30d between random access time blocks 30b and 30e; that is, these intermediate time blocks do not depend on any time block preceding the earlier one (here, block 30b) of random access time blocks 30b and 30e. Therefore, the starting time boundaries of random access time blocks 30b and 30e are... Figure 1 The middle part is represented by a thick line.

[0042] Furthermore, the encoding and decoding of codec channels can also interrupt or limit the inter-channel dependencies by encoding and decoding one or more codec channels as random access codec channels. This restricts the encoding and decoding dependencies of these random access codec channels, and even the encoding and decoding dependencies between these random access codec channels and intermediate codec channels, so that they do not extend beyond such random access codec channels to any codec channel preceding the random access codec channel in the channel sequence along axis 32. Figure 1 Two such random access codec channels 88a and 88b are shown, along with their associated inter-channel dependency boundaries.

[0043] The block predictor 62 of encoder 10 and the block predictor 86 of decoder 12 operate synchronously; that is, they generate the same prediction signal 64 based on previously encoded / decoded samples of the previous encoded / decoded time block 140. On the encoder 10 side, prediction for a given time block 140 may be accompanied by one or more prediction parameters, or determined by one or more prediction parameters. Prediction parameters can be determined on the encoder side based on rate / distortion optimization. These prediction parameters 90 are encoded into data stream 16, decoded from data stream 16, and used by the block predictor 86 to perform the same prediction.

[0044] Encoder 10 and decoder 12 can support more than one prediction mode. For example, encoder 10 and decoder 12 can support an in-channel prediction mode (also known as a block copy mode), according to which the current encoding / decoding time block 140 is predicted based on reconstructable sample values ​​of previous encoding / decoding time blocks in the same encoding / decoding channel to which the current encoding / decoding time block 140 belongs; Figure 1 In the example, the codec channel is codec channel 92. Additionally or alternatively, encoder 10 and decoder 12 may support an inter-channel prediction mode (also referred to as a cross-channel prediction mode), according to which the current codec / decode time block 140 is predicted based on reconstructable sample values ​​of previous codec / decode time blocks of codec channels preceding codec channel 92 in the codec order 32. Additionally or alternatively, a hybrid prediction mode may exist, according to which the prediction signal 64 is obtained by both reconstructed / reconstructable sample values ​​of previous codec / decode time blocks of codec channel 92 itself and reconstructed / reconstructable sample values ​​of codec channels preceding codec channel 92 in channel order along axis 32. Furthermore, time blocks 140 may exist where encoder 10 encodes without any prediction and decoder 12 decodes without any prediction, for example, the first time block in block 94, which forms block 94 by separating time blocks from each other by random access boundary 96 (on one hand) and random access channel boundary 98 (on the other hand). This corresponds to setting prediction signal 64 to zero, and this can form another mode called the bypass mode. Additionally or alternatively, other modes may also exist, such as modes that derive DC prediction or linear function prediction of block 64 based on the immediately preceding sample of block 140. Therefore, for the current encoding / decoding time block 140, prediction parameter 90 may include a prediction mode flag or prediction mode indicator to indicate the prediction mode to be used for that current encoding / decoding time block 140, and optionally include one or more parameters for parameterizing the prediction mode to be used for that current encoding / decoding time block 140.

[0045] The aforementioned codec dependencies should not cross any boundaries in boundaries 96 and 98, not only due to the sample prediction capabilities just described for block predictors 62 and 86, but also optionally due to other mechanisms such as parameter prediction and context derivation. According to parameter prediction, parameters for a given time block 140, such as the predicted parameter 90 described above, are predicted based on the codec parameters transmitted in data stream 16 for any preceding time block. Context derivation involves context-adaptive entropy encoding / decoding of any codec parameters (such as predicted parameter 90) or any other side information (such as side information 76 and 36) for time block 140, based on any codec parameters transmitted in data stream 16 for any preceding time block.

[0046] In summary, encoder 10 encodes the multichannel signal 14 by converting it into coding domain 28 and then encoding the coding channels into data stream 16 in a block-by-block predictive manner as just described; decoder 12 decodes the encoded channels of coding domain 28 from data stream 16 in a corresponding block-by-block predictive manner, and then obtains the original form of the multichannel signal 14 based on the encoded channels in coding domain 28 via segment 38. As mentioned above, channel conversion is optional, and if channel conversion is not used, each sample 40 in coding domain 28 actually corresponds to a sample 18 in the original domain 26. Furthermore, if time alignment is not used, each sample 40 corresponds precisely to a sample 18 in the original domain 26 at exactly the same time, or in other words, all samples 40 that are temporally co-occurring in coding domain 28 remain temporally co-occurring with each other in the original domain 26.

[0047] As mentioned above, Figure 1 This is merely one possible "framework," and the embodiments described above and below can be incorporated into this framework. Figure 1 Many modifications have been made, and some of these modifications may be mentioned in the description below in conjunction with certain subsequent embodiments, but these modifications should subsequently be considered to also apply to other subsequent embodiments. Furthermore, as a final note, and not to be construed as constituting a modification of... Figure 1 The description provides an exhaustive list of other possible modifications; note that, with... Figure 1As shown, time block 30 may have a variable block length, unlike the constant block length. For example, encoder 10 may determine the length of block 30 and signal the block length of block 30 (and the corresponding time block 140 of the encoding channel) in data stream 16. Furthermore, although not previously described, residual encoder 70 and residual decoder 82 may use transform encoding / decoding to transmit residual signal 76 in data stream 16. That is, residual signal 80 may be transmitted in the transform domain in data stream 16 via transform coefficients in residual signal 76. The transform domain may be the DCT domain, DST domain, or FFT domain. The transform may be non-overlapping, i.e., it may transform only residual signal 80, and its inverse transform may cover only residual signal 76 within block 140; and / or the transform may be windowless, i.e., the residual signal may be transformed without time-shaping of residual signal 80 before transformation using any transform window. The transform domain, i.e., the transform used by the encoder to transform the prediction residual signal 80 to be encoded from the time domain to the transform domain, and the corresponding inverse transform or transform used by the decoder to derive the prediction residual signal 80 from the transform domain to the time domain, can be selected from an available set of transforms, which may include, for example, one or more of the following: 1) one or more DCTs; 2) one or more DSTs; and 3) an identity transform, according to which the prediction residual signal 80 is directly encoded into the data stream 16 in the time domain. Some form of deblocking can be used to avoid block artifacts. Alternatively, if an overlap transform is used, an overlap-addition process of the inverse transforms of the immediately preceding / following time blocks of the same coding channel can be used to completely reconstruct the residual signal 76 of the current time block 140. In addition to this transform (residual) coded block, a time block 140 may also exist whereby, in addition to block prediction, which can be called master prediction, performed by block predictor 62 / 86, the residual samples in residual block 66 are encoded using quadratic-sample predictions. For example, the residual sample of the current sample is predicted by using the decoded values ​​of the preceding residual samples in block 66 or 80 in sample encoding order, and then corrected using the quadratic prediction residual samples decoded from data stream 16. The quadratic prediction residual samples of such blocks can be encoded into the data stream block-by-block in the transform domain or sample-by-sample in the time domain.

[0048] The following description continues with the subsequent embodiments, specifically those involving inter-channel prediction. (As in conjunction with...) Figure 1 The embodiments of decoders and encoders described below may involve decoders and encoders that include inter-channel prediction as one of one or more modes, but alternatively, the inter-channel prediction mode may be the only available prediction mode. Generally speaking, Figure 2A decoder is provided for decoding a multi-channel digital signal 14 from a data stream 16. The decoder is configured to decode encoded channels (i.e., encoded channels in field 28) representing the multi-channel digital signal 14 from the data stream 16 in time blocks 140 (i.e., time-coded channel blocks), wherein predetermined time blocks 140 for each encoded channel are sequentially decoded from the data stream 16 before decoding subsequent time blocks of any encoded channel. Figure 2 Also relates to an encoder for encoding a multi-channel digital signal 14 into a data stream 16, the encoder being configured to encode encoded channels (i.e., encoded channels in field 28) representing the multi-channel digital signal 14 into the data stream 16 in time blocks 140 (i.e., time-encoded channel blocks), wherein predetermined time blocks 140 for each encoded channel are sequentially decoded from the data stream 16 before subsequent time blocks of any encoded channel are decoded.

[0049] To illustrate the inter-channel prediction model, refer to... Figure 2 When encoding / decoding the current encoding / decoding time block 140, one or more prediction parameters are first determined for predicting the current time block 140. These one or more prediction parameters are used to control the prediction of the current time block 140 of a predetermined encoding channel 92 based on reference block portions 142 of one or more reference channels 92a. For ease of explanation, Figure 2 Only one such reference channel 92a is shown for predicting time block 140, but the number of reference channels can be greater than one. It is clear from the above description that a reference channel such as reference channel 92a needs to be located before the predetermined codec channel 92 in the channel encoding / decoding order 32, and may, for example, have a lower associated channel index than the predetermined codec channel 92 that includes the current encoding / decoding time block 140. Further attention should be paid to the term "reference block portion." A reference block portion such as reference block portion 142 is a portion of the immediately following consecutive samples 40 of reference channel 92a, the number of which is equal to the number of samples within time block 140; however, the reference block portion is not necessarily aligned with or temporally co-located with time block 140 or any other time block 30, i.e., the reference block portion is freely arranged except that it only needs to include or cover previously decoded / encoded samples and optionally have a maximum temporal distance from block 140. In other words, a reference block portion such as reference block portion 142 can be temporally offset relative to time block 140, as explained in more detail below.

[0050] One or more prediction parameters defined for time block 140 are used to define how computationally the prediction signal 64 for predicting time block 140 is derived from reference block portion 142, or more precisely from the reconstructed / reconstructable samples in reference block portion 142. As will be described in more detail below, one or more prediction parameters may define, for example, a scaling factor and an offset, such as defining a scaling factor for each reference block portion 142, scaling the reference block portion 142 by the scaling factor (i.e., multiplying the reference block portion 142, or more precisely, its reconstructed / reconstructable samples, by the scaling factor), and then adding the offset to the scaled reference block portion; or, in the case of more than one reference block portion 142, summing the offset over all scaled reference block portions.

[0051] One or more prediction parameters are determined based on time periods 144 and 146 of channels 92 and 92a, where each time period consists of immediately preceding consecutive samples 40 of the corresponding channel, and each time period is temporally preceding the corresponding block; that is, time period 144 precedes block 140 in encoded channel 92, and time period 146 precedes reference block portion 142 in channel 92a. For example, as... Figure 2 As shown, time periods 144 and 146 can be defined as being immediately preceding the corresponding blocks 140 and 142, respectively; however, alternatively, the time positions of time periods 144 and 146 can be defined in different ways, for example, by making time periods 144 and 146 temporally co-located with each other, thereby, for example, ensuring that all time periods 144 and 146 are included in sample 40 that is temporally immediately preceding the earlier of blocks 140 and 142. Figure 2 It is evident that the number of samples 40 contained in time periods 144 and 146 is the same for both, where this number L may be equal to or different from the number of samples N in blocks 140 and 142, respectively. For example, as... Figure 2 As shown, L can be less than N.

[0052] Based on the evaluation of time periods 144 and 146, the advantage of determining one or more prediction parameters for predicting time block 140 from reference block portion 142 of one or more reference channels 92a is that both encoder 10 and decoder 12 can perform this determination because time periods 144 and 146 are both included in the library or pool of encoded / decoded samples, making it possible to inherently determine one or more prediction parameters without any explicit signaling in data stream 16, thereby reducing side information signaling overhead.

[0053] The determination is made in the following manner: In particular, it is a good assumption that the relationship between the current encoding / decoding time block 140 and the reference block portions 142 of one or more reference channels 92a is equivalent to or at least very close to the relationship between the time period 144 of the encoding channel 92 and the time reference segments 146 in each reference channel 92a. Therefore, if one or more prediction parameters are determined such that applying these prediction parameters to the time reference segments 146 of one or more reference channels 92a produces a “prediction” of the time period 144 that minimizes the prediction residual for the time period 144, then, if the assumption holds, the one or more prediction parameters thus determined should also minimize the deviation between the resulting prediction signal 64 and the block 140 to be encoded / decoded when applied to the reference block portions 142 of one or more reference channels 92a. Therefore, due to the accuracy of the resulting prediction signal 64, the prediction residual 80 encoded into the data stream 16 can be encoded using fewer bits.

[0054] If one or more prediction parameters include scaling factors and offsets as just described, wherein, in the case of only one reference block portion 142, the scaling factor is used for that reference block portion 142; and in the case of more than one reference block portion 142, the scaling factor and offset can be determined as follows. Here, it is assumed that x1, ..., x N This represents the reconstructed / reconstructable samples within time period 144, while y i,j Let j represent the j-th sample within time period 146 of the i-th reference block, where i ∈ {1, ..., K}, j ∈ {1, ..., L}, and i Let represent the scaling factor for the i-th reference block portion, and b represent the offset. Thus, in terms of the sum of squares, when the prediction parameters are applied to y... i,j Then, with sample x j The deviation between them is minimal, that is:

[0055]

[0056] This can be achieved by solving the following equation. Therefore, the decoder and encoder solve this linear equation, and in doing so, they can use a lookup table to avoid performing division when calculating the scaling factor and offset. The equation is:

[0057]

[0058] in

[0059]

[0060]

[0061]

[0062]

[0063] Therefore, as stated above, according to Figure 2 The inter-channel prediction may involve one or more reference block portions 142, and one or more prediction parameters may be performed in a manner that avoids division, wherein the division is approximated by looking up a table.

[0064] It should also be noted that when more than one reference block portion 142 is used for the current encoding / decoding time block 140, according to one embodiment, each reference block portion is contained in a separate reference channel. That is, each reference channel has exactly one reference block portion. However, alternatively, some or all of the reference block portions may belong to a common reference channel, such as reference channel 92a.

[0065] As described above, the reference block portion 142 may be offset in time relative to the time block 140. For example, for each channel in a prediction channel among a set of one or more channels in an encoded channel, for each of one or more reference channels, the data stream 16 may have a time offset 148 encoded therein, with which 1) the reference block portion 142 of the corresponding reference channel 92a is offset in time relative to the current time block 140 of the predetermined encoded channel, for example, as Figure 2 The delay shown; and 2) the preceding time reference block portion 146 of the corresponding reference channel 92a is time-off relative to the preceding time block portion 144 of the predetermined encoding channel 92, for example, as Figure 2 The delay is shown. Decoder 12 accordingly decodes time offset 148 from data stream 16. The granularity of encoding this time offset 148 in data stream 16 can be designed according to one of the following options: for example, for the time offset 148 of each reference channel of a certain inter-channel predictive coding channel, it can be encoded into data stream 16 in a range valid for the entire data stream; or it can be encoded for each sequence of time blocks 30 starting from a random access time block (such as 30b) up to a time block 30d immediately preceding the next random access time block 30e; or it can be transmitted separately in data stream 16 by time block, i.e., separately for each inter-channel predictive time block, such as segment 140. A group of one or more inter-channel predictive coding channels may include all channels other than random access coding channels 88a and 88b (wherein, in Figure 1In this context, the encoded channel corresponding to the topmost sample line can also be a random access encoded channel, as it can be the first channel in channel sequence 32. The number of reference channels can also be encoded into data stream 16 at any granularity just mentioned, or even at a granularity different from that used for time offset signaling. The number of reference channels can be chosen to be equal for all inter-channel predicted encoded channels, or it can be signaled in data stream 16 in such a way that the number of reference channels differs between inter-channel predicted channels. Where two reference block portions are allowed to belong to the same reference channel, for each reference channel, it can be additionally signaled how many reference block portions are contained in the corresponding reference channel of a certain inter-channel predicted encoded channel. In any case, the decoder uses the time offset 148 encoded into the data stream to truncate or derive reference block portion 142 and the preceding time reference block portion 146 from the corresponding reference channel 92a using the time offset 148 signaled for the corresponding reference channel. Furthermore, for each of the one or more reference channels in a set of reference channels, data stream 16 may have a channel index encoded therein, the channel index identifying the corresponding reference channel in the channel sequence 32 that precedes the encoded channel 92. Alternatively, by default, the set of one or more reference channels for a given inter-channel predicted encoded channel includes all encoded channels that precede and are immediately adjacent to the current channel 92 in the channel sequence 32. As previously stated, the number of encoded channels that can constitute one of the reference channels in a set of one or more reference channels for each inter-channel predicted encoded channel is limited, because only encoded channels preceding the corresponding inter-channel predicted encoded channel up to the nearest preceding random access channel are allowed; for example, in Figure 1In the case of channel 92, it is channel 88a. Therefore, the channel index transmitted in data stream 16 can be encoded into and decoded from data stream 16 using parametric binarization (such as truncated unary codes), wherein the parametric binarization is parameterized using binarization parameters such as truncation parameters, and the encoder and decoder can set the binarization parameters such that the number of binary strings formed by the parametric binarization is closest to - equal to or greater than - the number of the encoded channels that are closest to the preceding random access channel in the channel order 32. Regarding the time offset 148 and the time reference block portion 146 and reference block portion 142 derived from reference channel 92a, note the following. Specifically, according to one embodiment, the time offset 148 is limited to a full-sample offset, which means that the time reference block portion 146 and the reference block portion are formed by consecutive samples 40 of the corresponding reference channels, respectively, with the sample offsets of the consecutive samples relative to the block portion 144 and segment 140 respectively indicated by the number of samples indicated by offset 148. Therefore, reference block portions 146 and 142 are derived by simply extracting corresponding samples from the samples of reference channel 92a. However, alternatively, time offset 148 may also allow subsample offsets, resulting in subsampling of the reference channel to produce reference block portions 146 and 142, respectively.

[0066] Further attention should be paid to the encoder 10's degrees of freedom in the following aspects: the selection of time offset 148, the number of reference channels, and the number of reference channels selected from the available previously encoded channels for a given encoded channel 92, or a subset of these settings. For example, the encoder 10 may determine these parameters or settings as optimization variables in a rate / distortion optimization scheme, or these parameters or settings may be selected in different ways, such as by examining certain similarity metrics.

[0067] The following are subsequent embodiments of the announced in-channel prediction processing. As described above, these details describe the encoder and decoder for encoding / decoding the multi-channel digital signal 14, wherein these embodiments may be combined with the above. Figure 1 The teachings of the given possible frameworks can be combined in a combined manner. Figure 1 The full details given may also be combined with only a subset of these details in subsequent embodiments. Generally speaking, Figure 3 Embodiments are provided of a decoder configured to decode encoded channels representing multi-channel digital signals 14 from data stream 16 in time blocks 140, and an encoder configured to encode encoded channels representing multi-channel digital signals 14 into data stream 16 in time blocks 140.

[0068] according to Figure 3The current time block 140 of the predetermined encoding channel is predicted from one or more reference block portions 2421 and 2422 of the same channel (i.e., predetermined encoding channel 92). The number of samples contained in the "reference block portion" is equal to the number of samples in the current encoding / decoding time block 140, but the reference block portion is not limited to being aligned with any time block 30; furthermore, according to the embodiments described below, the reference block portion may be located at a subsample position of channel 92 and derived from the subsample position.

[0069] exist Figure 3 In this context, the number of reference block portions is two, but it can also be one or more. Specifically, the number of reference block portions can be determined by encoder 10 and signaled in the data stream. The number can be determined individually for each prediction time block 140 within each channel, and signaled individually in the data stream for that segment 140. Alternatively, the number can be signaled in the data stream according to a coarser time / channel grid. For example, the number can be signaled globally in the data stream by channel, i.e., for all encoded channels, where the number is updated intermittently, for example, for each time block 30, or for each sequence of time blocks 30 from a random access time block (such as segment 30b) up to a time block 30d immediately preceding the next random access time block 30e. As yet another alternative, the number of reference block portions can be signaled individually in the data stream 16 by channel, but for periods of time including more than one time block 140 of that channel (e.g., channel 92).

[0070] For each of one or more reference block portions 2421 and 2422, the data stream 16 may have positions 2441, 2442 encoded therein for the corresponding reference block portion. Specifically, as Figure 3 As shown, this position can be the starting position of the corresponding reference block portion. Since the starting position and the starting point 250 of the prediction time block 140 within the channel need to be at least equal to the time length 254 of the time block 140 itself, the starting position 244 can be... 1 / 2 Time offsets 2481 and 2482 relative to time reference position 246 are encoded into the data stream, where time reference position 246 is located 252 time distances before the starting point 250.

[0071] The position can be encoded into the data stream 16 with either sample precision or subsample precision. According to one embodiment, the position is signaled in the data stream whether it is encoded with sample precision or subsample precision; if more than one subsample precision is available, it is also signaled which subsample precision is used. Similarly, the precision can be signaled individually for each prediction time block 140 within a channel, or it can be signaled with a coarser time grid and / or channel grid. For example, the precision can be signaled globally for each channel, i.e., signaled jointly for all encoded channels; and in terms of time, the precision can be signaled in the data stream for the entire data stream, for each sequence of time blocks 30 from the start of a random access time block up to the time block immediately preceding the next random access time block, or for each time block 30. Alternatively, the precision can be signaled individually for each channel, but for periods containing more than one time block 140.

[0072] If the reference block portion 242 is reserved 1 / 2 If the position falls on a subsample location, then channel 92 is sampled at the grid of the subsample location using an interpolation filter to obtain the predetermined reference block portion 242 from channel 92. 1 / 2 The grid has a time length of 140 time blocks, meaning it has the same number of samples and is placed at subsample position 244. 1 / 2 Place.

[0073] If the reference block part 242 1 / 2 The number is greater than one (e.g. Figure 3 In the case of reference block portions 2421 and 2422, the predicted signal 64 of time block 140 can be derived based on the sum 260 of reference block portions 2421 and 2422. The sum can be a weighted sum, such that reference block portion 2421 is weighted with factor 2621 before undergoing sum 260, while reference block portion 2422 can be weighted with factor 2622 before undergoing sum 260. Similarly, for the weights / factors 262 in data stream 16... 1 / 2 The same statement regarding the granularity of signaling for location signaling, whether it is one, a subset, or all of the signaling, also applies, where the granularity may be equal to or different from the granularity of location signaling. However, weights may be set by default, and optionally, the weights may be equal to each other, for example, equal to the reciprocal of the number of reference block partitions.

[0074] Figure 4a illustrates a schematic diagram of a decoder 12 for decoding a digital time-varying signal 92 from a data stream 16. Decoder 12 can be any decoder described herein. Furthermore, decoder 12 can include any feature of any decoder disclosed herein (e.g., individual features or features combined with one or more other features).

[0075] Decoder 12 is configured to encode time block 140 by each transform of the non-overlapping time block 140 of the digital time-varying signal 92. i-1 Decoding is performed to decode the digital time-varying signal 92 from the data stream 16 using non-overlapping time blocks 140, wherein each transform of the non-overlapping time blocks 140 of the digital time-varying signal 92 is encoded by the following: i-1 Decoding: Predict the corresponding transform-coded time block 140 using a prediction pattern selected from the prediction pattern set. i-1 To obtain the prediction signal 64 i-1 (For example, in Figure 4a, exemplarily from time block 140) i-3 (Resulting from data stream 16, decoding 304 coefficients 300) i-1 The coefficients represent the prediction residual signal 80 of the corresponding transform-coded time block 140 in the transform domain; make coefficient 300 i-1 The signal undergoes a predetermined inverse transform from the transform domain to the time domain (306) to obtain the time-domain prediction residual signal (302). i-1 Time-domain prediction of residual signal 302 i-1 This represents the prediction residual signal 80 of the corresponding transform-coded time block 140 in the time domain; and the prediction residual signal 302 using the time domain. i-1 Correction 308 prediction signal 64 i-1 The predetermined inverse transform is a non-overlapping transform. The corrected prediction signal 64 i-1 Time block 140 can be formed i-1 Alternatively, it may be further processed (e.g., subjected to further prediction and / or filtering).

[0076] Figure 4b shows a schematic diagram of an encoder 10 for encoding a digital time-varying signal 92 into a data stream 16. The encoder 10 is configured to encode time blocks 140 by each transform in a non-overlapping time block 140 of the digital time-varying signal 92. i-1 Encoding is performed to encode the digital time-varying signal 92 into the data stream 16 in non-overlapping time blocks 140, wherein each transform of the digital time-varying signal 92 in the non-overlapping time blocks 140 is encoded in the following way: i-1 Encoding: Predict the corresponding transform coding time block 140 using prediction patterns selected from the prediction pattern set. i-1 To obtain the prediction signal 64 i-1 ; Make the time-domain prediction residual signal 302 i-1 The time domain is subjected to a predetermined transformation (307) from the time domain to the transform domain to obtain the corresponding transform-coded time block (140). i-1 The coefficients of the predicted residual signal 80 in the transform domain are 300. i-1 Among them, the time-domain prediction residual signal 302 i-1This indicates the corresponding transform coding time block 140. i The predicted residual signal 80 in the time domain; and the coefficient 300 i-1 Encode 305 into data stream 16 for use in correcting prediction signal 64 of 308. i-1 The predetermined transformation is a non-overlapping transformation. Encoder 10 can optionally be configured to use the time-domain prediction residual signal to correct the prediction signal 64. i-1 To obtain the corrected prediction signal 64 i-1 Encoder 10 can be configured (e.g., temporarily) to store the corrected prediction signal 64. i-1 (For example, as a potential reference for future predictions).

[0077] Encoder 10 can be any encoder described herein. Furthermore, encoder 10 may include any feature of any encoder disclosed herein (e.g., a single feature or a feature combined with one or more other features).

[0078] Figure 5 A schematic diagram is shown for decoding a digital time-varying signal 92 from data stream 16. Decoding (or more generally, its method) can be performed by any decoder 12 disclosed herein.

[0079] Decoder 12 is configured to encode time block 140 by each transform in the non-overlapping time block 140 of the digital time-varying signal 92. i-1 To decode the digital time-varying signal 92 from the data stream 16 in non-overlapping time blocks 140, the following decoding is performed: Predicting the corresponding transform-coded time block 140 using a prediction mode selected from the prediction mode set. i-1 To obtain the prediction signal 64 i-1 Decode 304 coefficients from data stream 16. i-1 The coefficients represent the prediction residual signal 80 of the corresponding transform-coded time block 140 in the transform domain (e.g., the frequency domain); making coefficient 300 i-1 The signal undergoes a predetermined inverse transform from the transform domain to the time domain (306) to obtain the time-domain prediction residual signal (302). i-1 Time-domain prediction of residual signal 302 i-1 This represents the prediction residual signal 80 of the corresponding transform-coded time block 140 in the time domain; and the prediction residual signal 302 using the time domain. i-1 Correction 308 prediction signal 64 i-1 , where the predetermined inverse transform is a non-overlapping transform.

[0080] The digital time-varying signal 92 may include one or more channels. Alternatively, the digital time-varying signal 92 may be a portion of a larger digital time-varying signal (e.g., in the form of one or more channels). A channel may define a single parameter that takes a value over time, for example, where the parameter may be sampled over time-continuous samples. The digital time-varying signal 92 may include or may be an audio signal (e.g., having one or more audio channels), a biomedical signal (e.g., an electroencephalogram obtained by an electroencephalogram, electrocardiogram, or electrooculogram), or a seismic signal. Any decoder 12 disclosed herein may be a decoder 12 for decoding audio signals, biomedical signals, or seismic signals. Any encoder 10 disclosed herein may be an encoder for encoding audio signals, biomedical signals, or seismic signals. The digital time-varying signal 92 may be or may include one or more waveform signals. Any disclosure relating to single-channel examples herein may also be applied in any combination to a digital time-varying signal 92 having multiple channels.

[0081] If two time blocks 140 do not contain common samples (e.g., the last sample of the first time block is not the first sample of the second time block), then the two time blocks 140 can be considered non-overlapping. Furthermore, two non-overlapping time blocks 140 can be, for example, directly adjacent to each other along the time axis (e.g., where the last sample of the first time block is immediately before the first sample of the second time block).

[0082] The predetermined inverse transform can be configured to output a set of samples, wherein the number of samples in this set is equal to (or at least not greater than) the number of samples in the current decoding time block 140 (or all time blocks, for example, if all time blocks 140 have the same size or number of samples, such as within time block 30 or the entire digital time-varying signal 92). The predetermined inverse transform can be configured to transform the encoding time block 140. i-1 When undergoing a predetermined inverse transform, for example, for transform coding time block 140 i The coefficient 300 for the predetermined quantity (or quantity range) in the text. i-1 Output a set of samples, and with the transform coding time block 140 i-1 The coefficient of 300 in the middle i-1 The number is irrelevant. The predetermined inverse transform may include an algorithm to prevent the number of output samples from exceeding the number of samples in time block 140, and / or include a pruning step for pruning samples that exceed the number of samples in time block 140.

[0083] The predicted sample value was corrected using 80 residual sample values. i-1 This may include (or can be achieved through): predicting 64 sample values i-1 With time-domain prediction residual signal 302 i-1Linear combinations (e.g., summation or weighted summation, e.g., sample-by-sample).

[0084] It should be noted that, Figure 5 In the example shown, the index of the current coding time block is i-1, which is to show its relationship to the subsequent coding time block 140, which will be further explained below. i The optional relationship between them. However, the same teachings may be applied to any other index, or generally to any time block 140 within the digital time-varying signal 92. Furthermore, decoder 12 may be configured to perform the decoding methods described herein for one, more than one, or all time blocks 140 of the digital time-varying signal 92, or subsets thereof (e.g., a subset of time block 30). For example, decoder 12 may be configured to perform the decoding methods described herein for each time block 140 (e.g., time block 140 of the digital time-varying signal 92 or a subset thereof), except for time blocks 140 decoded in a random access manner (e.g., decoding without using or referencing samples outside the time block to be decoded for prediction). Alternatively or additionally, decoder 12 may be configured to perform decoding according to the methods disclosed herein based on signaling indicating whether decoding should be performed (e.g., a flag).

[0085] Predetermined inverse transformation (e.g., See Figure 5 The reference numeral 306 in the figure can be (or may include) the inverse discrete cosine transform or the inverse discrete sine transform.

[0086] The predetermined inverse transformation can be represented by matrix multiplication between the transformation matrix and the first vector, where the components of the first vector are represented by coefficients 300. i-1 The structure (for example, where the length of the first vector corresponds to the coefficient 300) i-1 The number of ( ), where the output vector obtained by matrix multiplication has the same characteristics as the time-domain prediction residual signal 302. i-1 The number of components included is the same as that of sample 310. For example, the transform matrix may include a number of rows equal to (or less than) the number of samples in the time block 140 to be decoded. The transform matrix may include a number of rows equal to that of transform-coded time block 140. i-1 coefficient 300 i-1 The number of columns. For example, different transformation matrices can be provided for DCT or DST. The matrix can optionally depend on the block length and / or quantization step size.

[0087] The transform domain can be determined according to a predetermined transformation (e.g., (e.g., performed by encoder 10) generated from the time domain, wherein decoder 12 can be configured to select a predetermined transform from a set of transforms (e.g., select a predetermined inverse transform from a set of inverse transforms, e.g., select a transform matrix), wherein the inverse transform is the inverse of the predetermined transform (e.g., ... ).

[0088] Decoder 12 can be configured to select a set of transforms from a transform superset (e.g., select a set of inverse transforms from an inverse transform superset, e.g., select a set of transform matrices from a transform matrix superset) based on one or more of the following: corresponding transform coding time block 140 i-1 The length, for example, the transform coefficient 300. i-1 The total number, for example, the non-zero transform coefficients 300 i-1 The total number; the length of time block 140 in the time domain (e.g., N, for example, the number of samples in the time block); and the time block 140 encoded for the corresponding transform. i-1 The chosen forecasting model (e.g., DC forecasting model, linear forecasting model, or any other forecasting model disclosed herein).

[0089] The transformation set includes one or more of the following: one or more discrete cosine transforms, one or more discrete sine transforms, and identity transforms. For example, the transformation set may include a first matrix that implements the discrete cosine transform, a second matrix that implements the discrete sine transform, and a third matrix that implements the identity transform (e.g., values ​​on the diagonal are one, and values ​​at off-diagonal positions are zero).

[0090] If the predetermined transform is an identity transform, then decoder 12 can be configured to skip subjecting the coefficients to a predetermined inverse transform of 306. For example, the transform coefficients 300 i-1 Used as time block 140 i-1 Samples, for example, with optional zero padding.

[0091] The transform domain can be generated from the time domain according to a predetermined transform (e.g., performed on the encoder side), wherein both the predetermined transform and the predetermined inverse transform are windowless. For example, the predetermined transform and the predetermined inverse transform may not employ an extension to time block 140. i-1 Beyond the samples or extending to the transform coding time block 140 i-1 Transformation coefficient 300 i-1 Outside of the window. The predetermined transformation and the predetermined inverse transformation may use rectangular windows that do not extend beyond the corresponding blocks and do not use weighted windows (e.g., each sample or transformation coefficient uses a constant weight of one).

[0092] The transform domain can be generated from the time domain according to a predetermined transform, wherein the predetermined transform is a spectral decomposition transform. For example, the predetermined transform can be or may include one or more of the following: Fourier transform, discrete Fourier transform, fast Fourier transform, short-time Fourier transform, wavelet transform, and discrete cosine (or sine) transform.

[0093] The sampling rate of the digital time-varying signal 92 can be higher than or equal to the Nyquist rate in the transform domain.

[0094] For each transform coding time block, coefficient 300 i-1 The number can be the same as the number of samples 312 in the corresponding transform-coded time block. For example, if the transform-coded time block has eight coefficients 300 i-1 Then a time block (e.g., in the time domain) can also have eight samples (e.g., or the number of coefficients can be equal to or less than the number of samples).

[0095] Time-domain prediction of residual signal 302 i-1 It can be encoded independently of the corresponding transform coding time block 140 i-1 The time blocks adjacent to the previous time (140) i 140 i-2 The prediction residual signal 80 is used to make the corresponding transform coding time block 140. i-1 coefficient 300 i-1 It is generated by undergoing a predetermined inverse transform of 306. For example, some overlap methods utilize previously encoded time blocks (e.g., 140). i-2 A portion (e.g., half) of the prediction residual 80 is used to transform the coefficients of the current coding time block. However, decoder 12 can be configured to only transform the coefficients of the currently decoded coding time block 140. i-1 coefficient 300 i-1 It undergoes a predetermined inverse transformation of 306.

[0096] The transform domain can be a critical sampling transform domain. For example, the transform domain can be sampled at the Nyquist rate, such as at twice the highest frequency of the sample (e.g., within a time block or more generally a sample set such as time block 30).

[0097] The length of the basis functions of the predetermined inverse transform can be the same as the corresponding transform coding time block 140. i-1 The length is the same. For example, the basis functions may include trigonometric functions such as cosine or sine functions, where the length of the transform-coded time block can be an integer multiple of the half-cycle (or full-cycle) of such cosine or sine functions (e.g., cos(...). ·i) is consistent, where the length of the coefficient is N, and i is the index of the cosine function that can form the basis of the basis functions.

[0098] The set of prediction modes may include one or more of the following: DC prediction mode, one or more linear prediction modes, block replication prediction mode, cross-channel prediction mode, and bypass prediction mode.

[0099] According to the DC prediction mode, the prediction signal for the corresponding transform-coded time block can be determined as a constant function (and / or, for example, determined by a constant function), wherein the constant of the constant function is determined based on a predetermined number of decoded samples preceding the corresponding transform-coded time block. For example, the constant can be determined based on one or more of the average, sum, and weighted sum of the decoded samples (e.g., the immediately preceding samples, e.g., K samples) (and optionally with an offset, e.g., for adapting rounding shifts), where K is an integer less than the number of decoded samples (e.g., K is a predetermined value, e.g., K is a power of two).

[0100] According to one or more linear prediction modes, the prediction signal for a corresponding transform-coded time block can be determined as a linear function (and / or, for example, determined by a linear function), wherein at least one of the slope and offset of the linear function is determined based on predetermined decoded samples preceding the corresponding transform-coded time block. The offset can be determined based on one or more immediately preceding decoded samples, for example, based on an average or weighted sum. The offset can be determined as a sample immediately preceding the time block to be decoded, or based on that sample. The slope can be determined based on extrapolation of immediately preceding samples (e.g., two immediately preceding decoded samples preceding the time block to be decoded). The slope determined based on two or more preceding samples can be further modified, for example, by reducing the slope (e.g., reducing it to half or a quarter). One or more linear prediction modes may include one or more of half-slope prediction and quarter-slope prediction.

[0101] According to the block copy prediction mode, the prediction signal for a corresponding transform-coded time block can be predicted based on one or more reference block portions of previously decoded samples preceding the corresponding transform-coded time block. These reference block portions are offset relative to the corresponding transform-coded time block to a position in the data stream signaled for that transform-coded time block. The block copy prediction mode can be limited to referencing only the same channels as the time block to be predicted (e.g., obtaining only one or more reference block portions). The block copy prediction mode can refer to more than one channel (e.g., performing prediction based on the referenced block portions, for example, to obtain reference block portions), wherein each of the more than one channels can be referenced once (or more than once). Block copy prediction can refer to all available channels (e.g., within a set of channels between two random access coded channels). In the case of referencing a single reference block portion, samples of that block portion can be copied (or referenced) with a weight of one (e.g., and / or a weight less than one). When referencing more than one reference block portion, the reference block portions may be subjected to weighted summation (e.g., with equal or unequal weights, such as signaling weights) on a sample-by-sample basis.

[0102] According to the cross-channel prediction mode, the prediction signal of the corresponding transform coding time block can be predicted based on one or more reference coding channels of the coding channels of the multi-channel signal 14 that are encoded into the data stream and decoded from the data stream by the decoder 12, wherein one of the coding channels is represented by a digital time-varying signal 92.

[0103] According to the bypass prediction mode, the prediction signal of the corresponding transform coding time block is set to zero.

[0104] Decoder 12 can be configured to select prediction modes from a set of prediction modes, wherein the set of prediction modes depends on the size (or length, number of samples) of the temporal block to be decoded. For example, a first set of prediction modes can be provided for block sizes no greater than (or equal to) a size threshold, and a second set of prediction modes can be provided for block sizes greater than the size threshold. For example, the first set of prediction modes may include one or more linear prediction modes (e.g., including half-slope prediction modes and quarter-slope prediction modes), and the second set of prediction modes may not include one or more linear prediction modes (e.g., excluding half-slope prediction modes and quarter-slope prediction modes). For example, the first set of prediction modes can be provided (or used) for blocks with a block size less than or equal to 64 samples, and the second set of prediction modes can be provided for blocks with a size greater than 64 samples.

[0105] The digital time-varying signal 92 can be obtained through at least one of electrocardiogram (ECG), electroencephalogram (EEG), electromyogram (EMG), or seismic measurement; and / or the digital time-varying signal 92 can be biophysiological waveform data, such as an EEG signal, an ECG signal, or an EMG signal, or it can be a seismic waveform signal. The digital time-varying signal 92 can be (or may include) a signal representing (or based on measurement) the electrophysiological activity of, for example, the heart, brain, muscles, eyes, or cochlea (e.g., an electrogram). The digital time-varying signal 92 can be (or may include) a signal representing (or based on measurement) the vibration, swaying, or shaking of the ground (e.g., a seismogram).

[0106] Decoder 12 can be configured to support different lengths of transform-coded time blocks 140 (e.g., the number of transform coefficients 300, where all transform coefficients 300 are subsequently zero, e.g., the sequence of the last non-zero coefficient in the transform-coded time block), and set the length of transform-coded time blocks 140 according to a length parameter in data stream 16. The length of transform-coded time blocks 140 can be encoded for each transform-coded time block 140, for a set of transform-coded time blocks 140 (e.g., each time block 30), or at the beginning of the digital time-varying signal 92. Decoder 12 can be configured to: assume a predetermined length if no length is signaled; and / or assume a first length (e.g., a predetermined length or a previously signaled length) is used for time blocks 140 until a (new) second length is signaled.

[0107] Decoder 12 can be configured to support different lengths of transform-coded time blocks and switch between different lengths of transform-coded time blocks at predetermined boundaries between consecutive time blocks, based on a length parameter in the data stream. For example, predetermined boundaries (e.g., signaled) can be arranged (e.g., after each time block 30, for example, before a time block encoded in random access mode) between each time block or between groups of time blocks.

[0108] Figure 6 An illustrative encoding / decoding scheme is shown for decoding, which includes modifying the 404 time-domain prediction residual signal 302. i Any decoder 12 disclosed herein can be configured to perform combination. Figure 6 One or more features are disclosed. The same features may be provided for the corresponding encoder 10 (e.g., any encoder disclosed herein). It should be noted that, for ease of reading, Figure 6 Use index i for the current encoding time block. However, Figure 6 Current encoding time block 300 i Can correspond to Figure 5 The current encoding time block 300 shown i-1 (For example, index offset one).

[0109] Decoder 12 can be configured to: decode 402 one or more deblocking parameters 400 (e.g., one, two or more of α, β and γ further described below, e.g., referring to Figures 11a to 12b, e.g., referring to the “Preferred Deblocking Encoder Embodiment” section) from data stream 16; and modify the time-domain prediction residual signal 302 404 using one or more deblocking parameters 400. i To perform deblocking post-processing to obtain the modified time-domain prediction residual signal 302' i ; and using the modified time-domain prediction residual signal 302' i For the predicted signal 64 i-1Perform correction 308.

[0110] One or more deblocking parameters 400 can define a correction value (e.g., based on a function defined by one or more deblocking parameters 400, such as where the correction value is the function predicting the residual signal 302 in the time domain). i The value at the sample location of the sample), where, for the time-domain prediction residual signal 302 i Modification 404 may include time-domain prediction residual signal 302 i Linear combinations (e.g., subtraction, addition, or weighted addition / subtraction) between the correction value (e.g., a function).

[0111] One or more deblocking parameters 400 may define a linear function. For example, deblocking parameter 400 may define an offset α and a slope β (e.g., or only slope β, e.g., where the offset α is an additional deblocking parameter that can be derived from previously decoded samples, as will be further explained below), wherein the offset α and slope β define a linear function. For example, offset α may define a longitudinal offset of the linear function, e.g., at the position of a first sample in the time block to be decoded, at the position of a second sample immediately preceding the first sample, or at a position between the first and second samples (e.g., not necessarily on the grid of sample positions, but at a finer granularity, e.g., a subsample position). Encoder 10 may be configured to use the following equation based on time block 140 i The mean µ of the sample size (e.g., N). ix and time-domain prediction residual signal 302 i The mean of the sample values ​​µ res Determine the offset α and slope β:

[0112] .

[0113] One or more deblocking parameters 400 may define a triangular half-wave function parameterized by a half-wave offset (e.g., α) and a half-wave amplitude (e.g., γ). For example, the triangular half-wave function may be (or may include) a cosine function ranging from 0 to π (e.g., values ​​from +1 to −1), wherein, for example, the cosine function is parameterized (e.g., parameterized in the independent variable of the cosine function) such that its half-wave extends along the length of the time block 140 to be encoded (e.g., having a maximum value at the first sample and a minimum value at the last sample, optionally offset by a sub-pixel position). The deblocking parameter (e.g., γ) for the half-wave amplitude may then modify the amplitude of the cosine half-wave function (e.g., instead of covering the longitudinal range 2). The deblocking parameter (e.g., α) for the half-wave offset may define the longitudinal offset of the half-wave cosine function. Alternatively or additionally, the triangular half-wave function may be (or may include) a sine function, for example, ranging from 0 to π (e.g., values ​​ranging between 0 and 1), or for example, ranging from π to 2π (e.g., values ​​ranging between 0 and −1). If, for example, a transform applied to a given block of signals has already used a cosine function as its basis function, then the sine function—or more precisely, the half-sine function—may be more appropriate than the half-cosine function.

[0114] One or more deblocking parameters 400 (and optional other deblocking parameters) may define a blocking and ringing artifact suppression function (e.g., a linear function or a triangular half-wave function as described herein, e.g., a function that defines a correction value depending on the sample location), and decoder 12 may be configured to communicate with the time-domain signal 302' via the blocking and ringing artifact suppression function. i Linear combinations (e.g., addition and / or subtraction) modify the time-domain predicted residual signal 302 using one or more deblocking parameters 400. i To obtain the modified time-domain prediction residual signal 302' i For example, in the case where the blocking and ringing artifact suppression function is (at least) a linear function defined by one or more deblocking parameters, where the time-domain predicted residual signal 302' i Each sample can reduce the corresponding correction value, which can be determined as the function predicting the residual signal 302' in the time domain. i The value at the corresponding sample location.

[0115] One or more deblocking parameters 400 may include a gating flag. If the gating flag is set (e.g., the value of the gating flag is one), the gating flag may indicate that deblocking post-processing is active, and one or more deblocking parameters 400 include limiting block effects and ringing artifact suppression functions that should be applied to the time-domain predicted residual signal 302. i Perform a linear combination (e.g., through addition and / or, for example, through subtraction) to obtain the modified time-domain prediction residual signal 302'. iOne or more function parameters. If the gating flag is not set (e.g., the value of the gating flag is zero), the gating flag may indicate that the deblocking post-processing is inactive, wherein one or more deblocking parameters 400 may include only the gating flag, and the modified time-domain prediction residual signal 302' i It can be equal to the time-domain prediction residual signal 302 i The gating flag can be signaled for each time block 140, or (for example, only once) for each group of time blocks 140 (for example, for time block 30).

[0116] Figure 10 Figures a through 11b show the modified time-domain prediction residual signal 302. i Different examples. Any encoder 10 and / or decoder 12 disclosed herein can be configured to perform reference... Figure 1 The modifications described in Figures 12a to 12b are as follows. Decoder 12 can be configured to: decode 402 one or more deblocking parameters 400 from data stream 16; modify the time-domain prediction residual signal 302 using one or more deblocking parameters 400. i To perform deblocking post-processing to obtain the modified time-domain prediction residual signal 302' i ; and using the modified time-domain prediction residual signal 302' i For the predicted signal 64 i Perform correction 308. Similarly, any encoder 10 disclosed herein can be configured to determine one or more deblocking parameters 400 and encode them into the data stream 16.

[0117] Figure 11a shows the time-domain prediction residual signal 302 before and after modification using one or more deblocking parameters α, β. i (For example, for time channel block 140) i For example, a schematic diagram of sample 310 of any time block 140 described herein. In the example shown in Figure 11a, a total of two deblocking parameters α and β are used, both of which are derived from data stream 16 (e.g., by being explicitly signaled, or indirectly derived from information relating to deblocking parameters α and β, such as an index of a lookup table, which can be used to identify the deblocking parameters in the lookup table). However, any other number of deblocking parameters may also be used. Furthermore, as will be further explained below (e.g., referring to Figures 12a and 12b), one or more deblocking parameters (e.g., in the form of additional deblocking parameters) may be derived from the previously encoded sample 310 (e.g., not directly from data stream 16).

[0118] In Figure 11a, the horizontal axis t corresponds to the time axis, and the vertical axis A corresponds to the amplitude of the sample value 314 of sample 310. Furthermore, an exemplary time-domain prediction residual signal 302 with 16 samples 310 is used. i However, the time-domain prediction residual signal 302 i There may also be any other number of samples 310. In the following example, it is assumed that sample value 314 is arranged in the middle (or center) of the time span of the corresponding sample 310. However, alternatively, sample value 314 may be used at any other time position within the time span of the corresponding sample 310 (e.g., the start, the end, or any position in between).

[0119] The deblocking parameters α and β (see also figure 400) define a linear function 320a, where α defines the longitudinal offset (e.g., the function value at t=0) and β defines the slope. The residual signal 302 can be predicted based on the time domain. i A simple linear regression of 16 samples 310 is used to determine the linear function 320a (e.g., determined by encoder 10; e.g., based on time block 140). i The mean µ of a number of samples (e.g., N samples). ix and time-domain prediction residual signal 302 i The mean of the sample values ​​µ res However, any other linear regression and any other number of samples 310 can also be used. The linear function 320a can form the block effect and ringing artifact suppression function 322 (or form its basis), thereby allowing modification of the time-domain predicted residual signal 302. i .

[0120] In the example shown in Figure 11a, the residual signal 302 is predicted from the time domain. i Subtracting the block effect and ringing artifact suppression function 322 (or performing any other combination or linear combination) yields the modified time-domain prediction residual signal 302'. i For example, a sample-by-sample subtraction can be performed between sample 310 and the correction values ​​of the block effect and ringing artifact suppression function 322 at the corresponding sample location of sample 310. Since the block effect and ringing artifact suppression function 322 can be defined by deblocking parameters α and β, it may be necessary to signal the deblocking parameters α and β to obtain the modified temporal prediction residual signal 302'. i Due to the modification, the modified time-domain prediction residual signal 302' i Sample values ​​at the ends and beginnings can be reduced, thereby reducing block artifacts and ringing artifacts. The block artifact and ringing artifact suppression function 322 predicts the residual signal 302 in the time domain. iThe values ​​at the first and last samples 310 (e.g., in time) can be referred to as anchor values ​​or anchor parameters (e.g., the starting anchor value for the leftmost sample (e.g., sample index i=0), and the anchor value for the time-domain predicted residual signal 302). i The terminating anchor value of the rightmost sample (e.g., sample index i=N−1).

[0121] Figure 11b shows the time-domain prediction residual signal 302 with a cosine-like shape before and after modification using one or more deblocking parameters α, γ. i A schematic diagram of sample 310. One or both of the deblocking parameters α and γ can be derived from data stream 16, and the half-cosine angle function 320b (e.g., a cosine function extended by half a period, or, for example, any other triangular half-wave function) can be defined using the deblocking parameters α and γ. In general, one or more deblocking parameters 400 can define a triangular half-wave function parameterized by half-wave offset (e.g., α) and half-wave amplitude (e.g., γ). The half-cosine angle function 320b can be defined as... For example, α can define the half-wave offset (e.g., define the longitudinal offset), and γ can define the half-wave amplitude (e.g., a scalar multiplied by a cosine function). However, any other number of deblocking parameters and any other way of parameterizing the trigonometric functions can also be used. The half-cosine angle function 320b can form the blocking and ringing artifact suppression function 322 (or form its basis), thereby allowing modification of the time-domain prediction residual signal 302. i Similar to the above method, the residual signal 302 can be predicted from the time domain. i The block effect and ringing artifact suppression function 322 (or any other combination or linear combination) is subtracted to obtain the modified time-domain prediction residual signal 302'. i .

[0122] Encoder 10 and decoder 12 can be configured to determine only one type of block effect and ringing artifact suppression function 322 (e.g., only linear function 320a or only triangular half-wave function 320b). In this case, it is not necessary to signal the type of block effect and ringing artifact suppression function 322. Alternatively, encoder 10 and decoder 12 can be configured to determine more than one type of block effect and ringing artifact suppression function 322. In this case, encoder 10 can be configured to signal an indicator (e.g., an index or flag) for indicating the type of block effect and ringing artifact suppression function 322 to be used. For example, encoder 10 can be configured to predict the time-domain residual signal 302. i Test (or simulate) more than one (e.g., all) types of block effect and ringing artifact suppression functions 322, and select one type (e.g., based on ringing artifact detection, distortion, and a modified time-domain predicted residual signal 302').i (one or more of the variance measures). Subsequently, encoder 10 may encode a type identifier for the block effect and ringing artifact suppression function 322 and one or more deblocking parameters 400.

[0123] As illustrated above, the two deblocking parameters 400 can be derived or obtained from data stream 16. However, at least one additional deblocking parameter can be derived from previously encoded samples. Decoder 12 can be configured to derive additional deblocking parameters based on encoded samples of the digital time-varying signal (e.g., based on samples immediately adjacent to the corresponding transform-coded time block 140). i The previous one, two, three or more samples, for example, within the same channel.

[0124] Figures 12a and 12b show examples of schematic diagrams of sample modification using additional deblocking parameters 400b(α) derived from the previously encoded sample 310.

[0125] Decoder 12 can be configured to: based on the corresponding transform coding time block 140 i Predicted signal 64 i (e.g., its leftmost sample or the earliest sample in time) and one or more encoded samples of the digital time-varying signal (e.g., based on the samples immediately adjacent to the corresponding transform coding time block 140). i The previous one, two, three or more encoded samples, for example, in the same channel, for example, without decoding additional deblocking parameter 400b from data stream 16, determine additional deblocking parameters; and modify the time-domain prediction residual signal 302 of 404 by using one or more deblocking parameters 400a (e.g., exactly one deblocking parameter) and additional deblocking parameters 400b (e.g., exactly one additional deblocking parameter). i Perform deblocking post-processing to obtain the modified time-domain prediction residual signal 302'. i .

[0126] Decoder 12 can be configured to determine the prediction signal 64 of a digital time-varying signal. i The extension (e.g., in a direction toward one or more encoded samples, e.g., toward earlier samples in the time domain; e.g., linear extrapolation, e.g., via a time-domain location relative to the original prediction signal 64) i The predicted signal of the previous additional samples 64 i (Extension or extension). Decoder 12 can also be configured to combine (e.g., linearly combine, e.g., perform subtraction) the prediction signal 64. iThe extension of one or more encoded samples of the digital time-varying signal is used to obtain a modified version of one or more encoded samples, and an additional deblocking parameter 400b is determined based on the extrapolation (e.g., linear extrapolation) of the modified version of one or more encoded samples (e.g., based on the extrapolation in the prediction signal 64). i The value at the first sample in time determines the additional deblocking parameters (400b). For example, a modified version of one or more encoded samples may be or may be based on one or more encoded samples of a digital time-varying signal, wherein the prediction signal 64 is subtracted sample by sample from one or more encoded samples. i An extension of.

[0127] Decoder 12 can be configured to determine (e.g., immediately adjacently, e.g., in time) the corresponding transform coding time block 140 i Extrapolation (e.g., linear extrapolation) of multiple (e.g., three, four, five or more) previously encoded samples, and based on the extrapolation of multiple encoded samples and the predicted signal 64 i (For example, prediction signal 64) i The additional deblocking parameter 400b is determined based on the first sample at time (e.g., the difference between the extrapolated value and the value of the first sample at that time). In other words, the prediction signal can be extended toward previously encoded samples and modified based on the previously encoded samples; or the previously encoded samples can be extended toward the prediction signal and the extension can be modified based on the prediction signal. However, other methods can also be used to determine the modified extension or extrapolation (e.g., a combination of the two methods described above). The additional deblocking parameter 400b can be determined as (or based on) the modified extension or extrapolation at time block 140 (or prediction signal 64). i The value at the first (or leftmost) sample in time, for example, at the center of the sample, or at a subpixel offset (e.g., half or a quarter of a sample) in the forward or backward direction along time.

[0128] The block effect and ringing artifact suppression function can be defined by one or more deblocking parameters 400a (e.g., exactly one deblocking parameter, e.g., β) and another deblocking parameter 400b (e.g., exactly one other deblocking parameter, e.g., α).

[0129] Additional deblocking parameter 400b and one or more deblocking parameters 400a may define linear function 320a (e.g., where additional deblocking parameter 400b defines the longitudinal offset of linear function 320a).

[0130] Figure 12a illustrates the use of deblocking parameters 400a and β derived from data stream 16, as well as from previously encoded sample 310 and prediction signal 64. iThe other deblocking parameters 400b and α are obtained, and the time-domain prediction residual signal 302 is shown before and after modification. i A schematic diagram of sample 310.

[0131] In one embodiment, decoder 12 is configured to determine a prediction signal 64 of the digital time-varying signal. i Extension 65 i (For example, in a direction toward one or more encoded samples, such as toward earlier samples in the time domain). Extension 65 i Predictable signal 64 i Linear extrapolation (e.g., regression linear extrapolation) is formed. Alternatively, extension 65 i This can be achieved by (or based on) adding time-dependent parameters to the original prediction signal 64. i Previous coded samples are used to form (e.g., predict signal 64) i The length is increased from 16 samples to 20 samples. Decoder 12 can also be configured to combine (e.g., linearly combine, e.g., sample-by-sample subtraction) the predicted signal 64. i The extension of the digital time-varying signal with one or more encoded samples (e.g., the four samples in the example shown in Figure 12a) is used to obtain a modified version of one or more encoded samples. i (For example, subtract the extension 65 from each of the four immediately preceding encoded samples) i (four samples). Decoder 12 can also be configured to modify the time-domain prediction residual signal 302 of 404 by using one or more deblocking parameters 400a (e.g., exactly one deblocking parameter shown in FIG. 12a) and an additional deblocking parameter 400b (e.g., exactly one additional deblocking parameter shown in FIG. 12a). i Perform deblocking post-processing to obtain the modified time-domain prediction residual signal 302'. i For example, decoder 12 can be configured to execute a modified version 67 of one or more encoded samples. i Extrapolation of (e.g., four) samples. Subsequently, by determining the corresponding transform coding time block 140. i The extrapolated value at the starting point can be used to determine additional deblocking parameters 400b, for example, in the form of left anchor point parameters. The starting point may depend on the coordinate system of the linear function 320a. For example, if the linear function 320a is defined as α + βt, it can be determined by using the coordinate system of the linear function 320a in modified version 67. i The extrapolation uses the time t=0 of the coordinate system of the linear equation to determine (or approximate) α.

[0132] The above method is one of several ways to determine (or estimate) additional deblocking parameters 400b. In a simpler version, the sample values ​​of the sample 310 immediately preceding the first (e.g., temporally first) sample 310 of the time block to be decoded 140 can be used in conjunction with the prediction signal 64. i The difference between the first samples determines the additional deblocking parameter α (for example, if the time block 140 to be decoded has N samples indexed from sample index i=0 to N−1, the difference is the difference between the decoded sample at sample index i=−1 and the predicted signal 64). i The difference between samples at i=0). In another example, the value can be the value immediately adjacent to the corresponding transform coding time block 140. i Extrapolating (e.g., linear regression extrapolation) from multiple (e.g., two, three, four, five or more) samples 310 (e.g., sample indices i = −4 to −1) yields additional deblocking parameters α, where the extrapolation is based on the predicted signal 64 i The value at the time position of the first sample (on one hand) and the predicted signal 64 i The additional deblocking parameter α is determined by the difference between the sample values ​​of the first sample (on the other hand). In different examples, the deblocking parameter α can be determined based on the central tendency (e.g., mean, weighted mean, or median) of multiple previously encoded samples 310 (e.g., the immediately preceding sample 310). The additional deblocking parameter 400b can be determined to make the modified time-domain prediction residual signal 302' i The value (e.g., absolute value) of the first sample (e.g., in time) is the smallest (e.g., reducing the value to zero or close to zero, e.g., reducing the absolute value by more than 75%, 90%, or 95%). If no encoded samples of the digital time-varying signal are available (e.g., at the beginning of the encoding process, e.g., due to limitations of encoding dependencies, e.g., when encoding in a random access manner independent of previous time blocks 30), then the sample value of the encoded samples of the digital time-varying signal can be assumed to be zero.

[0133] Since the residual signal (or more precisely, its modified version 302') can be used to... iDeblocking is achieved by reducing the value of the deblocking parameter β to zero or near zero. This can be done efficiently by removing the residual value, which can be estimated based on previously decoded samples. In other words, the similarity of sample values ​​near the decoded samples can be used to determine additional deblocking parameters. Therefore, the transmission of additional deblocking parameter α can be omitted, which improves coding efficiency. For example, only deblocking parameter β can be transmitted in data stream 16 (e.g., directly or indirectly), while deblocking parameter α can be omitted and derived based on previously encoded samples 310. It should be noted that any other number of previously decoded samples 310 (e.g., two, three, five, six or more) can be used to derive additional deblocking parameter α.

[0134] The additional deblocking parameter 400b and one or more deblocking parameters 400a may define a triangular half-wave function 320b (e.g., a cosine or sine half-wave function) parameterized by half-wave offset and half-wave amplitude (e.g., where the additional deblocking parameter 400b defines a scaling factor for the amplitude of the triangular half-wave function 320b).

[0135] Figure 12b shows the time-domain prediction residual signal 302 with a cosine-like shape before and after modification using the deblocking parameter α derived from data stream 16 and an additional deblocking parameter γ derived from the previously encoded sample 310. i A schematic diagram of sample 310. It can be based on the predicted signal 64. i The deblocking parameter γ is determined by one or more immediately preceding (e.g., temporally preceding, e.g., in the same channel) decoded samples 310. For example, it can be based on a modified version 67 of the encoded samples. i The deblocking parameter γ can be determined by extrapolation or any other method described herein. For example, the received deblocking parameter α can cause the half-cosine angle function 320b to be longitudinally shifted, and the half-cosine angle function 320b can be scaled so that it is at the leftmost sample (e.g., the time-domain prediction residual signal 302 shown in Figure 12b). i (from the first of the 16 samples) and the modified version 67 from the coded samples i The extrapolated value matches.

[0136] Bitstream 16 may include one or more syntax elements (e.g., one or more flags) for indicating whether the deblocking parameters (and optional additional deblocking parameters) are defined as linear functions or trigonometric functions (e.g., half-cosine angle functions). Bitstream 16 may include one or more syntax elements (e.g., one or more flags) for indicating whether additional syntax elements will be derived based on previously encoded sample 40. Alternatively, the type of the function and / or the use of additional syntax elements may be pre-configured.

[0137] In addition, adaptive filtering with signaling filter coefficients can be used to filter the weighted sum of each weighted reference block portion, or to filter one or more reference block portions before combining one or more reference block portions with other reference block portions to form a prediction signal.

[0138] An encoder for encoding a digital time-varying signal 92 into a data stream 16 is also provided (e.g., but not limited to...). Figure 1 Figure 4a, Figure 4b, Figure 8c or Figure 9 The encoder 10 shown is configured to encode time blocks 140 by means of each transform in the non-overlapping time blocks 140 of the digital time-varying signal 92. i-1 The digital time-varying signal 92 is encoded into the data stream 16 in non-overlapping time blocks 140 as follows: A prediction mode selected from the prediction mode set is used to predict the corresponding transform-coded time block 140. i-1 To obtain the prediction signal 64 i-1 ; Make the time-domain prediction residual signal 302 i-1 The time domain is subjected to a predetermined transformation to the transform domain to obtain the corresponding transform-coded time block 140. i-1 The coefficients of the predicted residual signal 80 in the transform domain are 300. i-1 Among them, the time-domain prediction residual signal 302 i-1 This indicates the corresponding transform coding time block 140. i The predicted residual signal 80 in the time domain; and the coefficient 300 i-1 Encoded into data stream 16 for use in correcting the 308 prediction signal 64 i-1 Wherein, the predetermined transformation is a non-overlapping transformation.

[0139] Encoder 10 can be configured to encode a data stream 16 that can be decoded by any decoder 12 disclosed herein.

[0140] For example, a predetermined transformation (e.g., The transform is either a discrete cosine transform or a discrete sine transform. Encoder 10 can be configured to select a predetermined transform from the transform set. Encoder 10 can be configured to encode time blocks 140 independently of the corresponding transform. i-1 The next time block that is adjacent to the previous one is 140. i 140 i-2 The method of predicting the residual signal 80 makes the time-domain predictive residual signal 302. i-1The encoder 10 is configured to support different lengths of transform-coded time blocks, select length parameters, and encode them into a data stream, wherein switching between different lengths of transform-coded time blocks is performed at predetermined boundaries between consecutive time blocks. The encoder 10 is configured to perform deblocking preprocessing by: determining one or more deblocking parameters 400; and modifying the corresponding transform-coded time block 140 of 404 using one or more deblocking parameters 400 (e.g., one or more of deblocking parameter 400a and another deblocking parameter 400b). i-1 Time-domain prediction residual signal 302' i-1 To obtain the modified time-domain prediction residual signal 302 i-1 ; and make the modified time-domain prediction residual signal 302 i The coefficients 300 are obtained by undergoing a predetermined transformation from the time domain to the transform domain. i , where the transformation is a non-overlapping transformation.

[0141] Encoder 10 can be configured to perform deblocking preprocessing by: determining one or more deblocking parameters 400; and modifying the corresponding transform coding time block 140 of 404 using one or more deblocking parameters 400. i Time-domain prediction residual signal 302' i To obtain the modified time-domain prediction residual signal 302 i ; and make the modified time-domain prediction residual signal 302 i The coefficients 300 are obtained by undergoing a predetermined transformation from the time domain to the transform domain. i , where the transformation is a non-overlapping transformation.

[0142] One or more deblocking parameters 400 can define the blocking and ringing artifact suppression function (e.g., a linear function or a triangular half-wave function), and the encoder can be configured to: compare the blocking and ringing artifact suppression function with the time-domain predicted residual signal 302' i Perform linear combination (e.g., subtraction and / or addition) to modify the time-domain prediction residual signal 302' of 404 using one or more deblocking parameters 400. i ; and determine one or more deblocking parameters such that the suppression function for blocking effects and ringing artifacts is consistent with the temporal prediction residual signal 302' i Performing a linear combination (e.g., subtraction) results in: a modified time-domain prediction residual signal 302. i In the corresponding transform coding time block 140 i The front and back ends become zero, or are closer to zero than the predetermined maximum distance; or, the modified time-domain prediction residual signal 302 i In the corresponding transform coding time block 140 iIt contains a zero-mean slope, or a modified time-domain prediction residual signal 302. i The average slope is closer to zero than the predetermined maximum deviation.

[0143] One or more deblocking parameters 400 can define the blocking and ringing artifact suppression functions, wherein the encoder 10 can be configured to compare the blocking and ringing artifact suppression functions with the time-domain predicted residual signal 302'. i Perform linear combination (e.g., subtraction and / or addition) to modify the time-domain prediction residual signal 302' of 404 using one or more deblocking parameters 400. i Encoder 10 can be configured to determine the time-domain prediction residual signal 302' i The statistical discrete values; if the statistical discrete values ​​(e.g., the variance of a sample of the residual signal, e.g., the variance of a high-pass filtered version of the residual signal, e.g., compared to the variance of a non-high-pass filtered version of the residual signal) fall within the range of values ​​indicating the smoothing signal (e.g., having a lower threshold and an upper threshold) (e.g., the ratio of the variances does not exceed the threshold), then one or more deblocking parameters (e.g., limiting the anchor point) are determined such that the block effect and ringing artifact suppression function is compared with the time-domain predicted residual signal 302' i Performing a linear combination (e.g., subtraction and / or addition) results in: a modified time-domain prediction residual signal 302. i In the corresponding transform coding time block 140 i The front and back ends become zero, or are closer to zero than the predetermined maximum distance.

[0144] If the statistically discrete values ​​fall within the range indicating a non-smooth signal (e.g., with a lower and upper threshold), then one or more deblocking parameters are determined such that the suppression function for blocking effects and ringing artifacts is consistent with the time-domain predicted residual signal 302'. i Performing a linear combination (e.g., subtraction and / or addition) results in: a modified time-domain prediction residual signal 302. i The corresponding transform coding time block 140i has a zero average slope, or a modified time-domain prediction residual signal 302. i The average slope is closer to zero than the predetermined maximum deviation.

[0145] Encoder 10 can be configured to determine time-domain signal 302' iThe noise metric (e.g., zero-crossing rate, for example, the number of times a signal crosses zero) falls within a range of values ​​indicating a noisy signal (e.g., a range of values ​​with a lower threshold and an upper threshold). If the noise metric falls within this range, one or more gating flags included in the deblocking parameters 400 are not set (e.g., to avoid high-cost scenarios) to indicate that the deblocking preprocessing is inactive, such that one or more deblocking parameters 400 only include gating flags, and the modified time-domain prediction residual signal 302... i Equal to time domain signal 302' i Alternatively, set one or more function parameters, which should be related to the time-domain predicted residual signal 302'. i Linear combination (e.g., subtraction and / or addition) is used to obtain the modified time-domain prediction residual signal 302. i The blocking and ringing artifact suppression functions are defined, and one or more function parameters are included in one or more deblocking parameters to make the blocking and ringing artifact suppression functions zero, thereby effectively disabling deblocking.

[0146] If the noise metric does not fall within the range of values ​​indicating the noise signal, encoder 10 can be configured to determine one or more function parameters such that the block effect and ringing artifact suppression function is consistent with the time-domain signal 302'. i Performing a linear combination (e.g., subtraction) results in: a modified time-domain prediction residual signal 302. i In the corresponding transform coding time block 140 i The front and back ends (e.g., in the time domain) become zero, or are closer to zero than a predetermined maximum distance; or, the modified time domain signal 302 i In the corresponding transform coding time block 140 i It contains a zero-mean slope, or a modified time-domain prediction residual signal 302. i The average slope is closer to zero than the predetermined maximum deviation.

[0147] Encoder 10 can be configured to encode one or more deblocking parameters 400 into data stream 16. However, encoder 10 can be configured not to encode additional deblocking parameters 400b.

[0148] Encoder 10 can be configured to: based on the corresponding transform coding time block 140 i Predicted signal 64 i and one or more encoded samples of the digital time-varying signal (e.g., based on samples immediately adjacent to the corresponding transform coding time block 140). iThe additional deblocking parameter 400b is determined from one, two, three or more previously encoded samples, for example, in the same channel, e.g., without encoding the additional deblocking parameter 400b into data stream 16; and the time-domain prediction residual signal 302 of 404 is modified by using one or more deblocking parameters 400a (e.g., exactly one deblocking parameter) and the additional deblocking parameter 400b (e.g., exactly one additional deblocking parameter). i Perform deblocking preprocessing to obtain the modified time-domain prediction residual signal 302'. i .

[0149] Encoder 10 can be configured to: determine the prediction signal 64 of the digital time-varying signal. i The extension (e.g., in a direction toward one or more encoded samples, e.g., toward earlier samples in the time domain; e.g., linear extrapolation, e.g., via a time-domain location relative to the original prediction signal 64) i The predicted signal of the previous additional samples 64 i (Extension or extension); combination (e.g., linear combination, e.g., performing subtraction) predicts the signal 64 i The extension of one or more encoded samples of the digital time-varying signal is used to obtain a modified version of one or more encoded samples; and additional deblocking parameters 400b are determined by extrapolation (e.g., linear extrapolation) based on the modified version of one or more encoded samples (e.g., based on extrapolation in the predicted signal 64). i The value at the first sample in time is used to determine the additional deblocking parameter 400b.

[0150] Encoder 10 can be configured to: determine the corresponding transform coding time block 140 i Extrapolation of multiple (e.g., three, four, five or more) previously encoded samples (e.g., immediately preceding, or temporally preceding) in the corresponding transform encoding time block 140 i In the direction; for example, linear extrapolation); and extrapolation and prediction of signals based on multiple encoded samples 64 i (For example, prediction signal 64) i The additional deblocking parameter 400b is determined based on the difference between the extrapolated value and the value of the first sample at that time.

[0151] Additional deblocking parameter 400b and one or more deblocking parameters 400a may define linear function 320a (e.g., where additional deblocking parameter 400b defines the longitudinal offset of linear function 320a).

[0152] The additional deblocking parameter 400b and one or more deblocking parameters 400a define a triangular half-wave function 320b parameterized by half-wave offset and half-wave amplitude (e.g., where the additional deblocking parameter 400b defines a scaling factor for the amplitude of the triangular half-wave function 320b).

[0153] The blocking and ringing artifact suppression functions may be defined by one or more deblocking parameters 400a (e.g., exactly one deblocking parameter) and another deblocking parameter 400b (e.g., exactly one other deblocking parameter).

[0154] The additional deblocking parameter 400b was determined to make the modified time-domain prediction residual signal 302' i The value (e.g., absolute value) of the first sample (e.g., over time) is the smallest (e.g., reducing the value to zero or close to zero, e.g., reducing the magnitude by more than 75%, 90%, or 95%).

[0155] Generally, when using a pseudocode-like approach, the following options (steps in parentheses are optional) should be explicitly mentioned for offset and filtering decisions used to transmit the reference block portion:

[0156] A)

[0157] (Number of decode / encode reference blocks) (Note: Executed separately for this time block, or executed over a larger time range)

[0158] For each reference block section

[0159] Decoding / encoding offset unit indicator (Note: one of the following: full sample unit, half sample unit, etc.)

[0160] The number of decoding / encoding offset units (Note: Make the offset equal to this number multiplied by the offset units).

[0161] If there is no reference block portion with subsample offset (note: that is, there is no reference block portion that requires an interpolation filter).

[0162] Decoding / encoding filter flags

[0163] If a reference block portion with subsample offset exists,

[0164] The inference filter flag indicates that filtering should not be performed.

[0165] If the filter flag indicates that filtering should be performed.

[0166] Decode / encode filter information (Note: This filter can be applied to the weighted sum to produce the final predicted signal 64)

[0167] B)

[0168] (Number of decode / encode reference blocks) (Note: Executed separately for this time block, or executed over a larger time range)

[0169] Decoding / encoding offset unit indicator (Note: one of the following: full sample unit, half sample unit, etc.)

[0170] For each reference block section

[0171] The number of decoding / encoding offset units (Note: Make the offset equal to this number multiplied by the offset units).

[0172] If there is no reference block portion with subsample offset (note: that is, there is no reference block portion that requires an interpolation filter).

[0173] Decoding / encoding filter flag (Note: Otherwise, it can be assumed that filtering is not indicated)

[0174] If the filter flag indicates that filtering should be performed.

[0175] Decode / encode filter information (Note: This filter can be applied to the weighted sum to produce the final predicted signal 64)

[0176] C)

[0177] (Number of decode / encode reference blocks) (Note: Executed separately for this time block, or executed over a larger time range)

[0178] Decoding / encoding filter flags

[0179] If the filter flag indicates that filtering should be performed.

[0180] Decode / encode filter information (Note: This filter can be applied to the weighted sum to produce the final predicted signal 64)

[0181] The offset unit indicator for each time block indicates the offset unit for the entire sample.

[0182] If the filter flag does not indicate that filtering should be performed.

[0183] For each reference block section

[0184] If the filter flag does not indicate that filtering should be performed.

[0185] Decoding / encoding offset unit indicator (Note: one of the following: full sample unit, half sample unit, etc.)

[0186] The number of decoding / encoding offset units (Note: Make the offset equal to this number multiplied by the offset units).

[0187] D)

[0188] (Number of decode / encode reference blocks) (Note: Executed separately for this time block, or executed over a larger time range)

[0189] For each reference block section

[0190] Decoding / encoding offset unit indicator (Note: one of the following: full sample unit, half sample unit, etc.)

[0191] The number of decoding / encoding offset units (Note: Make the offset equal to this number multiplied by the offset units).

[0192] If the corresponding block portion does not have a subsample offset (note: that is, the reference block portion does not require an interpolation filter).

[0193] Decoding / encoding filter flags

[0194] If the filter flag indicates that filtering should be performed.

[0195] Decode / encode filtering information (Note: Otherwise, no filtering is performed (except for interpolation filtering)).

[0196] E)

[0197] (Number of decode / encode reference blocks) (Note: Executed separately for this time block, or executed over a larger time range)

[0198] For each reference block section

[0199] Decoding / encoding offset unit indicator (Note: one of the following: full sample unit, half sample unit, etc.)

[0200] The number of decoding / encoding offset units (Note: Make the offset equal to this number multiplied by the offset units).

[0201] Decoding / encoding filter flags

[0202] If the filter flag indicates that filtering should be performed.

[0203] Decode / encode filter information (Note: This filter can be applied to the weighted sum to produce the final predicted signal 64)

[0204] F)

[0205] (Number of decode / encode reference blocks) (Note: Executed separately for this time block, or executed over a larger time range)

[0206] Decoding / encoding offset unit indicator (Note: one of the following: full sample unit, half sample unit, etc.)

[0207] For each reference block section

[0208] The number of decoding / encoding offset units (Note: Make the offset equal to this number multiplied by the offset units).

[0209] Decoding / encoding filter flags

[0210] If the filter flag indicates that filtering should be performed.

[0211] Decode / encode filter information (Note: This filter can be applied to the weighted sum to produce the final predicted signal 64)

[0212] G)

[0213] (Number of decode / encode reference blocks) (Note: Executed separately for this time block, or executed over a larger time range)

[0214] For each reference block section

[0215] Decoding / encoding offset unit indicator (Note: one of the following: full sample unit, half sample unit, etc.)

[0216] The number of decoding / encoding offset units (Note: Make the offset equal to this number multiplied by the offset units).

[0217] Decoding / encoding filter flags

[0218] If the filter flag indicates that filtering should be performed.

[0219] Decode / encode filtering information (Note: Otherwise, no filtering is performed (potentially, except for interpolation filtering)).

[0220] like Figure 1 The data stream 16 has a prediction residual 80 encoded therein, which constitutes the prediction residual of the prediction signal 64 and can be used, for example, by addition, to correct the prediction signal 64 to produce a reconstruction of the time block 140.

[0221] The above description is extended by providing other embodiments below.

[0222] The following section may be titled "Perception Encoding and Decoding of Biomedical Signals, Seismic Signals and Related Waveform Signals".

[0223] Two-dimensional waveform signals (e.g., with time as one dimension and amplitude as the second), such as those recorded in seismic, biomedical, or sonar scenarios, are typically lossless encoded when stored or transmitted in digital representation. However, in some cases, lossy encoding may be desirable, especially when the goal is to reduce the bit rate required for the single-channel or multi-channel waveform signal involved. Such lossy encoding typically involves applying time-frequency transformations (e.g., forward transforms on the encoder side) and frequency-time transformations (i.e., inverse transforms) (e.g., inverse transforms on the decoder side) at the block level to maximize coding gain and / or achieve perceptually optimized coding.

[0224] Disadvantages of traditional transform coding

[0225] One drawback of using forward and inverse block transforms in lossy waveform coding is the emergence of block artifacts, or ringing artifacts, after relatively coarse requantization of the transform coefficients. This is related to the Gibbs phenomenon (detailed explanation at https: / / en.wikipedia.org / wiki / Gibbs_phenomenon). This artifact can be perceived in some signals even when the transformed waveform block signal is a residual of a prediction operation (e.g., a prediction residual signal), such as the sample-by-sample difference between the original waveform block (e.g., a transform-coded time block) and the prediction block (e.g., a prediction signal, constructed from previously decoded and reconstructed waveform portions), where the prediction block may be the same size as the original waveform block.

[0226] Conventional solutions and their disadvantages

[0227] For example, two common algorithms address block artifacts and ringing issues in lossy media coding. The first algorithm applies overlapping transforms, such as the Type IV Modified Discrete Cosine Transform (MDCT) and its inverse (IMDCT). This causes frame signals to overlap, increasing encoder / decoder (codec) latency and waveform reconstruction complexity, especially at the beginning of a waveform and / or between two consecutive but independently coded waveforms (see also https: / / en.wikipedia.org / wiki / Gapless_playback). Furthermore, combining overlapping transforms with predictive coding (i.e., performing overlapping transforms on predictive residual block signals) is complex and feasible only in a limited form: the predictive signal must be extended in time (size) to also cover the overlapping transform range.

[0228] The second algorithm for reducing block artifacts is the deblocking post-filter, used in many image and video codecs, which is applied after inverse transform (e.g., inverse transform) and image reconstruction. This solution works well on multidimensional (temporal-spatial-amplitude) natural image and video data acquired by digital cameras, but suffers from two main drawbacks that reduce its effectiveness on the aforementioned two-dimensional waveform data, and possibly on music or speech signals:

[0229] Deblocking does not extend well to lossless coding, or in some cases even poorly to perceptually transparent (i.e., near-lossless) coding, because it typically operates "blindly" on the decoded and reconstructed signal samples and may fail to distinguish block artifacts from the actual input data, potentially altering and distorting near-lossless decoding.

[0230] Deblocking works poorly on waveform inputs with highly variable sample statistics, i.e., signals that are more volatile or non-stationary compared to still images or video sequences. For such signals, too little deblocking is applied, or the deblocking process itself may introduce additional reconstruction artifacts. Clearly, both are undesirable.

[0231] Overview of the encoding (decoding) solution of this invention

[0232] The following describes a method and an apparatus that allow transform coding and corresponding decoding to be performed using optional predictive coding techniques without transform overlap, thereby achieving a concise codec architecture and minimizing the risk of seamless playback issues, i.e., especially the erroneous reconstruction of the first and last frames in the encoded bitstream.

[0233] This invention comprises two aspects that can be used individually or in combination. The first aspect involves using a specific non-overlapping block transform (in the encoder) and a corresponding inverse non-overlapping block transform (in the decoder), and applying it to the residuals (e.g., per-sample results) of at least one predictive encoding / decoding operation, for example, for encoding and decoding biomedical signals, seismic signals, or acoustic signals. In other words, since there is no overlap between the aforementioned transforms, it may be unnecessary to perform the time windowing and time-domain aliasing (TDA) operations commonly used in audio codecs (another common term for TDA operations is "folding" or "folding in"; similarly, TDAC operations can also be called "folding out"). The specific non-overlapping block transform can be a discrete cosine transform or a discrete sine transform, preferably a type II DCT (also known as DCT-2) or a type II DST (also known as DST-2), or their corresponding inverse transforms. It should be noted that such DCTs and DSTs can be used in the AC-2 audio codec standard, but with transform overlap and without the use of a predictor (see https: / / ccrma.stanford.edu / ~jos / Compression / Compression.pdf).

[0234] The second aspect involves using guided deblocking operations (e.g., performing post-deblocking processing) in the aforementioned encoding and / or decoding of biomedical signals, seismic signals, or acoustic signals. According to aspect 1, the guided deblocking operation is applied in a "forward" manner, e.g., before forming the residual block transform coefficients to be quantized (in the encoder); and in a correspondingly "reverse" manner during transform coefficient reconstruction (in the decoder). The guided deblocking operation includes transmitting (i.e., signaling) one or more deblocking parameters (or more) for each transform block, preferably in quantized form. These (one or more deblocking parameters) can be converted, for example, into offset and slope or curvature values, from which a sample-by-sample monotonically increasing or decreasing correction function can be determined, and this correction function can then be applied (e.g., equally) to the initial residual block samples in the encoder (e.g., by subtraction) and the reconstructed residual block samples in the decoder (e.g., by addition).

[0235] Detailed explanation of aspect 1: Architecture

[0236] Figure 7A block diagram of a typical lossless audio encoder based on linear predictive coding (LPC) is shown [1]. Here, the prediction residuals by block may not be time-frequency transformed or requantized, for example, to achieve lossless compression, i.e., perfect signal reconstruction during decoding. It should be noted that a “predictor” block may represent one or more (e.g., cascaded or combined in the latter case) short-term, long-term, or cross-channel predictive signal generators. Specifically, such a predictor may be, for example, a short-term predictor (also called an LPC predictor) that utilizes previous samples from the more recent past; or, for example, a long-term predictor, also called LTP, or equivalently referred to as motion compensation in video coding, which utilizes, for example, blocks of (previous) samples from the more distant past; or, in the case of multi-channel signals, a cross-channel or cross-component predictor that uses, for example, (current or previous) samples from at least one other channel or component of the encoded signal.

[0237] Figure 8a illustrates a schematic diagram of the encoding process for encoding digital time-varying signals. Figure 8a also shows how this specification can be creatively extended. Figure 7 The block diagram, for example, is used to achieve lossy compression and optional perceptually optimized compression. In the encoder shown in Figure 8a, the following three additional operation blocks may exist in the residual signal path:

[0238] (Optional) Deblocking preprocessing, which modifies the region to be transformed in the residual signal such that subsequent blocking artifacts or ringing artifacts are minimized when the modification is revoked on the decoder side, for example, minimizing blocking artifacts or ringing artifacts caused by subsequent transform-domain quantization operations (see below); details of this inventive deblocking process are described in the next section below. It should be noted that this deblocking process may employ one or more parameters, for example, two parameters; as discussed in the following section, the parameters may be signaled using different but, for example, mathematically equivalent representations. Exemplary signaling parameters for this encoding step: two deblocking parameters (offset, slope / curvature) (or any other number of deblocking parameters).

[0239] The forward transform, which, for example, applies a time-frequency (TF) transform and, as described above, uses a non-overlapping transform (e.g., a windowless transform), such as preferably DCT-2 or DST-2. More specifically, the non-overlapping condition means that the transformed region of the residual signal (i.e., the residual block) may not overlap with, for example, the past or future transformed regions of the residual signal in the same channel or component. On the other hand, the windowless condition means that, for example, no window function needs to be applied (e.g., multiplied) to the residual block data before the transform or after the inverse transform; for example, it can be assumed that an implicit rectangular window is used during both the forward and inverse transforms. An exemplary signaling parameter for this encoding step is a transform type parameter (DCT-2 / 4 or DST-2 / 7).

[0240] An optional quantization process allows for requantization of the transformed residual samples, for example, remapping the transform coefficient values ​​to a smaller set of quantization indices, to reduce the bit rate during entropy coding and transmission. Such a quantizer can be, for example, a scalar linear or nonlinear quantizer with a quantization step size, or it can be a vector quantizer. Furthermore, additive dithering (encoder-side only) or subtractive dithering can be used in the quantization, for example. An exemplary signaling parameter for this encoding step is the block-by-block quantization parameter (QP or incremental QP).

[0241] Figure 8b shows an example of a decoding process for decoding a digital time-varying signal (e.g., a digital time-varying signal encoded by the encoding process shown in Figure 8a).

[0242] The corresponding decoder shown in Figure 8b contains three equivalent operation blocks in reverse signal processing order. Specifically, the (optional) quantization block is supplemented by a reconstruction scaling block (e.g., also called an "inverse quantization" block), controlled by a signaled block QP; the encoder-side time-frequency (TF) transform is revoked by a frequency-time (FT) transform (also called an "inverse transform" or "anti-transform"), parameterized by a signaled transform type indicator; and the deblocking post-processor revoks the encoder-side deblocking preprocessing operation.

[0243] Regarding the selection of short-term, long-term, or cross-channel predictors applied on a channel before (in the encoder) or after (in the decoder) deblocking, it should be noted that in this invention, the encoder may, for example, optimize the search based on rate-distortion (RD) to obtain the “most suitable” prediction signal to be used for a given channel signal block of length or size N. To enable the same prediction signal to be obtained and applied on the decoder side, the selection of the prediction type (e.g., depending on N, see below) may be signaled, for example, block-by-block in the bitstream via, for example, a 2-bit or 3-bit predictor index. For example, such an index may convey that, in addition to, for example, an LPC-based short-term predictor known by lossless codecs of [1] (e.g., cascaded with such predictor), exactly one predictor from a set of predictors supported by N (e.g., the allowed set of predictors may vary between different block sizes) should be applied for a given block in both the encoder and decoder. In addition to the LPC predictor, the codec of this invention may also provide one or more of the following predictors (e.g., prediction modes), the implementation details and mathematical details of each predictor given on the following pages:

[0244] - A DC predictor, hereinafter referred to as an "average predictor," which, for example, calculates the average of the last K samples preceding the start (first sample) of the current block using fixed-point arithmetic (e.g., K is a predetermined value, a signaled value of K, or a value of K that can be derived from decoded samples). Exemplary signaling parameters for this predictor (optional): k used for averaging (e.g., 0, 1, ..., 7 or greater), or k is a fixed value.

[0245] - Bypass (i.e., disable) the predictor, which effectively turns off prediction, for example, by setting the prediction signal to zero; obviously, this type of predictor may not need to signal other parameters.

[0246] - A half-slope (straight line) predictor, which, for example, calculates a continuously increasing or decreasing straight line as a prediction signal, wherein the slope of the line is determined, for example, based on the last few samples prior to the start of the current block (e.g., and / or based on signaling). "Half" indicates that the calculated slope is weighted by 1 / 2 (however, different weight values ​​or weightings may also be used). The predictor's signaling parameters are: for example, none; the slope can be derived from previously decoded samples.

[0247] - A quarter-slope (straight line) predictor, which, for example, is similar to the one described above, calculates a straight line based on the last few samples preceding the current block (e.g., a predetermined number and / or the number of samples signaled). Unlike the half-slope predictor, the slope can be scaled by 1 / 4. The signaling parameters for this predictor are: for example, none; the slope can be derived from previously decoded samples.

[0248] - A block copy (e.g., long-term) predictor that generates a predicted signal, for example, by copying a portion of size N (e.g., a portion of a given channel) from a previously decoded signal and optionally scaling and / or filtering it. Exemplary signaling parameters for this predictor include: copy offset, (optional) weights, and / or filtering parameters.

[0249] - A cross-channel linear model predictor that computes a least-squares optimized linear fit to the current block signal, for example, based on co-located samples from at least one other signal channel (e.g., possibly including past samples from the current channel and other channels or previously encoded samples prior to the current block). Exemplary signaling parameters of this predictor include: one or more quantized linear model parameters, such as offset parameters.

[0250] Preferably, for one or more predictors (or prediction modes), such as half-slope predictors and / or quarter-slope predictors, their use in large blocks may not be permitted, for example, when N > 64, such as for certain block sizes or size ranges. In this case, for example, only four predictors (or any other combination of predictor / prediction modes) may be supported (or enabled), and their selection may be signaled using 2 bits instead of 3 bits (e.g., or only 1 bit may be used if only two predictors are enabled). Figure 8c outlines this aspect and the prediction selection process on the encoder side.

[0251] Figure 8c illustrates a set of prediction modes and an example of selection from them. In the example shown in Figure 8c, there are six available prediction modes (or predictors): bypass prediction, DC prediction, half-slope prediction, quarter-slope prediction, block copy prediction, and linear model prediction. Optionally, half-slope prediction and quarter-slope prediction may be limited to attributes of the current block to be decoded (e.g., block size and / or the block's position relative to the random access point). Encoder 10 can be configured to simulate or test using one or more (e.g., all) prediction modes (e.g., depending on the current encoded block, which may be limited based on the block size) and select the mode actually used for encoding based on a metric such as rate-distortion (e.g., cost) (e.g., selecting the mode with the best or optimal rate-distortion). Encoder 10 can then signal a type indicator (e.g., indicating the selected prediction mode; e.g., using one, two, or three bits depending on optional limitations of the prediction mode) and the encoded version of the residual signal (e.g., residual signal 80).

[0252] For example, let This represents the samples to be encoded in the current block (e.g., each sample x has a value in the original domain 26 or the time domain; e.g., N represents the length or number of samples of the current block (e.g., time block 140); e.g., M represents the number of previously decoded samples, e.g., the number of previously decoded samples of the sample channel, the entire digital time-varying signal 92, or a subset thereof). Let This refers to reconstructed samples that precede the current sample in time (e.g., previously encoded samples in the original domain 26). In one embodiment of the invention, the following set of prediction modes can be supported (but any other set of prediction modes can be used instead, and the prediction modes themselves can be implemented in different ways), meaning that it is possible to support... Some samples Generate prediction signal Methods (e.g., based on linear combinations such as subtraction).

[0253] • DC forecasting mode or mean forecasting mode. Here, for a fixed integer... For example, in is an integer power of 2 and In this case, it can be set as follows:

[0254]

[0255]

[0256] The operators "<<" and ">>" can represent logical shifts to the left or right, respectively. For example, shifting left by one bit ("<<") is functionally equivalent to multiplying by two, and shifting right by one bit (">>") is functionally equivalent to dividing by two (or an approximation thereof). Values ​​can be signaled by block, by channel, by sequence, or by other time units. Or it can be fixed as, for example , , or (or any other integer). In one case, the value... It can have a maximum value, and it can be This maximum value is considered in binarization and entropy encoding / decoding. For example, this maximum value may depend on the block size. ,in, An increase in this corresponds to the maximum value not decreasing. In another case, this can be applied to each block size. Value Fixed to a specific value (e.g., a predetermined value). Here, in one case, a fixed value can be set such that... An increase in corresponds to the maximum value not decreasing.

[0257] • Half-slope prediction mode, which generates prediction samples , Here, firstly, it can be calculated as follows: and The slope between :

[0258] (1)

[0259] However, it has been found that using slope Using linear prediction to generate the prediction signal can often produce a prediction signal with an input value that is too large, especially far from the sample location. Sample location Therefore, it is proposed to optionally, for example, proportionally reduce the slope m, for example, by a factor of 0.5, and thus let:

[0260]

[0261] And then it is defined as follows:

[0262]

[0263] Half-slope prediction can also be limited by offset or bias.

[0264] • The quarter-slope prediction model can generate prediction samples in a similar manner to the half-slope model. , Similarly, there is the inference that the full slope can be optionally reduced proportionally. Therefore, if the slope As defined in equation (1) above, we can let:

[0265]

[0266] and

[0267]

[0268] • A prediction mode that enables prediction bypass and generates a zero-prediction signal can be defined as follows:

[0269]

[0270] • A prediction method, wherein, for example, it is based on one or more time offsets that can be signaled in the data stream. (For example, k represents the number of predictors or blocks to be used to generate the predicted signal; for instance, k=2 indicates that the predicted signal is generated using two previously encoded time blocks, e.g., time offsets 2481 and / or 2482.) The time-offset predicted signal can be generated from the following reconstructed samples. :

[0271]

[0272]

[0273]

[0274] This may involve applying multiple signal processing operations, such as filtering, to these reconstructed sample sets. In one possible scenario, only one offset might be signaled. (For example, k=1), and generate predictions as follows:

[0275]

[0276] In another possible scenario, a signal is sent to notify both offsets. (For example, k=2), and generate predictions as follows:

[0277]

[0278] Where possible, the time offset can also have non-integer values, for example, a range of values ​​at half-pixel resolution (or another fraction of the sample length). Here, for the time offset... Interpolation filtering operations may need to be applied, for example, to generate interpolated reconstructed samples. .

[0279] • For cases where the entire signal contains multiple channels (e.g., Figure 1 The sample shown has 32 channels, where the sample (For example, the sample to be encoded in the first channel) and the sample (For example, the encoded sample of the first channel) belongs to one of these channels, and in which Indicates belonging to a channel The sample value, channel c is different from the sample The channel it belongs to (e.g., a sample from a second channel that is different from the first channel):

[0280] A prediction method can be used, which is based on one or more channel indices. and time offset (It can be compared with values ​​such as pre-defined or signaled notifications) (Signaling together in the data stream), and based on (e.g., the value of the signaling) (Signals can be sent in the data stream or derived from reconstructed samples), for example, prediction signals can be generated as follows:

[0281]

[0282] Here, Indicates channel In position The reconstructed sample values ​​at that location. For this prediction model, it may be necessary to require channels. The reconstructed sample values ​​in the data have been encoded or decoded to time values ​​respectively. .

[0283] In one embodiment, for large block sizes, the generation of prediction signals may not be supported (e.g., disabled). and The prediction method is flawed because, for example, when generating a prediction signal by producing a straight line with a certain slope, extremely large or small sample values ​​may be generated at block boundaries very far from the start of the line, thus potentially failing to produce an appropriate prediction. In another embodiment, the slope should be explicitly signaled. For example, it can be used as a predefined set of allowed slope values. One of the options (e.g., as an index in a lookup table) or signaling using a predefined binarization. Therefore, predictions of the following forms should be supported:

[0284]

[0285] However, for large blocks, the slope can also be determined based on the encoded samples, where, as an option, a signal can be sent to notify the parameters used to modify (e.g., reduce) the determined slope.

[0286] It should be emphasized that, in addition to short-term predictors based on per-sample LPC (linear predictive coding, e.g., in the case of audio coding) in the prior art, specific predictor types selected from the six types (or four types for some N) set of the present invention can also be applied, as shown in Figure 8c. The parameters (filter order and quantization coefficients) of the short-term predictor can be determined independently. In other words, preferably, the short-term LPC predictor can be applied to the block residual signal of the predictor selected from the set of the present invention, i.e., after the last prediction is performed in the encoder. This means that, in the decoder, for example, LPC “synthetic” prediction can be performed before adding the prediction signal selected from the set of the present invention. In the case of lossless encoding of a given block (e.g., signaled by QP=0), the process can be relatively straightforward since the quantization, transform, and deblocking steps can generally be bypassed and prohibited. During lossy encoding (e.g., indicated by QP>0), the short-term LPC “synthetic” prediction can, for example, operate on the sample values ​​that have been quantized and possibly transformed and deblocked, thereby achieving spectral noise shaping (SNS) for example by filtering the reconstructed residual samples and the quantization errors included therein. Figure 9 The following is a block diagram illustrating an example of the detailed operation of this encoding / decoding scenario. LPC prediction can be bypass prediction, for example, its filter order can be 0.

[0287] Figure 9 Examples of encoders and decoders using LPC prediction are shown. Any encoders and decoders disclosed herein may include combinations of... Figure 9 Any publicly disclosed characteristics.

[0288] Regarding the selection of the transform type applied to a given (residual) signal block, the following aspects should be noted. First, not all four transform types mentioned above (i.e., DCT-2, DCT-4, DST-2, DST-7) are necessarily allowed at all block sizes. Specifically, for example, DST-7 transform can be disabled for large block sizes N, and the signaling of the transform type index (e.g., a lookup table for the transform type or transform function) can be adjusted accordingly for said N, or DST-7 can be replaced with a DST-4 core (or other cores) during transform. Second, similar to prediction, during block coding, different transform variants can be evaluated, for example, in an RD optimization framework, and the “best” transform type can be selected, for example, based on or according to the results of this RD evaluation, and the selected “best” transform type can be signaled using a sufficient number of bits (here, 2 bits for 3 to 4 choices).

[0289] It should be noted that identity transformations (e.g., where no actual forward or inverse transformation exists) may be included as one option from the set of allowed transformation type parameters that can be signaled. In this case, the (optional) coefficient quantizer can operate in the time domain rather than the frequency domain. Similarly, supporting signaling, for example, "zero" offset and / or "zero" slope or curvature as deblocking parameters, as a means of disabling or bypassing deblocking features, may be advantageous.

[0290] In summary, it should be noted that, for example, additional optional frequency domain prediction (FDP) filtering can be used between the quantization step and the (forward or inverse) transform step to allow for advanced perceptual optimization of the waveform compression process [2], as shown in Figure 8a (between quantization and TF transform) and Figure 8b (between reconstruction scaling and FT transform). This frequency domain prediction, which can typically be achieved through pre-filtering and post-filtering, can be used, for example, for audio encoding and decoding. For example, this frequency domain prediction can be run in an open-loop manner (performing FIR (finite impulse response) filtering on the encoder side before quantization and the corresponding IIR (infinite impulse response) filtering on the decoder side after quantization), thereby allowing for time-based shaping of quantization distortion. Therefore, this process is also called time noise shaping (TNS), which is similar to spectral noise shaping (SNS), for example, which can be achieved through LPC-based time domain prediction filtering. Due to the input signal dependence of the frequency domain predictor (e.g., in the TNS filter coefficients), the combination of time-frequency transform and TNS is sometimes called time-signal adaptive transform; and, for example, by recognizing that LPC-based SNS also has input dependence (in the LPC coefficients), a time-frequency transform with TNS enhancement based on LPC-based SNS can be considered to represent a spectrum-time signal adaptive transform. This enhancement transform is well-suited for perceptual coding and decoding.

[0291] Detailed explanation of aspect 2: Deblocking

[0292] It should be noted that aspect 1 (“Architecture”) above is not a replacement for aspect (“Deblocking”) described herein. Rather, both aspects can be applied individually or in any combination.

[0293] Figure 8 illustrates an example of encoder-side and decoder-side operation of the parameter-guided deblocking preprocessing and postprocessing of the present invention. The "forward" preprocessor (e.g., transforming from the time domain to the frequency domain) can modify the input block, or, in a preferred embodiment, modify the residual block signal res. i (For example, residual signal 80), preferably by subtracting the so-called correction function cor i The results are used to make modifications, for example, by evaluating the correction function cor at each sample position i of the residual block signal res. i The result. Here, among several possible objectives, the intention (or the objective to be approached) is to make the resulting corrected residual block signal res' achieve zero crossings, for example, at both the start and end samples of the block region (e.g., reducing the probability of the value crossing the zero level). Making the corrected residual waveform “taper” toward zero at the two block boundaries reduces spectral leakage (or in other words, increases spectral concentration) during subsequent time-frequency transformations, and thus significantly reduces block effects and ringing artifacts, for example, when requantizing the transform coefficients (e.g., frequency samples). Depending on the characteristics of the block samples, the alternative (or additional) intention of the correction may be to minimize the overall tilt in res (e.g., bias or increase toward higher frequencies) rather than to minimize the discontinuities at the aforementioned block boundaries, where such tilt can be determined, for example, by linear regression (linear model) analysis [3].

[0294] On the decoder side, the "reverse" processing of the deblocking preprocessor (e.g., transformation from the frequency domain to the time domain), for example, the corresponding postprocessor, preferably through the correction function cor i The (same) result is added to the quantized and reconstructed previously corrected residual block signal res' Q To undo the above modifications, for example, by evaluating the correction function cor again at the same sample location i. i The result. Specifically, the cor signal used on the encoder side to obtain res' can be compared with the signal used during decoding to obtain res'. Q Reconstructed uncorrected residual block signal res Q The cor signal is the same, and for example, it can now be inversely transformed (and optionally inverse TNS filtering) and inverse predicted. To make this feasible, it may be necessary to signal the parameters of the correction function cor from the encoder (e.g., encoding and transmission) to the decoder, preferably in the following manner (but not limited to).

[0295] The decoder can be configured to: decode one or more deblocking parameters from the data stream; perform post-deblocking processing (e.g., using a deblocking function) by modifying the temporal prediction residual signal using one or more deblocking parameters to obtain a modified temporal prediction residual signal; and correct the prediction signal using the modified temporal prediction residual signal. Deblocking processing can be performed using deblocking functions (e.g., blocking and ringing artifact suppression functions) that may have different shapes and parameterizations (e.g., corrections).

[0296] For block b (e.g., a transform-coded time block), let cor be fully described by one of the following functions with two parameters:

[0297] Linear functions, for example, have an offset parameter α and a slope parameter β as discussed in [3]. In other words, the underlying model of such a deblocking function can be (or may be based on) a simple linear model characterized by linearly increasing or decreasing value progression, for example, between boundary indices i = 0 and i = N (where N is the block size): cor i = α + β · 2 · i, where 0≤i <N。

[0298] Trigonometric functions, for example, have an offset parameter α and a curvature parameter γ, where γ controls, for example, the maximum amplitude of a half-cosine angle function between 0 and π. In this variant, the underlying model is not linear, but rather sinusoidal, characterized by a smoother progression of values ​​between i = 0 and i = N, and exhibiting a less pronounced slope (first derivative) at block boundaries. , where 0≤i <N。

[0299] Regarding the aforementioned correction function, four aspects are noteworthy. First, in the two variations of the function, the term multiplied by i, “·i” (e.g., the sample position as a function parameter), can be replaced with its time-offset version, such as “·(i + 0.5)” (or any other integer or rational number, or a number between −1 and 1), to obtain a time-symmetric function, for example, within processing block b. Second, the two functions can be parameterized in different ways, for example, using the parameters described above and / or using the starting and ending values ​​of the function in b, for example, using boundary anchor values ​​obtained by evaluating the corresponding functions at i = 0 and i = N (or N−1). In other words, in the absence of quantization or precision differences, signaling the two anchor values ​​to the decoder for each block b, instead of signaling α and β or α and γ, is mathematically equivalent because the latter two parameters can be determined from the anchor values ​​(e.g., α and β can be determined from the values ​​of the residual signal at the first and last samples of the block, i.e., at i = 0 and i = N−1). Third, to limit the number of bits that may be needed to transmit deblocking parameters in the bitstream, especially when the size of b is small, one or more function parameters such as α and β or α and γ (or, as mentioned above, their equivalent anchor values ​​or similar parameters that allow for the definition of the deblocking function) can also be quantized. For example, preferably, these function parameters can be quantized more finely than the transform coefficients, for example, using smaller step sizes or QPs, and / or using scalar linear quantizers. In general, a good trade-off can be expected between the bit consumption of the quantized deblocking parameters and the efficiency of deblocking preprocessing / postprocessing (e.g., low deblocking cost). Therefore, this means that in high-cost scenarios, it may be useful to signal the deblocking parameters only when another bitstream element (e.g., a 1-bit flag) indicates the presence of these parameters in block b.

[0300] Figure 10 Examples of decoded residual signals with and without deblocking (top graph) are shown. DST-II is used as the transform, and an inverse transform is performed on the residual signal with a block size of 640. As shown in the top graph, the signal occasionally deviates from its original waveform shape (e.g., spikes). However, as shown in the bottom graph, after deblocking, the signal exhibits a smooth waveform shape. Figure 10 This demonstrates the effect of guided deblocking on audio signals.

[0301] Fourth, when the two boundary anchor point values (e.g., deblocking parameters) are used to parameterize a corrected deblocking function (e.g., a blocking artifact and ringing artifact suppression function), it may not be necessary to explicitly signal (e.g., transmit) the start (e.g., left) anchor point parameter (e.g., it may be sufficient to transmit the end anchor point parameter without transmitting the start anchor point parameter). Instead, it is generally only necessary to implicitly signal (e.g., derive) the start anchor point value (e.g., a further deblocking parameter, e.g., a derived deblocking parameter) by means of previously decoded signal information at i<0 (e.g., a previously decoded sample, e.g., an immediately preceding sample, e.g., of the same channel) (e.g., the decoder is configured to determine the start anchor point value on the basis of one or more decoded sample values (e.g., by default) and / or on the basis of an indicator in the bitstream (e.g., an indicator at the start of the bitstream or a portion thereof, such as an indicator at the start of temporal block 30)), this is because the start anchor point value (e.g., the deblocking parameter) evaluates the corrected deblocking function at i=0 (e.g., the first sample of temporal block 140 indexed by sample index i=0), i.e., in the immediate vicinity of the end portion of the decoded signal region (e.g., on the basis of the sample value of one or more samples, e.g., of the same channel, that are located immediately before the current coded block). Specifically, linear regression extrapolation (or any other form of extrapolation, e.g., using other statistical values such as an average value) may preferably be used to derive the start anchor point value at i=0 from four positions −5<i<0 (or any other number of positions or samples, e.g., two, three, five or more) and a "virtual residual boundary signal" for these four positions. This virtual residual boundary signal may be constructed at the encoder side and the decoder side as a difference (e.g., a sample-by-sample difference) between reconstructed signal samples at (e.g., four positions at sample indices −5<i<0) and an extension of the prediction signal of the current block towards −5<i<0 (e.g., based on extrapolation or expansion of the prediction signal to extend further samples), wherein it is assumed that i<0 points to available signal samples (otherwise, the start anchor point value may be set to 0). In other words, only the end (e.g., right) anchor point parameter must (or may) be signaled, preferably, for example, in a quantized form (e.g., as quantized herein for two anchors, e.g., using a smaller quantization step size than the transform coefficients), while the start (e.g., left) anchor point value may be derived from other information in the bitstream (e.g., on the basis of coded samples), thereby saving side information bits required for the deblocking process.

[0302] The following discussion relates to an embodiment of a "preferred deblocking encoder / decoder embodiment".

[0303] Preferred Deblocking Encoder Embodiment

[0304] In each residual transform block b of each channel in a biomedical signal, seismic signal, or acoustic signal (wherein the term "acoustic" may include human-generated speech or music material as well as non-human input such as sonar recordings), the encoder may determine and quantize one or two deblocking parameters using the residual block signal res before transforming res' in the following manner (however, the following examples will be illustrated with two parameters):

[0305] 1 (Optional). When res does not have sufficient low-pass characteristics—for example, by high-pass filtering res, the variance var of the high-pass block signal can be calculated. hp and var hp With var res The ratio of (the variance of res itself) to the threshold T is used to determine the deblocking parameters—the two deblocking parameters exemplarily represent the offset α and the slope β, respectively. As previously mentioned, the α and β parameters can be obtained, for example, through simple linear regression [3], where µ ix and µ res Let i and res represent the mean values ​​of i and res in block b, respectively.

[0306] , where index 0 ≤ i < N (1)

[0307] It should be noted that item i – µ ix This can be known in advance because it depends only on the block size N. The parameters obtained by this linear fitting minimize the overall DC offset and time skew of res within block b, thereby reducing, for example, the magnitude of the lowest frequency transform coefficients obtained from the transform of res'.

[0308] 2. When res has sufficient low-pass properties (e.g., step 1 is not performed, or the comparison with the threshold in step 1 fails, e.g., the evaluation result is false), the two deblocking parameters can represent two anchor points of res at the boundary of block b. For example, preferably, the values ​​of res at these two points are determined by averaging two consecutive values ​​of res at each boundary. L and res R (For example, where the index represents the position of the sample, and index zero represents the first or leftmost position of block b):

[0309] (2)

[0310] Note that in the example above, the value res −1 and res NIn fact, it lies outside of b; therefore, any block prediction signal used when determining res may require extending additional samples on each side of b so that res (e.g., the difference between the input signal and the prediction signal) includes indices −1 and N. In cases where this is not feasible or desirable, or where the transform used is not DST-II, a simpler assignment of res can be used instead. L = res0, res R = res N–1 (For example, for one or two anchor points). Then, based on res... L and res R For example, offset and slope, or alternatively, curvature parameters, can be obtained in the following ways:

[0311] Linear function (linear fitting): β = 0.5 · (res) R - res L ) / {N when using equation (2), otherwise N−1}, α = res L

[0312] Trigonometric function: γ = 0.5 · (res) L - res R ) / {N when using equation (2), otherwise N−1}, α =res L −γN

[0313] It should be noted, especially in the simple assignment of res mentioned above, that... L = res0, res R = res N–1 In this case, more accurate α calculations can be designed.

[0314] 3. For very noisy residual block signals, deblocking via the function cor may not offer any advantage. For example, this can be identified by measuring the zero-crossing rate of the corrected residual block signal [4], for example, for res' i or res'' i Use the following expression:

[0315] For 0≤i <N,res' i = res i – cor i (Or, alternatively, res) i = res i – µ res This allows for faster calculations.

[0316] If the zero-crossing rate [4] (or similar metric) is higher than some other threshold (e.g., a predetermined threshold), then α = β (or γ) = 0 can be assumed, and deblocking can be disabled or bypassed, for example, by signaling “deblocking off” in a 1-bit flag of block b.

[0317] 4. If no signal is sent in step 3 to notify “deblocking off”, but the values ​​of α and β (or γ) are close to zero, the deblocking process can also be optionally disabled or bypassed, for example, by signaling “deblocking off” in the 1-bit flag of block b.

[0318] 5. Otherwise (for example, res is neither very noisy nor the magnitude of the deblocking parameter of b is close to zero), the two deblocking parameters α and β (or γ) obtained in steps 1 to 2 can be optionally quantized:

[0319] α Q = round(α / (2 · ∆), x Q = round(x · N / ∆), where Δ: step size, x: placeholder for β or γ (3)

[0320] Furthermore, a signal can be sent in the 1-bit flag of b to indicate "deblocking enabled," for example, followed by two quantization parameter values ​​α. Q and β Q (or For example, using a bit depth per parameter that is lower than the bit depth of the input signal.

[0321] 6. The two deblocking parameters α and β (or γ) can now be used to construct (e.g., modify) the cor function (for 0... ≤ i < The cor function is used to perform the subtractive deblocking preprocessing described above, thereby generating the corrected residual block signal res', which is then subjected to time-frequency transformation and quantization.

[0322] Preferred Deblocking Decoder Embodiment

[0323] In the decoder, the frequency domain coefficients can be reconstructed (e.g., quantized) and subjected to a frequency-time (e.g., inverse) transform to obtain (e.g., quantized) the previously corrected residual block signal res'. Q Furthermore, for example, the following equation can be used, based on α Q and β Q (or Calculate the reconstructions of α and β (or γ):

[0324] α' = α Q · 2 · ∆,x' = x Q · ∆ / N, where Δ: step size, x: placeholder for β or γ (4)

[0325] Therefore, a `cor` function can be derived again for 0 ≤ i < i, and this `cor` function can be used to perform the above-described additive deblocking post-processing. The deblocking post-processing can represent the inverse operation of the encoder-side deblocking preprocessing. It should be noted that quantized α is also used in the construction of `cor` for the subtractive preprocessing step on the encoder side. Q and β Q (or The parameters, preprocessing operations, and postprocessing operations can completely cancel each other out. Therefore, when deriving cor in the encoder, α, β, and γ can be replaced by α', β', and γ', respectively.

[0326] Introductory statement:

[0327] The foregoing, particularly in the sections “Perceptual Encoding and Decoding of Biomedical Signals, Seismic Signals and Related Waveform Signals”, “Disadvantages of Traditional Transform Coding”, “Conventional Solutions and Their Disadvantages”, “Overview of the Encoding (Decoding) Solution of the Invention”, “Detailed Description of Aspect 1: Architecture” and “Detailed Description of Aspect 2: Deblocking”, describes different embodiments and aspects of the present invention.

[0328] Furthermore, the appended claims will define other embodiments.

[0329] It should be noted that any embodiment defined by the claims may be supplemented by any details (features and functions) described in the foregoing sections.

[0330] Furthermore, the embodiments described in the foregoing sections can be used alone, and may also be supplemented by any feature in another section or any feature included in the claims.

[0331] It should also be noted that the various aspects described herein can be used individually or in combination. Therefore, details can be added to each of these aspects without needing to add details to the other aspect.

[0332] Furthermore, the features and functions of the methods disclosed herein can also be used (by devices configured to perform these functions). Additionally, any features and functions disclosed herein in conjunction with a device can also be used in the corresponding methods. In other words, the methods disclosed herein can be supplemented by any features and functions described in conjunction with a device.

[0333] Furthermore, as will be explained in the “Implementing Alternative Solutions” section, any features and functions described herein may be implemented in hardware or software, or in a combination of hardware and software.

[0334] Implement alternative solutions:

[0335] Although some aspects have been described in the context of the device, it is clear that these aspects also represent a description of the corresponding method, where blocks or devices correspond to method steps or features of method steps. Similarly, aspects described in the context of method steps also represent a description of corresponding blocks, items, or features of the corresponding device. Some or all of the method steps may be performed by (or using) a hardware device, such as a microprocessor, a programmable computer, or electronic circuitry. In some embodiments, one or more of the most important method steps may be performed by such a device.

[0336] Depending on certain implementation requirements, embodiments of the present invention may be implemented in hardware or software. Implementation may be performed using a digital storage medium, such as a floppy disk, DVD, Blu-ray disc, CD, ROM, PROM, EPROM, EEPROM, or flash memory, storing electronically readable control signals that cooperate (or are capable of cooperating with) a programmable computer system to execute corresponding methods. Therefore, the digital storage medium may be computer-readable.

[0337] Some embodiments of the present invention include a data carrier having electronically readable control signals that are capable of cooperating with a programmable computer system to perform one of the methods described herein.

[0338] Generally, embodiments of the present invention can be implemented as a computer program product having program code, wherein when the computer program product is run on a computer, the program code is operable to perform one of the methods. For example, the program code may be stored on a machine-readable medium.

[0339] Other embodiments include a computer program stored on a machine-readable medium for performing one of the methods described herein.

[0340] In other words, one embodiment of the method of the present invention is a computer program that, when run on a computer, has program code for performing one of the methods described herein.

[0341] Therefore, another embodiment of the method of the present invention is a data carrier (or digital storage medium or computer-readable medium) having a computer program recorded thereon for performing one of the methods described herein. The data carrier, digital storage medium, or recording medium is generally tangible and / or non-transitory.

[0342] Therefore, another embodiment of the method of the present invention is a data stream or signal sequence representing a computer program for performing one of the methods described herein. For example, the data stream or signal sequence may be configured to be transmitted via a data communication connection (e.g., via the Internet).

[0343] Another embodiment includes a processing device, such as a computer or programmable logic device, configured or adapted to perform one of the methods described herein.

[0344] Another embodiment includes a computer on which a computer program for performing one of the methods described herein is installed.

[0345] Another embodiment of the invention includes an apparatus or system configured to transmit (e.g., electronically or optically) to a receiver a computer program for performing one of the methods described herein. For example, the receiver may be a computer, a mobile device, a storage device, etc. For example, the apparatus or system may include a file server for transmitting the computer program to the receiver.

[0346] In some embodiments, programmable logic devices (e.g., field-programmable gate arrays) may be used to perform some or all of the functions of the methods described herein. In some embodiments, the field-programmable gate array may cooperate with a microprocessor to perform one of the methods described herein. Generally, the methods are preferably performed by any hardware device.

[0347] The device described herein can be implemented using hardware devices, computers, or a combination of hardware devices and computers.

[0348] The device described herein or any component thereof may be implemented, at least in part, in hardware and / or software.

[0349] The methods described herein can be performed using hardware devices, computers, or a combination of hardware devices and computers.

[0350] The methods or any components of the devices described herein may be performed, at least in part, by hardware and / or software.

[0351] The above embodiments are merely illustrative of the principles of the present invention. It should be understood that modifications and variations of the arrangements and details described herein will be apparent to those skilled in the art. Therefore, the present invention is intended to be limited only by the scope of the following claims, and not by the specific details given herein through illustration and explanation of the embodiments.

[0352] References

[0353] [1] Y. Reznik, “Coding of Prediction Residual in MPEG-4 Standard for Lossless Audio Coding”, Proc. IEEE Int. Conf. Acoustics, Speech, SignalProcess. (ICASSP), Montreal, Canada, May 2004.

[0354] [2] J. Herre, "Temporal Noise Shaping, Quantization and Coding Methods in Perceptual Audio Coding: A Tutorial Introduction", Proc. AES 17th Int.Conf. High Quality Audio Coding, 1998.

[0355] [3] Wikipedia, “Simple linear regression”, https: / / en.wikipedia.org / wiki / Simple_linear_regression

[0356] [4] Wikipedia, “Zero-crossing rate”, https: / / en.wikipedia.org / wiki / Zero-crossing_rate, December 2023.

Claims

1. A decoder for decoding a digital time-varying signal (92) from a data stream (16), configured to: By decoding each transform-coded time block (140) of the non-overlapping time block (140) of the digital time-varying signal (92). i-1 In the non-overlapping time blocks (140), the digital time-varying signal (92) is decoded from the data stream (16), wherein each transform-coded time block (140) of the non-overlapping time blocks (140) of the digital time-varying signal (92) is decoded by means of the following. i-1 ): The corresponding transform coding time block (140) is predicted using a prediction pattern selected from the prediction pattern set. i-1 ), to obtain the prediction signal (64) i-1 ); Decode (304) coefficients (300) from the data stream (16). i-1 The coefficients represent the prediction residual signal (80) of the corresponding transform coding time block (140) in the transform domain. Make the coefficient (300) i-1 ) undergoes a predetermined inverse transform (306) from the transform domain to the time domain to obtain the time-domain prediction residual signal (302). i-1 The time-domain prediction residual signal represents the prediction residual signal (80) of the corresponding transform-coded time block (140) in the time domain; and Using the time-domain prediction residual signal (302) i-1 Correction (308) of the predicted signal (64) i-1 ), in, The predetermined inverse transformation is a non-overlapping transformation.

2. The decoder according to claim 1, wherein, The predetermined inverse transform is either the inverse discrete cosine transform or the inverse discrete sine transform.

3. The decoder according to claim 1 or 2, wherein, The predetermined inverse transformation can be represented by matrix multiplication between the transformation matrix and the first vector, where the components of the first vector are determined by the coefficients (300). i-1 The output vector generated by the matrix multiplication is formed, wherein the output vector has the same characteristics as the time-domain prediction residual signal (302). i-1 The sample (310) includes the same number of components.

4. The decoder according to any one of the preceding claims, wherein, The transform domain is generated from the time domain according to a predetermined transform, wherein the decoder is configured to select the predetermined transform from a set of transforms, wherein the inverse transform reverses the predetermined transform.

5. The decoder of claim 4, configured to select the transform set from the transform superset according to one or more of the following: - The corresponding transform coding time block (140) i-1 ) length; - For the corresponding transform coding time block (140) i-1 The selected prediction model.

6. The decoder according to claim 4 or 5, wherein, The set of transformations includes one or more of the following: One or more discrete cosine transforms; One or more discrete sine transforms; and Identity transformation.

7. The decoder according to claim 6 is configured to: skip subjecting the coefficients to the predetermined inverse transform (306) if the predetermined transform is the identity transform.

8. The decoder according to any one of the preceding claims, wherein, The transform domain is generated from the time domain according to a predetermined transform, wherein the predetermined transform and the predetermined inverse transform do not use windowing.

9. The decoder according to any one of the preceding claims, wherein, The transform domain is generated from the time domain according to a predetermined transform, wherein the predetermined transform is a spectral decomposition transform.

10. The decoder according to any one of the preceding claims, wherein, The sampling rate of the digital time-varying signal (92) is higher than or equal to the Nyquist rate of the transform domain.

11. The decoder according to any one of the preceding claims, wherein, For each transform coding time block, the coefficients (300) i-1 The number of samples (312) is consistent with the number of samples in the corresponding transform coding time block.

12. The decoder according to any one of the preceding claims, wherein, The time-domain predicted residual signal (302) i-1 ) by making the corresponding transform coding time block (140 i-1 The coefficient (300) i-1 ) independent of the corresponding transform coding time block (140 i-1 The time block that follows and is adjacent to the previous time block (140) i 140 i-2 The predicted residual signal (80) is generated by undergoing the predetermined inverse transformation described in (306).

13. The decoder according to any one of the preceding claims, wherein, The transform domain is the critical sampling transform domain.

14. The decoder according to any one of the preceding claims, wherein, The length of the basis function of the predetermined inverse transform and the corresponding transform coding time block (140) i-1 The lengths of the two numbers are the same.

15. The decoder according to any of the preceding claims, wherein, The set of prediction patterns includes one or more of the following: DC prediction mode, according to the DC prediction mode, the prediction signal of the corresponding transform coding time block is determined as a constant function, wherein the constant of the constant function is determined based on a predetermined decoded sample prior to the corresponding transform coding time block; One or more linear prediction modes, according to the one or more linear prediction modes, determine the prediction signal of the corresponding transform-coded time block as a linear function, wherein at least one of the slope and offset of the linear function is determined based on predetermined decoded samples prior to the corresponding transform-coded time block; A block copy prediction mode, according to which a prediction signal for a corresponding transform coding time block is predicted based on one or more reference block portions of previously decoded samples preceding the corresponding transform coding time block, wherein the one or more reference block portions are offset relative to the corresponding transform coding time block to a position in the data stream that is signaled for the corresponding transform coding time block; A cross-channel prediction mode, according to which the prediction signal of the corresponding transform-coded time block is predicted based on one or more reference coded channels in the coded channels, the coded channels representing multi-channel signals (14) encoded into the data stream and to be decoded from the data stream by the decoder, and one of the coded channels being represented by the digital time-varying signal (92); and Bypass prediction mode: According to the bypass prediction mode, the prediction signal of the corresponding transform coding time block is set to zero.

16. The decoder according to any one of claims, in, The digital time-varying signal (92) is obtained by at least one of electrocardiography, electroencephalography, electromyography, or seismic measurement; and / or The digital time-varying signal (92) is biological physiological waveform data, such as electroencephalogram (EEG) signal, electrocardiogram (ECG) signal, or electromyogram (EMG) signal, or seismic waveform signal.

17. The decoder according to any one of the preceding claims is configured to: It supports different lengths of the transform coding time block and sets the length of the transform coding time block according to the length parameter in the data stream.

18. The decoder according to any one of the preceding claims, It is configured to support different lengths of the transform-coded time blocks and switch between different lengths of the transform-coded time blocks at predetermined boundaries between consecutive time blocks according to the length parameter in the data stream.

19. The decoder according to any one of the preceding claims is configured to: Decode (402) one or more deblocking parameters (400) from the data stream (16); Modify (404) the time-domain prediction residual signal (302) by using one or more deblocking parameters (400). i-1 To perform deblocking post-processing to obtain the modified time-domain prediction residual signal (302') i ); Using the modified time-domain prediction residual signal (302') i ) Perform the operation on the predicted signal (64) i-1 The correction (308) is described.

20. The decoder according to claim 19, wherein, The one or more deblocking parameters (400) define a linear function.

21. The decoder according to any one of claims 19 or 20, wherein, The one or more deblocking parameters (400) define a triangular half-wave function parameterized by half-wave offset and half-wave amplitude.

22. The decoder according to any one of claims 19 to 21, wherein, The one or more deblocking parameters (400) define the block effect and ringing artifact suppression function, and the decoder is configured to: by combining the block effect and ringing artifact suppression function with the time-domain signal (302') i A linear combination, using one or more deblocking parameters (400) to modify (404) the time-domain prediction residual signal (302). i-1 ), to obtain the modified time-domain prediction residual signal (302') i ).

23. The decoder according to any one of claims 19 to 22, wherein, The one or more deblocking parameters (400) include a gating flag; if the gating flag is set, the gating flag indicates that the deblocking post-processing is active, and the one or more deblocking parameters (400) include one or more function parameters that define the time-domain predicted residual signal (302). i-1 Linear combination to obtain the modified time-domain prediction residual signal (302') i The blocking effect and ringing artifact suppression function; and, if the gating flag is not set, the gating flag indicates that the deblocking post-processing is inactive, the one or more deblocking parameters (400) include only the gating flag, and the modified time-domain prediction residual signal (302') i ) equals the time-domain prediction residual signal (302) i-1 ).

24. The decoder according to any one of claims 19 to 23, configured as follows: Based on the corresponding transform coding time block (140) i The predicted signal (64) i The additional deblocking parameters (400b) are determined using one or more encoded samples of the digital time-varying signal and the digital time-varying signal. The time-domain prediction residual signal (302) is modified (404) by using one or more deblocking parameters (400a) and the additional deblocking parameter (400b). i ) to perform the deblocking post-processing to obtain the modified time-domain prediction residual signal (302') i ).

25. The decoder of claim 24, configured as follows: The prediction signal (64) of the digital time-varying signal is determined. i An extension of ); The predicted signal (64) i The extension of the signal is combined with one or more encoded samples of the digital time-varying signal to obtain a modified version of the one or more encoded samples; and The additional deblocking parameter (400b) is determined by extrapolation based on the modified version of the one or more coded samples.

26. The decoder according to claim 24 or 25, configured as follows: Determine the corresponding transform coding time block (140) i Extrapolation of multiple previously encoded samples; Based on the extrapolation of the plurality of encoded samples and the predicted signal (64) i ) to determine the additional deblocking parameters (400b).

27. The decoder according to any one of claims 24 to 26, in, The additional deblocking parameter (400b) and the one or more deblocking parameters (400a) define the linear function (320a).

28. The decoder according to any one of claims 24 to 26, in, The additional deblocking parameter (400b) and the one or more deblocking parameters (400a) define a triangular half-wave function (320b) parameterized by half-wave offset and half-wave amplitude.

29. The decoder according to any one of claims 24 to 28, when subordinate to claim 1D21, in, The block effect and ringing artifact suppression function is defined by the one or more deblocking parameters (400a) and the additional deblocking parameter (400b).

30. The decoder according to any one of claims 24 to 29, wherein, The additional deblocking parameter (400b) is determined to make the modified time-domain prediction residual signal (302') i The first sample has the smallest value.

31. The decoder according to any one of claims 24 to 30, wherein, If no encoded samples of the digital time-varying signal are available, then zero sample values ​​are assumed for the encoded samples of the digital time-varying signal.

32. An encoder for encoding a digital time-varying signal (92) into a data stream (16), configured to: By encoding each transform-coded time block (140) of the non-overlapping time block (140) of the digital time-varying signal (92). i-1 The digital time-varying signal (92) is encoded into the data stream (16) in the non-overlapping time blocks (140), wherein each transform-coded time block (140) of the non-overlapping time blocks (140) that encodes the digital time-varying signal (92) is encoded by the following. i-1 ): The corresponding transform coding time block (140) is predicted using a prediction pattern selected from the prediction pattern set. i-1 ), to obtain the prediction signal (64) i-1 ); Make the time-domain predictive residual signal (302) i-1 ) undergoes a predetermined transformation from the time domain to the transform domain to obtain coefficients (300 i-1 The time-domain prediction residual signal represents the corresponding transform-coded time block (140). i The predicted residual signal (80) in the time domain, the coefficients representing the corresponding transform coding time block (140) i-1 The predicted residual signal (80) in the transform domain; and The coefficient (300) i-1 ) is encoded into the data stream (16) for use in correcting (308) the predicted signal (64) i-1 ); in, The predetermined transformation is a non-overlapping transformation.

33. The encoder according to claim 32, wherein, The predetermined transformation is either a discrete cosine transform or a discrete sine transform.

34. The encoder according to any one of claims 32 or 33, wherein, The predetermined transformation can be represented by matrix multiplication between the transformation matrix and the first vector, and the components of the first vector are derived from the time-domain prediction residual signal (302). i-1 The sample (310) included in the matrix multiplication is formed, wherein the output vector generated by the matrix multiplication has the same characteristics as the coefficients (300). i-1 The same amount.

35. The encoder according to any one of claims 32 to 34, wherein, The encoder is configured to select the predetermined transformation from a set of transformations.

36. The encoder of claim 35, configured to select the transform set from the transform superset according to one or more of the following: - The corresponding transform coding time block (140) i-1 ) length; - For the corresponding transform coding time block (140) i-1 The selected prediction model.

37. The encoder according to claim 35 or 36, wherein, The set of transformations includes one or more of the following: One or more discrete cosine transforms; One or more discrete sine transforms; and Identity transformation.

38. The encoder of claim 37, configured to: if the predetermined transform is the identity transform, skip making the time-domain prediction residual signal (302) i-1 ) undergo the predetermined transformation described in (306).

39. The encoder according to any one of claims 32 to 38, wherein, The predetermined transformation does not use windowing.

40. The encoder according to any one of claims 32 to 39, wherein, The predetermined transformation is a spectral decomposition transformation.

41. The encoder according to any one of claims 32 to 40, wherein, The sampling rate of the digital time-varying signal (92) is higher than or equal to the Nyquist rate of the transform domain.

42. The encoder according to any one of claims 32 to 41, wherein, For each transform coding time block, the coefficients (300) i-1 The number of samples (312) is consistent with the number of samples in the corresponding transform coding time block.

43. The encoder according to any one of claims 32 to 42 is configured to: operate independently of the corresponding transform coding time block (140... i-1 The time block that follows and is adjacent to the previous time block (140) i 140 i-2 The predicted residual signal (80) is used in such a way that the time-domain predicted residual signal (302) is obtained. i-1 It undergoes the predetermined transformation.

44. The encoder according to any one of claims 32 to 43, wherein, The transform domain is the critical sampling transform domain.

45. The encoder according to any one of claims 32 to 44, wherein, The length of the basis function of the predetermined transform and the corresponding transform coding time block (140) i-1 The lengths of the two numbers are the same.

46. ​​The encoder according to any one of claims 32 to 45, wherein, The set of prediction patterns includes one or more of the following: DC prediction mode, according to the DC prediction mode, the prediction signal of the corresponding transform coding time block is determined as a constant function, wherein the constant of the constant function is determined based on a predetermined encoded sample before the corresponding transform coding time block; One or more linear prediction modes, according to the one or more linear prediction modes, determine the prediction signal of the corresponding transform coding time block as a linear function, wherein at least one of the slope and offset of the linear function is determined based on predetermined encoded samples prior to the corresponding transform coding time block; A block copy prediction mode, according to which a prediction signal for a corresponding transform coding time block is predicted based on one or more reference block portions of previously encoded samples preceding the corresponding transform coding time block, wherein the one or more reference block portions are offset relative to the corresponding transform coding time block to a position in the data stream signaled for the corresponding transform coding time block; A cross-channel prediction mode, according to which the prediction signal of the corresponding transform coding time block is predicted based on one or more reference coding channels in the coding channels, wherein the coding channels represent multi-channel signals (14) to be encoded into the data stream, and one of the coding channels is represented by the digital time-varying signal (92); and Bypass prediction mode: According to the bypass prediction mode, the prediction signal of the corresponding transform coding time block is set to zero.

47. The encoder according to any one of claims 32 to 46, in, The digital time-varying signal (92) is obtained by at least one of electrocardiography, electroencephalography, electromyography, or seismic measurement; and / or The digital time-varying signal (92) is biological physiological waveform data, such as electroencephalogram (EEG) signals, electrocardiogram (ECG) or electromyogram (EMG) signals, or seismic waveform signals.

48. The encoder according to any one of claims 32 to 47 is configured to: It supports different lengths of the transform coding time block and selectively sets the length of the transform coding time block in the data stream.

49. The encoder according to any one of claims 32 to 48 is configured to: Supports different lengths of the transform coding time block; Select a length parameter and encode the length parameter into the data stream, wherein, The switching between different lengths of the transform-coded time blocks is performed at predetermined boundaries between consecutive time blocks.

50. The encoder according to any one of claims 32 to 49 is configured to: Deblocking preprocessing is performed as follows: Determine one or more deblocking parameters (400); Modify (404) the corresponding transform coding time block (140) using one or more deblocking parameters (400). i-1 The time-domain prediction residual signal (302') i-1 ), to obtain the modified time-domain prediction residual signal (302) i-1 ); Make the modified time-domain prediction residual signal (302) i ) undergoes (306) the predetermined transformation from the time domain to the transform domain to obtain coefficients (300) i ),in, The transformation is a non-overlapping transformation.

51. The encoder according to claim 50, wherein, The one or more deblocking parameters (400) define a linear function.

52. The encoder according to claim 50, wherein, The one or more deblocking parameters (400) define the triangular half-wave function by half-wave offset and half-wave amplitude.

53. The encoder according to any one of claims 50 to 52, wherein, The one or more deblocking parameters (400) define a blocking and ringing artifact suppression function, and the encoder is configured to: by combining the blocking and ringing artifact suppression function with the time-domain signal (302') i A linear combination, using one or more deblocking parameters (400) to modify (404) the time-domain prediction residual signal (302'). i ).

54. The encoder according to claim 50, wherein, The one or more deblocking parameters (400) include a gating flag; if the gating flag is set, the gating flag indicates that the deblocking preprocessing is active, and the one or more deblocking parameters (400) include one or more function parameters that define the time-domain prediction residual signal (302') to be related to the time-domain prediction residual signal. i Linear combination to generate the modified time-domain prediction residual signal (302) i The blocking effect and ringing artifact suppression function; and, if the gating flag is not set, the gating flag indicates that the deblocking preprocessing is inactive, the one or more deblocking parameters (400) include only the gating flag, and the modified time-domain prediction residual signal (302) i ) equals the time-domain prediction residual signal (302') i ).

55. The encoder according to any one of claims 50 to 54, wherein, The one or more deblocking parameters (400) define the blocking effect and ringing artifact suppression function, and the encoder is configured to: by combining the blocking effect and ringing artifact suppression function with the time-domain prediction residual signal (302') i A linear combination, using one or more deblocking parameters (400) to modify (404) the time-domain prediction residual signal (302'). i ); and determine the one or more deblocking parameters such that the blocking effect and ringing artifact suppression function is compared with the time-domain prediction residual signal (302' ); i Linear combinations lead to: - The modified time-domain prediction residual signal (302) i ) in the corresponding transform coding time block (140 i The front and back ends of the distance become zero, or are closer to zero than the predetermined maximum distance; or - The modified time-domain prediction residual signal (302) i ) in the corresponding transform coding time block (140 i The modified time-domain prediction residual signal (302) has a zero average slope. i The average slope is closer to zero than the predetermined maximum deviation.

56. The encoder according to any one of claims 50 to 55, wherein, The one or more deblocking parameters (400) define a blocking effect and ringing artifact suppression function, and wherein the encoder is configured to: by combining the blocking effect and ringing artifact suppression function with the time-domain prediction residual signal (302') i A linear combination, using one or more deblocking parameters (400) to modify (404) the time-domain prediction residual signal (302'). i ); and the encoder thereon is configured as follows: Determine the time-domain prediction residual signal (302') i The statistical discrete values ​​of ). If the statistical discrete value falls within the range of the indicated smoothing signal, then the one or more deblocking parameters are determined such that the blocking effect and ringing artifact suppression function is compared with the time-domain prediction residual signal (302'). i Linear combinations lead to: - The modified time-domain prediction residual signal (302) i ) in the corresponding transform coding time block (140 i The front and back ends of the distance become zero, or are closer to zero than the predetermined maximum distance; If the statistical discrete value falls within the range of values ​​indicating a non-smooth signal, then the one or more deblocking parameters are determined such that the blocking effect and ringing artifact suppression function is compared with the time-domain predicted residual signal (302'). i Linear combinations lead to: - The modified time-domain prediction residual signal (302) i ) in the corresponding transform coding time block (140 i The modified time-domain prediction residual signal (302) has a zero average slope. i The average slope is closer to zero than the predetermined maximum deviation.

57. The encoder according to any one of claims 50 to 56 is configured to: Determine the time-domain signal (302') i Noise measurement; If the noise metric falls within the range of the indicated noise signal, then The gating flags included in the one or more deblocking parameters (400) are not set to indicate that the deblocking preprocessing is inactive, such that the one or more deblocking parameters (400) only include the gating flags, and the modified time-domain prediction residual signal (302) i ) equals the time-domain signal (302') i ),or Set one or more function parameters, which are limited to being related to the time-domain predicted residual signal (302'). i Linear combination to obtain the modified time-domain prediction residual signal (302) i The block effect and ringing artifact suppression function is defined, and the one or more function parameters are included in the one or more deblocking parameters, thereby making the block effect and ringing artifact suppression function zero, thereby effectively disabling the deblocking process; and If the noise metric does not fall within the range of values ​​indicating the noise signal, then Determine one or more function parameters such that the block effect and ringing artifact suppression function is compared with the time-domain signal (302'). i Linear combinations lead to: - The modified time-domain prediction residual signal (302) i ) in the corresponding transform coding time block (140 i The front and back ends of the distance become zero, or are closer to zero than the predetermined maximum distance; or - The modified time-domain signal (302) i ) in the corresponding transform coding time block (140 i The modified time-domain prediction residual signal (302) has a zero average slope. i The average slope is closer to zero than the predetermined maximum deviation.

58. The encoder according to any one of claims 50 to 57 is configured to encode the one or more deblocking parameters (400) into the data stream (16).

59. The encoder according to any one of claims 50 to 58, configured as follows: Based on the corresponding transform coding time block (140) i The predicted signal (64) i The additional deblocking parameters (400b) are determined using one or more encoded samples of the digital time-varying signal. The time-domain prediction residual signal (302) is modified (404) by using one or more deblocking parameters (400a) and the additional deblocking parameter (400b). i ) to perform the deblocking post-processing to obtain the modified time-domain prediction residual signal (302') i ).

60. The encoder of claim 59, configured as follows: The prediction signal (64) of the digital time-varying signal is determined. i An extension of ); The predicted signal (64) i The extension of the signal is combined with one or more encoded samples of the digital time-varying signal to obtain a modified version of the one or more encoded samples; and The additional deblocking parameter (400b) is determined by extrapolation based on the modified version of the one or more coded samples.

61. The encoder according to claim 59 or 60, configured as follows: Determine the corresponding transform coding time block (140) i Extrapolation of multiple previously encoded samples; Based on the extrapolation of the plurality of encoded samples and the predicted signal (64) i ) to determine the additional deblocking parameters (400b).

62. The encoder according to any one of claims 59 to 61, in, The additional deblocking parameter (400b) and the one or more deblocking parameters (400a) define the linear function (320a).

63. The encoder according to any one of claims 59 to 61, in, The additional deblocking parameter (400b) and the one or more deblocking parameters (400a) define a triangular half-wave function (320b) parameterized by half-wave offset and half-wave amplitude.

64. The encoder according to any one of claims 59 to 63, wherein, when dependent on claim 53, in, The block effect and ringing artifact suppression function is defined by the one or more deblocking parameters (400a) and the additional deblocking parameter (400b).

65. The encoder according to any one of claims 59 to 64, wherein, The additional deblocking parameter (400b) is determined to make the modified time-domain prediction residual signal (302') i The first sample has the smallest value.

66. The encoder according to any one of claims 59 to 65, wherein, If no encoded samples of the digital time-varying signal are available, then zero sample values ​​are assumed for the encoded samples of the digital time-varying signal.

67. A method for decoding a digital time-varying signal (92) from a data stream (16), the method comprising: By decoding each transform-coded time block (140) of the non-overlapping time block (140) of the digital time-varying signal (92). i-1 In non-overlapping time blocks (140), the digital time-varying signal (92) is decoded from the data stream (16), wherein each transform-coded time block (140) of the non-overlapping time blocks (140) of the digital time-varying signal (92) is decoded by means of the following. i-1 ): The corresponding transform coding time block (140) is predicted using a prediction pattern selected from the prediction pattern set. i-1 ), to obtain the prediction signal (64) i-1 ); Decode (304) coefficients (300) from the data stream (16). i-1 The coefficients represent the prediction residual signal (80) of the corresponding transform coding time block (140) in the transform domain. Make the coefficient (300) i-1 ) undergoes a predetermined inverse transform (306) from the transform domain to the time domain to obtain the time-domain prediction residual signal (302). i-1 The time-domain prediction residual signal represents the prediction residual signal (80) of the corresponding transform-coded time block (140) in the time domain; and Using the time-domain prediction residual signal (302) i-1 Correction (308) of the predicted signal (64) i-1 ), The predetermined inverse transformation is a non-overlapping transformation.

68. A method for encoding a digital time-varying signal (92) into a data stream (16), the method comprising: By encoding each transform-coded time block (140) of the non-overlapping time block (140) of the digital time-varying signal (92). i-1 The digital time-varying signal (92) is encoded into the data stream (16) in the non-overlapping time blocks (140), wherein each transform-coded time block (140) of the non-overlapping time blocks (140) that encodes the digital time-varying signal (92) is encoded by the following. i-1 ): The corresponding transform coding time block (140) is predicted using a prediction pattern selected from the prediction pattern set. i-1 ), to obtain the prediction signal (64) i-1 ); Make the time-domain predictive residual signal (302) i-1 ) undergoes a predetermined transformation from the time domain to the transform domain to obtain coefficients (300 i-1 The time-domain prediction residual signal represents the corresponding transform-coded time block (140). i The predicted residual signal (80) in the time domain, the coefficients representing the corresponding transform coding time block (140) i-1 The predicted residual signal (80) in the transform domain; and The coefficient (300) i-1 ) is encoded into the data stream (16) for use in correcting (308) the predicted signal (64) i-1 ), The predetermined transformation is a non-overlapping transformation.

69. A data stream encoded using the method according to claim 69.

70. A computer program for implementing the method of any one of claims 67 and 68 when executed by a computer or signal processor.