CN101106721A - An encoding and decoding device and related coder - Google Patents

An encoding and decoding device and related coder Download PDF

Info

Publication number
CN101106721A
CN101106721A CN 200610100866 CN200610100866A CN101106721A CN 101106721 A CN101106721 A CN 101106721A CN 200610100866 CN200610100866 CN 200610100866 CN 200610100866 A CN200610100866 A CN 200610100866A CN 101106721 A CN101106721 A CN 101106721A
Authority
CN
China
Prior art keywords
amplitude
encoder
significant bits
zero
encoded
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN 200610100866
Other languages
Chinese (zh)
Inventor
林四新
熊联欢
周建同
曾鹏鑫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN 200610100866 priority Critical patent/CN101106721A/en
Publication of CN101106721A publication Critical patent/CN101106721A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

The invention provides a coding-and-decoding device and related coder, wherein the code device is provided with a nonzero amplitude value coder, and the decoding device is equipped with a nonzero amplitude value decoder. After the code device completes encoding of zero significant bits, the nonzero amplitude value coder scans current block according to a predetermined manner, when scanning to nonzero significant bits, the nonzero amplitude value coder conducts encoding of the nonzero significant bits and continues the scanning-encoding process until scanning of the current block is completed; after the decoding device completes decoding of zero significant bits, the nonzero amplitude value decoder conducts decoding of nonzero significant bits according to the encoded mode of the nonzero amplitude value coder. The invention greatly reduces condition judging operations, comparison operations, arithmetical calculations, Boolean calculations and internal memory reading operations, and simplifies the coding-and-decoding process of significant bits; thereby the invention increases coding-and-decoding speed and decreases encoding code rate.

Description

