Realize optimal mode of the present invention
Basic conception and rule
Fig. 1 from conceptual illustration compressed information and example thereof.Compressed context information is one group, one subclass or representative of an information subset, it can be the information of hard-core any kind, comprises shown in Fig. 3 and 4 to be used as the compression algorithm input to generate the head of the compressed information that can be hard-core compressing head by compressor reducer.Another input is from wanting the information compressed source, its hard-core head that will compress that is illustrated as in example.
Fig. 2 decompresses and example from conceptual illustration information.The decompression contextual information is one group, one subclass or representative of an information subset, it can be the information of hard-core any kind, comprises shown in Fig. 3 and 4 to be used as the decompression algorithm input to generate the head of the decompression information that can be hard-core decompress(ion) drop-head by decompression.Another is imported from the information that will decompress, its hard-core head that will decompress that is illustrated as in example.
The compression and decompression contextual information all is dynamic, that is to say, can be upgraded respectively by compressor reducer and decompressor.The frequency of upgrading depends on a compression mechanism.On compressor reducer, cause the time of compressed context information updating to comprise the compression that enters head, or receive feedback from decompressor.The incident that the contextual information that causes decompressing on decompressor upgrades comprises the decompression that enters head.
Compressor reducer can be a kind of in three kinds of states:
FH (entire header) state
FO (first order) state
SO (second order) state
Be operated in the FH state at the initial phase compressor reducer.At the FH state, compressor reducer sends complete RTP head.This state only is a transition state usually, and it only begins to occur or because of anomalous event extremely in the RTP session, as compressor reducer fault or memory loss, and appearance in the middle of session.
Be operated in the FO state at the update stage compressor reducer.At the FO state, transmitter sends the FO head, and just its head carries with comparing with reference to head and changed, the grouping in the territory of suitably encoding with sequence number.Wish that decompressor can be to the FO affirmation of some shown in Fig. 3 and 4, wherein quantity depends on pattern.For example, if having the linear model of preset parameter, then only need send an affirmation in deduction phase.
Be operated in the SO state at the deduction phase compressor reducer.At the SO state, transmitter sends the SO head, its head just grouping of a sequence number basically just.Decompressor can or not confirmed the SO packet acknowledgement of correct reception.
Describe below that the present invention uses, but be not limited thereto, a kind of mathematical function type of in VLE, using.This function representation be f (k, v_ref)=(v_1, v_2 ..., v_2
k), be mapped as integer value v_ref and a many bit k that is called reference value and be mapped as the k unit integer that all has a different k LSB.
Though any such function all is suitable, an embodiment preferred is only used and is returned successive value v_1, v_2 .., v_2
k, the function of v_i=v_1+i-1 just.In other words, this function has length and has 2
kThe interval of value.This interval can be write and do] and v_ref-C (k, v_ref), v_ref-C (k, v_ref)+2
k] wherein C be a integer as k and v_ref function.Again, though can be to any so interval interested, preferred embodiment use C (k, v_ref)=0 and C (k, v_ref)=2
K-1In other words, this embodiment uses the interval to be] v_ref-2
K-1, v_ref+2
K-1] and] v_ref, v_ref+2
k].
Describe below based on] v_ref-2
K-1, v_ref+2
K-1] at interval VLE embodiment.System is by compressor reducer, decompressor and the CD-channel shown in Fig. 3 and 4, and just the link between compressor reducer and the decompressor is formed.This channel is error-prone.The hypothesis that this embodiment is unique, but be not limited thereto is that recording compressed value and the compressed value that provides as the decompressor input are not have ruined (head that perhaps in other words destroys is used as and loses head) to channel.This channel can be a simplex link shown in Fig. 3 and 4, just only sends compressed value or the duplex channel of explaining compressor reducer by oneself, and just channel also transmits the feedback from the decompressor to the compressor reducer.Use duplex channel in preferred embodiments.
Phase I is that decompressor obtains initial value.This sends not compressed value realization by compressor reducer or other suitable device when communication begins.Decompressor utilizes feedback channel to confirm the reception value shown in Fig. 3 and 4.Initialization is ad infinitum finished when compressor reducer receives a feedback acknowledgment, can use the VLE coding to compress then.In VLE, but value is as the parameter compression of bit k.The operation of decompressor in the VLE pattern at first is discussed.
Fig. 7 A and 7B have illustrated the window renewal process.But comprising the input compressor reducer and may be compressed, window do not need compressed preceding value.Suppose that at a particular point in time window be v
i, v
I+1,---, v
n:
(1) as new value v of compression
N+1The time, window enlarges so that comprise this new value shown in Fig. 7 A.
(2) then shown in Fig. 7 B, when compressor reducer knows that older value can not be used by decompressor again, in this example, can be as occurrence value v
I+2Affirmation when receiving, (be v in this example by the older one or more values of deletion
iAnd v
I+1) dwindle window.
Decompress:
Reference value is last value that is decompressed by decompressor.By the transmission of the reception shown in Fig. 3 and 4, confirmed or hypothesis by a series of values during time enough, at least one value may be received with adding up and not be used to contract any feedback solution compression of device of self-extracting and it seems, received an actual value, signaled compressor reducer and decompress.The interval of decompressor by providing its k LSB to conform to the k bit of reception] v_ref-2
K-1, v_ref+2
K-1] in unique value come the compressed value that enters is decompressed.This region of search is a particular example of the function introduced previously.Decompressed value becomes v_ref, itself so that be used for again the compressed value that enters is below decompressed.In preferred embodiments, decompressor is confirmed at least some groupings decompressed shown in Fig. 3 and 4.The packet count of need confirming is fully flexibly and selectedly wants the standard used to satisfy.As follows, the affirmation that sends to compressor reducer from decompressor is many more, and then the compression efficiency on the forward link is high more.
Compression:
With reference now to compressor operation.Compressor reducer keeps that it has been compressed and send to a sliding window of the value of decompressor, shown in Fig. 7 A and 7B.In one embodiment, this window value of keeping its last look that receives the confirmation from decompressor and below all of the order that sends to decompressor, will sending.Compressor reducer also keeps minimum and the maximum v_min and the v_max of sliding window respectively.
When a new not compressed value v arrived compressor reducer, compressor reducer sent each v_i for sliding window in the interval] v_i-2
K-1, v_i+2
K-1] in k the LSB of v.These can be easily by r<2
K-1Represent, wherein r=max (| v-v_max|, | v-v_min|).Compressor reducer is selected greater than log then
2 (r)+ 1 smallest positive integral is as k.When compressor reducer received the confirmation, it deleted all values that sent before the affirmation value from window, discussed with reference to figure 7B as above-mentioned.
Below discussion be illustrated as what VLE always provides correct decompression and be a kind of compression mechanism very flexibly.
As long as compressor reducer and decompressor are followed above-mentioned rule, no matter any loss is then arranged on compressor reducer shown in Fig. 3 and 4 and the CD-channel between the decompressor, can both correct decompressed.In fact, the reference value v_ref that decompressor uses must belong to the compressor reducer window, in the example as illustrated in Figures 5 and 6 between a v_min and v_max, and know that therefore encoded radio will be in the interval of the region of search of using as decompressor] v_ref-2
K-1, v_ref+2
K-1] in.
VLE does not have error propagation.The compressed packet that decompressor receives can always decompress.Packet loss is converted into an increase gradually of compressed packet size.
Confirm frequently more, the value in the window may send LSB still less more less and therefore.Especially meet the trend of increase and for each new value v in the value that will compress, v-v_min increases, under the compression situation till receiving the confirmation especially like this.
Decompressor must be known the length of compressed value.Can not have any additional signaling in some cases, for example, knowing this length by the framing information of coming the own coding lower level.Clear and definite if desired signaling, then preferred embodiment defines a kind of VLE form.This form can have two territories: length field (LSB amount R just) and compression codomain (k of an original value v LSB just), as shown in Figure 8.
In preferred embodiments, the VLE length field as shown in Figure 8, utilizes Huffman encoding that self is encoded.Also can use any other coding method (for example uniform enconding).Should estimate the possibility of different length to different application, and should use the Huffman encoding algorithm then encoding of needing in these data.Knowing that link property (loss and delay), decompressor confirm the cycle, and during the pattern of the original value that will compress, can estimate on the communication link between compressor reducer and the decompressor, to run into the possibility of given length.
Be further to reduce the length of length field self, can the limit compression device from a class value that reduces, select the length in territory.For example, suppose unpressed territory be 32 bits and want with maximum 2 bit lengths to following possibility successively decrease the order 4 bits, 8 bits and 32 bits of encoded, suitable coded word is that single bit 0 is used for 4 bits, and 2 bit values 10 are used for 8 bits and 2 bit values 11 are used for 32 bits.
Use suitable coding to make the average-size of compressed value minimize.
And if can obtain length from other packet domain, then length information does not need special bit.For example, in typical compression applications, in compressing head, sent a packet type territory.A default length that can use this packet type territory to hint to surpass hardly.In this case, use an independent packet type in the place that default length surpasses.Because this situation is rare, so overhead integral body has reduced.
If there is not feedback channel, then need out of Memory (band is outer) or extra hypothesis to make the compressor reducer window move forward and prevent that k from increasing always.A kind of mode be hypothesis along channel from the compressor reducer to the decompressor at the most L continuously compressed value can lose.In other words, compressor reducer knows in (L+1) individual continuous compressed value to have an arrival decompressor at least definitely.Therefore, compressor reducer only need be stored nearest (L+1) the individual value that has sent to decompressor in window.Therefore, scope (v_max-v_min), and therefore k value only depend on (L+1) individual value of nearest transmission.
VLE can be applicable to the compression of RTP head.With RFC 2508 on the contrary, do not need to use compressor reducer-decompressor sequence number.Instead, utilize VLE to the RTP SEQ.XFER.Decompressor is shown in VLE as Fig. 3 and 4 and describes in using, and confirms grouping by send the RTP SN that its receives to compressor reducer.
As described below about the best affirmation, decompressor does not need to return unpressed RTP SN value.
The following Example explanation is used for the work of the present invention as the RTP SN compression of RFC 2508 propositions.Provide a series of groupings that enter to compressor reducer, its SN (sequence number) is: 32,33,35,36,39,40,38,41.Suppose decompressor acknowledged sequence number be 35 grouping, then compressor reducer keeps an aforesaid sequence number window that has sent since last confirms grouping.When receiving the confirmation, the compressor reducer window is: 35,36,39,40,38,41.One of hypothesis has the new SN value arrival compressor reducer of sequence number value 43 now.Compressor reducer is sought its window maximum and is found 41.Compressor reducer is sought the window minimum value and is found 35.Compressor reducer calculate the value of entering and on it (43-41=2) boundary and lower bound (43-35=8) apart from r.Ultimate range is 8.Compressor reducer must send in this example greater than log
2 r+ 1,2
kMany bit k of integer greater than 17.This number is k=5.Because 43 binary format writing 101011, so compressor reducer sends 5 LSB, just 01011.The decompressor reference value is that the last value that decompresses of decompressor and its are the value in the compressor reducer window certainly.Decompressor is by being 01011 with its 5 LSB and returning the value (01011) to entering to decompress near the value of reference value.No matter what reference value is, this value always 43.For example, be 40 (just on the link between compressor reducer and the decompressor 38 and 41 lose) if suppose the last value of its reception when decompressor receives compressed value, then the region of search of decompressor use is [25,56] or binary format [011001,111000].Last LSB is that a unique value of 01011 is 101011 in the interval, just 43.
The another kind of method that decompressor is selected the k value be select LSB be 01011 from 40 nearest values.Several 40 binary format is 101000.Last LSB be 01011 be 01011 from 101000 nearest values, just 43.No matter this explanation has anything to lose on compressor reducer-decompressor link, the LSB bit that VLE can both determine to provide the minimum of correct decompressed or reduce quantity.
Fig. 5 and 6 explanations will be carried out selecting of k, so as the currency of being encoded by VLE be have in the middle of the value of identical LSB and in window maximum or minimum value nearest.Fig. 5 illustrates that Fig. 6 illustrates the situation of v less than v_min to v greater than the situation of v_max.
In the grouping that sends RTP timestamp or IP-ID territory, the identical transmission packet window that is used for the SN coding is to these territory codings.Therefore, decompressor not oppositely/feedback channel on these territories of loopback so that to its affirmation.Window can also regard as window vector (SN, TS, IP-ID).Can confirm given vector by only returning the SN territory.
Embodiment is based on confirming that structure comes the Executive Head compression so that send these territories when SN, TS and IP-ID will send.Other coding can be used for TS and IP-ID.This stature compression scheme is summarized as follows.
Utilize and confirm to be transformed into FO and SO state
When new session began, compressor reducer was worked under the FH state up to receive the confirmation (ACK) from decompressor, and indication has received at least one FH grouping.Decompressor is responsible for confirming once receiving the FH grouping, so compressor reducer can be from the FH state exchange to the FO state.Affirmation can comprise compression currency or the unpressed currency that is decompressed by decompressor.Any one allows compressor reducer renewal compressive state and starts abandoning of old value in two values.
At the FO state, compressor reducer sends the FO grouping (not necessary to each FO grouping) of FO grouping and potential solution compressor reducer affirmation reception.If compressor reducer is determined (based on ACK) decompressor and set up FOD, and this FOD is identical with the FOD between the head of a front and a last transmission that is sending, then compressor reducer enters the SO state and begins to send the SO grouping.
Owing to reason discussed above, compressor reducer need be return the FO state from the SO state.But, unless compressor reducer is never changed back the FH state some anomalous event takes place, as losing its context because of the system crash decompressor.No matter when compressor reducer is in the FO state, and it all attempts to enter the SO state as mentioned above.
Suitable packet type is disclosed in " Method andSystem for Transmitting and Receiving Packets (being used to send and receive the method and system of grouping) " patent application serial number 09/536,639 by name of submitting on March 28th, 2000.
Two variablees of VLE are described below, are called fixed length coding (FLE) and monolateral Variable Length Code (OVLE).
Fixed length coding (FLE)
If the scope that known for sure r=(v_max-v_min), then can use the fixed length coding from being no more than the upper bound.Each value adopts the equal number bits of encoded, and it is to cover the minimum number bit that this scope needs.Because being a known constant, hypothesis length therefore do not need to send in this case.
Monolateral Variable Length Code (OVLE)
Previously described VLE based on reference value v_ref and return the region of search] v_ref-2
K-1, v_ref+2
K-1] a function being complementary of bit number k.Because it can adapt to any change (just, negative) that is worth another value from, so very general and flexible.But this interval is not the most effective when being used for dull territory.In fact, decompressor is only in subclass] v_ref, v_ref+2
K-1] the middle decompressed value that obtains.
Under the situation of RTP head compression, these territories arrive compressor reducer with the order that increases usually.But, because may cause confusion or under the situation of timestamp, encoder may send the frame of coding not according to the order of sampling, so the exception of having from the upstream of compressor reducer.In order to raise the efficiency, utilize and return not in the middle of v_ref, as] v_ref-2
K-2, v_ref+3*2
K-2] the function of the region of search be valuable.
When VLE is used for part as a self adaptation compression applications, may use the interval] v_ref, v_ref+2
k], it is the most effective for given k.This is called monolateral Variable Length Code (OVLE).As long as the compressor reducer value of entering is increasing, OVLE is used for the SO grouping to VLE with regard to being used for the FO grouping.Under the situation that grouping causes confusion before arriving compressor reducer, compressor reducer always will divide into groups packed compressed as FO.Alternatively, even confusion takes place, grouping also can be resequenced and/or abandon to compressor reducer so that rest on the SO state.
Be used for the Variable Length Code (VLE) of packed data and the optimum of monolateral VLE (OVLE) and confirm algorithm
For improving overall compression efficiency, wish that decompressor sends to the size maintenance minimum of the affirmation of compressor reducer.Here in the algorithm of Tao Luning, decompressor only need in affirmation, send with the bit of its equal number that in compressed message, receives (or 2 bits the most the more, as described later).
As in VLE and OVLE, describing, the sliding window of compressor reducer retention value VSW and after sending to decompressor, the value of each original, uncompressed being stored among the VSW.
VSW:v
1
, v
2
, v
3
..., v
i
... v
n
Attention: v
1
Be the oldest value, and v
n
Be
New value.
Example 1: single coding method
Suppose only to use that a coding method (VLE or OVLE) and compressor reducer and decompressor all know use which is.When decompressor successfully receives a compressed value and decision when it is confirmed, it copies the compressed value of reception in the affirmation and with it to simply and sends it back compressor reducer.
When compressor reducer received the confirmation message, it was confirmed by three following step process:
1) use (the oldest value) among the VSW compressed value in confirming to be decompressed as the reference value and in accordance with the rule identical with decompressor.The value that decompresses is designated v_acked.
2) v_acked that occurs for for the first time (the oldest) from the beginning (the oldest) to tail (up-to-date) search VSW.
3) deletion all values of (older) before v_acked than v_acked.
Can see that above-mentioned algorithm comes work by the following properties that keeps VSW:
If utilize the k bit to send v among the HSW by compressor reducer
i, then can utilize identical k bit decompression and utilize any v
j(j≤i)) as the reference value.
Especially, v
iCan come any value among the VSW is decompressed as reference value.Always confirm that with affirmation a value among the VSW combines, can infer that the v_acked that obtains from step 1) is the real correct original value that triggers acknowledge message.
Example 2: odd encoder method
In this case, decompressor dynamically switches coding method between VLE and OVLE.It only needs to change a little aforementioned algorithm just can handle this situation.Basically, in each acknowledge message, decompressor must increase a mark and use which kind of coding method to compress the reception value with indication.Therefore, when compressor reducer received the confirmation message, it can select correct decompression method based on the coded markings in confirming.As long as keep the attribute of VSW, the algorithm that changes based on the reasoning identical with a last joint is exactly correct.
When VLE and/or OVLE are applied to the head compression, because decompressor can impliedly obtain this information based on head type and other configuration information, so the compressing head that sends to decompressor from compressor reducer, do not need to carry clearly coded markings.But,, must in acknowledge message, carry this mark clearly in opposite direction.In the worst case, need 2 bits to distinguish three kinds of possibility: VLE, positive side (plus-sided) OVLE, minus side (mius-sided) OVLE.If the side information of OVLE is predefined, then coded markings can reduce to 1 bit.
Repetition values among the VSW
Above being arranged, a kind of special situation also do not discuss.The value of identical in the compressor reducer sliding window (original, uncompressed) may occur more than once.Need consider this point for following two reasons: 1) in theory, algorithm should be general and all effective to any sequential value; 2) in fact, the RTP timestamp of some video code has this behavior really.
Problem is that though the value v_acked that calculates remains correct, compressor reducer can not determine that in fact which v_acked that occurs among the VSW has triggered ACK (if having found a plurality of appearance).
But, should be pointed out that because compressor reducer is always selected the v_acked of first (the oldest) appearance among the VSW, so algorithm is effective.Triggered affirmation if not correct example, then unique side effect is that the value of deleting from VSW is than lacking of should deleting.As a result, can use than the bit that manys of needs new value coding after this arriving.
If repetition values seldom occurs, then confirm that one arrives because confirm another (clearly) that a value only occurs once in VSW, it is not best state that compressor reducer just leaves it, so do not need above-mentioned algorithm is made any modification.
If think that repetition values often takes place, then can increase extraneous information to remove the ambiguity of confirming.An example is to generate number (GN) with one to distribute to each compressed value and require decompressor that GN is placed in the affirmation.
Though described the present invention, should be appreciated that under the situation that does not deviate from its spirit and scope and can make many modifications with reference to preferred embodiment.Mean in the scope that all such modifications drop on claims.