A kind of coding and decoding device and correlative coding device
Technical field
The present invention relates to the video coding and decoding technology field, be specifically related to a kind of FGS (Fine GranularityScalable, fine granularity scalable) CAVLC of enhancement layer (Context Adaptive Variable LengthCoding, context-adaptive variable-length encoding) coding and decoding device.
Background technology
Scalable video is a very attractive video coding technique, and it can realize any reduction of video code flow by the processing after the coding.Comprise a basic layer and more than one enhancement layer in the code stream of scalable video.On entropy coding, can select CABAC (Context AdaptiveBinary Arithmetic Coding, context adaptive binary arithmetic coding) or CAVLC technology.
At present, by MPEG (Motion picture experts group, Motion Picture Experts Group) and JVT (the Joint video team of ITU-T (standardization department of international telecommunication union telecommunication), MPEG and ITU-T combination with standard are formulated working group) formulate H.264/AVC[5] hierarchical coding extension SVC [4] (Scalable video coding, vedio layering coding) in, just adopted FGS (Fine GranularityScalable, fine granularity scalable) coding techniques, FGS encoding and decoding structure as shown in Figure 1.
(during Context Adaptive Variable LengthCoding (CAVLC) coding, the structure of code device as shown in Figure 2 to carry out CAVLC in the FGS enhancement layer system to SVC.The structure of corresponding decoding device as shown in Figure 3.
Implementation method below in conjunction with 2 pairs of CAVLC codings of accompanying drawing describes.Among Fig. 2, the black arrow of solid line is represented the direction of flowing through of the code stream that need encode, and the black arrow of dotted line is represented the direction of flowing through of context control information.The context control information as zero or the maximum amplitude of nonzero coefficient position, current block, amplitude greater than sign flag of 1 sinificance bit (significant bits position) or the like.
Store the header of coding FGS layer in step 1, the code device, the header of coding FGS layer comprises: coding brightness EOB Shift table (End Of Block block end marking bias table), colourity EOB Shift table and the optimum mapping table that is used to specify optimum code book.Only show the encoder of division header information among Fig. 2, i.e. EOB offset table variable length encoder and optimum mapping table encoder.
To step 2, CBC scanner at significant pass (passage of sinificancebit coefficient in a kind of identification FGS enhancement layer) with CBC (Cyclic Block Coding, the loop blocks coding) scan mode scans, the adaptive run-length encoder is according to (run, sign) the mode significant bits (a kind of coefficient in the FGS enhancement layer) that encodes.Wherein, run represents the number of 0 coefficient before the nonzero coefficient, and sign represents the symbol of nonzero coefficient, and positive sign represents that with 0 negative sign is represented with 1.
Describe below in conjunction with 4 pairs of CBC scan modes of accompanying drawing.
Data among Fig. 4 in the grey grid are refnement bits (a kind of coefficients in the FGS enhancement layer), refinement bits will encode in refinement pass (passage of refinement bit coefficient in a kind of identification FGS enhancement layer), and skip in significant pass.If data block is 4 * 4 piece, then comprise 44 * 4 piece among Fig. 4.
Be directed to Fig. 4, black arrow indication order among the scanning process of CBC scanner such as Fig. 4, the significant bits coefficient of its scanning is arranged as follows:
Cycle0:0 ,-1,1,1,2, corresponding codes is: (1,1) (0,0) (0,0) (0,0), wherein, in the Cycle0 presentation graphs 4 since the 1st row according to black arrow indication scanning result in proper order.
Cycle1:1,01 ,-1,001, corresponding codes is: (0,0) (1,0) (0,1) (2,0), wherein, in the Cycle1 presentation graphs 4 since the 3rd row according to black arrow indication scanning result in proper order.
Other scanning result and coding result are no longer enumerated at this.
The CBC scanner is after having carried out scanning to data block shown in Figure 4, the coded message that the adaptive run-length encoder obtains is as shown in table 1.
Table 1
Figure A20061010086600071
Figure A20061010086600081
Coded message in the table 1 only comprises coefficient 0 and sign.
The CBC scanner scans according to zigzag (z font) order in each data block, scans in proper order according to grey arrow indication among Fig. 4 as the CBC scanner, if nonzero coefficient scanning is finished in the current block, then proceeds the processing of following step 3.
If step 3 after nonzero coefficient scanning is finished in the current block of CBC scanning, also exists amplitude greater than 1 significant bits in the current block, then the amplitude among Fig. 2 is carried out following processing greater than 1 coefficient coding device:
(1), according to the coefficient amplitude greater than 1 the mode EOB symbol of encoding, simultaneously with maximum amplitude, amplitude greater than the number information of 1 the coefficient into code stream of encoding.
(2), scan current block according to the zigzag mode, the mark amplitude is greater than 1 significant bits, for encoded non-zero significant bits, whenever to a significant bits, if the amplitude of significantbits is 1, then be labeled as 0, and coded markings 0, otherwise, be amplitude greater than 1, then be labeled as 1, and coded markings 1, up to having scanned the significant bits of last amplitude greater than 1, the processing procedure of this part is included in the processing procedure of Fig. 6 from step 600 to step 610.
(3), scan current block, in above-mentioned (2), be labeled as 1 the position amplitude of encoding in such a way according to the zigzag mode:
for(UInt?uiCutoff=1;uiAbs>uiCutoff?&&?uiCutoff<uiMaxMag;uiCutoff++)
{
xWriteFlag(uiAbs>(uiCutoff+1));
}
Wherein, uiAbs is current amplitude greater than the amplitude of 1 coefficient, and uiMaxMag is the maximum amplitude of current block.Above-mentioned code can be interpreted as: whether Rule of judgment uiAbs>uiCutoff and uiCutoff<uiMaxMag satisfy simultaneously, if do not satisfy simultaneously, jump out this cataloged procedure; If condition uiAbs>uiCutoff and uiCutoff<uiMaxMag satisfy simultaneously, continue to judge that whether uiAbs is greater than uiCutoff+1, if greater than would write 1, otherwise write 0, then, uiCutoff increases by 1, and continue Rule of judgment uiAbs>uiCutoff, uiCutoff<uiMaxMag and whether satisfy simultaneously, up to, there is one not satisfy in these two conditions, jump out till this cataloged procedure.
The processing procedure of this part is included in the processing procedure of Fig. 6 from step 620 to step 630.
In this coding step, amplitude among Fig. 2 will be encoded to nonzero coefficient in each data block greater than 1 coefficient coding device, be that " whether amplitude identifies greater than 1 " unit among Fig. 2 carries out mark to amplitude greater than 1 significant bits, and be stored in the memory device, amplitude is encoded according to the mark of storing in the memory device greater than 1 coefficient coding device.
For the Frame among Fig. 4, amplitude is greater than 1 the coefficient coding device information as shown in table 2 of will encoding.
Table 2
Figure A20061010086600091
After amplitude is finished greater than 1 coefficient coding, to step 5.
If step 4 after nonzero coefficient scanning is finished in the current block of CBC scanning, does not exist amplitude greater than 1 significant bits, then direct coding EOB symbol in the current block.To step 5.
In the foregoing description process, step 2, step 3 and step 4 are that its specific coding flow process is included in the accompanying drawing 5 at significant pass coding significantbits.
Step 5, at refinement pass coding refinement bits.
The coding method of EOB offset table is: if having maximum offset in preceding 3 elements of EOB offset table, then statistics wherein equals the element number of maximum offset, equals the element number uiNumEnd of maximum offset then by following code coding:
if(uiNumEnd)
{
RNOK(xWriteGolomb(uiNumEnd-1,1));
}
else
{
xWriteCode(0x7,3);
}
After encoding for the element number that equals maximum offset, the remaining element of encoding again.
When the EOB offset table is decoded, decode by turn by following code earlier:
for(UInt?uiEc=0;uiEc<3;uiEc++)
{
UInt?uiCode;
xGetFlag(uiCode);
if(uiCode)
{
uiNumEnd++;
}else
{
break;
}
}
Obtain the number of the maximum offset that exists in preceding 3 elements, then, the EOB offset element that decoding is remaining.
Be used to specify the optimum mapping table pauiTable[uiMaxH of optimum code book] coding method as follows:
At first, search the call number of the last nonzero element, this call number of encoding uiW, secondly, according to following code block code uiW:
xWriteCode(uiW,4);
Then, nonzero element in the position encoded mapping table from the starting position to uiW.
From the description of above-mentioned steps 3 as can be seen, in the coding amplitude during greater than 1 significant bits, need mark the significant bits that amplitude equals 1 greater than 1 significant bits and amplitude earlier according to scanning sequency, as being 1 with amplitude greater than the position mark of 1 significant bits, the position mark that amplitude is equaled 1 significant bits is 0; Then, begin scanning again from the first place of piece, be labeled as 1 position encoded amplitude amplitude greater than 1 coefficient.Like this, in above-mentioned cataloged procedure, must write the bit of a large amount of mark positions in the code stream, also will repeat a large amount of condition judgment operations, compare operation, arithmetical operation operation and logical operation operation and memory read operation, promptly be the part that need carry out reprocessing as the part that is labeled as the Gray Square lattice in the table 2.In decoding, also must open up extra internal memory, come the storage mark positional information, in like manner, when decoding device is decoded, need carry out a large amount of process repeats equally, thereby make encoding-decoding efficiency low.
In addition, because code device when the EOB offset table is encoded, is that step-by-step is carried out, so decoding device need be to EOB offset table step-by-step decoding, encoding-decoding efficiency is low.
Also have, contain a large amount of neutral elements in the optimum mapping table usually, and present code device can be encoded usually by turn, makes to have a large amount of redundant informations in the code stream optimum mapping table, thereby, encoding and decoding amount of calculation and encoder bit rate increased.
In sum, there are shortcomings such as amount of calculation is big, complexity is high, encoder bit rate height in existing FGS enhancement layer CAVLC coding method.
Summary of the invention
The objective of the invention is to, a kind of coding and decoding device and correlative coding device are provided, avoided a large amount of process repeats, simplified encoding-decoding process, improved encoding-decoding efficiency, reduced encoder bit rate simultaneously.
For achieving the above object, a kind of coding and decoding device provided by the invention, be arranged in fine granularity scalable FGS enhancement layer CAVLC CAVLC system, be provided with the optimum mapping table encoder of non-zero-amplitude encoder, EOB offset table block code device and segmented in the code device, be provided with the optimum mapping table decoder of non-zero-amplitude decoder, EOB offset table fixed length decoder and segmented in the decoding device;
EOB offset table block code device: received code code stream, when in preceding n element determining the EOB offset table, having maximum offset, the number of peak excursion secondary element in preceding n the element of statistics, and according to the described number of m position block code, then, other elements in the EOB offset table are encoded, and the output encoder code stream;
The optimum mapping table encoder of segmented: the received code code stream is divided into multistage with optimum mapping table, and the optimum mapping table of each section is encoded respectively; When the optimum mapping table of subsequent segment is encoded, only the nonzero element in the subsequent segment is encoded;
Code device is behind the coding of finishing zero significant bits position significant bits, the non-zero-amplitude encoder receives the current block encoding code stream, according to predetermined way scanning current block, when scanning non-zero significant bits, this non-zero significant bits is encoded, and continue above-mentioned scanning encoding process and finish the output encoder code stream up to current block scanning;
EOB offset table fixed length decoder: the received code code stream, decode according to the number of m position fixed length after to described coding, then, other elements behind the described coding are decoded, and output;
The optimum mapping table decoder of segmented: the received code code stream, the optimum mapping table of each section behind the described coding is decoded respectively, and output;
Decoding device is after the decoding of finishing zero significant bits, and the non-zero-amplitude decoder receives the current block encoding code stream, according to the coded system of non-zero-amplitude encoder non-zero significant bits is decoded, and output.
Described non-zero-amplitude encoder to the process that non-zero significant bits encodes is:
With amplitude is that 1 significant bits is encoded to 0;
With amplitude greater than 1 and be encoded to less than the significant bits of current block maximum amplitude: the amplitude of significantbits subtracts 1 and 0 of 1 difference;
The significant bits of current block maximum amplitude is encoded to: the amplitude of significant bits subtracts 1 difference individual 1.
Described non-zero-amplitude decoder to the process that the non-zero significant bits after encoding decodes is:
The initial value of the amplitude variable of non-zero significant bits is set;
Read the coding of this significant bits successively, reading 1 o'clock, amplitude variable increment or successively decrease, reading 0 or amplitude variable during more than or equal to the maximum amplitude of current block, decode procedure to this significant bits finishes, and the non-zero-amplitude decoder is determined the amplitude of this non-zero significant bits according to the amplitude variable.
Described n comprises 3.
Described m comprises 2.
The optimum mapping table encoder of described segmented comprises: the optimum mapping table encoder of dichotomic type;
The optimum mapping table encoder of dichotomic type is divided into two sections of front and back with optimum mapping table, element in the first half is encoded, and the call number of searching the last nonzero element of latter half is also encoded, then, the original position of latter half is encoded to the nonzero element in the position of described call number.
The invention provides a kind of code device, be provided with in the described code device based on the adaptive run-length encoder, nonzero coefficient of prediction and correct coding unit and amplitude correction-type encoder greater than 1 coefficient;
Adaptive run-length encoder based on prediction: received code code stream, the symbol unification of non-zero significantbits in the current block is predicted as predetermined symbol, only the number of zero significantbits continuously before the non-zero significant bits is encoded, and the output encoder code stream;
Nonzero coefficient correction coding unit: received code code stream, at the current block maximum amplitude is 1 o'clock, equal 1 the mode EOB that encodes according to maximum amplitude, and according to predetermined way scanning current block, for the amplitude that scans is that 1 ,-1 significant bits distinguishes coding, and the output encoder code stream;
Amplitude is greater than the correction-type encoder of 1 coefficient: the received code code stream, at the current block maximum amplitude greater than 1 o'clock, according to maximum amplitude greater than 1 the mode EOB that encodes, amplitude is encoded greater than 1 coefficient corresponding symbol, according to amplitude nonzero coefficient is distinguished mapping, numerical value after the coding mapping, and output.
Amplitude comprises greater than the mapping mode of the correction-type encoder of 1 coefficient:
2*(sig-1),sig>0;
f(sig)={
-2*sig-1,sig<0;
Wherein: sig is the value of significant bits.
The invention provides a kind of non-zero-amplitude encoder, be arranged in fine granularity scalable FGS enhancement layer CAVLC CAVLC system, described non-zero-amplitude encoder comprises: the scan module and first coding module;
Scan module: receive the current block encoding code stream, according to predetermined way scanning current block;
First coding module: when scan module scans non-zero significant bits, this non-zero significant bits is encoded, finish the output encoder code stream up to the current block scanning encoding.
First coding module: when scan module scans non-zero significant bits, with amplitude is that 1 significant bits is encoded to 0, with amplitude greater than 1 and be encoded to less than the significant bits of current block maximum amplitude: the amplitude of significant bits subtracts 1 and 0 of 1 difference, the significant bits of current block maximum amplitude is encoded to: the amplitude of significant bits subtracts 1 difference individual 1, finish the output encoder code stream up to the current block scanning encoding.
The invention provides a kind of EOB offset table block code device, described EOB offset table block code device comprises: the statistical module and second coding module;
Statistical module: the received code code stream, when in preceding n element determining the EOB offset table, having maximum offset, the number of peak excursion secondary element in preceding n the element of statistics;
Second coding module: according to the number of m position block code statistical module counts, then, other elements in the EOB offset table are encoded, and the output encoder code stream.
The invention provides the optimum mapping table encoder of a kind of segmented, the optimum mapping table encoder of described segmented is divided into multistage with optimum mapping table, every section respectively corresponding coding module of optimum mapping table;
Each coding module is the received code code stream respectively, and respectively the optimum mapping table of its corresponding section is encoded; When the optimum mapping table of subsequent segment is encoded, only the nonzero element in the subsequent segment is encoded.
The optimum mapping table encoder of described segmented is: the optimum mapping table encoder of dichotomic type, and the optimum mapping table of described dichotomic type comprises: leading portion coding module and back segment coding module;
The leading portion coding module: the received code code stream, the element in the optimum mapping table first half is encoded, and the output encoder code stream;
The back segment coding module: the received code code stream, search the call number of the last nonzero element of latter half and also encode, then, the original position of latter half is encoded to the nonzero element in the position of described call number, and the output encoder code stream.
Description by technique scheme as can be known, the present invention is by finishing the coding to non-zero significant bits in the single pass process, significantly reduce condition judgment operation, compare operation, arithmetical operation operation, logical operation operation and memory read operation, simplified the cataloged procedure of significant bits; By adopting the block code method that the EOB offset table is encoded, made full use of statistical law, improved encoding and decoding speed; By optimum mapping table is carried out segment encoding, avoided coding to redundant information in the optimum mapping table, further reduced encoding and decoding amount of calculation, reduced the coded message of carrying in the code stream; The present invention can also adopt the symbol of prediction non-zero significant bits earlier, and the method that symbol is proofreaied and correct is carried out significant bits coding then, has reduced the coded message of carrying in the code stream; Thereby by technical scheme provided by the invention realized simplifying the FGS enhancement layer CAVLC encoding and decoding technique scheme, improve encoding and decoding speed, reduce the purpose of encoder bit rate.
Description of drawings
Fig. 1 is FGS encoding and decoding structural representations;
Fig. 2 is the structural representation of the code device of prior art;
Fig. 3 is the structural representation of the decoding device of prior art;
Fig. 4 is the CBC scan mode schematic diagram of prior art;
Fig. 5 is the flow chart of the significant bits that encodes in significant pass of prior art;
Fig. 6 is the flow chart that non-zero significant bits is encoded of prior art;
Fig. 7 is the structural representation one of the code device of the embodiment of the invention;
Fig. 8 is the structural representation of the decoding device of the embodiment of the invention;
Fig. 9 is the flow chart that non-zero significant bits is encoded of the embodiment of the invention;
Figure 10 is the structural representation two of the code device of the embodiment of the invention.
Embodiment
The core technology content of the CAVLC coding and decoding device of FGS enhancement layer provided by the invention is: code device is behind the coding of finishing zero significant bits, according to predetermined way scanning current block, when scanning non-zero significant bits, this non-zero significant bits is encoded, and continue above-mentioned scanning encoding process, finish up to current block scanning; Decoding device is decoded to non-zero significant bits according to the coded system of non-zero-amplitude encoder after the decoding of finishing zero significant bits.Like this, code device has been avoided a large amount of condition judgment operation, compare operation, arithmetical operation operation and logical operation operation and memory read operation etc., simplify the encoding-decoding process of non-zero significant bits, improved the encoding-decoding efficiency of coding and decoding device.
In order further to simplify the encoding-decoding process of non-zero significant bits, the present invention also improves the encoding-decoding process of the EOB offset table in the coding and decoding device, the encoding-decoding process of optimum mapping table, below in conjunction with accompanying drawing technique scheme is described in detail.
The CAVLC code device of FGS enhancement layer provided by the invention as shown in Figure 7, the CAVLC decoding device of FGS enhancement layer is as shown in Figure 8.
Among Fig. 7, the CAVLC code device of FGS enhancement layer comprises: EOB offset table block code device, the optimum mapping table encoder of dichotomic type, CBC scanner, adaptive run-length encoder, memory device, non-zero-amplitude encoder and refinement bits encoder.Wherein, the optimum mapping table encoder of dichotomic type is a kind of in the optimum mapping table encoder of segmented.
Among Fig. 8, the CAVLC decoding device of FGS enhancement layer comprises: EOB offset table fixed length decoder, the optimum mapping table decoder of dichotomic type, CBC scanner, adaptive run-length decoder, memory device, non-zero-amplitude decoder and refinement bits decoder.Wherein, the optimum mapping table decoder of dichotomic type is a kind of in the optimum mapping table decoder of segmented.
In Fig. 7, Fig. 8, the present invention relates generally to the improvement of EOB offset table block code device, the optimum mapping table encoder of dichotomic type, non-zero-amplitude encoder, EOB offset table fixed length decoder, the optimum mapping table decoder of dichotomic type and non-zero-amplitude decoder, following description content mainly is described these several improved parts, other do not have improved content, no longer describe in detail in the present embodiment.
EOB offset table block code device adopts the fixed length mode that the EOB offset table is encoded, and EOB offset table block code device comprises: the statistical module and second coding module.Concrete coded system can be the number uiNumEnd that equals the element of maximum offset in preceding n element of statistical module counts EOB offset table such as preceding 3 elements, then, second coding module is encoded to number uiNumEnd as 2 fixed length with m position fixed length according to following code:
XWriteCode(uiNumEnd,2);
After the element number uiNumEnd to maximum offset encoded, second coding module was encoded to remaining element in the EOB offset table, and the remaining element here i.e. element except preceding 3 elements.
Corresponding, EOB offset table after EOB offset table fixed length decoder adopts the fixed length mode to coding is decoded, concrete decoding process can be decoded according to the element number uiNumEnd of m position fixed length as the maximum offset of 2 fixed length after to coding for: EOB offset table fixed length decoder, and concrete decoding code is:
xGetCode(uiNumEnd,2);
After the element number uiNumEnd to maximum offset decodes, remaining element in the EOB offset table element to be encoded, the remaining element here i.e. element except preceding 3 elements.
The optimum mapping table encoder of dichotomic type carries out Methods for Coding to optimum mapping table and is:
The length of setting optimum mapping table is uiMaxH, half length of optimum mapping table is uiHalfH, optimum mapping table is divided into first half and latter half, leading portion coding module in the optimum mapping table encoder of dichotomic type is encoded to the first half element of optimum mapping table, and the back segment coding module is encoded to half part element of optimum mapping table.
When the back segment coding module in the optimum mapping table encoder of dichotomic type is encoded to the latter half element of optimum mapping table, at first search the call number uiW of the last nonzero element of the latter half of optimum mapping table, and according to code xWriteGolomb (uiW-uiHalfH, 1) this call number uiW is encoded, then, the original position of the latter half of optimum mapping table is encoded to the nonzero element in the uiW position.
The optimum mapping table decoder of dichotomic type is at first decoded to the first half of the optimum mapping table behind the coding, and call number uiW is decoded, and then, the original position of the latter half of optimum mapping table is decoded to the nonzero element in the uiW position.
The optimum mapping table decoder of dichotomic type can be following form to the code that the call number uiW of the last nonzero element of the latter half of optimum mapping table decodes:
UInt?uiSym=0;
xGetGolomb(uiSym,1);
uiW=uiSym+uiHalfH;
Because the back in the optimum mapping table has a large amount of neutral elements usually, so, after the optimum mapping table encoder of the dichotomic type that adopts the invention described above is encoded to optimum mapping table, avoided the redundant information in the code stream, thereby reduced encoder bit rate.
Finish the coding of zero significant bits at code device after, promptly after the adaptive run-length encoder is finished the nonzero coefficient in current block scanning, if also exist amplitude in the current block greater than 1 significant bits, then the non-zero-amplitude encoder begins nonzero coefficient is carried out scanning encoding, the non-zero-amplitude encoder comprises: the scan module and first coding module, its specific implementation process mainly comprise following two steps:
First coding module in step 1, the non-zero-amplitude encoder is according to existing the coefficient amplitude greater than 1 the mode EOB symbol of encoding, and simultaneously, first coding module is encoded to the maximum amplitude in the current block, the amplitude number information greater than 1 coefficient in the code stream.
Scan module in step 2, the non-zero-amplitude encoder scans current block according to predetermined scan mode such as zigzag mode, and for each non-zero significant bit, first coding module is encoded as follows:
for(UInt?uiCutoff=1;uiAbs>=uiCutoff?&&?uiCutoff<uiMaxMag;uiCutoff++)
{
xWriteFlag(uiAbs>uiCutoff);
}
Wherein: uiAbs is the amplitude of current non-zero significant bit, and uiMaxMag is an amplitude maximum in the current block, and uiCutoff is that initial value is 1 variable.Certainly, the non-zero-amplitude encoder also can adopt other codes to realize coding, no longer exemplifies at this.
With a concrete example process of utilizing above-mentioned code to encode is described below.
The initial value of setting uiMaxMag=3, uiCutoff is 1.
It is 2 significant bit that scan module in the non-zero-amplitude encoder scans amplitude, at this moment, uiAbs is 2 to be 1 uiCutoff greater than value, and value is that 1 uiCutoff is 3 uiMaxMag less than value, cycling condition satisfies, enter the loop body of above-mentioned code, because uiAbs is 2 to be 1 uiCutoff greater than value, condition is set up, so first coding module in the non-zero-amplitude encoder is that 2 significantbit writes 1 for this amplitude earlier; Then, uiCutoff increases progressively 1.
First coding module in the non-zero-amplitude encoder judges once more whether cycling condition satisfies, at this moment, uiAbs is that 2 values of equaling are 2 uiCutoff, and value is that 2 uiCutoff is 3 uiMaxMag less than value, cycling condition satisfies, enter the loop body of above-mentioned code, because uiAbs is that 2 values of being not more than are 2 uiCutoff, condition is false, so first coding module in the non-zero-amplitude encoder is that 2 significant bit writes 0 for this amplitude again; Then, uiCutoff increases progressively 1.
At this moment, uiCutoff is 3, and cycling condition does not satisfy, and withdraws from this loop body.The non-zero-amplitude encoder is that the cataloged procedure of 2 significant bit finishes for this amplitude.The non-zero-amplitude encoder is that the coding result of 2 significant bit is 10 for this amplitude.
The non-zero-amplitude encoder is according to being that the coefficient of non-zero is all encoded as upper type to each amplitude in the current block, and amplitudes all in current block are for all to encode greater than 1 coefficient.The process that above-mentioned non-zero-amplitude encoder is encoded to the coefficient of non-zero-amplitude is included in the step 900 of Fig. 9.(900 these steps are that the coefficient of non-zero-amplitude is encoded among Fig. 9, and the particular content of this step is the content of foregoing description)
Corresponding, finish the decoding of zero significant bits at decoding device after, promptly after the adaptive run-length decoder is finished the nonzero coefficient in current block scanning, if also exist amplitude in the current block greater than 1 significant bits, then the non-zero-amplitude decoder begins nonzero coefficient is carried out scan decoder, and its specific implementation process mainly comprises following two steps:
Step 1, non-zero-amplitude decoder decode go out maximum amplitude uiMaxMag in the current block and amplitude greater than 1 coefficient number information.
Step 2, non-zero-amplitude decoder scan current block according to predetermined scan mode such as zigzag mode, and the non-zero significant bit for behind each coding decodes as follows:
for(UInt?uiCutoff=1;uiCutoff<uiMaxMag;uiCutoff++)
{
xGetFlag(uiBit);
if(uiBit)
{
uiSymbol++;
}
else
{
break;
}
}
Wherein: uiBit is the current bit of the current nonzero coefficient amplitude that will decode, and uiMaxMag is an amplitude maximum in the current block, and it is 1 variable that uiCutoff and uiSymbol are initial value.The initial value of UiCutoff can not be 1 also, and like this, condition uiCutofi<uiMaxMag can change to some extent.Certainly, the initial value of uiSymbol can not be 1 also, when the initial value of uiSymbol is 0, and after having finished above-mentioned decode procedure, could be after uiSymbol also needs to add 1 as the nonzero coefficient amplitude.
After jumping out above-mentioned loop body, the numerical value of uiSymbol is the non-zero-amplitude decoder the current non-zero significant bit after encoding is carried out decoded results.The uiSymbol that the non-zero-amplitude decoder obtains decoding according to the zigzag scanning sequency writes corresponding nonzero coefficient position.Nonzero coefficient after the non-zero-amplitude decoder adopts said method to all codings in the current block all carries out decoding processing.Certainly, the non-zero-amplitude decoder also can adopt other codes to realize decoding, no longer exemplifies at this.
Continuous precedent, the initial value of setting uiMaxMag=3, uiCutoff and uiSymbol is 1.
The non-zero-amplitude decoder scans and is encoded to 10 significant bit, at this moment, value is that 1 uiCutoff is 3 uiMaxMag less than value, enter the loop body of above-mentioned decoding code, the non-zero-amplitude decoder at first reads 1 in 10 by xGetFlag (uiBit), because uiBit is 1, if (uiBit) sets up, so the value of uiSymbol becomes 2.Then, uiCutoff increases progressively 1.
The non-zero-amplitude encoder judges once more whether cycling condition satisfies, at this moment, uiCutoff is 2, is 3 uiMaxMag less than value, and cycling condition satisfies, enter the loop body of above-mentioned decoding code, the non-zero-amplitude decoder reads 0 in 10 by xGetFlag (uiBit), because uiBit is 0, if (uiBit) is false, so, withdraw from the loop body of above-mentioned decoding code.
It is 2 that the non-zero-amplitude decoder carries out decoded results for 10 after encoding.
Another code device provided by the invention as shown in Figure 10.
Code device among Figure 10 comprises: EOB offset table variable length encoder, optimum mapping table encoder, CBC scanner, correct encoder, amplitude correction-type encoder and the refinement bits encoder greater than 1 coefficient based on adaptive run-length encoder, the non-zero system of prediction.
Accordingly, at the code device of Figure 10, decoding device comprises: EOB offset table length variable decoder, optimum mapping table decoder, CBC scanner, correct decoder, amplitude correction-type decoder and the refinement bits decoder greater than 1 coefficient based on adaptive run-length decoder, the non-zero system of prediction.The figure of decoding device should be corresponding with the figure of code device, and the structural representation of decoding device no longer is shown in present specification.
Code device among Figure 10 realizes that the CAVLC Methods for Coding comprises the steps:
Store the header of coding FGS layer in step 1, the code device, the header of coding FGS layer comprises: coding brightness EOB Shift table, colourity EOB Shift table and the optimum mapping table that is used to specify optimum code book.Only show the encoder of division header information among Figure 10, i.e. EOB offset table variable length encoder and optimum mapping table encoder.
To step 2, based on the prediction the adaptive run-length encoder in CBC scanning encoding process, the symbol of prediction non-zero significant bits all is a positive sign earlier, like this, based on the prediction the adaptive run-length encoder in CBC scanning encoding process, only encode just passable to zero the number continuously before the non-zero significant bits among the significant pass, the run that promptly only encodes, up to based on the adaptive run-length encoder of prediction to current block in zero number run coding continuously before last non-zero significant bit finish.Adaptive run-length encoder based on prediction need (run, sign) mode not be encoded according to original.
Because adopted the run coded system, so, in decoding device,, then fill run individual 0 in corresponding position according to scan mode based on run of the every decoding of adaptive run-length decoder of prediction; Adaptive run-length decoder based on prediction is finding not have the EOB symbol, and then the position is filled 1 and illustrated that this position is the significant bit of non-zero in the back.
Correct encoder to step 3, nonzero coefficient and from memory device, read nonzero coefficient information in the current block, and the sum of non-zero significant bits in the statistics current block, amplitude is amplitude and symbol greater than the absolute value of 1 sum, maximum significantbit, amplitude is labeled as maxMag greater than the amplitude of 1 coefficient, is maxSign with the sign flag of the significant bit of amplitude maximum.If do not exist in step 4 current block amplitude greater than 1 significant bits, to step 5; If exist amplitude greater than 1 significant bits in the current block, to step 6.
Step 5, nonzero coefficient correct encoder to current block in amplitude equal 1 significant bits and encode, the specific coding process comprises:
(1), since in the current block sum of non-zero Significant bits and the position of non-zero Significant bits be known, and, the amplitude of all non-zero Significant bits all equals 1 in the current block, so nonzero coefficient is corrected encoder and is equaled 1 the mode EOB that encodes with maximum amplitude.
(2), nonzero coefficient correct encoder according to predetermined scan mode from whole of the starting position scanning of current block, whenever to a non-zero significant bits, if coefficient equals 1, then encode one 0, otherwise promptly significant bits equals-1, encodes one 1.Finish up to non-zero significant bits coding current block.
Step 6, amplitude greater than the correction-type encoder of 1 coefficient to current block in the significant bits of non-zero-amplitude encode, the specific coding process is: because the number of nonzero coefficient is that the absolute value of the sum of non-zero Significant bits, maximum significant bit is that maximum amplitude and symbol are known in the current block, so, amplitude according to existing amplitude greater than 1 the mode EOB that encodes, promptly writes number NumMagG1 and the maxMag of amplitude greater than 1 significant bit greater than the correction-type encoder of 1 coefficient simultaneously.To step 7.
Write the maxMag corresponding symbol in step 7, amplitude greater than the correction-type encoder of 1 coefficient.To step 8.
According to following mapping formula nonzero coefficient Significant bits is mapped to f (sig) greater than the correction-type encoder of 1 coefficient in step 8, amplitude:
2*(sig-1),sig>0;
f(sig)={
-2*sig-1,sig<0;
Wherein: sig is significant bit.
Amplitude is encoded to f (sig) greater than the correction-type encoder of 1 coefficient.
Repeat above-mentioned steps 2 to step 8, the significant channel coding is finished up to code device.Then, refinement bits encoder is encoded to renfinement bits.
Corresponding with the decode procedure and the above-mentioned cataloged procedure of the corresponding decoding device of Figure 10, be not described in detail at this.
EOB offset table variable length encoder among Figure 10 can replace with EOB offset table block code device, and the EOB offset table length variable decoder in the corresponding decoding device can replace with EOB offset table fixed length decoder; Optimum mapping table encoder among Figure 10 can replace with the optimum mapping table encoder of dichotomic type, and the optimum mapping table decoder in the corresponding decoding device can replace with the optimum mapping table decoder of dichotomic type.The description of EOB offset table block code device, the optimum mapping table encoder of dichotomic type etc. such as above-mentioned at the description among Fig. 7, Fig. 8 no longer describes in detail at this.
The optimum mapping table encoder of above-mentioned non-zero-amplitude encoder, EOB offset table block code device and segmented etc. can be applied in separately in the code device, accordingly, the optimum mapping table decoder of non-zero-amplitude decoder, EOB offset table fixed length decoder and segmented also can be applied in separately in the decoding device, is not described in detail at this.
Though described the present invention by embodiment, those of ordinary skills know, the present invention has many distortion and variation and does not break away from spirit of the present invention, as being to be that example is described the optimum mapping table encoder of segmented in the above-mentioned description with the optimum mapping table encoder of dichotomic type, the optimum mapping table encoder of segmented can also be other forms, and above-mentioned mapping function also can be other modes, and the claim of application documents of the present invention comprises these distortion and variation.

Claims (13)

1. coding and decoding device, be arranged in fine granularity scalable FGS enhancement layer CAVLC CAVLC system, it is characterized in that, be provided with the optimum mapping table encoder of non-zero-amplitude encoder, EOB offset table block code device and segmented in the code device, be provided with the optimum mapping table decoder of non-zero-amplitude decoder, EOB offset table fixed length decoder and segmented in the decoding device;
EOB offset table block code device: received code code stream, when in preceding n element determining the EOB offset table, having maximum offset, the number of peak excursion secondary element in preceding n the element of statistics, and according to the described number of m position block code, then, other elements in the EOB offset table are encoded, and the output encoder code stream;
The optimum mapping table encoder of segmented: the received code code stream is divided into multistage with optimum mapping table, and the optimum mapping table of each section is encoded respectively; When the optimum mapping table of subsequent segment is encoded, only the nonzero element in the subsequent segment is encoded;
Code device is behind the coding of finishing zero significant bits position significant bits, the non-zero-amplitude encoder receives the current block encoding code stream, according to predetermined way scanning current block, when scanning non-zero significant bits, this non-zero significant bits is encoded, and continue above-mentioned scanning encoding process and finish the output encoder code stream up to current block scanning;
EOB offset table fixed length decoder: the received code code stream, decode according to the number of m position fixed length after to described coding, then, other elements behind the described coding are decoded, and output;
The optimum mapping table decoder of segmented: the received code code stream, the optimum mapping table of each section behind the described coding is decoded respectively, and output;
Decoding device is after the decoding of finishing zero significant bits, and the non-zero-amplitude decoder receives the current block encoding code stream, according to the coded system of non-zero-amplitude encoder non-zero significant bits is decoded, and output.
2. device as claimed in claim 1 is characterized in that, described non-zero-amplitude encoder to the process that non-zero significant bits encodes is:
With amplitude is that 1 significant bits is encoded to 0;
With amplitude greater than 1 and be encoded to less than the significant bits of current block maximum amplitude: the amplitude of significantbits subtracts 1 and 0 of 1 difference;
The significant bits of current block maximum amplitude is encoded to: the amplitude of significant bits subtracts 1 difference individual 1.
3. device as claimed in claim 2 is characterized in that, described non-zero-amplitude decoder to the process that the non-zero significant bits after encoding decodes is:
The initial value of the amplitude variable of non-zero significant bits is set;
Read the coding of this significant bits successively, reading 1 o'clock, amplitude variable increment or successively decrease, reading 0 or amplitude variable during more than or equal to the maximum amplitude of current block, decode procedure to this significant bits finishes, and the non-zero-amplitude decoder is determined the amplitude of this non-zero significant bits according to the amplitude variable.
4. as claim 1 or 2 or 3 described devices, it is characterized in that described n comprises 3.
5. as claim 1 or 2 or 3 described devices, it is characterized in that described m comprises 2.
6. as claim 1 or 2 or 3 described devices, it is characterized in that the optimum mapping table encoder of described segmented comprises: the optimum mapping table encoder of dichotomic type;
The optimum mapping table encoder of dichotomic type is divided into two sections of front and back with optimum mapping table, element in the first half is encoded, and the call number of searching the last nonzero element of latter half is also encoded, then, the original position of latter half is encoded to the nonzero element in the position of described call number.
7. a code device is characterized in that, is provided with in the described code device based on the adaptive run-length encoder, nonzero coefficient of prediction and corrects coding unit and the amplitude correction-type encoder greater than 1 coefficient;
Adaptive run-length encoder based on prediction: received code code stream, the symbol unification of non-zero significantbits in the current block is predicted as predetermined symbol, only the number of zero significantbits continuously before the non-zero significant bits is encoded, and the output encoder code stream;
Nonzero coefficient correction coding unit: received code code stream, at the current block maximum amplitude is 1 o'clock, equal 1 the mode EOB that encodes according to maximum amplitude, and according to predetermined way scanning current block, for the amplitude that scans is that 1 ,-1 significant bits distinguishes coding, and the output encoder code stream;
Amplitude is greater than the correction-type encoder of 1 coefficient: the received code code stream, at the current block maximum amplitude greater than 1 o'clock, according to maximum amplitude greater than 1 the mode EOB that encodes, amplitude is encoded greater than 1 coefficient corresponding symbol, according to amplitude nonzero coefficient is distinguished mapping, numerical value after the coding mapping, and output.
8. device as claimed in claim 7 is characterized in that, amplitude comprises greater than the mapping mode of the correction-type encoder of 1 coefficient:
f ( sig ) = 2 * ( sig - 1 ) , sig > 0 ; - 2 * sig - 1 , sig < 0 ;
Wherein: sig is the value of significant bits.
9. a non-zero-amplitude encoder is arranged in fine granularity scalable FGS enhancement layer CAVLC CAVLC system, it is characterized in that described non-zero-amplitude encoder comprises: the scan module and first coding module;
Scan module: receive the current block encoding code stream, according to predetermined way scanning current block;
First coding module: when scan module scans non-zero significant bits, this non-zero significant bits is encoded, finish the output encoder code stream up to the current block scanning encoding.
10. non-zero-amplitude encoder as claimed in claim 9 is characterized in that:
First coding module: when scan module scans non-zero significant bits, with amplitude is that 1 significant bits is encoded to 0, with amplitude greater than 1 and be encoded to less than the significant bits of current block maximum amplitude: the amplitude of significant bits subtracts 1 and 0 of 1 difference, the significant bits of current block maximum amplitude is encoded to: the amplitude of significant bits subtracts 1 difference individual 1, finish the output encoder code stream up to the current block scanning encoding.
11. an EOB offset table block code device is characterized in that, described EOB offset table block code device comprises: the statistical module and second coding module;
Statistical module: the received code code stream, when in preceding n element determining the EOB offset table, having maximum offset, the number of peak excursion secondary element in preceding n the element of statistics;
Second coding module: according to the number of m position block code statistical module counts, then, other elements in the EOB offset table are encoded, and the output encoder code stream.
12. the optimum mapping table encoder of segmented is characterized in that the optimum mapping table encoder of described segmented is divided into multistage with optimum mapping table, every section respectively corresponding coding module of optimum mapping table;
Each coding module is the received code code stream respectively, and respectively the optimum mapping table of its corresponding section is encoded; When the optimum mapping table of subsequent segment is encoded, only the nonzero element in the subsequent segment is encoded.
13. the optimum mapping table encoder of segmented as claimed in claim 12, it is characterized in that, the optimum mapping table encoder of described segmented is: the optimum mapping table encoder of dichotomic type, and the optimum mapping table of described dichotomic type comprises: leading portion coding module and back segment coding module;
The leading portion coding module: the received code code stream, the element in the optimum mapping table first half is encoded, and the output encoder code stream;
The back segment coding module: the received code code stream, search the call number of the last nonzero element of latter half and also encode, then, the original position of latter half is encoded to the nonzero element in the position of described call number, and the output encoder code stream.
CN 200610100866 2006-07-10 2006-07-10 An encoding and decoding device and related coder Pending CN101106721A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200610100866 CN101106721A (en) 2006-07-10 2006-07-10 An encoding and decoding device and related coder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200610100866 CN101106721A (en) 2006-07-10 2006-07-10 An encoding and decoding device and related coder

Publications (1)

Publication Number Publication Date
CN101106721A true CN101106721A (en) 2008-01-16

Family

ID=39000352

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200610100866 Pending CN101106721A (en) 2006-07-10 2006-07-10 An encoding and decoding device and related coder

Country Status (1)

Country Link
CN (1) CN101106721A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103404141A (en) * 2011-06-27 2013-11-20 英国广播公司 Video encoding and decoding using transforms
CN107734344A (en) * 2012-06-22 2018-02-23 威勒斯媒体国际有限公司 Method for encoding images and image encoding apparatus
CN108881910A (en) * 2010-04-13 2018-11-23 Ge视频压缩有限责任公司 Decode the device of Saliency maps
CN113382254A (en) * 2019-06-21 2021-09-10 杭州海康威视数字技术股份有限公司 Encoding and decoding method, device, equipment and storage medium

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11070822B2 (en) 2010-04-13 2021-07-20 Ge Video Compression, Llc Coding of significance maps and transform coefficient blocks
US10855999B2 (en) 2010-04-13 2020-12-01 Ge Video Compression, Llc Coding of significance maps and transform coefficient blocks
US11297336B2 (en) 2010-04-13 2022-04-05 Ge Video Compression, Llc Coding of significance maps and transform coefficient blocks
CN108881910A (en) * 2010-04-13 2018-11-23 Ge视频压缩有限责任公司 Decode the device of Saliency maps
US11095906B2 (en) 2010-04-13 2021-08-17 Ge Video Compression, Llc Coding of significance maps and transform coefficient blocks
US11025926B2 (en) 2010-04-13 2021-06-01 Ge Video Compression, Llc Coding of significance maps and transform coefficient blocks
US11032556B2 (en) 2010-04-13 2021-06-08 Ge Video Compression, Llc Coding of significance maps and transform coefficient blocks
US11252419B2 (en) 2010-04-13 2022-02-15 Ge Video Compression, Llc Coding of significance maps and transform coefficient blocks
US11128875B2 (en) 2010-04-13 2021-09-21 Ge Video Compression, Llc Coding of significance maps and transform coefficient blocks
CN103404141B (en) * 2011-06-27 2017-06-06 英国广播公司 Video coding and decoding using conversion
CN103404141A (en) * 2011-06-27 2013-11-20 英国广播公司 Video encoding and decoding using transforms
CN107734344B (en) * 2012-06-22 2021-06-29 威勒斯媒体国际有限公司 Image encoding method and image encoding apparatus
CN107734344A (en) * 2012-06-22 2018-02-23 威勒斯媒体国际有限公司 Method for encoding images and image encoding apparatus
CN113382256A (en) * 2019-06-21 2021-09-10 杭州海康威视数字技术股份有限公司 Encoding and decoding method, device, equipment and storage medium
CN113382254A (en) * 2019-06-21 2021-09-10 杭州海康威视数字技术股份有限公司 Encoding and decoding method, device, equipment and storage medium
CN113382254B (en) * 2019-06-21 2022-05-17 杭州海康威视数字技术股份有限公司 Encoding and decoding method, device, equipment and storage medium
CN113382256B (en) * 2019-06-21 2022-05-20 杭州海康威视数字技术股份有限公司 Encoding and decoding method, device, equipment and storage medium

Similar Documents

Publication Publication Date Title
CN100403801C (en) Adaptive entropy coding/decoding method based on context
US8111934B2 (en) Extension of two-dimensional variable length coding for image compression
US7365659B1 (en) Method of context adaptive binary arithmetic coding and coding apparatus using the same
US8401321B2 (en) Method and apparatus for context adaptive binary arithmetic coding and decoding
CN1312938C (en) Improved variable length decoder
CN108419084B (en) Method, apparatus and storage medium for improved entropy coding and decoding
US8208550B2 (en) Adapting an encoded video signal to encoding complexity
EP2074828B1 (en) Efficient significant coefficients coding in scalable video codecs
US7423562B2 (en) Effective decoding method of H.264/AVC context-based adaptive variable length coding
JP4825644B2 (en) Image decoding apparatus, image encoding apparatus, and system LSI
KR20120092095A (en) Methods and apparatus for video encoding and decoding binary sets using adaptive tree selection
CN1875545A (en) Decoding apparatus or encoding apparatus wherein intermediate buffer is inserted between arithmetic sign decoder or encoder and debinarizer or binarizer
CN104041031A (en) Video encoding and decoding method and apparatus using same
KR20160101925A (en) Data encoding and decoding
CN101502122B (en) Encoding device and encoding method
CN101106721A (en) An encoding and decoding device and related coder
KR20120065327A (en) Method and apparatus for reusing tree structures to encode and decode binary sets
CN1622634A (en) Apparatus and method for converting resolution of compressed video
CN100551064C (en) Variable length encoding method and device
KR20060038189A (en) Method and apparatus for context-based adaptive binary arithmetic coding
JP2000217103A (en) Object unit video signal coder/decoder and its method
KR20140048322A (en) Method for decoding picture in form of bit-stream
CN110191341B (en) Depth data coding method and decoding method
GB2319689A (en) An entropy encoder using context modelling with data reordering
US8363968B2 (en) Image coding method for facilitating run length coding and image encoding device thereof

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication